{"version":3,"sources":["scripts/app-c28cbe956f.js"],"names":["DatatablesCtrlController","$scope","DTOptionsBuilder","vm","this","dtOptions","newOptions","withDOM","withButtons","extend","title","customize","win","angular","element","document","body","addClass","css","find","isNumberKey","evt","elemref","quantityvalue","charCode","which","keyCode","value","indexOf","parseFloat","key","checktwodecimal","el","ex","test","substring","length","CheckRegExOnKeyPressDesc","e","regex","RegExp","str","String","fromCharCode","preventDefault","CheckRegExOnKeyPress","CheckRegExOnKeyPressCertificate","openPage","pageName","elmnt","i","tabcontent","tablinks","getElementsByClassName","style","display","backgroundColor","getElementById","color","slimScroll","$timeout","restrict","scope","boxHeight","link","slimscroll","height","railOpacity","sideNavigation","$watch","metisMenu","menuElement","click","window","width","toggleClass","hasClass","sidebar","parent","minimalizaSidebar","template","controller","minimalize","hide","fadeIn","removeAttr","sparkline","sparkData","sparkOptions","attrs","render","compile","$compile","$eval","html","contents","loaderProgress","$rootScope","ngProgressFactory","loader","createInstance","$on","reset","start","complete","show","customValid","require","ele","c","ngModel","validText","register","password","confirmpass","$setValidity","hcLineChart","options","Highcharts","chart","hcPieChart","data","type","text","plotOptions","pie","allowPointSelect","cursor","dataLabels","enabled","format","series","clockPicker","clockpicker","ngChart","replace","$","resize","highcharts","reflow","setTimeout","filesInput","elem","forEach","on","event","fileUrls","setFilesToNgModel","$setViewValue","target","files","f","console","log","$parent","jobView","ImageArray","name","NewjobDetailCtrl","JobDetailViewCtrl","reader","FileReader","onload","event1","push","result","getTempImgList","readAsDataURL","fileModel","$parse","model","modelSetter","assign","bind","$apply","validPass","layout","confirmPass","backButton","$state","$localStorage","goBack","undefined","prevState","state","go","params","$inject","module","factory","$q","$window","$location","$log","CMSURL","CMSToken","numLoadings","disableLoaderForUrls","request","config","enableLoader","url","startsWith","$broadcast","when","response","status","location","href","responseError","path","reject","service","ApiURL","FreelancerURL","LocationURL","PublicApiURL","$http","getSkillsList","reqUserId","token","get","headers","Content-Type","Token","UserId","updateSkill","loginUserId","put","createNewSkill","loggedInUserId","post","skillCreationService","ReferService","toaster","$filter","DTColumnDefBuilder","DTColumnBuilder","$uibModal","ticketTemplateService","showSuccess","main","showFailure","loggedinUser","LineItemAccountId","accountConfig","AccountId","ListOfLineItem","ListofGoods","SearchByGroupId","BrandName","ModelNumber","SelectedPriceGroup","ProjectId","SkillName","addBrandName","addModelNumber","addSelectedPriceGroup","addProjectId","addSkillName","addAccountId","addGroupId","edit","SearchByPriceGroupId","SearchByNoPriceGroupId","SkillId","Category","DisplayName","TestLink","Vertical","SkillVertical","TabClickEvent","applySearch","clearSearchText","then","resp","index","Certificates","Message","openDeleteModel","currentSkill","open","templateUrl","backdrop","size","CloseDeleteModel","close","deleteSkill","delId","openSkillModel","currentJOb","CurrentJob","CloseopenSkillModel","AddSkill","withPaginationType","withOption","dtColumnDefs","newColumnDef","notSortable","reload","setShowSuccess","success","setShowFailure","failure","GetAllProjects1","callback","res","GetAllProjects","GetProjectByProjectId","projectId","error","ProjectsList","GetProjectLocations","circle","ProjectService","ProjectCreationService","customerService","$stateParams","searchText","ProjectModal","loggedInUserRole","loggedInUser_Role","rootScopeMessage","projects","client","project_name","customerId","start_date","end_date","sla","projectModel","pocLocation","SupervisorName","pocNumber","pocName","projectLocations","projectName","filters","filterOptions","selectedFilters","dtInstance","createCallback","implementSelectItems","exportData","blob","Blob","innerHTML","saveAs","preProcessData","project","skills","ProjectLocationModels","l","Circle","allLocations","list_width","p","GetProjectInfo","openProjectModal","CloseModal","ProjectView","editProject","ViewProject","inherit","notify","getAllCustomer","getAllCustomers","customers","filtermodal","getAllCircles","circleArray","circles","GetAllCircles1","d","workArea","search","Object","keys","searchTable","DataTable","draw","unbind","PieChart5","fill","openModal","$uibModalInstance","ok","cancel","dismiss","openSaveReport","openEmail","priceSlider","myTrigger","toggleSingleClass","class_status","MainService","onMessagehandler","rUnReadRooms","Map","showchatwindow","chatcollapse","offset","getGroupsList","getSubscriptions","nextpage","busy","RocketUserId","Rockettoken","getGroups","count","groupListTotalCount","total","fNameNotification","groups","message","roomInfo","has","fname","unread","lm","lmdate","moment","local","today","diff","retVal","lmDateTime","_id","clear","update","set","methods","initiateScroll","handler","rocketUserId","rocketAuthToken","showChatWindow","nextPage","WsRocketUrl","RocketChatURL","uuid","$websocket","ROCKETCHATSTATS","LOGINREQSENT","CONNECTSENT","WAITFORSUBSRESPONSE","DATAREADYTORECEIVE","WAITFORHISTORY","Messages","loggedin","socket","sendLoginRequest","loginRequest","msg","method","id","v4","resume","send","JSON","stringify","ReadytoSubscribeRoomMessages","room_group","uniqueid","subscription","decodeSubscriptionResponse","showNotification","rid","username","fnameToDisplay","webNotification","icon","onClick","autoClose","alert","decodeHistoryResponse","roomId","messages","u","ts","$date","msgDateTime","file","fileUrl","attachments","title_link","file_size","image_size","description","image_preview","video_size","reverse","decodeRoomMessages","collection","fields","args","messagelist","initiateWS","connectObject","version","support","ws","onMessage","parse","closeWS","LoadHistoryOfRoom","group","loadHisT","SendMessageToRoom","roomdId","random_id","messageObject","userauthURL","MarkAlertAsRead","alertId","LogOut","GetAccountBalance","userId","GetImageBlob","img","GetLegalContractImageBlob","GetHealthSafetyGuidelines","getChannels","X-Auth-Token","X-User-Id","sort","MarkRoomAsRead","ClickToCallContact","contactnumber","GetSearchUserInfoByReqUserId","SearchUser","uploadLineItemPic","progressCB","canceler","timeout","promise","uploadEventHandlers","progress","GetJobTicket","ticketId","getCustomerJobCardbyJobId","accountId","jobId","InviteUser","getTerritoryStates","loggedInUser","Role","getTerritoryCity","UIURL","infiniteScrollFactory","ImageUrl","$interval","webSocketFactory","onGetGroups","slice","onSocketMessage","msgtype","msgList","rChatMessages","groupDetails","messageLength","scrollTop","scrollHeight","ShowJobOnMap","pointA","google","maps","LatLng","TicketInfo","Latitude","Longitude","mapOptions","zoom","scaleControl","gestureHandling","mapTypeId","MapTypeId","ROADMAP","center","map","marker","Marker","position","icons","InfoWindow","Latlngbounds","LatLngBounds","ticketinformation","addListener","setContent","ConsumerName","ConsumerContact","setMap","initMap","JobLatitude","JobLongitude","pointB","FELatitude","FELongitude","myOptions","zoomControl","mapTypeControl","streetViewControl","directionsService","DirectionsService","directionsDisplay","DirectionsRenderer","duration","distance","Polyline","strokeColor","calculateAndDisplayRoute","selectedMode","route","origin","destination","unitSystem","UnitSystem","METRIC","travelMode","TravelMode","DirectionsStatus","OK","directions","suppressMarkers","polylineOptions","leg","routes","legs","makeJobMarker","start_location","makeUserMarker","end_location","end","searchEntity","CurrencySetting","sendMessage","firstName","loggedInUser_FirstName","lastName","loggedInUser_LastName","companyName","loggedInUser_CompanyName","role","originalRole","IsCentralWarehouse","collapse","fileDiscription","UploadProgressBarShow","defer","msgCount","FirstName","LastName","Gender","ContactNumber","CurrentAdd1","CurrentAdd2","CurrentState","CurrentCity","CurrentPincode","SkillSet","skillsetList","GetAccountType","AccountType","Array","prototype","array","firebase","Error","initializeApp","appId","databaseURL","storageBucket","locationId","apiKey","authDomain","messagingSenderId","TimeoutFunc","time","func","AvailableBalance","ShowFirstChat","ShowFirstBox","HideFirstBox","ShowSecondChat","ShowSecondBox","HideSecondBox","HideImagePreview","ImagePreview","FilePreview","ShowFilePreview","HideFilePreview","ShowRecorder","Recorder","HideRecorder","lightbox","option","resizeDuration","wrapAround","showImageNumberLabel","thumbnail","fitImagesInViewport","getProfilePic","profilePicName","SendTextToRoom","LoadRoomMessages","TicketId","getTicketByJobId","infiniteScrollFactoryInst","initiateWSConnection","getChannelList","RoomIdMarkAsRead","changeFile","selector","trigger","ShowImagePreview","attr","imageSrc","URL","createObjectURL","filePathTemp","fileNameTemp","fileOrgSize","bytesToSize","AttachmentModel","CloseAttachmentModel","bytes","sizes","parseInt","Math","floor","round","pow","ShowUploadProgressBar","cancelUploadRequest","resolve","uploadLineItemFile","FormData","append","uploadProgress","lengthComputable","dynamic","loaded","getTracking","MarkerImage","Size","Point","TicketStatus","superPower","showMapPermision","getCustomerJobCard","FEContactNumber","jobtype","Description","FEName","customerJobCard","rateJobParams","userRole","JobStatus","CustomerGivenRating","rating","SearchUserinfo","SearchUserInfoList","searchUserStatus","UserContactNumber","clearData","sendData","territoryStates","AccountIDforTerritory","stateListTerritory","selectedStateForTerritory","territoryCity","StateForTerritoryCity","cityListTerritory","JobId","JobDateTime","SelectSearchEntity","entity","placeholderText","SearchEntityPage","search_form","$valid","showError","CloseSearchModal","submitted","getAccountConfigSetting","AccountStartDate","stringDate","momentDate","MenuListModel","OpenSearchModal","SearchmodalInstance","windowClass","confirmTagModal","abstractConfirmModal","success_label","confirm_modal","modalInstance","confirmCallback","closeConfirmModal","delete_action","getDashboardName","dashboardName","DashboardListModel","DashboardType","DashboardName","StartPromise","StopPromise","homeScreenNotifications","UpdateMain","param","userName","helloText","descriptionText","Region","loggedInUser_Region","Skill","loggedInUser_SkillSet","loggedinAs","charAt","toUpperCase","toLowerCase","toaster_data","showCloseButton","progressBar","preventDuplicates","showDuration","hideDuration","tapToDismiss","allowHtml","positionClass","toaster_info","copy","toaster_success","toaster_fail","pop","showInfo","ev","to","toParams","from","fromParams","UserLogOut","consumerContact","localStorage","displayDateTime","d1","Date","date","getDate","month","getMonth","hour","getHours","AM_PM","getMinutes","getFullYear","itemList","selectAll","showMinus","selectRow","checked","applyAllSelect","round2Decimal","no","convertNo","toFixed","roundNDecimal","N","n","floatToInt","modelObj","callbacks","getMenuVisibilityByRole","visibleRoles","indx","isHomeUrl","isHelpdeskUrl","isMenuClick","indexurl","BaseReportIndex","AdvancedDashboardIndex","arr","split","isReportUrl","isOtherUrl","isPaymentUrl","isFreelancerUrl","isFlVendorUrl","isRegisteredUserUrl","isRegisteredVendorUrl","isActiveUserUrl","isJobUrl","isDashboardUrl","isAllJobUrl","isAllTicketsUrl","isConsolidatedUrl","isVendorUrl","isProjectsUrl","isCustomerUrl","isAssistedUrl","isAutoAssistedUrl","isTeamUrl","isTemplateUrl","getMenuName","menuName","MenuName","MenuDisplayName","getSubMenuName","submenuName","SubMenusList","j","SubMenuName","SubMenuDisplayName","getMenuVisibility","defaultValue","MenuVisibility","getSubMenuVisibility","SubMenuVisibility","isFreelancerAccess","FreelancerAccess","getVisibleLabel","label","getRoleName","roleName","RoleListModel","RoleName","RoleDisplayName","isCreatePermission","CreatePermission","isCreatePermissionList","isDownloadPermission","DownloadPermission","isUploadPermission","UploadPermission","isDeletePermission","DeletePermission","LoadMessageToNotify","query","firestore","where","onSnapshot","snapshot","docs","AllNewMessagecount","unReadMessage","docChanges","change","doc","ReceiverId","NotifyLength","Notify","MessageStatusLength","MessageStatus","TotalNewMessage","docRef","unReadchatMessage","newNotifyLength","FieldValue","arrayUnion","Newchatmessagecount","MarkAlertsRead","alertText","NotificationCounts","userJobListService","userToken","freelancertoken","techUserId","freelancerUserId","OrderBy","order","searchtag","PageIndex","PageSize","pageindexCount","totalBidCount","usersTablePerPageBid","BidListLength","ListofBids","denyReasons","denyReasonsRemark","bundleJobId","UserTablepagination","current","TicketFilterModel","UserTablepageChanged","newPage","GetLeads","GetLeadsForMobile","techBIDlist","FreelancerBidModelList","t","PincodeArray","PinCode","Set","SkillSetArray","skillSet","FreelancerBidListCount","applyForBID","accountid","jobid","bidcounterrate","comboCloseModal","GetDenyReasons","AuditTicketId","TAccountId","jobAccountId","denyReasonsList","biddenyRsn","shift","denyReasonsModalInstance","denyReasonsCloseModal","comboModalInstance","UpdatedenyReasons","denyReasonsForm","IterationId","DenyReason","DenyBidsFromMobile","comboListModal","bundleId","GetBundleLeadDetails","BundleDetail","BundleTicketList","JobBundleList","bundleid","TicketDetail","bidDetails","LeadTicketIdList","GetLeadDetails","bidDetailService","uTicketId","LeadDetails","ActivityURL","GetTicketStatus","updateJobTicket","ticketModel","getAllActivitiesWithLinkJob","linkId","GetCompletionRemarkList","skill","callType","GetHardwareSkillList","catogry","GetHardwareDetailByFields_ValueList","updateJobTicketwithImage","completeJob","completeSeperateJob","getHistory","getAllActivitiesForJob","getAllState","getAllCity","saveTicket","err","updateStartTime","startTime","EndTime","requserid","ticketid","starttime","endtime","getTemplateByName","getTatForJob","GetStatusActivityInPie","FollowUpWithAttachment","formdata","followupdata","DeleteFollowUp","docId","JobViewService","$sce","HelpDeskHomeService","GetTicketView","Template","LinkId","VerticalName","LinkTicketNoList","TemplateModel","TemplateData","SectionList","Action","SectionName","SuperVisorData","ItemList","getCallTypeList","JobType","ListActionWise","SeperateSectionAndItems","StartTime","TicketInfoEdit","Address1","Address2","Pincode","getAllStates","State","getCities","JobTypeForModal","CallTypeForModal","ItemValue","templateData","itemlist","property","hash","second_property","sectionList","itemNum","action","sechash","nestedSectionList","itemIndex","actionName","secName","section","Section","SplitTime","numberOfHours","Days","Remainder","Hours","Minutes","firstTab","SecondTab","previousPage","RemarkCollection","CompletionRemarkList","SelectedCompletionRemarkList","HWDetailList","HardwareDetailList","HWDetaileType","SelectedHWDetailList","HWSkillList","ticketType","EnableRegion","Jobticket","ticketEditModalInstance","currentStepModel","ModalActionWithValuesList","currentStepName","completeremark","states","cities","pieCharts","rootScopeMsg","updatefollowFiles","selectedLTicket","FieldJobClosureMode","FieldJobVisitStatus","BackToTicket","$$absUrl","BackToHelpDesk","onChangeLinkTicket","linkedId","LinkTicketStatus","getDropDownOptions","ItemName","item","ItemType","field_options","getDropDownOptionsForCheckboxList","getImageData","PlotItemSectionAndActionWise","itemType","PlottedItem","EditItemSectionAndActionWise","clickOnFileControl","controlName","upload","obj","$index","srcElement","tempImg","OpenTicketEditModal","getVideoUrl","trustAsResourceUrl","UpdateStep","formData","ticketmodelIndex","currentModalIndex","ItemValues","random","toString","getTime","ImageName","sectionIndex","beforeChangeItem","afterChangeItem","history","historyStyle","JOB_CREATED","background-color","border","JOB_CREATED_BY_PORTAL_USER ","JOB_UPDATE","JOB_CREATED_BY_FIELD_ENGINEER ","JOB_CREATED_NOT_COMPLETED_IN_TIME ","JOB_ASSIGNED","JOB_STEP_COMPLETED","JOB_RESCHEDULED_BY_WORKER","JOB_DECLINED","JOB_REJECTED","JOB_CUSTOM_FIELD_UPDATE","JOB_SIGNATURE_RECEIVED","JOB_CANCELED","JOB_APPROVED","JOB_START_REMINDER","JOB_BROADCASTED","JOB_ACCEPTED","JOB_STARTED","JOB_COMPLETED","FOLLOW_UP","On Hold","Open","CUSTOMER_JOB_CARD_CREATED","CUSTOMER_JOB_ASSIGNED_FE","JOB_REOPEN","statusTracker","ReopenTicket","ReqUserId","Status","TechnicianRating","CompletionRemark","City","city","s","jobAddressModal","editJobAddress","SubRegion","closeJobAddress","updateJobAddress","jobAddressForm","jobAppointmentModal","editJobAppointment","closeJobAppointment","updateJobAppointment","jobAppointmentForm","getReadableTime","timeDisplay","getEndTime","add","basicPopup","OpencompleteModel","remark","CompleteJobModal","ModalInstanceCtrlFollowUp","CloseCompleteJobModal","callTypeRemark","completeremark1","RemarkCollectionList","getHWSkillList","detailType","parentIndex","getHWDetailBySkill_CategoryList","onselectEvent","hwdetailslist","Name","OnSelectCompletionRemark","CompleteJob_form","loc","IsAssetReplacementEnabled","temp","Code","HardwareFrom","AddCompletionRemark","RemoveCompletionRemark","splice","addHWItem","RemoveHWList","updateCompleteStatus","completeMainTicket","completeLinkedTicket","isUpdatePermission","UpdatePermission","bifurcateData","hasOwnProperty","TotalTat","PartnerTat","y","createPieChart","showPieChart","tempShowPieChart","chartData","plotBackgroundColor","plotBorderWidth","plotShadow","colors","align","verticalAlign","subtitle","tooltip","pointFormatter","formatter","pointName","point","fontWeight","showInLegend","startAngle","endAngle","colorByPoint","innerSize","reflowNow","containerHeight","HighchartsAdapter","adapterRun","renderTo","containerWidth","setSize","hasUserSize","getJobStatusTrackerTime","timeInfloatMin","min","getPicUrl","pic","attachUpdateFollowUp","allowedExtensions","exec","fileExtension","substr","lastIndexOf","uppercase","updatefollowupFilepath","val","OpenUpdateFollowUpModel","followupDocId","followupActivity","followupFilepath","followup","tickId","UpdateFollowUpModel","ModalInstanceCtrlUpdateFollowUp","CloseUpdateFollowUpModel","updateFollowUpStatus","dateTime","activity","primaryReason","SecondryReason","ReasonComment","Id","OpenConfirmationModelPopup","DocId","ConfirmationModel","ModalInstanceCtrlConfirmation","CloseConfirmationModel","jobType","CallTypeItemList","CallTypeList","jobBidCreationService","GetTicketForClone","cloneticketid","JobDescription","priority","Priority","selectedCustomer","CustomerName","selectedProject","ProjectName","contactPerson","contactNumber","address","endTime","selectedTemplate","bidDuration","BidDuration","serviceType","PaymentType","ticketPrice","BroadcastRate","LineItem","IsLineItemAvailable","AppointmentType","ScopeWork","ScopeWorkPath","SpareTransportType","Courier","PickUp","PickUpDrop","selectProject","calculatePrice","selectTemplate","getAllCities","IsPCLink","CustomizedCommission","MobiforceCommission","MobiforceCommissionPercentage","sameAddress","disableCreate","RegionList","SubRegionList","customerList","projectList","templateList","locations","schedulingrules","showSchedulingRules","DefaultCustomer","LocationMapping","DefaultProject","DefaultTemplate","selectedLocation","GetFenceRange","freelancerPrice","tPrice","commission","tax","freelancerPricetemp","showRateCard","cloneReason","monthNames","monthNames3","changeAppointmentType","dt","setMinutes","edt","setHours","jobOccurrance","sampleDate","frequency","once","daily","weekly","cronExpression","monthly","input_of_week","mon","tue","wed","thu","fri","sat","sun","input_for_month","first_day","last_day","specific_date","specific_date_range","displayDate","resetJobOccurranceDate","endDate","setMonth","setFullYear","getCustomerCallback","CompanyName","selectCustomer","GetServiceTax","GSTPercentange","GetMobCommission","getProjectCallback","JobRate","getTemplateCallback","templates","TemplateName","getAllStatesCallback","searchState","getAllCitiesCallback","searchCity","getLocationCallback","selectedLocCheck","getAllProjectList","CustomerId","GetTelecomCircle","values","GetSchedulingRules","getSchedulingRuleCallback","CreateTable","toggleAll","selectedItems","toggleOne","tempRuleIdList","IsEnable","RuleId","headerCompiled","selected","fromFnPromise","withBootstrap","row","dataIndex","header","dtColumns","newColumn","withTitle","renderWith","full","meta","selectLocation","dynamicPopover","content","placement","stateName","cityName","changeAddress","BusinessPhone","changeProj","GetReasonsForClone","GetClonReasons","geofencestatus","GeoFenceEnabled","getAllCustomerList","getAllTemplateList","getAllProjs","createTicket","form","$invalid","ticketSchedulingRules","SectionListModel","uiItemList","sample_Data","sec","getSeconds","year","startDate","minute","dayOfWeek","dayOfMonth","ticketModelData","TicketSchedulerModel","CustomerContact","CloneReason","JobTemplateModel","TemplateItems","ConsumerContactNumber","BroadcastGrossRate","FixedBidPrice","GeoFenceEnable","GeoFenceRange","RuleIds","hrs","jobModel","itemName","cronType","jobStartTime","uniqueId","scheduledTime","CloneTicketId","sDate","eDate","cloneTicket","broadcastTicket","SupervisorId","createAndBroadcast","GetSubRegion","selectRegion","region","GetCityBySubRegion","checkPermissionInMenu","checkPermissionInSubMenu","parentEntity","Number","calculateFreelancerPrice","openCalendar","picker","AppointmentsDate","datelimit","datepickerOptions","minDate","openCalendarEndDate","AppointmentsEndDate","EndDatelimit","subRegion","getSkills","getLocation","toJson","CancelTicket","UploadServerData","uploadProfilePic","GetPriceInsight","price","GetJObLineItem","ItemLineDetails","LineItemId","CreateLineItem","userFormData","jobCreationService","appointmentType","Mobile","TicketSource","uploaddata","searchUrl","LineItemDisc","PriceLineItemList","priceInsightString","citiesPickUpDrops","citiesPickUpDrop","citiesPickUp","priceInsight","SiteName","jobLineItemModel","JobRegion","LineitemActivityList","LineItemCategoryType","selectedprojectId","dynamicpricing","CompanyProvidedEnable","totalFPrice","BasePriceTotal","dFreelancerPriceTotal","PercentageTotal","FreelancerPriceTotal","PercentageTotalDis","IsBasePriceDisabled","templateSkillList","isTemplateSkill","TemplateSkill","scdt","SourceCreationDate","pcdt","setDate","PlannedClosureDate","getSearchBox","searchBoxHtml","searchCustomer","originalObject","CustomerLocationId","cleanSpareField","handleFiles","checkRateCard","checkcustomersummary","checkedJDetails","removeClass","focusout","templateDynamicFieldCheck","checkJobAddress","checkAppointment","checkTemplate","DynamicPricing","JObItem","getAllCitiesPickUp","getAllCitiesCallbackPickUp","getAllCitiesPickUpDrop","getAllCitiesCallbackPickUpDrop","getAllCitiesPickUpDrops","getAllCitiesCallbackPickUpDrops","UploadData","FileName","FilesDoc","FileSize","$submitted","Stime","AppointmentTime","CurrentDate","sourcecreationdate","plannedclosuredate","newTicketPrice","newMobiforceCommission","newFprice","InvoiceDetailsAttachment","LineItemRequestList","_i","getPriceInsight","priceinsight","openCalendarSourceCreationDate","SourceCreationStartDate","openCalendarPlannedClosureDate","PlannedClosureEndDate","sourcecreationdatelimit","plannedclosuredatelimit","keypress","fadeOut","addMorejobitem","showRow","addMoreSkill","skillData","addSkill","Experience","addExprence","Brand","SelfRatingOnSkill","SkillList","removeSkill","JobItemList","ActivityDescription","getLineItemAcitivityDesc","LineItemAcitivityArray","LineItemCategory","qunatityEnable","getRemainingLineItems","LineItemCompanyProvidedChange","LineItemCompanyProvided","LineItemList","LineItemDescription","origdLineItemFreelancerPrice","dLineItemFreelancerPrice","FreelancrPriceEnable","dLineItemWinPrice","LoadSessionData","selectedVal","LineItemDetails","ObjLineItem","Quantity","IsPercentageDisabled","disableProvided","ConverttoDecimal","addPriceLineItem","tData","LineItemCode","LineItemQuantity","LineItemRemark","Remarks","LineItemUnit","LineItemAction","LineItemAttachment","basePrice","dFprice","showTCList","EmptyLineItemDetails","RemovePriceLineItems","remainingPriceLineItems","showTotal","addPriceLineItemInTable","tempCertificateAdd","calculateLineItemPrice","percentage","LineItemPercentage","priceDPF","FreelancerPrice","OnBasePriceChange","FreelancerChangeCal","LineItemEdit","EditUpdateCalculation","removeCurrentActivityRow","removeLineItem","SchedulingAPI","GetAllScheduleExceptionListbyDateRange","ResolveException","exceptionIdList","getAllJobForExceptionList","getAllAccounts","getAllUserByReportingPerson","reportingTo","downloadInvoicebyInvoiceNo","InvoiceNos","inventoryService","$resource","isNavCollapsed","isCollapsed","isCollapsedHorizontal","selectSingle","disableExceptionButton","ticketPageListCount","pageListCounts","scheduleExceptionListNewLength","SearchByAccountName","ExceptionType","exceptionState","showAllAccounts","dates","subtract","ranges","Today","Yesterday","Last 7 days","Last 30 days","This month","startOf","dateRangeChange","totalTableTickets","ticketTablePerPage","TicketTablepagination","changeTicketPageListCount","TicketTablepageChanged","scheduleExceptionListNew","ExceptionState","ExceptionAssignToUserId","AccountName","listScheduleException","nRecordCount","totalTableUsers","enableFilters","actionFlag","TList","AllJobType","searchJobTypeText","AllJobStatus","searchStatusText","StartTimeD","implementSelectItemsNewJob","selectAllNewJob","showMinusNewJob","selectRowNewJob","applyAllNewJobSelect","resetAllSelect","JobView","backToOldJobList","SDate","EDate","JobLocation","locationSearch","JobSDate","JobEDate","JobSkill","skillsSearch","UserType","UsersType","DisableScheduledExceptionButtons","disable","getAllDispatchUser","DSusers","resolveException","ExceptionId","accounts","PopupService","FormBuilderService","ActionModelInstanceCtrl","SavingAction","addStep_form","ActionName","modalAction_Name","checkUniqueSectionAndItem","sectionName","checkArrayContainskeyValue","foundItemInfo","ind","arrayIndex","ShowDetailsinPropertyWindow","Item","windowElement","ready","prop","Required","Hint","optionIndex","ModalInstanceCtrl","GetSkills","skill1","updateTemplateCheck","isDisabledField","templateName","templateDescription","SavingTemplate","templateSave_Form","isValid","updatetaskDuration","IsFieldDataReportEnabled","IsSiteAccessNeeded","IsVendorApprovalNeeded","IsSerialNumberVerificationEnabled","SiteAccessWaitingTime","MMFJobType","MMFServiceType","taskDuration","taskDurationLimitMsg","templateUpdate_Form","itemId","getTemplate","fetchedTemplate","getActionsList","flags","output","ActionList","action_name","action_sequence","ActionNumber","AddStep","stepcount","children","parseItemsForEachAction","parseItemSectionWise","action_Sectionslist","renderedModelIndex","currentAction_SectionList","isUndefined","currentSection_ItemList","currentItem","plotItem","stepId","ObjectKeyByValue","tabId","initLayOutforPlotedItem","object","ActionsList","step_withMatching_sortableList","listItemModel","renderingHtmlForItemType","popupCount","contains","renderingSectionList","sectionItemModel","sectionListModel","listItemModelwithSection","itemTypeForHtml","itemTypeDic","modelIndex","isRequired","liHide","contentType","statusClass","popid","RemoveActionModalCtrl","DeleteCurrentStep","get_AllItemsOfAction","step","clearAllFields","todoList1","htmlString","ItemsEmptyCheck","itemEmptyCheck","each","modelScope","task","SortItems","concatedList","concat","concatelist_index","poplist_index","activeSortableList","Supervisor","templateModel","stepVeryingCount","stepID1","elemntDetails","isDisabled","textbox_TemplateUrl","paragraph_TemplateUrl","checkbox_TemplateUrl","dropdown_TemplateUrl","address_TemplateUrl","decimal_TemplateUrl","number_TemplateUrl","date_TemplateUrl","phone_TemplateUrl","email_TemplateUrl","video_TemplateUrl","signature_TemplateUrl","image_TemplateUrl","originalScreens1","originalScreens2","ItemList1","sortableOptions","connectWith","helper","stop","ui","sortable","droptarget","receive","received","source","droptargetList","droptargetModel","dropindex","isDefined","before","TabClick","currentTarget","DeleteCurrentItem","closest","deleteItemIndex","itemInd","found_item_description","SaveElement","optionitems_conditionsCheck","elemtype","uniqueCheck","elementBody","elementScope","labelName","hint","required","Access","current_Element_Index_inList","equals","labelCollection","inArray","is","labelCount","parents","current_item_popid","itemStatus","propertyWindowCancel","ItemsToChangeSection","StatusOfItem","timeEnd","ItemIndexInList","foundItemIndex","ItemIndex","statOfItem","addAction","PropertyWindowExpanded","controlType","htmlForElement","item_type","fetchedListItemID","prev","fetchedItemindex","PropertyWindowCollapsed","expanding","expandedDiv","OpenSaveTemplatePopUp","SaveTemplate","templateScopeWork","templateScopeWorkPath","templateIsFieldData","templateIsSiteAccessNeeded","templateIsVendorApprovalNeeded","templateSiteAccessWaitingTime","templateMMFJobType","templateMMFServiceType","templateIsSerialNumberVerificationEnabled","addOptions","isbutton","deleteOptions","remove","sectionlist_Seprated","fromJson","finalListOfSections","CreatedBy","Update","templateIsIsSiteAccessNeeded","json","DeleteConfirmationTemplatePopUp","tab_ID1","found_item","initializeLayout","trustAsHtml","itemOptionsClickEvent","elemType","checkeElementinList","triggeredElement","popupId","getSLAConfiguration","a","currentPopupElement","StaffSchedulingAPI","GetEmployeeAttendanceShiftView","employeshiftattendanceService","shiftManagementService","generateDates","currentDate","day","toLocaleDateString","weekday","formattedDate","months","selectedYear","selectedMonth","SelectedDepartment","SelectedLocation","filteredDates","$watchGroup","newValues","oldValues","newStartDate","newEndDate","years","_","LocationId","DepartmentId","StartDate","EndDate","AutoSchedule","StaffList","GetAllLocations","locationsList","GetAllDepartment","departmentList","getUserInfo","TeamProfileService","OnBoardingFormService","showOptions1","showOptions2","showOptions3","showOptions4","showOptions5","showOptions6","showOptions7","showOptions8","showOptions9","showOptions10","showOptions11","showOptions12","showOptions13","showOptions14","showOptions15","showOptions16","showOptions17","showOptions18","showOptions19","showOptions20","showOptions21","showOptions22","showOptions23","showOptions24","AddAssestsModal","AssestsModal","closeAssetsModal","ReallocateModal","reallocateModal","closeReallocateModal","CMSAminToken","CMSMediaUrl","fetchUserFromUrl","posts","albumImages","createdBy","userMap","comment","searchParams","bySearchText","byPostId","byAlbumId","bySuggestionText","commentByPostId","addComment","getUserById","loaderFlag","hideLoader","getUser","getCMS","viewCMS","postId","thumb","caption","urlGetUserById","byAlbumIdUrl","getComments","comments","saveComment","oldText","searchtext","$data","getAutoSuggestions","splitted","sugg","selectAutoSuggest","$item","$model","$label","$event","lastWord","searchtextChange","keyupCalled","keyword","urlParam","results","$anchorScroll","showErrors","errorList","disableUploadButton","Freelancers","Errors","progressbar","successTitle","successMsg","noMsg","noOfRecords","verifyBulkPost","addBulkPost","dzOptions","paramName","maxFilesize","acceptedFiles","dictDefaultMessage","dictRemoveFile","withDisplayLength","dtColumnDefs1","dtColumnDefs2","scrollDwn","animate","dzCallbacks","addedfile","users","tickets","cms","dropzoneChildren","empty","fd","transformRequest","identity","staffShiftModelRes","errorMessage","xhr","uploadFile","referalapi","Invitations","bulkuploadType","selectedTicket","Users","Customers","Tickets","v","k","ItemErrors","e1","v1","k1","Row","ErrorCode","MissingColumns","errorCode","validationFlag","rowErrors","addFiles","getTickets","TemplateId","AcessoriesURL","MasterInventory","MasterItemModel","BulkServiceCenter","CreateServiceCenters","getCustomers","BulkUploadJobService","updateType","getProjects","customer","Projects","UpdateErrorList","errObj","ErrorMessage","TestName","ParameterName","col","showTemplateDownloadError","dtColumnDefs3","CustomerErrors","CustomerLocationErrors","CustomerContactErrors","AssetErrors","TotalErrorCounts","CustomerLocations","CustomerContacts","dtInstance1","dtInstance2","childData","tr","child","isShown","MMFCRMURL","BulkCallBooking","TicketModel","errorMsg","BulkUpdateOrder","AllOrdersModel","GetAllWareHouse","GetDamgedPrdouctDetailList","GetDamgedPrdouctDetailList_CSV","GetProductDetailDashboardByFilter","DispatchedProductToWareHouse","FiltersData","GenerateProductPdfChallan","ProductId","ContentType","OrderAcceptedMark","productId","WrongProductReceivedOrdersService","ProductReplacementOrdersService","oPageIndex","oPageSize","allOrdersPageListCount","allInventoryPageListCount","productImg","invoiceImg","endOf","outsidedateRangeChange","applyOrderFilter","disableCreateButton","DisableCreateButton","warehouseitemlist","OpenResubmitReplaceModel","resubmitreplacedetails","resubmitReplacementId","ResubmitReplaceModel","closeResubmitRequestUpdateModel","resubmitstrReplacementComment","ResubmitProductReplacementRequest","Resubmit_Form","resubmitreplacementreasondata","strProductReplacementId","strReplacementComment","strReplacementReason","resubmitrelacementoption","OpenRequestUpdateModel","requestId","requestIdTobeReturn","RequestUpdateModel","closeRequestUpdateModel","PackageDetails","TrackingLink","strPackageId","strPackageTrackingId","strShipmentId","uploadImageForNotice","checkPDF","pt","trackingStatus","GetProductReplacementDetails","replacementId","trackingDetails","activitytimeline","listApprovalTrail","PDFView","pdfimage","IsLoadSucessfull","taxInvoiceModel","PDFViewOfReturnChallanDoc","PDFViewOfShipmentDoc","page","PDFUserModal","ImageViewOfShipmentDoc","ImageViewOfInvoice","ActionToBeTaken","Request_Update_Form","strPackageStatus","datePackedOn","RequestModel","PackageAttachment","openTrackingLink","trackingLink","totalInvList","inventoryPerPage","InventoryPagination","changeAllInventoryPageListCount","AllInventoryTablePageChanged","SearchText","warehouselist","warehouseInvetoryList","clearFilter","IsWarehouseAlreadySelected","addCartMoreModal","partData","partId","strMMFPartId","partSKUId","strSKUId","partName","strPartName","GetWareHouseByPartId","openAddToCartModal","OrderStatus","SelectedOrderStatus","DateField","ProductName","SortType","searchTag","OrderId","DamagedType","orderDashboardCount","setSelectedFilter","OpenOrderAcceptConfirmation","AcceptOrderModel","closeOrderAcceptConfirmation","totalOrderList","ordersPerPage","OrdersPagination","changeAllOrderPageListCount","AllOrderTablePageChanged","orderInvetoryList","productDetails","Count","DamgedAttachment","InvoiceImage","orderListLength","opageindexCount","OpenTicketView","ticket","clearWrongProductListFilter","csvData","createElement","download","revokeObjectURL","Acceptancemodel","requestDetails","showPartDetails","AllRequestDetail","updateStatusModelOpen","CloseAcceptanceModel","UpdateOrderStatus","GetSalesOrdetailByTicketId","orderId","GetShipmentOrder","salesOrderNumber","GetOrderInvoiceByOrderId","WareHouseOrderDetailViewService","ManualAssignationJobService","JobTicketViewService","inventorynewService","ReportService","NokiaTableHeaderChange","TicketOrderId","picture","order_id","SearchTag","isDefective","isShow","showEditList","showAction","dataFilters","CancellationReasons","IsCommissionDetect","urlForNonFeasible","dtInstanceNearBy","dtInstanceFixed","dtInstancePre","SparePartAddress","disableBroadcastButton","disableRouteButton","IsChatEnabled","showPrefer","disabledDrop","showloading","ComplianceDisable","PincodeEnabled","passSerialNum","PrivateDisable","messageText","LineItemDataList","LineItemImage","edit1","BonusPenaltyList","BonusList","PenaltyList","ShipmentDetails","PercentageEnable","IsFinalApproval","StockCountToAssign","PartActionType","feedbackremark","PlannedClosureDateType","WithInDays","WithInDaysNumbers","IsSafetyAudit","ratingwarning","approvalRemark","MaterialStatusList","IsMaterialDelivered","SelectedMaterial","ZOHOWarehouseName","sortType","orderBy","itemValue","userPageListCount","financePageListCount","defectedPageListCount","brandName","productGroup","BrandListName","allSalesOrderPageListCount","allHistoryOrderPageListCount","dateField","ticketdates","ticketranges","ApplyFilter","activeTab","activateTab","tab","Ticketdetailsview","TrackingDetails","Ticketdetails","OrderInvoiceDetails","DashboardURL","CronUrl","getDummyData","getDummyTableData","getCustomerReport","reportname","getChart","chartType","metrics","dimensions","rollUp","filterKeys","filterValues","chartName","isData","encodeURI","getUsers","mailReport","toList","ccList","bccList","subject","reportName","userID","filterKey","filterValue","reportInMailBody","rollUps","TOList","CCList","BCCList","Body","Subject","ReportName","FilterKeys","FilterValues","ReportInMailBody","RollUps","scheduleReport","RescheduleReport","downloadReport","filterName","checkReportName","widgetCanvasService","createdRow","report_data","metricsCharts","tableArray","profileImg","filename","deepLink","valueClass","report_title","attachReportInMailBody","attachReportInExcel","filter_key","filter_name","additionalInfo","defaultMailBody","creationDatefunc","accountCreationDate","tableCharts","rollup","dateArray1","dateArray2","dateArray3","shareModel","selectedUsers","scheduleModel","every_15_days","start_of_day","end_of_day","scheduleTime","scheduleName","reportNameAlreadyExists","reportNameMendtryErr","toListMendtryErr","timeMendtryErr","sampleDateMendtryErr","pull_data","range","week","quarter","current_month","specific","specific_day_value","calculate_range","chartId","rachit","buildColumnBuilder","plotHistory","ticketHistory","getReportName","report_name","reportLayoutCallback","matricsCount","tableCount","tableNames","tableOrder","matricsIds","chartModel","ClickableColumns","cl","Link","ColumnName","KeyName","UIClasess","ClassName","ChartType","ChartId","Metrics","Dimensions","ChartTitle","table_name","reportNameParam","toggleContextMenu","contextMenuVisible","getReportTitle","ShareReport","ShareModal","closeShareReportModal","createwidget","widgetcreate","closecreatewidet","ReportFilter","FilterModal","closeReportFilterModal","ScheduledReport","ScheduledReportModal","closeScheduledReportModal","selectedOptions","getUserSuggestion","re","searchAsOr","searchText1","entry","splittedText","trim","removeSelectedUsers","matched","cancelledToListUser","cancelledCCListUser","cancelledBCCListUser","selectUserNameInToList","toUsers","selectUserNameInCCList","ccUsers","selectUserNameInBCCList","bccUsers","user","checkName","sampleEndTime","splittedtime","contentMedtryErr","schedulerModel","specificDayValMedtryErr","addMoreFilter","SelectedSkills","SelectedLocations","SelectedAccount","getAllAccountsExceptHD","removeAddmoreEditList","openDilogforDelete","deleteIndex","closeopenDilogforDeleteModal","UpdateAllHDAccountConfig","checkAccount","CentralHelpdeskConfigService","dataSets","columns","Categories","getKeyByValue","firstColumntKey","ancharStr","Values","GetWareHouseById","warehouseId","GetAllWareHouseManagerList","CreateWareHouse","warehouseModel","UpdateWareHouse","DetachWarehouse","teamCardService","WareHouseListService","PlanningResourseMapService","DashboardService","rowCallback","nRow","aData","iDisplayIndex","iDisplayIndexFull","defered","getallCities","CityList","FilterSwitch","skillsArray","userIndex","filteredProperties","imageServices","CreateWareHouseModel","asset","createwarehouseModelOpen","CloseWareHouseModel","warehouseType","warehouseName","addressLine1","addressLine2","pincode","UpdateWarehouseModel","updatewarehouseModelOpen","CloseUpdateWarehouseModel","getAllSkills","GetAllCircles","AddTeamMember","ProfileView","userid","selectedOption","editTeamMember","hideoverlay","myvalue","userClass_status","userSingle","close360View","OpenWarehouseInventoryList","warehouseID","DeactivateUser","userInfo","updateUserStatus","UserStatus","ActivateUser","checkboxVal","teamMember_name","ProjectCheckBox","Project","skillCheckBox","Capture","Locations","statusCheckBox","teamLists","allStatePromise","StateList","selectedState","OpenDetachModal","detachWarehouseId","AllocateModal","closeDetachModal","strWareHouseId","strAddressLine1","strAddressLine2","bIsWareHouseActive","strManagerId","WarehouseManagersList","ActionType","AllWarehouseData","WareHouseId","strWareHouseName","strWareHouseType","AllocatedManager","strState","strCity","strPincode","Location","strLocation","IsWareHouseActive","ActivateOrDeactivateWareHouse","reloadData","warehouse_form","warehouse_update_form","newStatus","warehouseActiveModel","GetInventoryByWareHouseId","GetInventoryByWareHouseId_CSV","GetInventoryDashboardByWareHouseId","AddInventoryToWareHouse","WareHouseItemListService","InventoryCartService","InventoryItemListService","createItemMoreModal","GetAllVisibleMasterParts","moreitemModal","closecreateItemMoreModal","selectedPart","StockType","setSelectedItem","newFilter","nTotalDeadStock","nTotalGoodStock","addNewFilter","filter","resetNewFilter","saveFilter","deleteDataFilter","clearError","clickselectedPart","inventoryData","sideViewData","sideViewPartImage","strPartImages","sideViewPartLength","TrainingImageServices","TrainingImagebase64","MMFPartName","ProductGroup","PartSubGroup","ListMMFPartModelRes","RecordCount","inventoryListLength","PartName","PartCategoryGroup","PartBrand","InvetoryDashboardData","masterInvetoryList","GetItemBrandName","BrandList","GetItemGroupName","PartNameList","changeCategoryFilter","GetItemListName","PartList","PartListWithFilter","GetItemPartName","GetTicketsByStatus","GetActiveUser","GetListAllFreelancers","GetAllFreelancersWithFilters","itemNames","itemValues","AutoBroadcastAllNewJobsManualMode","ticketIds","PullBackJob","callToTechnicianApi","callToTechnicianInBroadcastState","GetAllWorkOrderJob","getAccounts","GetTicketsById","GetAllSkills","GetReasonsByStatus","GetTicketsByFilter","GetUsersByFilter","AssignTickets","ticketList","GetBidReceivedByStatus","GetBidDeny","GetBidSentByStatus","userfilter","GetFeedbackByUserId","GetBroadcastedBids","AssignReceivedBid","BroadCastJobs","GetUsersByRole","GetAllVendors","GetFreelancerVendorsByFilters","GetFixedVendorsByFilters","GetTicketsByUserId","RouteJobsforUser","getAllStateTech","getRejectHistory","getAllJobTickets","supervisorId","textItemNames","textItemValues","templateCols","templateItemNames","templateItemValues","SortField","getAllJobTicketsCopyForPagging","GetAssignedTicketforUser","GetSchedulingEvaluationResult","GetAllPrefereTalentPool","GetAllTechnician","BroadCastJobsforUser","AcceptJob","getPdfReport","ticketID","PullBackTicket","RejectJob","ConvertToNewJob","UpdateHoldingStatus","holdingStatus","reason","Remark","downloadOnSiteReport","GetCancellationReasons","GetPullBacknReasons","GetUserFeedbackOption","GetUserByReportingTo","PullBackTicketFromTechnician","CancellationReasonsModel","UserDataUpdateRequest","UserPenaltyUpdate","UpdateJobServerCancel","SendCancelCodeToCustomer","SendCodeModel","TBCCancelationAudit","updateTicketSettlement","UpdateFollowUpReason","AddSiteAuditwithAttachment","getFixedUserInfo","getJobsByUserId","GetAvailableSlots","selectedDate","BookSlotForSMEInterationWeb","slotIndex","BookSlotForBGVerification","GetFreelancerJobs","GetCustomersByAccount","GetAllInteractions","GetAllInteractionsDashboard","GetReportingToMeUsers","AssignSlotInteractionToUser","InteractionType","SlotAllocationService","SMEInteractionService","OnBoardingFlowService","uiCalendarConfig","loggedinUserRole","jobTickets","TicketReponseModelList","jobsCount","totalJobs","jobspagination","uPageIndex","uPageSize","jobStatusForPaging","preprocessData","jobsPageListCount","jobsMaxcount","jPageIndex","jobsStarIndex","locationCount","locationToolTip","SkillSetCount","SkillSetToolTip","OneJobSkillSetCount","OneJobDoneSkillSet","OneJobSkillSetToolTip","VendorLocationsCount","VendorLocations","VendorLocationsToolTip","VendorSkillsetsCount","VendorSkillsets","VendorSkillsetsToolTip","ratingStars","getRatingStars","Ratings","blankStars","getBlankStars","exp","flightPath","recordRating","selectedIndex","userRating","starRating","classList","displayTotals","barChart","querySelectorAll","numRatings","numRatingsValue","reverseBarChart","reverseRatingTotal","getAttribute","ratingsAverage","loggedinUserSkill","broadcastSentUser","toggleForBroadcast","timeLineDetail","openTimeLine","manualAssignationWrapper","toggleMenu","hideAllUser","showAllUser","hideAllUserbutton","userFilter","minatureSlide","closeFeedbackoption","close360ViewBroadcaste","assignJobFilter","minatureSlideBtn","hideFilter","IsOpenBucketEnabled","IsAutoAssignToCHDteam","loggedInUserVendorId","loggedInUser_VendorId","loggedInUserReportingTo","loggedInUser_ReportingTo","sorttype","InteractionList","assignButtonDisable","bGVerifyListLength","statusList","AssignedTo","slotStatus","userskill","disableuploadbutton","bookingdates","bookingRanges","Till now","ClosureDateTime","eventsF","timezone","m","events","allDay","className","scheduleStartDate","scheduleEndDate","slotBookingdates","showCalendar","showBookingTab","slotDate","toggleCalendar","slotBookingUserId","dateClicked","dateOptions","formatYear","startingDay","maxDate","GetFinanceTicketDetail","paymentId","financedetails","CustomerAcc","getAllProject","ProjectAcc","GetCustomerByAccount","SelectedAccountId","HDAllAccounts","account","CustomerList","GetProjectByCustomer","ProjectListByCust","SearchByCName","GetProjectByCust","ProjectListByCustomer","ProjectList","prject","AutoBroadcastJobs","DisableBroadcastButtons","confirmationMessage","autoBroadcastJobIds","confirmationModalInstance","confirmationCloseModal","disableBroadcastCloseButton","AutoScheduleJobs","FilterArray","callToTechnician","workOrder","activeRow","workOrdertList","getDetailsList","openHistoryModel","CloseHistoryModel","PullBackJobs","pullBackJobIds","JobIdsforPull","alertOnDayClick","alertMessage","alertOnEventClick","jsEvent","view","alertOnDrop","delta","revertFunc","alertOnResize","addRemoveEventSource","sources","canAdd","addEvent","changeView","calendar","currentView","calendars","fullCalendar","renderCalender","eventRender","uib-tooltip-append-to-body","uiConfig","editable","displayEventTime","left","right","dayClick","eventClick","eventResize","uib-tooltip","businessHours","dow","eventSources","Availibility","showAvailability","AvailableUserData","AvailibilityUS","DisableRouteBroadcastButtons","brodcastButtonDisable","routebuttonDisable","GetNewJobs","NewJobs","date2","CreationDate","Age","MetrialDeliverStatus","IsDissablePermision","stars","loadAllSkills","skillsWithPipe","applyFilterForUser","usersStatus","filterToggle","Type","filterType","toDate","fromDate","OrderSeq","listofActiveUsers","sortColumnUser","reverseclass","sortClassUser","GetAllFreelancers","freelancerUsers","GetAllFreelancerVendors","FreelancerVendorUsers","bool","checkAll","checkAny","showCheckAny","freelancerCheckAny","GetTicketById","JobProfile","removeFilters","isChecked","teamIteamNames","teamIteamValues","fixedUsers","broadItemNames","broadItemValues","BroadcastedJobs","vendorList","supervisorList","searchform","SearchModal","tabNo","getAssistedSuggestion","ticketStatusCheck","showRouteBroadcast","ShowManualBroadcast","TicketSelectedForAssistedSuggestion","broadcastTicketId","UserSuggestionList","StoreUserSuggestionList","Attendence","AttendenceList","Distance","IsMMFPrimeMember","OneJobDoneOnSkill","GetFreelancerSuggestions","showMode","isReceived","getFLprofile","selectedUserId","closeAssistedSuggestion","JobTotal","jPageSize","filterStatusForJObs","JobcountbyStatus","wsersFilterArray","Get360WorkSummary","witemNames","witemValues","wsSDate","wsEDate","getJobsSuggestion","itemNamesSgtn","itemValuesSgtn","suggestionList","GetTicketDetailsBySuggestion","GetTicketDetailsByValue","openComboModal","CloseComboModel","bundlesum","openBroadcastmodal","broadcastError","jobselected","includes","BroadcastModal","closeModal","openBroadcastmodalforFV","broadcastErrorFV","jobselectedFV","BroadcastModalFV","OpenBroadcastModelToFV","closeModalFV","vendor","UserTypeList","getJobAllStatus","StatusName","slideAssistedSuggestion","closeFLprofile","slideF","closeSlide","Applyfilter","OpenFilterModel","FollowUpModel","OpenFollowUpModel","CloseFollowUpModel","primaryFollowUpReason","primaryFollowUpRemark","primaryHoldReason","primaryHoldRemark","followFiles","attachmentForFollowUp","DocEdit","TicketFollowUpWithoutDoc","ModelInstanceOfMap","trackingTicketId","TicketBreachValueconver","TicketBreachValue","TicketBreachValueInString","OpenTracking","Tracking","CloseTracking","sortColumn","sortClass","searchTicket","ResetTicketFilter","closeSearchText","SearchByConsumerName","AssigedTo","open360ViewBroadcaste","Userpagination","getUsersByTickets","Get360TeamProfileData","teamid","Get360ProfileData","teamdata","AvgRating","userProfile","AverageRating","ReviewsList","Reviews","avgratingStars","getAvgRatingStars","avgblankStars","getAvgBlankStars","userratingStars","getUserRatingStars","Average","userblankStars","getUserBlankStars","arrayRating","blankRating","totalWS","wsPerPage","changeUserPageListCount","WSTablePageChanged","ratingTotal","star","addEventListener","countForStatus","Get360VendorTeamData","vendorteam","GetUsersTicket","userIdforStatus","statusForTickets","getAllJobTicketsCopyForUsers","UserticketList","LightTicketModels","statusCount","wsTicketList","workSummaryData","WorkSummaryTotalCount","wsListLength","wspageindexCount","FinanceFiltersList","GetFinancialSummary","fnitemNames","fnitemValues","fPageIndex","fPageSize","paymentCount","paymentsSummary","financialSummary360","financialLPSummaryList","totalFinList","financeListLength","fpageindexCount","ResetUserFilter","getFileType","Get360SkillSummary","skillsetData","CertificateDetails","CertimageServices","TrainingCertificate","PreviousCompanyDetailsList","ExperienceLetter","PreviousCompnyExperienceLetterServices","UserTrainingList","TrainingImage","TrainingAttendance","TrainingAttendanceServices","GetReviewAndRatings","reviewData","InstallationratingStars","behaviourRating","InstallationService_Avrage","InstallationblankStars","SafetyratingStars","SafetyProtocols_Avrage","SafetyblankStars","VisitratingStars","VisitonTime_Avrage","VisitblankStars","CourteousratingStars","CourteousRespectful_Avrage","CourteousblankStars","ProratingStars","ProfessionalAppearance_Avrage","ProblankStars","ServiceratingStars","ServiceExperience_Avrage","ServiceblankStars","GetToolsAndAssets","assetData","implementSelectItemsUsers","selectAllUsers","showMinusUsers","selectRowUsers","toBeAssigned","myObject","VideoUploadPopup","UserSkill","UserIdForVideo","UserSkillForVideo","VideoModel","uploadVideoFile","FrontFileName","FilesFrontDoc","skillrating","setRating","UploadSMEVideo","Feedback","FeedbackRemarks","Rating","UploadSMEInteractionVideo","VideoUploadPop","UploadBGVideo","UploadBGInteractionVideo","totalTableUsersBG","userSMETablePerPage","UserSMETablepagination","changeUserSMEPageListCount","UserSMETablepageChanged","userTablePerPage","join","FromDate","ToDate","PageCount","GetInteractionResModelList","TotalSlots","AssignedSlots","PendingSlots","CompletedSlots","BreachedSlots","UserByFiltersList","ProfileEditView","getAllUsersByType","getAllSlotsByStatus","AvailableSlots","objAvailableSlotModelList","selectedTimeSlot","SlotId","disableBookingButton","items","filtered","searchstr","match","User_Type","InviteTeamForRegistration","ContactNo","GetInvitedTeamForRegistration","ActivateVendorTeam","userIdtoUpdate","VendorTeamCreationService","ProfileData","preProcessUsers","CustomerRating","displayName","locs","allSkills","workareas","w","allWorkareas","getAllUser","Picture","userData","LunchSchedule","UpdateLunch","closeUpdateLunch","Get360TeamView","userNameSearch","RedirectToConfiguration","Get360AuthorizedDetail","GetAuthorizedServicePartnerDetail","authorizeDetail","GetLastFollowUpOnTicketId","FollowupListArr","fdetail","FollowUpOnTicket","FollowupList","isUpdating","destroy","DetachUser","updateDetachStatus","openTeamProfile","ContactName","getStatusClass","UserName","AddTeamMemberModel","teammemberadd","CloseAddTeamMemberModel","AddTeam_form","invitedteamlist","$applyAsync","VendorTeamCreateService","saveAndNewFlag","editMode","address_option","officeFormValidation","isUserDetailCollapsed","isOfficeUseCollapsed","age","maxDOB","maxDOBStr","toDateString","InvitedTeamExploreList","GetVendorById","vendorId","save","VendorProfileService","vendorInfo","BGDocList","BGVerificationDocPath","Tools","BGDocType","DocumentType","DocumentName","BDDocSubType","DocumentPath","TrainingAssessment","trainingIndex","TrainingList","vendorData","ActivationStatus","pathtcertificate","addTraningCertificateName","CertificateNo","CertificateIssueDate","CertificateExpiryDate","sparkline1","qualificationList","last30Years","experienceList","brandList","currentYear","sparkline1Options","lineColor","fillColor","dtOptionsDocList","dtColumnDefsDocList","uploadBGFile","DocumentPath1","DocumentName1","prepareUserData","issue","expry","issuedate","_d","exprydate","finalModel","DOB","EmailId","MobileNumber","AddressLine1","AddressLine2","PINCode","ReferralUniqueKey","CurrentPinCode","FatherName","AlternateNumber","AlternativeContactNumber","PAN","AdharNo","IsMobileAvailable","IsLaptopAvailable","IsBikeAvailable","saveTrainingAssessment","AuthorizedBy","saveBGDocs","getAllCertificate","GetAllCertificate","AllCertificateSets","addMoreTCertificate","CertificateName","CertificationYear","AssessmentLevel","removeCurrentCertificate","addMoreCertificateInTable","getCertificateSets","RemoveCertificate","remainingCertificate","uploadCertificateFile","traning","GetVendorTeam","BlockedVendor","PreferredSingleVendor","GetTicketsByVendor","UserAgreement","GetUserId","getFreelancerHistory","GeneratePdfSelfDeclaration","GeneratePdfVerificationReport","NewVendorProfileService","ActiveUserService","base64ToArrayBuffer","base64","ret","binaryString","atob","binaryLen","Uint8Array","ascii","charCodeAt","CustomDateformat","OnlyDateformat","VendorId","CertificateprofileImg","DocumentprofileImg","dtInstanceticket","AccountHistoryData","teamProfileList","TechnicianDetailsView","UserRole","teamprofileImg","teamCertificateprofileImg","teamDocumentprofileImg","VerificationCertprofileImg","teamVerificationCertprofileImg","TrainingAttendancebase64","PCExperienceLetterbase64","ExperienceVerificationReportbase64","TeamTrainingImagebase64","TeamTrainingAttendancebase64","TeamPCExperienceLetterbase64","TeamExperienceVerificationReportbase64","CriminalVerificationbase64","TeamCriminalVerificationbase64","teamimageServices","VerificationCertimageServices","teamVerificationCertimageServices","CertificateimageServices","TeamCertificateimageServices","DocumentimageServices","teamDocumentimageServices","InsurenceImg","InsurenceimageServices","VerificationReportPath","InsuranceDetails","InsuranceImageURL","PreviousCompanyAuditList","AuditReportDocPath","ExperienceVerificationReportServices","CriminalVarificationObj","verificationReport","CriminalVerificationServices","customerrating","Team","TeamClose","TeamPreviousCompnyExperienceLetterServices","TeamTrainingImageServices","TeamTrainingAttendanceServices","TeamExperienceVerificationReportServices","TeamCriminalVerificationServices","blockedvendor","BlockedVendorModal","blockvendor","backlistVendor","backToVendorList","OpenPdfModal","PdfPathName","TypeName","PDFViewGeneratePdfSelfDeclaration","PDFViewGeneratePdfVerificationReport","TeamPDFViewGeneratePdfSelfDeclaration","TeamPDFViewGeneratePdfVerificationReport","PDFViewLegalContract","PdfPathNames","TypeNames","ConvertBase64ToBlob","Base64Data","arrrayBuffer","DocumentAvailableMessage","WordDownloadtoView","dts","addpreferredvendor","AddPreferredVendor","AddPreferredVendorModal","preferredSingleVendor","agreement","Agreement","IsLoadSucessfullAgreement","AgreementUserModal","CloseAgreementUserModal","policyModel","agreementview","uri","Content","dec","decodeURIComponent","RechargeHistory","RechargeModal","Email","CloseRechargeModal","Infra","InfraModal","CloseInfraModal","Training","TrainingModal","CloseTrainingModal","withClass","dtOptionsSkill","dtColumnSkill","TicketHistory","TicketModal","CloseTicketModal","EditVTeam","RegistrationNo","EditVendorTeam","GetTicketByVendor","dtOptionsticket","dtColumnDefsticket","dtOptionsTeam","dtColumnTeamDefs","dtOptionsInfra","dtColumnInfraDefs","dtOptionsTraining","dtColumnTrainingDefs","getCountry","getStates","createVendor","updateVendor","VendorCreationService","clearFormFields","vendorName","address1","address2","emailId","mobileNumber","otherMobile","gender","stateList","cityList","VendorRespData","selectState","OtherNumber","vendor_form","vendorModel","VendorCode","vendorCode","GetAllStates","Getstate","CircleList","selectedCountry","countrylist","UpdateVendorStatus","VendorListService","GetVendorDataById","profileData","EditVendor","UpdateActivation","HelpDeskHomeAdminService","HelpDeskCustomerViewService","SMS","AllBookingList","InApp","PaymentSectionService","makeMarker","accCheck","jobCardId","feedback","details","showDetails","hideDetails","getReadableDate","getCustomerJobCardById","consumername","consumerAddress","ConsumerAddress","MMFPrimeMember","IsVaccinated","ConsumerOTP","NumberToCall","CallInitiate","FERating","mapMarkers","clickToCall","GetJobsSetupForDemo","CreateJobsUtility","jobStartDate","CleanupJobs","cleanupdate","CreateSlot","ToolUtilityService","SelectedJobDate","timepicker","DisplayCleanupJobDate","openCalendarCleanupjob","Cleanupjobs","getJobCountandSkill","CountandSkillList","CleanupJobDateFormat","_date","sdate","CleanupsJobs","_cleanupdate","_createslotDate","CreateTicket","Data","TicketFormService","complaint","Issue","first_name","last_name","phone","selectSubRegion","selectCitySubRegion","subregion","saveForm","TicketType","Country","CallType","Image","sectionMap","registration_form","uploadImageFile","fileUploadError","scopeMsg","activatingUser","uniqueKey","ThankyouService","user_unique_key","PersonalEmail","failed","errMsg","emailName","CreateSubRegionMaster","CreateRegionMaster","GetAllSubRegion","GetAllRegions","TerritoryMappingService","disableCreationButton","dtInstanceSubRegionModal","searchSubRegionModelText","dtInstanceRegionModal","searchRegionModelText","AddSubRegionModelOpen","addsubregion","CloseAddSubRegionModel","SubRegionName","SubRegionState","SubRegionCity","SubRegionBranchCode","AddRegionModelOpen","addregion","CloseAddRegionModel","RegionName","RegionSub","FilterSubRegion","FilterLocationName","searchSubRegionModelTable","dtOptionsSubRegionModel","LocationName","subregionList","dtColumnsModel","BranchCode","refreshSubRegionTable","GetAllSubregionFilterForLocation","GetAllFilterSubRegion","AllFiltersubregion","AllFilterLocationname","clearsubregionfilter","searchRegionModelTable","dtOptionsRegion","FilterForRegion","FilterRegionSUb","regionList","dtColumnsRegion","refreshRigionTable","GetAllFilterRegionSub","GetAllFilterRegion","AllFilterRegional","AllFilterRegionalSub","clearregionfilter","AddSubregion_form","AddRegion_form","RemoveSubRegion","RemoveRegion","CloneTemplateController","Cloning","cloneTemplate_form","TemplateDescription","cloneTemplateData","currentPage","pageSize","availableSearchParams","placeholder","getAllTemplate","editTemplate","goToCreateTemplate","CloneTemplatePopUp","even","templatedescription","TerritoryMangementService","isRegionCollapsed","isSubRegionCollapsed","isCountryCollapsed","bihar","chennai","uttarPradesh","banglore","maharashtra","karnataka","delhi","northBihar","southChennai","westUP","eastUP","southBanglore","india","nepal","srilanka","ExpandRegion","ExpandSubRegion","ExpandCountry","country","terminalType","locationType","selectedCity","countryList","allStates","India","Nepal","Sri Lanka","allCities","allPincodes","updateLocationLists","filteredStateList","countryfilter","filteredCityList","filteredPincodeList","techlist","AddTerriortyModelOpen","modalAction","addterriorty","CloseTerriortyModel","territoryName","ParentTerritory","calendername","ResponsibleOwner","isTerminal","servicelist","deleteregion","deatchregion","CreateCase","dialertask_form","GetDashboardData","ReturnPrimeMemberAmount","UpdatePincodeSkillAccountId","DeleteAuthorizedServicePartnerByUserId","UpdateUserSkillS","DeActivateUserWithRemark","CreateCaseForTechnician","dataToSend","AddAuthorizedServicePartnerForWeb","UploadMedia","GetPaymentsForUser","GetPayoutsForTechnician","GetDepartmentDetails","GetAllMasterDataOfServiceCenter","GetAllProductDetailInMaster","GetAllCasesForTechnician","UpdateUserLockProfile","UpdateCaseForTechnician","GetSkillRecommendationsForUser","GetAllActivityForTechnicianCase","caseId","UpdateUserBGVerificationDetails","addressProof","identityProof","TeamFormCreationService","TechnicianViewService","PincodeFinderService","AllUsersListService","NgMap","CentralHDTicketsViewService","clearTicketMarkers","ticketMarkers","clearPinCodeMarkers","pinCodeMarkers","deleteTicketMarkers","deletePinCodeMarkers","toggleBounce","setAnimation","Animation","BOUNCE","CallPatchEnable","bIsMMFInventoryCRM","selectedTemplates","PaymentStatus","SettlementStatus","readyRaisedI","GroupType","editPermission","DocumentbackImg","reasonsForFU","convertNewReasons","convertNewReasonsRemark","MoveSPDbyTwoDays","RejectionRemark","IsSearch","signatureUploadError","trainingUploadError","authorizationUploadError","closureCode","SearchByIs","SearchByDiscription","SearchByTName","SearchByTContact","SearchByPName","SearchByTicketId","InvoiceStatus","autoScheduleOn","IsAutoSchedulerOn","loggedInAs","aproveMessage","ticketListLength","SiteAuditFileName","TicketDataToRaiseInvoiceList","pullBackReasons","pullBackReasonsRemark","IsWithInDays","fTPageIndex","fTPageSize","uType","uitemNames","uitemValues","searchUsersText","financeTechPageListCount","ResetFilter","searchLabText","getAllJobTicketsCopy","caseDetails","Openresolveraise","caseDetail","raiseresolve","closeraiseresolve","isEditable","TrackingSidePanel","CaseIdForTrack","CaseId","CaseActivityInfo","OpenDeleteCertificateModal","Servicepartnerid","servicePartnerId","DeleteCertificate","CloseCertificateModal","ServicePartnerId","AddCertificateModelOpen","addcertficate","CloseAddCertificateModel","productserving","TeamSize","Tenure","ServiceCenterAddress","AuthorizationFileName","TrainingFileName","PhotoSignatureFileName","AuthorizationDoc","TrainingDoc","SignatureDoc","attachAuthorizationDoc","filesArray","uploadFiles","attachTrainingDoc","attachPhotoOfSignature","fileObj","AddAuthorizedServicePartnerDetail","BrandNameOther","ProductServing","CertificateOfAuthorization","PhotoOfWorkPlace","GetAllActivitiesForUser","UserActivityInfo","GetNewPincodeOfSelectedSkill","newselectedSKill","PincodeNewOpportunityModelList","newskillset","newPincodeSet","PincodeOpportunityModelList","GetPincodeOfSelectedSkill","selectedSKill","PincodeExistingOpportunityModelList","skillset","existingPincodeSet","recommendationData","totalTableBundles","ApprovedJobCount","AssignJobCount","BroadcastJobCount","CancelJobCount","CompleteJobCount","TotalJobCount","HoldJobCount","InTransitJobCount","OnSiteJobCount","InProgressJobCount","CancelCustomerVerified","NewJobCount","ReadyToAssigJobCount","RejectedJobCount","ScheduleExceptionJobCount","AddressExceptionCount","PriceExceptionCount","ItemInventoryRaised","ItemInventoryDelivered","InvoiceRaisedCount","InvoiceNotRaisedCount","BroadcastCountTickets","expandAll","expanded","DocumentimagebackServices","aadhaarImageServices","adhaarImg","cancelledImageServices","cancelledChequeImg","applicationformImageServices","applicationFormImg","gstImageServices","GSTImg","panCardImageServices","panCardImg","payoutImageServices","payoutImg","ShopLicenseImageServices","licenseImg","tanNoImageServices","tanNoImg","videokycName","videokyc","DocumentPathBack","serviceCenterData","AadharDoc","CancelCheque","ApplicationForm","GSTCertificate","PANDoc","PayoutStructure","ShopLicense","TANCertificate","PermanentState","PermanentCity","useraccount","contactNumberSearch","removeKycVideo","removeKycVideoModel","CloseRemoveKycVideo","deleteVideoForKyc","totalUsers","usersPerPage","UsersFilterArray","applyUserFilter","categories","subcategories","Updatecategories","updatedname","Updatesubcategories","selectedCategory","selectedSubcategory","IssueDescription","CaseResolution","CaseStatus","IssueRelatedTo","ActualIssue","complaindetail","toggleEdit","ConsumerId","ProductOrService","updatedCategory","updatedSubCategory","DepartmentAssignedTo","CaseOwnerId","updatedsubCategoriesList","CaseDescription","toggleEditNew","financePerPage","Financepagination","changefinancePageListCount","FinanceUserTablePageChanged","pageParams","paymentStatus","totalItems","totalFinTechList","financeTechPerPage","FinanceTechpagination","changefinanceTechPageListCount","FinanceTechTablePageChanged","paymentfortechnician","financeTechListLength","fTPageIndexCount","usersTablePerPage","jobstartDate","jobendDate","DashboardData","DepartmentList","MasterServiceBrandList","BrandNameList","MasterServiceProductList","ProductNameList","consumers","userListLength","upageindexCount","OpenDeactivateConfirmationModel","openDeactivateModel","closeDeactivateModel","DeactivationRemark","Deactivation_Form","BlockComment","OpenSkillRemovalConfirmationModel","skillToBeDeleted","openSkillRemovalModel","closeSkillRemovalModel","OpenPincodeUpdateModel","UpdatedPincodeSet","openPincodeEditModel","closePincodeUpdateModel","OpeSkillUpdateModel","UpdatedSkillSet","openSkillEditModel","closeSkillUpdateModel","getAllSkill","deleteSkillFromUser","UpdatePincodesInUserProfile","pincodeList","OpenRefundConfirmationModel","openRefundModel","closeRefundModel","disableRejectButton","UpdatedCaseForTechnician","dataToUpdate","AssigneToTeam","AssignToDepartment","pitemValues","ticketFilters","Approved","Cancelled","Completed","Assigned","pincodeFilters","InProfileNoJobs","InProfileWithJobs","NotInProfileWithJobs","NotInProfileNoJobs","sortReverse","sortBy","column","GetPinCodesAndJobInfo","getMap","getRadius","num","sqrt","backprvpage","freelancer","vendorTeam","highlightRow","selectedPincode","showMapWithUser","techData","latLng","FixedLatitude","FixedLongitude","contentString","FixedGeoLocation","infowindow","panTo","setZoom","GetMaxJobServedDistance","onSliderMouseUp","pincodesWithJobsInProfile","pincodesWithoutJobsInProfile","pincodesNotExist","pincodesWithJobsNotInProfile","bouncingMarker","showMapWithTechBasedOnPincodes","infoWindow","circleCenter","circleRadius","DistanceBetween","strokeOpacity","strokeWeight","fillOpacity","radius","userslistbyTkt","myLatlng","InProfile","JobCount","selectedMarkerIndex","scrollToRow","fitBounds","openInfoWindow","rowId","GetFreelancerDataByUserId","fetchdataModel","Range","JobsFromDate","JobsToDate","ItemNames","DataFeild","updatePincodesMapIcons","OverAllInfo","TicketListByFilter","WorkSummary360Data","PinCodesInfoList","mapType","showMapBasedOnTickets","UpdateIdConfirmation","orderData","actionType","updateidconfirm","closeUpdateIdModel","AddressProof","IdentityProof","ticketPlot","TicketID","JobsStatus","showTickets","showPincodes","showAllTickets","displayAllTickets","updateMapIcons","updateOptionalMapIcons","directive","ms","secs","mins","CRMTeamFormCreationService","allCRMTeamPageListCount","filterRole","totalCRMteamList","CRMTeamPerPage","CRMTeamPagination","changeCRMTeamPageListCount","AllCRMTeamTablePageChanged","GetCRMTeamByReportingTo","RoleFilter","crmteamlist","userRespnseModel","CRMTeamListLength","getAllRole","getAllRoleByUserId","RolesList","RolesListForSearch","UploadTeamCRM","ResetPasswordForTeam","refreshTable","GetAllRequestedPart","orderStatus","category","GetAllRequestedPart_CSV","GetUserInventoryStockforweb","GetInventoryDashboardByServiceCenter","UpdatePartDetails","InventoryDefectStockList","GetItemListNameWithId","TrackinDetailForDefectItem","trackingId","GetServiceCentenAndTeamStockData","PullBackStockToTechnician","GetAllWareHouseForExploration","MarkSalesOrderasDelivered","GetWarehouse","GetSalesOrder","salesOrderId","UpdateRequestInventoryJobLineItemStatus","lineitemId","updateStatusRemark","GetRequestedLineItemDetailsByTicketId","createSalesOrder","DirectPlaceOrder","ReturnOrderPlace","TransferInventory","viewReportPdf","fileName","GetUserInventoryStockCsvDownload","CreateInvoiceToStockAlllocationToFielEngineer","AllocateStockToFieldEngineer","GetAllPartsByTicketId","UpdateTeamOrder","TeamPartRequestService","TeamMyStockService","ServiceCenterUserId","lineItem","ServiceCenterVendorId","dPageSize","dPageIndex","ItemImage","requestPartDetails","OpenPartDetailPanel","PartDetails","NewItemquantity","OpenUpdatePartDetails","parts","UpdatePart","OldPartId","ZOHOItemId","PartsOrderId","ZOHOSalesOrderId","partdetailsedit","CloseUpdatePartDetails","isUpdateDisabled","selectedTicketId","NewPartId","PartListWithFilterwithId","item_id","updatepartsdetailsForm","morecartModal","closecreateCartMoreModal","lineItemPartData","OrderIdToPlaceOrder","quantity","increaseQuantity","decreaseQuantity","OrderUpdateReqModel","OpenOrderEditingModel","orderDataToUpdate","orderItemsDataToUpdate","lineItems","OrderEditingModel","addNewPart","strItem","toggleEditMode","orderpart","isEditing","part","item_name","backup","saveEdit","cancelEdit","newPart","increasePartQuantity","decreasePartQuantity","deletePart","closeOrderEditingModel","UpdateTeamPartOrder","orderItem","filteredOrderItem","strItemId","strItemName","nItemQuantity","objLIstItemDetaiList","WarehouseNameSelected","objItemDetails","partsData","MMFPartId","selectedWarehouse","OpenSidePanel","TrackDetails","assigntotech","AssignSidePanel","q","CountDetails","getPic","AssignStockModel","userDetails","createTaskModelOpen","CloseAssignStockModel","CountPopup","COuntTaskModelOpen","ClosecountpopupModel","SalesOrderPagination","changeAllSalesOrderPageListCount","AllSalesOrderTablePageChanged","orderdetailsview","salesOrderDetail","TicketPartOrderList","requestedPartInventories","csvRequestedData","totalDefected","defectedStockPageRequest","Requestpagination","changeMyDefectedPageListCount","usersPerPageRequest","MyDefectedTablePageChanged","GetInventoryDefectStockList","DefectiveStockList","inventoryDefectStocks","myDefectedListLength","dpageindexCount","MainActiveTab","setMainOrderStatus","mainTab","searchByText","AddDefectedStockModal","StockModal","closeDefectedStockModal","addTicketId","addType","addQuantity","allocatedetails","allocatedOrderId","closeAllocateModal","IsShipmentVisible","stockitem","slectedMystockitem","myitem","OrdercreateModal","OrderModal","closeOrdercreateModal","WareHouse","OrderType","GetTrackingDetailsByTrackinNumber","trackingNo","trackNo","trackingNumber","getTrackingDetailsList","lastTag","tag","TeamStockData","PartOwnerId","StockCount","warehouseExploreList","OpenStockTransferModel","partDetails","PartToBeTransferDetail","stockTransferModelOpen","CloseStockTransferModel","transferFromUser","transferToUser","transferQuantity","defectItems","TicketForAcceptance","acceptanceModelOpen","DefectedCount","submitForm","NameList","IetemName","MarkSalesOrderDelivered","SalesOrderId","Organization_id","AcceptanceProof","AttachedFileName","OpenReturnModel","ReturnType","ReturnRequest","ReturnOrderType","ReturnQuantity","returnModelOpen","CloseReturnModel","defectedTrackingId","WareHouseID","ReturnOrderStockType","Attachment","cardItemDetails","SKUId","SenderUserId","ReciverUserId","rejectpart","RejectModal","RejctShareModal","closerejectmodal","updateLineitemStatus","resetFilters","downloadCSV","alasql","OpenAllocateModal","allocate","IsVisible","createOrderData","wareHouseItemList","sendWdata","TotalInventoryAmount","ShowCreateShipment","listWdata","GetPartRequestOrderLineItem","JobLineItemId","ShipmentTicketId","OrderAmount","closeWarehouseModal","warehouseLineItemId","warehouseData","warehouseList","PartRequestLineitemData","BackendApprovalStatus","itemIdWithWarehouseModels","OrderList","salesorder","line_items","OpenLineItemData","lineItementry","LineItemData","hwData","warehouseDescription","warehouseQuantity","warehouseValue","viewInvoicePdf","InvoiceData","AddDeadStockToServiceCenter","damageStock","damageType","GetSearchServiceCenter","selectedServiceCenter","MaxLimit","validateStockCount","abs","nQuantityAvailable","totalInventory","usersStockPageRequest","changeMyStockPageListCount","MystockTablePageChanged","MyInventoryStockList","totalInventoryValue","InventoryTotal","myStockListLength","countdpageindexCount","consumerAllTicketsData","servicecenterData","MaxValue","warrantyType","WarrantyType","ReportingTo","TerritoryMappingModel","accNameLoac","accIdLoac","accLoac","navigator","userAgent","get_URL","webkitURL","save_link","createElementNS","can_use_save_link","node","MouseEvent","dispatchEvent","is_safari","HTMLElement","safari","is_chrome_ios","throw_outside","setImmediate","force_saveable_type","arbitrary_revoke_timeout","revoke","revoker","dispatch","filesaver","event_types","listener","call","auto_bom","FileSaver","no_auto_bom","object_url","force","dispatch_all","fs_error","onloadend","popup","readyState","DONE","INIT","opened","FS_proto","msSaveOrOpenBlob","abort","WRITING","onwritestart","onprogress","onwrite","onabort","onerror","onwriteend","self","exports","define","amd","getAllUserList","userdata","TechnicianUserId","getAllUserBySkillAndRating","byReportingToWithJobCountNew","bulkuploadService","getUserRating","input","orangeStarAdd","yellowStarAdd","yellowStarRating","whiteStarRating","whiteStarCount","starindex","whiteIndex","customerInfo","imageIndex","getUserRatings","customerStar","cust","averageRate","isNaN","skillSets","getSkillSets","previousIndex","skillList","RemoveSkills","remainingSkills","settings","setItem","sInstance","getItem","smart","caseInsensitive","visible","PermanentAdd1","PermanentAdd2","PermanentPinCode","saveBasicInteraction","getState","GetTicketStatusForTerritory","CreateUser","GetRegion","GetAllProductNames","GetAllSkillsForProduct","getAllPincode","GetReportingToUser","getAllReportingTo","getUserData","updateUser","getAllAccountsConfigured","getTerritoryPincodes","GetAllNotAllocatedWareHouse","email","phone_number","cores_address","father_name","alternate_number","selectedSkills","expertise","userId_ForUpdate","specialist","warehouseToBeAllocated","AadhaarNumber","ExperienceInYears","SubCity","birth_date","company","permanent_address_line1","permanent_state","permanent_pincode","permanent_address_line2","permanent_city","present_address_line1","present_address_line2","present_state","present_city","present_pincode","companyname","brand","reportinToList","workAreas","CHDAccounts","RemainingCHDAccounts","MainRegion","MaxDate","showEditLists","brandArray","checkMaxDOB","_isAMomentObject","splittedDOB","teamEditMode","ServiceAccountIds","Specialist","productSkills","Expertise","TerritoryConfigurations","selectStateforPresent","pin","AadharNumber","profilePic","modelOptions","getterSetter","rendomnumber","File","saveUser","signup_form","PermanentPincode","selectExpertise","expertiseArray","expertiseList","selectedProduct","ProductsList","cityArray","Subregion","SubCityList","presentcityList","getStateList","selectCity","pincodeArray","selectCityforPresent","ID","presentpincodeList","removeAccountDetail","getAllHDAccounts","EditData","selectedCityForTerritory","AccountChange","Acc","territoryPincodes","uniPin","pinCodeListTerritory","pinCodeUnique","addMoreAccount","SelectedAccountObj","getTicketStatus","NotAllocatedWarehouses","isCollapsed1","isCollapsed2","isCollapsed3","registerUser","TalentRegisterService","$document","registerService","firstname","lastname","termCheck","angular_pass","angular_confirm_pass","Register","registerForm","registerdata","InviteName","InvitedPhoneNo","OpenTermModal","getDashboard","dashbardName","GetKPIAccounts","businessunit","vertical","getBusinessUnits","GetVerticals","getDistrictsByState","getCitiesByState","getChart1","$element","AdvancedDashboardService","TabAdvancedDashboardService","matrixName","OpenedDashboardName","OpenedVerticalName","dashboard_data","lineCharts","barCharts","stackedCharts","gaugeCharts","selectDimension","TabOrder","BusinessUnit","SelectedVertical","Account","thisFiscalStart","thisFiscalEnd","intialLoad","districts","District","IsFilterApplied","accountListForFilter","selectedTabName","Payment week","isoWeekday","This week","Last week","Last month","This quater","Last quater","This year","navigateToAdvanceDashboard","IsDashboardFilterCheckRun","DateRangeSelectedKey","ActualSelectedKey","chosenLabel","loadSpecificDashboard","tabName","ActiveAccounts","accountIds","Allapplyfilter","updateDefaultDateFilter","dasahboardFilter","DefaultDateFilter","businessUnits","verticals","verticalsList","getDistrictByState","Accountlist","prepareFilters","filterkey","filervalue","changeBackgroundColor","clickedDiv","divElement","YAxis","subtitles","createTableChart","selectedRollup","createLineChart","createBarChart","createStackedChart","selectedDimension","dimension","createDrilledDownBarChart","createGaugeChart","dashboardCallback","DashboardFilters","enableFilter","DateFilterList","dateFilterList","filteredRanges","ChartModel","TabName","Keyfilter","stringArray","Rollups","getCurrentMonth","getCurrentYear","GetDateRange","ChartSubtitle","lastDate","numDays","startRange","endRange","loadDefaultDashboard","isLoaded","LinkClick","saveRollup","chartSubtitle","yAxis","ChangeDimensions","ChangeDimensionsPie","ChangeDimensionsBar","ChangeDimensionsCustomStackedBar","isActiveRollbackCustomPie","isActiveRollbackCustomBar","isActiveRollbackCustomStackedBar","isActiveRollbackBar","isActiveRollbackStackedBar","isActiveRollback","chartOptions","GetSeries","Series","credits","xAxis","scrollbar","line","enableMouseTracking","legend","itemWidth","navigation","activeColor","animation","arrowSize","inactiveColor","fontSize","inverted","sliced","drilldown","stackedchartData","reversed","x","stackTotal","stacking","headerFormat","pointFormat","footerFormat","shared","useHTML","gaugeInstances","Value","TargetValue","strValue","ValueType","showGaugeChart","tempshowGaugeChart","AcheivedPercentage","max","decimals","gaugeWidthScale","pointer","pointerOptions","toplength","bottomlength","bottomwidth","stroke","stroke_width","stroke_linecap","customSectors","lo","hi","labelFontColor","labelFontFamily","labelFontSize","textRenderer","JustGage","changeFunction","makeDynamicTable","dataSet","columnList","colunId","getKeyByIndex","colList","colKey","fixedCatogries","lenth","GetDataForMenu","dataType","GetProjectSettings","GetAccountConfigSettings","GetTemplateSettings","UpdateAccountConfigSettings","accountConfigData","UpdateProjectSettings","projectConfigData","UpdateTemplateSettings","templateConfigData","GetAllSecheculingRules","loginUser","SaveSchedulingRule","ruleidlist","getAssignationRule","SaveAssignationRule","ruleList","GetAllBonusPenalty","UpdateBonusPenalty","BonusData","CreateTransactionalAlert","GetAllAlertConfiguration","DeleteAlertConfiguration","Content-type","GetAlertConfiguration","SystemConfigService","MailUrl","AccountSettingService","AssignationRuleList","changePriority","allActivity","PriorityIndex","AlertType","alertType","updateBikePosition","rangeSlider","bikeIcon","rangeWidth","offsetWidth","rangeValue","bikePosition","transform","OpenPriceModelMapping","OpenSlalisting","OpenProject","OpenDashboardReportList","OpenTemplateList","OpenInvoiceConfigurations","headingName","dataForMenu","currentConfig","updatedConfig","ItemDisplayName","ItemFrom","ItemDescription","toolScRuleList","assetScRuleList","certificateScRuleList","roleScRuleList","TalentPoolScRuleList","dtInstance_Certi","dtInstance_Asset","dtInstance_Tool","dtInstance_TalentPool","getAllSchedulingRules","RuleType","GenerateRoleTable","GenerateCertificateTable","GenerateAssetsTable","GenerateToolTable","GenerateTalentPoolTable","toggleAll_Certi","toggleOne_Certi","selectAll_Certi","headerCompiled_Certi","selected_Certi","dtOptions_Certi","dtColumns_Certi","toggleAll_Asset","toggleOne_Asset","selectAll_Asset","headerCompiled_Asset","selected_Asset","dtOptions_Asset","dtColumns_Asset","toggleAll_Tool","toggleOne_Tool","selectAll_Tool","headerCompiled_Tool","selected_Tool","dtOptions_Tool","dtColumns_Tool","toggleAll_TalentPool","toggleOne_TalentPool","selectAll_TalentPool","headerCompiled_TalentPool","selected_TalentPool","dtOptions_TalentPool","dtColumns_TalentPool","resetPaging","RuleIdList","setPriorityIndex","dtOption","headerCompileds","dtColumn","UpdateBonusList","UpdatePenaltyList","UpdatePenaltyAmount","paneltyEnableDisable","Amount","pmessage","PenaltyDetails","RuleName","UpdateBonusAmount","bonusEnableDisable","bmessage","BonusDetails","eventType","mode","channelList","RoleList","selectedRolesList","selectedChannelArray","eventConfigurationArray","mobileNo","outsiderTransText","outSidecheck1","AllConfigurayionList","mailMessagePath","singleNotificationAlert","ListAlertTemplate","editObject","channel","check","SMSEnabled","smsText","SMSText","EmailEnabled","NotificationEnabled","NotificationText","WebNotificationEnabled","WebNotificationText","UserOutSideContact","objOutsider","UserOutSideEmail","UserOutSidePhone","showTransactionalEdit","EditAlerts","OpenTransactionalModal","TransactionalModal","CloseTransactionalModal","confObject","AddEventsConfiguration","RemoveEventsConfiguration","OpenMailModal","MailModal","CloseMailModal","mobile","RemovefromList","SaveEventConfiguration","config_form","AlertId","alertArray","alertObject","EmailTemplateName","EmailSubject","WhatsAppEnabled","WhatsAppText","outSiderModel","objModel","AllConfigurationList","DeleteEscalationAlertConfiguration","DeleteSLAAlertConfiguration","GetStaffShiftCampaignForRM","campaignstatus","CreateStaffShiftCampaign","GetAllShiftsForDateDynamic","PublishShiftToUser","shiftId","ApproveStaffOvertimeshift","RejectStaffOvertimeshift","rejectComment","GetAllShiftsForDateWithStatusXLS","shiftType","GetSupervisorsForAccount","RunStaffCampaign","getusersbyfilters","GetAllCampaignName","StaffShiftCampaignService","ShiftId","GetEligibleUserForShift","ShiftList","shiftsListLength","shiftPageListCount","ActiveShifTab","shiftStatus","ReportingStartTime","ReportingEndTime","ShiftStatusList","searchQuery","ApplyCampaignfilter","campaignNameList","campaignModel","campaignRunModelOpen","CloseCampaignModel","CampaignId","campaign_form","UserIdList","applyAllTeamSelect","userCampaignTablePerPage","CampaignTablepagination","changeCampaignPageListCount","CampaignTablepageChanged","objStaffShiftCampaginModels","totalTableShifts","getAllShiftsByType","AddShiftModal","shiftModal","closeShiftModal","CampaignDescription","CampaignName","RequiredStaffCount","BulkShiftMapView","supervisorsList","getCurrentDate","selectedStateOfUser","campaign_creation_form","ShiftStartTime","ShiftEndTime","IsCampaignOpen","CampaignNameofUser","getAcceptHistory","campaignName","exportTableToCSV","csv","rows","attendanceUsersList","AcceptanceDateTime","csvContent","appendChild","removeChild","GetStaffShitCampaignForSupervisorById","campaginId","campaignData","RejectComment","AttendenceSidePanel","CampaignCompData","ShiftFromDate","ShiftToDate","CampaginId","ShiftType","ResetUserSelection","UsersList","SlaObjectiveDetailsService","AddMilestoneModal","addmilestone","CloseMilestone","SaveMilestone","milestones","criteria","minutes","descrpation","deleteMilestone","editMilestone","selectedMilestone","editmilestone","closeEditMilestone","updateMilestone","Order","AlertMilestoneModal","alertmilestone","CloseAlertMilestone","CaseEnters","Operator","addRow","removeRow","removeUser","userList","OpenDetailMilestone","slaobjectiveList","SLAProcessType","SLAProject","SLACustomer","editSLA","backupSLAObjective","saveChanges","CreateSLAlAlert","GetAllSLAAlertConfiguration","NotificationSettingService","SLASettingService","Openmode","TimeList","eventConfigurationArray1","eventConfigurationArray2","eventConfigurationArray3","eventConfigurationArray4","voiletedChannel","voiletChannel","voiletedSmsText","voiletSmsText","voiletedRole","voiletRole","SLAAlertConfigurationList","check1","SLAVOILATESINGLEObj","ListSLAAlertTemplate","arrayObj","DurationInMinutes","TimeDuration","check3","SLAVOILATEDSINGLEObj","check2","ListSLAPeriod","exactTime","check4","CancelEvent","confObject1","confObject2","confObject3","confObject4","AddEventsConfiguration1","RemoveEventsConfiguration1","AddEventsConfiguration2","RemoveEventsConfiguration2","AddEventsConfiguration3","RemoveEventsConfiguration3","AddEventsConfiguration4","RemoveEventsConfiguration4","outsiderPhone","outsiderTime","sla_form","configObject","timeSplit","IsPreodic","listSlaObj","listObj","timeArray","createAccount","getVertical","SignupService","verticalList","accountPlanData","company_name","PhoneNumber","Password","SkillBasedCommissions","Skills","NoOfTickets","Month","GracePeriod","selectVertical","selectSkills","verticalName","previouslySelectedSkills","newSkillListFull","ListSkillSet","newSkillList","combinedSkills","selectedSkill","LeaveShift","CreateStaffShift","ApproveLeave","leaveId","approveComment","shiftPublishToUser","RejectLeave","EmployeeShiftMapService","ShiftLeaveService","ApproveComment","GetAllShiftsForDate","GetAllLeaveShift","allLeavesList","eligibleUsersList","PublistUserId","closeapprovemodal","RejectShareModal","leaveDetail","LeaveDate","TotalShift","TotalCount","objStaffShiftModelResList","ApproveShareModal","ApprovalModal","LeaveId","CreateNewDepartment","departmentName","departmentDescription","UpdateDepartmentName","departmentId","AddNewLocation","AddDepartmentsToLocation","UpdateLocationName","locationName","GetAllDepartmentsForLocation","GetLocationswithDepartmentMapping","CreateNewDepartmentShift","UpdateDepartmentShiftConfig","GetAllShiftConfigurationForDepartment","departmemtId","dataFiltersList","firstDivElement","querySelector","triggerHandler","isEditdepartment","toggleEditLocation","toggleEditNewLocation","AddDepartmentModal","departmentModal","closeDepartmentModal","AddLocationModal","locationState","locationCity","locationModal","closeLocationModal","OpenUpdateShiftModal","shiftData","Shiftcapacity","updateshiftModal","closeUpdateShiftModal","ShiftName","IsShiftMarginEnabled","MinutesBeforeShiftStart","MinutesAfterShiftEnd","OverTimeAllowanceEnabled","OverTimeHourlyRate","LunchBreakDuration","ExperniceStaffRequried","NormalStaffRequired","EditMapping","locationDep","CurrentMappingData","DepartmentListToAdd","DepartmentDetailList","EditmapModal","closeEditMapModal","MapModal","mapModal","closeMapModal","AssignShiftModal","assignModal","closeAssignshiftModal","adddepartment_form","addlocation_form","locationDate","stockAssignation_form","addshift_form","DepartmentName","IsTeaBreakEnable","TeaBreakDuration","ConsumedTeaBreakDuration","IsLunchBreakEnable","ConsumedLunchBreakDuration","IsLunchBreakFlexi","LunchStartTime","LunchEndTime","IsTeaBreakFlexi","TeaBreakStartTime","TeaBreakEndTime","updateshift_form","MasterShiftId","shiftcapacity","updatedDepartmentName","updatedDepartmentDescription","EditDepartment","department","DepartmentDescription","EditLocation","departmentListByLocation","AllShiftConfigList","GetAllShiftConfigurationByID","ShiftConfigData","locationsWithDepList","ServicefomeditService","GetAllRegionsByRole","GetAllAvailableSubRegion","GetAllPinCodes","UpdateServiceCenterDetailsDoc","applicationFormFile","payoutStructureFile","gstCertificateFile","aadhaarDocFile","panDocFile","chequeDocFile","tanDocFile","shopLicenceDocFile","authrizedData","ServiceCenter_FormcreationService","removeDuplicates","uniqueArray","panUploadError","adhaarUploadError","gstUploadError","payoutUploadError","applicationFormUploadError","mapstate","mapcity","mappincode","GSTNumber","TANNumber","PANNumber","dSecurityAmount","dMSLQuantityAmount","strListRegion","strListSubRegion","CustomUserId","regionForRSM","AllAvailableSubRegionList","AllSubRegionList","ServiceCentreType","AadhaarFileName","CancelledChequeFileName","ApplicationFormFileName","GSTNumberFileName","PanCardFileName","PayoutStructureFileName","ShopLicenseFileName","TanNumberFileName","ApplicationFormFileDoc","AadhaarFileDoc","PanCardFileDoc","GSTNumberFileDoc","TanNumberFileDoc","PayoutStructureFileDoc","CancelledChequeFileDoc","ShopLicenseFileDoc","attachAadhaarDoc","PanDocument","attachPanCardDoc","attachGSTNumberDoc","attachTanNumberDoc","attachApplicationFormDoc","attachPayoutStructureDoc","attachShopLicenseDoc","attachCancelledChequeDoc","OpenPincodeUploadModel","PincodeModal","closeReadyToRaiseModal","showPassed","BulkPincodes","PincodeModel","BulkPincodesUpload","dob","personalemail","saveUserclone","selectedProductPipeSeparated","selectStateforPincode","cityListForPincode","citypincodeArray","GetInfoPinCodes","AddressallPincodes","ModifyPicodeList","AddPincode_form","CloseMapPincodeModel","MapPincodeModelOpen","AddPincodeModel","updatePlannedClosure","VendorManagerAssignJobTeam","UserID","getAttachment","getAllJobTicketsListing","getAllJobTicketsDashboard","downloadTicketsReports","DeleteTickets","SetTicketExecutionMode","ticektIds","ApproveJob","ActionByVendor","updateTicket","TicketFollowUp","CreateProductReplacementRequest","CreateProductReplacementRequestAF","CreateGasChargerRefulingRequest","ResubmitProductReplacementRequestAF","getBillExpenseByTicketID","downloadImage","ticketIDs","downloadMultipleReport","getUserProfileData","getFixedUserProfileData","GetCSATRatingByTicketID","GetTicketByGeneralSearch","GetTicketDataToRaiseInvoice","ticketIdList","MarkTicketsReadyToRaiseInvoice","ticketwithLineitemList","GetAllReprotingToUsersCRM","TransferCallToServiceCentre","RevertTBCAndReassign","ServiceCenterTicketListService","InvoiceUrl","pointC","JobStartLatitude","JobStartLongitude","StartTravel","iconsStartA","iconsStartB","mappermission","approveModalInstance","rescheduleAuditModalInstance","UserProfileData","getAllTicketsByStatus","SubmitFilter","TicketDashboarCounts","DefaultCall","ViewJob","showAutoSchduleBtn","downloadFlag","downloadReportBtn","deleteFlag","tempTickets","schduleMode","GeneratePdfJobSheet","linkSource","downloadLink","OpenLabBookingModal","ticketData","LabBookingModal","CloseLabBookingModal","OpenReplaceModel","replacedetails","replaceticketid","ReplaceModel","relacementoption","gasChargeticketid","OpenGasChargingModel","GasChargingModel","closeGasChargingModel","strGasChargingComment","reasonofGasCharge","GasCharging_Form","Comment","Reason","Replacereason_Form","replacementreasondata","strTicketId","serviceFunction","templateListData","CreateLabBooking","OpenApproveModal","RatingOfTicket","IsDynamicPriceApproved","tbccancellationReasonsForm","IsClosuerCodeAvailable","AuditValue","TBCCancelationModel","IsApplicableForAutoPayment","ClosuerCode","CancelReason","IsClosureCodeNeeded","OpenRescheduleAuditModal","currentAuditJOb","CurrentAuditJob","RescheduleAuditTicketId","AuditPrimaryReason","PrimaryReason","RescheduleAuditCloseModal","JobRescheduleAudit","RescheduleAuditModel","OpenTicketRatingModal","currentTicketJob","TicketRatingList","ticketRatingModalInstance","TicketRatingCloseModal","NoLatLongModal","NoLatLongModalInstance","NoLatLongModalModal","OpenSettlementModal","settlementModalInstance","SettlementCloseModal","settlemenTicket","remarks","settlementData","FEId","DeleteTicket","NoLatLongTickits","notlatlongticketId","RejectJobModel","CloseRejectModel","jobwinrate","Winrate","JobWinRate","ApprovalRemark","reAssignJob","toBeAssignedTicketId","teamToBeAssignedList","ReallocateTicket","isArray","reallocateModalInstance","reallocateTicketCloseModal","AllocateTicket","allocateModalInstance","AllocateTicketCloseModal","OpenRevertAndReassignTicketModel","revertModalInstance","closeRevertTicketModel","revertForm","selectTechnician","reallocationForm","AssignTicketsToFixedTeam","allocationForm","GetHoldReasons","reasonsForHold","OpenHoldUpModel","holdstatus","UpdateHoldReason","enable1","urlWithFeasible","starChanged","setDefaultValTocal","StartTimeObj","showStartTimeCal","calStartTime","showMultipleDownloadButton","ticketSelected","IsReportMapper","invoiceFlag","actionFlagList","deleteFlagList","reportMapperId","AcceptDate","CorrelatedReports","ReportMapperId","hideSingleDownloadButton","isApprovalPermission","OpenBillModal","BillDetails","TotalExpense","Bills","ExpenseAmount","BillModal","CloseBillModal","ReportpdfUrl","downloadDataCaptureImage","ViewProfile","downloadReportPDF","OnSiteReport","responseDataList","UserProfileClose","TicketWarrantyStatus","WarrantyStatus","IsClosuerCodeNeeded","SubStatus","IsCancelFromServer","CancellationReasonsList","cancellationReasonsModalInstance","statusText","UpdateCancellationReasons","cancellationReasonsForm","CancelRemark","CancellationReasonsRemark","HintDisplay","CancellationReasonsChange","cr","DisplayReason","CancleAndCloneTicket","CancellationReasonsCloseModal","GetSearchServiceCenter_CSV","ServiceCenterListService","IsConsumerFound","consumerTitle","consumerFirstName","consumerLastName","consumerAltContact","consumerType","consumerCity","consumerPincode","consumerState","ASCResponse","Open360ForActiveUsers","Editdetails","UploadServiceCenter","OpenShareDetails","shareType","opensharewithtype","CloseAreaConfirmationModal","phoneNumber","infoemail","share","shareinfo_form","contactphone","emailid","getAllBrands","GetServiceCenterDetails","createServiceCenter","ServiceCenterCreationService","existingUser","shop_name","ShopName","UPIId","UPI_Id","Address","Add2","resetForm","skillCombine","cancelForm","SearchUserInfoService","JobsPerPage","cangeJobsPageListCount","jobsTablepageChanged","SearchUserinfoForm","jobStatusForBroadcast","GeBusinessObjectivetMaster","UpdateMasterSelectionCriteria","SchedulerRuleService","BrandProductMasterCreationService","AssignationRuleService","schedules","selectStatus","searchSkillModelText","businessObjectiveData","objectiveList","objectivesdata","updatingName","buisnessObject","RulePriority","DisplayDescription","configurableHours","updateHours","newValue","getSkillList","FirstPriority","SecondPriority","bIsActive","searchSkillModelTable","dtInstanceSkillModal","dtColumnsSkill","displayText","clearSearchFilters","AddSkillModelOpen","PrioritySkill","ScreenBuildersService","goToTemplateList","goToSLAListing","goToApprvalFlowBuilder","goToDashboardReportListing","getSheduledReports","enabledSchedules","ids","enable","disableSchedules","ScheduledReportService","sT","eT","startTimeIns","parseTo2","endTimeIns","displayDuration","addedUsr","endTimeErr","splittedExp","modelReportName","enableSchedules","SchedulingRuleService","GetSchedulingEventToday","supervisiorId","AutoAssignTickets","AutoAssignTicketsForToday","transMode","OnloadUser","AssignTicketsTimeline","list","GetTicketsByStatusDemo","app","ScheduleAssignService","FreelancerFixedService","GetSchedulingEventforToday","SuggestedUserList","evs","scheduler","getEvents","deleteEvent","init","MapIntegration","DefaultImage","locale","labels","timeline_tab","section_custom","dblclick_create","xml_date","date_to_str","touch_tooltip","drag_resize","attachEvent","event_id","native_event_object","getEvent","is_new","original","assignedUserid","sections","sectionlist","BIDCounterRate","tooltip_text","tooltip_date_format","collision_limit","createTimelineView","x_date","x_unit","x_step","x_size","x_start","x_length","y_unit","serverList","y_property","ignore_timeline","timeline_scale_label","userType","UserIdentity","ratings","UserRating","UserProfilePhoto","LastLocationDateTime","UserDistance","UserDuration","old_mode","old_date","event_bar_text","event_bar_date","event_header","event_class","readonly","VendorAssignation","AllTicketList","filterCriteria1","filterCriteria2","filterCriteria3","selectedFilter1","selectedFilter2","selectedFilter3","disablefilters","isCurrentLocation","selectedRow","selectedFreelancers","AssignTicektData","AllAssignUserDetails","AssignSelectedUser","allItemsSelected","AllAssignUserList","BroadcastedUserList","ReadyToAssignList","BroadcastedUser","TransMode","IsBroadcastPermision","IsAssignPermision","Mode","markers","BroadcastedJobList","editingData","editingFPrice","modify","modifyFPrice","Price","TPrice","FPrice","updateFPrice","GetTicketsForAssignation","clearAll","selectEntityFilter","newList","TestCase","selectAllFilter","FilterData","level","GetJobsByFilter","getBroadcastedTickets","getReadyToAssign","setClickedRowNew","GetSchedulingResults","setClickedRowBroad","setSelectedFreelancers","isSelected","filterUsers","filterUserData","ChangeMode","roleList","OrderByUsers","JobAccountId","toISOString","ActOnCurrentLocation","RangeFromJob","FETravelChargePerKM","TransportMode","UserConfigList","orderObj","PriorityOrder","OrderByField","BroadcastedList","UserList","SuggestedPrice","GetResult","StartDateTime","EndDateTime","readyList","AssignList","checklinkId","checkList","AllUserList","Endtime","AssignPrice","AssignModal","OpenBroadcastModal","selectAllBoardUser","CloseBroadcastModal","OpenAssignModal","uniqueEventlist","linkid","CloseAssignModal","BroadcastTicket","BidData","JobID","BIDDuration","UserData","checklist","lat","latitude","longitude","customerName","AssignedUser","assignedUserName","UserLatitude","UserLongitude","UserContact","UserImage","DefaultLat","DefaultLong","MapOptions","ticketLatlng","labelOrigin","DROP","setCenter","getCenter","selectEntity","selectEntityBoardUser","TerritoryState","ObjectivesList","businessObjectives","GetSchedulingEventfordates","TravelDistance","TravelDuration","TaskDuration","VendorTeam","NewJob","otherfilter","getAllTicketList","Technicianviewtypes","technicianuserviewtype","userviewlayout","globalsearch","userviewtype","userview","Filter","AllTicketLists","class1","addRemoveRedClass","isOpen","isOpen1","isCollapsed0","isCollapsed4","isCollapsed5","isCollapsed6","isCollapsed7","isCollapsed8","isCollapsed9","isCollapsed10","isCollapsed11","isCollapsed12","isCollapsed13","isCollapsed14","isCollapsed15","isCollapsed16","isCollapsed17","isCollapsed18","isCollapsed19","isCollapsed20","isCollapsed21","isCollapsed22","isCollapsed23","isCollapsed24","isCollapsed25","isCollapsed26","isCollapsed27","isCollapsed28","isCollapsed29","isCollapsed30","isCollapsed31","isCollapsed32","isCollapsed33","isCollapsed34","isCollapsed35","isCollapsed36","isCollapsed37","isCollapsed38","isCollapsed39","isCollapsed40","isCollapsed41","isCollapsed42","isCollapsed43","openAnalysisReport","analysisDetails","UploadId","showAnalysisReport","backScreen","OnloadUsers","newdate","TaskEndTime","territoryChange","AutoAssignSelectedTickets","OpenAutoAssignModal","autoAssignModalInstance","AutoAssign","Selecteddate","allTicketSelected","selectSingleTicket","selectAllTicket","AssignationRulePriorityList","AssignationRules","rule","AssignName","OrderByName","AssignPriorityIndex","AssignName1","AssignPriorityIndex1","AssignName2","AssignPriorityIndex2","AssignName3","AssignPriorityIndex3","AssignName4","AssignPriorityIndex4","AssignName5","AssignPriorityIndex5","multisection","multisection_shift_all","checkdate","stime","etime","checkenddate","ScheduleExceptionListPagingService","SendCommunicationInvite","GetBasicDetailsWeb","UploadVideo","OpenSMEPopUp","userDetail","SMEInteractionModel","SmeInteractionScreen","Smeinteract","closeNav","closeInteractionPopUp","GetBasicDetails","UserBasicInfo","Step","connectionLink","SLAObjectiveListService","SlaService","slaItems","entityType","liknobject","deleteRow","cloneRow","objectiveprocess","entityenters","entityexists","BusinessHours","deleteRowslaobjectiveprocess","cloneRowslaobjectiveprocess","slamilestone","recurrancetype","editingIndex","startEdit","newMilestone","deleteRowslamilestone","cloneRowslamilestone","AddSLAObjective","addslaobjective","CloseSLAObjective","NewAddSLAObjective","newaddslaobjective","CloseNewSLAObjective","slaobjectivenew","process","Saveslaobjective","ItemnewSLA","newslaobjectivename","clonedRow","newObjective","Saveobjective","slaobjectivename","slaDescription","CaseExits","objective","cloned","OpenAddMilestone","OpenAddSlaobjective","OpenpageMilestone","createSla","getAllSla","getSingleSla","slaId","UpdateSla","getRegionbyUserId","getProjectsbyUserId","GetProjectsByCustomerId","AllSlaList","LocationCheck","ProjectCheck","CustomerCheck","SkillsetCheck","CalltypeCheck","Customer","GetAllSLA","OpenSettingModal","getLocations","singleList","SlaID","SLAId","SlaDefinition","SLADefinition","Severity","SlaValue","SLAValue","Timing","SLACalender","HolidaySchedule","HolidayListApplicable","WorkingDays","NotWorkingDays","HolidayList","SlaActive","IsSLAActive","SLALocation","SettingModal","locationList","getProjectsbyCustomer","CustomId","CloseSettingModal","Save","dataModel","changeSlaSetting","slaValueInDays","TimeJobReceive","deSelectAll","selectTimings","List","IsHolidayActive","HolidayDate","AddHolidayList","RemoveHolidayList","AddSLA","LeaveList","dateTemp","HolidayName","Hour","Minute","slaValue","jobReceive","DataModel","SLAValueInDays","IsJobReceivedAfterEnabled","NextDayBusinessHourAfterTime","selectHoliDay","SingleSlaList","JobReceivetime","GetDataForShiftView","GetEligibleUserForShiftSwap","ShiftSwapToUser","RosterShiftService","handleButtonClick","direction","currentStartDate","ListShiftDaySummary","ShiftSummaryOverAll","ShiftTime","firstDayOfCurrentWeek","getInitials","words","initials","word","colorCounter","getContrastColor","hexColor","r","g","b","factor","darkerR","darkerG","darkerB","darkerShadeHex","randomBackgroundColor","randomTextColor","dynamicStyles","TotalHours","AmountEarned","Opened","buttons_left","buttons_right","initialEventDate","finalEventDate","showLightbox","directionDrag","formSection","setValue","ShiftDepartment","eventID","dropdownOptions","map_to","resetLightbox","is_new_event","selectedUser","user_id","endLightbox","getDay","difference","RoleAccessManagement","roles","isEditMode","RoleAccessManagementModal","selectedRole","modalTitle","roleaccessModelOpen","RoleAccessManagementClose","RoasterTeamFormCreationService","overtimeHourlyRate","shiftHourlyRate","ShiftHourlyRate","IsExperienced","GetRefundablePartlist","paymentstatus","ReturnTicketPartOrderPlace","GetRefundablePartlist_CSV","ReturnablePartConsumeListService","selectedData","handleCheckboxToggle","PartId","toggleSelectAll","paymentstatusList","PartReturnStatus","OpenCreateChallanModel","createchallan","$new","challanData","closeCreateChallanConfirmation","TotalRecord","returnableparts","warehouseid","OpenNonReturnUploadModel","ReadyToRaiseModal","validationForm","returnTicketDefects","ReportLatestService","ReportCreationService","getAllReportsByUserId","GetReportColumnsByReportName","GenerateReports","DownloadReport","ReportIdOnS3","GetAllgeneratedReport","ReportDownloadService","getAllReports","reportType","reportnames","FilterStatus","Reportname","reportsLength","reportPageListCount","reportNametoGen","ReportByAccountName","reportdates","genreportdates","ranges1","GetAllgenReport","getAllReportsColumn","ReportType","reportColumnsdata","reportCol","ColumnObject","selectAllColumns","showMinusColumns","implementSelectItemsTickets","itemList1","scope1","selectRow1","checked1","applyAllColumnsSelect","generateReport","ColumnListModel","colIndex","SelectedAccounts","accountName","ReportByFiltersList","reportDetails","ReportList","totalReports","reportListLength","reportsPerPage","UserTablePageChanged","GetListPersistentReports","ListPersistentReports","downloadPersistentReport","responseData","implementSelectItemsRG","selectAllColumn","showMinusRG","selectCountRG","selectRowRG","ColumnsList","applyAllRGSelect","dashboardReportListService","reportDetailService","ReportId","report_id","isLayoutEditable","AllFieldList","AllValues","SharedReportName","dashboardranges","filterRangeChange","filterstartDate","filterendDate","dragoverCallback","external","logListEvent","dropCallback","AllValuesOriginalIndex","currentIndex","logEvent","metricsChart","container","effectAllowed","effect","modelAsJson","getChartDashboard","widgetupdate","closeupdatewidget","DataFilters","FieldName","CompData","EntityName","reportid","getCustomerReportById","DimensionName","shouldHighlightItem","shouldNotHighlightItem","AllValuesDash","ShareMailReport","mailbody","GetSharedUsers","dashboardname","GrantRevokeAccessToReport","commaSeparatedtoList","updatewidget","itemData","deleteChartId","SelectedType","chartDisplayName","chartDescription","GetMetricsByEntityType","GetDimensionByEntityName","SelectedChartName","getUsersLite","reportId","Condition","JoiningOperator","Fields","dateValues","GetFieldValuesByFieldNames","SaveCustomSettings","updateDataFilter","ChangeOption","EntityType","AllFieldValuesList","ChangeMetrics","MetricsName","GetFieldTypesByEntityName","AllMetricsList","AllDimensionsList","GetAllEntityTypes","AllEntityList","AddChartsToReport","feedbackForm","ChatType","ChartName","DeleteChartId","UpdateChartsFromReport","DeleteChartsFromReport","GetDashboardByDashboardId","dashboardId","AddChartsToDashboard","UpdateChartsFromDashboard","DeleteChartsFromDashboard","DashboardId","SaveCustomSettingsForDashboard","lineCount","linechartIds","lineArray","CompLData","lineArraysOriginalIndex","chartYAxisName","SaveCustom","metricsNames","deleteService","NonAggregated","bootstrap2","filterClear","filterPlaceHolder","moveSelectedLabel","moveAllLabel","removeSelectedLabel","removeAllLabel","moveOnSelect","preserveSelection","selectedListLabel","nonSelectedListLabel","postfix","selectMinHeight","filterNonSelected","filterSelected","infoAll","infoFiltered","infoEmpty","lists","Aggregated","texts","setting","listed","DrillDown","id_1","text_1","callStatus","serviceCenter","filtername","serviceCenterList","dateTimeFields","dateFields","exportOptions","GetAllRegisteredUser","userAvailableStatus","getCityByState","RegisteredAllUserService","ActiveUserUpdateService","userSource","CriminalVerified","IdVerified","IsAuthorizedServicePartner","PANVerified","UserAvailable","circleData","Technicianstartingdate","WorkLocationList","SkillData","creationForm","From","userOnboardingForm","selectAllFL","showMinusFL","selectCountFL","ListUserResponseModel","searchUser","closeUserSearchText","CustomerFormCreationService","ReferealKey","reference_key","date_of_birth","employee_strength","inventory","dd_options","mm_options","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","max_date","yyyy_options","currentMonth","getDateList","date_of_birth_yyyy","date_of_birth_mm","maxDD","getDOB","date_of_birth_dd","IsInventoryAvailable","CreateVendor","getCity","getVerticalName","CreateFreelancer","freelancerData","updateAccountPaymentDetails","rechargeAmt","processingAmt","gstAmount","totalAmount","processingFee","gstFee","transactionId","InstamojoId","RechargeAmount","RechargeBy","GST","TotalAmount","PaymentId","TransactionId","ProcessingFeeAmount","ProcessingFee","GSTFee","RedirectUserPaymentService","rAmt","proFeeAmt","gstAmt","tAmt","proFee","tranactionErrorCode","transactionMsg","getQueryParams","transaction_id","payment_id","payment_status","updatePaymentDetails","modeOfPayment","JobCardId","trns_id","RedirectPaymentService","ta","job","buyLicenseRequestToGenerateOrderId","amount","GoToVerifySignature","createPaymentLink","GetAccountRechageParams","RechargeService","GoToUpdateAccount","rechargeAmount","gstFeeAmount","procssingFeeAmount","razorpay_payment_id","razorpay_order_id","GoToVerifySingnature","RechargeIn","goToNextStepForPayment","CallbackToGetResponse","currency","image","prefill","contact","notes","theme","CurrencySymbol","rzp1","Razorpay","minRechageAmount","calculateRecahge","subTotal","minAccountRecharge","transactionCharge","makePayment","recharge_form","recharge","GetTicketByCircleProjectName","GetTicketByCircleProjectNameOnLoad","GetLocationByProjectId","Project_Details_LatestService","circleTicketList","ticketCircle","backlist","GetProjectLocationsByProjectId","GetTicketsByLocations","rateCustomer","getAllReasonStatements","RateJobService","confirmationModalObj","feedbackStr","otherRatingFeedback","getRatingMeaning","reasons","CancelationList","RescheduleList","RatingList","cancelReason","rescheduleReason","getRatingFeedbackList","feedbackList","ReasonList","getImageUrl","ProjectDetailService","ProjectLatestService","CreateProject","projectFormData","UpdateProject","GetAllCustomers","GetPointofContacts","GetAllSupervisors","GetAllSchedulingRule","ProjectCreationLatestService","ProjectManager","ProjectDescription","AvgTimeClose","MeetingCustAppointment","WithinDay","POC","managerId","projectId_ForUpdate","allcustomers","IsCustomerAppointmentNeeded","IsHappyCodeEnabled","IsQuickResolveTicketsEnable","IsSpareShipmentEnabled","IsOnSiteReportEnabled","avg_time_close","mFirstName","mLastName","mMobile","mOtherMobile","mEmail","pocId","Policies","pocDataGlobal","POCList","tcircle","globalMainPOCData","projectManagerList","AllSchedulingRuleList","RemaningSkillSet","AllSkillList","showSchedulingTable","ScheduleingRuleSkill","showLocation","POC_1","LocationOf_1","POCOf_1","SupervisorOf_1","CustomerOf_1","removePoc","lastpoc","projectData","ProjectSkillRulesMap","ruleIdList","skillrulemap","AllSkillSets","renderRuleTable","Manager","JobDuration","CustomerContactResponseModel","SlaModel","projectLocationIndex","listPoc","PlId","CustomerContactRequestModelId","onSelectPoc","GetAllProjectManagers","pocData","OtherMobile","getRemainingSkillSets","removeLastSkill","selectedRulesList","EnableRuleTable","getAllSchedulingRule","tempSkillList","addMoreSkillByUser","removeSkillObject","removedSkill","pos","posi","saveProject","locationContactModel","custIndex","CustomerContactRequestModel","JobGrossRate","ProjectSkillRules","SLA","project_form","error_code","demotag","AddMainContactPopUp","SavePOCModal","AddMainPOCSave_Form","objMainPOCData","AddContactPopUp","AddPOCSave_Form","objpocData","getCircles","addMorePoc","ProfileObjectDetailService","AddNewProfileModalOpen","addnewprofile","CloseNewProfileModal","objects","permissions","tabSettings","OpenProfileOverview","selectedObject","permissionsList","permission","defaultPermissions","objectSettings","saveSettings","cancelEditMode","ProfileManagementDetailService","OpenAssignedProfile","Objectdetailview","confrigueappmenus","isPanelVisible","togglePanel","profiles","customChecked","profile","CloneProfileModalOpen","ProfileManagementService","ExistingProfile","SaveProfile","ProfileName","SummaryDescription","SavecloneProfile","isCloned","CloseCloneModal","selectedProfile","SelectedProfile","cloneprofile","DeleteProfile","warn","GetProductReplacementList","GetProductReplacementList_CSV","UpdateProductReplacementStatus","UpdateProductReplacementStatusWithAttachment","MarkProductStatusDeliveredByServiceCenter","imageFile","imageFileName","invoiceFile","invoiceFileName","CreateReOrderProductReplacementRequest","ImageFileName","InvoiceFileName","OpenUseerDetails","orderid","reorderReplacementId","OpenReOrderConfirmation","reordereplacedetails","ReorderModel","closeReOrderConfirmation","reorderReplacementComment","Reorder_Form","reordereplacementreasondata","reorderrelacementoption","productType","OpenDeliveredModel","product","requestIdTobeUpdated","DeliveredUpdateModel","closeDeliveredUpdateModel","DeliveryRemark","substatus","IndoorSerialNumber","OutdoorSerialNumber","UpdateAction","UpdationRemark","GRNumber","uploadImageForDelivery","ImageFilesDoc","ImageFileSize","uploadInvoiceForDelivery","InvoiceFilesDoc","closePDFView","UpdateRequestStatusBySC","ReplacementId","Attachement","AcceptDelivery","DeliveryModal_Form","clearMyOrderFilter","src","CancelMyOrder","closeOrderCancelConfirmation","ReturnList","strPackageAttachment","GetAllActiveProductModelMaster","GetProductReplacementDashboard","ProductReplacementApprovalService","modelbrand","productname","ModelBrand","ModelProducName","AllActiveProductModelNoList","newmodelname","oldmodelprice","newmodelprice","UpdateRequestStatus","NewModelNumber","OldModelPrice","NewModelPrice","DashboardCount","getAllGoodsWithoutZeroPrice","SearchValue","GetTBCCancellationReasons","getAllGoodsWithZeroPrice","UpdateWhiteGoodsIntegrationConfig","UpdateTBCconfig","GetSuggestionOfJobLineItem","AddBrandandModel","PriceModelMappingService","ListGoodsWithoutZeroPrice","pageindexCountWithoutZero","WithZeroListLength","WithoutZeroListLength","TypeOfList","PageIndexWithoutZero","totalTableWithZero","totalTableWithoutZero","usersTablePerPageWithoutZero","UserTablepaginationWithoutZero","TicketFilterModelInvoice","UserTablepageChangedWTZ","listType","BrandModelList","Total","getTBClist","updateWhiteGoods","GroupId","GroupName","updateTBCResons","TBCPrice","CancellationReason","getJobLineItem","getJobLineItemForAdd","loadAllProjects","ProjectData","openBMModel","CloseopenBMModel","AddBM","BlockedSingleUser","PreferredVendorTechnicianProfileService","CertprofileImg","TeamProfile","unpreferredvendor","UnPreferredVendor","UnPreferredVendorModal","unpreferredSingleVendor","GetAllUsers","getPreferredUser","getPreferredVendor","GetFreelancerBalance","freelancerId","PreferredSingleUser","GetAllToolSets","NewTalentPoolService","VendorgetallCities","VendorCityList","showAdvanceFilter","AccountID","AccountCreationDate","VendorStartingDate","dtInstanceUser","dtInstancePreferredUserTable","adddaterange","vendoradddaterange","dtInstanceVendor","dtInstancePreferredVendor","PreferredvendorListdata","Bluserlist","blockvendorlist","showtechnician","showvendor","technicianlistview","vendorlistview","selectedInvoice","VendorPermanentState","VendorUserName","VendorContactNumber","VendorStateList","VendorPermanentCity","VendoraddSkill","VendorAllCertificateSets","Asset_Tools","VendorAsset_Tools","Asset_Bike","Asset_Mobile","Asset_Laptop","Student","Intern","VendorSource","Adharcard","Pancard","VendorAsset_Laptop","VendorAsset_Mobile","VendorAsset_Bike","Prime","AlredayPreferred","Vendorpincode","Vendordates","Vendorranges","VendorExperience","VendorRatings","Assets_Tools","Jobscount","VendorJobscount","FilterAdhar","FilterPancard","PreferredUsers","PreferredVendors","pagination","totalvendor","vendorPerPage","vendorpagination","VendorPageIndex","totalvendorTable","vendorPerPageTable","vendorpaginationTable","PreferredVendorDetailsView","VendorcurrentPage","VendorpageSize","pageChanged","applyfilter","PreferredUserTablepageChanged","FreelancerUserRoles","userlayout","selectedFreelancerUserRole","Checkuserrole","userroletype","userrole","checkTalentandPreferred","PreferredUser","techniciancardview","technicianmapview","PreferredUserlist","preferredtechnicianmapview","preferredtechnicianview","PreferredTalentPool","allTechnicianview","TalentPool","AllTalentPool","PreferredUsermapview","Vendorviewtypes","vendoruserviewtype","vendorviewlayout","globalVendorsearch","vendorviewtype","vendorview","checkTalentandPreferredVendor","vendorcardview","PreferredVendor","vendorpreferredlistview","vendormapview","Preferredvendormapview","preferredvendorview","PreferredTalentPoolVendor","allVendorview","TalentPoolVendor","AllTalentPoolVendor","PreferredVendorTechnicianProfile","PVendorFilterData","vendorex","vendorjobscount","vendorratings","ActivationStartDate","ActivationEnddate","Cities","Pincodes","ExperienceStart","ExperienceEnd","VendoraddTraningCertificateName","JobCountStart","JobCountEnd","RatingStart","RatingEnd","FreelancerRole","Source","dtOptionsPreferredvendor","dtColumnsPreferredvendor","VendorStatus","preferreduser","Preferred","openpopup","PreferredUserModal","blockeduser","Blocked","BlockedUserModal","BlockedModal","unpreferreduser","UnPreferred","UnPreferredUserModal","Blockedvendor","Vendorapplyfilter","PreferredVendorapplyfilter","unpreferredSingleUser","Preferredapplyfilter","showInfoWindow","EnrollNo","map1","showpreferredusermap","map2","ShowAllVendor","map3","ShowAllpreferredVendor","getAnimation","AllVendorfilter","pfvendorlist","VendorFormData","totalVendorPoolCount","FavoriteForAccounts","totalPreferredvendor","vdata","jobcount","VendorgetAllCertificate","VendorgetCertificateSets","getAllTools","Asset_ToolList","VendorgetAllTools","VendorAsset_ToolList","VendorgetAllSkills","VendorAllSkillSets","VendorallStatePromise","VendorselectedState","VendorclearFilter","PUserName","PreferredTechnicianDetailsView","PreferredFreelancerTechnicianProfile","Technicianviewtype","PFilterData","jobscount","IsStudent","IsOpenForInternship","IsAdharVerified","IsPanVerified","PreferreddtOptions","PreferreddtColumnDefs","blockSingleUser","pfuserlist","totalTalentPoolCount","PreferredtotalUsers","fdata","TechnicianclearFilter","PreferredTalentPoolService","vendorListLength","usersLength","techpageindexCount","filteraddskill","filterPermanentstate","VendorDetailsView","vendorpageChanged","VendorTablepageChanged","strKey","VendorFilterData","Dashboard","Useredit","ActiveFVT","Vendoredit","searching","paging","BlockedByAccounts","backToTechnicianList","preferredSingleUser","SearchTagsDatarole","SearchTagsDatarole1","SearchTagsDataFilter","filterdata","first","GetBalance","PreferredFreelancerTechnicianProfileService","userbalance","ModalInstanceCtrlHistory","PlanningUploadJobsService","getTicketBasedPlanning","GetAddressBasedPlanningResult","TicketBasedPlanningService","ActiveVendorUpdateService","SearchByUserType","TotalLocation","TotalMatch","NotMatch","Atleast3Match","Atleast2Match","Atleast1Match","RunRateInDays","RangeInKm","RegistrationStatus","Asset","Certificate","UserDetailVerification","LocationAddressList","TicketBasedPlanningList","OpenUploadLocationModal","uploadLocationModalInstance","RangeFunction","ionRangeSlider","grid","skin","AddressList","GetAddressBasedPlanning","AssetList","CertificateList","ToolList","UserDetailVerificationList","TotalJobLocations","RegistrationStatusList","PlanningTemplatesService","ShowHide","isNavCollapseds","isCollapseds","isNavCollapsedss","isCollapsedss","isNavCollapsedsss","isCollapsedsss","toggle","switch1","switch2","switch3","switch6","switch7","switch8","switch9","switch10","switch12","GetAllFreLancerProfile","GetTalentPoolForMapView","mapuserFormData","GetAllAccountDetails","GetTicketsOnFilterWithPaging","ticketFormData","GetCustomersOnFilterWithPaging","GetCustomersOnFilterWithoutPaging","GetTicketsOnFilterWithoutPaging","GetUsersForPinpoint","long","GetUsersOnFilterForTickets","GetPincodeBasedUserAnalysis","PincodeUserFilters","GetAllCapacityUpload","GetAllAnalysisForUpload","CreateNewAnalysis","GetAnalysisData","AnalysisId","Orderby","OrderSequence","GetExceptionAnalysisData","GetAnalysisDashboard","GetAllPendingJobsCount","GetAnalysisFilters","VerifyAddress","updatedAddress","GetAddressByGoogle","findAddress","UpdateAddress","CreateDynamicAnalysis","GetUserListData","AddressId","ListType","SortBy","ulPageIndex","ulPageSize","GetUserData","uwPageIndex","uwPageSize","GetAddressListForUserOnPaging","uwtPageIndex","uwtPageSize","GetAllConsumerCampaignName","RunCampaignOnConsumer","consumnerFormData","GetAllGenericCampaignName","RunCampaignOnUsers","CreateNoticeOnUsers","RunCampaignOnFilteredUsers","CreateJobBundleAndBroadcast","broadcastData","CreateAndBroadcastPendingJobs","clearMarkers","deleteMarkers","worklocationCount","UserWorkLocations","worklocationToolTip","OneJobDoneSkills","showticketSuccess","toggleBottom","open360View","closeSlideBottom","toggleNav","UserRegistrationStatus","TechRole","techPincode","TicketState","PreferredForAccounts","TicketCity","ticketStatus","TicketSkill","fileDescription","TPPageIndex","TPPageSize","cuPageIndex","cuPageSize","ticketPoolPageListCount","customerPageListCount","userPoolPageListCount","ticketPoolListLenth","customerListLenth","userPoolListLength","TPpageindexCount","cuPageindexCount","UPpageindexCount","AlListCount","UWListCount","exuPageIndex","exuPageSize","EAlListCount","UWticketsListCount","pageListCountsuwt","GetAnalysisDataList","analysisFilterView","ticketFilterView","exceptionView","analysisFilter","pincodeBasedFilterView","customerFilterView","searchDisabled","Ticket","Finance","ticketFilter","pincodeBasedFilter","customerFilter","techToRunCampaignOn","implementSelectTech","selectRowFL","applyAllFLSelect","removeAnalysisFilter","cars","tools","selectedTools","ActiveInMonth","NoOfJobDone","MatchCriteria","TraningCertificate","OneJobDone","MatchingSkill","IsBasedOnPincode","chicago","population","newyork","losangeles","vancouver","showMapWithFreelancers","warehouse","masterwarehouse","dynMarkers","freelancerlist","techdetails","hasWareHouse","MasterWarehouse","CurrentLatitude","CurrentLongitude","markerClusterer","addMarkers","clusterOptions","imagePath","gridSize","zoomOnClick","maxZoom","MarkerClusterer","GetTalentPoolForMap","dynTicketMarkers","ticketstartDate","ticketendDate","ticketPooldates","ticketdateRangeChange","totalTableTicketPool","ticketPoolTablePerPage","TicketPoolTablepagination","changeTicketPoolPageListCount","TicketPoolTablepageChanged","addFilterforTickets","ticketPoolList","ticketUserFilters","AnalysisBasedOn","OneJobDoneForSkills","totalCustomers","customerTablePerPage","customerTablepagination","changeCustomerTablePerPage","CustomerTablepageChanged","addFilterforCustomer","customerPoolList","userPoolList","addFilterforPincodeAnalysis","UserState","UserCity","AnalysisName","AnalysisDescription","UserCertificates","UserTools","userFilterEnable","showUserFilter","chkselect","exceptionFilter","addFilterforExceptionTickets","UserIdsList","exceptionPoolList","exceptionPoolUserList","UserLiteResponseModelList","addFilterforTicketMap","showMapWithTicketPool","addFilterforCustomerMap","showMapWithTechBasedOnTicket","TotalJobDone","TotalJobRejeceted","RatingByMMF","usersPinFormData","ticketdetails","ticketlat","ticketlong","customerdetails","CustomerAddress","ServiceType","CustomerPincode","isActive","isActive1","HideText","ShowText","isClick","isClick1","isClick2","isClick3","activeButton","activeButton1","activeButton2","activeButton3","HideFLprofile","addFilterforAnalysis","slider","ceil","minLimit","maxLimit","analysisModel","analysisModelOpen","openConsumerCampaignModel","consumenCampaignModelOpen","CloseConsumerCampaignModel","ConsumerCampaignName","consumner_campaign_form","broadcastCloseModal","GetUserDataList","noticeModel","noticeBroadcastModelOpen","CloseNoticeModel","noticename","landingPage","fileLink","noticeType","noticeDescription","NoticeRole","NoticeBrand","startDatenew","endDatenew","showErrorMessage","dynamicCampaignModel","dynamicCampaignModelOpen","CloseDynamicCampaignModel","CloseAnalysisModel","confirmstatus","ConfirmAnalysis","analysisData","Toast","ShowToast","openCapacity","verify","EditAddressModel","ueradata","addressEditModel","CloseEditAddressModel","addressData","partial_match","formatted_address","pullBackTicketFromAssign","SecondryStatus","pullBackReasonsList","pullBackReasonsModalInstance","userfeedbackList","Comments","MasterReason","commentList","RequestForUserId","UpdatedAddress","PlotAddress","newAddress","addressform","Formatted_Address","district","lng","GetExceptionAnalysisDataList","applyLocationFilter","applyExceptionLocationFilter","freelancerRole","Criminal","IsBankVerified","GetAllAccounts","accountsList","capacityList","GetAllAnalysisByUploadId","UploadType","analysisList","GetAllAnalysisUsers","addresId","showUserRow","analysisCount","pendingJobsCount","Skillset","filtersData","pincodeCheck","OpenExistingTicketModal","analyzeExistingModalInstance","CloseExistingModal","selectedAccounts","endDateForAnalysis","MediaUploadReqModel","UploadedFileName","FileDescription","totalAL","ALPerPage","aLpagination","changeAlPageListCount","AlTablePageChanged","analysisFiltersList","AddressAnalysisResModelList","TotalRecords","analysisListLength","totalEAL","EALPerPage","eaLpagination","changeEAlPageListCount","EAlTablePageChanged","exceptionAnalysisFiltersList","exceptionAnalysisLength","exuPageIndexCount","userchangePageListCount","GetUserDataPagingList","UWticketDataList","showUserTable","UserModelResList","ulpageindexCount","TalentPoolTablepageChanged","UserRoleList","freelancerRoleList","IsCriminalVerified","IsBankVarified","IsUPIVarified","usersCounts","traningCertificateList","ServiceBrand","ServiceProduct","AllapplyTalentPoolfilter","filterApplied","tuPageIndex","totalTalentUsers","AllapplyfilterCopy","totalUW","UWPerPage","UWpagination","changeUWPageListCount","UWTablePageChanged","analysisUserList","UserAnalysisResModelList","analysisListUWLength","uwpageindexCount","totalUWtickets","UWticketsPerPage","UWticketspagination","UWticketsPageListCount","UWTicketTablePageChanged","GetUserUWDataPagingList","toBebundle","bundlePrice","bundleDistance","CreateComboFlag","selctedTickets","PlannedClosureDateFlag","UWTicketList","showAddressTable","AddressModelResList","UWTicketListLength","uwtPageIndexCount","CreateBJobs","bundleTicketArray","bundleData","totalDistance","bundleAvgDistance","reduce","OpenPendingJobsBroadcastConfirmation","broadcastconfirmationModal","BundleJobsBroadcast","AddressIdList","yesterday","startDateForAnalysis","showAccountErrorMessage","checkDateRange","checkAnalysisDateRange","landingPageList","Notice_BroadcastForm","ActivityName","LandingPage","NoticeType","ActivityLink","NoticeStartDate","NoticeEnddate","campaignSkill","campaignLocation","campaignTools","campaignLink","DynamicRunCampaignOnUsers","CampaignParameters","RunExcepCampaignOnUsers","consumerCampaignNameList","genericCampaignNameList","productList","ChangeDetectinAccountSection","Dynamic_Analysis_Form","existingDataform","AccountIdList","activatedButton","isactivated","activatedButton1","isactivated1","activatedButton2","isactivated2","activatedButton3","isactivated3","activatedButton4","isactivated4","activatedButton5","isactivated5","activatedButton6","isactivated6","activatedButton7","isactivated7","activatedButton8","isactivated8","activatedButton9","isactivated9","activatedButton10","isactivated10","activatedButton11","isactivated11","activatedButton12","isactivated12","activatedButton13","isactivated13","activatedButton14","isactivated14","activatedButton15","isactivated15","activatedButton16","isactivated16","activatedButton17","isactivated17","activatedButton18","isactivated18","activatedButton19","isactivated19","activatedButton20","isactivated20","activatedButton21","isactivated21","activatedButton22","isactivated22","activatedButton23","isactivated23","activatedButton24","isactivated24","activatedButton25","isactivated25","activatedButton26","isactivated26","activatedButton27","isactivated27","activatedButton28","isactivated28","activatedButton29","isactivated29","activatedButton30","isactivated30","activatedButton31","isactivated31","activatedButton32","isactivated32","activatedButton33","isactivated33","activatedButton34","isactivated34","activatedButton35","isactivated35","activatedButton36","isactivated36","activatedButton37","isactivated37","activatedButton38","isactivated38","activatedButton39","isactivated39","$range","$from","$to","updateValues","onChange","updateRange","PlanningBulkUploadService","PersistentReportService","recteateTable","ReportNo","PermissionSetAssignedUserService","PermissionSetDetailViewService","manageassignment","isAdding","cancelAssignments","Assignedprofile","removeProfile","toggleAssignments","resetSelections","checkIfAllSelected","allChecked","saveAssignments","selectedProfiles","PermissionSetService","Labelname","newProfile","APIName","serviceCharge","serviceTax","accesoriesCharge","changeJobStatus","requestStatus","payumoneyModel","txnid","productinfo","surl","furl","getTotalAmount","totalAmouont","ServiceCharge","ServiceTax","AccesoriesCharge","getAccessoriesCharges","isApproveModalOpened","OpenConfirmModal","boxType","openConfirmationBox","closeConfirmBox","checkAccessoriesValue","proceedToPay","payment_mode","redircet_url","cancelTicket","cancelOtherReason","rescheduleTicket","rescheduleOtherReason","isJobStarted","showCancelButton","next","GetAllOrdersByFilter","GetOrdersDashboardByFilter","OrdersListService","PartsList","AccessoriesPartOrderList","OrderStartDate","OrderEndDate","OrderCountData","getAllByPaymentStatus","UpdateCartOrderStatus","CartOrder_Form","toggleCollapsibleTable","PayOnlineService","orderdetailService","OpenBucketSettingsService","showTimes","bucketTimeWindow","timeslotDay","bucketSkills","bucketDistance","autoTimeWindow","assignationMode","userWithSecurityPayment","bucketState","prefrence","addTimes","updateSetting","showTime","timeWindow","CommittmentFollowUp","CloseOnBoardingTask","GetOnBoardingTaskByFilters","GetTatTaskCountsByFilters","OperationTATBreachedService","CommittmentOpsService","Closuredatelimit","userCommittmentDate","userComments","userCommittmentStatus","closeuserCommittmentStatus","userCommittmentId","OnBoardingList","taskStatus","taskPincode","CreationSource","taskskill","capacityCount","cityOfTask","accountIdOfTask","stateOfTask","skillOfTask","descriptionOfTask","TaskId","IsFreelancerBidCount","IsFixedTeamCount","IsCommittedUser","IsCommitmentInterestedUser","NonPrime","PssStatus","Sort","IsAuthorizedServiceCenter","selectedElement","targetElement","GetOnBoardingTaskCounts","ApplyTaskfilter","calltrack","OnBoardingResModelList","TotalTask","OpenTask","ClosedTask","PickupTAT","EstimateTAT","EstimateApprovalTAT","RepairTAT","DeliveryTAT","IntegrationAPI","GetUserByRegistrationNo","registrationNo","SaveBackgroundChecks","files2","files3","updateuUser","sendBoatLink","callToInitCverification","RejectUserProfile","rejectRemark","VerifyUserProfile","GetMasterDataOfServiceCenterByVerticalName","getAllProducts","GetMasterDataOfServiceProductByBrandName","ProductList","getallBaseCities","BaseCityList","dissableBankDetails","searchButtonText","dissbleUpdateButton","rejectButtonStatus","dissableMobile","editmode","RegisteredUser","BGVerificationStatus","isnonindeximage","MobileNo","Designation","Background","Aadhar","BaseAddressLine1","BaseAddressLine2","AccountList","AllAccountNames","BaseState","BaseCity","BasePincode","UserInfoCheck","UserLocationCheck","UserDocumentCheck","UserTraningCheck","UserBankDetailsCheck","UserAvailableAssestCheck","WorkPlaceFileName","AuthFileName","ProductServingOther","FilesAuthDoc","FilesTrainingDoc","FilesWorkPlaceDoc","ToolAuditFiles","ThirdPartyDocs","FilesBackDoc","BackFileName","UserSkillCheck","verifyAll","Work_Location","PreferredLocationList","experienceYearList","DocprofileImg","QualificationList","tempTCertificateFile","CoverageDistance","BankAccountNo","BankIFSC","AccountHolderName","FEBankDetails","$container","$p","ContractDocPath","ContractSignDate","ToolsDetailList","Verificationpathtcertificate","UserExperience","ProfileRejectDate","ProfileRejectedBy","ProfileResubmitDate","ProfileReviewComment","UserQualification","IsBasicVerified","IsLocVerified","IsDocsVerified","IsBankDetailsVerified","IsCertificationVerified","IsAssetsVerified","IsSkillsVerified","AccountDetails","ServicePartnerModel","DocumentNo","VerificationMode","ThirdPartyDocumentPath","attachThirdPartyReport","ToolAuditFileName","attachBackDoc","uploadBGFilenew","SiteRescheduleAudit","docName","docType","VerificationAuthority","VerificationStatus","ThirdPartyDocumentPathName","attachAuthCertiDoc","attachWorkPlaceDoc","UpdateAuthorizedServiceDetails","SaveAuthorizationData","VerificationCertificateimageServices","skillIndex","accountData","accountIndex","changeStatus","GetAllVerticalMasterData","selectedVertical","selectedBrand","allBaseStatePromise","BaseStateList","selectedBaseState","emptyPincode","bstate","emptyBasePincode","checkdateformat","IssueDate","changeCertificateFile","VerificationchangeCertificateFile","cert","UploadCertificateimageServices","UploadCertprofileImg","Verificationisnonindeximage","VerificationUploadCertificateimageServices","VerificationUploadCertprofileImg","uploadInsurenceFile","InsuranceImageURL1","tempfilename","VerificationuploadCertificateFile","VerificationtempCertificateAdd","tempPLocation","PreferredState","PreferredCity","PreferredPincode","AddPreferredLocation","DeletePreferredLocation","VerificationAgency","removeCertificate","PercentageScore","removeCurrentSkill","addMoreSkillInTable","tempAddMoreSkill","blank","tempDeleteMoreSkill","pushTempTOOriginal","closeSkillModel","AllAccounts","RemoveAccounts","remainingAccounts","showRow1","addMoreAccounts","removeCurrentAccount","removeAccount","addMoreAccountsInTable","$current","ExpiryDate","VerifyAllUserInfo","ApprovedAndRejectTool","IsApproved","ApprovedRejectTool","ApprovedAndRejectCertificate","ApprovedRejectCertificate","form1","SkillSetModel","AccountSetModel","TrainingAssessmentModel","BGVerificationDocPathModel","DocumentPathName","PolicyNumber","PolicyIssueDate","PolicyExpiryDate","InsuranceDet","CurAddressLine1","CurAddressLine2","CurState","CurCity","CurPinCode","PerAddressLine1","PerAddressLine2","PerState","PerCity","PerPinCode","VerificationsRemarks","callforCriminalVerification","markActive","OpenRejectionPopUp","RejectModel","rejectForm","closeRejectionPopup","OpenBucketAssignationService","UpdateUserProfileValidationData","GetBasicDetailsWebDynamic","GetSkillDataAndLocationWeb","GetInvitedTeamForRegistrationWeb","GetBankDetailsForUsers","GetBGverificationWeb","SetUserStatusInActiveMode","UploadExternalVideoList","newdata","ReTestForSkill","IsProfileActivationRights","ItemComment","ItemStatus","disableActivateButton","UpdateValidationData","validationData","fieldData","GetBasicDetailsDynamic","GetSkillDataAndLocation","IsApprovedModelOpen","closeApprovalPopUp","IsRejectModelOpen","closeRejectionPopUp","RejectionModel","OpenApprovalPopUp","ApprovalModel","UserBGInfo","userProfileValidationData","UserBasicInfoList","UserSkillandLocationInfo","UserInvitedTeamInfo","UserBankInfo","userBGverificationValidationsData","ExternalUpload","skillName","UploadVideoExternal","getImageDataFST","videoCallEnabled","closeDiv","AudioCallInitiated","VideoCallInitiated","ChatInitiated","ObjectSettingsDetailsService","tabDefault","tabdefault","NoticeCampaignDetailsService","GetNonRefundablePartlist","GetNonRefundablePartlist_CSV","MarkNonReturnPartDetails","parttId","NonReturnTicketPartOrderPlace","NonReturnablePartConsumeListService","OpenMarkPaymentConfirmation","markpayment","paymentmark","closeMarkPaymentConfirmation","PartOrderStatus","nonReturnTicketDefects","partResModels","GetWorkExperinceDataforGc","NewOnboardingFlowService","GetWorkExperinceData","WorkExperienceInfo","IsAthorizedServicePartner","IsEligibleToAddPreferred","GetJobApprove","UpdateMetrialDeliveredStatus","matrialStatus","callToCustomer","UpdateJobPayment","GetAllPreviousUser","GetUsersByTicketId","OnLoadLineItemDetails","LineItemTicketId","CreateUpdateRemoveLineItem","UpdateJobPaymentDynamicPrice","FreelancerRate","ApprovePricingButtonText","UpdateJobPaymentDynamicPriceAndApprove","GetJobLineItem","GetCallDetails","jobDetailsService","clean","propName","CollectionRequired","loggedinUserName","loggedinUserImage","BackToTicketList","GetJobApprovebtn","getCallDetailsList","RejectJobBtn","SPDUpdateWithInDays","FreelancerBidForLightTicketList","FreelancerBidForLightTicketModel","FreelancerBidCount","ListBonusPenalty","fileuploadShow","GetAllJobLineItems","SparePartDropAddress","ListFieldSupportTeam","ListOfSupportTeam","TechnicianSource","showF","showN","showT","showP","GetFixedUser","GetNearByUser","GetTalentPoolUser","GetPreviousWorker","addClassInButton","planerDateModal","editplanCloser","closeplanerDate","PlannedClosureticketList","TicketIds","TicketPlannedClosureDate","ConnectTo","jobPayment","editJobPayment","jobPaymentModal","closeJobPayment","updateJobPayment","jobPaymentForm","Stdate","Etdate","UpdateMatrialStatus","MetrialDeliveredStatus","previewSelectedObj","PDFViewRport","jobAppointmentModalReport","PDFUserModalReport","CloseEditModal","getPdfExist","DistanceFixed","starFixed","DistanceNearBy","starNearBy","DistancePre","showNearByTable","orderbyUser","FixedUserList","FixedUserLength","CreateFixedUserTable","reloadDataFixed","toggleAllFixed","toggleOneFixed","selectAllFixed","selectSingleFixed","headerCompiledFixed","showFixedTable","showFixed","selectedFixed","dtOptionsFixed","dtColumnsFixed","NearByUserList","headerCompiledNearBy","IsComplianceDisable","NearByUserLength","CreateNearByTable","selectSingleNearBy","toggleAllNearBy","toggleOneNearBy","selectAllNearBy","selectedNearBy","titleHtmlNearBy","dtOptionsNearBy","dtColumnsNearBy","attendance","IsPresentToday","resetPagingFixed","reloadDataTalent","resetPagingTalent","reloadDataPre","resetPagingPre","Preffered","PrefreUserList","PrefreUserLength","CreatePrefreTable","headerCallback","titleHtml","showTable","showTablePre","selectSinglePre","headerCompiledPre","PreviousUserList","PreviousUserLength","CreatePreviousUserTable","toggleAllPre","toggleOnePre","selectAllPre","selectedPre","titleHtmlPre","dtOptionsPre","dtColumnsPre","BroadcastField","BroadcastTicketNearBy","BroadcastTicketPool","BroadcastTicketPrevious","routeFixed","BroadcastType","routePreTalent","routePrevoius","ReadytoAssignUser","ReadyUserLength","rUser","displayJobOnMap","pageloadselecteduserid","pageloadselectedusername","getTicketUserList","UserListByTicketId","PressEnter","chatReceiverId","LoadMessageToReadMessageStatus","TicketIdtoRead","query1","querySnapshot","TotalNewMessageNotify","TotalNewMessageStatus","newMessageStatusLength","activeonchat","getChatOnPageLoad","getUserChat","getUserDetailstochat","ChatUserId","upicture","uPicture","PreviousIndex","currentelementId","previouselementId","chatUserId","chatUserName","chatDisplayUserName","ChatTicketId","loadMessages","createMessages","subMessagedata","chatreceiverid","CreateDate","serverTimestamp","messagetype","SenderId","Url","MessageType","Timestamp","chatticketid","limit","allMessage","Rightcontent","RightuploadImage","Rightuploadpdf","Rightuploadvideo","unix","seconds","Leftcontent","LeftuploadImage","Leftuploadpdf","Leftuploadvideo","objDiv","saveImageMessage","filePath","storage","ref","fileSnapshot","getDownloadURL","storageUri","metadata","fullPath","changeChatFile","uploadChatImageFile","LineItemFreelancerPrice","LineItemHSNCode","LineItemDisplayDescription","_baseprice","_dFprice","_lineitemquantity","_lineitemfreelancerprice","FLPriceTotal","maxBonus","updateRomoveLineItem","Requestdata","lessBasePrice","lessdFprice","UpdateLineItems","updateLineItem","ApprovePricing","IsCollectionFlag","CollectionPercentage","CollectionAmount","Applycompletejob","SourceResolvedOn","ClosureMode","SiteAuditPDFUserModal","Auditpdf","MilestoneDetailViewService","generateUserId","generateUserName","WarningTimeTriggerMilestone","ViolationTimeTriggerMilestone","violatedmilestone","closeViolationMilestone","milestone","selectedMilestoneIndex","selectedWorkflow","casename","caseName","channelName","caseDescription","selectedAgents","handleWorkflowChange","currentSection","successMilestones","warningMilestones","violationMilestones","saveMilestone","usersList","addUser","inputValue","inputPhone","matchedUser","timeTriggers","addTimeTrigger","timeValue","timeUnit","deleteTrigger","editTrigger","warningTimeTriggers","addWarningTimeTrigger","warningTimeValue","warningTimeUnit","deleteWarningTrigger","editWarningTrigger","TicketDetails","addCriteria","editRow","saveRow","TimeTrigger","Criteria","ProcessJobToBeAssignedManually","GetUserByFiltersWithDynaPage","ConvertJobIntoNew","PullBackReason","convertScheduleException","CreateJobBundle","IsSuggested","UnBundleJobs","RouteBundlesforUser","BroadcastJobBundle","BroadCastBundlesforUser","GetAllBundledJobs","DownloadAllTicketReportWithFilter","ReopenCancelCall","DonwloadPDFOnSiteReportForTickets","DownloadPAVReprotXls","OnSiteReprotUploadWeb","ToolsListCount","ToolsListToolTip","loggedinUserRegion","TeamStatus","userlocation","AttendenceForBid","ticketaccount","isOpened","ticketskill","ticketstatus","VendorUsers","selectedJob","newJobselectAny","fixed_selectAll","filteredFreelancer","selectsinglebidJob","freelancer_selectAll","UserAvailabilityData","WorkState","WorkCity","UserAvailabilityList","bpageindexCount","wpageindexCount","bPageIndex","bPageSize","wPageIndex","wPageSize","UserSuggestionCount","UserBIDCount","suggestionPageListCount","unbundleTicketArray","bundleListLength","workOrderListLength","bundlePageListCount","workOrderPageListCount","GetRejectedJobs","GetAllActiveFixedUsers","GetFollowupReasons","applyComboTktFilter","applyfilterWorkOrder","applyTicketFilter","fixed_select_all","fixed_select_single","free_selectedItems","freelancer_select_single","free_NewJobSelectedItems","freelancer_select_single_NewJob","freelancer_select_all","freelancer_SelectAllJob","freelancer_Select_All_NewJobs","Vendor_selectedItems","Vendor_select_single","Vendor_NewJobSelectedItems","Vendor_select_single_NewJob","Vendor_select_all","Vendor_selectAll","Vendor_SelectAllJob","Vendor_Select_All_NewJobs","processBroadcastRouteResponse","SuccessCount","failuremsg","BroadcastStatus","routeTicket","JobIds","workorderTkt","tickIdForWoL","routeTicketUS","BroadcastTicketUserSuggestion","routeTicketToFV","BroadCastRate","BroadCastGrossRate","Bids","BroadCastJobsFV","AllDataList","broadcaststartTime","broadcastEndTime","broadcastAssignRate","BidReceivedJobs","hideSentUser","BidReceived","bidStatus","broadcastLinkId","broadcastTicketInfo","BIDMaxcount","BIDStartIndex","totalUserBID","UserBIDpagination","UserPhoneNumber","BidDeny","BidSent","tempTicketInfo","ResetUserSelectionUS","SkillSetList","IsPincodeEnabled","Attendance","SuggestionMaxcount","SuggestionStarIndex","totalUserSuggestions","UserSuggestionspagination","selectAllCheckboxes","table","idx","freelacer_selectAll","freelancer_SelectAllJobs","implementSelectTickets","selectRowTicket","AutoBroadcastedOnce","implementSelectItemsFL","implementSelectItemsUS","selectAllUS","showMinusUS","selectCountUS","selectRowUS","applyAllFLSelectUS","selectRowNewWoL","tktId","SearchByDName","SearchByConsumerContact","PlannedClosureDateModelOpen","PlannedClosureDateCloseModalInstance","PlannedClosureDateCloseModal","ticketObj","manualAssignation","CloseHoldUpModel","PDFViewEstimate","convertNewReasonsList","convertNewReasonsModalInstance","UpdateConvertNewReasons","convertNewReasonsForm","ticketArray","convertNewReasonsCloseModal","GetUserPenaltyOption","userPenaltyList","PenaltyModel","closePenaltyPopup","GetFeedbackByUserIdDrop","activeUser","UpdatePullBackReasons","pullBackReasonsForm","PullBackReasonsModel","pullBackReasonsCloseModal","penaltyForm","PenaltyReason","penaltyReason","PenaltyRemark","penaltyRemark","penaltyAmount","BrodUserDataUpdateRequest","TicketPaymentNeedToProcess","IsTicketPaymentNeedToProcess","IsInvoiceEnabled","updateFalseTBC","OpenReOpenCallModel","Reopencallopen","closeReOpenCallModel","pavModelTicketId","OpenPAVReportUploadModal","pavModelInstance","closePAVModel","attachPAVReport","PAVFileName","PAVMessage","selectedFile","PAVReportFiles","UploadPAVReport","OpenSiteAuditModal","SiteAuditTicketId","siteAuditModalInstance","SiteAuditCloseModal","attachSiteAudit","SiteAuditMessage","AuditResult","SiteAuditModel","AuditObjectId","AuditAttachmentName","AuditFor","bundleTablePerPage","BundleTablepagination","changeBundlePageListCount","BundleTablepageChanged","totalTableWorkOrder","workOrderTablePerPage","workOrderTablepagination","changeWorkOrderListCount","workOrderTablepageChanged","changeAllUserPageListCount","userSuggestionsPerPage","cangeSuggestionPageListCount","UserSuggestionTablepageChanged","userBIDPerPage","UserBIDTablepageChanged","AssignedNCallTakenButNoAppointment","AppointmentNotTakenInTime","AppointmentNotBooked","AppointmentBookedThenCancelled","CancelledSourceCount","ProductReplacementCount","GasChargingRequestCount","ProductReplacementRaised","AssignedThenCancelled","AppointmentRescheduled","PriorityCount","ExceptionNoUserCount","AppointmentBookedForDay0","AppointmentBookedForDay1","AppointmentBookedForDay2Plus","AppointmentBreached","NotAssignedForD0","NotAssignedForD1","CustomerCallInit","AssignedNoActionCount","date3","AssignationDate","assignDuration","assignDurationMin","diffAssignation","diffAssignationMin","SearchByState","savedFilters","removeItem","closeSearchTextCombo","closeSearchWorkOrder","SearchByAccount","AssignedTicketList","outsidedateRangeChange1","bundledateRangeChange","JobDType","backToTicketList","BundleJobsCreate","routeBundle","BroadCastBundles","BroadcastBundleModal","openBroadcastBundlemodal","closeBundleModal","BroadcastBundlesUS","routeBundlesUS","UnbundleBJobs","UnBundleTkts","closeUnbundleModal","DownloadTicketExcelWithFilter","downloadPAVReportPDF","downloadUrl","ManualAssignationService","jobs","GetBroadcastedJobs","hr","AdvanceSearch","LocationsList","CloseAdvanceSearchModal","closeSendAndRecieveBid","implementSelectItemsFV","selectAllFV","showMinusFV","selectCountFV","selectRowFV","applyAllFVSelect","slideSendAndRecieveBid","UserpageChanged","searchUserTable","ChangeUsersType","validateLog","GenerateOtp","AuthenticateMobUser","Login2FactorService","userAuthToken","passwordOtp","formParams","stage","countDown","onLoginEmail","loginForm","userAuthMessage","onLogin","userAuthUserId","back","enablePlugin","disableAutoFill","AuthenticateUser","userDatea","VerifyOTPWebUser","AuthenticateWebUser","loginService","isKenstarUrl","absUrl","loggedInUfserId","EmployeeId","reSendCode","CentralWarehouse","onLoginKenstar","GetAllLeaveRequests","ApproveLeaves","leaveIds","RejectLeaves","LeaveManagementService","leaveRequestList","LoadBalancerService","GetKPITargetsForMonth","AllKPIData","accountVerticalKPITargets","AllRestKPIData","loadbalancer","loadBalancer","closeloadbalancer","OpenUploadKPIModel","GetLeaderboardDetails","LeaderBoardService","LeadersData","listTopPerformer","listHighestTakeRate","listHighestProfit","listBestTeam","listHighestJobs","listHighestMMFRevenue","KPIconfigurationService","startYear","serialNumber","updateDate","InvoiceList","tickedfile","BulkInvoiceGenerateModel","KPIAdvancedDashboardService","sendReportToMail","downloadMultipleReports","correlated","downloadInvoice","JobListService","JobProject","JobTName","JobDesc","CommonFunToGetAllJob","MailReport","OpenAutoScheduleConfirmationModal","JobCustomer","tablecolumns","notVisible","ReadyToRaiseInvoiceFlag","PreInvoiceStatus","downloadInvoiceReport","ReadyToRaiseInvoiceModelOpen","TicketPONumber","readyToRaiseInvoiceModalInstance","ReadyToRaiseInvoiceCloseModal","collectionAmount","disabledCollection","ChangePONumber","PONumber","ReadyToRaiseInvoiceSave","reqVideoCall","GetLatestVideoSessionLocation","initiateAdvancedPayment","advancedDetails","ClickToCallAlternate","updateJobDescription","purchaseFromList","PurchaseType","GetAllTrackingDetails","byPassSerialNumber","bypassvalidation","GetShipmentDetails","GetPreApprovalDocList","GetPreApprovalStepEric","completeTkt","updateapproval","approvePPw","RejectJobPPw","UpdateJobData","GetTemplateData","GetSectionDataByStepName","sectioninfo","GenerateConsumerInvoice","JobDetailViewNewService","customerinitMap","orgLat","OrignalLatitude","orgLong","OrignalLongitude","origLatLong","custUpdatedLatLong","custcalculateAndDisplayRoute","customermakeJobMarker","customermakeUserMarker","custstart","liveLatLong","isFirstOpen","oneAtATime","ppwComment","Isbypassvalidation","FeedbackModel","closeFeedbackPopup","openVideoPopup","videoModal","closeVideoPopup","CallInitiated","videoLink","PollVideoCallFieldLocation","ShowLocationOfFieldTeamOnMap","liveLocation","ViewJobCombo","dataDocList","sectionDocList","StepName","stepsDocLists","stepsDocList","StepsName","implementSelectData","selectDataRow","finalData","tktList","ticketResponseList","templateSection","stepsDocListsTempArray","applyAllSelectSection","stepName","approveJobDataCap","ticketResp","ItemUpdateDate","VideoName","RejectJobDataCap","pAdocList","selectDocRow","docListArray","applyAllValuesSelect","getShipmentDetailsList","sowLink","AlternateConsumerContact","PlannedStartDate","TicketDescEdit","SiteId","jobDescription","editJobDesc","closeJobDesc","updateJobDesc","jobDescForm","clickOnFileControlMulti","tempImgList","ImageUpdateIndex","tempImgNameList","ImageItemName","clickOnFileControlEdit","theArray","getPurchaseFromList","purchaseFromData","itemss","imgNameI","imgType","imageData","PdfData","isPdfExist","IsPincodeBasedScheduling","IsPrivateDisable","IsTrackingAllowed","slide","customergetTracking","dateFormat","AddedFromField","ZOHOSalesOrderStatus","ShowPassport","warehouseCategory","warehouseCompanyProvided","warehouseBaseprice","warehouseFreelancerPrice","warehouseModal","gData","createSales","sendAdvanceDetails","TicketCompletionRemark","getImageIndex","indexImgg","stepsModel","imageIsLoaded","getImgIndex","selectedSectionName","imgIndex","isEditDisabled","FieldDataDetails","updateSection","updateData","DataItemDetailList","UpdateDataModel","formdataForEdit","ItemImageName","DataItemDetail","dataUpdateRequestModelList","DataItemDetails","UpdateFinalDataModel","JobDetailViewComboService","WorkOrderJobList","workOrderList","attachementInit","pdfTabClass","activeTabClass","noactiveTabClass","attachment","IsRaiseCustInvoiceOnCompletion","ItJobView","ItJobViewModal","downloadMultipleReportData","followupTicketId","getFileNameExport","unshift","IntegrationHubTestURL","AckoURL","UpdateDeviceRepairDone","GeneratePdfEstimateReport","SendChatInviteForExternal","GetChatRecords","ReferenceDoc","appointmentotp","AppointmentOTP","UpdateSDRForTicket","SDRData","UpdateContactInTicket","UpdateStatusJobLineItem","GetAllActivityTimeline","purchaseType","ResendFeedbackforCustomerRating","MarkInspectionPassed","Ackourl","ClaimEstimationGenerated","GetModelNumberByTicketId","GetCRMCallTypeList","ValidateTicketCanMarkComplete","UpDateEstimateStatus","SendHappyCodeSMS","SendHappyCodeSMSNew","appointmentTime","GetProductInfobySerialNumber","GetAllSymptomDocByProductGroup","GetDefectsValuesBySymptomValue","SymptomValue","GetAllRepairDocsByDefectValue","DefectValue","EnableOrDisableFaceRecognation","GetInventoryPartsDetails","GetJobCompletionOption","listLineItemData","tolist","cclist","GetAllOrderDetailTicketId","UpdateEstimateShareByCust","estimatedata","UploadInvoice","attachedFiles","RemoveInvoice","ReplyToQuery","queryModel","UpdateTicketForFieldData","AddTicketDefectStockToServiceCenter","DeadStokReqModel","ConsumerQueryService","JobDetailViewService","CustomerCRMListService","isTimeSlotValid","slot","timeParts","slotHours","slotMinutes","slotTime","updateAvailableTimeSlots","availableTimeSlots","timeSlots","selectDefaultTimeSlot","isJobLocationValid","defaultCenter","IsAppointmentOTPNeeded","IsQueriesFound","HappyCode","SymptomCode","DefectCode","ResolutionCode","ResolutionValue","strSymptomValue","strSymptomDescription","strDefectValue","strDefectDescription","strRepairValue","strRepairDescription","PlannedClosureReason","getAllActivityTimelineList","OpenRevisitConfirmationModel","openrevisitModel","closeRevisitModel","TicketToComplete","completionReasonList","JobCompletionModel","closeJobCompletionPopup","UpdateJobStatusToCompleted","jobCompletionForm","CompletionReason","ticketCompletionReason","ticketCompletionRemark","OpenRepairCompletionModel","TicketToBeComplete","RepairCompletionModel","closeRepairCompletionModel","MarkRepairJobComplete","repairCompletionForm","ticketCompletionRemarks","implementSelectTicketsP","selectAllColumnsP","showMinusColumnsP","applyAllValuesSelectP","reportlist","GetBrandProductGroup","PartGroupList","strBrandName","BrandNameTicket","GetAllProductsForBrand","strProductGroup","UpdateProctDeatils","InfoList","TicketListInfo","ProductType","modelNumber","updateProductModelOpen","closeUpdateProductDetails","DisableAttachbutton","Invoicebase64","selectedInvoiceIndex","AttachInvoiceMutiple","attchmutipleinvoice","CloseInvoiceMutiple","ClearInvoiceMutiple","handleFileSelect","removeFile","deleteInvoice","initializeInvoices","CustomerInvoiceServices","getTrustedUrl","clearImageBlob","implementSelectDataF","selectAllColumnsF","showMinusColumnsF","selectDataRowF","applyAllColumnsSelectF","IsFaceRecognationOn","CompareFaceAttemptList","SymptomName","DefectName","ResolutionName","createHalfDonutChart","GetSchedulingEvaluationresult","getPlannedClosureUpdateReasons","OrderDetailList","ReplacedPartId","GetAllFollowUpForJob","getfollowUpList","PlannedUpdateReasonsList","PlannedDateChangeReason","editAlternateNumber","SecondAlternateContactNumber","AltNumberModal","closeAlternateNumber","AlternateNumberForm","checkAppointmentOtpRequirement","appointmentCode","disableAppointmentOption","oldValue","isOtpRequired","plannedStartDate","assignedDate","AppointmentTakenDate","allowAlphanumericOnly","todayFormatted","GetAllQueryForTicket","AllQueryData","teamReply","MMFTicketId","Query","strQuery","Response","showGenerateEstimatebutton","LineItemType","IsStockItem","LineItemApprovalRemark","IsCustomerApprovalNeeded","CustomerApprovalStatus","IsBackendApprovalNeeded","ShowShipmentBtn","IsApprovalModelVisible","ApprovalLineItemList","createApprovalData","ShowApprovalModel","ShowApprovalBtn","hwDataForApproval","LineItemDataforApproval","ShareApprovalModal","closeApprovalModal","StatusUpdateModal","updateStatus","typeOfApproval","TypeOfApproval","updateLineItemId","updateLineItemCategory","updateLineItemDescription","updateLineItemQuantity","updateCompanyProvided","updatedLineItemWinPrice","updatedLineItemFreelancerPrice","StatusModal","closeStatusModal","enable2","LineItemStatus","createPayment","processPayment","OpenShareEstimateModal","EstimateModalInstance","CloseEstimateModal","EstimateRemark","uploadShareEstimateFile","Estimatefile","valiateEstimateFile","EstimateFileName","verifyIsTicketReadyForCompletion","IsEligibleToComplete","happyCodeModalInstance","closeHappyCodeModel","SymptomsList","ProductInfo","strProductName","strModelNumber","strModelName","ModelName","strModelDescription","ModelDescription","strNewModelNumber","strNewModelDescription","getSymptomValue","DefectsList","selectedSymptom","symptom","symptomvalue","getDefectValue","ResolutionsList","selectedDefect","defect","defectvalue","AllCallTypes","strCallType","strListCallType","AllGangnamModelNumberList","getResolutionValue","resolution","selectedResolution","happyCodeCompletionForm","resendFeedback","OpenUpdateInspectionModel","openInspectionModel","closeUpdateInspectionModel","OpenClaimEstimationModel","openClaimGnrtModel","closeClaimEstimationModel","UpdateFaceRecognation","SendAppointmentCodeToCustomer","contactNumbers","openInvitePopup","addContactNumber","inviteUsersForm","newContactNumber","removeQuantity","CloseInviteModal","IsNewChat","ContactList","getAllChatDetails","chatDetails","closemailmaodal","TotalTAT","accessibility","valueSuffix","OpenUpdateDeviceRepairModel","closeUpdateDeviceRepairModel","GetAllInvoicePayment","getInvoiceHistory","InvoiceNo","PutInvoiceTicketPayments","PutSingleInvoicePayments","PutMultiSelectedInvoicePayments","InvoicePaymentService","toggleAllTicket","toggleOneTicket","Invoice","invoicePaymentList","PutInvoicePayments","InvoiceHistory","invoiceNo","InvoiceModel","CloseInvoiceModal","titleHtmls","TicketdtOptions","InVoiceHistoryData","TicketdtColumns","PaymentRemark","TicketDetailsList","InvoiceLists","InvoiceNoList","getInvoiceToDetails","GenerateItemizedInvoice","GeneratePreviewItemizedInvoice","GenerateItemizedInvoiceOnScreen","GenerateInvoiceByModel","InvoiceItemizedService","ticketIdsToGenItemizedInvoice","ItemizedInvoiceList","ticketIdsItemizedList","SelectedInvoiceObj","InvoiceItemizedTicketIdList","ErrorString","PreviewItemizedInvoiceList","pdfBase64","IsGenerateBtnDisabled","generateSelectedInvoiceObj","InvoiceTabClick","InvoiceObj","GetAllInvoiceListbyDateRange","InvoiceListService","getInvoicebyDaterangeList","invoiceLists","GenerateConsolidatedInvoice","GeneratePreviewConsolidatedInvoice","GenerateConsolidatedInvoiceOnScreen","InvoiceConsolidatedService","CustomerInvoiceService","ticketIdsToGenInvoice","ConsolidatedInvoiceList","ticketIdsList","InvoiceTicketIdList","PreviewConsolidatedInvoiceList","getCustomerInvoiceState","getCustomerAccounts","CreateInvoiceToBillToAndShipTo","invoiceFromCompany","invoiceFromState","InoviceToBillToAndShipToData","UpdateInvoiceToBillToAndShipTo","GetInvoiceReminderByAccountId","CreateInvoiceReminder","InvoiceConfigurationsService","BillToCityList","ShipToCityList","initialize","PaymentTerms","strReminderName","nReminderdays","strMailSubject","strMailBody","InvoiceReminderId","customerAccounts","showBillAndShipToList","addMoreBillToAndShipTo","AddInvoiceToBillToAndShipTo","ObjBillToShipTo","RegisterState","InvoiceToState","BillToDetails","BillToCompanyName","AddressLine","BillToAddressLine","BillToState","BillToCity","BillToPincode","BillToPAN","GSTN","BillToGSTN","StateCode","BillToStateCode","ShipToDetails","ShipToCompanyName","ShipToAddressLine","ShipToState","ShipToCity","ShipToPincode","ShipToPAN","ShipToGSTN","ShipToStateCode","InvoiceFromCompanymodel","InvoiceFromStatemodel","EditBillToShipTo","editform","customerInvoiceDetails","invoiceToDetailsModelList","removeCurrentBillToAndShipTo","BillToCityStatePin","ShipToCityStatePin","invoiceFromDetailsModelList","invoiceFromDetailsModel","storeOriginalContent","originalContent","originalSubject","originalReminderName","originalReminderdays","cancelChanges","ccListMendtryErr","reminder","reminderdays","customerInvoiceState","scheduleReminder","strAccountId","strListCustomerEmail","strListMMFEmail","nPaymentTerms","objListReminders","strInvoiceReminderId","getCustomerInvoice","GetRemittanceAdvices","PageIndexAdvice","PageSizeAdvice","CreateRemmittanceAdvices","getInvoice","GetRemittanceDataByInvoiceId","getCustInvoice","getCreditN","getCreditNote","getDashboardDetails","PaidByCustomerInvoiceAccounts","RaiseInvoiceToCustomerAccounts","RejectInvoiceByCustomer","CloneRejectedInvoice","DownloadInvoice","invoiceNumberList","DownloadCredit","creditNoteNoList","SendEmails","GetBlankInvoice","CustomerInvoiceAttachment","ReGenerateIRN","invoiceId","b64toBlob","b64Data","sliceSize","byteCharacters","byteArrays","byteNumbers","byteArray","dissblesubmitButton","CustomerInvoiceList","creditNote","CustomerInvoice","GetCustomerInvoiceByReqUserId","customerInvoiceList","customerAdviceList","customerInvoiceStateList","customerInvoiceSubmittedList","updatePOList","customerRejectList","customerMailDetailsList","freelancerRejectInvoiceList","freelancerInvoiceList","freelancerRejectList","CloneRejectList","BlankInvoiceAccountId","BlankInvoiceRemark","SendEmailInvoiceList","PaidByCustomerList","SearchByBusinessUnit","SearchByAccountId","SearchByInvoiceNo","SearchByCreditNo","TicketsState","SearchByStatus","markPaidInvoiceList","InvoiceId","SearchByPONumber","SearchByDescription","SearchByTechnicianName","SearchByTechnicianId","SearchByCustomerName","invoicePageListCount","pageindexCountInvoice","pageindexCountAdvice","pageindexCountCredit","ticketListLengthInvoice","ticketListLengthAdvice","ticketListLengthCredit","advicePageListCount","PageIndexInvoice","PageIndexCredit","totalTicketUsers","totalTableUsersInvoice","usersTablePerPageInvoice","UserTablepaginationInvoice","currentInvoice","changeInvoicePageListCount","UserTablepageChangedInvoice","totalTableUsersAdvice","usersTablePerPageAdvise","UserTablepaginationAdvice","currentAdvice","changeAdvicePageListCount","UserTablepageChangedAdvice","invoiceRemittanceAdviceModels","totalCreditNotes","usersTablePerPageCredit","UserTablepaginationCredit","currentCredit","TicketFilterModelCredit","UserTablepageChangedCredit","TicketFilterModelAdvice","getFilterInvoicebyDashboard","statusValue","stateKey","cityKey","outsidedateRangeChangeforPO","InvoiceLightModels","ListTicketInvoiceModel","BlankInvoiveDoc","remittanceData","getAttachedInvoice","invoiceXLSX","fileType","convertBase64ToExcel","data12","blob1","blobUrl1","ListCreditNoteModel","dashboardDetails","AllAmount","InvoicePending","InvoiceSubmitted","InvoicePaidByCustomer","InvoicePaid","InvoiceRejected","businessUnitList","searchDataByStatus","ConsolidatedView","tt","ItemizedView","ReminderReport","ReminderModal","closeReminderModal","Emails","Subjects","InvoiceMailDetails","Request_Code","AttachmentList","SharedReportId","showMailShare","showShare","ScheduleReport","SchedulesList","showSchedules","GetAllSchedules","refreshData","showDownloadInvoice","selectAllInvoice","showMinusInvoice","showDots","showPaidByCustomer","showSubmitbtn","applyAllNewInvoiceSelect","generateInvoice","updatePO","implementSelectItemsCreditnote","itemList2","scope2","generateCreditNote","selectRow2","checked2","OpenCustomerPaidByCustomerModal","invoiceObj2","paidByCustomerObj","InvoiceNumber","AmountRecieved","AmountToShow","InvoiceAmountDue","customerPaidByCustomerModalInstance","disablePaymentRcvBtn","inputChanged","disableTDSPaymentRcvBtn","TDSChanged","TDSAmount","customerPaidByCustomerCloseModal","PaidByCustomerInvoice","AmountReceived","OpenCustomerInvoiceSubmittedModal","invoiceObj","CustomerInvoiceSubmittedObj","customerInvoiceSubmittedModalInstance","CustomerInvoiceSubmitted","OpenBulkUploadModel","OpenBulkModal","closeBulkUploadModal","RemittanceInvoiceList","BlankInvoice","closeBlankInvoiceModal","BulkInvoiceModel","UpdateBlankInvoice","blankInvoiceDetails","InvoiceModal","closeCustInvoiceModal","UpdateCustInvoice","customerFiles","attachmentForCustInvoice","attachmentForBlankInvoice","OpenFreelancerRejectInvoiceModal","invoiceObj1","freelancerRejectInvoiceObj","freelancerRejectInvoiceModalInstance","freelancerRejectInvoiceCloseModal","FreelancerRejectedInvoice","customerInvoice","CloneDuplicateInvoice","cloneIds","NewCloneInvoice","cList","CreditNoteNumber","RemittanceInvoiceDetails","dzCallbacks1","BulkInvoiceRemittanceAdviceModel","addFiles1","getFinanceFreelancerInvoice","ReadyForPayment","PaidInvoiceAccounts","RejectInvoiceAccounts","FinanceFreelancerInvoiceService","FinanceFreelancerInvoiceList","FinanceFreelancerInvoice","GetFinanceFreelancerInvoiceByReqUserId","markPaidList","InvoiceStatusList","OpenPaidInvoiceModal","markPaidObj","paidInvoiceModalInstance","MarkPaid","getFinanceCustomerInvoice","FinanceCustomerInvoiceService","FinanceCustomerInvoiceList","FinanceCustomerInvoice","GetFinanceCustomerInvoiceByReqUserId","GetAllOrderInvoice","invoiceStatus","AcceptInvoice","AcceptInvoiceWithDiffer","CancelInvoice","GeneratePdfTaxInvoice","ReOrderPlace","InvoiceAcceptanceService","openInvoiceAcceptanceModal","invoiceData","invoiceacceptanceModal","closeinvoiceacceptanceModal","DifferOrderId","openDifferModal","closeDifferOrderModal","ReOrderData","AllOrderInvoices","OpenUserDetails","orderdetail","OpenCancellationModel","invoiceIdTobecancelled","CancelInvoiceModel","closeInvoiceCancelConfirmation","CancelInvoiceRemark","Invoice_Cancellation_Form","InvoiceCancelData","strInvoiceId","strCancelRemark","listInvoiceDifferQuantity","ListItemsInInvoice","lineitem","differQuantity","differQty","differRemark","strPartId","nDifferQuantity","strDifferRemark","hasDifferQuantity","some","openDifferOrderModal","strOrderId","exportToCSV","invoice","dateInvoiceDate","nInvoiceItemCount","dInvoiceTotalAmount","strInvoiceStatus","encodedUri","setAttribute","GetAllInvitedUser","GetAllInvitedUserByFilter","filterItemName","filterItemValue","SearchItemName","SearchItemValue","BroadcastMessage","invitedUserService","InvitedUsers","SearchByMobile","SearchByName","SearchByReferred","SearchBySkill","SearchByCity","Six Month","FilterItemValues","SearchItemValues","AllSkills","InvitedUserList","selectedInvitedUser","InviteMobileNo","messageInfo","recevierPhoneNo","sendSMS","toemailsList","InviteMailIdList","MailBody","MailSubject","FillShiftDataForUser","InvigilatorShiftAttendanceService","Markattendance","userIdForAttendance","attendanceModal","closeAttendanceModal","tableId","headerCells","dateRow","innerText","dateCells","dateCell","rowData","cell","csvFile","InvitedAllUserService","GetMyCart","GetInventoryByForExploration","AddPartToMyCart","addPartData","UpdateMSLOrder","ReducePartQuantityInMyCart","reducePartData","RemovePartFromMyCart","removePartData","ClearMyCart","PlaceOrder","GetAllOrdersByFilter_CSV","GeneratePdfChallan","ExpandOrderList","cartItems","CartshowPartDetails","OpenCartPartDetailPanel","CartPartDetails","CartsideViewPartImage","strListItemImage","cartList","stockAvailableWarehouses","QuantityAdded","WareHoueId","AddSinglePartToMyCart","closeClearCartConfirmation","SelectedOrderType","orderType","SearchTextforOrder","OpenClearCartConfirmation","ClearCartModel","OrderIdToReOrder","OpenOrderCancelConfirmation","CancelOrderModel","isTableVisible","isCardVisible","showCard","viewChallanPdf","ChallanData","viewPOPdf","ListItemsInOrder","GetUserAllSalesOrderDetailforWeb","GetUserSalesOrderIntatiedByZoho","ePageIndex","ePageSize","InventoryMangementOnServiceLevel","InventoryReturnOfDefectPartsByServiceCenter","CustomerReturnInventory","zohoItemRequestModels","totalSalesorder","changePartOrderedPageListCount","RequestTablePageChanged","PartOrderList","historyListLength","epageindexCount","ActiveTab","setOrderStatus","AddDefectedPartInStock","PartGroup","AssignOrPullBackStock","DefectStockCount","MarkReturnRaised","TrackingId","GetAllVisibleMasterPartsNew","UpdateMasterPart","masterPartData","CreateNewMasterPart","createPartData","UploadMediaInBulk","GetAllBrandMasterStringList","GetAllProductGroupMasterStringList","GetAllProductMasterStringList","PartImagesList","InventoryImagebase64","masterInventoryList","InventoryImageServices","rowIndex","PartType","HSNCode","masterItemModel","PartImages","CreateListItemModel","createitemlistModelOpen","CloseItemListModel","ListPartDescription","Manufacturer","PartUnit","PartPrice","PartSellingPrice","PartDiscountPercentage","PartDealerPrice","PartDealerCustomerPrice","PartCustomerPrice","PartWareHousePrice","dIGSTTax","dCGSTTax","dSGSTTax","IsVisibile","IsReturnable","itemlist_form","PartVideos","strPartSubGroup","IsPartAvailableOnCredit","addDescription","removeDescription","UpdateListItemModel","imageUrl","updateitemlistModelOpen","CloseUpdateItemListModel","previewFiles","triggerFileInput","removeImage","includePriceAndDiscount","AllBrandList","AllProductList","AllBrandProductList","paymentsapi","BankDetails","NoAuth","UpgradeFreelancerToVendor","FreelancerId","IT360ProfilService","CertificateImg","statusFin","profileProgress","isBlinking","closeProfile","InsuranceImg","InsuranceimageServices","closeTProfile","usersRating","usersBlankRating","certificates","alt","number","issueDate","expiryDate","carousel","UpgradeToFV","UpgradeToFVModel","CloseUpgradeToFV","accountList","FinanceFilterArray","FinanceTablePageChanged","applyFinanceFilter","IntegrationHubURL","GetIntegrationPoints","IntegrationPointDetailViewService","IntegrationPointsList","ITEngineerService","ProjectDesc","PCLogobase64","EducationLogoBase64","PreviousCompnyLogoBase64","EducationLogoServices","About","aboutSections","expertiseSection","CompanyLogoImage","ProjectDetails","ProjectDiscription","CertificateImage","EducationSummary","CollegeLogoImage","GetAllSafetyGuidelineDocsForPortal","HealthAndSafetyService","SafetyGuidelineLists","getAllTickets","completeFlag","getAllTicketsCopy","downloadTicketsByFilterRange","GetAvailableSlotsForBooking","BookSlot","slotId","GetAllPrimaryReasonBasedOnTemplate","getSecondaryReason","updateTicketStatus","secReason","SelectedThirdReasonList","SecondaryReason","ThirdReasonList","updateTicketStatus_Multiple","modelData","markJobCompleted","getDayClass","dayToCheck","currentDay","UserSubRegion","SlotAvailable","showStatusFilter","selectedReason","HelpDeskRemarks","Admintickets","TroubleshootTickets","showCompleteBtn","metrix","TRBL","VSAT","New Jobs","Total Jobs","Assigned Jobs","Completed Jobs","Approved Jobs","Rejected Jobs","Cancelled Jobs","On Hold Jobs","Open Jobs","LeaseLine","Field","Admin","Pending","loadData","getAllTicketsBySkill","attachFollowUp","tempTicketList","showCompleteButton","seletedJob","callMethodFlag","SupervisorColumns","ModalInstanceCtrlFollowUpComplete","ClearAllLocalData","implementSelectItemsFVs","showStatusBtn","selectedJobList","tempTicketListComplete","openUpdateStatusModel_Multiple","tempTicketListUpdate","tStatus","selectedTemplate_Multiple","CurrentStatus_Multiple","statusModal","GetAllPrimaryReasonBasedOnTemplate_Multiple","CloseUpdateStatusModel_Multiple","updateStatus_Multiple","selectedReason_Multiple","SelectedThirdReasonList_Multiple","comments_Multiple","tempDataModel","cust_loc_id","asst_name","AssetName","asst_id","AssetId","GetFirstTickets","GetSecondTickets","ConcatenateObjects","AdminTotalTickets","vsatTickets","getAllTicketsWithCallBack","newCallback","loadMetrix","getTicketCountsWithSkill","GetTicketByMetrics","flag","searchTableByStatus","rowHtml","showDetailCols","stateLoadCallback","stateSaveCallback","slaVis","tatVis","openUpdateStatusModel","CurrentStatus","CloseUpdateStatusModel","TotalReasonList","filterData","TotalReasonList_Multiple","filterData_Multiple","PrimaryReasonList_Multiple","PrimaryReasonList","secondoryReasons","secondoryTatRespository","getSecondaryReason_Multiple","secondoryReasons_Multiple","secondoryTatRespository_Multiple","getThirdReason_Multiple","secondryReason","ThirdReasonList_Multiple","getThirdReason","getServiceGST","grossRate","selectDate","SelectSlot","SlotBooking","someDate","numberOfDaysToAdd","customClass","showWeeks","tomorrow","afterTomorrow","createFieldTicket","UniqueOne","VSATID","UniqueTwo","VSATIP","startDT","EndDT","getCustomerBasicDetail","customerLocationId","GetTicketSroucesByProId","UpdateCustomerLocation","findTicketInGivenTime","assetId","getTicketCounts","rollups","getAllTicketByCustLocId","custLocId","PrevTicketHours","loggingRemark","loggingSource","SlaPriorityModel","CallTypePriority","noSkill","onlyVsat","both","ticketSources","showTicketEditModel","o","calltypelevel","loggingDate","editTicket_form","JobAssignRate","JobAssignGrossRate","RateBase","CustomerLocationContactModels","UniqueIdOne","UniqueIdTwo","LoggingRemark","LoggingDate","Troubleshooting","CCR","editCustomerProfile","EditCustomerModal","ModalInstanceCtrlCustomer","GetSubRegionList","GetCityList","updateCustomerModal","customerEdit_form","CcId","CloseEditCustomerModal","GetGasChargerRefuelingList","GetGasChargerDashboardByFilter","GetGasChargerRefuelingList_CSV","GetGasChargerRefulingById","GasChargeRequestID","UpdateGasChargerRefulingStatus","GasChargingApprovallService","SelectedRequestStatus","clearMyFilter","allGasRequestList","gasChargingDashCount","sk","dtInstance3","GetAllHWDetail","HardwareDetailsService","NewHardwarePhoto","accStatus","OldHardwarePhoto","FreelancerTechnicianProfileService","GetBankDetails","UserbankDetails","RedirecttoActivevendorteam","resetPassword","ForgotPassword","ForgotPasswordService","vcRecaptchaService","email_adress","captcha","onForgotPasswordClick","getResponse","Captcha","autoDismiss","onHideCallback","GetTransactionInfoList","pageIndex","FivePointIntegrationService","applyFilter","TransactionInfoResList","GetAllGetDistricts","GetAllGetDistrictsWithState","GetOperationalTerritoryInfo","UpdateOperationalTerritoryForVendor","FVLocationConfigurationService","Isservinglocations","IsShowLocation","LocationType","multipleSelect","LocationTypeList","LocationsStateList","LocationsDistrictList","getLocationsStateList","getLocationsDistrictList","AllDistrictList","SelectedStateByDistrict","getServingLocations","IsOperationalTerritoryEnabled","OperationalTerritory","CheckedServingLocations","SaveFVLocation","StateCityForDistrict","servingLocationsForm","locationDistrict","Obj","VendorUserId","CancelFVLocation","GetAllLeadbyDateRangeWithDynaPaging","GlobalSearch","MarkAcceptLeads","MarkRejectedLeads","FVLeadManagementService","skillsList","SearchByDistance","DenyReasonsList","FilterLeadDashbaord","statusType","IsAcceptLeadsbutton","IsRejectLeadsbutton","allLeadsList","allAcceptedLeadsList","allRejectedLeadsList","AcceptedLeadsCount","DeniedLeadsCount","IncomingLeadsCount","TotalLeadsCount","markAcceptLeadsList","AcceptLeads","markAcceptLeadsListObj","Rate","SelectedTicketList","OpenRejectedModal","rejectObj","DenyReasonOthers","rejectedModalInstance","rejectedCloseModal","isShowReasonTextBox","ChangeReason","SelectedReason","SelectedDenyReasonsList","MarkReject","DenyReasonStr","OpenBonusPenaltyModal","bonusPanelties","bonusandpenaltyModalInstance","BonusPenaltyCloseModal","FLTechnicianProfileService","GetAllTicketStatus","SaveEscalationConfiguration","GetEscalationAlertConfigurationById","EscalationService","alertIdParam","EscalationType","StatusList","firstStatus","secondStatus","firstLinkedStatus","secondLinkedStatus","eventConfiguration","LinkedeventConfiguration","buttonStatus","button","customObj","customLinkObj","AddEventConfiguration","firstStatusDisabled","secondStatusDisabled","RemoveEventConfiguration","AddLinkedEventConfiguration","firstLinkedStatusDisabled","secondLinkedStatusDisabled","RemoveLinkedEventConfiguration","SetStatus","isSingleBool","SetStatusForLink","GetEscalationAlertConfiguration","EscalationAlertConfig","IsSingleTicket","ListEscalationAlertTemplate","TicketStateFirst","TicketStateSecond","outSidecheck","escalation_form","OutObj","Outminutes","outModel","OuttimeSplit","GetMailHistoryByDate","startdate","enddate","EmailAdapterHistoryService","mailhistoryList","buildTable","GetAllTicketsForContact","contactNo","GetAllAreaByStateCity","GetAllPincodeBYAreaStateCity","area","CreateConsumer","GenerateBill","consumerId","GetServiceableArea","GetWarrantyDetailsForProduct","GetConsumerDetails","GetAddressFromPinCode","DirectSaleToCustomerService","getCurrentDateTime","now","AppointmentDate","selectedDateTime","getareaallCities","AreaCityList","AreaList","consumerArea","PincodeList","newVal","AddressType","warrantyStatus","dateOfPurchase","isDateDisabled","openPincodeSelectionModal","pincodeSelectionModalInstance","closePincodeSelectionModal","ProceedToAddPincode","FindPincode_form","customercreate_form","strConsumerTitle","strConsumerFirstName","strConsumerLastName","strConsumerContact","strConsumerAlternateContact","strPersonalEmail","strConsumerArea","strConsumerLandMark","strConsumerType","udListAddresses","strAddressType","strAddress1","strAddress2","strDistrict","strPostalCode","strCountry","bIsDefaultAddress","consumerData","Addresses","clearCustomerData","ConfirmationModal","confirmationModelOpen","openNonServiceableAreaConfirmationModal","productdefect","AppointmentDateTime","WarrantyData","selectedcity","selectedArea","Open360ForConsumer","customerNo","BrandListadd","billItems","gst","finalTotal","addToBill","selectedQuantity","existingPart","calculateBillTotals","isPartInBill","updateQuantity","removeItemFromBill","dPartDiscountedPrice","EnablePrintButton","nQuantity","findPincode","AddressData","DialerListService","isPlaying","togglePlayPause","getAllDeviceInfo","DeviceInfoService","deviceInfoList","dashboardDetailService","dashboard_id","GetAllDashboardReports","GetByReportById","GetAllActivitiesForSchedule","scheduleId","GetDashboardByName","createReport","GetSchedules","GetScheduleById","updateReport","createDashboard","updateDashboard","UpdateDashboardReportToFavourite","DashboardReportId","GrantAccessToReport","DashboardReportName","UserIds","RevokeAccessToReport","DeleteSchedule","getData","DateFrom","DateTo","reportsDashboardList","Dashboards","ReportsList","capacitygapWrapper","IsActivityVisible","userClass1_status","userSingle1","ticketView","ticketViewId","ticketAccountName","ticketAddress","ticketUserId","ticketUserName","ticketSkills","closeactivity","descriptionOfReport","IsFavourite","PipeSeparatedTags","Tags","taskDueDate","chips","addChip","chipsInput","removeChip","exceptionList","reportCreation_form","ReportDescription","Shared","Scheduled","Favourite","CloseCreateReportModel","GoToViewPage","DashboardDescription","AutoRefresh","CreatedOn","FilterList","getValueByFilter","selectedStatus","withScroller","newData","labelStyle","labelClass","arrayFromPipeString","UpdateReportModel","TypeOfTask","GetByReportId","CloseUpdateReportModel","updateReportModelOpen","toggleFavorite","ReportData","ScheduleActivity","currentlyClickedSchedule","ReportNametoFetch","schedule","clicked","toggleButtonColor","CreateReportModel","customerLatestService","GetProjectsByCustomerIdName","GetPocLocations","cir","GetAllCustomersWithLOCPOC","CustomerProfileService","customerIndex","allProjects","getCustomerInfo","projectLocationModel","SupervisorNumber","ViewCustomer","ViewCustomerById","customer_name","GetCustomerIdJobDetails","GetTicketsByCustomerId","GetProjectsByCustomerIds","GetTicketsByFilters","tempCol","GetStatusInPie","dimensionList","IsData","getAllCustomerLocation","getAllCustomerAsset","getAllCustomerAssetDetails","CustomerDetailViewLatestService","MainRegionList","AddressMappingCountry","CustomerFullDetail","CustomerTicketDetails","PointOfContacts","LocationListView","AssetListView","UniqueID1","UniqueID2","ROName","dtInstanceCustomer","LCustomerName","LCustomerLocationId","LAssetName","LCategory","LProductName","LPermanentState","LPermanentCity","LPincode","LSiteName","PointOfContact","CLCustomerId","CLCustomerName","CLCustomerLocationId","CLUniqueIdOne","CLUniqueIdTwo","CLPointOfContact","CLPermanentState","CLPermanentCity","CustomerDetails","SiteCode","GetCustomerDetailswithJobCount","testvalue","demo","sArray","da","GetPointOfContactInfo","CustomerLocationModels","pocview","SlaData","metrcsdata","createDoughnutChart","Location_Edit","Location_EditModal","LocationDetailsService","CustomerlocationId","POCFirstName","POCLastName","POCMobileNo","POCOtherNo","POCEmailId","Location_CreationModal","CloseLocation_Creation","depth","dtOptions1","dtOptionsCustomer","dtColumnDefsCustomer","CustomerDetailViewService","GetAllConsumerDetails","CustomerDetailListService","ConsumerFirstName","ConsumerLastName","GetConsumerDetailsByTicket","GetAllBrands","GetDefectTypeList","GetCallTypeList","CustomerCRM360Service","UploadCallBooking","AssestsCreateTaskModel","AssetType","modelName","ProductModel","AssetPurchaseDate","AssetWarranty","SerialNumber","dealername","strDealerName","dealercontact","strDealerContact","AssestGetCallTypeList","assestscreatetaskModelOpen","AssestsCloseCreateTaskModel","GetConsumerAssets","handleKeyPress","CreateTaskModel","createtaskModelOpen","CloseCreateTaskModel","DefectList","CloseCreateTaskModelServisable","DefectType","MMFSkillMapped","strMMFSkillMapped","ConusmerContact","DateOfPurchase","RecordId","AssetSerialNumber","successMessage","requestData","ServiceStatus","ServiceStatusMessage","CheckServiceableArea","listWarrantyStatus","callID","onOptionChange","AssestsAllCallTypes","consumerAssetData","consumerAssetDataLength","followupdialog","GetConsumerFullDetails","UpdateConsumerForAddress","UpdateConsumer","UpdateAssetDetails","GetAllBillsWithFilter","BillSearchText","billList","debounceTimeout","clearTimeout","clearbilldetails","showRecentActivity","RecentActivity","Assets","OpenEditAssetModel","OldSerialNumber","NewSerialNumber","AssetModelNumber","editAssetModelOpen","CloseEditAssetModel","AssetModel","assetEdit_form","EditcustomerModelOpen","CloseUpdateDataModel","consumerAddressData","strAddressId","ticketLength","searchConsumer","editprofile_form","getJobsByCustomerId","CreateCustomer","customerFormData","updateCustomer","PostCustomer","PutCustomer","CustomerFormCreationLatestService","mobile_number","other_number","business_number","companyUrl","UnqiueItemOneValue","UnqiueItemTwoValue","CustomerDescription","addCustomer","customerContactModel","customer_form","saveAndNew","currentInedx","addPointOfContact","SubRegionList1","SubRegionList2","SubRegionList3","SubRegionList4","SubRegionList5","SubRegionList6","SubRegionList7","CityList1","CityList2","CityList3","CityList4","CityList5","CityList6","CityList7","selectFiles","showMessage","$file","$files","customerCardService","editCustomer","pageChangeHandler","VerifyOTPRetailStore","userOTPData","GenerateOtpRetailStore","UpdateRetailUserDetails","userBasicData","consumerloginService","otp","userLocation","SubmitBasicInfo","GetTicketForTicketCase","RaiseQueryForCase","userQuery","ticketforQuery","IsTicketFound","RaiseCasesModel","raisecase","CloseRaiseCaseModel","QueryTask_form","GetConsumerProductsOnFilter","GetConsumerDashboardOnFilter","GetBrandMaster","GetBrandProducts","ConsumerListService","YearOldProducts","GetOnBoardingTaskDetails","taskDetailsList","consumerCount","getAllSlotsByBrand","GetShiftCampaignDetails","campaignId","ApplyForShiftCampaign","ConsentOfUserService","CampaignID","ShiftData","GetTicketDetails","UpdateAddressAndSlot","ConsumerFormService","getTicketDetails","ticketDetails","startDatetime","endDatetime","InFlowDistance","OutFlowDistance","InstallationType","notimeslotset","selecttimeslot","timeslot","gettimeslot","dateonchange","_datehours","timeslothours","ConusmerName","IsNonStandardInstall","update_ticket","generateMail","confirmAccountService","triggerMail","AssignTaskToUser","TaskAssignModel","GetTechnicianCaseCountsByFilters","GetAllCasesForTechnicianAssignedToMe","ComplaintCaseListService","showFullText","caseStatus","caseType","caseFor","createTaskModel","taskCompletionOn","resolveraise","OpenTicketDetail","updateCaseForType","UpdateCaseFor","QueryType","CaseFor","TotalCase","TotalCaseCount","OpenCase","OpenCaseCount","InProgressCase","InprogressCaseCount","ResolvedCase","ResolvedCaseCount","ExpiredCase","ExpiredCaseCount","ClosedCase","ClosedCaseCount","QueryCaseCount","CapacityGapAnalysisService","GetAllActiveTaskForFilter","ActiveTaskList","customSearch","SearchTagNew","lowerCaseSearchText","isString","lowerCaseProp","GetOnBoardingTaskCountsByFilters","InProgressTask","FollowUpTask","CommitmentTask","taskBasedFilter","MMFNonPrimeMember","UserVerificationStatus","IsAuthorizedServiceCenterCount","getAllUsersByStage","getAllUsersByRole","getAllOneJobDone","getAllFixedTeam","getAllLeadStarted","getCountByPssValue","pss","committedDetail","committedvalue","getAllCriminalFlag","criminalValue","getAllPrimeFlag","primeValue","PreferredForAccount","UserCountbyFilter","TotalUsersCount","BasicInformation","TotalInvitedUserCount","LocationAndSkill","Backgroundverified","Paymentverified","PoliceVerified","TotalActiveFrUsersCount","TotalActiveFVUsersCount","TotalActiveFVTUsersCount","FixedTeamCount","PrimeMember","NonPrimeMember","TotalActiveUsersCount","TotalRegisterUser","TotalFreelancerBidCount","OneJobDoneCount","NonPrimeMoreThanTenCount","LeadReceivedUserCount","LeadNotReceivedUserCount","LeadAcceptedUserCount","LeadNotAcceptedUserCount","JobRejectionBreachedCount","JobRejectionMetCount","SOPAdherenceBreachedCount","SOPAdherenceMetCount","AuthorizedServiceParnterDetailCount","AuthorizedServiceParnterDetailCountActive","AuthorizedServiceParnterDetailCountInActive","CommitmentInterestedUserCount","CommittedUserCount","isCollapsed49","activatedButton40","isactivated40","CallingUser","CommittmentModelOpen","CommittmentModel","CloseCommittmentModel","userCommittmentReason","committment_form","CommittmentStatus","CommittmentReason","UserComment","followupmodal","toggleForBroadcastnew","CloseingRemark","OnBoardingTaskModelOpen","taskid","CommitmentTaskId","OnBoardingTaskmodel","CloseOnBoardingTaskModel","ClientView360Service","DownloadPDFReportZip","BroadcastJobsManualMode","SendPdfOnSiteReportForMultipleTicketsOnMail","downloadReportTemplate","UpdateCompletionRemark","MarkTicketsReadyToRaise","ComboEnabled","WorkOrderEnabled","OpenScheduleConfirmationModal","AutoBrodScheduleJobs","EstimateShareCount","EstimateApprovedCount","EstimateRejectedCount","getAllTicketsByType","downloadtemplateBtn","downloadOnsiteReportpdfBtn","DownloadReportByTemplateName","getCompletionReasons","CompletionReasonsList","completeModalInstance","UpdateCompletionReason","completionReasonUpdateForm","TicketCompletionReason","CloseCompletionModal","ManualJobAssignation","AllTicketDate","AllTicketRemark","AllTicketPONumber","ChangeAllDate","TicketDate1","CustomerApprovalDate","ChangeAllRemark","TicketRemark1","CustomerApprovalRemark","ChangeAllPONumbers","TicketPONumber1","ChangePONumberManually","TicketPONumberM","OpenReadyToRaiseModel","ReadyToRaisedTktDetails","AssignTicketsToSupervisor","CentralHDManualAssignationService","AssignToUserId","JobcountbySearch","sortBroadcastAge","sortAge","CentralHDAllTicketListService","GetAllStatesForDM","GetAllAccountHDConfigForDM","getAccountById","GetUserTerritoryDetails","showAllAccountsExceptHD","SelectedAccountHD","AccountSkillSet","ListStates","AccountChangeHD","AccData","updatedAccountList","userTerritoryInfo","GetOnboardingTaskTicketUserList","CreateTaskForOnboarding","TaskData","CapacityNeeded","TaskDueDate","TaskCompletedOn","createtask_form","HiredUserList","FilterTypeCount","AssignTasks","CentralHelpdeskService","SelectedAccountName","AccountLocations","SelectedSkill","RedirectToCalendarManagement","RedirectToNorthCalendarManagement","RedirectToSouthCalendarManagement","RedirectToEastCalendarManagement","RedirectToWestCalendarManagement","CampaignDetailViewService","itemMarginTop","itemMarginBottom","CampaignURL","GetCampaignById","GetCampaignDetailsById","CallStatus","UserNumber","CampaignDetailViewNewService","contactListLength","PageindexCount","totalContacts","created","Inprogress","retry","completed","stats","retrying","faileddnd","invalid","paused","failednoattempt","pending","contactPageListCount","contactTablePerPage","contactTablepagination","changeContactTablePerPage","ContactTablepageChanged","CampaignDetails","searchByStatus","GetAllCampaigns","CampaignStatus","GetCallbackNumber","CreateCampaign","GetContactList","CampaignListName","DeleteListById","listId","CampaignCreationService","currentTime","toTimeString","selectedTime","CallbackNumber","createvalue","NoOfRetries","RetryInterval","FlowId","CallStatusBackURL","ConnectionStatus","ContactListId","sendAtTime","GetAllCampaignsWithPaging","campaignList","searchByName","OpenDetailView","callBackNumberList","OpenCampaignModel","selectedStartDate","hours","padStart","ehours","eminutes","futureDate","selectedEndDate","campaignCreateModel","NewCampaignName","getMinDate","originalStartDate","syear","smonth","sday","formattedStartDateString","originalEndDate","eyear","emonth","eday","formattedEndDateString","IsClone","campaigns","caller_id","campaign_type","retries","number_of_retries","interval_mins","mechanism","on_status","send_at","end_at","call_duplicate_numbers","status_callback","call_status_callback","call_schedule_callback","http_code","contactList","ChangeListTab","searchByListName","OpenCampaignCloneModel","campaignDataToBeCloned","lastIndex","campaignCloneModel","CloseCampaignCloneModel","DeleteList","CRMManualAssignationJobService","GetAllAvailableRegion","subRegionForBSM","warehouseToBeAllocatedName","AllAvailableRegionList","ReportingToUserId","checkIftheRegionIsAvailable","IsAvailable","confirmation","confirm","checkIftheSubRegionIsAvailable","selectedSubRegion","GetAllBrandsMaster","GetAllActiveBrandsMaster","CreateBrandsMaster","UpdateBrandsMaster","GetAllProductGroupMaster","GetAllActiveProductGroupMaster","CreateProductGroupMaster","UpdateProductGroupMaster","GetAllProductMaster","ProductGroupName","GetAllActiveProductMaster","CreateProductMaster","UpdateProductMaster","CreateProductDefectMaster","UpdateProductDefectMaster","GetAllProductDefectMaster","GetAllActiveProductDefectMaster","GetAllActiveProductWarrantyMaster","CreateBrandProductMaster","UpdateBrandProductMaster","CreateProductWarrantyMaster","UpdateProductWarrantyMaster","CreateProductModelMaster","UpdateProductModelMaster","CreateAlternateParts","GetAllModelNo","GetAllAlternateParts","GetAllBrandProductMaster","GetAllSubRegionForMapping","searchBrandText","searchProductText","searchProductGroupText","searchDefectText","searchAlternatePartsText","searchProductVsDefectText","searchProductModelText","ProductBrandId","dtInstanceBrand","dtInstanceProductGroup","dtInstanceProduct","dtInstanceDefect","dtInstanceWarranty","dtInstanceAlternate","dtInstanceProductvsDefect","dtInstanceProductModel","OldBrandName","BrandStatus","OldProductGroupName","ProductGroupStatus","OldProductName","ProductStatus","OldDefectName","DefectStatus","ProductDefectsList","CallTypeProduct","ProductDefectStatus","ActualWarrantyInMonths","VisitCharge","AdditionalWarrantyInMonths","CoverageDescription","ModelNo","OldModelNo","OldModelDescription","ModelStatus","objAdditionalWarrantyList","SkillConfig","searchBrandTable","searchProductGroupTable","searchProductTable","searchDefectTable","searchProductvsDefectTable","searchProductvsDefectText","searchProductModelTable","searchWarrantyModelTable","searchWarrantyModelText","searchAlternatePartsTable","AddBrandModelOpen","addmodel","CloseAddBrandModel","AddProductGroupModelOpen","productgroup","CloseAddProductgroupModel","AddProductModelOpen","addproduct","CloseAddProductModel","AddModelNoOpen","CloseAddModelNo","AddDefectModelOpen","adddefect","CloseAddDefectModel","MapDefectvsproductModelOpen","mapdefectproduct","CloseMapDefectvsproductModel","DefectMMFServiceSkill","DefectMMFInstallationSkill","AlternateModelOpen","alternateproduct","CloseAlternateproductModel","AlternateBrandName","AlternateProductName","AlternatePartName","AlternateModelno","AlternatePartsInstall","AlternateProductGroupName","UpdateAlternateModelOpen","alternatebrand","alternateproductgroupname","alternateproductname","alternatepartname","alternatemodelno","UpdateAlternatebrand","UpdateAlternateProductGroupName","UpadteAlternateProductName","UpdateAlternatePartName","UpdateAlternateModelNo","updatealternate","CloseUpdateAlternateModel","Alternatebrand","AlternateModelNo","UpdateBrandModelOpen","brandStatus","updatemodel","CloseUpdateBrandModel","AddWarrantyModelOpen","addWarranty","CloseAddWarrantyModel","PartData","WarrantyMonths","PartMaxQuantity","UpdateWarrantyModelOpen","productGroupName","productName","warrantyList","updateWarrantymodel","CloseUpdateWarrantyModel","UpdateProductGroupModelOpen","productgroupStatus","updateproductgroup","CloseUpdateProductgroupModel","UpdateProductModelOpen","productStatus","updateproduct","CloseUpdateProductModel","UpdateDefectModelOpen","defectName","defectStatus","updatedefect","CloseUpdateDefectModel","UpdateMapDefectvsproductModelOpen","brandProductId","productDefectList","callTypeList","mmfSkill","mmfInstallationSkill","defects","callTypes","updatemapdefectproduct","CloseUpdateMapDefectvsproductModel","UpdateModelNoOpen","modelNo","modelDescription","modelStatus","CloseUpdateModelNoModel","getDefectsHistory","openDefectModel","CloseDefectsHistoryModel","getAdditionalWarrantyHistory","AdditionWarrantyPartList","openWarratyModel","CloseAdditionalWarrantyHistoryModel","dtOptionsBrand","brandsLists","dtColumnsBrand","dtOptionsProductGroup","productGroupsList","dtColumnsProductGroup","strProductGroupName","dtOptionsProduct","productsList","dtColumnsProduct","FilteredWarrantyBrandName","FilteredWarrantyProductGroupName","FilteredWarrantyProductName","dtOptionsWarranty","dtColumnsWarranty","nActualWarrantyInMonths","nAdditionalWarrantyInMonths","strCoverageInAddition","strVisitCharge","dtOptionsModel","dtOptionsDefect","AllDefectsList","dtColumnsDefect","strDefect","FilteredBrandName","FilteredProductGroupName","FilteredProductName","dtOptionsProductvsDefect","dtColumnsProductvsDefect","Defects","strBrandProductId","strMMFSkillMappedInstallation","refreshWarrantyTable","AddBrand_form","UpdateBrand_form","strNewBrandName","AddProductGroup_form","UpdateProductGroup_form","strNewProductGroupName","AddProduct_form","UpdateProduct_form","strNewProductName","AddDefect_form","UpdateDefect_form","strNewDefect","AddProductDefect_form","strListDefectType","UpdateMapDefectvsproduct_form","AddWarranty_form","originalPartName","originalPartId","originalPartData","originalWarrantyMonths","originalSKUId","originalPartMaxQuantity","UpdateWarranty_form","AddModel_form","UpdateModel_form","AlternateModelList","Alternatepart_form","Product","ModelIds","AlternatePartIds","AllActiveProductModeelNoList","AllActiveBrandList","AllActiveProductGroupList","GetAllAlternateProductGroupMaster","AllActiveAlternateProductGroupList","GetAllActiveProductMasterForTopFilter","AllActiveProductList","GetAllActiveWarrantyForTopFilter","GetAllAlternateProductMaster","AllAlternateProductList","AllActiveDefectList","clearWarrantyFilter","FilteredPWarrantyProductName","GetAllAlternateVisibleMasterParts","alternatemasterList","closeEditRow","partError","FilterForRegional","dtColumnsSubRegionModel","Allsubregionformapping","regionavailable","BonusPaneltyService","billdetailsService","getBlockedUser","UnBlockedSingleUser","uservendorid","BlockedUserService","BlokedUserList","getBlokedUser","unblockSingleUser","UnBlockedUserModal","CloseFilter","unblockeduser","UnBlocked","UnBlockedUser","Addtalent","BGVerificationService","AutoScheduleSettingsService","timeSlotDay","broadcastCount","jobsBroadcast","addTimesDay","removeTime","AssignedProfileToUserService","AppsMenusConfigeService","default","setDefaultPermission","selectedPermission","ApprovalFlowBuilderService","bpmnUrl","userpdfreport","AllUsersListGCService","SMEInterctionVideo","getAllUsersByLocation","getAllUsersBySME","SMEValue","SMEInteractionCount","TotalUserCount","TotalUKUserCount","TotalIndainUserCount","RegistrationHistory","UserDetailsAvailable","UserCurrentData","userIdforRec","AlertURL","CreateInternalContactList","ListName","GetAllOnboardingUser","CreateAutoDailerTaskManually","DialerTaskModel","dialertaskModelOpen","CloseDialerTaskModel","DialerTaskName","DialerTaskDescription","TaskRelatedTo","TotalBlockedUsersCount","TaskRelatedToField","othercomments","TaskDescription","TaskForUser","Open360ForITUsers","savecampaignlistname","savelistcampaignRunModelOpen","CloseSaveCampaignlistname","campaignList_form","InternalUsersFormData","GetAllNegativeWalletsWithPaging","GetDetailByUserId","UpdateTask","GetAllNegativeWalletsWithPaging_CSV","AllTasksOpsService","npageListCounts","TwoJobDoneForSkills","negativewalletdateRangeChange","isSidebarOpen","openSidebar","closeSidebar","returnList","isParagraphVisible","OverallClosedTask","OverallTotalTask","getAllTwoJobDone","TwoJobDoneCount","Userdetails","UserDetailsInfo","NegativeWalletModalOpen","negativemodal","CloseNegativeWalletModal","CloseingNegativeRemark","updatenegativemessage","UpdatedReason","UpdatedRemark","AllUserNewService","kycVideo","assignedJobs","rejected","leadAcceptance","averageCompletionSpeed","jobCompletionRate","jobRejectionRate","userClassNew_status","GetAllNewUploadId","CertVideoServices","video","GetVideoBlob","currentImageIndex","images","nextImage","prevImage","UpdateInvoiceDetails","GetWarehouseRequestedActiveOrders_CSV","ReturnOrderAction","RejectReturnPart","AllOrdersReceivedListService","UploadUpdateOrder","SearchTextforOrderId","PartImagebase64","PartImageServices","InvoiceUpdateDetails","invoicedetails","InvoiceDate","POdate","PODate","updateInvoiceModelOpen","CloseInvoiceDetails","updateinvoiceForm","CancelComment","resaonOfCancellation","OpenOrderReturnCancelConfirmation","returnOrderToBeUpdated","returnOrderId","CancelReturnOrderModel","closeOrderReturnModel","returnUpdateReason","OpenPartOrderReturnCancelConfirmation","partorderData","partreturnOrderToBeUpdated","partOrderId","partreturnOrderId","partidreturn","CancelPartReturnOrderModel","closePartOrderReturnModel","Return_Confirmation","ReturnOrderId","AllAssetsListService","isActiveRollbackCustome","GetAllRegisteredVendor","GetAllNotActiveVendorRegistrations","VendorTeamService","createLink","ActionLink","userroleshow","userroleshow1","userroleshow2","createImage_Name","vendorUser","Adhartitle","pancard","CVerficationStatus","vendorStatus","AuditDate","UserAciveDeactive","AddToolAuditwithAttachment","PostMediaFileWithTrainingObject","files1","AddCriminalVerificationwithAttachment","CriminalVerificationdata","getallInfraCities","InfraCityList","getallTrainersCities","TrainersCityList","CompanyRegisterration","CompanyGSTNO","MSME","MSMECertificateNO","TPI","Supplier","IsUserActive","AuditList","ExperienceAuditFiles","TrainingImageFiles","TrainingAttendanceFiles","TrainingDate","FloorList","InfraDetailsList","SpaceAvailable","FloorsAvailable","InfraLocation","TrainersDetailsList","SeatsCapacity","NoOfTrainers","TrainingLocation","TrainersSkills","IsInfraTable","TeamSizeList","CompanyRegistrationNumber","IsGSTCertified","GSTCertificateNumber","IsMSMECertified","MSMECertificateNumber","IsPartnerThirdPartyInternediary","IsPartnerIncludeAntiCorruptionClause","getInfraCity","getTrainersCity","AddInfraPartner","DeleteInfraPartner","temp2","AddTrainersPartner","currentValue","DeleteTrainersPartner","getGSTPicUrl","getMSMEPicUrl","editnew","getTrainersSkillSets","VendorForm","lastRecord","ToolsDetailListModel","ToolName","ToolImagePath","ToolImageBase64","VerificationDate","ItemSerialNumber","DateOfManufacturing","AuditPurpose","OpenExperienceAuditModal","experienceAuditModalInstance","ExperienceAuditCloseModal","attachExperienceAudit","ExperienceAuditFileName","ExperienceAuditMessage","ExperienceAuditSave","ExperienceAuditModel","OpenTrainingAuditModal","TrainingAuditModalInstance","TrainingAuditCloseModal","TrainingImageFileName","TrainingAttendanceFileName","attachTrainingImage","attachTrainingAttendance","TrainingAuditSave","modelDate","TrainingNo","TrainingName","TrainingExpireDate","TrainingAuditFileName","OpenCriminalAuditModal","CriminalAuditModalInstance","CriminalAuditCloseModal","attachCriminalAudit","CriminalAuditFileName","CriminalAuditFiles","CriminalAuditSave","verificationStatus","CriminalAuditModel","AddMilestoneService","AuthDocList","authFile","trainingFile","workFile","ToolDocumentImg","ToolimageServices","showASCTList","addMoreAuthServiceCenterInTable","SiteRescheduleAuditWithoutIndex","ActiveAllUserService","FreelancerRoleFilter","GetAllAccountsRechargeDetails","AccountsRechargeHistoryService","GetAllAccountsRecharge","GetUsersByUserId","UpdateUserList","bActive","UpdateRechargeAccount","rechargedata","UpdateAccountConfiguration","GetAccountConfigInfo","GetAccountRechargeHistory","AccountService","Phone","ConfirmPassword","BaseAmount","FreelancerPercentage","FixedTeamPrice","CreditLimit","updateBaseAmount","VerticalList","CreateAccount","openRecharge","openConfiguration","AccountModal","ModalInstanceCtrlAccount","updateAccountConfig","accountConfig_form","CloseAccountModal","Updateuser","LayoutService","recharge_amount","grace_period","freelancerAccess","vendorAccess","account_type","commissionInPercentage","mobiforceCommission","credit_limit","topUp_amount","skillBasedList","planType","accType","VendorAccess","TopUpBalance","accountPlan","skillListSet","addSkills","removeSkills","skill_1","isEdit","freelancerBalance","activationDate","UpdateTeamMember","DateOfJoin","UniqueKey","UniqueId","TokenId","DeviceOS","changeProfilePic","PictureError","activeUserList","AccessUserViewService","clearForm","EditProfile","EditedProfile","editedProfileIndex","Username","Profile","IsActive","addressParts","fullAddress","mailid","MailID","Uttar Pradesh","Lucknow","Kanpur","Maharashtra","Mumbai","Pune","Karnataka","Bangalore","Mysore","filteredCities","filteredPincodes","updateCities","updatePincodes","fix_height","heightWithoutNavbar","navbarHeight","wrapperHeight","scroll","runBlock","debug","toState","fromState","run","routerConfig","$stateProvider","$urlRouterProvider","$httpProvider","dropzoneOpsProvider","$sceProvider","$compileProvider","aHrefSanitizationWhitelist","abstract","pageTitle","otherwise","interceptors","nonsslurl","rurl","rocketUrl","wsRocketUrl","constant","$templateCache"],"mappings":"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AAIk3V,KAAA,iBAAA,SAAAkB,GAAmDA,EAAA51V,IAAA,yCAAA;AACtE41V,EAAe51V,IAAI,uCAAA;AACnB41V,EAAe51V,IAAI,yCAAwC;AAC3D41V,EAAe51V,IAAI,8CAAuC,g0EAC1D41V,EAAe51V,IAAI,uDAAA,mlcACnB41V,EAAe51V,IAAI,oDAA6C,66XAChE41V,EAAe51V,IAAI,mEAAuD;AAC1E41V,EAAe51V,IAAI,+DAAyC,40YAC5D41V,EAAe51V,IAAI,2BAAA;AACnB41V,EAAe51V,IAAI,iCAAA,y3RACnB41V,EAAe51V,IAAI,2DAAiD,mvCACpE41V,EAAe51V,IAAI,6CAAA;AACnB41V,EAAe51V,IAAI,iDAAA,2rCACnB41V,EAAe51V,IAAI,iDAA2C;AAC9D41V,EAAe51V,IAAI,qCAAiC,whhBACpD41V,EAAe51V,IAAI,oDAA+B;AAClD41V,EAAe51V,IAAI,+CAAA;AACnB41V,EAAe51V,IAAI,uCAAA;AACnB41V,EAAe51V,IAAI,uDAAuC;AAC1D41V,EAAe51V,IAAI,mCAAA;AACnB41V,EAAe51V,IAAI,iCAAA;AACnB41V,EAAe51V,IAAI,qCAAA;AACnB41V,EAAe51V,IAAI,2BAAA,IACnB41V,EAAe51V,IAAI,yCAAA;AACnB41V,EAAe51V,IAAI,6CAAuC,wwMAC1D41V,EAAe51V,IAAI,mDAAyC,66BAC5D41V,EAAe51V,IAAI,yCAAA;AACnB41V,EAAe51V,IAAI,2CAAA,28kBACnB41V,EAAe51V,IAAI,uDAAyC,igMAC5D41V,EAAe51V,IAAI,qDAAqC;AACxD41V,EAAe51V,IAAI,mDAA4C,o7FAC/D41V,EAAe51V,IAAI,yCAAA;AACnB41V,EAAe51V,IAAI,mCAAA,oiNACnB41V,EAAe51V,IAAI,mCAAA,w9FACnB41V,EAAe51V,IAAI,uBAAA,w3JACnB41V,EAAe51V,IAAI,iEAAA;AACnB41V,EAAe51V,IAAI,8CAAA,6/WACnB41V,EAAe51V,IAAI,2DAAA;AACnB41V,EAAe51V,IAAI,mDAA+C;AAClE41V,EAAe51V,IAAI,uCAAA;AACnB41V,EAAe51V,IAAI,6CAAA;AACnB41V,EAAe51V,IAAI,iDAAA,ktWACnB41V,EAAe51V,IAAI,iDAA+C,wwcAClE41V,EAAe51V,IAAI,qDAA2C,6oEAC9D41V,EAAe51V,IAAI,qDAAA;AACnB41V,EAAe51V,IAAI,sDAA2C,gjaAC9D41V,EAAe51V,IAAI,sDAA0C,u2eAC7D41V,EAAe51V,IAAI,qDAAuC;AAC1D41V,EAAe51V,IAAI,4CAA2B,+rNAC9C41V,EAAe51V,IAAI,mDAA6B;AAChD41V,EAAe51V,IAAI,uDAAA,wuSACnB41V,EAAe51V,IAAI,yDAAmD;AACtE41V,EAAe51V,IAAI,iDAA2C,22VAC9D41V,EAAe51V,IAAI,qDAAuB;AAC1C41V,EAAe51V,IAAI,gDAA6B;AAChD41V,EAAe51V,IAAI,iEAA+C;AAClE41V,EAAe51V,IAAI,6BAAA,4iIACnB41V,EAAe51V,IAAI,uCAAyB;AAC5C41V,EAAe51V,IAAI,2CAAkC,y0GACrD41V,EAAe51V,IAAI,yCAAyC;AAC5D41V,EAAe51V,IAAI,+CAAqC;AACxD41V,EAAe51V,IAAI,uCAAA,m1IACnB41V,EAAe51V,IAAI,qCAAA,0ySACnB41V,EAAe51V,IAAI,qCAAA;AACnB41V,EAAe51V,IAAI,uCAAqC,2jNACxD41V,EAAe51V,IAAI,2CAAA,o9CACnB41V,EAAe51V,IAAI,uCAAA;AACnB41V,EAAe51V,IAAI,iDAAA,m2GACnB41V,EAAe51V,IAAI,gDAAuC,w4BAC1D41V,EAAe51V,IAAI,yDAAsC,g/dACzD41V,EAAe51V,IAAI,uEAAyC;AAC5D41V,EAAe51V,IAAI,yCAAwC;AAC3D41V,EAAe51V,IAAI,6CAAqC,m8IACxD41V,EAAe51V,IAAI,iDAAoC,qoMACvD41V,EAAe51V,IAAI,2CAAA;AACnB41V,EAAe51V,IAAI,6DAAyC;AAC5D41V,EAAe51V,IAAI,iDAAA,sxiBACnB41V,EAAe51V,IAAI,+CAA6C,41HAChE41V,EAAe51V,IAAI,mDAAgD;AACnE41V,EAAe51V,IAAI,4DAA4C,23JAC/D41V,EAAe51V,IAAI,qCAAA;AACnB41V,EAAe51V,IAAI,+BAAA;AACnB41V,EAAe51V,IAAI,mCAAA,09HACnB41V,EAAe51V,IAAI,2CAA2C;AAC9D41V,EAAe51V,IAAI,mDAAyC;AAC5D41V,EAAe51V,IAAI,iCAAA,g3BACnB41V,EAAe51V,IAAI,qDAAA;AACnB41V,EAAe51V,IAAI,iCAAA,soGACnB41V,EAAe51V,IAAI,mDAAA,2lCACnB41V,EAAe51V,IAAI,sCAAA,0kIACnB41V,EAAe51V,IAAI,6CAAyC,0nEAC5D41V,EAAe51V,IAAI,6CAA2C,gxEAC9D41V,EAAe51V,IAAI,2CAAA,g/CACnB41V,EAAe51V,IAAI,qDAAyB,sxHAC5C41V,EAAe51V,IAAI,oCAA6B;AAChD41V,EAAe51V,IAAI,yCAAgC,24LACnD41V,EAAe51V,IAAI,uCAAA,sqFACnB41V,EAAe51V,IAAI,qCAAA,mgDACnB41V,EAAe51V,IAAI,oCAAA,07FACnB41V,EAAe51V,IAAI,4CAAA,izGACnB41V,EAAe51V,IAAI,0CAA0C,0zEAC7D41V,EAAe51V,IAAI,+CAA2C,iyHAC9D41V,EAAe51V,IAAI,6CAAA;AACnB41V,EAAe51V,IAAI,kCAAA,u0GACnB41V,EAAe51V,IAAI,iDAAoC;AACvD41V,EAAe51V,IAAI,2CAAA,0/iBACnB41V,EAAe51V,IAAI,wCAAiC,6vQACpD41V,EAAe51V,IAAI,mDAAmC;AACtD41V,EAAe51V,IAAI,6CAA2C,oreAC9D41V,EAAe51V,IAAI,qDAA+C,opTAClE41V,EAAe51V,IAAI,2DAAuC,24GAC1D41V,EAAe51V,IAAI,2CAAA,m2DACnB41V,EAAe51V,IAAI,+CAA6C,upBAChE41V,EAAe51V,IAAI,mEAA2C;AAC9D41V,EAAe51V,IAAI,mDAA6B;AAChD41V,EAAe51V,IAAI,uDAAqC;AACxD41V,EAAe51V,IAAI,2CAAoC,oqBACvD41V,EAAe51V,IAAI,2CAAkC,qiFACrD41V,EAAe51V,IAAI,uCAAmC,wmyBACtD41V,EAAe51V,IAAI,uDAA6C;AAChE41V,EAAe51V,IAAI,yCAAgC;AACnD41V,EAAe51V,IAAI,qCAA6B;AAChD41V,EAAe51V,IAAI,0CAAA;AACnB41V,EAAe51V,IAAI,iCAA6B;AAChD41V,EAAe51V,IAAI,sCAAA;AACnB41V,EAAe51V,IAAI,iEAAqD,4yaACxE41V,EAAe51V,IAAI,uCAAA;AACnB41V,EAAe51V,IAAI,uCAAA;AACnB41V,EAAe51V,IAAI,+CAA6C;AAChE41V,EAAe51V,IAAI,iEAAiD,ivLACpE41V,EAAe51V,IAAI,yCAAA,2xfACnB41V,EAAe51V,IAAI,mCAAA;AACnB41V,EAAe51V,IAAI,0CAAuC,skgBAC1D41V,EAAe51V,IAAI,4CAAA;AACnB41V,EAAe51V,IAAI,0CAAqC;AACxD41V,EAAe51V,IAAI,+CAAA,w0ZACnB41V,EAAe51V,IAAI,uDAA2C;AAC9D41V,EAAe51V,IAAI,2CAAA,uzNACnB41V,EAAe51V,IAAI,mDAAoC,kzOACvD41V,EAAe51V,IAAI,oCAAA,49EACnB41V,EAAe51V,IAAI,2CAAA;AACnB41V,EAAe51V,IAAI,2CAAA;AACnB41V,EAAe51V,IAAI,gDAAA;AACnB41V,EAAe51V,IAAI,yCAAoC,grFACvD41V,EAAe51V,IAAI,iDAAA;AACnB41V,EAAe51V,IAAI,uCAAqC;AACxD41V,EAAe51V,IAAI,6CAAA;AACnB41V,EAAe51V,IAAI,2BAAA;AACnB41V,EAAe51V,IAAI,qDAAqB,0zZACxC41V,EAAe51V,IAAI,6CAAoB,4gZACvC41V,EAAe51V,IAAI,mEAAiC,qkDACpD41V,EAAe51V,IAAI,qEAA2C;AAC9D41V,EAAe51V,IAAI,+DAA6B,4tHAChD41V,EAAe51V,IAAI,2DAA6B,2sQAChD41V,EAAe51V,IAAI,mCAAA;AACnB41V,EAAe51V,IAAI,qCAAA,+0SACnB41V,EAAe51V,IAAI,qCAAA,w3JACnB41V,EAAe51V,IAAI,uBAAA,80YACnB41V,EAAe51V,IAAI,2CAAiC,g8FACpD41V,EAAe51V,IAAI,+CAAA;AACnB41V,EAAe51V,IAAI,iCAAA,+6RACnB41V,EAAe51V,IAAI,qDAA2C;AAC9D41V,EAAe51V,IAAI,mDAA+B,ssuBAClD41V,EAAe51V,IAAI,+CAA2B;AAC9C41V,EAAe51V,IAAI,wCAAwC;AAC3D41V,EAAe51V,IAAI,uCAAoC;AACvD41V,EAAe51V,IAAI,qEAAqB,urkBACxC41V,EAAe51V,IAAI,6CAA4B;AAC/C41V,EAAe51V,IAAI,uDAAmC,2uNACtD41V,EAAe51V,IAAI,yCAAuC;AAC1D41V,EAAe51V,IAAI,uDAAA,0pMACnB41V,EAAe51V,IAAI,+CAAA;AACnB41V,EAAe51V,IAAI,iDAAwC,47LAC3D41V,EAAe51V,IAAI,qDAAqC;AACxD41V,EAAe51V,IAAI,uDAAoC,szIACvD41V,EAAe51V,IAAI,2CAAwC,67hBAC3D41V,EAAe51V,IAAI,iCAAA;AACnB41V,EAAe51V,IAAI,+BAAA,q5IACnB41V,EAAe51V,IAAI,iEAA4C;AAC/D41V,EAAe51V,IAAI,yCAAA,m6bACnB41V,EAAe51V,IAAI,uCAAA,spMACnB41V,EAAe51V,IAAI,+DAAuC,olMAmD1D41V,EAAe51V,IAAI,6CAA6C,+iCAChE41V,EAAe51V,IAAI,2DAA2D;AAC9E41V,EAAe51V,IAAI,iDAAiD,8hOACpE41V,EAAe51V,IAAI,6CAA6C;AAChE41V,EAAe51V,IAAI,uCAAuC,yx9BAC1D41V,EAAe51V,IAAI,yCAAyC;AAC5D41V,EAAe51V,IAAI,+CAA+C,+g4BAClE41V,EAAe51V,IAAI,mDAAmD;AACtE41V,EAAe51V,IAAI,yCAAyC,wu1BAC5D41V,EAAe51V,IAAI,qCAAqC,mkBACxD41V,EAAe51V,IAAI,4CAA4C;AAC/D41V,EAAe51V,IAAI,iDAAiD,k6YACpE41V,EAAe51V,IAAI,mDAAmD;AACtE41V,EAAe51V,IAAI,+DAA+D;AAClF41V,EAAe51V,IAAI,qFAAqF,wj9BACxG41V,EAAe51V,IAAI,6EAA6E;AAChG41V,EAAe51V,IAAI,uEAAuE;AAC1F41V,EAAe51V,IAAI,iEAAiE;AACpF41V,EAAe51V,IAAI,+CAA+C,0xcAClE41V,EAAe51V,IAAI,6DAA6D;AAChF41V,EAAe51V,IAAI,2DAA2D,slcAC9E41V,EAAe51V,IAAI,mDAAmD,suNACtE41V,EAAe51V,IAAI,+CAA+C,iiOAClE41V,EAAe51V,IAAI,2CAA2C;AAC9D41V,EAAe51V,IAAI,uDAAuD;AAC1E41V,EAAe51V,IAAI,2CAA2C,guYAC9D41V,EAAe51V,IAAI,0CAA0C,s1RAC7D41V,EAAe51V,IAAI,uCAAuC;AAC1D41V,EAAe51V,IAAI,2BAA2B,o8BAC9C41V,EAAe51V,IAAI,6BAA6B,qnIAChD41V,EAAe51V,IAAI,yDAAyD,++bAC5E41V,EAAe51V,IAAI,mDAAmD,08FACtE41V,EAAe51V,IAAI,2CAA2C,IAC9D41V,EAAe51V,IAAI,uBAAuB;AAC1C41V,EAAe51V,IAAI,6BAA6B,6viBAChD41V,EAAe51V,IAAI,+CAA+C;AAClE41V,EAAe51V,IAAI,oCAAoC,gsiBACvD41V,EAAe51V,IAAI,yBAAyB;AAC5C41V,EAAe51V,IAAI,kCAAkC,2tZACrD41V,EAAe51V,IAAI,yCAAyC,+laAC5D41V,EAAe51V,IAAI,qCAAqC;AACxD41V,EAAe51V,IAAI,+CAA+C;AAClE41V,EAAe51V,IAAI,yCAAyC,i5UAC5D41V,EAAe51V,IAAI,+DAA+D,4qhBAClF41V,EAAe51V,IAAI,qCAAqC,82GACxD41V,EAAe51V,IAAI,+CAA+C;AAClE41V,EAAe51V,IAAI,0DAA0D;AAC7E41V,EAAe51V,IAAI,qDAAqD,66wBACxE41V,EAAe51V,IAAI,uCAAuC;AAC1D41V,EAAe51V,IAAI,sCAAsC,swjBACzD41V,EAAe51V,IAAI,yCAAyC;AAC5D41V,EAAe51V,IAAI,wCAAwC,234BAC3D41V,EAAe51V,IAAI,qCAAqC;AACxD41V,EAAe51V,IAAI,oCAAoC,g3OACvD41V,EAAe51V,IAAI,6CAA6C;AAChE41V,EAAe51V,IAAI,yCAAyC;AAC5D41V,EAAe51V,IAAI,6DAA6D,y2NAChF41V,EAAe51V,IAAI,6CAA6C,+jiBAChE41V,EAAe51V,IAAI,gDAAgD;AACnE41V,EAAe51V,IAAI,4CAA4C,swjBAC/D41V,EAAe51V,IAAI,+CAA+C;AAClE41V,EAAe51V,IAAI,uCAAuC,owjBAC1D41V,EAAe51V,IAAI,2CAA2C;AAC9D41V,EAAe51V,IAAI,2CAA2C,gxKAC9D41V,EAAe51V,IAAI,yCAAyC;AAC5D41V,EAAe51V,IAAI,yCAAyC,k7KAC5D41V,EAAe51V,IAAI,uDAAuD,23XAC1E41V,EAAe51V,IAAI,+CAA+C;AAClE41V,EAAe51V,IAAI,2DAA2D;AAC9E41V,EAAe51V,IAAI,mEAAmE;AACtF41V,EAAe51V,IAAI,yCAAyC,0xTAC5D41V,EAAe51V,IAAI,2CAA2C,ysSAC9D41V,EAAe51V,IAAI,4CAA4C;AAC/D41V,EAAe51V,IAAI,yBAAyB,o2PAC5C41V,EAAe51V,IAAI,6BAA6B;AAChD41V,EAAe51V,IAAI,gCAAgC,y2xBACnD41V,EAAe51V,IAAI,mDAAmD;AACtE41V,EAAe51V,IAAI,iDAAiD;AACpE41V,EAAe51V,IAAI,qCAAqC;AACxD41V,EAAe51V,IAAI,qDAAqD,6ywBACxE41V,EAAe51V,IAAI,0CAA0C;AAC7D41V,EAAe51V,IAAI,2CAA2C;AAC9D41V,EAAe51V,IAAI,iDAAiD;AACpE41V,EAAe51V,IAAI,qCAAqC,0p4BACxD41V,EAAe51V,IAAI,oCAAoC;AACvD41V,EAAe51V,IAAI,6CAA6C;AAChE41V,EAAe51V,IAAI,iCAAiC;AACpD41V,EAAe51V,IAAI,mCAAmC;AACtD41V,EAAe51V,IAAI,2CAA2C;AAC9D41V,EAAe51V,IAAI,+CAA+C;AAClE41V,EAAe51V,IAAI,uCAAuC,89JAC1D41V,EAAe51V,IAAI,iDAAiD;AACpE41V,EAAe51V,IAAI,6CAA6C,k5UAChE41V,EAAe51V,IAAI,2CAA2C,4xFAC9D41V,EAAe51V,IAAI,6BAA6B,wsFAChD41V,EAAe51V,IAAI,qCAAqC,8uFACxD41V,EAAe51V,IAAI,oCAAoC,o0FACvD41V,EAAe51V,IAAI,kCAAkC,ksQACrD41V,EAAe51V,IAAI,mCAAmC;AACtD41V,EAAe51V,IAAI,6CAA6C,usbAChE41V,EAAe51V,IAAI,gCAAgC,6wgBACnD41V,EAAe51V,IAAI,6BAA6B;AAChD41V,EAAe51V,IAAI,iDAAiD,i8EACpE41V,EAAe51V,IAAI,6BAA6B,i2XAChD41V,EAAe51V,IAAI,wCAAwC;AAC3D41V,EAAe51V,IAAI,qDAAqD,+4eACxE41V,EAAe51V,IAAI,2CAA2C;AAC9D41V,EAAe51V,IAAI,yCAAyC,6kdAC5D41V,EAAe51V,IAAI,6CAA6C,wjMAChE41V,EAAe51V,IAAI,iDAAiD;AACpE41V,EAAe51V,IAAI,+CAA+C,ixnBAClE41V,EAAe51V,IAAI,qDAAqD;AACxE41V,EAAe51V,IAAI,uCAAuC,w34BAC1D41V,EAAe51V,IAAI,6DAA6D;AAChF41V,EAAe51V,IAAI,qCAAqC;AACxD41V,EAAe51V,IAAI,iEAAiE;AACpF41V,EAAe51V,IAAI,2CAA2C,0vGAC9D41V,EAAe51V,IAAI,uDAAuD,8vGAC1E41V,EAAe51V,IAAI,oCAAoC,+mJACvD41V,EAAe51V,IAAI,yCAAyC,+zMAC5D41V,EAAe51V,IAAI,2DAA2D,wqGAC9E41V,EAAe51V,IAAI,qDAAqD,ysNACxE41V,EAAe51V,IAAI,+DAA+D;AAClF41V,EAAe51V,IAAI,oCAAoC,gvNACvD41V,EAAe51V,IAAI,2DAA2D,owGAC9E41V,EAAe51V,IAAI,qCAAqC,+mJACxD41V,EAAe51V,IAAI,iDAAiD,8+GACpE41V,EAAe51V,IAAI,qDAAqD,opGACxE41V,EAAe51V,IAAI,qBAAqB,whGACxC41V,EAAe51V,IAAI,oBAAoB,y1FACvC41V,EAAe51V,IAAI,iCAAiC,uzFACpD41V,EAAe51V,IAAI,2CAA2C;AAC9D41V,EAAe51V,IAAI,6BAA6B,mvFAChD41V,EAAe51V,IAAI,6BAA6B,mvFAChD41V,EAAe51V,IAAI,0CAA0C,ihBAC7D41V,EAAe51V,IAAI,6CAA6C,s4BAChE41V,EAAe51V,IAAI,qDAAqD;AACxE41V,EAAe51V,IAAI,mDAAmD;AACtE41V,EAAe51V,IAAI,iCAAiC,i7ZACpD41V,EAAe51V,IAAI,yDAAyD,soGAC5E41V,EAAe51V,IAAI,6CAA6C;AAChE41V,EAAe51V,IAAI,2CAA2C;AAC9D41V,EAAe51V,IAAI,+BAA+B;AAClD41V,EAAe51V,IAAI,2BAA2B;AAC9C41V,EAAe51V,IAAI,wCAAwC,6wEAC3D41V,EAAe51V,IAAI,oCAAoC,qtUACvD41V,EAAe51V,IAAI,qBAAqB,2QACxC41V,EAAe51V,IAAI,4BAA4B,myQAC/C41V,EAAe51V,IAAI,mCAAmC;AACtD41V,EAAe51V,IAAI,uCAAuC,kyPAC1D41V,EAAe51V,IAAI,gEAAgE,gnIACnF41V,EAAe51V,IAAI,0DAA0D,k+RAC7E41V,EAAe51V,IAAI,wCAAwC;AAC3D41V,EAAe51V,IAAI,qCAAqC,qdACxD41V,EAAe51V,IAAI,oCAAoC,sRACvD41V,EAAe51V,IAAI,wCAAwC,sVAC3D41V,EAAe51V,IAAI,oCAAoC,o/XACvD41V,EAAe51V,IAAI,wCAAwC,y8dAC3D41V,EAAe51V,IAAI,4CAA4C,8MAC/D41V,EAAe51V,IAAI,2CAA2C;AAC9D41V,EAAe51V,IAAI,4CAA4C,6ibAC/D41V,EAAe51V,IAAI,uCAAuC","file":"scripts/app-c28cbe956f.js","sourcesContent":["(function() {\r\n 'use strict';\r\n\r\n angular\r\n // .module('inspinia', ['ngAnimate', 'ngCookies', 'ngTouch', 'ngSanitize', 'ngMessages', 'ngAria', 'ngResource', 'ui.router', 'ui.bootstrap','toaster','ngTagsInput','ngStorage','ui.sortable','datatables','angularUtils.directives.dirPagination','localytics.directives', 'thatisuday.dropzone','angular-advanced-searchbox', 'ngProgress', 'ui.blueimp.gallery','datePicker','slick','angular-peity', 'ui.calendar', 'highcharts-ng','ngBootstrap', 'angular-hmac-sha512']);\r\n .module('inspinia', ['frapontillo.bootstrap-duallistbox', 'ui.select','ngAnimate', 'vcRecaptcha', 'ngCookies', 'ngTouch', 'ngSanitize', 'ngMessages', 'ngAria', 'ngResource', 'ui.router','ui.bootstrap','toaster','ngTagsInput','ngStorage','ui.sortable','datatables','datatables.scroller', 'datatables.bootstrap', 'datatables.buttons','datatables.scroller','angularUtils.directives.dirPagination','localytics.directives', 'thatisuday.dropzone','angular-advanced-searchbox', 'ngProgress', 'ui.blueimp.gallery','datePicker','slick','angular-peity', 'ui.calendar','ui.bootstrap.tpls', 'ui.bootstrap.datetimepicker', 'ngMap', 'highcharts-ng','ngBootstrap', \"angucomplete-alt\", 'angular-bind-html-compile','rzSlider','angular-uuid', 'ngWebSocket', 'angular-web-notification','ui.multiselect','infinite-scroll','angularjs.chips','dndLists','ngMaterial']);\r\n})();\r\n\nangular.module('inspinia').factory('httpInterceptor', function ($q, $rootScope,$window,$location, $log, CMSURL, CMSToken) {\r\n var numLoadings = 0;\r\n var disableLoaderForUrls = [CMSURL+'/suggestions/get/'+CMSToken];\r\n\r\n return {\r\n request: function (config) {\r\n\r\n numLoadings++;\r\n var enableLoader = true;\r\n angular.forEach(disableLoaderForUrls, function(i){\r\n if(config.url.startsWith(i)){\r\n enableLoader=false;\r\n }\r\n });\r\n if(enableLoader){\r\n // Show loader\r\n $rootScope.$broadcast(\"loader_show\");\r\n }\r\n return config || $q.when(config)\r\n\r\n },\r\n response: function (response) {\r\n if (response.status == 401) {\r\n $window.location.href = \"/Login\";\r\n }\r\n if ((--numLoadings) === 0) {\r\n \r\n // Hide loader\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $rootScope.$broadcast(\"loader_gif_hide\");\r\n }\r\n\r\n return response || $q.when(response);\r\n\r\n },\r\n responseError: function (response) {\r\n \r\n\r\n if (!(--numLoadings)) {\r\n // Hide loader\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $rootScope.$broadcast(\"loader_gif_hide\");\r\n }\r\n \r\n if (response.status == 401) {\r\n {if($location.path()!=\"/Login\"){\r\n $window.location.href = \"\";\r\n } \r\n }\r\n }\r\n\r\n return $q.reject(response);\r\n }\r\n };\r\n})\nangular.module('inspinia').service('skillCreationService', function (ApiURL, FreelancerURL,LocationURL,PublicApiURL, $log, $http,$localStorage) {\r\n\r\n// https://product.mymobiforce.com/coreapi/api/SkillSets?reqUserId=U1140000000001\r\nthis.getSkillsList = function (reqUserId,token) { \r\n url = ApiURL + '/api/SkillSets?'+ '&reqUserId=' + reqUserId;\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':reqUserId\r\n \r\n }\r\n });\r\n}\r\n\r\n//https://product.mymobiforce.com/coreapi/api/ProductBrandModel/UpdateWhiteGoodsIntegrationConfig\r\nthis.updateSkill = function (loginUserId, data, token) { \r\n url = ApiURL + '/api/SkillSets/UpdateSkillForSupport?'+ '&reqUserId=' + loginUserId;\r\n return $http.put(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':loginUserId}\r\n });\r\n}\r\n\r\n// https://login.mymobiforce.com/coreapi/api/SkillSets/DeleteMultipleSkill?reqUserId=F00000000000\r\n// this.deleteSkill = function (loginUserId, data, token) { debugger\r\n// var url = ApiURL + '/api/SkillSets/DeleteMultipleSkill?'+ 'reqUserId=' + loginUserId;\r\n// return $http.delete(url,data,{\r\n// headers:{'Content-Type':'application/json','Token':token, 'UserId':loginUserId}\r\n// });\r\n// }\r\n\r\n// this.deleteSkill = function(loginUserId, data, token){\r\n// return $http({\r\n// method: 'DELETE',\r\n// url: ApiURL + '/api/SkillSets/DeleteMultipleSkill?'+ 'reqUserId=' + loginUserId,\r\n// data,\r\n// headers: {\r\n// 'Content-type': 'application/json', 'token':token, 'UserId':loginUserId\r\n// }\r\n// })\r\n// }\r\n\r\n//https://perf.mymobiforce.com/coreapi/api/SkillSetsMultiple?reqUserId=U1620000000001\r\nthis.createNewSkill = function (data, token, loggedInUserId) { \r\n var url = ApiURL + '/api/SkillSetsMultiple?'+ '&reqUserId=' + loggedInUserId;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n}\r\n});\r\n\nangular.module('inspinia').controller('skillCreationController', function (skillCreationService,ReferService, toaster, $filter,$rootScope, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder,DTColumnDefBuilder, DTColumnBuilder, $uibModal, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n\tvm = this;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\t\r\n vm.LineItemAccountId = $localStorage.accountConfig.AccountId\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var token = $localStorage.token;\r\n vm.ListOfLineItem=[];\r\n vm.ListofGoods=[]; \r\n vm.SearchByGroupId = '';\r\n vm.BrandName ='';\r\n vm.ModelNumber ='';\r\n vm.SelectedPriceGroup = '';\r\n vm.ProjectId ='';\r\n vm.SkillName ='';\r\n vm.AccountId = '';\r\n vm.addBrandName ='';\r\n vm.addModelNumber ='';\r\n vm.addSelectedPriceGroup = '';\r\n vm.addProjectId ='';\r\n vm.addSkillName ='';\r\n vm.addAccountId = '';\r\n vm.addGroupId = '';\r\n vm.edit=false;\r\n vm.SearchByPriceGroupId = '';\r\n vm.SearchByNoPriceGroupId = '';\r\n\r\n vm.SkillId=''; \r\n vm.SkillName=''; \r\n vm.Category=''; \r\n vm.DisplayName='';\r\n vm.TestLink='';\r\n vm.Vertical='';\r\n vm.SkillVertical='';\r\n\r\n\r\nvm.TabClickEvent= function()\r\n{\r\n vm.getSkillsList(loggedinUser,token);\r\n}\r\n\r\nvm.applySearch = function(){ \r\n vm.getSkillsList(loggedinUser,token);\r\n}\r\n\r\nvm.clearSearchText = function(){ \r\n vm.SearchByPriceGroupId = '';\r\n vm.getSkillsList(loggedinUser,token); \r\n}\r\n\r\n vm.getSkillsList = function (loggedinUser,token) {\r\n skillCreationService.getSkillsList(loggedinUser,token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ListofGoods = resp.data;\t\r\n } \r\n \r\n }, function () {\r\n \r\n });\r\n }\r\n \r\n vm.getSkillsList(loggedinUser,token);\r\n\r\n vm.updateSkill = function (index) { \r\n var data = [ \r\n {\r\n \"SkillId\": vm.ListofGoods[index].SkillId,\r\n \"SkillName\": vm.ListofGoods[index].SkillName,\r\n \"Category\": vm.ListofGoods[index].Category,\r\n \"DisplayName\": vm.ListofGoods[index].DisplayName,\r\n \"Vertical\": vm.ListofGoods[index].Vertical,\r\n \"TestLink\": vm.ListofGoods[index].TestLink,\r\n \"SkillVertical\": vm.ListofGoods[index].SkillVertical,\r\n \"Certificates\": [\"\"]\r\n } \r\n ] \r\n skillCreationService.updateSkill(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 202 ) {\r\n \r\n $timeout(function () {\r\n\r\n vm.showSuccess(\"Success\", \"Updated successfully\"); \r\n vm.getSkillsList(loggedinUser,token);\r\n \r\n }, 1000);\r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n }, function () { \r\n });\r\n }\r\n\r\n vm.openDeleteModel = function (currentSkill) { debugger\r\n vm.currentSkill = currentSkill;\r\n openDeleteModel = $uibModal.open({\r\n templateUrl: 'openDeleteModel.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n });\r\n }\r\n \r\n vm.CloseDeleteModel = function () {\r\n openDeleteModel.close();\r\n }\r\n vm.deleteSkill = function () {\r\n vm.delId = [];\r\n vm.data = vm.currentSkill.SkillId;\r\n vm.delId.push(vm.data);\r\n \r\n skillCreationService.deleteSkill(loggedinUser, vm.delId, token).then(function (resp) {\r\n if(resp) {\r\n vm.showSuccess(\"Success\", \"Updated successfully\");\r\n $timeout(function () {\r\n vm.CloseDeleteModel();\r\n vm.getSkillsList(loggedinUser,token);\r\n }, 1000);\r\n\r\n }\r\n }, function () { \r\n });\r\n }\r\n\r\n vm.openSkillModel = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n openSkillModel = $uibModal.open({\r\n templateUrl: 'openSkillModel.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope,\r\n });\r\n }\r\n \r\n vm.CloseopenSkillModel = function () {\r\n vm.SkillId=''; \r\n vm.SkillName=''; \r\n vm.Category=''; \r\n vm.DisplayName='';\r\n vm.TestLink='';\r\n vm.Vertical='';\r\n vm.SkillVertical='';\r\n openSkillModel.close();\r\n }\r\n \r\n vm.AddSkill = function () {\r\n var data = [{\r\n \"SkillId\": vm.SkillId,\r\n \"SkillName\": vm.SkillName,\r\n \"Category\": vm.Category,\r\n \"DisplayName\": vm.DisplayName,\r\n \"TestLink\": vm.TestLink,\r\n \"Certificates\": null,\r\n \"Vertical\": vm.Vertical,\r\n \"SkillVertical\": vm.SkillVertical\r\n }];\r\n skillCreationService.createNewSkill(data, token, loggedinUser).then(function (resp) { \r\n if (resp.status == 201 ) {\r\n vm.showSuccess(\"Success\", \"Added successfully\"); \r\n $timeout(function () { \r\n vm.CloseopenSkillModel(); \r\n vm.getSkillsList(loggedinUser,token);\r\n }, 1000);\r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n }, function () { \r\n });\r\n \r\n }\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withButtons([{extend:'colvis'},{extend:'csv'}])\r\n \r\n \r\n .withPaginationType('full_numbers')\r\n .withOption('lengthChange', true)\r\n .withOption('paging', true)\r\n .withOption('bInfo',true)\r\n .withOption('order', [0, 'desc']);\r\n \r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable()\r\n ];\r\n }\r\n\r\n})\nangular.module('inspinia').service('ProjectService', function (ApiURL, $log, $http, $localStorage) {\r\n\r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n //http://115.124.122.225:93/CoreAPI/api/Project/srachit46%40gmail.com/srachit46%40gmail.com/GetProjectsByUserId\r\n\r\n this.GetAllProjects1 = function (loggedinUser, callback, token) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + loggedinUser + '/GetProjectsByUserId'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token, 'UserId':loggedinUser }\r\n }).then(function (res) {\r\n callback(res.data);\r\n }, function () {\r\n vm.showFailure(\"Projects\", \"Unable to get projects\");\r\n });\r\n }\r\n\r\n this.GetAllProjects = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + loggedinUser + '/GetProjectsByUserId'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n\r\n //http://115.124.122.225:93/CoreAPI/api/Project/srachit46%40gmail.com/tata_Test%20Project/GetProjectById\r\n\r\n this.GetProjectByProjectId = function (projectId, loggedinUser, token, callback) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + projectId + '/GetProjectById'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json' ,'Token':token, 'UserId':loggedinUser}\r\n }).then(function (resp) {\r\n callback(resp.data);\r\n }, function (error) {\r\n vm.showFailure(\"Failed\", 'Could not be able to get project, id =' + projectId);\r\n });\r\n }\r\n\r\n\r\n\r\n this.ProjectsList = function () {\r\n var url = ApiURL;\r\n return $http.get(url);\r\n }\r\n //http://115.124.122.225:93/CoreAPI/api/ProjectLocation/sachin.rana%40innotiontech.com/tata_Drive%20Test/Tamilnadu/GetProjectLocation\r\n this.GetProjectLocations = function (loggedinUser, projectId, circle, token) {\r\n var url = ApiURL + '/api/ProjectLocation/' + loggedinUser + '/' + projectId + '/' + circle + '/GetProjectLocation'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('ProjectController', function (ProjectService, $rootScope, ProjectCreationService, customerService, $stateParams, $uibModal, $scope, $log, $state, $localStorage, DTOptionsBuilder, DTColumnDefBuilder) {\r\n var vm = this;\r\n if (!$localStorage.loggedInUserId) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.searchText = \"\"\r\n var circleArray = [];\r\n var ProjectModal = {};\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n $rootScope.rootScopeMessage = '';\r\n var projectIndex = 0;\r\n //vm.projectId = '';\r\n vm.projects = [];\r\n vm.client = 1;\r\n vm.projectId = '';\r\n vm.project_name = '';\r\n vm.customerId = '';\r\n vm.circle = '';\r\n vm.start_date = '';\r\n vm.end_date = '';\r\n vm.sla = '';\r\n vm.projectModel = '';\r\n vm.pocLocation = '';\r\n vm.SupervisorName = '';\r\n vm.pocNumber = '';\r\n vm.pocName = '';\r\n vm.projectLocations = '';\r\n vm.projectName = '';\r\n vm.filters = {};\r\n vm.filterOptions = {};\r\n vm.selectedFilters = {};\r\n vm.dtInstance = {};\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n ProjectService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n ProjectService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n $scope.$parent.$parent.main.implementSelectItems('projects', this);\r\n\r\n vm.exportData = function () {\r\n var blob = new Blob([document.getElementById('project-table').innerHTML], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, \"Report.xls\");\r\n };\r\n\r\n vm.preProcessData = function(project){\r\n var skills = \"\";\r\n angular.forEach(project.ProjectLocationModels, function(l){\r\n skills += l.Circle + \",\";\r\n }); \r\n project.allLocations = skills.length>0?skills.substring(0, skills.length-1):\"\";\r\n }\r\n\r\n ///Get all Project for Logged in Users\r\n vm.GetAllProjects = function () {\r\n vm.projects = [];\r\n ProjectService.GetAllProjects1(loggedinUser, vm.createCallback(vm.projects, [function () {\r\n vm.list_width = vm.projects.length == 0 ? 12 : 8;\r\n vm.projectModel = vm.projects[0];\r\n angular.forEach(vm.projects, function(p){\r\n vm.preProcessData(p);\r\n });\r\n }]), token);\r\n }\r\n\r\n vm.GetProjectInfo = function (projectId) {\r\n ProjectService.GetProjectByProjectId(projectId, loggedinUser, token, vm.createCallback(null, [function (data) {\r\n vm.projectModel = data;\r\n if (data) {\r\n vm.list_width = 8;\r\n }\r\n }]));\r\n }\r\n\r\n vm.openProjectModal = function () {\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'approve_model.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.CloseModal = function () {\r\n ProjectModal.close();\r\n }\r\n\r\n vm.ProjectView = function () {\r\n $state.go('index.ProjectProfile', {\r\n\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.editProject = function (projectId) {\r\n $state.go('index.ProjectEdit', {\r\n projectId: projectId\r\n });\r\n }\r\n\r\n\r\n vm.ViewProject = function (pocLocation, projectId, projectName) {\r\n $state.go('index.Project_Details', {\r\n pocLocation: pocLocation,\r\n projectId: projectId,\r\n projectName: projectName\r\n // SupervisorName:SupervisorName,\r\n // pocNumber:pocNumber,\r\n // pocName:pocName\r\n },\r\n {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n\r\n });\r\n }\r\n\r\n vm.getAllCustomer = function (loggedinUser) {\r\n customerService.getAllCustomers(loggedinUser, token).then(function (resp) {\r\n vm.customers = resp.data;\r\n });\r\n }\r\n\r\n vm.filtermodal = function () {\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'Filter.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.CloseModal = function () {\r\n ProjectModal.close();\r\n }\r\n\r\n vm.getAllCircles = function () {\r\n vm.circleArray=[];\r\n vm.circles=[];\r\n ProjectCreationService.GetAllCircles1(vm.createCallback(vm.circles, [function (data) {\r\n angular.forEach(data, function (d) {\r\n vm.circleArray.push({\r\n workArea: d.circle\r\n });\r\n })\r\n //$log.log(vm.circleArray, vm.circles);\r\n }]));\r\n }\r\n\r\n vm.search = function () {\r\n \r\n if (Object.keys(vm.filters).length > 0) {\r\n vm.filterOptions = {};\r\n angular.extend(vm.filterOptions, vm.filters);\r\n if(vm.filters.workArea){\r\n vm.filterOptions.ProjectLocationModels = {};\r\n vm.filterOptions.ProjectLocationModels.Circle = vm.filters.workArea[0];\r\n }\r\n } else {\r\n vm.filterOptions = {};\r\n }\r\n //$log.log(vm.filterOptions);\r\n ProjectModal.close();\r\n }\r\n\r\n vm.GetAllProjects();\r\n // vm.getAllCircles();\r\n vm.getAllCustomer(loggedinUser);\r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers')\r\n .withButtons([])\r\n .withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [1, 'desc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n //DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable()];\r\n }\r\n\r\n vm.PieChart5 = {\r\n data: [226, 134],\r\n options: {\r\n fill: [\"#1ab394\", \"#d7d7d7\"]\r\n }\r\n};\r\n\r\n});\nangular.module('inspinia').controller('plannerToolController', function ($scope, $uibModal) {\r\n\r\n $scope.openModal = function () {\r\n $uibModal.open({\r\n templateUrl: 'customModal.html',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n\r\n $scope.openSaveReport = function () {\r\n $uibModal.open({\r\n templateUrl: 'saveReport.html',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n $scope.openEmail = function () {\r\n $uibModal.open({\r\n templateUrl: 'emailReport.html',\r\n size:'lg',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n $scope.priceSlider = 10;\r\n $scope.myTrigger = \"outsideClick\";\r\n\r\n $scope.toggleSingleClass = function() {\r\n $scope.class_status = !$scope.class_status;\r\n };\r\n \r\n});\nangular.module('inspinia').value('THROTTLE_MILLISECONDS', 10).factory('infiniteScrollFactory', function ($http,MainService,$localStorage,$timeout) {\r\n var vm = this; \r\n vm.onMessagehandler = null; \r\n vm.rUnReadRooms = new Map(); \r\n\r\n vm.showchatwindow = function (show) { \r\n vm.chatcollapse = !vm.chatcollapse;\r\n vm.offset = 0;\r\n if(!vm.chatcollapse){\r\n vm.getGroupsList = [];\r\n vm.getSubscriptions();\r\n } \r\n }\r\n\r\n vm.nextpage = function() {\r\n console.log('enter scroll value ' + vm.busy);\r\n if(!vm.getGroupsList)\r\n return;\r\n\r\n if(vm.offset == -1){\r\n console.log('loaded all records ' + vm.getGroupsList.length);\r\n return;\r\n }\r\n if (vm.busy){\r\n console.log('enter scroll busy ' + vm.busy);\r\n return;\r\n }\r\n vm.busy = true; \r\n console.log('enter scroll free ' + vm.busy);\r\n var reqUserId = vm.RocketUserId;\r\n var token = vm.Rockettoken;\r\n MainService.getGroups(reqUserId,token,vm.offset,vm.count).then(function(resp){\r\n if (resp && resp.data) { \r\n $localStorage.groupListTotalCount = resp.data.total;\r\n $localStorage.fNameNotification = vm.getGroupsList;\r\n angular.forEach(resp.data.groups, function(message){\r\n var roomInfo = message;\r\n // newGroupList.push(roomInfo)\r\n if(vm.rUnReadRooms.has(message.fname)){\r\n roomInfo.unread = vm.rUnReadRooms.get(message.fname);\r\n }\r\n else{\r\n roomInfo.unread = 0;\r\n }\r\n if(message.lm){\r\n var lmdate = moment(message.lm).local();\r\n var today = moment();\r\n var diff = lmdate.diff(today, 'days', true);\r\n var retVal = diff < -6 ? 'sameElse' : diff < -2 ? 'lastWeek' : diff < -1 ? 'lastDay' : diff < 0 ? 'sameDay' :'sameElse';\r\n console.log('ticket ' + message.fname + ' lmdate ' + lmdate + ' diff ' + diff + ' retval ' + retVal);\r\n if(retVal == 'sameElse'){ \r\n roomInfo.lmDateTime = lmdate.format(\"DD-MM-YYYY\");\r\n }\r\n else if (retVal == 'lastWeek'){\r\n roomInfo.lmDateTime = lmdate.format(\"dddd\");\r\n }\r\n else if (retVal == 'lastDay'){\r\n roomInfo.lmDateTime = \"yesterday\";\r\n }\r\n else if (retVal == 'sameDay'){\r\n roomInfo.lmDateTime = lmdate.format(\"h:mm A\");\r\n };\r\n console.log('room name:' + roomInfo.fname + 'room id:' + roomInfo._id) ;\r\n } \r\n vm.getGroupsList.push(roomInfo);\r\n \r\n });\r\n\r\n } \r\n\r\n vm.offset = resp.data.offset + resp.data.count; \r\n if(vm.offset >= resp.data.total) {\r\n vm.offset = -1;\r\n }\r\n vm.onMessagehandler(vm.getGroupsList); \r\n $timeout(function () {\r\n vm.busy = false;\r\n console.log('exit scroll ' + vm.busy); \r\n },10); \r\n })\r\n };\r\n\r\n vm.getSubscriptions = function() {\r\n var reqUserId = vm.RocketUserId;\r\n var token = vm.Rockettoken;\r\n vm.rUnReadRooms.clear();\r\n MainService.getSubscriptions(reqUserId,token).then(function(resp){\r\n if (resp && resp.data) { \r\n angular.forEach(resp.data.update, function(message){\r\n //if(message.unread > 0){\r\n vm.rUnReadRooms.set(message.fname, message.unread);\r\n //} \r\n });\r\n }\r\n vm.nextpage();\r\n })\r\n }\r\n\r\n var methods = {\r\n busy: vm.busy,\r\n initiateScroll: function (handler) {\r\n vm.RocketUserId = $localStorage.rocketUserId;\r\n vm.Rockettoken = $localStorage.rocketAuthToken; \r\n vm.busy = false;\r\n vm.count = 100;\r\n vm.offset = 0; \r\n vm.getGroupsList = null; \r\n vm.groupListTotalCount = 0;\r\n vm.chatcollapse = true;\r\n vm.onMessagehandler = handler;\r\n vm.rUnReadRooms.clear();\r\n },\r\n showChatWindow: function () {\r\n vm.showchatwindow();\r\n },\r\n nextPage: function () {\r\n vm.nextpage()\r\n }\r\n }\r\n return methods;\r\n \r\n})\nangular.module('inspinia').factory('webSocketFactory', function (WsRocketUrl,RocketChatURL,$timeout, uuid, $websocket,$localStorage) {\r\n // Rocket chat connection start\r\n var vm = this;\r\n var ROCKETCHATSTATS = 0;\r\n var LOGINREQSENT= 1;\r\n var WAITFORAUTHCODE=2;\r\n var CONNECTSENT=3;\r\n var HANDSHAKEINITAITED= 4;\r\n var READYTOSUBSCRIBE=5;\r\n var WAITFORSUBSRESPONSE=6;\r\n var DATAREADYTORECEIVE=7;\r\n var WAITFORHISTORY=8;\r\n var UPLOADRESPONSEAWAIT=9; \r\n var onMessagehandler = null; \r\n var Messages = []; \r\n //var OpenRooms = [];\r\n vm.loggedin = $localStorage.loggedInUserId;\r\n var fNameNotification = $localStorage.fNameNotification;\r\n const getFname = new Map();\r\n var socket = null; \r\n\r\n\t\tsendLoginRequest = function() {\r\n var loginRequest = {\r\n \"msg\": \"method\",\r\n \"method\": \"login\",\r\n \"id\":uuid.v4(),\r\n \"params\":[\r\n {\r\n \"resume\": $localStorage.rocketAuthToken //\"v6zlRxEaZgeVu5CuEAWd3tZbh69sdFFBodkdoctqE6G\"\t\t\t\t\t\t\t\r\n }\r\n ]\r\n }\r\n socket.send(JSON.stringify(loginRequest));\r\n console.log(loginRequest);\r\n\t\t}\r\n\r\n ReadytoSubscribeRoomMessages = function (room_group) { \r\n //OpenRooms[0] = room_group;\r\n var uniqueid = uuid.v4(); \r\n var subscription = {\r\n \"msg\":\"sub\",\r\n \"id\":uniqueid,\r\n \"name\":\"stream-room-messages\",\r\n \"params\": [\"__my_messages__\",false]\r\n //\"params\": [OpenRooms[0]._id,false]\r\n }\r\n socket.send(JSON.stringify(subscription));\r\n console.log(subscription);\r\n ROCKETCHATSTATS = WAITFORSUBSRESPONSE; \r\n }\r\n\r\n\t\tdecodeSubscriptionResponse = function (response) {\r\n\t\t\tif(response.msg == 'ready') {\r\n\t\t\t\t//LoadHistoryOfRoom(OpenRooms[0]);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n showNotification = function (msg) {\r\n vm.rid = msg.rid\r\n if(msg.username != vm.loggedin) {\r\n\r\n angular.forEach($localStorage.fNameNotification, function(message){\r\n if(vm.rid == message._id ){\r\n vm.fnameToDisplay = message.fname;\r\n }\r\n });\r\n webNotification.showNotification('#'+vm.fnameToDisplay, {\r\n body: msg.name + ' : ' + msg.msg,\r\n icon: 'my-icon.ico',\r\n onClick: function onNotificationClicked() {\r\n console.log('Notification clicked.');\r\n },\r\n autoClose: 4000 //auto close the notification after 4 seconds (you can manually close it via hide function)\r\n }, function onShow(error, hide) {\r\n if (error) {\r\n window.alert('Unable to show notification: ' + error.message);\r\n } else {\r\n console.log('Notification Shown.');\r\n \r\n setTimeout(function hideNotification() {\r\n console.log('Hiding notification....');\r\n hide(); //manually close the notification (you can skip this if you use the autoClose option)\r\n }, 5000);\r\n }\r\n });\r\n }\r\n }\r\n\r\n\t\r\n\t\tdecodeHistoryResponse = function(response) { \r\n var Messages = [];\r\n var roomId = null; \r\n\t\t\tif(response.msg == 'result') {\t\t\t\t\r\n if (response.result && response.result.messages) {\r\n angular.forEach(response.result.messages, function (msg) {\r\n if (msg) {\r\n var message = {};\r\n message.msg = msg.msg;\r\n message.username = msg.u.username;\r\n message.name = msg.u.name;\r\n roomId = msg.rid;\r\n message.ts = moment(msg.ts.$date).format(\"hh:mm A\");\r\n message.msgDateTime = moment(msg.ts.$date).format(\"DD/MM/YYYY\");\r\n\r\n if(msg.ts){\r\n // console.log(lmdate);\r\n var lmdate = moment(msg.ts.$date).local();\r\n var today = moment();\r\n var diff = lmdate.diff(today, 'days', true);\r\n var retVal = diff < -6 ? 'sameElse' : diff < -2 ? 'lastWeek' : diff < -1 ? 'lastDay' : diff < 0 ? 'sameDay' :'sameElse';\r\n if(retVal == 'sameElse'){ \r\n message.lmDateTime = lmdate.format(\"DD-MMM-YYYY\");\r\n }\r\n else if (retVal == 'lastWeek'){\r\n message.lmDateTime = lmdate.format(\"dddd\");\r\n }\r\n else if (retVal == 'lastDay'){\r\n message.lmDateTime = \"yesterday\";\r\n }\r\n else if (retVal == 'sameDay'){\r\n message.lmDateTime = \"Today\";\r\n }\r\n \r\n console.log(lmdate + ' ' + retVal) ;\r\n }\r\n\r\n if(msg.file){\r\n if(msg.file.type == 'image/png'|| msg.file.type == 'image/jpeg' || msg.file.type == 'image/jpg'){\r\n message.type = 'image';\r\n message.fileUrl = RocketChatURL + msg.attachments[0].title_link;\r\n message.title = msg.attachments[0].title;\r\n message.file_size = msg.attachments[0].image_size;\r\n message.description = msg.attachments[0].description;\r\n message.image_preview = msg.attachments[0].image_preview;\r\n }\r\n else if(msg.file.type == 'video/mp4'){\r\n message.type = 'video';\r\n message.fileUrl = RocketChatURL + msg.attachments[0].title_link;\r\n message.title = msg.attachments[0].title;\r\n message.file_size = msg.attachments[0].video_size;\r\n message.description = msg.attachments[0].description;\r\n }\r\n else if(msg.file.type == 'application/pdf' || msg.file.type == 'application/vnd.ms-excel' || msg.file.type =='application/vnd.openxmlformats-officedocument.wordprocessingml.document'){\r\n message.type = 'file';\r\n message.fileUrl = RocketChatURL + msg.attachments[0].title_link;\r\n message.title = msg.attachments[0].title;\r\n message.file_size = msg.attachments[0].video_size;\r\n message.description = msg.attachments[0].description;\r\n }\r\n else if(msg.file.type == 'audio/mpeg' || msg.file.type == 'audio/wav'){\r\n message.type = 'audio';\r\n message.fileUrl = RocketChatURL + msg.attachments[0].title_link;\r\n message.title = msg.attachments[0].title;\r\n message.file_size = msg.attachments[0].video_size;\r\n message.description = msg.attachments[0].description;\r\n }\r\n } \r\n }\r\n Messages.push(message); \r\n });\r\n } \r\n\t\t\t\tROCKETCHATSTATS = DATAREADYTORECEIVE;\r\n console.log(Messages);\r\n onMessagehandler(0, roomId, Messages.reverse());\t\t\t\t\r\n\t\t\t}\r\n\t\t}\r\n\r\n decodeRoomMessages = function(response) { \r\n /*if(response.msg == 'result') {\t\t\t\r\n if (response.result) {\r\n var message = {};\r\n message.msg = response.result.msg;\r\n message.username = response.result.u.username;\r\n message.name = response.result.u.name;\r\n message.ts = response.result.ts;\r\n Messages.push(message); \r\n console.log(Messages); \r\n }\t\t\t\t\r\n\t\t\t}\r\n else */\r\n\r\n if(response.msg == 'changed' && response.collection == 'stream-room-messages') {\r\n var message = {};\r\n var msg = response.fields.args[0];\r\n if(msg)\r\n {\r\n message.msg = response.fields.args[0].msg;\r\n message.username = response.fields.args[0].u.username;\r\n message.name = response.fields.args[0].u.name;\r\n message.rid = response.fields.args[0].rid;\r\n // message.ts = response.fields.args[0].ts;\r\n message.ts = moment(response.fields.args[0].ts.$date).format(\"hh:mm A\");\r\n if(msg.file){\r\n if(msg.file.type == 'image/png'|| msg.file.type == 'image/jpeg'){\r\n message.type = 'image';\r\n message.fileUrl = RocketChatURL + msg.attachments[0].title_link;\r\n message.title = msg.attachments[0].title;\r\n message.file_size = msg.attachments[0].image_size;\r\n message.description = msg.attachments[0].description;\r\n message.image_preview = msg.attachments[0].image_preview;\r\n }\r\n else if(msg.file.type == 'video/mp4'){\r\n message.type = 'video';\r\n message.fileUrl = RocketChatURL + msg.attachments[0].title_link;\r\n message.title = msg.attachments[0].title;\r\n message.file_size = msg.attachments[0].video_size;\r\n message.description = msg.attachments[0].description;\r\n }\r\n else if(msg.file.type == 'application/pdf' || msg.file.type == 'application/vnd.ms-excel' || msg.file.type =='application/vnd.openxmlformats-officedocument.wordprocessingml.document'){\r\n message.type = 'file';\r\n message.fileUrl = RocketChatURL + msg.attachments[0].title_link;\r\n message.title = msg.attachments[0].title;\r\n message.file_size = msg.attachments[0].video_size;\r\n message.description = msg.attachments[0].description;\r\n }\r\n else if(msg.file.type == 'audio/mpeg' || msg.file.type == 'audio/wav'){\r\n message.type = 'audio';\r\n message.fileUrl = RocketChatURL + msg.attachments[0].title_link;\r\n message.title = msg.attachments[0].title;\r\n message.file_size = msg.attachments[0].video_size;\r\n message.description = msg.attachments[0].description;\r\n }\r\n }\r\n Messages.push(message); \r\n console.log(Messages);\r\n var messagelist = [];\r\n messagelist.push(message);\r\n onMessagehandler(1, msg.rid, messagelist); \r\n ROCKETCHATSTATS = DATAREADYTORECEIVE;\r\n showNotification(message);\r\n } \r\n }\r\n \r\n\t\t}\r\n\r\n var methods = {\r\n collection: Messages,\r\n initiateWS: function (handler) {\r\n onMessagehandler = handler;\r\n socket = $websocket(WsRocketUrl);\r\n console.log('socket created');\t\r\n\r\n var connectObject = {\r\n msg: 'connect', \r\n version: '1', \r\n support: ['1','pre2','pre1']\r\n } \r\n $timeout(function () {\r\n socket.send(JSON.stringify(connectObject));\r\n ROCKETCHATSTATS = CONNECTSENT;\r\n $localStorage.ws = true;\r\n },10); \r\n\r\n socket.onMessage(function(e) {\r\n var response = JSON.parse(e.data);\r\n console.log('response', response);\r\n \r\n if(response.msg == 'ping'){\r\n console.log('pong!');\r\n socket.send(JSON.stringify({msg: 'pong'}));\r\n return;\r\n }\r\n //now here we need to send login packet\r\n if(response.msg == 'connected' && ROCKETCHATSTATS == CONNECTSENT){\r\n console.log('socket connected'); \r\n sendLoginRequest();\r\n ROCKETCHATSTATS = LOGINREQSENT;\r\n return;\r\n }\r\n if(ROCKETCHATSTATS == LOGINREQSENT) {\r\n ReadytoSubscribeRoomMessages(null);\r\n return;\r\n }\r\n if(ROCKETCHATSTATS == WAITFORSUBSRESPONSE){\r\n decodeSubscriptionResponse(response);\r\n return;\r\n }\r\n if(ROCKETCHATSTATS == WAITFORHISTORY){\r\n decodeHistoryResponse(response);\r\n return;\r\n }\r\n if (ROCKETCHATSTATS == DATAREADYTORECEIVE) {\r\n decodeRoomMessages(response);\r\n return;\r\n }\r\n \r\n });\r\n }, \r\n closeWS: function(){\r\n if(socket) socket.close();\r\n },\r\n LoadHistoryOfRoom: function (group) { \r\n roomId = group._id;\r\n //OpenRooms[0] = group;\r\n var loadHisT = {\r\n \"msg\":\"method\",\r\n \"method\":\"loadHistory\",\r\n \"id\": uuid.v4(),\r\n \"params\": [roomId,null,300,{\"$date\":null}], \r\n }\r\n socket.send(JSON.stringify(loadHisT));\r\n console.log(loadHisT);\r\n ROCKETCHATSTATS = WAITFORHISTORY; \r\n }, \r\n\t\t SendMessageToRoom: function (roomdId, message) { \r\n var random_id = uuid.v4(); \r\n var messageObject = {\r\n \"msg\":\"method\",\r\n \"method\":\"sendMessage\",\r\n \"id\": uuid.v4(),\r\n \"params\": [{\"_id\":random_id,\"rid\":roomdId,\"msg\":message}]\r\n\r\n }\r\n socket.send(JSON.stringify(messageObject));\r\n console.log(messageObject);\r\n ROCKETCHATSTATS = DATAREADYTORECEIVE; \r\n }\r\n }\r\n return methods;\r\n})\nangular.module('inspinia').service('MainService',function(ApiURL,FreelancerURL, userauthURL, RocketChatURL, $log, $http){\r\n\r\n\t//https://test.mymobiforce.com/coreapi/api/alertnotification/U360000000001/GetAllAlertNotification?startDate=2018-11-01&endDate=2018-11-13\r\n\t// this.GetAlertNotificationWithDateRange = function(reqUserId,sDate,eDate,token){\r\n\t// \tvar url = ApiURL + '/api/alertnotification/'+reqUserId+'/GetAllAlertNotification?startDate='+sDate+'&endDate='+eDate;\r\n\t// \treturn $http.get(url,{\r\n\t// \t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n\t// \t})\r\n\t// }\r\n\r\n\t//https://test.mymobiforce.com/coreapi/api/alertnotification/U360000000001/MarkReadAlert?alertId=alertId\r\n\r\n\tthis.MarkAlertAsRead = function(reqUserId,alertId,token){\r\n\t\tvar url = ApiURL+'/api/alertnotification/'+reqUserId+'/MarkReadAlert?alertId='+alertId;\r\n\t\treturn $http.post(url,{},{\r\n\t\t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n\t\t})\r\n\t}\r\n\r\n\t//https://report.mymobiforce.com/userauthapi/api/Authenticate/LogOut\r\n\r\n\tthis.LogOut = function(reqUserId,token){\r\n\t\tvar url = userauthURL+'/api/Authenticate/LogOut';\r\n\t\treturn $http.post(url,{},{\r\n\t\t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n\t\t})\r\n\t}\r\n\r\n\r\n\t //http://192.168.0.80:92/FreelancerAPI/api/PaymentAccount/GetAvailableBalanceByreqUserId?reqUserId=kanika.bansal%40innotiontech.com\r\n\r\n this.GetAccountBalance = function(userId, token){\r\n var url = FreelancerURL + '/api/PaymentAccount/GetAvailableBalanceByreqUserId?reqUserId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId':userId}\r\n })\r\n }\r\n\r\n this.GetImageBlob = function(userId, token, img){\r\n var url = ApiURL + '/api/Image?fileName=' + img;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId':userId}\r\n })\r\n }\r\n this.GetLegalContractImageBlob = function(userId, token, img){\r\n var url = ApiURL + '/api/Image/GetLegalContract?fileName=' + img;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId':userId}\r\n })\r\n }\r\n this.GetHealthSafetyGuidelines = function(userId, token, img){\r\n var url = ApiURL + '/api/Image/GetHealthSafetyGuidelines?fileName=' + img;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId':userId}\r\n })\r\n }\r\n// http://216.48.179.106:3000//api/v1/channels.list\r\n this.getChannels = function(reqUserId,token){ \r\n\t\tvar url = RocketChatURL + '/api/v1/channels.list';\r\n\t\treturn $http.get(url,{\r\n\t\t\theaders:{\r\n 'Content-Type':'application/json',\r\n 'X-Auth-Token':token, \r\n 'X-User-Id':reqUserId}\r\n\t\t})\r\n\t}\r\n\r\n // http://216.48.179.106:3000/api/v1/groups.list\r\n // https://msg.mymobiforce.com/api/v1/groups.list?offset=0&count=50&sort={\"_updatedAt\":-1}\r\n this.getGroups = function(reqUserId,token,offset,count){ \r\n var sort='{\"_updatedAt\":-1}';\r\n\t\t// var url = RocketChatURL + '/api/v1/groups.list';\r\n var url = RocketChatURL + '/api/v1/groups.list?offset='+offset+'&count='+count+'&sort='+sort;\r\n\t\treturn $http.get(url,{\r\n\t\t\theaders:{\r\n 'Content-Type':'application/json',\r\n 'X-Auth-Token':token, \r\n 'X-User-Id':reqUserId}\r\n\t\t})\r\n\t}\r\n\r\n\t// https://msg.mymobiforce.com/api/v1/subscriptions.get\r\n this.getSubscriptions = function(reqUserId,token){ \r\n\t\tvar url = RocketChatURL + '/api/v1/subscriptions.get';\r\n\t\treturn $http.get(url,{\r\n\t\t\theaders:{\r\n 'Content-Type':'application/json',\r\n 'X-Auth-Token':token, \r\n 'X-User-Id':reqUserId}\r\n\t\t})\r\n\t}\r\n\r\n\r\n\t//https://msg.mymobiforce.com/api/v1/subscriptions.read\r\n\tthis.MarkRoomAsRead = function(reqUserId,token, data){\r\n\t\tvar url = RocketChatURL + '/api/v1/subscriptions.read';\r\n\t\treturn $http.post(url,data,{\r\n\t\t\theaders:{\r\n 'Content-Type':'application/json',\r\n 'X-Auth-Token':token, \r\n 'X-User-Id':reqUserId}\r\n\t\t})\r\n\t}\r\n\r\n\r\n // https://testg2.mymobiforce.com/coreapi/api/CallPatching/ClickToCallContact?ContactNumber=****\r\n\r\n\r\n this.ClickToCallContact = function (contactnumber,reqUserId,token) { \r\n var url = ApiURL+ '/api/CallPatching/ClickToCallContact?ContactNumber=' + contactnumber;\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':reqUserId\r\n \r\n }\r\n });\r\n }\r\n this.GetSearchUserInfoByReqUserId = function (loggedinUser, SearchUser, token){\r\n var url = FreelancerURL + \"/api/FreeLancerUser/\"+SearchUser+\"/GetUserDetails\";\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n\r\n\r\n // http://216.48.179.106:3000/api/v1/rooms.upload/GENERAL\r\n\r\n this.uploadLineItemPic = function(reqUserId,data,rid,token,progressCB, canceler){ \r\n\t\tvar url = RocketChatURL + '/api/v1/rooms.upload/'+rid;\r\n\t\treturn $http.post(url,data,{\r\n\t\t\ttimeout: canceler.promise,\r\n\t\t\theaders:{\r\n 'Content-Type':undefined,\r\n 'X-Auth-Token':token, \r\n 'X-User-Id':reqUserId,\r\n // 'NoAuth':'true'\r\n },\r\n uploadEventHandlers: {\r\n progress: progressCB\r\n }\r\n\t\t})\r\n\t}\r\n\r\n\tthis.GetJobTicket = function (ticketId, token,reqUserId) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + reqUserId + '/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':reqUserId\r\n }\r\n });\r\n }\r\n\r\n\t this.getCustomerJobCardbyJobId = function(accountId, jobId, token ,success, failure){\r\n $http.get(ApiURL+\"/api/GetCustomerJobCardbyJobId/\"+jobId+\"/\"+accountId+\"/GetCustomerJobCardbyJobId\", {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':accountId\r\n }\r\n }).then(function(res){\r\n if(res && res.data && success){\r\n success(res.data);\r\n } else if(failure){\r\n failure();\r\n }\r\n });\r\n }\r\n this.InviteUser = function(reqUserId,token,data){\r\n var url = ApiURL+'/api/User/'+reqUserId+'/'+'UploadUsers';\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n })\r\n }\r\n \r\n this.getTerritoryStates = function (loggedInUser, token,AccountId,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetStateByAccountIdAndRole?AccountId='+ AccountId+ '&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n \r\n //http://localhost:56749/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId=144&State=Uttar%20Pradesh&Role=Administrator\r\n this.getTerritoryCity = function (loggedInUser, token,AccountId,state,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId='+ AccountId+'&State='+state+'&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n})\n'use strict';\r\n\r\nangular.module('inspinia')\r\n .controller('MainController', function ($localStorage,UIURL,infiniteScrollFactory, toaster,ImageUrl, $log, $state,$rootScope, $location, $stateParams,$scope,$uibModal,MainService,RocketChatURL,$interval,$timeout, uuid, $websocket, webSocketFactory, $q) {\r\n //var loggedin = $localStorage.loggedInUserId; \r\n var vm = this;\r\n vm.searchEntity = 'Ticket'\r\n vm.searchText = '';\r\n var promise;\r\n vm.CurrencySetting='';\r\n var reqUserId = '';\r\n vm.sendMessage = '';\r\n vm.firstName = $localStorage.loggedInUser_FirstName;\r\n vm.lastName = $localStorage.loggedInUser_LastName;\r\n vm.companyName = $localStorage.loggedInUser_CompanyName;\r\n vm.role = $localStorage.loggedInUser_Role;\r\n vm.originalRole = $localStorage.loggedInUser_Role;\r\n vm.IsCentralWarehouse = $localStorage.IsCentralWarehouse;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n //vm.OpenRooms = [];\r\n vm.Messages = []; \r\n vm.getGroupsList = [];\r\n $scope.collapse = false;\r\n vm.fileDiscription = '';\r\n vm.UploadProgressBarShow=false;\r\n const rChatMessages = new Map(); \r\n const rUnReadRooms = new Map();\r\n const fNameForNotification = new Map(); \r\n var canceler = $q.defer();\r\n var offset = 1;\r\n var count = 50;\r\n vm.msgCount = 0; \r\n vm.Rockettoken = $localStorage.rocketAuthToken;\r\n vm.RocketUserId = $localStorage.rocketUserId; \r\n vm.msgCount = $localStorage.groupListTotalCount;\r\n vm.loggedin = $localStorage.loggedInUserId; \r\n vm.FirstName = '';\r\n vm.LastName = '';\r\n vm.Gender = '';\r\n vm.ContactNumber = '';\r\n vm.CurrentAdd1 = '';\r\n vm.CurrentAdd2 = '';\r\n vm.CurrentState = '';\r\n vm.CurrentCity = '';\r\n vm.CurrentPincode = '';\r\n vm.SkillSet = '';\r\n vm.skillsetList = ['LED_LCD_Installation_Service',\r\n 'AC_Demo',\r\n 'AC_Installation',\r\n 'AC_Installation_Service',\r\n 'CCTV_PMS',\r\n 'CCTV_Installation',\r\n 'CCTV_Repair_Service',\r\n 'General_Electrician',\r\n 'Refrigerator_Repair_Service',\r\n 'Fan_Services',\r\n 'Geysers_Services'];\r\n vm.GetAccountType = function()\r\n {\r\n return $localStorage.accountConfig.AccountType;\r\n } \r\n \r\n \r\n //var hash = uuid.v4(); \r\n // console.log('vm.VerticalName',vm.VerticalName);\r\n Array.prototype.extend = function (array) {\r\n angular.forEach(array, function (d) {\r\n this.push(d);\r\n }, this);\r\n }\r\n \r\n if (typeof firebase === 'undefined') throw new Error('hosting/init-error: Firebase SDK not detected. You must include it before /__/firebase/init.js');\r\n firebase.initializeApp({\r\n \"projectId\": \"mobiforce-c7ef3\",\r\n \"appId\": \"1:964430764125:web:7a9d4c59706cf7fb\",\r\n \"databaseURL\": \"https://mobiforce-c7ef3.firebaseio.com\",\r\n \"storageBucket\": \"mobiforce-c7ef3.appspot.com\",\r\n \"locationId\": \"asia-east2\",\r\n \"apiKey\": \"AIzaSyDI5PhWhciUKVr-qyunhWNchsVqpxK6UqE\",\r\n \"authDomain\": \"mobiforce-c7ef3.firebaseapp.com\",\r\n \"messagingSenderId\": \"964430764125\"\r\n });\r\n\r\n //GeneralTimeoutFunction\r\n vm.TimeoutFunc = function(time, func){\r\n $timeout(function(){\r\n func;\r\n },time)\r\n }\r\n\r\n vm.GetAccountBalance = function(){\r\n var token = $localStorage.token;\r\n reqUserId = $localStorage.loggedInUserId;\r\n if(reqUserId){\r\n if($localStorage.accountConfig && $localStorage.accountConfig.CurrencySetting){\r\n vm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n }\r\n // vm.CurrencySetting = $localStorage.accountConfig.CurrencySetting?$localStorage.accountConfig.CurrencySetting:'';\r\n if(token != \"\"){\r\n MainService.GetAccountBalance(reqUserId, token).then(function(resp){\r\n vm.AvailableBalance = resp.data;\r\n //$rootscope.AvailableBalance = vm.AvailableBalance;\r\n },function(error){\r\n //$log.log(\"error occured in GetAccountBalance\");\r\n })\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n // Chat Screen Controler Start\r\n\r\n $scope.ShowFirstChat = false;\r\n \r\n $scope.ShowFirstBox = function () {\r\n //If DIV is visible it will be hidden and vice versa.\r\n $scope.ShowFirstChat = true;\r\n }\r\n \r\n $scope.HideFirstBox = function () {\r\n //If DIV is visible it will be hidden and vice versa.\r\n $scope.ShowFirstChat = false;\r\n }\r\n $scope.ShowSecondChat = false;\r\n \r\n $scope.ShowSecondBox = function () {\r\n $scope.ShowSecondChat = true;\r\n }\r\n \r\n \r\n $scope.HideSecondBox = function () {\r\n //If DIV is visible it will be hidden and vice versa.\r\n $scope.ShowSecondChat = false;\r\n }\r\n\r\n$scope.HideImagePreview = function () {\r\n //If DIV is visible it will be hidden and vice versa.\r\n $scope.ImagePreview = false;\r\n}\r\n\r\n$scope.FilePreview= false;\r\n\r\n$scope.ShowFilePreview = function () {\r\n $scope.FilePreview = true;\r\n\r\n }\r\n\r\n $scope.HideFilePreview = function () {\r\n $scope.FilePreview = false;\r\n }\r\n\r\n $scope.ShowRecorder = function()\r\n {\r\n $scope.Recorder = true;\r\n }\r\n\r\n $scope.HideRecorder =function()\r\n {\r\n $scope.Recorder = false;\r\n }\r\n lightbox.option({\r\n 'resizeDuration': 100,\r\n 'wrapAround': true,\r\n 'showImageNumberLabel':true,\r\n 'thumbnail':true,\r\n 'fitImagesInViewport':false\r\n \r\n \r\n })\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n\t\r\n vm.SendMessageToRoom = function (event,message) { \r\n if (event.keyCode == '13' && message != '') {\r\n webSocketFactory.SendMessageToRoom(roomId, message); \r\n $timeout(function () {\r\n vm.sendMessage = '';\r\n },50);\r\n }\r\n }\r\n vm.SendTextToRoom = function (message) {\r\n if (message != '') {\r\n webSocketFactory.SendMessageToRoom(roomId,message); \r\n $timeout(function () {\r\n vm.sendMessage = '';\r\n },50);\r\n }\r\n} \r\n vm.LoadRoomMessages = function (group) { \r\n vm.TicketId = group.fname;\r\n vm.groupDetails= group; \r\n /*var roomId = group._id;\r\n if(!rChatMessages.has(roomId)){\r\n webSocketFactory.LoadHistoryOfRoom(group);\r\n //webSocketFactory.ReadytoSubscribeRoomMessages(group);\r\n } \r\n else{\r\n vm.Messages = rChatMessages.get(roomId); \r\n $timeout(function () {\r\n var element = angular.element('#chatList');\r\n element.scrollTop(element[0].scrollHeight);\r\n });\r\n }*/\r\n webSocketFactory.LoadHistoryOfRoom(group);\r\n vm.MarkRoomAsRead(group);\r\n vm.getTicketByJobId(vm.TicketId);\r\n }\r\n\r\n\r\n\r\n\r\nfunction onGetGroups (getGroupsList) { \r\n vm.getGroupsList = []; \r\n vm.getGroupsList = getGroupsList.slice();\r\n}\r\n\r\n/*vm.loadChatUI = function (event,message) { \r\n $scope.infiniteScrollFactoryInst.showChatWindow(); \r\n}\r\n\r\nvm.loadChatNextPage = function () { \r\n $scope.infiniteScrollFactoryInst.nextPage();\r\n}*/\r\n\r\nfunction onSocketMessage (msgtype, roomId, messages) { \r\n var msgList = [];\r\n console.log(messages);\r\n // if this is load history message \r\n if(msgtype == 0 ){\r\n if(rChatMessages.has(roomId)){\r\n rChatMessages.delete(roomId);\r\n } \r\n angular.forEach(messages, function(message){\r\n msgList.push(message);\r\n });\r\n rChatMessages.set(roomId, msgList);\r\n vm.Messages = msgList;\r\n }\r\n else if (msgtype == 1){ // if this is new message for the current opened room, process it otherwise leave it.\r\n if(vm.groupDetails._id == roomId){\r\n msgList = rChatMessages.get(roomId);\r\n if(msgList == undefined) {\r\n var msgList = vm.Messages;\r\n angular.forEach(messages, function(message){\r\n msgList.push(message);\r\n });\r\n vm.Messages = msgList; \r\n }\r\n else {\r\n angular.forEach(messages, function(message){\r\n msgList.push(message);\r\n });\r\n vm.Messages = msgList; \r\n }\r\n \r\n } \r\n else {\r\n angular.forEach(vm.getGroupsList, function(message){\r\n var roomInfo = message;\r\n if(message._id == roomId){\r\n roomInfo.unread +=1;\r\n }\r\n else{\r\n roomInfo.unread;\r\n }\r\n });\r\n } \r\n \r\n } \r\n \r\n vm.messageLength = vm.Messages.length;\r\n $timeout(function () {\r\n var element = angular.element('#chatList');\r\n element.scrollTop(element[0].scrollHeight);\r\n });\r\n}\r\n\r\nvm.initiateScroll = function () {\r\n $scope.infiniteScrollFactoryInst = infiniteScrollFactory;\r\n $scope.infiniteScrollFactoryInst.initiateScroll(onGetGroups);\r\n }\r\n\r\n\r\n vm.initiateWSConnection = function () {\r\n webSocketFactory.initiateWS(onSocketMessage);\r\n vm.initiateScroll();\r\n }\r\n\r\n\r\n \r\n\r\n\r\n //get channel list\r\n vm.getChannels = function(){ \r\n var reqUserId = vm.RocketUserId;\r\n var token = vm.Rockettoken;\r\n MainService.getChannels(reqUserId,token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.getChannelList = resp.data; \r\n }\r\n })\r\n }\r\n\r\n\r\n \r\n\r\n\r\n\r\n function getGroups (msgtype) { \r\n var reqUserId = vm.RocketUserId;\r\n var token = vm.Rockettoken;\r\n MainService.getGroups(reqUserId,token,offset,count).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.getGroupsList = []; \r\n // vm.groupListTotalCount = resp.data.total;\r\n // $localStorage.fNameNotification = fNameForNotification.set(vm.getGroupsList);\r\n $localStorage.fNameNotification = vm.getGroupsList;\r\n angular.forEach(resp.data.groups, function(message){\r\n var roomInfo = message;\r\n if(rUnReadRooms.has(message.fname)){\r\n roomInfo.unread = rUnReadRooms.get(message.fname);\r\n }\r\n else{\r\n roomInfo.unread = 0;\r\n }\r\n if(message.lm){\r\n //console.log(lmdate);\r\n var lmdate = moment(message.lm);\r\n var today = moment();\r\n var diff = lmdate.diff(today, 'days', true);\r\n var retVal = diff < -6 ? 'sameElse' : diff < -2 ? 'lastWeek' : diff < -1 ? 'lastDay' : diff < 0 ? 'sameDay' :'sameElse';\r\n if(retVal == 'sameElse'){ \r\n roomInfo.lmDateTime = lmdate.format(\"DD-MM-YYYY\");\r\n }\r\n else if (retVal == 'lastWeek'){\r\n roomInfo.lmDateTime = lmdate.format(\"dddd\");\r\n }\r\n else if (retVal == 'lastDay'){\r\n roomInfo.lmDateTime = \"yesterday\";\r\n }\r\n else if (retVal == 'sameDay'){\r\n roomInfo.lmDateTime = lmdate.format(\"h:mm A\");\r\n }\r\n\r\n //console.log(lmdate + ' ' + retVal) ;\r\n console.log('room name:' + roomInfo.fname + 'room id:' + roomInfo._id) ;\r\n }\r\n \r\n vm.getGroupsList.push(roomInfo);\r\n });\r\n\r\n }\r\n })\r\n vm.getChannels();\r\n }\r\n\r\n vm.MarkRoomAsRead = function(group){\r\n var reqUserId = vm.RocketUserId;\r\n var token = vm.Rockettoken;\r\n vm.RoomIdMarkAsRead = group._id;\r\n var data = {\r\n \"rid\": vm.RoomIdMarkAsRead\r\n }\r\n MainService.MarkRoomAsRead(reqUserId,token,data).then(function(resp){\r\n if (resp && resp.data.success) {\r\n angular.forEach(vm.getGroupsList, function(group){\r\n if(group._id == vm.RoomIdMarkAsRead ){\r\n group.unread = 0;\r\n } \r\n });\r\n }\r\n })\r\n }\r\n \r\n\r\n vm.changeFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n\r\n vm.ShowImagePreview = function (elem, index) { \r\n var index = (angular.element(elem).attr(\"data-index\")); \r\n vm.file = elem.files[0];\r\n vm.imageSrc = URL.createObjectURL( vm.file);\r\n if (vm.file.type == \"application/pdf\" || vm.file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"|| vm.file.type == \"application/vnd.ms-excel\"|| vm.file.type == \"application/vnd.android.package-archive\" || vm.file.type.indexOf(\"image/jpg\") >= 0 || vm.file.type.indexOf(\"image/png\") >= 0 || vm.file.type.indexOf(\"video/mp4\") >= 0 || vm.file.type.indexOf(\"audio/mpeg\") >= 0 || vm.file.type.indexOf(\"audio/wav\") >= 0 || vm.file.type.indexOf(\"audio/mp3\") >= 0\r\n || vm.file.type.indexOf(\"image/bmp\") >= 0 || vm.file.type.indexOf(\"image/jpeg\") >= 0|| vm.file.type.indexOf(\"audio/wav\") >= 0) {\r\n vm.filePathTemp = elem.value;\r\n vm.fileNameTemp = vm.file.name;\r\n vm.fileOrgSize = vm.bytesToSize(vm.file.size);\r\n // var URL = elem.target.result; \r\n } else {\r\n vm.showFailure(\"Failed\", \"You can upload image,video, pdf or word document only\");\r\n }\r\n vm.AttachmentModel = $uibModal.open({\r\n templateUrl: 'Attachment.html',\r\n scope: $scope,\r\n });\r\n }\r\n \r\n vm.CloseAttachmentModel = function () {\r\n vm.AttachmentModel.close();\r\n }\r\n \r\n\r\n \r\n vm.bytesToSize = function (bytes) {\r\n var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\r\n if (bytes == 0) return '0 Byte';\r\n var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));\r\n return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i];\r\n }\r\n\r\n\r\n vm.ShowUploadProgressBar = function(show){\r\n vm.UploadProgressBarShow=show;\r\n }\r\n\r\n vm.cancelUploadRequest = function () {\r\n canceler.resolve();\r\n vm.ShowUploadProgressBar(false);\r\n }\r\n\r\n vm.uploadLineItemFile = function () {\r\n var data = new FormData();\r\n data.append(\"msg\",vm.fileDiscription);\r\n data.append(\"description\",vm.fileNameTemp);\r\n data.append(\"file\", vm.file);\r\n vm.CloseAttachmentModel();\r\n canceler.resolve();\r\n canceler = $q.defer();\r\n vm.ShowUploadProgressBar(true);\r\n MainService.uploadLineItemPic(vm.RocketUserId, data,vm.groupDetails._id, vm.Rockettoken,vm.uploadProgress, canceler).then(function(resp){\r\n console.log(\"success\");\r\n vm.ShowUploadProgressBar(false);\r\n vm.fileDiscription= '';\r\n vm.fileNameTemp = '';\r\n });\r\n }\r\n\r\n\r\n vm.uploadProgress = function (e) {\r\n if (e.lengthComputable) {\r\n $scope.dynamic = Math.floor((e.loaded / e.total) * 100);\r\n console.log('upload proress:' + $scope.dynamic);\r\n }\r\n }\r\n\r\n vm.getTicketByJobId = function () {\t\t\t\r\n MainService.GetJobTicket(vm.TicketId, $localStorage.token,reqUserId).then(function (resp) {\r\n vm.TicketInfo = resp.data;\r\n if(vm.TicketInfo.ConsumerContact){\r\n vm.TicketInfo.ConsumerContact=vm.TicketInfo.ConsumerContact.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n });\r\n vm.getTracking();\r\n }\r\n\r\n\r\n // vm.customergetTracking = function () { \r\n // customerinitMap();\r\n // }\r\n\r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/JOb_icon.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/delivery-man1.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n\r\n\r\n vm.getTracking = function () { \r\n\r\n if (vm.TicketInfo.TicketStatus == 'New' || vm.TicketInfo.TicketStatus == 'Hold' || vm.TicketInfo.TicketStatus == 'Broadcasted' || vm.TicketInfo.TicketStatus == 'ReadyToAssign') {\r\n vm.superPower = true;\r\n ShowJobOnMap();\r\n \r\n }\r\n else {\r\n if( (vm.TicketInfo.TicketStatus == 'Assigned'|| vm.TicketInfo.TicketStatus == 'Rejected' || vm.TicketInfo.TicketStatus == 'Approved' || vm.TicketInfo.TicketStatus == 'Completed' ) && vm.TicketInfo.UserId){\r\n vm.showMapPermision = true;\r\n vm.superPower = true;\r\n }else{\r\n vm.showMapPermision = false;\r\n }\r\n vm.getCustomerJobCard();\r\n }\r\n \r\n }\r\n\r\n vm.getCustomerJobCard = function () {\r\n MainService.getCustomerJobCardbyJobId(reqUserId, vm.TicketId, $localStorage.token, function (data) {\r\n vm.JobLatitude = data.JobLatitude;\r\n vm.JobLongitude = data.JobLongitude;\r\n vm.FELatitude = data.FELatitude;\r\n vm.FELongitude = data.FELongitude;\r\n vm.contactnumber = data.FEContactNumber;\r\n vm.jobtype = data.Description;\r\n vm.name = data.FEName;\r\n \r\n \r\n // $log.log(\"res of getCustomerJobCard=\" + data);\r\n vm.customerJobCard = data;\r\n if ($localStorage.rateJobParams) {\r\n vm.customerJobCard.userRole = $localStorage.Role;\r\n vm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n vm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n delete $localStorage.rateJobParams;\r\n }\r\n if (data && data.JobStatus == 'PaymentDone') {\r\n \r\n }\r\n \r\n initMap();\r\n }, function () {\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n \r\n vm.ClickToCallContact = function(){\r\n vm.SearchUserinfo(vm.ContactNumber);\r\n MainService.ClickToCallContact(vm.ContactNumber, $localStorage.loggedInUserId, $localStorage.token).then(function(resp){\r\n vm.SearchUserinfo(vm.ContactNumber);\r\n if(resp.status == '200'){\r\n vm.showSuccess('Success', \"Call initiated successfully\");\r\n }\r\n else{\r\n vm.showFailure('Failed', \"Server Not Responding\");\r\n }\r\n })\r\n }\r\n\r\n vm.SearchUserInfoList ={};\r\n vm.searchUserStatus = false;\r\n vm.SearchUserinfo = function (UserContactNumber) {\t\r\n MainService.GetSearchUserInfoByReqUserId($localStorage.loggedInUserId, UserContactNumber, $localStorage.token).then(function (resp) {\r\n if(resp.status==206){\t\t\t\r\n vm.showFailure('Failed', resp.data.Message);\r\n vm.SearchUserInfoList =\"\";\t\r\n }\t\t\r\n else {\r\n vm.SearchUserInfoList = resp.data;\r\n vm.searchUserStatus = false;\r\n }\r\n \t\t\t\t\t\t\t\t\r\n });\r\n }\r\n vm.clearData = function() {\r\n vm.FirstName = '';\r\n vm.LastName = '';\r\n vm.Gender = '';\r\n vm.ContactNumber = '';\r\n vm.CurrentAdd1 = '';\r\n vm.CurrentAdd2 = '';\r\n vm.CurrentState = '';\r\n vm.CurrentCity = '';\r\n vm.CurrentPincode = '';\r\n vm.SkillSet = '';\r\n }\r\n vm.InviteUser = function () {\r\n vm.sendData = [\r\n {\r\n \"FirstName\": vm.FirstName,\r\n \"LastName\": vm.LastName,\r\n \"Gender\": \"Male\",\r\n \"ContactNumber\": vm.ContactNumber,\r\n \"CurrentAdd1\": vm.CurrentAdd1,\r\n \"CurrentAdd2\": vm.CurrentAdd2,\r\n \"CurrentState\": vm.CurrentState,\r\n \"CurrentCity\": vm.CurrentCity,\r\n \"CurrentPincode\": vm.CurrentPincode,\r\n \"SkillSet\": vm.SkillSet,\r\n }\r\n ];\t\t\t\r\n MainService.InviteUser($localStorage.loggedInUserId,$localStorage.token,vm.sendData).then(function (resp) {\r\n if(resp) {\r\n vm.showSuccess('Success', \"Invite send successfully\");\r\n vm.clearData();\r\n }\r\n else {\r\n vm.showFailure('Failed', resp.data.Message);\r\n vm.clearData();\r\n }\r\n });\r\n }\r\n\r\n vm.territoryStates = function () {\r\n vm.AccountIDforTerritory = $localStorage.accountConfig.AccountId;\r\n MainService.getTerritoryStates($localStorage.loggedInUserId, $localStorage.token,vm.AccountIDforTerritory,vm.role).then(function(resp) {\r\n vm.stateListTerritory = resp.data;\r\n if(resp.status == 200) {\r\n // vm.territoryCity();\r\n }\r\n })\r\n }\r\n \r\n \r\n vm.selectedStateForTerritory = function (state) {\r\n vm.territoryCity(state,vm.AccountIDforTerritory);\r\n }\r\n vm.territoryCity = function (state,AccountId) {\r\n vm.StateForTerritoryCity = state;\r\n MainService.getTerritoryCity($localStorage.loggedInUserId, $localStorage.token,$localStorage.accountConfig.AccountId,state,vm.role).then(function(resp) {\r\n vm.cityListTerritory = resp.data;\r\n if(resp.status == 200) {\r\n \r\n \r\n }\r\n })\r\n }\r\n \r\n function ShowJobOnMap() {\r\n var pointA = new google.maps.LatLng(vm.TicketInfo.Latitude, vm.TicketInfo.Longitude);\r\n //var myLatlng = new google.maps.LatLng(-25.363882,131.044922);\r\n var mapOptions = {\r\n zoom: 15,\r\n scaleControl: true,\r\n gestureHandling: 'greedy',\r\n mapTypeId: google.maps.MapTypeId.ROADMAP,\r\n center: pointA\r\n }\r\n var map = new google.maps.Map(document.getElementById(\"map-canvas\"), mapOptions);\r\n \r\n var marker = new google.maps.Marker({\r\n position: pointA,\r\n icon: icons.start\r\n });\r\n \r\n $scope.InfoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n \r\n var ticketinformation = vm.TicketInfo;\r\n \r\n //Adding InfoWindow to the Marker.\r\n (function (marker, ticketinformation) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.TicketInfo.ConsumerName + \"

\" + ' ' + vm.TicketInfo.ConsumerContact);\r\n $scope.InfoWindow.open(map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(map, marker);\r\n });\r\n })(marker, ticketinformation);\r\n \r\n // To add the marker to the map, call setMap();\r\n marker.setMap(map);\r\n \r\n }\r\n\r\n\r\n function initMap() {\r\n var pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n pointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n // center = new google.maps.LatLng(51.3, 0.8),\r\n myOptions = {\r\n zoom: 8,\r\n zoomControl: false,\r\n scaleControl: true,\r\n mapTypeControl: false,\r\n streetViewControl: false,\r\n gestureHandling: 'greedy',\r\n // center: center,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n },\r\n \r\n map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n // Instantiate a directions service.\r\n directionsService = new google.maps.DirectionsService,\r\n directionsDisplay = new google.maps.DirectionsRenderer({\r\n map: map\r\n }),\r\n duration = document.getElementById('duration');\r\n var distance = document.getElementById('distance');\r\n var flightPath = new google.maps.Polyline({\r\n path: [pointA, pointB],\r\n // geodesic: true,\r\n strokeColor: 'red',\r\n });\r\n $scope.InfoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n // click on marker B to get route from A to B\r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n var travelMode = \"DRIVING\";\r\n var icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n }\r\n\r\n function calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map) {\r\n var selectedMode = \"DRIVING\";\r\n directionsService.route({\r\n origin: pointA,\r\n destination: pointB,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n travelMode: google.maps.TravelMode[selectedMode]\r\n }, function (response, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n new google.maps.DirectionsRenderer({\r\n map: map,\r\n directions: response,\r\n suppressMarkers: true,\r\n polylineOptions: {\r\n strokeColor: \"#000000\"\r\n }\r\n });\r\n var leg = response.routes[0].legs[0];\r\n //outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n distance.innerHTML = response.routes[0].legs[0].distance.text;\r\n duration.innerHTML = response.routes[0].legs[0].duration.text;\r\n vm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n vm.makeJobMarker(leg.start_location, icons.start, map);\r\n vm.makeUserMarker(leg.end_location, icons.end, map);\r\n } else {\r\n window.alert('Directions request failed due to ' + status);\r\n }\r\n });\r\n }\r\n\r\n vm.makeUserMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.name + \"

\");\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n \r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n \r\n }\r\n \r\n vm.makeJobMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.customerJobCard.ConsumerName + \"

\" + ' ' + vm.customerJobCard.JobId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.customerJobCard.ConsumerContact);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n \r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n }\r\n // Rocket chat connection end\r\n\r\n\r\n \r\n\r\n vm.SelectSearchEntity = function(entity){\r\n if (entity == 'Ticket') {\r\n vm.placeholderText = \"Please Enter \"+entity+ \" Id...\"\r\n\r\n }else if (entity == 'Customer') {\r\n \r\n vm.placeholderText = \"Please Enter \"+entity+ \" Id...\"\r\n }else if(entity == 'Team'){\r\n \r\n vm.placeholderText = \"Please Enter \"+entity+ \" Id...\"\r\n }\r\n }\r\n\r\n vm.SearchEntityPage = function(){\r\n if (vm.search_form.$valid) {\r\n if (vm.searchEntity == 'Ticket') {\r\n if ((vm.searchText.length==11 || vm.searchText.length==13) && vm.searchText.startsWith(\"T\")) {\r\n vm.showError='';\r\n $state.go('index.JobView', {\r\n ticketId: vm.searchText,\r\n type:'global'\r\n }, {\r\n reload: true\r\n });\r\n vm.CloseSearchModal();\r\n }else if(vm.searchText.length==12 && vm.searchText.startsWith(\"O\")){\r\n vm.showError='';\r\n $state.go('index.JobView', {\r\n ticketId: vm.searchText,\r\n type:'global'\r\n }, {\r\n reload: true\r\n });\r\n vm.CloseSearchModal();\r\n }else{\r\n vm.showFailure('Failed','Please use correct format');\r\n }\r\n }else if (vm.searchEntity == 'Customer') {\r\n if (vm.searchText.length==11 && vm.searchText.startsWith(\"C\")) {\r\n vm.showError='';\r\n $state.go('index.Customer_Detail_View', {\r\n customerId: vm.searchText\r\n }, {\r\n reload: true\r\n });\r\n vm.CloseSearchModal();\r\n }else{\r\n vm.showFailure('Failed','Please use correct format');\r\n }\r\n }else if (vm.searchEntity == 'Team') {\r\n if (vm.searchText.length==13 && vm.searchText.startsWith(\"U\")) {\r\n vm.showError='';\r\n $state.go('index.TeamProfile', {\r\n userId: vm.searchText\r\n }, {\r\n reload: true\r\n });\r\n vm.CloseSearchModal(); \r\n }else{\r\n vm.showFailure('Failed','Please use correct format');\r\n }\r\n }\r\n }else{\r\n vm.search_form.submitted = true;\r\n }\r\n }\r\n\r\n // vm.VerticalName = $localStorage.\r\n vm.getAccountConfigSetting = function(name){\r\n return ($localStorage.accountConfig && $localStorage.accountConfig[name]!=null) ? $localStorage.accountConfig[name] : null; \r\n }\r\n \r\n vm.AccountStartDate = function(){\r\n var stringDate = vm.getAccountConfigSetting(\"AccountCreationDate\");\r\n var momentDate = moment(stringDate).format(\"YYYY-MM-DD\");\r\n //$log.log('momentDate',momentDate);\r\n return momentDate;\r\n }\r\n vm.MenuListModel = function()\r\n {\r\n return $localStorage.accountConfig.MenuListModel;\r\n }\r\n\r\n // vm.homeScreenNotifications = function(){\r\n // var sDate = vm.AccountStartDate();\r\n // var eDate = moment().format(\"YYYY-MM-DD\");\r\n // var reqUserId = $localStorage.loggedInUserId;\r\n // var token = $localStorage.token;\r\n // if(token && sDate != 'Invalid date')\r\n // { \r\n // MainService.GetAlertNotificationWithDateRange(reqUserId,eDate,eDate,token).then(function(resp){\r\n // if (resp && resp.data) {\r\n // vm.AllNotifications = [];\r\n // vm.NotificationCounts = 0;\r\n // angular.forEach(resp.data, function(d){\r\n // if (d) {\r\n // var dt1 = new Date(d.CreatedOn);\r\n // var dt2 = new Date();\r\n // d.diffTime = (dt2 - dt1);\r\n // var DayDuration = Math.floor(d.diffTime / 86400000);\r\n // var HrsDuration = Math.floor((d.diffTime % 86400000) / 3600000);\r\n // var MinsDuration = Math.round(((d.diffTime % 86400000) % 3600000) / 60000);\r\n // if(DayDuration == 1){\r\n // d.diffTime = DayDuration+\" day, \"+HrsDuration+\" hrs, \"+MinsDuration+\" mins ago\";\r\n // } else if(DayDuration > 1){\r\n // d.diffTime = DayDuration+\" days, \"+HrsDuration+\" hrs, \"+MinsDuration+\" mins ago\";\r\n // } else if(MinsDuration == 0 && HrsDuration == 0){\r\n // d.diffTime = \"Just now\";\r\n // } else if(HrsDuration == 0){\r\n // d.diffTime = MinsDuration+\" mins ago\";\r\n // } else if(HrsDuration == 1){\r\n // d.diffTime = HrsDuration+\" hr, \"+MinsDuration+\" mins ago\";\r\n // } else {\r\n // d.diffTime = HrsDuration+\" hrs, \"+MinsDuration+\" mins ago\";\r\n // }\r\n // d.CreatedOn = dt1;\r\n // vm.AllNotifications.push(d);\r\n // if (!d.AlertTextRead) {\r\n // vm.NotificationCounts++;\r\n // }\r\n // }\r\n // })\r\n // }\r\n // })\r\n // }\r\n // else\r\n // {\r\n // console.log(\"GetAlertNotificationWithDateRange token \" + token + \" start date \" + sDate);\r\n // }\r\n // }\r\n // vm.homeScreenNotifications();\r\n\r\n vm.OpenSearchModal = function(){\r\n vm.searchText = '';\r\n vm.showError = '';\r\n vm.SearchmodalInstance = $uibModal.open({\r\n templateUrl: 'search-modal',\r\n backdrop: 'static',\r\n windowClass:'my-modal',\r\n scope: $scope\r\n }); \r\n }\r\n\r\n vm.CloseSearchModal = function(){\r\n vm.SearchmodalInstance.close();\r\n }\r\n\r\n vm.confirmTagModal = function(message, callback) { \r\n vm.abstractConfirmModal(\"Confirm\", message, \"Confirm\", callback);\r\n }\r\n\r\n \r\n vm.abstractConfirmModal = function(title, msg, success_label, callback){\r\n $scope.confirm_modal={};\r\n $scope.confirm_modal.title=title;\r\n $scope.confirm_modal.msg=msg;\r\n $scope.confirm_modal.success_label=success_label;\r\n vm.modalInstance = $uibModal.open({\r\n templateUrl: 'confirmation-modal',\r\n backdrop: true,\r\n scope: $scope\r\n });\r\n vm.confirmCallback=callback;\r\n }\r\n \r\n vm.closeConfirmModal = function() {\r\n vm.modalInstance.close();\r\n }\r\n\r\n vm.delete_action = function() {\r\n // vm.delete_value = true;\r\n // return vm.delete_value;\r\n if(vm.confirmCallback){\r\n vm.confirmCallback(); \r\n }\r\n vm.closeConfirmModal();\r\n }\r\n\r\n\r\n vm.getDashboardName = function (dashboardName) {\r\n \r\n if($localStorage.accountConfig && $localStorage.accountConfig.DashboardListModel \r\n && $localStorage.accountConfig.DashboardListModel.length>0){\r\n for(var i=0; i <$localStorage.accountConfig.DashboardListModel.length; i++){\r\n if($localStorage.accountConfig.DashboardListModel[i].DashboardType == dashboardName){\r\n return $localStorage.accountConfig.DashboardListModel[i].DashboardName;\r\n }\r\n }\r\n }\r\n return dashboardName;\r\n }\r\n\r\n vm.StartPromise = function(){\r\n vm.StopPromise();\r\n promise = $interval(vm.homeScreenNotifications, 300000);\r\n }\r\n \r\n vm.StopPromise = function(){\r\n $interval.cancel(promise);\r\n promise = undefined;\r\n } \r\n\r\n // if(vm.role!='Field engineer' || vm.role!='Field Engineer' ){\r\n // vm.GetAccountBalance();\r\n // }\r\n vm.UpdateMain = function (param) {\r\n vm.userName = 'Example user';\r\n vm.helloText = 'Welcome in INSPINIA Gulp SeedProject';\r\n vm.descriptionText = 'It is an application skeleton for a typical AngularJS web app. You can use it to quickly bootstrap your angular webapp projects.';\r\n vm.firstName = $localStorage.loggedInUser_FirstName;\r\n vm.lastName = $localStorage.loggedInUser_LastName;\r\n vm.companyName = $localStorage.loggedInUser_CompanyName;\r\n vm.role = $localStorage.loggedInUser_Role;\r\n vm.originalRole = $localStorage.loggedInUser_Role;\r\n vm.Region = $localStorage.loggedInUser_Region;\r\n vm.IsCentralWarehouse = $localStorage.IsCentralWarehouse;\r\n vm.Skill = $localStorage.loggedInUser_SkillSet;\r\n vm.loggedinAs = $localStorage.loggedinAs;\r\n vm.Rockettoken = $localStorage.rocketAuthToken;\r\n vm.RocketUserId = $localStorage.rocketUserId;\r\n vm.loggedin = $localStorage.loggedInUserId; \r\n vm.msgCount = $localStorage.groupListTotalCount; \r\n if (vm.firstName) {\r\n vm.firstName = vm.firstName.charAt(0).toUpperCase() + vm.firstName.slice(1).toLowerCase();\r\n } if (vm.lastName) {\r\n vm.lastName = vm.lastName.charAt(0).toUpperCase() + vm.lastName.slice(1).toLowerCase();\r\n } if (vm.role) {\r\n vm.role = vm.role.charAt(0).toUpperCase() + vm.role.slice(1).toLowerCase();\r\n }\r\n if (param!='Logout') {\r\n if(vm.role!='Administrator'){\r\n vm.StartPromise();\r\n }\r\n\r\n if($localStorage.ws){\r\n vm.initiateWSConnection(); \r\n } \r\n }\r\n // if(vm.role!='Field engineer'){\r\n // vm.GetAccountBalance();\r\n // }\r\n }\r\n // vm.UpdateMain();\r\n if($localStorage.ws){\r\n vm.initiateWSConnection(); \r\n }\r\n \r\n // if (vm.role!='Administrator') {\r\n // vm.StartPromise();\r\n // }\r\n\r\n vm.toaster_data = {\r\n showCloseButton: true,\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 5000,\r\n \"allowHtml\": true,\r\n positionClass: 'toast-top-full-width'\r\n };\r\n\r\n vm.toaster_info = {};\r\n angular.copy(vm.toaster_data, vm.toaster_info);\r\n vm.toaster_info.type = \"info\";\r\n vm.toaster_info.title = \"Info\";\r\n\r\n vm.toaster_success = {};\r\n angular.copy(vm.toaster_data, vm.toaster_success);\r\n vm.toaster_success.type = \"success\";\r\n vm.toaster_success.title = \"Success\";\r\n\r\n vm.toaster_fail = {};\r\n angular.copy(vm.toaster_data, vm.toaster_fail);\r\n vm.toaster_fail.type = \"error\";\r\n vm.toaster_fail.title = \"Failed\";\r\n\r\n vm.showSuccess = function (title, body) {\r\n if (title) {\r\n vm.toaster_success.title = title;\r\n } if (body) {\r\n vm.toaster_success.body = body;\r\n }\r\n toaster.pop(vm.toaster_success);\r\n }\r\n\r\n vm.showFailure = function (title, body) {\r\n if (title) {\r\n vm.toaster_fail.title = title;\r\n } if (body) {\r\n vm.toaster_fail.body = body;\r\n }\r\n toaster.pop(vm.toaster_fail);\r\n }\r\n\r\n vm.showInfo = function (title, body) {\r\n if (title) {\r\n vm.toaster_info.title = title;\r\n } if (body) {\r\n vm.toaster_info.body = body;\r\n }\r\n toaster.pop(vm.toaster_info);\r\n }\r\n\r\n $rootScope.$on('$stateChangeSuccess', function (ev, to, toParams, from, fromParams) {\r\n \r\n if (from.name && (to.name != from.name)) { \r\n $localStorage.prevState = {'state':from,'params':fromParams}; \r\n }\r\n }); \r\n\r\n vm.UserLogOut = function () {\r\n // $localStorage={};\r\n var reqUserId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n $localStorage.consumerContact = \"\";\r\n MainService.LogOut(reqUserId, token).then(function(resp) {\r\n console.log(\"Logout success\");\r\n }, function(error) {\r\n console.log(\"Logout failed\",error);\r\n });\r\n\r\n webSocketFactory.closeWS();\r\n console.log(\"socket closed\");\r\n if($localStorage.loggedInUser_Role == 'RetailStore'){\r\n // $localStorage.loggedInUserToken = '';\r\n // $localStorage.loggedInUserId = '';\r\n // $localStorage.loggedInUser_FirstName = '';\r\n // $localStorage.loggedInUser_LastName = '';\r\n // $localStorage.ContactNumber = '';\r\n // $localStorage.loggedInUser_CompanyName = '';\r\n // $localStorage.loggedInUser_Role = '';\r\n localStorage.clear();\r\n // vm.UpdateMain('Logout');\r\n vm.StopPromise();\r\n $state.go(\"ConsumerLogin\", {\r\n reload: true\r\n });\r\n }\r\n else if($localStorage.loggedInUser_Role != 'RetailStore'){\r\n localStorage.clear();\r\n // $localStorage.loggedInUserToken = '';\r\n // $localStorage.loggedInUserId = '';\r\n // $localStorage.loggedInUser_Region = '';\r\n // $localStorage.loggedInUser_FirstName = '';\r\n // $localStorage.loggedInUser_LastName = '';\r\n // $localStorage.loggedInUser_CompanyName = '';\r\n // $localStorage.ContactNumber = '';\r\n // $localStorage.Gender = '';\r\n // $localStorage.PersonalEmail = '';\r\n // $localStorage.DOB = '';\r\n // $localStorage.FatherName = '';\r\n // $localStorage.UserStatus = '';\r\n // $localStorage.loggedInUser_Role = '';\r\n // $localStorage.loggedInUser_CompanyName = '';\r\n // $localStorage.loggedInUser_Password = '';\r\n // $localStorage.loggedInUser_VendorId = '';\r\n // $localStorage.loggedinAs = '';\r\n // $localStorage.token = '';\r\n // $localStorage.accountConfig = '';\r\n // $localStorage.picture = '';\r\n // $localStorage.loggedInUser_ReportingTo = '';\r\n // $localStorage.SDate = '';\r\n // $localStorage.EDate = '';\r\n // $localStorage.AllJobType = '';\r\n // $localStorage.AllJobStatus = '';\r\n // $localStorage.TicketFilterModel = '';\r\n \r\n // vm.CurrencySetting = '';\r\n // $localStorage.PageIndex ='';\r\n // $localStorage.prevState = {};\r\n // $localStorage.VendorPageIndex ='';\r\n // $localStorage.TechnicianDetailsView='';\r\n // $localStorage.VendorDetailsView='';\r\n // $localStorage.selectedFreelancerUserRole='';\r\n // $rootScope.rootScopeMessage = '';\r\n vm.UpdateMain('Logout');\r\n vm.StopPromise();\r\n $state.go(\"Login\", {\r\n reload: true\r\n });\r\n }\r\n \r\n }\r\n\r\n vm.displayDateTime = function (d1) {\r\n var d = new Date(d1);\r\n var date = d.getDate() < 10 ? \"0\" + d.getDate() : d.getDate();\r\n var month = d.getMonth() + 1;\r\n month = month < 10 ? \"0\" + month : month;\r\n var hour = d.getHours();\r\n var AM_PM = hour < 12 ? \"AM\" : \"PM\";\r\n hour = hour > 11 ? hour - 12 : hour;\r\n hour = hour < 10 ? \"0\" + hour : hour;\r\n var min = d.getMinutes() < 10 ? \"0\" + d.getMinutes() : d.getMinutes();\r\n return date + \"/\" + month + \"/\" + d.getFullYear() + \" \" + hour + \":\" + d.getMinutes() + \" \" + AM_PM;\r\n }\r\n\r\n vm.implementSelectItems = function (itemList, scope) {\r\n scope.selectAll = false;\r\n scope.showMinus = false;\r\n scope.selectRow = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.showMinus = false;\r\n scope.selectAll = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n // //$log.log(d);\r\n if (d.checked) {\r\n scope.showMinus = true;\r\n }\r\n });\r\n }\r\n scope.applyAllSelect = function () {\r\n //$log.log(\"applyAllSelect called\");\r\n angular.forEach(scope[itemList], function (d) {\r\n // //$log.log(d);\r\n d.checked = scope.selectAll;\r\n });\r\n }\r\n }\r\n\r\n vm.round2Decimal = function (no) { \r\n return Math.round(no * 100) / 100; \r\n // if (no>1000) {\r\n // return (no / 1000).toFixed(1).replace(/\\.0$/, '') + 'K';\r\n // }else{\r\n\r\n // return Math.round(no * 100) / 100; \r\n // }\r\n }\r\n\r\n vm.convertNo = function(no){\r\n if (no<1000) {\r\n return Math.round(no * 100) / 100;\r\n }\r\n else if (no>1000 && no<99999) {\r\n return (no / 1000).toFixed(1).replace(/\\.0$/, '') + 'K';\r\n }else if (no>99999 && no<9999999){\r\n return (no / 100000).toFixed(1).replace(/\\.0$/, '') + 'L';\r\n }\r\n }\r\n\r\n vm.roundNDecimal = function(no, N){\r\n var n = Math.pow(10, N);\r\n return Math.round(no * n) / n;\r\n }\r\n\r\n vm.floatToInt = function(no){\r\n return parseInt(no);\r\n }\r\n\r\n vm.createCallback = function (modelObj, callbacks) {\r\n return function (data) {\r\n if (modelObj && data) {\r\n modelObj.extend(data);\r\n }\r\n if (callbacks) {\r\n angular.forEach(callbacks, function (d) {\r\n if (d) {\r\n d(data);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n vm.getMenuVisibilityByRole = function (visibleRoles) {\r\n if(visibleRoles){\r\n var indx = visibleRoles.indexOf($localStorage.loggedInUser_Role);\r\n return indx>=0;\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n\r\n vm.isHomeUrl = function () {\r\n return $location.path().indexOf(\"/HelpDesk_Home/\") > 0 || $location.path().indexOf(\"/HelpDesk_Customer_View/\") > 0;\r\n }\r\n\r\n vm.isHelpdeskUrl = function () {\r\n return $location.path().indexOf(\"/HelpDesk\") > 0 || $location.path().indexOf(\"/HelpDesk_Customer_View/\") > 0;\r\n }\r\n\r\n \r\n vm.isMenuClick = function (indexurl) { \r\n if(!indexurl)\r\n {\r\n return false;\r\n } \r\n \r\n indexurl = indexurl.replace('index.', '');\r\n var BaseReportIndex = indexurl.indexOf(\"BaseReport\");\r\n var AdvancedDashboardIndex = indexurl.indexOf(\"AdvancedDashboard\");\r\n if(BaseReportIndex >= 0)\r\n {\r\n indexurl = \"Report\"; \r\n }\r\n else if(AdvancedDashboardIndex >= 0)\r\n {\r\n indexurl = \"AdvancedDashboard\"; \r\n }\r\n if(indexurl.indexOf(\",\") >= 0)\r\n {\r\n var arr = indexurl.split(',');\r\n for (var i = 0; i < arr.length; i++) {\r\n if($location.path().indexOf(arr[i]) >= 0)\r\n {\r\n return true;\r\n }\r\n }\r\n }\r\n else\r\n {\r\n return $location.path().indexOf(indexurl) >= 0; \r\n }\r\n \r\n }\r\n \r\n vm.isReportUrl = function () {\r\n return $location.path().indexOf(\"/Report/\") > 0 || $location.path().indexOf(\"/ScheduledReport\") > 0;\r\n }\r\n \r\n vm.isOtherUrl = function () {\r\n return $location.path().indexOf(\"/cms\") > 0 || $location.path().indexOf(\"/DeviceInfo\") > 0;\r\n }\r\n \r\n vm.isPaymentUrl = function () {\r\n return $location.path().indexOf(\"/Payments/\") > 0;\r\n }\r\n \r\n vm.isFreelancerUrl = function () {\r\n return $location.path().indexOf(\"/Freelancers/\") > 0 || $location.path().indexOf(\"/RegistrationForm/\") > 0 || $location.path().indexOf(\"/TeamProfile/\") > 0;\r\n }\r\n\r\n vm.isFlVendorUrl = function () {\r\n return $location.path().indexOf(\"/Vendor/RegisteredVendor\") > 0\r\n || $location.path().indexOf(\"/VendorRegistrationForm/\") > 0\r\n || $location.path().indexOf(\"/Vendor_list\") > 0;\r\n }\r\n \r\n vm.isRegisteredUserUrl = function () {\r\n return $location.path().indexOf(\"/RegistrationForm/\") > 0;\r\n }\r\n\r\n vm.isRegisteredVendorUrl = function () {\r\n return $location.path().indexOf(\"/VendorRegistrationForm/\") > 0;\r\n }\r\n \r\n vm.isActiveUserUrl = function () {\r\n return $location.path().indexOf(\"/TeamProfile/\") > 0;\r\n }\r\n \r\n vm.isJobUrl = function () {\r\n return $location.path().indexOf(\"/Jobs/\") > 0 || $location.path().indexOf(\"/SortableExample/\") > 0\r\n || $location.path().indexOf(\"/FormEdit/\") > 0 || $location.path().indexOf(\"/JobView/\") > 0;\r\n }\r\n \r\n // vm.isAccountsUrl = function() {\r\n // return $location.path().indexOf(\"/Accounts\") > 0 || $location.path().indexOf(\"/AccountHome\") > 0\r\n // || $location.path().indexOf(\"/Basic\") > 0 || $location.path().indexOf(\"/Advanced\") > 0\r\n // || $location.path().indexOf(\"/Professional\") > 0 || $location.path().indexOf(\"/Ultimate\") > 0; \r\n // }\r\n \r\n vm.isDashboardUrl = function (i) {\r\n if (i=='account') {\r\n return true;\r\n }else if(i=='accountDetails'){\r\n return $location.path().indexOf(\"/AdvancedDashboard/accountDetails\") > 0;\r\n }else if(i=='main'){\r\n return $location.path().indexOf(\"/AdvancedDashboard/\") > 0;\r\n } \r\n }\r\n\r\n vm.isAllJobUrl = function () {\r\n return $location.path().indexOf(\"/JobTickets\") > 0 || $location.path().indexOf(\"/JobView/\") > 0\r\n || $location.path().indexOf(\"/JobBidCreation\") > 0;\r\n }\r\n \r\n vm.isAllTicketsUrl = function () {\r\n return $location.path().indexOf(\"/TicketList\") > 0 || $location.path().indexOf(\"/JobView/\") > 0\r\n || $location.path().indexOf(\"/JobBidCreation\") > 0 || $location.path().indexOf(\"/bulkuploadJob\") > 0\r\n || $location.path().indexOf(\"/FreelancerVendor_list\") > 0;\r\n }\r\n \r\n vm.isConsolidatedUrl = function () {\r\n return $location.path().indexOf(\"/ConsolidateList\") > 0;\r\n }\r\n \r\n vm.isVendorUrl = function () {\r\n return $location.path().indexOf(\"/Vendor_list\") > 0 || $location.path().indexOf(\"/VendorProfile\") > 0 || $location.path().indexOf(\"/Vendor_Creation_form\") > 0;\r\n }\r\n \r\n vm.isProjectsUrl = function () {\r\n return $location.path().indexOf(\"/Project\") > 0 || $location.path().indexOf(\"/Project_Detail\") > 0;\r\n }\r\n \r\n vm.isCustomerUrl = function () {\r\n return $location.path().indexOf(\"/CustomerNew\") > 0;\r\n }\r\n\r\n vm.isAssistedUrl = function () {\r\n return $location.path().indexOf(\"/NewScheduling\") > 0;\r\n }\r\n vm.isAutoAssistedUrl = function () {\r\n return $location.path().indexOf(\"/AutoScheduling\") > 0;\r\n }\r\n \r\n vm.isTeamUrl = function () {\r\n return $location.path().indexOf(\"/TeamMember\") > 0 || $location.path().indexOf(\"/TeamProfile\") > 0;\r\n }\r\n \r\n vm.isTemplateUrl = function () {\r\n return $location.path().indexOf(\"/TemplateList\") > 0 || $location.path().indexOf(\"/FormEdit\") > 0 || $location.path().indexOf(\"/SortableExample\") > 0;\r\n }\r\n\r\n vm.getMenuName = function(menuName){\r\n if($localStorage.accountConfig && $localStorage.accountConfig.MenuListModel){\r\n for(var i=0; i< $localStorage.accountConfig.MenuListModel.length; i++){\r\n if($localStorage.accountConfig.MenuListModel[i].MenuName == menuName){\r\n return $localStorage.accountConfig.MenuListModel[i].MenuDisplayName;\r\n }\r\n }\r\n }\r\n return menuName;\r\n }\r\n\r\n vm.getSubMenuName = function(submenuName, menuName){\r\n if($localStorage.accountConfig && $localStorage.accountConfig.MenuListModel){\r\n for(var i=0; i< $localStorage.accountConfig.MenuListModel.length; i++){\r\n if($localStorage.accountConfig.MenuListModel[i].MenuName == menuName){\r\n if($localStorage.accountConfig.MenuListModel[i].SubMenusList){\r\n for(var j=0; j< $localStorage.accountConfig.MenuListModel[i].SubMenusList.length; j++){\r\n if($localStorage.accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == submenuName){ \r\n return $localStorage.accountConfig.MenuListModel[i].SubMenusList[j].SubMenuDisplayName;\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n return submenuName;\r\n }\r\n\r\n vm.getMenuVisibility = function(menuName, defaultValue){ \r\n if($localStorage.accountConfig && $localStorage.accountConfig.MenuListModel){\r\n for(var i=0; i< $localStorage.accountConfig.MenuListModel.length; i++){\r\n if($localStorage.accountConfig.MenuListModel[i].MenuName == menuName) {\r\n var visibleRoles = $localStorage.accountConfig.MenuListModel[i].MenuVisibility != null \r\n ? $localStorage.accountConfig.MenuListModel[i].MenuVisibility.split(\",\"): [];\r\n return visibleRoles.indexOf($localStorage.loggedInUser_Role)>=0;\r\n }\r\n }\r\n }\r\n return defaultValue;\r\n }\r\n\r\n vm.getSubMenuVisibility = function(submenuName, menuName, defaultValue){\r\n if($localStorage.accountConfig && $localStorage.accountConfig.MenuListModel){\r\n for(var i=0; i< $localStorage.accountConfig.MenuListModel.length; i++){\r\n if($localStorage.accountConfig.MenuListModel[i].MenuName == menuName) {\r\n if($localStorage.accountConfig.MenuListModel[i].SubMenusList){\r\n for(var j=0; j< $localStorage.accountConfig.MenuListModel[i].SubMenusList.length; j++){\r\n if($localStorage.accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == submenuName){ \r\n var visibleRoles = $localStorage.accountConfig.MenuListModel[i].SubMenusList[j].SubMenuVisibility != null \r\n ? $localStorage.accountConfig.MenuListModel[i].SubMenusList[j].SubMenuVisibility.split(\",\"): [];\r\n return visibleRoles.indexOf($localStorage.loggedInUser_Role)>=0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return defaultValue;\r\n }\r\n\r\n vm.isFreelancerAccess = function(){ \r\n return ($localStorage.accountConfig && $localStorage.accountConfig.FreelancerAccess!=null) ? $localStorage.accountConfig.FreelancerAccess : true;\r\n }\r\n\r\n vm.getVisibleLabel = function(label){\r\n return ($localStorage.accountConfig && $localStorage.accountConfig[label]!=null) ? $localStorage.accountConfig[label] : label;\r\n }\r\n\r\n vm.getRoleName = function(roleName){\r\n if($localStorage.accountConfig && $localStorage.accountConfig.RoleListModel){\r\n for(var i=0; i< $localStorage.accountConfig.RoleListModel.length; i++){\r\n if($localStorage.accountConfig.RoleListModel[i].RoleName == roleName){\r\n if ($localStorage.accountConfig.RoleListModel[i].RoleDisplayName!=null && $localStorage.accountConfig.RoleListModel[i].RoleDisplayName != \"\") {\r\n return $localStorage.accountConfig.RoleListModel[i].RoleDisplayName;\r\n }\r\n return roleName;\r\n }\r\n }\r\n }\r\n return roleName;\r\n }\r\n\r\n vm.isCreatePermission = function(menuName, submenuName, defaultValue){\r\n if($localStorage.accountConfig && $localStorage.accountConfig.MenuListModel){\r\n for(var i=0; i< $localStorage.accountConfig.MenuListModel.length; i++){\r\n if($localStorage.accountConfig.MenuListModel[i].MenuName == menuName) {\r\n if($localStorage.accountConfig.MenuListModel[i].SubMenusList){\r\n for(var j=0; j< $localStorage.accountConfig.MenuListModel[i].SubMenusList.length; j++){\r\n if($localStorage.accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == submenuName){ \r\n var visibleRoles = $localStorage.accountConfig.MenuListModel[i].SubMenusList[j].CreatePermission != null \r\n ? $localStorage.accountConfig.MenuListModel[i].SubMenusList[j].CreatePermission.split(\",\"): [];\r\n return visibleRoles.indexOf($localStorage.loggedInUser_Role)>=0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return defaultValue;\r\n }\r\n\r\n \r\n vm.isCreatePermissionList = function(menuName, defaultValue){\r\n if($localStorage.accountConfig && $localStorage.accountConfig.MenuListModel){\r\n for(var i=0; i< $localStorage.accountConfig.MenuListModel.length; i++){\r\n if($localStorage.accountConfig.MenuListModel[i].MenuName == menuName) {\r\n var visibleRoles = $localStorage.accountConfig.MenuListModel[i].CreatePermission != null \r\n ? $localStorage.accountConfig.MenuListModel[i].CreatePermission.split(\",\"): [];\r\n return visibleRoles.indexOf($localStorage.loggedInUser_Role)>=0;\r\n }\r\n }\r\n }\r\n return defaultValue;\r\n }\r\n\r\n \r\n\r\n\r\n \r\n vm.isDownloadPermission = function(menuName, submenuName, defaultValue){\r\n if($localStorage.accountConfig && $localStorage.accountConfig.MenuListModel){\r\n for(var i=0; i< $localStorage.accountConfig.MenuListModel.length; i++){\r\n if($localStorage.accountConfig.MenuListModel[i].MenuName == menuName) {\r\n if($localStorage.accountConfig.MenuListModel[i].SubMenusList){\r\n for(var j=0; j< $localStorage.accountConfig.MenuListModel[i].SubMenusList.length; j++){\r\n if($localStorage.accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == submenuName){ \r\n var visibleRoles = $localStorage.accountConfig.MenuListModel[i].SubMenusList[j].CreatePermission != null \r\n ? $localStorage.accountConfig.MenuListModel[i].SubMenusList[j].DownloadPermission.split(\",\"): [];\r\n return visibleRoles.indexOf($localStorage.loggedInUser_Role)>=0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return defaultValue;\r\n }\r\n\r\n vm.isUploadPermission = function(menuName, submenuName, defaultValue){\r\n if($localStorage.accountConfig && $localStorage.accountConfig.MenuListModel){\r\n for(var i=0; i< $localStorage.accountConfig.MenuListModel.length; i++){\r\n if($localStorage.accountConfig.MenuListModel[i].MenuName == menuName) {\r\n if($localStorage.accountConfig.MenuListModel[i].SubMenusList){\r\n for(var j=0; j< $localStorage.accountConfig.MenuListModel[i].SubMenusList.length; j++){\r\n if($localStorage.accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == submenuName){ \r\n var visibleRoles = $localStorage.accountConfig.MenuListModel[i].SubMenusList[j].UploadPermission != null \r\n ? $localStorage.accountConfig.MenuListModel[i].SubMenusList[j].UploadPermission.split(\",\"): [];\r\n return visibleRoles.indexOf($localStorage.loggedInUser_Role)>=0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return defaultValue;\r\n }\r\n \r\n vm.isDeletePermission = function(menuName, submenuName, defaultValue){\r\n if($localStorage.accountConfig && $localStorage.accountConfig.MenuListModel){\r\n for(var i=0; i< $localStorage.accountConfig.MenuListModel.length; i++){\r\n if($localStorage.accountConfig.MenuListModel[i].MenuName == menuName) {\r\n if($localStorage.accountConfig.MenuListModel[i].SubMenusList){\r\n for(var j=0; j< $localStorage.accountConfig.MenuListModel[i].SubMenusList.length; j++){\r\n if($localStorage.accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == submenuName){ \r\n var visibleRoles = $localStorage.accountConfig.MenuListModel[i].SubMenusList[j].DeletePermission != null \r\n ? $localStorage.accountConfig.MenuListModel[i].SubMenusList[j].DeletePermission.split(\",\"): [];\r\n return visibleRoles.indexOf($localStorage.loggedInUser_Role)>=0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return defaultValue;\r\n }\r\n\r\n // Chat Notification Start\r\n \r\n vm.LoadMessageToNotify= function(){ \r\n \r\n if(!$localStorage.loggedInUserId)\r\n { \r\n return;\r\n }\r\n var query = firebase.firestore().collection('chats')\r\n .where(\"ReceiverId\", \"==\", $localStorage.loggedInUserId);\t\r\n \r\n // query.get().then(function(querySnapshot) {\r\n query.onSnapshot(function(snapshot) {\r\n if(snapshot.docs.length>0)\t\r\n { \r\n var AllNewMessagecount=0;\r\n var unReadMessage=0;\r\n \r\n // querySnapshot.forEach(function(doc) { \r\n snapshot.docChanges().forEach(function(change) { \r\n \r\n var message = change.doc.data();\r\n if( message.ReceiverId == $localStorage.loggedInUserId){\r\n var NotifyLength = message.Notify.length;\r\n var messageLength = message.messages.length;\r\n var MessageStatusLength = message.MessageStatus.length;\r\n var TotalNewMessage = messageLength - NotifyLength;\r\n var docRef = firebase.firestore().collection('chats').doc(change.doc.id);\r\n if(NotifyLength < messageLength)\r\n {\r\n AllNewMessagecount = AllNewMessagecount + TotalNewMessage; \r\n }\r\n if(MessageStatusLength < NotifyLength)\r\n {\r\n var unReadchatMessage = NotifyLength - MessageStatusLength;\r\n unReadMessage = unReadMessage + unReadchatMessage;\r\n }\r\n var newNotifyLength = 0;\r\n for (var i=0;i0)\r\n {\r\n $timeout(function () {\r\n vm.showSuccess(\"Notification: \"+AllNewMessagecount+\" new messages\");\r\n },10000);\r\n }\r\n //unReadMessage=0;\r\n } \t\t\r\n });\r\n}\r\n\r\n \r\n vm.LoadMessageToNotify();\r\n // Chat Notification End\r\n\r\n\r\n\r\n //For Notifications\r\n // var currentDate = new Date();\r\n // var DateTime = new Date(inputDate);\r\n // var DiffMs = (currentDate - DateTime);\r\n // var DayDuration = Math.floor(DiffMs / 86400000);\r\n // var HrsDuration = Math.floor((DiffMs % 86400000) / 3600000);\r\n // var MinsDuration = Math.round(((DiffMs % 86400000) % 3600000) / 60000);\r\n // if(type =='event'){\r\n // if(DayDuration == 1){\r\n // vm.eventDuration = DayDuration+\" day, \"+HrsDuration + \" hrs, \" + MinsDuration + \" mins ago\";\r\n // } else if(DayDuration > 1){\r\n // vm.eventDuration = DayDuration+\" days, \"+HrsDuration + \" hrs, \" + MinsDuration + \" mins ago\";\r\n // } else if(MinsDuration == 0 && HrsDuration == 0){\r\n // vm.eventDuration = \"Just now\";\r\n // } else if(HrsDuration == 0){\r\n // vm.eventDuration = MinsDuration + \" mins ago\";\r\n // } else if(HrsDuration == 1){\r\n // vm.eventDuration = HrsDuration + \" hr, \" + MinsDuration + \" mins ago\";\r\n // } else {\r\n // vm.eventDuration = HrsDuration + \" hrs, \" + MinsDuration + \" mins ago\";\r\n // }\r\n\r\n /*vm.homeScreenNotifications = function(){\r\n var sDate = vm.AccountStartDate();\r\n var eDate = moment().format(\"YYYY-MM-DD\");\r\n var reqUserId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n MainService.GetAlertNotificationWithDateRange(reqUserId,sDate,eDate,token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.AllNotifications = [];\r\n vm.NotificationCounts = 0;\r\n angular.forEach(resp.data, function(d){\r\n if (d) {\r\n var dt1 = new Date(d.CreatedOn);\r\n var dt2 = new Date();\r\n d.diffTime = (dt2 - dt1);\r\n var DayDuration = Math.floor(d.diffTime / 86400000);\r\n var HrsDuration = Math.floor((d.diffTime % 86400000) / 3600000);\r\n var MinsDuration = Math.round(((d.diffTime % 86400000) % 3600000) / 60000);\r\n if(DayDuration == 1){\r\n d.diffTime = DayDuration+\" day, \"+HrsDuration+\" hrs, \"+MinsDuration+\" mins ago\";\r\n } else if(DayDuration > 1){\r\n d.diffTime = DayDuration+\" days, \"+HrsDuration+\" hrs, \"+MinsDuration+\" mins ago\";\r\n } else if(MinsDuration == 0 && HrsDuration == 0){\r\n d.diffTime = \"Just now\";\r\n } else if(HrsDuration == 0){\r\n d.diffTime = MinsDuration+\" mins ago\";\r\n } else if(HrsDuration == 1){\r\n d.diffTime = HrsDuration+\" hr, \"+MinsDuration+\" mins ago\";\r\n } else {\r\n d.diffTime = HrsDuration+\" hrs, \"+MinsDuration+\" mins ago\";\r\n }\r\n d.CreatedOn = dt1;\r\n vm.AllNotifications.push(d);\r\n if (!d.AlertTextRead) {\r\n vm.NotificationCounts++;\r\n }\r\n }\r\n })\r\n }\r\n })\r\n }*/\r\n\r\n // vm.CalculateTimeDiff = function(dt1,dt2){\r\n // var diff =(dt2.getTime() - dt1.getTime()) / 1000;\r\n // return Math.abs(Math.round(diff));\r\n // }\r\n\r\n // if ($localStorage.loggedInUserId) {\r\n // if ($localStorage.loggedInUser_Role!='Administrator') {\r\n // setInterval(function(){\r\n // vm.homeScreenNotifications();\r\n // },1000)\r\n // //$interval(vm.homeScreenNotifications, 1000);\r\n // }\r\n // }\r\n\r\n //Mark Alert as read\r\n vm.MarkAlertsRead = function(alertId,alertText){\r\n var reqUserId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n MainService.MarkAlertAsRead(reqUserId,alertId,token).then(function(resp){\r\n if (resp && resp.data == 'Document updated') {\r\n vm.NotificationCounts--;\r\n var data = [];\r\n data = alertText.split(\"(\");\r\n data = data[1].split(\")\");\r\n vm.TicketId = data[0];\r\n $timeout(function(){\r\n vm.homeScreenNotifications(); \r\n },1000)\r\n $state.go('index.JobView',{\r\n ticketId: vm.TicketId,\r\n type:'global'\r\n },{\r\n reload:true\r\n }) \r\n }\r\n })\r\n }\r\n});\r\n\r\nangular.module('inspinia').controller('DatatablesCtrlController', DatatablesCtrlController);\r\n\r\nDatatablesCtrlController.$inject = ['$scope', 'DTOptionsBuilder'];\r\n\r\nfunction DatatablesCtrlController($scope, DTOptionsBuilder) {\r\n var vm = this;\r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withButtons([\r\n { extend: 'copy' },\r\n { extend: 'csv' },\r\n { extend: 'excel', title: 'ExampleFile' },\r\n { extend: 'pdf', title: 'ExampleFile' },\r\n {\r\n extend: 'print',\r\n customize: function (win) {\r\n angular.element(win.document.body).addClass('white-bg');\r\n angular.element(win.document.body).css('font-size', '10px');\r\n angular.element(win.document.body).find('table')\r\n .addClass('compact')\r\n .css('font-size', 'inherit');\r\n }\r\n }\r\n ]);\r\n}\r\n\r\nangular\r\n .module('inspinia')\r\n .controller('DatatablesCtrlController', DatatablesCtrlController)\r\n // .config(function (recorderServiceProvider) {\r\n // recorderServiceProvider\r\n // .forceSwf(false)\r\n // //.setSwfUrl('/lib/recorder.swf')\r\n // .withMp3Conversion(true)\r\n // ;\r\n // });\r\n\nangular.module('inspinia').controller('userjobController', function ($localStorage,userJobListService, $scope, $state, ApiURL, $timeout, $uibModal) {\r\n\tvm = this;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var userToken = $localStorage.freelancertoken;\r\n var techUserId = $localStorage.freelancerUserId;\r\n\tif (!techUserId) {\r\n\t\t$state.go('FreelancerLogin', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n var OrderBy = \"CreatedOn\";\r\n var order = \"desc\";\r\n var searchtag = '';\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.pageindexCount=0;\r\n $scope.totalBidCount = 0;\r\n $scope.usersTablePerPageBid = 10; \r\n vm.BidListLength=0;\r\n vm.ListofBids=[];\r\n vm.denyReasons = '';\r\n vm.denyReasonsRemark ='';\r\n vm.bundleJobId='';\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n $scope.UserTablepagination.current= $localStorage.TicketFilterModel?$localStorage.TicketFilterModel.PageIndex:1;\r\n\r\n $scope.UserTablepageChanged = function(newPage) {\r\n \r\n PageIndex = newPage;\t \r\n vm.GetLeads(techUserId,userToken,PageIndex,PageSize,OrderBy,order,searchtag);\r\n \r\n };\r\n\r\n vm.GetLeads = function () {\r\n userJobListService.GetLeadsForMobile(techUserId, userToken,PageIndex,PageSize,OrderBy,order,searchtag).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.techBIDlist = resp.data;\r\n vm.ListofBids = resp.data.FreelancerBidModelList;\t\r\n angular.forEach(vm.ListofBids, function (t) {\r\n t.PincodeArray = t.PinCode.split(\"|\");\r\n t.PinCode = Array.from(new Set(t.PincodeArray));\r\n t.SkillSetArray = t.skillSet.split(\"|\");\r\n t.skillSet = Array.from(new Set(t.SkillSetArray));\r\n })\r\n $scope.totalBidCount = resp.data.FreelancerBidListCount;\r\n if(vm.ListofBids.length < 10)\r\n vm.BidListLength = $scope.totalBidCount;\r\n else\r\n vm.BidListLength = PageIndex * 10;\r\n if(PageIndex==1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex-1) * 10) + 1); \r\n } \r\n }, function () { \r\n });\r\n }\r\n \r\n \r\n vm.GetLeads();\r\n\r\n vm.applyForBID = function(accountid,jobid,bidcounterrate){\t\t \r\n userJobListService.applyForBID(techUserId,userToken,accountid,jobid,bidcounterrate).then(function(resp){\r\n if (resp.status == 202) {\r\n vm.showSuccess('Success', \"Bid Applied Successfully\");\r\n $timeout(function () {\r\n vm.GetLeads(techUserId,userToken,PageIndex,PageSize,OrderBy,order,searchtag);\r\n vm.comboCloseModal();\r\n }, 500);\r\n }\r\n else {\r\n \r\n vm.showFailure(\"Failed\", resp.data);\r\n $timeout(function () {\r\n vm.GetLeads(techUserId,userToken,PageIndex,PageSize,OrderBy,order,searchtag);\r\n vm.comboCloseModal();\r\n }, 1000); \r\n }\r\n })\t\t\r\n }\r\n\r\n\r\n vm.GetDenyReasons = function(ListofBids){\r\n vm.CurrentJob = ListofBids;\r\n vm.AuditTicketId = vm.CurrentJob.jobId;\r\n vm.TAccountId = vm.CurrentJob.jobAccountId;\r\n userJobListService.GetDenyReasons(techUserId, userToken).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.denyReasonsList=resp.data;\r\n vm.biddenyRsn= vm.denyReasonsList.shift();\r\n denyReasonsModalInstance = $uibModal.open({\r\n templateUrl: 'deny_reasons_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n }, function () { \r\n }); \r\n } \r\n } \r\n\r\n vm.denyReasonsCloseModal = function () {\r\n vm.denyReasons=\"\";\r\n vm.denyReasonsRemark=\"\";\r\n denyReasonsModalInstance.close();\r\n comboModalInstance.close();\r\n }\r\n\r\n vm.UpdatedenyReasons = function(AuditTicketId,TAccountId)\r\n {\r\n vm.denyReasonsForm.submitted = true;\r\n if (vm.denyReasonsForm.$valid) {\r\n var data = [{\r\n \"jobAccountId\": TAccountId,\r\n \"jobId\": AuditTicketId,\r\n \"IterationId\": \"1\",\r\n \"DenyReason\": vm.denyReasons + vm.denyReasonsRemark \r\n }];\r\n userJobListService.DenyBidsFromMobile(data,techUserId,userToken).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(resp.data); \r\n vm.denyReasonsCloseModal(); \r\n $timeout(function () { \r\n vm.GetLeads(techUserId,userToken,PageIndex,PageSize,OrderBy,order,searchtag);\r\n }, 1000); \r\n }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n\r\n vm.comboListModal = function(bundleId){\r\n vm.bundleJobId = bundleId;\r\n if(vm.bundleJobId){\r\n userJobListService.GetBundleLeadDetails(vm.bundleJobId,techUserId,userToken).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BundleDetail=resp.data;\r\n vm.BundleTicketList=resp.data.JobBundleList;\r\n comboModalInstance = $uibModal.open({\r\n templateUrl: 'combo_modal.html',\r\n scope: $scope,\r\n backdrop: 'static'\r\n });\r\n }\r\n }, function () { \r\n });\r\n }\r\n }\r\n\r\n vm.comboCloseModal = function () {\r\n comboModalInstance.close();\r\n }\r\n\r\n})\r\n \r\n\r\n\nangular.module('inspinia').service('userJobListService', function (ApiURL,FreelancerURL, $log, $http, userauthURL) {\r\n\r\n // https://product.mymobiforce.com/FreelancerAPI/api/BID/GetLeadsForMobile?Vertical=&pageIndex=1&pageSize=10&orderBy=CreatedOn&order=desc&SearchTag= -- previously used\r\n\r\n// https://login.mymobiforce.com/FreelancerAPI/api/BID/GetLeadsForWeb?Vertical=&PageIndex=1&PageSize=10&OrderBy=CreatedOn&order=desc&SearchTag= -- cusrrently\r\n\r\nthis.GetLeadsForMobile = function(loggedinUser, token,PageIndex,PageSize,OrderBy,order,searchtag){\r\n var url = FreelancerURL + \"/api/BID/GetLeadsForWeb?Vertical=\"+ '&PageIndex=' + PageIndex + '&PageSize=' + PageSize+ '&OrderBy=' + OrderBy + '&order=' + order + '&SearchTag=' + searchtag;\r\n return $http.get(url,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n// https://product.mymobiforce.com/FreelancerAPI/api/BID/162/T1620000000530/200/applyForBidFromMobileN -- previously used\r\n\r\n// https://product.mymobiforce.com/FreelancerAPI/api/BID/162/T1620000000530/200/applyForBidFromWeb -- currently\r\n\r\nthis.applyForBID = function(loggedinUser, token,accountid,jobid,bidcounterrate){\r\n var url = FreelancerURL + \"/api/BID/\" + accountid + \"/\" + jobid + \"/\" + bidcounterrate + \"/applyForBidFromWeb\";\r\n return $http.put(url,null,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n // https://product.mymobiforce.com/FreelancerAPI/api/BID/GetDenyReasons\r\n\r\n this.GetDenyReasons = function(loggedinUser, token){\r\n var url = FreelancerURL + \"/api/BID/GetDenyReasons\";\r\n return $http.get(url,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // https://product.mymobiforce.com/FreelancerAPI/api/BID/DenyBidsFromMobile\r\n\r\n this.DenyBidsFromMobile = function(data,loggedinUser, token){\r\n var url = FreelancerURL + \"/api/BID/DenyBidsFromMobile\";\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // https://stag.mymobiforce.com/freelancerapi/api/BID/GetBundleLeadDetails?TicketId=T1140000236919\r\n\r\n this.GetBundleLeadDetails = function(bundleid,loggedinUser, token){\r\n var url = FreelancerURL + \"/api/BID/GetBundleLeadDetails?TicketId=\" + bundleid;\r\n return $http.get(url,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('jobController', function ($localStorage,userJobListService, $scope, $state, ApiURL, $timeout, $uibModal, $window) {\r\n\tvm = this;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var userToken = $localStorage.freelancertoken;\r\n var techUserId = $localStorage.freelancerUserId;\r\n\tif (!techUserId) {\r\n\t\t$state.go('Login2Factor', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n var OrderBy = \"CreatedOn\";\r\n var order = \"desc\";\r\n var searchtag = '';\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.pageindexCount=0;\r\n $scope.totalBidCount = 0;\r\n $scope.usersTablePerPageBid = 10; \r\n vm.BidListLength=0;\r\n vm.ListofBids=[];\r\n vm.denyReasons = '';\r\n vm.denyReasonsRemark ='';\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n $scope.UserTablepagination.current= $localStorage.TicketFilterModel?$localStorage.TicketFilterModel.PageIndex:1;\r\n\r\n $scope.UserTablepageChanged = function(newPage) {\r\n \r\n PageIndex = newPage;\t \r\n vm.GetLeads(techUserId,userToken,PageIndex,PageSize,OrderBy,order,searchtag);\r\n \r\n };\r\n\r\n vm.GetLeads = function () {\r\n userJobListService.GetLeadsForMobile(techUserId, userToken,PageIndex,PageSize,OrderBy,order,searchtag).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.techBIDlist = resp.data;\r\n vm.ListofBids = resp.data.FreelancerBidModelList;\t\r\n $scope.totalBidCount = resp.data.FreelancerBidListCount;\r\n if(vm.ListofBids.length < 10)\r\n vm.BidListLength = $scope.totalBidCount;\r\n else\r\n vm.BidListLength = PageIndex * 10;\r\n if(PageIndex==1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex-1) * 10) + 1);\r\n \r\n }\r\n \r\n }, function () { \r\n });\r\n }\r\n \r\n \r\n vm.GetLeads();\r\n\r\n vm.applyForBID = function (accountid,jobid,bidcounterrate) {\r\n userJobListService.applyForBID(techUserId,userToken,accountid,jobid,bidcounterrate).then(function (resp) {\r\n if (resp.status == 202) {\r\n vm.showSuccess('Success', \"Bid Applied Successfully\");\r\n $timeout(function () { \r\n vm.GetLeads(techUserId,userToken,PageIndex,PageSize,OrderBy,order,searchtag);\r\n }, 1000);\r\n }\r\n else {\r\n vm.showFailure('Failed', resp.data);\r\n $timeout(function () { \r\n vm.GetLeads(techUserId,userToken,PageIndex,PageSize,OrderBy,order,searchtag);\r\n }, 1000);\r\n } \r\n }, function(){\r\n })\r\n }\r\n\r\n vm.GetDenyReasons = function(ListofBids){\r\n vm.CurrentJob = ListofBids;\r\n vm.AuditTicketId = vm.CurrentJob.jobId;\r\n vm.TAccountId = vm.CurrentJob.jobAccountId;\r\n userJobListService.GetDenyReasons(techUserId, userToken).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.denyReasonsList=resp.data;\r\n vm.biddenyRsn= vm.denyReasonsList.shift();\r\n denyReasonsModalInstance = $uibModal.open({\r\n templateUrl: 'deny_reasons_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n }, function () { \r\n }); \r\n }\r\n \r\n } \r\n\r\n vm.denyReasonsCloseModal = function () {\r\n vm.denyReasons=\"\";\r\n vm.denyReasonsRemark=\"\";\r\n denyReasonsModalInstance.close();\r\n }\r\n\r\n vm.UpdatedenyReasons = function(AuditTicketId,TAccountId)\r\n {\r\n vm.denyReasonsForm.submitted = true;\r\n if (vm.denyReasonsForm.$valid) {\r\n var data = [{\r\n \"jobAccountId\": TAccountId,\r\n \"jobId\": AuditTicketId,\r\n \"IterationId\": \"1\",\r\n \"DenyReason\": vm.denyReasons + vm.denyReasonsRemark \r\n }];\r\n userJobListService.DenyBidsFromMobile(data,techUserId, userToken).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(resp.data); \r\n vm.denyReasonsCloseModal(); \r\n $timeout(function () { \r\n vm.GetLeads(techUserId,userToken,PageIndex,PageSize,OrderBy,order,searchtag);\r\n }, 1000); \r\n }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n\r\n vm.TicketDetail = function (bidDetails) { \r\n $localStorage.LeadTicketIdList = bidDetails;\r\n // if(vm.VerticalName == 'IMS'){\r\n $state.go('index.mForce-job-detail', {\r\n // ticketId: ticket\r\n }, {\r\n reload: true\r\n });\r\n // }else{\r\n // $state.go('index.mForce-job-detail', {\r\n // ticketId: ticket\r\n // }, {\r\n // reload: true\r\n // }); \r\n // }\r\n \r\n }\r\n\r\n\r\n})\r\n \r\n\r\n\nangular.module('inspinia').controller('jobDetailController', function ($scope, $uibModal, $location) {\r\n \r\n});\nangular.module('inspinia').service('bidDetailService', function (ApiURL,FreelancerURL, $log, $http, userauthURL) {\r\n\r\n // https://pro.mymobiforce.com/freelancerAPI/api/BID/GetLeadDetails?TicketId=T1580000000915\r\n\r\n \r\n this.GetLeadDetails = function(loggedinUser, token,jobId){\r\n var url = FreelancerURL + \"/api/BID/GetLeadDetails?TicketId=\"+ jobId;\r\n return $http.get(url,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // https://product.mymobiforce.com/FreelancerAPI/api/BID/162/T1620000000530/200/applyForBidFromMobileN\r\n\r\n this.applyForBID = function(loggedinUser, token,accountid,jobid,bidcounterrate){\r\n var url = FreelancerURL + \"/api/BID/\" + accountid + \"/\" + jobid + \"/\" + bidcounterrate + \"/applyForBidFromMobileN\";\r\n return $http.put(url,null,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n});\nangular.module('inspinia').controller('bidDetailController', function ($localStorage,bidDetailService, $scope, $state,$stateParams, ApiURL, $timeout, $uibModal) {\r\n\tvm = this;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var userToken = $localStorage.freelancertoken;\r\n var techUserId = $localStorage.freelancerUserId;\r\n\tvar uTicketId = $stateParams.ticketId;\r\n\tif (!techUserId) {\r\n\t\t$state.go('FreelancerLogin', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\r\n\tvm.GetLeadDetails = function () {\r\n\t\tbidDetailService.GetLeadDetails(techUserId, userToken,uTicketId).then(function (resp) {\r\n\t\t\tif (resp && resp.data) {\r\n\t\t\t\tvm.LeadDetails = resp.data; \r\n\t\t\t}\r\n\t\r\n\t\t}, function () { \r\n\t\t});\r\n\t\t}\r\n\r\n\tvm.GetLeadDetails();\r\n\r\n\tvm.applyForBID = function (accountid,jobid,bidcounterrate) {\r\n\t\tbidDetailService.applyForBID(techUserId,userToken,accountid,jobid,bidcounterrate).then(function (resp) {\r\n\t\t\tif (resp.status == 202) {\r\n\t\t\t\tvm.showSuccess('Success', \"Bid Applied Successfully\");\r\n\t\t\t\t$timeout(function () { \r\n\t\t\t\tvm.GetLeadDetails();\r\n\t\t\t\t$state.go('index.mForce-job-list', {}, { reload: true });\r\n\t\t\t\t}, 500);\r\n\t\t\t }\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () { \r\n\t\t\t\t\tvm.GetLeadDetails();\r\n\t\t\t\t\t}, 500);\r\n\t\t\t } \r\n\t\t}, function(){\r\n\t\t})\r\n\t\t}\r\n\r\n\t}\t\r\n\r\n})\r\n \r\n\r\n\r\n\nangular.module('inspinia').service('JobViewService', function (ApiURL, $log, $http, $localStorage, ActivityURL, LocationURL, PublicApiURL) {\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/T0000000018/saurabhgupta3371%40gmail.com/byTicketId\r\n this.GetJobTicket = function (ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + $localStorage.loggedInUserId + '/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n //https://test.mymobiforce.com/coreapi/api/Ticket/T0000000040/F00000000000/GetStatusbyTicketId\r\n\r\n this.GetTicketStatus = function(ticketId,reqUserId,token){\r\n var url = ApiURL + '/api/Ticket/'+ticketId+'/'+reqUserId+'/GetStatusbyTicketId';\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','token':token, 'UserId': reqUserId}\r\n })\r\n }\r\n\r\n this.updateJobTicket = function (ticketModel, token) {\r\n var url = ApiURL + '/api/Ticket?reqUserId=' + $localStorage.loggedInUserId;\r\n return $http.put(url, ticketModel, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n//https://login.mymobiforce.com/activityapi/api/Activity/reqUserId/jobId/GetAllActivitiesLinkedJob?linkJobId=linkJobId\r\n\r\nthis.getAllActivitiesWithLinkJob = function (jobId, reqUserId, linkId, token, callback) {\r\n var url = ActivityURL + '/api/Activity/' + reqUserId + '/'+ jobId+'/GetAllActivitiesLinkedJob?linkJobId='+ linkId;\r\n $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token':token, 'UserId':reqUserId\r\n }\r\n }).then(function (res) {\r\n if (res && res.data)\r\n callback(res.data);\r\n });\r\n }\r\n\r\n this.GetCompletionRemarkList = function(reqUserId, token, skill, callType )\r\n {\r\n var url = ApiURL + '/api/TicketCompletionRemark/GetBySkillCallType?ReqUserId=' + reqUserId + '&Skill=' + skill + '&CallType=' + callType;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': reqUserId\r\n }\r\n });\r\n }\r\n\r\n // // https://perf.mymobiforce.com/coreapi/api/Hardware/GetUniqueSkillListByCategory?reqUserId=U360000000016&Category=Primary\r\n this.GetHardwareSkillList = function(userId, catogry, token){\r\n var url = ApiURL + '/api/Hardware/GetUniqueSkillListByCategory?reqUserId='+ userId + '&Category=' + catogry\r\n return $http.get(url,{headers:{'Content-Type':'application/json', 'Token': token, 'UserId': userId}});\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/Hardware/GetByFilter?reqUserId=U360000000016&fields=Category&values=Primary\r\n this.GetHardwareDetailByFields_ValueList = function(userId, fields, value, token){\r\n var url = ApiURL + '/api/Hardware/GetByFilter?reqUserId='+ userId + '&fields=' + fields +'&values='+value\r\n return $http.get(url,{headers:{'Content-Type':'application/json', 'Token': token, 'UserId': userId}});\r\n }\r\n\r\n\r\n\r\nthis.updateJobTicketwithImage = function (ticketModel, token, loggedInUserId) {\r\n\r\n\r\n var request = {\r\n method: 'POST',\r\n url: ApiURL + '/api/Upload/PostMediaFileWithObject',\r\n data: ticketModel,\r\n headers: {\r\n 'Token': token,\r\n 'UserId': loggedInUserId,\r\n 'Content-Type': undefined\r\n\r\n }\r\n };\r\n\r\n // SEND THE FILES.\r\n return $http(request)\r\n .success(function (d) {\r\n // alert(d);\r\n })\r\n .error(function () {\r\n });\r\n \r\n // var url = ApiURL + '/api/Upload/PostMediaFileWithObject';\r\n // return $http.post(url, ticketModel, {\r\n // headers: {\r\n // 'Content-Type': 'undefined', 'Token': token\r\n // }\r\n // });\r\n }\r\n\r\n //Complete Main Ticket\r\n this.completeJob = function (data, token, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n }).then(success, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n //Complete Saperate Ticket\r\n this.completeSeperateJob = function (data, token, success, failure) {\r\n var url = ApiURL + '/api/Ticket/UpdateStatusSeparateTicket';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n }).then(success, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.getHistory = function (ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + $localStorage.loggedInUserId + '/TicketHistorybyTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.getAllActivitiesForJob = function (jobId, accountId, token, callback) {\r\n var url = ActivityURL + '/api/Activity/' + accountId + '/GetAllActivitiesForJob?jobId=' + jobId;\r\n $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token':token, 'UserId': $localStorage.loggedInUserId,\r\n }\r\n }).then(function (res) {\r\n if (res && res.data)\r\n callback(res.data);\r\n });\r\n }\r\n\r\n /*this.getAllStates = function (loggedinUser, success, failure) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllStates';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json' } }).then(function (res) {\r\n if (res && res.status == 200 && res.data) {\r\n success(res.data);\r\n }\r\n },\r\n function () {\r\n failure(\"Failed\", \"Unable to get states, server is not responding correctly.\");\r\n });\r\n }\r\n\r\n this.getAllCities = function (loggedinUser, state, success, failure) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/' + state + '/GetCitiesByState';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json' } }).then(function (res) {\r\n if (res && res.status == 200 && res.data) {\r\n success(res.data);\r\n }\r\n },\r\n function () {\r\n failure(\"Failed\", \"Unable to get states, server is not responding correctly.\");\r\n });\r\n }*/\r\n\r\n\r\n this.getAllState = function (userId,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':userId }\r\n });\r\n }\r\n\r\n this.getAllCity = function (userId, state, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':userId }\r\n });\r\n }\r\n\r\n this.saveTicket = function (loggedinUser, ticketId, data, token, success, failure) {\r\n $http.put(ApiURL + '/api/Ticket/' + loggedinUser + '/' + ticketId + '/byTicketId', data, \r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (res && res.status == 200 && res) {\r\n success(res.data);\r\n } else{\r\n failure(\"Failed\", \"Unable to update job, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job, server is not responding correctly.\");\r\n });\r\n }\r\n\r\n this.updateStartTime = function(ticketId, userId, startTime,EndTime, token, success, failure){\r\n var url = ApiURL+\"/api/Ticket/updatestartdate\"; \r\n $http.put(url, {\r\n \"requserid\": userId,\r\n \"ticketid\": ticketId,\r\n \"starttime\": startTime.format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n \"endtime\": EndTime.format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\")\r\n }, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': userId } }).then(function(res){\r\n if(res){\r\n success(res);\r\n } else {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\") \r\n }\r\n }, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.getTemplateByName = function(name, token, userId, success, failure){\r\n var url = ApiURL + '/api/Template/'+name+'/'+userId+'/byName';\r\n $http.get(url, {\r\n headers:{'Content-Type': 'application/json', 'Token': token, 'UserId': userId}\r\n }).then(function(res){\r\n if(res && res.data){\r\n success(res.data);\r\n }\r\n }, function(error){\r\n failure(\"Failed\", \"Failed to get template \"+name+\", server is not responding correctly.\");\r\n });\r\n }\r\n\r\n this.getTatForJob = function(token, userId, ticketId, success, failure){\r\n var url = ActivityURL + \"/api/Activity/GetTatForJob?reqUserId=\"+userId+\"&jobId=\"+ticketId;\r\n $http.get(url, {\r\n headers:{'Content-Type': 'application/json', 'Token': token, 'UserId': userId}\r\n }).then(function(res){\r\n if(res && res.data){\r\n success(res.data);\r\n }\r\n }, function(error){\r\n failure(\"Failed\", \"Failed to get tat information for this ticket.\");\r\n });\r\n }\r\n\r\n\r\n\r\n//https://login.mymobiforce.com/activityapi/api/Activity/U360000000001/GetTatForHcl?jobIds=T0000000824\r\n\r\n this.GetStatusActivityInPie = function(token, userId, ticketId, success, failure){\r\n var url = ActivityURL + \"/api/Activity/\"+userId+\"/GetTatForHclInHours?jobIds=\"+ticketId;\r\n $http.get(url, {\r\n headers:{'Content-Type': 'application/json', 'Token': token, 'UserId': userId}\r\n }).then(function(res){\r\n if(res && res.data){\r\n success(res.data);\r\n }\r\n }, function(error){\r\n failure(\"Failed\", \"Failed to get tat information for this ticket.\");\r\n });\r\n }\r\n\r\n this.FollowUpWithAttachment = function(data, files, token, success,failure){\r\n \r\n\t\tvar formdata = new FormData();\t\t\r\n\t\tformdata.append(\"files\", files[0]);\t\r\n\t\tvar followupdata = JSON.stringify(data);\r\n\t\tformdata.append(\"ActivityModel\", followupdata);\r\n \r\n var url = ActivityURL + '/api/Activity/UpdateFollowUp';\r\n //var url = \"http://localhost:54953/api/Activity/UpdateFollowUp\";\r\n\t\treturn $http.put(url,formdata,{\r\n\t\t\theaders:{'Content-Type':undefined,'Token':token, 'UserId': $localStorage.loggedInUserId}\r\n\t\t}).then(success, function(error){\r\n \t\tfailure(\"Failed\", \"Follow up is not updated. Server is not responding correctly.\")\r\n \t});\r\n }\r\n \r\n this.DeleteFollowUp = function(userId, docId, token, success,failure){\r\n var url = ActivityURL + \"/api/Activity/DeleteFollowUp?ReqUserId=\"+userId+\"&DocId=\"+docId; \r\n\t\treturn $http.delete(url,{\r\n\t\t\theaders:{'Content-Type':'application/json','Token':token, 'UserId': $localStorage.loggedInUserId}\r\n\t\t}).then(success, function(error){\r\n \t\tfailure(\"Failed\", \"Follow up is not delete. Server is not responding correctly.\")\r\n \t});\r\n\t}\r\n // this.GetActivityInPie = function(token, userId, ticketId, success, failure){\r\n // var url = ActivityURL + \"/api/Activity/GetActivityInPie?reqUserId=\"+userId+\"&jobId=\"+ticketId;\r\n // $http.get(url, {\r\n // headers:{'Content-Type': 'application/json', 'Token': token}\r\n // }).then(function(res){\r\n // if(res && res.data){\r\n // success(res.data);\r\n // }\r\n // }, function(error){\r\n // failure(\"Failed\", \"Failed to get tat information for this ticket.\");\r\n // });\r\n // }\r\n\r\n});\n\r\nangular.module('inspinia').controller('JobViewController', function (JobViewService, UIURL, $window, $location, $rootScope, $stateParams, $uibModal, $scope, $log, ImageUrl, $sce, toaster, $localStorage, $timeout, $state, HelpDeskHomeService) {\r\n var vm = this;\r\n\r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n if (!loggedInUserId) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var token = $localStorage.token;\r\n vm.firstTab = 'HCL to Customer';\r\n vm.SecondTab = 'Quess to HCL';\r\n $location.search(\"isTicketView\", true);\r\n var AccountId = $localStorage.accountConfig.AccountId;\r\n if(AccountId && AccountId==='77'){\r\n vm.firstTab = 'NELCO to Customer';\r\n vm.SecondTab = 'MMF to NELCO';\r\n }\r\n vm.previousPage = $localStorage.previousPage;\r\n vm.RemarkCollection = [];\r\n vm.CompletionRemarkList = [];\r\n vm.SelectedCompletionRemarkList = [];\r\n // vm.hardwareDetailsType = '';\r\n vm.HWDetailList = [];\r\n vm.HardwareDetailList = [];\r\n vm.HWDetaileType = ['Primary', 'Secondary'];\r\n vm.Description = [];\r\n vm.SelectedHWDetailList = [];\r\n vm.HWSkillList = [];\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.roundNDecimal = $scope.$parent.$parent.main.roundNDecimal;\r\n vm.floatToInt = $scope.$parent.$parent.main.floatToInt;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.ticketType = $stateParams.type;\r\n var accountConfig = $localStorage.accountConfig;\r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n if (accountConfig && accountConfig.EnableRegion) {\r\n vm.EnableRegion = accountConfig.EnableRegion\r\n } else {\r\n vm.EnableRegion = false;\r\n }\r\n vm.TicketId = $stateParams.ticketId;\r\n vm.Jobticket = {};\r\n vm.TemplateData = {};\r\n vm.SuperVisorData = [];\r\n var ticketEditModalInstance = {};\r\n vm.ImageUrl = ImageUrl;\r\n vm.currentStepModel = {};\r\n vm.ModalActionWithValuesList = {};\r\n var currentStepName = '';\r\n vm.completeremark = '';\r\n vm.states = [];\r\n vm.cities = [];\r\n vm.ImageArray = [];\r\n vm.pieCharts = {};\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n $rootScope.rootScopeMsg = '';\r\n vm.updatefollowFiles = [];\r\n vm.LinkTicketNoList = [];\r\n vm.selectedLTicket = '';\r\n vm.FieldJobClosureMode = '';\r\n vm.FieldJobVisitStatus = '';\r\n vm.BackToTicket = function () {\r\n\r\n if (vm.previousPage == 'ticketlist') {\r\n $rootScope.rootScopeMsg = $location.$$absUrl.split('?')[1];\r\n $state.go('index.TicketList', {\r\n }, {\r\n reload: true\r\n });\r\n }else if(vm.previousPage == 'jobticketcopy'){\r\n $rootScope.rootScopeMsg = $location.$$absUrl.split('?')[1];\r\n $state.go('index.JobTicketsCopy', {\r\n }, {\r\n reload: true\r\n });\r\n }else if(vm.previousPage == 'ticketlistcopy'){\r\n $rootScope.rootScopeMsg = $location.$$absUrl.split('?')[1];\r\n $state.go('index.TicketListCopy', {\r\n }, {\r\n reload: true\r\n });\r\n }\r\n else {\r\n $rootScope.rootScopeMsg = $location.$$absUrl.split('?')[1];\r\n $state.go('index.JobTickets', {\r\n }, {\r\n reload: true\r\n });\r\n }\r\n \r\n }\r\n vm.BackToHelpDesk = function () {\r\n $rootScope.rootScopeMsg = $location.$$absUrl.split('?')[1];\r\n $state.go('index.HelpDesk', {\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n\r\n\r\n function GetTicketView() {\r\n \r\n JobViewService.GetJobTicket(vm.TicketId, token).then(function (resp) {\r\n vm.TicketInfo = resp.data;\r\n if (vm.TicketInfo.Template == 'VSAT Troubleshooting' || vm.TicketInfo.Template == 'LeaseLine Troubleshooting') {\r\n vm.GetStatusActivityInPie();\r\n }\r\n if (vm.TicketInfo.LinkId) {\r\n if (vm.VerticalName == 'IMS') {\r\n vm.LinkTicketNoList = (vm.TicketInfo.LinkId).split(',');\r\n vm.getAllActivitiesWithLinkJob(vm.TicketInfo.LinkId);\r\n vm.GetTicketStatus(vm.TicketInfo.LinkId, loggedInUserId, token);\r\n //vm.getAllActivitiesForJob();\r\n } else {\r\n vm.getAllActivitiesForJob();\r\n }\r\n\r\n } else {\r\n vm.getAllActivitiesForJob();\r\n }\r\n angular.copy(vm.TicketInfo.TemplateModel, vm.TemplateData);\r\n for (var index = 0; index < vm.TemplateData.SectionList.length; index++) {\r\n if (vm.TemplateData.SectionList[index].Action == 'Supervisor' && vm.TemplateData.SectionList[index].SectionName == 'Supervisor') {\r\n vm.SuperVisorData = vm.TemplateData.SectionList[index].ItemList;\r\n }\r\n }\r\n vm.getCallTypeList(vm.TicketInfo.JobType, vm.SuperVisorData);\r\n vm.ListActionWise = SeperateSectionAndItems(vm.TemplateData.SectionList, 'Action');\r\n vm.TicketInfo.StartTime = new moment(vm.TicketInfo.StartTime, \"YYYY-MM-DDTHH:mm:ssZ\");\r\n vm.TicketInfo.EndTime = new moment(vm.TicketInfo.EndTime, \"YYYY-MM-DDTHH:mm:ssZ\");\r\n //model for ticket edit\r\n vm.TicketInfoEdit = {\r\n ConsumerName: vm.TicketInfo.ConsumerName,\r\n ConsumerContact: vm.TicketInfo.ConsumerContact,\r\n Address1: vm.TicketInfo.Address1,\r\n Address2: vm.TicketInfo.Address2,\r\n Pincode: vm.TicketInfo.Pincode,\r\n StartTime: vm.TicketInfo.StartTime,\r\n EndTime: vm.TicketInfo.EndTime\r\n }\r\n\r\n vm.getAllStates();\r\n if (vm.TicketInfo.State) {\r\n vm.getCities(vm.TicketInfo.State);\r\n }\r\n vm.JobTypeForModal = vm.TicketInfo.JobType;\r\n vm.CallTypeForModal = vm.SuperVisorData[0].ItemValue;\r\n vm.GetCompletionRemarkList();\r\n JobViewService.getTemplateByName(vm.TicketInfo.Template, token, loggedInUserId, function (data) {\r\n vm.templateData = data;\r\n }, vm.showFailure);\r\n },\r\n function (error) {\r\n //$log.log(error);\r\n });\r\n\r\n }\r\n GetTicketView();\r\n\r\n vm.onChangeLinkTicket = function (linkedId) {\r\n $state.go('index.JobView',{ticketId:linkedId,type:'linked'},{reload:true});\r\n }\r\n\r\n vm.GetTicketStatus = function (linkId, reqUserId, token) {\r\n JobViewService.GetTicketStatus(linkId, reqUserId, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.LinkTicketStatus = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.getDropDownOptions = function (SectionName, ItemName) {\r\n var options = [];\r\n if (vm.templateData && vm.templateData.SectionList) {\r\n angular.forEach(vm.templateData.SectionList, function (l) {\r\n if (l.SectionName == SectionName && l.ItemList && l.ItemList.length > 0) {\r\n angular.forEach(l.ItemList, function (item) {\r\n if (item.ItemName == ItemName && item.ItemType == \"Dropdown Type\" && item.field_options && item.field_options.options && item.field_options.options.length > 0) {\r\n //$log.log(\"item.field_options.options\", item.field_options.options);\r\n options = item.field_options.options;\r\n }\r\n })\r\n }\r\n })\r\n }\r\n return options;\r\n }\r\n\r\n vm.getDropDownOptionsForCheckboxList = function (SectionName, ItemName) {\r\n var options = [];\r\n if (vm.templateData && vm.templateData.SectionList) {\r\n angular.forEach(vm.templateData.SectionList, function (l) {\r\n if (l.SectionName == SectionName && l.ItemList && l.ItemList.length > 0) {\r\n angular.forEach(l.ItemList, function (item) {\r\n if (item.ItemName == ItemName && item.ItemType == \"CheckBoxList DropDown Type\" && item.field_options && item.field_options.options && item.field_options.options.length > 0) {\r\n //$log.log(\"item.field_options.options\", item.field_options.options);\r\n options = item.field_options.options;\r\n }\r\n })\r\n }\r\n })\r\n }\r\n return options;\r\n }\r\n\r\n function SeperateSectionAndItems(itemlist, property) {\r\n var hash = {};\r\n var second_property = 'Section';\r\n var sectionList = [];\r\n for (var itemNum = 0; itemNum < itemlist.length; itemNum++) {\r\n if (itemlist[itemNum].Action == 'Supervisor' || itemlist[itemNum].Action == 'systemInfo') {\r\n continue;\r\n }\r\n if (!hash[itemlist[itemNum][property]])\r\n hash[itemlist[itemNum][property]] = [];\r\n hash[itemlist[itemNum][property]].push(itemlist[itemNum]);\r\n }\r\n\r\n for (var action in hash) {\r\n var sechash = {};\r\n var nestedSectionList = hash[action];\r\n for (var itemIndex = 0; itemIndex < nestedSectionList.length; itemIndex++) {\r\n if (!sechash[nestedSectionList[itemIndex][second_property]])\r\n sechash[nestedSectionList[itemIndex][second_property]] = [];\r\n sechash[nestedSectionList[itemIndex][second_property]].push(nestedSectionList[itemIndex]);\r\n }\r\n hash[action] = sechash;\r\n }\r\n\r\n for (var actionName in hash) {\r\n for (var secName in hash[actionName]) {\r\n var section = {};\r\n section.SectionList = [];\r\n section.Section = secName;\r\n for (var i = 0; i < hash[actionName][secName].length; i++) {\r\n section.SectionList.push(hash[actionName][secName][i]);\r\n }\r\n section.Action = actionName;\r\n sectionList.push(section);\r\n }\r\n }\r\n return sectionList;\r\n }\r\n vm.getImageData = function (data) {\r\n\t\t\tif (data) {\r\n\t\t\t\treturn data;\r\n\t\t\t} else {\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\t}\r\n\t\t}\r\n vm.PlotItemSectionAndActionWise = function (itemType) {\r\n vm.PlottedItem = '';\r\n\r\n switch (itemType) {\r\n case 'Multiple Picture Type':\r\n vm.PlottedItem = '
' +\r\n '
' +\r\n // '
' +\r\n // '
';\r\n '
' +\r\n '' +\r\n '\"image-1\"' +\r\n '' +\r\n '
';\r\n break;\r\n\r\n case 'Signature Type':\r\n vm.PlottedItem = '
' +\r\n '' +\r\n '
' +\r\n '' +\r\n '\"image-1\"' +\r\n '' +\r\n '
';\r\n break;\r\n // \r\n // \"image-1\"\r\n // \r\n\r\n case 'Video Type':\r\n vm.PlottedItem = '
'+\r\n '' +\r\n '
' +\r\n '
' +\r\n '
';\r\n break;\r\n\r\n case 'CheckBoxList DropDown Type':\r\n vm.PlottedItem = '
' +\r\n '
' +\r\n '{{itemOption.label}}
';\r\n break;\r\n\r\n case 'Character FilteredTextBoxField':\r\n case 'Bigger Textbox':\r\n case 'Date Type':\r\n case 'Dropdown Type':\r\n case 'Edit Enabled':\r\n case 'Phone Type':\r\n case 'Decimal TextBox Type':\r\n case 'Numeric FilteredTextBoxField':\r\n case 'Instruction Type':\r\n case 'Scan Barcode Type':\r\n case 'Email':\r\n default:\r\n vm.PlottedItem = '
' +\r\n '
' +\r\n '

'\r\n break;\r\n }\r\n return vm.PlottedItem;\r\n }\r\n\r\n vm.EditItemSectionAndActionWise = function (itemType) {\r\n vm.PlottedItem = '';\r\n\r\n switch (itemType) {\r\n\r\n case 'Dropdown Type':\r\n vm.PlottedItem = '';\r\n break;\r\n\r\n case 'Date Type':\r\n vm.PlottedItem = ''\r\n + '';\r\n break;\r\n\r\n case 'Multiple Picture Type':\r\n vm.PlottedItem = ''\r\n + ''\r\n + '';\r\n break;\r\n case 'Signature Type':\r\n vm.PlottedItem = ''\r\n + ''\r\n + '';\r\n break;\r\n // case 'Multiple Picture Type':\r\n // vm.PlottedItem = ''\r\n // +''\r\n // +'';\r\n // break;\r\n\r\n // case 'CheckBoxList DropDown Type':\r\n // vm.PlottedItem = '';\r\n // break;\r\n case 'CheckBoxList DropDown Type':\r\n vm.PlottedItem = '';\r\n break;\r\n case 'Video Type':\r\n case 'Character FilteredTextBoxField':\r\n case 'Bigger Textbox':\r\n case 'Edit Enabled':\r\n case 'Phone Type':\r\n case 'Decimal TextBox Type':\r\n case 'Numeric FilteredTextBoxField':\r\n case 'Instruction Type':\r\n case 'Scan Barcode Type':\r\n case 'Email':\r\n default:\r\n vm.PlottedItem = '';\r\n break;\r\n }\r\n return vm.PlottedItem;\r\n }\r\n\r\n vm.clickOnFileControl = function (controlName) {\r\n //angular.element(\"#image\").trigger(\"click\");\r\n angular.element(\"input[type='file'][name='\" + controlName + \"']\").trigger(\"click\");\r\n }\r\n\r\n $scope.upload = function (obj, $index) {\r\n // $log.log(\"i\",$index);\r\n var elem = obj.target || obj.srcElement;\r\n vm.ImageArray = [];\r\n for (i = 0; i < item.ItemValue.length; i++) {\r\n var file = item.ItemValue[i];\r\n vm.ImageArray.push(elem.files[i]);\r\n var reader = new FileReader();\r\n reader.onload = function (e) {\r\n //$scope.images.push(e.target.result);\r\n $scope.display = e.target.result;\r\n vm.tempImg = e.target.result;\r\n // $log.log('file',vm.tempImg);\r\n $scope.$apply();\r\n }\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n vm.OpenTicketEditModal = function (action) {\r\n vm.ModalActionWithValuesList = {}\r\n vm.currentStepModel = action.action;\r\n currentStepName = vm.currentStepModel.Action;\r\n ticketEditModalInstance = $uibModal.open({\r\n templateUrl: 'ticketEdit_modal.html',\r\n scope: $scope\r\n });\r\n angular.copy(action.action, vm.ModalActionWithValuesList);\r\n }\r\n\r\n vm.CloseModal = function () {\r\n ticketEditModalInstance.close();\r\n }\r\n vm.getVideoUrl = function (url) {\r\n if (url) {\r\n return $sce.trustAsResourceUrl(ImageUrl + '/' + url+'?autoplay=0');\r\n } else {\r\n return \"assets/images/patterns/placeholder.png\";\r\n }\r\n }\r\n\r\n vm.UpdateStep = function () {\r\n\r\n var formData = new FormData();\r\n\r\n for (var ticketmodelIndex = 0; ticketmodelIndex < vm.TicketInfo.TemplateModel.SectionList.length; ticketmodelIndex++) {\r\n var Action = vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].Action;\r\n var section = vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].SectionName;\r\n if (Action == currentStepName) {\r\n for (var currentModalIndex = 0; currentModalIndex < vm.ModalActionWithValuesList.SectionList.length; currentModalIndex++) {\r\n if (section == vm.ModalActionWithValuesList.SectionList[currentModalIndex].SectionName) {\r\n\r\n vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].ItemList = vm.ModalActionWithValuesList.SectionList[currentModalIndex].ItemList;\r\n angular.forEach(vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].ItemList, function (item) {\r\n if (item.ItemType == 'Date Type') {\r\n\r\n item.ItemValue = moment(item.ItemValue).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\");\r\n }\r\n // else if (item.ItemType == 'Signature Type') {\r\n // formData.append(item.ItemName,\"image\");\r\n // item.ItemValue = \"image\"\r\n // }\r\n else if (item.ItemType == 'CheckBoxList DropDown Type') {\r\n item.field_options.options = [];\r\n if (item.ItemValues && item.ItemValues.length > 0) {\r\n\r\n for (var i = 0; i < item.ItemValues.length; i++) {\r\n var obj = { \"label\": item.ItemValues[i] };\r\n // obj.push()\r\n item.field_options.options.push(obj);\r\n }\r\n }\r\n\r\n //item.field_options.options.push(item.ItemValue);\r\n }\r\n else if (item.ItemType == 'Multiple Picture Type' || item.ItemType == 'Signature Type') {\r\n if (vm.ImageArray[section + '_' + item.ItemName]) {\r\n vm.ImageArray[section + '_' + item.ItemName].name = vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name;\r\n item.ItemValue = vm.TicketInfo.TicketId + '_' + Math.random().toString(36).substring(7) + new Date().getTime() + vm.ImageArray[section + '_' + item.ItemName].name;\r\n item.ImageName = item.ItemValue;\r\n formData.append(vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name, vm.ImageArray[section + '_' + item.ItemName], item.ImageName);\r\n\r\n }\r\n // vm.ImageArray[section+'_'+item.ItemName].name = vm.TicketInfo.TicketId+'_'+vm.ImageArray[section+'_'+item.ItemName].name;\r\n // item.ItemValue = vm.TicketInfo.TicketId+'_'+ Math.random().toString(36).substring(7) + new Date().getTime()+vm.ImageArray[section+'_'+item.ItemName].name;\r\n // item.ImageName = item.ItemValue;\r\n // formData.append(vm.TicketInfo.TicketId+'_'+vm.ImageArray[section+'_'+item.ItemName].name,vm.ImageArray[section+'_'+item.ItemName],item.ImageName);\r\n // $log.log('vm.ImageArray',vm.ImageArray);\r\n }\r\n })\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ticketEditModalInstance.close();\r\n // for(var i=0; i 0) {\r\n vm.cities = [];\r\n JobViewService.getAllCity(loggedInUserId, state,token).then(function (resp) {\r\n vm.cities = resp.data;\r\n angular.forEach(vm.cities, function (c) {\r\n if (vm.TicketInfo.City) {\r\n var city = vm.TicketInfo.City.toUpperCase();\r\n if (c == city) {\r\n vm.TicketInfoEdit.City = c;\r\n }\r\n }\r\n })\r\n }, vm.showFailure);\r\n }\r\n\r\n }\r\n\r\n vm.getAllStates = function () {\r\n JobViewService.getAllState(loggedInUserId,token).then(function (resp) {\r\n vm.states = resp.data;\r\n angular.forEach(vm.states, function (s) {\r\n if (s == vm.TicketInfo.State) {\r\n vm.TicketInfoEdit.State = s;\r\n }\r\n });\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.jobAddressModal = {};\r\n vm.editJobAddress = function () {\r\n\r\n vm.TicketInfoEdit['ConsumerName'] = vm.TicketInfo.ConsumerName;\r\n vm.TicketInfoEdit['ConsumerContact'] = vm.TicketInfo.ConsumerContact;\r\n vm.TicketInfoEdit['Address1'] = vm.TicketInfo.Address1;\r\n vm.TicketInfoEdit['Address2'] = vm.TicketInfo.Address2;\r\n vm.TicketInfoEdit['Pincode'] = vm.TicketInfo.Pincode;\r\n vm.TicketInfoEdit['StartTime'] = vm.TicketInfo.StartTime;\r\n vm.TicketInfoEdit['EndTime'] = vm.TicketInfo.EndTime;\r\n vm.TicketInfoEdit['Region'] = vm.TicketInfo.Region;\r\n vm.TicketInfoEdit['SubRegion'] = vm.TicketInfo.SubRegion;\r\n\r\n if (vm.states && !vm.TicketInfoEdit.State || vm.TicketInfoEdit.State != vm.TicketInfo.State) {\r\n angular.forEach(vm.states, function (s) {\r\n if (s == vm.TicketInfo.State) {\r\n vm.TicketInfoEdit.State = s;\r\n vm.getCities(vm.TicketInfo.State);\r\n }\r\n });\r\n }\r\n\r\n vm.jobAddressModal = $uibModal.open({\r\n templateUrl: 'editJobAddress.html',\r\n scope: $scope,\r\n windowClass: 'schedulerModal'\r\n });\r\n }\r\n\r\n vm.closeJobAddress = function () {\r\n vm.jobAddressModal.close();\r\n }\r\n\r\n vm.updateJobAddress = function () {\r\n vm.jobAddressForm.submitted = true;\r\n if (vm.jobAddressForm.$valid) {\r\n var data = {\r\n \"ConsumerContact\": vm.TicketInfoEdit.ConsumerContact,\r\n \"Address1\": vm.TicketInfoEdit.Address1,\r\n \"Address2\": vm.TicketInfoEdit.Address2,\r\n \"ConsumerName\": vm.TicketInfoEdit.ConsumerName,\r\n \"State\": vm.TicketInfoEdit.State,\r\n \"City\": vm.TicketInfoEdit.City,\r\n \"Pincode\": vm.TicketInfoEdit.Pincode,\r\n \"StartTime\": vm.TicketInfoEdit.StartTime,\r\n \"EndTime\": vm.TicketInfoEdit.EndTime,\r\n \"Region\": vm.TicketInfo.Region,\r\n \"SubRegion\": vm.TicketInfo.SubRegion,\r\n\r\n };\r\n\r\n JobViewService.saveTicket(loggedInUserId, vm.TicketInfo.TicketId, data, token, function (res) {\r\n vm.showSuccess(\"Success\", res);\r\n vm.jobAddressModal.close();\r\n window.location.reload(true);\r\n }, vm.showFailure);\r\n } else {\r\n\r\n }\r\n }\r\n\r\n vm.jobAppointmentModal = {};\r\n vm.editJobAppointment = function () {\r\n vm.TicketInfoEdit['ConsumerName'] = vm.TicketInfo.ConsumerName;\r\n vm.TicketInfoEdit['ConsumerContact'] = vm.TicketInfo.ConsumerContact;\r\n vm.TicketInfoEdit['Address1'] = vm.TicketInfo.Address1;\r\n vm.TicketInfoEdit['Address2'] = vm.TicketInfo.Address2;\r\n vm.TicketInfoEdit['Pincode'] = vm.TicketInfo.Pincode;\r\n vm.TicketInfoEdit['StartTime'] = vm.TicketInfo.StartTime;\r\n vm.TicketInfoEdit['EndTime'] = vm.TicketInfo.EndTime;\r\n\r\n if (vm.states && !vm.TicketInfoEdit.State || vm.TicketInfoEdit.State != vm.TicketInfo.State) {\r\n angular.forEach(vm.states, function (s) {\r\n if (s == vm.TicketInfo.State) {\r\n vm.TicketInfoEdit.State = s;\r\n vm.getCities(vm.TicketInfo.State);\r\n }\r\n });\r\n }\r\n\r\n vm.jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'editJobAppointment.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeJobAppointment = function () {\r\n vm.jobAppointmentModal.close();\r\n }\r\n\r\n vm.updateJobAppointment = function () {\r\n vm.jobAppointmentForm.submitted = true;\r\n if (vm.jobAppointmentForm.$valid) {\r\n JobViewService.updateStartTime(vm.TicketInfo.TicketId, loggedInUserId, vm.TicketInfoEdit.StartTime, vm.TicketInfoEdit.EndTime, token, function (res) {\r\n vm.showSuccess(\"Success\", \"Start time updated successfully\");\r\n vm.jobAppointmentModal.close();\r\n GetTicketView();\r\n }, vm.showFailure);\r\n }\r\n }\r\n\r\n vm.getReadableTime = function (time) {\r\n vm.timeDisplay = \"\";\r\n if (typeof time == \"object\") {\r\n vm.timeDisplay = time.format(\"DD/MMM/YY LTS\");\r\n }\r\n return vm.timeDisplay;\r\n }\r\n\r\n vm.getEndTime = function () {\r\n vm.TicketInfoEdit.EndTime = moment(vm.TicketInfoEdit.StartTime);\r\n vm.TicketInfoEdit.EndTime.add(\"6\", \"h\");\r\n return vm.TicketInfoEdit.EndTime;\r\n }\r\n\r\n vm.basicPopup = function(ticketId){\r\n // https://perf.mymobiforce.com/?#/Login\r\n var url = UIURL + \"/#\"+'/HardwareDetails/'+ ticketId\r\n // var url = 'http://localhost:3000/#/HardwareDetails/'+ ticketId;\r\n $window.open( url,'HardwareDetails', 'width=1000,height=500');\r\n }\r\n //CompleteJob Model\r\n vm.OpencompleteModel = function () {\r\n vm.SelectedCompletionRemarkList = [];\r\n var ele = {\r\n description:'',\r\n remark: '',\r\n SelectedHWDetailList : [],\r\n // subremarklist: [],\r\n // selectedsubremarklist: [],\r\n\r\n }\r\n vm.SelectedCompletionRemarkList.push(ele);\r\n vm.SelectedHWDetailList = [];\r\n var temp = {\r\n \"Skill\": \"\",\r\n \"Code\": \"\",\r\n \"Name\": \"\",\r\n \"Description\": \"\",\r\n \"Category\": \"\",\r\n \"HardwareFrom\":\"\"\r\n }\r\n // vm.SelectedHWDetailList.push(temp);\r\n vm.JobTypeForModal = vm.TicketInfo.JobType;\r\n vm.CallTypeForModal = vm.SuperVisorData[0].ItemValue;\r\n\r\n CompleteJobModal = $uibModal.open({\r\n templateUrl: 'CompleteJob.html',\r\n backdrop: 'static',\r\n windowClass: 'schedulerModal',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n // resolve : {\r\n // items : function(){\r\n // return {\r\n // TicketId:ticketId\r\n // };\r\n // }\r\n // },\r\n });\r\n\r\n }\r\n\r\n vm.CloseCompleteJobModal = function () {\r\n vm.callTypeRemark = '';\r\n vm.completeremark = '';\r\n vm.completeremark1 = ''\r\n CompleteJobModal.close();\r\n }\r\n\r\n vm.GetCompletionRemarkList = function () {\r\n JobViewService.GetCompletionRemarkList(loggedInUserId, token, vm.JobTypeForModal, vm.CallTypeForModal).then(function (res) {\r\n vm.RemarkCollection = res.data.RemarkCollectionList;\r\n vm.CompletionRemarkList = [];\r\n if(vm.RemarkCollection)\r\n {\r\n for (var i = 0; i < vm.RemarkCollection.length; i++) {\r\n vm.CompletionRemarkList.push(vm.RemarkCollection[i].CompletionRemark);\r\n } \r\n } \r\n });\r\n }\r\n\r\n //Secondary H/W List\r\n vm.getHWSkillList = function (detailType, parentIndex, index) {\r\n //if (detailType == 'Primary') {\r\n JobViewService.GetHardwareSkillList(loggedInUserId, detailType, token).then(function (resp) {\r\n vm.SelectedCompletionRemarkList[parentIndex].SelectedHWDetailList[index].HWSkillList = resp.data;\r\n //vm.HWSkillList[index][0] = resp.data;\r\n //console.log(vm.HWSkillList[index]);\r\n\r\n })\r\n //} \r\n\r\n }\r\n\r\n vm.getHWDetailBySkill_CategoryList = function (detailType, skill, parentIndex, index) {\r\n var value = detailType + ',' + skill;\r\n var fields = 'Category,Skill';\r\n JobViewService.GetHardwareDetailByFields_ValueList(loggedInUserId, fields, value, token).then(function (resp) {\r\n //vm.HardwareDetailList[index] = resp.data;\r\n vm.SelectedCompletionRemarkList[parentIndex].SelectedHWDetailList[index].HardwareDetailList = resp.data;\r\n //console.log(vm.HardwareDetailList[index]);\r\n })\r\n\r\n }\r\n\r\n vm.onselectEvent = function (name, parentIndex, index) {\r\n var hwdetailslist = vm.SelectedCompletionRemarkList[parentIndex].SelectedHWDetailList[index].HardwareDetailList;\r\n for(var i= 0; i= 0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n if (accountConfig && accountConfig.MenuListModel) {\r\n for (var i = 0; i < accountConfig.MenuListModel.length; i++) {\r\n if (accountConfig.MenuListModel[i].MenuName == \"Jobs\") {\r\n for (var j = 0; j < accountConfig.MenuListModel[i].SubMenusList.length; j++) {\r\n if (accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == \"All Jobs\") {\r\n return accountConfig.MenuListModel[i].SubMenusList[j].UpdatePermission.split(\",\").indexOf($localStorage.loggedInUser_Role) >= 0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // vm.getTatForJob = function(){\r\n // JobViewService.getTatForJob(token, loggedInUserId, vm.TicketId, function(data){\r\n // vm.jobTatInfo = data;\r\n // vm.jobTatInfo.CompletionDate = moment(vm.jobTatInfo.CompletionDate, \"YYYY-MM-DD HH:mm:ss\").format(\"DD/MM/YYYY HH:mm a\");\r\n // }, vm.showFailure);\r\n // }\r\n // vm.getTatForJob();\r\n\r\n\r\n function SplitTime(numberOfHours) {\r\n var Days = Math.floor(numberOfHours / 24);\r\n var Remainder = numberOfHours % 24;\r\n var Hours = Math.floor(Remainder);\r\n var Minutes = Math.floor(60 * (Remainder - Hours));\r\n return (Days + \" Day's \" + Hours + \" Hours \" + Minutes + \" Minutes\")\r\n }\r\n vm.GetStatusActivityInPie = function () {\r\n\r\n JobViewService.GetStatusActivityInPie(token, loggedInUserId, vm.TicketId, function (data) {\r\n vm.pieCharts['total'] = [];\r\n vm.pieCharts['partner'] = [];\r\n vm.bifurcateData = data;\r\n\r\n //var json = JSON.parse(data);\r\n var value = '';\r\n for (var key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n value = data[key];\r\n }\r\n }\r\n if (value.hasOwnProperty('Hcl_Tat')) {\r\n vm.TotalTat = SplitTime(value['Hcl_Tat']);\r\n } if (value.hasOwnProperty('Partner_Tat')) {\r\n vm.PartnerTat = SplitTime(value['Partner_Tat']);\r\n }\r\n for (var key in value) {\r\n if (value.hasOwnProperty(key)) {\r\n var obj = {};\r\n obj.name = key;\r\n obj.y = value[key];\r\n if (obj.name !== 'Partner_Tat' && obj.name !== 'Hcl_Tat') {\r\n if (obj.y != 0) {\r\n vm.pieCharts['total'].push(obj);\r\n }\r\n\r\n }\r\n if (obj.name !== 'Partner_Tat' && obj.name !== 'Hcl_Tat' && obj.name !== 'customer' && obj.name !== 'hcl' && obj.name !== 'others') {\r\n if (obj.y != 0) {\r\n vm.pieCharts['partner'].push(obj);\r\n }\r\n }\r\n\r\n }\r\n }\r\n $timeout(function () {\r\n vm.createPieChart('total', 'Status chart(in hrs)');\r\n }, 1000)\r\n\r\n //vm.jobTatInfo.CompletionDate = moment(vm.jobTatInfo.CompletionDate, \"YYYY-MM-DD HH:mm:ss\").format(\"DD/MM/YYYY HH:mm a\");\r\n }, vm.showFailure);\r\n }\r\n // vm.GetStatusActivityInPie();\r\n\r\n // vm.GetActivityInPie = function(){\r\n\r\n // JobViewService.GetActivityInPie(token, loggedInUserId, vm.TicketId, function(data){\r\n // vm.pieCharts['Activity'] = {};\r\n // vm.pieCharts['Activity'].value = data;\r\n // $timeout(function(){\r\n // vm.createPieChart('Activity','Activity chart(in hrs)');\r\n // },1000)\r\n\r\n // //vm.jobTatInfo.CompletionDate = moment(vm.jobTatInfo.CompletionDate, \"YYYY-MM-DD HH:mm:ss\").format(\"DD/MM/YYYY HH:mm a\");\r\n // }, vm.showFailure);\r\n // }\r\n // vm.GetActivityInPie();\r\n\r\n\r\n\r\n //Plot Pie Charts\r\n vm.createPieChart = function (ticketId, title) {\r\n vm.showPieChart = vm.showPieChart || {};\r\n vm.tempShowPieChart = vm.tempShowPieChart || {};\r\n vm.showPieChart[ticketId] = true;\r\n $timeout(function () {\r\n vm.tempShowPieChart[ticketId] = false;\r\n if (vm.pieCharts[ticketId]) {\r\n\r\n // for(var i=0; i0){\r\n // vm.tempShowPieChart[ticketId]=true;\r\n // }\r\n // }\r\n //vm.showPieChart[ticketId]=vm.tempShowPieChart[ticketId];\r\n var chartData = {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie'\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n title: {\r\n text: 'TAT hrs',\r\n align: 'center',\r\n verticalAlign: 'middle',\r\n y: 60\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n tooltip: {\r\n\r\n pointFormatter: function () {\r\n var Days = Math.floor(this.y / 24);\r\n var Remainder = this.y % 24;\r\n var Hours = Math.floor(Remainder);\r\n var Minutes = Math.floor(60 * (Remainder - Hours));\r\n\r\n var val = this.y;\r\n\r\n\r\n return (':' + '' + Days + ' Days ' + Hours + ' Hours ' + Minutes + ' Minutes' + '
');\r\n }\r\n // shared: true, useHTML: true\r\n //pointFormat: '{series.name}: {point.y:.1f}%'\r\n },\r\n plotOptions: {\r\n pie: {\r\n size: \"180%\",\r\n dataLabels: {\r\n\r\n formatter: function () {\r\n // var Days=Math.floor(this.y/24);\r\n // var Remainder=this.y % 24;\r\n // var Hours=Math.floor(Remainder);\r\n // var Minutes=Math.floor(60*(Remainder-Hours));\r\n var pointName = this.point.name.toUpperCase();\r\n // return(pointName + ' ' +Days+\" Day's \"+Hours +\" Hours \"+Minutes+\" Minutes\")\r\n return (pointName + ' ' + this.y + 'hrs')\r\n },\r\n\r\n // format: '{point.name}: {point.y} hrs',\r\n enabled: true,\r\n\r\n distance: 5,\r\n style: {\r\n fontWeight: '',\r\n color: 'black'\r\n }\r\n },\r\n\r\n allowPointSelect: false,\r\n cursor: 'pointer',\r\n // distance: -50,\r\n // dataLabels: {\r\n // format: '{point.name}: {point.y} ',\r\n // enabled: false\r\n // },\r\n\r\n showInLegend: false,\r\n startAngle: -90,\r\n endAngle: 90,\r\n center: ['50%', '100%']\r\n }\r\n },\r\n series: [{\r\n name: '',\r\n colorByPoint: true,\r\n innerSize: '50%',\r\n data: vm.pieCharts[ticketId]\r\n }]\r\n };\r\n if (chartData && chartData.series && chartData.series.length > 0 && chartData.series[0].data\r\n && chartData.series[0].data.length > 0 && chartData.series[0].data[0]) {\r\n //chartData.series[0].data[0].sliced=true;\r\n // chartData.series[0].data[0].selected=true;\r\n }\r\n var chart = new Highcharts.chart(ticketId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n }\r\n }, 1000);\r\n }\r\n\r\n vm.getJobStatusTrackerTime = function (timeInfloatMin) {\r\n var time = \"\";\r\n if (timeInfloatMin && timeInfloatMin > 0) {\r\n var hour = vm.floatToInt(timeInfloatMin / 60);\r\n var min = vm.floatToInt(timeInfloatMin % 60);\r\n if (hour > 0) {\r\n time += hour + \" h \";\r\n }\r\n if (min > 0) {\r\n time += min + \" m \";\r\n }\r\n }\r\n return time;\r\n }\r\n }\r\n vm.getPicUrl = function (pic) {\r\n return ImageUrl + \"/\" + pic;\r\n}\r\n $scope.attachUpdateFollowUp = function(files){\r\n var file = files.files[0];\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.msg|\\.pdf|\\.bmp|\\.xps|\\.doc|\\.docs|\\.xls|\\.xlsx)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.updatefollowFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .jpg,.jpeg,.png,.msg,.pdf,.bmp,.xps,.doc,.xls only.');\r\n }\r\n else\r\n {\r\n var fileExtension = file.name.substr((file.name.lastIndexOf('.') + 1));\r\n console.log (fileExtension);\r\n vm.updatefollowFiles = files.files;\r\n //vm.updatefollowupFilepath = files.files;\r\n if(angular.uppercase(fileExtension)==\"JPG\" || angular.uppercase(fileExtension)==\"JPEG\" || angular.uppercase(fileExtension)==\"PNG\" || angular.uppercase(fileExtension)==\"BMP\") \r\n {\r\n var reader = new FileReader(); \r\n reader.onload = function(event) {\r\n vm.updatefollowupFilepath = event.target.result;\r\n $scope.$apply(); \r\n }\r\n // when the file is read it triggers the onload event above.\r\n reader.readAsDataURL(files.files[0]);\r\n }\r\n else if(angular.uppercase(fileExtension)==\"PDF\")\r\n { \r\n vm.updatefollowupFilepath = \"assets/images/patterns/pdf.PNG\";\r\n $scope.$apply(); \r\n }\r\n else if(angular.uppercase(fileExtension)==\"XPS\")\r\n { \r\n vm.updatefollowupFilepath = \"assets/images/patterns/MSGicon.png\";\r\n $scope.$apply(); \r\n }\r\n else if(angular.uppercase(fileExtension)==\"MSG\")\r\n { \r\n vm.updatefollowupFilepath = \"assets/images/patterns/XPSicon.png\";\r\n $scope.$apply(); \r\n }\r\n else if(angular.uppercase(fileExtension)==\"DOC\" || angular.uppercase(fileExtension)==\"DOCS\")\r\n { \r\n vm.updatefollowupFilepath = \"assets/images/patterns/word_doc.jpg\";\r\n $scope.$apply(); \r\n }\r\n else if(angular.uppercase(fileExtension)==\"XLS\" || angular.uppercase(fileExtension)==\"XLSX\")\r\n { \r\n vm.updatefollowupFilepath = \"assets/images/patterns/XLSicon.jpg\";\r\n $scope.$apply(); \r\n }\r\n }\r\n\r\n }\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n };\r\n vm.changeFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n}\r\n//Follow Up Model\r\nvm.OpenUpdateFollowUpModel = function(followupDocId, ticketId, followupActivity,followupFilepath) { \r\n vm.followup = '';\r\n vm.followupDocId = followupDocId;\r\n vm.followup = followupActivity;\r\n vm.tickId = ticketId;\r\n // vm.updatefollowupFilepath = followupFilepath;\r\n if(followupFilepath)\r\n{\r\n var fileExtension = followupFilepath.substring(followupFilepath.lastIndexOf(\".\") + 1)\r\n\r\nif(angular.uppercase(fileExtension)==\"JPG\" || angular.uppercase(fileExtension)==\"JPEG\" || angular.uppercase(fileExtension)==\"PNG\" || angular.uppercase(fileExtension)==\"BMP\") \r\n { \r\n vm.updatefollowupFilepath = followupFilepath;\r\n \r\n }\r\n else if(angular.uppercase(fileExtension)==\"PDF\")\r\n { \r\n vm.updatefollowupFilepath = \"assets/images/patterns/pdf.PNG\";\r\n \r\n }\r\n else if(angular.uppercase(fileExtension)==\"XPS\")\r\n { \r\n vm.updatefollowupFilepath = \"assets/images/patterns/MSGicon.png\";\r\n \r\n }\r\n else if(angular.uppercase(fileExtension)==\"MSG\")\r\n { \r\n vm.updatefollowupFilepath = \"assets/images/patterns/XPSicon.png\";\r\n \r\n }\r\n else if(angular.uppercase(fileExtension)==\"DOC\" || angular.uppercase(fileExtension)==\"DOCS\")\r\n { \r\n vm.updatefollowupFilepath = \"assets/images/patterns/word_doc.jpg\";\r\n \r\n }\r\n else if(angular.uppercase(fileExtension)==\"XLS\" || angular.uppercase(fileExtension)==\"XLSX\")\r\n { \r\n vm.updatefollowupFilepath = \"assets/images/patterns/XLSicon.jpg\";\r\n \r\n }\r\n}\r\nelse{\r\n vm.updatefollowupFilepath = followupFilepath;\r\n}\r\n\r\n UpdateFollowUpModel = $uibModal.open({\r\n templateUrl: 'UpdateFollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlUpdateFollowUp,\r\n // resolve : {\r\n // items : function(){\r\n // return {\r\n // TicketId:ticketId\r\n // };\r\n // }\r\n // },\r\n}); \r\n}\r\nvm.CloseUpdateFollowUpModel = function () {\r\n UpdateFollowUpModel.close();\r\n}\r\n\r\n\r\nvar ModalInstanceCtrlUpdateFollowUp = function($scope, $rootScope, $uibModalInstance) {\r\n\r\nvm.updateFollowUpStatus = function(){ \r\n if(!vm.followup)\r\n {\r\n alert('Please enter description');\t\t\t\t\t\r\n return;\r\n }\r\n\r\n var data = {};\r\n data = {\r\n \"userId\": loggedInUserId,\r\n \"dateTime\": \"\",\r\n \"activity\": vm.followup,\r\n \"action\": \"FOLLOW_UP\",\r\n \"userName\": \"\",\r\n \"ticketId\": vm.tickId,\r\n \"primaryReason\": \"\",\r\n \"SecondryReason\": \"\",\r\n \"ReasonComment\": \"\",\r\n \"Id\": vm.followupDocId\r\n }\r\n // $log.log('Com',data);\r\n \r\n vm.CloseUpdateFollowUpModel();\r\n JobViewService.FollowUpWithAttachment(data, vm.updatefollowFiles, token, function (res) {\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Follow up update successfully.\");\r\n \r\n $timeout(function () {\r\n if (Role == 'Administrator') {\r\n \r\n $state.go(\"index.HelpDesk\", {\r\n reload: true\r\n });\r\n \r\n }else{\r\n \r\n $state.go(\"index.HelpDesk\", {\r\n reload: true\r\n });\r\n \r\n }\r\n }, 100);\r\n window.location.reload();\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to update follow up. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n \r\n}\r\n\r\n\r\n//Confirmation model popup\r\nvm.OpenConfirmationModelPopup = function(DocId,ticketId) { \r\n vm.DocId = DocId;\r\n vm.tickId = ticketId;\r\n ConfirmationModel = $uibModal.open({\r\n templateUrl: 'ConfirmationModelPopup.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlConfirmation, \r\n}); \r\n}\r\nvm.CloseConfirmationModel = function () {\r\n ConfirmationModel.close();\r\n}\r\n\r\nvar ModalInstanceCtrlConfirmation = function($scope, $rootScope, $uibModalInstance) {\r\n vm.DeleteFollowUp = function(){\r\n vm.CloseConfirmationModel();\r\n JobViewService.DeleteFollowUp(loggedInUserId, vm.DocId, token, function (res) {\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Follow up delete successfully.\"); \r\n $timeout(function () {\r\n if (Role == 'Administrator') { \r\n $state.go(\"index.HelpDesk\", {\r\n reload: true\r\n });\r\n \r\n }else{\r\n \r\n $state.go(\"index.HelpDesk\", {\r\n reload: true\r\n });\r\n \r\n }\r\n }, 100);\r\n window.location.reload();\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to delete follow up. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n \r\n}\r\n\r\n\r\n vm.getCallTypeList = function (jobType, callType) {\r\n vm.CallTypeItemList = [];\r\n if (jobType == 'VSAT') {\r\n if (callType[0].ItemValue == 'Maintenance') {\r\n vm.CallTypeList = [\"IDU replaced. Vsat made up and working\",\r\n \"ODU replaced. Vsat made up and working\",\r\n \"LNBC replaced. Vsat made up and working\",\r\n \"IFL cable replaced. Vsat made up and working\",\r\n \"LNA replaced. Vsat made up and working\",\r\n \"Feed replaced. Vsat made up and working\",\r\n \"Antenna replaced. Vsat made up and working\",\r\n \"Connector replaced. Vsat made up and working\",\r\n \"After antenna alignment Vsat made up and working\",\r\n \"Power issue resolved at customer premises. Vsat has come up and working\",\r\n \"UPS issue has been resolved at customer end. Vsat has come up and working\",\r\n \"Earthing issue has been resolved at customer end. Vsat has come up and working\",\r\n \"After powering ON the equipments. Vsat made up and working\",\r\n \"Hardware rebooted. Vsat made up\",\r\n \"Monkey cage issue resolved. Vsat made up and working\",\r\n \"Others\"\r\n ]\r\n } else if (callType[0].ItemValue == 'Installation') {\r\n vm.CallTypeList = [\"Installation and activation has been done. Vsat is up and working\",\r\n \"Installation done after rectification of power/earthing parameter at customer end\",\r\n \"Others\"\r\n ]\r\n } else if (callType[0].ItemValue == 'Shifting') {\r\n vm.CallTypeList = [\"Shifting of Vsat completed from old premises to new premises\",\r\n \"Shifting of Vsat completed from existing floor to new floor in the same premises\",\r\n \"Shifting of IDU/ODU completed\",\r\n \"Shifting done after rectification of power/earthing parameter at customer end\",\r\n \"Others\"\r\n ]\r\n }\r\n } else if (jobType == 'LeaseLine') {\r\n if (callType[0].ItemValue == 'LLM') {\r\n vm.CallTypeList = [\"Local lead issue has been resolved. Link is up and working\",\r\n \"UG Cable cut restored. Link is up and working\",\r\n \"OFC cut has been restored. Link came up and working\",\r\n \"Mux issue has been resolved. Link has come up and working\",\r\n \"MPLS trunk issue has been resolved. Link is up and working\",\r\n \"NIB routing issue has been resolved. Links are up and working\",\r\n \"Major media failure has been resolved. Links came up and working\",\r\n \"BSNL hardware issue has been resolved. Link is up and working\",\r\n \"Router replaced. Link is up and working\",\r\n \"Switch replaced. Link is up and working\",\r\n \"MLLN modem replaced. Link is up and working\",\r\n \"conventional modem replaced. Link made up\",\r\n \"HWIC card replaced. Link is up and working\",\r\n \"Serial cable replaced. Link is up and working\",\r\n \"OFC media has been restored. Link is up and working\",\r\n \"BSNL wiring issue resolved in the exchange. Link is up and working\",\r\n \"Customer's modem has been replaced. Link is up\",\r\n \"Customer's router has been replaced. Link made up\",\r\n \"No issue found in the link. Customer saying up\",\r\n \"High utilization due to which getting slow connectivity\",\r\n \"LAN issue resolved. Customer is getting connectivity\",\r\n \"PCM issue resolved. Link has come up\",\r\n \"Mux channel issue resolved. Link has come up.\",\r\n \"Routing issue b/w MTNL & BSNL has been resolved. Link has come up\",\r\n \"Power issue resolved in the exchange. Link has come up and working\",\r\n \"UPS issue has been resolved at customer end. Link has come up and working\",\r\n \"Earthing issue has been resolved at customer end. Link has come up and working\",\r\n \"After powering ON the equipments Link made up and working\",\r\n \"Hardware rebooted. Link made up.\",\r\n \"Others\"\r\n ]\r\n } else if (callType[0].ItemValue == 'LLP') {\r\n vm.CallTypeList = [\"Commissioning done after PCM/Channal wiring done\",\r\n \"Commissioning done after replacing MLLN modem\",\r\n \"Commissioning done after completion of MPLS end configuration\",\r\n \"Commissioning done after OFC media preparation\",\r\n \"Commissioning done after allocation of channel\",\r\n \"Commissioning done after replacing router/card\",\r\n \"Commissioning done after replacing serial cable\",\r\n \"Commissioning done after configuring the CE router\",\r\n \"Commissioning done after media preparation b/w MTNL & BSNL\",\r\n \"Commissioning done after installation of new local lead\",\r\n \"Commissioning done after rectification of power/earthing parameter at customer end\",\r\n \"Others\"\r\n ]\r\n } else if (callType[0].ItemValue == 'Upgration') {\r\n vm.CallTypeList = [\"Upgradation done after PCM/Channal wiring done\",\r\n \"Upgradation done after replacing MLLN modem\",\r\n \"Upgradation done after completion of MPLS end configuration\",\r\n \"Upgradation done after OFC media preparation\",\r\n \"Upgradation done after allocation of channel\",\r\n \"Upgradation done after replacing router/card\",\r\n \"Upgradation done after replacing serial cable\",\r\n \"Upgradation done after configuring the CE router\",\r\n \"Upgradation done after media preparation b/w MTNL & BSNL\",\r\n \"Upgradation done after rectification of power/earthing parameter at customer end\",\r\n \"Others\"\r\n ]\r\n } else if (callType[0].ItemValue == 'Shifting') {\r\n vm.CallTypeList = [\"Shifting of link completed from old premises to new premises\",\r\n \"Shifting of link completed from existing floor to new floor in the same premises\",\r\n \"Shifting of exchange completed\",\r\n \"Shifting done after rectification of power/earthing parameter at customer end\",\r\n \"Others\"\r\n ]\r\n } else if (callType[0].ItemValue == 'Installation & Configuration of Device') {\r\n vm.CallTypeList = [\"Router installed. Link made up and working\",\r\n \"Switch installed. Link made up and working\",\r\n \"HWIC card installed. Link made up and working\",\r\n \"Serial cable installed. Link made up and working\",\r\n \"MLLN modem installed. Link made up and working\",\r\n \"Router/MLLN modem/switch installed at customer end\",\r\n \"UPS installed at customer end. Link made up and working\",\r\n \"Installation done after rectification of power/earthing parameter at customer end\",\r\n \"Others\"\r\n ]\r\n }\r\n }\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('JobBidCreationController', function ($stateParams,jobBidCreationService, $window, $log, $q, $compile, DTOptionsBuilder, DTColumnBuilder,$localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n\r\n var vm = this;\r\n\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n \r\n if (!loggedinUser) {\r\n $state.go('index.Login', {\r\n reload: true\r\n });\r\n }\r\n else\r\n {\r\n vm.cloneticketid = $stateParams.cloneticketid;\r\n }\r\n if ($localStorage.accountConfig) {\r\n if ($localStorage.accountConfig.EnableRegion) {\r\n vm.EnableRegion = $localStorage.accountConfig.EnableRegion;\r\n }\r\n vm.IsPCLink = $localStorage.accountConfig.IsPCLink;\r\n }else{\r\n vm.EnableRegion = false;\r\n }\r\n\r\n // vm.GSTPercentange = 5;\r\n var token = $localStorage.token;\r\n\r\n vm.CustomizedCommission = $localStorage.accountConfig.CustomizedCommission;\r\n vm.MobiforceCommission = $localStorage.accountConfig.MobiforceCommissionPercentage;\r\n var accountConfig = $localStorage.accountConfig;\r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n vm.sameAddress = false;\r\n vm.LineItem='';\r\n vm.disableCreate = false;\r\n vm.address = {};\r\n vm.contactPerson = '';\r\n vm.contactNumber = '';\r\n vm.jobType ='';\r\n vm.RegionList = '';\r\n vm.SubRegionList = '';\r\n vm.customerList = [];\r\n vm.projectList = [];\r\n vm.jobId = '';\r\n vm.templateList = [];\r\n vm.skills = [];\r\n vm.locations = [];\r\n vm.ItemValue = '';\r\n vm.serviceType = '';\r\n vm.schedulingrules = '';\r\n vm.showSchedulingRules = false;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.DefaultCustomer = vm.getAccountConfigSetting('DefaultCustomer');\r\n vm.LocationMapping = vm.getAccountConfigSetting('LocationMapping');\r\n vm.DefaultProject = vm.getAccountConfigSetting('DefaultProject');\r\n vm.DefaultTemplate = vm.getAccountConfigSetting('DefaultTemplate');\r\n console.log('Default',vm.DefaultTemplate,vm.DefaultProject,vm.DefaultCustomer);\r\n vm.states = [{ \"state\": \"Loading...\" }];\r\n vm.cities = [{ \"city\": \"\" }];\r\n vm.selectedCustomer = \"\";\r\n vm.selectedProject = \"\";\r\n vm.selectedTemplate = \"\";\r\n vm.selectedLocation = \"\";\r\n vm.selectedProject.GetFenceRange = 0;\r\n vm.Region = '';\r\n vm.SubRegion = '';\r\n vm.ticketPrice = \"\";\r\n vm.freelancerPrice = \"\";\r\n vm.tPrice = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.freelancerPricetemp = \"\";\r\n vm.bidDuration = new Date(2019,1,1,0,30,0,0);\r\n// vm.startTime = moment();\r\n// vm.endTime = moment();\r\n vm.AppointmentType = 0;\r\n vm.ScopeWork = {};\r\n vm.ScopeWorkPath= {};\r\n vm.SpareTransportType= {};\r\n vm.Courier= {};\r\n vm.PickUp= {};\r\n vm.PickUpDrop= {};\r\n if(vm.VerticalName == 'Spectro Labs'){\r\n vm.description = \"Water Sample Collection\";\r\n}else {\r\n vm.description = \"\";\r\n vm.showRateCard = true;\r\n}\r\nvm.priority = \"\";\r\nvm.cloneReason =\"\";\r\nvm.monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\r\n\"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\r\n];\r\nvm.monthNames3 = [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\",\r\n\"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"\r\n];\r\n\r\nvm.changeAppointmentType = function(){\r\n var dt = new Date();\r\n dt.setMinutes(dt.getMinutes() + 30);\r\n vm.startTime = dt;\r\n // vm.startTime = new Date()\r\n var edt = new Date();\r\n edt.setMinutes(edt.getMinutes() + 30);\r\n edt.setHours(edt.getHours() + 4);\r\n vm.endTime = edt;\r\n // vm.endTime = new Date();\r\n}\r\nvm.changeAppointmentType();\r\n\r\nvm.jobOccurrance = {\r\n sampleDate: new Date(),\r\n start_date: new Date(),\r\n end_date: new Date(),\r\n status: false,\r\n frequency: \"ONCE\",\r\n once: \"ONCE\",\r\n daily: \"DAILY\",\r\n weekly: \"WEEKLY\",\r\n cronExpression: \"EXPRESSION\",\r\n monthly: \"MONTHLY\",\r\n input_of_week: {\r\n mon: false,\r\n tue: false,\r\n wed: false,\r\n thu: false,\r\n fri: false,\r\n sat: false,\r\n sun: false\r\n },\r\n input_for_month: {\r\n option: \"first_day\",\r\n first_day: \"first_day\",\r\n last_day: \"last_day\",\r\n specific_date: \"specific_date\",\r\n date: 1\r\n },\r\n specific_date_range: [],\r\n displayDate: function (date) {\r\n var date = new Date(date);\r\n return date.getDate() + \" \" + vm.monthNames[date.getMonth()] + \" \" + date.getFullYear();\r\n }\r\n};\r\n\r\nfor (var i = 1; i < 32; i++) {\r\n vm.jobOccurrance.specific_date_range.push({ value: i, label: i });\r\n}\r\n\r\njobBidCreationService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\njobBidCreationService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n\r\n\r\nvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\nvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\r\nvm.resetJobOccurranceDate = function () {\r\n vm.jobOccurrance.start_date = new Date();\r\n var endDate = new Date();\r\n if (vm.jobOccurrance.frequency == vm.jobOccurrance.daily) {\r\n endDate.setMonth(endDate.getMonth() + 1);\r\n } else if (vm.jobOccurrance.frequency == vm.jobOccurrance.weekly) {\r\n endDate.setMonth(endDate.getMonth() + 3);\r\n } else if (vm.jobOccurrance.frequency == vm.jobOccurrance.monthly) {\r\n endDate.setFullYear(endDate.getFullYear() + 1);\r\n }\r\n vm.jobOccurrance.end_date = endDate;\r\n}\r\n\r\n\r\nvm.getCustomerCallback = function (customers) {\r\n vm.customerList = customers;\r\n if (vm.DefaultCustomer!=null || vm.DefaultCustomer!='') {\r\n angular.forEach(vm.customerList,function(d){\r\n if (d.CompanyName == vm.DefaultCustomer) {\r\n vm.selectedCustomer = d;\r\n vm.selectCustomer(vm.selectedCustomer);\r\n //console.log('vm.selectedCustomer',vm.selectedCustomer);\r\n }\r\n })\r\n }\r\n}\r\n\r\nfunction GetTicketForClone()\r\n{\r\n if(vm.cloneticketid)\r\n {\r\n jobBidCreationService.GetJobTicket(vm.cloneticketid, token, loggedinUser).then(function (resp) {\r\n vm.TicketInfo = resp.data;\r\n vm.jobId = vm.TicketInfo.JobId;\r\n vm.description = vm.TicketInfo.JobDescription;\r\n vm.priority = vm.TicketInfo.Priority;\r\n // vm.jobType = vm.TicketInfo.JobType;\r\n vm.selectedCustomer = vm.TicketInfo.CustomerName;\r\n vm.selectedProject = vm.TicketInfo.ProjectName;\r\n vm.contactPerson = vm.TicketInfo.ConsumerName;\r\n vm.contactNumber = vm.TicketInfo.ConsumerContact;\r\n vm.address.Address1 = vm.TicketInfo.Address1;\r\n vm.address.Address2 = vm.TicketInfo.Address2;\r\n vm.address.State = vm.TicketInfo.State;\r\n vm.address.City = vm.TicketInfo.City;\r\n vm.address.PinCode = vm.TicketInfo.Pincode;\r\n vm.startTime = new Date(vm.TicketInfo.StartTime);\r\n vm.endTime = new Date(vm.TicketInfo.EndTime);\r\n vm.selectedTemplate = vm.TicketInfo.Template; \r\n vm.bidDuration = new Date(2019,1,1,0,vm.TicketInfo.BidDuration,0,0);\r\n vm.serviceType = vm.TicketInfo.PaymentType?vm.TicketInfo.PaymentType:'Free';\r\n vm.ticketPrice = vm.TicketInfo.BroadcastRate;\r\n vm.LineItem =vm.TicketInfo.IsLineItemAvailable;\r\n //Added by vikash\r\n vm.AppointmentType = vm.TicketInfo.AppointmentType;\r\n vm.ScopeWork = vm.TicketInfo.ScopeWork;\r\n vm.ScopeWorkPath= vm.TicketInfo.ScopeWorkPath;\r\n vm.SpareTransportType= vm.TicketInfo.SpareTransportType;\r\n vm.Courier= vm.TicketInfo.Courier;\r\n vm.PickUp= vm.TicketInfo.PickUp;\r\n vm.PickUpDrop= vm.TicketInfo.PickUpDrop;\r\n \r\n\r\n // vm.selectCustomer(vm.selectedCustomer);\r\n vm.selectProject(vm.selectedProject);\r\n $scope.calculatePrice();\r\n vm.selectTemplate(vm.selectedTemplate);\r\n vm.getAllCities(vm.address.State);\r\n\r\n if(vm.LineItem == true){\r\n $(\"#lineitem\").hide();\r\n \r\n }\r\n },\r\n\r\n \r\n function (error) {\r\n //$log.log(error);\r\n });\r\n }\r\n}\r\n GetTicketForClone();\r\n\r\nvm.GetServiceTax = function(data)\r\n{ \r\n vm.GSTPercentange =data;\r\n}\r\n\r\nvm.GetMobCommission = function(data)\r\n{ \r\n vm.MobiforceCommission =data;\r\n}\r\n\r\nvm.getProjectCallback = function (projects) {\r\n vm.projectList = projects;\r\n if (vm.DefaultProject!=null || vm.DefaultProject!='') {\r\n angular.forEach(vm.projectList, function(d){\r\n if (d.Name == vm.DefaultProject) {\r\n vm.selectedProject = d;\r\n vm.selectProject(vm.selectedProject);\r\n vm.ticketPrice = vm.selectedProject.JobRate;\r\n //console.log('vm.selectProject',vm.selectProject);\r\n // calculatePrice\r\n $scope.calculatePrice();\r\n if(vm.selectedProject.JobRate){\r\n vm.ticketPrice = vm.selectedProject.JobRate;\r\n }else{\r\n vm.ticketPrice = '';\r\n }\r\n\r\n }\r\n })\r\n }\r\n}\r\n\r\nvm.getTemplateCallback = function (templates) {\r\n vm.templateList = templates;\r\n if (vm.DefaultTemplate!=null && vm.DefaultTemplate!='') {\r\n angular.forEach(vm.templateList, function(d){\r\n if (d.TemplateName == vm.DefaultTemplate) {\r\n vm.selectedTemplate = d;\r\n //console.log('vm.selectedTemplate',vm.selectedTemplate);\r\n }\r\n })\r\n }\r\n}\r\n\r\nvm.getAllStatesCallback = function (states) {\r\n vm.states = states;\r\n if(vm.sameAddress){\r\n vm.address.State=vm.searchState(vm.selectedCustomer.State);\r\n vm.getAllCities(vm.address.State);\r\n }\r\n}\r\n\r\nvm.getAllCitiesCallback = function (cities) {\r\n vm.cities = cities;\r\n vm.address.City = vm.searchCity(vm.selectedCustomer.City);\r\n}\r\n\r\n // vm.getSkillsCallback = function (skills) {\r\n // vm.skills = skills;\r\n // }\r\n\r\n vm.getLocationCallback = function (locations) {\r\n vm.locations = locations;\r\n if (vm.locations.length ==1) {\r\n vm.selectedLocation = vm.locations[0];\r\n vm.selectedLocCheck = true;\r\n }else{\r\n vm.selectedLocation = '';\r\n vm.selectedLocCheck = false;\r\n }\r\n\r\n }\r\n\r\n vm.selectCustomer = function (item) {\r\n vm.sameAddress = false;\r\n\r\n if(vm.IsPCLink)\r\n {\r\n vm.selectedLocation = '';\r\n vm.locations = [];\r\n vm.selectedLocCheck = false;\r\n vm.selectedProject = ''\r\n jobBidCreationService.getAllProjectList(loggedinUser, item.CustomerId, token, vm.getProjectCallback); \r\n }\r\n}\r\n\r\nvm.selectProject = function (project) {\r\n\r\n vm.selectedLocation = '';\r\n vm.locations = [];\r\n vm.serviceType = project.PaymentType?project.PaymentType:'Free';\r\n vm.calculatePrice();\r\n\r\n if (vm.LocationMapping == \"Project\" || vm.LocationMapping == \"State\" || vm.LocationMapping == null || vm.LocationMapping == \"\") {\r\n jobBidCreationService.GetProjectLocations(loggedinUser, project.Name, token, vm.getLocationCallback); \r\n }else if(vm.LocationMapping == 'Circle'){\r\n jobBidCreationService.GetTelecomCircle(loggedinUser, token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.locations = resp.data.values;\r\n\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\nvm.selectTemplate = function (template) {\r\n\r\n if (vm.selectedProject.ProjectId && template) {\r\n jobBidCreationService.GetSchedulingRules(loggedinUser, template.Skill, vm.selectedProject.ProjectId, token, vm.getSchedulingRuleCallback); \r\n }\r\n}\r\n\r\nvm.getSchedulingRuleCallback = function (schedulingrules) {\r\n vm.schedulingrules = schedulingrules;\r\n if(vm.schedulingrules.length > 0){\r\n vm.CreateTable();\r\n vm.showSchedulingRules = true;\r\n }\r\n \r\n }\r\n\r\n\r\n\r\nvm.CreateTable = function () {\r\n vm.headerCompiled = false;\r\n vm.dtInstance = {};\r\n vm.selected = {};\r\n vm.selectAll = false;\r\n vm.toggleAll = toggleAll;\r\n vm.toggleOne = toggleOne;\r\n // var titleHtml = '
';\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.schedulingrules);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Name').withTitle('Name').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('RuleType').withTitle('Type').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n\r\n function toggleOne(selectedItems) {\r\n var tempRuleIdList = [];\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.schedulingrules[id].IsEnable = selectedItems[id];\r\n if (vm.schedulingrules[id].IsEnable) {\r\n tempRuleIdList.push(vm.schedulingrules[id].RuleId);\r\n }\r\n }\r\n } \r\n vm.selectAll = true;\r\n }\r\n\r\n}\r\n\r\nvm.toggleOne = function(selectedItems) {\r\n var tempRuleIdList = [];\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.schedulingrules[id].IsEnable = selectedItems[id];\r\n if (vm.schedulingrules[id].IsEnable) {\r\n tempRuleIdList.push(vm.schedulingrules[id].RuleId);\r\n }\r\n }\r\n } \r\n vm.selectAll = true;\r\n}\r\n\r\n\r\nvm.selectLocation = function (location) {\r\n vm.selectedLocation = location;\r\n}\r\n\r\n ///\r\n\r\n $scope.dynamicPopover = {\r\n content: 'Price recommendation for this job in current location is between 500 to 900 INR',\r\n templateUrl: 'myPopoverTemplate.html',\r\n title: 'Price Insight'\r\n };\r\n\r\n $scope.placement = {\r\n options: [\r\n 'top',\r\n 'top-left',\r\n 'top-right',\r\n 'bottom',\r\n 'bottom-left',\r\n 'bottom-right',\r\n 'left',\r\n 'left-top',\r\n 'left-bottom',\r\n 'right',\r\n 'right-top',\r\n 'right-bottom'\r\n ],\r\n selected: 'top'\r\n };\r\n \r\n //$scope.htmlPopover = $sce.trustAsHtml('I can have
HTML
content');\r\n\r\n\r\n //\r\n\r\n vm.searchState = function (stateName) {\r\n var state = {};\r\n angular.forEach(vm.states, function (d) {\r\n if (d == stateName) {\r\n state = d;\r\n return;\r\n }\r\n });\r\n return state;\r\n }\r\n\r\n vm.searchCity = function (cityName) {\r\n if(cityName){\r\n var test = cityName.toUpperCase();\r\n var city = {};\r\n angular.forEach(vm.cities, function (d) {\r\n if (d == test) {\r\n city = d;\r\n return;\r\n }\r\n });\r\n }\r\n return city;\r\n }\r\n\r\n \r\n\r\n\r\n\r\n vm.changeAddress = function () {\r\n if (vm.sameAddress && vm.selectedCustomer) {\r\n vm.address.Address1 = vm.selectedCustomer.Address1;\r\n vm.address.Address2 = vm.selectedCustomer.Address2;\r\n vm.contactPerson = vm.selectedCustomer.CompanyName;\r\n vm.contactNumber = vm.selectedCustomer.BusinessPhone;\r\n vm.address.State = vm.searchState(vm.selectedCustomer.State);\r\n vm.address.PinCode = vm.selectedCustomer.PinCode;\r\n\r\n if (vm.cities.length > 1) {\r\n vm.address.City = vm.searchCity(vm.selectedCustomer.City);\r\n } else {\r\n vm.cities = [{ \"city\": \"Loading...\" }];\r\n vm.address.City = vm.cities[0];\r\n\r\n jobBidCreationService.getAllCity('U310000000001', vm.address.State, function (cities) {\r\n vm.cities = cities;\r\n vm.address.City = vm.searchCity(vm.selectedCustomer.City);\r\n });\r\n }\r\n } else {\r\n vm.address = {};\r\n }\r\n }\r\n\r\n vm.changeProj = function () {\r\n if (vm.IsPCLink) {\r\n vm.selectedProject = ''\r\n }\r\n }\r\n\r\n vm.GetReasonsForClone = function(){\r\n jobBidCreationService.GetReasonsForClone(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.GetClonReasons = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetReasonsForClone();\r\n\r\n vm.geofencestatus = function () {\r\n if (vm.selectedProject.GeoFenceEnabled == false) {\r\n vm.selectedProject.GetFenceRange = 0;\r\n } else {\r\n vm.selectedProject.GetFenceRange = '';\r\n }\r\n console.log(vm.selectedProject.GeoFenceEnabled + ' ' + vm.selectedProject.GetFenceRange);\r\n }\r\n\r\n vm.getAllCities = function () {\r\n vm.cities = [{ \"city\": \"Loading...\" }];\r\n vm.address.City=vm.cities[0];\r\n jobBidCreationService.getAllCity(loggedinUser, vm.address.State, vm.getAllCitiesCallback);\r\n }\r\n\r\n jobBidCreationService.getAllCustomerList(loggedinUser, token, vm.getCustomerCallback);\r\n jobBidCreationService.getAllTemplateList(loggedinUser, token, vm.getTemplateCallback);\r\n jobBidCreationService.getAllState(loggedinUser, vm.getAllStatesCallback);\r\n jobBidCreationService.GetServiceTax(loggedinUser, token, vm.GetServiceTax);\r\n jobBidCreationService.GetMobCommission(loggedinUser, token, vm.GetMobCommission);\r\n if(!vm.IsPCLink)\r\n {\r\n jobBidCreationService.getAllProjs(loggedinUser, token, vm.getProjectCallback);\r\n \r\n }\r\n //jobBidCreationService.getSkills(loggedinUser, token, vm.getSkillsCallback);\r\n\r\n vm.createTicket = function () {\r\n if (vm.form.$invalid) {\r\n vm.disableCreate = false;\r\n return;\r\n }\r\n\r\n vm.ticketSchedulingRules = [];\r\n vm.SectionListModel = [];\r\n vm.uiItemList = [];\r\n \r\n \r\n if (vm.jobOccurrance.status) {\r\n var startTime = null;\r\n var endTime = null;\r\n var cronExpression = null;\r\n var daily = null;\r\n var weekly = null;\r\n var monthly = null;\r\n //$log.log(\"vm.jobOccurrance \",vm.jobOccurrance);\r\n\r\n if (vm.jobOccurrance.frequency == vm.jobOccurrance.once) {\r\n var sample_Data = new Date(vm.jobOccurrance.sampleDate);\r\n startTime = {\r\n \"date\": sample_Data.getDate(),\r\n \"hour\": sample_Data.getHours(),\r\n \"min\": sample_Data.getMinutes(),\r\n \"month\": vm.monthNames3[sample_Data.getMonth()],\r\n \"sec\": sample_Data.getSeconds(),\r\n \"year\": sample_Data.getFullYear()\r\n };\r\n //$log.log(\"startTime \",startTime);\r\n } else {\r\n var startDate = new Date(vm.jobOccurrance.start_date);\r\n var endDate = new Date(vm.jobOccurrance.end_date);\r\n startTime = {\r\n \"date\": startDate.getDate(),\r\n \"hour\": startDate.getHours(),\r\n \"min\": startDate.getMinutes(),\r\n \"month\": vm.monthNames3[startDate.getMonth()],\r\n \"sec\": startDate.getSeconds(),\r\n \"year\": startDate.getFullYear()\r\n };\r\n endTime = {\r\n \"date\": endDate.getDate(),\r\n \"hour\": endDate.getHours(),\r\n \"min\": endDate.getMinutes(),\r\n \"month\": vm.monthNames3[endDate.getMonth()],\r\n \"sec\": endDate.getSeconds(),\r\n \"year\": endDate.getFullYear()\r\n };\r\n if (vm.jobOccurrance.frequency == vm.jobOccurrance.daily) {\r\n daily = {\r\n \"hour\": 23,\r\n \"minute\": 59\r\n };\r\n } else if (vm.jobOccurrance.frequency == vm.jobOccurrance.weekly) {\r\n var dayOfWeek = [];\r\n if (vm.jobOccurrance.input_of_week.mon) {\r\n dayOfWeek.push(0);\r\n }\r\n if (vm.jobOccurrance.input_of_week.tue) {\r\n dayOfWeek.push(1);\r\n }\r\n if (vm.jobOccurrance.input_of_week.wed) {\r\n dayOfWeek.push(2);\r\n }\r\n if (vm.jobOccurrance.input_of_week.thu) {\r\n dayOfWeek.push(3);\r\n }\r\n if (vm.jobOccurrance.input_of_week.fri) {\r\n dayOfWeek.push(4);\r\n }\r\n if (vm.jobOccurrance.input_of_week.sat) {\r\n dayOfWeek.push(5);\r\n }\r\n if (vm.jobOccurrance.input_of_week.sun) {\r\n dayOfWeek.push(6);\r\n }\r\n weekly = {\r\n \"dayOfWeek\": dayOfWeek,\r\n \"hour\": 23,\r\n \"minute\": 59\r\n };\r\n } else if (vm.jobOccurrance.frequency == vm.jobOccurrance.monthly) {\r\n if (vm.jobOccurrance.input_for_month.option == vm.jobOccurrance.input_for_month.first_day) {\r\n monthly = {\r\n \"dayOfMonth\": \"1\",\r\n \"hour\": 23,\r\n \"minute\": 59\r\n };\r\n } if (vm.jobOccurrance.input_for_month.option == vm.jobOccurrance.input_for_month.last_day) {\r\n cronExpression = \"0 59 23 L-2 * *\";\r\n vm.jobOccurrance.frequency = vm.jobOccurrance.cronExpression\r\n } if (vm.jobOccurrance.input_for_month.option == vm.jobOccurrance.input_for_month.specific_date) {\r\n monthly = {\r\n \"dayOfMonth\": vm.jobOccurrance.input_for_month.date,\r\n \"hour\": 23,\r\n \"minute\": 59\r\n };\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n // if(vm.schedulingrules)\r\n // {\r\n // for (rule of vm.schedulingrules) { \r\n // if ( rule.IsEnable) {\r\n // vm.ticketSchedulingRules.push(rule.RuleId);\r\n // }\r\n // }\r\n // }\r\n\r\n if(vm.schedulingrules){\r\n for(var i = 0; i< vm.schedulingrules.length; i++){\r\n if(vm.schedulingrules[i].IsEnable){\r\n vm.ticketSchedulingRules.push(vm.schedulingrules[i].RuleId);\r\n }\r\n }\r\n }\r\n \r\n\r\n if(!vm.selectedLocation)\r\n {\r\n vm.selectedLocation = vm.address.State;\r\n }\r\n if( !vm.AppointmentType && vm.AppointmentType !== \"null\" && vm.AppointmentType !== \"undefined\" ){\r\n vm.AppointmentType =\"\";\r\n }\r\n if( vm.ScopeWork && vm.ScopeWork !== \"null\" && vm.ScopeWork !== \"undefined\" ){\r\n vm.ScopeWork = \"\";\r\n }\r\n if( vm.ScopeWorkPath && vm.ScopeWorkPath !== \"null\" && vm.ScopeWorkPath !== \"undefined\" ){\r\n vm.ScopeWorkPath = \"\";\r\n }\r\n if( vm.SpareTransportType && vm.SpareTransportType !== \"null\" && vm.SpareTransportType !== \"undefined\" ){\r\n vm.SpareTransportType = \"\";\r\n }\r\n if( vm.Courier && vm.Courier !== \"null\" && vm.Courier !== \"undefined\" ){\r\n \r\n vm.Courier = \"\";\r\n \r\n }\r\n if( vm.PickUp && vm.PickUp !== \"null\" && vm.PickUp !== \"undefined\" ){\r\n \r\n vm.PickUp = \"\";\r\n }\r\n if( vm.PickUpDrop && vm.PickUpDrop !== \"null\" && vm.PickUpDrop !== \"undefined\" ){\r\n \r\n vm.PickUpDrop = \"\";\r\n }\r\n \r\n vm.ticketModelData = {\r\n TicketSchedulerModel: null,\r\n TemplateModel: null,\r\n CustomerId: vm.selectedCustomer.CustomerId,\r\n JobId:vm.jobId,\r\n JobType:vm.jobType,\r\n CustomerName: vm.selectedCustomer.CompanyName,\r\n CustomerContact: vm.selectedCustomer.BusinessPhone,\r\n ProjectName: vm.selectedProject.Name,\r\n ProjectId:vm.selectedProject.ProjectId,\r\n Circle: vm.selectedLocation,\r\n JobDescription: vm.description,\r\n Priority: vm.priority,\r\n CloneReason: vm.cloneReason,\r\n Address1: vm.address.Address1,\r\n Address2: vm.address.Address2,\r\n Pincode: vm.address.PinCode,\r\n State: vm.address.State,\r\n Template: vm.selectedTemplate.TemplateName,\r\n JobTemplateModel:{\"TemplateItems\":null} ,\r\n SkillSet: \"\",\r\n //SupervisorId: $localStorage.loggedInUserId,\r\n BidDuration: null,//in seconds\r\n StartTime: moment(vm.startTime).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n EndTime: moment(vm.endTime).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n ConsumerName:vm.contactPerson,\r\n ConsumerContactNumber:vm.contactNumber,\r\n BroadcastRate: vm.ticketPrice,\r\n BroadcastGrossRate: (vm.ticketPrice * ((vm.GSTPercentange+100)*.01)),\r\n FixedBidPrice: vm.selectedProject.FixedBidPrice,\r\n GeoFenceEnable: vm.selectedProject.GeoFenceEnabled,\r\n GeoFenceRange: vm.selectedProject.GetFenceRange,\r\n PaymentType: vm.serviceType,\r\n Region:null,\r\n SubRegion:null,\r\n RuleIds: vm.ticketSchedulingRules,\r\n MobiforceCommissionPercentage:vm.MobiforceCommission,\r\n //Added by vikash\r\n AppointmentType : vm.AppointmentType,\r\n ScopeWork : vm.ScopeWork,\r\n ScopeWorkPath : vm.ScopeWorkPath,\r\n SpareTransportType : vm.SpareTransportType,\r\n Courier : vm.Courier,\r\n PickUp : vm.PickUp,\r\n PickUpDrop : vm.PickUpDrop,\r\n\r\n };\r\n\r\n if (vm.EnableRegion) {\r\n vm.ticketModelData.Region = vm.Region;\r\n vm.ticketModelData.SubRegion = vm.SubRegion;\r\n }\r\n\r\n var hrs = vm.bidDuration.getHours();\r\n var min = vm.bidDuration.getMinutes();\r\n \r\n // var time = vm.bidDuration.split(':');\r\n // var hrs = parseInt(time[0]);\r\n // var min = parseInt(time[1]);\r\n\r\n vm.ticketModelData.BidDuration = hrs*60 + min;\r\n\r\n if(vm.selectedTemplate && vm.selectedTemplate.SectionList){\r\n\r\n var ItemList = vm.selectedTemplate.SectionList[0].ItemList;\r\n //$log.log('ItemList',ItemList);\r\n var jobModel = {};\r\n for(var index = 0; index= eDate && vm.VerticalName=='Telecom'){\r\n vm.showFailure(\"Failed\", \"End Time should be greater than Start Time\");\r\n vm.disableCreate = false;\r\n } else {\r\n jobBidCreationService.createTicket(loggedinUser, vm.ticketModelData, token, function (res) {\r\n $timeout(function(){\r\n if ($localStorage.loggedInUser_Role =='Service Center') {\r\n $state.go('index.ServiceCenterTicketList', {\r\n reload: true\r\n });\r\n }else{\r\n $state.go('index.ManualAssignationJob', {\r\n reload: true\r\n });\r\n }\r\n \r\n }, 1000);\r\n }, function(){\r\n vm.disableCreate = false;\r\n });\r\n } \r\n } else {\r\n vm.showFailure(\"Failed\", \"City is not selected\");\r\n vm.disableCreate = false;\r\n }\r\n\r\n }\r\n\r\n\r\n // }\r\n // else {\r\n // //vm.showFailure(\"End Time should be greater than Start Time\");\r\n // vm.disableCreate = false;\r\n // }\r\n }\r\n\r\n vm.broadcastTicket = function () {\r\n if (!vm.form.$invalid) {\r\n vm.ticketModelData = {\r\n CustomerId: vm.selectedCustomer.CustomerId,\r\n CustomerName: vm.selectedCustomer.CompanyName,\r\n CustomerContact: vm.selectedCustomer.BusinessPhone,\r\n ProjectName: vm.selectedProject.Name,\r\n Circle: vm.selectedLocation,\r\n JobDescription: vm.description,\r\n Priority: vm.priority,\r\n Address1: vm.address.Address1,\r\n Address2: vm.address.Address2,\r\n Pincode: vm.address.PinCode,\r\n State: vm.address.State,\r\n Template: vm.selectedTemplate.TemplateName,\r\n JobTemplateModel: { \"TemplateItems\": \"Name\" },\r\n SkillSet: \"\",\r\n SupervisorId: $localStorage.loggedInUserId,\r\n BidDuration: vm.bidDuration,//in seconds\r\n StartTime: moment(vm.startTime).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n EndTime: moment(vm.endTime).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n BroadcastRate: vm.ticketPrice,\r\n // BroadcastGrossRate: (vm.selectedProject.ticketPrice * 1.18),\r\n BroadcastGrossRate : vm.ticketPrice * 1.18,\r\n FixedBidPrice: vm.selectedProject.FixedBidPrice,\r\n GeoFenceEnable: vm.selectedProject.GeoFenceEnabled,\r\n GeoFenceRange: vm.selectedProject.GetFenceRange,\r\n\r\n\r\n };\r\n if (vm.address.City && vm.address.City!=\"Loading...\") {\r\n vm.ticketModelData.City = vm.address.City;\r\n jobBidCreationService.createAndBroadcast(loggedinUser, vm.ticketModelData, token, function (res) {\r\n $state.go('index.ServiceCenterTicketList', {\r\n reload: true\r\n });\r\n });\r\n } else {\r\n vm.showFailure(\"Failed\", \"City is not selected\");\r\n }\r\n }\r\n }\r\n\r\n if (vm.EnableRegion) {\r\n vm.RegionList = '';\r\n\r\n jobBidCreationService.GetSubRegion(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.RegionList = resp.data.values;\r\n $log.log('RegionList',vm.RegionList)\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.selectRegion = function(region){\r\n vm.SubRegionList = '';\r\n jobBidCreationService.GetCityBySubRegion(loggedinUser, region, token).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.SubRegionList = resp.data.values;\r\n $log.log('SubRegionList',vm.SubRegionList)\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.checkPermissionInMenu = function(entity, defaultValue){\r\n if(accountConfig && accountConfig.MenuListModel && accountConfig.MenuListModel.length>0){\r\n for(var i=0; i=0;\r\n }\r\n }\r\n }\r\n return defaultValue;\r\n } \r\n \r\n vm.checkPermissionInSubMenu = function(entity, parentEntity, defaultValue){\r\n if(accountConfig && accountConfig.MenuListModel && accountConfig.MenuListModel.length>0){\r\n for(var i=0; i0){\r\n for(var j=0; j=0;\r\n }\r\n } \r\n }\r\n }\r\n }\r\n return defaultValue;\r\n } \r\n\r\n vm.calculatePrice = function () {\t\r\n\r\n if(vm.serviceType == 'Free'){\r\n\r\n\t\tif(vm.ticketPrice > 0){\t\t\r\n // vm.freelancerPrice = 0; \r\n \r\n vm.commission = vm.ticketPrice * (vm.MobiforceCommission) / 100;\r\n vm.freelancerPricetemp = vm.ticketPrice - vm.commission;\r\n vm.freelancerPrice = vm.freelancerPricetemp;\r\n vm.tPrice = vm.ticketPrice;\r\n vm.tax = (Number(vm.tPrice) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n vm.freelancerPrice = vm.freelancerPricetemp;\r\n }\r\n else{\r\n vm.tPrice = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.freelancerPricetemp = '';\r\n vm.freelancerPrice = \"\";\r\n }\r\n }else if(vm.serviceType =='Paid'){\r\n\r\n if(vm.ticketPrice > 0){\t\t\r\n // vm.freelancerPrice = 0; \r\n vm.commission = vm.ticketPrice * (vm.MobiforceCommission) / 100;\r\n vm.freelancerPricetemp = vm.ticketPrice - vm.commission;\r\n vm.tax = (Number(vm.ticketPrice) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n vm.tPrice = (Number(vm.ticketPrice) + Number(vm.tax));\r\n vm.freelancerPrice = vm.freelancerPricetemp;\r\n }else{\r\n vm.tPrice = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.freelancerPricetemp = '';\r\n vm.freelancerPrice = \"\";\r\n }\r\n\r\n\t\t\t// vm.gstFeeAmount = (vm.rechargeAmount *(vm.gstFee/100)).toFixed(2);\r\n\t\t\t// vm.subTotal = Number(vm.rechargeAmount) + Number(vm.gstFeeAmount);\r\n\t\t\t// vm.procssingFeeAmount = (vm.subTotal *(vm.processingFee/100)).toFixed(2);\r\n\t\t\t// vm.totalAmount = (Number(vm.subTotal) + Number(vm.procssingFeeAmount)).toFixed(2);\r\n\t\t}\r\n\r\n }\r\n\r\n $scope.calculatePrice = function () {\t\r\n vm.getProjectCallback();\r\n if(vm.serviceType=='Free'){\r\n if(vm.ticketPrice > 0){\t\t\r\n // vm.freelancerPrice = 0; \r\n vm.tPrice = vm.ticketPrice;\r\n vm.commission = vm.ticketPrice * (vm.MobiforceCommission) / 100;\r\n vm.tax = vm.tPrice * (vm.GSTPercentange) / 100;\r\n vm.freelancerPricetemp = vm.ticketPrice - vm.commission;\r\n vm.freelancerPrice = vm.freelancerPricetemp;\r\n }\r\n else\r\n {\r\n vm.tPrice = \"\";\r\n vm.freelancerPricetemp = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.freelancerPrice = '';\r\n }\r\n }else if(vm.serviceType=='Paid'){\r\n\r\n if(vm.ticketPrice > 0){\t\t\r\n // vm.freelancerPrice = 0; \r\n vm.commission = vm.ticketPrice * (vm.MobiforceCommission) / 100;\r\n vm.freelancerPricetemp = vm.ticketPrice - vm.commission;\r\n vm.tax = (Number(vm.ticketPrice) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n vm.tPrice = (Number(vm.ticketPrice) + Number(vm.tax));\r\n vm.freelancerPrice = vm.freelancerPricetemp;\r\n\r\n }else{\r\n vm.tPrice = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.freelancerPricetemp = '';\r\n vm.freelancerPrice = \"\";\r\n }\r\n\r\n }\r\n } \r\n \r\n vm.calculateFreelancerPrice = function () {\t\r\n if(vm.serviceType =='Free'){\r\n\t\tif(vm.freelancerPrice > 0){\t\t\r\n vm.ticketPrice = 0; \r\n vm.freelancerPricetemp = vm.freelancerPrice;\r\n vm.commission = (vm.freelancerPrice * vm.MobiforceCommission)/(100-20) ;\r\n vm.tPrice = Number(vm.freelancerPrice) + Number(vm.commission);\r\n vm.tax = vm.tPrice * (vm.GSTPercentange) / 100;\r\n \r\n vm.ticketPrice = vm.tPrice;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tvm.tPrice = \"\";\r\n\t\t\tvm.freelancerPricetemp = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.ticketPrice = '';\r\n\t\t}\r\n\r\n\t}else if(vm.serviceType=='Paid'){\r\n\r\n if(vm.freelancerPrice > 0){\t\t\r\n vm.ticketPrice = 0; \r\n vm.freelancerPricetemp = vm.freelancerPrice;\r\n vm.commission = (vm.freelancerPrice * vm.MobiforceCommission)/(100-vm.MobiforceCommission) ;\r\n vm.tax = ((Number(vm.freelancerPrice) + Number(vm.commission)) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n vm.tPrice = Number(Number(vm.freelancerPrice) + Number(vm.commission)) + Number(vm.tax);\r\n \r\n vm.ticketPrice = Number(Number(vm.freelancerPrice) + Number(vm.commission));\r\n }\r\n\t\telse\r\n\t\t{\r\n\t\t\tvm.tPrice = \"\";\r\n\t\t\tvm.freelancerPricetemp = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.ticketPrice = '';\r\n }\r\n \r\n }\r\n\r\n\r\n }\r\n\r\n vm.openCalendar = function(e, picker) { \r\n vm.AppointmentsDate.open = true;\r\n };\r\n \r\n var datelimit = new Date();\t\r\n \r\n datelimit.setMinutes(datelimit.getMinutes() + 1)\r\n vm.AppointmentsDate = {date: '', datepickerOptions: { minDate: datelimit }};\r\n \r\n \r\n vm.openCalendarEndDate = function(e, picker) { \r\n vm.AppointmentsEndDate.open = true;\r\n };\r\n \r\n var EndDatelimit = new Date();\t\r\n EndDatelimit.setMinutes(EndDatelimit.getMinutes() + 1)\r\n vm.AppointmentsEndDate = {date: '', datepickerOptions: { minDate: EndDatelimit }};\r\n\r\n\r\n});\r\n\nangular.module('inspinia').service('jobBidCreationService', function (ApiURL, LocationURL, FreelancerURL, $log, $http, $state,PublicApiURL) {\r\n\r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\nthis.GetTelecomCircle = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetTelecomCircles?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n\r\n this.GetJobTicket = function (ticketId, token, loggedinUser) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + loggedinUser + '/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n//https://test.mymobiforce.com/coreapi/api/ServiceGST/GetGST?reqUserId=U3600000000001&skill=AC%20Installation\r\nthis.GetServiceTax = function(loggedInUserId,token, callback){\r\n var url = ApiURL + '/api/ServiceGST?reqUserId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n }).then(function(res){\r\n callback(res.data)\r\n },function(){\r\n\r\n });\r\n}\r\n\r\nthis.GetMobCommission = function(loggedInUserId,token, callback){\r\n var url = ApiURL + '/api/ServiceGST/GetMobiforceCommission?reqUserId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n }).then(function(res){\r\n callback(res.data)\r\n },function(){\r\n\r\n });\r\n}\r\n\r\n//https://localhost/publicapi/api/Location/GetSubRegion?userId=U360000000001\r\n this.GetSubRegion = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetCity?userId=U360000000001&subregion=noida\r\n this.GetCityBySubRegion = function(loggedInUserId, subRegion, token){\r\n var url = PublicApiURL + '/api/Location/GetCity?userId='+ loggedInUserId + '&subregion='+ subRegion;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n\r\n vm.getAllCustomerList = function (loggedinUser, token, callback) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' + loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"customer\", \"Got customer list\");\r\n }, function () {\r\n // vm.showFailure(\"customer\", \"Unable to get customer list\");\r\n });\r\n }\r\n\r\n vm.getAllProjectList = function (loggedinUser, customerId, token, callback) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + customerId + '/GetProjectsByCustomerId';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"project\", \"Got project list\");\r\n }, function () {\r\n // vm.showFailure(\"project\", \"Unable to get project list\");\r\n });\r\n }\r\n\r\n vm.getAllProjs = function (loggedinUser, token, callback) {\r\n var url = ApiURL + '/api/Project/getallprojects?reqUserId=' + loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"project\", \"Got project list\");\r\n }, function () {\r\n // vm.showFailure(\"project\", \"Unable to get project list\");\r\n });\r\n }\r\n\r\n vm.getAllTemplateList = function (loggedinUser, token, callback) {\r\n var url = ApiURL + '/api/' + loggedinUser + '/Template';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"template\", \"Got template list\");\r\n },\r\n function () {\r\n // vm.showFailure(\"template\", \"Unable to get template list\");\r\n });\r\n }\r\n\r\n vm.getAllStates = function (loggedinUser, callback) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllStates';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json' } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"states\", \"Got states list\");\r\n },\r\n function () {\r\n // vm.showFailure(\"states\", \"Unable to get states\");\r\n });\r\n }\r\n\r\n this.getAllState = function (userId, callback) {\r\n // var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+userId+'®ion=INDIA';\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+userId;\r\n return $http.get(url, {\r\n params: {}\r\n }).then(function (res) {\r\n callback(res.data.values);\r\n },\r\n function () {\r\n });\r\n }\r\n\r\n this.getAllCity = function (userId, state, callback) {\r\n var url = PublicApiURL + '/api/Location/GetCity?userId='+userId+'&subregion='+state;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json' } }).then(function (res) {\r\n callback(res.data.values);\r\n },\r\n function () {\r\n });\r\n }\r\n\r\n vm.getAllCities = function (loggedinUser, state, callback) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/' + state + '/GetCitiesByState';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json' } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"cities\", \"Got cities list\");\r\n },\r\n function () {\r\n // vm.showFailure(\"cities\", \"Unable to get cities\");\r\n });\r\n }\r\n\r\n vm.getSkills = function (loggedinUser, token, callback) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n // vm.showSuccess(\"skills\", \"Got skills list\");\r\n },\r\n function () {\r\n // vm.showFailure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n this.getLocation = function(loggedinUser, customerId, projectName, token, callback){\r\n var url = ApiURL+\"/api/Project/\"+loggedinUser+\"/\"+customerId+\"/\"+projectName+\"/GetProjectLocations\";\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"skills\", \"Got locations list\");\r\n },\r\n function () {\r\n // vm.showFailure(\"skills\", \"Unable to get locations\");\r\n });\r\n }\r\n\r\n this.GetSchedulingRules = function(loggedinUser, skill, projectId, token, callback){\r\n var url = ApiURL+\"/api/ProSkillSelectionCriteria/GetForTicketCreation?UserId=\" + loggedinUser + \"&ProjectId=\" + projectId + \"&Skill=\" + skill;\r\n https://perf.mymobiforce.com/coreapi/api/ProSkillSelectionCriteria?UserId=test&ProjectId=test&Skill=test\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"skills\", \"Got locations list\");\r\n },\r\n function () {\r\n // vm.showFailure(\"skills\", \"Unable to get locations\");\r\n });\r\n }\r\n\r\n this.GetProjectLocations = function(loggedinUser, projectName, token, callback){\r\n var url = ApiURL+\"/api/Project/getprojectlocsbypname?reqUserId=\"+loggedinUser+\"&Name=\"+projectName;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"skills\", \"Got locations list\");\r\n },\r\n function () {\r\n // vm.showFailure(\"skills\", \"Unable to get locations\");\r\n });\r\n }\r\n\r\n this.createTicket = function (loggedinUser, ticketModel, token, callback, failure) {\r\n //$log.log(ticketModel);\r\n var url = ApiURL + '/api/Ticket?reqUserId=' + loggedinUser;\r\n var data = angular.toJson(ticketModel);\r\n var resp = \"\";\r\n return $http.post(url, data, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function(res){\r\n if (res.status == 201) {\r\n \r\n vm.showSuccess(\"Job created\", \"Job Created Successfully\");\r\n callback(res.data);\r\n }else{\r\n \r\n vm.showFailure(\"Failed\", res.data.Message);\r\n failure();\r\n }\r\n \r\n },\r\n function () {\r\n \r\n vm.showFailure(\"Failed\", \"Job Creation failed\");\r\n failure();\r\n });\r\n }\r\n\r\n this.cloneTicket = function (loggedinUser, ticketModel, token, callback, failure) {\r\n // https://perf.mymobiforce.com/coreapi/api/Ticket/CloneTicket?reqUserId=U350000000026\r\n var url = ApiURL + '/api/Ticket/CloneTicket?reqUserId=' + loggedinUser;\r\n var data = angular.toJson(ticketModel);\r\n return $http.post(url, data, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function(res){\r\n if (res.status == 201) {\r\n vm.showSuccess(\"Job created\", \"Job Cloning Successfully\");\r\n callback(res.data);\r\n }else{\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n failure();\r\n }\r\n },\r\n function (res) {\r\n vm.showFailure(\"Failed\", res.data);\r\n callback(res.data);\r\n failure();\r\n });\r\n }\r\n\r\n this.createAndBroadcast = function(loggedinUser, ticketModel, token, callback){\r\n //$log.log(ticketModel);\r\n var url = FreelancerURL + '/api/BID/' + loggedinUser+'/PostCreateAndBroadcastJob';\r\n var data = angular.toJson(ticketModel);\r\n return $http.post(url, data, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function(res){\r\n vm.showSuccess(\"Job created\", \"Job created and broadcasted Successfully\");\r\n callback(res.data);\r\n },\r\n function () {\r\n vm.showFailure(\"Failed\", \"Job Creation failed\");\r\n });\r\n\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Ticket/CancelTicket?reqUserId=dfgdfs&TicketId=dfgfdg\r\n this.CancelTicket = function(loggedInUserId,ticketId, token){\r\n var url = ApiURL + '/api/Ticket/CancelTicket?reqUserId='+loggedInUserId +'&TicketId='+ticketId;\r\n return $http.put(url,null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetReasonsForClone = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/GetClonReasons';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').service('jobCreationService', function (ApiURL, LocationURL, FreelancerURL, $log, $http, $state,PublicApiURL){\r\n\r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\nthis.GetTelecomCircle = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetTelecomCircles?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n\r\n//https://test.mymobiforce.com/coreapi/api/ServiceGST/GetGST?reqUserId=U3600000000001&skill=AC%20Installation\r\nthis.GetServiceTax = function(loggedInUserId,token, callback){\r\n var url = ApiURL + '/api/ServiceGST?reqUserId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n }).then(function(res){\r\n callback(res.data)\r\n },function(){\r\n\r\n });\r\n}\r\n\r\nthis.GetMobCommission = function(loggedInUserId,token, callback){\r\n var url = ApiURL + '/api/ServiceGST/GetMobiforceCommission?reqUserId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n }).then(function(res){\r\n callback(res.data)\r\n },function(){\r\n\r\n });\r\n}\r\n\r\n//https://localhost/publicapi/api/Location/GetSubRegion?userId=U360000000001\r\n this.GetSubRegion = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetCity?userId=U360000000001&subregion=noida\r\n this.GetCityBySubRegion = function(loggedInUserId, subRegion, token){\r\n var url = PublicApiURL + '/api/Location/GetCity?userId='+ loggedInUserId + '&subregion='+ subRegion;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n\r\n vm.getAllCustomerList = function (loggedinUser, token, callback) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' + loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"customer\", \"Got customer list\");\r\n }, function () {\r\n // vm.showFailure(\"customer\", \"Unable to get customer list\");\r\n });\r\n }\r\n\r\n vm.getAllProjectList = function (loggedinUser, customerId, token, callback) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + customerId + '/GetProjectsByCustomerId';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"project\", \"Got project list\");\r\n }, function () {\r\n // vm.showFailure(\"project\", \"Unable to get project list\");\r\n });\r\n }\r\n\r\n vm.getAllProjs = function (loggedinUser, token, callback) {\r\n var url = ApiURL + '/api/Project/getallprojects?reqUserId=' + loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"project\", \"Got project list\");\r\n }, function () {\r\n // vm.showFailure(\"project\", \"Unable to get project list\");\r\n });\r\n }\r\n\r\n vm.getAllTemplateList = function (loggedinUser, token, callback) {\r\n var url = ApiURL + '/api/' + loggedinUser + '/Template';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"template\", \"Got template list\");\r\n },\r\n function () {\r\n // vm.showFailure(\"template\", \"Unable to get template list\");\r\n });\r\n }\r\n\r\n this.getAllState = function (loggedinUser,token, callback) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser }}).then(function (res) {\r\n callback(res.data);\r\n },\r\n function () {\r\n });\r\n }\r\n\r\n this.getAllCity = function (loggedinUser, token, state, callback) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n },\r\n function () {\r\n });\r\n }\r\n\r\n vm.getAllCities = function (loggedinUser, state, callback) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/' + state + '/GetCitiesByState';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"cities\", \"Got cities list\");\r\n },\r\n function () {\r\n // vm.showFailure(\"cities\", \"Unable to get cities\");\r\n });\r\n }\r\n\r\n vm.getSkills = function (loggedinUser, token, callback) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n // vm.showSuccess(\"skills\", \"Got skills list\");\r\n },\r\n function () {\r\n // vm.showFailure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n this.getLocation = function(loggedinUser, customerId, projectName, token, callback){\r\n var url = ApiURL+\"/api/Project/\"+loggedinUser+\"/\"+customerId+\"/\"+projectName+\"/GetProjectLocations\";\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"skills\", \"Got locations list\");\r\n },\r\n function () {\r\n // vm.showFailure(\"skills\", \"Unable to get locations\");\r\n });\r\n }\r\n\r\n this.GetSchedulingRules = function(loggedinUser, skill, projectId, token, callback){\r\n var url = ApiURL+\"/api/ProSkillSelectionCriteria/GetForTicketCreation?UserId=\" + loggedinUser + \"&ProjectId=\" + projectId + \"&Skill=\" + skill;\r\n https://perf.mymobiforce.com/coreapi/api/ProSkillSelectionCriteria?UserId=test&ProjectId=test&Skill=test\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"skills\", \"Got locations list\");\r\n },\r\n function () {\r\n // vm.showFailure(\"skills\", \"Unable to get locations\");\r\n });\r\n }\r\n\r\n this.GetProjectLocations = function(loggedinUser, projectName, token, callback){\r\n var url = ApiURL+\"/api/Project/getprojectlocsbypname?reqUserId=\"+loggedinUser+\"&Name=\"+projectName;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n callback(res.data);\r\n // vm.showSuccess(\"skills\", \"Got locations list\");\r\n },\r\n function () {\r\n // vm.showFailure(\"skills\", \"Unable to get locations\");\r\n });\r\n }\r\n\r\n\r\nthis.UploadServerData = function (files, loggedinUser, token) {\r\n var formdata = new FormData();\r\n formdata.append(\"UploadData\", files);\r\n var url = ApiURL + '/api/Upload/UploadServerData';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Ticket/CreateTicketWithJobLineItem\r\n this.createTicket = function (loggedinUser, ticketModel, token, callback, failure) {\r\n //$log.log(ticketModel);\r\n // var url = ApiURL + '/api/Ticket?reqUserId=' + loggedinUser;\r\n var url = ApiURL + '/api/Ticket/CreateTicketWithJobLineItem';\r\n var data = angular.toJson(ticketModel);\r\n var resp = \"\";\r\n return $http.post(url, data, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function(res){\r\n if (res.status == 201) {\r\n \r\n vm.showSuccess(\"Job created\", \"Job Created Successfully\");\r\n callback(res.data);\r\n }else{\r\n \r\n vm.showFailure(\"Failed\", res.data.Message);\r\n failure();\r\n }\r\n \r\n },\r\n function () {\r\n \r\n vm.showFailure(\"Failed\", \"Job Creation failed\");\r\n failure();\r\n });\r\n }\r\n\r\n this.createAndBroadcast = function(loggedinUser, ticketModel, token, callback){\r\n //$log.log(ticketModel);\r\n var url = FreelancerURL + '/api/BID/' + loggedinUser+'/PostCreateAndBroadcastJob';\r\n var data = angular.toJson(ticketModel);\r\n return $http.post(url, data, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser } }).then(function(res){\r\n vm.showSuccess(\"Job created\", \"Job created and broadcasted Successfully\");\r\n callback(res.data);\r\n },\r\n function () {\r\n vm.showFailure(\"Failed\", \"Job Creation failed\");\r\n });\r\n\r\n }\r\n\r\n this.uploadProfilePic = function (loggedinUser, data, token, success, failure) {\r\n $http.post(ApiURL + '/api/User/PostPDFDoc?reqUserId=' + loggedinUser, data, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/PriceInsight?reqUserId=U400000000001&city=NOIDA&skill=EMF%20Survey&price=1000\r\n this.GetPriceInsight = function(loggedInUserId,price,skill,city, token){\r\n var url = ApiURL + '/api/PriceInsight?reqUserId='+ loggedInUserId + '&city='+city+ \"&skill=\"+skill+'&price='+price;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n//https://product.mymobiforce.com/coreapi/api/JobLineItem/getalljoblineitemmaster?reqUserId=U400000000001&projectId=P0000000001\r\nthis.GetJObLineItem = function(loggedInUserId,projectId,token){\r\n var url = ApiURL + '/api/JobLineItem/getalljoblineitemmaster?reqUserId='+ loggedInUserId + '&projectId='+projectId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/JobLineItem/GetJobLineItemMasterByItemId?projectId=P0000000016&LineItemId=LI56001206\r\n this.ItemLineDetails = function(loggedInUserId,projectId,LineItemId,token){\r\n var url = ApiURL + '/api/JobLineItem/GetJobLineItemMasterByItemId?projectId='+projectId + '&LineItemId='+LineItemId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n // https://product.mymobiforce.com/coreapi/api/JobLineItem/CreateJobLineItem?reqUserId=U400000000001\r\n this.CreateLineItem = function (userFormData, loggedInUserId,token) {\r\n var url = ApiURL + '/api/JobLineItem/CreateJobLineItem?reqUserId='+ loggedInUserId;\r\n return $http.post(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n});\nangular.module('inspinia').controller('JobCreationController', function (jobCreationService, $filter, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder, DTColumnBuilder, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n\r\n var vm = this;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.AccountId = $localStorage.accountConfig.AccountId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n if (!loggedinUser) {\r\n $state.go('index.Login', {\r\n reload: true\r\n });\r\n }\r\n if ($localStorage.accountConfig) {\r\n if ($localStorage.accountConfig.EnableRegion) {\r\n vm.EnableRegion = $localStorage.accountConfig.EnableRegion;\r\n }\r\n vm.IsPCLink = $localStorage.accountConfig.IsPCLink;\r\n } else {\r\n vm.EnableRegion = false;\r\n }\r\n\r\n vm.appointmentType = '';\r\n vm.ScopeWork = '';\r\n vm.ScopeWorkPath = '';\r\n vm.Name= '';\r\n vm.LastName = '';\r\n vm.Mobile = '';\r\n vm.Address1 = '';\r\n vm.TicketSource = 'Manual';\r\n vm.Address2 = '';\r\n vm.Pincode = '';\r\n vm.uploaddata = '';\r\n vm.City = '';\r\n vm.State = '';\r\n vm.Region = '';\r\n vm.SubRegion = '';\r\n vm.SpareTransportType = '';\r\n vm.Courier = {};\r\n vm.PickUp = {};\r\n vm.PickUpDrop = {};\r\n vm.searchUrl = PublicApiURL + '/api/CustomerJobCard/search?reqUserId='+loggedinUser+'&input=';\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var token = $localStorage.token;\r\n vm.CustomizedCommission = $localStorage.accountConfig.CustomizedCommission;\r\n vm.MobiforceCommission = $localStorage.accountConfig.MobiforceCommissionPercentage;\r\n var accountConfig = $localStorage.accountConfig;\r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n vm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n vm.sameAddress = false;\r\n vm.disableCreate = false;\r\n vm.address = {};\r\n vm.contactPerson = '';\r\n vm.contactNumber = '';\r\n vm.jobType = '';\r\n vm.LineItemDisc = '';\r\n vm.PriceLineItemList = [];\r\n //vm.LineItemDataList = [];\r\n vm.RegionList = '';\r\n vm.SubRegionList = '';\r\n vm.customerList = [];\r\n vm.projectList = [];\r\n vm.jobId = '';\r\n vm.templateList = [];\r\n vm.skills = [];\r\n vm.Skill = '';\r\n vm.locations = [];\r\n vm.priceInsightString='';\r\n vm.ItemValue = '';\r\n vm.serviceType = '';\r\n vm.schedulingrules = '';\r\n vm.showSchedulingRules = false;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.DefaultCustomer = vm.getAccountConfigSetting('DefaultCustomer');\r\n vm.LocationMapping = vm.getAccountConfigSetting('LocationMapping');\r\n vm.DefaultProject = vm.getAccountConfigSetting('DefaultProject');\r\n vm.DefaultTemplate = vm.getAccountConfigSetting('DefaultTemplate');\r\n vm.states = [{ \"state\": \"Loading...\" }];\r\n vm.cities = [{ \"city\": \"\" }];\r\n vm.selectedCustomer = \"\";\r\n vm.selectedProject = \"\";\r\n vm.selectedTemplate = \"\";\r\n vm.selectedLocation = \"\";\r\n vm.selectedProject.GetFenceRange = 0;\r\n vm.Region = '';\r\n vm.SubRegion = '';\r\n vm.ticketPrice = \"\";\r\n vm.freelancerPrice = \"\";\r\n vm.tPrice = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.freelancerPricetemp = \"\";\r\n vm.citiesPickUpDrops = [];\r\n vm.citiesPickUpDrop = [];\r\n vm.citiesPickUp = [];\r\n vm.priceInsight = '';\r\n vm.SiteName='';\r\n vm.jobLineItemModel={};\r\n vm.JobRegion='';\r\n vm.LineitemActivityList=[];\r\n vm.LineItemCategoryType=\"\";\r\n vm.selectedprojectId=\"\";\r\n vm.dynamicpricing=\"\";\r\n vm.CompanyProvidedEnable=\"\";\r\n var price=0;\r\n var Quantity=1;\r\n var totalFPrice=0.0;\r\n vm.BasePriceTotal=0.0;\r\n vm.dFreelancerPriceTotal=0.0;\r\n vm.PercentageTotal=0.0;\r\n vm.FreelancerPriceTotal=0.0;\r\n vm.PercentageTotalDis=0.0;\r\n vm.IsLineItemAvailable=false;\r\n vm.IsBasePriceDisabled=true;\r\n vm.templateSkillList=[];\r\n vm.isTemplateSkill=false;\r\n vm.TemplateSkill=\"\";\r\n var startTime = '';\r\n var scdt = new Date();\r\n scdt.setMinutes(scdt.getMinutes() + 30);\r\n vm.SourceCreationDate = scdt;\r\n var pcdt = new Date();\r\n pcdt.setDate(pcdt.getDate() + 7);\r\n vm.PlannedClosureDate = pcdt;\r\n \r\n vm.bidDuration = new Date(2019, 1, 1, 0, 30, 0, 0)//;\r\n // var dt = new Date();\r\n // dt.setMinutes(dt.getMinutes() + 30);\r\n // // vm.startTime = new Date()\r\n // vm.startTime = dt;\r\n // vm.endTime = new Date();\r\n if (vm.VerticalName == 'Spectro Labs') {\r\n vm.description = \"Water Sample Collection\";\r\n } else {\r\n vm.description = \"\";\r\n vm.showRateCard = true;\r\n }\r\n vm.priority = \"\";\r\n vm.monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\n vm.monthNames3 = [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\",\"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"];\r\n\r\nvm.getSearchBox = function(){\r\n vm.searchBoxHtml = '
';\r\n}\r\nvm.getSearchBox();\r\n\r\nvm.searchCustomer = function(e){\r\n if(e && e.originalObject && e.originalObject.CustomerLocationId){\r\n vm.Name = e.originalObject.CustomerName;\r\n vm.Mobile = e.originalObject.Mobile;\r\n vm.Address1 = e.originalObject.Address1;\r\n vm.Address2 = e.originalObject.Address2;\r\n vm.Pincode = e.originalObject.Pincode;\r\n vm.City = e.originalObject.City;\r\n vm.State = e.originalObject;\r\n vm.Region = e.originalObject.Region;\r\n vm.SubRegion = e.originalObject.SubRegion;\r\n\r\n }\r\n}\r\n\r\n\r\nvm.changeAppointmentType = function(){\r\n var dt = new Date();\r\n dt.setMinutes(dt.getMinutes() + 30);\r\n vm.startTime = dt;\r\n // vm.startTime = new Date()\r\n var edt = new Date();\r\n edt.setMinutes(edt.getMinutes() + 30);\r\n edt.setHours(edt.getHours() + 4);\r\n vm.endTime = edt;\r\n // vm.endTime = new Date();\r\n}\r\n\r\nvm.cleanSpareField = function(){\r\n vm.Courier = null;\r\n vm.PickUp = null;\r\n vm.PickUpDrop = null;\r\n}\r\n\r\n$scope.handleFiles = function (elem) {\r\n\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n var file = elem.files[0];\r\n if ((file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0 || file.type.indexOf(\"video/mp4\") >= 0 || file.type.indexOf(\"audio/mp3\") >= 0 || file.type.indexOf(\"video/webm\") >= 0 || file.type.indexOf(\"video/avi\") >= 0) ) {\r\n if(file.size < 10485760){\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n jobCreationService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.ScopeWorkPath = res.data; \r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload file, server error\");\r\n });\r\n }else{\r\n vm.showFailure(\"Failed\", \"File size must be lesst then 10MB.\");\r\n }\r\n \r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to upload file, Type doesn't support.\");\r\n vm.ScopeWorkPath = '';\r\n }\r\n}\r\n\r\n\r\nvm.jobOccurrance = {\r\n sampleDate: new Date(),\r\n start_date: new Date(),\r\n end_date: new Date(),\r\n status: false,\r\n frequency: \"ONCE\",\r\n once: \"ONCE\",\r\n daily: \"DAILY\",\r\n weekly: \"WEEKLY\",\r\n cronExpression: \"EXPRESSION\",\r\n monthly: \"MONTHLY\",\r\n input_of_week: {\r\n mon: false,\r\n tue: false,\r\n wed: false,\r\n thu: false,\r\n fri: false,\r\n sat: false,\r\n sun: false\r\n },\r\n input_for_month: {\r\n option: \"first_day\",\r\n first_day: \"first_day\",\r\n last_day: \"last_day\",\r\n specific_date: \"specific_date\",\r\n date: 1\r\n },\r\n specific_date_range: [],\r\n displayDate: function (date) {\r\n var date = new Date(date);\r\n return date.getDate() + \" \" + vm.monthNames[date.getMonth()] + \" \" + date.getFullYear();\r\n }\r\n};\r\n\r\nfor (var i = 1; i < 32; i++) {\r\n vm.jobOccurrance.specific_date_range.push({ value: i, label: i });\r\n}\r\n\r\njobCreationService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\njobCreationService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n\r\n\r\n\r\nvm.resetJobOccurranceDate = function () {\r\n vm.jobOccurrance.start_date = new Date();\r\n var endDate = new Date();\r\n if (vm.jobOccurrance.frequency == vm.jobOccurrance.daily) {\r\n endDate.setMonth(endDate.getMonth() + 1);\r\n } else if (vm.jobOccurrance.frequency == vm.jobOccurrance.weekly) {\r\n endDate.setMonth(endDate.getMonth() + 3);\r\n } else if (vm.jobOccurrance.frequency == vm.jobOccurrance.monthly) {\r\n endDate.setFullYear(endDate.getFullYear() + 1);\r\n }\r\n vm.jobOccurrance.end_date = endDate;\r\n}\r\n\r\n\r\nvm.getCustomerCallback = function (customers) {\r\n vm.customerList = customers;\r\n if (vm.DefaultCustomer!=null || vm.DefaultCustomer!='') {\r\n angular.forEach(vm.customerList,function(d){\r\n if (d.CompanyName == vm.DefaultCustomer) {\r\n vm.selectedCustomer = d;\r\n vm.selectCustomer(vm.selectedCustomer);\r\n //console.log('vm.selectedCustomer',vm.selectedCustomer);\r\n }\r\n })\r\n }\r\n}\r\n\r\nvm.GetServiceTax = function(data)\r\n{ \r\n vm.GSTPercentange =data;\r\n}\r\n\r\nvm.GetMobCommission = function(data)\r\n{ \r\n vm.MobiforceCommission =data;\r\n}\r\n\r\nvm.getProjectCallback = function (projects) {\r\n vm.projectList = projects;\r\n if (vm.DefaultProject!=null || vm.DefaultProject!='') {\r\n angular.forEach(vm.projectList, function(d){\r\n if (d.Name == vm.DefaultProject) {\r\n vm.selectedProject = d;\r\n vm.selectProject(vm.selectedProject);\r\n vm.ticketPrice = vm.selectedProject.JobRate;\r\n //console.log('vm.selectProject',vm.selectProject);\r\n // calculatePrice\r\n // $scope.checkedRadio();\r\n $scope.calculatePrice();\r\n if(vm.selectedProject.JobRate){\r\n vm.ticketPrice = vm.selectedProject.JobRate;\r\n }else{\r\n vm.ticketPrice = '';\r\n }\r\n\r\n vm.checkRateCard();\r\n\r\n }\r\n })\r\n }\r\n}\r\n\r\nvm.getTemplateCallback = function (templates) {\r\n vm.templateList = templates;\r\n if (vm.DefaultTemplate!=null && vm.DefaultTemplate!='') {\r\n angular.forEach(vm.templateList, function(d){\r\n if (d.TemplateName == vm.DefaultTemplate) {\r\n vm.selectedTemplate = d;\r\n //console.log('vm.selectedTemplate',vm.selectedTemplate);\r\n }\r\n })\r\n }\r\n}\r\n\r\nvm.getAllStatesCallback = function (states) {\r\n vm.states = states;\r\n if(vm.sameAddress){\r\n vm.State=vm.searchState(vm.selectedCustomer.State);\r\n vm.getAllCities(vm.State);\r\n }\r\n}\r\n\r\nvm.getAllCitiesCallback = function (cities) {\r\n vm.cities = cities;\r\n vm.City = vm.searchCity(vm.selectedCustomer.City);\r\n}\r\n\r\n\r\n vm.getLocationCallback = function (locations) {\r\n vm.locations = locations;\r\n if (vm.locations.length ==1) {\r\n vm.selectedLocation = vm.locations[0];\r\n vm.selectedLocCheck = true;\r\n }else{\r\n vm.selectedLocation = '';\r\n vm.selectedLocCheck = false;\r\n }\r\n\r\n }\r\n\r\n vm.checkcustomersummary= function(){\r\n vm.selectedCustomer&&vm.selectedLocation?vm.checkedJDetails = true:vm.checkedJDetails = false;\r\n if( vm.selectedCustomer&&vm.selectedLocation)\r\n {\r\n$('#customeractive').removeClass('summary_disabled');\r\n $('#customeractive').addClass('summary_data');\r\n $('#customeractiveno').removeClass('gray-disabled');\r\n }\r\n else{\r\n $('#customeractive').removeClass('summary_data');\r\n$('#customeractive').addClass('summary_disabled');\r\n$('#customeractiveno').addClass('gray-disabled');\r\n }\r\n}\r\n\r\n$(\"#customerData\").focusout(function(){\r\n if($('#customerData').val()==''){\r\n $('#customeractive').removeClass('summary_data');\r\n $('#customeractive').addClass('summary_disabled');\r\n $('#customeractiveno').addClass('gray-disabled'); \r\n }\r\n});\r\n\r\n// $(\"#templateId\").focusout(function(){\r\n// if($('#templateId').val()==''){\r\n// $('#customeractive').removeClass('summary_data');\r\n// $('#customeractive').addClass('summary_disabled');\r\n// $('#customeractiveno').addClass('gray-disabled'); \r\n// }\r\n// });\r\n// $(\"#templatevalue\").focusout(function(){\r\n// if($('#templatevalue').val()==''){\r\n// $('#customeractive').removeClass('summary_data');\r\n// $('#customeractive').addClass('summary_disabled');\r\n// $('#customeractiveno').addClass('gray-disabled'); \r\n// }\r\n// });\r\n\r\nvm.templateDynamicFieldCheck= function(index){\r\n var id='#templatevalue'+index;\r\n\r\n // console.log($('#templatevalue'+ index).val());\r\n if($(id).val()==''||$(id).val()=='undefined'){\r\n $('#templateactive').removeClass('summary_data');\r\n $('#templateactive').addClass('summary_disabled');\r\n $('#templateactiveno').addClass('gray-disabled'); \r\n }\r\n\r\n}\r\n\r\n vm.checkJobAddress= function()\r\n {\r\n if(vm.Name&&vm.Mobile&&vm.Address1&&vm.Address2&&vm.State&&vm.City&&vm.Pincode)\r\n \r\n {\r\n $('#jobaddressactive').removeClass('summary_disabled');\r\n $('#jobaddressactive').addClass('summary_data');\r\n //$('#customeractiveno').addClass('vertical-timeline-icon gray-bg gray-disabled');\r\n $('#jobaddressactiveno').removeClass('gray-disabled');\r\n }\r\n else{\r\n $('#jobaddressactive').removeClass('summary_data');\r\n $('#jobaddressactive').addClass('summary_disabled');\r\n $('#jobaddressactiveno').addClass('gray-disabled');\r\n } \r\n }\r\n\r\n vm.checkAppointment= function()\r\n {\r\n if(vm.appointmentType)\r\n \r\n {\r\n $('#appointmentactive').removeClass('summary_disabled');\r\n $('#appointmentactive').addClass('summary_data');\r\n //$('#customeractiveno').addClass('vertical-timeline-icon gray-bg gray-disabled');\r\n $('#appointmentactiveno').removeClass('gray-disabled');\r\n }\r\n else{\r\n $('#appointmentactive').removeClass('summary_data');\r\n $('#appointmentactive').addClass('summary_disabled');\r\n $('#appointmentactiveno').addClass('gray-disabled');\r\n } \r\n }\r\n\r\n vm.checkTemplate= function()\r\n {\r\n if(vm.selectedTemplate&&vm.ItemValue=='undefined'?vm.ItemValue='':vm.ItemValue)\r\n \r\n {\r\n $('#templateactive').removeClass('summary_disabled');\r\n $('#templateactive').addClass('summary_data');\r\n //$('#customeractiveno').addClass('vertical-timeline-icon gray-bg gray-disabled');\r\n $('#templateactiveno').removeClass('gray-disabled');\r\n }\r\n else{\r\n $('#templateactive').removeClass('summary_data');\r\n $('#templateactive').addClass('summary_disabled');\r\n $('#templateactiveno').addClass('gray-disabled');\r\n } \r\n }\r\n\r\n vm.checkRateCard= function()\r\n {\r\n if(vm.ticketPrice&&vm.freelancerPrice)\r\n \r\n {\r\n $('#ratecardactive').removeClass('summary_disabled');\r\n $('#ratecardactive').addClass('summary_data');\r\n //$('#customeractiveno').addClass('vertical-timeline-icon gray-bg gray-disabled');\r\n $('#ratecardactiveno').removeClass('gray-disabled');\r\n }\r\n else{\r\n $('#ratecardactive').removeClass('summary_data');\r\n $('#ratecardactive').addClass('summary_disabled');\r\n $('#ratecardactiveno').addClass('gray-disabled');\r\n } \r\n }\r\n\r\n vm.selectCustomer = function (item) {\r\n vm.sameAddress = false;\r\n\r\n if(vm.IsPCLink)\r\n {\r\n vm.selectedLocation = '';\r\n vm.locations = [];\r\n vm.selectedLocCheck = false;\r\n vm.selectedProject = ''\r\n jobCreationService.getAllProjectList(loggedinUser, item.CustomerId, token, vm.getProjectCallback); \r\n }\r\n}\r\n\r\nvm.selectProject = function (project) {\r\n\r\nvm.selectedprojectId = project.ProjectId;\r\nvm.dynamicpricing = project.DynamicPricing;\r\nif(vm.dynamicpricing){\r\n vm.JObItem(vm.selectedprojectId);\r\n }\r\n vm.selectedLocation = '';\r\n vm.locations = [];\r\n vm.serviceType = project.PaymentType;\r\n vm.calculatePrice();\r\n vm.checkRateCard();\r\n\r\n\r\n if (vm.LocationMapping == \"Project\" || vm.LocationMapping == \"State\" || vm.LocationMapping == null || vm.LocationMapping == \"\") {\r\n jobCreationService.GetProjectLocations(loggedinUser, project.Name, token, vm.getLocationCallback); \r\n }else if(vm.LocationMapping == 'Circle'){\r\n jobCreationService.GetTelecomCircle(loggedinUser, token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.locations = resp.data.values;\r\n\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\nvm.selectTemplate = function (template) { \r\n vm.isTemplateSkill=true;\r\n vm.templateSkillList = template.SkillSet;\r\n vm.ScopeWork = template.ScopeWork;\r\n vm.ScopeWorkPath = template.ScopeWorkPath;\r\n vm.Skill = template.Skill;\r\n if (vm.selectedProject.ProjectId && template) {\r\n jobCreationService.GetSchedulingRules(loggedinUser, template.Skill, vm.selectedProject.ProjectId, token, vm.getSchedulingRuleCallback); \r\n }\r\n}\r\n\r\nvm.getSchedulingRuleCallback = function (schedulingrules) {\r\n vm.schedulingrules = schedulingrules;\r\n if(vm.schedulingrules.length > 0){\r\n vm.CreateTable();\r\n vm.showSchedulingRules = true;\r\n }\r\n \r\n }\r\n\r\n\r\n\r\nvm.CreateTable = function () {\r\n vm.headerCompiled = false;\r\n vm.dtInstance = {};\r\n vm.selected = {};\r\n vm.selectAll = false;\r\n vm.toggleAll = toggleAll;\r\n vm.toggleOne = toggleOne;\r\n // var titleHtml = '
';\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.schedulingrules);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Name').withTitle('Name').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('RuleType').withTitle('Type').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n\r\n function toggleOne(selectedItems) {\r\n var tempRuleIdList = [];\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.schedulingrules[id].IsEnable = selectedItems[id];\r\n if (vm.schedulingrules[id].IsEnable) {\r\n tempRuleIdList.push(vm.schedulingrules[id].RuleId);\r\n }\r\n }\r\n } \r\n vm.selectAll = true;\r\n }\r\n\r\n}\r\n\r\nvm.toggleOne = function(selectedItems) {\r\n var tempRuleIdList = [];\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.schedulingrules[id].IsEnable = selectedItems[id];\r\n if (vm.schedulingrules[id].IsEnable) {\r\n tempRuleIdList.push(vm.schedulingrules[id].RuleId);\r\n }\r\n }\r\n } \r\n vm.selectAll = true;\r\n}\r\n\r\n\r\nvm.selectLocation = function (location) {\r\n vm.selectedLocation = location;\r\n}\r\n\r\n ///\r\n\r\n $scope.dynamicPopover = {\r\n content: 'Price recommendation for this job in current location is between 500 to 900 INR',\r\n templateUrl: 'myPopoverTemplate.html',\r\n title: 'Price Insight'\r\n };\r\n\r\n $scope.placement = {\r\n options: [\r\n 'top',\r\n 'top-left',\r\n 'top-right',\r\n 'bottom',\r\n 'bottom-left',\r\n 'bottom-right',\r\n 'left',\r\n 'left-top',\r\n 'left-bottom',\r\n 'right',\r\n 'right-top',\r\n 'right-bottom'\r\n ],\r\n selected: 'top'\r\n };\r\n \r\n\r\n vm.searchState = function (stateName) {\r\n var state = {};\r\n angular.forEach(vm.states, function (d) {\r\n if (d == stateName) {\r\n state = d;\r\n return;\r\n }\r\n });\r\n return state;\r\n }\r\n\r\n vm.searchCity = function (cityName) {\r\n if(cityName){\r\n var test = cityName.toUpperCase();\r\n var city = {};\r\n angular.forEach(vm.cities, function (d) {\r\n if (d == test) {\r\n city = d;\r\n return;\r\n }\r\n });\r\n }\r\n return city;\r\n }\r\n\r\n \r\n\r\n\r\n\r\n // vm.changeAddress = function () {\r\n // if (vm.sameAddress && vm.selectedCustomer) {\r\n // vm.address.Address1 = vm.selectedCustomer.Address1;\r\n // vm.address.Address2 = vm.selectedCustomer.Address2;\r\n // vm.contactPerson = vm.selectedCustomer.CompanyName;\r\n // vm.contactNumber = vm.selectedCustomer.BusinessPhone;\r\n // vm.address.State = vm.searchState(vm.selectedCustomer.State);\r\n // vm.address.PinCode = vm.selectedCustomer.PinCode;\r\n\r\n // if (vm.cities.length > 1) {\r\n // vm.address.City = vm.searchCity(vm.selectedCustomer.City);\r\n // } else {\r\n // vm.cities = [{ \"city\": \"Loading...\" }];\r\n // vm.address.City = vm.cities[0];\r\n\r\n // jobCreationService.getAllCity('U310000000001', vm.address.State, function (cities) {\r\n // vm.cities = cities;\r\n // vm.address.City = vm.searchCity(vm.selectedCustomer.City);\r\n // });\r\n // }\r\n // } else {\r\n // vm.address = {};\r\n // }\r\n // }\r\n\r\n vm.changeProj = function () {\r\n if (vm.IsPCLink) {\r\n vm.selectedProject = ''\r\n }\r\n }\r\n\r\n vm.geofencestatus = function () {\r\n if (vm.selectedProject.GeoFenceEnabled == false) {\r\n vm.selectedProject.GetFenceRange = 0;\r\n } else {\r\n vm.selectedProject.GetFenceRange = '';\r\n }\r\n // console.log(vm.selectedProject.GeoFenceEnabled + ' ' + vm.selectedProject.GetFenceRange);\r\n }\r\n\r\n vm.getAllCities = function () {\r\n vm.cities = [{ \"city\": \"Loading...\" }];\r\n vm.City=vm.cities[0];\r\n jobCreationService.getAllCity(loggedinUser,token, vm.State, vm.getAllCitiesCallback);\r\n }\r\n\r\n vm.getAllCitiesPickUp = function(state){\r\n jobCreationService.getAllCity(loggedinUser,token, state, vm.getAllCitiesCallbackPickUp);\r\n }\r\n\r\n vm.getAllCitiesCallbackPickUp = function (cities) {\r\n vm.citiesPickUp = cities;\r\n \r\n }\r\n\r\n vm.getAllCitiesPickUpDrop = function(state){\r\n jobCreationService.getAllCity(loggedinUser,token, state, vm.getAllCitiesCallbackPickUpDrop);\r\n }\r\n\r\n vm.getAllCitiesCallbackPickUpDrop = function (cities) {\r\n vm.citiesPickUpDrop = cities;\r\n \r\n }\r\n\r\n vm.getAllCitiesPickUpDrops = function(state){\r\n jobCreationService.getAllCity(loggedinUser,token,state, vm.getAllCitiesCallbackPickUpDrops);\r\n }\r\n\r\n vm.getAllCitiesCallbackPickUpDrops = function (cities) {\r\n vm.citiesPickUpDrops = cities;\r\n \r\n }\r\n \r\n jobCreationService.getAllCustomerList(loggedinUser, token, vm.getCustomerCallback);\r\n jobCreationService.getAllTemplateList(loggedinUser, token, vm.getTemplateCallback);\r\n jobCreationService.getAllState(loggedinUser,token, vm.getAllStatesCallback);\r\n jobCreationService.GetServiceTax(loggedinUser, token, vm.GetServiceTax);\r\n jobCreationService.GetMobCommission(loggedinUser, token, vm.GetMobCommission);\r\n if(!vm.IsPCLink)\r\n {\r\n jobCreationService.getAllProjs(loggedinUser, token, vm.getProjectCallback);\r\n \r\n }\r\n \r\n $scope.UploadData = function (files) {\r\n vm.FileName = \"\";\r\n vm.FilesDoc = files.files[0];\r\n vm.FileName = vm.FilesDoc.name;\r\n vm.FileSize = vm.FilesDoc.size;\r\n // var allowedFileSize = 1000000;\r\n var allowedExtensions = /(\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png|\\.pdf)$/i;\r\n if (!allowedExtensions.exec(vm.FileName)) {\r\n vm.FilesDoc = [];\r\n vm.clear();\r\n alert('Please upload file having extensions .jpg,.jpeg,.png ,.pdf only.');\r\n }\r\n // if(vm.FileSize > allowedFileSize){\r\n // vm.FilesDoc = [];\r\n // vm.clear(); \r\n // alert('File size cannot exceed 1MB');\r\n // }\r\n }\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n };\r\n\r\n\r\n vm.createTicket = function () { \r\n var AppointmentType = '';\r\n // if(vm.appointmentType == 'Arrive'){\r\n // AppointmentType = '0';\r\n // }else if(vm.appointmentType == 'Specific'){\r\n // AppointmentType = '1';\r\n // }else if(vm.appointmentType == 'Complete'){\r\n // AppointmentType = '2';\r\n // }\r\n\r\n if(vm.SpareTransportType){\r\n if(vm.SpareTransportType == '0'){\r\n vm.PickUp = null;\r\n vm.PickUpDrop = null;\r\n }else if(vm.SpareTransportType == '1'){\r\n vm.Courier = null;\r\n vm.PickUpDrop = null;\r\n }else if(vm.SpareTransportType == '2'){\r\n vm.Courier = null;\r\n vm.PickUp = null;\r\n }\r\n }else{\r\n vm.PickUp = '';\r\n vm.PickUpDrop = '';\r\n vm.Courier = '';\r\n }\r\n \r\n vm.ticketSchedulingRules = [];\r\n vm.SectionListModel = [];\r\n vm.uiItemList = [];\r\n if (!vm.form.$invalid) {\r\n\r\n if (vm.jobOccurrance.status) {\r\n var startTime = null;\r\n var endTime = null;\r\n var cronExpression = null;\r\n var daily = null;\r\n var weekly = null;\r\n var monthly = null;\r\n //$log.log(\"vm.jobOccurrance \",vm.jobOccurrance);\r\n\r\n if (vm.jobOccurrance.frequency == vm.jobOccurrance.once) {\r\n var sample_Data = new Date(vm.jobOccurrance.sampleDate);\r\n startTime = {\r\n \"date\": sample_Data.getDate(),\r\n \"hour\": sample_Data.getHours(),\r\n \"min\": sample_Data.getMinutes(),\r\n \"month\": vm.monthNames3[sample_Data.getMonth()],\r\n \"sec\": sample_Data.getSeconds(),\r\n \"year\": sample_Data.getFullYear()\r\n };\r\n //$log.log(\"startTime \",startTime);\r\n } else {\r\n var startDate = new Date(vm.jobOccurrance.start_date);\r\n var endDate = new Date(vm.jobOccurrance.end_date);\r\n startTime = {\r\n \"date\": startDate.getDate(),\r\n \"hour\": startDate.getHours(),\r\n \"min\": startDate.getMinutes(),\r\n \"month\": vm.monthNames3[startDate.getMonth()],\r\n \"sec\": startDate.getSeconds(),\r\n \"year\": startDate.getFullYear()\r\n };\r\n endTime = {\r\n \"date\": endDate.getDate(),\r\n \"hour\": endDate.getHours(),\r\n \"min\": endDate.getMinutes(),\r\n \"month\": vm.monthNames3[endDate.getMonth()],\r\n \"sec\": endDate.getSeconds(),\r\n \"year\": endDate.getFullYear()\r\n };\r\n if (vm.jobOccurrance.frequency == vm.jobOccurrance.daily) {\r\n daily = {\r\n \"hour\": 23,\r\n \"minute\": 59\r\n };\r\n } else if (vm.jobOccurrance.frequency == vm.jobOccurrance.weekly) {\r\n var dayOfWeek = [];\r\n if (vm.jobOccurrance.input_of_week.mon) {\r\n dayOfWeek.push(0);\r\n }\r\n if (vm.jobOccurrance.input_of_week.tue) {\r\n dayOfWeek.push(1);\r\n }\r\n if (vm.jobOccurrance.input_of_week.wed) {\r\n dayOfWeek.push(2);\r\n }\r\n if (vm.jobOccurrance.input_of_week.thu) {\r\n dayOfWeek.push(3);\r\n }\r\n if (vm.jobOccurrance.input_of_week.fri) {\r\n dayOfWeek.push(4);\r\n }\r\n if (vm.jobOccurrance.input_of_week.sat) {\r\n dayOfWeek.push(5);\r\n }\r\n if (vm.jobOccurrance.input_of_week.sun) {\r\n dayOfWeek.push(6);\r\n }\r\n weekly = {\r\n \"dayOfWeek\": dayOfWeek,\r\n \"hour\": 23,\r\n \"minute\": 59\r\n };\r\n } else if (vm.jobOccurrance.frequency == vm.jobOccurrance.monthly) {\r\n if (vm.jobOccurrance.input_for_month.option == vm.jobOccurrance.input_for_month.first_day) {\r\n monthly = {\r\n \"dayOfMonth\": \"1\",\r\n \"hour\": 23,\r\n \"minute\": 59\r\n };\r\n } if (vm.jobOccurrance.input_for_month.option == vm.jobOccurrance.input_for_month.last_day) {\r\n cronExpression = \"0 59 23 L-2 * *\";\r\n vm.jobOccurrance.frequency = vm.jobOccurrance.cronExpression\r\n } if (vm.jobOccurrance.input_for_month.option == vm.jobOccurrance.input_for_month.specific_date) {\r\n monthly = {\r\n \"dayOfMonth\": vm.jobOccurrance.input_for_month.date,\r\n \"hour\": 23,\r\n \"minute\": 59\r\n };\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n\r\n if(vm.schedulingrules){\r\n for(var i = 0; i< vm.schedulingrules.length; i++){\r\n if(vm.schedulingrules[i].IsEnable){\r\n vm.ticketSchedulingRules.push(vm.schedulingrules[i].RuleId);\r\n }\r\n }\r\n }\r\n \r\n\r\n if(!vm.selectedLocation)\r\n {\r\n vm.selectedLocation = vm.State;\r\n }\r\n\r\n // if(AppointmentType == '0'){\r\n // var eTime = new Date();\t\r\n // eTime.setHours((vm.startTime.getHours() + 4));\r\n // vm.endTime = eTime;\r\n // // vm.endTime = vm.endTime.setHours(new Date(vm.startTime).getHours() + 4);\r\n // }\r\n\r\n // if (vm.startTime) {\r\n var sDate = $filter('date')(new Date(vm.startTime),'yyyy-MM-dd');\r\n vm.Stime = vm.AppointmentTime;\r\n if(vm.Stime)\r\n {\r\n var startTime = moment (sDate + ' ' + vm.Stime).format('YYYY-MM-DD HH:mm');\r\n }\r\n else{\r\n var startTime= null;\r\n }\r\n vm.CurrentDate = moment().format('YYYY-MM-DD HH:mm');\r\n var endTime = $filter('date')(new Date(vm.endTime),'yyyy-MM-dd HH:mm');\r\n \r\n var sourcecreationdate =$filter('date')(new Date(vm.SourceCreationDate),'yyyy-MM-dd HH:mm');;\r\n var plannedclosuredate =$filter('date')(new Date(vm.PlannedClosureDate),'yyyy-MM-dd HH:mm');\r\n\r\n var newTicketPrice =0;\r\n var newMobiforceCommission=0;\r\n var newFprice =0;\r\n\r\n if(vm.dynamicpricing==true)\r\n {\r\n if(vm.PriceLineItemList.length==0)\r\n { \r\n vm.showFailure(\"Add at least one activity\");\r\n vm.disableCreate = false;\r\n return;\r\n }\r\n newTicketPrice = vm.BasePriceTotal;\r\n newMobiforceCommission = vm.PercentageTotal;\r\n newFprice = vm.dFreelancerPriceTotal;\r\n vm.IsLineItemAvailable = true;\r\n }\r\n else\r\n {\r\n newTicketPrice = vm.ticketPrice;\r\n newMobiforceCommission = vm.MobiforceCommission;\r\n vm.IsLineItemAvailable = false;\r\n }\r\n vm.UploadServerData();\r\n vm.ticketModelData = {\r\n TicketSchedulerModel: null,\r\n TemplateModel: null,\r\n CustomerId: vm.selectedCustomer.CustomerId,\r\n JobId:vm.jobId,\r\n JobType:vm.jobType,\r\n CustomerName: vm.selectedCustomer.CompanyName,\r\n CustomerContact: vm.selectedCustomer.BusinessPhone,\r\n InvoiceDetailsAttachment: vm.FileName,\r\n ProjectName: vm.selectedProject.Name,\r\n ProjectId:vm.selectedProject.ProjectId,\r\n Circle: vm.selectedLocation,\r\n JobDescription: vm.description,\r\n Priority: vm.priority,\r\n Address1: vm.Address1,\r\n TicketSource: vm.TicketSource,\r\n Address2: vm.Address2,\r\n Pincode: vm.Pincode,\r\n State: vm.State,\r\n Template: vm.selectedTemplate.TemplateName,\r\n JobTemplateModel:{\"TemplateItems\":null} ,\r\n SkillSet: vm.TemplateSkill,\r\n //SupervisorId: $localStorage.loggedInUserId,\r\n BidDuration: null,//in seconds\r\n // StartTime: moment(vm.startTime).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n // EndTime: moment(vm.endTime).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n StartTime: startTime,\r\n EndTime: endTime,\r\n ConsumerName:vm.Name,\r\n ConsumerContactNumber:vm.Mobile,\r\n BroadcastRate: newTicketPrice,\r\n BroadcastGrossRate: (newTicketPrice * ((vm.GSTPercentange+100)*.01)),\r\n // BroadcastRate: vm.ticketPrice,\r\n // BroadcastGrossRate: (vm.ticketPrice * ((vm.GSTPercentange+100)*.01)),\r\n FixedBidPrice: vm.selectedProject.FixedBidPrice,\r\n GeoFenceEnable: vm.selectedProject.GeoFenceEnabled,\r\n GeoFenceRange: vm.selectedProject.GetFenceRange,\r\n PaymentType: vm.serviceType,\r\n Region:null,\r\n SubRegion:null,\r\n RuleIds: vm.ticketSchedulingRules,\r\n // MobiforceCommissionPercentage:vm.MobiforceCommission,\r\n MobiforceCommissionPercentage:newMobiforceCommission,\r\n AppointmentType : AppointmentType,\r\n ScopeWork : vm.ScopeWork,\r\n ScopeWorkPath : vm.ScopeWorkPath,\r\n SpareTransportType : vm.SpareTransportType,\r\n Courier : vm.Courier,\r\n PickUp : vm.PickUp,\r\n PickUpDrop : vm.PickUpDrop,\r\n IsLineItemAvailable: vm.IsLineItemAvailable,\r\n SourceCreationDate: sourcecreationdate,\r\n PlannedClosureDate: plannedclosuredate,\r\n SiteName: vm.SiteName,\r\n Region: vm.JobRegion,\r\n Circle : vm.Circle,\r\n // jobLineItemModel: LineItemRequestList.push(vm.TrainingList),\r\n jobLineItemModel:{\r\n \"LineItemRequestList\":vm.PriceLineItemList\r\n }\r\n\r\n\r\n };\r\n\r\n if (vm.EnableRegion) {\r\n vm.ticketModelData.Region = vm.Region;\r\n vm.ticketModelData.SubRegion = vm.SubRegion;\r\n }\r\n\r\n var hrs = vm.bidDuration.getHours();\r\n var min = vm.bidDuration.getMinutes();\r\n \r\n // var time = vm.bidDuration.split(':');\r\n // var hrs = parseInt(time[0]);\r\n // var min = parseInt(time[1]);\r\n\r\n vm.ticketModelData.BidDuration = hrs*60 + min;\r\n var ItemList = vm.selectedTemplate.SectionList[0].ItemList;\r\n //$log.log('ItemList',ItemList);\r\n var jobModel = {};\r\n for(var index = 0; index= moment(eDate)._i && vm.VerticalName=='Telecom'){\r\n vm.showFailure(\"End Time should be greater than Start Time\");\r\n vm.disableCreate = false;\r\n } \r\n else if(moment(startTime)._i <= moment(vm.CurrentDate)._i) {\r\n vm.showFailure(\"Appointment Time should be greater than Current Time\");\r\n vm.disableCreate = false;\r\n }\r\n else {\r\n jobCreationService.createTicket(loggedinUser, vm.ticketModelData, token, function (res) {\r\n if(vm.dynamicpricing==true)\r\n {\r\n userFormData = { \r\n \"TicketId\": res,\r\n \"LineItemRequestList\": vm.PriceLineItemList\r\n } \r\n // jobCreationService.CreateLineItem(userFormData,loggedinUser,token).then(function(resp){\r\n // $timeout(function(){\r\n // if (resp.status==200) { \r\n // $state.go('index.JobTicketsCopy', {\r\n // reload: true\r\n // });\r\n // }\r\n // }, 1000);\r\n // })\r\n } \r\n $timeout(function(){\r\n if (vm.VerticalName =='Spectro Labs') {\r\n $state.go('index.TicketList', {\r\n reload: true\r\n });\r\n }else{ \r\n $state.go('index.JobTicketsCopy', {\r\n reload: true\r\n });\r\n }\r\n \r\n }, 1000);\r\n }, function(){\r\n vm.disableCreate = false;\r\n vm.form.$submitted = true;\r\n });\r\n } \r\n } else {\r\n vm.showFailure(\"Failed\", \"City is not selected\");\r\n vm.disableCreate = false;\r\n vm.form.$submitted = true;\r\n }\r\n } else {\r\n vm.disableCreate = false;\r\n vm.form.$submitted = true;\r\n }\r\n }\r\n\r\n vm.UploadServerData = function () {\r\n jobCreationService.UploadServerData( vm.FilesDoc, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n }\r\n else if (resp.status == 500) {\r\n vm.showFailure(\"Failed\", \"Please select image or pdf to upload\");\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Please select image or pdf to upload\");\r\n }\r\n })\r\n \r\n \r\n }\r\n\r\n\r\n\r\n vm.broadcastTicket = function () {\r\n if (!vm.form.$invalid) {\r\n vm.ticketModelData = {\r\n CustomerId: vm.selectedCustomer.CustomerId,\r\n CustomerName: vm.selectedCustomer.CompanyName,\r\n CustomerContact: vm.selectedCustomer.BusinessPhone,\r\n ProjectName: vm.selectedProject.Name,\r\n Circle: vm.selectedLocation,\r\n JobDescription: vm.description,\r\n Priority: vm.priority,\r\n Address1: vm.Address1,\r\n Address2: vm.Address2,\r\n Pincode: vm.PinCode,\r\n State: vm.State,\r\n Template: vm.selectedTemplate.TemplateName,\r\n JobTemplateModel: { \"TemplateItems\": \"Name\" },\r\n SkillSet: \"\",\r\n SupervisorId: $localStorage.loggedInUserId,\r\n BidDuration: vm.bidDuration,//in seconds\r\n StartTime: moment(vm.startTime).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n EndTime: moment(vm.endTime).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n BroadcastRate: vm.ticketPrice,\r\n // BroadcastGrossRate: (vm.selectedProject.ticketPrice * 1.18),\r\n BroadcastGrossRate : vm.ticketPrice * 1.18,\r\n FixedBidPrice: vm.selectedProject.FixedBidPrice,\r\n GeoFenceEnable: vm.selectedProject.GeoFenceEnabled,\r\n GeoFenceRange: vm.selectedProject.GetFenceRange,\r\n\r\n\r\n };\r\n if (vm.City && vm.City!=\"Loading...\") {\r\n vm.ticketModelData.City = vm.City;\r\n jobCreationService.createAndBroadcast(loggedinUser, vm.ticketModelData, token, function (res) {\r\n $state.go('index.JobTicketsCopy', {\r\n reload: true\r\n });\r\n });\r\n } else {\r\n vm.showFailure(\"Failed\", \"City is not selected\");\r\n }\r\n }\r\n }\r\n\r\n if (vm.EnableRegion) {\r\n vm.RegionList = '';\r\n\r\n jobCreationService.GetSubRegion(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.RegionList = resp.data.values;\r\n $log.log('RegionList',vm.RegionList)\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.selectRegion = function(region){\r\n vm.SubRegionList = '';\r\n jobCreationService.GetCityBySubRegion(loggedinUser, region, token).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.SubRegionList = resp.data.values;\r\n $log.log('SubRegionList',vm.SubRegionList)\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.checkPermissionInMenu = function(entity, defaultValue){\r\n if(accountConfig && accountConfig.MenuListModel && accountConfig.MenuListModel.length>0){\r\n for(var i=0; i=0;\r\n }\r\n }\r\n }\r\n return defaultValue;\r\n } \r\n \r\n vm.checkPermissionInSubMenu = function(entity, parentEntity, defaultValue){\r\n if(accountConfig && accountConfig.MenuListModel && accountConfig.MenuListModel.length>0){\r\n for(var i=0; i0){\r\n for(var j=0; j=0;\r\n }\r\n } \r\n }\r\n }\r\n }\r\n return defaultValue;\r\n } \r\n\r\n vm.calculatePrice = function () {\t\r\n\r\n if(vm.serviceType == 'Free'){\r\n\r\n\t\tif(vm.ticketPrice > 0){\t\t\r\n // vm.freelancerPrice = 0; \r\n \r\n vm.commission = vm.ticketPrice * (vm.MobiforceCommission) / 100;\r\n vm.freelancerPricetemp = vm.ticketPrice - vm.commission;\r\n vm.tPrice = vm.ticketPrice;\r\n vm.tax = (Number(vm.tPrice) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n vm.freelancerPrice = vm.freelancerPricetemp;\r\n }\r\n else{\r\n vm.tPrice = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.freelancerPricetemp = '';\r\n vm.freelancerPrice = \"\";\r\n }\r\n }else if(vm.serviceType =='Paid'){\r\n\r\n if(vm.ticketPrice > 0){\t\t\r\n // vm.freelancerPrice = 0; \r\n vm.commission = vm.ticketPrice * (vm.MobiforceCommission) / 100;\r\n vm.freelancerPricetemp = vm.ticketPrice - vm.commission;\r\n vm.tax = (Number(vm.ticketPrice) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n vm.tPrice = (Number(vm.ticketPrice) + Number(vm.tax));\r\n vm.freelancerPrice = vm.freelancerPricetemp;\r\n }else{\r\n vm.tPrice = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.freelancerPricetemp = '';\r\n vm.freelancerPrice = \"\";\r\n }\r\n\r\n\t\t\t// vm.gstFeeAmount = (vm.rechargeAmount *(vm.gstFee/100)).toFixed(2);\r\n\t\t\t// vm.subTotal = Number(vm.rechargeAmount) + Number(vm.gstFeeAmount);\r\n\t\t\t// vm.procssingFeeAmount = (vm.subTotal *(vm.processingFee/100)).toFixed(2);\r\n\t\t\t// vm.totalAmount = (Number(vm.subTotal) + Number(vm.procssingFeeAmount)).toFixed(2);\r\n\t\t}\r\n\r\n }\r\n\r\n $scope.calculatePrice = function () {\t\r\n vm.getProjectCallback();\r\n if(vm.serviceType=='Free'){\r\n if(vm.ticketPrice > 0){\t\t\r\n // vm.freelancerPrice = 0; \r\n vm.tPrice = vm.ticketPrice;\r\n vm.commission = vm.ticketPrice * (vm.MobiforceCommission) / 100;\r\n vm.tax = vm.tPrice * (vm.GSTPercentange) / 100;\r\n vm.freelancerPricetemp = vm.ticketPrice - vm.commission;\r\n vm.freelancerPrice = vm.freelancerPricetemp;\r\n \r\n }\r\n else\r\n {\r\n vm.tPrice = \"\";\r\n vm.freelancerPricetemp = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.freelancerPrice = '';\r\n }\r\n }else if(vm.serviceType=='Paid'){\r\n\r\n if(vm.ticketPrice > 0){\t\t\r\n // vm.freelancerPrice = 0; \r\n vm.commission = vm.ticketPrice * (vm.MobiforceCommission) / 100;\r\n vm.freelancerPricetemp = vm.ticketPrice - vm.commission;\r\n vm.tax = (Number(vm.ticketPrice) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n vm.tPrice = (Number(vm.ticketPrice) + Number(vm.tax));\r\n vm.freelancerPrice = vm.freelancerPricetemp;\r\n\r\n }else{\r\n vm.tPrice = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.freelancerPricetemp = '';\r\n vm.freelancerPrice = \"\";\r\n }\r\n\r\n }\r\n } \r\n \r\n vm.calculateFreelancerPrice = function () {\t\r\n if(vm.serviceType =='Free'){\r\n\t\tif(vm.freelancerPrice > 0){\t\t\r\n vm.ticketPrice = 0; \r\n vm.freelancerPricetemp = vm.freelancerPrice;\r\n vm.commission = (vm.freelancerPrice * vm.MobiforceCommission)/(100-20) ;\r\n vm.tPrice = Number(vm.freelancerPrice) + Number(vm.commission);\r\n vm.tax = vm.tPrice * (vm.GSTPercentange) / 100;\r\n \r\n vm.ticketPrice = vm.tPrice;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tvm.tPrice = \"\";\r\n\t\t\tvm.freelancerPricetemp = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.ticketPrice = '';\r\n\t\t}\r\n\r\n\t}else if(vm.serviceType=='Paid'){\r\n\r\n if(vm.freelancerPrice > 0){\t\t\r\n vm.ticketPrice = 0; \r\n vm.freelancerPricetemp = vm.freelancerPrice;\r\n vm.commission = (vm.freelancerPrice * vm.MobiforceCommission)/(100-vm.MobiforceCommission) ;\r\n vm.tax = ((Number(vm.freelancerPrice) + Number(vm.commission)) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n vm.tPrice = Number(Number(vm.freelancerPrice) + Number(vm.commission)) + Number(vm.tax);\r\n \r\n vm.ticketPrice = Number(Number(vm.freelancerPrice) + Number(vm.commission));\r\n }\r\n\t\telse\r\n\t\t{\r\n\t\t\tvm.tPrice = \"\";\r\n\t\t\tvm.freelancerPricetemp = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.ticketPrice = '';\r\n }\r\n \r\n }\r\n\r\n\r\n }\r\n \r\n $scope.getPriceInsight = function(){\r\n \r\n if(vm.ticketPrice && vm.State && vm.Skill && vm.City){\r\n jobCreationService.GetPriceInsight(loggedinUser,vm.ticketPrice,vm.Skill,vm.City,token).then(function(resp){\r\n var priceinsight = resp.data;\r\n var temp ='';\r\n if(priceinsight){\r\n temp = priceinsight.split(',');\r\n vm.priceInsight= 'Recommended Price : '+ temp[0] + ' INR' + ' Job_Acceptance Percentage : '+ temp[1]; \r\n }\r\n });\r\n }else{\r\n vm.priceInsight = 'Failed, Please select State, City, Template & Ticket Price Credits to get priceInsight. Thank you!';\r\n }\r\n \r\n }\r\n \r\n vm.openCalendarSourceCreationDate = function(e, picker) { \r\n vm.SourceCreationStartDate.open = true;\r\n };\r\n vm.openCalendarPlannedClosureDate = function(e, picker) { \r\n vm.PlannedClosureEndDate.open = true;\r\n };\r\n var sourcecreationdatelimit = new Date();\t\r\n sourcecreationdatelimit.setMinutes(sourcecreationdatelimit.getMinutes() + 1)\r\n vm.SourceCreationStartDate = {date: '', datepickerOptions: { minDate: sourcecreationdatelimit }};\r\n\r\n var plannedclosuredatelimit = new Date();\t\r\n\tplannedclosuredatelimit.setMinutes(plannedclosuredatelimit.getMinutes() + 1)\r\n vm.PlannedClosureEndDate = {date: '', datepickerOptions: { minDate: plannedclosuredatelimit }};\r\n\r\n\t\t\t\t\t\t\t\t\t\r\nvm.openCalendar = function(e, picker) { \r\n vm.AppointmentsDate.open = true;\r\n};\r\n\r\nvar datelimit = new Date();\t\r\n\r\ndatelimit.setMinutes(datelimit.getMinutes() + 1)\r\nvm.AppointmentsDate = {date: '', datepickerOptions: { minDate: datelimit }};\r\n\r\n\r\nvm.openCalendarEndDate = function(e, picker) { \r\n\tvm.AppointmentsEndDate.open = true;\r\n};\r\n\r\nvar EndDatelimit = new Date();\t\r\n\tEndDatelimit.setMinutes(EndDatelimit.getMinutes() + 1)\r\nvm.AppointmentsEndDate = {date: '', datepickerOptions: { minDate: EndDatelimit }};\r\n\r\n$(function(){\r\n $(\".number-only\").keypress(function (e) {\r\n if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {\r\n $(\"#wdm_errmsg\").html(\"Please Enter Digits Only\").show().fadeOut(\"slow\");\r\n return false;\r\n }\r\n });\r\n /* Do not allow paste */\r\n $('.number-only').bind(\"paste\",function(e) {\r\n e.preventDefault();\r\n });\r\n // $('.number-only').keypress(function(e) {\r\n // if(isNaN(this.value+\"\"+String.fromCharCode(e.charCode))) return false;\r\n // })\t\r\n \r\n });\r\nvm.addMorejobitem = function () {\r\n vm.showRow = true;\r\n}\r\n\r\n vm.showRow = false;\r\n vm.addMoreSkill = function () {\r\n var skillData = {\r\n Skill: vm.addSkill,\r\n Experience: vm.addExprence,\r\n Brand: [],\r\n SelfRatingOnSkill: ''\r\n }\r\n \r\n if(skillData.Skill){\r\n vm.SkillList.push(skillData);\r\n vm.showRow = false;\r\n vm.addExprence = '';\r\n vm.addSkill = '';\r\n }else{\r\n vm.showRow = false;\r\n vm.addExprence = '';\r\n vm.addSkill = '';\r\n vm.showFailure(\"Warning\", \"You must select SKILL & EXPERIENCE\");\r\n }\r\n\r\n }\r\n vm.removeSkill = function (index) {\r\n vm.SkillList.splice(index, 1);\r\n }\r\n\r\n vm.JObItem = function(selectedprojectId){\r\n jobCreationService.GetJObLineItem(loggedinUser, selectedprojectId, token).then(function(resp){\r\n if (resp.status==200) {\r\n vm.JobItemList = resp.data; \r\n }\r\n })\r\n }\r\n vm.ActivityDescription=[];\r\n // vm.JObItem();\r\n vm.getLineItemAcitivityDesc = function(LineItemCategoryType){\r\n \r\n vm.LineItemDisc=\"\";\r\n var LineItemAcitivityArray = [];\r\n for (var i = 0; i < vm.JobItemList.length; i++) {\r\n if (vm.JobItemList[i].LineItemCategory == LineItemCategoryType) {\r\n LineItemAcitivityArray.push(vm.JobItemList[i]);\r\n }\r\n }\r\n vm.LineitemActivityList=LineItemAcitivityArray; \r\n if(LineItemCategoryType==\"Service\")\r\n vm.qunatityEnable=true;\r\n else\r\n vm.qunatityEnable=false; \r\n vm.ActivityDescription = vm.getRemainingLineItems();\r\n \r\n }\r\n \r\n vm.LineItemCompanyProvidedChange = function(LineItemCompanyProvided,index){\r\n if(typeof index === \"undefined\"){\r\n if(LineItemCompanyProvided==\"Yes\"){ \r\n if((vm.LineItemCategoryType==\"HW\" || vm.LineItemCategoryType==\"Service\" ) && vm.LineItemList.LineItemDescription==\"Others\"){\r\n vm.LineItemList.dLineItemFreelancerPrice = 0;\r\n vm.CompanyProvidedEnable=true;\r\n vm.IsBasePriceDisabled=true; \r\n vm.FreelancrPriceEnable=true; \r\n if(vm.LineItemCategoryType==\"HW\" && vm.LineItemList.LineItemDescription==\"Others\"){\r\n vm.LineItemList.dLineItemFreelancerPrice = 0;\r\n vm.CompanyProvidedEnable=true;\r\n vm.IsBasePriceDisabled=false;\r\n vm.FreelancrPriceEnable=true; \r\n } \r\n }\r\n else{\r\n vm.LineItemList.origdLineItemFreelancerPrice = vm.LineItemList.dLineItemFreelancerPrice; \r\n vm.LineItemList.dLineItemFreelancerPrice = 0; \r\n vm.CompanyProvidedEnable=true;\r\n vm.IsBasePriceDisabled=true; \r\n }\r\n }\r\n else{\r\n if((vm.LineItemCategoryType==\"HW\" || vm.LineItemCategoryType==\"Service\" )&& vm.LineItemList.LineItemDescription==\"Others\"){ \r\n vm.IsBasePriceDisabled=false; \r\n vm.CompanyProvidedEnable=false; \r\n vm.FreelancrPriceEnable=false;\r\n if(vm.LineItemCategoryType==\"HW\" && vm.LineItemList.LineItemDescription==\"Others\"){\r\n vm.LineItemList.dLineItemFreelancerPrice = vm.LineItemList.dLineItemFreelancerPrice; \r\n } \r\n }\r\n else if(vm.LineItemCategoryType==\"HW\" && vm.AccountId == \"158\"){\r\n vm.IsBasePriceDisabled=false; \r\n vm.FreelancrPriceEnable=false;\r\n vm.LineItemList.dLineItemFreelancerPrice = vm.LineItemList.dLineItemFreelancerPrice;\r\n }\r\n else{ \r\n vm.CompanyProvidedEnable=false;\r\n vm.IsBasePriceDisabled=true; \r\n vm.LineItemList.dLineItemFreelancerPrice = vm.LineItemList.origdLineItemFreelancerPrice; \r\n } \r\n } \r\n }\r\n else{\r\n if(LineItemCompanyProvided==\"Yes\"){ \r\n vm.PriceLineItemList[index].origdLineItemFreelancerPrice = vm.PriceLineItemList[index].dLineItemFreelancerPrice; \r\n vm.PriceLineItemList[index].dLineItemFreelancerPrice = 0; \r\n vm.CompanyProvidedEnable=true;\r\n vm.IsBasePriceDisabled=true; \r\n if(vm.PriceLineItemList[index].LineItemCategory==\"HW\" && vm.PriceLineItemList[index].LineItemDescription==\"Others\"){ \r\n vm.PriceLineItemList[index].dLineItemFreelancerPrice = 0; \r\n vm.CompanyProvidedEnable=true;\r\n vm.FreelancrPriceEnable=true; \r\n vm.IsBasePriceDisabled=false; \r\n }\r\n }\r\n else{ \r\n vm.CompanyProvidedEnable=false; \r\n vm.IsBasePriceDisabled=true; \r\n if(vm.PriceLineItemList[index].LineItemCategory==\"HW\" ){\r\n if(vm.PriceLineItemList[index].LineItemDescription==\"Others\"){\r\n vm.PriceLineItemList[index].dLineItemFreelancerPrice = vm.PriceLineItemList[index].dLineItemWinPrice; \r\n vm.CompanyProvidedEnable=false;\r\n vm.FreelancrPriceEnable=false;\r\n vm.IsBasePriceDisabled=false; \r\n }\r\n else{\r\n vm.PriceLineItemList[index].dLineItemFreelancerPrice = vm.PriceLineItemList[index].origdLineItemFreelancerPrice;\r\n } \r\n }\r\n }\r\n } \r\n }\r\n\r\n $scope.LoadSessionData=function(val){ \r\n $scope.selectedVal = val.value\r\n $scope.$apply(); \r\n }; \r\n vm.LineItemDetails = function(ObjLineItem){ \r\n var LineItemId=ObjLineItem.LineItemId;\r\n jobCreationService.ItemLineDetails(loggedinUser, vm.selectedprojectId, LineItemId, token).then(function(resp){\r\n if (resp.status==200) {\r\n vm.LineItemList = resp.data;\r\n vm.LineItemList.Quantity=1;\r\n vm.LineItemCompanyProvided= vm.LineItemList.LineItemCompanyProvided; \r\n if(vm.LineItemCategoryType==\"Collection\")\r\n {\r\n vm.IsBasePriceDisabled=true; \r\n vm.IsPercentageDisabled=true; \r\n vm.disableProvided=true; \r\n vm.qunatityEnable=true;\r\n vm.CompanyProvidedEnable=false; \r\n vm.FreelancrPriceEnable=false;\r\n\r\n }\r\n else\r\n {\r\n \r\n if(vm.LineItemCompanyProvided==\"Yes\")\r\n {\r\n if(vm.LineItemCategoryType == \"Service\"){\r\n vm.CompanyProvidedEnable=false; \r\n vm.disableProvided=true;\r\n vm.qunatityEnable=false; \r\n }else { \r\n vm.CompanyProvidedEnable=true;\r\n vm.disableProvided=false; \r\n vm.IsPercentageDisabled=true;\r\n vm.qunatityEnable=false; \r\n }\r\n }\r\n else{\r\n vm.CompanyProvidedEnable=false;\r\n vm.IsPercentageDisabled=false; \r\n vm.disableProvided=false; \r\n vm.IsBasePriceDisabled=true;\r\n vm.FreelancrPriceEnable=true;\r\n vm.qunatityEnable=false; \r\n if(vm.LineItemCategoryType == \"Service\")\r\n vm.disableProvided=true; \r\n else\r\n vm.disableProvided=false; \r\n if((vm.LineItemCategoryType==\"HW\" && ObjLineItem.LineItemDescription==\"Others\" && vm.AccountId != \"158\") || (vm.LineItemCategoryType==\"HW\" && vm.AccountId == \"158\") )\r\n { \r\n vm.IsBasePriceDisabled=false; \r\n vm.IsPercentageDisabled=true; \r\n vm.CompanyProvidedEnable=false; \r\n vm.FreelancrPriceEnable=false; \r\n } \r\n if(vm.LineItemCategoryType==\"Service\" && ObjLineItem.LineItemDescription==\"Others\") \r\n { \r\n vm.IsBasePriceDisabled=false; \r\n vm.IsPercentageDisabled=true; \r\n vm.CompanyProvidedEnable=false; \r\n vm.disableProvided=true; \r\n vm.FreelancrPriceEnable=false; \r\n } \r\n if(vm.LineItemCategoryType==\"Service\" && vm.LineItemList.LineItemDescription==\"PAV Activity\" && vm.AccountId == \"375\"){\r\n vm.IsBasePriceDisabled=false; \r\n vm.FreelancrPriceEnable=false; \r\n vm.CompanyProvidedEnable=false; \r\n } \r\n } \r\n //vm.calculateLineItemPrice(); \r\n }\r\n }\r\n })\r\n }\r\n vm.ConverttoDecimal = function(value) {\r\n return (parseFloat(value).toFixed(2))\r\n }\r\n \r\n vm.addPriceLineItem = function(){\r\n \r\n if(!vm.LineItemCategoryType)\r\n {\r\n vm.showFailure(\"Warning\", \"Please select category type\"); \r\n return; \r\n } \r\n\r\n if(!vm.LineItemDisc)\r\n {\r\n vm.showFailure(\"Warning\", \"Please select activity description\"); \r\n return; \r\n } \r\n\r\n if(vm.LineItemCategoryType!=\"Collection\")\r\n {\r\n if(vm.LineItemList.dLineItemWinPrice==\"\" || vm.LineItemList.dLineItemWinPrice==\"0\" || parseInt(vm.LineItemList.dLineItemWinPrice) < 1)\r\n {\r\n vm.showFailure(\"Warning\", \"Please enter base price\"); \r\n return; \r\n } \r\n\r\n if(vm.LineItemCompanyProvided ==\"\")\r\n {\r\n vm.showFailure(\"Warning\", \"Please select company provided yes or no\"); \r\n return; \r\n } \r\n \r\n if(vm.LineItemList.Quantity==\"\")\r\n {\r\n vm.showFailure(\"Warning\", \"Please enter quantity\"); \r\n return; \r\n }\r\n\r\n if(vm.LineItemList.Quantity==0){\r\n vm.showFailure(\"Warning\", \"zero (0) quantity not allowed\"); \r\n return; \r\n }\r\n\r\n if(vm.LineItemList.LineItemDescription == \"Others\" && (parseFloat(vm.LineItemList.dLineItemFreelancerPrice) > parseFloat(vm.LineItemList.dLineItemWinPrice))){\r\n vm.showFailure(\"Warning\", \"Please enter freelancer price less or equal to win price\");\r\n return;\r\n }\r\n\r\n if(vm.LineItemList.dLineItemFreelancerPrice==\"\" || vm.LineItemList.dLineItemFreelancerPrice==\"0\" || parseInt(vm.LineItemList.dLineItemFreelancerPrice) < 1)\r\n {\r\n if(vm.LineItemCategoryType==\"HW\" && vm.LineItemCompanyProvided==\"Yes\")\r\n {\r\n\r\n }\r\n else{\r\n vm.showFailure(\"Warning\", \"Please enter freelancer price\");\r\n return; \r\n } \r\n \r\n } \r\n } \r\n var tData = {\r\n LineItemDescription: vm.LineItemList.LineItemDescription,\r\n LineItemCategory: vm.LineItemCategoryType, \r\n dLineItemWinPrice: vm.LineItemList.dLineItemWinPrice,\r\n LineItemId: vm.LineItemDisc.LineItemId,\r\n LineItemCode: vm.LineItemList.LineItemCode,\r\n LineItemQuantity: vm.LineItemList.Quantity, \r\n dLineItemFreelancerPrice: vm.LineItemList.dLineItemFreelancerPrice,\r\n origdLineItemFreelancerPrice: vm.LineItemList.origdLineItemFreelancerPrice,\r\n LineItemRemark: vm.Remarks,\r\n LineItemUnit: vm.LineItemList.LineItemUnit,\r\n LineItemCompanyProvided: vm.LineItemCompanyProvided,\r\n LineItemAction: \"Add\",\r\n LineItemAttachment: \"\" \r\n } \r\n \r\n \r\n var basePrice = vm.LineItemList.dLineItemWinPrice;\r\n var dFprice = vm.LineItemList.dLineItemFreelancerPrice; \r\n var Quantity = vm.LineItemList.Quantity; \r\n \r\n if(vm.LineItemCategoryType!=\"Collection\")\r\n {\r\n vm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(basePrice) * parseInt(Quantity))).toFixed(2);\r\n vm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * parseInt(Quantity))).toFixed(2);\r\n }\r\n\r\n if(tData.LineItemDescription){ \r\n vm.PriceLineItemList.push(tData); \r\n vm.showTCList = false; \r\n vm.EmptyLineItemDetails(); \r\n }else{\r\n vm.showTCList = false;\r\n vm.showFailure(\"Warning\", \"You must select activity description\");\r\n } \r\n vm.LineItemCategoryType=\"\";\r\n vm.LineItemDisc=\"\";\r\n }\r\n\r\n vm.getRemainingLineItems = function () { \r\n var RemovePriceLineItems = [];\r\n var remainingPriceLineItems = Array.from(vm.LineitemActivityList);\r\n angular.forEach(remainingPriceLineItems, function (d) {\r\n for (var i = 0; i < vm.PriceLineItemList.length; i++) {\r\n if (d.LineItemDescription == vm.PriceLineItemList[i].LineItemDescription && d.LineItemCategory==vm.PriceLineItemList[i].LineItemCategory) {\r\n RemovePriceLineItems.push(d);\r\n return;\r\n }\r\n }\r\n });\r\n angular.forEach(RemovePriceLineItems, function (s) {\r\n remainingPriceLineItems.splice(remainingPriceLineItems.indexOf(s), 1);\r\n }) \r\n return remainingPriceLineItems;\r\n }\r\n // vm.getItemList = function () {\r\n \r\n // // var array = Array.from(vm.JobItemList); \r\n // // var flags = [], output = [], l = array.length, i;\r\n // // for( i=0; i ( parseFloat(vm.LineItemList.dLineItemWinPrice) * parseFloat(vm.LineItemList.Quantity)))\r\n {\r\n vm.showFailure(\"Warning\",\"Freelancer price should be less than or equal to base price\");\r\n return;\r\n }\r\n //((BP-(FP/qnty))/BP)*100\r\n vm.LineItemList.LineItemPercentage = (((parseFloat(vm.LineItemList.dLineItemWinPrice)-(parseFloat(vm.FreelancerPrice)/parseFloat(vm.LineItemList.Quantity)))/parseFloat(vm.LineItemList.dLineItemWinPrice))*100).toFixed(2);\r\n if(vm.LineItemList.LineItemPercentage==\"NaN\")\r\n vm.LineItemList.LineItemPercentage=0.0;\r\n }\r\n }\r\n }\r\n else\r\n {\r\n if(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\")\r\n {\r\n if(vm.PriceLineItemList[index].FreelancerPrice==\"\")\r\n {\r\n vm.PriceLineItemList[index].LineItemPercentage=0.0;\r\n vm.PriceLineItemList[index].FreelancerPrice=0.0;\r\n }\r\n else\r\n {\r\n if( parseFloat(vm.PriceLineItemList[index].FreelancerPrice)> ( parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice) * parseFloat(vm.PriceLineItemList[index].Quantity)))\r\n {\r\n vm.showFailure(\"Warning\",\"Freelancer price should be less than or equal to base price\");\r\n return;\r\n }\r\n vm.PriceLineItemList[index].LineItemPercentage = (((parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice)-(parseFloat(vm.PriceLineItemList[index].FreelancerPrice)/parseFloat(vm.PriceLineItemList[index].Quantity)))/parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice))*100).toFixed(2);\r\n if(vm.PriceLineItemList[index].LineItemPercentage==\"NaN\")\r\n vm.PriceLineItemList[index].LineItemPercentage=0.0;\r\n }\r\n }\r\n }\r\n }\r\n vm.LineItemEdit = function(index){\r\n if(vm.PriceLineItemList[index].LineItemCategory==\"Collection\"){\r\n vm.IsBasePriceDisabled=true; \r\n vm.disableProvided=true; \r\n vm.qunatityEnable=true;\r\n vm.CompanyProvidedEnable=false; \r\n vm.FreelancrPriceEnable=false;\r\n }\r\n else{\r\n if(vm.PriceLineItemList[index].LineItemCategory==\"Service\"){\r\n if(vm.PriceLineItemList[index].LineItemCategory==\"Service\" && \r\n vm.PriceLineItemList[index].LineItemDescription==\"Others\") {\r\n vm.CompanyProvidedEnable=false;\r\n vm.IsBasePriceDisabled=false;\r\n vm.FreelancrPriceEnable=false; \r\n vm.disableProvided=true;\r\n }\r\n if(vm.PriceLineItemList[index].LineItemCategory ==\"Service\" && vm.PriceLineItemList[index].LineItemDescription ==\"PAV Activity\" && vm.AccountId == \"375\"){\r\n vm.IsBasePriceDisabled=false; \r\n vm.FreelancrPriceEnable=false; \r\n vm.CompanyProvidedEnable=false; \r\n } \r\n else{\r\n if(vm.PriceLineItemList[index].LineItemCompanyProvided==\"Yes\"){\r\n vm.IsBasePriceDisabled=true; \r\n vm.qunatityEnable=false;\r\n vm.disableProvided=true; \r\n }\r\n else\r\n {\r\n vm.IsBasePriceDisabled=true; \r\n vm.qunatityEnable=false;\r\n vm.disableProvided=true; \r\n vm.FreelancrPriceEnable=true; \r\n }\r\n }\r\n }\r\n else{\r\n if(vm.PriceLineItemList[index].LineItemCategory==\"HW\" && \r\n vm.PriceLineItemList[index].LineItemDescription==\"Others\"){ \r\n vm.CompanyProvidedEnable=false;\r\n vm.IsBasePriceDisabled=false; \r\n vm.disableProvided=false;\r\n if(vm.PriceLineItemList[index].LineItemCompanyProvided==\"Yes\"){\r\n vm.CompanyProvidedEnable=true;\r\n vm.IsBasePriceDisabled=false; \r\n vm.disableProvided=false;\r\n vm.FreelancrPriceEnable=true;\r\n }\r\n }\r\n else{\r\n if(vm.PriceLineItemList[index].LineItemCompanyProvided==\"Yes\"){\r\n vm.IsBasePriceDisabled=true; \r\n vm.qunatityEnable=false;\r\n vm.disableProvided=false; \r\n }\r\n else{\r\n vm.IsBasePriceDisabled=true; \r\n vm.qunatityEnable=false;\r\n vm.disableProvided=false;\r\n vm.FreelancrPriceEnable=true; \r\n }\r\n }\r\n }\r\n vm.LineItemCompanyProvided=vm.PriceLineItemList[index].LineItemCompanyProvided;\r\n }\r\n }\r\n vm.EditUpdateCalculation = function(index)\r\n { \r\n if(vm.PriceLineItemList[index].LineItemDescription == \"Others\" && (parseFloat(vm.PriceLineItemList[index].dLineItemFreelancerPrice) > parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice))){\r\n vm.showFailure(\"Warning\", \"Please enter freelancer price less or equal to win price\");\r\n return true;\r\n }\r\n\r\n if(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\"){ \r\n if(vm.PriceLineItemList[index].LineItemQuantity==\"\" || vm.PriceLineItemList[index].LineItemQuantity==0){\r\n vm.PriceLineItemList[index].edit=true;\r\n vm.showFailure(\"Warning\", \"Please enter quantity greate than 0 value\"); \r\n return true; \r\n } \r\n\r\n vm.BasePriceTotal = 0.0;\r\n vm.dFreelancerPriceTotal = 0.0;\r\n for(var i = 0; i < vm.PriceLineItemList.length; i++)\r\n {\r\n if(vm.PriceLineItemList[i].LineItemCategory!=\"Collection\")\r\n {\r\n var basePrice = vm.PriceLineItemList[i].dLineItemWinPrice;\r\n var dFprice = vm.PriceLineItemList[i].dLineItemFreelancerPrice; \r\n var Quantity = vm.PriceLineItemList[i].LineItemQuantity; \r\n vm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(basePrice) * Quantity)).toFixed(2);\r\n vm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * Quantity)).toFixed(2);\r\n }\r\n }\r\n }\r\n else{\r\n if(vm.PriceLineItemList[index].dLineItemFreelancerPrice==\"\" || vm.PriceLineItemList[index].dLineItemFreelancerPrice==0){\r\n vm.PriceLineItemList[index].edit=true;\r\n vm.showFailure(\"Warning\", \"Please enter collection amount under freelancer\"); \r\n return true; \r\n } \r\n }\r\n return false;\r\n }\r\n vm.removeCurrentActivityRow = function()\r\n\t\t{\r\n vm.showTCList = false;\t\r\n vm.EmptyLineItemDetails();\t\r\n \r\n\t\t}\r\n\t\tvm.EmptyLineItemDetails = function()\r\n\t\t{\r\n vm.LineItemCategoryType=\"\";\r\n\t\t\tvm.LineItemDisc=\"\";\r\n\t\t\tvm.LineItemList.LineItemDescription = '';\r\n\t\t\tvm.LineItemList.LineItemCategory = '';\r\n\t\t\tvm.LineItemList.LineItemPercentage = '';\r\n\t\t\tvm.LineItemList.dLineItemWinPrice = '';\r\n vm.LineItemList.dLineItemFreelancerPrice = '';\r\n\t\t\tvm.LineItemList.Quantity='';\r\n\t\t\tvm.FreelancerPrice='';\r\n\t\t\tvm.Remarks='';\r\n } \r\n\r\n vm.removeLineItem = function(index){\r\n if(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\"){\r\n var basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n var dFprice = vm.PriceLineItemList[index].dLineItemFreelancerPrice;\r\n var Quantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n vm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - parseFloat(basePrice) * parseInt(Quantity)).toFixed(2);\r\n vm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - parseFloat(dFprice) * parseInt(Quantity)).toFixed(2);\r\n }\r\n vm.PriceLineItemList.splice(index, 1);\r\n } \r\n\r\n});\r\n\r\nfunction isNumberKey(evt,elemref, quantityvalue)\r\n{ \r\n var charCode = (evt.which) ? evt.which : evt.keyCode;\r\n if(quantityvalue==\"quantity\"){\r\n if(charCode == 46 ){\r\n return false;\r\n }\r\n } \r\n if(charCode == 46 ){\r\n if ((elemref.value) && (elemref.value.indexOf('.') >= 0))\r\n return false;\r\n }\r\n if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57))\r\n { \r\n \r\n return false;\r\n } \r\n if(quantityvalue==\"Percentage\"){\r\n if(parseFloat(elemref.value + evt.key) > 100)\r\n {\r\n return false\r\n }\r\n }\r\n return true; \r\n}\r\n \nangular.module('inspinia').service('inventoryService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n var vm = this;\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n// https://perf.mymobiforce.com/coreapi/api/TicketPayment/getinvoicesinrange?ReqUserId=F00000000000&StartDate=2019-07-01&EndDate=2019-08-21\r\nthis.GetAllScheduleExceptionListbyDateRange = function (loggedinUser, startDate, endDate, token) {\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/GetSchedulerException?ReqUserId=' + loggedinUser + '&StartDate=' + startDate + '&EndDate='+endDate;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId':loggedinUser }\r\n });\r\n}\r\n\r\n\r\n //https://perf.mymobiforce.com/schedulingapi/api/AutoSchedulerException/MarkResolveSchedulerException?reqUserId=U350000000001&exceptionId=U350000000001\r\n this.ResolveException = function(loggedinUser, exceptionIdList, success, token){\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/MarkResolveSchedulerException?reqUserId=' + loggedinUser ;\r\n $http.put(url,{'exceptionIdList':exceptionIdList},{\r\n headers:{'Content-Type':'application/json', 'Token': token, 'UserId':loggedinUser}\r\n }).then(function (res) {\r\n if(status = '202'){\r\n vm.showSuccess(\"Schedule Exception\", \"Exception(s) resolved successfully\");\r\n }\r\n \r\n success(res);\r\n }, function () {\r\n vm.showFailure(\"Schedule Exception\", \"Unable to resolved Exception(s)\");\r\n })\r\n }\r\n \r\n\r\n // https://perf.mymobiforce.com/coreapi/api/TicketPayment/PayCompleteInvoice?ReqUserId=F00000000000&InvoiceNo=IN_000000001\r\n // this.PutSingleInvoicePayments = function (loggedinUser, InvoiceNo, success, token) {\r\n // var url = ApiURL + '/api/TicketPayment/PayCompleteInvoice?ReqUserId=' + loggedinUser + '&InvoiceNo=' + InvoiceNo\r\n // $http.put(url, null, {\r\n // headers: { 'Content-Type': 'application/json', 'Token': token }\r\n // }).then(function (res) {\r\n // vm.showSuccess(\"Payment Information\", \"Payment Completed Successfully\");\r\n // success(res);\r\n // }, function () {\r\n // vm.showFailure(\"Payment Information\", \"Unable to make payment\");\r\n // })\r\n // }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/TicketPayment/PayMultiInvoices?ReqUserId=F00000000000&InvoiceNos=indifnd\r\n // this.PutMultiSelectedInvoicePayments = function (loggedinUser, InvoiceNos, success, token) {\r\n // var url = ApiURL + '/api/TicketPayment/PayMultiInvoices?ReqUserId=' + loggedinUser + '&InvoiceNos=' + InvoiceNos\r\n // $http.put(url, null, {\r\n // headers: { 'Content-Type': 'application/json', 'Token': token }\r\n // }).then(function (res) {\r\n // vm.showSuccess(\"Payment Information\", \"Payment Completed Successfully\");\r\n // success(res);\r\n // }, function () {\r\n // vm.showFailure(\"Payment Information\", \"Unable to make payment\");\r\n // })\r\n // }\r\n\r\n // https://perf.mymobiforce.com/SchedulingAPI/api/AutoSchedulerException/GetActiveSchedulerExceptionMobileApp?reqUserId=U00000000406&startDate=2021-08-01&endDate=2021-10-07&PageIndex=1&PageSize=10\r\n // this.getAllJobTickets = function (reqUserId, startDate, endDate, token,PageIndex,PageSize) {\r\n // var url = '';\r\n // url = SchedulingAPI + '/api/AutoSchedulerException/GetActiveSchedulerExceptionMobileApp?reqUserId=' + reqUserId + '&startDate=' + startDate+ '&endDate=' + endDate +'&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n // // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // 'Token': token,\r\n // 'UserId': reqUserId\r\n // }\r\n // });\r\n // }\r\n//https://perf.mymobiforce.com/schedulingapi/api/AutoSchedulerException/GetSchedulerExceptionForServerWithDynPaging\r\n this.getAllJobForExceptionList = function ( loggedinUser, token,userFormData) {\r\n var url = SchedulingAPI + \"/api/AutoSchedulerException/GetSchedulerExceptionForServerWithDynPaging\";\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.getAllAccounts = function (loggedinUser,token) { \r\n var url = ApiURL+ '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n }\r\n this.getAllUserByReportingPerson = function (reportingTo, token) {\r\n var url = ApiURL +'/api/User/'+ reportingTo+'/byReportingToWithJobCount?ReqUserId='+reportingTo;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId':reportingTo }\r\n });\r\n }\r\n\r\n\r\n// https://perf.mymobiforce.com/publicapi/api/Report/DownloadInvoices?reqUserId=F00000000000&InvoicesNo=IN_000000002\r\nthis.downloadInvoicebyInvoiceNo = function (loggedinUser, InvoiceNos, success, token) {\r\n $window.location.href = PublicApiURL + '/api/Report/DownloadInvoices?reqUserId=' + loggedinUser + '&InvoicesNo=' + InvoiceNos\r\n console.log($window.location.href);\r\n // $http.get(url,{\r\n // headers: { 'Content-Type': 'application/json', 'Token': token }\r\n // }).then(function (res) {\r\n // vm.showSuccess(\"Download Information\", \"Download Completed Successfully\");\r\n // success(res);\r\n // }, function () {\r\n // vm.showFailure(\"Payment Information\", \"Unable to Download Invoices\");\r\n // })\r\n}\r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('inventoryController', function (inventoryService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tinventoryService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n\t\tinventoryService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.$parent.$parent.main.implementSelectItems('scheduleExceptionListNew', this);\r\n\t\t// $scope.$parent.$parent.main.implementSelectItems('InVoiceHistoryData', this);\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount ; \r\n\t\t$scope.TicketTablepagination = {\r\n\t\t current: 1\r\n\t\t};\r\n\t\r\n\t\r\n\t\tvm.changeTicketPageListCount = function() { \r\n\t\t $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t PageSize = $scope.ticketTablePerPage;\r\n\t\t $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t}\r\n\r\n\t\tPageIndex=$scope.TicketTablepagination.current;\r\n\t\t$scope.TicketTablepageChanged = function(newPage) { \r\n\t\t PageIndex = newPage; \r\n\t\t vm.getAllJobForExceptionList();\r\n\t\t};\r\n\r\n\t\tvm.scheduleExceptionListNew=[];\r\n \r\n\t\tvm.getAllJobForExceptionList = function() {\r\n\t\t\tvar userFormData = {\t\r\n\t\t\t\t\"startDate\":startDate,\t\r\n\t\t\t\t\"endDate\":endDate,\r\n\t\t\t\t\"PageIndex\": PageIndex,\r\n\t\t\t\t\"PageSize\":PageSize,\t\r\n\t\t\t\t\"ExceptionType\":vm.ExceptionType,\r\n\t\t\t\t\"ExceptionState\":vm.exceptionState,\r\n\t\t\t\t\"ExceptionAssignToUserId\":vm.UserId,\r\n\t\t\t\t\"ReqUserId\":loggedinUser,\r\n\t\t\t\t\"AccountName\":vm.SearchByAccountName\r\n\t\t\t}\r\n\t\t PageIndex = PageIndex?PageIndex:1;\r\n\t\t inventoryService.getAllJobForExceptionList(loggedinUser,token,userFormData).then(function (resp) {\r\n\t\t if (resp && resp.data) {\r\n\t\t\t vm.scheduleExceptionListNew = resp.data.listScheduleException;\r\n\t\t\t $scope.totalTableTickets = resp.data.nRecordCount;\r\n\t\t\t $scope.totalTableUsers = resp.data.nRecordCount;\r\n \r\n\t\t\t vm.enableFilters = true;\r\n\t\t\t vm.actionFlag = false;\r\n\t\t\t $localStorage.TList = vm.scheduleExceptionListNew;\r\n\t\t\t $localStorage.AllJobType = vm.searchJobTypeText;\r\n\t\t\t $localStorage.AllJobStatus = vm.searchStatusText;\r\n\t\t\t angular.forEach(vm.scheduleExceptionListNew, function (t) {\r\n\t\t\t t.StartTime = moment(t.StartTime, \"YYYY-MM-DDThh:mm:ssZ\"); \r\n\t\t\t t.StartTimeD = t.StartTime.format(\"YYYY-MM-DD hh:mm\");\r\n \r\n\t\t\t var today = moment();\r\n\t\t\t })\r\n\t\t\t\r\n\t\t\t if(vm.scheduleExceptionListNew.length < vm.ticketPageListCount)\r\n\t\t\t vm.scheduleExceptionListNewLength = $scope.totalTableTickets;\r\n\t\t\t else\r\n\t\t\t vm.scheduleExceptionListNewLength = PageIndex * vm.ticketPageListCount;\r\n\t\t\t if(PageIndex==1)\r\n\t\t\t vm.pageindexCount = 1;\r\n\t\t\t else\r\n\t\t\t vm.pageindexCount = (((PageIndex-1) * vm.ticketPageListCount) + 1);\r\n\t\t }\r\n \r\n\t\t }, function () { \r\n\t\t });\r\n\t\t \r\n\t }\r\n\t vm.getAllJobForExceptionList();\r\n\r\n\r\n\t vm.implementSelectItemsNewJob = function (itemList, scope) {\r\n\t\tscope.selectAllNewJob = false;\r\n\t\tscope.showMinusNewJob = false;\r\n\t\tscope.selectRowNewJob = function (i) {\r\n\t\t scope.showMinusNewJob = false;\r\n\t\t scope.selectAllNewJob = false;\r\n\t\t angular.forEach(scope[itemList], function (d) {\r\n\t\t\tif (d.checked) {\r\n\t\t\t scope.showMinusNewJob = true;\r\n\t\t\t \r\n\t\t\t}\r\n\t\t });\r\n\t\t}\r\n\t\tscope.applyAllNewJobSelect = function () {\r\n\t\t angular.forEach(scope[itemList], function (d) {\r\n\t\t\td.checked = scope.selectAllNewJob;\r\n\t\t });\r\n\t\t}\r\n \r\n\t\tscope.resetAllSelect = function () {\r\n\t\t scope.selectAllNewJob = false;\r\n\t\t scope.showMinusNewJob = false;\r\n\t\t}\r\n\t }\r\n \r\n\t vm.implementSelectItemsNewJob('scheduleExceptionListNew', this);\r\n\r\n\t vm.JobView = function (ticketId) {\r\n\t\t$localStorage.backToOldJobList = '';\r\n\t\t $localStorage.SDate = startDate;\r\n\t\t $localStorage.EDate = endDate;\r\n\t\t \r\n\t\t $localStorage.TicketFilterModel ={\r\n\t\t\t\"JobLocation\" : vm.locationSearch,\r\n\t\t\t\"JobStatus\" : vm.searchStatusText,\r\n\t\t\t\"JobSDate\" : startDate,\r\n\t\t\t\"JobEDate\" : endDate, \r\n\t\t\t\"JobSkill\" : vm.skillsSearch,\r\n\t\t\t\"UserType\" : vm.UsersType,\r\n\t\t\t\"PageIndex\" : PageIndex \r\n\t\t } ;\r\n\t\t$localStorage.backToOldJobList = 'ManualAssignationTeamAssign';\r\n\t\t\r\n\t\t\r\n\t\t $state.go('index.JobDetailView', {\r\n\t\t\tticketId: ticketId\r\n\t\t })\r\n\t\t\r\n\t }\r\n\r\n\r\n\tvm.DisableScheduledExceptionButtons = function (disable) {\r\n\t if(disable){\r\n\t \t\tvm.disableExceptionButton = true;\t\t\t\r\n\t }\r\n\t else{\r\n\t \tvm.disableExceptionButton = false;\r\n\t }\r\n\t}\r\n\tvm.getAllDispatchUser = function () {\r\n\t\tinventoryService.getAllUserByReportingPerson(loggedinUser, token).then(function (resp) {\r\n\t\t vm.DSusers = resp.data;\r\n\t\t}, function () {\r\n\t\t})\r\n\t }\r\n\t vm.getAllDispatchUser();\r\n\r\n\r\n\tvm.resolveException = function(){\r\n\t\tvm.DisableScheduledExceptionButtons(true);\r\n\t\tvar exceptionIdList = []; \r\n\t\tangular.forEach(vm.scheduleExceptionListNew, function(d){\r\n\t\t if (d.checked) {\r\n\t\t\texceptionIdList.push(d.ExceptionId); \r\n\t\t }\r\n\t\t})\r\n\t\tvm.DisableScheduledExceptionButtons(true); \r\n\t\tinventoryService.ResolveException(loggedinUser, exceptionIdList, vm.createCallback(null, [function(data){\r\n\t\t\t\t\t$timeout(function(){ \r\n\t\t\t\t\t\tvm.selectSingle = false;\r\n\t\t\t\t\t\tvm.DisableScheduledExceptionButtons(false);\r\n\t\t\t\t\t\tvm.getAllJobForExceptionList(); \r\n\t\t\t\t\t }, 1000);\r\n\t\t}]), token);\r\n\t}\r\n\tvm.accounts=[];\r\n\tvm.getAllAccounts = function ( ) {\r\n\t\tinventoryService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n\t\t if (resp && resp.data) { \r\n\t\t\tif(resp.status==200)\r\n\t\t\t{\r\n\t\t\t vm.showAllAccounts = resp.data;\r\n\r\n\t\t\t}\r\n\t\t } \r\n\t\t}, function () { \r\n\t\t});\r\n\t}\r\n\tvm.getAllAccounts();\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').controller('TemplateController', function ($localStorage, $scope, $timeout, $log, $uibModal, $sce, $rootScope, $http, $state, $window, $stateParams, toaster, $compile, PopupService, ApiURL, FormBuilderService) {\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm = this;\r\n\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var token = $localStorage.token;\r\n\r\n PopupService.SectionList = [];\r\n PopupService.popupCount = 0;\r\n $scope.todoList1 = [];\r\n var activeSortableList = 'todoList1';\r\n var step_withMatching_sortableList = {\r\n Supervisor: 'todoList1'\r\n };\r\n var renderedModelIndex = 0;\r\n var templateModel = {};\r\n var userId = $stateParams.userId;\r\n $scope.htmlString = '';\r\n $scope.ActionList = [];\r\n $scope.ActionNumber = 1;\r\n $scope.templateName = 'Create Template';\r\n var sectionList = [];\r\n var stepcount = 1;\r\n var stepVeryingCount = 1;\r\n $scope.fetchedTemplate = {};\r\n $scope.stepID1 = 'Supervisor';\r\n var fetchedTemplate = {};\r\n var updateTemplateCheck = false;\r\n PopupService.ActionList.stepID1 = 'step 1';\r\n PopupService.currentStepName = $scope.stepID1;\r\n var templateName = $stateParams.templateName;\r\n $scope.elemntDetails = {};\r\n $scope.itemTypeDic = PopupService.itemTypeDic;\r\n var renderingSectionList = [];\r\n $scope.isDisabled = false;\r\n $scope.templateDescription = '';\r\n $scope.IsFieldDataReportEnabled = false;\r\n $scope.IsSiteAccessNeeded = false;\r\n $scope.IsVendorApprovalNeeded = false;\r\n $scope.IsSerialNumberVerificationEnabled = false;\r\n $scope.SiteAccessWaitingTime = 0;\r\n $scope.MMFJobType = '';\r\n $scope.MMFServiceType = '';\r\n $scope.skill1 = '';\r\n $scope.SkillSet=[];\r\n $rootScope.SkillSet=[];\r\n $scope.isDisabledField=false;\r\n if ($state.current.name == \"index.FormEdit\") {\r\n if (templateName) {\r\n $scope.templateName = templateName;\r\n $scope.ActionList = [];\r\n getTemplate(templateName);\r\n updateTemplateCheck = true;\r\n }\r\n } else {\r\n $scope.ActionList.push({\r\n action_name: 'Supervisor',\r\n action_sequence: $scope.ActionNumber\r\n });\r\n }\r\n\r\n ///Item List Initialization varibles\r\n $scope.dynamicPopover = {\r\n content: 'Hello, World!',\r\n textbox_TemplateUrl: 'text_popover.html',\r\n paragraph_TemplateUrl: 'paragraph_popover.html',\r\n checkbox_TemplateUrl: 'checkbox_popover.html',\r\n dropdown_TemplateUrl: 'dropdown_popover.html',\r\n address_TemplateUrl: 'address_popover.html',\r\n decimal_TemplateUrl: 'decimal_popover.html',\r\n number_TemplateUrl: 'number_popover.html',\r\n date_TemplateUrl: 'date_popover.html',\r\n phone_TemplateUrl: 'number_popover.html',\r\n email_TemplateUrl: 'email_popover.html',\r\n video_TemplateUrl: 'video_popover.html',\r\n signature_TemplateUrl: 'signature_popover.html',\r\n image_TemplateUrl: 'image_popover.html'\r\n };\r\n\r\n $scope.placement = {\r\n options: [\r\n 'top',\r\n 'top-left',\r\n 'top-right',\r\n 'bottom',\r\n 'bottom-left',\r\n 'bottom-right',\r\n 'left',\r\n 'left-top',\r\n 'left-bottom',\r\n 'right',\r\n 'right-top',\r\n 'right-bottom'\r\n ],\r\n selected: 'top'\r\n };\r\n\r\n var originalScreens1 = [{\r\n content: 'Text',\r\n\r\n statusClass: 'info',\r\n contentType: 'text'\r\n },\r\n {\r\n content: 'Paragraph',\r\n\r\n statusClass: 'warning',\r\n contentType: 'paragraph'\r\n },\r\n {\r\n content: 'Checkbox',\r\n\r\n statusClass: 'warning',\r\n contentType: 'checkboxes'\r\n },\r\n {\r\n content: 'Dropdown',\r\n\r\n statusClass: 'warning',\r\n contentType: 'dropdown'\r\n },\r\n {\r\n content: 'Address',\r\n statusClass: 'success',\r\n contentType: 'address'\r\n },\r\n {\r\n content: '1.23 Decimal',\r\n statusClass: 'info',\r\n contentType: 'decimal'\r\n },\r\n {\r\n content: '123 Number',\r\n statusClass: 'warning',\r\n contentType: 'number'\r\n },\r\n {\r\n content: 'Instruction',\r\n statusClass: 'warning',\r\n contentType: 'instruction'\r\n }\r\n ];\r\n\r\n var originalScreens2 = [{\r\n content: 'Date',\r\n\r\n statusClass: 'info',\r\n contentType: 'date'\r\n\r\n },\r\n {\r\n content: 'Phone',\r\n\r\n statusClass: 'warning',\r\n contentType: 'phone'\r\n\r\n },\r\n {\r\n content: 'Email',\r\n statusClass: 'warning',\r\n contentType: 'email'\r\n },\r\n {\r\n content: 'Video',\r\n statusClass: 'warning',\r\n contentType: 'video'\r\n },\r\n {\r\n content: 'Signature',\r\n statusClass: 'success',\r\n contentType: 'signature'\r\n },\r\n {\r\n content: 'Image',\r\n statusClass: 'info',\r\n contentType: 'image'\r\n },\r\n {\r\n content: 'Dataset',\r\n statusClass: 'warning',\r\n contentType: 'dataset'\r\n },\r\n {\r\n content: 'Section',\r\n statusClass: 'warning',\r\n contentType: 'section'\r\n },\r\n {\r\n content: 'Barcode',\r\n statusClass: 'warning',\r\n contentType: 'barcode'\r\n },\r\n {\r\n content: 'SiteLayout',\r\n statusClass: 'success',\r\n contentType: 'siteLayout'\r\n },\r\n {\r\n content: 'File Attachement',\r\n statusClass: 'success',\r\n contentType: 'attachFile'\r\n }\r\n ];\r\n\r\n $scope.ItemList = originalScreens1.slice();\r\n $scope.ItemList1 = originalScreens2.slice();\r\n $scope.sortableOptions = {\r\n connectWith: \".connectList\",\r\n helper: 'clone',\r\n stop: function (e, ui) {\r\n\r\n if (angular.element(e.target).hasClass('first') &&\r\n ui.item.sortable.droptarget &&\r\n e.target != ui.item.sortable.droptarget[0]) {\r\n\r\n // clone the original model to restore the removed item\r\n $scope.ItemList = originalScreens1.slice();\r\n $scope.ItemList1 = originalScreens2.slice();\r\n }\r\n },\r\n start: function (e, ui) {\r\n\r\n },\r\n receive: function (e, ui) {\r\n //After remove and before all other ending events\r\n //Occurs only once when an item is added to a list\r\n },\r\n\r\n update: function (e, ui) {\r\n var originalposition_popupModal = {};\r\n //if (ui.item.sortable.isCanceled()) return;\r\n if (angular.element(e.target).hasClass('first') &&\r\n ui.item.sortable.droptarget &&\r\n e.target != ui.item.sortable.droptarget[0]) {\r\n ui.item.sortable.cancel();\r\n if (PopupService.currentStepName == 'Supervisor') {\r\n if ( // ensure we are in the first update() callback\r\n !ui.item.sortable.received &&\r\n // check that its an actual moving between the two lists\r\n ui.item.sortable.source[0] !== ui.item.sortable.droptarget[0] ){\r\n if(!(ui.item.sortable.model.contentType == \"text\" || ui.item.sortable.model.contentType == \"dropdown\"))\r\n {\r\n ui.item.sortable.cancel();\r\n return;\r\n } \r\n }\r\n }\r\n \r\n var model = angular.copy(ui.item.sortable.model);\r\n model.itemEmptyCheck = false;\r\n model.isRequired = false;\r\n model.popid = '';\r\n var contentType = ui.item.sortable.model.contentType;\r\n switch (contentType) {\r\n case 'text':\r\n model.content = '
' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n //model.index = $scope.todoList1.length;\r\n model.liHide = false;\r\n model.ItemName = \"Text\";\r\n break;\r\n\r\n case 'paragraph':\r\n model.content = '
' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.ItemName = \"Paragraph\";\r\n //model.index = $scope.todoList1.length;\r\n break;\r\n\r\n case 'checkboxes':\r\n model.content = '
' +\r\n '' +\r\n '
' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.ItemName = \"Checkbox\";\r\n //model.index = $scope.todoList1.length;\r\n break;\r\n case 'dropdown':\r\n model.content = '
' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.ItemName = \"Dropdown\";\r\n //model.index = $scope.todoList1.length;\r\n break;\r\n case 'address':\r\n model.content = '
' +\r\n '
' +\r\n '
Street Address
' +\r\n '
Street Address Line 2
' +\r\n '
State/Province
' +\r\n '
City
' +\r\n '' +\r\n '
Postal/Zip Code
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.ItemName = \"Address\";\r\n //model.index = $scope.todoList1.length;\r\n break;\r\n\r\n case 'decimal':\r\n model.content = '
' +\r\n '' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.ItemName = \"Decimal\";\r\n //model.index = $scope.todoList1.length;\r\n break\r\n case 'number':\r\n model.content = '
' +\r\n '' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.ItemName = \"Number\";\r\n //model.index = $scope.todoList1.length;\r\n break;\r\n case 'date':\r\n model.content = '
' +\r\n '' +\r\n ' - ' +\r\n ' - ' +\r\n ' - ' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.ItemName = \"Date\";\r\n //model.index = $scope.todoList1.length;\r\n break;\r\n\r\n case 'phone':\r\n model.content = '
' +\r\n '' +\r\n ' - ' +\r\n '' +\r\n '
Area CodePhone number
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.ItemName = \"Phone\";\r\n //model.index = $scope.todoList1.length;\r\n break;\r\n\r\n case 'email':\r\n model.content = '
' +\r\n '' +\r\n '' +\r\n '
Item can not be empty';\r\n //model.index = $scope.todoList1.length;\r\n model.liHide = false;\r\n model.isCollapsed = true;\r\n model.ItemName = \"Email\";\r\n break;\r\n\r\n case 'video':\r\n model.content = '
' +\r\n '
' +\r\n '

Item can not be empty' +\r\n '
';\r\n //model.index = $scope.todoList1.length;\r\n model.liHide = false;\r\n model.isCollapsed = true;\r\n model.ItemName = \"Video\";\r\n break;\r\n\r\n case 'signature':\r\n model.content = '
' +\r\n '

' +\r\n '
Item can not be empty';\r\n //model.index = $scope.todoList1.length;\r\n model.liHide = false;\r\n model.isCollapsed = true;\r\n model.ItemName = \"Signature\";\r\n break;\r\n\r\n case 'image':\r\n model.content = '
' +\r\n '
' +\r\n '

Item can not be empty';\r\n model.liHide = false;\r\n model.isCollapsed = true;\r\n model.ItemName = \"Image\";\r\n break;\r\n\r\n case 'barcode':\r\n model.content = '
' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.ItemName = \"Barcode\";\r\n break;\r\n\r\n case 'section':\r\n model.content = '
' +\r\n '';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.ItemName = \"Section\";\r\n model.statusClass = 'warning section ';\r\n break;\r\n\r\n case 'instruction':\r\n model.content = '
' +\r\n '';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.ItemName = \"Instruction\";\r\n break;\r\n\r\n case 'siteLayout':\r\n model.content = '
' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.ItemName = \"SiteLayout\";\r\n break;\r\n\r\n case 'attachFile':\r\n model.content = '
' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.ItemName = \"AttachFile\";\r\n break;\r\n }\r\n\r\n if (angular.element('li.placeHolder').length) {\r\n angular.element(ui.item.sortable.droptargetList).find('li.placeHolder').hide();\r\n }\r\n\r\n // model.index = ui.item.sortable.dropindex;\r\n // ui.item.sortable.droptargetModel.splice(ui.item.sortable.dropindex, 0, model);\r\n model.index = ui.item.sortable.droptargetModel.length;\r\n ui.item.sortable.droptargetModel.splice(ui.item.sortable.dropindex, 0, model);\r\n }\r\n\r\n // if(ui.item.sortable.model.popid)\r\n // {\r\n // var originalPosition = checkArrayContainskeyValue(PopupService.SectionList,'itemId',ui.item.sortable.model.popid);\r\n // if(ui.item.sortable.dropindex >0)\r\n // {\r\n // if(originalPosition.status)\r\n // {\r\n // originalposition_popupModal = PopupService.SectionList[originalPosition.arrayIndex];\r\n // PopupService.SectionList.splice(originalPosition.arrayIndex,1);\r\n // }\r\n\r\n // for(var index=(ui.item.sortable.dropindex - 1);index>=0;index--)\r\n // { \r\n // var popIdOfreverseElement = ui.item.sortable.droptargetModel[index].popid\r\n // if(popIdOfreverseElement)\r\n // {\r\n // var statusInfo=checkArrayContainskeyValue(PopupService.SectionList,'itemId',popIdOfreverseElement);\r\n // if(statusInfo.status)\r\n // {\r\n // PopupService.SectionList.splice(statusInfo.arrayIndex+1,0,originalposition_popupModal);\r\n // }\r\n // break;\r\n // }\r\n // }\r\n // } \r\n // }\r\n if ($scope.todoList1.length > ui.item.sortable.dropindex + 1) {\r\n for (var index = ui.item.sortable.dropindex + 1; index < $scope.todoList1.length; index++) {\r\n $scope.todoList1[index].index = index;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ///Method to add a step \r\n $scope.AddStep = function () {\r\n if (angular.isDefined($scope.modalAction_Name) && ($scope.modalAction_Name != '')) {\r\n $scope.ActionList.push({\r\n action_name: $scope.modalAction_Name,\r\n action_sequence: $scope.ActionNumber\r\n });\r\n PopupService.currentStepName = $scope.modalAction_Name;\r\n }\r\n $rootScope.$broadcast('Close_ActionModal');\r\n //$('#saveAction').modal('hide');\r\n\r\n if (stepVeryingCount == 1) {\r\n stepcount = stepcount + 1;\r\n angular.element('div.beforeuibtabset').before($compile('' +\r\n '
' +\r\n // '' +\r\n // '

' +\r\n '
    ' +\r\n '
  • ' +\r\n '
    ' +\r\n 'Drag A field from the right to this area
  • ' +\r\n '
  • ' +\r\n '
    ' +\r\n '
    ' +\r\n '
    ' +\r\n '
    ' +\r\n '
')($scope));\r\n\r\n $scope[\"stepID\" + stepcount] = PopupService.currentStepName;\r\n PopupService.ActionList[\"stepID\" + stepcount] = $scope[\"stepID\" + stepcount];\r\n // $('#stepID' + stepcount).children('a').tab('show');\r\n angular.element('#lblID' + stepcount).html(PopupService.currentStepName);\r\n stepVeryingCount = stepVeryingCount + 1;\r\n step_withMatching_sortableList[PopupService.currentStepName] = 'todoList' + stepcount;\r\n $scope['todoList' + stepcount] = [];\r\n angular.element(document).ready(function () {\r\n angular.element('li[data-target=\"#TabID' + stepcount + '\"]').children().trigger('click');\r\n });\r\n } else if (stepVeryingCount > 1 && stepVeryingCount < 30) {\r\n stepcount = stepcount + 1;\r\n angular.element('div.beforeuibtabset').before($compile('' +\r\n '
' +\r\n // '' +\r\n // '

' +\r\n '
    ' +\r\n '
  • ' +\r\n '
    ' +\r\n 'Drag A field from the right to this area
  • ' +\r\n '
  • ' +\r\n '
    ' +\r\n '
    ' +\r\n '
    ' +\r\n '
    ' +\r\n '
')($scope));\r\n\r\n $scope[\"stepID\" + stepcount] = PopupService.currentStepName;\r\n PopupService.ActionList[\"stepID\" + stepcount] = angular.isUndefined($scope[\"stepID\" + stepcount]) ? 'step ' + stepcount : $scope[\"stepID\" + stepcount];\r\n // $('#stepID' + stepcount).children('a').tab('show');\r\n $('#lblID' + stepcount).html(PopupService.currentStepName);\r\n step_withMatching_sortableList[PopupService.currentStepName] = 'todoList' + stepcount;\r\n $scope['todoList' + stepcount] = [];\r\n angular.element(document).ready(function () {\r\n angular.element('li[data-target=\"#TabID' + stepcount + '\"]').children().trigger('click');\r\n });\r\n stepVeryingCount = stepVeryingCount + 1;\r\n }\r\n\r\n if (stepVeryingCount == 30) {\r\n angular.element('#clickMe').css('display', 'none');\r\n }\r\n\r\n if (stepVeryingCount < 30) {\r\n angular.element('#clickMe').css('display', 'block');\r\n }\r\n $scope.modalAction_Name = '';\r\n }\r\n\r\n $scope.TabClick = function (event) {\r\n /// \r\n /// On each Tab Click \r\n /// \r\n\r\n PopupService.currentStepName = $scope[angular.element(event.currentTarget).prop(\"id\")];\r\n activeSortableList = step_withMatching_sortableList[PopupService.currentStepName];\r\n }\r\n\r\n $scope.DeleteCurrentItem = function (event) {\r\n var obj = angular.element(event.target).closest('li.ui-sortable-handle').scope().task;\r\n var deleteItemIndex = obj.index;\r\n\r\n\r\n for (var itemInd = 0; itemInd < $scope[activeSortableList].length; itemInd++) {\r\n if ($scope[activeSortableList][itemInd].index == deleteItemIndex) {\r\n $scope[activeSortableList].splice(itemInd, 1);\r\n }\r\n }\r\n\r\n // $scope[activeSortableList].splice(deleteItemIndex, 1);\r\n\r\n // if ($scope[activeSortableList].length > 0) {\r\n // for (var index = deleteItemIndex; index < $scope[activeSortableList].length; index++) {\r\n // $scope[activeSortableList][index].index = $scope[activeSortableList][index].index - 1;\r\n // }\r\n // }\r\n\r\n\r\n // if (angular.element(event.target).closest('div.showm').next('div[compile=\"task.content\"]').find('div.abc').data('popid')) {\r\n if (obj.popid) {\r\n var itemId = obj.popid;\r\n var found_item_description = checkArrayContainskeyValue(PopupService.SectionList, 'itemId', itemId);\r\n if (found_item_description.status) {\r\n PopupService.SectionList.splice(found_item_description.arrayIndex, 1);\r\n }\r\n }\r\n console.log(PopupService.SectionList);\r\n }\r\n\r\n ///Handle for popover save button to save element\r\n $scope.SaveElement = function (event) {\r\n var optionitems_conditionsCheck = true;\r\n var elemtype = angular.element(event.target).data('elemtype');\r\n var uniqueCheck = true;\r\n var elementBody = angular.element(event.target).closest('div[compile=\"htmlForElement\"]');\r\n var elementScope = elementBody.scope().task;\r\n var labelName = elementBody.find('#name').val();\r\n var hint = elementBody.find('#hint').val();\r\n var section = '';\r\n // (elementBody.find('#section option:selected').text() == 'Choose Section' ? PopupService.currentStepName : elementBody.find('#section option:selected').text());\r\n var required = elementBody.find('#required').prop('checked');\r\n var field_options = {};\r\n field_options.description = \"\";\r\n var itemType = '';\r\n var Access = '';\r\n //var sectionName='';\r\n /// Get the Section Name If any Specified Above.\r\n var current_Element_Index_inList = checkArrayContainskeyValue($scope[activeSortableList], 'index', elementScope.index);\r\n if (current_Element_Index_inList.status) {\r\n for (var modelIndex = current_Element_Index_inList.arrayIndex; modelIndex >= 0; modelIndex--) {\r\n if ($scope[activeSortableList][modelIndex].contentType == 'section') {\r\n section = $scope[activeSortableList][modelIndex].ItemName;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n section = angular.equals(section, '') || angular.equals(section, 'Section') ? PopupService.currentStepName : section;\r\n console.log($scope[activeSortableList]);\r\n switch (elemtype) {\r\n case 'TextBox':\r\n field_options.size = \"small\";\r\n itemType = $scope.itemTypeDic[\"text\"];\r\n Access = '';\r\n break;\r\n case 'Paragraph':\r\n field_options.size = \"small\";\r\n itemType = $scope.itemTypeDic[\"paragraph\"];\r\n Access = '';\r\n break;\r\n case 'Checkbox':\r\n field_options.options = [];\r\n var labelCollection = [];\r\n angular.element(elementBody).find('#itemAddRow').children('div[name=\"itemRowWrapper\"]').each(function () {\r\n var option = {};\r\n option.label = angular.element(this).find('input[type=\"text\"]').val();\r\n if (!option.label) {\r\n optionitems_conditionsCheck = false;\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Item options error ',\r\n showCloseButton: true,\r\n body: 'Option cannot be empty',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n //notifyUser('Option cannot be empty', 'error');\r\n return false;\r\n }\r\n if ((angular.isDefined(labelCollection)) && (labelCollection.length > 0)) {\r\n if ($.inArray(option.label, labelCollection) !== -1) {\r\n optionitems_conditionsCheck = false;\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Item options error ',\r\n showCloseButton: true,\r\n body: 'Option name should be unique',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n // notifyUser('Option name should be unique', 'error');\r\n return false;\r\n }\r\n }\r\n option.checked = angular.element(this).find('input[type=checkbox]').is(':checked');\r\n field_options.options.push(option);\r\n labelCollection.push(option.label);\r\n });\r\n itemType = $scope.itemTypeDic[\"checkboxes\"];\r\n Access = '';\r\n if (!optionitems_conditionsCheck) {\r\n return;\r\n }\r\n for (var labelCount = 0; labelCount < labelCollection.length; labelCount++) {\r\n angular.element(event.target).parents('div.abc').find('div.wiz').append('
');\r\n }\r\n break;\r\n\r\n case 'Dropdown':\r\n var labelCollection = [];\r\n field_options.options = [];\r\n angular.element(elementBody).find('#itemAddRow').children('div[name=\"itemRowWrapper\"]').each(function () {\r\n var option = {};\r\n option.label = angular.element(this).find('input[type=\"text\"]').val();\r\n if (!option.label) {\r\n optionitems_conditionsCheck = false;\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Item options error ',\r\n showCloseButton: true,\r\n body: 'Option cannot be empty',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n //notifyUser('Option cannot be empty', 'error');\r\n return false;\r\n }\r\n if ((angular.isDefined(labelCollection)) && (labelCollection.length > 0)) {\r\n if ($.inArray(option.label, labelCollection) !== -1) {\r\n optionitems_conditionsCheck = false;\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Item options error ',\r\n showCloseButton: true,\r\n body: 'Option name should be unique',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n // notifyUser('Option name should be unique', 'error');\r\n return false;\r\n }\r\n }\r\n option.checked = angular.element(this).find('input[type=checkbox]').is(':checked');\r\n field_options.options.push(option);\r\n labelCollection.push(option.label);\r\n\r\n });\r\n itemType = $scope.itemTypeDic[\"dropdown\"];\r\n Access = '';\r\n if (!optionitems_conditionsCheck) {\r\n return;\r\n }\r\n for (var labelCount = 0; labelCount < labelCollection.length; labelCount++) {\r\n angular.element(event.target).parents('div.abc').find('select').append('');\r\n }\r\n break;\r\n\r\n case 'Adress':\r\n itemType = $scope.itemTypeDic[\"address\"];\r\n Access = '';\r\n break;\r\n\r\n case 'Decimal':\r\n itemType = $scope.itemTypeDic[\"decimal\"];\r\n Access = '';\r\n break;\r\n\r\n case 'Number':\r\n itemType = $scope.itemTypeDic[\"number\"];\r\n Access = '';\r\n break;\r\n\r\n case 'Email':\r\n itemType = $scope.itemTypeDic[\"email\"];\r\n Access = '';\r\n break;\r\n\r\n case 'Signature':\r\n itemType = $scope.itemTypeDic[\"signature\"];\r\n Access = '';\r\n break;\r\n\r\n case 'Image':\r\n itemType = $scope.itemTypeDic[\"image\"];\r\n Access = '';\r\n break;\r\n\r\n case 'Video':\r\n itemType = $scope.itemTypeDic[\"video\"];\r\n Access = '';\r\n break;\r\n\r\n case 'Date':\r\n itemType = $scope.itemTypeDic[\"date\"];\r\n Access = '';\r\n break;\r\n\r\n case 'Phone':\r\n itemType = $scope.itemTypeDic[\"mobile\"];\r\n Access = '';\r\n break;\r\n\r\n case 'Barcode':\r\n itemType = $scope.itemTypeDic[\"barcode\"];\r\n Access = '';\r\n break;\r\n\r\n case 'Section':\r\n itemType = $scope.itemTypeDic[\"section\"];\r\n Access = '';\r\n break;\r\n case 'Instruction':\r\n itemType = $scope.itemTypeDic[\"instruction\"];\r\n Access = '';\r\n break;\r\n\r\n case 'SiteLayout':\r\n itemType = $scope.itemTypeDic[\"siteLayout\"];\r\n Access = '';\r\n break;\r\n\r\n case 'AttachFile':\r\n itemType = $scope.itemTypeDic[\"attachFile\"];\r\n Access = '';\r\n break;\r\n\r\n default:\r\n alert('no data found');\r\n break;\r\n }\r\n\r\n var elemntDetails = {\r\n ItemName: labelName,\r\n ItemType: itemType,\r\n Required: required,\r\n Access: Access,\r\n Hint:hint,\r\n field_options: field_options,\r\n sectionName: section,\r\n action: PopupService.currentStepName\r\n };\r\n\r\n uniqueCheck = checkUniqueSectionAndItem(PopupService.SectionList, elemntDetails.sectionName, elemntDetails.ItemName);\r\n // var item_UpdateCeck = checkArrayContainskeyValue(PopupService.SectionList);\r\n\r\n if (!labelName) {\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Item error ',\r\n showCloseButton: true,\r\n body: 'Item name can not be empty',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n return;\r\n }\r\n\r\n // var current_item_popid = elementBody.closest('div[uib-collapse]').prev('div[compile=\"task.content\"]').children('div.abc').data('popid');\r\n var current_item_popid = elementScope.popid;\r\n if (current_item_popid) {\r\n var itemStatus = checkArrayContainskeyValue(PopupService.SectionList, 'itemId', current_item_popid);\r\n if (itemStatus.status) {\r\n if ((!uniqueCheck) && (PopupService.SectionList[itemStatus.arrayIndex].ItemName != elemntDetails.ItemName)) {\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Item error ',\r\n showCloseButton: true,\r\n body: 'Please use unique item name',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n return;\r\n }\r\n elemntDetails.itemId = current_item_popid;\r\n PopupService.SectionList[itemStatus.arrayIndex] = elemntDetails;\r\n //angular.element(event.target).closest('li.ui-sortable-handle').find('div.abc').find('label[for=\"usr\"]').html(labelName);\r\n elementScope.ItemName = elemntDetails.ItemName;\r\n $scope.propertyWindowCancel(event);\r\n console.time('section Change Time');\r\n if (elemntDetails.ItemType == 'Section') {\r\n if (current_Element_Index_inList.status) {\r\n var ItemsToChangeSection = 0;\r\n for (var ind = current_Element_Index_inList.arrayIndex + 1; ind < $scope[activeSortableList].length; ind++) {\r\n if ($scope[activeSortableList][ind].contentType == 'section') {\r\n break;\r\n } else {\r\n ItemsToChangeSection = $scope[activeSortableList][ind].popid;\r\n var StatusOfItem = checkArrayContainskeyValue(PopupService.SectionList, 'itemId', ItemsToChangeSection);\r\n if (StatusOfItem.status) {\r\n PopupService.SectionList[StatusOfItem.arrayIndex].sectionName = elemntDetails.ItemName;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n console.timeEnd('section Change Time');\r\n }\r\n } else if (uniqueCheck) {\r\n PopupService.popupCount += 1;\r\n elemntDetails.itemId = PopupService.popupCount;\r\n PopupService.SectionList.push(elemntDetails);\r\n //angular.element(event.target).closest('li.ui-sortable-handle').find('div.abc').find('label[for=\"usr\"]').html(labelName);\r\n elementScope.ItemName = elemntDetails.ItemName;\r\n $scope.propertyWindowCancel(event);\r\n //angular.element(event.target).closest('li.ui-sortable-handle').find('div.abc').attr('data-popid', elemntDetails.itemId);\r\n elementScope.popid = elemntDetails.itemId;\r\n if (elemntDetails.ItemType == 'Section') {\r\n var ItemIndexInList = checkArrayContainskeyValue($scope[activeSortableList], 'index', elementScope.index);\r\n if (ItemIndexInList.status) {\r\n var foundItemIndex = 0;\r\n for (var ItemIndex = current_Element_Index_inList.arrayIndex + 1; ItemIndex < $scope[activeSortableList].length; ItemIndex++) {\r\n if ($scope[activeSortableList][ItemIndex].contentType == 'section') {\r\n break;\r\n } else {\r\n foundItemIndex = $scope[activeSortableList][ItemIndex].popid;\r\n var statOfItem = checkArrayContainskeyValue(PopupService.SectionList, 'itemId', foundItemIndex);\r\n if (statOfItem.status) {\r\n PopupService.SectionList[statOfItem.arrayIndex].sectionName = elemntDetails.ItemName;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Item error ',\r\n showCloseButton: true,\r\n body: 'Please use unique item name',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n return;\r\n }\r\n\r\n elementScope.itemEmptyCheck = false;\r\n if (elemntDetails.Required) {\r\n elementScope.isRequired = true;\r\n } else {\r\n elementScope.isRequired = false;\r\n }\r\n elemntDetails = {};\r\n //$log.log(PopupService.SectionList);\r\n }\r\n\r\n ///Action Modal Controller Definition\r\n function ActionModelInstanceCtrl($scope, $rootScope, $uibModalInstance) {\r\n\r\n\r\n $scope.CloseModal = function () {\r\n $uibModalInstance.close();\r\n }\r\n\r\n $scope.SavingAction = function () {\r\n if ($scope.addStep_form.$valid) {\r\n $rootScope.$broadcast('Saving_Action', {\r\n ActionName: $scope.modalAction_Name\r\n });\r\n } else {\r\n $scope.addStep_form.submitted = true;\r\n }\r\n }\r\n\r\n $rootScope.$on('Close_ActionModal', function () {\r\n $scope.CloseModal();\r\n });\r\n }\r\n\r\n ///Action Modal click handler\r\n $scope.addAction = function () {\r\n $scope.ActionNumber = $scope.ActionNumber + 1;\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'action_modal.html',\r\n controller: ActionModelInstanceCtrl,\r\n })\r\n }\r\n\r\n function checkUniqueSectionAndItem(array, section, item) {\r\n for (var i = 0; i < array.length; i++) {\r\n if ((array[i].sectionName == section) && (array[i].ItemName == item)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function checkArrayContainskeyValue(array, key, value) {\r\n var foundItemInfo = {};\r\n foundItemInfo.status = false;\r\n for (var ind = 0; ind < array.length; ind++) {\r\n if (array[ind][key] == value) {\r\n foundItemInfo.arrayIndex = ind;\r\n foundItemInfo.status = true;\r\n return foundItemInfo;\r\n }\r\n }\r\n return foundItemInfo;\r\n }\r\n\r\n $scope.$on('Saving_Action', function (event, args) {\r\n $scope.modalAction_Name = args.ActionName;\r\n $scope.AddStep();\r\n });\r\n\r\n $scope.PropertyWindowExpanded = function (controlType, content) {\r\n $scope.htmlForElement = \"\";\r\n switch (controlType) {\r\n case 'text':\r\n $scope.htmlForElement = '\\\r\n
\\\r\n
\\\r\n
\\\r\n
\\\r\n \\\r\n
\\\r\n \\\r\n Please enter alphanumeric value only.\\\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 \\\r\n
\\\r\n
';\r\n break;\r\n\r\n case 'paragraph':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '' +\r\n '
' +\r\n '
';\r\n\r\n break;\r\n\r\n case 'checkboxes':\r\n\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '' +\r\n '
' +\r\n '
' +\r\n '
';\r\n\r\n break;\r\n\r\n case 'dropdown':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
';\r\n\r\n break;\r\n\r\n case 'address':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '' +\r\n '
' +\r\n '
';\r\n\r\n break;\r\n\r\n case 'decimal':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '' +\r\n '
' +\r\n '
';\r\n break;\r\n\r\n case 'number':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '' +\r\n '
' +\r\n '
';\r\n\r\n break;\r\n\r\n case 'date':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '' +\r\n '
' +\r\n '
';\r\n\r\n break;\r\n case 'phone':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '' +\r\n '
' +\r\n '
';\r\n\r\n break;\r\n\r\n case 'email':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '' +\r\n '
' +\r\n '
';\r\n\r\n break;\r\n\r\n case 'video':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '' +\r\n '
' +\r\n '
';\r\n\r\n break;\r\n\r\n case 'signature':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '' +\r\n '
' +\r\n '
';\r\n\r\n break;\r\n\r\n case 'image':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '' +\r\n '
' +\r\n '
';\r\n break;\r\n\r\n case 'barcode':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '
' +\r\n '
' +\r\n '
';\r\n break;\r\n\r\n case 'section':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '
' +\r\n '
' +\r\n '
';\r\n break;\r\n case 'instruction':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '
' +\r\n '
' +\r\n '
';\r\n break;\r\n\r\n case 'siteLayout':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '
' +\r\n '
' +\r\n '
';\r\n break;\r\n\r\n case 'attachFile':\r\n $scope.htmlForElement = '
Please enter alphanumeric value only.

' +\r\n '
' +\r\n '
' +\r\n '
';\r\n break;\r\n }\r\n var windowElement = angular.element('div.in.collapse');\r\n var item_type = windowElement.scope().task.contentType;\r\n var fetchedListItemID = windowElement.prev('div[compile=\"task.content\"]').children('div.abc').data('popid');\r\n if (fetchedListItemID) {\r\n var fetchedItemindex = checkArrayContainskeyValue(PopupService.SectionList, 'itemId', fetchedListItemID)\r\n if (fetchedItemindex.status) {\r\n var item = PopupService.SectionList[fetchedItemindex.arrayIndex];\r\n ShowDetailsinPropertyWindow(item_type, item, windowElement);\r\n }\r\n }\r\n }\r\n\r\n function ShowDetailsinPropertyWindow(ItemType, Item, windowElement) {\r\n switch (ItemType) {\r\n case 'checkboxes':\r\n angular.element(document).ready(function () {\r\n windowElement.find('#name').val(Item.ItemName);\r\n windowElement.find('#required').prop('checked', Item.Required);\r\n windowElement.find('#hint').val(Item.Hint);\r\n windowElement.find('#itemAddRow').html('');\r\n if (Item.field_options.options.length > 0) {\r\n for (var optionIndex = 0; optionIndex < Item.field_options.options.length; optionIndex++) {\r\n console.log(windowElement.find('#itemAddRow'));\r\n if (Item.field_options.options[optionIndex].label) {\r\n windowElement.find('#itemAddRow').append($compile('
')($scope));\r\n }\r\n }\r\n }\r\n });\r\n\r\n break;\r\n case 'dropdown':\r\n angular.element(document).ready(function () {\r\n windowElement.find('#name').val(Item.ItemName);\r\n windowElement.find('#required').prop('checked', Item.Required);\r\n windowElement.find('#hint').val(Item.Hint);\r\n windowElement.find('#itemAddRow').html('');\r\n if (Item.field_options.options.length > 0) {\r\n for (var optionIndex = 0; optionIndex < Item.field_options.options.length; optionIndex++) {\r\n if (Item.field_options.options[optionIndex].label) {\r\n windowElement.find('#itemAddRow').append($compile('
')($scope));\r\n }\r\n }\r\n }\r\n });\r\n break;\r\n default:\r\n angular.element(document).ready(function () {\r\n windowElement.find('#name').val(Item.ItemName);\r\n windowElement.find('#required').prop('checked', Item.Required);\r\n windowElement.find('#hint').val(Item.Hint);\r\n })\r\n }\r\n\r\n }\r\n\r\n $scope.PropertyWindowCollapsed = function () {\r\n // $scope.htmlString='';\r\n }\r\n\r\n $scope.expanding = function () {\r\n angular.element('div.in.collapse').each(function (index) {\r\n angular.element(this).scope().task.isCollapsed = true;\r\n })\r\n }\r\n\r\n\r\n $scope.propertyWindowCancel = function (expandedDiv) {\r\n angular.element(expandedDiv.target).closest('div[compile=\"htmlForElement\"]').closest('div[uib-collapse]').prev('div[compile=\"task.content\"]').scope().task.isCollapsed = true;\r\n angular.element(expandedDiv.target).closest('div[compile=\"htmlForElement\"]').closest('div[uib-collapse]').prev('div[compile=\"task.content\"]').scope().task.liHide = false;\r\n $scope.htmlString = \"\";\r\n\r\n }\r\n\r\n $scope.OpenSaveTemplatePopUp = function () { \r\n\r\n if ($state.current.name == 'index.FormEdit') {\r\n templateModel.TemplateName = fetchedTemplate.TemplateName;\r\n $scope.templateName = fetchedTemplate.TemplateName;\r\n $scope.skill1=fetchedTemplate.SkillSet; \r\n \r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'save_template_modal.html',\r\n controller: ModalInstanceCtrl\r\n });\r\n \r\n // $scope.SaveTemplate();\r\n } else {\r\n $scope.templateName=\"\";\r\n $scope.templateDescription =\"\";\r\n $scope.SkillSet=[];\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'save_template_modal.html',\r\n controller: ModalInstanceCtrl\r\n });\r\n // $log.log('popskill',$scope.skills)\r\n }\r\n //$('#saveModal').modal('show');\r\n\r\n }\r\n\r\n\r\n function ModalInstanceCtrl($scope, $rootScope, $uibModalInstance) {\r\n if (updateTemplateCheck) \r\n $scope.isDisabledField=true;\r\n else\r\n $scope.isDisabledField=false;\r\n function GetSkills(){\r\n FormBuilderService.GetSkills(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n $scope.skills = resp.data;\r\n $log.log('skills', $scope.skills);\r\n $scope.skill1=$rootScope.SkillSet;\r\n \r\n }\r\n })\r\n }\r\n GetSkills();\r\n\r\n // function getSLAConfiguration() { \r\n // FormBuilderService.getSLAConfiguration(loggedinUser,token).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // $scope.getSLAConfigList=resp.data;\r\n // }\r\n // }, function () {\r\n // });\r\n // } \r\n\r\n // getSLAConfiguration();\r\n\r\n if (!updateTemplateCheck) {\r\n $scope.templateName=\"\";\r\n $scope.templateDescription =\"\";\r\n $scope.SkillSet=[];\r\n }\r\n $scope.CloseModal = function () {\r\n $uibModalInstance.close();\r\n }\r\n\r\n // $scope.SLAIDChange=function (){ \r\n // for (var i = 0; i < $scope.getSLAConfigList.length; i++) {\r\n // var Acc = $scope.getSLAConfigList[i];\r\n // if(Acc.SLADefinition == $scope.SLADefinition ) {\r\n // $scope.SLAId = Acc.SLAId;\r\n // }\r\n // }\r\n // }\r\n // $scope.UpdateTemplate= function(){\r\n \r\n // if ($scope.templateUpdate_Form.$valid) {\r\n // var isValid = ($scope.updatetaskDuration <= 480 && $scope.updatetaskDuration >= 30 ) ? true : false;\r\n // if(isValid){\r\n // $rootScope.$broadcast('Updating_Template', {\r\n // templateName: $scope.updatetemplateName, \r\n // templateDescription: $scope.updatetemplateDescription,\r\n // skill1:$scope.updateskill1,\r\n // taskDuration: $scope.updatetaskDuration\r\n // });\r\n // }\r\n // else {\r\n // $scope.taskDurationLimitMsg = \"Please enter task duration in between 30 and 480 minutes\";\r\n // $scope.templateUpdate_Form.submitted = true;\r\n // }\r\n // } else {\r\n // $scope.templateUpdate_Form.submitted = true;\r\n // }\r\n // }\r\n\r\n \r\n $scope.SavingTemplate = function () {\r\n \r\n if ($scope.templateSave_Form.$valid) {\r\n var isValid = ($scope.updatetaskDuration <= 480 && $scope.updatetaskDuration >= 30 ) ? true : false;\r\n if(isValid){\r\n $rootScope.$broadcast('Saving_Template', {\r\n templateName: $scope.templateName,\r\n templateDescription: $scope.templateDescription,\r\n ScopeWork: $scope.ScopeWork,\r\n ScopeWorkPath: $scope.ScopeWorkPath,\r\n // SLADefinition: $scope.SLADefinition,\r\n // SLAId: $scope.SLAId,\r\n IsFieldDataReportEnabled: $scope.IsFieldDataReportEnabled,\r\n IsSiteAccessNeeded: $scope.IsSiteAccessNeeded,\r\n IsVendorApprovalNeeded: $scope.IsVendorApprovalNeeded,\r\n IsSerialNumberVerificationEnabled: $scope.IsSerialNumberVerificationEnabled,\r\n SiteAccessWaitingTime: $scope.SiteAccessWaitingTime,\r\n MMFJobType : $scope.MMFJobType,\r\n MMFServiceType: $scope.MMFServiceType,\r\n skill1:$scope.skill1,\r\n SkillSet:$scope.SkillSet,\r\n taskDuration: $scope.updatetaskDuration\r\n });\r\n }\r\n else {\r\n $scope.taskDurationLimitMsg = \"Please enter task duration in between 30 and 480 minutes\";\r\n $scope.templateUpdate_Form.submitted = true;\r\n }\r\n } \r\n else {\r\n $scope.templateSave_Form.submitted = true;\r\n }\r\n // $rootScope.$broadcast('Saving_Template', {\r\n // templateName: $scope.templateName,\r\n // templateDescription: $scope.templateDescription,\r\n // ScopeWork: $scope.ScopeWork,\r\n // ScopeWorkPath: $scope.ScopeWorkPath,\r\n // // SLADefinition: $scope.SLADefinition,\r\n // // SLAId: $scope.SLAId,\r\n // IsFieldDataReportEnabled: $scope.IsFieldDataReportEnabled,\r\n // IsSiteAccessNeeded: $scope.IsSiteAccessNeeded,\r\n // IsVendorApprovalNeeded: $scope.IsVendorApprovalNeeded,\r\n // IsSerialNumberVerificationEnabled: $scope.IsSerialNumberVerificationEnabled,\r\n // SiteAccessWaitingTime: $scope.SiteAccessWaitingTime,\r\n // MMFJobType : $scope.MMFJobType,\r\n // skill1:$scope.skill1,\r\n // SkillSet:$scope.SkillSet,\r\n // taskDuration: $scope.updatetaskDuration\r\n // });\r\n // } else {\r\n // $scope.templateSave_Form.submitted = true;\r\n }\r\n\r\n $rootScope.$on('Close_TemplateModel', function () {\r\n $scope.CloseModal();\r\n });\r\n }\r\n\r\n $scope.$on('Updating_Template', function (event, args) {\r\n $scope.templateName = args.templateName;\r\n $scope.templateDescription = args.templateDescription;\r\n $scope.skill1 = args.skill1;\r\n $scope.taskDuration = args.taskDuration;\r\n console.log($scope.templateName);\r\n $scope.SaveTemplate();\r\n });\r\n\r\n $scope.$on('Saving_Template', function (event, args) {\r\n \r\n $scope.templateName = args.templateName;\r\n $scope.templateDescription = args.templateDescription;\r\n $scope.templateScopeWork = args.ScopeWork;\r\n $scope.templateScopeWorkPath = args.ScopeWorkPath;\r\n $scope.templateIsFieldData = args.IsFieldDataReportEnabled;\r\n $scope.templateIsSiteAccessNeeded = args.IsSiteAccessNeeded;\r\n $scope.templateIsVendorApprovalNeeded = args.IsVendorApprovalNeeded;\r\n $scope.templateSiteAccessWaitingTime = args.SiteAccessWaitingTime; \r\n $scope.templateMMFJobType = args.MMFJobType; \r\n $scope.templateMMFServiceType = args.MMFServiceType;\r\n $scope.templateIsSerialNumberVerificationEnabled = args.IsSerialNumberVerificationEnabled,\r\n // $scope.skill1 = args.skill1.SkillName;\r\n $scope.SkillSet = args.skill1;\r\n $scope.SaveTemplate();\r\n $scope.templateName=\"\";\r\n $scope.templateDescription =\"\";\r\n $scope.templateScopeWork =\"\";\r\n $scope.templateScopeWorkPath = \"\";\r\n // $scope.SLADefinition=\"\";\r\n // $scope.SLAId=\"\",\r\n $scope.templateIsFieldData = false;\r\n $scope.templateIsSiteAccessNeeded = false;\r\n $scope.templateIsVendorApprovalNeeded = false;\r\n $scope.templateSiteAccessWaitingTime = 0;\r\n $scope.templateMMFJobType = \"\";\r\n $scope.templateMMFServiceType = \"\";\r\n $scope.templateIsSerialNumberVerificationEnabled = false;\r\n $scope.SkillSet=[];\r\n });\r\n\r\n $scope.addOptions = function (event) {\r\n var isbutton = angular.element(event.target).is(\":button\");\r\n if (isbutton) {\r\n angular.element(angular.element(event.target)).prev('div#itemAddRow').append($compile('
')($scope));\r\n } else {\r\n angular.element(angular.element(event.target)).parent().prev('div#itemAddRow').append($compile('
')($scope));\r\n }\r\n }\r\n\r\n $scope.deleteOptions = function (event) {\r\n angular.element(event.target).parents('div[name =\"itemRowWrapper\"]').remove();\r\n } \r\n\r\n $scope.SaveTemplate = function () {\r\n if (!$scope.templateName) {\r\n return;\r\n }\r\n\r\n $rootScope.$broadcast('Close_TemplateModel');\r\n if (!ItemsEmptyCheck()) {\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Template creation status ',\r\n showCloseButton: true,\r\n body: 'Please update empty items.',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n return;\r\n }\r\n SortItems();\r\n $scope.isDisabled = true;\r\n templateModel.TemplateName = $scope.templateName;\r\n var sectionlist_Seprated = angular.fromJson(angular.toJson(PopupService.SectionList));\r\n var finalListOfSections = SeperateSectionAndItems(sectionlist_Seprated, \"action\");\r\n templateModel.sectionList = finalListOfSections;\r\n templateModel.CreatedBy = userId;\r\n templateModel.Update = updateTemplateCheck;\r\n templateModel.Description = $scope.templateDescription;\r\n templateModel.ScopeWork = $scope.templateScopeWork;\r\n templateModel.ScopeWorkPath = $scope.templateScopeWorkPath;\r\n templateModel.IsFieldDataReportEnabled = $scope.templateIsFieldData;\r\n templateModel.IsSiteAccessNeeded = $scope.templateIsIsSiteAccessNeeded;\r\n templateModel.IsVendorApprovalNeeded = $scope.templateIsVendorApprovalNeeded;\r\n templateModel.SiteAccessWaitingTime = $scope.templateSiteAccessWaitingTime;\r\n templateModel.MMFJobType = $scope.templateMMFJobType;\r\n templateModel.MMFServiceType = $scope.templateMMFServiceType;\r\n templateModel.IsSerialNumberVerificationEnabled = $scope.templateIsSerialNumberVerificationEnabled;\r\n templateModel.Skill = null;\r\n templateModel.SkillSet = $scope.SkillSet;\r\n var json = angular.toJson(templateModel);\r\n FormBuilderService.SaveTemplate(json, token)\r\n .success(function (data, status) {\r\n if (angular.equals(status, 201)) {\r\n $scope.isDisabled = true;\r\n toaster.pop({\r\n type: 'success',\r\n title: 'Template creation status ',\r\n showCloseButton: true,\r\n body: 'Template has been succesfully Created.',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n $timeout(function () {\r\n clearAllFields();\r\n $state.go('index.TemplateList', {\r\n reload: true\r\n });\r\n\r\n }, 2000);\r\n } else if (angular.equals(status, 202)) {\r\n templateModel = angular.fromJson(data);\r\n\r\n if (templateModel.Update) {\r\n $scope.isDisabled = true;\r\n toaster.pop({\r\n type: 'success',\r\n title: 'Template creation status ',\r\n showCloseButton: true,\r\n body: 'Template has been succesfully Updated.',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n\r\n $timeout(function () {\r\n clearAllFields();\r\n $state.go('index.TemplateList', {\r\n reload: true\r\n });\r\n }, 2000);\r\n } else {\r\n $scope.isDisabled = false;\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Template creation status ',\r\n showCloseButton: true,\r\n body: 'Template already exist',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n }\r\n } else {\r\n $scope.isDisabled = false;\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Template creation status ',\r\n showCloseButton: true,\r\n body: 'Template has not been Created.',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n }\r\n })\r\n .error(function (data, status) {\r\n $scope.isDisabled = false;\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Server Error ',\r\n showCloseButton: true,\r\n body: 'Template has not been Created.',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n });\r\n }\r\n\r\n function SeperateSectionAndItems(itemlist, property) {\r\n var hash = {};\r\n var second_property = 'sectionName';\r\n var sectionList = [];\r\n for (var itemNum = 0; itemNum < itemlist.length; itemNum++) {\r\n if (!hash[itemlist[itemNum][property]])\r\n hash[itemlist[itemNum][property]] = [];\r\n if (itemlist[itemNum].ItemType == 'Section') {\r\n continue;\r\n }\r\n hash[itemlist[itemNum][property]].push(itemlist[itemNum]);\r\n }\r\n\r\n for (var action in hash) {\r\n var sechash = {};\r\n var nestedSectionList = hash[action];\r\n for (var itemIndex = 0; itemIndex < nestedSectionList.length; itemIndex++) {\r\n if (!sechash[nestedSectionList[itemIndex][second_property]])\r\n sechash[nestedSectionList[itemIndex][second_property]] = [];\r\n sechash[nestedSectionList[itemIndex][second_property]].push(nestedSectionList[itemIndex]);\r\n }\r\n hash[action] = sechash;\r\n }\r\n\r\n for (var actionName in hash) {\r\n for (var secName in hash[actionName]) {\r\n var section = {};\r\n section.itemList = [];\r\n section.sectionName = secName;\r\n for (var i = 0; i < hash[actionName][secName].length; i++) {\r\n delete hash[actionName][secName][i].sectionName;\r\n delete hash[actionName][secName][i].action;\r\n delete hash[actionName][secName][i].itemId;\r\n section.itemList.push(hash[actionName][secName][i]);\r\n }\r\n section.action = actionName;\r\n sectionList.push(section);\r\n }\r\n }\r\n return sectionList;\r\n }\r\n\r\n\r\n function getTemplate(templateName) {\r\n /// \r\n \r\n /// Get the Template from supplied Template Name\r\n /// \r\n /// \r\n FormBuilderService.getTemplateByName(templateName, token)\r\n .success(function (data, status, headers, config) {\r\n if (data) {\r\n $scope.fetchedTemplate = data;\r\n fetchedTemplate = $scope.fetchedTemplate;\r\n $scope.templateName = fetchedTemplate.TemplateName;\r\n $scope.templateDescription = fetchedTemplate.Description;\r\n $scope.ScopeWork = fetchedTemplate.ScopeWork;\r\n $scope.ScopeWorkPath = fetchedTemplate.ScopeWorkPath;\r\n // $scope.SLADefinition = fetchedTemplate.SLADefinition,\r\n // $scope.SLAId = fetchedTemplate.SLAId,\r\n $scope.IsFieldDataReportEnabled = fetchedTemplate.IsFieldDataReportEnabled;\r\n $scope.IsSiteAccessNeeded = fetchedTemplate.IsSiteAccessNeeded;\r\n $scope.IsVendorApprovalNeeded = fetchedTemplate.IsVendorApprovalNeeded;\r\n $scope.IsSerialNumberVerificationEnabled = fetchedTemplate.IsSerialNumberVerificationEnabled;\r\n $scope.skill1 = fetchedTemplate.Skill;\r\n $scope.SiteAccessWaitingTime = fetchedTemplate.SiteAccessWaitingTime;\r\n $scope.MMFJobType = fetchedTemplate.MMFJobType;\r\n $scope.MMFServiceType = fetchedTemplate.MMFServiceType;\r\n $scope.SkillSet = fetchedTemplate.SkillSet;\r\n $rootScope.templateName = fetchedTemplate.TemplateName;\r\n $rootScope.templateDescription = fetchedTemplate.Description;\r\n $rootScope.ScopeWork = fetchedTemplate.ScopeWork;\r\n $rootScope.ScopeWorkPath = fetchedTemplate.ScopeWorkPath;\r\n // $rootScope.SLAId = fetchedTemplate.SLAId,\r\n // $rootScope.SLADefinition = fetchedTemplate.SLADefinition,\r\n $rootScope.IsFieldDataReportEnabled = fetchedTemplate.IsFieldDataReportEnabled;\r\n $rootScope.IsSiteAccessNeeded = fetchedTemplate.IsSiteAccessNeeded;\r\n $rootScope.IsVendorApprovalNeeded = fetchedTemplate.IsVendorApprovalNeeded;\r\n $rootScope.SiteAccessWaitingTime = fetchedTemplate.SiteAccessWaitingTime;\r\n $rootScope.MMFJobType = fetchedTemplate.MMFJobType;\r\n $rootScope.MMFServiceType = fetchedTemplate.MMFServiceType;\r\n $rootScope.IsSerialNumberVerificationEnabled = fetchedTemplate.IsSerialNumberVerificationEnabled;\r\n $rootScope.skill1 = fetchedTemplate.Skill;\r\n $rootScope.SkillSet = fetchedTemplate.SkillSet;\r\n\r\n getActionsList(fetchedTemplate);\r\n }\r\n })\r\n .error(function (data, status, headers, config) {});\r\n }\r\n\r\n function getActionsList(template) {\r\n /// \r\n /// Get all the Actions list for the fetched Template\r\n /// \r\n /// \r\n var flags = [],\r\n output = [];\r\n\r\n for (var i = 0; i < template.SectionList.length; i++) {\r\n if (flags[template.SectionList[i].Action]) continue;\r\n flags[template.SectionList[i].Action] = true;\r\n output.push(template.SectionList[i].Action);\r\n }\r\n\r\n for (var j = 0; j < output.length; j++) {\r\n\r\n $scope[\"stepID\" + (j + 1)] = output[j];\r\n PopupService.ActionList[\"stepID\" + (j + 1)] = output[j];\r\n PopupService.currentStepName = output[j];\r\n $scope.ActionList.push({\r\n action_name: PopupService.currentStepName,\r\n action_sequence: $scope.ActionNumber\r\n });\r\n $scope.ActionNumber = $scope.ActionNumber + 1;\r\n if (j > 0) {\r\n //stepcount = stepcount + 1;\r\n $scope.AddStep();\r\n }\r\n $('#stepID' + stepcount).children('a').html(PopupService.currentStepName);\r\n $('#lblID' + stepcount).html(PopupService.currentStepName);\r\n }\r\n // PopupService.currentStepName = output[0];\r\n parseItemsForEachAction(template.SectionList, \"Action\");\r\n }\r\n\r\n function parseItemsForEachAction(itemlist, property) {\r\n var hash = {};\r\n var sectionList = [];\r\n for (var itemNum = 0; itemNum < itemlist.length; itemNum++) {\r\n if (!hash[itemlist[itemNum][property]])\r\n hash[itemlist[itemNum][property]] = [];\r\n hash[itemlist[itemNum][property]].push(itemlist[itemNum]);\r\n }\r\n parseItemSectionWise(hash);\r\n }\r\n\r\n function parseItemSectionWise(action_Sectionslist) {\r\n for (var action in action_Sectionslist) {\r\n renderedModelIndex = 0;\r\n var actionName = action;\r\n var currentAction_SectionList = action_Sectionslist[action];\r\n if (!angular.isUndefined(currentAction_SectionList)) {\r\n for (var sectionIndex = 0; sectionIndex < currentAction_SectionList.length; sectionIndex++) {\r\n var sectionName = currentAction_SectionList[sectionIndex].SectionName;\r\n var currentSection_ItemList = currentAction_SectionList[sectionIndex].ItemList;\r\n if (!angular.isUndefined(currentSection_ItemList)) {\r\n for (var itemIndex = 0; itemIndex < currentSection_ItemList.length; itemIndex++) {\r\n var currentItem = currentSection_ItemList[itemIndex];\r\n plotItem(actionName, sectionName, currentItem);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n $compile(angular.element(''))($scope);\r\n // console.log(PopupService.SectionList);\r\n }\r\n\r\n function plotItem(action, section, item) {\r\n // var itemType = item.ItemType;\r\n var stepId = ObjectKeyByValue(PopupService.ActionList, action);\r\n var tabId = angular.element('#' + stepId).data('target');\r\n // if (section == action) {\r\n initLayOutforPlotedItem(action, section, item, tabId);\r\n // }\r\n }\r\n\r\n function ObjectKeyByValue(object, value) {\r\n for (var key in object) {\r\n if (object[key] == value) {\r\n return key;\r\n }\r\n }\r\n }\r\n\r\n function initLayOutforPlotedItem(action, section, item, tabId) {\r\n angular.element(document).ready(function () {\r\n angular.element(tabId).find('li.placeHolder').hide();\r\n });\r\n var ActionsList = step_withMatching_sortableList[action];\r\n if (section == action) {\r\n var listItemModel = renderingHtmlForItemType(item);\r\n $scope[ActionsList].push(listItemModel);\r\n //angular.element(tabId).find('ul').append($compile(renderingHtml)($scope));\r\n //renderingHtml.find('label').html(item.ItemName);\r\n item.sectionName = section;\r\n item.action = action;\r\n item.itemId = PopupService.popupCount;\r\n //renderingHtml.closest('div.abc').attr('data-popid', PopupService.popupCount);\r\n PopupService.SectionList.push(item);\r\n } else {\r\n if (!FormBuilderService.contains(renderingSectionList, section)) {\r\n var sectionItemModel = {};\r\n sectionItemModel.ItemName = section;\r\n sectionItemModel.ItemType = 'Section';\r\n sectionItemModel.Required = true;\r\n sectionItemModel.action = action;\r\n var sectionListModel = renderingHtmlForItemType(sectionItemModel);\r\n sectionItemModel.itemId = PopupService.popupCount;\r\n $scope[ActionsList].push(sectionListModel);\r\n renderingSectionList.push(section);\r\n PopupService.SectionList.push(sectionItemModel);\r\n renderedModelIndex = renderedModelIndex + 1;\r\n }\r\n\r\n var listItemModelwithSection = renderingHtmlForItemType(item);\r\n $scope[ActionsList].push(listItemModelwithSection);\r\n item.sectionName = section;\r\n item.action = action;\r\n item.itemId = PopupService.popupCount;\r\n PopupService.SectionList.push(item);\r\n }\r\n renderedModelIndex = renderedModelIndex + 1;\r\n }\r\n\r\n function renderingHtmlForItemType(item) {\r\n var itemTypeForHtml = ObjectKeyByValue(PopupService.itemTypeDic, item.ItemType);\r\n PopupService.popupCount = Number(PopupService.popupCount) + 1;\r\n var modelIndex = renderedModelIndex;\r\n //var htmlString = '';\r\n var model = {};\r\n model.isRequired = item.Required;\r\n switch (itemTypeForHtml) {\r\n case 'text':\r\n model.content = '
' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'text';\r\n model.statusClass = 'info';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'paragraph':\r\n model.content = '
' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'paragraph';\r\n model.statusClass = 'warning';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'checkboxes':\r\n model.content = '
' +\r\n '' +\r\n '
' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'checkboxes';\r\n model.statusClass = 'warning';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'date':\r\n model.content = '
' +\r\n '' +\r\n ' - ' +\r\n ' - ' +\r\n ' - ' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'date';\r\n model.statusClass = 'info';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'dropdown':\r\n model.content = '
' +\r\n '' +\r\n '
';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'dropdown';\r\n model.statusClass = 'warning';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'address':\r\n model.content = '
' +\r\n '
' +\r\n '
Street Address
' +\r\n '
Street Address Line 2
' +\r\n '
State/Province
' +\r\n '
City
' +\r\n '' +\r\n '
Postal/Zip Code
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'address';\r\n model.statusClass = 'success';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'mobile':\r\n model.content = '
' +\r\n '' +\r\n ' - ' +\r\n '' +\r\n '
Area CodePhone number
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'phone';\r\n model.statusClass = 'warning';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'decimal':\r\n model.content = '
' +\r\n '' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'decimal';\r\n model.statusClass = 'info';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'number':\r\n model.content = '
' +\r\n '' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'number';\r\n model.statusClass = 'warning';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'email':\r\n model.content = '
' +\r\n '' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'email';\r\n model.statusClass = 'warning';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'signature':\r\n model.content = '
' +\r\n '

' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'signature';\r\n model.statusClass = 'success';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n\r\n break;\r\n\r\n case 'image':\r\n model.content = '
' +\r\n '
' +\r\n '

Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'image';\r\n model.statusClass = 'info';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'formfieldset':\r\n\r\n break;\r\n\r\n case 'video':\r\n model.content = '
' +\r\n '
' +\r\n '

Item can not be empty' +\r\n '
';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'video';\r\n model.statusClass = 'warning';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'barcode':\r\n model.content = '
' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'barcode';\r\n model.statusClass = 'warning';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'section':\r\n model.content = '
' +\r\n '';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'section';\r\n model.statusClass = 'warning section ';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'instruction':\r\n model.content = '
' +\r\n '
';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'instruction';\r\n model.statusClass = 'warning';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'siteLayout':\r\n model.content = '
' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'siteLayout';\r\n model.statusClass = 'success';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n\r\n case 'attachFile':\r\n model.content = '
' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'attachFile';\r\n model.statusClass = 'success';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n \r\n default :\r\n model.content = '
' +\r\n '' +\r\n '
Item can not be empty';\r\n model.isCollapsed = true;\r\n model.liHide = false;\r\n model.contentType = 'barcode';\r\n model.statusClass = 'warning';\r\n model.popid = PopupService.popupCount;\r\n model.ItemName = item.ItemName;\r\n break;\r\n }\r\n model.index = modelIndex;\r\n return model;\r\n }\r\n\r\n $scope.DeleteConfirmationTemplatePopUp = function () {\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'remove_template_modal.html',\r\n controller: RemoveActionModalCtrl\r\n });\r\n }\r\n\r\n function RemoveActionModalCtrl($scope, $rootScope, $uibModalInstance) {\r\n $scope.CloseModal = function () {\r\n $uibModalInstance.close();\r\n }\r\n $scope.DeleteCurrentStep = function () {\r\n $rootScope.$broadcast('Delete_Template', {});\r\n $uibModalInstance.close();\r\n }\r\n $rootScope.$on('Close_TabModel', function () {\r\n $scope.CloseModal();\r\n });\r\n }\r\n\r\n $scope.$on('Delete_Template', function () {\r\n $scope.DeleteCurrentStep();\r\n });\r\n\r\n $scope.DeleteCurrentStep = function (event) {\r\n activeSortableList = step_withMatching_sortableList[PopupService.currentStepName];\r\n delete $scope[activeSortableList];\r\n var tab_ID1 = angular.element('li[heading=\"' + PopupService.currentStepName + '\"]').data('target');\r\n angular.element('li[heading=\"' + PopupService.currentStepName + '\"]').remove();\r\n\r\n angular.element('div.feed-activity-list' + tab_ID1).closest('div').remove();\r\n\r\n stepcount = stepcount - 1;\r\n get_AllItemsOfAction('action', PopupService.currentStepName);\r\n var found_item = checkArrayContainskeyValue($scope.ActionList, 'action_name', PopupService.currentStepName);\r\n if (found_item.status == true) {\r\n $scope.ActionList.splice(found_item.arrayIndex, 1);\r\n }\r\n delete step_withMatching_sortableList[PopupService.currentStepName];\r\n delete PopupService.ActionList[ObjectKeyByValue(PopupService.ActionList, PopupService.currentStepName)];\r\n }\r\n\r\n function get_AllItemsOfAction(property, step) {\r\n for (var index = PopupService.SectionList.length; index--;) {\r\n if (PopupService.SectionList[index].action == step) {\r\n PopupService.SectionList.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n function clearAllFields() {\r\n PopupService.SectionList = [];\r\n PopupService.currentStepName = '';\r\n PopupService.ActionList = {};\r\n PopupService.popupCount = 0;\r\n $scope.todoList1 = [];\r\n var activeSortableList = 'todoList1';\r\n var step_withMatching_sortableList = {\r\n Supervisor: 'todoList1'\r\n };\r\n var renderedModelIndex = 0;\r\n var templateModel = {};\r\n var fetchedTemplate = {};\r\n var updateTemplateCheck = false;\r\n $scope.htmlString = '';\r\n $scope.ActionList = [];\r\n $scope.ActionNumber = 1;\r\n $scope.templateName = 'Create Template';\r\n var renderingSectionList = [];\r\n $scope.templateDescription = '';\r\n }\r\n\r\n\r\n \r\n\r\n \r\n\r\n function ItemsEmptyCheck() {\r\n var itemEmptyCheck = true;\r\n angular.element('ul.connectList[ui-sortable=\"sortableOptions\"]').find('li:not(\"li.placeHolder\")').each(function () {\r\n var modelScope = angular.element(this).scope().task;\r\n if (!modelScope.popid) {\r\n itemEmptyCheck = false;\r\n modelScope.itemEmptyCheck = true;\r\n }\r\n });\r\n return itemEmptyCheck;\r\n }\r\n\r\n function SortItems() {\r\n var concatedList = [];\r\n for (var step in step_withMatching_sortableList) {\r\n if (step == 'Supervisor') {\r\n concatedList = $scope[step_withMatching_sortableList[step]];\r\n } else {\r\n concatedList = concatedList.concat($scope[step_withMatching_sortableList[step]])\r\n }\r\n }\r\n\r\n for (var concatelist_index = 0; concatelist_index < concatedList.length; concatelist_index++) {\r\n for (var poplist_index = concatelist_index; poplist_index < PopupService.SectionList.length; poplist_index++) {\r\n if (concatedList[concatelist_index].popid == PopupService.SectionList[poplist_index].itemId) {\r\n var temp = PopupService.SectionList[concatelist_index];\r\n PopupService.SectionList[concatelist_index] = PopupService.SectionList[poplist_index];\r\n PopupService.SectionList[poplist_index] = temp;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n});\r\n\nangular.module('inspinia').controller('PropertyPopupController', function ($scope, $rootScope, ApiURL, $http, $compile, $timeout, $stateParams, PopupService, $sce) {\r\n var vm =this;\r\n var popuplayout = '';\r\n var elemntDetails = {};\r\n vm.itemTypeDic = PopupService.itemTypeDic;\r\n\r\n itemOptionsClickEvent();\r\n\r\n function initializeLayout(controlType) {\r\n vm.htmlForElement = \"\";\r\n switch (controlType) {\r\n case 'TextBox':\r\n vm.htmlForElement = $sce.trustAsHtml('
' +\r\n '' +\r\n '
' +\r\n '
');\r\n $compile(vm.htmlForElement)($scope);\r\n break;\r\n\r\n case 'Paragraph':\r\n vm.htmlForElement = $sce.trustAsHtml('
' +\r\n '' +\r\n '
' +\r\n '
');\r\n\r\n break;\r\n\r\n case 'Checkbox':\r\n\r\n vm.htmlForElement = $sce.trustAsHtml('
' +\r\n '' +\r\n '
' +\r\n '
' +\r\n '
');\r\n //angular.element('ul').on('click', '#addItems', function (event) {\r\n // angular.element(this).prev('div#itemAddRow').append('
');\r\n //});\r\n\r\n //angular.element('div.abc').on('click', 'input[type=\"button\"][value=\"Remove\"]', function () {\r\n // angular.element(this).parents('div[name =\"itemRowWrapper\"]').remove();\r\n //});\r\n\r\n break;\r\n\r\n case 'Dropdown':\r\n vm.htmlForElement = $sce.trustAsHtml($compile('
' +\r\n '' +\r\n '
' +\r\n '
' +\r\n '
')($scope));\r\n\r\n //angular.element('ul').on('click', '#addItems', function (event) {\r\n // angular.element(this).prev('div#itemAddRow').append('
');\r\n //});\r\n\r\n //angular.element('div.abc').on('click', 'input[type=\"button\"][value=\"Remove\"]', function () {\r\n // angular.element(this).parents('div[name =\"itemRowWrapper\"]').remove();\r\n //});\r\n\r\n break;\r\n\r\n case 'Adress':\r\n vm.htmlForElement = $sce.trustAsHtml('
' +\r\n '' +\r\n '
' +\r\n '
');\r\n\r\n break;\r\n\r\n case 'Decimal':\r\n vm.htmlForElement = $sce.trustAsHtml('
' +\r\n '' +\r\n '
' +\r\n '
');\r\n break;\r\n\r\n case 'Number':\r\n vm.htmlForElement = $sce.trustAsHtml('
' +\r\n '' +\r\n '
' +\r\n '
');\r\n\r\n break;\r\n\r\n case 'Date':\r\n vm.htmlForElement = $sce.trustAsHtml('
' +\r\n '' +\r\n '
' +\r\n '
');\r\n\r\n break;\r\n case 'Phone':\r\n vm.htmlForElement = $sce.trustAsHtml('
' +\r\n '' +\r\n '
' +\r\n '
');\r\n\r\n break;\r\n\r\n case 'Email':\r\n vm.htmlForElement = $sce.trustAsHtml('
' +\r\n '' +\r\n '
' +\r\n '
');\r\n\r\n break;\r\n\r\n case 'Video':\r\n vm.htmlForElement = $sce.trustAsHtml('
' +\r\n '' +\r\n '
' +\r\n '
');\r\n\r\n break;\r\n\r\n case 'Signature':\r\n vm.htmlForElement = $sce.trustAsHtml('
' +\r\n '' +\r\n '
' +\r\n '
');\r\n\r\n break;\r\n\r\n case 'Image':\r\n vm.htmlForElement = $sce.trustAsHtml('
' +\r\n '' +\r\n '
' +\r\n '
');\r\n\r\n break;\r\n }\r\n\r\n // $scope.$apply();\r\n }\r\n\r\n $rootScope.$on('PopupTriggered', function (evt, data) {\r\n var triggeredElement = data.element;\r\n initializeLayout(data.elemType);\r\n // angular.element(triggeredElement.target).on('show.bs.popover', function () {\r\n // var length = angular.element('.popover').length;\r\n // //console.log(length);\r\n // angular.element('.popover').each(function () {\r\n \r\n // angular.element(this).remove();\r\n // });\r\n // });\r\n\r\n // angular.element(triggeredElement.target).popover(\r\n // {\r\n // trigger: 'manual',\r\n // animation: true,\r\n // placement: 'bottom',\r\n // title: 'Edit New Field',\r\n // html: true,\r\n // content: function () {\r\n // return $compile(angular.element('#myForm').html())($scope);\r\n // }\r\n // }).popover('show');\r\n });\r\n\r\n $rootScope.$on('DeleteElement', function (event, data) {\r\n var checkeElementinList;\r\n var triggeredElement = data.element;\r\n var popupId = angular.element(triggeredElement.target).parents('div.abc').data('popid');\r\n if (angular.isDefined(popupId)) {\r\n checkeElementinList = checkArrayContainskeyValue(PopupService.SectionList, 'itemId', popupId);\r\n if (checkeElementinList.status) {\r\n PopupService.SectionList.splice(checkeElementinList.arrayIndex, 1);\r\n }\r\n }\r\n\r\n angular.element(triggeredElement.target).parents('div.abc').remove();\r\n });\r\n\r\n function checkUniqueSectionAndItem(array, section, item) {\r\n for (var i = 0; i < array.length; i++) {\r\n if ((array[i].sectionName == section) && (array[i].itemName == item)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function checkArrayContainskeyValue(array, key, value) {\r\n var foundItemInfo = {};\r\n foundItemInfo.status = false;\r\n for (var ind = 0; ind < array.length; ind++) {\r\n if (array[ind][key] == value) {\r\n foundItemInfo.arrayIndex = ind;\r\n foundItemInfo.status = true;\r\n return foundItemInfo;\r\n }\r\n }\r\n return foundItemInfo;\r\n }\r\n\r\n // angular.element(document).on('click', '#popUpSave', function (event) {\r\n // var optionitems_conditionsCheck = true;\r\n // var elemtype = angular.element(event.target).data('elemtype');\r\n // var uniqueCheck = true;\r\n // var elementBody = angular.element(event.target).parents('#popForm');\r\n // var labelName = elementBody.find('#name').val();\r\n // var hint = elementBody.find('#hint').val();\r\n // var section = (elementBody.find('#section option:selected').text() == 'Choose Section' ? PopupService.currentStepName : elementBody.find('#section option:selected').text());\r\n // var required = elementBody.find('#required').prop('checked');\r\n // var field_options = {};\r\n // field_options.description = \"\";\r\n // var itemType = '';\r\n // switch (elemtype) {\r\n // case 'TextBox':\r\n // field_options.size = \"small\";\r\n // itemType = $scope.itemTypeDic[\"text\"];\r\n // break;\r\n // case 'Paragraph':\r\n // field_options.size = \"small\";\r\n // itemType = $scope.itemTypeDic[\"paragraph\"];\r\n // break;\r\n // case 'Checkbox':\r\n // field_options.options = [];\r\n // var labelCollection = [];\r\n // angular.element('#itemAddRow').children('div[name=\"itemRowWrapper\"]').each(function () {\r\n // var option = {};\r\n // option.label = angular.element(this).find('input[type=\"text\"]').val();\r\n // if (!option.label) {\r\n // optionitems_conditionsCheck=false;\r\n // notifyUser('Option cannot be empty', 'error');\r\n // return false;\r\n // }\r\n // if ((!angular.isUndefined(labelCollection)) && (labelCollection.length>0)) {\r\n // if ($.inArray(option.label, labelCollection)!==-1) {\r\n // optionitems_conditionsCheck = false;\r\n // notifyUser('Option name should be unique', 'error');\r\n // return false;\r\n // }\r\n // }\r\n // option.checked = angular.element(this).find('input[type=checkbox]').is(':checked');\r\n // field_options.options.push(option);\r\n // labelCollection.push(option.label);\r\n // });\r\n // itemType = $scope.itemTypeDic[\"checkboxes\"];\r\n // if (!optionitems_conditionsCheck) {\r\n // return;\r\n // }\r\n // for (var labelCount = 0; labelCount < labelCollection.length; labelCount++) {\r\n // angular.element(event.target).parents('div.abc').find('div.wiz').append('
');\r\n // }\r\n // break;\r\n\r\n // case 'Dropdown':\r\n // var labelCollection = [];\r\n // field_options.options = [];\r\n // angular.element('#itemAddRow').children('div[name=\"itemRowWrapper\"]').each(function () {\r\n // var option = {};\r\n // option.label = angular.element(this).find('input[type=\"text\"]').val();\r\n // if (!option.label) {\r\n // optionitems_conditionsCheck = false;\r\n // notifyUser('Option cannot be empty', 'error');\r\n // return false;\r\n // }\r\n // if ((!angular.isUndefined(labelCollection)) && (labelCollection.length > 0)) {\r\n // if ($.inArray(option.label, labelCollection) !== -1) {\r\n // optionitems_conditionsCheck = false;\r\n // notifyUser('Option name should be unique', 'error');\r\n // return false;\r\n // }\r\n // }\r\n // option.checked =angular.element(this).find('input[type=checkbox]').is(':checked');\r\n // field_options.options.push(option);\r\n // labelCollection.push(option.label);\r\n\r\n // });\r\n // itemType = $scope.itemTypeDic[\"dropdown\"];\r\n // if (!optionitems_conditionsCheck)\r\n // {\r\n // return;\r\n // }\r\n // for (var labelCount = 0; labelCount < labelCollection.length; labelCount++) {\r\n // angular.element(event.target).parents('div.abc').find('select').append('');\r\n // }\r\n // break;\r\n\r\n // case 'Adress':\r\n // itemType = $scope.itemTypeDic[\"address\"];\r\n // break;\r\n\r\n // case 'Decimal':\r\n // itemType = $scope.itemTypeDic[\"decimal\"];\r\n // break;\r\n\r\n // case 'Number':\r\n // itemType = $scope.itemTypeDic[\"number\"];\r\n // break;\r\n\r\n // case 'Email':\r\n // itemType = $scope.itemTypeDic[\"email\"];\r\n // break;\r\n\r\n // case 'Signature':\r\n // itemType = $scope.itemTypeDic[\"signature\"];\r\n // break;\r\n\r\n // case 'Image':\r\n // itemType = $scope.itemTypeDic[\"image\"];\r\n // break;\r\n\r\n // case 'Video':\r\n // itemType = $scope.itemTypeDic[\"video\"];\r\n // break;\r\n\r\n // case 'Date':\r\n // itemType = $scope.itemTypeDic[\"date\"];\r\n // break;\r\n\r\n // case 'Phone':\r\n // itemType = $scope.itemTypeDic[\"mobile\"];\r\n // break;\r\n \r\n // default:\r\n // alert('no data found');\r\n // break;\r\n // }\r\n // elemntDetails = { itemName: labelName, itemType: itemType, required: required, field_options: field_options, sectionName: PopupService.currentStepName, action: PopupService.currentStepName};\r\n // uniqueCheck = checkUniqueSectionAndItem(PopupService.SectionList, elemntDetails.sectionName, elemntDetails.itemName);\r\n // item_UpdateCeck = checkArrayContainskeyValue(PopupService.SectionList);\r\n // if (!labelName) {\r\n // notifyUser('Item name can not be empty', 'error');\r\n // return;\r\n // }\r\n // if (uniqueCheck) {\r\n // PopupService.popupCount += 1;\r\n // elemntDetails.itemId = PopupService.popupCount;\r\n // PopupService.SectionList.push(elemntDetails);\r\n // angular.element(event.target).parents('div.form-group').find('label[for=\"usr\"]').html(labelName);\r\n // angular.element('button.wiz2').popover('destroy');\r\n // angular.element(event.target).parents('div.abc').attr('data-popid', elemntDetails.itemId);\r\n // elemntDetails = {};\r\n // }\r\n // else {\r\n // notifyUser('Please use unique item name', 'error');\r\n // }\r\n // // $scope.$apply();\r\n // });\r\n\r\n angular.element(document).on('click', '#popUpClose', function (event) {\r\n vm.htmlForElement = '';\r\n console.log()\r\n //angular.element(event.target).parents('.popover.fade.bottom.in').prev('button.wiz2').popover('destroy');\r\n vm.htmlForElement = '';\r\n $scope.$apply();\r\n });\r\n \r\n function itemOptionsClickEvent()\r\n {\r\n angular.element('div#exTab3').on('click', '#addItems', function (event) {\r\n angular.element(this).prev('div#itemAddRow').append('
');\r\n });\r\n\r\n angular.element('div#exTab3').on('click', 'div#itemAddRow input[type=\"button\"][value=\"Remove\"]', function (event) {\r\n angular.element(this).parents('div[name =\"itemRowWrapper\"]').remove();\r\n });\r\n }\r\n\r\n});\nangular.module('inspinia').service('FormBuilderService', function (ApiURL, $http,$localStorage) {\r\n \r\n this.SaveTemplate = function (templateData, token) {\r\n var url = ApiURL + '/api/Template?reqUserId=' + $localStorage.loggedInUserId;\r\n return $http.post(url, templateData, { headers: {'Token': token,'UserId': $localStorage.loggedInUserId }});\r\n }\r\n\r\n this.getTemplateByName = function (templateName, token) {\r\n var url = ApiURL + '/api/Template'+'/'+ templateName + '/'+$localStorage.loggedInUserId+'/byName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n // https://stag.mymobiforce.com/coreapi/api/SLAConfiguration/U1140000000001/GetAllSLAConfiguration\r\n\r\n this.getSLAConfiguration = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/SLAConfiguration/'+ loggedInUserId + '/GetAllSLAConfiguration';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n //https://115.124.122.225/coreapi/api/SkillSets/U30000000001/getmasterskills\r\n this.GetSkills = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/SkillSets/'+ loggedInUserId + '/getmasterskills';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.contains = function contains(a, obj) {\r\n var i = a.length;\r\n while (i--) {\r\n if (a[i] === obj) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\n});\r\n\nangular.module('inspinia').service('PopupService', function ()\r\n{\r\n var itemTypeDic = [];\r\n itemTypeDic[\"text\"] = 'Character FilteredTextBoxField';\r\n itemTypeDic[\"paragraph\"] = 'Bigger Textbox';\r\n itemTypeDic[\"checkboxes\"] = 'CheckBoxList DropDown Type';\r\n itemTypeDic[\"date\"] = 'Date Type';\r\n itemTypeDic[\"dropdown\"] = 'Dropdown Type';\r\n itemTypeDic[\"address\"] = 'Edit Enabled';\r\n itemTypeDic[\"mobile\"] = 'Phone Type';\r\n itemTypeDic[\"decimal\"] = 'Decimal TextBox Type';\r\n itemTypeDic[\"number\"] = 'Numeric FilteredTextBoxField';\r\n itemTypeDic[\"email\"] = 'Email';\r\n itemTypeDic[\"signature\"] = 'Signature Type';\r\n itemTypeDic[\"image\"] = 'Multiple Picture Type';\r\n itemTypeDic[\"formfieldset\"] = 'Linked Checklist Type';\r\n itemTypeDic[\"video\"] = 'Video Type';\r\n itemTypeDic[\"barcode\"]='Scan Barcode Type';\r\n itemTypeDic[\"section\"]='Section';\r\n itemTypeDic[\"instruction\"]='Instruction Type';\r\n itemTypeDic[\"siteLayout\"]='Draw Layout Type';\r\n itemTypeDic[\"attachFile\"]='File Attachment Type';\r\n\r\n return {\r\n currentStepName:'',\r\n currentPopupElement : '',\r\n SectionList: [],\r\n ActionList: {},\r\n itemTypeDic: itemTypeDic,\r\n popupCount:0\r\n };\r\n\r\n});\r\n\nangular.module('inspinia').service('employeshiftattendanceService', function (ApiURL, StaffSchedulingAPI ,SchedulingAPI, $window, $http) {\r\n\r\n var vm = this;\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n this.GetEmployeeAttendanceShiftView = function (data, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/GetEmployeeAttendanceShiftView';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('employeshiftattendanceController', function (employeshiftattendanceService, shiftManagementService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\temployeshiftattendanceService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n\t\temployeshiftattendanceService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength = 0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId = '';\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t};\r\n\r\n\r\n\t\tfunction generateDates(startDate, endDate) {\r\n\t\t\tvar currentDate = new Date(startDate);\r\n\t\t\tvar dates = [];\r\n\t\t\twhile (currentDate <= endDate) {\r\n\t\t\t\tvar day = currentDate.toLocaleDateString('en-IN', { weekday: 'short' });\r\n\t\t\t\tvar formattedDate = currentDate.getDate() + '-' + currentDate.toLocaleDateString('en-IN', { month: 'short' });\r\n\t\t\t\tdates.push({ day: day, date: formattedDate });\r\n\t\t\t\tcurrentDate.setDate(currentDate.getDate() + 1);\r\n\t\t\t}\r\n\t\t\treturn dates;\r\n\t\t}\r\n\r\n\r\n\t\t$scope.months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n\r\n\t\tvar today = new Date();\r\n\t\t$scope.selectedYear = new Date().getFullYear();\r\n\t\t$scope.selectedMonth = $scope.months[new Date().getMonth()];\r\n\t\tvar startDate = new Date(today.getFullYear(), today.getMonth(), 16);\r\n\t\t$scope.SelectedDepartment = \"\";\r\n\t\t$scope.SelectedLocation = \"\";\r\n\t\t$scope.filteredDates = generateDates(startDate, new Date(today.getFullYear(), today.getMonth() + 1, 16));\r\n\r\n\t\t$scope.$watchGroup(['selectedYear', 'selectedMonth','SelectedDepartment','SelectedLocation'], function (newValues, oldValues) {\r\n\t\t\tvar selectedYear = newValues[0];\r\n\t\t\tvar selectedMonth = newValues[1];\r\n\t\t\tvm.newStartDate = new Date(selectedYear, $scope.months.indexOf(selectedMonth), 16);\r\n\t\t\tvm.newEndDate = new Date(selectedYear, $scope.months.indexOf(selectedMonth) + 1, 14);\r\n\t\t\t$scope.filteredDates = generateDates(vm.newStartDate, vm.newEndDate);\r\n\t\t\tvm.GetEmployeeAttendanceShiftView(moment(vm.newStartDate).format(\"YYYY-MM-DD\"), moment(vm.newEndDate).format(\"YYYY-MM-DD\"));\r\n\t\t});\r\n\r\n\t\t$scope.years = Array.from({ length: 10 }, function (_, i) {\r\n\t\t\treturn startDate.getFullYear() + i;\r\n\t\t});\r\n\r\n\r\n\t\tvm.GetEmployeeAttendanceShiftView = function (startDate, endDate) {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"LocationId\": \t$scope.SelectedLocation,\r\n\t\t\t\t\"DepartmentId\": $scope.SelectedDepartment,\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"AutoSchedule\": true\r\n\t\t\t}\r\n\t\t\temployeshiftattendanceService.GetEmployeeAttendanceShiftView(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.StaffList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\t\tvm.GetAllLocations = function () {\r\n\t\t\tshiftManagementService.GetAllLocations(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.locationsList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllLocations();\r\n\r\n\t\tvm.GetAllDepartment = function () {\r\n\t\t\tshiftManagementService.GetAllDepartment(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.departmentList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.GetAllDepartment();\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('customerProfileViewService1', function (ApiURL, $http, FreelancerURL, LocationURL) {\r\n\r\n this.getUserInfo = function (userId,loggedInUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId +'/'+ loggedInUser+ '/'+ 'byUserIdWithJobCount' ;\r\n\t return $http.get(url,{\r\n\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\r\n}\r\n)\r\n\nangular.module('inspinia').controller('customerProfileView1Controller', function ($scope, $state, $filter,MainService,TeamProfileService, OnBoardingFormService, $log, $stateParams, $localStorage,$uibModal, DTColumnDefBuilder, DTOptionsBuilder, ImageUrl) {\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n // if (!loggedinUser || !userId) {\r\n\r\n // $state.go('Login', {\r\n // reload: true\r\n // });\r\n\r\n // } else {\r\n // var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n $scope.showOptions1 = false;\r\n $scope.showOptions2 = false;\r\n $scope.showOptions3 = false;\r\n $scope.showOptions4 = false;\r\n $scope.showOptions5 = false;\r\n $scope.showOptions6 = false;\r\n $scope.showOptions7 = false;\r\n $scope.showOptions8 = false;\r\n $scope.showOptions9 = false;\r\n $scope.showOptions10 = false;\r\n $scope.showOptions11 = false;\r\n $scope.showOptions12 = false;\r\n $scope.showOptions13 = false;\r\n $scope.showOptions14 = false;\r\n $scope.showOptions15 = false;\r\n $scope.showOptions16 = false;\r\n $scope.showOptions17 = false;\r\n $scope.showOptions18 = false;\r\n $scope.showOptions19 = false;\r\n $scope.showOptions20 = false;\r\n $scope.showOptions21 = false;\r\n $scope.showOptions22 = false;\r\n $scope.showOptions23 = false;\r\n $scope.showOptions24 = false;\r\n vm.AddAssestsModal = function () {\r\n vm.AssestsModal = $uibModal.open({\r\n templateUrl: 'addassests.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeAssetsModal = function () {\r\n vm.AssestsModal.close();\r\n \r\n }\r\n vm.ReallocateModal = function () {\r\n vm.reallocateModal = $uibModal.open({\r\n templateUrl: 'reallocate.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeReallocateModal = function () {\r\n vm.reallocateModal.close();\r\n \r\n }\r\n \r\n // }\r\n});\r\n\nangular.module('inspinia').service('customerProfileViewService', function (ApiURL, $http, FreelancerURL, LocationURL) {\r\n\r\n this.getUserInfo = function (userId,loggedInUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId +'/'+ loggedInUser+ '/'+ 'byUserIdWithJobCount' ;\r\n\t return $http.get(url,{\r\n\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\r\n}\r\n)\r\n\nangular.module('inspinia').controller('customerProfileViewController', function ($scope, $state, $filter,MainService,TeamProfileService, OnBoardingFormService, $log, $stateParams, $localStorage, DTColumnDefBuilder, DTOptionsBuilder, ImageUrl) {\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n // if (!loggedinUser || !userId) {\r\n\r\n // $state.go('Login', {\r\n // reload: true\r\n // });\r\n\r\n // } else {\r\n // var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n \r\n // }\r\n});\r\n\nangular.module('inspinia').controller('CMSMobileViewController', function ($stateParams, $localStorage, $location, $http, CMSToken, CMSAminToken, $log, $rootScope, $timeout, UIURL, ApiURL, CMSMediaUrl, PublicApiURL) {\r\n\r\n var vm = this;\r\n vm.userId= '';\r\n //var fetchUserFromUrl=urlParam('userId');\r\n var fetchUserFromUrl=$stateParams.userId;\r\nif(angular.isDefined(fetchUserFromUrl) && (!angular.equals('',fetchUserFromUrl)))\r\n {\r\n vm.userId=fetchUserFromUrl;\r\n }\r\n\r\n\r\n vm.posts = [];\r\n vm.post = null;\r\n vm.albumImages = [];\r\n vm.createdBy = null;\r\n vm.companyName = $localStorage.loggedInUser_CompanyName;\r\n vm.firstName = $localStorage.loggedInUser_FirstName;\r\n vm.lastName = $localStorage.loggedInUser_LastName;\r\n vm.role = $localStorage.loggedInUser_Role;\r\n if (vm.firstName) {\r\n vm.firstName = vm.firstName.charAt(0).toUpperCase() + vm.firstName.slice(1).toLowerCase();\r\n } if (vm.lastName) {\r\n vm.lastName = vm.lastName.charAt(0).toUpperCase() + vm.lastName.slice(1).toLowerCase();\r\n }\r\n if (vm.companyName) {\r\n vm.companyName = vm.companyName.toLowerCase;\r\n }\r\n vm.userMap = {};\r\n vm.comment = \"\";\r\n vm.searchParams = \"\";\r\n vm.UIURL = UIURL;\r\n vm.CMSMediaUrl = CMSMediaUrl;\r\n\r\n var bySearchText = PublicApiURL + \"/api/Content/{userId}/bySearchText{searchText}\";\r\n var byPostId = PublicApiURL + \"/api/Content/{userId}/{postId}/byPostId\";\r\n var byAlbumId = PublicApiURL + \"/api/Content/{userId}/{albumId}/byAlbumId\";\r\n var bySuggestionText = PublicApiURL + \"/api/Content/{userId}/{suggestionText}/bySuggestionText\";\r\n var commentByPostId = PublicApiURL + \"/api/Content/{userId}/{postId}/commentByPostId\";\r\n var addDislike = PublicApiURL + \"/api/Content/{userId}/{postId}/addDislike\";\r\n var addLike = PublicApiURL + \"/api/Content/{userId}/{postId}/addLike\";\r\n var addComment = PublicApiURL + \"/api/Content/{userId}/{postId}/{commentText}/addComment\";\r\n var getUserById = PublicApiURL + \"/api/{userId}/User\";\r\n\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.hideLoader();\r\n\r\n vm.getUser = function(){\r\n return vm.userId;\r\n }\r\n\r\n vm.getCMS = function (searchText) {\r\n var url = bySearchText.replace(\"{userId}\", vm.userId).replace(\"{searchText}\", (searchText && searchText.length>0)?(\"?searchText=\"+searchText):\"\");\r\n \r\n $http.get(url)\r\n .success(function (data) {\r\n vm.posts = data.result.posts;\r\n });\r\n };\r\n\r\n vm.viewCMS = function () {\r\n vm.albumImages = [];\r\n var url = byPostId.replace(\"{userId}\", vm.userId).replace(\"{postId}\", $stateParams.postId);\r\n\r\n $http.get(url)\r\n .success(function (data) {\r\n vm.post = data.result.posts;\r\n if (vm.post.type == 1) {\r\n vm.albumImages.push({ href: vm.CMSMediaUrl+vm.post.url, thumb: vm.CMSMediaUrl+vm.post.url, title: vm.post.caption });\r\n }\r\n if (vm.post.createdBy.length > 0 && vm.userMap[vm.post.createdBy] == null) {\r\n\r\n var urlGetUserById = getUserById.replace(\"{userId}\", vm.post.createdBy);\r\n $http.get(urlGetUserById)\r\n .success(function (data) {\r\n if (data.result && data.result.length > 0) {\r\n vm.userMap[vm.post.createdBy] = data.result[0];\r\n vm.userMap[vm.post.createdBy].name = vm.userMap[vm.post.createdBy].FirstName.charAt(0).toUpperCase()\r\n + vm.userMap[vm.post.createdBy].FirstName.slice(1).toLowerCase()\r\n + \" \" + vm.userMap[vm.post.createdBy].LastName.charAt(0).toUpperCase()\r\n + vm.userMap[vm.post.createdBy].LastName.slice(1).toLowerCase();\r\n }\r\n });\r\n }\r\n });\r\n\r\n var byAlbumIdUrl = byAlbumId.replace(\"{userId}\", vm.userId).replace(\"{albumId}\", $stateParams.postId);\r\n $http.get(byAlbumIdUrl)\r\n .success(function (data) {\r\n angular.forEach(data.result.posts, function (d) {\r\n if (d.type == 1) {\r\n vm.albumImages.push({ href: vm.CMSMediaUrl+d.url, thumb: vm.CMSMediaUrl+d.url, title: d.caption });\r\n } if(d.type == 2){\r\n vm.albumImages.push({ href: vm.CMSMediaUrl+d.url, thumb: vm.CMSMediaUrl+d.url, title: d.caption });\r\n }\r\n });\r\n console.log(vm.albumImages);\r\n });\r\n };\r\n\r\n vm.getComments = function () {\r\n var url = commentByPostId.replace(\"{userId}\", vm.userId).replace(\"{postId}\", $stateParams.postId);\r\n $http.get(url)\r\n .success(function (data) {\r\n vm.comments = data.result.comments.reverse();\r\n angular.forEach(vm.comments, function (i, d) {\r\n if (d.userId.length > 0 && vm.userMap[d.userId] == null) {\r\n var urlGetUserById = getUserById.replace(\"{userId}\", d.userId);\r\n $http.get(urlGetUserById)\r\n .success(function (data) {\r\n if (data.result && data.result.length > 0) {\r\n vm.userMap[d.userId] = data.result[0];\r\n vm.userMap[d.userId].name = vm.userMap[d.userId].FirstName.charAt(0).toUpperCase()\r\n + vm.userMap[d.userId].FirstName.slice(1).toLowerCase()\r\n + \" \" + vm.userMap[d.userId].LastName.charAt(0).toUpperCase()\r\n + vm.userMap[d.userId].LastName.slice(1).toLowerCase();\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n vm.saveComment = function () {\r\n var url = addComment.replace(\"{userId}\", vm.userId).replace(\"{postId}\", $stateParams.postId)\r\n .replace(\"{commentText}\", vm.comment);\r\n $http.post(url)\r\n .success(function (data) {\r\n if (data.result.success) {\r\n vm.comment = '';\r\n vm.getComments();\r\n }\r\n });\r\n }\r\n\r\n vm.getCMS('');\r\n\r\n if ($stateParams.postId != null) {\r\n vm.viewCMS();\r\n vm.getComments();\r\n }\r\n\r\n vm.oldText = \"\";\r\n vm.searchtext = \"\";\r\n vm.search = function () {\r\n if (vm.searchtext.length > 0) {\r\n var url = bySearchText.replace(\"{userId}\", vm.userId).replace(\"{searchText}\", (\"?searchText=\"+vm.searchtext));\r\n $http.get(url).success(function ($data) {\r\n //$log.log($data);\r\n vm.posts = $data.result.posts;\r\n });\r\n // }\r\n } else {\r\n var url = bySearchText.replace(\"{userId}\", vm.userId).replace(\"{searchText}\", \"\");\r\n $http.get(url).success(function ($data) {\r\n //$log.log($data);\r\n vm.posts = $data.result.posts;\r\n });\r\n }\r\n };\r\n\r\n vm.getAutoSuggestions = function (text) {\r\n var splitted = text.split(\" \");\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n var url = bySuggestionText.replace(\"{userId}\", vm.userId).replace(\"{suggestionText}\", splitted[splitted.length - 1]);\r\n return $http.get(url).then(function (response) {\r\n var sugg = response.data.result.data.map(function (item) {\r\n return item;\r\n });\r\n return sugg;\r\n });\r\n }\r\n\r\n vm.selectAutoSuggest = function ($item, $model, $label, $event) {\r\n //$log.log(\"$item\", $item);\r\n //$log.log(\"$model\", $model);\r\n //$log.log(\"$label\", $label);\r\n //$log.log(\"$event\", $event);\r\n //$log.log(\"vm.searchtext\", vm.searchtext);\r\n if (vm.searchtext.indexOf(\"Did you mean \") > -1) {\r\n vm.searchtext = vm.searchtext.replace(\"Did you mean \", \"\").replace(\"?\", \"\");\r\n vm.oldText = vm.oldText.substring(0, vm.oldText.lastIndexOf(\" \"));\r\n }\r\n var lastWord = vm.oldText.substring(vm.oldText.lastIndexOf(\" \") + 1);\r\n while (lastWord.length > 0 && vm.searchtext.toLowerCase().indexOf(lastWord.toLowerCase()) !== -1) {\r\n vm.oldText = vm.oldText.substring(0, vm.oldText.lastIndexOf(\" \"));\r\n lastWord = vm.oldText.substring(vm.oldText.lastIndexOf(\" \") + 1);\r\n }\r\n if (vm.oldText.length > 0) {\r\n vm.oldText += \" \";\r\n }\r\n vm.oldText = vm.oldText + vm.searchtext;\r\n vm.searchtext = vm.oldText;\r\n }\r\n\r\n vm.searchtextChange = function () {\r\n vm.oldText = vm.searchtext;\r\n }\r\n\r\n vm.keyupCalled = function () {\r\n console.log(1);\r\n }\r\n\r\n function urlParam(name){\r\n var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);\r\n if(!angular.equals(null,results))\r\n {\r\n return results[1] || 0;\r\n }\r\n }\r\n\r\n});\nangular.module('inspinia').controller('CMSMobileDirectViewController', function ($stateParams, $localStorage, $location, $http, CMSToken, CMSAminToken, $log, $rootScope, $timeout, UIURL, ApiURL, CMSMediaUrl, PublicApiURL) {\r\n\r\n var vm = this;\r\n vm.userId= '';\r\n //var fetchUserFromUrl=urlParam('userId');\r\n var fetchUserFromUrl=$stateParams.userId;\r\nif(angular.isDefined(fetchUserFromUrl) && (!angular.equals('',fetchUserFromUrl)))\r\n {\r\n vm.userId=fetchUserFromUrl;\r\n }\r\n\r\n\r\n vm.posts = [];\r\n vm.post = null;\r\n vm.albumImages = [];\r\n vm.createdBy = null;\r\n vm.companyName = $localStorage.loggedInUser_CompanyName;\r\n vm.firstName = $localStorage.loggedInUser_FirstName;\r\n vm.lastName = $localStorage.loggedInUser_LastName;\r\n vm.role = $localStorage.loggedInUser_Role;\r\n if (vm.firstName) {\r\n vm.firstName = vm.firstName.charAt(0).toUpperCase() + vm.firstName.slice(1).toLowerCase();\r\n } if (vm.lastName) {\r\n vm.lastName = vm.lastName.charAt(0).toUpperCase() + vm.lastName.slice(1).toLowerCase();\r\n }\r\n if (vm.companyName) {\r\n vm.companyName = vm.companyName.toLowerCase;\r\n }\r\n vm.userMap = {};\r\n vm.comment = \"\";\r\n vm.searchParams = \"\";\r\n vm.UIURL = UIURL;\r\n vm.CMSMediaUrl = CMSMediaUrl;\r\n\r\n var bySearchText = PublicApiURL + \"/api/Content/{userId}/byExactSearchText{searchText}\";\r\n var byPostId = PublicApiURL + \"/api/Content/{userId}/{postId}/byPostId\";\r\n var byAlbumId = PublicApiURL + \"/api/Content/{userId}/{albumId}/byAlbumId\";\r\n var bySuggestionText = PublicApiURL + \"/api/Content/{userId}/{suggestionText}/bySuggestionText\";\r\n var commentByPostId = PublicApiURL + \"/api/Content/{userId}/{postId}/commentByPostId\";\r\n var addDislike = PublicApiURL + \"/api/Content/{userId}/{postId}/addDislike\";\r\n var addLike = PublicApiURL + \"/api/Content/{userId}/{postId}/addLike\";\r\n var addComment = PublicApiURL + \"/api/Content/{userId}/{postId}/{commentText}/addComment\";\r\n var getUserById = PublicApiURL + \"/api/{userId}/User\";\r\n\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.hideLoader();\r\n\r\n vm.getUser = function(){\r\n return vm.userId;\r\n }\r\n\r\n vm.getCMS = function (searchText) {\r\n var url = bySearchText.replace(\"{userId}\", vm.userId).replace(\"{searchText}\", (searchText && searchText.length>0)?(\"?searchText=\"+searchText):\"\");\r\n \r\n $http.get(url)\r\n .success(function (data) {\r\n vm.posts = data.result.posts;\r\n });\r\n };\r\n\r\n vm.viewCMS = function () {\r\n vm.albumImages = [];\r\n var url = bySearchText.replace(\"{userId}\", vm.userId).replace(\"{searchText}\", ($stateParams.keyword && $stateParams.keyword.length>0)?(\"?searchText=\"+$stateParams.keyword):\"\");\r\n\r\n $http.get(url)\r\n .success(function (data) {\r\n if(data && data.result && data.result.posts && data.result.posts.length>0){\r\n vm.post = data.result.posts[0];\r\n if (vm.post.type == 1) {\r\n vm.albumImages.push({ href: vm.CMSMediaUrl+vm.post.url, thumb: vm.CMSMediaUrl+vm.post.url, title: vm.post.caption });\r\n }\r\n } \r\n });\r\n\r\n var byAlbumIdUrl = byAlbumId.replace(\"{userId}\", vm.userId).replace(\"{albumId}\", $stateParams.postId);\r\n $http.get(byAlbumIdUrl)\r\n .success(function (data) {\r\n angular.forEach(data.result.posts, function (d) {\r\n if (d.type == 1) {\r\n vm.albumImages.push({ href: vm.CMSMediaUrl+d.url, thumb: vm.CMSMediaUrl+d.url, title: d.caption });\r\n } if(d.type == 2){\r\n vm.albumImages.push({ href: vm.CMSMediaUrl+d.url, thumb: vm.CMSMediaUrl+d.url, title: d.caption });\r\n }\r\n });\r\n console.log(vm.albumImages);\r\n });\r\n };\r\n\r\n vm.getComments = function () {\r\n var url = commentByPostId.replace(\"{userId}\", vm.userId).replace(\"{postId}\", $stateParams.postId);\r\n $http.get(url)\r\n .success(function (data) {\r\n vm.comments = data.result.comments.reverse();\r\n angular.forEach(vm.comments, function (i, d) {\r\n if (d.userId.length > 0 && vm.userMap[d.userId] == null) {\r\n var urlGetUserById = getUserById.replace(\"{userId}\", d.userId);\r\n $http.get(urlGetUserById)\r\n .success(function (data) {\r\n if (data.result && data.result.length > 0) {\r\n vm.userMap[d.userId] = data.result[0];\r\n vm.userMap[d.userId].name = vm.userMap[d.userId].FirstName.charAt(0).toUpperCase()\r\n + vm.userMap[d.userId].FirstName.slice(1).toLowerCase()\r\n + \" \" + vm.userMap[d.userId].LastName.charAt(0).toUpperCase()\r\n + vm.userMap[d.userId].LastName.slice(1).toLowerCase();\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n vm.saveComment = function () {\r\n var url = addComment.replace(\"{userId}\", vm.userId).replace(\"{postId}\", $stateParams.postId)\r\n .replace(\"{commentText}\", vm.comment);\r\n $http.post(url)\r\n .success(function (data) {\r\n if (data.result.success) {\r\n vm.comment = '';\r\n vm.getComments();\r\n }\r\n });\r\n }\r\n\r\n // vm.getCMS('');\r\n\r\n if ($stateParams.keyword != null) {\r\n vm.viewCMS();\r\n // vm.getComments();\r\n }\r\n\r\n vm.oldText = \"\";\r\n vm.searchtext = \"\";\r\n vm.search = function () {\r\n if (vm.searchtext.length > 0) {\r\n var url = bySearchText.replace(\"{userId}\", vm.userId).replace(\"{searchText}\", (\"?searchText=\"+vm.searchtext));\r\n $http.get(url).success(function ($data) {\r\n //$log.log($data);\r\n vm.posts = $data.result.posts;\r\n });\r\n // }\r\n } else {\r\n var url = bySearchText.replace(\"{userId}\", vm.userId).replace(\"{searchText}\", \"\");\r\n $http.get(url).success(function ($data) {\r\n //$log.log($data);\r\n vm.posts = $data.result.posts;\r\n });\r\n }\r\n };\r\n\r\n vm.getAutoSuggestions = function (text) {\r\n var splitted = text.split(\" \");\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n var url = bySuggestionText.replace(\"{userId}\", vm.userId).replace(\"{suggestionText}\", splitted[splitted.length - 1]);\r\n return $http.get(url).then(function (response) {\r\n var sugg = response.data.result.data.map(function (item) {\r\n return item;\r\n });\r\n return sugg;\r\n });\r\n }\r\n\r\n vm.selectAutoSuggest = function ($item, $model, $label, $event) {\r\n //$log.log(\"$item\", $item);\r\n //$log.log(\"$model\", $model);\r\n //$log.log(\"$label\", $label);\r\n //$log.log(\"$event\", $event);\r\n //$log.log(\"vm.searchtext\", vm.searchtext);\r\n if (vm.searchtext.indexOf(\"Did you mean \") > -1) {\r\n vm.searchtext = vm.searchtext.replace(\"Did you mean \", \"\").replace(\"?\", \"\");\r\n vm.oldText = vm.oldText.substring(0, vm.oldText.lastIndexOf(\" \"));\r\n }\r\n var lastWord = vm.oldText.substring(vm.oldText.lastIndexOf(\" \") + 1);\r\n while (lastWord.length > 0 && vm.searchtext.toLowerCase().indexOf(lastWord.toLowerCase()) !== -1) {\r\n vm.oldText = vm.oldText.substring(0, vm.oldText.lastIndexOf(\" \"));\r\n lastWord = vm.oldText.substring(vm.oldText.lastIndexOf(\" \") + 1);\r\n }\r\n if (vm.oldText.length > 0) {\r\n vm.oldText += \" \";\r\n }\r\n vm.oldText = vm.oldText + vm.searchtext;\r\n vm.searchtext = vm.oldText;\r\n }\r\n\r\n vm.searchtextChange = function () {\r\n vm.oldText = vm.searchtext;\r\n }\r\n\r\n vm.keyupCalled = function () {\r\n console.log(1);\r\n }\r\n\r\n function urlParam(name){\r\n var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);\r\n if(!angular.equals(null,results))\r\n {\r\n return results[1] || 0;\r\n }\r\n }\r\n\r\n});\nangular.module('inspinia').controller('CMSMobileController', function ($stateParams, $localStorage, $location, $http, CMSToken, CMSAminToken, $log, $rootScope, $timeout, UIURL, ApiURL, CMSMediaUrl, PublicApiURL) {\r\n\r\n var vm = this;\r\n vm.userId= '';\r\n //var fetchUserFromUrl=urlParam('user');\r\n var fetchUserFromUrl=$stateParams.userId;\r\n if(angular.isDefined(fetchUserFromUrl) && (!angular.equals('',fetchUserFromUrl)))\r\n {\r\n vm.userId=fetchUserFromUrl;\r\n }\r\n \r\n\r\n vm.posts = [];\r\n vm.post = null;\r\n vm.albumImages = [];\r\n vm.createdBy = null;\r\n vm.companyName = $localStorage.loggedInUser_CompanyName;\r\n vm.firstName = $localStorage.loggedInUser_FirstName;\r\n vm.lastName = $localStorage.loggedInUser_LastName;\r\n vm.role = $localStorage.loggedInUser_Role;\r\n if (vm.firstName) {\r\n vm.firstName = vm.firstName.charAt(0).toUpperCase() + vm.firstName.slice(1).toLowerCase();\r\n } if (vm.lastName) {\r\n vm.lastName = vm.lastName.charAt(0).toUpperCase() + vm.lastName.slice(1).toLowerCase();\r\n }\r\n if (vm.companyName) {\r\n vm.companyName = vm.companyName.toLowerCase;\r\n }\r\n vm.userMap = {};\r\n vm.comment = \"\";\r\n vm.searchParams = \"\";\r\n vm.UIURL = UIURL;\r\n vm.CMSMediaUrl = CMSMediaUrl;\r\n\r\n var bySearchText = PublicApiURL + \"/api/Content/{userId}/bySearchText{searchText}\";\r\n var byPostId = PublicApiURL + \"/api/Content/{userId}/{postId}/byPostId\";\r\n var byAlbumId = PublicApiURL + \"/api/Content/{userId}/{albumId}/byAlbumId\";\r\n var bySuggestionText = PublicApiURL + \"/api/Content/{userId}/{suggestionText}/bySuggestionText\";\r\n var commentByPostId = PublicApiURL + \"/api/Content/{userId}/{postId}/commentByPostId\";\r\n var addDislike = PublicApiURL + \"/api/Content/{userId}/{postId}/addDislike\";\r\n var addLike = PublicApiURL + \"/api/Content/{userId}/{postId}/addLike\";\r\n var addComment = PublicApiURL + \"/api/Content/{userId}/{postId}/{commentText}/addComment\";\r\n var getUserById = PublicApiURL + \"/api/{userId}/User\";\r\n\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.hideLoader();\r\n\r\n vm.getUser = function(){\r\n return vm.userId;\r\n }\r\n\r\n vm.getCMS = function (searchText) {\r\n var url = bySearchText.replace(\"{userId}\", vm.userId).replace(\"{searchText}\", (searchText && searchText.length>0)?(\"?searchText=\"+searchText):\"\");\r\n \r\n $http.get(url)\r\n .success(function (data) {\r\n vm.posts = data.result.posts;\r\n });\r\n };\r\n\r\n vm.viewCMS = function () {\r\n vm.albumImages = [];\r\n var url = byPostId.replace(\"{userId}\", vm.userId).replace(\"{postId}\", $stateParams.postId);\r\n\r\n $http.get(url)\r\n .success(function (data) {\r\n vm.post = data.result.posts;\r\n if (vm.post.type == 1) {\r\n vm.albumImages.push({ href: vm.CMSMediaUrl+vm.post.url, thumb: vm.CMSMediaUrl+vm.post.url, title: vm.post.caption });\r\n }\r\n if (vm.post.createdBy.length > 0 && vm.userMap[vm.post.createdBy] == null) {\r\n\r\n var urlGetUserById = getUserById.replace(\"{userId}\", vm.post.createdBy);\r\n $http.get(urlGetUserById)\r\n .success(function (data) {\r\n if (data.result && data.result.length > 0) {\r\n vm.userMap[vm.post.createdBy] = data.result[0];\r\n vm.userMap[vm.post.createdBy].name = vm.userMap[vm.post.createdBy].FirstName.charAt(0).toUpperCase()\r\n + vm.userMap[vm.post.createdBy].FirstName.slice(1).toLowerCase()\r\n + \" \" + vm.userMap[vm.post.createdBy].LastName.charAt(0).toUpperCase()\r\n + vm.userMap[vm.post.createdBy].LastName.slice(1).toLowerCase();\r\n }\r\n });\r\n }\r\n });\r\n\r\n var byAlbumIdUrl = byAlbumId.replace(\"{userId}\", vm.userId).replace(\"{albumId}\", $stateParams.postId);\r\n $http.get(byAlbumIdUrl)\r\n .success(function (data) {\r\n angular.forEach(data.result.posts, function (d) {\r\n if (d.type == 1) {\r\n vm.albumImages.push({ href: vm.CMSMediaUrl+d.url, thumb: vm.CMSMediaUrl+d.url, title: d.caption });\r\n } if(d.type == 2){\r\n vm.albumImages.push({ href: vm.CMSMediaUrl+d.url, thumb: vm.CMSMediaUrl+d.url, title: d.caption });\r\n }\r\n });\r\n console.log(vm.albumImages);\r\n });\r\n };\r\n\r\n vm.getComments = function () {\r\n var url = commentByPostId.replace(\"{userId}\", vm.userId).replace(\"{postId}\", $stateParams.postId);\r\n $http.get(url)\r\n .success(function (data) {\r\n vm.comments = data.result.comments.reverse();\r\n angular.forEach(vm.comments, function (i, d) {\r\n if (d.userId.length > 0 && vm.userMap[d.userId] == null) {\r\n var urlGetUserById = getUserById.replace(\"{userId}\", d.userId);\r\n $http.get(urlGetUserById)\r\n .success(function (data) {\r\n if (data.result && data.result.length > 0) {\r\n vm.userMap[d.userId] = data.result[0];\r\n vm.userMap[d.userId].name = vm.userMap[d.userId].FirstName.charAt(0).toUpperCase()\r\n + vm.userMap[d.userId].FirstName.slice(1).toLowerCase()\r\n + \" \" + vm.userMap[d.userId].LastName.charAt(0).toUpperCase()\r\n + vm.userMap[d.userId].LastName.slice(1).toLowerCase();\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n vm.saveComment = function () {\r\n var url = addComment.replace(\"{userId}\", vm.userId).replace(\"{postId}\", $stateParams.postId)\r\n .replace(\"{commentText}\", vm.comment);\r\n $http.post(url)\r\n .success(function (data) {\r\n if (data.result.success) {\r\n vm.comment = '';\r\n vm.getComments();\r\n }\r\n });\r\n }\r\n\r\n vm.getCMS('');\r\n\r\n if ($stateParams.postId != null) {\r\n vm.viewCMS();\r\n vm.getComments();\r\n }\r\n\r\n vm.oldText = \"\";\r\n vm.searchtext = \"\";\r\n vm.search = function () {\r\n if (vm.searchtext.length > 0) {\r\n var url = bySearchText.replace(\"{userId}\", vm.userId).replace(\"{searchText}\", (\"?searchText=\"+vm.searchtext));\r\n $http.get(url).success(function ($data) {\r\n //$log.log($data);\r\n vm.posts = $data.result.posts;\r\n });\r\n // }\r\n } else {\r\n var url = bySearchText.replace(\"{userId}\", vm.userId).replace(\"{searchText}\", \"\");\r\n $http.get(url).success(function ($data) {\r\n //$log.log($data);\r\n vm.posts = $data.result.posts;\r\n });\r\n }\r\n };\r\n\r\n vm.getAutoSuggestions = function (text) {\r\n var splitted = text.split(\" \");\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n var url = bySuggestionText.replace(\"{userId}\", vm.userId).replace(\"{suggestionText}\", splitted[splitted.length - 1]);\r\n return $http.get(url).then(function (response) {\r\n var sugg = response.data.result.data.map(function (item) {\r\n return item;\r\n });\r\n return sugg;\r\n });\r\n }\r\n\r\n vm.selectAutoSuggest = function ($item, $model, $label, $event) {\r\n //$log.log(\"$item\", $item);\r\n //$log.log(\"$model\", $model);\r\n //$log.log(\"$label\", $label);\r\n //$log.log(\"$event\", $event);\r\n //$log.log(\"vm.searchtext\", vm.searchtext);\r\n if (vm.searchtext.indexOf(\"Did you mean \") > -1) {\r\n vm.searchtext = vm.searchtext.replace(\"Did you mean \", \"\").replace(\"?\", \"\");\r\n vm.oldText = vm.oldText.substring(0, vm.oldText.lastIndexOf(\" \"));\r\n }\r\n var lastWord = vm.oldText.substring(vm.oldText.lastIndexOf(\" \") + 1);\r\n while (lastWord.length > 0 && vm.searchtext.toLowerCase().indexOf(lastWord.toLowerCase()) !== -1) {\r\n vm.oldText = vm.oldText.substring(0, vm.oldText.lastIndexOf(\" \"));\r\n lastWord = vm.oldText.substring(vm.oldText.lastIndexOf(\" \") + 1);\r\n }\r\n if (vm.oldText.length > 0) {\r\n vm.oldText += \" \";\r\n }\r\n vm.oldText = vm.oldText + vm.searchtext;\r\n vm.searchtext = vm.oldText;\r\n }\r\n\r\n vm.searchtextChange = function () {\r\n vm.oldText = vm.searchtext;\r\n }\r\n\r\n vm.keyupCalled = function () {\r\n console.log(1);\r\n }\r\n\r\n function urlParam(name){\r\n var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);\r\n if(!angular.equals(null,results))\r\n {\r\n return results[1] || 0;\r\n }\r\n }\r\n\r\n});\nangular.module('inspinia').controller('CMSController', function ($stateParams, $localStorage, $location, $http, CMSToken, CMSAminToken, $log, $rootScope, $timeout, UIURL, ApiURL, CMSMediaUrl) {\r\n\r\n var vm = this;\r\n vm.userId= '';\r\n var fetchUserFromUrl=urlParam('user');\r\n // var fetchUserFromUrl=$stateParams.user;\r\nif(angular.isDefined(fetchUserFromUrl) && (!angular.equals('',fetchUserFromUrl)))\r\n {\r\n vm.userId=fetchUserFromUrl;\r\n }\r\nelse\r\n {\r\n vm.userId = $localStorage.loggedInUserId;\r\n }\r\n\r\n var token = $localStorage.token;\r\n\r\n vm.posts = [];\r\n vm.post = null;\r\n vm.albumImages = [];\r\n vm.createdBy = null;\r\n // bulkuploadService.bulkuploadType = \"cms\";\r\n vm.companyName = $localStorage.loggedInUser_CompanyName;\r\n vm.firstName = $localStorage.loggedInUser_FirstName;\r\n vm.lastName = $localStorage.loggedInUser_LastName;\r\n vm.role = $localStorage.loggedInUser_Role;\r\n if (vm.firstName) {\r\n vm.firstName = vm.firstName.charAt(0).toUpperCase() + vm.firstName.slice(1).toLowerCase();\r\n } if (vm.lastName) {\r\n vm.lastName = vm.lastName.charAt(0).toUpperCase() + vm.lastName.slice(1).toLowerCase();\r\n }\r\n if (vm.companyName) {\r\n vm.companyName = vm.companyName.toLowerCase;\r\n }\r\n vm.userMap = {};\r\n vm.comment = \"\";\r\n vm.searchParams = \"\";\r\n vm.UIURL = UIURL;\r\n vm.CMSMediaUrl = CMSMediaUrl;\r\n\r\n var bySearchText = ApiURL + \"/api/Content/{userId}/bySearchText{searchText}\";\r\n var byPostId = ApiURL + \"/api/Content/{userId}/{postId}/byPostId\";\r\n var byAlbumId = ApiURL + \"/api/Content/{userId}/{albumId}/byAlbumId\";\r\n var bySuggestionText = ApiURL + \"/api/Content/{userId}/{suggestionText}/bySuggestionText\";\r\n var commentByPostId = ApiURL + \"/api/Content/{userId}/{postId}/commentByPostId\";\r\n var addDislike = ApiURL + \"/api/Content/{userId}/{postId}/addDislike\";\r\n var addLike = ApiURL + \"/api/Content/{userId}/{postId}/addLike\";\r\n var addComment = ApiURL + \"/api/Content/{userId}/{postId}/{commentText}/addComment\";\r\n var getUserById = ApiURL + \"/api/{userId}/User\";\r\n\r\n if (!vm.userId) {\r\n $location.path('/Login');\r\n }\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.hideLoader();\r\n\r\n vm.getCMS = function (searchText) {\r\n var url = bySearchText.replace(\"{userId}\", vm.userId).replace(\"{searchText}\", (searchText && searchText.length>0)?(\"?searchText=\"+searchText):\"\");\r\n \r\n $http.get(url, {\r\n headers: {'Token': token}\r\n })\r\n .success(function (data) {\r\n if(data && data.result && data.result.posts){\r\n vm.posts = data.result.posts; \r\n }\r\n });\r\n };\r\n\r\n vm.viewCMS = function () {\r\n vm.albumImages = [];\r\n var url = byPostId.replace(\"{userId}\", vm.userId).replace(\"{postId}\", $stateParams.postId);\r\n\r\n $http.get(url, {\r\n headers:{'Token': token}\r\n })\r\n .success(function (data) {\r\n vm.post = data.result.posts;\r\n if (vm.post.type == 1) {\r\n vm.albumImages.push({ href: vm.CMSMediaUrl+vm.post.url, thumb: vm.CMSMediaUrl+vm.post.url, title: vm.post.caption });\r\n }\r\n if (vm.post.createdBy.length > 0 && vm.userMap[vm.post.createdBy] == null) {\r\n\r\n var urlGetUserById = getUserById.replace(\"{userId}\", vm.post.createdBy);\r\n $http.get(urlGetUserById, {\r\n headers:{'Token': token}\r\n })\r\n .success(function (data) {\r\n if (data.result && data.result.length > 0) {\r\n vm.userMap[vm.post.createdBy] = data.result[0];\r\n vm.userMap[vm.post.createdBy].name = vm.userMap[vm.post.createdBy].FirstName.charAt(0).toUpperCase()\r\n + vm.userMap[vm.post.createdBy].FirstName.slice(1).toLowerCase()\r\n + \" \" + vm.userMap[vm.post.createdBy].LastName.charAt(0).toUpperCase()\r\n + vm.userMap[vm.post.createdBy].LastName.slice(1).toLowerCase();\r\n }\r\n });\r\n }\r\n });\r\n\r\n var byAlbumIdUrl = byAlbumId.replace(\"{userId}\", vm.userId).replace(\"{albumId}\", $stateParams.postId);\r\n $http.get(byAlbumIdUrl, { headers: {'Token': token}})\r\n .success(function (data) {\r\n angular.forEach(data.result.posts, function (d) {\r\n if (d.type == 1) {\r\n vm.albumImages.push({ href: vm.CMSMediaUrl+d.url, thumb: vm.CMSMediaUrl+d.url, title: d.caption });\r\n } if(d.type == 2){\r\n vm.albumImages.push({ href: vm.CMSMediaUrl+d.url, thumb: vm.CMSMediaUrl+d.url, title: d.caption });\r\n }\r\n });\r\n console.log(vm.albumImages);\r\n });\r\n };\r\n\r\n vm.getComments = function () {\r\n var url = commentByPostId.replace(\"{userId}\", vm.userId).replace(\"{postId}\", $stateParams.postId);\r\n $http.get(url, {headers: {'Token': token}})\r\n .success(function (data) {\r\n vm.comments = data.result.comments.reverse();\r\n angular.forEach(vm.comments, function (i, d) {\r\n if (d.userId.length > 0 && vm.userMap[d.userId] == null) {\r\n var urlGetUserById = getUserById.replace(\"{userId}\", d.userId);\r\n $http.get(urlGetUserById, {headers: {'Token': token}})\r\n .success(function (data) {\r\n if (data.result && data.result.length > 0) {\r\n vm.userMap[d.userId] = data.result[0];\r\n vm.userMap[d.userId].name = vm.userMap[d.userId].FirstName.charAt(0).toUpperCase()\r\n + vm.userMap[d.userId].FirstName.slice(1).toLowerCase()\r\n + \" \" + vm.userMap[d.userId].LastName.charAt(0).toUpperCase()\r\n + vm.userMap[d.userId].LastName.slice(1).toLowerCase();\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n vm.saveComment = function () {\r\n var url = addComment.replace(\"{userId}\", vm.userId).replace(\"{postId}\", $stateParams.postId)\r\n .replace(\"{commentText}\", vm.comment);\r\n $http.post(url, {headers: {'Token':token}})\r\n .success(function (data) {\r\n if (data.result.success) {\r\n vm.comment = '';\r\n vm.getComments();\r\n }\r\n });\r\n }\r\n\r\n vm.getCMS('');\r\n\r\n if ($stateParams.postId != null) {\r\n vm.viewCMS();\r\n vm.getComments();\r\n }\r\n\r\n vm.oldText = \"\";\r\n vm.searchtext = \"\";\r\n vm.search = function () {\r\n if (vm.searchtext.length > 0) {\r\n var url = bySearchText.replace(\"{userId}\", vm.userId).replace(\"{searchText}\", (\"?searchText=\"+vm.searchtext));\r\n $http.get(url, {headers: {'Token': token}}).success(function ($data) {\r\n //$log.log($data);\r\n vm.posts = $data.result.posts;\r\n });\r\n // }\r\n } else {\r\n var url = bySearchText.replace(\"{userId}\", vm.userId).replace(\"{searchText}\", \"\");\r\n $http.get(url, {headers: {'Token': token}}).success(function ($data) {\r\n //$log.log($data);\r\n vm.posts = $data.result.posts;\r\n });\r\n }\r\n };\r\n\r\n vm.getAutoSuggestions = function (text) {\r\n var splitted = text.split(\" \");\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n var url = bySuggestionText.replace(\"{userId}\", vm.userId).replace(\"{suggestionText}\", splitted[splitted.length - 1]);\r\n return $http.get(url, {headers:{'Token':token}}).then(function (response) {\r\n var sugg = response.data.result.data.map(function (item) {\r\n return item;\r\n });\r\n return sugg;\r\n });\r\n }\r\n\r\n vm.selectAutoSuggest = function ($item, $model, $label, $event) {\r\n //$log.log(\"$item\", $item);\r\n //$log.log(\"$model\", $model);\r\n //$log.log(\"$label\", $label);\r\n //$log.log(\"$event\", $event);\r\n //$log.log(\"vm.searchtext\", vm.searchtext);\r\n if (vm.searchtext.indexOf(\"Did you mean \") > -1) {\r\n vm.searchtext = vm.searchtext.replace(\"Did you mean \", \"\").replace(\"?\", \"\");\r\n vm.oldText = vm.oldText.substring(0, vm.oldText.lastIndexOf(\" \"));\r\n }\r\n var lastWord = vm.oldText.substring(vm.oldText.lastIndexOf(\" \") + 1);\r\n while (lastWord.length > 0 && vm.searchtext.toLowerCase().indexOf(lastWord.toLowerCase()) !== -1) {\r\n vm.oldText = vm.oldText.substring(0, vm.oldText.lastIndexOf(\" \"));\r\n lastWord = vm.oldText.substring(vm.oldText.lastIndexOf(\" \") + 1);\r\n }\r\n if (vm.oldText.length > 0) {\r\n vm.oldText += \" \";\r\n }\r\n vm.oldText = vm.oldText + vm.searchtext;\r\n vm.searchtext = vm.oldText;\r\n }\r\n\r\n vm.searchtextChange = function () {\r\n vm.oldText = vm.searchtext;\r\n }\r\n\r\n vm.keyupCalled = function () {\r\n console.log(1);\r\n }\r\n\r\n function urlParam(name){\r\n var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);\r\n if(!angular.equals(null,results))\r\n {\r\n return results[1] || 0;\r\n }\r\n }\r\n\r\n});\nangular.module('inspinia').controller('BulkUploadShiftMappingController', function ($stateParams, toaster, \r\n $http, DTOptionsBuilder, $localStorage, $location, $timeout, DTColumnDefBuilder, $rootScope, $log, \r\n ngProgressFactory, $q, $anchorScroll, ApiURL,StaffSchedulingAPI, CMSToken, CMSURL, CMSAminToken) {\r\n var vm = this;\r\n vm.userId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.showErrors = false;\r\n vm.showSuccess = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.Freelancers = [];\r\n vm.Errors = [];\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n\r\n var verifyBulkPost = ApiURL+\"/api/BulkUpload/MediaUpload?reqUserId={userId}&action=Create\";\r\n var addBulkPost = StaffSchedulingAPI+\"/api/StaffShift/BulkUploadPublishShiftToUser\";\r\n\r\n if (!vm.userId) {\r\n $location.path('/Login');\r\n }\r\n\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withButtons([])\r\n .withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20])\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs1 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs2 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.users = [];\r\n vm.customers = [];\r\n vm.tickets = [];\r\n vm.cms = [];\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n var url = verifyBulkPost.replace(\"{userId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, \"Token\":token,'UserId': vm.userId },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n vm.Freelancers = data.staffShiftModelRes;\r\n if(data.Errors.length > 0)\r\n {\r\n vm.Errors = data.Errors;\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + data.Errors.length + \" errors. To see them click here\";\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n }\r\n else\r\n {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = \"Shifts are validated successfully. Total \" + vm.Freelancers.length + \" found. Please click on Publish button to proceed.\";\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n } \r\n })\r\n .error(function (errorMessage) {\r\n $scope.$parent.$parent.main.showFailure(\"Failed\", \"Unable to upload document, technical error. Please contact to administrator\");\r\n });\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.uploadFile = function () {\r\n if (vm.Freelancers && vm.Freelancers.length > 0) {\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n $http.put(addBulkPost,\r\n vm.Freelancers, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Shifts are published in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n } \r\n }\r\n\r\n\r\n});\n\nangular.module('inspinia').controller('BulkUploadInviteController', function ($stateParams, toaster, \r\n $http, DTOptionsBuilder, $localStorage, $location, $timeout, DTColumnDefBuilder, $rootScope, $log, \r\n ngProgressFactory, $q, $anchorScroll, ApiURL,referalapi, CMSToken, CMSURL, CMSAminToken) {\r\n var vm = this;\r\n vm.userId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.showErrors = false;\r\n vm.showSuccess = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.Invitations = [];\r\n vm.Errors = [];\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n\r\n var verifyBulkPost = ApiURL+\"/api/BulkUpload/MediaUpload?reqUserId={userId}&action=Create\";\r\n var addBulkPost = ApiURL+\"/api/User/UploadInvitedUsers\";\r\n\r\n if (!vm.userId) {\r\n $location.path('/Login');\r\n }\r\n\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withButtons([])\r\n .withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20])\r\n .withOption('order', []);;\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs1 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(8).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs2 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(10).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(11).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.users = [];\r\n vm.customers = [];\r\n vm.tickets = [];\r\n vm.cms = [];\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n var url = verifyBulkPost.replace(\"{userId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, \"Token\":token,'UserId': vm.userId },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n vm.Invitations = data.Invitations;\r\n if(data.Errors.length > 0)\r\n {\r\n vm.Errors = data.Errors;\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + data.Errors.length + \" errors. To see them click here\";\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n }\r\n else\r\n {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = \"Invitations are validated successfully. Total \" + vm.Invitations.length + \" found. Please click on start upload button to proceed.\";\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n } \r\n })\r\n .error(function (errorMessage) {\r\n // vm.showSuccess = true;\r\n // $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n // vm.progressbar.complete();\r\n // vm.successTitle = \"Validation of records failed\";\r\n // vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n // $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n // vm.progressbar.complete();\r\n $scope.$parent.$parent.main.showFailure(\"Failed\", \"Unable to upload document, technical error. Please contact to administrator\");\r\n });\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.uploadFile = function () {\r\n vm.disableUploadButton = true;\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Uploading File\";\r\n vm.successMsg = \"Invitation creation is in progess, Please wait\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n if (vm.Invitations && vm.Invitations.length > 0) {\r\n\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n $http.post(addBulkPost,\r\n vm.Invitations, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Invitations are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n } \r\n }\r\n\r\n\r\n});\nangular.module('inspinia').controller('BulkUploadUserController', function ($stateParams, toaster, $http, DTOptionsBuilder, $localStorage, $location, $timeout, DTColumnDefBuilder, $rootScope, ngProgressFactory, $q, $anchorScroll, ApiURL, CMSToken, CMSURL, CMSAminToken) {\r\n var vm = this;\r\n vm.userId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.showErrors = false;\r\n vm.showSuccess = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.users = [];\r\n vm.customers = [];\r\n vm.tickets = [];\r\n vm.cms = [];\r\n vm.bulkuploadType = \"user\";\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n vm.tickets = [];\r\n vm.selectedTicket = \"\";\r\n vm.templateUrl = ApiURL+'/api/Template/';\r\n\r\n var verifyBulkPost = CMSURL+\"/post/{accountId}/verifyBulkPost\";\r\n var addBulkPost = CMSURL+\"/post/{accountId}/{userId}/addBulkPost\";\r\n\r\n if (!vm.userId) {\r\n $location.path('/Login');\r\n }\r\n\r\n if (vm.bulkuploadType == 'cms') {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.zip',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n } else {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n }\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers').withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20]);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.users = [];\r\n vm.customers = [];\r\n vm.tickets = [];\r\n vm.cms = [];\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n if (vm.bulkuploadType != 'cms') {\r\n $http.post(ApiURL + '/api/BulkUpload/MediaUpload?reqUserId=' + vm.userId + '&action=Create', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'Token': token,'UserId': vm.userId },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n if (vm.bulkuploadType == 'user') {\r\n vm.users = data.Users;\r\n vm.noOfRecords = data.Users ? data.Users.length : 0;\r\n } else if (vm.bulkuploadType == 'customer') {\r\n vm.customers = data.Customers;\r\n vm.noOfRecords = data.Customers ? data.Customers.length : 0;\r\n } else if (vm.bulkuploadType == 'ticket') {\r\n vm.tickets = data.Tickets;\r\n vm.noOfRecords = data.Tickets ? data.Tickets.length : 0;\r\n }\r\n\r\n $(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n if (data.Errors.length > 0) {\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.Errors, function (v, k) {\r\n\r\n if (v.ItemErrors.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.ItemErrors, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n });\r\n if (v.Row > 0 && data.Users && data.Users.length > 0 && data.Users.length >= v.Row) {\r\n e1.data = data.Users[v.Row - 1];\r\n } if (v.Row > 0 && data.Tickets && data.Tickets.length > 0 && data.Tickets.length >= v.Row) {\r\n e1.data = data.Tickets[v.Row - 1];\r\n } if (v.Row > 0 && data.Customers && data.Customers.length > 0 && data.Customers.length >= v.Row) {\r\n e1.data = data.Customers[v.Row - 1];\r\n }\r\n vm.errorList.push(e1);\r\n }\r\n });\r\n\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.ErrorCode == 103) {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Missing columns in excel file\";\r\n vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.Message && data.Message.length>0) {\r\n\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Validation failed\";\r\n vm.successMsg = data.Message\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\r\n } else {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are validated successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found. Please click on start upload button to proceed.\";\r\n // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n $(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n });\r\n } else {\r\n var url = verifyBulkPost.replace(\"{accountId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n if(data.errorCode==0 && data.result && data.result.success && data.result.success.length>0){\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = \"CMS content is validated successfully. Please click on start upload button to proceed.\";\r\n // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n\r\n } else if(data.validationFlag==false && data.rowErrors){\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + data.rowErrors.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n if (data.rowErrors.length > 0) {\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.rowErrors, function (v, k) {\r\n\r\n if (v.error.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.error, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1 : v1;\r\n });\r\n e1.data=JSON.parse(v.content); \r\n vm.errorList.push(e1);\r\n }\r\n });\r\n }\r\n } else {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = data.error+\". Please correct the data and re-upload file.\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n }\r\n })\r\n .error(function (errorMessage) {\r\n vm.showSuccess = true;\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n }\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.addFiles = function () {\r\n $(\"#dropzone1\").trigger(\"click\");\r\n }\r\n\r\n vm.uploadFile = function () {\r\n if (vm.users && vm.users.length > 0) {\r\n\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n $http.post(ApiURL + '/api/User/' + vm.userId + '/UploadUsers',\r\n vm.users, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Users are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n\r\n } else if (vm.tickets && vm.tickets.length > 0) {\r\n\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n $http.post(ApiURL + '/api/Ticket/{TicketRequestModels}/' + vm.userId + '/UploadTickets',\r\n vm.tickets, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Jobs are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n\r\n } else if (vm.customers && vm.customers.length > 0) {\r\n\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n $http.post(ApiURL + '/api/Customer/{objCustomerRequestModels}/' + vm.userId + '/UploadCustomers',\r\n vm.customers, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Customers are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n } else if (vm.bulkuploadType == 'cms') {\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n var fd = new FormData();\r\n fd.append('file', vm.file);\r\n \r\n var url = addBulkPost.replace(\"{accountId}\", vm.userId).replace(\"{userId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n if (data.errorCode > 0) {\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = data.error;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n\r\n } else if (data.result && data.result.success) {\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Products are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n } else {\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = \"Technical problem\";\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n }\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n }\r\n }\r\n\r\n vm.getTickets = function() {\r\n $http.get(ApiURL + '/api/' + vm.userId + '/Template', {headers: {'Token': token,'UserId': vm.userId}})\r\n .success(function (data) {\r\n vm.tickets=[{TemplateId:1, TemplateName:'Select Template'}];\r\n angular.forEach(data, function(d){\r\n console.log(d.TemplateId, d.TemplateName);\r\n vm.tickets.push({TemplateId:d.TemplateId, TemplateName:d.TemplateName});\r\n })\r\n vm.selectedTicket = vm.tickets[0];\r\n });\r\n\r\n }\r\n vm.getTickets();\r\n});\nangular.module('inspinia').controller('BulkUploadMasterInventoryController', function ($stateParams, toaster, \r\n $http, DTOptionsBuilder, $localStorage, $location, $timeout, DTColumnDefBuilder, $rootScope,\r\n ngProgressFactory, $q, ApiURL,AcessoriesURL) {\r\n var vm = this;\r\n vm.userId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.showErrors = false;\r\n vm.showSuccess = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.MasterInventory = [];\r\n vm.Errors = [];\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n vm.accountid= $localStorage.accountConfig.AccountId;\r\n\r\n var verifyBulkPost = ApiURL+\"/api/BulkUpload/MediaUpload?reqUserId={userId}&action=Create\";\r\n var addBulkPost = AcessoriesURL+\"/api/MMFMasterInventory/CreateNewPartInBulk\";\r\n\r\n if (!vm.userId) {\r\n $location.path('/Login');\r\n }\r\n\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withButtons([])\r\n .withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20])\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs1 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs2 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n var url = verifyBulkPost.replace(\"{userId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, \"Token\":token,'UserId': vm.userId },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n vm.MasterInventory = data.MasterItemModel;\r\n if(data.Errors.length > 0)\r\n {\r\n vm.Errors = data.Errors;\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + data.Errors.length + \" errors. To see them click here\";\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n }\r\n else\r\n {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = \"Inventory data validated successfully. Total \" + vm.MasterInventory.length + \" found. Please click on Upload button to proceed.\";\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n } \r\n })\r\n .error(function (errorMessage) {\r\n $scope.$parent.$parent.main.showFailure(\"Failed\", \"Unable to upload document, technical error. Please contact to administrator\");\r\n });\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.uploadFile = function () {\r\n if (vm.MasterInventory && vm.MasterInventory.length > 0) {\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n $http.post(addBulkPost,\r\n vm.MasterInventory, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Master Inventory are uploaded in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n } \r\n }\r\n\r\n\r\n});\nangular.module('inspinia').controller('bulkuploadServiceCenterController', function ($stateParams, $scope, toaster, \r\n $http, DTOptionsBuilder, $localStorage, $location, $timeout, DTColumnDefBuilder, $rootScope,\r\n ngProgressFactory, $q, ApiURL,AcessoriesURL) {\r\n var vm = this;\r\n vm.userId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.showErrors = false;\r\n vm.showSuccess = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.BulkServiceCenter = [];\r\n vm.Errors = [];\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n\r\n var verifyBulkPost = ApiURL+\"/api/BulkUpload/MediaUpload?reqUserId={userId}&action=Create\";\r\n var addBulkPost = ApiURL+\"/api/User/BulkCreateServiceCenters\";\r\n\r\n if (!vm.userId) {\r\n $location.path('/Login');\r\n }\r\n\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withButtons([])\r\n .withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20])\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs1 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs2 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n var url = verifyBulkPost.replace(\"{userId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, \"Token\":token,'UserId': vm.userId },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n vm.BulkServiceCenter = data.CreateServiceCenters;\r\n if(data.Errors.length > 0)\r\n {\r\n vm.Errors = data.Errors;\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + data.Errors.length + \" errors. To see them click here\";\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n }\r\n else\r\n {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n if (data.Message && data.Message == \"File name is invalid\") {\r\n vm.successTitle = \"Error!\";\r\n vm.successMsg = data.Message + \" File name should be 'BulkServiceCenter'.\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else {\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = \"Service Center data validated successfully. Total \" + vm.BulkServiceCenter.length + \" found. Please click on Upload button to proceed.\"; $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n } \r\n })\r\n .error(function (errorMessage) {\r\n $scope.$parent.$parent.main.showFailure(\"Failed\", \"Unable to upload document, technical error. Please contact to administrator\");\r\n });\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.uploadFile = function () {\r\n if (vm.BulkServiceCenter && vm.BulkServiceCenter.length > 0) {\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.disableUploadButton = true;\r\n $http.put(addBulkPost,\r\n vm.BulkServiceCenter, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = data.Message || \"Service Center are uploaded in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.disableUploadButton = false;\r\n vm.progressbar.complete();\r\n });\r\n } \r\n }\r\n\r\n\r\n});\nangular.module('inspinia').service('BulkUploadJobService', function (ApiURL, $log, $http) {\r\n\r\n\tthis.getCustomers = function(loggedInUserId, token, success, failure){\r\n\t\t$http.get(ApiURL + \"/api/Customer?reqUserId=\"+loggedInUserId, {\r\n\t\t\theaders:{'Token':token, 'UserId': loggedInUserId}\r\n\t\t}).then(function(res){\r\n\t\t\tif(res && res.data){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else if (res.data.Message) {\r\n\t\t\t\tfailure(\"Error\", res.data.Message);\r\n\t\t\t} else {\r\n\t\t\t\tfailure(\"Error\", \"Unable to get customers, server is not responding correctly.\");\r\n\t\t\t}\r\n\t\t}, function(err){\r\n\t\t\tfailure(\"Error\", \"Unable to get customers, server is not responding correctly.\");\r\n\t\t});\r\n\t}\r\n});\r\n\nangular.module('inspinia').controller('BulkUploadJobController', function ($stateParams, $scope, BulkUploadJobService, toaster, $http, DTOptionsBuilder, $localStorage, $location, $timeout, DTColumnDefBuilder, $rootScope, ngProgressFactory, $q, $anchorScroll, ApiURL, CMSToken, CMSURL, CMSAminToken, PublicApiURL, $log) {\r\n var vm = this;\r\n vm.userId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.updateType = $stateParams.type;\r\n vm.showErrors = false;\r\n vm.showSuccess = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.users = [];\r\n vm.customers = [];\r\n vm.tickets = [];\r\n vm.cms = [];\r\n vm.bulkuploadType = \"ticket\";\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n vm.tickets = [];\r\n vm.selectedTicket = \"\";\r\n vm.templateUrl = PublicApiURL+'/api/Template/';\r\n vm.customerList = [];\r\n vm.projectList = [];\r\n\r\n var verifyBulkPost = CMSURL+\"/post/{accountId}/verifyBulkPost\";\r\n var addBulkPost = CMSURL+\"/post/{accountId}/{userId}/addBulkPost\";\r\n\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\r\n if (!vm.userId) {\r\n $location.path('/Login');\r\n } else if (!vm.bulkuploadType || vm.bulkuploadType.length == 0) {\r\n $location.path('/index/TeamMember');\r\n }\r\n\r\n vm.getCustomers = function(){\r\n BulkUploadJobService.getCustomers(vm.userId, token, function(data){\r\n vm.customerList = data\r\n if(data.length>0){\r\n vm.selectedCustomer = data[0];\r\n vm.getProjects(vm.selectedCustomer);\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.getCustomers();\r\n\r\n vm.getProjects = function(customer){\r\n vm.projectList = customer.Projects;\r\n if(vm.projectList.length > 0){\r\n vm.selectedProject = vm.projectList[0];\r\n }\r\n }\r\n\r\n if (vm.bulkuploadType == 'cms') {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.zip',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n } else {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n }\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers').withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20]);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.UpdateErrorList = [];\r\n vm.disableUploadButton = true;\r\n vm.users = [];\r\n\r\n vm.customers = [];\r\n vm.tickets = [];\r\n vm.cms = [];\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n if (vm.bulkuploadType != 'cms') {\r\n if (vm.updateType != 'UpdateS') {\r\n $http.post(ApiURL + '/api/BulkUpload/MediaUpload?reqUserId=' + vm.userId + '&action=Create', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId':vm.userId},\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n if (vm.bulkuploadType == 'user') {\r\n vm.users = data.Users;\r\n vm.noOfRecords = data.Users ? data.Users.length : 0;\r\n } else if (vm.bulkuploadType == 'customer') {\r\n vm.customers = data.Customers;\r\n vm.noOfRecords = data.Customers ? data.Customers.length : 0;\r\n } else if (vm.bulkuploadType == 'ticket') {\r\n vm.tickets = data.Tickets;\r\n vm.noOfRecords = data.Tickets ? data.Tickets.length : 0;\r\n }\r\n\r\n $(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n if (data.Errors.length > 0) {\r\n //console.log('data.Errors',data.Errors);\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.Errors, function (v, k) {\r\n\r\n if (v.ItemErrors.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.ItemErrors, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n });\r\n if (v.Row > 0 && data.Users && data.Users.length > 0 && data.Users.length >= v.Row) {\r\n e1.data = data.Users[v.Row - 1];\r\n } if (v.Row > 0 && data.Tickets && data.Tickets.length > 0 && data.Tickets.length >= v.Row) {\r\n e1.data = data.Tickets[v.Row - 1];\r\n } if (v.Row > 0 && data.Customers && data.Customers.length > 0 && data.Customers.length >= v.Row) {\r\n e1.data = data.Customers[v.Row - 1];\r\n }\r\n vm.errorList.push(e1);\r\n }\r\n });\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.ErrorCode == 103 ) {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Missing columns in excel file\";\r\n vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } \r\n else if (data.Message && data.Message.length>0) {\r\n\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Validation failed\";\r\n vm.successMsg = data.Message\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\r\n } else {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are validated successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found. Please click on start upload button to proceed.\";\r\n // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n $(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n });\r\n }else if (vm.updateType == 'UpdateS'){\r\n //http://localhost:56749/api/BulkUpload/BulkUpdateLinkTickets?reqUserId=U310000000001\r\n $http.post(ApiURL + '/api/BulkUpload/BulkUpdateLinkTickets?reqUserId=' + vm.userId, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId':vm.userId },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n if (vm.bulkuploadType == 'user') {\r\n vm.users = data.Users;\r\n vm.noOfRecords = data.Users ? data.Users.length : 0;\r\n } else if (vm.bulkuploadType == 'customer') {\r\n vm.customers = data.Customers;\r\n vm.noOfRecords = data.Customers ? data.Customers.length : 0;\r\n } else if (vm.bulkuploadType == 'ticket') {\r\n vm.tickets = data.Tickets;\r\n vm.noOfRecords = data.Tickets ? data.Tickets.length : 0;\r\n }\r\n\r\n $(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n if (data.Errors.length > 0) {\r\n vm.showErrors = true;\r\n // vm.dtColumnDefs = [];\r\n // for (var i = 0; i < data.Errors.length; i++) {\r\n // vm.dtColumnDefs.push(DTColumnDefBuilder.newColumnDef(i));\r\n // }\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n \r\n angular.forEach(data.Errors, function (v, k) {\r\n \r\n //errObj.ItemErrors = [];\r\n \r\n if (v.ItemErrors.length>0) {\r\n angular.forEach(v.ItemErrors, function(d){\r\n var errObj = {};\r\n errObj.TicketId = v.TicketId;\r\n if (d.ErrorMessage) {\r\n errObj.TestName = d.TemplateName;\r\n \r\n errObj.ParameterName = d.ItemName;\r\n errObj.Error = d.ErrorMessage;\r\n errObj.row = d.row;\r\n errObj.col = d.col;\r\n vm.UpdateErrorList.push(errObj);\r\n }\r\n }) \r\n }\r\n //vm.UpdateErrorList.push(errObj);\r\n //console.log('vm.UpdateErrorList',vm.UpdateErrorList);\r\n \r\n \r\n });\r\n\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.UpdateErrorList.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.ErrorCode == 103) {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Missing columns in excel file\";\r\n vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.Message && data.Message.length>0) {\r\n\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Upload failed\";\r\n vm.successMsg = data.Message\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\r\n } else {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"All tickets have been uploaded successfully\";\r\n // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n $(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload failed\";\r\n vm.successMsg = errorMessage.Message;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n });\r\n }\r\n \r\n } else {\r\n var url = verifyBulkPost.replace(\"{accountId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n if(data.errorCode==0 && data.result && data.result.success && data.result.success.length>0){\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = \"CMS content is validated successfully. Please click on start upload button to proceed.\";\r\n // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n\r\n } else if(data.validationFlag==false && data.rowErrors){\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + data.rowErrors.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n if (data.rowErrors.length > 0) {\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.rowErrors, function (v, k) {\r\n\r\n if (v.error.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.error, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1 : v1;\r\n });\r\n e1.data=JSON.parse(v.content); \r\n vm.errorList.push(e1);\r\n }\r\n });\r\n }\r\n } else {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = data.error+\". Please correct the data and re-upload file.\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n }\r\n })\r\n .error(function (errorMessage) {\r\n vm.showSuccess = true;\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n }\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.addFiles = function () {\r\n $(\"#dropzone1\").trigger(\"click\");\r\n }\r\n\r\n vm.uploadFile = function () {\r\n if (vm.users && vm.users.length > 0) {\r\n\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n $http.post(ApiURL + '/api/User/' + vm.userId + '/UploadUsers',\r\n vm.users, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Users are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n\r\n } else if (vm.tickets && vm.tickets.length > 0) {\r\n\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.disableUploadButton = true;\r\n\r\n $http.post(ApiURL + '/api/Ticket/{TicketRequestModels}/' + vm.userId + '/UploadTickets?action=Create',\r\n vm.tickets, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Jobs are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.disableUploadButton = false;\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n\r\n } else if (vm.customers && vm.customers.length > 0) {\r\n\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n $http.post(ApiURL + '/api/Customer/{objCustomerRequestModels}/' + vm.userId + '/UploadCustomers',\r\n vm.customers, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Customers are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n } else if (vm.bulkuploadType == 'cms') {\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n var fd = new FormData();\r\n fd.append('file', vm.file);\r\n \r\n var url = addBulkPost.replace(\"{accountId}\", vm.userId).replace(\"{userId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n if (data.errorCode > 0) {\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = data.error;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n\r\n } else if (data.result && data.result.success) {\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Products are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n } else {\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = \"Technical problem\";\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n }\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n }\r\n }\r\n\r\n vm.getTickets = function() {\r\n $http.get(ApiURL + '/api/' + vm.userId + '/Template', {headers:{'Token': token, 'UserId':vm.userId}})\r\n .success(function (data) {\r\n vm.tickets=[];\r\n angular.forEach(data, function(d){\r\n console.log(d.TemplateId, d.TemplateName);\r\n vm.tickets.push({TemplateId:d.TemplateId, TemplateName:d.TemplateName});\r\n })\r\n vm.selectedTicket = vm.tickets[0];\r\n });\r\n\r\n }\r\n vm.getTickets();\r\n\r\n vm.showTemplateDownloadError = function(){\r\n if(vm.selectedProject==null){\r\n vm.showFailure(\"Failed\", \"Please select project to download sample template sheet.\");\r\n } \r\n if(vm.selectedTicket==null||vm.selectedTicket.TemplateName==null){\r\n vm.showFailure(\"Failed\", \"Please select template to download sample template sheet.\");\r\n }\r\n }\r\n});\nangular.module('inspinia').controller('BulkUploadCustomerLatestController', function ($stateParams, toaster, \r\n $http, DTOptionsBuilder, $localStorage, $location, $timeout, DTColumnDefBuilder, $rootScope, $log, \r\n ngProgressFactory, $q, $anchorScroll, ApiURL, CMSToken, CMSURL, CMSAminToken) {\r\n var vm = this;\r\n vm.userId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.showErrors = false;\r\n vm.showSuccess = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.customers = [];\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n vm.tickets = [];\r\n vm.selectedTicket = \"\";\r\n vm.templateUrl = ApiURL+'/api/Template/';\r\n\r\n var verifyBulkPost = ApiURL+\"/api/BulkUpload/BulkUploadCustomers?reqUserId={userId}\";\r\n var addBulkPost = ApiURL+\"/api/Customer/CreateCustomerInBulk?reqUserId={userId}\";\r\n\r\n if (!vm.userId) {\r\n $location.path('/Login');\r\n }\r\n\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withButtons([])\r\n .withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20])\r\n .withOption('order', []);;\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs1 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(8).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs2 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(10).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(11).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs3 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.users = [];\r\n vm.customers = [];\r\n vm.tickets = [];\r\n vm.cms = [];\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n var url = verifyBulkPost.replace(\"{userId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, \"Token\":token,'UserId': vm.userId },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n vm.customers = data.Customers;\r\n if(data.CustomerErrors.length==0 && data.CustomerLocationErrors.length==0 \r\n && data.CustomerContactErrors.length==0 && data.AssetErrors.length == 0){\r\n vm.customers = data.Customers;\r\n vm.showSuccess = true;\r\n\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = \"Customer data is validated successfully. Please click on start upload button to proceed.\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n } else {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.TotalErrorCounts = data.CustomerErrors.length + data.CustomerLocationErrors.length + data.CustomerContactErrors.length;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.TotalErrorCounts + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n if(data.CustomerErrors.length>0){\r\n vm.Customers = data.CustomerErrors;\r\n // vm.Customers = {};\r\n // angular.forEach(data.CustomerErrors, function(err){\r\n // vm.Customers[(err.Row-1)] = data.CustomerErrors[(err.Row-1)];\r\n // vm.Customers[(err.Row-1)].ItemErrors = err.ItemErrors;\r\n // });\r\n }\r\n if(data.CustomerLocationErrors.length>0){\r\n vm.CustomerLocations = data.CustomerLocationErrors;\r\n // vm.CustomerLocations = {};\r\n // angular.forEach(data.CustomerLocationErrors, function(err){\r\n // vm.CustomerLocations = \r\n // vm.CustomerLocations[(err.Row-1)].ItemErrors = err.ItemErrors;\r\n // });\r\n }\r\n if(data.CustomerContactErrors.length>0){\r\n vm.CustomerContacts = data.CustomerContactErrors;\r\n // vm.CustomerContacts = {};\r\n // angular.forEach(data.CustomerContactErrors, function(err){\r\n // vm.CustomerContacts[(err.Row-1)] = data.CustomerContactErrors[(err.Row-1)];\r\n // vm.CustomerContacts[(err.Row-1)].ItemErrors = err.ItemErrors;\r\n // });\r\n }\r\n if(data.AssetErrors.length > 0)\r\n {\r\n vm.AssetErrors = data.AssetErrors;\r\n }\r\n // if (data.rowErrors.length > 0) {\r\n // vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n // ];\r\n // angular.forEach(data.Errors, function (v, k) {\r\n\r\n // if (v.ItemErrors.length > 0) {\r\n // e1 = vm.customers[v.Row];\r\n // angular.forEach(v.ItemErrors, function (v1, k1) {\r\n // e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n // });\r\n // }\r\n // });\r\n // }\r\n }\r\n })\r\n .error(function (errorMessage) {\r\n // vm.showSuccess = true;\r\n // $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n // vm.progressbar.complete();\r\n // vm.successTitle = \"Validation of records failed\";\r\n // vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n // $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n // vm.progressbar.complete();\r\n $scope.$parent.$parent.main.showFailure(\"Failed\", \"Unable to upload document, technical error. Please contact to administrator\");\r\n });\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.dtInstance = {};\r\n vm.dtInstance1 = {};\r\n vm.dtInstance2 = {};\r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n vm.dtInstance1.DataTable.search(vm.searchText).draw();\r\n vm.dtInstance2.DataTable.search(vm.searchText).draw();\r\n };\r\n\r\n format = function(n){\r\n var childData = '';\r\n angular.forEach(n.ItemErrors, function(d, i){\r\n $log.log(d, i);\r\n childData += ''+\r\n ''+\r\n ''+\r\n ''+\r\n ''+\r\n '';\r\n })\r\n\r\n childData += '
Column Name:'+d.Name+'Error:'+d.Message+'
';\r\n return childData;\r\n }\r\n // format = function(ticket){\r\n // return ''+\r\n // ''+\r\n // ''+\r\n // ''+\r\n // ''+\r\n // '
Location:Sample value
';\r\n // }\r\n\r\n vm.showError = function(dtInstance, $event, n){\r\n var tr = angular.element($event.currentTarget).closest(\"tr\");\r\n var row = dtInstance.DataTable.row( tr );\r\n if ( row.child.isShown() ) {\r\n // This row is already open - close it\r\n row.child.hide();\r\n tr.removeClass('shown');\r\n } else {\r\n // Open this row\r\n row.child( format(n) ).show();\r\n tr.addClass('shown');\r\n }\r\n }\r\n\r\n vm.addFiles = function () {\r\n $(\"#dropzone1\").trigger(\"click\");\r\n }\r\n\r\n vm.uploadFile = function () {\r\n if (vm.customers && vm.customers.length > 0) {\r\n\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n $http.post(ApiURL + '/api/Customer/CreateCustomerInBulk?reqUserId=' + vm.userId,\r\n vm.customers, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Customers are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n } \r\n }\r\n\r\n vm.getTickets = function() {\r\n $http.get(ApiURL + '/api/' + vm.userId + '/Template', {headers: {'Token': token,'UserId': vm.userId}})\r\n .success(function (data) {\r\n vm.tickets=[{TemplateId:1, TemplateName:'Select Template'}];\r\n angular.forEach(data, function(d){\r\n console.log(d.TemplateId, d.TemplateName);\r\n vm.tickets.push({TemplateId:d.TemplateId, TemplateName:d.TemplateName});\r\n })\r\n vm.selectedTicket = vm.tickets[0];\r\n });\r\n\r\n }\r\n vm.getTickets();\r\n});\nangular.module('inspinia').controller('BulkUploadCustomerController', function ($stateParams, toaster, \r\n $http, DTOptionsBuilder, $localStorage, $location, $timeout, DTColumnDefBuilder, $rootScope, $log, \r\n ngProgressFactory, $q, $anchorScroll, ApiURL, CMSToken, CMSURL, CMSAminToken) {\r\n var vm = this;\r\n vm.userId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.showErrors = false;\r\n vm.showSuccess = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.customers = [];\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n vm.tickets = [];\r\n vm.selectedTicket = \"\";\r\n vm.templateUrl = ApiURL+'/api/Template/';\r\n\r\n var verifyBulkPost = ApiURL+\"/api/BulkUpload/BulkUploadCustomers?reqUserId={userId}\";\r\n var addBulkPost = ApiURL+\"/api/Customer/CreateCustomerInBulk?reqUserId={userId}\";\r\n\r\n if (!vm.userId) {\r\n $location.path('/Login');\r\n }\r\n\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withButtons([])\r\n .withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20])\r\n .withOption('order', []);;\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs1 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(8).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs2 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(10).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(11).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs3 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.users = [];\r\n vm.customers = [];\r\n vm.tickets = [];\r\n vm.cms = [];\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n var url = verifyBulkPost.replace(\"{userId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, \"Token\":token,'UserId': vm.userId },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n vm.customers = data.Customers;\r\n if(data.CustomerErrors.length==0 && data.CustomerLocationErrors.length==0 \r\n && data.CustomerContactErrors.length==0 && data.AssetErrors.length == 0){\r\n vm.customers = data.Customers;\r\n vm.showSuccess = true;\r\n\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = \"Customer data is validated successfully. Please click on start upload button to proceed.\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n } else {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.TotalErrorCounts = data.CustomerErrors.length + data.CustomerLocationErrors.length + data.CustomerContactErrors.length;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.TotalErrorCounts + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n if(data.CustomerErrors.length>0){\r\n vm.Customers = data.CustomerErrors;\r\n // vm.Customers = {};\r\n // angular.forEach(data.CustomerErrors, function(err){\r\n // vm.Customers[(err.Row-1)] = data.CustomerErrors[(err.Row-1)];\r\n // vm.Customers[(err.Row-1)].ItemErrors = err.ItemErrors;\r\n // });\r\n }\r\n if(data.CustomerLocationErrors.length>0){\r\n vm.CustomerLocations = data.CustomerLocationErrors;\r\n // vm.CustomerLocations = {};\r\n // angular.forEach(data.CustomerLocationErrors, function(err){\r\n // vm.CustomerLocations = \r\n // vm.CustomerLocations[(err.Row-1)].ItemErrors = err.ItemErrors;\r\n // });\r\n }\r\n if(data.CustomerContactErrors.length>0){\r\n vm.CustomerContacts = data.CustomerContactErrors;\r\n // vm.CustomerContacts = {};\r\n // angular.forEach(data.CustomerContactErrors, function(err){\r\n // vm.CustomerContacts[(err.Row-1)] = data.CustomerContactErrors[(err.Row-1)];\r\n // vm.CustomerContacts[(err.Row-1)].ItemErrors = err.ItemErrors;\r\n // });\r\n }\r\n if(data.AssetErrors.length > 0)\r\n {\r\n vm.AssetErrors = data.AssetErrors;\r\n }\r\n // if (data.rowErrors.length > 0) {\r\n // vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n // ];\r\n // angular.forEach(data.Errors, function (v, k) {\r\n\r\n // if (v.ItemErrors.length > 0) {\r\n // e1 = vm.customers[v.Row];\r\n // angular.forEach(v.ItemErrors, function (v1, k1) {\r\n // e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n // });\r\n // }\r\n // });\r\n // }\r\n }\r\n })\r\n .error(function (errorMessage) {\r\n // vm.showSuccess = true;\r\n // $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n // vm.progressbar.complete();\r\n // vm.successTitle = \"Validation of records failed\";\r\n // vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n // $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n // vm.progressbar.complete();\r\n $scope.$parent.$parent.main.showFailure(\"Failed\", \"Unable to upload document, technical error. Please contact to administrator\");\r\n });\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.dtInstance = {};\r\n vm.dtInstance1 = {};\r\n vm.dtInstance2 = {};\r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n vm.dtInstance1.DataTable.search(vm.searchText).draw();\r\n vm.dtInstance2.DataTable.search(vm.searchText).draw();\r\n };\r\n\r\n format = function(n){\r\n var childData = '';\r\n angular.forEach(n.ItemErrors, function(d, i){\r\n $log.log(d, i);\r\n childData += ''+\r\n ''+\r\n ''+\r\n ''+\r\n ''+\r\n '';\r\n })\r\n\r\n childData += '
Column Name:'+d.Name+'Error:'+d.Message+'
';\r\n return childData;\r\n }\r\n // format = function(ticket){\r\n // return ''+\r\n // ''+\r\n // ''+\r\n // ''+\r\n // ''+\r\n // '
Location:Sample value
';\r\n // }\r\n\r\n vm.showError = function(dtInstance, $event, n){\r\n var tr = angular.element($event.currentTarget).closest(\"tr\");\r\n var row = dtInstance.DataTable.row( tr );\r\n if ( row.child.isShown() ) {\r\n // This row is already open - close it\r\n row.child.hide();\r\n tr.removeClass('shown');\r\n } else {\r\n // Open this row\r\n row.child( format(n) ).show();\r\n tr.addClass('shown');\r\n }\r\n }\r\n\r\n vm.addFiles = function () {\r\n $(\"#dropzone1\").trigger(\"click\");\r\n }\r\n\r\n vm.uploadFile = function () {\r\n if (vm.customers && vm.customers.length > 0) {\r\n\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n $http.post(ApiURL + '/api/Customer/CreateCustomerInBulk?reqUserId=' + vm.userId,\r\n vm.customers, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Customers are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n } \r\n }\r\n\r\n vm.getTickets = function() {\r\n $http.get(ApiURL + '/api/' + vm.userId + '/Template', {headers: {'Token': token,'UserId': vm.userId}})\r\n .success(function (data) {\r\n vm.tickets=[{TemplateId:1, TemplateName:'Select Template'}];\r\n angular.forEach(data, function(d){\r\n console.log(d.TemplateId, d.TemplateName);\r\n vm.tickets.push({TemplateId:d.TemplateId, TemplateName:d.TemplateName});\r\n })\r\n vm.selectedTicket = vm.tickets[0];\r\n });\r\n\r\n }\r\n vm.getTickets();\r\n});\nangular.module('inspinia').controller('bulkuploadCRMTeamMemberController', function ($stateParams, $scope, toaster, \r\n $http, DTOptionsBuilder, $localStorage, $location, $timeout, DTColumnDefBuilder, $rootScope,\r\n ngProgressFactory, $q, ApiURL,AcessoriesURL) {\r\n var vm = this;\r\n vm.userId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.showErrors = false;\r\n vm.showSuccess = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.MasterInventory = [];\r\n vm.Errors = [];\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n\r\n var verifyBulkPost = ApiURL+\"/api/BulkUpload/MediaUpload?reqUserId={userId}&action=Create\";\r\n var addBulkPost = AcessoriesURL+\"/api/MMFMasterInventory/CreateNewPartInBulk\";\r\n\r\n if (!vm.userId) {\r\n $location.path('/Login');\r\n }\r\n\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withButtons([])\r\n .withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20])\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs1 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs2 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n var url = verifyBulkPost.replace(\"{userId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, \"Token\":token,'UserId': vm.userId },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n vm.MasterInventory = data.MasterItemModel;\r\n if(data.Errors.length > 0)\r\n {\r\n vm.Errors = data.Errors;\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + data.Errors.length + \" errors. To see them click here\";\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n }\r\n else\r\n {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = \"Inventory data validated successfully. Total \" + vm.MasterInventory.length + \" found. Please click on Upload button to proceed.\";\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n } \r\n })\r\n .error(function (errorMessage) {\r\n $scope.$parent.$parent.main.showFailure(\"Failed\", \"Unable to upload document, technical error. Please contact to administrator\");\r\n });\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.uploadFile = function () {\r\n if (vm.MasterInventory && vm.MasterInventory.length > 0) {\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n $http.post(addBulkPost,\r\n vm.MasterInventory, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Master Inventory are uploaded in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n } \r\n }\r\n\r\n\r\n});\nangular.module('inspinia').controller('BulkUploadCMSController', function ($stateParams, toaster, $http, DTOptionsBuilder, $localStorage, $location, $timeout, DTColumnDefBuilder, $rootScope, ngProgressFactory, $q, $anchorScroll, ApiURL, CMSToken, CMSURL, CMSAminToken) {\r\n var vm = this;\r\n vm.userId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.showErrors = false;\r\n vm.showSuccess = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.users = [];\r\n vm.customers = [];\r\n vm.tickets = [];\r\n vm.cms = [];\r\n vm.bulkuploadType = \"cms\";\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n vm.tickets = [];\r\n vm.selectedTicket = \"\";\r\n vm.templateUrl = ApiURL+'/api/Template/';\r\n\r\n var verifyBulkPost = CMSURL+\"/post/{accountId}/verifyBulkPost\";\r\n var addBulkPost = CMSURL+\"/post/{accountId}/{userId}/addBulkPost\";\r\n\r\n if (!vm.userId) {\r\n $location.path('/Login');\r\n } else if (!vm.bulkuploadType || vm.bulkuploadType.length == 0) {\r\n $location.path('/index/TeamMember');\r\n }\r\n\r\n if (vm.bulkuploadType == 'cms') {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.zip',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n } else {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n }\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers').withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20]);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.users = [];\r\n vm.customers = [];\r\n vm.tickets = [];\r\n vm.cms = [];\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n if (vm.bulkuploadType != 'cms') {\r\n $http.post(ApiURL + '/api/BulkUpload/MediaUpload?reqUserId=' + vm.userId, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'Token': token },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n if (vm.bulkuploadType == 'user') {\r\n vm.users = data.Users;\r\n vm.noOfRecords = data.Users ? data.Users.length : 0;\r\n } else if (vm.bulkuploadType == 'customer') {\r\n vm.customers = data.Customers;\r\n vm.noOfRecords = data.Customers ? data.Customers.length : 0;\r\n } else if (vm.bulkuploadType == 'ticket') {\r\n vm.tickets = data.Tickets;\r\n vm.noOfRecords = data.Tickets ? data.Tickets.length : 0;\r\n }\r\n\r\n $(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n if (data.Errors.length > 0) {\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.Errors, function (v, k) {\r\n\r\n if (v.ItemErrors.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.ItemErrors, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n });\r\n if (v.Row > 0 && data.Users && data.Users.length > 0 && data.Users.length >= v.Row) {\r\n e1.data = data.Users[v.Row - 1];\r\n } if (v.Row > 0 && data.Tickets && data.Tickets.length > 0 && data.Tickets.length >= v.Row) {\r\n e1.data = data.Tickets[v.Row - 1];\r\n } if (v.Row > 0 && data.Customers && data.Customers.length > 0 && data.Customers.length >= v.Row) {\r\n e1.data = data.Customers[v.Row - 1];\r\n }\r\n vm.errorList.push(e1);\r\n }\r\n });\r\n\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.ErrorCode == 103) {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Missing columns in excel file\";\r\n vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.Message && data.Message.length>0) {\r\n\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Validation failed\";\r\n vm.successMsg = data.Message\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\r\n } else {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are validated successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found. Please click on start upload button to proceed.\";\r\n // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n $(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n });\r\n } else {\r\n var url = verifyBulkPost.replace(\"{accountId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n if(data.errorCode==0 && data.result && data.result.success && data.result.success.length>0){\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = \"CMS content is validated successfully. Please click on start upload button to proceed.\";\r\n // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n\r\n } else if(data.validationFlag==false && data.rowErrors){\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + data.rowErrors.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n if (data.rowErrors.length > 0) {\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.rowErrors, function (v, k) {\r\n\r\n if (v.error.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.error, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1 : v1;\r\n });\r\n e1.data=JSON.parse(v.content); \r\n vm.errorList.push(e1);\r\n }\r\n });\r\n }\r\n } else {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = data.error+\". Please correct the data and re-upload file.\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n }\r\n })\r\n .error(function (errorMessage) {\r\n vm.showSuccess = true;\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n }\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.addFiles = function () {\r\n $(\"#dropzone1\").trigger(\"click\");\r\n }\r\n\r\n vm.uploadFile = function () {\r\n if (vm.users && vm.users.length > 0) {\r\n\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n $http.post(ApiURL + '/api/User/' + vm.userId + '/UploadUsers',\r\n vm.users, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Users are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n\r\n } else if (vm.tickets && vm.tickets.length > 0) {\r\n\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n $http.post(ApiURL + '/api/Ticket/{TicketRequestModels}/' + vm.userId + '/UploadTickets',\r\n vm.tickets, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Jobs are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n\r\n } else if (vm.customers && vm.customers.length > 0) {\r\n\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n $http.post(ApiURL + '/api/Customer/{objCustomerRequestModels}/' + vm.userId + '/UploadCustomers',\r\n vm.customers, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Customers are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n } else if (vm.bulkuploadType == 'cms') {\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n\r\n var fd = new FormData();\r\n fd.append('file', vm.file);\r\n \r\n var url = addBulkPost.replace(\"{accountId}\", vm.userId).replace(\"{userId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'Token': token }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n if (data.errorCode > 0) {\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = data.error;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n\r\n } else if (data.result && data.result.success) {\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Products are created in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n } else {\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = \"Technical problem\";\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n }\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n }\r\n }\r\n\r\n vm.getTickets = function() {\r\n $http.get(ApiURL + '/api/' + vm.userId + '/Template', {\r\n headers: {'Token': token}\r\n })\r\n .success(function (data) {\r\n vm.tickets=[{TemplateId:1, TemplateName:'Select Template'}];\r\n angular.forEach(data, function(d){\r\n console.log(d.TemplateId, d.TemplateName);\r\n vm.tickets.push({TemplateId:d.TemplateId, TemplateName:d.TemplateName});\r\n })\r\n vm.selectedTicket = vm.tickets[0];\r\n });\r\n\r\n }\r\n vm.getTickets();\r\n});\nangular.module('inspinia').controller('bulkCallBookingController', function ($stateParams, $scope, toaster, \r\n $http, DTOptionsBuilder, $localStorage, $location, $timeout, DTColumnDefBuilder, $rootScope,\r\n ngProgressFactory, $q, ApiURL,MMFCRMURL,AcessoriesURL) {\r\n var vm = this;\r\n vm.userId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.showErrors = false;\r\n vm.showSuccess = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.BulkCallBooking = [];\r\n vm.Errors = [];\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n\r\n var verifyBulkPost = ApiURL+\"/api/BulkUpload/MediaUpload?reqUserId={userId}&action=Create\";\r\n var addBulkPost = MMFCRMURL+\"/api/CRMConsumer/CreateTicketInBulk\";\r\n\r\n if (!vm.userId) {\r\n $location.path('/Login');\r\n }\r\n\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withButtons([])\r\n .withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20])\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs1 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs2 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n var url = verifyBulkPost.replace(\"{userId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, \"Token\":token,'UserId': vm.userId },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n vm.BulkCallBooking = data.TicketModel;\r\n if(data.Errors.length > 0)\r\n {\r\n vm.Errors = data.Errors;\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + data.Errors.length + \" errors. To see them click here\";\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n }\r\n else\r\n {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = \"Call Booking data validated successfully. Total \" + vm.BulkCallBooking.length + \" found. Please click on Upload button to proceed.\";\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n } \r\n })\r\n .error(function (errorMessage) {\r\n $scope.$parent.$parent.main.showFailure(\"Failed\", \"Unable to upload document, technical error. Please contact to administrator\");\r\n });\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.uploadFile = function () {\r\n if (vm.BulkCallBooking && vm.BulkCallBooking.length > 0) {\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.disableUploadButton = true;\r\n $http.post(addBulkPost, vm.BulkCallBooking, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': vm.userId } })\r\n .then(function (response) {\r\n if (response.status === 200 && response) {\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Completed\";\r\n vm.successMsg = \"Call Booking Data has been uploaded successfully.\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n } else {\r\n const errorMsg = response.data || \"An error occurred while uploading the data.\";\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMsg;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.disableUploadButton = false;\r\n vm.progressbar.complete();\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n});\nangular.module('inspinia').controller('bulkUploadUpdateOrderController', function ($stateParams, $scope, toaster, \r\n $http, DTOptionsBuilder, $localStorage, $location, $timeout, DTColumnDefBuilder, $rootScope,\r\n ngProgressFactory, $q, ApiURL,AcessoriesURL) {\r\n var vm = this;\r\n vm.userId = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.showErrors = false;\r\n vm.showSuccess = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.BulkUpdateOrder = [];\r\n vm.Errors = [];\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n\r\n var verifyBulkPost = ApiURL+\"/api/BulkUpload/MediaUpload?reqUserId={userId}&action=Create\";\r\n var addBulkPost = AcessoriesURL+\"/api/MMFOrder/BulkUploadofOrderListForKenstar\";\r\n\r\n if (!vm.userId) {\r\n $location.path('/Login');\r\n }\r\n\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withButtons([])\r\n .withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20])\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs1 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.dtColumnDefs2 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n var url = verifyBulkPost.replace(\"{userId}\", vm.userId);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, \"Token\":token,'UserId': vm.userId },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n vm.BulkUpdateOrder = data.AllOrdersModel;\r\n if(data.Errors.length > 0)\r\n {\r\n vm.Errors = data.Errors;\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + data.Errors.length + \" errors. To see them click here\";\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n }\r\n else\r\n {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = \"Update Order data validated successfully. Total \" + vm.BulkUpdateOrder.length + \" found. Please click on Upload button to proceed.\";\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n } \r\n })\r\n .error(function (errorMessage) {\r\n $scope.$parent.$parent.main.showFailure(\"Failed\", \"Unable to upload document, technical error. Please contact to administrator\");\r\n });\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.uploadFile = function () {\r\n if (vm.BulkUpdateOrder && vm.BulkUpdateOrder.length > 0) {\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.disableUploadButton = true;\r\n $http.post(addBulkPost,\r\n vm.BulkUpdateOrder, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': vm.userId }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = data.Message || \"Update Order are uploaded in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.showSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.disableUploadButton = false;\r\n vm.progressbar.complete();\r\n });\r\n } \r\n }\r\n\r\n\r\n});\nangular.module('inspinia').service('WrongProductReceivedOrdersService', function (AcessoriesURL, ApiURL, $window, $http) {\r\n\r\n this.GetAllWareHouse = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllWareHouse';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetDamgedPrdouctDetailList = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/GetDamgedPrdouctDetailList';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetDamgedPrdouctDetailList_CSV = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/GetDamgedPrdouctDetailList_CSV';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetProductDetailDashboardByFilter = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/GetProductDetailDashboardByFilter';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.DispatchedProductToWareHouse = function (data, file, FileName, loggedinUser, token) {\r\n var formdata = new FormData();\r\n formdata.append(FileName, file);\r\n var FiltersData = JSON.stringify(data);\r\n formdata.append(\"FiltersData\", FiltersData);\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/DispatchedProductToWareHouse';\r\n return $http.put(url, formdata, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GenerateProductPdfChallan = function (loggedinUser, token, ProductId) {\r\n var url = ApiURL + '/api/Report/GenerateProductPdfChallan?ProductId=' + ProductId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n}\r\n\r\n this.OrderAcceptedMark = function (productId, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/OrderAcceptedMark?MMFProductId=' + productId;\r\n return $http.post(url, null, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('WrongProductReceivedOrdersController', function (WrongProductReceivedOrdersService,ProductReplacementOrdersService, MainService, $window, $stateParams, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\t// var warehouseId = $stateParams.warehouseId;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvar oPageIndex = 1;\r\n\t\tvar oPageSize = 10;\r\n\t\tvm.allOrdersPageListCount = 10;\r\n\t\tvm.allInventoryPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.UserId = '';\r\n\t\tvm.productImg = [];\r\n\t\tvm.invoiceImg = [];\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\t$scope.dates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t\t};\r\n\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t};\r\n\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t$scope.TicketTablepagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\t\tvm.GetAllWareHouse = function () {\r\n\t\t\tWrongProductReceivedOrdersService.GetAllWareHouse(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.warehouseitemlist = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllWareHouse();\r\n\t\tvm.OpenResubmitReplaceModel = function (resubmitreplacedetails) {\r\n\t\t\tvm.resubmitReplacementId = resubmitreplacedetails;\r\n\t\t\tResubmitReplaceModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Resubmit.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeResubmitRequestUpdateModel = function () {\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tResubmitReplaceModel.close();\r\n\t\t\tvm.resubmitstrReplacementComment = '';\r\n\t\t\tvm.resubmitReplacementId = '';\r\n\t\t}\r\n\t\tvm.ResubmitProductReplacementRequest = function () {\r\n\t\t\tvm.Resubmit_Form.submitted = true;\r\n\t\t\tif (vm.Resubmit_Form.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar resubmitreplacementreasondata = {\r\n\t\t\t\t\t\"strProductReplacementId\": vm.resubmitReplacementId,\r\n\t\t\t\t\t\"strReplacementComment\": vm.resubmitstrReplacementComment,\r\n\t\t\t\t\t\"strReplacementReason\": vm.resubmitrelacementoption,\r\n\t\t\t\t}\r\n\t\t\t\tWrongProductReceivedOrdersService.ResubmitProductReplacementRequest(resubmitreplacementreasondata, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Product replacement request raised.\");\r\n\t\t\t\t\t\tvm.closeResubmitRequestUpdateModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetDamgedPrdouctDetailList();\r\n\t\t\t\t\t\t\tvm.GetProductDetailDashboardByFilter();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.OpenRequestUpdateModel = function (requestId) {\r\n\t\t\tvm.requestIdTobeReturn = requestId;\r\n\t\t\tRequestUpdateModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ReturnProductModel.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeRequestUpdateModel = function () {\r\n\t\t\tRequestUpdateModel.close();\r\n\t\t\tvm.FileName = \"\";\r\n\t\t\tvm.FilesDoc = \"\";\r\n\t\t\tvm.PackageDetails = \"\";\r\n\t\t\tvm.TrackingLink = \"\";\r\n\t\t\tvm.requestIdTobeReturn = \"\";\r\n\t\t\tvm.strPackageId = \"\";\r\n\t\t\tvm.strPackageTrackingId = \"\";\r\n\t\t\tvm.strShipmentId = \"\";\r\n\t\t\tvm.PackageDetails = [];\r\n\t\t\tvm.disableCreateButton = false;\r\n\t\t}\r\n\r\n\t\t$scope.uploadImageForNotice = function (files) {\r\n\t\t\tvm.FileName = \"\";\r\n\t\t\tvm.FilesDoc = files.files[0];\r\n\t\t\tvm.FileName = vm.FilesDoc.name;\r\n\t\t\tvm.FileSize = vm.FilesDoc.size;\r\n\r\n\t\t\tvar allowedExtensions = /(\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png|\\.JFIF|\\.jfif|\\.PDF|\\.pdf|\\.DOC|\\.doc|\\.DOCX|\\.docx)$/i;\r\n\r\n\t\t\tif (!allowedExtensions.exec(vm.FileName)) {\r\n\t\t\t\tvm.FilesDoc = [];\r\n\t\t\t\tvm.clear();\r\n\t\t\t\talert('Please upload a file with extensions .jpg, .jpeg, .png, .jfif, .pdf, .doc, or .docx only.');\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Function to clear the file input\r\n\t\tvm.clear = function () {\r\n\t\t\tangular.element(\"input[type='file']\").val(null);\r\n\t\t};\r\n\r\n\t\t$scope.checkPDF = function (path) {\r\n\t\t\tif (path) {\r\n\t\t\t\tvar pt = path.substr(path.length - 4);\r\n\t\t\t\tif (pt == '.pdf') {\r\n\t\t\t\t\tvm.error = function () {\r\n\t\t\t\t\t\t$(\".pdf\").attr({ \"target\": \"_blank\" })\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.trackingStatus = false;\r\n\r\n\t\tvm.GetProductReplacementDetails = function (replacementId) {\r\n\t\t\tProductReplacementOrdersService.GetProductReplacementDetails(replacementId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.trackingDetails = resp.data;\r\n\t\t\t\t\tvm.activitytimeline = resp.data.listApprovalTrail;\r\n\t\t\t\t\tvm.trackingStatus = true;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.PDFView = function () {\r\n\t\t\tvm.pdfimage = \"\";\r\n\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\tvm.taxInvoiceModel = $uibModal.open({\r\n\t\t\t templateUrl: \"PDFView.html\",\r\n\t\t\t size: \"lg\",\r\n\t\t\t scope: $scope,\r\n\t\t\t});\r\n\t\t };\r\n\r\n\t\tvm.PDFViewOfReturnChallanDoc = function (ProductId) {\r\n\t\t\tvm.PDFView();\r\n\t\t\tWrongProductReceivedOrdersService.GenerateProductPdfChallan(loggedinUser, token, ProductId).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.pdfimage = resp.data;\r\n\t\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.PDFViewOfShipmentDoc = function (page) {\r\n\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, page).then(function (resp) {\r\n\t\t\t\tvm.pdfimage = resp.data;\r\n\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t});\r\n\t\t\t$timeout(function () {\r\n\t\t\t\tvm.taxInvoiceModel = $uibModal.open({\r\n\t\t\t\t\ttemplateUrl: \"PDFView.html\",\r\n\t\t\t\t\tsize: \"lg\",\r\n\t\t\t\t\tscope: $scope,\r\n\t\t\t\t});\r\n\t\t\t}, 1000);\r\n\t\t}\r\n\r\n\t\tvm.PDFUserModal = function () {\r\n\t\t\tvm.taxInvoiceModel.close();\r\n\t\t}\r\n\t\t\r\n\t\r\n\t\t\r\n\t\tvm.ImageViewOfShipmentDoc = function (img, index) {\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\t\tif (resp.data == null || resp.data == '') {\r\n\t\t\t\t\tvm.productImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.productImg[index] = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.productImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.ImageViewOfInvoice = function (img, index) {\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\t\tif (resp.data == null || resp.data == '') {\r\n\t\t\t\t\tvm.invoiceImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.invoiceImg[index] = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.invoiceImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.ActionToBeTaken = '';\r\n\t\tvm.DispatchedProductToWareHouse = function () {\r\n\t\t\tvm.Request_Update_Form.submitted = true;\r\n\t\t\tif (vm.Request_Update_Form.$valid) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t\tvm.PackageDetails = [{\r\n\t\t\t\t\t\"strPackageId\": vm.strPackageId,\r\n\t\t\t\t\t\"strPackageStatus\": \"Shipped\",\r\n\t\t\t\t\t\"strPackageTrackingId\": vm.strPackageTrackingId,\r\n\t\t\t\t\t\"strShipmentId\": vm.strShipmentId,\r\n\t\t\t\t\t\"datePackedOn\": moment().format(\"YYYY-MM-DD\")\r\n\t\t\t\t}]\r\n\t\t\t\tvar RequestModel = {\r\n\t\t\t\t\t\"ProductId\": vm.requestIdTobeReturn,\r\n\t\t\t\t\t\"TrackingLink\": vm.TrackingLink,\r\n\t\t\t\t\t\"PackageDetails\": vm.PackageDetails,\r\n\t\t\t\t\t\"PackageAttachment\": vm.FileName\r\n\t\t\t\t}\r\n\t\t\t\tWrongProductReceivedOrdersService.DispatchedProductToWareHouse(RequestModel, vm.FilesDoc, vm.FileName, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Request updated successfully\");\r\n\t\t\t\t\t\tvm.closeRequestUpdateModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetDamgedPrdouctDetailList();\r\n\t\t\t\t\t\t\tvm.GetProductDetailDashboardByFilter();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t\tvm.disableCreateButton = false;\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\t\t}\r\n\t\t$scope.openTrackingLink = function (trackingLink) {\r\n\t\t\t$window.open(trackingLink, '_blank');\r\n\t\t};\r\n\r\n\r\n\t\t$scope.totalInvList = 0;\r\n\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t$scope.InventoryPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\r\n\t\tvm.changeAllInventoryPageListCount = function () {\r\n\t\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t\tPageSize = $scope.inventoryPerPage;\r\n\t\t\t$scope.AllInventoryTablePageChanged($scope.InventoryPagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\t\tPageIndex = newPage;\r\n\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\tPageIndex = newPage;\r\n\t\t\tvm.GetDamgedPrdouctDetailList();\r\n\r\n\t\t};\r\n\t\tvm.SearchText = '';\r\n\t\tvm.warehouselist = \"\";\r\n\t\tvm.warehouseInvetoryList = [];\r\n\r\n\r\n\t\tvm.clearFilter = function () {\r\n\t\t\tvm.SearchText = '';\r\n\t\t\tvm.warehouselist = '';\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\t\tvm.IsWarehouseAlreadySelected = false;\r\n\r\n\t\tvm.addCartMoreModal = function (partData) {\r\n\t\t\tvm.IsWarehouseAlreadySelected = false;\r\n\t\t\tvm.partId = partData.strMMFPartId;\r\n\t\t\tvm.partSKUId = partData.strSKUId;\r\n\t\t\tvm.partName = partData.strPartName;\r\n\t\t\tif (vm.warehouselist != '') {\r\n\t\t\t\tvm.IsWarehouseAlreadySelected = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.IsWarehouseAlreadySelected = false;\r\n\t\t\t\tvm.GetWareHouseByPartId(vm.partId);\r\n\t\t\t}\r\n\t\t\tvm.openAddToCartModal();\r\n\r\n\t\t}\r\n\t\tvm.GetProductDetailDashboardByFilter = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"OrderStatus\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"DateField\": \"CreatedOn\",\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize,\r\n\t\t\t\t\"BrandName\": \"\",\r\n\t\t\t\t\"ProductName\": \"\",\r\n\t\t\t\t\"OrderBy\": \"\",\r\n\t\t\t\t\"SortType\": \"\",\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"OrderId\": \"\",\r\n\t\t\t\t\"DamagedType\": \"\"\r\n\t\t\t}\r\n\t\t\tWrongProductReceivedOrdersService.GetProductDetailDashboardByFilter(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.orderDashboardCount = resp.data\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetProductDetailDashboardByFilter();\r\n\t\r\n\r\n\t\tvm.applyOrderFilter = function () {\r\n\t\t\tvm.GetDamgedPrdouctDetailList();\r\n\t\t\tvm.GetProductDetailDashboardByFilter();\r\n\t\t}\r\n\t\tvm.SelectedOrderStatus = '';\r\n\r\n\t\tvm.setSelectedFilter = function (item) {\r\n\t\t\tvm.SelectedOrderStatus = item;\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t};\r\n\r\n\t\tvm.OpenOrderAcceptConfirmation = function (productId) {\r\n\t\t\tvm.productId = productId;\r\n\t\t\tAcceptOrderModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'acceptOrder.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeOrderAcceptConfirmation = function () {\r\n\t\t\tAcceptOrderModel.close();\r\n\t\t\tvm.productId = \"\";\r\n\t\t}\r\n\r\n\t\tvm.OrderAcceptedMark = function () {\r\n\t\t\tWrongProductReceivedOrdersService.OrderAcceptedMark(vm.productId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Product accepted successfully.\");\r\n\t\t\t\t\tvm.closeOrderAcceptConfirmation();\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetDamgedPrdouctDetailList();\r\n\t\t\t\t\t\tvm.GetProductDetailDashboardByFilter();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t$scope.totalOrderList = 0;\r\n\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t$scope.OrdersPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllOrderPageListCount = function () {\r\n\t\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t\toPageSize = $scope.ordersPerPage;\r\n\t\t\t$scope.AllOrderTablePageChanged($scope.OrdersPagination.current);\r\n\t\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\t\toPageIndex = newPage;\r\n\t\t\t\tvm.GetDamgedPrdouctDetailList();\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\toPageIndex = newPage;\r\n\t\t\tvm.GetDamgedPrdouctDetailList();\r\n\r\n\t\t};\r\n\t\tvm.orderInvetoryList = [];\r\n\r\n\t\tvm.GetDamgedPrdouctDetailList = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"OrderStatus\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"DateField\": \"CreatedOn\",\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize,\r\n\t\t\t\t\"BrandName\": \"\",\r\n\t\t\t\t\"ProductName\": \"\",\r\n\t\t\t\t\"OrderBy\": \"\",\r\n\t\t\t\t\"SortType\": \"\",\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"OrderId\": \"\",\r\n\t\t\t\t\"DamagedType\": \"\"\r\n\t\t\t}\r\n\t\t\tWrongProductReceivedOrdersService.GetDamgedPrdouctDetailList(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.orderInvetoryList = resp.data.productDetails;\r\n\t\t\t\t\t$scope.totalOrderList = resp.data.Count;\r\n\t\t\t\t\tvm.productImg = [];\r\n\t\t\t\t\tvm.invoiceImg - [];\r\n\t\t\t\t\tfor (var i = 0; i < vm.orderInvetoryList.length; i++) {\r\n\t\t\t\t\t\tvar item = vm.orderInvetoryList[i];\r\n\t\t\t\t\t\tvm.ImageViewOfShipmentDoc(item.DamgedAttachment, i);\r\n\t\t\t\t\t\tvm.ImageViewOfInvoice(item.InvoiceImage, i);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (vm.orderInvetoryList.length < vm.allOrdersPageListCount)\r\n\t\t\t\t\t\tvm.orderListLength = $scope.totalOrderList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.orderListLength = oPageIndex * vm.allOrdersPageListCount;\r\n\t\t\t\t\tif (oPageIndex == 1)\r\n\t\t\t\t\t\tvm.opageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.opageindexCount = (((oPageIndex - 1) * vm.allOrdersPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetDamgedPrdouctDetailList();\r\n\r\n\t\tvm.OpenTicketView = function (ticket) {\r\n\t\t\t$state.go('index.JobDetailView', {\r\n\t\t\t\tticketId: ticket\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\t\t\r\n\t\tvm.clearWrongProductListFilter = function () {\r\n\t\t\tvm.SelectedOrderStatus = '';\r\n\t\t\tvm.searchTag = '';\r\n\t\t\toPageIndex = 1;\r\n\t\t\tstartDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t}\r\n\r\n\r\n\t\tvm.GetDamgedPrdouctDetailList_CSV = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"OrderStatus\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"DateField\": \"CreatedOn\",\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize,\r\n\t\t\t\t\"BrandName\": \"\",\r\n\t\t\t\t\"ProductName\": \"\",\r\n\t\t\t\t\"OrderBy\": \"\",\r\n\t\t\t\t\"SortType\": \"\",\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"OrderId\": \"\",\r\n\t\t\t\t\"DamagedType\": \"\"\r\n\r\n\r\n\t\t\t}\r\n\t\t\tWrongProductReceivedOrdersService.GetDamgedPrdouctDetailList_CSV(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvar csvData = resp.data;\r\n\t\t\t\t\tvar blob = new Blob([csvData], { type: 'text/csv' });\r\n\t\t\t\t\tvar url = window.URL.createObjectURL(blob);\r\n\t\t\t\t\tvar a = document.createElement('a');\r\n\t\t\t\t\ta.href = url;\r\n\t\t\t\t\ta.download = 'All_Wrong_Product_Orders_List.csv';\r\n\t\t\t\t\ta.click();\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.Acceptancemodel = function (requestDetails) {\r\n\t\t\tvm.showPartDetails = false;\r\n\t\t\tvm.AllRequestDetail = requestDetails;\r\n\t\t\tvm.updateStatusModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'acceptancepopup.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseAcceptanceModel = function () {\r\n\t\t\tvm.updateStatusModelOpen.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.UpdateOrderStatus = \"\";\r\n\t\t\tvm.TrackingLink = \"\";\r\n\t\t\tvm.strPackageId = \"\";\r\n\t\t\tvm.strPackageStatus = \"\";\r\n\t\t\tvm.strPackageTrackingId = \"\";\r\n\t\t\tvm.strShipmentId = \"\";\r\n\t\t\tvm.PackageDetails = [];\r\n\t\t\tvm.datePackedOn = moment().format(\"YYYY-MM-DD\");\r\n\t\t}\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('WareHouseOrderDetailViewService', function (ApiURL, AcessoriesURL, $window, $localStorage, $http) {\r\n\r\n // var vm = this;\r\n // vm.setShowSuccess = function (success) {\r\n // vm.showSuccess = success;\r\n // }\r\n\r\n // vm.setShowFailure = function (failure) {\r\n // vm.showFailure = failure;\r\n // }\r\n\r\n // this.GetUserAllSalesOrderDetail = function (orderStatus, token) {\r\n // var url = ApiURL + '/api/ZohoInventoryController/GetUserAllSalesOrderDetail?OrderStatus=' + orderStatus;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n // }\r\n // });\r\n // }\r\n\r\n // this.GetSalesOrdetailByTicketId = function (ticketId,token) {\r\n // var url = ApiURL + '/api/ZohoInventoryController/GetSalesOrdetailByTicketId?ZOHOSalesOrderId=' + ticketId;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n // }\r\n // });\r\n // }\r\n this.GetSalesOrdetailByTicketId = function (orderId,token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/GetByOrderId?OrderId=' + orderId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetShipmentOrder = function (salesOrderNumber,token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetShipmentOrder?salesOrderNumber=' + salesOrderNumber;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetOrderInvoiceByOrderId = function (orderId,token) {\r\n var url = AcessoriesURL + '/api/MMFOrderInvoice/GetOrderInvoiceByOrderId?OrderId=' + orderId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module(\"inspinia\").controller(\"WareHouseOrderDetailViewController\",function (toaster,\r\n MainService,\r\n WareHouseOrderDetailViewService,\r\n ManualAssignationJobService,\r\n $window,\r\n PublicApiURL,\r\n ApiURL,\r\n $state,\r\n $localStorage,\r\n $scope,\r\n JobTicketViewService,\r\n DTOptionsBuilder,\r\n DTColumnBuilder,\r\n $uibModal,\r\n inventorynewService,\r\n jobCreationService,\r\n ReportService,\r\n $filter,\r\n $q,\r\n $timeout,\r\n $sce,\r\n $rootScope,\r\n $stateParams,\r\n $compile,\r\n UIURL,\r\n ImageUrl\r\n ) {\r\n vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm.NokiaTableHeaderChange =\r\n $localStorage.accountConfig.NokiaTableHeaderChange;\r\n var loggedinUserName =\r\n $localStorage.loggedInUser_FirstName +\r\n \" \" +\r\n $localStorage.loggedInUser_LastName;\r\n var token = $localStorage.token;\r\n var loggedinUserImage = $localStorage.picture;\r\n var TicketOrderId = $stateParams.order_id;\r\n vm.SearchTag = \"\";\r\n vm.showMapPermision = false;\r\n vm.superPower = false;\r\n $scope.isCollapsed = true;\r\n vm.UserId = \"\";\r\n vm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.getAccountConfigSetting =\r\n $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.VerticalName = vm.getAccountConfigSetting(\"Vertical\");\r\n var accountConfig = $localStorage.accountConfig;\r\n vm.AccountId = $localStorage.accountConfig.AccountId;\r\n vm.isDefective = false;\r\n vm.ImageArray = [];\r\n vm.states = [];\r\n vm.cities = [];\r\n vm.isShow = true;\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n vm.dataFilters = [];\r\n vm.CancellationReasons = \"\";\r\n vm.IsCommissionDetect = false;\r\n vm.urlForNonFeasible = \"\";\r\n vm.currentStepModel = {};\r\n vm.dtInstanceNearBy = {};\r\n vm.dtInstanceFixed = {};\r\n vm.dtInstance = {};\r\n vm.dtInstancePre = {};\r\n vm.SparePartAddress = {};\r\n vm.disableBroadcastButton = false;\r\n vm.disableRouteButton = false;\r\n vm.IsChatEnabled = true;\r\n vm.showPrefer = \"\";\r\n vm.disabledDrop = false;\r\n vm.showloading = false;\r\n vm.ComplianceDisable = true;\r\n vm.PincodeEnabled = true;\r\n vm.passSerialNum = false;\r\n vm.PrivateDisable = false;\r\n vm.messageText = \"\";\r\n vm.PriceLineItemList = [];\r\n vm.LineItemDataList = [];\r\n vm.serviceType = \"\";\r\n vm.AppointmentTime = \"\";\r\n vm.ticketPrice = \"\";\r\n vm.freelancerPrice = \"\";\r\n vm.tPrice = \"\";\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n vm.freelancerPricetemp = \"\";\r\n vm.LineItemImage = null;\r\n vm.edit = true;\r\n vm.edit1 = false;\r\n // vm.myvalue = false;\r\n vm.BonusPenaltyList = [];\r\n vm.BonusList = [];\r\n vm.PenaltyList = [];\r\n vm.ShipmentDetails = \"\";\r\n vm.LineitemActivityList = [];\r\n vm.LineItemCategoryType = \"\";\r\n vm.projectId = \"\";\r\n vm.selectedprojectId = \"\";\r\n vm.dynamicpricing = \"\";\r\n vm.FreelancrPriceEnable = \"\";\r\n vm.PercentageEnable = \"\";\r\n vm.BasePriceTotal = 0.0;\r\n vm.dFreelancerPriceTotal = 0.0;\r\n vm.PercentageTotal = 0.0;\r\n vm.FreelancerPriceTotal = 0.0;\r\n vm.MobiforceCommission =\r\n $localStorage.accountConfig.MobiforceCommissionPercentage;\r\n vm.IsFinalApproval = false;\r\n vm.disableExceptionButton = false;\r\n vm.StockCountToAssign = 0;\r\n vm.PartActionType = \"\";\r\n vm.feedbackremark = \"\";\r\n vm.PlannedClosureDateType = \"first\";\r\n vm.WithInDays = 1;\r\n vm.WithInDaysNumbers = [1, 2, 3, 4, 5];\r\n vm.IsSafetyAudit = \"Not Done\";\r\n vm.ratingwarning = \"\";\r\n vm.approvalRemark = \"\";\r\n vm.MaterialStatusList = [\r\n \"Dispatched\",\r\n \"Delivered\",\r\n \"Partially Delivered\",\r\n \"Not Delivered\",\r\n ];\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.SelectedMaterial = \"\";\r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n vm.ZOHOWarehouseName = \"\";\r\n vm.customerJobCard = [];\r\n vm.PageIndex = 1;\r\n vm.PageSize = 10;\r\n startDate = \"\";\r\n endDate = \"\";\r\n vm.sortType = \"\";\r\n vm.orderBy = \"\";\r\n vm.itemValue = \"\";\r\n vm.OrderStatus = \"\";\r\n vm.SearchText = \"\";\r\n vm.userPageListCount = 10;\r\n vm.financePageListCount = 10;\r\n vm.defectedPageListCount = 10;\r\n vm.brandName = \"\";\r\n vm.partName = \"\";\r\n vm.productGroup = \"\";\r\n vm.BrandListName = \"\";\r\n vm.allSalesOrderPageListCount = 10;\r\n vm.allHistoryOrderPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var startDate = moment().subtract(7, \"days\").format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.dateField = \"CreatedOn\";\r\n vm.ticketdates = {\r\n startDate: moment().subtract(7, \"day\"),\r\n endDate: moment(),\r\n };\r\n vm.ticketranges = {\r\n Today: [moment(), moment()],\r\n Yesterday: [moment().subtract(1, \"days\"), moment().subtract(1, \"days\")],\r\n \"Last 7 days\": [moment().subtract(7, \"days\"), moment()],\r\n \"Last 30 days\": [moment().subtract(30, \"days\"), moment()],\r\n \"This month\": [moment().startOf(\"month\"), moment().endOf(\"month\")],\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.ApplyFilter();\r\n };\r\n if (accountConfig && accountConfig.EnableRegion) {\r\n vm.EnableRegion = accountConfig.EnableRegion;\r\n } else {\r\n vm.EnableRegion = false;\r\n }\r\n\r\n if (!loggedinUser) {\r\n $state.go(\"Login\", {\r\n reload: true,\r\n });\r\n } else {\r\n var token = $localStorage.token;\r\n vm.ticketType = $stateParams.type;\r\n vm.TicketId = $stateParams.ticketId;\r\n\r\n vm.activeTab = \"Details\";\r\n\r\n vm.activateTab = function (tab) {\r\n vm.activeTab = tab;\r\n };\r\n\r\n vm.Ticketdetailsview = function (ticketId) {\r\n $state.go(\r\n \"index.JobDetailView\",\r\n {\r\n ticketId: ticketId,\r\n },\r\n {\r\n reload: true,\r\n }\r\n );\r\n };\r\n\r\n vm.GetShipmentOrder = function () {\r\n WareHouseOrderDetailViewService.GetShipmentOrder(TicketOrderId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TrackingDetails = resp.data;\r\n }\r\n });\r\n };\r\n vm.GetSalesOrdetailByTicketId = function () {\r\n WareHouseOrderDetailViewService.GetSalesOrdetailByTicketId(TicketOrderId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.Ticketdetails = resp.data;\r\n }\r\n });\r\n };\r\n vm.GetSalesOrdetailByTicketId();\r\n\r\n\t\tvm.GetOrderInvoiceByOrderId = function () {\r\n\t\t\tWareHouseOrderDetailViewService.GetOrderInvoiceByOrderId(TicketOrderId, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.OrderInvoiceDetails = resp.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetOrderInvoiceByOrderId();\r\n\r\n\r\n }\r\n }\r\n );\r\n\nangular.module('inspinia').service('widgetCanvasService', function (ApiURL, $log, $http, DashboardURL, $window, CronUrl, PublicApiURL) {\r\n\r\n vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n vm.getDummyData = function (callback) {\r\n callback(JSON.parse('{\"dashboardName\": \"Account Dashboard\",\"dashboardDescription\": \"This is a Account Dashboard for Admin Role\",\"Role\": \"Administrator\",\"chartModel\": [{\"YAxisRules\": [{\"YAxisRule\": \"COUNT\",}], \"ChartName\": \"JOBS\",\"ChartType\": \"METRICS\",\"ChartId\": \"CH0000001\"\"dashboardId\" : \"d00000001\"\"ChartTitle\": \"Jobs\",\"ChartSubtitle\": \"Job Count\",\"ChartColor\": \"BLACK\",\"XRules\": {\"XAxis\": \"Status(Assigned,Completed,Approved)\"}}]}'));\r\n }\r\n\r\n vm.getDummyTableData = function (callback) {\r\n //$log.log(\"in getDummyTableData\");\r\n callback(JSON.parse('{\"Table\" :{\"ColumnHeaderName\" : \"Location\",\"ColumnHeaderValuesList\" : [\"All Location\", \"Haryana\", \"Delhi\"],\"TableColumns\" : [{\"ColumnName\":\"RFLOS\", \"ValueList\": [\"200/400\", \"20/40\", \"-\"]},{\"ColumnName\":\"IWAN\", \"ValueList\": [\"400/800\", \"-\", \"40/80\"]}]}}'));\r\n }\r\n\r\n vm.getCustomerReport = function (loggedinUser, reportname, token, callback) {\r\n $http.get(DashboardURL+'/api/Report/'+loggedinUser+'/'+reportname+'/GetByReportName', { headers: {'Token': token,'UserId':loggedinUser}}).then(function(res){\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n vm.getChart = function (loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData,total,callback) {\r\n //$log.log(\"in service\", DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP='+rollUp+\"&FilterKeys=\"+filterKeys+\"&FilterValues=\"+filterValues);\r\n $http.get(DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP='+encodeURI(rollUp)+\"&FilterKeys=\"+filterKeys+\"&FilterValues=\"+filterValues+\"&isData=\"+isData+\"&total=\"+total, {headers:{'Token': token,'UserId':loggedinUser}}).then(function (res) {\r\n if (callback) {\r\n res.data['chartName'] = chartName;\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n vm.getUsers = function(loggedinUser, token, callback){\r\n $http.get(ApiURL + '/api/'+loggedinUser+'/User', { headers: {'Token': token,'UserId':loggedinUser}}).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.mailReport = function(token, toList, ccList, bccList, subject, message, reportName, userID, filterKey, filterValue, reportInMailBody, rollUps, callback){\r\n var data = {\r\n \"TOList\": toList,\r\n \"CCList\": ccList,\r\n \"BCCList\": bccList,\r\n \"Body\": message,\r\n \"Subject\": subject,\r\n \"ReportName\": reportName,\r\n \"ReqUserId\": userID,\r\n \"FilterKeys\": null,\r\n \"FilterValues\": null,\r\n \"ReportInMailBody\": reportInMailBody,\r\n \"RollUps\":rollUps\r\n };\r\n\r\n //$log.log(\"data\", data);\r\n $http.post(DashboardURL + '/api/Report/mailexcelreportbyname', data, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId':userID } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.scheduleReport = function(loggedinUser, data, token, callback){\r\n $http.post(ApiURL + '/api/ReportSchedule/cron?userId='+loggedinUser, data, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId':loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n //$log.log(\"scheduleReport in report service\", res);\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.RescheduleReport = function(loggedinUser, data, token, callback){\r\n $http.put(ApiURL + '/api/ReportSchedule/cron?userId='+loggedinUser, data, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId':loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n //$log.log(\"rescheduleReport in report service\", res);\r\n callback(res.data);\r\n }\r\n })\r\n } \r\n\r\n vm.downloadReport = function(reportName, loggedinUser, filterKey, filterName,rollUps,isData) {\r\n $window.location.href=PublicApiURL+\"/api/Report/DownloadExcelReportByReportName?reportName=\"+reportName+\"&reqUserId=\"+loggedinUser+\"&FilterKeys=\"+filterKey+\"&FilterValues=\"+filterName+\"&RollUps=\"+rollUps+\"&isData=\"+isData;\r\n console.log('$window.location.href',$window.location.href);\r\n }\r\n\r\n vm.checkReportName = function(reportName, callback){\r\n $http.get(CronUrl + '/isCronNameExists?name='+reportName, { headers: { 'Content-Type': 'application/json' } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('widgetCanvasController', function (widgetCanvasService,$uibModal, $compile, MainService, $timeout,$location,$window, $stateParams, DTOptionsBuilder, DTColumnBuilder, $scope, $state, $log, ReportService, $localStorage, DashboardURL, $q,$http,$rootScope) {\r\n var vm = this;\r\n\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var token = $localStorage.token;\r\n\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n widgetCanvasService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n widgetCanvasService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n vm.report_data = {};\r\n var accountConfig = $localStorage.accountConfig;\r\n if (accountConfig && accountConfig.EnableRegion) {\r\n vm.EnableRegion = accountConfig.EnableRegion\r\n }else{\r\n vm.EnableRegion = false;\r\n }\r\n vm.metricsCharts = {};\r\n vm.tableArray = [];\r\n vm.profileImg='';\r\n vm.users = [];\r\n vm.filename='';\r\n vm.deepLink = {};\r\n vm.valueClass = {};\r\n vm.report_title=\"\";\r\n vm.attachReportInMailBody = true;\r\n vm.attachReportInExcel = true;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.filter_key = $stateParams.filter_key?$stateParams.filter_key:\"\";\r\n vm.isData = $stateParams.isData?$stateParams.isData:false;\r\n vm.key = $stateParams.key?$stateParams.key:\"\";\r\n vm.filter_name = $stateParams.filter_name?$stateParams.filter_name:\"\";\r\n vm.additionalInfo = $stateParams.end_date?$stateParams.end_date:\"\";\r\n vm.defaultMailBody = \"Hello,\\n\\nYou are requested to view project report on below link \\n\\n\" + $window.location.href + \" \\n\\nThanks\\nMobiforce Team\";\r\n var creationDatefunc = $scope.$parent.$parent.main.AccountStartDate;\r\n vm.accountCreationDate = creationDatefunc();\r\n vm.tableCharts = {};\r\n var total = 'Total';\r\n $log.log('$stateParams.start_date',$stateParams.start_date);\r\n\r\n // var startDate = $stateParams.start_date?$stateParams.start_date:moment(0).format(\"YYYY-MM-DD\");\r\n // var endDate = $stateParams.end_date?$stateParams.end_date:moment().format(\"YYYY-MM-DD\");\r\n if ($stateParams.start_date) {\r\n vm.rollup = $stateParams.start_date;\r\n //\"Range(\"+startDate+\"|\"+endDate+\")\";\r\n var dateArray1 = vm.rollup.split('(');\r\n var dateArray2 = dateArray1[1].split(')');\r\n var dateArray3 = dateArray2[0].split('|');\r\n var startDate = moment(dateArray3[0]).format(\"YYYY-MM-DD\");\r\n var endDate = moment(dateArray3[1]).format(\"YYYY-MM-DD\");\r\n\r\n $scope.dates = { startDate: moment(dateArray3[0]), endDate: moment(dateArray3[1])};\r\n \r\n \r\n }else if(vm.isData){\r\n if ($stateParams.start_date =='' || $stateParams.start_date == null) {\r\n $scope.dates = { startDate:vm.accountCreationDate, endDate: moment() };\r\n var startDate =vm.accountCreationDate;\r\n //var startDate = moment(0).format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n }\r\n \r\n \r\n }else {\r\n $scope.dates = { startDate:moment().subtract(0, 'days'), endDate: moment() };\r\n var startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n //var startDate = moment(0).format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n \r\n }\r\n \r\n vm.shareModel = {\r\n selectedUsers: [],\r\n toList: [],\r\n ccList: [],\r\n bccList: [],\r\n content: vm.defaultMailBody\r\n };\r\n vm.monthNames3 = [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\",\r\n \"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"\r\n ];\r\n\r\n vm.scheduleModel = {\r\n frequency: \"once\",\r\n once: \"once\",\r\n daily: \"daily\",\r\n weekly: \"weekly\",\r\n every_15_days: \"every_15_days\",\r\n monthly: \"monthly\",\r\n cronExpression: \"expression\",\r\n input_for_month: {\r\n option: \"start_of_day\",\r\n start_of_day: \"start_of_day\",\r\n end_of_day: \"end_of_day\",\r\n specific_date: \"specific_date\",\r\n date: 1\r\n },\r\n specific_date_range: [],\r\n start_date:moment(),\r\n end_date:moment().add(1, 'M'),\r\n attachReportInMailBody:true,\r\n attachReportInExcel: true,\r\n scheduleTime:\"\",\r\n scheduleName:\"\",\r\n reportNameAlreadyExists:false,\r\n reportNameMendtryErr:false,\r\n toListMendtryErr:false,\r\n timeMendtryErr:false,\r\n sampleDateMendtryErr:false,\r\n pull_data: {\r\n range: \"last_day\",\r\n day: \"last_day\",\r\n week: \"last_week\",\r\n month: \"last_month\",\r\n quarter: \"last_quarter\",\r\n current_month: \"current_month\",\r\n specific: \"specific\",\r\n specific_day_value: 1,\r\n calculate_range: function () {\r\n //$log.log(vm.scheduleModel.pull_data.range);\r\n var today = new Date();\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n var date = today;\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 1, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 3, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n return 1 + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n //$log.log(vm.scheduleModel.pull_data.specific_day_value)\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - vm.scheduleModel.pull_data.specific_day_value);\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n }\r\n }\r\n }\r\n };\r\n\r\n for (var i = 1; i < 32; i++) {\r\n vm.scheduleModel.specific_date_range.push({ value: i, label: i });\r\n }\r\n\r\n vm.getChart = function (chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData, total) {\r\n //$log.log(\"in controller\", loggedinUser, chartType, metrics, dimensions, rollUp, filterKeys, filterValues); \r\n vm.rachit = [];\r\n widgetCanvasService.getChart(loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData, total, vm.createCallback(vm.rachit, [function (data) {\r\n if (chartType == 'Metrics') {\r\n vm.metricsCharts[chartId].value = data;\r\n } else if (chartType == 'Table') { \r\n\r\n //vm.tableCharts[chartId] = {};\r\n vm.tableCharts[chartId].value = data;\r\n //vm.tableCharts[chartId].ChartId = chartId;\r\n //vm.tableCharts[chartId].table_name = data.chartName; \r\n // console.log(data,chartType);\r\n vm.buildColumnBuilder(data, chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData);\r\n \r\n }\r\n }]));\r\n }\r\n\r\n vm.plotHistory = function(data){\r\n vm.ticketHistory = [];\r\n if (data!=null && data != '') {\r\n vm.ticketHistory = JSON.parse(data);\r\n }\r\n \r\n // $log.log('plotHistory',vm.ticketHistory);\r\n }\r\n\r\n \r\n\r\n // $scope.dates = { startDate: moment().subtract(1, 'day'), endDate: moment().subtract(1, 'day') };\r\n // $scope.dates = { startDate: moment(0), endDate: moment() };\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n // 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n 'This month': [moment().startOf('month'), moment()]\r\n };\r\n\r\n $scope.dateRangeChange = function(ev, picker){\r\n // console.log(ev, picker);\r\n var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n var endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n \r\n //$location.search(start_date);\r\n // $location.path($stateParams.start_date+\"/\"+$stateParams.end_date).replace();\r\n // $log.log('$stateParams.start_date',$stateParams.start_date);\r\n // $log.log('$stateParams.end_date',$stateParams.end_date);\r\n // vm.sDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n // vm.eDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n vm.getCustomerReport(vm.getReportName($stateParams.report_name));\r\n vm.tableCharts = {};\r\n\r\n };\r\n \r\n vm.reportLayoutCallback = vm.createCallback(null, [function (data) {\r\n vm.report_data = data;\r\n var matricsCount = 0;\r\n vm.tableCount = 0;\r\n vm.tableNames = [];\r\n vm.tableOrder = [];\r\n vm.tableArray = [];\r\n var matricsIds = [];\r\n //$log.log(data);\r\n angular.forEach(data.chartModel, function (d) {\r\n if (d.ClickableColumns != null && d.ClickableColumns.length > 0) {\r\n angular.forEach(d.ClickableColumns, function (cl) {\r\n if (cl.Link == \"Project Status Report\") {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n //$log.log(\"index.Report({report_name:'ProjectStatus', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"'})\");\r\n return \"index.Report({report_name:'ProjectStatus', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"', start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n } if (cl.Link == \"Customer Status Report\") {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n //$log.log(\"index.Report({report_name:'CustomerStatusReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"'})\");\r\n return \"index.Report({report_name:'CustomerStatusReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"', start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n }if (cl.Link == 'Customer Location HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName){\r\n return \"index.Report({report_name:'CustomerLocationHCLReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"' , start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n }\r\n if (cl.Link == 'City Ticket HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName,i){\r\n // var fromDate = $stateParams.start_date?$stateParams.start_date:\"\";\r\n // var toDate = $stateParams.end_date?$stateParams.end_date:\"\";;\r\n return \"index.Report({report_name:'CityTicketHCLReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"' , start_date:'\"+vm.rollup+\"', end_date:'\"+i+\"'})\";\r\n }\r\n }\r\n if (cl.Link == 'Team Hcl Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName){\r\n // var fromDate = $stateParams.start_date?$stateParams.start_date:\"\";\r\n // var toDate = $stateParams.end_date?$stateParams.end_date:\"\";;\r\n return \"index.Report({report_name:'TeamHclDetailedReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"' , start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n }\r\n if (cl.Link == 'Team Ticket HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName,i){\r\n //$log.log('Name',i);\r\n // var fromDate = $stateParams.start_date?$stateParams.start_date:\"\";\r\n // var toDate = $stateParams.end_date?$stateParams.end_date:\"\";;\r\n return \"index.Report({report_name:'TeamTicketHCLReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"' , start_date:'\"+vm.rollup+\"' , end_date:'\"+i+\"'})\";\r\n }\r\n }\r\n if (cl.Link == \"JobView\") {\r\n\r\n if(vm.VerticalName == \"IMS\"){\r\n vm.deepLink[cl.ColumnName] = function (param) {\r\n return \"index.JobView({ticketId:'\" + param + \"',type:'isTicketView'})\";\r\n }\r\n }\r\n else {\r\n vm.deepLink[cl.ColumnName] = function (param) {\r\n return \"index.JobDetailView({ticketId:'\" + param + \"',type:'isTicketView'})\";\r\n }\r\n \r\n }\r\n \r\n }if (cl.Link == 'Team Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName){\r\n return \"index.Report({report_name:'TeamDetailReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"', start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n }if (cl.Link == 'Spectro Lab Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName){\r\n return \"index.Report({report_name:'SpectroLabDetailedReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"', start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n }if (cl.Link == 'Finance Ticket Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName){\r\n return \"index.Report({report_name:'Finance Ticket Report', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"', start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n }\r\n });\r\n }\r\n if (d.UIClasess != null && d.UIClasess.length > 0) {\r\n vm.valueClass = {};\r\n angular.forEach(d.UIClasess, function (cl) {\r\n vm.valueClass[cl.ColumnName] = cl.ClassName;\r\n });\r\n }\r\n //$log.log(vm.valueClass);\r\n // $log.log(\"dates\", $scope.dates);\r\n if (d.ChartType == 'Metrics') {\r\n \r\n // $timeout(function(){\r\n // vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name);\r\n // },1000)\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name,\"\",false);\r\n matricsCount++;\r\n matricsIds.push(d.ChartId);\r\n vm.metricsCharts[d.ChartId] = d;\r\n vm.metricsCharts[d.ChartId].value = \"Loading...\";\r\n } \r\n else if(d.ChartType == 'Table'){\r\n\r\n if (vm.isData) {\r\n d.Metrics = vm.key; \r\n }\r\n // var isData = false;\r\n // if (vm.report_data.ReportName == 'Link Ticket Report') {\r\n // d.Metrics = vm.key;\r\n // isData = true;\r\n // }\r\n $timeout(function(){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name, d.ChartTitle,vm.isData);\r\n },100)\r\n // vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name);\r\n vm.tableNames[vm.tableCount]=d.ChartTitle;\r\n vm.tableOrder[vm.tableCount]=d.ChartId;\r\n vm.tableCount = vm.tableCount + 1;\r\n\r\n vm.tableCharts[d.ChartId] = {};\r\n //vm.tableCharts[d.ChartId].value = data;\r\n vm.tableCharts[d.ChartId].ChartId = d.ChartId;\r\n vm.tableCharts[d.ChartId].table_name = d.ChartTitle;\r\n\r\n // console.log(vm.tableNames);\r\n // console.log(vm.tableOrder);\r\n // vm.tableArray[vm.tableCount].table_name = d.ChartTitle;\r\n // $log.log('vm.tableArray[vm.tableCount].table_name',vm.tableArray[vm.tableCount].table_name); \r\n }\r\n \r\n \r\n });\r\n if (matricsCount >= 5) {\r\n if (matricsCount % 4 == 0) {\r\n matricsCount = 4;\r\n } else {\r\n matricsCount = 3;\r\n }\r\n }\r\n matricsCount = 12 / matricsCount;\r\n matricsCount = Math.round(matricsCount);\r\n angular.forEach(matricsIds, function (d) {\r\n vm.metricsCharts[d].width = \"col-lg-\" + matricsCount;\r\n });\r\n }])\r\n\r\n vm.getCustomerReport = function (reportname) {\r\n widgetCanvasService.getCustomerReport(loggedinUser, reportname, token, vm.reportLayoutCallback);\r\n \r\n }\r\n\r\n vm.getReportName = function(reportNameParam){\r\n if (reportNameParam == 'ProjectSummary') {\r\n return 'Project Report';\r\n } else if (reportNameParam == 'ProjectStatus') {\r\n return 'Project Status Report';\r\n } else if (reportNameParam == 'CustomerSummary') {\r\n return 'Customer Report';\r\n } else if (reportNameParam == 'CustomerStatusReport') {\r\n return 'Customer Status Report';\r\n } else if (reportNameParam == 'Financial') {\r\n return 'Financial Report';\r\n } else if (reportNameParam == 'DailyProgress') {\r\n return 'Daily Progress Report';\r\n } else if (reportNameParam == 'DailyStatusProgress') {\r\n return '';\r\n } else if (reportNameParam == 'Scheduled') {\r\n return '';\r\n }else if (reportNameParam == 'TeamReport') {\r\n return 'Team Report';\r\n }else if (reportNameParam == 'TeamDetailReport') {\r\n return 'Team Detailed Report';\r\n } else if(reportNameParam == 'ReferralReport'){\r\n return 'Referral Report';\r\n }else if(reportNameParam == 'LabReport'){\r\n return 'Lab Report';\r\n }else if(reportNameParam == 'SpectroLabDetailedReport'){\r\n return 'Spectro Lab Detailed Report';\r\n }\r\n else if(reportNameParam == 'CustomerHCLReport'){\r\n return 'Customer HCL Report';\r\n }\r\n else if(reportNameParam == 'CustomerLocationHCLReport'){\r\n return 'Customer Location HCL Report';\r\n }\r\n else if(reportNameParam == 'CityTicketHCLReport'){\r\n return 'City Ticket HCL Report';\r\n }\r\n else if(reportNameParam == 'TeamHclReport'){\r\n return 'Team Hcl Report';\r\n }\r\n else if(reportNameParam == 'TeamHclDetailedReport'){\r\n return 'Team Hcl Detailed Report';\r\n }else if(reportNameParam == 'TeamTicketHCLReport'){\r\n return 'Team Ticket HCL Report';\r\n }else if(reportNameParam == 'LinkTicketReport'){\r\n return 'Link Ticket Report';\r\n }else if(reportNameParam == 'TicketSummary'){\r\n return 'Ticket Summary';\r\n }else if(reportNameParam == 'AgingofTickets'){\r\n return 'Aging of Tickets';\r\n }else if(reportNameParam == 'Regional Summary'){\r\n return 'Regional Summary';\r\n }else if(reportNameParam == 'Finance Report'){\r\n return 'Finance Report';\r\n }else if(reportNameParam == 'Finance Ticket Report'){\r\n return 'Finance Ticket Report';\r\n }\r\n else \r\n {\r\n return reportNameParam;\r\n }\r\n }\r\n\r\n\r\n \r\n \r\n $scope.toggleContextMenu = function() {\r\n // event.stopPropagation();\r\n $scope.contextMenuVisible = !$scope.contextMenuVisible;\r\n };\r\n\r\n\r\n vm.getReportTitle = function(reportNameParam){\r\n if (reportNameParam == 'ProjectSummary') {\r\n return 'Project Summary';\r\n } else if (reportNameParam == 'ProjectStatus') {\r\n return 'Project Status';\r\n } else if (reportNameParam == 'CustomerSummary') {\r\n return 'Customer Summary';\r\n } else if (reportNameParam == 'CustomerStatusReport') {\r\n return 'Customer Status Report';\r\n } else if (reportNameParam == 'Financial') {\r\n return 'Financial Summary';\r\n } else if (reportNameParam == 'DailyProgress') {\r\n return 'Project Daily Progress';\r\n } else if (reportNameParam == 'DailyStatusProgress') {\r\n return 'Daily Status Progress';\r\n } else if (reportNameParam == 'Scheduled') {\r\n return 'Scheduled Report';\r\n }else if (reportNameParam == 'TeamReport') {\r\n return 'Team Report';\r\n }else if (reportNameParam == 'TeamDetailReport') {\r\n return 'Team Detailed Report';\r\n } else if(reportNameParam == 'ReferralReport'){\r\n return 'Referral Report';\r\n }else if(reportNameParam == 'LabReport'){\r\n return 'Lab Report';\r\n }else if(reportNameParam == 'SpectroLabDetailedReport'){\r\n return 'Spectro Lab Detailed Report';\r\n }else if(reportNameParam == 'CustomerHCLReport'){\r\n return 'Customer HCL Report';\r\n }\r\n else if(reportNameParam == 'CustomerLocationHCLReport'){\r\n return 'Customer Location HCL Report';\r\n }else if(reportNameParam == 'CityTicketHCLReport'){\r\n return 'City Ticket HCL Report';\r\n }\r\n else if(reportNameParam == 'TeamHclReport'){\r\n return 'Team Hcl Report';\r\n }\r\n else if(reportNameParam == 'TeamHclDetailedReport'){\r\n return 'Team Hcl Detailed Report';\r\n }\r\n else if(reportNameParam == 'TeamTicketHCLReport'){\r\n return 'Team Ticket HCL Report';\r\n }else if(reportNameParam == 'LinkTicketReport'){\r\n return 'Link Ticket Report';\r\n }else if(reportNameParam == 'TicketSummary'){\r\n return 'Ticket Summary';\r\n }else if(reportNameParam == 'Regional Summary'){\r\n return 'Regional Summary';\r\n }else if(reportNameParam == 'Finance Report'){\r\n return 'Finance Report';\r\n }else if(reportNameParam == 'Finance Ticket Report'){\r\n return 'Finance Ticket Report';\r\n }\r\n else\r\n {\r\n return reportNameParam;\r\n }\r\n\r\n }\r\n\r\n vm.report_title = vm.getReportTitle($stateParams.report_name);\r\n vm.getCustomerReport(vm.getReportName($stateParams.report_name));\r\n\r\n vm.ShareReport = function () {\r\n //$log.log(\"ShareReport\");\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.shareModel.content = \"Hello,\\n\\nYou are requested to view project report on below link \\n\\n\" + $window.location.href + \" \\n\\nThanks\\nMobiforce Team\";\r\n vm.ShareModal = $uibModal.open({\r\n templateUrl: 'SharewidgetCtrl.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeShareReportModal = function () {\r\n vm.ShareModal.close();\r\n }\r\n\r\n\r\nvm.createwidget = function() {\r\n vm.widgetcreate = $uibModal.open({\r\n templateUrl: 'createwidget.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n}\r\nvm.closecreatewidet = function () {\r\n vm.widgetcreate.close();\r\n}\r\n\r\n vm.ReportFilter = function () {\r\n vm.FilterModal = $uibModal.open({\r\n templateUrl: 'ReportFilter.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeReportFilterModal = function () {\r\n vm.FilterModal.close();\r\n }\r\n\r\n vm.ScheduledReport = function () {\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.scheduleModel.reportName=\"\";\r\n vm.scheduleModel.frequency=vm.scheduleModel.once;\r\n vm.scheduleModel.pull_data.range=vm.scheduleModel.pull_data.day; \r\n vm.scheduleModel.attachReportInMailBody=true;\r\n vm.scheduleModel.attachReportInExcel=true;\r\n vm.scheduleModel.sampleDateMendtryErr=false;\r\n vm.scheduleModel.input_of_week=null;\r\n vm.scheduleModel.sampleDate=new moment();\r\n vm.scheduleModel.input_for_month.option=vm.scheduleModel.input_for_month.start_of_day; \r\n vm.shareModel.content = \"Hello,\\n\\nYou are requested to view project report on below link \\n\\n\" + $window.location.href + \" \\n\\nThanks\\nMobiforce Team\";\r\n vm.ScheduledReportModal = $uibModal.open({\r\n templateUrl: 'ScheduledwidgetCtrl.html',\r\n backdrop: 'static',\r\n windowClass:'schedulerModal',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeScheduledReportModal = function () {\r\n vm.ScheduledReportModal.close();\r\n }\r\n\r\n\r\n $scope.options = ['Option 1', 'Option 2', 'Option 3', 'Option 4'];\r\n $scope.selectedOptions = {};\r\n\r\n \r\n \r\n\r\n vm.shareModel.getUserSuggestion = function (val) {\r\n\r\n vm.scheduleModel.toListMendtryErr=false;\r\n\r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}].concat(vm.users):vm.users;\r\n }\r\n vm.getUsers();\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}]:[];\r\n }\r\n\r\n vm.getUsers = function () {\r\n vm.users = [];\r\n widgetCanvasService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n //$log.log(data);\r\n }]));\r\n }\r\n\r\n vm.shareModel.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName !=null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n\r\n vm.shareModel.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.shareModel.toList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.ccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n } \r\n if (!matched) {\r\n angular.forEach(vm.shareModel.bccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n } \r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n\r\n vm.shareModel.cancelledToListUser = function (i) {\r\n vm.shareModel.toList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledCCListUser = function (i) {\r\n vm.shareModel.ccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledBCCListUser = function (i) {\r\n vm.shareModel.bccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.selectUserNameInToList = function (item) {\r\n vm.shareModel.toList.push(item);\r\n vm.shareModel.toUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInCCList = function (item) {\r\n vm.shareModel.ccList.push(item);\r\n vm.shareModel.ccUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInBCCList = function (item) {\r\n vm.shareModel.bccList.push(item);\r\n vm.shareModel.bccUsers = [];\r\n }\r\n\r\n vm.shareModel.mailReport = function () {\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function(user){\r\n toList.push(user.UserId);\r\n });\r\n var ccList = [];\r\n angular.forEach(vm.shareModel.ccList, function(user){\r\n ccList.push(user.UserId);\r\n });\r\n var bccList = [];\r\n angular.forEach(vm.shareModel.bccList, function(user){\r\n bccList.push(user.UserId);\r\n });\r\n if(toList.length==0){\r\n vm.scheduleModel.toListMendtryErr=true;\r\n return;\r\n }\r\n if(vm.shareModel.content.length==0){\r\n return false;\r\n }\r\n\r\n var content = vm.shareModel.content;\r\n content=content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n vm.closeShareReportModal();\r\n widgetCanvasService.mailReport(token, toList, ccList, bccList, \"Report: \" + vm.getReportName($stateParams.report_name), \r\n content, vm.getReportName($stateParams.report_name), loggedinUser, vm.filter_key, vm.filter_name, \r\n vm.attachReportInMailBody,vm.attachReportInExcel,vm.rollup,\r\n vm.createCallback(null, [function (data) { \r\n vm.showSuccess(\"Success\", \"Report has been shared successfully\");\r\n }]));\r\n }\r\n\r\n vm.downloadReport = function(){\r\n widgetCanvasService.downloadReport(vm.report_data.ReportName, loggedinUser, vm.filter_key, vm.filter_name,vm.rollup,vm.isData);\r\n \r\n }\r\n\r\n vm.scheduleModel.checkName = function(){\r\n widgetCanvasService.checkReportName(vm.scheduleModel.reportName, function(data){\r\n //$log.log(\"checkName reposnse\", data);\r\n vm.scheduleModel.reportNameAlreadyExists=data;\r\n });\r\n }\r\n\r\n vm.scheduleModel.scheduleReport = function () {\r\n var startTime = null;\r\n var endTime = null;\r\n var cronExpression = null;\r\n var daily = null;\r\n var weekly = null;\r\n var monthly = null;\r\n //$log.log(\"vm.scheduleModel.scheduleTime \",vm.scheduleModel.scheduleTime);\r\n if(vm.scheduleModel.reportName==null || vm.scheduleModel.reportName.length==0){\r\n vm.scheduleModel.reportNameMendtryErr=true;\r\n return;\r\n }\r\n if(vm.shareModel.toList.length==0){\r\n vm.scheduleModel.toListMendtryErr=true;\r\n return; \r\n }\r\n\r\n if (vm.scheduleModel.frequency == vm.scheduleModel.once) {\r\n //$log.log(\"vm.scheduleModel.sampleDate\", vm.scheduleModel.sampleDate);\r\n if(vm.scheduleModel.sampleDate){\r\n var sample_Data = vm.scheduleModel.sampleDate?vm.scheduleModel.sampleDate:new moment();\r\n startTime = {\r\n \"date\": sample_Data.format(\"DD\"),\r\n \"hour\": sample_Data.format(\"HH\"),\r\n \"min\": sample_Data.format(\"mm\"),\r\n \"month\": sample_Data.format(\"MMM\").toUpperCase(),\r\n \"sec\": sample_Data.format(\"ss\"),\r\n \"year\": sample_Data.format(\"YYYY\")\r\n };\r\n\r\n var sampleEndTime = moment(sample_Data).add(1, 'month');\r\n endTime = {\r\n \"date\": sampleEndTime.format(\"DD\"),\r\n \"hour\": sampleEndTime.format(\"HH\"),\r\n \"min\": sampleEndTime.format(\"mm\"),\r\n \"month\": sampleEndTime.format(\"MMM\").toUpperCase(),\r\n \"sec\": sampleEndTime.format(\"ss\"),\r\n \"year\": sampleEndTime.format(\"YYYY\")\r\n };\r\n //$log.log(\"startTime \",startTime);\r\n } else {\r\n vm.scheduleModel.sampleDateMendtryErr=true;\r\n return;\r\n }\r\n \r\n } else {\r\n var startDate = vm.scheduleModel.start_date?new Date(vm.scheduleModel.start_date):new Date();\r\n var endDate = vm.scheduleModel.end_date?new Date(vm.scheduleModel.end_date):new Date();\r\n startTime = {\r\n \"date\": startDate.getDate(),\r\n \"hour\": startDate.getHours(),\r\n \"min\": startDate.getMinutes(),\r\n \"month\": vm.monthNames3[startDate.getMonth()],\r\n \"sec\": startDate.getSeconds(),\r\n \"year\": startDate.getFullYear()\r\n };\r\n endTime = {\r\n \"date\": endDate.getDate(),\r\n \"hour\": endDate.getHours(),\r\n \"min\": endDate.getMinutes(),\r\n \"month\": vm.monthNames3[endDate.getMonth()],\r\n \"sec\": endDate.getSeconds(),\r\n \"year\": endDate.getFullYear()\r\n };\r\n var hour, min;\r\n if(vm.scheduleModel.scheduleTime){\r\n var splittedtime = vm.scheduleModel.scheduleTime.split(\":\");\r\n hour = splittedtime[0];\r\n min = splittedtime[1];\r\n } else {\r\n vm.scheduleModel.timeMendtryErr=true;\r\n return;\r\n }\r\n if (vm.scheduleModel.frequency == vm.scheduleModel.daily) {\r\n daily = {\r\n \"hour\": hour,\r\n \"min\": min\r\n };\r\n } else if (vm.scheduleModel.frequency == vm.scheduleModel.weekly) {\r\n var dayOfWeek = [];\r\n\r\n if (vm.scheduleModel.input_of_week.sun) {\r\n dayOfWeek.push(1);\r\n }\r\n if (vm.scheduleModel.input_of_week.mon) {\r\n dayOfWeek.push(2);\r\n }\r\n if (vm.scheduleModel.input_of_week.tue) {\r\n dayOfWeek.push(3);\r\n }\r\n if (vm.scheduleModel.input_of_week.wed) {\r\n dayOfWeek.push(4);\r\n }\r\n if (vm.scheduleModel.input_of_week.thu) {\r\n dayOfWeek.push(5);\r\n }\r\n if (vm.scheduleModel.input_of_week.fri) {\r\n dayOfWeek.push(6);\r\n }\r\n if (vm.scheduleModel.input_of_week.sat) {\r\n dayOfWeek.push(7);\r\n }\r\n weekly = {\r\n \"dayOfWeek\": dayOfWeek,\r\n \"hour\": hour,\r\n \"min\": min\r\n };\r\n } else if (vm.scheduleModel.frequency == vm.scheduleModel.monthly) {\r\n if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.start_of_day) {\r\n monthly = {\r\n \"dayOfMonth\": \"1\",\r\n \"hour\": hour,\r\n \"min\": min\r\n };\r\n } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.end_of_day) {\r\n cronExpression = \"0 \"+hour+\" \"+min+\" L * ?\";\r\n vm.scheduleModel.frequency = vm.scheduleModel.cronExpression\r\n } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.specific_date) {\r\n monthly = {\r\n \"dayOfMonth\": vm.scheduleModel.input_for_month.date,\r\n \"hour\": hour,\r\n \"min\": min\r\n };\r\n }\r\n\r\n } \r\n }\r\n\r\n var data = {\r\n \"cronExpression\": cronExpression,\r\n \"cronType\": vm.scheduleModel.frequency,\r\n \"daily\": daily,\r\n \"endTime\": endTime,\r\n \"jobStartTime\": startTime,\r\n \"method\": \"POST\",\r\n \"monthly\": monthly,\r\n \"uniqueId\": vm.scheduleModel.reportName,\r\n \"reportName\": vm.getReportName($stateParams.report_name),\r\n \"url\": DashboardURL+\"/api/Report/mailexcelreportbyname\",\r\n \"weekly\": weekly,\r\n \"accountId\":loggedinUser\r\n };\r\n\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function(user){\r\n toList.push(user.UserId);\r\n });\r\n var ccList = [];\r\n angular.forEach(vm.shareModel.ccList, function(user){\r\n ccList.push(user.UserId);\r\n });\r\n var bccList = [];\r\n angular.forEach(vm.shareModel.bccList, function(user){\r\n bccList.push(user.UserId);\r\n });\r\n\r\n if(vm.shareModel.content.length==0){\r\n vm.shareModel.contentMedtryErr=true;\r\n return;\r\n }\r\n\r\n var content = vm.shareModel.content;\r\n content=content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n var schedulerModel = {};\r\n schedulerModel[\"TOList\"]=toList;\r\n schedulerModel[\"CCList\"]=ccList;\r\n schedulerModel[\"BCCList\"]=bccList;\r\n schedulerModel[\"Body\"]=content;\r\n schedulerModel[\"Subject\"]=\"Report: \" + vm.getReportName($stateParams.report_name)\r\n schedulerModel[\"ReportName\"]=vm.getReportName($stateParams.report_name)\r\n schedulerModel[\"ReqUserId\"]=loggedinUser;\r\n schedulerModel[\"FilterKeys\"]=null;\r\n schedulerModel[\"FilterValues\"]=null;\r\n schedulerModel[\"ReportInMailBody\"]=vm.scheduleModel.attachReportInMailBody;\r\n schedulerModel[\"AttachXLSReportInMail\"]=vm.scheduleModel.attachReportInExcel;\r\n if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.day){\r\n schedulerModel[\"RollUps\"]=\"Last Day\";\r\n } else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.week){\r\n schedulerModel[\"RollUps\"]=\"Last Week\"; \r\n } else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.month){\r\n schedulerModel[\"RollUps\"]=\"Last Month\"; \r\n } else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.quarter){\r\n schedulerModel[\"RollUps\"]=\"Last Quarter\"; \r\n }else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.current_month){\r\n schedulerModel[\"RollUps\"]=\"Current Month\"; \r\n } else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.specific){\r\n var re = /^[1-9]+[0-9]*$/;\r\n if(!re.test(vm.scheduleModel.pull_data.specific_day_value)){\r\n vm.scheduleModel.pull_data.specificDayValMedtryErr=true;\r\n return;\r\n }\r\n schedulerModel[\"RollUps\"]=vm.scheduleModel.pull_data.specific_day_value; \r\n }\r\n data[\"model\"]=JSON.stringify(schedulerModel);\r\n data[\"entity\"]=\"report\";\r\n\r\n widgetCanvasService.scheduleReport(loggedinUser, data, token,\r\n vm.createCallback(null, [function (data) { \r\n if(data.msg==\"Schedule already exists\"){\r\n vm.showFailure(\"Failed\", \"Schedule with same name already exists.\");\r\n } else if(data.msg==\"Unexpected params\"){\r\n vm.showFailure(\"Failed\", \"Unexpected parameters.\");\r\n } else if(data.msg==\"Failed\"){\r\n vm.showFailure(\"Server Error\", \"Failed to create schedule.\");\r\n } else {\r\n vm.showSuccess(\"Success\", \"Report scheduled successfully.\");\r\n vm.closeScheduledReportModal();\r\n }\r\n }]));\r\n }\r\n // vm.filename='';\r\n \r\n\r\n vm.PDFView = function (img) {debugger\r\n \r\n \r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n \r\n vm.pdfimage = resp.data;\r\n });\r\n $scope.selected = null;\r\n $timeout(function(){\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size :'lg',\r\n scope: $scope\r\n });\r\n },1000)\r\n \r\n }\r\n vm.PDFUserModal = function(){\r\n jobAppointmentModal.close();\r\n }\r\n vm.isShow=true;\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n\r\n vm.addMoreFilter = function(){\r\n vm.SelectedSkills = [];\r\n vm.SelectedLocations = [];\r\n vm.SelectedAccount=[];\r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n vm.getAllAccountsExceptHD();\r\n \r\n }\r\n\r\n vm.removeAddmoreEditList = function () { \r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n }\r\n\r\n vm.openDilogforDelete = function (index) {\r\n $scope.deleteIndex=index;\r\n vm.ShareModal = $uibModal.open({\r\n\r\n templateUrl: 'openDilogforDelete.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope,\r\n \r\n });\r\n }\r\n \r\n vm.closeopenDilogforDeleteModal = function () { \r\n vm.ShareModal.close();\r\n }\r\n \r\n vm.UpdateAllHDAccountConfig = function(index)\r\n { \r\n vm.showAction = true; \r\n // if (vm.editform.$valid) { \r\n var checkAccount = false;\r\n // for (var i = 0; i < vm.showAllAccounts.length; i++) {\r\n // var Acc = vm.showAllAccounts[i];\r\n // if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n // vm.showAllAccounts[i] == vm.SelectedAccount;\r\n // vm.showAllAccounts[i].AccountSkillSet = vm.SelectedSkills;\r\n // vm.showAllAccounts[i].AccountLocations = vm.SelectedLocations; \r\n // checkAccount = true;\r\n // break;\r\n // }\r\n // }\r\n\r\n if(checkAccount == false ) {\r\n // vm.SelectedAccount.AccountSkillSet = vm.SelectedSkills;\r\n vm.showAllAccounts.push(vm.SelectedAccount);\r\n }\r\n \r\n CentralHelpdeskConfigService.UpdateAllHDAccountConfig(loggedinUser,token,vm.showAllAccounts).then(function (resp) {\r\n if (resp && resp.data) { \r\n if (resp.status == 200) { \r\n vm.showEditList = false;\r\n $timeout(function () { \r\n vm.getAllAccounts(); \r\n }, 1000); \r\n vm.showSuccess(\"Success\", \"Acoount Added successfully!\"); \r\n } \r\n }\r\n }, function () {\r\n \r\n });\r\n } \r\n \r\n vm.buildColumnBuilder = function (dataSets, chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData) {\r\n if (vm.tableCharts[chartId] && vm.tableCharts[chartId].value) {\r\n var columns = [];\r\n for (var key in dataSets.Categories) {\r\n var temp = '';\r\n // var columnName = key;\r\n temp = DTColumnBuilder.newColumn(key).withTitle(dataSets.Categories[key]).renderWith(function(data,type,full,meta){\r\n var temp = '';\r\n function getKeyByValue(object, value) {\r\n for( var prop in object ) {\r\n if( object.hasOwnProperty( prop ) ) {\r\n if( object[ prop ] === value )\r\n temp = prop;\r\n }\r\n }\r\n }\r\n getKeyByValue(full,data)\r\n var firstColumntKey = Object.values(full)[0];\r\n // var fixedCatogries = Object.values(vm.tableCharts[chartId].value.Categories)[0];\r\n var t = vm.tableCharts[chartId].value.Categories;\r\n var n = t[temp];\r\n if(vm.deepLink[n]){\r\n return \"' + data + \"\";\r\n }\r\n //data = 'T360000388568_CCR_Form_Photo7825.jpg';\r\n \r\n if((temp =='CCR URL' || temp == 'CCRFormPhotoAttachmentPath'|| temp == 'TicketSignOffReport') && data){\r\n \r\n vm.filename = data.substring(data.lastIndexOf('/')+1);\r\n \r\n \r\n return '' + vm.filename + ' ';\r\n \r\n }\r\n else if((temp == 'FieldReports') && data){\r\n var fileUrls = data.split(',');\r\n var ancharStr = '';\r\n var filename;\r\n angular.forEach(fileUrls, function(value, key){\r\n filename = value.substring(value.lastIndexOf('/')+1);\r\n ancharStr = ancharStr + '' + filename + ' ';\r\n });\r\n\r\n return ancharStr;\r\n \r\n }\r\n else{\r\n return data;\r\n }\r\n });\r\n columns.push(temp);\r\n } \r\n vm.tableCharts[chartId].dtColumns = columns; \r\n }\r\n \r\n\r\n\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function() { \r\n var defer = $q.defer();\r\n defer.resolve(dataSets.Values);\r\n return defer.promise; \r\n }).withDOM(\r\n '<\"html5buttons\"B>lTfgitp')\r\n .withOption('lengthChange', false)\r\n .withOption('order', [])\r\n .withButtons([{extend:'colvis'},{extend:'csv'},{extend:'print'},{extend:'copy'}])\r\n .withOption('createdRow', createdRow); \r\n }\r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n }\r\n});\r\n\r\n\nangular.module('inspinia').service('WareHouseListService', function (ApiURL, SchedulingAPI, $window, $http,AcessoriesURL) {\r\n\r\n this.GetAllWareHouse = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllWareHouse';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetWareHouseById = function (warehouseId,loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetWareHouseById?wareHouseId='+ warehouseId;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetAllWareHouseManagerList = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllWareHouseManagerList';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.CreateWareHouse = function (warehouseModel, loggedinUser, token) {\r\n var url = AcessoriesURL + \"/api/WareHouse/CreateWareHouse\";\r\n return $http.post(url, warehouseModel, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UpdateWareHouse = function (warehouseModel, loggedinUser, token) {\r\n var url = AcessoriesURL + \"/api/WareHouse/UpdateWareHouse\";\r\n return $http.put(url, warehouseModel, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.DetachWarehouse = function (warehouseId,loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/DetachWareHouseManager?wareHouseId='+ warehouseId;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('WareHouseListController', function (teamCardService,WareHouseListService, ReferService,$timeout, MainService, $rootScope, DTColumnBuilder, $compile, $q, ProjectCreationService, $scope, TeamProfileService, $stateParams, $uibModal, $localStorage, $log, $state, DTOptionsBuilder, PlanningResourseMapService, DashboardService, DTColumnDefBuilder, ImageUrl) {\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n $rootScope.rootScopeMessage = '';\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.users = [];\r\n vm.FilterSwitch = false;\r\n vm.client = 1;\r\n vm.tab = 1;\r\n vm.skill = '';\r\n vm.workArea = '';\r\n var skillsArray;\r\n var circleArray;\r\n var ProjectModal = {};\r\n var userIndex = 0;\r\n vm.filteredProperties = {};\r\n vm.selectAll = false;\r\n vm.showMinus = false;\r\n vm.searchText = \"\";\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.dtInstance = {};\r\n var witemNames = \"\";\r\n var witemValues = \"\";\r\n var wsSDate = '';\r\n var wsEDate = '';\r\n var uPageIndex = 1;\r\n var uwPageIndex = 1;\r\n var uPageSize = 10;\r\n var uwPageSize = 10;\r\n vm.userPageListCount= 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n\r\n vm.imageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else {\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function () {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n\r\n }\r\n\r\n vm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\nvm.CreateWareHouseModel = function (asset) {\r\n vm.createwarehouseModelOpen = $uibModal.open({\r\n templateUrl: 'CreateWareHouseModel.html',\r\n size: 'lg',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n}\r\n vm.CloseWareHouseModel = function () {\r\n vm.createwarehouseModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.warehouseType = '';\r\n vm.warehouseName = '';\r\n vm.addressLine1 = '';\r\n vm.addressLine2 = '';\r\n vm.City = '';\r\n vm.State = '';\r\n vm.pincode = '';\r\n }\r\n\r\n\r\n vm.UpdateWarehouseModel = function () {\r\n vm.updatewarehouseModelOpen = $uibModal.open({\r\n templateUrl: 'UpdateWarehouseModel.html',\r\n size: 'lg',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseUpdateWarehouseModel = function () {\r\n vm.updatewarehouseModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.warehouseType = '';\r\n vm.warehouseName = '';\r\n vm.addressLine1 = '';\r\n vm.addressLine2 = '';\r\n vm.City = '';\r\n vm.State = '';\r\n vm.pincode = '';\r\n }\r\n \r\n\r\n\r\n vm.exportData = function () {\r\n var blob = new Blob([document.getElementById('tab-1').innerHTML], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, \"Report.xls\");\r\n };\r\n\r\n vm.getAllSkills = function () {\r\n TeamProfileService.getAllSkills().then(function (resp) {\r\n vm.skills = resp.data;\r\n for (var index = 0; index < vm.skills.length; index++) {\r\n skillsArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.getAllCircles = function (loggedinUser) {\r\n ProjectCreationService.GetAllCircles(loggedinUser).then(function (resp) {\r\n vm.circles = resp.data;\r\n for (var index = 0; index < vm.circles.length; index++) {\r\n circleArray.push({\r\n workArea: vm.circles.circle\r\n });\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.AddTeamMember = function () {\r\n $state.go('index.TeamCreate', {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileView = function (userid) {\r\n $state.go('index.TeamProfile', {\r\n userId: userid\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n\r\n vm.filtermodal = function () {\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'Filter.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n\r\n\r\n vm.CloseModal = function () {\r\n ProjectModal.close();\r\n }\r\n $scope.selectedOption = '';\r\n \r\n\r\n vm.editTeamMember = function (userName) {\r\n $state.go('index.TeamEdit', {\r\n userId: userName\r\n });\r\n }\r\n vm.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userClass_status = true;\r\n vm.userSingle = function () {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.close360View = function () {\r\n $scope.userClass_status = true;\r\n $scope.myvalue = false;\r\n }\r\n \r\n \r\n vm.OpenWarehouseInventoryList = function(warehouseID){\r\n $state.go('index.WareHouseItemList',{\r\n warehouseId: warehouseID\r\n }, { reload: true });\r\n }\r\n\r\n\r\n vm.DeactivateUser = function (userInfo) {\r\n teamCardService.updateUserStatus(loggedinUser, userInfo.UserId, userInfo, token).then(function (resp) {\r\n if (resp.data.UserStatus == 'Active') {\r\n vm.userInfo.UserStatus = 'Inactive';\r\n // vm.UserStatus = \"Deactivate\";\r\n // vm.Status = \"Activated\";\r\n } else if (resp.data.UserStatus == 'Inactive') {\r\n vm.userInfo.UserStatus = 'Active';\r\n // color:'#eee';\r\n // vm.Status = \"Deactivated\";\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n })\r\n }\r\n\r\n vm.ActivateUser = function (userInfo) {\r\n teamCardService.updateUserStatus(loggedinUser, userInfo.UserId, userInfo, token).then(function () {\r\n if (vm.checkboxVal == true) {\r\n if (vm.userInfo.UserStatus == 'Active') {\r\n vm.userInfo.UserStatus = 'Inactive';\r\n } else if (vm.userInfo.UserStatus == 'Inactive') {\r\n vm.userInfo.UserStatus = 'Active';\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n vm.search = function () {\r\n if (vm.Name == true) {\r\n if (angular.isDefined(vm.teamMember_name)) {\r\n vm.filteredProperties.FirstName = vm.teamMember_name;\r\n }\r\n\r\n } if (vm.ProjectCheckBox == true) {\r\n if (angular.isDefined(vm.Project)) {\r\n vm.filteredProperties.Project = vm.Project;\r\n }\r\n \r\n } if (vm.skillCheckBox == true) {\r\n if (angular.isDefined(vm.skill)) {\r\n vm.filteredProperties.SkillSet = vm.skill[0];\r\n }\r\n } if (vm.Capture == true) {\r\n if (angular.isDefined(vm.workArea)) {\r\n vm.filteredProperties.Locations = vm.workArea[0];\r\n }\r\n } if (vm.statusCheckBox == true) {\r\n if (angular.isDefined(vm.status)) {\r\n vm.filteredProperties.status = vm.status;\r\n }\r\n }\r\n ProjectModal.close();\r\n } \r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n \r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n WareHouseListService.GetAllWareHouse(loggedinUser, token).then(function (resp) {\r\n vm.teamLists = resp.data;\r\n if (!vm.teamLists.length) {\r\n vm.client = 1;\r\n } else {\r\n vm.client = 3;\r\n vm.userInfo = vm.teamLists[userIndex];\r\n }\r\n\r\n defer.resolve(vm.teamLists);\r\n })\r\n return defer.promise;\r\n\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withButtons([{extend:'copy'},{extend:'csv', filename: 'Warehouse_List'},{extend:'print', title: 'Warehouse List' }])\r\n .withOption('rowCallback', rowCallback);\r\n\r\n function createdRow(row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n function rowCallback(nRow, aData, iDisplayIndex, iDisplayIndexFull) {\r\n $('td', nRow).unbind('click');\r\n $('td', nRow).bind('click', function () {\r\n // $scope.$apply(function () {\r\n // vm.ProfileData(aData.UserId);\r\n // });\r\n });\r\n return nRow;\r\n }\r\n\r\n\r\n\r\n function getAllStates() {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n \r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n \r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n vm.OpenDetachModal = function (warehouseId) {\r\n vm.detachWarehouseId = warehouseId\r\n vm.AllocateModal = $uibModal.open({\r\n templateUrl: \"detachModal.html\",\r\n backdrop: \"static\",\r\n size: \"md\",\r\n scope: $scope,\r\n });\r\n };\r\n \r\n vm.closeDetachModal = function () {\r\n vm.AllocateModal.close();\r\n vm.detachWarehouseId = \"\";\r\n };\r\n \r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle('Warehouse ID').renderWith(function (data) {\r\n return '';\r\n }),\r\n DTColumnBuilder.newColumn('strWareHouseName').withTitle('Warehouse Name').notSortable(),\r\n DTColumnBuilder.newColumn('strWareHouseType').withTitle('Type').notSortable(),\r\n DTColumnBuilder.newColumn(null).withTitle('Address').notSortable().renderWith(function (data) {\r\n return data.strAddressLine1 + ', ' + data.strAddressLine2;\r\n }),\r\n DTColumnBuilder.newColumn('strState').withTitle('State').notSortable(),\r\n DTColumnBuilder.newColumn('strCity').withTitle('City').notSortable(),\r\n DTColumnBuilder.newColumn('strPincode').withTitle('PinCode').notSortable(),\r\n DTColumnBuilder.newColumn('strManagerId').withTitle('Manager ID').notSortable(),\r\n DTColumnBuilder.newColumn('strManagerName').withTitle('Manager Name').notSortable(),\r\n DTColumnBuilder.newColumn(null).withTitle('Status').notSortable().renderWith(function (data) {\r\n return '
' +\r\n '
' +\r\n '' +\r\n '' +\r\n '
' +\r\n '
';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n return '';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Detach').notSortable().renderWith(function (data) {\r\n if (data.strManagerId) {\r\n return '';\r\n } else {\r\n return '';\r\n }\r\n })\r\n ]; \r\n \r\n vm.GetAllWareHouseManagerList = function () {\r\n WareHouseListService.GetAllWareHouseManagerList(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp.data) {\r\n vm.WarehouseManagersList = resp.data;\r\n // vm.WarehouseManagersList.forEach({\r\n \r\n // })\r\n }\r\n });\r\n }\r\n\r\n\r\n vm.GetWareHouseById = function (warehouseId,type) {\r\n vm.ActionType = type;\r\n\t\t\tWareHouseListService.GetWareHouseById(warehouseId,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.AllWarehouseData = resp.data;\r\n vm.WareHouseId = vm.AllWarehouseData.strWareHouseId;\r\n vm.warehouseName = vm.AllWarehouseData.strWareHouseName;\r\n vm.warehouseType = vm.AllWarehouseData.strWareHouseType;\r\n vm.AllocatedManager = vm.AllWarehouseData.strManagerId;\r\n vm.addressLine1 = vm.AllWarehouseData.strAddressLine1;\r\n vm.addressLine2 = vm.AllWarehouseData.strAddressLine2;\r\n vm.State = vm.AllWarehouseData.strState;\r\n vm.selectedState(vm.State);\r\n vm.City = vm.AllWarehouseData.strCity;\r\n vm.pincode = vm.AllWarehouseData.strPincode;\r\n vm.Location = vm.AllWarehouseData.strLocation;\r\n vm.IsWareHouseActive = vm.AllWarehouseData.bIsWareHouseActive;\r\n if(vm.ActionType == 'editData'){\r\n vm.UpdateWarehouseModel();\r\n vm.GetAllWareHouseManagerList();\r\n }\r\n else if(vm.ActionType == 'statusUpdate'){\r\n vm.ActivateOrDeactivateWareHouse(!vm.AllWarehouseData.bIsWareHouseActive);\r\n }\r\n \r\n\t\t\t\t}\r\n else{\r\n vm.showFailure(\"Failed\",\"Please try again later.\")\r\n }\r\n\t\t\t});\r\n\t\t}\r\n\r\n \r\n vm.DetachWarehouse = function () {\r\n\t\t\tWareHouseListService.DetachWarehouse(vm.detachWarehouseId,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n vm.closeDetachModal();\r\n vm.showSuccess(\"Success\",\"Manager Detached Successfully.\")\r\n $timeout(function () {\r\n vm.dtInstance.reloadData();\r\n }, 2000);\r\n\t\t\t\t}\r\n else{\r\n vm.showFailure(\"Failed\",\"Please try again later.\")\r\n }\r\n\t\t\t});\r\n\t\t}\r\n\r\n vm.CreateWareHouse = function () {\r\n vm.DisableCreateButton(false);\r\n var warehouseModel = {\r\n \"strWareHouseType\": vm.warehouseType,\r\n \"strWareHouseName\": vm.warehouseName,\r\n \"strAddressLine1\": vm.addressLine1,\r\n \"strAddressLine2\": vm.addressLine2,\r\n \"strCity\": vm.City,\r\n \"strState\": vm.State,\r\n \"strPincode\": vm.pincode,\r\n \"strLocation\": \"\"\r\n }\r\n vm.warehouse_form.submitted = true;\r\n if (vm.warehouse_form.$valid) {\r\n vm.DisableCreateButton(true);\r\n WareHouseListService.CreateWareHouse(warehouseModel, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Warehouse created successfully.\");\r\n vm.CloseWareHouseModel();\r\n $timeout(function () {\r\n vm.dtInstance.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.UpdateWareHouse = function () {\r\n vm.DisableCreateButton(false);\r\n var warehouseModel = {\r\n \"strWareHouseId\": vm.WareHouseId,\r\n \"strWareHouseType\": vm.warehouseType,\r\n \"strWareHouseName\": vm.warehouseName,\r\n \"strAddressLine1\": vm.addressLine1,\r\n \"strAddressLine2\": vm.addressLine2,\r\n \"strCity\": vm.City,\r\n \"strState\": vm.State,\r\n \"strPincode\": vm.pincode,\r\n \"strLocation\": \"\",\r\n \"strManagerId\": vm.AllocatedManager,\r\n \"bIsWareHouseActive\" : vm.IsWareHouseActive\r\n }\r\n vm.warehouse_update_form.submitted = true;\r\n if (vm.warehouse_update_form.$valid) {\r\n vm.DisableCreateButton(true);\r\n WareHouseListService.UpdateWareHouse(warehouseModel, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Warehouse updated successfully.\");\r\n vm.CloseUpdateWarehouseModel();\r\n $timeout(function () {\r\n vm.dtInstance.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.ActivateOrDeactivateWareHouse = function (newStatus) {\r\n var warehouseActiveModel = {\r\n \"strWareHouseId\": vm.WareHouseId,\r\n \"strWareHouseType\": vm.warehouseType,\r\n \"strWareHouseName\": vm.warehouseName,\r\n \"strAddressLine1\": vm.addressLine1,\r\n \"strAddressLine2\": vm.addressLine2,\r\n \"strCity\": vm.City,\r\n \"strState\": vm.State,\r\n \"strPincode\": vm.pincode,\r\n \"strLocation\": \"\",\r\n \"bIsWareHouseActive\": newStatus\r\n }\r\n WareHouseListService.UpdateWareHouse(warehouseActiveModel, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Warehouse status updated successfully.\");\r\n $timeout(function () {\r\n vm.dtInstance.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n});\nangular.module('inspinia').service('WareHouseItemListService', function (ApiURL, AcessoriesURL, SchedulingAPI, $window, $http) {\r\n\r\n this.GetInventoryByWareHouseId = function (data,loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetInventoryByWareHouseId';\r\n return $http.put(url,data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetInventoryByWareHouseId_CSV = function (data,loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetInventoryByWareHouseId_CSV';\r\n return $http.put(url,data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetInventoryDashboardByWareHouseId = function (data,loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetInventoryDashboardByWareHouseId';\r\n return $http.put(url,data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.AddInventoryToWareHouse = function (warehouseModel, loggedinUser, token) {\r\n var url = AcessoriesURL + \"/api/MMFPart/AddInventoryToWareHouse\";\r\n return $http.post(url, warehouseModel, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('WareHouseItemListController', function (WareHouseItemListService,InventoryCartService,MainService,InventoryItemListService, $stateParams, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvar warehouseId = $stateParams.warehouseId;\r\n vm.IsCentralWarehouse = $localStorage.IsCentralWarehouse;\r\n\t\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.allInventoryPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\tvm.createItemMoreModal = function () {\r\n\t\t\tvm.GetAllVisibleMasterParts();\r\n\t\t\tvm.showEditList = true;\r\n\t\t\tvm.showAction = false;\r\n\t\t\tvm.moreitemModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'AddMoreItemModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closecreateItemMoreModal = function () {\r\n\t\t\tvm.moreitemModal.close();\r\n\t\t\tvm.filters =[];\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t}\r\n\t\tvm.clearFilter = function (){\r\n\t\t\tvm.SearchText = '';\r\n\t\t\tvm.brandName = '';\r\n\t\t\tvm.productGroup = '';\r\n\t\t\tvm.partName = '';\r\n\t\t\tvm.selectedPart = '';\r\n\t\t\tvm.GetInventoryByWareHouseId();\r\n\t\t}\r\n\t\tvm.StockType = '';\r\n\r\n\t\t// Function to set the selected item\r\n\t\tvm.setSelectedItem = function(item) {\r\n\t\t\tvm.StockType = item;\r\n\t\t vm.GetInventoryByWareHouseId();\r\n\t\t vm.GetInventoryDashboardByWareHouseId();\r\n\t\t};\r\n\t\tvm.filters = [];\r\n\t\tvm.showAction = true;\r\n\t\tvm.showEditList = true;\r\n\t\tvm.showError = false;\r\n\r\n\t\t// Initialize a new filter object\r\n\t\tvm.newFilter = {\r\n\t\t\tstrMMFPartId: '',\r\n\t\t\t// nQuantityAvailable: 0,\r\n\t\t\tnTotalDeadStock: 0,\r\n\t\t\tnTotalGoodStock: 0\r\n\t\t};\r\n\r\n\t\r\n\t\tvm.addNewFilter = function (filter) {\r\n\t\t\tvm.filters.push(angular.copy(filter));\r\n\t\t\tvm.resetNewFilter();\r\n\t\t\tvm.showEditList = false;\r\n\t\t\tvm.showError = false; \r\n\t\t};\r\n\r\n\t\t// Save filter with validation\r\n\t\tvm.saveFilter = function (form) {\r\n\t\t\tif (vm.newFilter.strMMFPartId) {\r\n\t\t\t\tvm.addNewFilter(vm.newFilter);\r\n\t\t\t\tvm.showError = false;\r\n\t\t\t} else {\r\n\t\t\t\tvm.showError = true;\r\n\t\t\t}\r\n\t\t};\r\n\t\t// Delete a filter from the list\r\n\t\tvm.deleteDataFilter = function (filter) {\r\n\t\t\tvar index = vm.filters.indexOf(filter);\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tvm.filters.splice(index, 1);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Reset the new filter form\r\n\t\tvm.resetNewFilter = function () {\r\n\t\t\tvm.newFilter = {\r\n\t\t\t\tstrMMFPartId: '',\r\n\t\t\t\t// nQuantityAvailable: 0,\r\n\t\t\t\tnTotalDeadStock: 0,\r\n\t\t\t\tnTotalGoodStock: 0\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\tvm.addMoreFilter = function () {\r\n\t\t\tvm.showEditList = true;\r\n\t\t};\r\n\r\n\t\tvm.clearError = function () {\r\n\t\t\tvm.showError = false;\r\n\t\t};\r\n\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.AddInventoryToWareHouse = function () {\r\n\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t WareHouseItemListService.AddInventoryToWareHouse(vm.filters, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t vm.showSuccess(\"Success\", \"Inventory added successfully.\");\r\n\t\t\t\t vm.closecreateItemMoreModal();\r\n\t\t\t\t $timeout(function () {\r\n\t\t\t\t\tvm.GetInventoryByWareHouseId();\r\n\t\t\t\t\tvm.GetInventoryDashboardByWareHouseId();\r\n\t\t\t\t }, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t vm.DisableCreateButton(false);\r\n\t\t\t\t vm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t })\r\n\t\t\t}\r\n\t\t \r\n\t\t\t\r\n\t\tvm.clickselectedPart = function (inventoryData) {\r\n\t\t\tvm.sideViewData = inventoryData;\r\n\t\t\tvm.sideViewPartImage = inventoryData.strPartImages;\r\n\t\t\tvm.sideViewPartLength = inventoryData.strPartImages.length;\r\n\t\t\tfor (var i = 0; i < vm.sideViewPartImage.length; i++) {\r\n\t\t\t\tvm.TrainingImageServices(vm.sideViewPartImage[i], i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.TrainingImagebase64 = [];\r\n\r\n\t\tvm.TrainingImageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.TrainingImagebase64[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n\r\n\t\t$scope.totalInvList = 0;\r\n\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t$scope.InventoryPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllInventoryPageListCount = function () {\r\n\t\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t\tPageSize = $scope.inventoryPerPage;\r\n\t\t\t$scope.AllInventoryTablePageChanged($scope.InventoryPagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\t\tPageIndex = newPage;\r\n\t\t\t\tvm.GetInventoryByWareHouseId();\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\tPageIndex = newPage;\r\n\t\t\tvm.GetInventoryByWareHouseId();\r\n\r\n\t\t};\r\n\t\t\r\n\t\tvm.SearchText = '';\r\n\t\tvm.warehouseInvetoryList = [];\r\n\t\tvm.GetInventoryByWareHouseId = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"WareHouseId\": warehouseId,\r\n\t\t\t\t\"SearchText\": vm.SearchText,\r\n\t\t\t\t\"StockType\" : vm.StockType,\r\n\t\t\t\t\"PageIndex\": PageIndex,\r\n\t\t\t\t\"PageSize\": PageSize,\r\n\t\t\t\t\"MMFPartName\": vm.selectedPart,\r\n\t\t\t\t\"ProductGroup\": vm.productGroup,\r\n\t\t\t\t\"BrandName\": vm.brandName,\r\n\t\t\t\t\"PartSubGroup\": vm.partName,\r\n\t\t\t}\r\n\t\t\tWareHouseItemListService.GetInventoryByWareHouseId(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.warehouseInvetoryList = resp.data.ListMMFPartModelRes;\r\n\t\t\t\t\tvm.sideViewData = vm.warehouseInvetoryList[0];\r\n\r\n\t\t\t\t\tvm.sideViewPartImage = vm.sideViewData.strPartImages;\r\n\t\t\t\t\tvm.sideViewPartLength = vm.sideViewData.strPartImages.length;\r\n\t\t\t\t\tfor (var i = 0; i < vm.sideViewPartImage.length; i++) {\r\n\t\t\t\t\t\tvm.TrainingImageServices(vm.sideViewPartImage[i], i);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$scope.totalInvList = resp.data.RecordCount;\r\n\t\t\t\t\tif (vm.warehouseInvetoryList.length < vm.allInventoryPageListCount)\r\n\t\t\t\t\t\tvm.inventoryListLength = $scope.totalInvList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.inventoryListLength = PageIndex * vm.allInventoryPageListCount;\r\n\t\t\t\t\tif (PageIndex == 1)\r\n\t\t\t\t\t\tvm.pageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.pageindexCount = (((PageIndex - 1) * vm.allInventoryPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetInventoryByWareHouseId();\r\n\r\n\t\tvm.GetInventoryDashboardByWareHouseId = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"WareHouseId\": warehouseId,\r\n\t\t\t\t\"SearchText\": vm.SearchText,\r\n\t\t\t\t\"StockType\" : vm.StockType,\r\n\t\t\t\t\"PageIndex\": PageIndex,\r\n\t\t\t\t\"PageSize\": PageSize,\r\n\t\t\t\t\"PartName\": vm.selectedPart,\r\n\t\t\t\t\"PartCategoryGroup\": vm.productGroup,\r\n\t\t\t\t\"PartBrand\": vm.brandName,\r\n\t\t\t\t\"PartSubGroup\": vm.partName,\r\n\t\t\t}\r\n\t\t\tWareHouseItemListService.GetInventoryDashboardByWareHouseId(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.InvetoryDashboardData = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetInventoryDashboardByWareHouseId();\r\n\r\n\t\tvm.GetInventoryByWareHouseId_CSV = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"WareHouseId\": warehouseId,\r\n\t\t\t\t\"SearchText\": vm.SearchText,\r\n\t\t\t\t\"StockType\" : vm.StockType,\r\n\t\t\t\t\"PageIndex\": PageIndex,\r\n\t\t\t\t\"PageSize\": PageSize,\r\n\t\t\t\t\"MMFPartName\": vm.selectedPart,\r\n\t\t\t\t\"ProductGroup\": vm.productGroup,\r\n\t\t\t\t\"BrandName\": vm.brandName,\r\n\t\t\t\t\"PartSubGroup\": vm.partName,\r\n\t\t\t}\r\n\t\t\tWareHouseItemListService.GetInventoryByWareHouseId_CSV(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvar csvData = resp.data;\r\n\r\n\t\t\t\t\t// Create a Blob from the CSV data\r\n\t\t\t\t\tvar blob = new Blob([csvData], { type: 'text/csv' });\r\n\r\n\t\t\t\t\t// Create a URL for the Blob\r\n\t\t\t\t\tvar url = window.URL.createObjectURL(blob);\r\n\r\n\t\t\t\t\t// Create an anchor element for the download link\r\n\t\t\t\t\tvar a = document.createElement('a');\r\n\t\t\t\t\ta.href = url;\r\n\t\t\t\t\ta.download = 'warehouse_inventory.csv'; // Set the desired filename\r\n\r\n\t\t\t\t\t// Simulate a click to trigger the download\r\n\t\t\t\t\ta.click();\r\n\r\n\t\t\t\t\t// Release the URL object\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\t\t\r\n\r\n\t\tvm.partName = '';\r\n\t\tvm.productGroup = '';\r\n\t\tvm.brandName = '';\r\n\t\tvm.searchTag = '';\r\n\t\tvm.masterInvetoryList = [];\r\n\t\tvm.GetAllVisibleMasterParts = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"PartName\": vm.selectedPart,\r\n\t\t\t\t\"PartCategoryGroup\": vm.productGroup,\r\n\t\t\t\t\"PartBrand\": vm.brandName,\r\n\t\t\t\t\"PartSubGroup\": vm.partName,\r\n\t\t\t\t\"SearchText\": vm.searchTag\r\n\t\t\t}\r\n\t\t\tInventoryItemListService.GetAllVisibleMasterParts(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.masterInvetoryList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetItemBrandName = function () {\r\n\t\t\tInventoryCartService.GetItemBrandName(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.BrandList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t};\r\n\t\tvm.GetItemBrandName();\r\n\r\n\r\n\t\tvm.GetItemGroupName = function () {\r\n\t\t\tif (!vm.brandName) {\r\n\t\t\t\tvm.brandName = \"\";\r\n\t\t\t}\r\n\t\t\tInventoryCartService.GetItemGroupName(vm.brandName, loggedinUser, token).then(\r\n\t\t\t\tfunction (resp) {\r\n\t\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\t\tvm.PartNameList = resp.data;\r\n\t\t\t\t\t\tvm.changeCategoryFilter();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t};\r\n\t\tvm.GetItemGroupName();\r\n\t\tvm.GetItemListName = function () {\r\n\t\t\tif (!vm.productGroup) {\r\n\t\t\t\tvm.productGroup = \"\";\r\n\t\t\t}\r\n\t\t\tInventoryCartService.GetItemListName(vm.brandName,vm.productGroup,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.PartList = resp.data;\r\n\t\t\t\t\tvm.changeCategoryFilter();\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t};\r\n\t\tvm.GetItemListName();\r\n\r\n\t\tvm.PartListWithFilter = [];\r\n\r\n\t\tvm.GetItemPartName = function () {\r\n\t\t vm.PartListWithFilter = [];\r\n\t\t if (!vm.partName) {\r\n\t\t\tvm.partName = \"\";\r\n\t\t }\r\n\t\t InventoryItemListService.GetItemPartName(vm.brandName,vm.productGroup,vm.partName,loggedinUser,token).then(function (resp) {\r\n\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t vm.PartListWithFilter = resp.data;\r\n\t\t\t}\r\n\t\t }, vm.showFailure);\r\n\t\t};\r\n\t\tvm.GetItemPartName();\r\n\r\n\t}\r\n\r\n});\nangular.module('inspinia').service('SlotAllocationService', function (ApiURL, PublicApiURL, ActivityURL, LocationURL, $http, FreelancerURL, SchedulingAPI) {\r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/new/byStatus?reqUserId=kanika.bansal%40innotiontech.com\r\n this.GetTicketsByStatus = function (status, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/' + status + '/byStatus?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.GetActiveUser = function (status, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/' + status + '/byStatus?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Get all freelancers\r\n //http://192.168.0.80:92/FreelancerAPI/api/FreeLancerUser/kanika.bansal%40innotiontech.com/GetAllUsers\r\n // https://login.mymobiforce.com/FreelancerAPI/api/FreelancerUser/GetUserDetailsforSupervisior\r\n this.GetListAllFreelancers = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/GetUserDetailsforSupervisior';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/FreeLancerUser/Kanika.bansal%40innotiontech.com/GetAllFreLancerWithFilters?itemNames=UserStatus%2CRole&itemValues=Active%2CField%20Engineer\r\n this.GetAllFreelancersWithFilters = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllFreLancerWithFilters?itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // url = https://product.mymobiforce.com/schedulingAPI/api/AutoJobBroadcast/BroadcastJobsManualMode\r\n this.AutoBroadcastAllNewJobsManualMode = function (loginUserId, ticketIds, token) {\r\n var url = SchedulingAPI + '/api/AutoJobBroadcast/BroadcastJobsManualMode';\r\n return $http.post(url, ticketIds, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId }\r\n });\r\n\r\n /*var url = SchedulingAPI + 'api/AutoJobBroadcast/BroadcastJobsManualMode'; \r\n return $http.post(url, ticketIds, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });*/\r\n }\r\n\r\n this.PullBackJob = function (loginUserId, ticketIds, token) {\r\n var url = ApiURL + '/api/Ticket/PullBackFromDispatchSupervisor';\r\n return $http.put(url, ticketIds, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId }\r\n });\r\n }\r\n\r\n this.callToTechnicianApi = function (loggedinUser, userid, token) {\r\n $http.get(ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId=' + userid,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\");\r\n }\r\n else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.callToTechnicianInBroadcastState = function (loggedinUser, userid, TicketId, token) {\r\n $http.get(ApiURL + '/api/CallPatching/ClickToCallFieldTeamInTicketBroadcastState?userId=' + userid + '&TicketId=' + TicketId,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\");\r\n }\r\n else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.GetAllWorkOrderJob = function (loggedinUser, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/GetAllWorkOrderJob?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.getAccounts = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get accounts\");\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/User/Kanika/byReportingToWithJobCount?reqUserId=kanika.bansal%40innotiontech.com\r\n this.GetTicketsById = function (ticketId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + loggedinUser + '/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/CoreAPI/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=FollowUp\r\n this.GetReasonsByStatus = function (loggedinUser, token, status) {\r\n var url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + status;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n //Get Tickets by filter\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/kanika.bansal%40innotiontech.com/TicketStatus/Broadcasted/GetTicketsByUser\r\n //https://test.mymobiforce.com/coreapi/api/Ticket/reqUserId/GetTicketsForAssignation?itemNames=itemNames&itemValues=itemValues\r\n\r\n this.GetTicketsByFilter = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedinUser + '/GetTicketsForAssignation?itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n //Get Users By Filter\r\n\r\n //\r\n // http://192.168.0.80:92/CoreAPI/api/User/kanika.bansal%40innotiontech.com/UserStatus/Active/getusersbyfilters\r\n this.GetUsersByFilter = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/User/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getusersbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n //Assign Tickets\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/ass/asd/asd/AssignTicket\r\n this.AssignTickets = function (userId, loggedinUser, ticketList, token) {\r\n // var TicketId = ticketList.split(',');\r\n var url = ApiURL + '/api/Ticket/' + userId + '/' + loggedinUser + '/AssignTicketToDispatchSupervisor'\r\n return $http.put(url, ticketList, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n\r\n // Bid Recieved Api\r\n // http://192.168.0.80:92/FreelancerAPI/api/BID/T0000000039/Received/kanika.bansal@innotiontech.com/byStatus\r\n this.GetBidReceivedByStatus = function (loggedinUser, ticketId, status, token) {\r\n var url = FreelancerURL + '/api/BID/GetLeadsByStatus?TicketId' + '=' + ticketId + '&' + 'leadStatus' + '=' + status\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n //bid deny https://product.mymobiforce.com/freelancerAPI/api/BID/GetLeadsByStatus?TicketId=T1140000016977&leadStatus=Deny\r\n this.GetBidDeny = function (loggedinUser, ticketId, status, token) {\r\n var url = FreelancerURL + '/api/BID/GetLeadsByStatus?TicketId' + '=' + ticketId + '&' + 'leadStatus' + '=' + status\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n //https://product.mymobiforce.com/FreelancerAPI/api/BID/GetLeadsByStatus?TicketId=T1140000091078&leadStatus=Sent&filter=Online\r\n //https://product.mymobiforce.com/freelancerAPI/api/BID/GetLeadsByStatus?TicketId=T1140000016977&leadStatus=Sent\r\n this.GetBidSentByStatus = function (loggedinUser, ticketId, status, token, userfilter) {\r\n var url = FreelancerURL + '/api/BID/GetLeadsByStatus?TicketId' + '=' + ticketId + '&' + 'leadStatus' + '=' + status + '&' + 'filter' + '=' + userfilter\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n this.GetFeedbackByUserId = function (loggedinUser, token, userid) {\r\n var url = FreelancerURL + '/api/BID/GetFeedbackByUserId?UserId=' + userid;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/akshit.chauhan%40innotiontech.com/TicketStatus/Broadcasted/getjobsbyfilter\r\n this.GetBroadcastedBids = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = FreelancerURL + '/api/BID/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getjobsbyfilter';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Assign Bids\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/kanika.bansal%40innotiontech.com/T0000000040/pri/acceptBIDAssignJob?jobAssignRate=100&jobAssignGrossRate=0\r\n this.AssignReceivedBid = function (loggedinUser, ticketId, userId, token) {\r\n var url = FreelancerURL + '/api/BID/' + loggedinUser + '/' + ticketId + '/' + userId + '/acceptBIDAssignJob';\r\n return $http.put(url, {}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //BroadCast Jobs/Bids\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/createbidforselectedteam?reqUserId=asdasd\r\n\r\n this.BroadCastJobs = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/createbidforselectedteam?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Get Users By Role\r\n //http://115.124.122.225/coreapi/api/User/Supervisor/byRole?reqUserId=satyendratiwari124%40gmail.com\r\n //http://192.168.0.80:92/CoreAPI/api/User/Supervisor/SkillSet/AC%20Repair/byRole?reqUserId=Kanika.bansal%40innotiontech.com\r\n this.GetUsersByRole = function (loggedinUser, role, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/User/' + role + '/' + itemNames + '/' + itemValues + '/byRole?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Get All Vendor\r\n //http://192.168.0.80:92/CoreAPI/api/Vendor/kanika.bansal%40innotiontech.com/getallvendors\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/Vendor/Kanika.bansal%40innotiontech.com/VendorLocations/Maharashtra/getvendorsbyfilters\r\n this.GetAllVendors = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getvendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetFreelancerVendorsByFilters = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getfreelancervendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n // https://perf.mymobiforce.com/coreapi/api/Vendor/U350000000001/VendorStatus/Active/getfixedvendorsbyfilters\r\n this.GetFixedVendorsByFilters = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getfixedvendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/ankur.sharma%40innotiontech.com/byUserId?reqUserId=akshit.chauhan%40innotiontech.com\r\n\r\n this.GetTicketsByUserId = function (loggedinUser, UserId, token) {\r\n var url = ApiURL + '/api/Ticket/' + UserId + '/byUserId?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/freelancerapi/api/BID/CreateRoutingBid?reqUserId=U350000000001\r\n this.RouteJobsforUser = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/CreateRoutingBid?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.getAllStateTech = function (loggedinUser, token) {\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId=' + loggedinUser + '®ion=INDIA';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // https://product.mymobiforce.com/coreapi/api/Ticket/TicketRejectionHistory?TicketId=T1140000092053\r\n\r\n this.getRejectHistory = function (TicketId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/TicketRejectionHistory?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Ticket/GetTicketsForAssignationByCHDAccount?fromDate=2021-06-01&toDate=2021-06-10&reqUserId=U00000000412&itemNames=Search&itemValues=J009&textItemNames=&textItemValues=&templateCols=&templateItemNames=&templateItemValues=&DateField=CreatedOn&PageIndex=1&PageSize=10\r\n this.getAllJobTickets = function (supervisorId, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, DateField, PageIndex, PageSize, SortType, SortField) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRangeWithDynaPagingForCHDDashboard?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&SortType=' + SortType + '&SortField=' + SortField;\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n\r\n this.getAllJobTicketsCopyForPagging = function (supervisorId, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, DateField, PageIndex, PageSize, SortType, SortField) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRangeWithDynaPagingForCHDListing?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&SortType=' + SortType + '&SortField=' + SortField;\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n\r\n //http://localhost:56749/api/Ticket/GetAssignedTicketforUser?UserId=U400000000395&reqUserId=U00000000079\r\n this.GetAssignedTicketforUser = function (UserId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/GetAssignedTicketforUser?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n this.GetJobTicket = function (ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + $localStorage.loggedInUserId + '/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetSchedulingEvaluationResult = function (data, reqUserId, token) {\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetFavoriteFR?reqUserId=' + reqUserId;\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': reqUserId }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetFavoriteFR?reqUserId=U400000000001\r\n this.GetAllPrefereTalentPool = function (data, reqUserId, token) {\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetPreWorkedWith?reqUserId=' + reqUserId;\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': reqUserId }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetPreWorkedWith?reqUserId=U400000000001\r\n this.GetAllTechnician = function (data, reqUserId, token) {\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetSchedulingEvaluationResult?reqUserId=' + reqUserId;\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': reqUserId }\r\n });\r\n }\r\n\r\n this.BroadCastJobsforUser = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/createBidFromAssistedScheduling?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.AcceptJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.getPdfReport = function (loggedinUser, ticketID, token) {\r\n var url = ApiURL + '/api/Report/GeneratePdfReportForApprovedJob?TicketId=' + ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.PullBackTicket = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/returnticket';\r\n return $http.put(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.RejectJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.ConvertToNewJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.UpdateHoldingStatus = function (loggedInUserId, ticketId, holdingStatus, reason, Remark, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/ticketholding?HoldingStatus=' + holdingStatus + '&Reason=' + reason + '&Remark=' + Remark;\r\n return $http.put(url, {}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.downloadOnSiteReport = function (loggedInUserId, token, TicketId) {\r\n var url = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n });\r\n }\r\n\r\n this.GetCancellationReasons = function (AuditTicketId, status, loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketCancelationReasonController/' + loggedInUserId + '/getCancellationReasons?AtStatus=' + status + '&TicketId=' + AuditTicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetPullBacknReasons = function (loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + 'PullBack';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetUserFeedbackOption = function (loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + 'userfeedback';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetUserByReportingTo = function (loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TerritoryMappingUser/GetUserByReportingTo';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.PullBackTicketFromTechnician = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/PullBackTicketFromTechnician';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n // https://testg2.mymobiforce.com/coreapi/api/UserCallInputs/UserDataUpdateRequest\r\n\r\n this.UserDataUpdateRequest = function (data, loggedInUserId, token) {\r\n var url = ApiURL + '/api/UserCallInputs/UserDataUpdateRequest';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.UserPenaltyUpdate = function (data, loggedInUserId, token) {\r\n var url = ApiURL + '/api/BonusPenalty/ApplyPaneltyForUser';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n this.UpdateJobServerCancel = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobServerCancel';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.SendCancelCodeToCustomer = function (SendCodeModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/SendCancelCodeToCustomer';\r\n return $http.put(url, SendCodeModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.CancelTicket = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/CancelTicket?reqUserId=' + loggedInUserId + '&TicketId=' + ticketId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.TBCCancelationAudit = function (data, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobAudit';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.updateTicketSettlement = function (data, token, loggedInUserId, success, failure) {\r\n\r\n var url = ApiURL + \"/api/Ticket/setsettlementstatus\"\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.UpdateFollowUpReason = function (data, files, token, loggedInUserId, success, failure) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"ActivityModel\", followupdata);\r\n\r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUserId }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.getCustomerJobCardbyJobId = function (accountId, jobId, token, success, failure) {\r\n $http.get(ApiURL + \"/api/GetCustomerJobCardbyJobId/\" + jobId + \"/\" + accountId + \"/GetCustomerJobCardbyJobId\", {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': accountId\r\n }\r\n }).then(function (res) {\r\n if (res && res.data && success) {\r\n success(res.data);\r\n } else if (failure) {\r\n failure();\r\n }\r\n });\r\n }\r\n\r\n this.AddSiteAuditwithAttachment = function (data, files, token, loggedinUser) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"AuditRequestModel\", followupdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/Upload/PostMediaFileWithAuditObject';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.getFixedUserInfo = function (userId, loggedInUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId + '/' + loggedInUser + '/' + 'byUserIdWithJobCount';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUser }\r\n })\r\n }\r\n\r\n this.getJobsByUserId = function (status, userId, loggedinUser, token, PageIndex, PageSize, OrderBy, SortType) {\r\n var url = ApiURL + \"/api/CallPatching/\" + userId + \"/\" + status + \"/byUserIdStatusforCHDWithDynPaging?\" + 'PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&OrderBy=' + OrderBy + '&SortType=' + SortType;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAvailableSlots = function (selectedDate, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/GetAvailableSlotsForBGVerification?date=' + selectedDate;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n\r\n }\r\n });\r\n }\r\n\r\n this.BookSlotForSMEInterationWeb = function (userId,selectedDate, slotIndex, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/BookSlotForSMEInterationWeb?UserId=' + userId + '&date=' + selectedDate + '&SlotId=' + slotIndex;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.BookSlotForBGVerification = function (userId,selectedDate, slotIndex, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/RescheduleslotForBGVerificationWeb?UserId=' + userId + '&date=' + selectedDate + '&SlotId=' + slotIndex;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetFreelancerJobs = function (userId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerTicket/' + userId + '/' + loggedinUser + '/ByUserId'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n this.GetCustomersByAccount = function (loggedinUser, accountId, token) {\r\n var url = ApiURL + '/api/Customer/GetCustomerByAccountId?accountId=' + accountId\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n\r\n // Code for Slot allocation start from here - simran sharma\r\n\r\n\r\n this.GetAllInteractions = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetAllInteractions';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllInteractionsDashboard = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetAllInteractionsDashboard';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetReportingToMeUsers = function (loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetReportingToMeUsers'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.AssignSlotInteractionToUser = function (data, userId, InteractionType, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/AssignSlotInteractionToUser?AssignToUser=' + userId + '&InteractionType=' + InteractionType;\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n});\nangular.module('inspinia').controller('SlotAllocationController', function (SlotAllocationService,SMEInteractionService, OnBoardingFlowService,ManualAssignationJobService, DashboardService, JobTicketViewService, ReferService, $q, $filter, $log, $state, $localStorage, UIURL, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, uiCalendarConfig, ImageUrl, PublicApiURL, $window) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserSkill = $localStorage.loggedInUser_SkillSet;\r\n var loggedinUserRegion = $localStorage.loggedInUser_Region;\r\n var accountid = $localStorage.accountConfig.AccountId;\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.broadcastSentUser = true;\r\n $scope.toggleForBroadcast = function () {\r\n $scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.timeLineDetail = true;\r\n $scope.openTimeLine = function () {\r\n $scope.timeLineDetail = !$scope.timeLineDetail;\r\n $scope.myvalue = true;\r\n };\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n $scope.toggleMenu = function () {\r\n if ($scope.manualAssignationWrapper === \"hide-nav\") {\r\n $scope.manualAssignationWrapper = \"show-nav\";\r\n }\r\n else {\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n }\r\n };\r\n $scope.hideAllUser = true;\r\n\r\n $scope.showAllUser = function () {\r\n $scope.hideAllUser = true;\r\n };\r\n $scope.hideAllUserbutton = function () {\r\n $scope.hideAllUser = false;\r\n };\r\n $scope.userClass_status = true;\r\n $scope.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.userClass_status = true;\r\n $scope.broadcastSentUser = true;\r\n $scope.timeLineDetail = true;\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n vm.closeFeedbackoption();\r\n }\r\n $scope.close360ViewBroadcaste = function () {\r\n $scope.myvalue = false;\r\n angular.element('#div1').removeClass(\"alpha\");\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userSingle = function () {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.userFilter = true;\r\n $scope.assignJobFilter = function () {\r\n $scope.userFilter = !$scope.userFilter;\r\n $scope.myvalue = true;\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n // $scope.toggleMenu();\r\n };\r\n $scope.minatureSlide = true;\r\n $scope.minatureSlideBtn = function () {\r\n $scope.minatureSlide = !$scope.minatureSlide;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.hideFilter = function () {\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n var token = $localStorage.token;\r\n vm.IsOpenBucketEnabled = $localStorage.IsOpenBucketEnabled;\r\n vm.IsAutoAssignToCHDteam = $localStorage.IsAutoAssignToCHDteam;\r\n vm.IsOpenBucketEnabled = $localStorage.IsOpenBucketEnabled;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n\r\n // variables required for slot allocation\r\n vm.sorttype = \"desc\";\r\n vm.SortType = \"desc\";\r\n vm.SortField = 'CreatedOn';\r\n vm.InteractionList = [];\r\n vm.assignButtonDisable = false;\r\n vm.bGVerifyListLength = 0;\r\n vm.userPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.InteractionType = 'BGVerify';\r\n vm.statusList = [\"Pending\", \"Completed\", \"Assigned\"];\r\n vm.AssignedTo = '';\r\n vm.slotStatus = '';\r\n vm.DateField = 'CreatedOn';\r\n vm.State = '';\r\n vm.City = '';\r\n vm.userskill = '';\r\n vm.disableuploadbutton = false;\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.bookingdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.bookingRanges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n\r\n var scdt = new Date();\r\n scdt.setMinutes(scdt.getMinutes() + 30);\r\n vm.SourceCreationDate = scdt;\r\n var pcdt = new Date();\r\n pcdt.setDate(pcdt.getDate() + 7);\r\n vm.PlannedClosureDate = pcdt;\r\n\r\n vm.openCalendar = function (e, picker) {\r\n vm.ClosureDateTime.open = true;\r\n };\r\n var plannedclosuredatelimit = new Date();\r\n plannedclosuredatelimit.setMinutes(plannedclosuredatelimit.getMinutes() + 1)\r\n vm.ClosureDateTime = { date: '', datepickerOptions: { minDate: plannedclosuredatelimit } };\r\n\r\n var date = new Date();\r\n var d = date.getDate();\r\n var m = date.getMonth();\r\n var y = date.getFullYear();\r\n vm.eventsF = function (start, end, timezone, callback) {\r\n var s = new Date(start).getTime() / 1000;\r\n var e = new Date(end).getTime() / 1000;\r\n var m = new Date(start).getMonth();\r\n var events = [{\r\n title: 'Feed Me ' + m,\r\n start: s + (50000),\r\n end: s + (100000),\r\n allDay: false,\r\n className: ['customFeed']\r\n }];\r\n callback(events);\r\n };\r\n\r\n // start calender\r\n var scheduleStartDate = new Date();\r\n var scheduleEndDate = new Date();\r\n scheduleEndDate.setDate(scheduleEndDate.getDate() + 6);\r\n vm.slotBookingdates = { scheduleStartDate: moment().subtract(7, 'day'), scheduleEndDate: moment() };\r\n $scope.showCalendar = false;\r\n $scope.showBookingTab = false;\r\n vm.slotDate = $filter('date')(new Date(), 'yyyy-MM-dd');\r\n $scope.toggleCalendar = function (userId) {\r\n vm.slotBookingUserId = userId;\r\n vm.GetAvailableSlots(vm.slotDate);\r\n $scope.showBookingTab = true;\r\n $scope.showCalendar = !$scope.showCalendar;\r\n };\r\n $scope.dateClicked = function () {\r\n vm.slotDate = $filter('date')(new Date(vm.slotBookingdates), 'yyyy-MM-dd');\r\n vm.GetAvailableSlots(vm.slotDate);\r\n };\r\n $scope.dateOptions = {\r\n formatYear: 'yyyy',\r\n startingDay: 1,\r\n minDate: scheduleStartDate,\r\n maxDate: scheduleEndDate\r\n };\r\n $scope.date = scheduleStartDate;\r\n\r\n\r\n\r\n ////end calender\r\n\r\n vm.getSkills = function () {\r\n JobTicketViewService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills;\r\n //vm.skills.unshift({ \"SkillName\": \"All Job Types\" }); \r\n if (vm.path == 'isTicketView') {\r\n vm.searchJobTypeText = $localStorage.AllJobType;\r\n // vm.searchStatusText = $localStorage.AllJobStatus;\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.getSkills();\r\n\r\n vm.GetFinanceTicketDetail = function (paymentId, isCollapsed) {\r\n $scope.isCollapsed = !isCollapsed;\r\n DashboardService.GetFinanceTicketDetail(paymentId).then(function (resp) {\r\n vm.financedetails = resp.data;\r\n })\r\n }\r\n\r\n vm.getAllCustomer = function () {\r\n ManualAssignationJobService.getAllCustomers(loggedinUser, token).then(function (resp) {\r\n vm.CustomerAcc = resp.data;\r\n })\r\n }\r\n vm.getAllProject = function () {\r\n ManualAssignationJobService.GetAllProjects(loggedinUser, token).then(function (resp) {\r\n vm.ProjectAcc = resp.data;\r\n })\r\n }\r\n vm.getAllCustomer();\r\n vm.getAllProject();\r\n\r\n vm.GetCustomerByAccount = function () {\r\n var SelectedAccountId = '';\r\n angular.forEach(vm.HDAllAccounts, function (account) {\r\n if (account.AccountName == vm.SearchByAccountName) {\r\n SelectedAccountId = account.AccountId;\r\n }\r\n })\r\n ManualAssignationJobService.GetCustomersByAccount(loggedinUser, SelectedAccountId, token).then(function (resp) {\r\n vm.CustomerList = resp.data;\r\n })\r\n }\r\n\r\n vm.GetProjectByCustomer = function () {\r\n vm.ProjectListByCust = [];\r\n angular.forEach(vm.CustomerList, function (customer) {\r\n if (customer.CompanyName == vm.SearchByCName) {\r\n vm.ProjectListByCust = customer.Projects;\r\n }\r\n })\r\n }\r\n\r\n vm.GetProjectByCust = function () {\r\n vm.ProjectListByCustomer = [];\r\n angular.forEach(vm.ProjectList, function (prject) {\r\n if (prject.CustomerName == vm.SearchByCName) {\r\n vm.ProjectListByCustomer.push(prject);\r\n }\r\n })\r\n }\r\n\r\n vm.AutoBroadcastJobs = function () {\r\n vm.DisableBroadcastButtons(false);\r\n var ticketIds = '';\r\n var count = 0;\r\n angular.forEach(vm.ticketList, function (d) {\r\n if (d.checked) {\r\n count = count + 1;\r\n if (ticketIds == '') {\r\n ticketIds = d.TicketId;\r\n }\r\n else {\r\n ticketIds = ticketIds + \",\" + d.TicketId;\r\n }\r\n }\r\n })\r\n\r\n vm.confirmationMessage = 'Please confirm if you want to auto schedule ' + count + ' Jobs?';\r\n vm.autoBroadcastJobIds = ticketIds;\r\n confirmationModalInstance = $uibModal.open({\r\n templateUrl: 'auto_schedule_confirmation_model.html',\r\n scope: $scope,\r\n backdrop: 'static'\r\n });\r\n }\r\n\r\n vm.confirmationCloseModal = function () {\r\n vm.DisableBroadcastButtons(false);\r\n confirmationModalInstance.close();\r\n }\r\n\r\n\r\n vm.DisableBroadcastButtons = function (disable) {\r\n if (disable) {\r\n vm.disableBroadcastButton = true;\r\n vm.disableBroadcastCloseButton = true;\r\n }\r\n else {\r\n vm.disableBroadcastButton = false;\r\n vm.disableBroadcastCloseButton = false;\r\n }\r\n }\r\n\r\n vm.AutoScheduleJobs = function () {\r\n vm.DisableBroadcastButtons(true);\r\n var data = {\r\n \"ticketIds\": vm.autoBroadcastJobIds\r\n }\r\n ManualAssignationJobService.AutoBroadcastAllNewJobsManualMode(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n confirmationModalInstance.close();\r\n vm.showSuccess(\"Success\", \"Jobs has been auto scheduled successfully\");\r\n }\r\n if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.DisableBroadcastButtons(false);\r\n confirmationModalInstance.close();\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n ManualAssignationJobService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n ManualAssignationJobService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n\r\n vm.callToTechnician = function (userid) {\r\n ManualAssignationJobService.callToTechnicianApi(loggedinUser, userid, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\")\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", resp.data.Message)\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n vm.callToTechnicianInBroadcastState = function (userid, ticketId) {\r\n ManualAssignationJobService.callToTechnicianInBroadcastState(loggedinUser, userid, ticketId, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\")\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", resp.data.Message)\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n vm.GetAllWorkOrderJob = function (isCollapsed, workOrder) {\r\n if (vm.workOrder == workOrder) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.activeRow = workOrder;\r\n vm.workOrder = workOrder;\r\n vm.workOrdertList = [];\r\n if ($scope.isCollapsed)\r\n return;\r\n ManualAssignationJobService.GetAllWorkOrderJob(loggedinUser, workOrder, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.workOrdertList = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n\r\n vm.getRejectHistory = function (ticketId) {\r\n ManualAssignationJobService.getRejectHistory(ticketId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.getDetailsList = resp.data;\r\n openHistoryModel = $uibModal.open({\r\n templateUrl: 'openHistoryModel.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.CloseHistoryModel = function () {\r\n openHistoryModel.close();\r\n }\r\n\r\n //pull back\r\n vm.PullBackJobs = function () {\r\n var ticketIds = '';\r\n var count = 0;\r\n angular.forEach(vm.ticketList, function (d) {\r\n if (d.checked) {\r\n count = count + 1;\r\n if (ticketIds == '') {\r\n ticketIds = d.TicketId;\r\n }\r\n else {\r\n ticketIds = ticketIds + \",\" + d.TicketId;\r\n }\r\n }\r\n })\r\n vm.pullBackJobIds = ticketIds;\r\n vm.DisableBroadcastButtons(true);\r\n var JobIdsforPull = [];\r\n JobIdsforPull.push(vm.pullBackJobIds);\r\n ManualAssignationJobService.PullBackJob(loggedinUser, JobIdsforPull, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.showSuccess(\"Success\", \"Jobs - \" + vm.pullBackJobIds + \" pulledback succesfully\");\r\n }, 1000);\r\n }\r\n if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableBroadcastButtons(false);\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n /* alert on dayClick */\r\n vm.ev = {};\r\n vm.alertOnDayClick = function (date) {\r\n vm.alertMessage = (date.toString());\r\n vm.ev = {\r\n from: date.format('YYYY-MM-DD'),\r\n to: date.format('YYYY-MM-DD'),\r\n title: '',\r\n allDay: true\r\n };\r\n };\r\n\r\n /* alert on eventClick */\r\n vm.alertOnEventClick = function (date, jsEvent, view) {\r\n vm.alertMessage = (date.title);\r\n };\r\n /* alert on Drop */\r\n vm.alertOnDrop = function (event, delta, revertFunc, jsEvent, ui, view) {\r\n vm.alertMessage = ('Event Dropped to make dayDelta ' + delta);\r\n };\r\n /* alert on Resize */\r\n vm.alertOnResize = function (event, delta, revertFunc, jsEvent, ui, view) {\r\n vm.alertMessage = ('Event Resized to make dayDelta ' + delta);\r\n };\r\n /* add and removes an event source of choice */\r\n vm.addRemoveEventSource = function (sources, source) {\r\n var canAdd = 0;\r\n angular.forEach(sources, function (value, key) {\r\n if (sources[key] === source) {\r\n sources.splice(key, 1);\r\n canAdd = 1;\r\n }\r\n });\r\n if (canAdd === 0) {\r\n sources.push(source);\r\n }\r\n };\r\n /* add custom event*/\r\n vm.addEvent = function () {\r\n vm.events.push({\r\n title: $scope.ev.title,\r\n start: moment($scope.ev.from),\r\n end: moment($scope.ev.to),\r\n allDay: true,\r\n className: ['openSesame']\r\n });\r\n };\r\n /* remove event */\r\n /*$scope.remove = function (index) {\r\n $scope.events.splice(index, 1);\r\n };*/\r\n /* Change View */\r\n vm.changeView = function (view, calendar) {\r\n vm.currentView = view;\r\n uiCalendarConfig.calendars[calendar].fullCalendar('changeView', view);\r\n\r\n };\r\n /* Change View */\r\n vm.renderCalender = function (calendar) {\r\n $timeout(function () {\r\n if (uiCalendarConfig.calendars[calendar]) {\r\n uiCalendarConfig.calendars[calendar].fullCalendar('render');\r\n }\r\n });\r\n };\r\n /* Render Tooltip */\r\n $scope.eventRender = function (event, element, view) {\r\n element.attr({\r\n 'tooltip': event.title,\r\n 'uib-tooltip-append-to-body': true\r\n });\r\n $compile(element)($scope);\r\n };\r\n\r\n vm.currentView = 'month';\r\n\r\n /* config object */\r\n vm.uiConfig = {\r\n calendar: {\r\n height: 450,\r\n editable: false,\r\n displayEventTime: false,\r\n header: {\r\n left: 'title',\r\n center: 'myCustomButton',\r\n right: 'prev,next'\r\n },\r\n dayClick: vm.alertOnDayClick,\r\n eventClick: vm.alertOnEventClick,\r\n eventResize: vm.alertOnResize,\r\n eventRender: function (event, element, view) {\r\n element.attr({\r\n 'uib-tooltip': event.title,\r\n 'uib-tooltip-append-to-body': true\r\n });\r\n $compile(element)($scope);\r\n },\r\n businessHours: {\r\n start: '10:00', // a start time (10am in this example)\r\n end: '18:00', // an end time (6pm in this example)\r\n\r\n dow: [1, 2, 3, 4]\r\n // days of week. an array of zero-based day of week integers (0=Sunday)\r\n // (Monday-Thursday in this example)\r\n }\r\n }\r\n };\r\n\r\n vm.events = [];\r\n\r\n /* event sources array*/\r\n vm.eventSources = [vm.events, vm.eventsF];\r\n // vm.eventSources2 = [vm.calEventsExt, vm.eventsF, vm.events];\r\n\r\n //Availablity\r\n vm.Availibility = function (data) {\r\n vm.showAvailability = true;\r\n vm.AvailableUserData = data;\r\n vm.GetAssignedTicketforUser(data.UserId, loggedinUser, token)\r\n }\r\n\r\n vm.AvailibilityUS = function (data) {\r\n vm.showAvailability = true;\r\n vm.AvailableUserData = data;\r\n }\r\n\r\n\r\n vm.DisableRouteBroadcastButtons = function (disable) {\r\n if (disable) {\r\n vm.brodcastButtonDisable = true;\r\n vm.routebuttonDisable = true;\r\n }\r\n else {\r\n vm.brodcastButtonDisable = false;\r\n vm.routebuttonDisable = false;\r\n }\r\n }\r\n\r\n //Get new Jobs\r\n vm.GetNewJobs = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemName = \"Circle,SkillSet\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch;\r\n } else {\r\n var itemName = '';\r\n var itemValues = '';\r\n }\r\n\r\n if (loggedinUserSkill == \"VSAT\") {\r\n itemName += \"Template\";\r\n itemValues += \"VSAT CCR\";\r\n } else if (loggedinUserSkill == \"LeaseLine\") {\r\n itemName += \"Template\";\r\n itemValues += \"LeaseLine CCR\";\r\n }\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemName, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.NewJobs = resp.data;\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n var today = moment();\r\n //var date = moment(\"2015-05-13\", \"YYYY-MM-DD\");\r\n var date2 = vm.NewJobs[index].CreationDate;//moment(vm.NewJobs[index].CreationDate,'DD/MM/YYYY').format(\"YYYY-MM-DD\");\r\n // date2 = new Date(date2);\r\n var duration = today.diff(date2, 'days');\r\n // var hours = today.diff(date2,'hours');\r\n vm.NewJobs[index].Age = duration;\r\n }\r\n vm.selectAllNewJob = false;\r\n vm.showMinusNewJob = false;\r\n if (vm.IsMaterialDelivered) {\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n if (vm.NewJobs[index].MetrialDeliverStatus == 'Delivered') {\r\n vm.NewJobs[index].IsDissablePermision = false;\r\n } else {\r\n vm.NewJobs[index].IsDissablePermision = true;\r\n }\r\n }\r\n }\r\n } else {\r\n vm.NewJobs = '';\r\n //$log.log('vm.NewJobs', 'List Empty')\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n\r\n vm.loadAllSkills = function () {\r\n ManualAssignationJobService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skillsWithPipe = '';\r\n if (resp && resp.data) {\r\n vm.skillData = resp.data;\r\n if (vm.skillData && vm.skillData.length > 0) {\r\n angular.forEach(vm.skillData, function (s) {\r\n vm.skillsWithPipe += s.SkillName + \"|\";\r\n });\r\n vm.skillsWithPipe = vm.skillsWithPipe.length > 0\r\n ? vm.skillsWithPipe.substring(0, vm.skillsWithPipe.length - 1) : \"\";\r\n }\r\n }\r\n });\r\n }\r\n vm.loadAllSkills();\r\n\r\n\r\n vm.applyFilterForUser = function (status) {\r\n vm.usersStatus = status;\r\n vm.GetListAllFreelancers();\r\n }\r\n vm.GetListAllFreelancers = function () {\r\n // if(vm.filterTktStatus){\r\n // vm.usersStatus = 'Broadcasted';\r\n // }\r\n // else if(!vm.filterTktStatus && vm.usersStatus == 'Broadcasted'){\r\n // vm.usersStatus = \"Assigned\";\r\n // }\r\n // else {\r\n // vm.usersStatus;\r\n // }\r\n vm.filterToggle = true;\r\n var data = {\r\n \"itemNames\": \"Status\",\r\n \"itemValues\": vm.usersStatus,\r\n \"Type\": vm.filterType,\r\n \"toDate\": endDate,\r\n \"fromDate\": startDate,\r\n \"OrderBy\": vm.OrderBy,\r\n \"OrderSeq\": vm.OrderSeq\r\n }\r\n ManualAssignationJobService.GetListAllFreelancers(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.listofActiveUsers = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.sortColumnUser = function (OrderBy) {\r\n vm.OrderBy = OrderBy;\r\n // vm.Orderby = col;\r\n if (vm.OrderSeq == 'desc') {\r\n vm.OrderSeq = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n } else {\r\n vm.OrderSeq = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.GetListAllFreelancers();\r\n };\r\n\r\n vm.sortClassUser = function (col) {\r\n if (vm.OrderBy == col) {\r\n if (vm.OrderSeq == 'desc') {\r\n return 'fa fa-arrow-down';\r\n } else {\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n //Get all Freelancers\r\n vm.GetAllFreelancers = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"UserStatus,Locations,SkillSet,Role\";\r\n var itemValues = \"Active\" + ',' + vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Field Engineer';\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n if (vm.skillsWithPipe && vm.skillsWithPipe.length > 0) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsWithPipe;\r\n }\r\n }\r\n ManualAssignationJobService.GetAllFreelancersWithFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n // for(var i=0;i 0) {\r\n vm.FreelancerVendorUsers = resp.data;\r\n // for(var i=0;i 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationJobService.GetUsersByFilter(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('fixedUsers', resp.data);\r\n preprocessData(vm.fixedUsers);\r\n } else {\r\n vm.fixedUsers = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get users, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'freelancer') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n } else if (vm.skillsWithPipe && vm.skillsWithPipe.length > 0) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += vm.skillsWithPipe;\r\n }\r\n ManualAssignationJobService.GetAllFreelancersWithFilters(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n //$log.log('freelancers', vm.freelancerUsers);\r\n preprocessData(vm.freelancerUsers);\r\n } else {\r\n vm.freelancerUsers = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get freelancers, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get freelancers, server is not responding correctly.\");\r\n });\r\n\r\n var broadItemNames = 'Circle,SkillSet,TicketStatus';\r\n var broadItemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Broadcasted';\r\n\r\n ManualAssignationJobService.GetBroadcastedBids(loggedinUser, broadItemNames, broadItemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'vendor') {\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationJobService.GetAllVendors(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.vendorList = resp.data;\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get vendors, server is not responding correctly.\");\r\n })\r\n\r\n } else if (vm.isChecked == 'supervisor') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"UserStatus\";\r\n var teamIteamValues = 'Active';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationJobService.GetUsersByRole(loggedinUser, 'Supervisor', teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data.length > 0) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n } else {\r\n vm.supervisorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get supervisors, server is not responding correctly.\");\r\n });\r\n }\r\n }\r\n\r\n //To Search\r\n vm.search = function () {\r\n if (vm.searchform.$valid) {\r\n if (vm.isChecked == 'fixed') {\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n ManualAssignationJobService.GetUsersByFilter(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('fixedUsers', resp.data);\r\n preprocessData(vm.fixedUsers);\r\n } else {\r\n vm.fixedUsers = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n })\r\n } else if (vm.isChecked == 'freelancer') {\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n ManualAssignationJobService.GetAllFreelancersWithFilters(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n //$log.log('freelancers', vm.freelancerUsers);\r\n preprocessData(vm.freelancerUsers);\r\n } else {\r\n vm.freelancerUsers = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n });\r\n\r\n var broadItemNames = 'Circle,SkillSet,TicketStatus';\r\n var broadItemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Broadcasted';\r\n ManualAssignationJobService.GetBroadcastedBids(loggedinUser, broadItemNames, broadItemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'vendor') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n ManualAssignationJobService.GetAllVendors(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.vendorList = resp.data;\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get vendors, server is not responding correctly.\");\r\n });\r\n\r\n } else if (vm.isChecked == 'supervisor') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get supervisors, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n ManualAssignationJobService.GetUsersByRole(loggedinUser, 'Supervisor', teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data.length > 0) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n } else {\r\n vm.supervisorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get users, server is not responding correctly.\");\r\n })\r\n\r\n }\r\n vm.SearchModal.close();\r\n } else {\r\n vm.searchform.submitted = true;\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n vm.tabNo = function (tab) {\r\n vm.tab = tab;\r\n //$log.log('TabNo', vm.tab);\r\n }\r\n\r\n\r\n\r\n\r\n vm.getAssistedSuggestion = function (ticket) {\r\n vm.ticketStatusCheck = ticket.TicketStatus;\r\n vm.showRouteBroadcast = ticket.ShowManualBroadcast;\r\n $scope.toggleSingleClass();\r\n var status = 'Received';\r\n vm.TicketSelectedForAssistedSuggestion = ticket;\r\n vm.broadcastTicketId = ticket.TicketId;\r\n vm.UserSuggestionList = [];\r\n vm.StoreUserSuggestionList = [];\r\n vm.Attendence = '';\r\n vm.AttendenceList = '';\r\n vm.UserStatus = '';\r\n vm.Distance = '10';\r\n vm.SkillSet = '';\r\n vm.IsMMFPrimeMember = false;\r\n vm.OneJobDoneOnSkill = false;\r\n vm.GetFreelancerSuggestions(true, vm.showMode);\r\n vm.isReceived = true;\r\n\r\n }\r\n\r\n // freelancer profile\r\n vm.getFLprofile = function (userId) {\r\n $scope.selectedUserId = userId;\r\n document.getElementById(\"freelancerProfile\").style.width = \"58%\";\r\n vm.closeAssistedSuggestion();\r\n ManualAssignationJobService.getFixedUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n vm.TicketSelectedForAssistedSuggestion = resp.data;\r\n // for(var i=0;ilTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [1, 'asc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n //DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable()\r\n ];\r\n\r\n\r\n vm.openBroadcastmodal = function (i) {\r\n vm.broadcastError = null;\r\n vm.jobselected = [];\r\n angular.forEach(vm.ticketList, function (d) {\r\n if (d.TicketStatus == \"New\") {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n\r\n\r\n vm.jobselected.push(d);\r\n $log.log(d)\r\n // angular.forEach(vm.jobselected, function (t) {\r\n // t.PincodeArray = t.Pincode.split(\"|\");\r\n // t.Pincode = Array.from(new Set(t.PincodeArray));\r\n // t.SkillSetArray = t.SkillSet.split(\"|\");\r\n // t.SkillSet = Array.from(new Set(t.SkillSetArray));\r\n // })\r\n }\r\n }\r\n });\r\n\r\n if (vm.jobselected.length > 0) {\r\n vm.BroadcastModal = $uibModal.open({\r\n templateUrl: 'Broadcast.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Please select jobs\");\r\n vm.broadcastError = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n vm.closeModal = function () {\r\n vm.BroadcastModal.close();\r\n }\r\n\r\n vm.openBroadcastmodalforFV = function (i) {\r\n vm.broadcastErrorFV = null;\r\n vm.jobselectedFV = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n\r\n vm.jobselectedFV.push(d);\r\n $log.log(d)\r\n }\r\n });\r\n if (vm.jobselectedFV.length > 0) {\r\n vm.BroadcastModalFV = $uibModal.open({\r\n templateUrl: 'BroadcastFV.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n } else {\r\n vm.broadcastErrorFV = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n\r\n vm.OpenBroadcastModelToFV = function (i) {\r\n vm.broadcastErrorFV = null;\r\n vm.jobselectedFV = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n\r\n vm.jobselectedFV.push(d);\r\n $log.log(d)\r\n }\r\n });\r\n if (vm.jobselectedFV.length > 0) {\r\n vm.BroadcastModalFV = $uibModal.open({\r\n templateUrl: 'BroadcastFV.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n } else {\r\n vm.broadcastErrorFV = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n vm.closeModalFV = function () {\r\n vm.BroadcastModalFV.close();\r\n }\r\n\r\n vm.GetAllVendors = function () {\r\n vm.vendorList = [];\r\n var itemNames = \"\";\r\n var itemValues = \"\";\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n itemNames = \"VendorLocations,VendorSkillsets,VendorStatus\";\r\n itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n itemNames = \"VendorStatus\";\r\n itemValues = \"Active\";\r\n }\r\n if (vm.loggedInUserRole == 'Help Desk') {\r\n itemNames += \",VendorSkillsets\";\r\n itemValues += \",\" + loggedinUserSkill;\r\n }\r\n\r\n // GetAllVendors\r\n ManualAssignationJobService.GetFixedVendorsByFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n angular.forEach(resp.data, function (vendor) {\r\n if (vendor.UserId != loggedinUser) {\r\n vm.vendorList.push(vendor);\r\n }\r\n })\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n function preprocessData(users) {\r\n if (users && users.length > 0) {\r\n angular.forEach(users, function (user) {\r\n user.locationCount = user.Locations && user.Locations.length > 0 ? user.Locations.length : 0;\r\n user.locationToolTip = \"\";\r\n if (user.locationCount > 0) {\r\n angular.forEach(user.Locations, function (loc) {\r\n user.locationToolTip += loc + \",\";\r\n })\r\n user.locationToolTip = user.locationToolTip.substr(0, user.locationToolTip.length - 1);\r\n }\r\n\r\n user.SkillSetCount = user.SkillSet && user.SkillSet.length > 0 ? user.SkillSet.length : 0;\r\n user.SkillSetToolTip = \"\";\r\n if (user.SkillSetCount > 0) {\r\n angular.forEach(user.SkillSet, function (s) {\r\n user.SkillSetToolTip += s + \",\";\r\n })\r\n user.SkillSetToolTip = user.SkillSetToolTip.substr(0, user.SkillSetToolTip.length - 1);\r\n }\r\n user.OneJobSkillSetCount = user.OneJobDoneSkillSet && user.OneJobDoneSkillSet.length > 0 ? user.OneJobDoneSkillSet.length : 0;\r\n user.OneJobSkillSetToolTip = \"\";\r\n if (user.OneJobSkillSetCount > 0) {\r\n angular.forEach(user.OneJobDoneSkillSet, function (s) {\r\n user.OneJobSkillSetToolTip += s + \",\";\r\n })\r\n user.OneJobSkillSetToolTip = user.OneJobSkillSetToolTip.substr(0, user.OneJobSkillSetToolTip.length - 1);\r\n }\r\n\r\n user.VendorLocationsCount = user.VendorLocations && user.VendorLocations.length > 0 ? user.VendorLocations.length : 0;\r\n user.VendorLocationsToolTip = \"\";\r\n if (user.VendorLocationsCount > 0) {\r\n angular.forEach(user.VendorLocations, function (loc) {\r\n user.VendorLocationsToolTip += loc + \",\";\r\n })\r\n user.VendorLocationsToolTip = user.VendorLocationsToolTip.substr(0, user.VendorLocationsToolTip.length - 1);\r\n }\r\n\r\n user.VendorSkillsetsCount = user.VendorSkillsets && user.VendorSkillsets.length > 0 ? user.VendorSkillsets.length : 0;\r\n user.VendorSkillsetsToolTip = \"\";\r\n if (user.VendorSkillsetsCount > 0) {\r\n angular.forEach(user.VendorSkillsets, function (s) {\r\n user.VendorSkillsetsToolTip += s + \",\";\r\n })\r\n user.VendorSkillsetsToolTip = user.VendorSkillsetsToolTip.substr(0, user.VendorSkillsetsToolTip.length - 1);\r\n }\r\n user.ratingStars = vm.getRatingStars(Math.round(user.Ratings));\r\n user.blankStars = vm.getBlankStars(Math.round(user.Ratings));\r\n user.exp = user.Experience > 0 ? parseFloat(user.Experience / 365).toFixed(1) : 0;\r\n user.checked = false;\r\n });\r\n }\r\n }\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n if (vm.loggedInUserRole == \"Dispatch Supervisor\" || vm.loggedInUserRole == \"OnBoarding Supervisor\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\"];\r\n }\r\n else {\r\n if (vm.loggedInUserRole == \"Dispatch Manager\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Private\", \"Freelancer Vendor\", \"Dispatch Supervisor\", \"Freelancer Dispatcher\", \"Dispatch Team Lead\"];\r\n }\r\n else if (vm.loggedInUserRole == \"OnBoarding Manager\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"OnBoarding Supervisor\"];\r\n }\r\n else if (vm.loggedInUserRole == \"Dispatch Team Lead\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\", \"Freelancer Dispatcher\", \"Dispatch Supervisor\"];\r\n }\r\n else if (vm.loggedInUserRole == \"Administrator\") {\r\n vm.UserTypeList = [\"Project Manager\", \"Supervisor\", \"Freelancer\", \"Freelancer Vendor\", \"Private\"];\r\n }\r\n else if (vm.loggedInUserRole == \"Project Manager\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\", \"Supervisor\"];\r\n }\r\n else if (vm.loggedInUserRole == \"Supervisor\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\"];\r\n }\r\n\r\n }\r\n\r\n vm.getJobAllStatus = function () {\r\n ManualAssignationJobService.getJobAllStatus(loggedinUser, token, function (data) {\r\n angular.forEach(data, function (status) {\r\n if (status.StatusName == 'On Hold') {\r\n status.StatusName = 'Hold';\r\n }\r\n vm.statusList.push(status.StatusName);\r\n })\r\n }, vm.showFailure);\r\n }\r\n\r\n $scope.slideAssistedSuggestion = function () {\r\n document.getElementById(\"assistedSuggestion\").style.width = \"25%\";\r\n }\r\n vm.closeAssistedSuggestion = function () {\r\n document.getElementById(\"assistedSuggestion\").style.width = \"0%\";\r\n }\r\n vm.closeFLprofile = function () {\r\n document.getElementById(\"freelancerProfile\").style.width = \"0%\";\r\n }\r\n $scope.slideF = function () {\r\n document.getElementById(\"myNav\").style.height = \"86%\";\r\n }\r\n vm.closeSlide = function () {\r\n document.getElementById(\"myNav\").style.height = \"0%\";\r\n }\r\n\r\n vm.Applyfilter = function () {\r\n $scope.UserTablepagination = {};\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n $scope.hideFilter();\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n }\r\n\r\n\r\n vm.PDFView = function (page) {\r\n vm.pdfimage = \"\";\r\n vm.IsLoadSucessfull = false;\r\n $scope.selected = null;\r\n // $timeout(function () {\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n // }, 1000)\r\n\r\n }\r\n vm.PDFUserModal = function () {\r\n jobAppointmentModal.close();\r\n }\r\n\r\n function base64ToArrayBuffer(base64) {\r\n var ret = base64.replace('data:application/pdf;base64,', '');\r\n var binaryString = atob(ret);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n }\r\n\r\n\r\n vm.makeUserMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.name + \"

\" + ' ' + vm.contactnumber);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n\r\n }\r\n vm.makeJobMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.customerJobCard.ConsumerName + \"

\" + ' ' + vm.customerJobCard.JobId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.customerJobCard.ConsumerContact);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n }\r\n function initMap() {\r\n var pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n pointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n // center = new google.maps.LatLng(51.3, 0.8),\r\n myOptions = {\r\n zoom: 8,\r\n zoomControl: false,\r\n scaleControl: true,\r\n mapTypeControl: false,\r\n streetViewControl: false,\r\n gestureHandling: 'greedy',\r\n // center: center,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n },\r\n\r\n map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n // Instantiate a directions service.\r\n directionsService = new google.maps.DirectionsService,\r\n directionsDisplay = new google.maps.DirectionsRenderer({\r\n map: map\r\n }),\r\n duration = document.getElementById('duration');\r\n distance = document.getElementById('distance');\r\n flightPath = new google.maps.Polyline({\r\n path: [pointA, pointB],\r\n // geodesic: true,\r\n strokeColor: 'red',\r\n });\r\n $scope.InfoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n // click on marker B to get route from A to B\r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n var travelMode = \"DRIVING\";\r\n var icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n }\r\n function calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map) {\r\n var selectedMode = \"DRIVING\";\r\n directionsService.route({\r\n origin: pointA,\r\n destination: pointB,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n travelMode: google.maps.TravelMode[selectedMode]\r\n }, function (response, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n new google.maps.DirectionsRenderer({\r\n map: map,\r\n directions: response,\r\n suppressMarkers: true,\r\n polylineOptions: {\r\n strokeColor: \"#000000\"\r\n }\r\n });\r\n var leg = response.routes[0].legs[0];\r\n //outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n distance.innerHTML = response.routes[0].legs[0].distance.text;\r\n duration.innerHTML = response.routes[0].legs[0].duration.text;\r\n vm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n vm.makeJobMarker(leg.start_location, icons.start, map);\r\n vm.makeUserMarker(leg.end_location, icons.end, map);\r\n } else {\r\n window.alert('Directions request failed due to ' + status);\r\n }\r\n });\r\n }\r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/JOb_icon.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/delivery-man1.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n\r\n vm.OpenFilterModel = function () {\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FilterModel.html',\r\n size: 'lg',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.OpenFollowUpModel = function (ticketId) {\r\n vm.followup = '';\r\n vm.tickId = ticketId;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n }\r\n\r\n vm.CloseFollowUpModel = function () {\r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = '';\r\n vm.primaryHoldReason = '';\r\n vm.primaryHoldRemark = '';\r\n vm.followFiles = null;\r\n FollowUpModel.close();\r\n }\r\n\r\n //\r\n $scope.attachmentForFollowUp = function (files) {\r\n var file = files.files[0];\r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.msg|\\.pdf|\\.bmp|\\.xps)$/i;\r\n if (!allowedExtensions.exec(file.name)) {\r\n vm.followFiles = [];\r\n vm.clear();\r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png,.msg,.bmp,xps only.');\r\n }\r\n }\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n };\r\n\r\n vm.DocEdit = function (index) {\r\n vm.followFiles = null;\r\n }\r\n\r\n var ModalInstanceCtrlFollowUp = function ($scope, $rootScope, $uibModalInstance) {\r\n vm.updateFollowUpStatus = function () {\r\n var data = {};\r\n data = {\r\n \"userId\": loggedinUser,\r\n \"dateTime\": \"\",\r\n \"activity\": \"\",\r\n \"action\": \"FOLLOW_UP\",\r\n \"userName\": \"\",\r\n \"ticketId\": vm.tickId,\r\n \"primaryReason\": vm.primaryFollowUpReason,\r\n \"SecondryReason\": \"\",\r\n \"ReasonComment\": vm.primaryFollowUpRemark\r\n }\r\n if (vm.followFiles != null) {\r\n ManualAssignationJobService.UpdateFollowUpReason(data, vm.followFiles, token, loggedinUser, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n vm.CloseFollowUpModel();\r\n $timeout(function () {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.filterStatusForJObs($scope.jobStatusForPaging, $scope.selectedUserId, $localStorage.loggedInUserId, token, jPageIndex, jPageSize)\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n else {\r\n ManualAssignationJobService.TicketFollowUpWithoutDoc(data, token, loggedinUser, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n }\r\n vm.CloseFollowUpModel();\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n var ModelInstanceOfMap = function ($rootScope, $scope, $uibModal) {\r\n vm.getCustomerJobCard();\r\n }\r\n\r\n vm.getCustomerJobCard = function () {\r\n ManualAssignationJobService.getCustomerJobCardbyJobId(loggedinUser, vm.trackingTicketId, token, function (data) {\r\n vm.JobLatitude = data.JobLatitude;\r\n vm.JobLongitude = data.JobLongitude;\r\n vm.FELatitude = data.FELatitude;\r\n vm.FELongitude = data.FELongitude;\r\n vm.contactnumber = data.FEContactNumber;\r\n vm.jobtype = data.Description;\r\n vm.name = data.FEName;\r\n if (data.FEContactNumber) {\r\n vm.contactnumber = data.FEContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n initMap();\r\n $log.log(\"res of getCustomerJobCard=\" + data);\r\n vm.customerJobCard = data;\r\n if (vm.customerJobCard.ConsumerContact) {\r\n vm.customerJobCard.ConsumerContact = vm.customerJobCard.ConsumerContact.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n if ($localStorage.rateJobParams) {\r\n vm.customerJobCard.userRole = $localStorage.Role;\r\n vm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n vm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n delete $localStorage.rateJobParams;\r\n }\r\n if (data && data.JobStatus == 'PaymentDone') {\r\n\r\n }\r\n }, function () {\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n vm.TicketBreachValueconver = function (TicketBreachValue) {\r\n var TicketBreachValueInString = \"\";\r\n if (TicketBreachValue == 0)\r\n TicketBreachValueInString = \"Not Breached\";\r\n if (TicketBreachValue == 1)\r\n TicketBreachValueInString = \"Breached\";\r\n\r\n return TicketBreachValueInString;\r\n }\r\n vm.OpenTracking = function (ticket) {\r\n vm.trackingTicketId = ticket;\r\n Tracking = $uibModal.open({\r\n templateUrl: 'Tracking.html',\r\n size: 'lg',\r\n scope: $scope,\r\n controller: ModelInstanceOfMap\r\n })\r\n }\r\n vm.CloseTracking = function () {\r\n Tracking.close();\r\n }\r\n\r\n\r\n vm.sortColumn = function (col) {\r\n vm.SortField = col;\r\n if (vm.SortType == 'desc') {\r\n vm.SortType = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n } else {\r\n vm.SortType = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n };\r\n\r\n // remove and change class\r\n vm.sortClass = function (col) {\r\n if (vm.SortField == col) {\r\n if (vm.SortType == 'desc') {\r\n return 'fa fa-arrow-down';\r\n } else {\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n vm.searchTicket = function () {\r\n vm.ResetTicketFilter();\r\n vm.FilterArray();\r\n };\r\n\r\n\r\n vm.closeSearchText = function () {\r\n vm.userskill = \"\";\r\n vm.City = '';\r\n vm.State = '';\r\n vm.slotStatus = '';\r\n vm.SearchByConsumerName = '';\r\n vm.AssigedTo = '';\r\n vm.State = '';\r\n vm.searchTag = '';\r\n vm.City = '';\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n }\r\n\r\n\r\n $scope.open360ViewBroadcaste = function () {\r\n angular.element('#div1').addClass(\"alpha\");\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n if (vm.InteractionType == 'BGVerify') {\r\n vm.InteractionType = 'BGVerify'\r\n }\r\n if (vm.InteractionType == 'SMEInteration') {\r\n vm.InteractionType = 'SMEInteration'\r\n }\r\n $scope.Userpagination = {};\r\n PageIndex = 1;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n };\r\n\r\n\r\n vm.getUsersByTickets = function (ev, picker) {\r\n $scope.Userpagination = {};\r\n PageIndex = 1;\r\n $scope.TicketTablepagination = {\r\n current: 1\r\n };\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n\r\n };\r\n\r\n\r\n // vm.UserByFiltersList=[];\r\n // vm.GetReportingToMeUsers = function(loggedinUser, token) { \r\n // SlotAllocationService.GetReportingToMeUsers(loggedinUser, token).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // vm.UserByFiltersList = resp.data.ListUserResponseModel;\r\n // $scope.totalUsers = resp.data.Count;\r\n // preprocessData(vm.UserByFiltersList);\r\n // if(vm.UserByFiltersList.length < vm.userPageListCount)\r\n // vm.userListLength = $scope.totalUsers;\r\n // else\r\n // vm.userListLength = uPageIndex * vm.userPageListCount;\r\n // if(uPageIndex==1)\r\n // vm.upageindexCount = 1;\r\n // else\r\n // vm.upageindexCount = (((uPageIndex-1) * vm.userPageListCount) + 1);\r\n\r\n // for(var i=0;i 1 star)\r\n var reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n // display initial rating totals\r\n // displayTotals();\r\n\r\n // use event listener to record changes to user rating\r\n starRating.forEach(function (star) {\r\n star.addEventListener(\"change\", recordRating);\r\n })\r\n\r\n function recordRating(event) {\r\n // use indexOf to identify selected user rating\r\n var userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n // define selected rating to adjust display totals\r\n var selectedIndex;\r\n\r\n starRating.forEach(function (item, index) {\r\n // add or remove .active class based upon selected user rating\r\n if (index < userRating + 1) {\r\n starRating[index].classList.add(\"active\");\r\n selectedIndex = index;\r\n } else {\r\n starRating[index].classList.remove(\"active\");\r\n }\r\n\r\n displayTotals(selectedIndex);\r\n });\r\n }\r\n vm.countForStatus = 50;\r\n // display star rating totals from html custom data-\r\n function displayTotals(selectedIndex) {\r\n var barChart = document.querySelectorAll(\".bar\"),\r\n displaySummary = document.querySelectorAll(\".summary\"),\r\n numRatings = 0,\r\n numRatingsValue = 0;\r\n\r\n // convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseBarChart = Array.from(barChart).reverse();\r\n\r\n reverseRatingTotal.forEach(function (total, index) {\r\n if (index == selectedIndex) {\r\n // add selected rating to display total\r\n total.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n // adjust selected bar width\r\n reverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n } else {\r\n // display unselected totals\r\n total.innerHTML = total.getAttribute(\"data-rating-count\");\r\n // adjust unselected bar widths\r\n reverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n }\r\n // count total number and value of ratings\r\n numRatings += parseInt(total.innerHTML);\r\n numRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n });\r\n\r\n // display rating average and total\r\n ratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n // displaySummary[0].innerHTML = ratingsAverage + \" average based on \" + numRatings + \" reviews.\";\r\n }\r\n\r\n vm.Get360VendorTeamData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedinUser, teamid, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n vm.GetUsersTicket = function (isCollapsed, status, id, type) {\r\n $scope.activeRow = id;\r\n $scope.isCollapsed = !isCollapsed;\r\n vm.userIdforStatus = id;\r\n vm.statusForTickets = status;\r\n vm.JobcountbyStatus = '';\r\n vm.filterType = type;\r\n vm.FilterArray();\r\n // if(!vm.filterType){\r\n // vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // }\r\n vm.getAllJobTicketsCopyForUsers(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }\r\n\r\n vm.getAllJobTicketsCopyForUsers = function (loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize) {\r\n var templateCols = \"\";\r\n vm.resetAllSelect();\r\n var templateCols = \"\";\r\n vm.UserticketList = [];\r\n PageIndex = PageIndex ? PageIndex : 1;\r\n vm.DateField = vm.DateField ? vm.DateField : \"CreatedOn\";\r\n ManualAssignationJobService.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, vm.DateField, PageIndex, PageSize, vm.SortType, vm.SortField).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserticketList = resp.data.LightTicketModels;\r\n }\r\n\r\n }, function () {\r\n });\r\n\r\n }\r\n\r\n vm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.wsTicketList = resp.data.workSummaryData;\r\n $scope.totalWS = resp.data.WorkSummaryTotalCount;\r\n if (vm.wsTicketList.length < vm.userPageListCount)\r\n vm.wsListLength = $scope.totalWS;\r\n else\r\n vm.wsListLength = uPageIndex * vm.userPageListCount;\r\n if (uPageIndex == 1)\r\n vm.wspageindexCount = 1;\r\n else\r\n vm.wspageindexCount = (((uPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n vm.FinanceFiltersList = [];\r\n vm.GetFinancialSummary = function () {\r\n DashboardService.GetFinancialSummary(loggedinUser, token, vm.userId, fnitemNames, fnitemValues, fPageIndex, fPageSize, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.paymentCount = resp.data.paymentsSummary;\r\n vm.FinanceFiltersList = resp.data.financialSummary360.financialLPSummaryList;\r\n $scope.totalFinList = resp.data.financialSummary360.count;\r\n if (vm.FinanceFiltersList.length < vm.financePageListCount)\r\n vm.financeListLength = $scope.totalFinList;\r\n else\r\n vm.financeListLength = fPageIndex * vm.financePageListCount;\r\n if (fPageIndex == 1)\r\n vm.fpageindexCount = 1;\r\n else\r\n vm.fpageindexCount = (((fPageIndex - 1) * vm.financePageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n vm.ResetUserFilter();\r\n }\r\n\r\n vm.getFileType = function (url) {\r\n if (url == null || url == \"\") {\r\n return \"others\";\r\n }\r\n else {\r\n if (url.indexOf(\".jpg\") >= 0 || url.indexOf(\".jpeg\") >= 0 || url.indexOf(\".png\") >= 0 || url.indexOf(\".bmp\") >= 0 || url.indexOf(\".JPG\") >= 0 || url.indexOf(\".JPEG\") >= 0 || url.indexOf(\".PNG\") >= 0 || url.indexOf(\".BMP\") >= 0) {\r\n return \"image\";\r\n } else if (url.indexOf(\".pdf\") >= 0 || url.indexOf(\".PDF\") >= 0) {\r\n return \"pdf\";\r\n } else if (url.indexOf(\".xls\") >= 0 || url.indexOf(\".xlsx\") >= 0 || url.indexOf(\".XLS\") >= 0 || url.indexOf(\".XLSX\") >= 0) {\r\n return \"xls\";\r\n } else if (url.indexOf(\".doc\") >= 0 || url.indexOf(\".docx\") >= 0 || url.indexOf(\".DOC\") >= 0 || url.indexOf(\".DOCX\") >= 0) {\r\n return \"doc\";\r\n }\r\n else {\r\n return \"others\";\r\n }\r\n }\r\n }\r\n\r\n\r\n vm.Get360SkillSummary = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for (var i = 0; i < vm.skillsetData.CertificateDetails.length; i++) {\r\n vm.CertimageServices(vm.skillsetData.CertificateDetails[i].TrainingCertificate, i);\r\n }\r\n\r\n if (vm.skillsetData.PreviousCompanyDetailsList) {\r\n for (var i = 0; i < vm.skillsetData.PreviousCompanyDetailsList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter) == 'image')\r\n vm.PreviousCompnyExperienceLetterServices(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter, i);\r\n }\r\n }\r\n\r\n if (vm.skillsetData.UserTrainingList) {\r\n for (var i = 0; i < vm.skillsetData.UserTrainingList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingImage) == 'image')\r\n vm.TrainingImageServices(vm.skillsetData.UserTrainingList[i].TrainingImage, i);\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingAttendance) == 'image')\r\n vm.TrainingAttendanceServices(vm.skillsetData.UserTrainingList[i].TrainingAttendance, i);\r\n }\r\n\r\n }\r\n\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n vm.GetReviewAndRatings = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.GetReviewAndRatings(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.reviewData = resp.data;\r\n vm.teamdata.InstallationratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.teamdata.InstallationblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.teamdata.SafetyratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.teamdata.SafetyblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.teamdata.VisitratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.teamdata.VisitblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.teamdata.CourteousratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.teamdata.CourteousblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.teamdata.ProratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.teamdata.ProblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.teamdata.ServiceratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n vm.teamdata.ServiceblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n\r\n vm.Get360VendorTeamData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n\r\n vm.GetToolsAndAssets = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.GetToolsAndAssets(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.assetData = resp.data;\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n // api for onboarding \r\n\r\n vm.implementSelectItemsUsers = function (itemList, scope) {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n scope.selectRowUsers = function (i) {\r\n vm.toBeAssigned = [];\r\n scope.showMinusUsers = false;\r\n scope.selectAllUsers = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n var myObject = { 'UserId': d.UserId,\r\n 'Skill': d.Skill };\r\n vm.toBeAssigned.push(myObject)\r\n scope.showMinusUsers = true;\r\n }\r\n\r\n });\r\n }\r\n scope.applyAllNewJobSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllUsers;\r\n });\r\n }\r\n\r\n scope.resetAllSelect = function () {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n }\r\n }\r\n\r\n vm.implementSelectItemsUsers('InteractionList', this);\r\n\r\n\r\n vm.AssignTickets = function (userId) {\r\n if (vm.toBeAssigned == [] || vm.toBeAssigned == undefined || vm.toBeAssigned.length < 1) {\r\n vm.showFailure(\"Failed\", 'Please select atleast 1 user to assign');\r\n } else {\r\n vm.assignButtonDisable = true;\r\n SlotAllocationService.AssignSlotInteractionToUser(vm.toBeAssigned, userId, vm.InteractionType, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\", \"Users assigned successfully\");\r\n $timeout(function () {\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n vm.toBeAssigned = [];\r\n vm.assignButtonDisable = false;\r\n }, 2000);\r\n\r\n } else {\r\n vm.showFailure(\"Failed\", \"User could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"User could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n })\r\n }\r\n }\r\n\r\n // video popup Start\r\n\r\n\r\n vm.VideoUploadPopup = function (UserId, UserSkill) {\r\n vm.UserIdForVideo = UserId;\r\n vm.UserSkillForVideo = UserSkill;\r\n VideoModel = $uibModal.open({\r\n templateUrl: 'videoupload_model.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n }, function () {\r\n });\r\n \r\n }\r\n vm.file = [];\r\n $scope.uploadVideoFile = function(files){\r\n \r\n vm.FrontFileName=\"\";\r\n vm.FilesFrontDoc = files.files;\r\n vm.FrontFileName = vm.FilesFrontDoc[0].name; \r\n vm.file.push(vm.FilesFrontDoc);\t\r\n var allowedExtensions = /(\\.mp4|\\.mov|\\.avi|\\.webm|\\.m4v|\\.mov|\\.qt)$/i; \r\n if(!allowedExtensions.exec(vm.FrontFileName)){\r\n vm.FilesFrontDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .mp4,.mov,.avi,.webm,.m4v,.mov,.qt only.');\r\n }\r\n }\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n };\r\n\r\n $scope.stars = [1, 2, 3, 4, 5];\r\n $scope.skillrating = 0;\r\n\r\n $scope.setRating = function(rating) {\r\n $scope.skillrating = rating;\r\n };\r\n\r\n vm.UploadSMEVideo = function () {\r\n var Feedback = vm.FeedbackRemarks;\r\n var Rating = $scope.skillrating;\r\n vm.disableuploadbutton = true;\r\n SMEInteractionService.UploadSMEInteractionVideo(vm.UserIdForVideo,Rating, Feedback,vm.UserSkillForVideo,vm.FrontFileName, vm.FilesFrontDoc, token, loggedinUser).then(function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Video Uploaded Successfully.\");\r\n vm.VideoUploadPop();\r\n vm.disableuploadbutton = false;\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", \"Not Uploaded\");\r\n vm.VideoUploadPop();\r\n vm.disableuploadbutton = false;\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n });\r\n }\r\n vm.UploadBGVideo = function () {\r\n var Feedback = vm.FeedbackRemarks;\r\n var Rating = $scope.skillrating;\r\n vm.disableuploadbutton = true;\r\n OnBoardingFlowService.UploadBGInteractionVideo(vm.UserIdForVideo ,Rating, Feedback,vm.FrontFileName, vm.FilesFrontDoc, token, loggedinUser).then(function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Video Uploaded Successfully.\");\r\n vm.VideoUploadPop();\r\n vm.disableuploadbutton = false;\r\n } else if (res && res.data && res.data.Message) {\r\n vm.VideoUploadPop();\r\n vm.showFailure(\"Failed\", \"Not Uploaded\");\r\n vm.disableuploadbutton = false;\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n });\r\n }\r\n \r\n vm.VideoUploadPop = function () {\r\n VideoModel.close();\r\n $scope.skillrating = 0;\r\n vm.FeedbackRemarks = \"\";\r\n }\r\n\r\n\r\n $scope.totalTableUsersBG = 0;\r\n $scope.userSMETablePerPage = vm.userPageListCount;\r\n $scope.UserSMETablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeUserSMEPageListCount = function () {\r\n $scope.userSMETablePerPage = vm.userPageListCount;\r\n PageSize = $scope.userSMETablePerPage;\r\n $scope.UserSMETablepageChanged($scope.UserSMETablepagination.current);\r\n }\r\n\r\n PageIndex = $scope.UserSMETablepagination.current;\r\n $scope.UserSMETablepageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetAllInteractions();\r\n };\r\n\r\n $scope.totalTableUsersBG = 0;\r\n $scope.userTablePerPage = vm.userPageListCount;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeUserPageListCount = function () {\r\n $scope.userTablePerPage = vm.userPageListCount;\r\n PageSize = $scope.userTablePerPage;\r\n $scope.UserTablepageChanged($scope.UserTablepagination.current);\r\n }\r\n\r\n PageIndex = $scope.UserTablepagination.current;\r\n $scope.UserTablepageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetAllInteractions();\r\n };\r\n\r\n\r\n vm.GetAllInteractions = function () {\r\n data = {\r\n \"Status\": vm.slotStatus,\r\n \"Skill\": vm.userskill == \"\" ? \"\" : vm.userskill.join(\"|\"),\r\n \"DateField\": vm.DateField,\r\n \"FromDate\": startDate,\r\n \"ToDate\": endDate,\r\n \"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n \"InteractionType\": vm.InteractionType,\r\n \"PageIndex\": PageIndex,\r\n \"PageCount\": PageSize,\r\n \"State\": vm.State,\r\n \"City\": vm.City,\r\n \"SearchTag\" :vm.searchTag\r\n }\r\n SlotAllocationService.GetAllInteractions(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.InteractionList = resp.data.GetInteractionResModelList;\r\n $scope.totalTableUsersBG = resp.data.Count;\r\n if (vm.InteractionList.length < vm.userPageListCount)\r\n vm.bGVerifyListLength = $scope.totalTableUsersBG;\r\n else\r\n vm.bGVerifyListLength = PageIndex * vm.userPageListCount;\r\n if (PageIndex == 1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n\r\n })\r\n }\r\n\r\n vm.GetAllInteractionsDashboard = function () {\r\n data = {\r\n \"Status\": vm.slotStatus,\r\n \"Skill\": vm.userskill == \"\" ? \"\" : vm.userskill.join(\"|\"),\r\n \"DateField\": vm.DateField,\r\n \"FromDate\": startDate,\r\n \"ToDate\": endDate,\r\n \"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n \"InteractionType\": vm.InteractionType,\r\n \"PageIndex\": PageIndex,\r\n \"PageCount\": PageSize,\r\n \"State\": vm.State,\r\n \"City\": vm.City\r\n }\r\n SlotAllocationService.GetAllInteractionsDashboard(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TotalSlots = resp.data.TotalSlots;\r\n vm.AssignedSlots = resp.data.AssignedSlots;\r\n vm.PendingSlots = resp.data.PendingSlots;\r\n vm.CompletedSlots = resp.data.CompletedSlots;\r\n vm.BreachedSlots = resp.data.BreachedSlots;\r\n }\r\n\r\n })\r\n }\r\n\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n\r\n vm.GetReportingToMeUsers = function () {\r\n SlotAllocationService.GetReportingToMeUsers(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserByFiltersList = resp.data;\r\n }\r\n }, function () {\r\n });\r\n\r\n }\r\n\r\n vm.GetReportingToMeUsers();\r\n\r\n\r\n vm.ProfileEditView = function (userId) {\r\n // $localStorage.backToOldJobList = 'ManualAssignationTeamAssign';\r\n $state.go('index.RegistrationForm', {\r\n UserId: userId\r\n })\r\n }\r\n\r\n vm.getAllUsersByType = function (value) {\r\n $scope.totalTableUsersBG = 0;\r\n if (value == 'BGVerify') {\r\n vm.InteractionType = 'BGVerify'\r\n }\r\n if (value == 'SMEInteration') {\r\n vm.InteractionType = 'SMEInteration'\r\n }\r\n vm.slotStatus = '';\r\n $scope.UserTablepagination = {};\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n $scope.UserSMETablepagination = {};\r\n $scope.UserSMETablepagination = {\r\n current: 1\r\n };\r\n $scope.showCalendar = false;\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n\r\n }\r\n\r\n vm.getAllSlotsByStatus = function (status) {\r\n vm.slotStatus = status;\r\n PageIndex = 1;\r\n vm.GetAllInteractions();\r\n }\r\n\r\n vm.GetAvailableSlots = function (slotDate) {\r\n vm.slotDate = slotDate\r\n SlotAllocationService.GetAvailableSlots(vm.slotDate, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AvailableSlots = resp.data.objAvailableSlotModelList;\r\n if(vm.AvailableSlots.length != 0){\r\n $scope.showBookingTab = true;\r\n }\r\n else{\r\n $scope.showBookingTab = false;\r\n }\r\n $scope.selectedTimeSlot = vm.AvailableSlots[0];\r\n }\r\n })\r\n }\r\n vm.SlotId = '';\r\n vm.disableBookingButton = false;\r\n vm.BookSlotForBGVerification = function () {\r\n vm.disableBookingButton = true;\r\n SlotAllocationService.BookSlotForBGVerification(vm.slotBookingUserId,vm.slotDate, vm.SlotId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $scope.toggleCalendar();\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n $timeout(function () {\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n }, 2000);\r\n vm.disableBookingButton = false;\r\n }\r\n else {\r\n vm.disableBookingButton = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n \r\n }\r\n })\r\n }\r\n\r\n vm.BookSlotForSMEInterationWeb = function () {\r\n vm.disableBookingButton = true;\r\n SlotAllocationService.BookSlotForSMEInterationWeb(vm.slotBookingUserId,vm.slotDate, vm.SlotId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $scope.toggleCalendar();\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n $timeout(function () {\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n }, 2000);\r\n vm.disableBookingButton = false;\r\n }\r\n else {\r\n vm.disableBookingButton = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n })\r\n }\r\n\r\n }\r\n});\r\n\r\nangular.module('inspinia').filter('searchUser', function () {\r\n return function (items, search) {\r\n var filtered = [];\r\n if (search) {\r\n angular.forEach(items, function (item) {\r\n var searchstr = new RegExp(search, \"i\");\r\n if (item.id.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.User_Type.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.city.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.contactnumber.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.name.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.role.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.state.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n });\r\n } else {\r\n filtered = items;\r\n }\r\n return filtered;\r\n }\r\n})\nangular.module('inspinia').service('VendorTeamCreationService', function (ApiURL,FreelancerURL, LocationURL,PublicApiURL, $log, $http,$localStorage) {\r\n\r\n\r\n\tthis.InviteTeamForRegistration = function (loggedInUser, token,ContactNo,Name) {\r\n\t var url = FreelancerURL + '/api/FreelancerVendor/InviteTeamForRegistration?ContactNumber='+ ContactNo+ '&Name='+ Name;\r\n\t return $http.put(url,null,{\r\n\t\theaders:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\t\r\n\tthis.GetInvitedTeamForRegistration = function (loggedinUser, token) {\r\n\t var url = FreelancerURL + '/api/FreelancerVendor/GetInvitedTeamForRegistration';\r\n\t return $http.get(url, {\r\n\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t });\r\n\t}\r\n\t//testaz.mymobiforce.com/coreAPI/api/User/ActivateVendorTeam?userId=F0000090900\r\n\r\n\tthis.ActivateVendorTeam = function (userIdtoUpdate, loggedInUser, token) {\r\n\t\tvar url = ApiURL + '/api/User/ActivateVendorTeam?userId='+ userIdtoUpdate;\r\n\t\treturn $http.put(url,null,{\r\n\t\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t\t})\r\n\t }\r\n\t \r\n\t});\nangular.module('inspinia').controller('VendorTeamCreationController', function (teamCardService,VendorTeamCreationService, $timeout, MainService, $rootScope, DTColumnBuilder, $compile, $q, ProjectCreationService, $scope, TeamProfileService, $stateParams, $uibModal, $localStorage, $log, $state, DTOptionsBuilder, PlanningResourseMapService, DashboardService, DTColumnDefBuilder, ImageUrl) {\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n $rootScope.rootScopeMessage = '';\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.users = [];\r\n vm.FilterSwitch = false;\r\n vm.client = 1;\r\n vm.tab = 1;\r\n vm.skill = '';\r\n vm.workArea = '';\r\n var skillsArray;\r\n var circleArray;\r\n var ProjectModal = {};\r\n var userIndex = 0;\r\n vm.filteredProperties = {};\r\n vm.selectAll = false;\r\n vm.showMinus = false;\r\n vm.searchText = \"\";\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.dtInstance = {};\r\n var witemNames = \"\";\r\n var witemValues = \"\";\r\n var wsSDate = '';\r\n var wsEDate = '';\r\n var uPageIndex = 1;\r\n var uwPageIndex = 1;\r\n var uPageSize = 10;\r\n var uwPageSize = 10;\r\n vm.userPageListCount= 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n\r\n vm.imageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else {\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function () {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n vm.exportData = function () {\r\n var blob = new Blob([document.getElementById('tab-1').innerHTML], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, \"Report.xls\");\r\n };\r\n\r\n vm.preProcessUsers = function (user) {\r\n user.ratingStars = vm.getRatingStars(user.CustomerRating);\r\n user.blankStars = vm.getBlankStars(user.CustomerRating);\r\n user.displayName = user.FirstName + \" \" + user.LastName;\r\n // user.displayName = user.displayName.length>8?(user.displayName.substring(0, 8)+\"...\"):user.displayName;\r\n var locs = \"\";\r\n angular.forEach(user.Locations, function (l) {\r\n locs += l + \",\";\r\n });\r\n user.allLocations = locs.length > 0 ? locs.substring(0, locs.length - 1) : \"\";\r\n var skills = \"\";\r\n angular.forEach(user.SkillSet, function (s) {\r\n skills += s + \",\";\r\n });\r\n user.allSkills = skills.length > 0 ? skills.substring(0, skills.length - 1) : \"\";\r\n var workareas = \"\";\r\n angular.forEach(user.Locations, function (w) {\r\n workareas += w + \",\";\r\n });\r\n user.allWorkareas = workareas.length > 0 ? workareas.substring(0, workareas.length - 1) : \"\";\r\n }\r\n\r\n vm.getAllUser = function () {\r\n teamCardService.getAllUserByReportingPerson(loggedinUser, token).then(function (resp) {\r\n vm.users = resp.data;\r\n vm.imageServices(vm.users.Picture);\r\n // angular.forEach(vm.users, function (d) {\r\n // vm.preProcessUsers(d);\r\n // });\r\n // if (vm.users.length == 0) {\r\n // vm.client = 1;\r\n // } else {\r\n // vm.client = 3;\r\n // vm.userInfo = vm.users[userIndex];\r\n // }\r\n }, function () {\r\n //$log.log('not working');\r\n })\r\n }\r\n\r\n vm.getUserInfo = function (userId, loggedinUser) {\r\n TeamProfileService.getFixedUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n vm.userInfo = resp.data;\r\n vm.imageServices(vm.userInfo.Picture);\r\n vm.preProcessUsers(vm.userInfo);\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.getAllSkills = function () {\r\n TeamProfileService.getAllSkills().then(function (resp) {\r\n vm.skills = resp.data;\r\n for (var index = 0; index < vm.skills.length; index++) {\r\n skillsArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.getAllCircles = function (loggedinUser) {\r\n ProjectCreationService.GetAllCircles(loggedinUser).then(function (resp) {\r\n vm.circles = resp.data;\r\n for (var index = 0; index < vm.circles.length; index++) {\r\n circleArray.push({\r\n workArea: vm.circles.circle\r\n });\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.AddTeamMember = function () {\r\n $state.go('index.TeamCreate', {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileView = function (userid) {\r\n $state.go('index.TeamProfile', {\r\n userId: userid\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileData = function (userData) {\r\n vm.userInfo = userData\r\n vm.client = 3;\r\n }\r\n\r\n // vm.ProfileData = function (userId) {\r\n // vm.getUserInfo(userId, loggedinUser);\r\n // vm.client = 3;\r\n // }\r\n\r\n vm.filtermodal = function () {\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'Filter.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n\r\n\r\n vm.CloseModal = function () {\r\n ProjectModal.close();\r\n }\r\n $scope.selectedOption = '';\r\n vm.LunchSchedule = function () {\r\n UpdateLunch = $uibModal.open({\r\n templateUrl: 'LunchPopup.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n vm.closeUpdateLunch = function () {\r\n UpdateLunch.close();\r\n }\r\n\r\n vm.editTeamMember = function (userName) {\r\n $state.go('index.TeamEdit', {\r\n userId: userName\r\n });\r\n }\r\n vm.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userClass_status = true;\r\n vm.userSingle = function () {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.close360View = function () {\r\n $scope.userClass_status = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n vm.Get360TeamProfileData = function (userId) {\r\n vm.userId = userId;\r\n DashboardService.Get360ProfileData(loggedinUser, userId, token).then(function (resp) {\r\n if (resp.data) {\r\n vm.userSingle();\r\n $scope.myvalue = false;\r\n }\r\n vm.teamdata = resp.data;\r\n vm.AvgRating = vm.teamdata.userProfile.AverageRating;\r\n vm.ReviewsList = vm.teamdata.userProfile.Reviews\r\n vm.teamdata.ratingStars = vm.getRatingStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.blankStars = vm.getBlankStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.avgratingStars = vm.getAvgRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.avgblankStars = vm.getAvgBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n if (vm.teamdata.userProfile.ContactNumber) {\r\n vm.teamdata.userProfile.ContactNumber = vm.teamdata.userProfile.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n\r\n if (vm.teamdata.userProfile.Reviews) {\r\n vm.teamdata.userProfile.Reviews.forEach(function (element, i) {\r\n vm.teamdata.userratingStars = vm.getUserRatingStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n vm.teamdata.userblankStars = vm.getUserBlankStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n element.arrayRating = vm.teamdata.userratingStars;\r\n element.blankRating = vm.teamdata.userblankStars;\r\n });\r\n }\r\n\r\n vm.TechnicianRating = Number(vm.teamdata.userProfile.Ratings.TechnicianRating).toFixed(1);\r\n $timeout(function () {\r\n displayTotals();\r\n }, 300);\r\n }, function () {\r\n })\r\n }\r\n \r\n vm.Get360TeamView = function(teamid){\r\n $state.go('index.Technician360view',{\r\n userId: teamid\r\n }, { reload: true });\r\n }\r\n\r\n\r\n $scope.totalWS = 0;\r\n $scope.wsPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function(userId) {\r\n $scope.wsPerPage = vm.userPageListCount;\r\n uPageSize = $scope.wsPerPage;\r\n $scope.WSTablePageChanged($scope.Userpagination.current);\r\n\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.wsersFilterArray(); \r\n vm.Get360WorkSummary(loggedinUser, token,userId, witemNames, witemValues, uPageIndex, uPageSize,wsSDate,wsEDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\n }\r\n\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n if(witemNames != 'Search')\r\n {\r\n vm.wsersFilterArray();\r\n }\r\n\r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate,wsEDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\n\r\n\r\n vm.wsersFilterArray = function()\r\n {\r\n witemNames=\"\";\r\n witemValues=\"\";\r\n\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(witemNames) \r\n {\r\n witemNames = witemNames + ',Search';\r\n witemValues = witemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n witemNames = 'Search';\r\n witemValues = vm.userNameSearch;\r\n } \r\n }\r\n\r\n if(vm.JobcountbyStatus)\r\n {\r\n if(witemNames) \r\n {\r\n witemNames = witemNames + ',Status';\r\n witemValues = witemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else\r\n {\r\n witemNames = 'Status';\r\n witemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.wsTicketList = resp.data.workSummaryData;\r\n $scope.totalWS = resp.data.WorkSummaryTotalCount;\r\n if (vm.wsTicketList.length < vm.userPageListCount)\r\n vm.wsListLength = $scope.totalWS;\r\n else\r\n vm.wsListLength = uPageIndex * vm.userPageListCount;\r\n if (uPageIndex == 1)\r\n vm.wspageindexCount = 1;\r\n else\r\n vm.wspageindexCount = (((uPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n vm.RedirectToConfiguration = function () {\r\n $state.go('index.CalendarManagement', { reload: true });\r\n }\r\n \r\n vm.Get360SkillSummary = function () {\r\n DashboardService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for(var i=0;ilTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback);\r\n }\r\n }, 2000);\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n // for deattach the user from account\r\n vm.DetachUser = function (UserId) {\r\n teamCardService.updateDetachStatus(loggedinUser, UserId, token).then(function (resp) {\r\n if (resp && resp.status == 202) {\r\n vm.showSuccess('Success', \"User released from account Successfully\");\r\n $timeout(function () {\r\n window.location.reload(true);\r\n });\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n });\r\n\r\n }\r\n\r\n vm.search = function () {\r\n if (vm.Name == true) {\r\n if (angular.isDefined(vm.teamMember_name)) {\r\n vm.filteredProperties.FirstName = vm.teamMember_name;\r\n }\r\n\r\n } if (vm.ProjectCheckBox == true) {\r\n if (angular.isDefined(vm.Project)) {\r\n vm.filteredProperties.Project = vm.Project;\r\n }\r\n // } if (vm.StarCheckBox == true) {\r\n // if(angular.isDefined(vm.Star)) {\r\n // vm.filteredProperties.CustomerRating=vm.Star;\r\n // }\r\n } if (vm.skillCheckBox == true) {\r\n if (angular.isDefined(vm.skill)) {\r\n vm.filteredProperties.SkillSet = vm.skill[0];\r\n }\r\n } if (vm.Capture == true) {\r\n if (angular.isDefined(vm.workArea)) {\r\n vm.filteredProperties.Locations = vm.workArea[0];\r\n }\r\n } if (vm.statusCheckBox == true) {\r\n if (angular.isDefined(vm.status)) {\r\n vm.filteredProperties.status = vm.status;\r\n }\r\n }\r\n ProjectModal.close();\r\n }\r\n\r\n // vm.getAllUser(userId, loggedinUser);\r\n\r\n // vm.getAllCircles(loggedinUser); \r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n\r\n vm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.openTeamProfile = function (userId) {\r\n $state.go('index.TeamProfile', {\r\n userId: userId\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n VendorTeamCreationService.GetInvitedTeamForRegistration(loggedinUser, token).then(function (resp) {\r\n vm.teamLists = resp.data;\r\n angular.forEach(vm.teamLists, function (d) {\r\n vm.preProcessUsers(d);\r\n });\r\n if (!vm.teamLists.length) {\r\n vm.client = 1;\r\n } else {\r\n vm.client = 3;\r\n vm.userInfo = vm.teamLists[userIndex];\r\n vm.ProfileData(vm.teamLists[userIndex]);\r\n }\r\n\r\n defer.resolve(vm.teamLists);\r\n })\r\n return defer.promise;\r\n\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n // .withScroller()\r\n // .withOption('deferRender', true)\r\n // .withOption('scrollY', 350)\r\n // .withOption('paging', false)\r\n .withOption('rowCallback', rowCallback);\r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n function rowCallback(nRow, aData, iDisplayIndex, iDisplayIndexFull) {\r\n $('td', nRow).unbind('click');\r\n $('td', nRow).bind('click', function () {\r\n $scope.$apply(function () {\r\n vm.ProfileData(aData);\r\n });\r\n });\r\n return nRow;\r\n }\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle('UserId').renderWith(function (data, type, full, meta) {\r\n return '';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Name').renderWith(function (data, type, full, meta) {\r\n var address = '';\r\n if (data.Picture == null) {\r\n address = \"assets/images/patterns/photo1.png\";\r\n } else {\r\n MainService.GetImageBlob(loggedinUser, token, data.Picture).then(function (resp) {\r\n address = resp.data;\r\n });\r\n }\r\n return '' + data.ContactName + '';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('ContactNumber').withTitle('Phone Number').notSortable(),\r\n DTColumnBuilder.newColumn('Role').withTitle('Role').notSortable(),\r\n DTColumnBuilder.newColumn('Status').withTitle('Status').notSortable().renderWith(function(data, type, full, meta) {\r\n return '' + data + '';\r\n })\r\n ];\r\n \r\n $scope.getStatusClass = function(status) {\r\n if (status === 'Inactive') {\r\n return 'label label-danger rejectedcolor';\r\n } else if (status === 'Invited') {\r\n return 'label label-success';\r\n } else if (status === 'Active') {\r\n return 'label label-primary';\r\n } else if (status === '') {\r\n return 'label label-danger broadcastcolor';\r\n }\r\n return '';\r\n};\r\n // vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n // '<\"html5buttons\"B>lTfgitp')\r\n // .withButtons([]).withPaginationType(\r\n // 'full_numbers').withOption('lengthChange', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n // .withOption('order', [1, 'asc']);\r\n\r\n // vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n // // DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(2).notSortable().withClass('td-small-with-panel'),\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(7).notSortable()];\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n vm.UserName = '';\r\n vm.ContactNo = '';\r\n\r\n vm.AddTeamMemberModel = function () {\r\n vm.teammemberadd = $uibModal.open({\r\n templateUrl: 'Addteam.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseAddTeamMemberModel = function () {\r\n vm.UserName = '';\r\n vm.ContactNo = '';\r\n vm.teammemberadd.close();\r\n }\r\n\r\n vm.selectedPart = function (inventoryData) {\r\n\t\t\tvm.sideViewData = inventoryData;\r\n\t\t\t\r\n\t\t}\r\n vm.ProfileView = function (userid) {\r\n $state.go('index.TeamProfile', {\r\n userId: userid\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.InviteTeamForRegistration = function () {\r\n vm.AddTeam_form.submitted = true;\r\n if (vm.AddTeam_form.$valid) {\r\n VendorTeamCreationService.InviteTeamForRegistration(loggedinUser, token, vm.ContactNo, vm.UserName).then(function (resp) {\r\n vm.invitedteamlist = resp.data;\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Invite Sent Successfully\");\r\n setTimeout(function () {\r\n vm.CloseAddTeamMemberModel();\r\n }, 2000);\r\n \r\n $timeout(function () {\r\n if (vm.dtInstance && vm.dtInstance.reloadData) {\r\n vm.dtInstance.reloadData();\r\n } else {\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n return vm.GetInvitedTeamForRegistration();\r\n }).withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback);\r\n \r\n // Recreate the DataTable instance\r\n vm.dtInstance = vm.dtOptions.DataTable;\r\n \r\n // Trigger Angular digest cycle\r\n $scope.$applyAsync();\r\n }\r\n }, 2000);\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n });\r\n }\r\n };\r\n // vm.GetInvitedTeamForRegistration = function () {\r\n // VendorTeamCreationService.GetInvitedTeamForRegistration(loggedinUser, token).then(function (resp) {\r\n // if (resp.data && resp.status == 200) {\r\n // vm.InvitedTeamExploreList = resp.data;\r\n // vm.sideViewData = vm.InvitedTeamExploreList[0];\r\n // }\r\n // }, vm.showFailure);\r\n // }\r\n // vm.GetInvitedTeamForRegistration();\r\n\r\n }\r\n});\nangular.module('inspinia').service('VendorTeamCreateService', function (ApiURL,FreelancerURL, LocationURL,PublicApiURL, $log, $http,$localStorage) {\r\n\r\n\r\nthis.InviteTeamForRegistration = function (loggedInUser, token,ContactNo,Name) {\r\n var url = FreelancerURL + '/api/FreelancerVendor/InviteTeamForRegistration?ContactNumber='+ ContactNo+ '&Name='+ Name;\r\n return $http.put(url,null,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\nthis.GetInvitedTeamForRegistration = function (loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerVendor/GetInvitedTeamForRegistration';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n}\r\n \r\n});\r\n\nangular.module('inspinia').controller('VendorTeamCreateController', function (VendorTeamCreateService, ProjectCreationService, ReferService, MainService, $state, $scope, $timeout, $stateParams,$uibModal, $filter, $log, $localStorage, TeamProfileService, ImageUrl) {\r\n var vm = this;\r\n vm.isDisabled = false;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if ($localStorage.accountConfig) {\r\n if ($localStorage.accountConfig) {\r\n vm.EnableRegion = $localStorage.accountConfig.EnableRegion;\r\n }\r\n } else {\r\n vm.EnableRegion = false;\r\n }\r\n\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n vm.loggedinUserRole = $localStorage.loggedInUser_Role;\r\n var userId_ForUpdate = $stateParams.userId;\r\n vm.saveAndNewFlag = false;\r\n vm.editMode = false;\r\n vm.address_option = 'Yes';\r\n vm.officeFormValidation = false;\r\n vm.isCollapsed = false;\r\n vm.isUserDetailCollapsed = false;\r\n vm.isOfficeUseCollapsed = true;\r\n vm.showAction = true;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n var today = new Date();\r\n var date = today.getFullYear() - 18;\r\n var age = (today.getMonth() + 1 + \"/\" + today.getDate() + \"/\" + date).toString();\r\n vm.client = 1;\r\n vm.tab = 1;\r\n vm.maxDOB = new Date(age);\r\n vm.maxDOBStr = vm.maxDOB.toDateString();\r\n age = Date.parse(age);\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\r\n vm.UserName = '';\r\n vm.ContactNo = '';\r\n\r\n vm.AddTeamMemberModel = function () {\r\n vm.teammemberadd = $uibModal.open({\r\n templateUrl: 'Addteam.html',\r\n size: 'lg',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseAddTeamMemberModel = function () {\r\n vm.teammemberadd.close();\r\n }\r\n vm.selectedPart = function (inventoryData) {\r\n\t\t\tvm.sideViewData = inventoryData;\r\n\t\t\t\r\n\t\t}\r\n vm.ProfileView = function (userid) {\r\n $state.go('index.TeamProfile', {\r\n userId: userid\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.InviteTeamForRegistration = function () {\r\n vm.AddTeam_form.submitted = true;\r\n if (vm.AddTeam_form.$valid) {\r\n VendorTeamCreateService.InviteTeamForRegistration(loggedinUser, token, vm.ContactNo, vm.UserName).then(function (resp) {\r\n vm.invitedteamlist = resp.data;\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Invite Sent Successfully\");\r\n setTimeout(function () {\r\n\t\t\t\t\t\tvm.CloseAddTeamMemberModel();\r\n\t\t\t\t\t}, 2000);\r\n vm.GetInvitedTeamForRegistration();\r\n }\r\n else{\r\n vm.showFailure(\"Failed\",resp.data.Message);\r\n }\r\n })\r\n }\r\n }\r\n vm.GetInvitedTeamForRegistration = function () {\r\n VendorTeamCreateService.GetInvitedTeamForRegistration(loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.InvitedTeamExploreList = resp.data;\r\n vm.sideViewData = vm.InvitedTeamExploreList[0];\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.GetInvitedTeamForRegistration();\r\n\r\n }\r\n});\r\n\nangular.module('inspinia').service('VendorProfileService', function (ApiURL, FreelancerURL, LocationURL, $log, $http, $localStorage) {\r\n \r\n\t //http://localhost:56749/api/Vendor/kanika.bansal%40innotiontech.com/V0000000001/getvendorbyid\r\n\tthis.GetVendorById = function(loggedInUser,vendorId, token){\r\n\t var url = ApiURL + '/api/Vendor/' + loggedInUser + '/' + vendorId + '/getvendorbyid';\r\n\t return $http.get(url,{\r\n\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\t \r\n\t //http://192.168.0.80:92/CoreAPI/api/Ticket/kanika.bansal%40innotiontech.com/V0000000001///getticketsbyvendor\r\n\t// this.GetTicketsByVendor = function(loggedInUser,vendorId,itemName,itemValue,token){\r\n\t// var url = ApiURL + '/api/Ticket/' + loggedInUser + '/' + vendorId + '/' + itemName + '/' + itemValue+'/getticketsbyvendor';\r\n\t// return $http.get(url,{\r\n\t// headers:{'Content-Type' : 'application/json','Token':token}\r\n\t// })\r\n\t// }\r\n\r\n\t// this.getAllSkills = function(loggedinUser, token, success, failure){\r\n\t// \tvar url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n\t// \treturn $http.get(url, {headers:{'Token': token}}).then(function(res){\r\n\t// \t if(res && res.status == 200 && res.data){\r\n\t// \t\tsuccess(res.data);\r\n\t// \t }\r\n\t// \t}, function(err){\r\n\t// \t failure(\"Failed\", \"Unable to get skill list, server error.\")\r\n\t// \t})\r\n\t// }\r\n\r\n\r\n\t// this.GetAllCircles = function (loggedinUser, success, failure) {\r\n\t// \tvar url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllCircles'\r\n\t// \treturn $http.get(url, {\r\n\t// \t headers: { 'Content-Type': 'application/json' }\r\n\t// \t}).then(function(res){\r\n\t// \t if(res && res.status ==200 && res.data){\r\n\t// \t\tsuccess(res.data);\r\n\t// \t } \r\n\t// \t}, function(err){\r\n\t// \t failure(\"Failed\", \"Unable to get locations, server is not responding correctly\");\r\n\t// \t});\r\n\t// }\r\n\r\n\t// this.GetFreelancerJobs = function(userId, loggedinUser, token){\r\n\t// \tvar url = FreelancerURL + '/api/FreelancerTicket/' + userId + '/' + loggedinUser + '/ByUserId'\r\n\t// \treturn $http.get(url,{\r\n\t// \t headers:{'Content-Type':'application/json',\r\n\t// \t\t'Token': token}\r\n\t// \t});\r\n\t// }\r\n\r\n\t// this.getJobsByUserId=function(userId,loggedinUser, token)\r\n\t// {\r\n\t// \tvar url =ApiURL + \"/api/Ticket/\" +userId+\"/byUserId?reqUserId=\"+loggedinUser;\r\n\t// \treturn $http.get(url, {\r\n\t// \t headers: {\r\n\t// \t\t'Content-Type': 'application/json',\r\n\t// \t\t'Token': token\r\n\t// \t }\r\n\t// \t});\r\n\t// }\r\n\r\n\t// this.getUserRating = function (userId,loggedinUser, token) {\r\n\t// \tvar url = ApiURL + \"/api/User/\"+userId+\"/\"+loggedinUser+\"/GetUserRating\";\r\n\t// \treturn $http.get(url, {\r\n\t// \t headers: {\r\n\t// \t\t'Content-Type': 'application/json',\r\n\t// \t\t'Token': token\r\n\t// \t }\r\n\t// \t});\r\n\t// }\r\n\r\n\t this.uploadProfilePic = function (loggedinUser, data, token, success, failure) {\r\n\t\t$http.post(ApiURL + '/api/User/PostUserPic?reqUserId=' + loggedinUser, data, {\r\n\t\t headers: {\r\n\t\t\t'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser\r\n\t\t }\r\n\t\t}).then(success, failure);\r\n\t }\r\n\r\n\t// this.save = function(loggedinUser, token, data, success, failure){\r\n\t// \tvar url = ApiURL + '/api/User?reqUserId='+loggedinUser;\r\n\t// \t$http.put(url, data, {\r\n\t// \t headers: { 'ContentType': 'application/json',\r\n\t// \t\t'Token': token }\r\n\t// \t}).then(function(res){\r\n\t// \t success(res);\r\n\t// \t}, function(err){\r\n\t// \t failure(\"Failed\", \"Unable to save user profile, server is not responding correctly.\");\r\n\t// \t})\r\n\t// }\r\n\r\n\t// http://localhost:50144/api/FreeLancerRegistration/UpdateVendorRegistrationdDetails\r\n\tthis.save = function(loggedinUser, token, data, success, failure){\r\n\t\tvar url = FreelancerURL + '/api/FreeLancerRegistration/UpdateVendorRegistrationdDetails';\r\n\t\t$http.put(url, data, {\r\n\t\t headers: { 'ContentType': 'application/json',\r\n\t\t\t'Token': token, 'UserId':loggedinUser }\r\n\t\t}).then(function(res){\r\n\t\t success(res);\r\n\t\t}, function(err){\r\n\t\t failure(\"Failed\", \"Unable to save user profile, server is not responding correctly.\");\r\n\t\t})\r\n\t }\r\n\r\n\r\n \r\n});\r\n\r\n\nangular.module('inspinia').controller('VendorProfileController', function (VendorProfileService, OnBoardingFormService, $filter, ImageUrl, $log, $state, $localStorage, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login',{\r\n reload:true\r\n });\r\n }else{\r\n //Global Variable Declaration\r\n vm.vendorList='';\r\n vm.vendorData = '';\r\n vm.ActivationStatus = '';\r\n vm.searchText = '';\r\n vm.dtInstance = {};\r\n vm.vendorId = $stateParams.vendorId; \r\n vm.jobTickets = '';\r\n vm.itemName = '';\r\n vm.itemValue = '';\r\n vm.Tools = [];\r\n vm.TrainingList = [];\r\n vm.pathtcertificate = '';\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n\r\n \r\n //Get VendorData by Vendor Id\r\n // vm.GetVendorDataById = function(vendorId){\r\n // VendorProfileService.GetVendorById(loggedinUser,vendorId,token).then(function(resp){\r\n // if (resp.data) {\r\n // // if (!angular.equals(vm.vendorData,resp.data)) {\r\n // vm.vendorData = resp.data;\r\n // //$log.log('vendorData',vm.vendorData)\r\n // // vm.ActivationStatus = vm.vendorData.VendorStatus == \"Active\" ? true : false;\r\n // // }\r\n // }\r\n // })\r\n // }\r\n\r\n vm.sparkline1 = [34, 43, 43, 35, 44, 32, 44, 52];\r\n var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n\r\n vm.qualificationList = [\"10th\", \"12th\", \"Graduation Degree/Deploma\", \"PG Degree/Deploma\"];\r\n vm.BGDocType = ['Aadhar Card', 'Address Proof', 'Pan Card', 'Education Certificate', 'Police Verification', 'Resume', 'Cancelled Check','GST Certificate'];\r\n vm.BDDocSubType = {};\r\n vm.BDDocSubType['Address Proof'] = [\"Aadhar Card\", \"Voter Id Card\", \"Driving License\", \"Passport\", \"Rent Agreement\", \"Telephone/Gas Bill\", \"Bank Passbook\"];\r\n vm.BDDocSubType['Pan Card'] = ['Pan Card'];\r\n vm.BDDocSubType['Education Certificate'] = vm.qualificationList;\r\n vm.BDDocSubType['Police Verification'] = [\"Police Verification\"];\r\n vm.BDDocSubType['Resume'] = [\"Resume\"];\r\n vm.BDDocSubType['Cancelled Check'] = [\"Cancelled Check\"];\r\n vm.BDDocSubType['GST Certificate'] = ['GST Certificate'];\r\n\r\n // vm.qualificationList = [\"10th\", \"12th\", \"Graduation Degree/Deploma\", \"PG Degree/Deploma\"];\r\n // vm.BGDocType = ['Aadhar Card', 'Address Proof', 'Pan Card', 'Education Certificate', 'Police Verification', 'Experience Certificates', 'GST Certificate'];\r\n \r\n // vm.BDDocSubType = {};\r\n // vm.BDDocSubType['Aadhar Card'] = ['Aadhar Card'];\r\n // vm.BDDocSubType['Address Proof'] = [\"Voter Id Card\", \"Passport\", \"Rent Agreement\", \"Telephone/Gas Bill\", \"Bank Passbook\"];\r\n // vm.BDDocSubType['Pan Card'] = ['Pan Card'];\r\n // vm.BDDocSubType['Education Certificate'] = vm.qualificationList;\r\n // vm.BDDocSubType['Police Verification'] = [\"Police Verification\"];\r\n // vm.BDDocSubType['Experience Certificates'] = [\"Experience Certificates\"];\r\n // // vm.BDDocSubType['GST Certificate'] = ['GST Certificate'];\r\n\r\n vm.last30Years = [];\r\n vm.experienceList = [];\r\n vm.brandList = [\"Samsung\", \"Onida\", \"BPL\", \"LG\", \"Hitachi\", \"Whirlpool\", \"Panasonic\", \"BOSCH\", \"Videocon\", \"Godrej\", \"Ericsson\", \"TATA\", \"Airtel\", \"Idea\", \"Vodafone\", \"BSNL\", \"NSN\"];\r\n\r\n vm.currentYear = new moment().format(\"YYYY\");\r\n\r\n for (var i = 0; i < 30; i++) {\r\n vm.last30Years.push((vm.currentYear - i) + \"\");\r\n vm.experienceList.push((i + 1) + \"\");\r\n }\r\n\r\n vm.sparkline1Options = {\r\n type: 'bar',\r\n width: '100%',\r\n height: '50',\r\n lineColor: '#1ab394',\r\n fillColor: \"transparent\"\r\n };\r\n getUserInfo(vm.vendorId, loggedinUser);\r\n\r\n vm.dtOptionsDocList = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefsDocList = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable()\r\n ];\r\n\r\n function getUserInfo(vendorId, loggedinUser) {\r\n VendorProfileService.GetVendorById(loggedinUser,vendorId,token).then(function (resp) {\r\n vm.vendorInfo = resp.data;\r\n vm.BGDocList = angular.copy(vm.vendorInfo.BGVerificationDocPath);\r\n // vm.TrainingAssessment = angular.copy(vm.vendorInfo.TrainingAssessment);\r\n vm.Tools = angular.copy(vm.vendorInfo.Tools);\r\n for(var i=0; i= 0 || url.indexOf(\".jpeg\") >= 0 || url.indexOf(\".png\") >= 0 || url.indexOf(\".bmp\") >= 0) {\r\n return \"image\";\r\n } else if (url.indexOf(\".pdf\") >= 0) {\r\n return \"pdf\";\r\n } else if (url.indexOf(\".doc\") >= 0 || url.indexOf(\".docx\") >= 0) {\r\n return \"doc\";\r\n } else {\r\n return \"others\";\r\n }\r\n }\r\n\r\n $scope.uploadBGFile = function (elem) {\r\n\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n var doc = vm.BGDocList[index];\r\n // vm.error[doc.DocumentType] = null;\r\n\r\n var file = elem.files[0];\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n VendorProfileService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n doc.DocumentPath = doc.DocumentPath1 = res.data;\r\n doc.DocumentName = doc.DocumentName1;\r\n doc.edit = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.error[doc.DocumentType] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n\r\n vm.prepareUserData = function(){\r\n\r\n for(var i=0;i0?locs.substring(0, locs.length-1):\"\";\r\n // data.Locations = locs;\r\n\r\n // var skillsets = \"\";\r\n // angular.forEach(vm.vendorInfo.VendorSkillsets, function(l){\r\n // skillsets += l +\",\";\r\n // })\r\n // skillsets = skillsets.length>0?skillsets.substring(0, skillsets.length-1):\"\";\r\n // data.SkillSet = skillsets;\r\n\r\n return finalModel;\r\n } \r\n\r\n vm.saveTrainingAssessment = function () {\r\n \r\n var data = vm.prepareUserData();\r\n data.AuthorizedBy = vm.AuthorizedBy;\r\n data.BGVerificationDocPath = vm.vendorInfo.BGVerificationDocPath; \r\n\r\n VendorProfileService.save(loggedinUser, token, data, function(res){\r\n if(res && res.status==202){\r\n vm.showSuccess(\"Success\", \"Training assessment saved.\");\r\n } else if(res && res.data && res.data.Message){\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to save user profile, server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.saveBGDocs = function () {\r\n var data = vm.prepareUserData();\r\n VendorProfileService.save(loggedinUser, token, data, function(res){\r\n // $log.log(res);\r\n if(res && res.status==202){\r\n alert(\"Background verification documents saved Successfully.\");\r\n // vm.showSuccess(\"Success\", \"Background verification documents saved.\");\r\n } else if(res && res.data && res.data.Message){\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to save user profile, server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n // TeamProfileService.save(vm.userData, vm.saveCallback, vm.showFailure);\r\n }\r\n\r\n\r\n vm.getAllCertificate = function(){\r\n OnBoardingFormService.GetAllCertificate(loggedinUser,token,function(data){\r\n vm.AllCertificateSets = data;\r\n },vm.showFailure);\r\n }\r\n vm.getAllCertificate();\r\n\r\n vm.addMoreTCertificate = function(){\r\n var CertificateIssueDate = $filter('date')(new Date(vm.CertificateIssueDate),'yyyy-MM-dd');\r\n var CertificateExpiryDate = $filter('date')(new Date(vm.CertificateExpiryDate),'yyyy-MM-dd');\r\n if(CertificateIssueDate >= CertificateExpiryDate ){\r\n vm.showFailure(\"Expiry date should be greater than Issue Date\");\r\n vm.showTCList = false;\r\n vm.pathtcertificate = '';\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n }else{\r\n var tData = {\r\n CertificateName: vm.addTraningCertificateName,\r\n TrainingCertificate: vm.pathtcertificate,\r\n CertificateNo : vm.CertificateNo,\r\n CertificateIssueDate: CertificateIssueDate,\r\n CertificateExpiryDate: CertificateExpiryDate,\r\n CertificationYear: '',\r\n AssessmentLevel: '',\r\n Description : '',\r\n }\r\n \r\n if(tData.CertificateName && tData.TrainingCertificate && tData.CertificateIssueDate && tData.CertificateExpiryDate){\r\n vm.TrainingList.push(tData);\r\n vm.showTCList = false;\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.pathtcertificate = '';\r\n }else{\r\n vm.showTCList = false;\r\n vm.pathtcertificate = '';\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.showFailure(\"Warning\", \"You must select Certificate Name,CertificateIssueDate,CertificateExpiryDate & Upload File \");\r\n }\r\n}\r\n}\r\n\r\n vm.removeCurrentCertificate = function () {\r\n vm.showTCList = false;\r\n vm.addTraningCertificateName = '';\r\n vm.pathtcertificate = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n }\r\n\r\n vm.showTCList = false;\r\n vm.addMoreCertificateInTable = function(){\r\n vm.showTCList = true;\r\n vm.tempCertificateAdd = true;\r\n }\r\n\r\n vm.tempCertificateAdd = false;\r\n vm.getCertificateSets = function () {\r\n var RemoveCertificate = [];\r\n var remainingCertificate = Array.from(vm.AllCertificateSets);\r\n angular.forEach(remainingCertificate, function (d) {\r\n for (var i = 0; i < vm.TrainingList.length; i++) {\r\n if (d.Name == vm.TrainingList[i].CertificateName) {\r\n RemoveCertificate.push(d);\r\n return;\r\n }\r\n }\r\n });\r\n angular.forEach(RemoveCertificate, function (s) {\r\n remainingCertificate.splice(remainingCertificate.indexOf(s), 1);\r\n })\r\n return remainingCertificate;\r\n }\r\n\r\n $scope.uploadCertificateFile = function (elem) {\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n // var doc = vm.BGDocList[index];\r\n var traning = vm.TrainingList[index];\r\n // vm.error[traning.CertificateName] = '';\r\n var file = elem.files[0];\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n OnBoardingFormService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.pathtcertificate = res.data;\r\n if(vm.pathtcertificate){\r\n vm.tempCertificateAdd = false;\r\n }\r\n traning.TrainingCertificate = traning.TrainingCertificate = res.data;\r\n traning.CertificateName = traning.CertificateName;\r\n traning.edit = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.error[traning.CertificateName] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n\r\n\r\n\r\n } \r\n});\nangular.module('inspinia').service('NewVendorProfileService', function (ApiURL,FreelancerURL, LocationURL, $log, $http, $localStorage) {\r\n \r\n\t //http://localhost:56749/api/Vendor/kanika.bansal%40innotiontech.com/V0000000001/getvendorbyid\r\n\tthis.GetVendorById = function(loggedInUser,vendorId, token){\r\n\t var url = ApiURL + '/api/Vendor/' + loggedInUser + '/' + vendorId + '/getFreelancervendorbyid';\r\n\t return $http.get(url,{\r\n\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\r\n \r\n\t//https://perf.mymobiforce.com/freelancerapi/api/FreelancerVendor/getvendorteam?reqUserId=F00000000000&VendorId=V00000000143\r\n\tthis.GetVendorTeam = function(loggedInUser,vendorId, token){\r\n\t\tvar url = FreelancerURL + '/api/FreelancerVendor/getvendorteam?reqUserId=' + loggedInUser + '&VendorId=' + vendorId;\r\n\t\treturn $http.get(url,{\r\n\t\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t\t})\r\n\t }\r\n\t this.BlockedVendor = function(loggedinUser, vendorId, status, token){\r\n\t\tvar url = FreelancerURL + '/api/FreelancerVendor/Block/' + loggedinUser + '/'+ vendorId +'/'+status;\r\n\t\treturn $http.put(url, null, {\r\n\t\t headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n\t\t});\r\n\t }\r\n\t this.PreferredSingleVendor = function(loggedinUser, vendorId, status, token){\r\n\t\tvar url = FreelancerURL + '/api/FreelancerVendor/Favorite/' + loggedinUser + '/'+ vendorId +'/'+status;\r\n\t\treturn $http.put(url, null, {\r\n\t\t headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n\t\t});\r\n\t }\r\n\r\n\t// this.GetTicketsByVendor = function(loggedInUser,vendorId,itemName,itemValue,token){\r\n\t// \tvar url = ApiURL + '/api/Ticket/' + loggedInUser + '/' + vendorId + '/' + itemName + '/' + itemValue+'/getticketsbyvendor';\r\n\t// \treturn $http.get(url,{\r\n\t// \t headers:{'Content-Type' : 'application/json','Token':token}\r\n\t// \t})\r\n\t// }\r\n\r\n\t //https://perf.mymobiforce.com/freelancerapi/api/FreeLancerTicket/byVendorId?reqUserId=F00000000000&VendorId=V00000000119\r\n\t this.GetTicketsByVendor = function(loggedInUser,vendorId,token){\r\n\t\tvar url = FreelancerURL + '/api/FreeLancerTicket/byVendorId?reqUserId=' + loggedInUser + '&VendorId=' + vendorId;\r\n\t\treturn $http.get(url,{\r\n\t\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t\t})\r\n\t }\r\n\t this.UserAgreement=function(loggedinUser, userId, token){\r\n\t\tvar url =ApiURL + \"/api/User/GetEULAByUserId?reqUserId=\" +loggedinUser+\"&userId=\"+userId;\r\n\t\treturn $http.get(url, {\r\n\t\t headers: {\r\n\t\t\t'Content-Type': 'application/json',\r\n\t\t\t'Token': token, 'UserId':loggedinUser\r\n\t\t }\r\n\t\t});\r\n\t }\r\n\t this.GetUserId = function(loggedInUser,userId, token){\r\n\t\tvar url = FreelancerURL + '/api/FreeLancerUser/' + userId +'/'+ loggedInUser+ '/'+ 'byUserIdWithJobCount' ;\r\n\t\treturn $http.get(url,{\r\n\t\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t\t})\r\n\t }\r\n\t this.getFreelancerHistory = function (loggedinUser,userId, token) {debugger\r\n\t\tvar url = FreelancerURL + \"/api/FreelancerRecharge/\" + userId + \"/getrechargehistorybyself?StartDate=&EndDate=\";\r\n\t\treturn $http.get(url, {\r\n\t\t headers: {\r\n\t\t\t'Content-Type': 'application/json',\r\n\t\t\t'Token':token,\r\n \t 'UserId':loggedinUser\r\n\t\t }\r\n\t\t});\r\n\t }\r\n\t //https://product.mymobiforce.com/coreapi/api/Report/GeneratePdfSelfDeclaration?userId=F00000001208\r\n this.GeneratePdfSelfDeclaration = function(loggedinUser, userId, token){\r\n var url = ApiURL + '/api/Report/GeneratePdfSelfDeclaration?userId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId':loggedinUser}\r\n })\r\n }\r\n\r\nthis.GeneratePdfVerificationReport = function(loggedinUser, userId, token){\r\n var url = ApiURL + '/api/Report/GeneratePdfVerificationReport?userId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId':loggedinUser}\r\n })\r\n }\r\n});\r\n\r\n//https://perf.mymobiforce.com/freelancerapi/api/FreelancerVendor/F000000000/getallvendors\nangular.module('inspinia').controller('NewVendorProfileController', function (NewVendorProfileService,MainService,ActiveUserService, ImageUrl, $log, $state, $window, $localStorage, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $rootScope,$timeout) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n //var loggedinUser = 'F00000000000';\r\n var token = $localStorage.token;\r\n vm.loggedInUser_Role=$localStorage.loggedInUser_Role;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n vm.NokiaTableHeaderChange = $localStorage.accountConfig.NokiaTableHeaderChange;\r\n if (!loggedinUser) {\r\n $state.go('Login',{\r\n reload:true\r\n });\r\n }else{\r\n //Global Variable Declaration\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n\tvm.OnlyDateformat = $localStorage.OnlyDateformat;\t\r\n vm.vendorList='';\r\n vm.vendorData = '';\r\n vm.ActivationStatus = '';\r\n vm.searchText = '';\r\n vm.dtInstance = {};\r\n vm.vendorId = $stateParams.VendorId; \r\n vm.jobTickets = '';\r\n vm.CertificateprofileImg=[];\r\n vm.DocumentprofileImg=[];\r\n vm.itemName = '';\r\n vm.itemValue = '';\r\n vm.dtInstance = {};\r\n vm.dtInstanceticket={};\r\n vm.AccountHistoryData=[];\r\n vm.teamProfileList = [];\r\n $localStorage.TechnicianDetailsView='';\r\n $localStorage.PageIndex=1;\r\n vm.UserRole=\"\";\r\n vm.teamprofileImg=\"\";\r\n vm.teamCertificateprofileImg=[];\r\n vm.teamDocumentprofileImg=[];\r\n vm.VerificationCertprofileImg=[];\r\n vm.teamVerificationCertprofileImg=[];\r\n vm.TrainingImagebase64=[];\r\n vm.TrainingAttendancebase64=[];\r\n vm.PCExperienceLetterbase64=[];\r\n vm.ExperienceVerificationReportbase64=[];\r\n vm.TeamTrainingImagebase64=[];\r\n vm.TeamTrainingAttendancebase64=[];\r\n vm.TeamPCExperienceLetterbase64=[];\r\n vm.TeamExperienceVerificationReportbase64=[];\r\n vm.pdfimage=\"\";\r\n vm.CriminalVerificationbase64=\"\";\r\n vm.TeamCriminalVerificationbase64=\"\";\r\n vm.imageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function() {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n } \r\n vm.teamimageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.teamprofileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.teamprofileImg = resp.data;\r\n }\r\n console.log(vm.teamprofileImg);\r\n }, function() {\r\n vm.teamprofileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n } \r\n vm.VerificationCertimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.VerificationCertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.VerificationCertprofileImg[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.VerificationCertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n vm.teamVerificationCertimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.teamVerificationCertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.teamVerificationCertprofileImg[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.teamVerificationCertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n vm.CertificateimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.CertificateprofileImg[index] = 'assets/images/patterns/pdf.png';\r\n }\r\n else{\r\n vm.CertificateprofileImg[index] = resp.data;\r\n }\r\n // console.log(vm.profileImg);\r\n }, function() {\r\n vm.CertificateprofileImg[index] = 'assets/images/patterns/pdf.png';\r\n });\r\n \r\n } \r\n\r\n vm.TeamCertificateimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.teamCertificateprofileImg[index] = 'assets/images/patterns/pdf.png';\r\n }\r\n else{\r\n vm.teamCertificateprofileImg[index] = resp.data;\r\n }\r\n // console.log(vm.profileImg);\r\n }, function() {\r\n vm.teamCertificateprofileImg[index] = 'assets/images/patterns/pdf.png';\r\n });\r\n \r\n } \r\n \r\n vm.DocumentimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.DocumentprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.DocumentprofileImg[index] = resp.data;\r\n }\r\n //console.log(vm.profileImg);\r\n }, function() {\r\n vm.DocumentprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n \r\n }\r\n vm.teamDocumentimageServices = function(img,index){\r\n if(img==\"\")\r\n vm.teamDocumentprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n else\r\n {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n \r\n if(resp.data == null || resp.data == '' ){\r\n vm.teamDocumentprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.teamDocumentprofileImg[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.teamDocumentprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n }\r\n vm.InsurenceImg='';\r\n vm.InsurenceimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.InsurenceImg = 'assets/images/patterns/pdf.png';\r\n }\r\n else{\r\n vm.InsurenceImg= resp.data;\r\n }\r\n // console.log(vm.profileImg);\r\n }, function() {\r\n vm.InsurenceImg = 'assets/images/patterns/pdf.png';\r\n });\r\n \r\n }\r\n vm.GetVendorById = function () {\r\n NewVendorProfileService.GetVendorById(loggedinUser, vm.vendorId, token).then(function (resp) {\r\n vm.users = resp.data;\r\n vm.UserRole = vm.users.Role;\r\n for(var i=0;i=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0 ||url.indexOf(\".JPG\")>=0 || url.indexOf(\".JPEG\")>=0 || url.indexOf(\".PNG\")>=0 || url.indexOf(\".BMP\")>=0){\r\n return \"image\";\r\n } else if(url.indexOf(\".pdf\")>=0 || url.indexOf(\".PDF\")>=0){\r\n return \"pdf\";\r\n } else if(url.indexOf(\".xls\")>=0 || url.indexOf(\".xlsx\")>=0 ||url.indexOf(\".XLS\")>=0 || url.indexOf(\".XLSX\")>=0){\r\n return \"xls\"; \r\n } else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0 || url.indexOf(\".DOC\")>=0 || url.indexOf(\".DOCX\")>=0){\r\n return \"doc\";\r\n } else {\r\n return \"others\";\r\n }\r\n } \r\n }\r\n\r\n vm.addpreferredvendor=[];\r\n\t\tvm.AddPreferredVendor = function (vendorId) {\r\n\t\t\tvm.addpreferredvendor=vendorId;\r\n\t\t\tvm.AddPreferredVendorModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'PreferredVendor.html',\r\n\t\t\t\tsize:'sm',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\treload:true\r\n\t\t\t});\r\n\t\t\r\n\t\t}\r\n\r\n\r\n vm.preferredSingleVendor = function(vendorId){\r\n NewVendorProfileService.PreferredSingleVendor(loggedinUser,vendorId,false,token).then(function(resp){\r\n if(resp.status == '202'){\r\n vm.showSuccess('Success', \"Vendor added in preferred talent pool\");\r\n vm.AddPreferredVendorModal.close();\r\n }\r\n })\r\n }\r\n \r\n vm.agreement=[];\r\n\t\tvm.Agreement = function (UserId) {\r\n vm.IsLoadSucessfullAgreement=false;\r\n\t\t\tvm.agreement=UserId;\r\n\t\t\tAgreementUserModal = $uibModal.open({\r\n templateUrl: 'Agreement.html',\r\n controller: UserAgreement(UserId),\r\n\t\t\t\tsize:'lg',\r\n\t\t\t\tscope: $scope,\r\n reload:true,\r\n windowClass: 'zindex'\r\n\t\t\t});\r\n\t\t\r\n }\r\n vm.CloseAgreementUserModal = function(){\r\n AgreementUserModal.close();\r\n }\r\n\r\n vm.policyModel = function () {\r\n \r\n\t\t\tAgreementUserModal = $uibModal.open({\r\n templateUrl: 'policy.html',\r\n\t\t\t\tsize:'lg',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\treload:true\r\n\t\t\t});\r\n\t\t\r\n }\r\n \r\n\r\n\r\n var UserAgreement = function(userid){\r\n\t\t\tNewVendorProfileService.UserAgreement(loggedinUser,userid,token).then(function(resp){\r\n\t\t\t\tif(resp.status == '200'){\r\n vm.IsLoadSucessfullAgreement=true;\r\n vm.agreementview=resp.data;\r\n var uri = vm.agreementview.Content;\r\n var dec = decodeURIComponent(uri).replace(/\\+/g,\" \");\r\n $('#agreementview').contents().find('html').html(dec);\r\n\t\t\t\t}else{\r\n var dec = decodeURIComponent(resp.data).replace(/\\+/g,\" \");\r\n $('#agreementview').contents().find('html').html(dec);\r\n }\r\n\t\t\t})\r\n }\r\n\r\n\r\n if(vm.loggedInUser_Role== 'SuperAdministrator'){\r\n vm.RechargeHistory = function (userid) {\r\n vm.userid=userid;\r\n RechargeModal = $uibModal.open({\r\n templateUrl: 'viewRechargeHistory.html',\r\n scope: $scope,\r\n resolve: {\r\n items: function () {\r\n return {\r\n AccountName: vm.CompanyName,\r\n AccountId: vm.Email\r\n };\r\n }\r\n },\r\n size: 'lg'\r\n });\r\n NewVendorProfileService.getFreelancerHistory(loggedinUser,vm.userid, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AccountHistoryData = resp.data;\r\n }\r\n })\r\n }\r\n}\r\n\r\n vm.CloseRechargeModal = function () {\r\n RechargeModal.close();\r\n }\r\n\r\n\r\n \r\n vm.Infra = function () {\r\n InfraModal = $uibModal.open({\r\n templateUrl: 'Infra.html',\r\n size:'lg',\r\n scope: $scope,\r\n reload:true\r\n });\r\n \r\n }\r\n vm.CloseInfraModal = function(){\r\n InfraModal.close();\r\n }\r\n\r\n vm.Training = function () {\r\n TrainingModal = $uibModal.open({\r\n templateUrl: 'Training.html',\r\n size:'lg',\r\n scope: $scope,\r\n reload:true\r\n });\r\n \r\n }\r\n vm.CloseTrainingModal = function(){\r\n TrainingModal.close();\r\n }\r\n \r\n\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n //DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable().withClass('td-small-with-panel'),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable()];\r\n\r\n vm.dtOptionsSkill = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('lengthChange', false);\r\n // .withButtons([{extend:'colvis'},{extend:'csv'}])\r\n // .withOption('stateSave', true)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n // .withOption('order', [0, 'asc']);\r\n \r\n vm.dtColumnSkill = [\r\n //DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable()\r\n \r\n ];\r\n\r\n\r\n if(vm.loggedInUser_Role== 'SuperAdministrator' || vm.loggedInUser_Role== 'Administrator' ){\r\n vm.TicketHistory = function(userid) {\r\n vm.userid=userid;\r\n TicketModal = $uibModal.open({\r\n templateUrl: 'TicketHistory.html',\r\n scope: $scope,\r\n windowClass:'schedulerModal'\r\n // controller: GetTicketByVendor(vendorId,itemName,itemValue),\r\n // size:'lg' \r\n }); \r\n \r\n }\r\n }\r\n \r\n vm.CloseTicketModal = function(){\r\n TicketModal.close();\r\n }\r\n\r\n // vm.Vendorteamedit = function (UserId) {\r\n // $state.go('index.ActiveUserUpdate', {\r\n // UserId: UserId\r\n // }, {\r\n // reload: true\r\n // });\r\n // }\r\n\r\n vm.EditVTeam = function(RegistrationNo){\r\n $localStorage.EditVendorTeam = 'vendorteam';\r\n $localStorage.VendorId=vm.vendorId;\r\n $state.go('index.ActiveUserUpdate', {\r\n RegistrationNo: RegistrationNo\r\n }, {\r\n reload: true\r\n });\r\n }\r\n \r\n if(vm.loggedInUser_Role== 'SuperAdministrator'){\r\n vm.GetTicketByVendor = function(vendorId,itemName,itemValue){\r\n NewVendorProfileService.GetTicketsByVendor($localStorage.loggedInUserId,vendorId,token,'All').then(function(resp){\r\n if(resp.data){\r\n vm.jobTickets = resp.data;\r\n }\r\n })\r\n }\r\n vm.GetTicketByVendor(vm.vendorId,'VendorId',vm.vendorId ,'All');\r\n }\r\n if(vm.loggedInUser_Role== 'Administrator'){\r\n vm.GetTicketByVendor = function(vendorId,itemName,itemValue){\r\n NewVendorProfileService.GetTicketsByVendor($localStorage.loggedInUserId,vendorId,token,'Approved').then(function(resp){\r\n if(resp.data){\r\n vm.jobTickets = resp.data;\r\n }\r\n })\r\n }\r\n vm.GetTicketByVendor(vm.vendorId,'VendorId',vm.vendorId,'Approved');\r\n }\r\n\r\n \r\n\r\n\r\n vm.dtOptionsticket = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [0, 'asc']);\r\n \r\n vm.dtColumnDefsticket = [\r\n //DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable()\r\n ];\r\n\r\n vm.dtOptionsTeam = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('lengthChange', false)\r\n .withButtons([{extend:'colvis'},{extend:'csv'}])\r\n\t\t .withOption('stateSave', true)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n .withOption('order', [0, 'asc']);\r\n \r\n vm.dtColumnTeamDefs = [\r\n //DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable()\r\n ];\r\n\r\n\r\n\r\n vm.dtOptionsInfra = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('lengthChange', false);\r\n // .withButtons([{extend:'colvis'},{extend:'csv'}])\r\n\t\t // .withOption('stateSave', true)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n // .withOption('order', [0, 'asc']);\r\n \r\n vm.dtColumnInfraDefs = [\r\n //DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable()\r\n \r\n ];\r\n\r\n\r\n vm.dtOptionsTraining = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('lengthChange', false);\r\n // .withButtons([{extend:'colvis'},{extend:'csv'}])\r\n\t\t // .withOption('stateSave', true)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n // .withOption('order', [0, 'asc']);\r\n \r\n vm.dtColumnTrainingDefs = [\r\n //DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable()\r\n \r\n ];\r\n \r\n\r\n\r\n});\nangular.module('inspinia').service('VendorCreationService', function (ApiURL,PublicApiURL, LocationURL, $log, $http, $localStorage) {\r\n\r\n //https://localhost/publicapi/api/Location/GetSubRegion?userId=U360000000001\r\n this.GetSubRegion = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n //http://localhost:55238/api/Location/GetTelecomCircles?userId=U380000000001\r\n\r\n this.GetTelecomCircle = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetTelecomCircles?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetCity?userId=U360000000001&subregion=noida\r\n this.GetCityBySubRegion = function(loggedInUserId, subRegion, token){\r\n var url = PublicApiURL + '/api/Location/GetCity?userId='+ loggedInUserId + '&subregion='+ subRegion;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetCountry?userId=U420000000001\r\n this.getCountry = function (userId,token) {\r\n var url = PublicApiURL + '/api/Address/GetCountry?userId=' + userId;\r\n return $http.get(url, {\r\n headers:{'Token':token, 'UserId':userId}\r\n });\r\n }\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetStates?userId=U420000000001&country=QATAR\r\n this.getStates = function (userId,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers:{'Token':token, 'UserId':userId}\r\n });\r\n }\r\n\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetCities?userId=U420000000001&state=DOHA\r\n this.getCities = function (userId, state,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers:{'Token':token, 'UserId':userId}\r\n });\r\n }\r\n \r\n\r\n\r\n /*this.getAllState = function (loggedinUser) {\r\n var url = LocationURL+'/api/Location/'+loggedinUser+'/GetAllStates';\r\n return $http.get(url, {\r\n headers:{'Content-Type' : 'application/json'}\r\n });\r\n }\r\n this.getAllCity = function (state, loggedinUser) {\r\n var url = LocationURL+'/api/Location/'+loggedinUser+'/'+state+'/GetCitiesByState';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json'}\r\n });\r\n }*/\r\n\r\n this.getAllState = function (userId,loggedInUserId, token) {\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+userId+'®ion=INDIA';\r\n return $http.get(url, {\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n });\r\n }\r\n\r\n // https://test.mymobiforce.com/publicapi/api/Location/GetCity?userId=U350000000006&subregion=UTTAR%20PRADESH\r\n this.getAllCity = function (userId, state,loggedInUserId,token) {\r\n var url = PublicApiURL + '/api/Location/GetCity?userId='+userId+'&subregion='+state;\r\n return $http.get(url, {\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n });\r\n }\r\n\r\n this.GetAllCircles1 = function(loggedinUser){\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllCircles'\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json'}\r\n })\r\n }\r\n\r\n this.getAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n //http://localhost:56749/api/Vendor/kanika.bansal%40innotiontech.com/createvendor\r\n\r\n this.createVendor = function(data, loggedinUser, token){\r\n var url = ApiURL + '/api/Vendor/' + loggedinUser + '/createvendor';\r\n return $http.post(url,data,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedinUser}\r\n })\r\n }\r\n\r\n //http://localhost:56749/api/Vendor/asddas/updatevendor\r\n this.updateVendor = function(data,loggedinUser,token){\r\n var url = ApiURL + '/api/Vendor/' + loggedinUser + '/updatevendor';\r\n return $http.put(url,data,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedinUser}\r\n })\r\n }\r\n\r\n //http://localhost:56749/api/Vendor/kanika.bansal%40innotiontech.com/V0000000001/getvendorbyid\r\nthis.GetVendorById = function(loggedInUser,vendorId, token){\r\n var url = ApiURL + '/api/Vendor/' + loggedInUser + '/' + vendorId + '/getvendorbyid';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n \r\n \r\n});\nangular.module('inspinia').controller('VendorCreationController', function ($state, $timeout, $log, $stateParams, $localStorage, VendorCreationService, toaster, $q, $scope) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif ($localStorage.accountConfig) {\r\n if ($localStorage.accountConfig) {\r\n vm.EnableRegion = $localStorage.accountConfig.EnableRegion;\r\n }\r\n }else{\r\n vm.EnableRegion = false;\r\n }\r\n\r\n\tif (!loggedinUser) {\r\n\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\r\n\t} else {\r\n\r\n\t\tvm.vendorId = $stateParams.vendorId;\r\n\t\tangular.element(document).ready(function () {\r\n\t\t\tangular.element('ul[side-navigation]').find('a[ui-sref=\"index.Vendor_Creation_form\"]').parent().prop('class', 'active');\r\n\t\t});\r\n\r\n\t\t///Global Variables Declaration\r\n\t\tvm.vendorName = '';\r\n\t\tvm.Region = '';\r\n\t\tvm.SubRegion = '';\r\n\t\tvm.address1 = '';\r\n\t\tvm.address2 = '';\r\n\t\tvm.state = '';\r\n\t\tvm.city = '';\r\n\t\tvm.pincode = '';\r\n\t\tvm.firstName = '';\r\n\t\tvm.lastName = '';\r\n\t\tvm.emailId = '';\r\n\t\tvm.mobileNumber = '';\r\n\t\tvm.otherMobile = '';\r\n\t\tvm.gender = '';\r\n\t\tvm.locations = [];\r\n\t\tvm.skills = '';\r\n\t\tvm.stateList = '';\r\n\t\tvm.cityList = '';\r\n\t\tvm.circles = '';\r\n\t\tvm.workArea = '';\r\n\t\tvm.skill = '';\r\n\t\tvm.isDisabled = false;\r\n\t\tvm.editMode = false;\r\n\t\tvm.VendorRespData = '';\r\n\t\tvm.RegionList = '';\r\n\t\tvm.SubRegionList = '';\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n \tvm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n \tvm.LocationMapping = vm.getAccountConfigSetting('LocationMapping');\r\n \t\r\n\t\t//For vendor edit Mode Only\r\n\r\n\t\tif ($state.current.name == 'index.VendorEdit') {\r\n\r\n\t\t\tvm.editMode = true;\r\n\t\t\tvm.isDisabled = false;\r\n\t\t\t//ApI Call\r\n\t\t\tVendorCreationService.GetVendorById(loggedinUser, vm.vendorId, token).then(function (resp) {\r\n\t\t\t\tif (resp.data) {\r\n\t\t\t\t\tvm.VendorRespData = resp.data;\r\n\t\t\t\t\tif (vm.VendorRespData.State) {\r\n\t\t\t\t\t\tvm.selectState(vm.VendorRespData.State)\r\n\t\t\t\t\t\tvm.city = vm.VendorRespData.City;\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\tvm.vendorName = vm.VendorRespData.CompanyName;\r\n\t\t\t\t\tvm.address1 = vm.VendorRespData.AddressLine1;\r\n\t\t\t\t\tvm.address2 = vm.VendorRespData.AddressLine2;\r\n\t\t\t\t\tvm.state = vm.VendorRespData.State;\r\n\t\t\t\t\tvm.pincode = vm.VendorRespData.Pincode;\r\n\t\t\t\t\tvm.firstName = vm.VendorRespData.FirstName;\r\n\t\t\t\t\tvm.lastName = vm.VendorRespData.LastName;\r\n\t\t\t\t\tvm.emailId = vm.VendorRespData.EmailId;\r\n\t\t\t\t\tvm.mobileNumber = vm.VendorRespData.MobileNumber;\r\n\t\t\t\t\tvm.OtherNumber = vm.VendorRespData.OtherNumber;\r\n\t\t\t\t\tvm.gender = vm.VendorRespData.Gender;\r\n\t\t\t\t\tvm.workArea = vm.VendorRespData.VendorLocations;\r\n\t\t\t\t\tvm.skill = vm.VendorRespData.VendorSkillsets;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t//Create Model to call Vendor Creation API\r\n\r\n\t\tvm.createVendor = function () {\r\n\t\t\tif (vm.vendor_form.$valid) {\r\n\r\n\t\t\t\tif ((vm.emailId == null || vm.emailId == '') && (vm.mobileNumber == null || vm.mobileNumber == '')) {\r\n\t\t\t\t\tvm.showFailure('Failed', \"Please enter email id or mobile number\");\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tvar vendorModel = {\r\n\t\t\t\t\t\t\"CompanyName\": vm.vendorName,\r\n\t\t\t\t\t\t\"VendorCode\": vm.vendorCode,\r\n\t\t\t\t\t\t\"AddressLine1\": vm.address1,\r\n\t\t\t\t\t\t\"AddressLine2\": vm.address2,\r\n\t\t\t\t\t\t\"State\": vm.state,\r\n\t\t\t\t\t\t\"City\": vm.city,\r\n\t\t\t\t\t\t\"Pincode\": vm.pincode,\r\n\t\t\t\t\t\t\"FirstName\": vm.firstName,\r\n\t\t\t\t\t\t\"LastName\": vm.lastName,\r\n\t\t\t\t\t\t\"EmailId\": vm.emailId,\r\n\t\t\t\t\t\t\"MobileNumber\": vm.mobileNumber,\r\n\t\t\t\t\t\t\"OtherNumber\": vm.otherMobile,\r\n\t\t\t\t\t\t\"Gender\": vm.gender,\r\n\t\t\t\t\t\t\"VendorLocations\": vm.workArea,\r\n\t\t\t\t\t\t\"VendorSkillsets\": vm.skill,\r\n\t\t\t\t\t\t\"Region\": null,\r\n\t\t\t\t\t\t\"SubRegion\": null\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (vm.EnableRegion) {\r\n\r\n\t\t\t\t\t\t var workArea = '';\r\n \t\t\t\t \tfor (var index = 0; index < vm.SubRegion.length; index++) {\r\n\t\t\t\t\t if (index == (vm.SubRegion.length - 1)) {\r\n\t\t\t\t\t workArea = workArea + vm.SubRegion[index];\r\n\t\t\t\t\t continue;\r\n\t\t\t\t\t }\r\n\t\t\t\t\t workArea = workArea + vm.SubRegion[index] + ',';\r\n\t\t\t\t\t }\r\n\t\t\t\t\t\tvendorModel.Region = vm.Region;\r\n\t\t\t\t\t\tvendorModel.SubRegion = workArea;\r\n\t\t\t\t\t\tvendorModel.VendorLocations = vm.SubRegion;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (vm.editMode) {\r\n\t\t\t\t\t\t//UPDATE API Call\r\n\t\t\t\t\t\tvendorModel[\"VendorId\"] = vm.vendorId;\r\n\t\t\t\t\t\tVendorCreationService.updateVendor(vendorModel, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\t\t\tif (resp.data) {\r\n\t\t\t\t\t\t\t\tvm.toaster_success.body = \"Vendor Updated Successfully\";\r\n\t\t\t\t\t\t\t\ttoaster.pop(vm.toaster_success);\r\n\t\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t\t$state.go('index.Vendor_list', {\r\n\t\t\t\t\t\t\t\t\t\treload: true\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tvm.isDisabled = false;\r\n\t\t\t\t\t\t\t\tvm.toaster_fail.body = \"Vendor Updation Failed, Please try after some time\";\r\n\t\t\t\t\t\t\t\ttoaster.pop(vm.toaster_fail);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//CREATE API Call\r\n\r\n\t\t\t\t\t\tVendorCreationService.createVendor(vendorModel, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\t\t\tif (resp.data) {\r\n\t\t\t\t\t\t\t\t\tvm.toaster_success.body = \"Vendor Created Successfully\";\r\n\t\t\t\t\t\t\t\t\ttoaster.pop(vm.toaster_success);\r\n\t\t\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t\t\t$state.go('index.Vendor_list', {\r\n\t\t\t\t\t\t\t\t\t\t\treload: true\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\tclearFormFields();\r\n\t\t\t\t\t\t\t\t\t}, 2000);\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tvm.toaster_fail.body = \"Vendor Creation Failed, Please try after some time\";\r\n\t\t\t\t\t\t\t\ttoaster.pop(vm.toaster_fail);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}, function (err) {\r\n\t\t\t\t\t\t\tif (err.data && err.data.Message) {\r\n\t\t\t\t\t\t\t\tvm.toaster_fail.body = err.data.Message;\r\n\t\t\t\t\t\t\t\ttoaster.pop(vm.toaster_fail);\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tvm.isDisabled = false;\r\n\t\t\t\t\t\t\t\tvm.toaster_fail.body = \"Vendor Creation Failed, Please try after some time\";\r\n\t\t\t\t\t\t\t\ttoaster.pop(vm.toaster_fail);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\tvm.vendor_form.submitted = true;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tfunction clearFormFields() {\r\n\t\t\tvm.vendorName = '';\r\n\t\t\tvm.address1 = '';\r\n\t\t\tvm.address2 = '';\r\n\t\t\tvm.state = '';\r\n\t\t\tvm.city = '';\r\n\t\t\tvm.pincode = '';\r\n\t\t\tvm.firstName = '';\r\n\t\t\tvm.lastName = '';\r\n\t\t\tvm.emailId = '';\r\n\t\t\tvm.mobileNumber = '';\r\n\t\t\tvm.otherMobile = '';\r\n\t\t\tvm.gender = '';\r\n\t\t\tvm.workArea = '';\r\n\t\t\tvm.skill = '';\r\n\t\t}\r\n\r\n\r\n\t\tvm.GetAllStates = function () {\r\n\t\t\tVendorCreationService.getStates(loggedinUser, 'INDIA', token).then(function (resp) {\r\n\t\t\t\tif (resp.data) {\r\n\t\t\t\t\tif (!angular.equals(vm.stateList, resp.data)) {\r\n\t\t\t\t\t\tvm.stateList = resp.data;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.selectState = function (state) {\r\n\t\t\tvar Getstate = state;\r\n\t\t\tVendorCreationService.getCities(loggedinUser,Getstate, token).then(function (resp) {\r\n\t\t\t\tvm.cityList = resp.data;\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllSkills = function () {\r\n\t\t\tVendorCreationService.getAllSkills(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.data.length > 0) {\r\n\t\t\t\t\tif (!angular.equals(vm.skills, resp.data)) {\r\n\t\t\t\t\t\tvm.skills = resp.data;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllCircles = function () {\r\n\t\t\tif (vm.EnableRegion) {\r\n\t\t VendorCreationService.GetSubRegion(loggedinUser,token).then(function(resp){\r\n\t\t if (resp.status == 200) {\r\n\t\t if (resp.data && resp.data.values.length>0) {\r\n\t\t vm.RegionList = resp.data.values;\r\n\t\t \r\n\t\t }\r\n\t\t }\r\n\t\t })\r\n\t\t }else if (vm.LocationMapping == 'Circle') {\r\n\t\t \tVendorCreationService.GetTelecomCircle(loggedinUser,token).then(function(resp){\r\n\t\t if (resp.status == 200) {\r\n\t\t if (resp.data && resp.data.values.length>0) {\r\n\t\t vm.CircleList = resp.data.values;\r\n\t\t \r\n\t\t }\r\n\t\t }\r\n\t\t })\r\n\t\t }\r\n\t\t else{\r\n\t\t\t\t VendorCreationService.getStates(loggedinUser, vm.selectedCountry,token).then(function(resp){\r\n\t if (resp.status == 200) {\r\n\t if (resp.data && resp.data.length>0) {\r\n\t vm.circles = resp.data;\r\n\t \r\n\t }\r\n\t }\r\n\t });\r\n\t\t }\t\t\t\r\n\t\t}\r\n\r\n\t vm.selectedCountry = null;\r\n //get country of user\r\n vm.getCountry = function () {\r\n VendorCreationService.getCountry(loggedinUser,token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.values.length>0){\r\n vm.countrylist = resp.data.values;\r\n vm.selectedCountry = vm.countrylist[0]; \r\n vm.GetAllCircles();\r\n }\r\n } \r\n })\r\n }\r\n\r\n vm.getCountry();\r\n\r\n\r\n\t\tvm.selectRegion = function(region){\r\n vm.SubRegionList = '';\r\n VendorCreationService.GetCityBySubRegion(loggedinUser, region, token).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.SubRegionList = resp.data.values;\r\n }\r\n }\r\n })\r\n }\r\n\r\n\t\tvm.GetAllStates();\r\n\t\tvm.GetAllSkills();\r\n\t\t//vm.getAllCircles();\r\n\t}\r\n});\r\n\nangular.module('inspinia').service('VendorListService',function(ApiURL, $http){\r\n\r\n//http://localhost:56749/api/Vendor/kanika.bansal%40innotiontech.com/getallvendors\r\nthis.GetAllVendors = function(loggedInUser,token){\r\n\tvar url = ApiURL + '/api/Vendor/' + loggedInUser + '/getallvendors';\r\n\treturn $http.get(url,{\r\n\t\theaders:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t})\r\n}\r\n\r\n//http://localhost:56749/api/Vendor/kanika.bansal%40innotiontech.com/V0000000001/getvendorbyid\r\nthis.GetVendorById = function(loggedInUser,vendorId, token){\r\n\tvar url = ApiURL + '/api/Vendor/' + loggedInUser + '/' + vendorId + '/getvendorbyid';\r\n\treturn $http.get(url,{\r\n\t\theaders:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t})\r\n}\r\n\r\n//http://localhost:56749/api/Vendor/kanika.bansal%40innotiontech.com/V0000000001/false/updateVendorStatus\r\n\r\nthis.UpdateVendorStatus = function(loggedInUser,vendorId, status, token){ \r\n var url = ApiURL + '/api/Vendor/' + loggedInUser + '/' + vendorId + '/' + status +'/updateVendorStatus';\r\n return $http.put(url,null, {\r\n headers: {'Content-Type' : 'application/json',\r\n 'Token':token, 'UserId':loggedInUser\r\n\t}\r\n })\r\n }\r\n\r\n});\nangular.module('inspinia').controller('VendorListController', function (VendorListService, $rootScope, $q, $compile, $scope, DTColumnBuilder, DTOptionsBuilder, ActiveUserService, $state, $localStorage, $uibModal, DTColumnDefBuilder, toaster, $timeout) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n $rootScope.rootScopeMessage = '';\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n var token = $localStorage.token;\r\n vm.vendorList = '';\r\n vm.vendorData = '';\r\n vm.ActivationStatus = '';\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.searchText = '';\r\n vm.dtInstance = {};\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.preProcessData = function (vendor) {\r\n var locations = \"\";\r\n angular.forEach(vendor.VendorLocations, function (l) {\r\n locations += l + \",\";\r\n });\r\n vendor.allLocations = locations.length > 0 ? locations.substring(0, locations.length - 1) : \"\";\r\n\r\n var skills = \"\";\r\n angular.forEach(vendor.VendorSkillsets, function (s) {\r\n skills += s + \",\";\r\n });\r\n vendor.allSkills = skills.length > 0 ? skills.substring(0, skills.length - 1) : \"\";\r\n }\r\n\r\n //Get All Vendors\r\n vm.GetAllVendors = function () {\r\n VendorListService.GetAllVendors(loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.data.length > 0) {\r\n // if(!angular.equals(vm.vendorList,resp.data)){\r\n vm.vendorList = resp.data;\r\n vm.GetVendorDataById(vm.vendorList[0].VendorId);\r\n // angular.forEach(vm.vendorList, function (v) {\r\n // vm.preProcessData(v);\r\n // });[]\r\n\r\n // vm.vendorData = vm.vendorList[0];\r\n // vm.ActivationStatus = vm.vendorData.VendorStatus == \"Active\" ? true : false;\r\n // }\r\n\r\n }\r\n })\r\n }\r\n vm.profileData = function (vendorId) {\r\n $state.go('index.VendorProfile', {\r\n vendorId: vendorId\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n //Get VendorData by Vendor Id\r\n vm.GetVendorDataById = function (vendorId) {\r\n VendorListService.GetVendorById(loggedinUser, vendorId, token).then(function (resp) {\r\n if (resp.data) {\r\n // if (!angular.equals(vm.vendorData,resp.data)) {\r\n vm.vendorData = resp.data;\r\n // vm.preProcessData(vm.vendorData);\r\n // vm.ActivationStatus = vm.vendorData.VendorStatus == \"Active\" ? true : false;\r\n // }\r\n }\r\n })\r\n }\r\n \r\n\r\n //Vendor Edit Mode\r\n vm.EditVendor = function (vendorId) {\r\n $state.go('index.VendorEdit', {\r\n vendorId: vendorId\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n //Update Status\r\n vm.UpdateActivation = function (vendorId, status) {\r\n VendorListService.UpdateVendorStatus(loggedinUser, vendorId, status, token).then(function (resp) {\r\n\r\n if (resp.status == 202) {\r\n if (resp.data) {\r\n\r\n vm.toaster_success.body = resp.data;\r\n toaster.pop(vm.toaster_success);\r\n\r\n $timeout(function () {\r\n vm.GetAllVendors();\r\n }, 1000);\r\n }\r\n } else {\r\n vm.toaster_fail.body = resp.data;\r\n toaster.pop(vm.toaster_fail);\r\n }\r\n\r\n\r\n })\r\n //$log.log('ActivationStatus', vm.ActivationStatus); \r\n }\r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n\r\n /*vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp')\r\n .withButtons([])\r\n .withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [0, 'asc']);*/\r\n\r\n // vm.dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n // var defer = $q.defer();\r\n // VendorListService.GetAllVendors(loggedinUser,token).then(function(resp){\r\n // vm.vendor = resp.data;\r\n // angular.forEach(vm.vendor, function (v) {\r\n // vm.preProcessData(v);\r\n // });\r\n // vm.vendorData = vm.vendor[0];\r\n // vm.ActivationStatus = vm.vendorData.VendorStatus == \"Active\" ? true : false;\r\n\r\n // defer.resolve(vm.vendor);\r\n // });return defer.promise;\r\n // })\r\n // .withPaginationType('full_numbers').withDOM('<\"html5buttons\"B>lTfgitp').withOption('rowCallback', rowCallback).withOption('order', [0, 'desc']).withOption('createdRow',createdRow);\r\n\r\n // function createdRow(row, data, dataIndex) {\r\n // // Recompiling so we can bind Angular directive to the DT\r\n // $compile(angular.element(row).contents())($scope);\r\n // }\r\n\r\n // function rowCallback(nRow, aData, iDisplayIndex, iDisplayIndexFull){\r\n // $('td', nRow).unbind('click');\r\n // $('td', nRow).bind('click', function() {\r\n // $('td', nRow).css(\"background\",\"Snow\");\r\n // $scope.$apply(function() {\r\n // vm.GetVendorDataById(aData.VendorId);\r\n // });\r\n // });\r\n // }\r\n\r\n\r\n // vm.dtColumns = [\r\n // DTColumnBuilder.newColumn(null).withTitle('Id').renderWith(function(data, type, full, meta){\r\n // return ' ' + data.VendorId + '';\r\n // }),\r\n // DTColumnBuilder.newColumn('FirstName','LastName').withTitle('Name').renderWith(function(data, type, full, meta){\r\n // return ''+ full.FirstName + ' ' + full.LastName +'';\r\n // }),\r\n // DTColumnBuilder.newColumn('CompanyName').withTitle('Company Name').notSortable(),\r\n // DTColumnBuilder.newColumn('MobileNumber').withTitle('MobileNo').notSortable(),\r\n // DTColumnBuilder.newColumn('EmailId').withTitle('Email').notSortable(),\r\n // DTColumnBuilder.newColumn('AddressLine1').withTitle('Address Line1').notSortable(),\r\n // DTColumnBuilder.newColumn('AddressLine2').withTitle('Address Line2').notSortable(),\r\n // DTColumnBuilder.newColumn('City').withTitle('City').notSortable(),\r\n // DTColumnBuilder.newColumn('State').withTitle('State').notSortable(),\r\n // DTColumnBuilder.newColumn('Pincode').withTitle('PinCode').notSortable(),\r\n // DTColumnBuilder.newColumn('VendorSkillsets').withTitle('Skill').notSortable().renderWith(function(data, type, full, meta){\r\n // return '
'+data+'
';\r\n // }),\r\n // DTColumnBuilder.newColumn('VendorLatitude').withTitle('Latitude').notSortable(),\r\n // DTColumnBuilder.newColumn('VendorLongitude').withTitle('Longitude').notSortable(),\r\n // DTColumnBuilder.newColumn('VendorLocations').withTitle('Location').notSortable().renderWith(function(data, type, full, meta){\r\n \r\n // return '
'+data+'
';\r\n // }),\r\n // DTColumnBuilder.newColumn('VendorStatus').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n // if(full.VendorStatus=='Active'){\r\n // var VendorStatus = 'label label-info'\r\n // }else if(full.VendorStatus=='Inactive'){\r\n // VendorStatus = 'label label-danger'\r\n // }\r\n // return \"\"+full.VendorStatus+\"\";\r\n // })\r\n\r\n // ];\r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n \r\n\t\t.withPaginationType('full_numbers')\r\n\t\t.withOption('lengthChange', true)\r\n\t\t.withOption('paging', true)\r\n\t\t.withOption('bInfo',true)\r\n\t\t.withOption('order', [0, 'desc'])\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable()\r\n ];\r\n vm.GetAllVendors();\r\n\r\n // vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n // '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n // 'full_numbers').withOption('lengthChange', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n // .withOption('order', [1, 'asc']);\r\n\r\n // vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n // // DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable()];\r\n // vm.PieChart5 = {\r\n // data: [226, 134],\r\n // options: {\r\n // fill: [\"#1ab394\", \"#d7d7d7\"]\r\n // }\r\n // };\r\n\r\n\r\n // Global Calling\r\n // vm.GetAllVendors();\r\n\r\n vm.RechargeHistory = function(userId) {\r\n RechargeModal = $uibModal.open({\r\n templateUrl: 'viewRechargeHistory.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n resolve : {\r\n items : function(){\r\n return {\r\n AccountName:vm.CompanyName,\r\n AccountId:vm.Email\r\n };\r\n }\r\n },\r\n size:'lg'\r\n });\r\n ActiveUserService.getFreelancerHistory(userId, token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.AccountHistoryData = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.CloseRechargeModal = function(){\r\n RechargeModal.close();\r\n }\r\n\r\n }\r\n});\nangular.module('inspinia').controller('TrainingUserListController', function(toaster, HelpDeskHomeAdminService, \r\n\t$state ,$localStorage, $scope, DTOptionsBuilder, DTColumnDefBuilder, PublicApiURL, $log, \r\n\tHelpDeskCustomerViewService, $uibModal, JobTicketViewService, $q, $timeout, ImageUrl) {\r\n\tvm = this;\r\n\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\r\n\t\r\n\r\n\t\tvm.SMS = function () {\r\n\t\t\tvm.AllBookingList ='';\r\n\t\t\t $scope.selected = null;\r\n\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'SMS.html',\r\n\t\t\t\tsize :'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\r\n\t\t}\r\n\r\n\t\tvm.Email = function () {\r\n\t\t\tvm.AllBookingList ='';\r\n\t\t\t $scope.selected = null;\r\n\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Email.html',\r\n\t\t\t\tsize :'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\r\n\t\t}\r\n\t\tvm.InApp = function () {\r\n\t\t\tvm.AllBookingList ='';\r\n\t\t\t $scope.selected = null;\r\n\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'InApp.html',\r\n\t\t\t\tsize :'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\r\n\t\t}\r\n\r\n}\r\n});\nangular.module('inspinia').controller('TrackingController', function (UIURL, $uibModal, $state, $localStorage, $scope,$timeout,\t $stateParams, $log, PaymentSectionService, ImageUrl, $window) {\r\n\r\n\tvar vm = this;\r\n\r\n \r\n// vm.getPicUrl = function (pic) {\r\n// return ImageUrl + \"/\" + pic;\r\n// }\r\nvm.getPicUrl = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n}\r\n/*function myMap() {\r\nvar mapProp= {\r\n center:new google.maps.LatLng(28.5482795,77.3533943),\r\n zoom:5,\r\n};\r\nvar map = new google.maps.Map(document.getElementById(\"googleMap\"),mapProp);\r\n}\r\n\r\nmyMap();\r\n\r\n*/\r\n\r\n vm.accCheck = '';\r\n\r\n var accountId = $stateParams.accountId;\r\n var jobCardId = $stateParams.jobCardId;\r\n \r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n vm.round2Decimal = $scope.$parent.main.round2Decimal;\r\n\r\n vm.feedback = {};\r\n vm.customerJobCard = {};\r\n var DefaultImage = UIURL+'/assets/images/patterns/Photo1.png';\r\n\r\n/// this is also used \r\n// var directionsDisplay;\r\n// var directionsService = new google.maps.DirectionsService();\r\n\r\n// function initMap() {\r\n\r\n\r\n\r\n// directionsDisplay = new google.maps.DirectionsRenderer();\r\n// var chicago = new google.maps.LatLng(28.5482795 , 77.3533943);\r\n// var mapOptions = {\r\n// zoom: 7,\r\n// center: chicago\r\n// }\r\n// var map = new google.maps.Map(document.getElementById('map'), mapOptions);\r\n// directionsDisplay.setMap(map);\r\n// calcRoute(map);\r\n\r\n// }\r\n\r\n\r\n// function calcRoute(map) {\r\n\r\n\r\n// var start = new google.maps.LatLng(vm.JobLatitude , vm.JobLongitude);\r\n// var end = new google.maps.LatLng(vm.FELatitude, vm.JobLongitude);\r\n// var startMark = new google.maps.Marker({\r\n// position: start,\r\n// map: map,\r\n// title: \"start\"\r\n\r\n\r\n// });\r\n// var endMark = new google.maps.Marker({\r\n// position: end,\r\n// map: map,\r\n// title: \"end\"\r\n// });\r\n// var request = {\r\n// origin: start,\r\n// destination: end,\r\n// travelMode: 'DRIVING'\r\n// };\r\n\r\n// directionsService.route(request, function(response, status) {\r\n// if (status == 'OK') {\r\n// directionsDisplay.setDirections(response);\r\n// } else {\r\n// alert(\"directions request failed, status=\"+status)\r\n// }\r\n// });\r\n// }\r\n// google.maps.event.addDomListener(window, \"load\", initMap);\r\n\r\n \r\n\r\n$scope.details = false;\r\n \r\n$scope.showDetails = function(){\r\n $scope.details = true; \r\n};\r\n\r\n \r\n$scope.hideDetails = function(){\r\n $scope.details = false; \r\n};\r\n\r\n//It is used for the distance also \r\nfunction initMap() { \r\n var pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n pointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n // center = new google.maps.LatLng(51.3, 0.8),\r\n myOptions = {\r\n zoom: 8,\r\n zoomControl: false,\r\n scaleControl: true,\r\n mapTypeControl: false,\r\n streetViewControl: false,\r\n gestureHandling: 'greedy',\r\n // center: center,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n },\r\n \r\n\r\n map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n // Instantiate a directions service.\r\n directionsService = new google.maps.DirectionsService,\r\n directionsDisplay = new google.maps.DirectionsRenderer({\r\n map: map\r\n }),\r\n\r\n duration = document.getElementById('duration');\r\n distance = document.getElementById('distance');\r\n flightPath = new google.maps.Polyline({\r\n path: [pointA, pointB],\r\n // geodesic: true,\r\n strokeColor: 'red',\r\n // strokeOpacity: 1.0,\r\n // strokeWeight: 2\r\n });\r\n\r\n\r\n // click on marker B to get route from A to B\r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n\r\n var travelMode = \"DRIVING\";\r\n\r\n var icon =\"https://img.icons8.com/color/96/000000/street-view.png\";\r\n/* var marker = new google.maps.Marker({\r\n position: pointA,\r\n icon: icon,\r\n map: map\r\n });\r\n var marker = new google.maps.Marker({\r\n position: pointB,\r\n icon: icon,\r\n map: map\r\n });\r\n*/\r\n\r\n/*directionsDisplay.setMap(map);\r\ndirectionsDisplay.setOptions( { suppressMarkers: true } );*/\r\n\r\n /* var startMarker = new google.maps.Marker({ position: pointA, map: map, icon: icon });\r\n var stopMarker = new google.maps.Marker({ position: pointB, map: map, icon: icon });*/\r\n\r\n}\r\n\r\n\r\nfunction calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration,map) {\r\n var selectedMode =\"DRIVING\";\r\n directionsService.route({\r\n origin: pointA,\r\n destination: pointB,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n travelMode: google.maps.TravelMode[selectedMode]\r\n }, function(response, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n\r\n /*directionsDisplay.setDirections(response);\r\n outputTxt.innerHTML = Math.round(directionsDisplay.getDirections().routes[directionsDisplay.getRouteIndex()].legs[0].distance.value / 1000) + \"Km\";\r\n vm.test =outputTxt.innerHTML;*/\r\n new google.maps.DirectionsRenderer({\r\n \r\n map: map,\r\n directions: response,\r\n suppressMarkers: true,\r\n\r\n polylineOptions: {\r\n strokeColor: \"#000000\"\r\n }\r\n\r\n });\r\n var leg = response.routes[0].legs[0]; \r\n //outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n distance.innerHTML =response.routes[0].legs[0].distance.text;\r\n duration.innerHTML =response.routes[0].legs[0].duration.text;\r\n\r\n vm.distance = response.routes[0].legs[0].distance.value/1000;\r\n \r\n makeMarker(leg.start_location, icons.start, \"title\", map);\r\n makeMarker(leg.end_location, icons.end, 'title', map);\r\n/*directionsDisplay = new google.maps.DirectionsRenderer({\r\n polylineOptions: {\r\n strokeColor: \"red\"\r\n }\r\n });\r\n*/\r\n \r\n\r\n\r\n } else {\r\n window.alert('Directions request failed due to ' + status);\r\n }\r\n });\r\n}\r\n\r\n function makeMarker(position, icon, title, map) {\r\n new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon,\r\n title: title\r\n });\r\n }\r\n\r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n // URL\r\n UIURL+'/assets/images/patterns/JOb_icon.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL+'/assets/images/patterns/mascot_icon2.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n\r\n\r\n vm.getReadableDate = function(){\r\n var time = new moment(vm.customerJobCard.JobDateTime, \"YYYY-MM-DDThh:mm:ss\");\r\n return time.format(\"DD MMM YYYY\")+\" at \"+time.format(\"LTS\");\r\n }\r\n\r\n vm.getCustomerJobCard = function(){\r\n \t//var accountId ='35';\r\n //\tvar jobCardId ='V0000000259';\r\n \t\r\n PaymentSectionService.getCustomerJobCardById(jobCardId, function(data){ debugger\r\n \r\n vm.JobLatitude = data.JobLatitude;\r\n vm.JobLongitude = data.JobLongitude;\r\n vm.FELatitude = data.FELatitude;\r\n vm.FELongitude = data.FELongitude;\r\n vm.contactnumber = data.FEContactNumber;\r\n vm.consumername = data.ConsumerName;\r\n vm.name = data.FEName;\r\n vm.jobtype = data.Description;\r\n vm.consumerAddress = data.ConsumerAddress;\r\n vm.MMFPrimeMember = data.MMFPrimeMember;\r\n vm.IsVaccinated = data.IsVaccinated;\r\n vm.ConsumerOTP = data.ConsumerOTP;\r\n vm.NumberToCall = data.NumberToCall;\r\n vm.CallInitiate = \"+91\" + vm.NumberToCall + ',' + vm.ConsumerOTP;\r\n data.ratingStars = vm.getRatingStars(Math.round(data.FERating));\r\n data.blankStars = vm.getBlankStars(Math.round(data.FERating));\r\n $log.log(\"res of getCustomerJobCard=\"+data);\r\n vm.customerJobCard = data;\r\n if($localStorage.rateJobParams){\r\n vm.customerJobCard.JobStatus=$localStorage.rateJobParams.status;\r\n vm.customerJobCard.CustomerGivenRating=$localStorage.rateJobParams.rating;\r\n delete $localStorage.rateJobParams;\r\n }\r\n if(data && data.JobStatus == 'PaymentDone'){\r\n // vm.OpenApproveModal();\r\n\r\n /* $state.go('RateJob', {\r\n accountId: accountId,\r\n jobCardId: jobCardId,\r\n reload: true\r\n });*/\r\n }\r\n \r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n }); \r\n }\r\n vm.getCustomerJobCard();\r\n\r\n\r\n\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n initMap();\r\n }, 3000);\r\n\r\n// vm.getImageUrl = function(profilePic) {\r\n// debugger\r\n// return profilePic ? ImageUrl + '/' + profilePic : DefaultImage;\r\n// } \r\n\r\nvm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\nvm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\nvm.clickToCall = function () {\r\n $window.location.href = 'tel://'+vm.CallInitiate;\r\n}\r\n\r\n});\r\n\r\n\r\n/*28.5482795 77.3533943\r\nlat: 28.6136454, long: 77.3635635,\r\n2: {lat: 28.6136454, long: 77.3635635, \r\n3: {lat: 28.5929474, long: 77.3446234,\r\n4: {lat: 28.5929474, long: 77.3446234,\r\n5: {lat: 28.6136454, long: 77.3635635,\r\n6: {lat: 28.5987611, long: 77.3471111,\r\n7: {lat: 28.6136454, long: 77.3635635, \r\n9: {lat: 28.6136454, long: 77.3635635, \r\n10: {lat: 28.6136454, long: 77.3635635, \r\n11: {lat: 28.6136454, long: 77.3635635,\r\n12: {lat: 28.6049374, long: 77.3548647,\r\n\t13: {lat: 28.6049374, long: 77.3548647, */\nangular.module('inspinia').service('ToolUtilityService', function (ApiURL, $http, FreelancerURL, LocationURL) {\r\n\r\n this.GetJobsSetupForDemo = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/GetJobsSetupForDemo?reqUserId='+loggedInUserId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId':loggedInUserId\r\n }\r\n });\r\n }\r\n //https://demo.mymobiforce.com/coreapi/api/Ticket/CreateJobsForDemo?reqUserId=U680000000001&OnDate=2021-01-20&Skill=Acceptance%20Test\r\n this.CreateJobsUtility = function (loggedinUser, jobStartDate, skill, token) {\r\n var url = ApiURL + '/api/Ticket/CreateJobsForDemo?reqUserId=' + loggedinUser + '&OnDate=' + jobStartDate + '&Skill=' + skill;\r\n return $http.post(url, {},{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token,\r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n // https://demo.mymobiforce.com/coreapi/api/Ticket/DeleteTicketWithRelatedDataOnDate?Date=2021-01-29&reqUserId=U710000000001\r\n this.CleanupJobs = function(loggedinUser,cleanupdate,token){\r\n var url = ApiURL+'/api/Ticket/DeleteTicketWithRelatedDataOnDate?Date=' + cleanupdate + '&reqUserId=' + loggedinUser;\r\n return $http.delete(url,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':loggedinUser}\r\n })\r\n }\r\n // https://demo.mymobiforce.com/coreapi/api/TicketSlot/CreateSlotsByDate?reqUserId=U680000000001&OnDate=2021-01-20\r\n this.CreateSlot = function (loggedinUser, jobStartDate, token) {\r\n var url = ApiURL + '/api/TicketSlot/CreateSlotsByDate?reqUserId=' + loggedinUser + '&OnDate=' + jobStartDate;\r\n return $http.post(url, {}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n \r\n});\r\n\nangular.module('inspinia').controller('ToolUtilityController', function ($scope, $state, $filter, ToolUtilityService, OnBoardingFormService, $log, $stateParams, $localStorage, DTColumnDefBuilder, DTOptionsBuilder, ImageUrl) {\r\n var vm = this; \r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n vm.dtInstance = {};\r\n vm.error = {};\r\n\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n \r\n\r\n vm.openCalendar = function (e, picker) {\r\n\t\t\tvm.AppointmentsDate.open = true;\r\n };\r\n var datelimit = new Date();\r\n vm.SelectedJobDate = moment().format(\"YYYY-MM-DD\");\r\n\t\tdatelimit.setMinutes(datelimit.getMinutes() + 1)\r\n vm.AppointmentsDate = { date: '', datepickerOptions: { minDate: datelimit }, timepicker:false }; \r\n \r\n vm.DisplayCleanupJobDate = new Date();\r\n vm.openCalendarCleanupjob = function (e, picker) {\r\n\t\t\tvm.Cleanupjobs.open = true;\r\n };\r\n\t\t\r\n vm.getJobCountandSkill = function()\r\n {\r\n ToolUtilityService.GetJobsSetupForDemo(loggedinUser,token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.CountandSkillList = resp.data;\r\n }\r\n },\r\n function () {\r\n \r\n })\r\n }\r\n vm.getJobCountandSkill();\r\n vm.CleanupJobDateFormat = function(_date)\r\n {\r\n return moment(_date).format(\"DD/MM/YYYY\");\r\n }\r\n vm.CreateJobsUtility = function(skill)\r\n { \r\n var sdate =moment(vm.SelectedJobDate).format(\"YYYY-MM-DD\");\r\n ToolUtilityService.CreateJobsUtility(loggedinUser,sdate,skill, token).then(function (resp) {\r\n if (resp.status == 200) { \r\n vm.showSuccess(\"Success\", \"Job has been created successfully!\");\t \r\n } \r\n }, function (error) { \r\n \r\n })\r\n }\r\n vm.CleanupsJobs = function()\r\n {\r\n var _cleanupdate = moment(vm.SelectedJobDate).format(\"YYYY-MM-DD\");\r\n ToolUtilityService.CleanupJobs(loggedinUser, _cleanupdate,token).then(function(resp){\r\n if (resp.status == 200) { \r\n vm.showSuccess(\"Success\", \"Job has been cleanup successfully!\");\t \r\n } \r\n }, function (error) { \r\n })\r\n }\r\n vm.CreateSlot = function()\r\n { \r\n var _createslotDate = moment(vm.SelectedJobDate).format(\"YYYY-MM-DD\");\r\n ToolUtilityService.CreateSlot(loggedinUser, _createslotDate,token).then(function(resp){\r\n if (resp.status == 201) { \r\n vm.showSuccess(\"Success\", \"Slot has been created successfully!\");\t \r\n } \r\n }, function (error) { \r\n })\r\n }\r\n}\r\n});\r\n\nangular.module('inspinia').service('TicketFormService', function (ApiURL,PublicApiURL, LocationURL, $log, $http, $localStorage) {\r\n\r\n\r\n\r\n this.uploadProfilePic = function (loggedinUser, data, success, failure) {\r\n $http.post(PublicApiURL + '/api/PostUserPic?reqUserId=' + loggedinUser, data, {\r\n headers: {\r\n 'Content-Type': undefined\r\n }\r\n }).then(success, failure);\r\n }\r\n\r\n\r\n this.GetSubRegion = function(loggedInUserId, token, region){\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+ loggedInUserId + '®ion='+ region;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n this.GetCityBySubRegion = function(loggedInUserId, subRegion, token){\r\n var subRegion1 = subRegion.replace(\"&\", \"%26\");\r\n var url = PublicApiURL + '/api/Location/GetCity?userId='+ loggedInUserId + '&subregion='+ subRegion;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n\r\n this.CreateTicket = function (loggedinUser,Data) {\r\n var url = PublicApiURL + '/api/Ticket/CreateTicketByPublicUser?reqUserId='+loggedinUser;\r\n return $http.post(url, Data, {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n\r\n \r\n \r\n});\nangular.module('inspinia').controller('TicketFormController', function (TicketFormService, ReferService, $rootScope, $log, $state, $localStorage, $stateParams,ImageUrl, $scope, toaster, $timeout) {\r\n var vm = this;\r\n// var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUser = 'U390000000001';\r\n //var token = $localStorage.token;\r\n var token ='e3281c15-e73d-438f-871c-fe84206fefbe';\r\n var region ='DELHI'\r\n\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n\r\nvar Image=\"Image\";\r\n \r\nvm.address1 ='';\r\nvm.address2 ='';\r\nvm.city ='';\r\nvm.complaint ='';\r\n vm.complaint = '';\r\n vm.Issue ='';\r\n\r\n vm.first_name = '';\r\n vm.last_name ='';\r\n vm.phone ='';\r\n vm.state =''; \r\n vm.complaint ='';\r\n vm.Pincode ='';\r\nvm.Picture ='';\r\n\r\n\r\n\r\n\r\n\r\n vm.selectSubRegion = function(region){\r\n \r\n TicketFormService.GetSubRegion(loggedinUser, token, region).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.stateList = resp.data.values;\r\n // $log.log('SubRegionList',vm.stateList);\r\n }\r\n }\r\n })\r\n }\r\n vm.selectSubRegion(region);\r\n\r\n vm.selectCitySubRegion = function(subregion){\r\n TicketFormService.GetCityBySubRegion(loggedinUser, subregion, token).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.CityList = resp.data.values;\r\n //$log.log('SubRegionList',vm.CityList);\r\n }\r\n }\r\n })\r\n }\r\n\r\nvm.saveForm = function() {\r\n\r\n\r\n var data ={ \r\n \"TicketType\": \"Normal\",\r\n \"Address1\": vm.address1,\r\n \"Address2\": vm.address2,\r\n \"JobId\": \"\",\r\n \"City\": vm.city,\r\n \"State\": \"DELHI\",\r\n \"Country\": \"INDIA\",\r\n \"Template\": vm.complaint,\r\n \"JobType\": vm.complaint, \r\n \"JobDescription\": vm.Issue,\r\n \"ConsumerName\": vm.first_name +' '+ vm.last_name,\r\n \"ConsumerContactNumber\": vm.phone,\r\n \"Region\": \"DELHI\",\r\n \"SubRegion\": vm.state, \r\n \"CallType\": vm.complaint,\r\n \"Latitude\": \"\",\r\n \"Longitude\": \"\",\r\n \"Pincode\": vm.Pincode,\r\n \"JobTemplateModel\": {\r\n \"TemplateItems\": {\"Image\" :vm.Picture},\r\n \"sectionMap\": {}\r\n }\r\n }\r\n\r\n if(vm.registration_form.$valid){\r\n $rootScope.$broadcast(\"loader_gif_show\");\r\n TicketFormService.CreateTicket(loggedinUser,data).then(function (resp) {\r\n $log.log(resp, resp.status, resp.data, resp.data.Message);\r\n if (resp.status == 201) {\r\n vm.showSuccess(\"Ticket Creation Status\", \"Ticket created successfully.\");\r\n $rootScope.rootScopeMsg = resp.data;\r\n $timeout(function () {\r\n $state.go('ThankyouTicket', {\r\n reload: true\r\n });\r\n }, 2000);\r\n } else if(resp.status == 206){ \r\n vm.showFailure(\"Ticket Creation Failed \", resp.data.Message);\r\n } else { \r\n vm.showFailure(\"Ticket Creation failed\", \"Ticket creation failed. Server is not responding correctly. Please try again later.\"); \r\n }\r\n }, function(err){ \r\n vm.showFailure(\"Ticket Creation failed\", \"Ticket creation failed. Server is not responding correctly. Please try again later.\");\r\n });\r\n }else {\r\n vm.registration_form.submitted = true;\r\n }\r\n}\r\n\r\n\r\n vm.changeFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n vm.getPicUrl = function (pic) {\r\n return ImageUrl + \"/\" + pic;\r\n }\r\n\r\n $scope.uploadImageFile = function (files, type) {\r\n\r\n vm.fileUploadError = null;\r\n var file = files.files[0];\r\n if(file.type.indexOf(\"image/jpg\")>=0 || file.type.indexOf(\"image/png\")>=0 \r\n || file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n var data = new FormData();\r\n data.append(\"files\", files.files[0]);\r\n TicketFormService.uploadProfilePic(loggedinUser, data, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm[type] = res.data;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n \r\n }\r\n\r\n\r\n \r\n});\nangular.module('inspinia').controller('ThankyouTicketController', function (TicketFormService, ReferService, $rootScope, $log, $state, $localStorage, $stateParams,ImageUrl, $scope, toaster, $timeout) {\r\n var vm = this;\r\n\r\n\r\n$scope.scopeMsg = $rootScope.rootScopeMsg;\r\n \r\n\r\n\r\n\r\n \r\n});\nangular.module('inspinia').service('ThankyouService', function ($http, PublicApiURL) {\r\n\r\n\t// this.getTollFreeNo = function(success, failure){\r\n\t// \t$http.get(ApiURL+\"/api/ServiceDetail/TollfreeNumber\").then(function(res){\r\n\t// \t\tif(res && res.data && res.data.tollfreeno){\r\n\t// \t\t\tsuccess(res.data.tollfreeno);\r\n\t// \t\t} else {\r\n\t// \t\t\tfailure(\"Failed\", \"Failed to get toll free no\")\r\n\t// \t\t}\t\t\t\r\n\t// \t}, function(err){\r\n\t// \t\tfailure(\"Failed\", \"Failed to get toll free no\");\r\n\t// \t})\r\n\t// }\r\n\r\n\tthis.activatingUser = function (userId, uniqueKey, success, failure) {\r\n\t var url = PublicApiURL + '/api/SignUp/?UniqueKey=' + uniqueKey + '&UserId=' + userId;\r\n\t return $http.put(url).then(success, failure);\r\n\t}\r\n});\r\n\nangular.module('inspinia').controller('ThankyouController', function ($state, $scope, ThankyouService, $stateParams) {\r\n\r\n\tvar vm = this;\r\n\r\n\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\r\n\t// vm.getTollFreeNo = function () {\r\n\t// \tThankyouService.getTollFreeNo(function (tollFreeNo) {\r\n\t// \t\tvm.tollFreeNo = tollFreeNo;\r\n\t// \t}, vm.showFailure);\r\n\t// }\r\n\t// vm.getTollFreeNo();\r\n\tvm.failed = false;\r\n\tvm.success = false;\r\n\r\n\r\n\tif ($state.current.name == 'VerifyUser') {\r\n\t\tvar userId = $stateParams.userId;\r\n\t\tvar user_unique_key = $stateParams.uniqueKey;\r\n\t\tvm.password = '';\r\n\t\tvm.emailName = '';\r\n\t\tactivatingUser(userId, user_unique_key);\r\n\t\tvm.type = \"verifyuser\";\r\n\t} else {\r\n\t\tvm.type = \"thankyou\";\r\n\t\tvm.success = true;\r\n\t}\r\n\r\n\tfunction activatingUser(userId, user_unique_key) {\r\n\t\tThankyouService.activatingUser(userId, user_unique_key, function (res) {\r\n\t\t\tif(res && res.status==202){\r\n\t\t\t\tvm.success = true;\r\n\t\t\t\tvm.PersonalEmail = res.data.PersonalEmail;\r\n\t\t\t\tvm.showSuccess(\"Success\", \"User activated successfully.\");\r\n\t\t\t} else if(res && res.data && res.data.ErrorCode && res.data.ErrorCode == 103){\r\n\t\t\t\tvm.failed = true;\r\n\t\t\t\tvm.errMsg = \"This activation url has been expired now.\";\t\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\tvm.failed = true;\r\n\t\t\t\tvm.errMsg = \"Unable to activate user. Server is not responding correctly.\";\r\n\t\t\t}\r\n\t\t},\r\n\t\tfunction (err) {\r\n\t\t\tvm.failed = true;\r\n\t\t\tvm.errMsg = \"Unable to activate user. Server is not responding correctly.\";\r\n\t\t});\r\n\t}\r\n});\nangular.module('inspinia').service('TerritoryMappingService', function (ApiURL, MMFCRMURL,SchedulingAPI, $window, $http) {\r\n\r\n this.CreateSubRegionMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMZonalMapping/CreateSubRegionMaster';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n this.CreateRegionMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMZonalMapping/CreateRegionMaster';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n this.GetAllSubRegion = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMZonalMapping/GetAllSubRegion';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n this.GetAllRegions = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMZonalMapping/GetAllRegions';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n \r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('TerritoryMappingController', function (TerritoryMappingService,ReferService,$resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal,$window, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\t\tvm.disableCreationButton = false;\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\tvm.dtInstanceSubRegionModal = {};\r\n\t\tvm.searchSubRegionModelText = \"\";\r\n\t\tvm.dtInstanceRegionModal = {};\r\n\t\tvm.searchRegionModelText = \"\";\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount ; \r\n\t\t$scope.TicketTablepagination = {\r\n\t\t current: 1\r\n\t\t};\r\n\t\r\n\t\t// $scope.scrollProgress = 0;\r\n\r\n\t\t// angular.element($window).on('scroll', function() {\r\n\t\t// \tvar scrollTop = $window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n\t\t// \tvar docHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight;\r\n\t\t// \t$scope.scrollProgress = (scrollTop / docHeight) * 100;\r\n\t\t// \t$scope.$apply();\r\n\t\t// })\r\n\t\t\r\n\t\r\n\t\tvm.AddSubRegionModelOpen = function () {\r\n\t\t\tvm.addsubregion = $uibModal.open({\r\n\t\t\t templateUrl: 'AddSubRegion.html',\r\n\t\t\t size: 'md',\r\n\t\t\t backdrop: 'static',\r\n\t\t\t scope: $scope,\r\n\t\t\t});\r\n\t\t }\r\n\t \r\n\t\t vm.CloseAddSubRegionModel = function () {\r\n\t\t\tvm.addsubregion.close();\r\n\t\t\tvm.SubRegionName = \"\";\r\n\t\t\tvm.SubRegionState = \"\";\r\n\t\t\tvm.SubRegionCity = \"\";\r\n\t\t\tvm.SubRegionBranchCode = \"\";\r\n\t\t\t\r\n\t\t }\r\n\t\t vm.AddRegionModelOpen = function () {\r\n\t\t\tvm.addregion = $uibModal.open({\r\n\t\t\t templateUrl: 'AddRegion.html',\r\n\t\t\t size: 'md',\r\n\t\t\t backdrop: 'static',\r\n\t\t\t scope: $scope,\r\n\t\t\t});\r\n\t\t }\r\n\t \r\n\t\t vm.CloseAddRegionModel = function () {\r\n\t\t\tvm.addregion.close();\r\n\t\t\tvm.RegionName = \"\";\r\n\t\t\tvm.RegionSub = \"\";\r\n\t\t\t\r\n\t\t }\r\n\r\n\t\t function getAllStates() {\r\n\t\t\tvar defered = $q.defer();\r\n\t\t\tReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tdefered.resolve(resp);\r\n\t\t\t}, function (error) {\r\n\t\t\t\tdefered.reject(error);\r\n\t\t\t});\r\n\t\t\treturn defered.promise;\r\n\t\t}\r\n\r\n\t\tvar allStatePromise = getAllStates(loggedinUser);\r\n\t\tallStatePromise.then(function (resp) {\r\n\t\t\tvm.StateList = resp.data;\r\n\r\n\t\t});\r\n\t\tfunction getallCities(state) {\r\n\t\t\tReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t\t\tvm.CityList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.selectedState = function (state) {\r\n\t\t\tgetallCities(state);\r\n\t\t}\r\n // Table For Subregioncreation\r\n\t\tvm.FilterSubRegion = '';\r\n\t\tvm.FilterLocationName = '';\r\n\r\n\r\n\t\tvm.searchSubRegionModelTable = function () {\r\n\t\t\tvm.dtInstanceSubRegionModal.DataTable.search(vm.searchSubRegionModelText);\r\n\t\t\tvm.dtInstanceSubRegionModal.DataTable.search(vm.searchSubRegionModelText).draw();\r\n\t\t };\r\n\r\n\t\t vm.dtOptionsSubRegionModel = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\tvar defer = $q.defer();\r\n\t\t\tvar data = {\r\n\t\t\t\t\"SubRegion\": vm.FilterSubRegion,\r\n\t\t\t\t\"LocationName\": vm.FilterLocationName\r\n\t\t\t\t\r\n\t\t\t }\r\n\t\t\tTerritoryMappingService.GetAllSubRegion(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t vm.subregionList = resp.data;\r\n\t\t\t defer.resolve(vm.subregionList);\r\n\t\t\t})\r\n\t\t\treturn defer.promise;\r\n\t \r\n\t\t })\r\n\t\t\t.withDOM('<\"html5buttons\"B>lTfgitp')\r\n\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t.withOption('order', [])\r\n\t\t\t.withOption('createdRow', createdRow)\r\n\t\t\t.withOption('rowCallback', rowCallback);\r\n\t \r\n\t\t vm.dtColumnsModel = [\r\n\t\t\tDTColumnBuilder.newColumn('SubRegion').withTitle('Sub Region'),\r\n\t\t\tDTColumnBuilder.newColumn('LocationName').withTitle('Location Name'),\r\n\t\t\tDTColumnBuilder.newColumn('BranchCode').withTitle('BranchCode'),\r\n\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n\t\t\t\treturn '';\r\n\t\t\t})\r\n\t\t ];\r\n\r\n\r\n\t\t vm.refreshSubRegionTable = function () {\r\n\t\t\tvm.dtInstanceSubRegionModal.reloadData();\r\n\t\t\tvm.GetAllSubregionFilterForLocation();\r\n\t\t };\r\n\t\t \r\n\t $scope.$watchGroup(['vm.FilterSubRegion', 'vm.FilterLocationName'], function (newValues, oldValues) {\r\n\t\tif (newValues !== oldValues) {\r\n\t\t vm.refreshSubRegionTable();\r\n\t\t}\r\n\t });\r\n\r\n\t vm.GetAllFilterSubRegion = function () {\r\n\t\tvar data = {\r\n\t\t\t\"SubRegion\": '',\r\n\t\t\t\"LocationName\": '' \r\n\t\t\t\r\n\t\t }\r\n\t\t TerritoryMappingService.GetAllSubRegion(data,loggedinUser, token).then(function (resp) {\r\n\t\t if (resp && resp.data) {\r\n\t\t\tvm.AllFiltersubregion = resp.data;\r\n\t\t }\r\n\t\t})\r\n\t }\r\n\t vm.GetAllSubregionFilterForLocation = function () {\r\n\t\tvar data = {\r\n\t\t\t\"SubRegion\": vm.FilterSubRegion,\r\n\t\t\t\"LocationName\": ''\r\n\t\t\t\r\n\t\t }\r\n\t\t TerritoryMappingService.GetAllSubRegion(data,loggedinUser, token).then(function (resp) {\r\n\t\t if (resp && resp.data) {\r\n\t\t\tvm.AllFilterLocationname = resp.data;\r\n\t\t }\r\n\t\t})\r\n\t }\r\n\t vm.GetAllFilterSubRegion();\r\n\t vm.GetAllSubregionFilterForLocation();\r\n\r\n\t vm.clearsubregionfilter= function(){\r\n\t\tvm.FilterSubRegion = '';\r\n\t\tvm.FilterLocationName = '';\r\n\t\tvm.refreshSubRegionTable();\r\n\t }\r\n\t\t// Table for region\r\n\t\tvm.searchRegionModelTable = function () {\r\n\t\t\tvm.dtInstanceRegionModal.DataTable.search(vm.searchRegionModelText);\r\n\t\t\tvm.dtInstanceRegionModal.DataTable.search(vm.searchRegionModelText).draw();\r\n\t\t };\r\n\t\t vm.dtOptionsRegion = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\tvar defer = $q.defer();\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Region\": vm.FilterForRegion,\r\n\t\t\t\t\"SubRegion\": vm.FilterRegionSUb\r\n\t\t\t\t\r\n\t\t\t }\r\n\t\t\tTerritoryMappingService.GetAllRegions(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t vm.regionList = resp.data;\r\n\t\t\t defer.resolve(vm.regionList);\r\n\t\t\t})\r\n\t\t\treturn defer.promise;\r\n\t \r\n\t\t })\r\n\r\n\t\t \r\n\t\t\t.withDOM('<\"html5buttons\"B>lTfgitp')\r\n\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t.withOption('order', [])\r\n\t\t\t.withOption('createdRow', createdRow)\r\n\t\t\t.withOption('rowCallback', rowCallback);\r\n\t \r\n\t\t vm.dtColumnsRegion = [\r\n\t\t\tDTColumnBuilder.newColumn('Region').withTitle('Region'),\r\n\t\t\tDTColumnBuilder.newColumn('SubRegion').withTitle('Sub Region'),\r\n\t\t\t// DTColumnBuilder.newColumn('BranchCode').withTitle('BranchCode'),\r\n\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n\t\t\t\treturn '';\r\n\t\t\t })\r\n\t\t ];\r\n\t\t function createdRow(row) {\r\n\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t }\r\n\t\t function rowCallback(nRow) {\r\n\t\t\t$('td', nRow).unbind('click');\r\n\t\t\t$('td', nRow).bind('click', function () {\r\n\t\t\t $scope.$apply(function () { });\r\n\t\t\t});\r\n\t\t\treturn nRow;\r\n\t\t }\r\n\r\n\r\n\t\t vm.refreshRigionTable = function () {\r\n\t\t\tvm.dtInstanceRegionModal.reloadData();\r\n\t\t\tvm.GetAllFilterRegionSub ();\r\n\t\t };\r\n\t\t \r\n\t $scope.$watchGroup(['vm.FilterForRegion', 'vm.FilterRegionSUb'], function (newValues, oldValues) {\r\n\t\tif (newValues !== oldValues) {\r\n\t\t vm.refreshRigionTable();\r\n\t\t}\r\n\t });\r\n\t vm.GetAllFilterRegion = function () {\r\n\t\tvar data = {\r\n\t\t\t\"Region\": '',\r\n\t\t\t\"SubRegion\": ''\r\n\t\t\t\r\n\t\t }\r\n\t\t TerritoryMappingService.GetAllRegions(data,loggedinUser, token).then(function (resp) {\r\n\t\t if (resp && resp.data) {\r\n\t\t\tvm.AllFilterRegional = resp.data;\r\n\t\t }\r\n\t\t})\r\n\t }\r\n\t vm.GetAllFilterRegionSub = function () {\r\n\t\tvar data = {\r\n\t\t\t\"Region\":vm.FilterForRegion,\r\n\t\t\t\"SubRegion\": ''\r\n\t\t\t\r\n\t\t }\r\n\t\t TerritoryMappingService.GetAllRegions(data,loggedinUser, token).then(function (resp) {\r\n\t\t if (resp && resp.data) {\r\n\t\t\tvm.AllFilterRegionalSub = resp.data;\r\n\t\t }\r\n\t\t})\r\n\t }\r\n\r\n\t vm.GetAllFilterRegion();\r\n\t vm.GetAllFilterRegionSub ();\r\n\r\n\t vm.clearregionfilter= function(){\r\n\t\tvm.FilterForRegion = '';\r\n\t\tvm.FilterRegionSUb = '';\r\n\t\tvm.refreshSubRegionTable();\r\n\t }\r\n\r\n\t\tvm.CreateSubRegionMaster = function () {\r\n\t\t\tvm.AddSubregion_form.submitted = true;\r\n\t\t\tif (vm.AddSubregion_form.$valid) {\r\n\t\t\t vm.disableCreationButton = true;\r\n\t\t\t var data = {\r\n\t\t\t\t\"SubRegion\": vm.SubRegionName,\r\n\t\t\t\t\"LocationName\": vm.SubRegionCity,\r\n\t\t\t\t\"BranchCode\": vm.SubRegionBranchCode,\r\n\t\t\t }\r\n\t \r\n\t\t\t TerritoryMappingService.CreateSubRegionMaster(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t vm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t vm.CloseAddSubRegionModel();\r\n\t\t\t\t $timeout(function () {\r\n\t\t\t\t\tvm.dtInstanceSubRegionModal.reloadData();\r\n\t\t\t\t }, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t vm.disableCreationButton = false;\r\n\t\t\t\t vm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t })\r\n\t \r\n\t\t\t}\r\n\t\t }\r\n\r\n\t\t vm.CreateRegionMaster = function () {\r\n\t\t\tvm.AddRegion_form.submitted = true;\r\n\t\t\tif (vm.AddRegion_form.$valid) {\r\n\t\t\t vm.disableCreationButton = true;\r\n\t\t\t var data = {\r\n\t\t\t\t\"Region\": vm.RegionName,\r\n\t\t\t\t\"SubRegion\": vm.RegionSub\r\n\t\t\t }\r\n\t \r\n\t\t\t TerritoryMappingService.CreateRegionMaster(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t vm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t vm.CloseAddRegionModel();\r\n\t\t\t\t $timeout(function () {\r\n\t\t\t\t\tvm.dtInstanceRegionModal.reloadData();\r\n\t\t\t\t }, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t vm.disableCreationButton = false;\r\n\t\t\t\t vm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t })\r\n\t \r\n\t\t\t}\r\n\t\t }\r\n\r\n\t\t vm.RemoveSubRegion = function (SubRegionName, Location, BranchCode) {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"SubRegion\": SubRegionName,\r\n\t\t\t\t\"LocationName\": Location,\r\n\t\t\t\t\"BranchCode\": BranchCode\r\n\t\t\t }\r\n\t\t\t TerritoryMappingService.RemoveSubRegion(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t vm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t $timeout(function () {\r\n\t\t\t\t\tvm.dtInstanceSubRegionModal.reloadData();\r\n\t\t\t\t }, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t vm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t })\r\n\t \r\n\t\t\t\r\n\t\t }\r\n\t\t vm.RemoveRegion = function (RegionName, SubRegionName) {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Region\": RegionName,\r\n\t\t\t\t\"SubRegion\": SubRegionName,\r\n\t\t\t }\r\n\t\t\t TerritoryMappingService.RemoveRegion(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t vm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t $timeout(function () {\r\n\t\t\t\t\tvm.dtInstanceRegionModal.reloadData();\r\n\t\t\t\t }, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t vm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t })\r\n\t \r\n\t\t\t\r\n\t\t }\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('ticketTemplateService', function (ApiURL, $log, $http, $localStorage) {\r\n\r\n this.getAllTemplateList = function (token) {\r\n var url = ApiURL + '/api/' + $localStorage.loggedInUserId + '/Template';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n\r\n }\r\n});\r\n\nangular.module('inspinia').controller('TicketTemplateController', function (FormBuilderService, $state, ticketTemplateService, $log, $localStorage, $uibModal, $scope, $timeout, toaster) {\r\n var vm = this;\r\n\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n vm.templates = [];\r\n var cloneTemplateData = [];\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n var accountConfig = $localStorage.accountConfig;\r\n vm.currentPage = 1;\r\n vm.pageSize = 12;\r\n vm.availableSearchParams = [\r\n { key: \"TemplateName\", name: \"TemplateName\", placeholder: \"TemplateName...\" }\r\n // { key: \"city\", name: \"City\", placeholder: \"City...\" },\r\n // { key: \"country\", name: \"Country\", placeholder: \"Country...\" },\r\n // { key: \"emailAddress\", name: \"E-Mail\", placeholder: \"E-Mail...\", allowMultiple: true },\r\n // { key: \"job\", name: \"Job\", placeholder: \"Job...\" }\r\n ];\r\n\r\n\r\n vm.isUpdatePermission = function(){\r\n if(accountConfig && accountConfig.MenuListModel){\r\n for(var i=0; i=0;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n vm.getAllTemplate = function () {\r\n ticketTemplateService.getAllTemplateList(token).then(function (resp) {\r\n vm.templates = resp.data;\r\n },\r\n function () {\r\n //$log.log('not working');\r\n })\r\n }\r\n\r\n vm.editTemplate = function (templateName) {\r\n $state.go('index.FormEdit', { templateName: templateName }, { reload: true });\r\n }\r\n vm.goToCreateTemplate = function () {\r\n $state.go('index.SortableExample', { userId: $localStorage.loggedInUserId }, { reload: true });\r\n }\r\n // vm.getAllTemplate = function () {\r\n // vm.templates= ticketTemplateService.getAllTemplateList().data;\r\n // }\r\n vm.getAllTemplate();\r\n $scope.CloneTemplatePopUp = function (template) {\r\n cloneTemplateData = template;\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'clone_modal.html',\r\n controller: CloneTemplateController\r\n // CloneData : $scope.templates\r\n // scope:$scope\r\n });\r\n }\r\n\r\n function CloneTemplateController($scope, $rootScope, $uibModalInstance) {\r\n $scope.CloseModal = function () {\r\n $uibModalInstance.close();\r\n }\r\n $scope.Cloning = function () {\r\n if ($scope.cloneTemplate_form.$valid) {\r\n $rootScope.$broadcast('Clone_Template', {\r\n templateName: $scope.templateName,\r\n templateDescription: $scope.TemplateDescription\r\n });\r\n $uibModalInstance.close();\r\n } else {\r\n $scope.cloneTemplate_form.submitted = true;\r\n }\r\n }\r\n $rootScope.$on('Close_Model', function () {\r\n $scope.CloseModal();\r\n });\r\n }\r\n\r\n $scope.$on('Clone_Template', function (even, args) {\r\n $scope.SaveTemplate(args.templateName, args.templateDescription);\r\n });\r\n\r\n $scope.SaveTemplate = function (templateName, templatedescription) {\r\n if (templateName) {\r\n cloneTemplateData.TemplateName = templateName;\r\n cloneTemplateData.Description = templatedescription;\r\n delete cloneTemplateData.TemplateId;\r\n FormBuilderService.SaveTemplate(cloneTemplateData, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n toaster.pop({\r\n type: 'success',\r\n title: 'Template creation status ',\r\n showCloseButton: true,\r\n body: 'Template has been cloned succesfully.',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n $timeout(function () {\r\n $state.go($state.current, {}, {\r\n reload: true, inherit: true, notify: true\r\n });\r\n }, 2000);\r\n } else {\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Template creation status ',\r\n showCloseButton: true,\r\n body: 'Template already exist',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n }\r\n },\r\n function () {\r\n //error toaster\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Server Error ',\r\n showCloseButton: true,\r\n body: 'unable to connect to server',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n });\r\n }\r\n }\r\n }\r\n});\r\n\nangular.module('inspinia').service('TerritoryMangementService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('TerritoryMangementController', function (TerritoryMangementService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isRegionCollapsed = true;\r\n\t\t$scope.isSubRegionCollapsed = true;\r\n\t\t$scope.isCountryCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t$scope.isRegionCollapsed = {\r\n\t\t\tbihar: true,\r\n\t\t\tchennai: true,\r\n\t\t\tuttarPradesh: true, // Added Uttar Pradesh\r\n\t\t\tbanglore : true ,\r\n\t\t\tmaharashtra : true,\r\n\t\t\tkarnataka :true,\r\n\t\t\tdelhi:true,\r\n\t\t};\r\n\t\t\r\n\t\t$scope.isSubRegionCollapsed = {\r\n\t\t\tnorthBihar: true,\r\n\t\t\tsouthChennai: true,\r\n\t\t\twestUP: true, // Added West UP sub-region\r\n\t\t\teastUP: true, // Added East UP sub-region\r\n\t\t\tsouthBanglore :true,\r\n\t\t};\r\n\t\t\r\n\t\t$scope.isCountryCollapsed = {\r\n\t\t\tindia: true,\r\n\t\t\tnepal : true,\r\n\t\t\tsrilanka : true,\r\n\t\t}\r\n\r\n\t\tvm.ExpandRegion = function(region) {\r\n\t\t\t$scope.isRegionCollapsed[region] = !$scope.isRegionCollapsed[region];\r\n\t\t};\r\n\t\t\r\n\t\tvm.ExpandSubRegion = function(subRegion) {\r\n\t\t\t$scope.isSubRegionCollapsed[subRegion] = !$scope.isSubRegionCollapsed[subRegion];\r\n\t\t};\r\n\t\tvm.ExpandCountry = function(country) {\r\n\t\t\t$scope.isCountryCollapsed[country] = !$scope.isCountryCollapsed[country];\r\n\t\t};\r\n\t\t// modal for region and subregion \r\n\t// \tvm.AddSubRegionModelOpen = function (action) {\r\n\t// \t\tvm.modalAction = action; // Set the action dynamically\r\n\t// \t\tvm.addsubregion = $uibModal.open({\r\n\t// \t\t\ttemplateUrl: 'AddSubRegion.html',\r\n\t// \t\t\tsize: 'lg',\r\n\t// \t\t\tbackdrop: 'static',\r\n\t// \t\t\tscope: $scope,\r\n\t// \t\t});\r\n\t// \t};\r\n \r\n\t// vm.CloseAddSubRegionModel = function () {\r\n\t// vm.addsubregion.close();\r\n\t// }\r\n\tvm.terminalType = 'location'; // Default selection\r\n\tvm.locationType = 'Country';\r\n\t$scope.selectedCountry = \"\";\r\n $scope.selectedState = \"\";\r\n $scope.selectedCity = \"\";\r\n\t$scope.pincode = \"\";\r\n // Dummy data for different options\r\n\tvm.countryList = ['Nepal', 'India', 'Sri Lanka'];\r\n\r\n // Complete State List (Grouped by Country)\r\n vm.allStates = {\r\n 'India': ['Maharashtra', 'Karnataka', 'Tamil Nadu', 'Uttar Pradesh', 'West Bengal'],\r\n 'Nepal': ['Bagmati', 'Gandaki', 'Lumbini', 'Koshi', 'Sudurpashchim'],\r\n 'Sri Lanka': ['Western Province', 'Central Province', 'Southern Province', 'Northern Province']\r\n };\r\n\r\n // Complete City List (Grouped by Country)\r\n vm.allCities = {\r\n 'India': ['Mumbai', 'Pune', 'Nagpur', 'Bangalore', 'Chennai', 'Lucknow', 'Agra'],\r\n 'Nepal': ['Lalitpur', 'Bhaktapur', 'Hetauda', 'Bidur', 'Baglung'],\r\n 'Sri Lanka': ['Colombo', 'Kandy', 'Galle', 'Jaffna', 'Negombo']\r\n };\r\n\r\n // Complete Pincode List (Grouped by Country)\r\n vm.allPincodes = {\r\n 'India': ['110001', '400001', '560001', '600001', '700001'],\r\n 'Nepal': ['44600', '33700', '44700', '56000', '22007'],\r\n 'Sri Lanka': ['00100', '20000', '80000', '60000', '50000']\r\n };\r\n\r\n // Function to Update Location Lists (State, City, Pincode) Based on Selected Country\r\n vm.updateLocationLists = function() {\r\n vm.filteredStateList = vm.allStates[vm.countryfilter] || [];\r\n vm.filteredCityList = vm.allCities[vm.countryfilter] || [];\r\n vm.filteredPincodeList = vm.allPincodes[vm.countryfilter] || [];\r\n };\r\n\r\n // Initialize Empty Filtered Lists\r\n vm.filteredStateList = [];\r\n vm.filteredCityList = [];\r\n vm.filteredPincodeList = [];\r\n\tvm.techlist = [\r\n\t\t'SC1001 - Alpha Tech Services',\r\n\t\t'SC1002 - Beta Repairs',\r\n\t\t'SC1003 - Gamma Electronics',\r\n\t\t'SC1004 - Delta Service Hub',\r\n\t\t'SC1005 - Epsilon Solutions',\r\n\t\t'SC1006 - Zeta Fixers',\r\n\t\t'SC1007 - Theta Electronics',\r\n\t\t'SC1008 - Lambda Tech Repairs',\r\n\t\t'SC1009 - Sigma Service Center',\r\n\t\t'SC1010 - Omega Electronics Hub',\r\n\t\t'SC1011 - Zenith Tech Solutions',\r\n\t\t'SC1012 - Apex Electronics',\r\n\t\t'SC1013 - Titan Service Point',\r\n\t\t'SC1014 - Orion Tech Care',\r\n\t\t'SC1015 - Polaris Electronics',\r\n\t\t'SC1016 - Nova Repairs',\r\n\t\t'SC1017 - Quantum Fix Services',\r\n\t\t'SC1018 - Velocity Tech Repairs',\r\n\t\t'SC1019 - Horizon Service Hub',\r\n\t\t'SC1020 - Stellar Electronics'\r\n\t];\r\n\t\tvm.AddTerriortyModelOpen = function (action) {\r\n\t\tvm.modalAction = action; // Set the action dynamically\r\n\t\tvm.addterriorty = $uibModal.open({\r\n\t\t\ttemplateUrl: 'CreateTerritory.html',\r\n\t\t\tsize: 'lg',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\r\nvm.CloseTerriortyModel = function () {\r\n\tvm.territoryName = '';\r\n\tvm.ParentTerritory = '';\r\n\tvm.calendername = '';\r\n\tvm.ResponsibleOwner = '';\r\n\tvm.isTerminal = '';\r\n\t// vm.terminalType = '';\r\n\t// vm.locationType = '';\r\n\tselectedCountry = ''\r\n\tselectedState = '';\r\n\tselectedCity = '';\r\n\tpincode = '';\r\n\tvm.servicelist = '';\r\n\r\nvm.addterriorty.close();\r\n}\r\n\tvm.AddRegionModelOpen = function () {\r\n\tvm.addregion = $uibModal.open({\r\n\t templateUrl: 'AddRegion.html',\r\n\t size: 'md',\r\n\t backdrop: 'static',\r\n\t scope: $scope,\r\n\t});\r\n\t\r\n\t}\r\n \r\n\tvm.CloseAddRegionModel = function () {\r\n\tvm.addregion.close();\r\n\t\r\n\t}\r\n\tvm.deleteregion = function(){\r\n\t\tvm.showSuccess(\"Success\", \"Delete successfully.\");\r\n\t}\r\n\tvm.deatchregion = function(){\r\n\t\tvm.showSuccess(\"Success\", \"Deatch successfully.\");\r\n\t}\r\n\tvm.disableCreateButton = false;\r\n\r\n\tvm.CreateCase = function(){\r\n\t\tvm.dialertask_form.submitted = true;\r\n \t\tif (vm.dialertask_form.$valid) {\r\n\t\t\tvm.disableCreateButton = true;\r\n\t\t\tvm.showSuccess(\"Success\", \" Successfully Created.\");\r\n\t\t\tvm.CloseAddSubRegionModel();\r\n\t\t}\r\n\t\telse{\r\n\t\t\tvm.showFailure(\"Failed\");\r\n\t\t\tvm.disableCreateButton = true;\r\n\t\t}\r\n\t}\r\n\t}\r\n});\nangular.module('inspinia').service('TechnicianViewService', function (ApiURL, $http, FreelancerURL, ActivityURL) {\r\n\r\n this.getUserInfo = function (userId, loggedInUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId + '/' + loggedInUser + '/' + 'byUserIdWithJobCount';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUser }\r\n })\r\n }\r\n\r\n this.GetDashboardData = function (userid, loggedInUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerWallet/GetDashboardDataForWeb?RequestFor=ToBePaid&UserId=' + userid;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUser }\r\n })\r\n }\r\n\r\n this.getAllJobTicketsCopyForPagging = function (loggedInUser, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, DateField, PageIndex, PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRangeWithDynaPagingForCHDListing?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + loggedInUser + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUser\r\n }\r\n });\r\n }\r\n\r\n this.ReturnPrimeMemberAmount = function (loggedInUser, userId, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/ReturnPrimeMemberAmount?userId=' + userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedInUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdatePincodeSkillAccountId = function (data, loggedInUser, token) {\r\n var url = ApiURL + '/api/user/UpdatePincodeSkillAccountId';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedInUser\r\n }\r\n });\r\n }\r\n this.DeleteAuthorizedServicePartnerByUserId = function (data, loggedInUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/DeleteAuthorizedServicePartnerByUserId';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedInUser\r\n }\r\n });\r\n }\r\n this.UpdateUserSkillS = function (data, loggedInUser, token) {\r\n var url = ApiURL + '/api/User/UpdateUserSkillS';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedInUser\r\n }\r\n });\r\n }\r\n\r\n this.DeActivateUserWithRemark = function (data, loggedInUser, token) {\r\n var url = ApiURL + '/api/User/BlockFieldUser';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedInUser\r\n }\r\n });\r\n }\r\n\r\n this.CreateCaseForTechnician = function (dataToSend, loggedinUser, token) {\r\n var url = ApiURL + \"/api/ProfileController/CreateNewCaseForTechnician\";\r\n return $http.post(url, dataToSend, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.AddAuthorizedServicePartnerForWeb = function (dataToSend,loggedinUser, token) {\r\n var url = FreelancerURL + \"/api/FreelancerUser/AddAuthorizedServicePartnerForWeb\";\r\n return $http.post(url, dataToSend, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.UploadMedia = function (formdata, loggedInUserId, token) {\r\n var url = ApiURL + '/api/UploadMedia';\r\n return $http.post(url, formdata, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\n this.GetPaymentsForUser = function (data, loggedinUser, token) {\r\n var url = ApiURL + \"/api/ProfileController/GetPaymentsForUser\";\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetPayoutsForTechnician = function (data, loggedinUser, token) {\r\n var url = ApiURL + \"/api/ProfileController/GetPayoutsForTechnician\";\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetDepartmentDetails = function (loggedinUser, token) {\r\n var url = ApiURL + \"/api/ProfileController/GetDepartmentDetails\";\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetAllMasterDataOfServiceCenter = function (loggedinUser, token) {\r\n var url = ApiURL + \"/api/ServiceParnterMaster/GetAllMasterDataOfServiceCenter\";\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetAllProductDetailInMaster = function (loggedinUser, token) {\r\n var url = ApiURL + \"/api/ServiceParnterMaster/GetAllProductDetailInMaster\";\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetAllCasesForTechnician = function (loggedinUser, token, userId) {\r\n var url = ApiURL + '/api/ProfileController/GetAllCasesForTechnician?UserId=' + userId;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.UpdateUserLockProfile = function (loggedinUser, token, userId) {\r\n var url = ApiURL + '/api/ProfileController/UpdateUserLockProfile?UserId=' + userId;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UpdateCaseForTechnician = function (data, loggedinUser, token) {\r\n var url = ApiURL + \"/api/ProfileController/UpdateCaseForTechnician\";\r\n return $http.put(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetSkillRecommendationsForUser = function (user, loggedinUser, token) {\r\n url = FreelancerURL + '/api/Recommendation/GetSkillRecommendationsForUser?UserId=' + user;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllActivityForTechnicianCase = function (caseId, loggedinUser, token) {\r\n var url = ActivityURL + '/api/Activity/GetAllActivityForTechnicianCase?CaseId=' + caseId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UpdateUserBGVerificationDetails = function (userId,addressProof, identityProof, loggedinUser, token) {\r\n var url = ApiURL + '/api/supportengineerhelper/UpdateUserBGVerificationDetails?userId=' + userId + '&AddressProof=' + addressProof + '&IdentityProof=' + identityProof;\r\n return $http.post(url,null, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n})\r\n\nangular.module('inspinia').controller('TechnicianViewController', function ($state, TeamFormCreationService,MainService, TechnicianViewService, PincodeFinderService, DashboardService, OnBoardingFlowService, SlotAllocationService, AllUsersListService, NgMap, CentralHDTicketsViewService, CentralHelpdeskConfigService, $location, $anchorScroll, $rootScope, $http, $stateParams, UIURL, $q, $log, $localStorage, DTOptionsBuilder, ApiURL, DTColumnBuilder, ngProgressFactory, $uibModal, $scope, toaster, $filter, DTColumnDefBuilder, $window, $timeout, PublicApiURL, jobBidCreationService, ImageUrl) {\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n if (!loggedInUserId) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.CallPatchEnable = $localStorage.accountConfig.CallPatchEnable;\r\n vm.bIsMMFInventoryCRM = $localStorage.accountConfig.bIsMMFInventoryCRM;\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n var token = $localStorage.token;\r\n vm.Remarks = '';\r\n vm.selectedTemplates = '';\r\n vm.PaymentStatus = '';\r\n vm.SettlementStatus = '';\r\n vm.disableExceptionButton = false;\r\n vm.readyRaisedI = false;\r\n vm.enableFilters = true;\r\n vm.GroupType = \"\";\r\n vm.actionFlag = false;\r\n vm.editPermission = false;\r\n vm.ticketList = [];\r\n vm.DocumentprofileImg=[];\r\n vm.DocumentbackImg=[];\r\n vm.statusList = [];\r\n vm.reasonsForFU = '';\r\n var fnitemNames = '';\r\n var fnitemValues = '';\r\n vm.DateField = vm.accountConfig.AccountId == 0 ? 'StatusChangedOn' : 'CreatedOn';\r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = '';\r\n vm.primaryHoldReason = '';\r\n vm.primaryHoldRemark = '';\r\n vm.convertNewReasons = '';\r\n vm.convertNewReasonsRemark = '';\r\n vm.MoveSPDbyTwoDays = false;\r\n vm.approvalRemark = '';\r\n vm.RejectionRemark = '';\r\n vm.searchText = \"\";\r\n vm.IsSearch = false;\r\n vm.IsCommissionDetect = false;\r\n $scope.signatureUploadError = false;\r\n $scope.trainingUploadError = false;\r\n $scope.authorizationUploadError = false;\r\n vm.searchStatusText = \"\";\r\n vm.HDAllAccounts = [];\r\n vm.searchJobTypeText = \"\";\r\n vm.SearchByAccountName = \"\";\r\n vm.CustomerList = [];\r\n vm.ProjectList = [];\r\n vm.closureCode = \"\";\r\n vm.CancellationReasons = \"\";\r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n vm.SearchByTContact = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByCName = '';\r\n vm.JobcountbyStatus = \"\";\r\n vm.SearchByTicketId = \"\";\r\n vm.InvoiceStatus = \"\";\r\n vm.previousPage = $localStorage.previousPage;\r\n vm.autoScheduleOn = $localStorage.accountConfig.IsAutoSchedulerOn;\r\n var approveModalInstance = {};\r\n var supervisorId = $localStorage.loggedInUserId;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.loggedInAs = $localStorage.loggedinAs;\r\n vm.aproveMessage = 'Please Rate !';\r\n var itemNames = '';\r\n var itemValues = '';\r\n var templateItemNames = '';\r\n var templateItemValues = '';\r\n var textItemNames = '';\r\n var textItemValues = '';\r\n vm.ticketPageListCount = 10;\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.IsSafetyAudit = 'Not Done';\r\n vm.ratingwarning = \"\";\r\n vm.ticketListLength = 0;\r\n vm.pageindexCount = 0;\r\n vm.SiteAuditFileName = \"\";\r\n vm.TicketDataToRaiseInvoiceList = [];\r\n vm.IsLoadSucessfull = false;\r\n vm.pullBackReasons = '';\r\n vm.pullBackReasonsRemark = '';\r\n vm.IsWithInDays = \"first\";\r\n vm.WithInDaysNumbers = [1, 2, 3, 4, 5];\r\n vm.PlannedClosureDate = \"\";\r\n vm.bulkuploadType = \"Ticket\";\r\n var uPageIndex = 1;\r\n var uPageSize = 10;\r\n var fPageIndex = 1;\r\n var fPageSize = 10;\r\n var fTPageIndex = 1;\r\n var fTPageSize = 10;\r\n $scope.isCollapsed = true;\r\n $localStorage.AllJobStatus = vm.searchStatusText;\r\n vm.UsersType = \"\";\r\n vm.uType = \"\";\r\n var uitemNames = \"\";\r\n var uitemValues = \"\";\r\n vm.searchUsersText = \"\";\r\n vm.jobsCount = '';\r\n vm.userPageListCount = 10;\r\n vm.financePageListCount = 10;\r\n vm.financeTechPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n vm.OrderBy = \"CreatedOn\";\r\n vm.sorttype = \"desc\";\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n // vm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n // vm.ticketranges = {\r\n // 'Today': [moment(), moment()],\r\n // // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n // 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n // 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n // 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n // };\r\n vm.path = \"\";\r\n vm.path = $rootScope.rootScopeMessage;\r\n\r\n var scdt = new Date();\r\n scdt.setMinutes(scdt.getMinutes() + 30);\r\n vm.SourceCreationDate = scdt;\r\n var pcdt = new Date();\r\n pcdt.setDate(pcdt.getDate() + 7);\r\n vm.PlannedClosureDate = pcdt;\r\n\r\n var plannedclosuredatelimit = new Date();\r\n plannedclosuredatelimit.setMinutes(plannedclosuredatelimit.getMinutes() + 1)\r\n vm.ClosureDateTime = { date: '', datepickerOptions: { minDate: plannedclosuredatelimit } };\r\n\r\n vm.ResetFilter = function () {\r\n vm.searchStatusText = \"\";\r\n vm.searchLabText = \"\";\r\n vm.searchJobTypeText = \"\";\r\n vm.DateField = vm.accountConfig.AccountId == 0 ? 'StatusChangedOn' : 'CreatedOn';\r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n vm.SearchByTContact = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByCName = '';\r\n vm.SearchByAccountName = '';\r\n vm.InvoiceStatus = '';\r\n vm.GroupType = 'Individual|Group|WorkOrderGroup'\r\n vm.ProjectListByCustomer = [];\r\n PageIndex = 1;\r\n PageSize = 10;\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }\r\n\r\n\r\n vm.caseDetails = \"\";\r\n\r\n vm.Openresolveraise = function (caseDetail) {\r\n vm.caseDetails = caseDetail;\r\n vm.raiseresolve = $uibModal.open({\r\n templateUrl: 'resolveraise.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n vm.closeraiseresolve = function () {\r\n $scope.isEditable = false;\r\n vm.raiseresolve.close();\r\n }\r\n\r\n\r\n vm.GetAllStates = function () {\r\n CentralHDTicketsViewService.getStates(supervisorId, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.states = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n vm.GetAllStates();\r\n\r\n\r\n vm.trackingStatus = false;\r\n vm.TrackingSidePanel = function (CaseIdForTrack) {\r\n vm.CaseIdForTrack = CaseIdForTrack.CaseId;\r\n vm.trackingStatus = true;\r\n vm.GetAllActivityForTechnicianCase();\r\n }\r\n\r\n vm.GetAllActivityForTechnicianCase = function () {\r\n TechnicianViewService.GetAllActivityForTechnicianCase(vm.CaseIdForTrack, loggedInUserId, token).then(function (resp) {\r\n vm.CaseActivityInfo = resp.data;\r\n });\r\n }\r\n\r\n vm.callToTechnician = function () {\r\n DashboardService.callToTechnicianApi(loggedInUserId, vm.userId, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\")\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", resp.data.Message)\r\n }\r\n }, function () {\r\n })\r\n }\r\n vm.Get360AuthorizedDetail = function () {\r\n vm.userId = userId;\r\n DashboardService.GetAuthorizedServicePartnerDetail(loggedInUserId, userId, token).then(function (resp) {\r\n vm.authorizeDetail = resp.data;\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n vm.Get360AuthorizedDetail();\r\n\r\n vm.getAllAccounts = function () {\r\n CentralHelpdeskConfigService.getAllAccounts(loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.HDAllAccounts = resp.data;\r\n\r\n }\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.getAllAccounts();\r\n vm.OpenDeleteCertificateModal = function (Servicepartnerid) {\r\n vm.servicePartnerId = Servicepartnerid\r\n DeleteCertificate = $uibModal.open({\r\n templateUrl: 'DeleteCertificate.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n \r\n vm.CloseCertificateModal = function () {\r\n vm.disableCreateButton = false;\r\n DeleteCertificate.close();\r\n \r\n }\r\n vm.DeleteAuthorizedServicePartnerByUserId = function () {\r\n var data = {\r\n \"ServicePartnerId\": vm.servicePartnerId,\r\n \"UserId\": userId\r\n }\r\n TechnicianViewService.DeleteAuthorizedServicePartnerByUserId(data, loggedInUserId, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n vm.CloseCertificateModal();\r\n $timeout(function () {\r\n vm.Get360AuthorizedDetail ();\r\n }, 2000)\r\n \r\n }\r\n }, function () {\r\n });\r\n \r\n }\r\n \r\n vm.AddCertificateModelOpen = function (action) {\r\n\t\t\tvm.modalAction = action; // Set the action dynamically\r\n\t\t\tvm.addcertficate = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'AddServiceCertificate.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n\t\t\r\n\t\tvm.CloseAddCertificateModel = function () {\r\n vm.brandName = \"\";\r\n vm.productserving = \"\";\r\n vm.TeamSize = \"\";\r\n vm.Tenure = \"\";\r\n vm.ServiceCenterAddress = \"\";\r\n vm.AuthorizationFileName = \"\";\r\n vm.TrainingFileName = \"\";\r\n vm.PhotoSignatureFileName = \"\";\r\n vm.disableCreateButton = false;\r\n\tvm.addcertficate.close();\r\n\t}\r\n vm.AuthorizationDoc = [];\r\n vm.TrainingDoc = [];\r\n vm.SignatureDoc = [];\r\n\r\n $scope.attachAuthorizationDoc = function(files){ \r\n vm.AuthorizationFileName = \"\";\r\n var file = files.files[0];\r\n vm.AuthorizationFileName = file.name; \r\n vm.AuthorizationDoc = files.files;\r\n $scope.authorizationUploadError = false;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.AuthorizationDoc = [];\r\n angular.element(\"input[name='AuthorizationDocument']\").val(null);\r\n vm.AuthorizationFileName = \"\"; \r\n $scope.authorizationUploadError = true; \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n $scope.filesArray = [{ name: 'AuthorizationDocument', file: file }];\r\n\r\n $scope.uploadFiles();\r\n}\r\n\r\n$scope.attachTrainingDoc = function(files){ \r\n vm.TrainingFileName = \"\";\r\n var file = files.files[0];\r\n vm.TrainingFileName = file.name; \r\n vm.TrainingDoc = files.files;\r\n $scope.trainingUploadError = false;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.TrainingDoc = [];\r\n angular.element(\"input[name='TrainingDocument']\").val(null);\r\n vm.TrainingFileName = \"\"; \r\n $scope.trainingUploadError = true; \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n $scope.filesArray = [{ name: 'TrainingDocument', file: file }];\r\n\r\n $scope.uploadFiles();\r\n}\r\n$scope.attachPhotoOfSignature = function(files){ \r\n vm.PhotoSignatureFileName = \"\";\r\n var file = files.files[0];\r\n vm.PhotoSignatureFileName = file.name; \r\n vm.SignatureDoc = files.files;\r\n $scope.signatureUploadError = false;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.SignatureDoc = [];\r\n vm.clear();\r\n angular.element(\"input[name='PhotoOfshopSignature']\").val(null);\r\n vm.PhotoSignatureFileName = \"\"; \r\n $scope.signatureUploadError = true; \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n $scope.filesArray = [{ name: 'PhotoOfshopSignature', file: file }];\r\n $scope.uploadFiles();\r\n}\r\n\r\n\r\n \r\nvm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n};\r\n\r\n\r\n$scope.uploadFiles = function () {\r\n if ($scope.filesArray.length == 0) {\r\n alert('No files to upload.');\r\n return;\r\n }\r\n\r\n var formData = new FormData();\r\n $scope.filesArray.forEach(function (fileObj) {\r\n if (fileObj.file) {\r\n formData.append(fileObj.name, fileObj.file);\r\n }\r\n });\r\n\r\n TechnicianViewService.UploadMedia(formData, loggedInUserId, token)\r\n .then(function (resp) {\r\n if (resp.data && resp.status === 201) {\r\n // alert('Files uploaded successfully.');\r\n $scope.filesArray = []; // Clear files array after successful upload\r\n } else {\r\n alert('An error occurred while uploading the files.');\r\n }\r\n })\r\n \r\n }\r\n $scope.authorizationUploadError = false;\r\n $scope.trainingUploadError = false;\r\n $scope.signatureUploadError = false;\r\nvm.AddAuthorizedServicePartnerDetail = function () {\r\n vm.dialertask_form.submitted = true;\r\n $scope.authorizationUploadError = false;\r\n $scope.trainingUploadError = false;\r\n $scope.signatureUploadError = false;\r\n\r\n if (!vm.AuthorizationFileName) {\r\n $scope.authorizationUploadError = true;\r\n }\r\n\r\n if (!vm.TrainingFileName) {\r\n $scope.trainingUploadError = true;\r\n }\r\n\r\n if (!vm.PhotoSignatureFileName) {\r\n $scope.signatureUploadError = true;\r\n }\r\n\r\n if ($scope.authorizationUploadError || $scope.trainingUploadError || $scope.signatureUploadError) {\r\n return;\r\n }\r\n\r\n if (vm.dialertask_form.$valid) {\r\n vm.disableCreateButton = true;\r\n var dataToSend = {\r\n \"ServicePartnerId\" :\"\",\r\n \"UserId\": vm.userId,\r\n \"BrandName\":vm.brandName,\r\n \"BrandNameOther\" :\"\",\r\n \"Tenure\":vm.Tenure,\r\n \"ProductServing\" :vm.productserving,\r\n // \"ProductServingOther\":vm.addproductserving,\r\n \"TeamSize\" :vm.TeamSize,\r\n \"CertificateOfAuthorization\":vm.AuthorizationFileName,\r\n \"TrainingCertificate\" :vm.TrainingFileName,\r\n \"ServiceCenterAddress\":vm.ServiceCenterAddress,\r\n \"PhotoOfWorkPlace\" :vm.PhotoSignatureFileName\r\n \r\n }\r\n TechnicianViewService.AddAuthorizedServicePartnerForWeb(dataToSend,loggedInUserId, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseAddCertificateModel();\r\n $timeout(function () {\r\n vm.Get360AuthorizedDetail();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.disableCreateButton = false;\r\n\r\n }\r\n }, vm.showFailure);\r\n }\r\n}\r\n vm.GetAllActivitiesForUser = function () {\r\n OnBoardingFlowService.GetAllActivitiesForUser(userId, loggedInUserId, token).then(function (resp) {\r\n vm.UserActivityInfo = resp.data;\r\n });\r\n }\r\n vm.GetAllActivitiesForUser();\r\n\r\n\r\n vm.GetNewPincodeOfSelectedSkill = function (skill) {\r\n vm.newselectedSKill = skill;\r\n angular.forEach(vm.PincodeNewOpportunityModelList, function (newskillset) {\r\n if (newskillset.SkillName == vm.newselectedSKill) {\r\n vm.newPincodeSet = newskillset.PincodeOpportunityModelList;\r\n }\r\n\r\n });\r\n }\r\n vm.GetPincodeOfSelectedSkill = function (skill) {\r\n vm.selectedSKill = skill;\r\n angular.forEach(vm.PincodeExistingOpportunityModelList, function (skillset) {\r\n if (skillset.SkillName == vm.selectedSKill) {\r\n vm.existingPincodeSet = skillset.PincodeOpportunityModelList;\r\n }\r\n\r\n });\r\n }\r\n\r\n vm.GetSkillRecommendationsForUser = function () {\r\n vm.newPincodeSet = [];\r\n vm.existingPincodeSet = [];\r\n TechnicianViewService.GetSkillRecommendationsForUser(userId, loggedInUserId, token).then(function (resp) {\r\n vm.recommendationData = resp.data;\r\n vm.PincodeExistingOpportunityModelList = resp.data.PincodeExistingOpportunityModelList;\r\n vm.PincodeNewOpportunityModelList = resp.data.PincodeNewOpportunityModelList;\r\n })\r\n }\r\n\r\n vm.getAllJobTicketsCopy = function (supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize) {\r\n var templateCols = \"\";\r\n PageIndex = PageIndex ? PageIndex : 1;\r\n vm.DateField = vm.DateField ? vm.DateField : \"CreatedOn\";\r\n // vm.DateField= vm.accountConfig.AccountId == 0 ? vm.DateField : 'CreatedOn';\r\n CentralHDTicketsViewService.getAllJobTicketsCopy(supervisorId, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, vm.DateField, PageIndex, PageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n $scope.totalTableUsers = resp.data.Count;\r\n $scope.totalTableBundles = resp.data.Count;\r\n vm.ApprovedJobCount = resp.data.ApprovedJobCount;\r\n vm.AssignJobCount = resp.data.AssignJobCount;\r\n vm.BroadcastJobCount = resp.data.BroadcastJobCount;\r\n vm.CancelJobCount = resp.data.CancelJobCount;\r\n vm.CompleteJobCount = resp.data.CompleteJobCount;\r\n vm.TotalJobCount = resp.data.TotalJobCount;\r\n vm.HoldJobCount = resp.data.HoldJobCount;\r\n vm.InTransitJobCount = resp.data.InTransitJobCount;\r\n vm.OnSiteJobCount = resp.data.OnSiteJobCount;\r\n vm.InProgressJobCount = resp.data.InProgressJobCount;\r\n vm.CancelCustomerVerified = resp.data.CancelCustomerVerified;\r\n vm.NewJobCount = resp.data.NewJobCount;\r\n vm.ReadyToAssigJobCount = resp.data.ReadyToAssigJobCount;\r\n vm.RejectedJobCount = resp.data.RejectedJobCount;\r\n vm.ScheduleExceptionJobCount = resp.data.ScheduleExceptionJobCount;\r\n vm.AddressExceptionCount = resp.data.AddressExceptionCount;\r\n vm.PriceExceptionCount = resp.data.PriceExceptionCount;\r\n vm.ItemInventoryRaised = resp.data.ItemInventoryRaised;\r\n vm.ItemInventoryDelivered = resp.data.ItemInventoryDelivered;\r\n vm.InvoiceRaisedCount = resp.data.InvoiceRaisedCount;\r\n vm.InvoiceNotRaisedCount = resp.data.InvoiceNotRaisedCount;\r\n vm.BroadcastCountTickets = resp.data.BroadcastCountTickets;\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n\r\n }\r\n\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.enableFilters = true;\r\n\r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/JOb_icon.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/delivery-man1.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n\r\n\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n };\r\n\r\n vm.DocEdit = function (index) {\r\n vm.followFiles = null;\r\n }\r\n\r\n vm.pdfimage = \"\";\r\n\r\n vm.PDFView = function (page) {\r\n MainService.GetImageBlob(loggedInUserId, token, page).then(function(resp) {\r\n \r\n vm.pdfimage = resp.data;\r\n });\r\n $scope.selected = null;\r\n $timeout(function(){\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size :'lg',\r\n scope: $scope\r\n });\r\n },1000)\r\n \r\n } \r\n vm.PDFUserModal = function () {\r\n jobAppointmentModal.close();\r\n }\r\n\r\n function base64ToArrayBuffer(base64) {\r\n var ret = base64.replace('data:application/pdf;base64,', '');\r\n var binaryString = atob(ret);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n }\r\n\r\n\r\n vm.getSkills = function () {\r\n CentralHDTicketsViewService.getSkills(loggedInUserId, token, function (skills) {\r\n vm.skills = skills;\r\n //vm.skills.unshift({ \"SkillName\": \"All Job Types\" }); \r\n if (vm.path == 'isTicketView') {\r\n vm.searchJobTypeText = $localStorage.AllJobType;\r\n // vm.searchStatusText = $localStorage.AllJobStatus;\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.getSkills();\r\n\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n };\r\n\r\n\r\n //calendar PO update\r\n var d = new Date();\r\n var year = d.getFullYear();\r\n var month = d.getMonth() + 1;\r\n if (month < 10) {\r\n month = \"0\" + month;\r\n }\r\n var day = d.getDate();\r\n $scope.date = year + \"-\" + month + \"-\" + day;\r\n //\r\n\r\n vm.expandAll = function (expanded) {\r\n $scope.$broadcast('onExpandAll', {\r\n expanded: expanded\r\n });\r\n }\r\n\r\n\r\n vm.DocumentimageServices = function (img, index) {\r\n MainService.GetImageBlob(loggedInUserId, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.DocumentprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.DocumentprofileImg[index] = resp.data;\r\n }\r\n }, function () {\r\n vm.DocumentprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n\r\n }\r\n\r\n vm.DocumentimagebackServices = function (img, index) {\r\n MainService.GetImageBlob(loggedInUserId, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.DocumentbackImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.DocumentbackImg[index] = resp.data;\r\n }\r\n }, function () {\r\n vm.DocumentbackImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n\r\n }\r\n\r\n vm.aadhaarImageServices = function (img) {\r\n MainService.GetImageBlob(loggedInUserId, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.adhaarImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.adhaarImg = resp.data;\r\n }\r\n }, function () {\r\n vm.adhaarImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.cancelledImageServices = function (img) {\r\n MainService.GetImageBlob(loggedInUserId, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.cancelledChequeImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.cancelledChequeImg = resp.data;\r\n }\r\n }, function () {\r\n vm.cancelledChequeImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.applicationformImageServices = function (img) {\r\n MainService.GetImageBlob(loggedInUserId, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.applicationFormImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.applicationFormImg = resp.data;\r\n }\r\n }, function () {\r\n vm.applicationFormImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.gstImageServices = function (img) {\r\n MainService.GetImageBlob(loggedInUserId, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.GSTImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.GSTImg = resp.data;\r\n }\r\n }, function () {\r\n vm.GSTImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.panCardImageServices = function (img) {\r\n MainService.GetImageBlob(loggedInUserId, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.panCardImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.panCardImg = resp.data;\r\n }\r\n }, function () {\r\n vm.panCardImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.payoutImageServices = function (img) {\r\n MainService.GetImageBlob(loggedInUserId, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.payoutImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.payoutImg = resp.data;\r\n }\r\n }, function () {\r\n vm.payoutImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.ShopLicenseImageServices = function (img) {\r\n MainService.GetImageBlob(loggedInUserId, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.licenseImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.licenseImg = resp.data;\r\n }\r\n }, function () {\r\n vm.licenseImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.tanNoImageServices = function (img) {\r\n MainService.GetImageBlob(loggedInUserId, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.tanNoImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.tanNoImg = resp.data;\r\n }\r\n }, function () {\r\n vm.tanNoImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n\r\n vm.Get360TeamProfileData = function () {\r\n vm.userId = userId;\r\n DashboardService.Get360ProfileData(loggedInUserId, userId, token).then(function (resp) {\r\n vm.teamdata = resp.data;\r\n vm.AvgRating = vm.teamdata.userProfile.AverageRating;\r\n vm.ReviewsList = vm.teamdata.userProfile.Reviews\r\n if (vm.teamdata.userProfile.Ratings) {\r\n vm.teamdata.ratingStars = vm.getRatingStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.blankStars = vm.getBlankStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n }\r\n vm.teamdata.avgratingStars = vm.getAvgRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.avgblankStars = vm.getAvgBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n if (vm.teamdata.userProfile.ContactNumber && vm.CallPatchEnable) {\r\n vm.teamdata.userProfile.ContactNumber = vm.teamdata.userProfile.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n\r\n if(vm.teamdata.userProfile.videokycName != '') {\r\n vm.videokyc = vm.teamdata.userProfile.videokycName;\r\n }\r\n\r\n if (vm.teamdata.userProfile.Reviews) {\r\n vm.teamdata.userProfile.Reviews.forEach(function (element, i) {\r\n vm.teamdata.userratingStars = vm.getUserRatingStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n vm.teamdata.userblankStars = vm.getUserBlankStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n element.arrayRating = vm.teamdata.userratingStars;\r\n element.blankRating = vm.teamdata.userblankStars;\r\n });\r\n }\r\n\r\n if(vm.teamdata.userProfile.BGVerificationDocPath) {\r\n for(var i=0;i 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n } else {\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n }\r\n }\r\n\r\n if (vm.userskill) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',Skill';\r\n uitemValues = uitemValues + \",\" + vm.userskill;\r\n }\r\n else {\r\n uitemNames = 'Skill';\r\n uitemValues = vm.userskill;\r\n }\r\n }\r\n if (vm.userNameSearch) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.userNameSearch;\r\n }\r\n else {\r\n uitemNames = 'Search';\r\n uitemValues = vm.userNameSearch;\r\n }\r\n }\r\n\r\n if (vm.PermanentState) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',State';\r\n uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n }\r\n else {\r\n uitemNames = 'State';\r\n uitemValues = vm.PermanentState;\r\n }\r\n }\r\n if (vm.SearchByTicketId) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',TicketId';\r\n uitemValues = uitemValues + \",\" + vm.SearchByTicketId;\r\n }\r\n else {\r\n uitemNames = 'TicketId';\r\n uitemValues = vm.SearchByTicketId;\r\n }\r\n }\r\n\r\n if (vm.JobcountbyStatus) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',Status';\r\n uitemValues = uitemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else {\r\n uitemNames = 'Status';\r\n uitemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n if (vm.PermanentState && vm.PermanentCity) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.PermanentCity;\r\n }\r\n else {\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.UsersType;\r\n }\r\n }\r\n\r\n\r\n if (vm.UsersType == \"Freelancer\") {\r\n vm.uType = \"Freelancer\";\r\n }\r\n else if (vm.UsersType == \"Freelancer Vendor\") {\r\n vm.uType = \"Freelancer\";\r\n }\r\n else if (vm.UsersType == \"Freelancer Team\") {\r\n vm.uType = \"Fixed\";\r\n }\r\n else {\r\n vm.uType = \"\";\r\n vm.UsersType = '';\r\n }\r\n\r\n }\r\n\r\n\r\n // apply user rating to all displays\r\n // add star ratings to an array\r\n var starRating = document.querySelectorAll(\".fa-star\"),\r\n ratingTotal = document.querySelectorAll(\".rating-total\");\r\n\r\n // convert ratingTotal HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n // display initial rating totals\r\n // displayTotals();\r\n\r\n // use event listener to record changes to user rating\r\n starRating.forEach(function (star) {\r\n star.addEventListener(\"change\", recordRating);\r\n })\r\n\r\n function recordRating(event) {\r\n // use indexOf to identify selected user rating\r\n var userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n // define selected rating to adjust display totals\r\n var selectedIndex;\r\n\r\n starRating.forEach(function (item, index) {\r\n // add or remove .active class based upon selected user rating\r\n if (index < userRating + 1) {\r\n starRating[index].classList.add(\"active\");\r\n selectedIndex = index;\r\n } else {\r\n starRating[index].classList.remove(\"active\");\r\n }\r\n\r\n displayTotals(selectedIndex);\r\n });\r\n }\r\n vm.countForStatus = 50;\r\n // display star rating totals from html custom data-\r\n function displayTotals(selectedIndex) {\r\n var barChart = document.querySelectorAll(\".bar\"),\r\n displaySummary = document.querySelectorAll(\".summary\"),\r\n numRatings = 0,\r\n numRatingsValue = 0;\r\n\r\n // convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseBarChart = Array.from(barChart).reverse();\r\n\r\n reverseRatingTotal.forEach(function (total, index) {\r\n if (index == selectedIndex) {\r\n // add selected rating to display total\r\n total.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n // adjust selected bar width\r\n reverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n } else {\r\n // display unselected totals\r\n total.innerHTML = total.getAttribute(\"data-rating-count\");\r\n // adjust unselected bar widths\r\n reverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n }\r\n // count total number and value of ratings\r\n numRatings += parseInt(total.innerHTML);\r\n numRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n });\r\n\r\n // display rating average and total\r\n ratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n // displaySummary[0].innerHTML = ratingsAverage + \" average based on \" + numRatings + \" reviews.\";\r\n }\r\n\r\n // FOR MINIATURE DASHBOARD START\r\n\r\n vm.Get360VendorTeamData = function () {\r\n // vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedInUserId, userId, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n vm.createwidget = function () {\r\n vm.widgetcreate = $uibModal.open({\r\n templateUrl: 'createwidget.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n vm.closecreatewidet = function () {\r\n vm.IssueDescription = \"\";\r\n vm.selectedCategory = \"\";\r\n vm.selectedSubcategory = \"\";\r\n vm.widgetcreate.close();\r\n }\r\n vm.consumers = [];\r\n\r\n\r\n vm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedInUserId, token, vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate, vm.OrderBy, vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.UserByFiltersList = resp.data.workSummaryData;\r\n $scope.totalUsers = resp.data.WorkSummaryTotalCount;\r\n if (vm.UserByFiltersList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = uPageIndex * vm.userPageListCount;\r\n if (uPageIndex == 1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n\r\n vm.getFileType = function (url) {\r\n if (url == null || url == \"\") {\r\n return \"others\";\r\n }\r\n else {\r\n if (url.indexOf(\".jpg\") >= 0 || url.indexOf(\".jpeg\") >= 0 || url.indexOf(\".png\") >= 0 || url.indexOf(\".bmp\") >= 0 || url.indexOf(\".JPG\") >= 0 || url.indexOf(\".JPEG\") >= 0 || url.indexOf(\".PNG\") >= 0 || url.indexOf(\".BMP\") >= 0) {\r\n return \"image\";\r\n } else if (url.indexOf(\".pdf\") >= 0 || url.indexOf(\".PDF\") >= 0) {\r\n return \"pdf\";\r\n } else if (url.indexOf(\".xls\") >= 0 || url.indexOf(\".xlsx\") >= 0 || url.indexOf(\".XLS\") >= 0 || url.indexOf(\".XLSX\") >= 0) {\r\n return \"xls\";\r\n } else if (url.indexOf(\".doc\") >= 0 || url.indexOf(\".docx\") >= 0 || url.indexOf(\".DOC\") >= 0 || url.indexOf(\".DOCX\") >= 0) {\r\n return \"doc\";\r\n }\r\n else {\r\n return \"others\";\r\n }\r\n }\r\n }\r\n\r\n vm.Get360SkillSummary = function () {\r\n // vm.userId = teamid;\r\n DashboardService.Get360SkillSummary(loggedInUserId, userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for (var i = 0; i < vm.skillsetData.CertificateDetails.length; i++) {\r\n vm.CertimageServices(vm.skillsetData.CertificateDetails[i].TrainingCertificate, i);\r\n }\r\n\r\n if (vm.skillsetData.PreviousCompanyDetailsList) {\r\n for (var i = 0; i < vm.skillsetData.PreviousCompanyDetailsList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter) == 'image')\r\n vm.PreviousCompnyExperienceLetterServices(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter, i);\r\n }\r\n }\r\n\r\n if (vm.skillsetData.UserTrainingList) {\r\n for (var i = 0; i < vm.skillsetData.UserTrainingList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingImage) == 'image')\r\n vm.TrainingImageServices(vm.skillsetData.UserTrainingList[i].TrainingImage, i);\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingAttendance) == 'image')\r\n vm.TrainingAttendanceServices(vm.skillsetData.UserTrainingList[i].TrainingAttendance, i);\r\n }\r\n\r\n }\r\n\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n vm.GetReviewAndRatings = function () {\r\n // vm.userId = teamid;\r\n DashboardService.GetReviewAndRatings(loggedInUserId, userId, token).then(function (resp) {\r\n vm.reviewData = resp.data;\r\n if(vm.reviewData.behaviourRating.InstallationService_Avrage){\r\n vm.users.InstallationratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.users.InstallationblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n }\r\n if(vm.reviewData.behaviourRating.SafetyProtocols_Avrage){\r\n vm.users.SafetyratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.users.SafetyblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n }\r\n if(vm.reviewData.behaviourRating.VisitonTime_Avrage){\r\n vm.users.VisitratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.users.VisitblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n }\r\n if(vm.reviewData.behaviourRating.CourteousRespectful_Avrage){\r\n vm.users.CourteousratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.users.CourteousblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n }\r\n if(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage){\r\n vm.users.ProratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.users.ProblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n }\r\n if(vm.reviewData.behaviourRating.ServiceExperience_Avrage){\r\n vm.users.ServiceratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n vm.users.ServiceblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n }\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n\r\n // vm.Get360VendorTeamData = function (teamid) {\r\n // vm.userId = teamid;\r\n // DashboardService.Get360VendorTeamData(loggedInUserId, vm.userId, token).then(function (resp) {\r\n // vm.vendorteam = resp.data;\r\n // })\r\n // }\r\n\r\n\r\n vm.GetLastFollowUpOnTicketId = function (teamid) {\r\n vm.userId = teamid;\r\n vm.FollowupListArr = [];\r\n DashboardService.GetLastFollowUpOnTicketId(loggedInUserId, vm.userId, token).then(function (resp) {\r\n vm.followupdata = resp.data;\r\n angular.forEach(vm.followupdata, function (fdetail, i) {\r\n if (fdetail != null) {\r\n angular.forEach(vm.followupdata[i].FollowUpOnTicket, function (fdetail, i) {\r\n vm.FollowupList = fdetail.FollowUpOnTicket;\r\n vm.FollowupListArr.push(fdetail);\r\n })\r\n\r\n }\r\n })\r\n })\r\n }\r\n\r\n vm.GetToolsAndAssets = function () {\r\n // vm.userId = teamid;\r\n DashboardService.GetToolsAndAssets(loggedInUserId, userId, token).then(function (resp) {\r\n vm.assetData = resp.data;\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.OpenDeactivateConfirmationModel = function () {\r\n vm.openDeactivateModel = $uibModal.open({\r\n templateUrl: 'deactivateModel.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n vm.closeDeactivateModel = function () {\r\n vm.openDeactivateModel.close();\r\n vm.DeactivationRemark = \"\";\r\n }\r\n\r\n\r\n vm.DeActivateUserWithRemark = function () {\r\n vm.Deactivation_Form.submitted = true;\r\n if (vm.Deactivation_Form.$valid) {\r\n var data = {\r\n \"UserId\": userId,\r\n \"BlockComment\": vm.DeactivationRemark\r\n }\r\n TechnicianViewService.DeActivateUserWithRemark(data, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.closeDeactivateModel();\r\n $timeout(function () {\r\n vm.Get360TeamProfileData();\r\n }, 2000)\r\n\r\n }\r\n }, function () {\r\n });\r\n }\r\n }\r\n\r\n\r\n vm.OpenSkillRemovalConfirmationModel = function (skill) {\r\n vm.skillToBeDeleted = skill;\r\n vm.openSkillRemovalModel = $uibModal.open({\r\n templateUrl: 'skillRemovalModel.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n vm.closeSkillRemovalModel = function () {\r\n vm.openSkillRemovalModel.close();\r\n }\r\n\r\n vm.OpenPincodeUpdateModel = function (location) {\r\n vm.UpdatedPincodeSet = [];\r\n if(location){\r\n vm.UpdatedPincodeSet = location;\r\n }\r\n vm.openPincodeEditModel = $uibModal.open({\r\n templateUrl: 'pincodeRemovalModel.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n vm.closePincodeUpdateModel = function () {\r\n vm.openPincodeEditModel.close();\r\n }\r\n\r\n\r\n \r\n // vm.OpeSkillUpdateModel = function (skill) {\r\n // vm.UpdatedSkillSet = [];\r\n // if(skill){\r\n // angular.forEach(skill, function(newskillset){\r\n // vm.UpdatedSkillSet.push(newskillset.Skill);\r\n // });\r\n // }\r\n // vm.openSkillEditModel = $uibModal.open({\r\n // templateUrl: 'skillUpdateModel.html',\r\n // backdrop: 'static',\r\n // size: 'md',\r\n // scope: $scope\r\n // });\r\n // }\r\n // vm.closeSkillUpdateModel = function () {\r\n // vm.openSkillEditModel.close();\r\n // }\r\n\r\n\r\n vm.OpeSkillUpdateModel = function (skill) {\r\n vm.UpdatedSkillSet = skill;\r\n if(skill){\r\n angular.forEach(skill, function(newskillset){\r\n vm.UpdatedSkillSet.push(newskillset);\r\n });\r\n }\r\n vm.openSkillEditModel = $uibModal.open({\r\n templateUrl: 'skillUpdateModel.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n vm.closeSkillUpdateModel = function () {\r\n vm.openSkillEditModel.close();\r\n }\r\n\r\n \r\n vm.skillsArray = [];\r\n vm.getAllSkill = function () {\r\n TeamFormCreationService.getAllSkills(loggedInUserId, token).then(function (resp) {\r\n vm.SkillList = resp.data; \r\n for (var index = 0; index < vm.SkillList.length; index++) { \r\n vm.skillsArray.push(vm.skills[index].SkillName);\r\n }\r\n }); \r\n }\r\n\r\n\r\n \r\n vm.deleteSkillFromUser = function () {\r\n var data = {\r\n \"UserId\": userId,\r\n \"action\": \"Skill\",\r\n \"pincode\": \"\",\r\n \"skill\": vm.skillToBeDeleted,\r\n \"accountId\": \"\"\r\n }\r\n TechnicianViewService.UpdatePincodeSkillAccountId(data, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Skill removed successfully.\");\r\n vm.closeSkillRemovalModel();\r\n $timeout(function () {\r\n vm.Get360TeamProfileData();\r\n }, 2000)\r\n\r\n }\r\n }, function () {\r\n });\r\n \r\n }\r\n\r\n vm.UpdatePincodesInUserProfile = function () {\r\n var data = {\r\n \"UserId\": userId,\r\n \"action\": \"PincodeList\",\r\n \"pincode\": \"\",\r\n \"skill\": \"\",\r\n \"accountId\": \"\",\r\n \"pincodeList\": vm.UpdatedPincodeSet\r\n }\r\n TechnicianViewService.UpdatePincodeSkillAccountId(data, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Pincodes updated successfully.\");\r\n vm.closePincodeUpdateModel();\r\n $timeout(function () {\r\n vm.Get360TeamProfileData();\r\n }, 2000)\r\n\r\n }\r\n }, function () {\r\n });\r\n \r\n }\r\n\r\n\r\n vm.UpdateUserSkillS = function () {\r\n var data = {\r\n \"UserId\": userId,\r\n \"SkillSet\": vm.UpdatedSkillSet\r\n }\r\n TechnicianViewService.UpdateUserSkillS(data, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Skills updated successfully.\");\r\n vm.closeSkillUpdateModel();\r\n $timeout(function () {\r\n vm.Get360TeamProfileData();\r\n }, 2000)\r\n\r\n }\r\n }, function () {\r\n });\r\n \r\n}\r\n\r\n vm.OpenRefundConfirmationModel = function () {\r\n vm.openRefundModel = $uibModal.open({\r\n templateUrl: 'refundModel.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n vm.closeRefundModel = function () {\r\n vm.disableRejectButton = false;\r\n vm.openRefundModel.close();\r\n }\r\n vm.disableRejectButton = false;\r\n vm.ReturnPrimeMemberAmount = function () {\r\n vm.disableRejectButton = true;\r\n TechnicianViewService.ReturnPrimeMemberAmount(loggedInUserId, userId, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n vm.closeRefundModel();\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.Get360TeamProfileData();\r\n }\r\n else {\r\n vm.disableRejectButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n\r\n\r\n vm.UpdatedCaseForTechnician = function () {\r\n var dataToUpdate = {\r\n \"UserId\": vm.userId,\r\n \"CaseId\": vm.CaseId,\r\n \"CaseResolution\": vm.CaseResolution,\r\n \"CaseStatus\": vm.CaseStatus,\r\n \"IssueDescription\": vm.IssueDescription,\r\n \"IssueRelatedTo\": vm.updatedCategory,\r\n \"ActualIssue\": vm.updatedSubCategory,\r\n \"ProductOrService\": \"\",\r\n \"AssigneToTeam\": vm.AssignedTo,\r\n \"AssignToDepartment\": vm.DepartmentAssignedTo\r\n }\r\n TechnicianViewService.UpdateCaseForTechnician(dataToUpdate, loggedInUserId, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.closeraiseresolve();\r\n $timeout(function () {\r\n vm.GetAllCasesForTechnician();\r\n }, 2000)\r\n }\r\n\r\n else {\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // Pincode Finder code\r\n\r\n\r\n\r\n\r\n var pitemValues = \"Approved|Completed\";\r\n\r\n\r\n vm.ticketdates = { startDate: moment().subtract(5, 'years'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n $scope.ticketFilters = {\r\n Approved: true,\r\n Cancelled: false,\r\n Completed: true,\r\n Assigned: false\r\n };\r\n\r\n $scope.pincodeFilters = {\r\n InProfileNoJobs: true,\r\n InProfileWithJobs: true,\r\n NotInProfileWithJobs: true,\r\n NotInProfileNoJobs: true\r\n };\r\n\r\n $scope.sortType = ''; // Default sorting column\r\n $scope.sortReverse = false; // Default sorting order\r\n\r\n $scope.sortBy = function (column) {\r\n if ($scope.sortType === column) {\r\n $scope.sortReverse = !$scope.sortReverse;\r\n } else {\r\n $scope.sortType = column;\r\n $scope.sortReverse = false;\r\n }\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.GetPinCodesAndJobInfo();\r\n };\r\n\r\n NgMap.getMap().then(function (map) {\r\n vm.map = map;\r\n });\r\n\r\n vm.getRadius = function (num) {\r\n return Math.sqrt(num) * 100;\r\n }\r\n\r\n vm.backprvpage = function () {\r\n $state.go('index.AllUsersList', {\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n const freelancer = {\r\n url: \"../../assets/images/patterns/FL.png\"\r\n };\r\n const vendor = {\r\n url: \"../../assets/images/patterns/FV.png\"\r\n };\r\n const vendorTeam = {\r\n url: \"../../assets/images/patterns/FVT.png\"\r\n };\r\n\r\n vm.highlightRow = function (pincode) {\r\n $scope.selectedPincode = pincode;\r\n };\r\n\r\n\r\n vm.showMapWithUser = function () {\r\n NgMap.getMap().then(function (map) {\r\n if (vm.techData) {\r\n if (vm.techData.Role == 'Field Engineer') {\r\n icons = freelancer\r\n }\r\n else if (vm.techData.Role == 'Vendor Manager') {\r\n icons = vendor\r\n }\r\n else if (vm.techData.Role == 'Fixed Team') {\r\n icons = vendorTeam\r\n }\r\n var latLng = new google.maps.LatLng(vm.techData.FixedLatitude, vm.techData.FixedLongitude);\r\n const marker = new google.maps.Marker({ position: latLng, icon: icons });\r\n const contentString = \"

\" + vm.techData.Role + \"

Name: \" + vm.techData.FirstName + ' ' + vm.techData.LastName + \"SkillSet: \" + vm.techData.SkillSet + \"Address: \" + vm.techData.CurrentAdd1 + ' ' + vm.techData.CurrentAdd2 + \"City: \" + vm.techData.City + \"State: \" + vm.techData.CurrentState + \"Pincode: \" + vm.techData.CurrentPinCode + \"GeoLocation: \" + vm.techData.FixedGeoLocation + \"
\";\r\n var infowindow = new google.maps.InfoWindow({ content: contentString });\r\n marker.addListener(\"click\", function () {\r\n infowindow.open(map, marker);\r\n });\r\n marker.setMap(map);\r\n map.panTo(latLng);\r\n map.setZoom(12);\r\n if ((vm.techData.FixedLatitude != 0) && (vm.techData.FixedLongitude != 0)) {\r\n vm.GetMaxJobServedDistance();\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n $scope.onSliderMouseUp = function () {\r\n vm.GetPinCodesAndJobInfo();\r\n };\r\n\r\n function clearTicketMarkers() {\r\n for (var i = 0; i < ticketMarkers.length; i++) {\r\n ticketMarkers[i].setMap(null);\r\n }\r\n }\r\n\r\n function clearPinCodeMarkers() {\r\n for (var i = 0; i < pinCodeMarkers.length; i++) {\r\n pinCodeMarkers[i].setMap(null);\r\n }\r\n }\r\n\r\n function deleteTicketMarkers() {\r\n clearTicketMarkers();\r\n ticketMarkers = [];\r\n }\r\n\r\n function deletePinCodeMarkers() {\r\n clearPinCodeMarkers();\r\n pinCodeMarkers = [];\r\n }\r\n\r\n const pincodesWithJobsInProfile = {\r\n url: \"https://maps.google.com/mapfiles/ms/micons/green-dot.png\"\r\n };\r\n const pincodesWithoutJobsInProfile = {\r\n url: \"https://maps.google.com/mapfiles/ms/micons/orange-dot.png\"\r\n };\r\n const pincodesNotExist = {\r\n url: \"https://maps.google.com/mapfiles/ms/micons/red-dot.png\"\r\n }\r\n const pincodesWithJobsNotInProfile = {\r\n url: \"https://maps.google.com/mapfiles/ms/micons/blue-dot.png\"\r\n }\r\n\r\n\r\n var ticketMarkers = [];\r\n var pinCodeMarkers = [];\r\n var bouncingMarker = null;\r\n vm.showMapWithTechBasedOnPincodes = function () {\r\n NgMap.getMap().then(function (map) {\r\n $scope.infoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n var circleCenter = new google.maps.LatLng(vm.techData.FixedLatitude, vm.techData.FixedLongitude);\r\n var circleRadius = vm.DistanceBetween * 1000;\r\n // Remove previous circle if it exists\r\n if (vm.circle) {\r\n vm.circle.setMap(null);\r\n }\r\n // Create a circle\r\n vm.circle = new google.maps.Circle({\r\n strokeColor: '#00FF00', // Green color\r\n strokeOpacity: 0.8,\r\n strokeWeight: 2,\r\n fillColor: '#00FF00',\r\n fillOpacity: 0.35,\r\n map: map,\r\n center: circleCenter,\r\n radius: circleRadius,\r\n });\r\n for (var i = 0; i < vm.userslistbyTkt.length; i++) {\r\n var data = vm.userslistbyTkt[i]\r\n var myLatlng = new google.maps.LatLng(data.Latitude, data.Longitude);\r\n if ($scope.pincodeFilters.InProfileNoJobs && data.InProfile && data.JobCount == 0) {\r\n var icon = pincodesWithoutJobsInProfile;\r\n marker = new google.maps.Marker({\r\n position: myLatlng,\r\n map: map,\r\n icon: icon\r\n });\r\n }\r\n if ($scope.pincodeFilters.InProfileWithJobs && data.InProfile && data.JobCount > 0) {\r\n var icon = pincodesWithJobsInProfile;\r\n marker = new google.maps.Marker({\r\n position: myLatlng,\r\n map: map,\r\n icon: icon\r\n });\r\n }\r\n if ($scope.pincodeFilters.NotInProfileWithJobs && data.JobCount > 0 && !data.InProfile) {\r\n var icon = pincodesWithJobsNotInProfile;\r\n marker = new google.maps.Marker({\r\n position: myLatlng,\r\n map: map,\r\n icon: icon\r\n });\r\n }\r\n if ($scope.pincodeFilters.NotInProfileNoJobs && data.JobCount == 0 && !data.InProfile) {\r\n var icon = pincodesNotExist;\r\n marker = new google.maps.Marker({\r\n position: myLatlng,\r\n map: map,\r\n icon: icon\r\n });\r\n }\r\n pinCodeMarkers.push(marker);\r\n (function (marker, data, index) {\r\n google.maps.event.addListener(marker, \"click\", function (e) {\r\n if (bouncingMarker && bouncingMarker !== marker) {\r\n bouncingMarker.setAnimation(null);\r\n }\r\n toggleBounce(marker);\r\n bouncingMarker = marker;\r\n $scope.$apply(function () {\r\n $scope.selectedMarkerIndex = index;\r\n vm.scrollToRow(index);\r\n });\r\n });\r\n })(marker, data, i);\r\n $scope.Latlngbounds.extend(marker.position);\r\n map.fitBounds($scope.Latlngbounds);\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n $scope.openInfoWindow = function (index) {\r\n if (pinCodeMarkers[index] && vm.userslistbyTkt[index]) {\r\n var marker = pinCodeMarkers[index];\r\n var data = vm.userslistbyTkt[index];\r\n if (bouncingMarker && bouncingMarker !== marker) {\r\n bouncingMarker.setAnimation(null);\r\n }\r\n toggleBounce(marker);\r\n bouncingMarker = marker;\r\n $scope.selectedMarkerIndex = index;\r\n }\r\n };\r\n\r\n function toggleBounce(marker) {\r\n marker.setAnimation(google.maps.Animation.BOUNCE);\r\n }\r\n\r\n vm.scrollToRow = function (index) {\r\n var rowId = 'pincodeRow_' + index;\r\n\r\n $location.hash(rowId);\r\n $anchorScroll();\r\n };\r\n\r\n vm.GetFreelancerDataByUserId = function () {\r\n PincodeFinderService.GetFreelancerDataByUserId(userId, loggedInUserId, token).then(function (resp) {\r\n vm.techData = resp.data;\r\n vm.showMapWithUser();\r\n })\r\n }\r\n\r\n\r\n vm.GetFreelancerDataByUserId();\r\n\r\n vm.GetMaxJobServedDistance = function () {\r\n var fetchdataModel = {\r\n \"Range\": 10000,\r\n \"UserId\": userId,\r\n \"JobsFromDate\": \"2016-12-11\",\r\n \"JobsToDate\": endDate,\r\n \"ItemNames\": \"Status\",\r\n \"ItemValues\": pitemValues,\r\n \"DataFeild\": \"CreatedOn\",\r\n \"PageIndex\": 0,\r\n \"PageSize\": 0,\r\n \"OrderBy\": \"CreatedOn\",\r\n \"SortType\": \"desc\"\r\n }\r\n PincodeFinderService.GetMaxJobServedDistance(loggedInUserId, token, fetchdataModel).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.DistanceBetween = resp.data;\r\n $timeout(function () {\r\n vm.GetPinCodesAndJobInfo();\r\n }, 1000);\r\n }\r\n })\r\n }\r\n\r\n vm.updatePincodesMapIcons = function () {\r\n deletePinCodeMarkers();\r\n vm.showMapWithTechBasedOnPincodes();\r\n };\r\n\r\n\r\n vm.GetPinCodesAndJobInfo = function () {\r\n deleteTicketMarkers();\r\n deletePinCodeMarkers();\r\n var fetchdataModel = {\r\n \"Range\": vm.DistanceBetween * 1000,\r\n \"UserId\": userId,\r\n \"JobsFromDate\": startDate,\r\n \"JobsToDate\": endDate,\r\n \"ItemNames\": \"Status\",\r\n \"ItemValues\": pitemValues,\r\n \"DataFeild\": \"CreatedOn\",\r\n \"PageIndex\": 0,\r\n \"PageSize\": 0,\r\n \"OrderBy\": \"CreatedOn\",\r\n \"SortType\": \"desc\"\r\n }\r\n PincodeFinderService.GetPinCodesAndJobInfo(loggedInUserId, token, fetchdataModel).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.OverAllInfo = resp.data;\r\n vm.TicketListByFilter = resp.data.WorkSummary360Data.workSummaryData;\r\n vm.userslistbyTkt = resp.data.PinCodesInfoList;\r\n if ($scope.mapType == 'showPincodes') {\r\n $timeout(function () {\r\n vm.showMapWithTechBasedOnPincodes();\r\n }, 1000);\r\n }\r\n if ($scope.mapType == 'showTickets') {\r\n $timeout(function () {\r\n vm.showMapBasedOnTickets();\r\n }, 1000);\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.UpdateIdConfirmation = function (orderData,actionType) {\r\n\t\t\tupdateidconfirm = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'UpdateId.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeUpdateIdModel = function () {\r\n\t\t\tupdateidconfirm.close();\r\n vm.AddressProof = false; \r\n vm.IdentityProof = false; \r\n vm.disableRejectButton = false;\r\n\t\t\t\r\n\t\t}\r\n\r\n vm.UpdateUserBGVerificationDetails = function () {\r\n var userId = vm.userId;\r\n var addressProof = vm.AddressProof ? true : false;\r\n var identityProof = vm.IdentityProof ? true : false;\r\n vm.disableRejectButton = true;\r\n TechnicianViewService.UpdateUserBGVerificationDetails(userId,addressProof,identityProof, loggedInUserId, token).then(function (resp) {\r\n // vm.updatebguser = resp.data;\r\n if (resp.status == 200 || resp.status == 202) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.closeUpdateIdModel();\r\n // $timeout(function () {\r\n // vm.GetAllCasesForTechnician();\r\n // }, 2000)\r\n }\r\n\r\n else {\r\n vm.showFailure(\"Failed\", resp.data)\r\n vm.disableRejectButton = false;\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.showMapBasedOnTickets = function () {\r\n NgMap.getMap().then(function (map) {\r\n $scope.infoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n const ticketPlot = {\r\n url: \"https://maps.google.com/mapfiles/ms/micons/green-dot.png\"\r\n };\r\n icons = ticketPlot;\r\n for (var i = 0; i < vm.TicketListByFilter.length; i++) {\r\n var data = vm.TicketListByFilter[i]\r\n var myLatlng = new google.maps.LatLng(data.Latitude, data.Longitude);\r\n var marker = new google.maps.Marker({\r\n position: myLatlng,\r\n map: map,\r\n icon: icons\r\n });\r\n ticketMarkers.push(marker);\r\n (function (marker, data, index) {\r\n google.maps.event.addListener(marker, \"click\", function (e) {\r\n $scope.infoWindow.setContent(\"

Ticket Info

TicketId : \" + data.TicketID + \"Skill: \" + data.TicketType + \"Pincode: \" + data.Pincode + \"Status: \" + data.JobsStatus + \"
\");\r\n $scope.infoWindow.open(map, marker);\r\n });\r\n })(marker, data, i);\r\n $scope.Latlngbounds.extend(marker.position);\r\n map.fitBounds($scope.Latlngbounds);\r\n }\r\n\r\n });\r\n }\r\n $scope.mapType = 'showPincodes';\r\n $scope.showTickets = false;\r\n $scope.showPincodes = true;\r\n $scope.showAllTickets = false;\r\n\r\n vm.displayAllTickets = function () {\r\n if ($scope.showAllTickets) {\r\n startDate = moment().subtract(5, 'years').format(\"YYYY-MM-DD\");\r\n endDate = moment().format(\"YYYY-MM-DD\");\r\n $scope.ticketFilters = {\r\n Approved: true,\r\n Cancelled: true,\r\n Completed: true,\r\n Assigned: true\r\n };\r\n vm.updateMapIcons();\r\n }\r\n if (!$scope.showAllTickets) {\r\n $scope.ticketFilters = {\r\n Approved: true,\r\n Cancelled: false,\r\n Completed: true,\r\n Assigned: false\r\n };\r\n vm.updateMapIcons();\r\n }\r\n\r\n }\r\n\r\n vm.updateOptionalMapIcons = function () {\r\n if ($scope.mapType === 'showPincodes') {\r\n deleteTicketMarkers();\r\n $scope.pincodeFilters = {\r\n InProfileNoJobs: true,\r\n InProfileWithJobs: true,\r\n NotInProfileWithJobs: true,\r\n NotInProfileNoJobs: true\r\n };\r\n vm.GetPinCodesAndJobInfo();\r\n } else if ($scope.mapType === 'showTickets') {\r\n deletePinCodeMarkers();\r\n vm.updateMapIcons();\r\n }\r\n };\r\n\r\n vm.updateMapIcons = function () {\r\n pitemValues = Object.keys($scope.ticketFilters)\r\n .filter(function (key) {\r\n return $scope.ticketFilters[key];\r\n })\r\n .join(\"|\");\r\n vm.GetPinCodesAndJobInfo();\r\n }\r\n\r\n vm.filterStatusForJObs('Assigned');\r\n\r\n\r\n\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n }\r\n\r\n\r\n }\r\n})\r\n .directive('expand', function () {\r\n function link(scope, element, attrs) {\r\n scope.$on('onExpandAll', function (event, args) {\r\n scope.expanded = args.expanded;\r\n });\r\n }\r\n return {\r\n link: link\r\n };\r\n });\r\nangular.module('inspinia').filter('changeTime', function () {\r\n\r\n return function (s) {\r\n var ms = s % 1000;\r\n s = (s - ms) / 1000;\r\n var secs = s % 60;\r\n s = (s - secs) / 60;\r\n var mins = s % 60;\r\n var hrs = (s - mins) / 60;\r\n return hrs + ':' + mins + ' hr';\r\n }\r\n});\r\n\r\n\r\n\r\n\nangular.module('inspinia').controller('TeamMemberForCRMController', function (teamCardService,CRMTeamFormCreationService, $timeout, MainService, $rootScope, DTColumnBuilder, $compile, $q, ProjectCreationService, $scope, TeamProfileService, $stateParams, $uibModal, $localStorage, $log, $state, DTOptionsBuilder, PlanningResourseMapService, DashboardService, DTColumnDefBuilder, ImageUrl) {\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n $rootScope.rootScopeMessage = '';\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.accountid= $localStorage.accountConfig.AccountId;\r\n vm.users = [];\r\n vm.FilterSwitch = false;\r\n vm.client = 1;\r\n vm.tab = 1;\r\n vm.skill = '';\r\n vm.workArea = '';\r\n var skillsArray;\r\n var circleArray;\r\n var ProjectModal = {};\r\n var userIndex = 0;\r\n vm.filteredProperties = {};\r\n vm.showMinus = false;\r\n vm.searchText = \"\";\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.dtInstance = {};\r\n var witemNames = \"\";\r\n var witemValues = \"\";\r\n var wsSDate = '';\r\n var wsEDate = '';\r\n var uPageIndex = 1;\r\n var uwPageIndex = 1;\r\n var uPageSize = 10;\r\n var uwPageSize = 10;\r\n vm.userPageListCount= 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n vm.allCRMTeamPageListCount = 10;\r\n\r\n vm.imageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else {\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function () {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n vm.exportData = function () {\r\n var blob = new Blob([document.getElementById('tab-1').innerHTML], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, \"Report.xls\");\r\n };\r\n\r\n vm.preProcessUsers = function (user) {\r\n user.ratingStars = vm.getRatingStars(user.CustomerRating);\r\n user.blankStars = vm.getBlankStars(user.CustomerRating);\r\n user.displayName = user.FirstName + \" \" + user.LastName;\r\n // user.displayName = user.displayName.length>8?(user.displayName.substring(0, 8)+\"...\"):user.displayName;\r\n var locs = \"\";\r\n angular.forEach(user.Locations, function (l) {\r\n locs += l + \",\";\r\n });\r\n user.allLocations = locs.length > 0 ? locs.substring(0, locs.length - 1) : \"\";\r\n var skills = \"\";\r\n angular.forEach(user.SkillSet, function (s) {\r\n skills += s + \",\";\r\n });\r\n user.allSkills = skills.length > 0 ? skills.substring(0, skills.length - 1) : \"\";\r\n var workareas = \"\";\r\n angular.forEach(user.Locations, function (w) {\r\n workareas += w + \",\";\r\n });\r\n user.allWorkareas = workareas.length > 0 ? workareas.substring(0, workareas.length - 1) : \"\";\r\n }\r\n\r\n vm.getAllUser = function () {\r\n teamCardService.getAllUserByReportingPerson(loggedinUser,vm.filterRole, token).then(function (resp) {\r\n vm.users = resp.data;\r\n vm.imageServices(vm.users.Picture);\r\n // angular.forEach(vm.users, function (d) {\r\n // vm.preProcessUsers(d);\r\n // });\r\n // if (vm.users.length == 0) {\r\n // vm.client = 1;\r\n // } else {\r\n // vm.client = 3;\r\n // vm.userInfo = vm.users[userIndex];\r\n // }\r\n }, function () {\r\n //$log.log('not working');\r\n })\r\n }\r\n // vm.getAllUser();\r\n\r\n \r\n// Initialize pagination settings in the controller\r\n$scope.totalCRMteamList = 0;\r\n$scope.CRMTeamPerPage = vm.allCRMTeamPageListCount;\r\n$scope.CRMTeamPagination = {\r\n current: 1\r\n};\r\n\r\n// Updates pagination settings and triggers page change\r\nvm.changeCRMTeamPageListCount = function () {\r\n $scope.CRMTeamPerPage = vm.allCRMTeamPageListCount;\r\n PageSize = $scope.CRMTeamPerPage;\r\n $scope.AllCRMTeamTablePageChanged($scope.CRMTeamPagination.current);\r\n PageIndex = $scope.CRMTeamPagination.current;\r\n $scope.AllCRMTeamTablePageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetCRMTeamByReportingTo();\r\n };\r\n}\r\n\r\nPageIndex = $scope.CRMTeamPagination.current;\r\n$scope.AllCRMTeamTablePageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetCRMTeamByReportingTo();\r\n\r\n};\r\n\r\nvm.GetCRMTeamByReportingTo = function () {\r\n var data = {\r\n \"searchTag\": vm.searchText,\r\n \"PageIndex\": PageIndex,\r\n \"PageSize\":PageSize,\r\n \"RoleFilter\": vm.filterRole,\r\n }\r\n teamCardService.GetCRMTeamByReportingTo(data, loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.crmteamlist = resp.data.userRespnseModel;\r\n $scope.totalCRMteamList = resp.data.Count;\r\n vm.imageServices(vm.users.Picture);\r\n if (vm.crmteamlist.length < vm.allCRMTeamPageListCount)\r\n vm.CRMTeamListLength = $scope.totalCRMteamList;\r\n else\r\n vm.CRMTeamListLength = PageIndex * vm.allCRMTeamPageListCount;\r\n if (PageIndex == 1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex - 1) * vm.allCRMTeamPageListCount) + 1);\r\n }\r\n if (!vm.crmteamlist.length) {\r\n vm.client = 1;\r\n } else {\r\n vm.client = 3;\r\n var userIndex = 0; // Always fetch the first user profile\r\n vm.userInfo = vm.crmteamlist[userIndex];\r\n vm.ProfileData(vm.crmteamlist[userIndex].UserId); // Fetch profile data for the user\r\n }\r\n \r\n });\r\n}\r\n\r\nvm.GetCRMTeamByReportingTo();\r\n\r\nvm.clearFilter = function(){\r\n vm.searchText = '';\r\n vm.filterRole = '';\r\n vm.GetCRMTeamByReportingTo();\r\n}\r\n///////end/////\r\n\r\n vm.getAllRole = function getAllRole() {\r\n CRMTeamFormCreationService.getAllRoleByUserId(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.RolesList = resp.data;\r\n // if(vm.RolesList){\r\n // vm.Role = vm.RolesList[0].Role;\r\n // vm.GetReportingToUser(vm.Role);\r\n // }\r\n \r\n }\r\n }\r\n })\r\n }\r\n vm.getAllRole();\r\n\r\n vm.RolesListForSearch = [\r\n { Role: 'Administrator' },\r\n { Role: 'Branch Service Manager' },\r\n { Role: 'Integration User' },\r\n { Role: 'Help Desk' },\r\n { Role: 'Ware House Manager' },\r\n { Role: 'Gas Charge Approver' },\r\n { Role: 'Regional Service Manager'},\r\n {Role : 'Defective Management'},\r\n {Role : 'Replacement Approver'},\r\n {Role : 'Finance Approver'},\r\n];\r\n\r\n vm.getUserInfo = function (userId, loggedinUser) {\r\n TeamProfileService.getFixedUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n vm.userInfo = resp.data;\r\n vm.imageServices(vm.userInfo.Picture);\r\n vm.preProcessUsers(vm.userInfo);\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.getAllSkills = function () {\r\n TeamProfileService.getAllSkills().then(function (resp) {\r\n vm.skills = resp.data;\r\n for (var index = 0; index < vm.skills.length; index++) {\r\n skillsArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.getAllCircles = function (loggedinUser) {\r\n ProjectCreationService.GetAllCircles(loggedinUser).then(function (resp) {\r\n vm.circles = resp.data;\r\n for (var index = 0; index < vm.circles.length; index++) {\r\n circleArray.push({\r\n workArea: vm.circles.circle\r\n });\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n vm.UploadTeamCRM = function () {\r\n $state.go('index.bulkuploadCRMTeamMember', {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.AddTeamMember = function () {\r\n $state.go('index.CRMTeamFormCreation', {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileView = function (userid) {\r\n $state.go('index.TeamProfile', {\r\n userId: userid\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileData = function (userId) {\r\n vm.getUserInfo(userId, loggedinUser);\r\n vm.client = 3;\r\n }\r\n\r\n vm.filtermodal = function () {\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'Filter.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n\r\n\r\n vm.CloseModal = function () {\r\n ProjectModal.close();\r\n }\r\n $scope.selectedOption = '';\r\n vm.LunchSchedule = function () {\r\n UpdateLunch = $uibModal.open({\r\n templateUrl: 'LunchPopup.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n vm.closeUpdateLunch = function () {\r\n UpdateLunch.close();\r\n }\r\n\r\n vm.editTeamMember = function (userId) {\r\n $state.go('index.CRMTeamEdit', {\r\n userId: userId\r\n });\r\n }\r\n vm.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userClass_status = true;\r\n vm.userSingle = function () {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.close360View = function () {\r\n $scope.userClass_status = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n vm.Get360TeamProfileData = function (userId) {\r\n vm.userId = userId;\r\n DashboardService.Get360ProfileData(loggedinUser, userId, token).then(function (resp) {\r\n if (resp.data) {\r\n vm.userSingle();\r\n $scope.myvalue = false;\r\n }\r\n vm.teamdata = resp.data;\r\n vm.AvgRating = vm.teamdata.userProfile.AverageRating;\r\n vm.ReviewsList = vm.teamdata.userProfile.Reviews\r\n vm.teamdata.ratingStars = vm.getRatingStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.blankStars = vm.getBlankStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.avgratingStars = vm.getAvgRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.avgblankStars = vm.getAvgBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n if (vm.teamdata.userProfile.ContactNumber) {\r\n vm.teamdata.userProfile.ContactNumber = vm.teamdata.userProfile.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n\r\n if (vm.teamdata.userProfile.Reviews) {\r\n vm.teamdata.userProfile.Reviews.forEach(function (element, i) {\r\n vm.teamdata.userratingStars = vm.getUserRatingStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n vm.teamdata.userblankStars = vm.getUserBlankStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n element.arrayRating = vm.teamdata.userratingStars;\r\n element.blankRating = vm.teamdata.userblankStars;\r\n });\r\n }\r\n\r\n vm.TechnicianRating = Number(vm.teamdata.userProfile.Ratings.TechnicianRating).toFixed(1);\r\n $timeout(function () {\r\n displayTotals();\r\n }, 300);\r\n }, function () {\r\n })\r\n }\r\n \r\n vm.Get360TeamView = function(teamid){\r\n $state.go('index.Technician360view',{\r\n userId: teamid\r\n }, { reload: true });\r\n }\r\n\r\n\r\n $scope.totalWS = 0;\r\n $scope.wsPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function(userId) {\r\n $scope.wsPerPage = vm.userPageListCount;\r\n uPageSize = $scope.wsPerPage;\r\n $scope.WSTablePageChanged($scope.Userpagination.current);\r\n\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.wsersFilterArray(); \r\n vm.Get360WorkSummary(loggedinUser, token,userId, witemNames, witemValues, uPageIndex, uPageSize,wsSDate,wsEDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\n }\r\n\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n if(witemNames != 'Search')\r\n {\r\n vm.wsersFilterArray();\r\n }\r\n\r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate,wsEDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\n\r\n\r\n vm.wsersFilterArray = function()\r\n {\r\n witemNames=\"\";\r\n witemValues=\"\";\r\n\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(witemNames) \r\n {\r\n witemNames = witemNames + ',Search';\r\n witemValues = witemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n witemNames = 'Search';\r\n witemValues = vm.userNameSearch;\r\n } \r\n }\r\n\r\n if(vm.JobcountbyStatus)\r\n {\r\n if(witemNames) \r\n {\r\n witemNames = witemNames + ',Status';\r\n witemValues = witemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else\r\n {\r\n witemNames = 'Status';\r\n witemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.wsTicketList = resp.data.workSummaryData;\r\n $scope.totalWS = resp.data.WorkSummaryTotalCount;\r\n if (vm.wsTicketList.length < vm.userPageListCount)\r\n vm.wsListLength = $scope.totalWS;\r\n else\r\n vm.wsListLength = uPageIndex * vm.userPageListCount;\r\n if (uPageIndex == 1)\r\n vm.wspageindexCount = 1;\r\n else\r\n vm.wspageindexCount = (((uPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n vm.RedirectToConfiguration = function () {\r\n $state.go('index.CalendarManagement', { reload: true });\r\n }\r\n \r\n vm.Get360SkillSummary = function () {\r\n DashboardService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for(var i=0;ilTfgitp')\r\n // .withPaginationType('full_numbers')\r\n // .withOption('order', [])\r\n // .withOption('createdRow', createdRow)\r\n // .withOption('rowCallback', rowCallback)\r\n // .withButtons([{extend:'copy'},{extend:'csv', filename: 'CRM_Team_Members_List'},{extend:'print', title: 'CRM Team Members List' }]);\r\n\r\n // function createdRow(row, data, dataIndex) {\r\n // $compile(angular.element(row).contents())($scope);\r\n // }\r\n\r\n // function rowCallback(nRow, aData, iDisplayIndex, iDisplayIndexFull) {\r\n // $('td', nRow).unbind('click');\r\n // $('td', nRow).bind('click', function () {\r\n // $scope.$apply(function () {\r\n // vm.ProfileData(aData.UserId);\r\n // });\r\n // });\r\n // return nRow;\r\n // }\r\n\r\n // vm.dtColumns = [\r\n // DTColumnBuilder.newColumn(null).withTitle((vm.accountConfig.AccountId == '380' || vm.accountConfig.AccountId == '383') && vm.Role == 'Service Center' \r\n // ? '' \r\n // : 'UserId').renderWith(function (data, type, full, meta) {\r\n // if (data.Role != 'Field Engineer' && data.Role != 'Private Vendor' && data.Role != 'Service Center' && data.Role != 'Vendor Manager' && (vm.accountConfig.AccountId != '361' && vm.accountConfig.AccountId != '364' && vm.accountConfig.AccountId != '380' && vm.accountConfig.AccountId != '383')) {\r\n // return '';\r\n // }\r\n // else if (data.Role != 'Field Engineer' && data.Role != 'Private Vendor' && data.Role != 'Service Center' && data.Role != 'Vendor Manager' && (vm.accountConfig.AccountId == '361' || vm.accountConfig.AccountId == '364' || vm.accountConfig.AccountId == '380' || vm.accountConfig.AccountId == '383')) {\r\n // return '' + data.CustomUserId + '';\r\n // }\r\n // else if (data.Role == 'Service Center' && (vm.accountConfig.AccountId == '361' || vm.accountConfig.AccountId == '364' || vm.accountConfig.AccountId == '380' || vm.accountConfig.AccountId == '383')) {\r\n // return '';\r\n // }\r\n // else if (vm.Role == 'Service Center' && (vm.accountid == '380' || vm.accountid == '383')) {\r\n // return '';\r\n // }\r\n // else {\r\n // return '';\r\n // }\r\n // }),\r\n // DTColumnBuilder.newColumn(null).withTitle('Name').renderWith(function (data, type, full, meta) {\r\n // var address = '';\r\n // if (data.Picture == null) {\r\n // address = \"assets/images/patterns/photo1.png\";\r\n // } else {\r\n // MainService.GetImageBlob(loggedinUser, token, data.Picture).then(function (resp) {\r\n // address = resp.data;\r\n // });\r\n // }\r\n // if (data.Role == 'Service Center' && (vm.accountConfig.AccountId === '380' || vm.accountConfig.AccountId === '383')) {\r\n // return '' + data.CompanyName + '';\r\n // } else {\r\n // return '' + data.FirstName + ' ' + data.LastName + '';\r\n // }\r\n // }).notSortable(),\r\n // DTColumnBuilder.newColumn('ContactNumber').withTitle('Phone Number').notSortable(),\r\n // DTColumnBuilder.newColumn('Role').withTitle('Role').notSortable(),\r\n // DTColumnBuilder.newColumn('CurrentState').withTitle('State').notSortable(),\r\n // DTColumnBuilder.newColumn('CurrentCity').withTitle('City').notSortable(),\r\n // DTColumnBuilder.newColumn(null)\r\n // .withTitle('Region')\r\n // .notSortable()\r\n // .renderWith(function (data, type, full) {\r\n // return '
' + full.strListRegion + '
';\r\n // }),\r\n // DTColumnBuilder.newColumn(null)\r\n // .withTitle('Sub-Region')\r\n // .notSortable()\r\n // .renderWith(function (data, type, full) {\r\n // return '
' + full.strListSubRegion + '
';\r\n // }),\r\n // DTColumnBuilder.newColumn('CurrentPinCode').withTitle('Pin Code').notSortable(),\r\n // ];\r\n // if (vm.accountConfig.AccountId == '362') {\r\n // vm.dtColumns.push(\r\n // DTColumnBuilder.newColumn('VendorName').withTitle('Reporting To').notSortable(),\r\n // DTColumnBuilder.newColumn('Rating').withTitle('Rating').notSortable(),\r\n // DTColumnBuilder.newColumn('Expernice').withTitle('Experience').notSortable(),\r\n // DTColumnBuilder.newColumn('AdharNo').withTitle('Adhaar Number').notSortable()\r\n // );\r\n // }\r\n\r\n // if ((vm.accountConfig.AccountId == '380' || vm.accountConfig.AccountId == '383') && (vm.Role == 'Administrator' || vm.Role == 'Service Center')) {\r\n // vm.dtColumns.push(\r\n // DTColumnBuilder.newColumn('Password').withTitle('Password').notSortable()\r\n // );\r\n // }\r\n\r\n // if (vm.Role != 'Service Center' && (vm.accountConfig.AccountId == '361' || vm.accountConfig.AccountId == '362' || vm.accountConfig.AccountId == '364')) {\r\n // vm.dtColumns.push(\r\n // DTColumnBuilder.newColumn('ReportingToName')\r\n // .withTitle('Reporting To')\r\n // .notSortable()\r\n // .renderWith(function (data, type, full, meta) {\r\n // var id = full.ReportingTo;\r\n // return data + ' (' + id + ')';\r\n // }),\r\n // DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full) {\r\n // return '';\r\n // })\r\n // );\r\n // }\r\n\r\n // if (vm.Role !== 'Vendor Manager' && vm.Role !== 'Service Center' && vm.Role !== 'Administrator' && vm.Role !== 'Project Manager' && vm.Role !== 'Supervisor') {\r\n // vm.dtColumns.push(\r\n // DTColumnBuilder.newColumn('').withTitle('Account Name').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.accNameLoac = [];\r\n // vm.accIdLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.accNameLoac.push(d.AccountName);\r\n // });\r\n // } else {\r\n // vm.accNameLoac = '';\r\n // }\r\n // return '
' + vm.accNameLoac + '
';\r\n // }),\r\n // DTColumnBuilder.newColumn('').withTitle('Account Id').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.accLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.accLoac.push(d.AccountId);\r\n // });\r\n // } else {\r\n // vm.accLoac = '';\r\n // }\r\n // return '
' + vm.accLoac + '
';\r\n // })\r\n // );\r\n // }\r\n\r\n\r\n vm.refreshTable = function () {\r\n vm.dtInstance.reloadData();\r\n };\r\n \r\n\r\n // $scope.$watchGroup(['vm.filterRole'], function (newValues, oldValues) {\r\n // if (newValues !== oldValues) {\r\n // vm.refreshTable();\r\n // }\r\n // });\r\n\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n }\r\n});\nangular.module('inspinia').service('TeamPartRequestService', function (ApiURL,AcessoriesURL, SchedulingAPI, $window, $localStorage, $http) {\r\n\r\n this.GetAllRequestedPart = function (token, orderStatus, SearchText, category, brandName, productGroup, orderBy, sortType, fPageIndex, fPageSize, startDate, endDate, dateField) {\r\n var url = AcessoriesURL + '/api/RequestedPartInventoryController/GetAllRequestedPart?OrderStatus=' + orderStatus + '&startDate=' + startDate + '&EndDate=' + endDate + '&SearchText=' + SearchText + '&dateField=' + dateField + '&category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup + '&OrderBy=' + orderBy + '&SortType=' + sortType + '&PageSize=' + fPageSize + '&PageIndex=' + fPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetAllRequestedPart_CSV = function (token, orderStatus, SearchText, category, brandName, productGroup, orderBy, sortType, fPageIndex, fPageSize, startDate, endDate, dateField) {\r\n var url = AcessoriesURL + '/api/RequestedPartInventoryController/GetAllRequestedPart_CSV?OrderStatus=' + orderStatus + '&startDate=' + startDate + '&EndDate=' + endDate + '&SearchText=' + SearchText + '&dateField=' + dateField + '&category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup + '&OrderBy=' + orderBy + '&SortType=' + sortType + '&PageSize=' + fPageSize + '&PageIndex=' + fPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n // this.GetUserAllSalesOrderDashboardforWeb = function (token, category, brandName, productGroup, startDate, endDate, dateField) {\r\n // var url = ApiURL + '/api/ZohoInventoryController/GetUserAllSalesOrderDashboardforWeb?startDate=' + startDate + '&EndDate=' + endDate + '&dateField=' + dateField + '&category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n // }\r\n // });\r\n // }\r\n\r\n this.GetUserInventoryStockforweb = function (data,token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetUserInventoryStockforweb'\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetInventoryDashboardByServiceCenter = function (data,token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetInventoryDashboardByServiceCenter'\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.UpdatePartDetails = function (data,token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/UpdatePartDetails'\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n // this.GetUserSalesOrderIntatiedByZoho = function (token, orderStatus, SearchText, category, brandName, productGroup, orderBy, sortType, ePageIndex, ePageSize, startDate, endDate) {\r\n // var url = ApiURL + '/api/ZohoInventoryController/GetUserSalesOrderIntatiedByZoho?OrderStatus=' + orderStatus + '&startDate=' + startDate + '&EndDate=' + endDate + '&SearchText=' + SearchText + '&Category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup + '&OrderBy=' + orderBy + '&SortType=' + sortType + '&PageSize=' + ePageSize + '&PageIndex=' + ePageIndex;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n // }\r\n // });\r\n // }\r\n\r\n\r\n this.InventoryDefectStockList = function (token, SearchText, category, brandName, productGroup, uPageIndex, uPageSize, startDate, endDate) {\r\n var url = ApiURL + '/api/ZohoInventoryController/InventoryDefectStockList?Category=' + category + '&BrandName=' + brandName + '&ItemGroup=' + productGroup + '&SearchText=' + SearchText + '&StartDate=' + startDate + '&EndDate=' + endDate + '&PageSize=' + uPageSize + '&PageIndex=' + uPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetItemBrandName = function (token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemBrandName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetItemGroupName = function (brandName, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemGroupName?BrandName=' + brandName;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetItemListName = function (brandName, productGroup, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemListName?BrandName=' + brandName + '&ItemGroupName=' + productGroup;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetItemListNameWithId = function (brandName, productGroup, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemListNameWithId?BrandName=' + brandName + '&ItemGroupName=' + productGroup;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetShipmentOrder = function (salesOrderNumber, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetShipmentOrder?salesOrderNumber=' + salesOrderNumber;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.TrackinDetailForDefectItem = function (trackingId, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/TrackinDetailForDefectItem?TrackingId=' + trackingId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetServiceCentenAndTeamStockData = function (LineItemId, SearchTag, token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetServiceCentenAndTeamStockData?ParrtId=' + LineItemId + '&SearchTag=' + SearchTag;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.PullBackStockToTechnician = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFPart/PullBackStockToTechnician';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\tthis.GetAllWareHouseForExploration = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllWareHouseForExploration';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.MarkSalesOrderasDelivered = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/MarkSalesOrderasDelivered';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetWarehouse = function (token, data) {\r\n var url = ApiURL + '/api/ItemsInventory/GetNearbyWarehouseList';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetSalesOrder = function (loggedinUser, salesOrderId, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetSalesOrder?salesOrderId=' + salesOrderId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateRequestInventoryJobLineItemStatus = function (ticketId, status, lineitemId, updateStatusRemark, token) {\r\n var url = ApiURL + '/api/JobLineItem/UpdateRequestInventoryJobLineItemStatus?TicketId=' + ticketId + '&Status=' + status + '&LineItemId=' + lineitemId + '&Remark=' + updateStatusRemark;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetRequestedLineItemDetailsByTicketId = function (loggedinUser, salesOrderId, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetRequestedLineItemDetailsByTicketId?TicketId=' + salesOrderId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.createSalesOrder = function (token, data) {\r\n var url = ApiURL + '/api/ItemsInventory/CreateSalesOrderForLineitem';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n \r\n this.DirectPlaceOrder = function (data, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/DirectPlaceOrder';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n // this.InventoryReturnOfDefectPartsByServiceCenter = function (data, loggedinUser, token) {\r\n // var url = ApiURL + '/api/ZohoInventoryController/InventoryReturnOfDefectPartsByServiceCenter';\r\n // return $http.post(url, data, {\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // 'Token': token,\r\n // 'UserId': loggedinUser\r\n // }\r\n // });\r\n // }\r\n this.ReturnOrderPlace = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFReturnOrder/ReturnOrderPlace';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.TransferInventory = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/TransferInventory';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.viewReportPdf = function (loggedinUser, token, fileName) {\r\n var url = ApiURL + '/api/Image?fileName=' + fileName;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetUserInventoryStockCsvDownload = function (data,loggedinUser,token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetUserInventoryStockCsvDownload'\r\n return $http.put(url,data ,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetInventoryByWareHouseId = function (data,loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetInventoryByWareHouseId';\r\n return $http.put(url,data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n}\r\n\r\nthis.CreateInvoiceToStockAlllocationToFielEngineer = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrderInvoice/CreateInvoiceToStockAlllocationToFielEngineer';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\nthis.AllocateStockToFieldEngineer = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrderInvoice/AllocateStockToFieldEngineer';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.GetWareHouseByPartId = function (partId, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetWareHouseByPartId?partId=' + partId;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n}\r\nthis.GetAllPartsByTicketId = function (ticketId, data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetAllPartsByTicketId?TicketId=' + ticketId;\r\n var config = {\r\n params: data,\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n };\r\n return $http.get(url, config);\r\n}\r\n\r\nthis.UpdateTeamOrder = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/UpdateTeamOrder';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\n\r\n})\r\n\r\n\r\n\nangular\r\n .module(\"inspinia\")\r\n .controller(\r\n \"TeamPartRequestController\",\r\n function (\r\n TeamPartRequestService,InventoryItemListService, TeamMyStockService,\r\n MainService,\r\n $window,\r\n PublicApiURL,\r\n ApiURL,\r\n $state,\r\n $localStorage,\r\n $scope,\r\n $uibModal,\r\n $timeout,\r\n $stateParams\r\n ) {\r\n vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm.NokiaTableHeaderChange =\r\n $localStorage.accountConfig.NokiaTableHeaderChange;\r\n var loggedinUserName =\r\n $localStorage.loggedInUser_FirstName +\r\n \" \" +\r\n $localStorage.loggedInUser_LastName;\r\n var token = $localStorage.token;\r\n var loggedinUserImage = $localStorage.picture;\r\n var uTicketId = $stateParams.ticketId;\r\n vm.SearchTag = \"\";\r\n vm.showMapPermision = false;\r\n vm.superPower = false;\r\n $scope.isCollapsed = true;\r\n vm.UserId = \"\";\r\n vm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.getAccountConfigSetting =\r\n $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.VerticalName = vm.getAccountConfigSetting(\"Vertical\");\r\n var accountConfig = $localStorage.accountConfig;\r\n vm.AccountId = $localStorage.accountConfig.AccountId;\r\n vm.isDefective = false;\r\n vm.ImageArray = [];\r\n vm.states = [];\r\n vm.cities = [];\r\n vm.isShow = true;\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n vm.dataFilters = [];\r\n vm.CancellationReasons = \"\";\r\n\t vm.WareHouseId = \"\";\r\n\t vm.ServiceCenterUserId =\"\";\r\n vm.IsCommissionDetect = false;\r\n vm.urlForNonFeasible = \"\";\r\n vm.currentStepModel = {};\r\n vm.dtInstanceNearBy = {};\r\n vm.dtInstanceFixed = {};\r\n vm.dtInstance = {};\r\n vm.dtInstancePre = {};\r\n vm.SparePartAddress = {};\r\n vm.disableBroadcastButton = false;\r\n vm.disableRouteButton = false;\r\n vm.IsChatEnabled = true;\r\n vm.showPrefer = \"\";\r\n vm.disabledDrop = false;\r\n vm.showloading = false;\r\n vm.ComplianceDisable = true;\r\n vm.PincodeEnabled = true;\r\n vm.passSerialNum = false;\r\n vm.PrivateDisable = false;\r\n vm.messageText = \"\";\r\n vm.PriceLineItemList = [];\r\n vm.LineItemDataList = [];\r\n vm.lineItem = \"\";\r\n vm.serviceType = \"\";\r\n vm.AppointmentTime = \"\";\r\n vm.ticketPrice = \"\";\r\n vm.freelancerPrice = \"\";\r\n vm.edit = true;\r\n vm.BonusPenaltyList = [];\r\n vm.BonusList = [];\r\n vm.PenaltyList = [];\r\n vm.ShipmentDetails = \"\";\r\n vm.LineitemActivityList = [];\r\n vm.LineItemCategoryType = \"\";\r\n vm.projectId = \"\";\r\n vm.selectedprojectId = \"\";\r\n vm.dynamicpricing = \"\";\r\n vm.FreelancrPriceEnable = \"\";\r\n vm.PercentageEnable = \"\";\r\n var price = 0;\r\n var Quantity = 1;\r\n var totalFPrice = 0.0;\r\n vm.BasePriceTotal = 0.0;\r\n vm.dFreelancerPriceTotal = 0.0;\r\n vm.PercentageTotal = 0.0;\r\n vm.FreelancerPriceTotal = 0.0;\r\n vm.MobiforceCommission =\r\n $localStorage.accountConfig.MobiforceCommissionPercentage;\r\n vm.IsFinalApproval = false;\r\n vm.disableExceptionButton = false;\r\n // vm.IsWithInDays = true;\r\n vm.StockCountToAssign = 1;\r\n vm.PartActionType = \"\";\r\n vm.feedbackremark = \"\";\r\n vm.PlannedClosureDateType = \"first\";\r\n vm.WithInDays = 1;\r\n vm.WithInDaysNumbers = [1, 2, 3, 4, 5];\r\n vm.IsSafetyAudit = \"Not Done\";\r\n vm.ratingwarning = \"\";\r\n vm.approvalRemark = \"\";\r\n vm.MaterialStatusList = [\r\n \"Dispatched\",\r\n \"Delivered\",\r\n \"Partially Delivered\",\r\n \"Not Delivered\",\r\n ];\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.SelectedMaterial = \"\";\r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n vm.ZOHOWarehouseName = \"\";\r\n vm.customerJobCard = [];\r\n vm.PageIndex = 1;\r\n vm.PageSize = 10;\r\n startDate = \"\";\r\n endDate = \"\";\r\n vm.sortType = \"\";\r\n\t vm.ServiceCenterVendorId = \"\";\r\n vm.orderBy = \"\";\r\n vm.itemValue = \"\";\r\n vm.OrderStatus = \"\";\r\n vm.SearchText = \"\";\r\n var uPageIndex = 1;\r\n var uPageSize = 10;\r\n var dPageSize = 10;\r\n var dPageIndex = 1;\r\n var fPageIndex = 1;\r\n var fPageSize = 10;\r\n var ePageIndex = 1;\r\n var ePageSize = 10;\r\n vm.userPageListCount = 10;\r\n vm.financePageListCount = 10;\r\n vm.defectedPageListCount = 10;\r\n vm.brandName = \"\";\r\n vm.partName = \"\";\r\n vm.productGroup = \"\";\r\n vm.BrandListName = \"\";\r\n vm.allSalesOrderPageListCount = 10;\r\n vm.allHistoryOrderPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var startDate = moment().subtract(30, \"days\").format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.dateField = \"CreatedOn\";\r\n vm.ticketdates = {\r\n startDate: moment().subtract(30, \"day\"),\r\n endDate: moment(),\r\n };\r\n vm.ticketranges = {\r\n Today: [moment(), moment()],\r\n Yesterday: [moment().subtract(1, \"days\"), moment().subtract(1, \"days\")],\r\n \"Last 7 days\": [moment().subtract(7, \"days\"), moment()],\r\n \"Last 30 days\": [moment().subtract(30, \"days\"), moment()],\r\n \"This month\": [moment().startOf(\"month\"), moment().endOf(\"month\")],\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.ApplyFilter();\r\n };\r\n if (accountConfig && accountConfig.EnableRegion) {\r\n vm.EnableRegion = accountConfig.EnableRegion;\r\n } else {\r\n vm.EnableRegion = false;\r\n }\r\n\r\n vm.TemplateData = [];\r\n if (!loggedinUser) {\r\n $state.go(\"Login\", {\r\n reload: true,\r\n });\r\n } else {\r\n var token = $localStorage.token;\r\n vm.ticketType = $stateParams.type;\r\n vm.TicketId = $stateParams.ticketId;\r\n\r\n vm.getPicUrl = function (ItemImage) {\r\n return ItemImage\r\n ? ApiURL +\r\n \"/api/ZohoInventoryController/GetItemImage?item=\" +\r\n ItemImage\r\n : null;\r\n };\r\n vm.TrainingImagebase64=[];\r\n vm.requestPartDetails = false;\r\n vm.OpenPartDetailPanel = function (s) {\r\n vm.PartDetails = s;\r\n vm.sideViewPartImage = s.strPartImages;\r\n for (var i = 0; i < vm.sideViewPartImage.length; i++) {\r\n vm.TrainingImageServices(vm.sideViewPartImage[i], i);\r\n }\r\n vm.requestPartDetails = true;\r\n };\r\n vm.TrainingImageServices = function (img, index) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(\r\n function (resp) {\r\n if (resp.data == null || resp.data == \"\") {\r\n vm.TrainingImagebase64[index] =\r\n \"assets/images/patterns/image_placeholder.png\";\r\n } else {\r\n vm.TrainingImagebase64[index] = resp.data;\r\n }\r\n },\r\n function () {\r\n vm.TrainingImagebase64[index] =\r\n \"assets/images/patterns/image_placeholder.png\";\r\n }\r\n );\r\n };\r\n vm.DisableCreateButton = false;\r\n vm.NewItemquantity = \"\";\r\n vm.OpenUpdatePartDetails = function (parts) {\r\n vm.UpdatePart = parts;\r\n vm.OldPartId = vm.UpdatePart.ZOHOItemId\r\n vm.PartsOrderId = vm.UpdatePart.ZOHOSalesOrderId;\r\n vm.NewItemquantity = vm.UpdatePart.LineItemQuantity || 1;\r\n vm.GetAllPartsByTicketId();\r\n vm.partdetailsedit = $uibModal.open({\r\n templateUrl: 'UpdatePartsDetails.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n \r\n vm.CloseUpdatePartDetails = function () {\r\n vm.partdetailsedit.close();\r\n vm.isUpdateDisabled = false; \r\n \r\n }\r\n vm.GetAllPartsByTicketId = function (ticketId) {\r\n vm.selectedTicketId = ticketId;\r\n var data = {\r\n \"OldPartId\" : \"\",\r\n \"OrderId\" : \"\",\r\n \"NewPartId\" : \"\",\r\n \"Quantity\" : \"\"\r\n }\r\n TeamPartRequestService.GetAllPartsByTicketId(vm.selectedTicketId,data,loggedinUser,token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.PartListWithFilterwithId = resp.data.items;\r\n angular.forEach(vm.PartListWithFilterwithId, function (d) {\r\n if (d.item_id == vm.OldPartId) {\r\n vm.NewPartId = d.item_id;\r\n vm.NewItemquantity = Number(vm.UpdatePart.LineItemQuantity) || 1;\r\n }\r\n });\r\n }\r\n }, vm.showFailure);\r\n };\r\n vm.isUpdateDisabled = false; \r\n\r\nvm.UpdatePartDetails = function(){\r\n vm.updatepartsdetailsForm.submitted = true;\r\n if (vm.updatepartsdetailsForm.$valid) {\r\n vm.isUpdateDisabled = true; \r\n var data = {\r\n \"OldPartId\" : vm.OldPartId,\r\n \"OrderId\" : vm.PartsOrderId,\r\n \"NewPartId\" : vm.NewPartId,\r\n \"Quantity\" : vm.NewItemquantity\r\n }\r\n TeamPartRequestService.UpdatePartDetails(data, loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Parts Details Updated successfully.\");\r\n vm.isUpdateDisabled = true; \r\n vm.CloseUpdatePartDetails();\r\n $timeout(function () {\r\n vm.GetAllRequestedPart(); \r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\n vm.openAddToCartModal = function () {\r\n vm.morecartModal = $uibModal.open({\r\n templateUrl: 'AddMoreItemModal.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n \r\n vm.closecreateCartMoreModal = function () {\r\n vm.morecartModal.close();\r\n vm.lineItemPartData = [];\r\n vm.OrderIdToPlaceOrder = '';\r\n $scope.item.quantity = 1;\r\n }\r\n $scope.item = {\r\n quantity: 1 // Initial quantity\r\n };\r\n \r\n $scope.increaseQuantity = function (item) {\r\n item.quantity++;\r\n };\r\n \r\n $scope.decreaseQuantity = function (item) {\r\n if (item.quantity > 1) {\r\n item.quantity--;\r\n }\r\n };\r\n vm.lineItemPartData = [];\r\n vm.addCartMoreModal = function (partData, orderId) {\r\n vm.OrderIdToPlaceOrder = orderId;\r\n vm.lineItemPartData = partData;\r\n // vm.lineItemPartData = [];\r\n // partData.forEach(function(partsData) {\r\n // if(!partsData.IsPartAvailableForAllocate){\r\n // vm.lineItemPartData.push(partsData);\r\n // }\r\n \r\n // });\r\n vm.openAddToCartModal();\r\n }\r\n\r\n\r\n vm.showEditList = false;\r\n vm.OrderUpdateReqModel = [];\r\n \r\n \r\n vm.OpenOrderEditingModel = function (orderDataToUpdate) {\r\n vm.orderDataToUpdate = orderDataToUpdate;\r\n vm.GetAllPartsByTicketId(vm.orderDataToUpdate.TicketId);\r\n vm.orderItemsDataToUpdate = angular.copy(orderDataToUpdate.lineItems);\r\n OrderEditingModel = $uibModal.open({\r\n templateUrl: 'orderEditModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n size: 'lg'\r\n });\r\n }\r\n \r\n vm.addNewPart = function () {\r\n vm.showEditList = true; \r\n vm.newFilter = {\r\n strItem: null,\r\n LineItemQuantity: 1,\r\n };\r\n };\r\n\r\n vm.toggleEditMode = function (orderpart) {\r\n orderpart.isEditing = true;\r\n vm.PartListWithFilterwithId.forEach(function (part) {\r\n if (part.item_id == orderpart.ZOHOItemId) {\r\n orderpart.selectedPart = part;\r\n orderpart.LineItemDescription = part.item_name;\r\n }\r\n });\r\n orderpart.backup = {\r\n LineItemDescription: orderpart.LineItemDescription,\r\n ZOHOItemId: orderpart.ZOHOItemId,\r\n };\r\n };\r\n\r\n vm.saveEdit = function (orderpart) {\r\n var selectedPart = null;\r\n angular.forEach(vm.PartListWithFilterwithId, function (part) {\r\n if (part.item_name === orderpart.LineItemDescription) {\r\n selectedPart = part;\r\n }\r\n });\r\n if (selectedPart) {\r\n orderpart.LineItemDescription = selectedPart.item_name;\r\n orderpart.ZOHOItemId = selectedPart.item_id;\r\n }\r\n orderpart.isEditing = false;\r\n orderpart.backup = null;\r\n };\r\n\r\n vm.cancelEdit = function (orderpart) {\r\n if (orderpart.backup) {\r\n orderpart.LineItemDescription = orderpart.backup.LineItemDescription;\r\n orderpart.ZOHOItemId = orderpart.backup.ZOHOItemId;\r\n }\r\n orderpart.isEditing = false;\r\n orderpart.backup = null;\r\n };\r\n \r\n vm.saveFilter = function (form) {\r\n if (!form.$valid || !vm.newFilter.strItem || !vm.newFilter.LineItemQuantity) {\r\n return;\r\n }\r\n if (vm.newFilter.LineItemQuantity < 1) {\r\n vm.newFilter.LineItemQuantity = 1;\r\n }\r\n const newPart = {\r\n ZOHOItemId: vm.newFilter.strItem.item_id,\r\n LineItemDescription: vm.newFilter.strItem.item_name,\r\n // strSKUId: vm.newFilter.strItem.SKUId,\r\n LineItemQuantity: vm.newFilter.LineItemQuantity,\r\n };\r\n vm.orderItemsDataToUpdate.push(newPart);\r\n vm.newFilter = null; \r\n vm.showEditList = false; \r\n };\r\n \r\n \r\n \r\n $scope.increasePartQuantity = function (part) {\r\n part.LineItemQuantity++;\r\n };\r\n \r\n $scope.decreasePartQuantity = function (part) {\r\n if (part.LineItemQuantity > 1) {\r\n part.LineItemQuantity--;\r\n }\r\n };\r\n \r\n vm.masterInvetoryList = [];\r\n vm.GetAllVisibleMasterParts = function () {\r\n var data = {\r\n \"PartName\": \"\",\r\n \"PartCategoryGroup\": \"\",\r\n \"PartBrand\": \"\",\r\n \"PartSubGroup\": \"\",\r\n \"SearchText\": \"\"\r\n }\r\n InventoryItemListService.GetAllVisibleMasterParts(data, loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.masterInvetoryList = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetAllVisibleMasterParts();\r\n \r\n vm.deletePart = function (orderpart) {\r\n const index = vm.orderItemsDataToUpdate.indexOf(orderpart);\r\n if (index !== -1) {\r\n vm.orderItemsDataToUpdate.splice(index, 1);\r\n }\r\n };\r\n \r\n \r\n vm.closeOrderEditingModel = function () {\r\n OrderEditingModel.close();\r\n vm.disableCreateButton = false;\r\n vm.orderDataToUpdate = \"\";\r\n vm.orderItemsDataToUpdate = [];\r\n vm.OrderUpdateReqModel = [];\r\n }\r\n \r\n vm.UpdateTeamPartOrder = function () {\r\n vm.orderItemsDataToUpdate.forEach(function (orderItem) {\r\n const filteredOrderItem = {\r\n strItemId: orderItem.ZOHOItemId || '', \r\n strItemName: orderItem.LineItemDescription || '',\r\n // strSKUId: orderItem.strSKUId || '',\r\n nItemQuantity: orderItem.LineItemQuantity || 1\r\n };\r\n vm.OrderUpdateReqModel.push(filteredOrderItem);\r\n });\r\n if(vm.OrderUpdateReqModel.length > 0){\r\n var data = {\r\n \"OrderId\" : vm.orderDataToUpdate.OrderId,\r\n \"objLIstItemDetaiList\": vm.OrderUpdateReqModel\r\n }\r\n vm.disableCreateButton = true;\r\n TeamPartRequestService.UpdateTeamOrder(data, loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.showSuccess(\"Success\",\"Order Updated Successfully\");\r\n vm.closeOrderEditingModel();\r\n $timeout(function () {\r\n vm.GetAllRequestedPart(); \r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n }\r\n\r\n \r\n\r\n \r\n\r\n vm.WarehouseNameSelected = \"\";\r\n vm.DirectPlaceOrder = function () {\r\n vm.DisableCreateButton = true;\r\n var data = {\r\n \"OrderId\": vm.OrderIdToPlaceOrder,\r\n \"objItemDetails\": []\r\n };\r\n\r\n vm.lineItemPartData.forEach(function(partsData) {\r\n data.objItemDetails.push({\r\n \"MMFPartId\": partsData.ZOHOItemId,\r\n \"WareHouseId\": partsData.selectedWarehouse\r\n }); \r\n });\r\n TeamPartRequestService.DirectPlaceOrder(data, token ).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.closecreateCartMoreModal();\r\n vm.DisableCreateButton = false;\r\n vm.showSuccess(\"Success\", resp.data);\r\n setTimeout(function () {\r\n vm.GetAllRequestedPart(vm.OrderStatus);\r\n }, 2000);\r\n } else {\r\n vm.DisableCreateButton = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n });\r\n };\r\n\r\n // vm.GetWareHouseByPartId = function (partId) {\r\n // TeamPartRequestService.GetWareHouseByPartId(partId, loggedinUser, token).then(function (resp) {\r\n // if (resp.data && resp.status == 200) {\r\n // vm.stockAvailableWarehouses = resp.data;\r\n // }\r\n // }, vm.showFailure);\r\n // }\r\n\r\n vm.showPartDetails = false;\r\n\r\n vm.OpenSidePanel = function (s) {\r\n vm.PartDetails = s;\r\n vm.showPartDetails = true;\r\n };\r\n\r\n vm.trackingStatus = false;\r\n vm.TrackingSidePanel = function (p) {\r\n vm.TrackDetails = p;\r\n vm.trackingStatus = true;\r\n };\r\n vm.assigntotech = false;\r\n vm.AssignSidePanel = function (q) {\r\n vm.CountDetails = q;\r\n vm.lineItem = vm.CountDetails.strMMFPartId;\r\n vm.GetServiceCentenAndTeamStockData();\r\n vm.assigntotech = true;\r\n };\r\n\r\n vm.getPic = function (LineItemAttachment) {\r\n return LineItemAttachment\r\n ? ApiURL +\r\n \"/api/ZohoInventoryController/GetItemImage?item=\" +\r\n LineItemAttachment\r\n : null;\r\n };\r\n\r\n vm.disableCreateButton = false;\r\n\r\n vm.DisableCreateButton = function (disable) {\r\n if (disable) {\r\n vm.disableCreateButton = true;\r\n } else {\r\n vm.disableCreateButton = false;\r\n }\r\n };\r\n\r\n vm.AssignStockModel = function (type, user) {\r\n vm.PartActionType = type;\r\n vm.userDetails = user;\r\n if (user.strMMFPartId) {\r\n vm.lineItem = user.strMMFPartId;\r\n }\r\n vm.createTaskModelOpen = $uibModal.open({\r\n templateUrl: \"createtask.html\",\r\n backdrop: \"static\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.CloseAssignStockModel = function () {\r\n vm.createTaskModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.StockCountToAssign = 1;\r\n };\r\n\t\t\r\n\r\n vm.CountPopup = function (lineItem) {\r\n vm.lineItem = lineItem;\r\n vm.GetServiceCentenAndTeamStockData();\r\n vm.COuntTaskModelOpen = $uibModal.open({\r\n templateUrl: \"countclick.html\",\r\n backdrop: \"static\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.ClosecountpopupModel = function () {\r\n vm.COuntTaskModelOpen.close();\r\n };\r\n\r\n $scope.totalFinList = 0;\r\n $scope.usersPerPage = vm.allSalesOrderPageListCount;\r\n $scope.SalesOrderPagination = {\r\n current: 1,\r\n };\r\n\r\n vm.changeAllSalesOrderPageListCount = function () {\r\n $scope.usersPerPage = vm.allSalesOrderPageListCount;\r\n fPageSize = $scope.usersPerPage;\r\n $scope.AllSalesOrderTablePageChanged(\r\n $scope.SalesOrderPagination.current\r\n );\r\n vm.selectAll = false;\r\n fPageIndex = $scope.SalesOrderPagination.current;\r\n $scope.AllSalesOrderTablePageChanged = function (newPage) {\r\n fPageIndex = newPage;\r\n vm.GetAllRequestedPart(\r\n token,\r\n vm.OrderStatus,\r\n vm.SearchText,\r\n vm.partName,\r\n vm.brandName,\r\n vm.productGroup,\r\n vm.orderBy,\r\n vm.sortType,\r\n fPageIndex,\r\n fPageSize,\r\n startDate,\r\n endDate,\r\n vm.dateField\r\n );\r\n };\r\n };\r\n\r\n fPageIndex = $scope.SalesOrderPagination.current;\r\n $scope.AllSalesOrderTablePageChanged = function (newPage) {\r\n fPageIndex = newPage;\r\n vm.GetAllRequestedPart(\r\n token,\r\n vm.OrderStatus,\r\n vm.SearchText,\r\n vm.partName,\r\n vm.brandName,\r\n vm.productGroup,\r\n vm.orderBy,\r\n vm.sortType,\r\n fPageIndex,\r\n fPageSize,\r\n startDate,\r\n endDate,\r\n vm.dateField\r\n );\r\n };\r\n\r\n vm.orderdetailsview = function (salesOrderDetail) {\r\n $state.go(\r\n \"index.WareHouseOrderDetailView\",\r\n {\r\n order_id: salesOrderDetail,\r\n },\r\n {\r\n reload: true,\r\n }\r\n );\r\n };\r\n\r\n vm.TicketPartOrderList = [];\r\n vm.GetAllRequestedPart = function () {\r\n TeamPartRequestService.GetAllRequestedPart(\r\n token,vm.OrderStatus,\r\n vm.SearchText,\r\n vm.partName,\r\n vm.brandName,\r\n vm.productGroup,\r\n vm.orderBy,\r\n vm.sortType,\r\n fPageIndex,\r\n fPageSize,\r\n startDate,\r\n endDate,\r\n vm.dateField\r\n ).then(\r\n function (resp) {\r\n if (resp && resp.data) {\r\n vm.TicketPartOrderList = resp.data.requestedPartInventories;\r\n $scope.totalFinList = resp.data.Count;\r\n if (\r\n vm.TicketPartOrderList.length < vm.allSalesOrderPageListCount\r\n ){\r\n vm.financeListLength = $scope.totalFinList;\r\n }\r\n else{\r\n vm.financeListLength =\r\n fPageIndex * vm.allSalesOrderPageListCount;\r\n }\r\n if (fPageIndex == 1){ vm.fpageindexCount = 1;\r\n }\r\n else{\r\n vm.fpageindexCount =\r\n (fPageIndex - 1) * vm.allSalesOrderPageListCount + 1;\r\n }\r\n $scope.isCollapsed = true; \r\n }\r\n },\r\n function (error) {}\r\n );\r\n };\r\n\r\n vm.GetAllRequestedPart_CSV = function () {\r\n TeamPartRequestService.GetAllRequestedPart_CSV(token,vm.OrderStatus,vm.SearchText,vm.partName,vm.brandName,vm.productGroup,vm.orderBy,vm.sortType,fPageIndex,fPageSize,startDate,endDate,vm.dateField).then(\r\n function (resp) {\r\n if (resp && resp.data) {\r\n var csvRequestedData = resp.data;\r\n var blob = new Blob([csvRequestedData], { type: 'text/csv' });\r\n var url = window.URL.createObjectURL(blob);\r\n var a = document.createElement('a');\r\n a.href = url;\r\n a.download = 'All_Part_Requested_List.csv';\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n \r\n }\r\n },\r\n function (error) {}\r\n );\r\n };\r\n\r\n vm.GetUserInventoryStockCsvDownload = function () {\r\n\r\n\t\t\tvar data = {\r\n\t\t\t\tWareHouseId: vm.WareHouseId,\r\n SearchText: vm.SearchText,\r\n PageIndex: dPageIndex,\r\n PageSize:dPageSize,\r\n StockType: vm.OrderStatus,\r\n Category: vm.partName,\r\n BrandName: vm.brandName,\r\n ProductGroup: vm.productGroup,\r\n StartDate: startDate,\r\n EndDate: endDate,\r\n OrderBy: vm.orderBy,\r\n SortType: vm.sortType,\r\n UserId: vm.UserId,\r\n ServiceCenterUserId: vm.ServiceCenterUserId ,\r\n ServiceCenterVendorId: vm.ServiceCenterVendorId,\r\n MMFPartId: vm.lineItem\r\n\t\t\t}\r\n TeamPartRequestService.GetUserInventoryStockCsvDownload(data,token).then(function (resp) {\r\n if (resp && resp.data) {\r\n var csvData = resp.data;\r\n\r\n // Create a Blob from the CSV data\r\n var blob = new Blob([csvData], { type: \"text/csv\" });\r\n\r\n // Create a URL for the Blob\r\n var url = window.URL.createObjectURL(blob);\r\n\r\n // Create an anchor element for the download link\r\n var a = document.createElement(\"a\");\r\n a.href = url;\r\n a.download = \"inventory.csv\"; // Set the desired filename\r\n\r\n // Simulate a click to trigger the download\r\n a.click();\r\n\r\n // Release the URL object\r\n window.URL.revokeObjectURL(url);\r\n }\r\n });\r\n };\r\n\r\n $scope.totalDefected = 0;\r\n $scope.defectedStockPageRequest = vm.defectedPageListCount;\r\n $scope.Requestpagination = {\r\n current: 1,\r\n };\r\n\r\n vm.changeMyDefectedPageListCount = function () {\r\n $scope.usersPerPageRequest = vm.defectedPageListCount;\r\n uPageSize = $scope.usersPerPageRequest;\r\n $scope.MyDefectedTablePageChanged($scope.Requestpagination.current);\r\n vm.selectAll = false;\r\n\r\n uPageIndex = $scope.Requestpagination.current;\r\n $scope.MyDefectedTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n vm.GetInventoryDefectStockList(\r\n token,\r\n vm.SearchText,\r\n vm.partName,\r\n vm.brandName,\r\n vm.productGroup,\r\n uPageIndex,\r\n uPageSize,\r\n startDate,\r\n endDate\r\n );\r\n };\r\n };\r\n\r\n uPageIndex = $scope.Requestpagination.current;\r\n $scope.MyDefectedTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n vm.GetInventoryDefectStockList(\r\n token,\r\n vm.SearchText,\r\n vm.partName,\r\n vm.brandName,\r\n vm.productGroup,\r\n uPageIndex,\r\n uPageSize,\r\n startDate,\r\n endDate\r\n );\r\n };\r\n\r\n vm.DefectiveStockList = [];\r\n vm.GetInventoryDefectStockList = function () {\r\n TeamPartRequestService.InventoryDefectStockList(\r\n token,\r\n vm.SearchText,\r\n vm.partName,\r\n vm.brandName,\r\n vm.productGroup,\r\n uPageIndex,\r\n uPageSize,\r\n startDate,\r\n endDate\r\n ).then(\r\n function (resp) {\r\n if (resp && resp.data) {\r\n vm.DefectiveStockList = resp.data.inventoryDefectStocks;\r\n $scope.totalDefected = resp.data.count;\r\n if (vm.DefectiveStockList.length < vm.defectedPageListCount)\r\n vm.myDefectedListLength = $scope.totalDefected;\r\n else\r\n vm.myDefectedListLength =\r\n uPageIndex * vm.defectedPageListCount;\r\n if (uPageIndex == 1) vm.dpageindexCount = 1;\r\n else\r\n vm.dpageindexCount =\r\n (uPageIndex - 1) * vm.defectedPageListCount + 1;\r\n }\r\n },\r\n function (error) {}\r\n );\r\n };\r\n\r\n vm.MainActiveTab = 'Parts'\r\n vm.OrderStatus ='pending';\r\n vm.setMainOrderStatus = function (status, mainTab) {\r\n vm.MainActiveTab = mainTab;\r\n vm.OrderStatus = status;\r\n startDate = moment().subtract(30, \"days\").format(\"YYYY-MM-DD\");\r\n endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.UserId = \"\";\r\n vm.partName = \"\";\r\n vm.SearchText = \"\";\r\n vm.brandName = \"\";\r\n vm.productGroup = \"\";\r\n vm.GetAllRequestedPart(status);\r\n };\r\n vm.setMainOrderStatus(\"pending\", \"Parts\");\r\n\r\n vm.changeCategoryFilter = function () {\r\n vm.SearchText = \"\";\r\n fPageIndex = 1;\r\n dPageIndex = 1;\r\n vm.ApplyFilter();\r\n };\r\n\r\n vm.searchByText = function () {\r\n vm.brandName = \"\";\r\n vm.partName = \"\";\r\n vm.productGroup = \"\";\r\n fPageIndex = 1;\r\n dPageIndex = 1;\r\n vm.ApplyFilter();\r\n };\r\n\r\n vm.GetItemGroupName = function () {\r\n if (!vm.brandName) {\r\n vm.brandName = \"\";\r\n }\r\n TeamPartRequestService.GetItemGroupName(vm.brandName, token).then(\r\n function (resp) {\r\n if (resp && resp.data) {\r\n vm.PartNameList = resp.data;\r\n // vm.changeCategoryFilter();\r\n }\r\n }\r\n );\r\n };\r\n vm.GetItemGroupName();\r\n\r\n vm.GetItemListName = function () {\r\n if (!vm.productGroup) {\r\n vm.productGroup = \"\";\r\n }\r\n TeamPartRequestService.GetItemListName(\r\n vm.brandName,\r\n vm.productGroup,\r\n token\r\n ).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.PartList = resp.data;\r\n // vm.changeCategoryFilter();\r\n }\r\n }, vm.showFailure);\r\n };\r\n vm.GetItemListName();\r\n\r\n // vm.GetItemListNameWithId = function () {\r\n // if (!vm.productGroup) {\r\n // vm.productGroup = \"\";\r\n // }\r\n // TeamPartRequestService.GetItemListNameWithId(\r\n // vm.brandName,\r\n // vm.productGroup,\r\n // token\r\n // ).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // vm.PartListWithId = resp.data;\r\n // vm.changeCategoryFilter();\r\n // }\r\n // }, vm.showFailure);\r\n // };\r\n // vm.GetItemListNameWithId();\r\n\r\n vm.GetItemBrandName = function () {\r\n TeamPartRequestService.GetItemBrandName(token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BrandList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n };\r\n vm.GetItemBrandName();\r\n\r\n vm.AddDefectedStockModal = function () {\r\n vm.StockModal = $uibModal.open({\r\n templateUrl: \"DefectedStock.html\",\r\n backdrop: \"static\",\r\n size: \"lg\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.closeDefectedStockModal = function () {\r\n vm.StockModal.close();\r\n vm.addTicketId = \"\";\r\n vm.partName = \"\";\r\n vm.brandName = \"\";\r\n vm.addType = \"\";\r\n vm.productGroup = \"\";\r\n vm.addQuantity = 0;\r\n };\r\n\r\n\r\n vm.CreateInvoiceToStockAlllocationToFielEngineer = function () {\r\n vm.DisableCreateButton(true);\r\n var data = {\r\n TicketId: vm.allocatedetails,\r\n OrderId : vm.allocatedOrderId\r\n };\r\n TeamPartRequestService.CreateInvoiceToStockAlllocationToFielEngineer(data,loggedinUser,token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Part allocated successfully.\");\r\n vm.closeAllocateModal();\r\n vm.DisableCreateButton(false);\r\n $timeout(function () {\r\n vm.GetAllRequestedPart(vm.OrderStatus);\r\n }, 2000);\r\n } else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n };\r\n vm.IsShipmentVisible = false;\r\n \r\n\r\n \r\n\r\n vm.setSelectedItem = function (item) {\r\n vm.OrderStatus = item;\r\n vm.TicketPartOrderList = [];\r\n vm.changeCategoryFilter();\r\n };\r\n vm.stockitem = \"\";\r\n\r\n vm.slectedMystockitem = function (myitem) {\r\n vm.stockitem = myitem;\r\n vm.OrderStatus = myitem;\r\n vm.changeCategoryFilter();\r\n };\r\n vm.OrdercreateModal = function () {\r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n vm.OrderModal = $uibModal.open({\r\n templateUrl: \"CreateOrderModal.html\",\r\n backdrop: \"static\",\r\n size: \"lg\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.closeOrdercreateModal = function () {\r\n vm.OrderModal.close();\r\n vm.dataFilters = [];\r\n };\r\n\r\n vm.addMoreFilter = function () {\r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n };\r\n vm.addNewFilter = function (filter) {\r\n vm.dataFilters.push({\r\n PartName: filter.PartName,\r\n Quantity: filter.Quantity,\r\n WareHouse: filter.WareHouse,\r\n OrderType: filter.OrderType,\r\n TicketId: filter.TicketId,\r\n Remark: filter.Remark,\r\n });\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n };\r\n\r\n $scope.deleteDataFilter = function (filter) {\r\n const index = vm.dataFilters.indexOf(filter);\r\n if (index !== -1) {\r\n vm.dataFilters.splice(index, 1);\r\n }\r\n };\r\n\r\n vm.GetShipmentOrder = function (salesOrderNumber) {\r\n TeamPartRequestService.GetShipmentOrder(\r\n salesOrderNumber,\r\n loggedinUser,\r\n token\r\n ).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TrackingDetails = resp.data;\r\n }\r\n });\r\n };\r\n\r\n vm.TrackinDetailForDefectItem = function (trackingId) {\r\n TeamPartRequestService.TrackinDetailForDefectItem(\r\n trackingId,\r\n loggedinUser,\r\n token\r\n ).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TrackingDetails = resp.data;\r\n }\r\n });\r\n };\r\n\r\n vm.GetTrackingDetailsByTrackinNumber = function (trackingNo, ticketId) {\r\n vm.trackNo = trackingNo;\r\n var data = {\r\n Id: ticketId,\r\n trackingNumber: trackingNo,\r\n };\r\n TeamPartRequestService.GetTrackingDetailsByTrackinNumber(\r\n data,\r\n token\r\n ).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.getTrackingDetailsList = resp.data;\r\n vm.lastTag =\r\n vm.getTrackingDetailsList[\r\n vm.getTrackingDetailsList.length - 1\r\n ].tag;\r\n }\r\n }\r\n });\r\n };\r\n\r\n // vm.GetItemListName = function () {\r\n // \tTeamPartRequestService.GetItemListName(token).then(function (resp) {\r\n // \t\tif (resp && resp.data) {\r\n // \t\t\tvm.PartList = resp.data;\r\n // \t\t}\r\n // \t}, vm.showFailure);\r\n // }\r\n // vm.GetItemListName();\r\n\r\n vm.GetServiceCentenAndTeamStockData = function () {\r\n TeamPartRequestService.GetServiceCentenAndTeamStockData(vm.lineItem,vm.SearchTag,token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TeamStockData = resp.data;\r\n }\r\n }, vm.showFailure);\r\n };\r\n\r\n vm.PullBackStockToTechnician = function () {\r\n // vm.stockAssignation_form.submitted = true;\r\n // if (vm.stockAssignation_form.$valid) {\r\n vm.DisableCreateButton(true);\r\n var data = {\r\n UserId: vm.userDetails.PartOwnerId,\r\n MMFPartId: vm.lineItem,\r\n StockCount: vm.StockCountToAssign,\r\n // \"PartActionType\": vm.PartActionType\r\n };\r\n TeamPartRequestService.PullBackStockToTechnician(data,loggedinUser,token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseAssignStockModel();\r\n setTimeout(function () {\r\n // vm.GetServiceCentenAndTeamStockData(vm.lineItem);\r\n vm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n }, 2000);\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.DisableCreateButton(false);\r\n }\r\n });\r\n // }\r\n };\r\n vm.GetAllWareHouseForExploration = function () {\r\n TeamPartRequestService.GetAllWareHouseForExploration(\r\n loggedinUser,\r\n token\r\n ).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.warehouseExploreList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n };\r\n vm.GetAllWareHouseForExploration();\r\n\r\n \r\n vm.OpenStockTransferModel = function (partDetails) {\r\n vm.lineItem = partDetails.LineItemId;\r\n vm.PartToBeTransferDetail = partDetails.LineItemDescription;\r\n vm.GetServiceCentenAndTeamStockData();\r\n vm.stockTransferModelOpen = $uibModal.open({\r\n templateUrl: \"stockTransferModal.html\",\r\n backdrop: \"static\",\r\n scope: $scope,\r\n size: \"lg\",\r\n });\r\n };\r\n\r\n vm.CloseStockTransferModel = function () {\r\n vm.stockTransferModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.transferFromUser = \"\";\r\n vm.transferToUser = \"\";\r\n vm.transferQuantity = 0;\r\n };\r\n\r\n vm.defectItems = [];\r\n\r\n vm.Acceptancemodel = function (requestDetails) {\r\n vm.AllRequestDetail = requestDetails;\r\n vm.TicketForAcceptance = requestDetails.TicketId;\r\n vm.acceptanceModelOpen = $uibModal.open({\r\n templateUrl: \"acceptancepopup.html\",\r\n backdrop: \"static\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.CloseAcceptanceModel = function () {\r\n vm.isDefective = false;\r\n vm.acceptanceModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.TicketForAcceptance = \"\";\r\n vm.DefectedCount = 0;\r\n vm.defectItems = [];\r\n };\r\n\r\n vm.submitForm = function () {\r\n if (vm.isDefective == true) {\r\n for (var i = 0; i < vm.AllRequestDetail.NameList.length; i++) {\r\n vm.defectItems[i].IetemName = vm.AllRequestDetail.NameList[i];\r\n }\r\n }\r\n\r\n vm.MarkSalesOrderDelivered();\r\n };\r\n\r\n vm.MarkSalesOrderDelivered = function () {\r\n // vm.stockAssignation_form.submitted = true;\r\n // if (vm.stockAssignation_form.$valid) {\r\n vm.DisableCreateButton(true);\r\n var data = {\r\n SalesOrderId: vm.AllRequestDetail.ZOHOSalesOrderId,\r\n Organization_id: \"\",\r\n AcceptanceProof: \"\",\r\n TicketId: vm.TicketForAcceptance,\r\n defectItems: vm.defectItems,\r\n };\r\n TeamPartRequestService.MarkSalesOrderasDelivered(\r\n data,\r\n loggedinUser,\r\n token\r\n ).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n vm.CloseAcceptanceModel();\r\n vm.DisableCreateButton(false);\r\n $timeout(function () {\r\n if (vm.MainActiveTab == \"Parts\") {\r\n vm.GetAllRequestedPart(vm.OrderStatus);\r\n }\r\n }, 2000);\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n });\r\n // }\r\n };\r\n\r\n\t\tvm.AttachedFileName = \"\"\r\n\t\t$scope.uploadImageFile = function(files){\r\n\t\t\tvar file = files.files[0];\r\n\t\t\tvm.AttachedFileName = file.name;\r\n\t \r\n\t\t\t// var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n\t\t\t// filename = loggedinUser+\"_ProfilePic_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n\t\t\t// var file = new File([file], filename, {type:file.type});\r\n\t \r\n\t\t\t// if(file.type.indexOf(\"image/jpg\")>=0 || file.type.indexOf(\"image/png\")>=0 \r\n\t\t\t// \t|| file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n\t\t\t// var data = new FormData();\r\n\t\t\t// data.append(\"files\", file);\r\n\t\t\t// } else {\r\n\t\t\t// vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n\t\t\t// }\r\n\t\t }\r\n\r\n\t\t vm.OpenReturnModel = function (requestDetails, Type) {\r\n\t\t\tvm.ReturnType = Type;\r\n\t\t\tvm.ReturnRequest = requestDetails;\r\n\t\t\tif (vm.ReturnType == \"Good\") {\r\n\t\t\t vm.ReturnOrderType = \"Purchase return\";\r\n\t\t\t vm.ReturnQuantity = vm.ReturnRequest.nTotalGoodStock;\r\n\t\t\t} else if (vm.ReturnType == \"Dead\") {\r\n\t\t\t vm.ReturnOrderType = \"Sale return\";\r\n\t\t\t vm.ReturnQuantity = vm.ReturnRequest.nTotalDeadStock;\r\n\t\t\t}\r\n\t\t\tvm.returnModelOpen = $uibModal.open({\r\n\t\t\t templateUrl: \"returnpopup.html\",\r\n\t\t\t backdrop: \"static\",\r\n\t\t\t scope: $scope,\r\n\t\t\t size: \"lg\",\r\n\t\t\t});\r\n\t\t };\r\n \r\n\t\t vm.CloseReturnModel = function () {\r\n\t\t\tvm.returnModelOpen.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.defectedTrackingId = \"\";\r\n\t\t\tvm.warehouselist = \"\";\r\n\t\t\tvm.AttachedFileName = \"\";\r\n\t\t\tvm.ReturnQuantity =\"\";\r\n\r\n\r\n\t\t };\r\n \r\n\r\n vm.defectedTrackingId = \"\";\r\n vm.ReturnOrderPlace = function () {\r\n vm.DisableCreateButton(true);\r\n var data = {\r\n WareHouseID: vm.warehouselist,\r\n ReturnOrderType: vm.ReturnOrderType,\r\n ReturnOrderStockType: vm.ReturnType,\r\n Attachment: vm.AttachedFileName,\r\n cardItemDetails: [\r\n {\r\n SKUId: vm.ReturnRequest.strSKUId,\r\n MMFPartId: vm.ReturnRequest.strMMFPartId,\r\n StockCount: vm.ReturnQuantity,\r\n },\r\n ],\r\n };\r\n TeamPartRequestService.ReturnOrderPlace(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseReturnModel();\r\n vm.DisableCreateButton(false);\r\n $timeout(function () {\r\n vm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n // vm.GetInventoryDashboardByServiceCenter();\r\n }, 2000);\r\n } else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n };\r\n\r\n\r\n\t\tvm.AllocateStockToFieldEngineer = function () {\r\n\t\t\tvm.DisableCreateButton(true);\r\n\t\t\tvar data = {\r\n\t\t\t\tUserId: vm.userDetails.UserId,\r\n\t\t\t cardItemDetails: [\r\n\t\t\t\t{\r\n\t\t\t\t SKUId: vm.CountDetails.strSKUId,\r\n\t\t\t\t MMFPartId: vm.CountDetails.strMMFPartId,\r\n\t\t\t\t StockCount: vm.StockCountToAssign,\r\n\t\t\t\t},\r\n\t\t\t ],\r\n\t\t\t};\r\n\t\t\tTeamPartRequestService.AllocateStockToFieldEngineer(data,loggedinUser, token).then(function (resp) {\r\n\t\t\t if (resp && resp.status == 200) {\r\n\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\tvm.createTaskModelOpen.close();\r\n\t\t\t\tvm.assigntotech=false; \r\n\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t vm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n\t\t\t\t // vm.GetInventoryDashboardByServiceCenter();\r\n\t\t\t\t}, 2000);\r\n\t\t\t } else {\r\n\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t }\r\n\t\t\t});\r\n\t\t };\r\n\r\n vm.TransferInventory = function () {\r\n vm.DisableCreateButton(true);\r\n var data = {\r\n LineItemId: vm.lineItem,\r\n SenderUserId: vm.transferFromUser,\r\n ReciverUserId: vm.transferToUser,\r\n StockCount: vm.transferQuantity,\r\n };\r\n TeamPartRequestService.TransferInventory(\r\n data,\r\n loggedinUser,\r\n token\r\n ).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n vm.CloseStockTransferModel();\r\n vm.DisableCreateButton(false);\r\n $timeout(function () {\r\n vm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n // vm.GetInventoryDashboardByServiceCenter();\r\n }, 2000);\r\n } else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n });\r\n };\r\n\r\n vm.addFiles = function () {\r\n $(\"#dropzone1\").trigger(\"click\");\r\n };\r\n vm.TicketPartOrderList = [];\r\n vm.rejectpart = [];\r\n vm.RejectModal = function (item) {\r\n vm.rejectpart = item;\r\n vm.RejctShareModal = $uibModal.open({\r\n templateUrl: \"rejectmodal.html\",\r\n backdrop: \"static\",\r\n size: \"lg\",\r\n scope: $scope,\r\n });\r\n };\r\n vm.closerejectmodal = function () {\r\n vm.DisableCreateButton(false);\r\n vm.updateStatusRemark = \"\";\r\n vm.updateLineitemStatus = \"\";\r\n vm.RejctShareModal.close();\r\n };\r\n\r\n vm.UpdateRequestInventoryJobLineItemStatus = function () {\r\n vm.DisableCreateButton(true);\r\n vm.updateLineitemStatus = \"Rejected\";\r\n TeamPartRequestService.UpdateRequestInventoryJobLineItemStatus(\r\n vm.salesOrderId,\r\n vm.updateLineitemStatus,\r\n vm.rejectpart.LineItemId,\r\n vm.updateStatusRemark,\r\n token\r\n ).then(function (resp) {\r\n if (resp.status == 202) {\r\n vm.closerejectmodal();\r\n setTimeout(function () {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $scope.isCollapsed = true;\r\n vm.GetAllRequestedPart(vm.OrderStatus);\r\n }, 2000);\r\n } else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n };\r\n\r\n vm.resetFilters = function () {\r\n vm.brandName = \"\";\r\n vm.productGroup = \"\";\r\n vm.partName = \"\";\r\n vm.ticketdates = \"\";\r\n vm.SearchText = \"\";\r\n vm.UserId = \"\";\r\n fPageIndex = 1;\r\n vm.selectedPart = \"\"\r\n vm.changeCategoryFilter();\r\n };\r\n\r\n vm.downloadCSV = function () {\r\n var worksheet = alasql(\r\n 'SELECT * INTO XLSX(\"users.xlsx\", {headers:true}) FROM ?',\r\n [$scope.users]\r\n );\r\n };\r\n vm.OpenAllocateModal = function (allocate,OrderId) {\r\n vm.allocatedetails = allocate;\r\n vm.allocatedOrderId = OrderId\r\n vm.AllocateModal = $uibModal.open({\r\n templateUrl: \"allocationModal.html\",\r\n backdrop: \"static\",\r\n size: \"md\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.closeAllocateModal = function () {\r\n vm.AllocateModal.close();\r\n vm.allocatedOrderId = \"\";\r\n vm.allocatedetails = \"\";\r\n };\r\n\r\n\r\n vm.IsVisible = false;\r\n var createOrderData = [];\r\n var wareHouseItemList = [];\r\n var sendWdata = {};\r\n vm.TotalInventoryAmount = \"0\";\r\n vm.ShowCreateShipment = function (index) {\r\n vm.listWdata = [];\r\n if (index.lineItem.LineItemId) {\r\n vm.GetWarehouse(index.lineItem.LineItemId, index.TicketId);\r\n }\r\n vm.GetPartRequestOrderLineItem(\"\", index.TicketId);\r\n vm.JobLineItemId = index.lineItem.LineItemId;\r\n vm.ShipmentTicketId = index.TicketId;\r\n vm.TotalInventoryAmount = index.OrderAmount;\r\n };\r\n\r\n vm.closeWarehouseModal = function () {\r\n vm.ShareModal.close();\r\n };\r\n vm.GetWarehouse = function (warehouseLineItemId, ticketId) {\r\n var warehouseData = {\r\n Id: warehouseLineItemId,\r\n TicketId: ticketId,\r\n };\r\n TeamPartRequestService.GetWarehouse(token, warehouseData).then(\r\n function (resp) {\r\n vm.warehouseList = resp.data;\r\n }\r\n );\r\n };\r\n\r\n vm.WarehouseNameSelected = \"\";\r\n vm.createSalesOrder = function () {\r\n vm.DisableCreateButton(true);\r\n angular.forEach(vm.PartRequestLineitemData, function (d) {\r\n if (d.BackendApprovalStatus != \"Rejected\") {\r\n sendWdata = {\r\n JobLineItemId: d.LineItemId,\r\n selectedWarehouse: vm.WarehouseNameSelected,\r\n };\r\n createOrderData.push(sendWdata);\r\n }\r\n });\r\n data = {\r\n itemIdWithWarehouseModels: createOrderData,\r\n TicketId: vm.salesOrderId,\r\n };\r\n TeamPartRequestService.createSalesOrder(token, data).then(function (\r\n resp\r\n ) {\r\n if (resp.status == 200) {\r\n vm.closeWarehouseModal();\r\n vm.DisableCreateButton(false);\r\n vm.showSuccess(\"Success\", \"Order Placed Successfully.\");\r\n setTimeout(function () {\r\n vm.GetAllRequestedPart(vm.OrderStatus);\r\n }, 2000);\r\n } else {\r\n createOrderData = [];\r\n wareHouseItemList = [];\r\n sendWdata = {};\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n });\r\n };\r\n\r\n vm.GetSalesOrder = function (isCollapsed, salesOrderId) {\r\n if (vm.salesOrderId == salesOrderId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.activeRow = salesOrderId;\r\n vm.salesOrderId = salesOrderId;\r\n if (vm.salesOrderId) {\r\n TeamPartRequestService.GetSalesOrder(\r\n loggedinUser,\r\n vm.salesOrderId,\r\n token\r\n ).then(\r\n function (resp) {\r\n if (resp && resp.data) {\r\n vm.OrderList = resp.data.salesorder.line_items;\r\n }\r\n },\r\n function () {}\r\n );\r\n }\r\n };\r\n\r\n vm.OpenLineItemData = function (isCollapsed, lineItementry) {\r\n vm.LineItemData = lineItementry;\r\n vm.selectedTicketId = lineItementry.TicketId;\r\n if (vm.salesOrderId == vm.selectedTicketId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n else {\r\n $scope.isCollapsed = false;\r\n }\r\n $scope.activeRow = vm.selectedTicketId;\r\n vm.salesOrderId = vm.selectedTicketId;\r\n };\r\n\r\n vm.PartRequestLineitemData = [];\r\n vm.GetPartRequestOrderLineItem = function (isCollapsed, ticketId) {\r\n if (vm.salesOrderId == ticketId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.activeRow = ticketId;\r\n vm.salesOrderId = ticketId;\r\n TeamPartRequestService.GetRequestedLineItemDetailsByTicketId(\r\n loggedinUser,\r\n vm.salesOrderId,\r\n token\r\n ).then(\r\n function (resp) {\r\n if (resp && resp.data) {\r\n vm.listWdata = [];\r\n wareHouseItemList = [];\r\n vm.PartRequestLineitemData = resp.data.LineItemList;\r\n if (!isCollapsed) {\r\n angular.forEach(vm.PartRequestLineitemData, function (d) {\r\n if (d.BackendApprovalStatus != \"Rejected\") {\r\n var hwData = {\r\n warehouseDescription: d.LineItemDescription,\r\n warehouseQuantity: d.LineItemQuantity,\r\n warehouseValue: d.dLineItemWinPrice,\r\n };\r\n }\r\n wareHouseItemList.push(hwData);\r\n });\r\n\r\n vm.listWdata = wareHouseItemList;\r\n }\r\n }\r\n },\r\n function () {}\r\n );\r\n };\r\n\r\n // vm.sortColumn = function (col) {\r\n // \tvm.SortField = col;\r\n // \tif (vm.SortType == 'desc') {\r\n // \t\tvm.SortType = 'asc';\r\n // \t\tvm.reverseclass = 'fa fa-arrow-up';\r\n // \t\tvm.ApplyFilter();\r\n // \t} else {\r\n // \t\tvm.SortType = 'desc';\r\n // \t\tvm.reverseclass = 'fa fa-arrow-down';\r\n // \t\tvm.ApplyFilter();\r\n // \t}\r\n // };\r\n\r\n // vm.sortClass = function (col) {\r\n // \tif (vm.SortField == col) {\r\n // \t\tif (vm.SortType == 'desc') {\r\n // \t\t\treturn 'fa fa-arrow-down';\r\n // \t\t} else {\r\n // \t\t\treturn 'fa fa-arrow-up';\r\n // \t\t}\r\n // \t}\r\n // \telse {\r\n // \t\treturn '';\r\n // \t}\r\n // }\r\n vm.PartListWithFilter = [];\r\n\r\n vm.GetItemPartName = function () {\r\n vm.PartListWithFilter = [];\r\n if (!vm.partName) {\r\n vm.partName = \"\";\r\n }\r\n InventoryItemListService.GetItemPartName(vm.brandName,vm.productGroup,vm.partName,loggedinUser,token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.PartListWithFilter = resp.data;\r\n }\r\n }, vm.showFailure);\r\n };\r\n vm.GetItemPartName();\r\n\r\n vm.PDFView = function (page) {\r\n vm.pdfimage = \"\";\r\n vm.IsLoadSucessfull = false;\r\n $scope.selected = null;\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: \"PDFView.html\",\r\n size: \"lg\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.PDFUserModal = function () {\r\n jobAppointmentModal.close();\r\n };\r\n\r\n function base64ToArrayBuffer(base64) {\r\n var ret = base64.replace(\"data:application/pdf;base64,\", \"\");\r\n var binaryString = atob(ret);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n }\r\n\r\n vm.viewInvoicePdf = function (file) {\r\n vm.PDFView();\r\n TeamPartRequestService.viewReportPdf(loggedinUser, token, file).then(\r\n function (resp) {\r\n if (resp.status == 200) {\r\n vm.InvoiceData = resp.data;\r\n var arrrayBuffer = base64ToArrayBuffer(vm.InvoiceData);\r\n var blob = new Blob([arrrayBuffer], {\r\n type: \"application/pdf\",\r\n });\r\n vm.pdfimage = URL.createObjectURL(blob);\r\n vm.IsLoadSucessfull = true;\r\n }\r\n }\r\n );\r\n };\r\n \r\n vm.ApplyFilter = function () {\r\n if (!vm.UserId) {\r\n vm.UserId = \"\";\r\n }\r\n if (vm.MainActiveTab == \"Parts\") {\r\n vm.GetAllRequestedPart(vm.OrderStatus);\r\n }\r\n };\r\n }\r\n }\r\n );\r\n\nangular.module('inspinia').service('TeamMyStockService', function (ApiURL,AcessoriesURL, SchedulingAPI, $window, $localStorage, $http) {\r\n\r\n this.GetUserInventoryStockforweb = function (data,token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetUserInventoryStockforweb'\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetInventoryDashboardByServiceCenter = function (data,token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetInventoryDashboardByServiceCenter'\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.InventoryDefectStockList = function (token, SearchText, category, brandName, productGroup, uPageIndex, uPageSize, startDate, endDate) {\r\n var url = ApiURL + '/api/ZohoInventoryController/InventoryDefectStockList?Category=' + category + '&BrandName=' + brandName + '&ItemGroup=' + productGroup + '&SearchText=' + SearchText + '&StartDate=' + startDate + '&EndDate=' + endDate + '&PageSize=' + uPageSize + '&PageIndex=' + uPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetItemBrandName = function (token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemBrandName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetItemGroupName = function (brandName, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemGroupName?BrandName=' + brandName;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetItemListName = function (brandName, productGroup, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemListName?BrandName=' + brandName + '&ItemGroupName=' + productGroup;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetItemListNameWithId = function (brandName, productGroup,ProductName, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemListNameWithId?BrandName=' + brandName + '&ItemGroupName=' + productGroup + '&ProductName=' + ProductName;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetShipmentOrder = function (salesOrderNumber, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetShipmentOrder?salesOrderNumber=' + salesOrderNumber;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.TrackinDetailForDefectItem = function (trackingId, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/TrackinDetailForDefectItem?TrackingId=' + trackingId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetServiceCentenAndTeamStockData = function (LineItemId, SearchTag, token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetServiceCentenAndTeamStockData?ParrtId=' + LineItemId + '&SearchTag=' + SearchTag;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.PullBackStockToTechnician = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFPart/PullBackStockToTechnician';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.MarkSalesOrderasDelivered = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/MarkSalesOrderasDelivered';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetWarehouse = function (token, data) {\r\n var url = ApiURL + '/api/ItemsInventory/GetNearbyWarehouseList';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetSalesOrder = function (loggedinUser, salesOrderId, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetSalesOrder?salesOrderId=' + salesOrderId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateRequestInventoryJobLineItemStatus = function (ticketId, status, lineitemId, updateStatusRemark, token) {\r\n var url = ApiURL + '/api/JobLineItem/UpdateRequestInventoryJobLineItemStatus?TicketId=' + ticketId + '&Status=' + status + '&LineItemId=' + lineitemId + '&Remark=' + updateStatusRemark;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetRequestedLineItemDetailsByTicketId = function (loggedinUser, salesOrderId, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetRequestedLineItemDetailsByTicketId?TicketId=' + salesOrderId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.createSalesOrder = function (token, data) {\r\n var url = ApiURL + '/api/ItemsInventory/CreateSalesOrderForLineitem';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n // this.InventoryReturnOfDefectPartsByServiceCenter = function (data, loggedinUser, token) {\r\n // var url = ApiURL + '/api/ZohoInventoryController/InventoryReturnOfDefectPartsByServiceCenter';\r\n // return $http.post(url, data, {\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // 'Token': token,\r\n // 'UserId': loggedinUser\r\n // }\r\n // });\r\n // }\r\n this.ReturnOrderPlace = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFReturnOrder/ReturnOrderPlace';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.TransferInventory = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/TransferInventory';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.AddDeadStockToServiceCenter = function (partId,damageStock,damageType, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFPart/AddDeadStockToServiceCenter?PartId=' + partId + '&DeadStock=' + damageStock + '&DamageType=' + damageType;\r\n return $http.post(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.viewReportPdf = function (loggedinUser, token, fileName) {\r\n var url = ApiURL + '/api/Image?fileName=' + fileName;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetUserInventoryStockCsvDownload = function (data,token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetUserInventoryStockforweb_CSV'\r\n return $http.put(url,data ,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetInventoryByWareHouseId = function (data,loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetInventoryByWareHouseId';\r\n return $http.put(url,data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n}\r\n\r\nthis.CreateInvoiceToStockAlllocationToFielEngineer = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrderInvoice/CreateInvoiceToStockAlllocationToFielEngineer';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\nthis.AllocateStockToFieldEngineer = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrderInvoice/AllocateStockToFieldEngineer';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\nthis.GetSearchServiceCenter = function (loggedinUser, token, searchtext) {\r\n var url = ApiURL + '/api/User/SearchServiceCenter?searchText=' + searchtext;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\n// this.GetItemListNameWithId = function (brandName, productGroup,partName,loggedinUser, token) {\r\n// var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemListNameWithId?BrandName=' + brandName + '&ProductGroupName=' + productGroup + '&ProductName='+ partName;\r\n// return $http.get(url, {\r\n// headers: {\r\n// 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n// }\r\n// });\r\n// }\r\n})\r\n\r\n\r\n\nangular\r\n .module(\"inspinia\")\r\n .controller(\r\n \"TeamMyStockController\",\r\n function (\r\n TeamMyStockService, InventoryItemListService, InventoryCartService,\r\n MainService,\r\n $window,\r\n PublicApiURL,\r\n ApiURL,\r\n $state,\r\n $localStorage,\r\n $scope,\r\n $uibModal,\r\n $timeout,\r\n $stateParams\r\n ) {\r\n vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm.NokiaTableHeaderChange =\r\n $localStorage.accountConfig.NokiaTableHeaderChange;\r\n var loggedinUserName =\r\n $localStorage.loggedInUser_FirstName +\r\n \" \" +\r\n $localStorage.loggedInUser_LastName;\r\n var token = $localStorage.token;\r\n var loggedinUserImage = $localStorage.picture;\r\n var uTicketId = $stateParams.ticketId;\r\n vm.SearchTag = \"\";\r\n vm.showMapPermision = false;\r\n vm.superPower = false;\r\n $scope.isCollapsed = true;\r\n vm.UserId = \"\";\r\n vm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.VerticalName = vm.getAccountConfigSetting(\"Vertical\");\r\n var accountConfig = $localStorage.accountConfig;\r\n vm.AccountId = $localStorage.accountConfig.AccountId;\r\n vm.isDefective = false;\r\n vm.ImageArray = [];\r\n vm.states = [];\r\n vm.cities = [];\r\n vm.isShow = true;\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n vm.dataFilters = [];\r\n vm.CancellationReasons = \"\";\r\n vm.WareHouseId = \"\";\r\n vm.ServiceCenterUserId = \"\";\r\n vm.selectedServiceCenter = \"\";\r\n vm.IsCommissionDetect = false;\r\n vm.urlForNonFeasible = \"\";\r\n vm.currentStepModel = {};\r\n vm.dtInstanceNearBy = {};\r\n vm.dtInstanceFixed = {};\r\n vm.dtInstance = {};\r\n vm.dtInstancePre = {};\r\n vm.SparePartAddress = {};\r\n vm.disableBroadcastButton = false;\r\n vm.disableRouteButton = false;\r\n vm.IsChatEnabled = true;\r\n vm.showPrefer = \"\";\r\n vm.disabledDrop = false;\r\n vm.showloading = false;\r\n vm.ComplianceDisable = true;\r\n vm.PincodeEnabled = true;\r\n vm.passSerialNum = false;\r\n vm.PrivateDisable = false;\r\n vm.messageText = \"\";\r\n vm.PriceLineItemList = [];\r\n vm.LineItemDataList = [];\r\n vm.lineItem = \"\";\r\n vm.serviceType = \"\";\r\n vm.AppointmentTime = \"\";\r\n vm.ticketPrice = \"\";\r\n vm.freelancerPrice = \"\";\r\n vm.edit = true;\r\n vm.BonusPenaltyList = [];\r\n vm.BonusList = [];\r\n vm.PenaltyList = [];\r\n vm.ShipmentDetails = \"\";\r\n vm.LineitemActivityList = [];\r\n vm.LineItemCategoryType = \"\";\r\n vm.projectId = \"\";\r\n vm.selectedprojectId = \"\";\r\n vm.dynamicpricing = \"\";\r\n vm.FreelancrPriceEnable = \"\";\r\n vm.PercentageEnable = \"\";\r\n var price = 0;\r\n var Quantity = 1;\r\n var totalFPrice = 0.0;\r\n vm.BasePriceTotal = 0.0;\r\n vm.dFreelancerPriceTotal = 0.0;\r\n vm.PercentageTotal = 0.0;\r\n vm.FreelancerPriceTotal = 0.0;\r\n vm.MobiforceCommission =\r\n $localStorage.accountConfig.MobiforceCommissionPercentage;\r\n vm.IsFinalApproval = false;\r\n vm.disableExceptionButton = false;\r\n // vm.IsWithInDays = true;\r\n vm.StockCountToAssign = 1;\r\n vm.PartActionType = \"\";\r\n vm.feedbackremark = \"\";\r\n vm.PlannedClosureDateType = \"first\";\r\n vm.WithInDays = 1;\r\n vm.WithInDaysNumbers = [1, 2, 3, 4, 5];\r\n vm.IsSafetyAudit = \"Not Done\";\r\n vm.ratingwarning = \"\";\r\n vm.approvalRemark = \"\";\r\n vm.MaterialStatusList = [\r\n \"Dispatched\",\r\n \"Delivered\",\r\n \"Partially Delivered\",\r\n \"Not Delivered\",\r\n ];\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.SelectedMaterial = \"\";\r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n vm.ZOHOWarehouseName = \"\";\r\n vm.customerJobCard = [];\r\n vm.PageIndex = 1;\r\n vm.PageSize = 10;\r\n startDate = \"\";\r\n endDate = \"\";\r\n vm.sortType = \"\";\r\n vm.ServiceCenterVendorId = \"\";\r\n vm.orderBy = \"\";\r\n vm.itemValue = \"\";\r\n vm.OrderStatus = \"\";\r\n vm.SearchText = \"\";\r\n var uPageIndex = 1;\r\n var uPageSize = 10;\r\n var dPageSize = 10;\r\n var dPageIndex = 1;\r\n vm.userPageListCount = 10;\r\n vm.financePageListCount = 10;\r\n vm.defectedPageListCount = 10;\r\n vm.brandName = \"\";\r\n vm.partName = \"\";\r\n vm.productGroup = \"\";\r\n vm.BrandListName = \"\";\r\n vm.allSalesOrderPageListCount = 10;\r\n vm.allHistoryOrderPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var startDate = moment().subtract(30, \"days\").format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.dateField = \"CreatedOn\";\r\n vm.ticketdates = {\r\n startDate: moment().subtract(30, \"day\"),\r\n endDate: moment(),\r\n };\r\n vm.ticketranges = {\r\n Today: [moment(), moment()],\r\n Yesterday: [moment().subtract(1, \"days\"), moment().subtract(1, \"days\")],\r\n \"Last 7 days\": [moment().subtract(7, \"days\"), moment()],\r\n \"Last 30 days\": [moment().subtract(30, \"days\"), moment()],\r\n \"This month\": [moment().startOf(\"month\"), moment().endOf(\"month\")],\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.ApplyFilter();\r\n };\r\n if (accountConfig && accountConfig.EnableRegion) {\r\n vm.EnableRegion = accountConfig.EnableRegion;\r\n } else {\r\n vm.EnableRegion = false;\r\n }\r\n\r\n vm.TemplateData = [];\r\n if (!loggedinUser) {\r\n $state.go(\"Login\", {\r\n reload: true,\r\n });\r\n } else {\r\n var token = $localStorage.token;\r\n vm.ticketType = $stateParams.type;\r\n vm.TicketId = $stateParams.ticketId;\r\n\r\n vm.getPicUrl = function (ItemImage) {\r\n return ItemImage\r\n ? ApiURL +\r\n \"/api/ZohoInventoryController/GetItemImage?item=\" +\r\n ItemImage\r\n : null;\r\n };\r\n vm.TrainingImagebase64 = [];\r\n vm.requestPartDetails = false;\r\n vm.OpenPartDetailPanel = function (s) {\r\n vm.PartDetails = s;\r\n vm.sideViewPartImage = s.strPartImages;\r\n for (var i = 0; i < vm.sideViewPartImage.length; i++) {\r\n vm.TrainingImageServices(vm.sideViewPartImage[i], i);\r\n }\r\n vm.requestPartDetails = true;\r\n };\r\n vm.TrainingImageServices = function (img, index) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(\r\n function (resp) {\r\n if (resp.data == null || resp.data == \"\") {\r\n vm.TrainingImagebase64[index] =\r\n \"assets/images/patterns/image_placeholder.png\";\r\n } else {\r\n vm.TrainingImagebase64[index] = resp.data;\r\n }\r\n },\r\n function () {\r\n vm.TrainingImagebase64[index] =\r\n \"assets/images/patterns/image_placeholder.png\";\r\n }\r\n );\r\n };\r\n\r\n vm.showPartDetails = false;\r\n\r\n vm.OpenSidePanel = function (s) {\r\n vm.PartDetails = s;\r\n vm.showPartDetails = true;\r\n };\r\n\r\n vm.trackingStatus = false;\r\n vm.TrackingSidePanel = function (p) {\r\n vm.TrackDetails = p;\r\n vm.trackingStatus = true;\r\n };\r\n vm.assigntotech = false;\r\n vm.MaxLimit = 1;\r\n vm.AssignSidePanel = function (q) {\r\n vm.CountDetails = q;\r\n vm.MaxLimit = q.nTotalGoodStock;\r\n vm.lineItem = vm.CountDetails.strMMFPartId;\r\n vm.GetServiceCentenAndTeamStockData();\r\n vm.assigntotech = true;\r\n };\r\n\r\n vm.getPic = function (LineItemAttachment) {\r\n return LineItemAttachment\r\n ? ApiURL +\r\n \"/api/ZohoInventoryController/GetItemImage?item=\" +\r\n LineItemAttachment\r\n : null;\r\n };\r\n\r\n vm.disableCreateButton = false;\r\n\r\n vm.DisableCreateButton = function (disable) {\r\n if (disable) {\r\n vm.disableCreateButton = true;\r\n } else {\r\n vm.disableCreateButton = false;\r\n }\r\n };\r\n\r\n vm.validateStockCount = function() {\r\n if (vm.StockCountToAssign < 1) {\r\n vm.StockCountToAssign = Math.abs(vm.StockCountToAssign);\r\n }\r\n };\r\n\r\n vm.AssignStockModel = function (type, user) {\r\n vm.PartActionType = type;\r\n vm.userDetails = user;\r\n vm.MaxLimit = user.nQuantityAvailable;\r\n vm.StockCountToAssign = 1;\r\n if (user.strMMFPartId) {\r\n vm.lineItem = user.strMMFPartId;\r\n }\r\n vm.createTaskModelOpen = $uibModal.open({\r\n templateUrl: \"createtask.html\",\r\n backdrop: \"static\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.CloseAssignStockModel = function () {\r\n vm.createTaskModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.StockCountToAssign = 1;\r\n vm.StockType = \"Good\";\r\n };\r\n\r\n\r\n vm.CountPopup = function (lineItem) {\r\n vm.lineItem = lineItem;\r\n vm.GetServiceCentenAndTeamStockData();\r\n vm.COuntTaskModelOpen = $uibModal.open({\r\n templateUrl: \"countclick.html\",\r\n backdrop: \"static\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.ClosecountpopupModel = function () {\r\n vm.COuntTaskModelOpen.close();\r\n };\r\n\r\n vm.orderdetailsview = function (salesOrderDetail) {\r\n $state.go(\r\n \"index.OrderDetailView\",\r\n {\r\n order_id: salesOrderDetail,\r\n },\r\n {\r\n reload: true,\r\n }\r\n );\r\n };\r\n\r\n $scope.totalInventory = 0;\r\n $scope.usersStockPageRequest = vm.financePageListCount;\r\n $scope.Requestpagination = {\r\n current: 1,\r\n };\r\n\r\n vm.changeMyStockPageListCount = function () {\r\n $scope.usersStockPageRequest = vm.financePageListCount;\r\n dPageSize = $scope.usersStockPageRequest;\r\n $scope.Requestpagination.current = 1;\r\n $scope.MystockTablePageChanged($scope.Requestpagination.current);\r\n // vm.selectAll = false;\r\n\r\n // dPageIndex = $scope.Requestpagination.current;\r\n // $scope.MystockTablePageChanged = function (newPage) {\r\n // dPageIndex = newPage;\r\n // vm.GetUserInventoryStockforweb(\r\n // token,\r\n // vm.OrderStatus,\r\n // vm.SearchText,\r\n // vm.partName,\r\n // vm.brandName,\r\n // vm.productGroup,\r\n // vm.orderBy,\r\n // vm.sortType,\r\n // vm.UserId,\r\n // dPageIndex,\r\n // dPageSize,\r\n // startDate,\r\n // endDate\r\n // );\r\n // vm.GetInventoryDashboardByServiceCenter();\r\n // };\r\n };\r\n\r\n // dPageIndex = $scope.Requestpagination.current;\r\n $scope.MystockTablePageChanged = function (newPage) {\r\n dPageIndex = newPage;\r\n vm.GetUserInventoryStockforweb(\r\n token,\r\n vm.OrderStatus,\r\n vm.SearchText,\r\n vm.partName,\r\n vm.brandName,\r\n vm.productGroup,\r\n vm.orderBy,\r\n vm.sortType,\r\n vm.UserId,\r\n dPageIndex,\r\n dPageSize,\r\n startDate,\r\n endDate\r\n );\r\n // vm.GetInventoryDashboardByServiceCenter();\r\n };\r\n\r\n // vm.MyInventoryStockList = [];\r\n vm.GetUserInventoryStockforweb = function () {\r\n vm.MyInventoryStockList = [];\r\n var data = {\r\n SearchText: vm.SearchText,\r\n PageIndex: dPageIndex,\r\n PageSize: dPageSize,\r\n StockType: vm.OrderStatus,\r\n MMFPartName: vm.selectedPart,\r\n BrandName: vm.brandName,\r\n ProductGroup: vm.productGroup,\r\n PartSubGroup: vm.partName,\r\n StartDate: startDate,\r\n EndDate: endDate,\r\n OrderBy: vm.orderBy,\r\n SortType: vm.sortType,\r\n ServiceCenterUserId : vm.selectedServiceCenter\r\n };\r\n TeamMyStockService.GetUserInventoryStockforweb(data, token).then(\r\n function (resp) {\r\n if (resp && resp.data) {\r\n vm.MyInventoryStockList = resp.data.ListMMFPartModelRes;\r\n $scope.totalInventory = resp.data.RecordCount;\r\n vm.totalInventoryValue = resp.data.InventoryTotal;\r\n if (vm.MyInventoryStockList.length < vm.financePageListCount) {\r\n vm.myStockListLength = $scope.totalInventory;\r\n } else {\r\n vm.myStockListLength = dPageIndex * vm.financePageListCount;\r\n }\r\n if (dPageIndex == 1){\r\n vm.countdpageindexCount = 1;\r\n } \r\n else{\r\n vm.countdpageindexCount =\r\n (dPageIndex - 1) * vm.financePageListCount + 1;\r\n }\r\n }\r\n },\r\n function (error) { }\r\n );\r\n };\r\n\r\n vm.GetInventoryDashboardByServiceCenter = function () {\r\n var data = {\r\n SearchText: vm.SearchText,\r\n MMFPartName: vm.selectedPart,\r\n BrandName: vm.brandName,\r\n ProductGroup: vm.productGroup,\r\n PartSubGroup: vm.partName,\r\n StartDate: startDate,\r\n EndDate: endDate,\r\n ServiceCenterUserId : vm.selectedServiceCenter\r\n };\r\n TeamMyStockService.GetInventoryDashboardByServiceCenter(\r\n data,\r\n token\r\n ).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.InvetoryDashboardData = resp.data;\r\n }\r\n }, vm.showFailure);\r\n };\r\n\r\n // vm.GetInventoryDashboardByServiceCenter();\r\n\r\n vm.GetUserInventoryStockCsvDownload = function () {\r\n\r\n var data = {\r\n WareHouseId: vm.WareHouseId,\r\n SearchText: vm.SearchText,\r\n PageIndex: dPageIndex,\r\n PageSize: dPageSize,\r\n StockType: vm.OrderStatus,\r\n Category: vm.partName,\r\n BrandName: vm.brandName,\r\n ProductGroup: vm.productGroup,\r\n StartDate: startDate,\r\n EndDate: endDate,\r\n OrderBy: vm.orderBy,\r\n SortType: vm.sortType,\r\n UserId: vm.UserId,\r\n ServiceCenterUserId: vm.ServiceCenterUserId,\r\n ServiceCenterVendorId: vm.ServiceCenterVendorId,\r\n MMFPartId: vm.lineItem\r\n }\r\n TeamMyStockService.GetUserInventoryStockCsvDownload(data, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n var csvData = resp.data;\r\n var blob = new Blob([csvData], { type: \"text/csv\" });\r\n var url = window.URL.createObjectURL(blob);\r\n var a = document.createElement(\"a\");\r\n a.href = url;\r\n a.download = \"inventory.csv\";\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n }\r\n });\r\n };\r\n\r\n $scope.totalDefected = 0;\r\n $scope.defectedStockPageRequest = vm.defectedPageListCount;\r\n $scope.Requestpagination = {\r\n current: 1,\r\n };\r\n\r\n vm.changeMyDefectedPageListCount = function () {\r\n $scope.defectedStockPageRequest = vm.defectedPageListCount;\r\n uPageSize = $scope.defectedStockPageRequest;\r\n $scope.MyDefectedTablePageChanged($scope.Requestpagination.current);\r\n vm.selectAll = false;\r\n\r\n uPageIndex = $scope.Requestpagination.current;\r\n $scope.MyDefectedTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n vm.GetInventoryDefectStockList(\r\n token,\r\n vm.SearchText,\r\n vm.partName,\r\n vm.brandName,\r\n vm.productGroup,\r\n uPageIndex,\r\n uPageSize,\r\n startDate,\r\n endDate\r\n );\r\n };\r\n };\r\n\r\n uPageIndex = $scope.Requestpagination.current;\r\n $scope.MyDefectedTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n vm.GetInventoryDefectStockList(token, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, uPageIndex, uPageSize, startDate, endDate);\r\n };\r\n\r\n vm.DefectiveStockList = [];\r\n vm.GetInventoryDefectStockList = function () {\r\n TeamMyStockService.InventoryDefectStockList(token, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, uPageIndex, uPageSize, startDate, endDate).then(\r\n function (resp) {\r\n if (resp && resp.data) {\r\n vm.DefectiveStockList = resp.data.inventoryDefectStocks;\r\n $scope.totalDefected = resp.data.count;\r\n if (vm.DefectiveStockList.length < vm.defectedPageListCount)\r\n vm.myDefectedListLength = $scope.totalDefected;\r\n else\r\n vm.myDefectedListLength =\r\n uPageIndex * vm.defectedPageListCount;\r\n if (uPageIndex == 1) vm.dpageindexCount = 1;\r\n else\r\n vm.dpageindexCount =\r\n (uPageIndex - 1) * vm.defectedPageListCount + 1;\r\n }\r\n },\r\n function (error) { }\r\n );\r\n };\r\n\r\n vm.setMainOrderStatus = function (status, mainTab) {\r\n vm.MainActiveTab = mainTab;\r\n vm.OrderStatus = status;\r\n startDate = moment().subtract(30, \"days\").format(\"YYYY-MM-DD\");\r\n endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.UserId = \"\";\r\n vm.partName = \"\";\r\n vm.SearchText = \"\";\r\n vm.brandName = \"\";\r\n vm.productGroup = \"\";\r\n // vm.GetUserInventoryStockforweb(status);\r\n // vm.GetInventoryDashboardByServiceCenter();\r\n\r\n };\r\n vm.setMainOrderStatus(\"GoodStock\", \"My Stock\");\r\n\r\n vm.changeCategoryFilter = function () {\r\n vm.SearchText = \"\";\r\n fPageIndex = 1;\r\n dPageIndex = 1;\r\n vm.ApplyFilter();\r\n };\r\n\r\n vm.searchByText = function () {\r\n vm.brandName = \"\";\r\n vm.partName = \"\";\r\n vm.productGroup = \"\";\r\n fPageIndex = 1;\r\n dPageIndex = 1;\r\n vm.ApplyFilter();\r\n };\r\n\r\n vm.GetItemGroupName = function () {\r\n if (!vm.brandName) {\r\n vm.brandName = \"\";\r\n }\r\n TeamMyStockService.GetItemGroupName(vm.brandName, token).then(\r\n function (resp) {\r\n if (resp && resp.data) {\r\n vm.PartNameList = resp.data;\r\n vm.changeCategoryFilter();\r\n }\r\n }\r\n );\r\n };\r\n vm.GetItemGroupName();\r\n\r\n vm.GetItemListName = function () {\r\n if (!vm.productGroup) {\r\n vm.productGroup = \"\";\r\n }\r\n TeamMyStockService.GetItemListName(\r\n vm.brandName,\r\n vm.productGroup,\r\n token\r\n ).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.PartList = resp.data;\r\n vm.changeCategoryFilter();\r\n }\r\n }, vm.showFailure);\r\n };\r\n vm.GetItemListName();\r\n\r\n \r\n \r\n \r\n\r\n // vm.GetItemListNameWithId = function () {\r\n // if (!vm.productGroup) {\r\n // vm.productGroup = \"\";\r\n // }\r\n // TeamMyStockService.GetItemListNameWithId(\r\n // vm.brandName,\r\n // vm.productGroup,\r\n // token\r\n // ).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // vm.PartListWithId = resp.data;\r\n // vm.changeCategoryFilter();\r\n // }\r\n // }, vm.showFailure);\r\n // };\r\n // vm.GetItemListNameWithId();\r\n\r\n vm.GetItemBrandName = function () {\r\n TeamMyStockService.GetItemBrandName(token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BrandList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n };\r\n vm.GetItemBrandName();\r\n\r\n vm.AddDefectedStockModal = function () {\r\n vm.resetFilters();\r\n vm.StockModal = $uibModal.open({\r\n templateUrl: \"DefectedStock.html\",\r\n backdrop: \"static\",\r\n size: \"lg\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.closeDefectedStockModal = function () {\r\n vm.StockModal.close();\r\n vm.addTicketId = \"\";\r\n vm.partName = \"\";\r\n vm.brandName = \"\";\r\n vm.addType = \"\";\r\n vm.productGroup = \"\";\r\n vm.addQuantity = 0;\r\n vm.selectedPart = \"\";\r\n };\r\n\r\n vm.AddDeadStockToServiceCenter = function () {\r\n vm.DisableCreateButton(true);\r\n TeamMyStockService.AddDeadStockToServiceCenter(\r\n vm.selectedPart,\r\n vm.addQuantity,\r\n vm.addType,\r\n loggedinUser,\r\n token\r\n ).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.closeDefectedStockModal();\r\n vm.DisableCreateButton(false);\r\n $timeout(function () {\r\n vm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n }, 2000);\r\n } else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n };\r\n\r\n vm.stockitem = \"GoodStock\";\r\n\r\n vm.slectedMystockitem = function (myitem) {\r\n vm.stockitem = myitem;\r\n vm.OrderStatus = myitem;\r\n vm.changeCategoryFilter();\r\n };\r\n vm.OrdercreateModal = function () {\r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n vm.OrderModal = $uibModal.open({\r\n templateUrl: \"CreateOrderModal.html\",\r\n backdrop: \"static\",\r\n size: \"lg\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.closeOrdercreateModal = function () {\r\n vm.OrderModal.close();\r\n vm.dataFilters = [];\r\n };\r\n\r\n vm.addMoreFilter = function () {\r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n };\r\n vm.addNewFilter = function (filter) {\r\n vm.dataFilters.push({\r\n PartName: filter.PartName,\r\n Quantity: filter.Quantity,\r\n WareHouse: filter.WareHouse,\r\n OrderType: filter.OrderType,\r\n TicketId: filter.TicketId,\r\n Remark: filter.Remark,\r\n });\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n };\r\n\r\n $scope.deleteDataFilter = function (filter) {\r\n const index = vm.dataFilters.indexOf(filter);\r\n if (index !== -1) {\r\n vm.dataFilters.splice(index, 1);\r\n }\r\n };\r\n\r\n vm.GetShipmentOrder = function (salesOrderNumber) {\r\n TeamMyStockService.GetShipmentOrder(\r\n salesOrderNumber,\r\n loggedinUser,\r\n token\r\n ).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TrackingDetails = resp.data;\r\n }\r\n });\r\n };\r\n\r\n vm.TrackinDetailForDefectItem = function (trackingId) {\r\n TeamMyStockService.TrackinDetailForDefectItem(\r\n trackingId,\r\n loggedinUser,\r\n token\r\n ).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TrackingDetails = resp.data;\r\n }\r\n });\r\n };\r\n\r\n vm.GetTrackingDetailsByTrackinNumber = function (trackingNo, ticketId) {\r\n vm.trackNo = trackingNo;\r\n var data = {\r\n Id: ticketId,\r\n trackingNumber: trackingNo,\r\n };\r\n TeamMyStockService.GetTrackingDetailsByTrackinNumber(\r\n data,\r\n token\r\n ).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.getTrackingDetailsList = resp.data;\r\n vm.lastTag =\r\n vm.getTrackingDetailsList[\r\n vm.getTrackingDetailsList.length - 1\r\n ].tag;\r\n }\r\n }\r\n });\r\n };\r\n vm.searchtext = '';\r\n vm.consumerAllTicketsData = [];\r\n \r\n vm.GetSearchServiceCenter = function () {\r\n TeamMyStockService.GetSearchServiceCenter(loggedinUser,token,vm.searchtext).then(function (resp) {\r\n if (resp && resp.data && resp.status == 200) {\r\n vm.servicecenterData = resp.data;\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.Message)\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.GetSearchServiceCenter();\r\n\r\n // vm.GetItemListName = function () {\r\n // \tTeamMyStockService.GetItemListName(token).then(function (resp) {\r\n // \t\tif (resp && resp.data) {\r\n // \t\t\tvm.PartList = resp.data;\r\n // \t\t}\r\n // \t}, vm.showFailure);\r\n // }\r\n // vm.GetItemListName();\r\n\r\n vm.GetServiceCentenAndTeamStockData = function () {\r\n TeamMyStockService.GetServiceCentenAndTeamStockData(vm.lineItem, vm.SearchTag, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TeamStockData = resp.data;\r\n }\r\n }, vm.showFailure);\r\n };\r\n\r\n vm.StockType = \"\";\r\n vm.profileImg = 'assets/images/patterns/photo2.jpg';\r\n vm.PullBackStockToTechnician = function () {\r\n if(vm.OrderStatus == \"GoodStock\"){\r\n vm.StockType = 'Good';\r\n }\r\n else{\r\n vm.StockType = 'Dead';\r\n }\r\n if(!vm.StockCountToAssign){\r\n vm.StockCountToAssign = 1;\r\n }\r\n vm.DisableCreateButton(true);\r\n var data = {\r\n UserId: vm.userDetails.PartOwnerId,\r\n MMFPartId: vm.lineItem,\r\n StockCount: vm.StockCountToAssign,\r\n StockType: vm.StockType\r\n };\r\n TeamMyStockService.PullBackStockToTechnician(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseAssignStockModel();\r\n setTimeout(function () {\r\n vm.GetServiceCentenAndTeamStockData(vm.lineItem);\r\n vm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n }, 2000);\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.DisableCreateButton(false);\r\n }\r\n });\r\n };\r\n\r\n\r\n vm.OpenStockTransferModel = function (partDetails) {\r\n vm.lineItem = partDetails.LineItemId;\r\n vm.PartToBeTransferDetail = partDetails.LineItemDescription;\r\n vm.GetServiceCentenAndTeamStockData();\r\n vm.stockTransferModelOpen = $uibModal.open({\r\n templateUrl: \"stockTransferModal.html\",\r\n backdrop: \"static\",\r\n scope: $scope,\r\n size: \"lg\",\r\n });\r\n };\r\n\r\n vm.CloseStockTransferModel = function () {\r\n vm.stockTransferModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.transferFromUser = \"\";\r\n vm.transferToUser = \"\";\r\n vm.transferQuantity = 0;\r\n };\r\n\r\n vm.defectItems = [];\r\n\r\n vm.Acceptancemodel = function (requestDetails) {\r\n vm.AllRequestDetail = requestDetails;\r\n vm.TicketForAcceptance = requestDetails.TicketId;\r\n vm.acceptanceModelOpen = $uibModal.open({\r\n templateUrl: \"acceptancepopup.html\",\r\n backdrop: \"static\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.CloseAcceptanceModel = function () {\r\n vm.isDefective = false;\r\n vm.acceptanceModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.TicketForAcceptance = \"\";\r\n vm.DefectedCount = 0;\r\n vm.defectItems = [];\r\n };\r\n\r\n vm.submitForm = function () {\r\n if (vm.isDefective == true) {\r\n for (var i = 0; i < vm.AllRequestDetail.NameList.length; i++) {\r\n vm.defectItems[i].IetemName = vm.AllRequestDetail.NameList[i];\r\n }\r\n }\r\n\r\n vm.MarkSalesOrderDelivered();\r\n };\r\n\r\n vm.MarkSalesOrderDelivered = function () {\r\n // vm.stockAssignation_form.submitted = true;\r\n // if (vm.stockAssignation_form.$valid) {\r\n vm.DisableCreateButton(true);\r\n var data = {\r\n SalesOrderId: vm.AllRequestDetail.ZOHOSalesOrderId,\r\n Organization_id: \"\",\r\n AcceptanceProof: \"\",\r\n TicketId: vm.TicketForAcceptance,\r\n defectItems: vm.defectItems,\r\n };\r\n TeamMyStockService.MarkSalesOrderasDelivered(\r\n data,\r\n loggedinUser,\r\n token\r\n ).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n vm.CloseAcceptanceModel();\r\n vm.DisableCreateButton(false);\r\n $timeout(function () {\r\n if (vm.MainActiveTab == \"Parts\") {\r\n vm.GetAllRequestedPart(vm.OrderStatus);\r\n }\r\n }, 2000);\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n });\r\n // }\r\n };\r\n\r\n vm.AttachedFileName = \"\"\r\n $scope.uploadImageFile = function (files) {\r\n var file = files.files[0];\r\n vm.AttachedFileName = file.name;\r\n\r\n // var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n // filename = loggedinUser+\"_ProfilePic_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n // var file = new File([file], filename, {type:file.type});\r\n\r\n // if(file.type.indexOf(\"image/jpg\")>=0 || file.type.indexOf(\"image/png\")>=0 \r\n // \t|| file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n // var data = new FormData();\r\n // data.append(\"files\", file);\r\n // } else {\r\n // vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n // }\r\n }\r\n\r\n vm.OpenReturnModel = function (requestDetails, Type) {\r\n vm.ReturnType = Type;\r\n vm.ReturnRequest = requestDetails;\r\n if (vm.ReturnType == \"Good\") {\r\n vm.ReturnOrderType = \"Purchase return\";\r\n vm.MaxValue = vm.ReturnRequest.nTotalGoodStock;\r\n vm.ReturnQuantity = vm.ReturnRequest.nTotalGoodStock;\r\n } else if (vm.ReturnType == \"Dead\") {\r\n vm.ReturnOrderType = \"Sale return\";\r\n vm.MaxValue = vm.ReturnRequest.nTotalDeadStock;\r\n vm.ReturnQuantity = vm.ReturnRequest.nTotalDeadStock;\r\n }\r\n vm.returnModelOpen = $uibModal.open({\r\n templateUrl: \"returnpopup.html\",\r\n backdrop: \"static\",\r\n scope: $scope,\r\n size: \"lg\",\r\n });\r\n };\r\n\r\n vm.CloseReturnModel = function () {\r\n vm.returnModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.defectedTrackingId = \"\";\r\n // vm.warehouselist = \"\";\r\n vm.AttachedFileName = \"\";\r\n vm.ReturnQuantity = \"\";\r\n vm.warrantyType = \"Under Warranty\";\r\n };\r\n\r\n // Select checkbox \r\n // vm.selectedItems = {}; \r\n\r\n // vm.toggleSelectAll = function () {\r\n // angular.forEach(vm.MyInventoryStockList, function (item) {\r\n // vm.selectedItems[item.strMMFPartId] = vm.checkedAll;\r\n // });\r\n // };\r\n \r\n // vm.toggleSingleSelection = function (partId) {\r\n // vm.checkedAll = vm.MyInventoryStockList.every(function (item) {\r\n // return vm.selectedItems[item.strMMFPartId];\r\n // });\r\n // };\r\n\r\n// End Checkbox\r\n vm.GetAllWareHouseForExploration = function () {\r\n InventoryCartService.GetAllWareHouseForExploration(loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.warehouseExploreList = resp.data;\r\n if(vm.AccountId == '380' || vm.AccountId == '383' || vm.AccountId == '390' || vm.AccountId == '391'){\r\n vm.warehouselist = vm.warehouseExploreList[0].strWareHouseId;\r\n }\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.GetAllWareHouseForExploration();\r\n\r\n vm.defectedTrackingId = \"\";\r\n vm.ReturnOrderPlace = function () {\r\n vm.DisableCreateButton(true);\r\n var data = {\r\n WareHouseID: vm.warehouselist,\r\n ReturnOrderType: vm.ReturnOrderType,\r\n WarrantyType: \"Under Warranty\",\r\n ReturnOrderStockType: vm.ReturnType,\r\n Attachment: vm.AttachedFileName,\r\n cardItemDetails: [\r\n {\r\n SKUId: vm.ReturnRequest.strSKUId,\r\n MMFPartId: vm.ReturnRequest.strMMFPartId,\r\n StockCount: vm.ReturnQuantity,\r\n },\r\n ],\r\n };\r\n TeamMyStockService.ReturnOrderPlace(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseReturnModel();\r\n vm.DisableCreateButton(false);\r\n $timeout(function () {\r\n vm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n vm.GetInventoryDashboardByServiceCenter();\r\n }, 2000);\r\n } else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n };\r\n\r\n\r\n vm.AllocateStockToFieldEngineer = function () {\r\n vm.DisableCreateButton(true);\r\n var data = {\r\n UserId: vm.userDetails.UserId,\r\n cardItemDetails: [\r\n {\r\n SKUId: vm.CountDetails.strSKUId,\r\n MMFPartId: vm.CountDetails.strMMFPartId,\r\n StockCount: vm.StockCountToAssign,\r\n },\r\n ],\r\n };\r\n TeamMyStockService.AllocateStockToFieldEngineer(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.createTaskModelOpen.close();\r\n vm.assigntotech = false;\r\n vm.DisableCreateButton(false);\r\n $timeout(function () {\r\n vm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n vm.GetInventoryDashboardByServiceCenter();\r\n }, 2000);\r\n } else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n };\r\n\r\n vm.TransferInventory = function () {\r\n vm.DisableCreateButton(true);\r\n var data = {\r\n LineItemId: vm.lineItem,\r\n SenderUserId: vm.transferFromUser,\r\n ReciverUserId: vm.transferToUser,\r\n StockCount: vm.transferQuantity,\r\n };\r\n TeamMyStockService.TransferInventory(\r\n data,\r\n loggedinUser,\r\n token\r\n ).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n vm.CloseStockTransferModel();\r\n vm.DisableCreateButton(false);\r\n $timeout(function () {\r\n vm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n vm.GetInventoryDashboardByServiceCenter();\r\n }, 2000);\r\n } else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n });\r\n };\r\n\r\n vm.addFiles = function () {\r\n $(\"#dropzone1\").trigger(\"click\");\r\n };\r\n vm.TicketPartOrderList = [];\r\n vm.rejectpart = [];\r\n vm.RejectModal = function (item) {\r\n vm.rejectpart = item;\r\n vm.RejctShareModal = $uibModal.open({\r\n templateUrl: \"rejectmodal.html\",\r\n backdrop: \"static\",\r\n size: \"lg\",\r\n scope: $scope,\r\n });\r\n };\r\n vm.closerejectmodal = function () {\r\n vm.DisableCreateButton(false);\r\n vm.updateStatusRemark = \"\";\r\n vm.updateLineitemStatus = \"\";\r\n vm.RejctShareModal.close();\r\n };\r\n\r\n vm.UpdateRequestInventoryJobLineItemStatus = function () {\r\n vm.DisableCreateButton(true);\r\n vm.updateLineitemStatus = \"Rejected\";\r\n TeamMyStockService.UpdateRequestInventoryJobLineItemStatus(\r\n vm.salesOrderId,\r\n vm.updateLineitemStatus,\r\n vm.rejectpart.LineItemId,\r\n vm.updateStatusRemark,\r\n token\r\n ).then(function (resp) {\r\n if (resp.status == 202) {\r\n setTimeout(function () {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.GetPartRequestOrderLineItem(\"\", vm.salesOrderId);\r\n vm.closerejectmodal();\r\n }, 2000);\r\n } else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n };\r\n\r\n vm.resetFilters = function () {\r\n vm.brandName = \"\";\r\n vm.productGroup = \"\";\r\n vm.partName = \"\";\r\n vm.ticketdates = \"\";\r\n vm.SearchText = \"\";\r\n vm.UserId = \"\";\r\n vm.selectedServiceCenter = \"\";\r\n vm.selectedPart = \"\";\r\n fPageIndex = 1;\r\n vm.changeCategoryFilter();\r\n };\r\n\r\n vm.downloadCSV = function () {\r\n var worksheet = alasql(\r\n 'SELECT * INTO XLSX(\"users.xlsx\", {headers:true}) FROM ?',\r\n [$scope.users]\r\n );\r\n };\r\n vm.OpenAllocateModal = function (allocate, OrderId) {\r\n vm.allocatedetails = allocate;\r\n vm.allocatedOrderId = OrderId\r\n vm.AllocateModal = $uibModal.open({\r\n templateUrl: \"allocationModal.html\",\r\n backdrop: \"static\",\r\n size: \"md\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.closeAllocateModal = function () {\r\n vm.AllocateModal.close();\r\n vm.allocatedOrderId = \"\";\r\n vm.allocatedetails = \"\";\r\n };\r\n\r\n vm.CreateInvoiceToStockAlllocationToFielEngineer = function () {\r\n vm.DisableCreateButton(true);\r\n var data = {\r\n TicketId: vm.allocatedetails,\r\n OrderId: vm.allocatedOrderId\r\n };\r\n TeamMyStockService.CreateInvoiceToStockAlllocationToFielEngineer(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n vm.closeAllocateModal();\r\n vm.DisableCreateButton(false);\r\n $timeout(function () {\r\n vm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n }, 2000);\r\n } else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n };\r\n vm.IsShipmentVisible = false;\r\n\r\n\r\n vm.IsVisible = false;\r\n var createOrderData = [];\r\n var wareHouseItemList = [];\r\n var sendWdata = {};\r\n vm.TotalInventoryAmount = \"0\";\r\n vm.ShowCreateShipment = function (index) {\r\n vm.listWdata = [];\r\n if (index.lineItem.LineItemId) {\r\n vm.GetWarehouse(index.lineItem.LineItemId, index.TicketId);\r\n }\r\n vm.GetPartRequestOrderLineItem(\"\", index.TicketId);\r\n vm.JobLineItemId = index.lineItem.LineItemId;\r\n vm.ShipmentTicketId = index.TicketId;\r\n vm.TotalInventoryAmount = index.OrderAmount;\r\n };\r\n\r\n vm.closeWarehouseModal = function () {\r\n vm.ShareModal.close();\r\n };\r\n vm.GetWarehouse = function (warehouseLineItemId, ticketId) {\r\n var warehouseData = {\r\n Id: warehouseLineItemId,\r\n TicketId: ticketId,\r\n };\r\n TeamMyStockService.GetWarehouse(token, warehouseData).then(\r\n function (resp) {\r\n vm.warehouseList = resp.data;\r\n }\r\n );\r\n };\r\n\r\n vm.WarehouseNameSelected = \"\";\r\n vm.createSalesOrder = function () {\r\n vm.DisableCreateButton(true);\r\n angular.forEach(vm.PartRequestLineitemData, function (d) {\r\n if (d.BackendApprovalStatus != \"Rejected\") {\r\n sendWdata = {\r\n JobLineItemId: d.LineItemId,\r\n selectedWarehouse: vm.WarehouseNameSelected,\r\n };\r\n createOrderData.push(sendWdata);\r\n }\r\n });\r\n data = {\r\n itemIdWithWarehouseModels: createOrderData,\r\n TicketId: vm.salesOrderId,\r\n };\r\n TeamMyStockService.createSalesOrder(token, data).then(function (\r\n resp\r\n ) {\r\n if (resp.status == 200) {\r\n vm.closeWarehouseModal();\r\n vm.DisableCreateButton(false);\r\n vm.showSuccess(\"Success\", \"Order Placed Successfully.\");\r\n setTimeout(function () {\r\n vm.GetAllRequestedPart(vm.OrderStatus);\r\n }, 2000);\r\n } else {\r\n createOrderData = [];\r\n wareHouseItemList = [];\r\n sendWdata = {};\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n });\r\n };\r\n\r\n vm.GetSalesOrder = function (isCollapsed, salesOrderId) {\r\n if (vm.salesOrderId == salesOrderId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.activeRow = salesOrderId;\r\n vm.salesOrderId = salesOrderId;\r\n if (vm.salesOrderId) {\r\n TeamMyStockService.GetSalesOrder(\r\n loggedinUser,\r\n vm.salesOrderId,\r\n token\r\n ).then(\r\n function (resp) {\r\n if (resp && resp.data) {\r\n vm.OrderList = resp.data.salesorder.line_items;\r\n }\r\n },\r\n function () { }\r\n );\r\n }\r\n };\r\n\r\n vm.OpenLineItemData = function (isCollapsed, lineItementry) {\r\n vm.LineItemData = lineItementry;\r\n vm.selectedTicketId = lineItementry.TicketId;\r\n if (vm.salesOrderId == vm.selectedTicketId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.activeRow = vm.selectedTicketId;\r\n vm.salesOrderId = vm.selectedTicketId;\r\n };\r\n\r\n vm.PartRequestLineitemData = [];\r\n vm.GetPartRequestOrderLineItem = function (isCollapsed, ticketId) {\r\n if (vm.salesOrderId == ticketId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.activeRow = ticketId;\r\n vm.salesOrderId = ticketId;\r\n TeamMyStockService.GetRequestedLineItemDetailsByTicketId(\r\n loggedinUser,\r\n vm.salesOrderId,\r\n token\r\n ).then(\r\n function (resp) {\r\n if (resp && resp.data) {\r\n vm.listWdata = [];\r\n wareHouseItemList = [];\r\n vm.PartRequestLineitemData = resp.data.LineItemList;\r\n if (!isCollapsed) {\r\n angular.forEach(vm.PartRequestLineitemData, function (d) {\r\n if (d.BackendApprovalStatus != \"Rejected\") {\r\n var hwData = {\r\n warehouseDescription: d.LineItemDescription,\r\n warehouseQuantity: d.LineItemQuantity,\r\n warehouseValue: d.dLineItemWinPrice,\r\n };\r\n }\r\n wareHouseItemList.push(hwData);\r\n });\r\n\r\n vm.listWdata = wareHouseItemList;\r\n }\r\n }\r\n },\r\n function () { }\r\n );\r\n };\r\n\r\n\r\n vm.PDFView = function (page) {\r\n vm.pdfimage = \"\";\r\n vm.IsLoadSucessfull = false;\r\n $scope.selected = null;\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: \"PDFView.html\",\r\n size: \"lg\",\r\n scope: $scope,\r\n });\r\n };\r\n\r\n vm.PDFUserModal = function () {\r\n jobAppointmentModal.close();\r\n };\r\n\r\n function base64ToArrayBuffer(base64) {\r\n var ret = base64.replace(\"data:application/pdf;base64,\", \"\");\r\n var binaryString = atob(ret);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n }\r\n\r\n vm.viewInvoicePdf = function (file) {\r\n vm.PDFView();\r\n TeamMyStockService.viewReportPdf(loggedinUser, token, file).then(\r\n function (resp) {\r\n if (resp.status == 200) {\r\n vm.InvoiceData = resp.data;\r\n var arrrayBuffer = base64ToArrayBuffer(vm.InvoiceData);\r\n var blob = new Blob([arrrayBuffer], {\r\n type: \"application/pdf\",\r\n });\r\n vm.pdfimage = URL.createObjectURL(blob);\r\n vm.IsLoadSucessfull = true;\r\n }\r\n }\r\n );\r\n };\r\n vm.PartListWithFilter = [];\r\n\r\n vm.GetItemPartName = function () {\r\n vm.PartListWithFilter = [];\r\n if (!vm.partName) {\r\n vm.partName = \"\";\r\n }\r\n InventoryItemListService.GetItemPartName(vm.brandName, vm.productGroup, vm.partName, loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.PartListWithFilter = resp.data;\r\n }\r\n }, vm.showFailure);\r\n };\r\n vm.GetItemPartName();\r\n\r\n vm.PartListWithFilterwithId = [];\r\n\r\n vm.GetItemListNameWithId = function () {\r\n vm.PartListWithFilterwithId = [];\r\n TeamMyStockService.GetItemListNameWithId(vm.brandName, vm.productGroup,vm.partName, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.PartListWithFilterwithId = resp.data;\r\n }\r\n }, vm.showFailure);\r\n };\r\n\r\n vm.ApplyFilter = function () {\r\n if (!vm.UserId) {\r\n vm.UserId = \"\";\r\n }\r\n vm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n vm.GetInventoryDashboardByServiceCenter();\r\n };\r\n }\r\n }\r\n );\r\n\nangular.module('inspinia').controller('TeamMemberController', function (teamCardService, $timeout, MainService, $rootScope, DTColumnBuilder, $compile, $q, ProjectCreationService, $scope, TeamProfileService, $stateParams, $uibModal, $localStorage, $log, $state, DTOptionsBuilder, PlanningResourseMapService, DashboardService, DTColumnDefBuilder, ImageUrl) {\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n $rootScope.rootScopeMessage = '';\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.users = [];\r\n vm.FilterSwitch = false;\r\n vm.client = 1;\r\n vm.tab = 1;\r\n vm.skill = '';\r\n vm.workArea = '';\r\n var skillsArray;\r\n var circleArray;\r\n var ProjectModal = {};\r\n var userIndex = 0;\r\n vm.filteredProperties = {};\r\n vm.selectAll = false;\r\n vm.showMinus = false;\r\n vm.searchText = \"\";\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.dtInstance = {};\r\n var witemNames = \"\";\r\n var witemValues = \"\";\r\n var wsSDate = '';\r\n var wsEDate = '';\r\n var uPageIndex = 1;\r\n var uwPageIndex = 1;\r\n var uPageSize = 10;\r\n var uwPageSize = 10;\r\n vm.userPageListCount= 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n\r\n vm.imageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else {\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function () {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n vm.exportData = function () {\r\n var blob = new Blob([document.getElementById('tab-1').innerHTML], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, \"Report.xls\");\r\n };\r\n\r\n vm.preProcessUsers = function (user) {\r\n user.ratingStars = vm.getRatingStars(user.CustomerRating);\r\n user.blankStars = vm.getBlankStars(user.CustomerRating);\r\n user.displayName = user.FirstName + \" \" + user.LastName;\r\n // user.displayName = user.displayName.length>8?(user.displayName.substring(0, 8)+\"...\"):user.displayName;\r\n var locs = \"\";\r\n angular.forEach(user.Locations, function (l) {\r\n locs += l + \",\";\r\n });\r\n user.allLocations = locs.length > 0 ? locs.substring(0, locs.length - 1) : \"\";\r\n var skills = \"\";\r\n angular.forEach(user.SkillSet, function (s) {\r\n skills += s + \",\";\r\n });\r\n user.allSkills = skills.length > 0 ? skills.substring(0, skills.length - 1) : \"\";\r\n var workareas = \"\";\r\n angular.forEach(user.Locations, function (w) {\r\n workareas += w + \",\";\r\n });\r\n user.allWorkareas = workareas.length > 0 ? workareas.substring(0, workareas.length - 1) : \"\";\r\n }\r\n\r\n vm.getAllUser = function () {\r\n teamCardService.getAllUserByReportingPerson(loggedinUser,vm.filterRole ,token).then(function (resp) {\r\n vm.users = resp.data;\r\n vm.imageServices(vm.users.Picture);\r\n // angular.forEach(vm.users, function (d) {\r\n // vm.preProcessUsers(d);\r\n // });\r\n // if (vm.users.length == 0) {\r\n // vm.client = 1;\r\n // } else {\r\n // vm.client = 3;\r\n // vm.userInfo = vm.users[userIndex];\r\n // }\r\n }, function () {\r\n //$log.log('not working');\r\n })\r\n }\r\n\r\n vm.getUserInfo = function (userId, loggedinUser) {\r\n TeamProfileService.getFixedUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n vm.userInfo = resp.data;\r\n vm.imageServices(vm.userInfo.Picture);\r\n vm.preProcessUsers(vm.userInfo);\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.getAllSkills = function () {\r\n TeamProfileService.getAllSkills().then(function (resp) {\r\n vm.skills = resp.data;\r\n for (var index = 0; index < vm.skills.length; index++) {\r\n skillsArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.getAllCircles = function (loggedinUser) {\r\n ProjectCreationService.GetAllCircles(loggedinUser).then(function (resp) {\r\n vm.circles = resp.data;\r\n for (var index = 0; index < vm.circles.length; index++) {\r\n circleArray.push({\r\n workArea: vm.circles.circle\r\n });\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.AddTeamMember = function () {\r\n $state.go('index.TeamCreate', {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileView = function (userid) {\r\n $state.go('index.TeamProfile', {\r\n userId: userid\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileData = function (userId) {\r\n vm.getUserInfo(userId, loggedinUser);\r\n vm.client = 3;\r\n }\r\n\r\n vm.filtermodal = function () {\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'Filter.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n\r\n\r\n vm.CloseModal = function () {\r\n ProjectModal.close();\r\n }\r\n $scope.selectedOption = '';\r\n vm.LunchSchedule = function () {\r\n UpdateLunch = $uibModal.open({\r\n templateUrl: 'LunchPopup.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n vm.closeUpdateLunch = function () {\r\n UpdateLunch.close();\r\n }\r\n\r\n vm.editTeamMember = function (userName) {\r\n $state.go('index.TeamEdit', {\r\n userId: userName\r\n });\r\n }\r\n vm.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userClass_status = true;\r\n vm.userSingle = function () {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.close360View = function () {\r\n $scope.userClass_status = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n vm.Get360TeamProfileData = function (userId) {\r\n vm.userId = userId;\r\n DashboardService.Get360ProfileData(loggedinUser, userId, token).then(function (resp) {\r\n if (resp.data) {\r\n vm.userSingle();\r\n $scope.myvalue = false;\r\n }\r\n vm.teamdata = resp.data;\r\n vm.AvgRating = vm.teamdata.userProfile.AverageRating;\r\n vm.ReviewsList = vm.teamdata.userProfile.Reviews\r\n vm.teamdata.ratingStars = vm.getRatingStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.blankStars = vm.getBlankStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.avgratingStars = vm.getAvgRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.avgblankStars = vm.getAvgBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n if (vm.teamdata.userProfile.ContactNumber) {\r\n vm.teamdata.userProfile.ContactNumber = vm.teamdata.userProfile.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n\r\n if (vm.teamdata.userProfile.Reviews) {\r\n vm.teamdata.userProfile.Reviews.forEach(function (element, i) {\r\n vm.teamdata.userratingStars = vm.getUserRatingStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n vm.teamdata.userblankStars = vm.getUserBlankStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n element.arrayRating = vm.teamdata.userratingStars;\r\n element.blankRating = vm.teamdata.userblankStars;\r\n });\r\n }\r\n\r\n vm.TechnicianRating = Number(vm.teamdata.userProfile.Ratings.TechnicianRating).toFixed(1);\r\n $timeout(function () {\r\n displayTotals();\r\n }, 300);\r\n }, function () {\r\n })\r\n }\r\n \r\n vm.Get360TeamView = function(teamid){\r\n $state.go('index.Technician360view',{\r\n userId: teamid\r\n }, { reload: true });\r\n }\r\n\r\n\r\n $scope.totalWS = 0;\r\n $scope.wsPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function(userId) {\r\n $scope.wsPerPage = vm.userPageListCount;\r\n uPageSize = $scope.wsPerPage;\r\n $scope.WSTablePageChanged($scope.Userpagination.current);\r\n\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.wsersFilterArray(); \r\n vm.Get360WorkSummary(loggedinUser, token,userId, witemNames, witemValues, uPageIndex, uPageSize,wsSDate,wsEDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\n }\r\n\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n if(witemNames != 'Search')\r\n {\r\n vm.wsersFilterArray();\r\n }\r\n\r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate,wsEDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\n\r\n\r\n vm.wsersFilterArray = function()\r\n {\r\n witemNames=\"\";\r\n witemValues=\"\";\r\n\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(witemNames) \r\n {\r\n witemNames = witemNames + ',Search';\r\n witemValues = witemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n witemNames = 'Search';\r\n witemValues = vm.userNameSearch;\r\n } \r\n }\r\n\r\n if(vm.JobcountbyStatus)\r\n {\r\n if(witemNames) \r\n {\r\n witemNames = witemNames + ',Status';\r\n witemValues = witemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else\r\n {\r\n witemNames = 'Status';\r\n witemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.wsTicketList = resp.data.workSummaryData;\r\n $scope.totalWS = resp.data.WorkSummaryTotalCount;\r\n if (vm.wsTicketList.length < vm.userPageListCount)\r\n vm.wsListLength = $scope.totalWS;\r\n else\r\n vm.wsListLength = uPageIndex * vm.userPageListCount;\r\n if (uPageIndex == 1)\r\n vm.wspageindexCount = 1;\r\n else\r\n vm.wspageindexCount = (((uPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n vm.RedirectToConfiguration = function () {\r\n $state.go('index.CalendarManagement', { reload: true });\r\n }\r\n \r\n vm.Get360SkillSummary = function () {\r\n DashboardService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for(var i=0;ilTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n // .withScroller()\r\n // .withOption('deferRender', true)\r\n // .withOption('scrollY', 350)\r\n // .withOption('paging', false)\r\n .withOption('rowCallback', rowCallback);\r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n function rowCallback(nRow, aData, iDisplayIndex, iDisplayIndexFull) {\r\n $('td', nRow).unbind('click');\r\n $('td', nRow).bind('click', function () {\r\n $scope.$apply(function () {\r\n vm.ProfileData(aData.UserId);\r\n });\r\n });\r\n return nRow;\r\n }\r\n\r\n // vm.dtColumns = [\r\n // DTColumnBuilder.newColumn(null).withTitle('UserId').renderWith(function (data, type, full, meta) {\r\n // if (data.Role != 'Field Engineer') {\r\n // return '';\r\n // } else {\r\n // return '';\r\n // }\r\n // }),\r\n // DTColumnBuilder.newColumn(null).withTitle('Name').renderWith(function (data, type, full, meta) {\r\n // var address = '';\r\n // if (data.Picture == null) {\r\n // address = \"assets/images/patterns/photo1.png\";\r\n // } else {\r\n // // address= vm.getProfilePic(data.Picture);\r\n\r\n\r\n // // var img = full.Picture;\r\n // // vm.imageServices = function(img){\r\n // MainService.GetImageBlob(loggedinUser, token, data.Picture).then(function (resp) {\r\n // address = resp.data;\r\n\r\n // });\r\n\r\n // // } \r\n // // vm.imageServices(data.Picture);\r\n // }\r\n\r\n // return '' + data.FirstName + ' ' + data.LastName + '';\r\n // }).notSortable(),\r\n // DTColumnBuilder.newColumn('ContactNumber').withTitle('Phone Number').notSortable(),\r\n // DTColumnBuilder.newColumn('Role').withTitle('Role').notSortable(),\r\n\r\n // DTColumnBuilder.newColumn('').withTitle('Account Name').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.accNameLoac = [];\r\n // vm.accIdLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.accNameLoac.push(d.AccountName);\r\n // });\r\n // } else {\r\n // vm.accNameLoac = '';\r\n // }\r\n // return '
' + vm.accNameLoac + '
'\r\n // }),\r\n // DTColumnBuilder.newColumn('').withTitle('Account Id').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.accLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.accLoac.push(d.AccountId);\r\n // });\r\n // } else {\r\n // vm.accLoac = '';\r\n // }\r\n // return '
' + vm.accLoac + '
'\r\n // }),\r\n\r\n // DTColumnBuilder.newColumn('').withTitle('State').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.stateLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.stateLoac.push(d.State);\r\n // });\r\n // } else {\r\n // vm.stateLoac = '';\r\n // }\r\n // return '
' + vm.stateLoac + '
'\r\n // }),\r\n\r\n // DTColumnBuilder.newColumn('').withTitle('City').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.cityLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.cityLoac.push(d.City);\r\n // });\r\n // } else {\r\n // vm.cityLoac = '';\r\n // }\r\n // return '
' + vm.cityLoac + '
'\r\n // }),\r\n\r\n // DTColumnBuilder.newColumn('').withTitle('Pin Code').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.pinLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.pinLoac.push(d.PinCode);\r\n // });\r\n // } else {\r\n // vm.pinLoac = '';\r\n // }\r\n // return '
' + vm.pinLoac + '
'\r\n // }),\r\n\r\n // // DTColumnBuilder.newColumn('JobTotal').withTitle('Total Jobs').notSortable(),\r\n // // DTColumnBuilder.newColumn('JobCompleted').withTitle('Completed Jobs').notSortable()\r\n\r\n // ];\r\n\r\n\r\n // below code done for CRM demo\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle('UserId').renderWith(function (data, type, full, meta) {\r\n // if (vm.accountConfig.AccountId == '361' || vm.accountConfig.AccountId == '364') {\r\n // return '';\r\n // }\r\n // else{\r\n if (data.Role != 'Field Engineer' && data.Role != 'Private Vendor' && data.Role != 'Service Center' && data.Role != 'Vendor Manager' && (vm.accountConfig.AccountId != '361' && vm.accountConfig.AccountId != '364')){\r\n return '';\r\n }\r\n else if(data.Role != 'Field Engineer' && data.Role != 'Private Vendor' && data.Role != 'Service Center' && data.Role != 'Vendor Manager' && (vm.accountConfig.AccountId == '361' || vm.accountConfig.AccountId == '364')){\r\n return ''+ data.UserId + '' ;\r\n }\r\n else {\r\n return '';\r\n }\r\n\r\n // }\r\n \r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Name').renderWith(function (data, type, full, meta) {\r\n var address = '';\r\n if (data.Picture == null) {\r\n address = \"assets/images/patterns/photo1.png\";\r\n } else {\r\n MainService.GetImageBlob(loggedinUser, token, data.Picture).then(function (resp) {\r\n address = resp.data;\r\n });\r\n }\r\n return '' + data.FirstName + ' ' + data.LastName + '';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('ContactNumber').withTitle('Phone Number').notSortable(),\r\n DTColumnBuilder.newColumn('Role').withTitle('Role').notSortable(),\r\n DTColumnBuilder.newColumn('CurrentState').withTitle('State').notSortable(),\r\n DTColumnBuilder.newColumn('CurrentCity').withTitle('City').notSortable(),\r\n DTColumnBuilder.newColumn('CurrentPinCode').withTitle('Pin Code').notSortable(),\r\n \r\n\r\n // DTColumnBuilder.newColumn('').withTitle('State').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.stateLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.stateLoac.push(d.State);\r\n // });\r\n // } else {\r\n // vm.stateLoac = '';\r\n // }\r\n // return '
' + vm.stateLoac + '
';\r\n // }),\r\n // DTColumnBuilder.newColumn('').withTitle('City').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.cityLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.cityLoac.push(d.City);\r\n // });\r\n // } else {\r\n // vm.cityLoac = '';\r\n // }\r\n // return '
' + vm.cityLoac + '
';\r\n // }),\r\n // DTColumnBuilder.newColumn('').withTitle('Pin Code').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.pinLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.pinLoac.push(d.PinCode);\r\n // });\r\n // } else {\r\n // vm.pinLoac = '';\r\n // }\r\n // return '
' + vm.pinLoac + '
';\r\n // })\r\n ];\r\n if (vm.accountConfig.AccountId == '362') {\r\n vm.dtColumns.push(\r\n DTColumnBuilder.newColumn('VendorName').withTitle('Reporting To').notSortable(),\r\n DTColumnBuilder.newColumn('Rating').withTitle('Rating').notSortable(),\r\n DTColumnBuilder.newColumn('Expernice').withTitle('Experience').notSortable(),\r\n DTColumnBuilder.newColumn('AdharNo').withTitle('Adhaar Number').notSortable()\r\n );\r\n}\r\n\r\nif (vm.Role != 'Service Center' && (vm.accountConfig.AccountId == '361' || vm.accountConfig.AccountId == '362' || vm.accountConfig.AccountId == '364')) {\r\n vm.dtColumns.push(\r\n DTColumnBuilder.newColumn('ReportingToName')\r\n .withTitle('Reporting To')\r\n .notSortable()\r\n .renderWith(function (data, type, full, meta) {\r\n var id = full.ReportingTo;\r\n return data + ' (' + id + ')';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data,type,full) {\r\n return '';\r\n })\r\n );\r\n}\r\n\r\n if (vm.Role !== 'Vendor Manager' && vm.Role !== 'Service Center' && vm.Role !== 'Administrator' && vm.Role !== 'Project Manager' && vm.Role !== 'Supervisor') {\r\n vm.dtColumns.push(\r\n DTColumnBuilder.newColumn('').withTitle('Account Name').notSortable().renderWith(function (data, type, full, meta) {\r\n if (full.TerritoryMappingModel) {\r\n vm.accNameLoac = [];\r\n vm.accIdLoac = [];\r\n angular.forEach(full.TerritoryMappingModel, function (d) {\r\n vm.accNameLoac.push(d.AccountName);\r\n });\r\n } else {\r\n vm.accNameLoac = '';\r\n }\r\n return '
' + vm.accNameLoac + '
';\r\n }),\r\n DTColumnBuilder.newColumn('').withTitle('Account Id').notSortable().renderWith(function (data, type, full, meta) {\r\n if (full.TerritoryMappingModel) {\r\n vm.accLoac = [];\r\n angular.forEach(full.TerritoryMappingModel, function (d) {\r\n vm.accLoac.push(d.AccountId);\r\n });\r\n } else {\r\n vm.accLoac = '';\r\n }\r\n return '
' + vm.accLoac + '
';\r\n })\r\n );\r\n }\r\n\r\n\r\n\r\n \r\n\r\n // vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n // '<\"html5buttons\"B>lTfgitp')\r\n // .withButtons([]).withPaginationType(\r\n // 'full_numbers').withOption('lengthChange', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n // .withOption('order', [1, 'asc']);\r\n\r\n // vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n // // DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(2).notSortable().withClass('td-small-with-panel'),\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(7).notSortable()];\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n }\r\n});\n/* FileSaver.js\r\n * A saveAs() FileSaver implementation.\r\n * 1.3.2\r\n * 2016-06-16 18:25:19\r\n *\r\n * By Eli Grey, http://eligrey.com\r\n * License: MIT\r\n * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md\r\n */\r\n\r\n/*global self */\r\n/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */\r\n\r\n/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\r\n\r\nvar saveAs = saveAs || (function(view) {\r\n\t\"use strict\";\r\n\t// IE <10 is explicitly unsupported\r\n\tif (typeof view === \"undefined\" || typeof navigator !== \"undefined\" && /MSIE [1-9]\\./.test(navigator.userAgent)) {\r\n\t\treturn;\r\n\t}\r\n\tvar\r\n\t\t doc = view.document\r\n\t\t // only get URL when necessary in case Blob.js hasn't overridden it yet\r\n\t\t, get_URL = function() {\r\n\t\t\treturn view.URL || view.webkitURL || view;\r\n\t\t}\r\n\t\t, save_link = doc.createElementNS(\"http://www.w3.org/1999/xhtml\", \"a\")\r\n\t\t, can_use_save_link = \"download\" in save_link\r\n\t\t, click = function(node) {\r\n\t\t\tvar event = new MouseEvent(\"click\");\r\n\t\t\tnode.dispatchEvent(event);\r\n\t\t}\r\n\t\t, is_safari = /constructor/i.test(view.HTMLElement) || view.safari\r\n\t\t, is_chrome_ios =/CriOS\\/[\\d]+/.test(navigator.userAgent)\r\n\t\t, throw_outside = function(ex) {\r\n\t\t\t(view.setImmediate || view.setTimeout)(function() {\r\n\t\t\t\tthrow ex;\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t\t, force_saveable_type = \"application/octet-stream\"\r\n\t\t// the Blob API is fundamentally broken as there is no \"downloadfinished\" event to subscribe to\r\n\t\t, arbitrary_revoke_timeout = 1000 * 40 // in ms\r\n\t\t, revoke = function(file) {\r\n\t\t\tvar revoker = function() {\r\n\t\t\t\tif (typeof file === \"string\") { // file is an object URL\r\n\t\t\t\t\tget_URL().revokeObjectURL(file);\r\n\t\t\t\t} else { // file is a File\r\n\t\t\t\t\tfile.remove();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tsetTimeout(revoker, arbitrary_revoke_timeout);\r\n\t\t}\r\n\t\t, dispatch = function(filesaver, event_types, event) {\r\n\t\t\tevent_types = [].concat(event_types);\r\n\t\t\tvar i = event_types.length;\r\n\t\t\twhile (i--) {\r\n\t\t\t\tvar listener = filesaver[\"on\" + event_types[i]];\r\n\t\t\t\tif (typeof listener === \"function\") {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tlistener.call(filesaver, event || filesaver);\r\n\t\t\t\t\t} catch (ex) {\r\n\t\t\t\t\t\tthrow_outside(ex);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t, auto_bom = function(blob) {\r\n\t\t\t// prepend BOM for UTF-8 XML and text/* types (including HTML)\r\n\t\t\t// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\r\n\t\t\tif (/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\r\n\t\t\t\treturn new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});\r\n\t\t\t}\r\n\t\t\treturn blob;\r\n\t\t}\r\n\t\t, FileSaver = function(blob, name, no_auto_bom) {\r\n\t\t\tif (!no_auto_bom) {\r\n\t\t\t\tblob = auto_bom(blob);\r\n\t\t\t}\r\n\t\t\t// First try a.download, then web filesystem, then object URLs\r\n\t\t\tvar\r\n\t\t\t\t filesaver = this\r\n\t\t\t\t, type = blob.type\r\n\t\t\t\t, force = type === force_saveable_type\r\n\t\t\t\t, object_url\r\n\t\t\t\t, dispatch_all = function() {\r\n\t\t\t\t\tdispatch(filesaver, \"writestart progress write writeend\".split(\" \"));\r\n\t\t\t\t}\r\n\t\t\t\t// on any filesys errors revert to saving with object URLs\r\n\t\t\t\t, fs_error = function() {\r\n\t\t\t\t\tif ((is_chrome_ios || (force && is_safari)) && view.FileReader) {\r\n\t\t\t\t\t\t// Safari doesn't allow downloading of blob urls\r\n\t\t\t\t\t\tvar reader = new FileReader();\r\n\t\t\t\t\t\treader.onloadend = function() {\r\n\t\t\t\t\t\t\tvar url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');\r\n\t\t\t\t\t\t\tvar popup = view.open(url, '_blank');\r\n\t\t\t\t\t\t\tif(!popup) view.location.href = url;\r\n\t\t\t\t\t\t\turl=undefined; // release reference before dispatching\r\n\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\r\n\t\t\t\t\t\t\tdispatch_all();\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\treader.readAsDataURL(blob);\r\n\t\t\t\t\t\tfilesaver.readyState = filesaver.INIT;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// don't create more object URLs than needed\r\n\t\t\t\t\tif (!object_url) {\r\n\t\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (force) {\r\n\t\t\t\t\t\tview.location.href = object_url;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar opened = view.open(object_url, \"_blank\");\r\n\t\t\t\t\t\tif (!opened) {\r\n\t\t\t\t\t\t\t// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html\r\n\t\t\t\t\t\t\tview.location.href = object_url;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\r\n\t\t\t\t\tdispatch_all();\r\n\t\t\t\t\trevoke(object_url);\r\n\t\t\t\t}\r\n\t\t\t;\r\n\t\t\tfilesaver.readyState = filesaver.INIT;\r\n\r\n\t\t\tif (can_use_save_link) {\r\n\t\t\t\tobject_url = get_URL().createObjectURL(blob);\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\tsave_link.href = object_url;\r\n\t\t\t\t\tsave_link.download = name;\r\n\t\t\t\t\tclick(save_link);\r\n\t\t\t\t\tdispatch_all();\r\n\t\t\t\t\trevoke(object_url);\r\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\r\n\t\t\t\t});\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tfs_error();\r\n\t\t}\r\n\t\t, FS_proto = FileSaver.prototype\r\n\t\t, saveAs = function(blob, name, no_auto_bom) {\r\n\t\t\treturn new FileSaver(blob, name || blob.name || \"download\", no_auto_bom);\r\n\t\t}\r\n\t;\r\n\t// IE 10+ (native saveAs)\r\n\tif (typeof navigator !== \"undefined\" && navigator.msSaveOrOpenBlob) {\r\n\t\treturn function(blob, name, no_auto_bom) {\r\n\t\t\tname = name || blob.name || \"download\";\r\n\r\n\t\t\tif (!no_auto_bom) {\r\n\t\t\t\tblob = auto_bom(blob);\r\n\t\t\t}\r\n\t\t\treturn navigator.msSaveOrOpenBlob(blob, name);\r\n\t\t};\r\n\t}\r\n\r\n\tFS_proto.abort = function(){};\r\n\tFS_proto.readyState = FS_proto.INIT = 0;\r\n\tFS_proto.WRITING = 1;\r\n\tFS_proto.DONE = 2;\r\n\r\n\tFS_proto.error =\r\n\tFS_proto.onwritestart =\r\n\tFS_proto.onprogress =\r\n\tFS_proto.onwrite =\r\n\tFS_proto.onabort =\r\n\tFS_proto.onerror =\r\n\tFS_proto.onwriteend =\r\n\t\tnull;\r\n\r\n\treturn saveAs;\r\n}(\r\n\t typeof self !== \"undefined\" && self\r\n\t|| typeof window !== \"undefined\" && window\r\n\t|| this.content\r\n));\r\n// `self` is undefined in Firefox for Android content script context\r\n// while `this` is nsIContentFrameMessageManager\r\n// with an attribute `content` that corresponds to the window\r\n\r\nif (typeof module !== \"undefined\" && module.exports) {\r\n module.exports.saveAs = saveAs;\r\n} else if ((typeof define !== \"undefined\" && define !== null) && (define.amd !== null)) {\r\n define(\"FileSaver.js\", function() {\r\n return saveAs;\r\n });\r\n}\nangular.module('inspinia').service('teamCardService', function (ApiURL, $log, $http) {\r\n\r\n this.getAllUserList = function (userId,loggedinUser, token) {\r\n var url = ApiURL + '/api/User/'+userId+'/byUserId?ReqUserId='+ loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser\r\n }\r\n });\r\n // return list;\r\n }\r\n\r\n this.getAllUserByReportingPerson = function (reportingTo,filterRole,token) {\r\n var url = ApiURL +'/api/User/'+ reportingTo+'/byReportingToWithJobCount?ReqUserId='+reportingTo +'&RoleFilter='+filterRole;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId':reportingTo }\r\n });\r\n }\r\n\r\nthis.updateUserStatus = function (loggedinUser,UserId,userdata, token) {\r\n var url = ApiURL + '/api/User/'+UserId+'/activate?reqUserId='+loggedinUser;\r\n return $http.put(url, userdata,{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n // http://product.mymobiforce.com/coreAPI/api/User/AddRemovePrivateTeam?userId=U00000000418\r\n\r\n this.updateDetachStatus = function (loggedinUser,TechnicianUserId, token) {\r\n var url = ApiURL + '/api/User/AddRemovePrivateTeam?userId=' + TechnicianUserId;\r\n return $http.put(url,null,{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }});\r\n }\r\n\r\n this.getAllUserBySkillAndRating=function(UserId,skill,rating, token)\r\n {\r\n var url =ApiURL + '/api/User/'+UserId +'/'+skill+'/'+rating+'/GetUserBySkillSetRating';\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':UserId}});\r\n }\r\n\r\n this.ResetPasswordForTeam = function (loggedinUser,TechnicianUserId, token) {\r\n var url = ApiURL + '/api/User/ResetPasswordForTeam?UserId=' + TechnicianUserId;\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }});\r\n }\r\n // this.byReportingToWithJobCountNew = function (data,loggedinUser, token) {\r\n // var url = ApiURL + '/api/User/byReportingToWithJobCountNew';\r\n // return $http.get(url,data,{\r\n // headers: { 'Content-Type': 'application/json',\r\n // 'Token': token, \r\n // 'UserId':loggedinUser\r\n // }});\r\n // }\r\n\r\n this.byReportingToWithJobCountNew = function (data,loggedinUser, token) {\r\n var url = ApiURL + '/api/User/byReportingToWithJobCountNew';\r\n return $http.put(url,data,{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }});\r\n }\r\n this.GetCRMTeamByReportingTo = function (data,loggedinUser, token) {\r\n var url = ApiURL + '/api/User/GetCRMTeamByReportingTo';\r\n return $http.put(url,data,{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }});\r\n }\r\n});\r\n\nangular.module('inspinia').controller('TeamCardController', function ($state, $stateParams, teamCardService, $log, $localStorage, bulkuploadService, $scope) {\r\n var vm = this;\r\n vm.users = [];\r\n var userdata = [];\r\n var userId = $stateParams.userId;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.currentPage = 1;\r\n vm.pageSize = 12;\r\n bulkuploadService.bulkuploadType = 'user';\r\n vm.availableSearchParams = [\r\n { key: \"CurrentState\", name: \"CurrentState\", placeholder: \"CurrentState...\" },\r\n { key: \"CurrentCity\", name: \"CurrentCity\", placeholder: \"CurrentCity...\" }\r\n // { key: \"city\", name: \"City\", placeholder: \"City...\" },\r\n // { key: \"country\", name: \"Country\", placeholder: \"Country...\" },\r\n // { key: \"emailAddress\", name: \"E-Mail\", placeholder: \"E-Mail...\", allowMultiple: true },\r\n // { key: \"job\", name: \"Job\", placeholder: \"Job...\" }\r\n ];\r\n //var ReqUserId = $stateParams.ReqUserId;\r\nvar loggedinUser = $localStorage.loggedInUserId;\r\n\r\n vm.DeactivateUser = function(userdata) {\r\n teamCardService.updateUserStatus(loggedinUser,userdata.UserId,userdata).then(function (resp){\r\n if(resp.data.UserStatus=='Active') {\r\n userdata.UserStatus='Active';\r\n // vm.UserStatus = \"Deactivate\";\r\n // vm.Status = \"Activated\";\r\n } else if(resp.data.UserStatus == \"Inactive\") {\r\n userdata.UserStatus='Inactive';\r\n // color:'#eee';\r\n // vm.Status = \"Deactivated\";\r\n }\r\n },\r\n function () {\r\n //$log.log('not working');\r\n })\r\n }\r\n //\r\n vm.AddTeamMember = function () {\r\n $state.go('index.TeamCreate', {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.getAllUser = function () {\r\n teamCardService.getAllUserByReportingPerson(loggedinUser).then(function (resp) {\r\n vm.users = resp.data;\r\n },\r\n function () {\r\n //$log.log('not working');\r\n })\r\n }\r\n\r\n vm.getAllUser(userId,loggedinUser);\r\n\r\n vm.ProfileView = function (userid) {\r\n $state.go('index.TeamProfile', {\r\n userId: userid\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.editTeamMember = function (userName) {\r\n $state.go('index.TeamEdit', {\r\n userId: userName\r\n });\r\n }\r\n \r\n});\r\n\nangular.module('inspinia').service('TeamProfileService', function (ApiURL, $http, FreelancerURL, LocationURL) {\r\n\r\n this.getUserInfo = function (userId,loggedInUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId +'/'+ loggedInUser+ '/'+ 'byUserIdWithJobCount' ;\r\n\t return $http.get(url,{\r\n\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\r\n //https://login.mymobiforce.com/coreapi/api/User/U350000000013/byUserIdWithJobCount?reqUserId=U350000000001\r\n this.getFixedUserInfo = function (userId,loggedInUser, token) {\r\n var url = ApiURL + '/api/User/' + userId +'/byUserIdWithJobCount?reqUserId='+ loggedInUser ;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.getUserRating = function (userId,loggedinUser, token) {\r\n var url = ApiURL + \"/api/User/\"+userId+\"/\"+loggedinUser+\"/GetUserRating\";\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getJobsByUserId=function(userId,loggedinUser, token)\r\n {\r\n var url =ApiURL + \"/api/Ticket/\" +userId+\"/byUserId?reqUserId=\"+loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // this.getAllSkills = function(loggedinUser, token)\r\n // {\r\n // var url = ApiURL + \"/api/SkillSets?reqUserId=\"+loggedinUser;\r\n // return $http.get(url,{\r\n // headers:{\r\n // 'Content-Type':'application/json', 'Token': token\r\n // }\r\n // });\r\n // }\r\n\r\n //http://localhost:50035/api/FreeLancerTicket/purshotam%40gmail.com/srachit46%40gmail.com/byUserId\r\n\r\n this.GetFreelancerJobs = function(userId, loggedinUser, token){\r\n var url = FreelancerURL + '/api/FreelancerTicket/' + userId + '/' + loggedinUser + '/ByUserId'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n\r\n // this.save = function(loggedinUser, token, data, success, failure){\r\n // var url = ApiURL + '/api/User?reqUserId='+loggedinUser;\r\n // $http.put(url, data, {\r\n // headers: { 'ContentType': 'application/json',\r\n // 'Token': token }\r\n // }).then(function(res){\r\n // success(res);\r\n // }, function(err){\r\n // failure(\"Failed\", \"Unable to save user profile, server is not responding correctly.\");\r\n // })\r\n // }\r\n\r\n // http://localhost:50144/api/FreeLancerRegistration/UpdateRegistrationdDetails\r\n this.save = function(loggedinUser, token, data, success, failure){\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/UpdateRegistrationdDetails';\r\n $http.put(url, data, {\r\n headers: { 'ContentType': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser }\r\n }).then(function(res){\r\n success(res);\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to save user profile, server is not responding correctly.\");\r\n })\r\n }\r\n\r\n this.GetAllCircles = function (loggedinUser, success, failure) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllCircles'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json' }\r\n }).then(function(res){\r\n if(res && res.status ==200 && res.data){\r\n success(res.data);\r\n } \r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get locations, server is not responding correctly\");\r\n });\r\n }\r\n\r\n this.getAllSkills = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 200 && res.data){\r\n success(res.data);\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get skill list, server error.\")\r\n })\r\n }\r\n\r\n this.uploadProfilePic = function (loggedinUser, data, token, success, failure) {\r\n $http.post(ApiURL + '/api/User/PostUserPic?reqUserId=' + loggedinUser, data, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').filter('StarRating', function ($sce) {\r\n return function (input) {\r\n var orangeStarAdd = '';\r\n var yellowStarAdd = '';\r\n var yellowStarRating = '';\r\n var whiteStarRating = '';\r\n var whiteStarCount = 0;\r\n whiteStarCount = 5 - Number(input);\r\n for (var starindex = 1; starindex <= input; starindex++) {\r\n yellowStarRating = yellowStarRating + orangeStarAdd;\r\n }\r\n for (var whiteIndex = 1; whiteIndex <= whiteStarCount; whiteIndex++) {\r\n whiteStarRating = whiteStarRating + yellowStarAdd;\r\n }\r\n return $sce.trustAsHtml(yellowStarRating+whiteStarRating);\r\n }\r\n});\r\n\nangular.module('inspinia').controller('TeamProfileController', function ($scope, $state, $filter,MainService,TeamProfileService, OnBoardingFormService, $log, $stateParams, $localStorage, DTColumnDefBuilder, DTOptionsBuilder, ImageUrl) {\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n if (!loggedinUser || !userId) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n vm.dtInstance = {};\r\n vm.error = {};\r\n vm.searchText = \"\";\r\n vm.sparkline1 = [34, 43, 43, 35, 44, 32, 44, 52];\r\n\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n vm.qualificationList = [\"10th\", \"12th\", \"Graduation Degree/Deploma\", \"PG Degree/Deploma\"];\r\n vm.BGDocType = ['Aadhar Card', 'Address Proof', 'Pan Card', 'Education Certificate', 'Police Verification', 'Resume', 'Cancelled Check','GST Certificate'];\r\n vm.BDDocSubType = {};\r\n vm.BDDocSubType['Aadhar Card'] = ['Aadhar Card'];\r\n vm.BDDocSubType['Address Proof'] = [\"Aadhar Card\", \"Voter Id Card\", \"Driving License\", \"Passport\", \"Rent Agreement\", \"Telephone/Gas Bill\", \"Bank Passbook\"];\r\n vm.BDDocSubType['Pan Card'] = ['Pan Card'];\r\n vm.BDDocSubType['Education Certificate'] = vm.qualificationList;\r\n vm.BDDocSubType['Police Verification'] = [\"Police Verification\"];\r\n vm.BDDocSubType['Resume'] = [\"Resume\"];\r\n vm.BDDocSubType['Cancelled Check'] = [\"Cancelled Check\"];\r\n vm.BDDocSubType['GST Certificate'] = ['GST Certificate'];\r\n\r\n // vm.qualificationList = [\"10th\", \"12th\", \"Graduation Degree/Deploma\", \"PG Degree/Deploma\"];\r\n // vm.BGDocType = ['Aadhar Card', 'Address Proof', 'Pan Card', 'Education Certificate', 'Police Verification', 'Experience Certificates'];\r\n \r\n // vm.BDDocSubType = {};\r\n // vm.BDDocSubType['Aadhar Card'] = ['Aadhar Card'];\r\n // vm.BDDocSubType['Address Proof'] = [\"Voter Id Card\", \"Passport\", \"Rent Agreement\", \"Telephone/Gas Bill\", \"Bank Passbook\"];\r\n // vm.BDDocSubType['Pan Card'] = ['Pan Card'];\r\n // vm.BDDocSubType['Education Certificate'] = vm.qualificationList;\r\n // vm.BDDocSubType['Police Verification'] = [\"Police Verification\"];\r\n // vm.BDDocSubType['Experience Certificates'] = [\"Experience Certificates\"];\r\n\r\n vm.last30Years = [];\r\n vm.experienceList = [];\r\n vm.brandList = [\"Samsung\", \"Onida\", \"BPL\", \"LG\", \"Hitachi\", \"Whirlpool\", \"Panasonic\", \"BOSCH\", \"Videocon\", \"Godrej\", \"Ericsson\", \"TATA\", \"Airtel\", \"Idea\", \"Vodafone\", \"BSNL\", \"NSN\"];\r\n\r\n vm.currentYear = new moment().format(\"YYYY\");\r\n vm.TrainingList = [];\r\n vm.pathtcertificate = '';\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.BGDocList = [];\r\n\r\n for (var i = 0; i < 30; i++) {\r\n vm.last30Years.push((vm.currentYear - i) + \"\");\r\n vm.experienceList.push((i + 1) + \"\");\r\n }\r\n\r\n vm.skillSets = [];\r\n vm.getAllSkills = function () {\r\n TeamProfileService.getAllSkills(loggedinUser, token, function (data) {\r\n vm.skillSets = data;\r\n }, vm.showFailure);\r\n }\r\n vm.getAllSkills();\r\n\r\n vm.getSkillSets = function (previousIndex, skillList) {\r\n var RemoveSkills = [];\r\n var remainingSkills = Array.from(vm.skillSets);\r\n angular.forEach(remainingSkills, function (d) {\r\n for (var i = 0; i < previousIndex; i++) {\r\n if (d.SkillName == skillList[i].Skill) {\r\n RemoveSkills.push(d);\r\n return;\r\n }\r\n }\r\n });\r\n angular.forEach(RemoveSkills, function (s) {\r\n remainingSkills.splice(remainingSkills.indexOf(s), 1);\r\n })\r\n return remainingSkills;\r\n }\r\n\r\n /*vm.circles = [];\r\n vm.GetAllCircles = function () {\r\n TeamProfileService.GetAllCircles(loggedinUser, function (data) {\r\n vm.circles = data;\r\n }, vm.showFailure);\r\n }\r\n vm.GetAllCircles();*/\r\n vm.imageServices = function(img){debugger\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function() {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n } \r\n\r\n vm.sparkline1Options = {\r\n type: 'bar',\r\n width: '100%',\r\n height: '50',\r\n lineColor: '#1ab394',\r\n fillColor: \"transparent\"\r\n };\r\n\r\n if(userId.startsWith(\"U\")){\r\n getFixedUserInfo(userId, loggedinUser);\r\n }\r\n else\r\n {\r\n getUserInfo(userId, loggedinUser);\r\n }\r\n \r\n getJobsByUserId(userId, loggedinUser);\r\n getUserRatings(userId, loggedinUser);\r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withButtons(['colvis'])\r\n .withOption('stateSave', true)\r\n .withOption('stateSaveCallback', function (settings, data) {\r\n localStorage.setItem('DataTables_' + settings.sInstance, JSON.stringify(data))\r\n })\r\n .withOption('stateLoadCallback', function (settings) {\r\n var state = JSON.parse(localStorage.getItem('DataTables_' + settings.sInstance));\r\n if (state) {\r\n state.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n if(state.columns && state.columns.length>0){\r\n state.columns[7].visible=false;\r\n state.columns[8].visible=false;\r\n state.columns[10].visible=false;\r\n state.columns[11].visible=false; \r\n }\r\n }\r\n return state;\r\n })\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [1, 'desc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable()\r\n ];\r\n\r\n vm.dtOptionsDocList = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefsDocList = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable()\r\n ];\r\n\r\n function getFixedUserInfo(userId, loggedinUser) {debugger\r\n TeamProfileService.getFixedUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n vm.customerInfo = resp.data;\r\n vm.imageServices(vm.customerInfo.Picture);\r\n vm.rating=Number(vm.customerInfo.CustomerRating).toFixed(1);\r\n //vm.preProcessUsers(vm.userInfo);\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n\r\n function getUserInfo(userId, loggedinUser) {\r\n TeamProfileService.getUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n vm.customerInfo = resp.data;\r\n\r\n vm.rating=Number(vm.customerInfo.CustomerRating).toFixed(1);\r\n // vm.AuthorizedBy = angular.copy(vm.customerInfo.AuthorizedBy);\r\n // vm.BGDocList = angular.copy(vm.customerInfo.BGVerificationDocPath);\r\n // vm.TrainingAssessment = angular.copy(vm.customerInfo.TrainingAssessment);\r\n // for(var i=0; i= 0 || url.indexOf(\".jpeg\") >= 0 || url.indexOf(\".png\") >= 0 || url.indexOf(\".bmp\") >= 0) {\r\n return \"image\";\r\n } else if (url.indexOf(\".pdf\") >= 0) {\r\n return \"pdf\";\r\n } else if (url.indexOf(\".doc\") >= 0 || url.indexOf(\".docx\") >= 0) {\r\n return \"doc\";\r\n } else {\r\n return \"others\";\r\n }\r\n }\r\n\r\n $scope.uploadBGFile = function (elem) {\r\n\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n var doc = vm.BGDocList[index];\r\n vm.error[doc.DocumentType] = null;\r\n\r\n var file = elem.files[0];\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n TeamProfileService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n doc.DocumentPath = doc.DocumentPath1 = res.data;\r\n doc.DocumentName = doc.DocumentName1;\r\n doc.edit = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.error[doc.DocumentType] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n\r\n vm.prepareUserData = function(){\r\n\r\n var finalModel = {\r\n \"FirstName\": vm.customerInfo.FirstName,\r\n \"LastName\": vm.customerInfo.LastName,\r\n \"DOB\": vm.customerInfo.DOB,\r\n \"EmailId\": vm.customerInfo.PersonalEmail,\r\n \"MobileNumber\": vm.customerInfo.ContactNumber,\r\n \"AddressLine1\": vm.customerInfo.PermanentAdd1,\r\n \"AddressLine2\": vm.customerInfo.PermanentAdd2,\r\n \"State\": vm.customerInfo.PermanentState,\r\n \"City\": vm.customerInfo.PermanentCity,\r\n \"PINCode\": vm.customerInfo.PermanentPinCode,\r\n \"ReferralUniqueKey\": \"string\",\r\n \"Gender\": vm.customerInfo.Gender,\r\n \"Picture\": vm.customerInfo.Picture,\r\n \"CurrentAdd1\": vm.customerInfo.CurrentAdd1,\r\n \"CurrentAdd2\": vm.customerInfo.CurrentAdd2,\r\n \"CurrentCity\": vm.customerInfo.CurrentCity,\r\n \"CurrentPinCode\": vm.customerInfo.CurrentPinCode,\r\n \"CurrentState\": vm.customerInfo.CurrentState,\r\n \"SkillSet\": vm.customerInfo.SkillSet,\r\n \"FatherName\": vm.customerInfo.FatherName,\r\n \"AlternateNumber\": vm.customerInfo.AlternativeContactNumber,\r\n \"TrainingAssessment\": vm.TrainingList,\r\n \"BGVerificationDocPath\": vm.BGDocList,\r\n \"PAN\": vm.customerInfo.PAN,\r\n \"AdharNo\": vm.customerInfo.AdharNo,\r\n \"IsMobileAvailable\": vm.customerInfo.IsMobileAvailable,\r\n \"IsLaptopAvailable\": vm.customerInfo.IsLaptopAvailable,\r\n \"IsBikeAvailable\": vm.customerInfo.IsBikeAvailable,\r\n \"Tools\": vm.customerInfo.Tools,\r\n \"CompanyName\": vm.customerInfo.CompanyName\r\n }\r\n\r\n // var data = {\r\n // \"UserId\": vm.customerInfo.UserId,\r\n // \"Password\": vm.customerInfo.Password,\r\n // \"FirstName\": vm.customerInfo.FirstName,\r\n // \"LastName\": vm.customerInfo.LastName,\r\n // \"Gender\": vm.customerInfo.Gender,\r\n // \"DOB\": vm.customerInfo.DOB,\r\n // \"FatherName\": vm.customerInfo.FatherName,\r\n // \"PersonalEmail\": \"abcd@gmail.com\",\r\n // \"ContactNumber\": vm.customerInfo.ContactNumber,\r\n // \"AlternativeContactNumber\": vm.customerInfo.AlternativeContactNumber,\r\n // \"CompanyName\": vm.customerInfo.CompanyName,\r\n // \"Locations\": vm.customerInfo.Locations,\r\n // \"ReportingTo\": vm.customerInfo.ReportingTo,\r\n // \"Role\": vm.customerInfo.Role,\r\n // \"PermanentAdd1\": vm.customerInfo.PermanentAdd1,\r\n // \"PermanentAdd2\": vm.customerInfo.PermanentAdd2,\r\n // \"PermanentState\": vm.customerInfo.PermanentState,\r\n // \"PermanentCity\": vm.customerInfo.PermanentCity,\r\n // \"PermanentPincode\": vm.customerInfo.PermanentPinCode,\r\n // \"CurrentAdd1\": vm.customerInfo.CurrentAdd1,\r\n // \"CurrentAdd2\": vm.customerInfo.CurrentAdd2,\r\n // \"CurrentState\": vm.customerInfo.CurrentState,\r\n // \"CurrentCity\": vm.customerInfo.CurrentCity,\r\n // \"CurrentPincode\": vm.customerInfo.CurrentPinCode,\r\n // \"DateOfJoin\": vm.customerInfo.DateOfJoin,\r\n // \"TokenId\": vm.customerInfo.TokenId,\r\n // \"DeviceOS\": vm.customerInfo.DeviceOS,\r\n // \"Expertise\": vm.customerInfo.Expertise,\r\n // \"Picture\": vm.customerInfo.Picture\r\n // };\r\n\r\n // var locs = \"\";\r\n // angular.forEach(vm.customerInfo.Locations, function(l){\r\n // locs += l +\",\";\r\n // })\r\n // locs = locs.length>0?locs.substring(0, locs.length-1):\"\";\r\n // data.Locations = locs;\r\n\r\n // var skillsets = \"\";\r\n // angular.forEach(vm.customerInfo.SkillSet, function(l){\r\n // skillsets += l +\",\";\r\n // })\r\n // skillsets = skillsets.length>0?skillsets.substring(0, skillsets.length-1):\"\";\r\n // data.SkillSet = skillsets;\r\n\r\n return finalModel;\r\n } \r\n\r\n vm.saveBasicInteraction = function () {\r\n $log.log(\"userData\", vm.userData);\r\n \r\n }\r\n\r\n vm.saveTrainingAssessment = function () {\r\n var data = vm.prepareUserData(); \r\n TeamProfileService.save(loggedinUser, token, data, function(res){\r\n $log.log(res);\r\n if(res && res.status==202){\r\n vm.showSuccess(\"Success\", \"Training assessment saved.\");\r\n } else if(res && res.data && res.data.Message){\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to save user profile, server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.saveBGDocs = function () {\r\n \r\n var data = vm.prepareUserData(); \r\n TeamProfileService.save(loggedinUser, token, data, function(res){\r\n $log.log(res);\r\n if(res && res.status==202){\r\n vm.showSuccess(\"Success\", \"Background verification documents saved.\");\r\n } else if(res && res.data && res.data.Message){\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to save user profile, server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n // TeamProfileService.save(vm.userData, vm.saveCallback, vm.showFailure);\r\n }\r\n\r\n // vm.AddAuthorizedBy = function () {\r\n // vm.AuthorizedBy.push({});\r\n // }\r\n\r\n // vm.AddQualification = function () {\r\n // vm.customerInfo.QualificationList.push({});\r\n // }\r\n\r\n // vm.AddSkill = function () {\r\n // vm.customerInfo.SkillList.push({});\r\n // }\r\n\r\n // vm.AddTraining = function () {\r\n // vm.customerInfo.TrainingList.push({});\r\n // }\r\n\r\n // vm.RemoveAuthorizedBy = function (i) {\r\n // vm.AuthorizedBy.splice(i, 1);\r\n // }\r\n\r\n // vm.RemoveQualification = function (i) {\r\n // vm.customerInfo.QualificationList.splice(i, 1);\r\n // }\r\n\r\n // vm.RemoveSkill = function (i) {\r\n // vm.customerInfo.SkillList.splice(i, 1);\r\n // }\r\n\r\n // vm.RemoveTraining = function (i) {\r\n // vm.customerInfo.TrainingList.splice(i, 1);\r\n // }\r\n\r\n vm.getAllCertificate = function(){\r\n OnBoardingFormService.GetAllCertificate(loggedinUser,token,function(data){\r\n vm.AllCertificateSets = data;\r\n },vm.showFailure);\r\n }\r\n vm.getAllCertificate();\r\n\r\n vm.addMoreTCertificate = function(){\r\n var CertificateIssueDate = $filter('date')(new Date(vm.CertificateIssueDate),'yyyy-MM-dd');\r\n var CertificateExpiryDate = $filter('date')(new Date(vm.CertificateExpiryDate),'yyyy-MM-dd');\r\n if(CertificateIssueDate >= CertificateExpiryDate ){\r\n vm.showFailure(\"Expiry date should be greater than Issue Date\");\r\n vm.showTCList = false;\r\n vm.pathtcertificate = '';\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n }else{\r\n var tData = {\r\n CertificateName: vm.addTraningCertificateName,\r\n TrainingCertificate: vm.pathtcertificate,\r\n CertificateNo : vm.CertificateNo,\r\n CertificateIssueDate: CertificateIssueDate,\r\n CertificateExpiryDate: CertificateExpiryDate,\r\n CertificationYear: '',\r\n AssessmentLevel: '',\r\n Description : '',\r\n }\r\n \r\n if(tData.CertificateName && tData.TrainingCertificate && tData.CertificateIssueDate && tData.CertificateExpiryDate){\r\n vm.TrainingList.push(tData);\r\n vm.showTCList = false;\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.pathtcertificate = '';\r\n }else{\r\n vm.showTCList = false;\r\n vm.pathtcertificate = '';\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.showFailure(\"Warning\", \"You must select Certificate Name,CertificateIssueDate,CertificateExpiryDate & Upload File \");\r\n }\r\n }\r\n }\r\n\r\n vm.removeCurrentCertificate = function () {\r\n vm.showTCList = false;\r\n vm.addTraningCertificateName = '';\r\n vm.pathtcertificate = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n }\r\n\r\n vm.showTCList = false;\r\n vm.addMoreCertificateInTable = function(){\r\n vm.showTCList = true;\r\n vm.tempCertificateAdd = true;\r\n }\r\n\r\n vm.tempCertificateAdd = false;\r\n vm.getCertificateSets = function () {\r\n var RemoveCertificate = [];\r\n var remainingCertificate = Array.from(vm.AllCertificateSets);\r\n angular.forEach(remainingCertificate, function (d) {\r\n for (var i = 0; i < vm.TrainingList.length; i++) {\r\n if (d.Name == vm.TrainingList[i].CertificateName) {\r\n RemoveCertificate.push(d);\r\n return;\r\n }\r\n }\r\n });\r\n angular.forEach(RemoveCertificate, function (s) {\r\n remainingCertificate.splice(remainingCertificate.indexOf(s), 1);\r\n })\r\n return remainingCertificate;\r\n }\r\n\r\n $scope.uploadCertificateFile = function (elem) {\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n // var doc = vm.BGDocList[index];\r\n var traning = vm.TrainingList[index];\r\n // vm.error[traning.CertificateName] = '';\r\n var file = elem.files[0];\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n OnBoardingFormService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.pathtcertificate = res.data;\r\n if(vm.pathtcertificate){\r\n vm.tempCertificateAdd = false;\r\n }\r\n traning.TrainingCertificate = traning.TrainingCertificate = res.data;\r\n traning.CertificateName = traning.CertificateName;\r\n traning.edit = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.error[traning.CertificateName] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n \r\n\r\n }\r\n});\r\n\nangular.module('inspinia').service('TeamFormCreationService', function (ApiURL, AcessoriesURL,LocationURL,PublicApiURL, $log, $http,$localStorage) {\r\n var url = ApiURL + '/api/User';\r\n\r\n //state api https://product.mymobiforce.com/publicapi/api/Location/GetAllStates?userId=F00000000000&country=INDIA\r\n this.getState = function (loggedInUserId,token,region) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetTicketStatusForTerritory = function (loggedInUser, token) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetTicketStatusForTerritory';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n \r\n \r\n this.CreateUser = function (userFormData, loggedinUser, token) {\r\n var url = ApiURL + '/api/User?reqUserId='+loggedinUser;\r\n return $http.post(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser \r\n }\r\n });\r\n }\r\n\r\n this.getAllRole = function (token) {\r\n var url = ApiURL + '/api/role';\r\n return $http.get(url, {\r\n 'Token': token, 'UserId':loggedinUser\r\n });\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetRegion?userId=U370000000001\r\n this.GetRegion = function(loggedInUserId, token){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n this.GetTelecomCircle = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetTelecomCircles?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetSubRegion?userId=U370000000001®ion=North\r\n this.GetSubRegion = function(loggedInUserId, token, region){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+region;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n this.GetCityBySubRegion = function(loggedInUserId, subRegion, token){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+subRegion;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n this.GetAllProductNames = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets/GetAllProductNames';\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n this.GetAllSkillsForProduct = function (ProductName,loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets/GetAllSkillsForProduct?ProductName=' + ProductName;\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n\r\n this.getAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\nthis.getCountry = function (loggedinUser, token) {\r\n var url = PublicApiURL + '/api/Address/GetCountry?userId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\nthis.getAllState = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\nthis.getCities = function (loggedinUser,state,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\n this.getAllCity = function (loggedinUser,state, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n });\r\n }\r\n\r\n this.getAllPincode = function (city) {\r\n var url = LocationURL+'/api/Location/'+$localStorage.loggedinUser+'/'+city+'/GetPincodesByCity';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n //http://localhost:56749/api/User/Project%20Manager/GetReportingToUserByRole?reqUserId=saurabhgupta3371%40gmail.com\r\n\r\n this.GetReportingToUser = function(role, loggedinUser, token){\r\n var url = ApiURL + '/api/User/' + role + '/GetReportingToUserByRole?reqUserId=' + loggedinUser\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n // this.validateAllPincode = function (pin) {\r\n // var url = 'https://www.whizapi.com/api/v2/util/ui/in/indian-city-by-postal-code?project-app-key=pso222ywjvx996b93gd8wpp6&pin='+pin;\r\n // return $http.get(url, {\r\n // params: {}\r\n // });\r\n // }\r\n\r\n this.getAllReportingTo = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/User';\r\n return $http.get(url, {\r\n params: {userid: loggedinUser},\r\n headers: {'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n this.getUserData = function (userid, token) {\r\n return $http.get(url, {\r\n params: {UserId:userid},\r\n headers: {'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.updateUser = function (userFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/User/UpdateTeamUserDetails';\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser}\r\n });\r\n }\r\n //http://192.168.0.80:92/CoreAPI/api/Role/ByReqUserId?reqUserId=kanika.bansal%40innotiontech.com\r\n\r\n this.getAllRoleByUserId = function (userId, token) {\r\n var url = ApiURL + '/api/Role/ByReqUserId?reqUserId='+userId;\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':userId}\r\n \r\n });\r\n }\r\n\r\n this.uploadProfilePic = function(loggedinUser, data, token, success, failure){\r\n $http.post(ApiURL + '/api/UploadImage', data, { \r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n \r\nthis.getAllAccounts = function (loggedInUserId,token) { \r\n var url = ApiURL+ '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n \r\n }\r\n });\r\n}\r\n\r\n//Accounts API\r\nthis.getAllAccountsConfigured = function (loggedinUser,token) { \r\n var url = ApiURL+ '/api/CentralHelpDesk/GetAllAccountHDConfig';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n}\r\n\r\n\r\n//https://product.mymobiforce.com/coreAPI/api/User/GetTeamUserDetails?UserId=U00000000413\r\nthis.getFixedUserInfo = function (userId,loggedInUser, token) {\r\n var url = ApiURL + '/api/User/GetTeamUserDetails?UserId='+ userId ;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n// http://localhost:56749/api/TerritoryMappingUser/GetStateByAccountIdAndRole?AccountId=114&Role=Administrator\r\nthis.getTerritoryStates = function (loggedInUser, token,AccountId,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetStateByAccountIdAndRole?AccountId='+ AccountId+ '&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n//http://localhost:56749/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId=144&State=Uttar%20Pradesh&Role=Administrator\r\nthis.getTerritoryCity = function (loggedInUser, token,AccountId,state,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId='+ AccountId+'&State='+state+'&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n//https://upgrad.mymobiforce.com/coreapi/api/TerritoryMappingUser/GetPincodeByStateAndCityAndAccountIdAndRole?AccountId=144&State=Uttar%20Pradesh&City=Noida&Role=Administrator\r\nthis.getTerritoryPincodes = function (loggedInUser, token,AccountId,state,City,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetPincodeByStateAndCityAndAccountIdAndRole?AccountId='+ AccountId+'&State='+state+'&City='+City+'&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n \r\nthis.GetAllNotAllocatedWareHouse = function (loggedInUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllNotAllocatedWareHouse';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\nthis.GetItemBrandName = function (token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemBrandName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n});\r\n\nangular.module('inspinia').controller('TeamFormCreationController', function (ProjectCreationService,ReferService, MainService, $state, $scope, $timeout, $stateParams, $filter, $log, $localStorage, TeamFormCreationService, TeamProfileService, toaster, $q, ImageUrl) {\r\n var vm = this;\r\n vm.isDisabled = false;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n var accountConfig = $localStorage.accountConfig;\r\n vm.accountId = $localStorage.accountConfig.AccountId;\r\n if ($localStorage.accountConfig) {\r\n if ($localStorage.accountConfig) {\r\n vm.EnableRegion = $localStorage.accountConfig.EnableRegion;\r\n }\r\n }else{\r\n vm.EnableRegion = false;\r\n }\r\n\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n vm.loggedinUserRole = $localStorage.loggedInUser_Role;\r\n\r\n //$log.log('Role=',vm.loggedinUserRole);\r\n angular.element(document).ready(function () {\r\n angular.element('ul[side-navigation]').find('a[ui-sref=\"index.TeamMember\"]').parent().prop('class', 'active');\r\n // angular.element(\".chosen-select\").chosen();\r\n });\r\n\r\n ///Global variables goign to use for seeting page defaults.\r\n\r\n var userId_ForUpdate = $stateParams.userId;\r\n vm.saveAndNewFlag = false;\r\n vm.editMode = false;\r\n vm.address_option = 'Yes';\r\n vm.officeFormValidation = false;\r\n vm.isCollapsed = false;\r\n vm.isUserDetailCollapsed = false;\r\n vm.isOfficeUseCollapsed = true;\r\n vm.Role = '';\r\n vm.specialist = \"No\";\r\n vm.ReportingTo = '';\r\n vm.warehouseToBeAllocated = '';\r\n vm.AadhaarNumber = '';\r\n vm.Rating = '';\r\n vm.ExperienceInYears = '';\r\n vm.SubCity='';\r\n vm.allStates = [];\r\n //page binding models using\r\n vm.username = '';\r\n vm.gender = '';\r\n vm.email = '';\r\n vm.phone_number = '';\r\n vm.last_name = '';\r\n vm.birth_date = moment();\r\n vm.father_name = '';\r\n vm.alternate_number = '';\r\n vm.workArea = '';\r\n vm.AccountName = '';\r\n vm.company = '';\r\n vm.permanent_address_line1 = '';\r\n vm.permanent_state = '';\r\n vm.permanent_pincode = '';\r\n vm.permanent_address_line2 = '';\r\n vm.permanent_city = '';\r\n vm.present_address_line1 = '';\r\n vm.present_address_line2 = '';\r\n vm.present_state = '';\r\n vm.present_city = '';\r\n vm.present_pincode = '';\r\n vm.skill = '';\r\n vm.companyname = '';\r\n vm.brand = '';\r\n vm.expertise = '';\r\n vm.reportinToList = '';\r\n vm.workAreas = [];\r\n vm.CHDAccounts = [];\r\n vm.RemainingCHDAccounts = [];\r\n vm.SelectedAccount={};\r\n vm.showAction = true;\r\n // vm.multiPincode = []\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.LocationMapping = vm.getAccountConfigSetting('LocationMapping');\r\n console.log('vertical',vm.VerticalName);\r\n vm.MainRegion = '';\r\n vm.SubRegion = '';\r\n var today = new Date();\r\n var date = today.getFullYear() - 18;\r\n var age = (today.getMonth() + 1 + \"/\" + today.getDate() + \"/\" + date).toString();\r\n\r\n vm.maxDOB = new Date(age);\r\n vm.maxDOBStr = vm.maxDOB.toDateString();\r\n age = Date.parse(age);\r\n $scope.MaxDate = moment(age);\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.showEditList = false;\r\n vm.showEditLists = false;\r\n vm.isShow=true;\r\n \r\n getAllRole();\r\n\r\n function getAllRole() {\r\n TeamFormCreationService.getAllRoleByUserId(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.RolesList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n var brandArray = [];\r\n vm.GetItemBrandName = function () {\r\n TeamFormCreationService.GetItemBrandName(token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BrandList = resp.data;\r\n for (var index = 0; index < vm.BrandList.length; index++) {\r\n brandArray.push({\r\n brand: vm.BrandList[index] // Correct reference\r\n });\r\n }\r\n }\r\n });\r\n };\r\n vm.GetItemBrandName();\r\n vm.checkMaxDOB = function () {\r\n if (vm.birth_date && !vm.birth_date._isAMomentObject) {\r\n var splittedDOB = vm.birth_date.split(\"/\");\r\n vm.birth_date = moment(new Date((splittedDOB[1] + \"/\" + splittedDOB[0] + \"/\" + splittedDOB[2]).toString()));\r\n }\r\n\r\n return (vm.maxDOB - vm.birth_date) < 0;\r\n }\r\n\r\n vm.GetReportingToUser = function (role) {\r\n vm.reportinToList=\"\";\r\n TeamFormCreationService.GetReportingToUser(role, loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.reportinToList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.removeAddmoreEditList = function () { \r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n}\r\n \r\n // vm.selectedCountry = null;\r\n vm.countrylist = [\"INDIA\"];\r\n vm.selectedCountry = \"INDIA\";\r\n //get country of user\r\n\r\n // vm.getCountry = function () {\r\n // TeamFormCreationService.getCountry(loggedinUser, token).then(function (resp) {\r\n // if(resp.status == 200){\r\n // // if(resp.data && resp.data.values.length>0){\r\n // vm.countrylist = [\"INDIA\"];\r\n // vm.selectedCountry = \"INDIA\";\r\n \r\n // //getAllCircles(loggedinUser);\r\n // // }\r\n // } \r\n // })\r\n // }\r\n\r\n\r\n vm.getAllState = function () {\r\n TeamFormCreationService.getAllState(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.stateList = resp.data;\r\n if ($state.current.name == 'index.TeamEdit') {\r\n vm.teamEditMode = $state.current.name;\r\n vm.editMode = true;\r\n \r\n if(userId_ForUpdate.startsWith(\"U\") || userId_ForUpdate.startsWith(\"F\")){\r\n TeamFormCreationService.getFixedUserInfo(userId_ForUpdate, loggedinUser, token).then(function (resp) {\r\n var userData = resp.data;\r\n vm.AccountName = userData.ServiceAccountIds;\r\n vm.username = userData.FirstName;\r\n vm.gender = userData.Gender;\r\n vm.email = userData.PersonalEmail;\r\n vm.phone_number = parseInt(userData.ContactNumber);\r\n vm.last_name = userData.LastName;\r\n vm.birth_date = moment(userData.DOB);\r\n vm.father_name = userData.FatherName;\r\n if(userData.AlternativeContactNumber){\r\n vm.alternate_number = parseInt(userData.AlternativeContactNumber);\r\n } \r\n vm.specialist = userData.Specialist; \r\n vm.workArea = userData.Locations;\r\n //vm.company = userData.CompanyName;\r\n vm.userId = userData.UserId;\r\n vm.permanent_address_line1 = userData.PermanentAdd1;\r\n vm.permanent_address_line2 = userData.PermanentAdd2;\r\n vm.permanent_city = userData.PermanentCity.toUpperCase();\r\n vm.permanent_state = userData.PermanentState;\r\n vm.permanent_pincode = userData.PermanentPinCode;\r\n vm.present_address_line1 = userData.CurrentAdd1;\r\n vm.present_address_line2 = userData.CurrentAdd2;\r\n vm.present_city = userData.CurrentCity.toUpperCase();\r\n vm.present_state = userData.CurrentState;\r\n vm.present_pincode = userData.CurrentPinCode;\r\n vm.skill = userData.SkillSet;\r\n vm.selectedSkills = userData.SkillSet;\r\n vm.productSkills = userData.SkillSet;\r\n vm.expertise = userData.Expertise;\r\n vm.Role = userData.Role;\r\n vm.brand = userData.BrandNameList ;\r\n vm.companyname = userData.CompanyName;\r\n vm.GetReportingToUser(vm.Role);\r\n vm.ReportingTo = userData.ReportingTo;\r\n vm.workAreas = userData.TerritoryConfigurations;\r\n // vm.profilePic = userData.Picture;\r\n vm.imageServices(userData.Picture);\r\n if (vm.EnableRegion) {\r\n vm.MainRegion = userData.Region;\r\n \r\n //GetSubRegionList\r\n vm.selectSubRegion(vm.MainRegion);\r\n vm.Region = userData.SubRegion;\r\n vm.selectCitySubRegion(vm.Region);\r\n vm.SubCity = userData.Locations;\r\n }else{\r\n vm.workArea = userData.Locations;\r\n }\r\n \r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n \r\n ///Get the workArea badges in edit mode \r\n var circleArray = [];\r\n if(vm.workArea){\r\n for (var pin = 0; pin < vm.workArea.length; pin++) {\r\n circleArray.push({\r\n workArea: vm.workArea\r\n });\r\n }\r\n }\r\n \r\n \r\n ///Check Present address is same as the Permanent Address.\r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n }, function () {\r\n \r\n });\r\n }\r\n else\r\n {\r\n TeamProfileService.getUserInfo(userId_ForUpdate, loggedinUser, token).then(function (resp) {\r\n var userData = resp.data;\r\n vm.username = userData.FirstName;\r\n vm.gender = userData.Gender;\r\n vm.email = userData.PersonalEmail;\r\n vm.phone_number = parseInt(userData.ContactNumber);\r\n vm.last_name = userData.LastName;\r\n vm.birth_date = moment(userData.DOB);\r\n vm.father_name = userData.FatherName;\r\n vm.alternate_number = parseInt(userData.AlternativeContactNumber);\r\n vm.specialist = userData.Specialist; \r\n //vm.workArea = userData.Locations;\r\n vm.warehouseToBeAllocated = userData.WareHouseId; \r\n vm.AadhaarNumber = userData.AadharNumber;\r\n vm.Rating = userData.Rating;\r\n vm.ExperienceInYears = userData.ExperienceInYears;\r\n vm.company = userData.CompanyName;\r\n vm.userId = userData.UserId;\r\n vm.permanent_address_line1 = userData.PermanentAdd1;\r\n vm.permanent_address_line2 = userData.PermanentAdd2;\r\n vm.permanent_city = userData.PermanentCity.toUpperCase();\r\n vm.permanent_state = userData.PermanentState;\r\n vm.permanent_pincode = userData.PermanentPinCode;\r\n vm.present_address_line1 = userData.CurrentAdd1;\r\n vm.present_address_line2 = userData.CurrentAdd2;\r\n vm.present_city = userData.CurrentCity.toUpperCase();\r\n vm.present_state = userData.CurrentState;\r\n vm.present_pincode = userData.CurrentPinCode;\r\n vm.skill = userData.SkillSet;\r\n vm.selectedSkills = userData.SkillSet;\r\n vm.productSkills = userData.SkillSet;\r\n vm.expertise = userData.Expertise;\r\n vm.brand = userData.BrandNameList ;\r\n vm.companyname = userData.CompanyName;\r\n vm.Role = userData.Role;\r\n vm.GetReportingToUser(vm.Role);\r\n vm.ReportingTo = userData.ReportingTo;\r\n vm.profilePic = userData.Picture;\r\n if (vm.EnableRegion) {\r\n vm.MainRegion = userData.Region;\r\n \r\n //GetSubRegionList\r\n vm.selectSubRegion(vm.MainRegion);\r\n vm.Region = userData.SubRegion;\r\n vm.selectCitySubRegion(vm.Region);\r\n vm.SubCity = userData.Locations;\r\n }else{\r\n vm.workArea = userData.Locations;\r\n }\r\n \r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n \r\n ///Get the workArea badges in edit mode \r\n var circleArray = [];\r\n for (var pin = 0; pin < vm.workArea.length; pin++) {\r\n circleArray.push({\r\n workArea: vm.workArea\r\n });\r\n }\r\n \r\n ///Check Present address is same as the Permanent Address.\r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n }, function () {\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 vm.getAllState();\r\n \r\n // vm.getCountry();\r\n\r\n $scope.modelOptions = {\r\n getterSetter: true\r\n };\r\n\r\n\r\n\r\n vm.getProfilePic = function(pic){\r\n return ImageUrl+\"/\"+vm.profilePic;\r\n }\r\n\r\n vm.changeFile = function(selector){\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n\r\n $scope.uploadImageFile = function(files){\r\n var file = files.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = loggedinUser+\"_ProfilePic_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if(file.type.indexOf(\"image/jpg\")>=0 || file.type.indexOf(\"image/png\")>=0 \r\n || file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n TeamFormCreationService.uploadProfilePic(loggedinUser, data, token, function(res){\r\n if(res && res.status==201 && res.data){\r\n vm.profilePic = filename;\r\n vm.imageServices(filename);\r\n }\r\n }, function(err){\r\n vm.showFailure(\"Failed\", err.data);\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n }\r\n vm.imageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function() {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n }\r\n vm.imageServices(vm.profileImg);\r\n\r\n ///Saving User function \r\n vm.saveUser = function () {\r\n vm.isDisabled = true;\r\n if (vm.signup_form.$valid) {\r\n if (vm.address_option == 'Yes') {\r\n vm.present_address_line1 = vm.permanent_address_line1;\r\n vm.present_address_line2 = vm.permanent_address_line2;\r\n vm.present_state = vm.permanent_state;\r\n vm.present_city = vm.permanent_city;\r\n vm.present_pincode = vm.permanent_pincode;\r\n }\r\n \r\n var workArea = '';\r\n var skill = '';\r\n if((vm.loggedinUserRole != \"Dispatch Manager\") && (vm.loggedinUserRole != \"OnBoarding Manager\") && (vm.loggedinUserRole != \"Dispatch Team Lead\")&& (vm.loggedinUserRole != \"OnBoarding Team Lead\") && (vm.loggedinUserRole != \"Dispatch Supervisor\")){ \r\n workArea = vm.workArea;\r\n if(vm.Role == 'Service Center'){\r\n skill = vm.selectedSkills;\r\n }\r\n else{\r\n skill = vm.skill;\r\n }\r\n /*for (var index = 0; index < vm.workArea.length; index++) {\r\n if (index == (vm.workArea.length - 1)) {\r\n workArea = workArea + vm.workArea[index];\r\n continue;\r\n }\r\n workArea = workArea + vm.workArea[index] + ',';\r\n } \r\n for (var skillindex = 0; skillindex < vm.skill.length; skillindex++) {\r\n if (skillindex == (vm.skills.length - 1)) {\r\n skill = skill + vm.skill[skillindex];\r\n vm.selectExpertise(skill);\r\n continue;\r\n }\r\n skill = skill + vm.skill[skillindex] + ',';\r\n vm.selectExpertise(skill);\r\n }*/\r\n } \r\n if(vm.Role == 'Ware House Manager'){\r\n vm.warehouseToBeAllocated = vm.warehouseToBeAllocated;\r\n }\r\n else{\r\n vm.warehouseToBeAllocated = '';\r\n }\r\n\r\n ///model to send for creating user \r\n var userFormData = { \r\n \"UserId\": vm.userId,\r\n \"FirstName\": vm.username,\r\n \"LastName\": vm.last_name,\r\n \"Gender\": vm.gender,\r\n \"DOB\": moment(vm.birth_date, 'DD/MM/YYYY').format('YYYY-MM-DDTHH:mm:ss.SSSZ'), \r\n \"PersonalEmail\": vm.email,\r\n \"ContactNumber\": vm.phone_number,\r\n \"AlternativeContactNumber\": vm.alternate_number,\r\n // \"CompanyName\": vm.company,\r\n \"Locations\": workArea,\r\n \"PermanentAdd1\": vm.permanent_address_line1,\r\n \"PermanentAdd2\": vm.permanent_address_line2,\r\n \"PermanentState\": vm.permanent_state,\r\n \"PermanentCity\": vm.permanent_city,\r\n \"PermanentPincode\": vm.permanent_pincode,\r\n \"CurrentAdd1\": vm.present_address_line1,\r\n \"CurrentAdd2\": vm.present_address_line2,\r\n \"CurrentState\": vm.present_state,\r\n \"CurrentCity\": vm.present_city,\r\n \"CurrentPincode\": vm.present_pincode,\r\n \"SkillSet\": skill,\r\n \"Expertise\": vm.expertise,\r\n \"ReportingTo\": '',\r\n \"Role\": '',\r\n \"Picture\":vm.profilePic,\r\n \"TerritoryConfigurations\":vm.workAreas,\r\n \"Specialist\":vm.specialist,\r\n \"WareHouseId\":vm.warehouseToBeAllocated,\r\n \"CompanyName\":vm.companyname,\r\n \"BrandName\": vm.brand,\r\n \"AadharNumber\":vm.AadhaarNumber,\r\n \"ExperienceInYears\":vm.ExperienceInYears,\r\n \"Rating\":vm.Rating\r\n }\r\n if (vm.EnableRegion) {\r\n userFormData.Region = vm.MainRegion;\r\n \r\n var workArea = '';\r\n for (var index = 0; index < vm.SubCity.length; index++) {\r\n if (index == (vm.SubCity.length - 1)) {\r\n workArea = workArea + vm.SubCity[index];\r\n continue;\r\n }\r\n workArea = workArea + vm.SubCity[index] + ',';\r\n }\r\n userFormData.Locations = workArea;\r\n userFormData.SubRegion = vm.Region;\r\n }\r\n\r\n \r\n if (vm.loggedinUserRole == 'Administrator' || vm.loggedinUserRole == 'Project Manager' || vm.loggedinUserRole == 'Supervisor' || vm.loggedinUserRole == 'Vendor Manager' || vm.loggedinUserRole == 'Service Center'|| vm.loggedinUserRole == 'SuperAdministrator' || vm.loggedinUserRole == 'OnBoarding Manager' || vm.loggedinUserRole == 'Account Manager' || vm.loggedinUserRole == 'OnBoarding Supervisor' || vm.loggedinUserRole == 'Operation Manager' || vm.loggedinUserRole == 'Operation Supervisor' || vm.loggedinUserRole == 'Higher Management'\r\n || vm.loggedinUserRole == 'Dispatch Manager' || vm.loggedinUserRole == 'Dispatch Supervisor' || vm.loggedinUserRole == 'Dispatch Team Lead'|| vm.loggedinUserRole == 'Freelancer Dispatcher'|| vm.loggedinUserRole == 'OnBoarding Team Lead' ||vm.loggedinUserRole == 'Customer' ) {\r\n userFormData.ReportingTo = vm.ReportingTo;\r\n userFormData.Role = vm.Role;\r\n }\r\n // else if(vm.loggedinUserRole == 'Supervisor'){\r\n // userFormData.ReportingTo = loggedinUser;\r\n // userFormData.Role = 'Field Engineer';\r\n // }\r\n\r\n \r\n\r\n if((vm.email==null || vm.email=='') && (vm.phone_number==null || vm.phone_number=='')){\r\n vm.showFailure(\"Failed\", \"Please provide email id or mobile number\");\r\n vm.isDisabled = false;\r\n } else{\r\n // Submit as normal\r\n if (vm.editMode) {\r\n TeamFormCreationService.updateUser(userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess(\"Success\", \"User Updated Successfully\");\r\n vm.isDisabled = false;\r\n $timeout(function () {\r\n $state.go('index.TeamMember', {\r\n reload: true\r\n });\r\n }, 2000);\r\n }\r\n else{\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n \r\n }, function () {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", \"Unable to update user\");\r\n })\r\n } else {\r\n\r\n userFormData.UserId = '';\r\n TeamFormCreationService.updateUser(userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n if (!vm.saveAndNewFlag && vm.loggedinUserRole == 'SuperAdministrator') {\r\n $state.go('index.TeamMember', {\r\n reload: true\r\n });\r\n }\r\n else if (!vm.saveAndNewFlag) {\r\n // $state.go('index.TeamMember', {\r\n // reload: true\r\n // });\r\n\r\n $timeout(function() {\r\n $state.go('index.TeamMember', { reload: true });\r\n }, 2000);\r\n\r\n // $timeout(function () {\r\n // window.location.reload(true);\r\n // }, 3000);\r\n } else {\r\n vm.showSuccess(\"User Creation Status\", \"User created successfully\");\r\n vm.isDisabled = false;\r\n clearFormFields();\r\n }\r\n } else if (resp.data.ErrorCode == 104) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"User already exist\");\r\n } else if(resp.data && resp.data.Message) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", resp.data.Message);\r\n } else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n vm.isDisabled = false;\r\n }, function (error) {\r\n vm.isDisabled = false;\r\n if (error.data.ErrorCode == 104) {\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n }\r\n );\r\n }\r\n }\r\n } else {\r\n vm.signup_form.submitted = true;\r\n vm.isDisabled = false;\r\n }\r\n }\r\n\r\n // vm.saveAndNew = function () {\r\n // vm.saveAndNewFlag = true;\r\n // vm.saveUser();\r\n // }\r\n\r\n vm.getAccounts = function () {\r\n TeamFormCreationService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data && resp.status==200) { \r\n vm.accounts = resp.data;\r\n } \r\n }, function () { \r\n });\r\n } \r\n vm.getAccounts();\r\n\r\n function clearFormFields() {\r\n vm.username = '';\r\n vm.gender = '';\r\n vm.address = '';\r\n vm.email = '';\r\n vm.phone_number = '';\r\n vm.last_name = '';\r\n // vm.birth_date = '';\r\n vm.cores_address = '';\r\n vm.father_name = '';\r\n vm.alternate_number = '';\r\n vm.workArea = '';\r\n vm.city = '';\r\n // vm.reporting_to = '';\r\n vm.state = '';\r\n // vm.role = '';\r\n vm.skill = '';\r\n vm.selectedSkills = [];\r\n vm.expertise = '';\r\n vm.saveAndNewFlag = false;\r\n }\r\n\r\n var skillsArray = [];\r\n vm.getAllSkill = function () {\r\n TeamFormCreationService.getAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skills = resp.data; \r\n for (var index = 0; index < vm.skills.length; index++) { \r\n skillsArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n }\r\n }); \r\n }\r\n\r\n vm.selectExpertise = function (skill) {\r\n // TeamFormCreationService.getAllSkills().then(function (resp) {\r\n // vm.expertiseList = resp.data;\r\n // vm.expertiseList = [];\r\n if (!vm.skills) {\r\n var expertiseArray = [];\r\n expertiseArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n vm.expertiseList = expertiseArray;\r\n }\r\n }\r\n\r\n vm.selectedProduct = \"\";\r\n vm.selectedSkills = [];\r\n vm.ProductsList = [];\r\n\r\n vm.GetAllProductNames = function () {\r\n TeamFormCreationService.GetAllProductNames(loggedinUser, token).then(function (resp) {\r\n vm.ProductsList = resp.data;\r\n }); \r\n }\r\n\r\n vm.GetAllProductNames();\r\n\r\n vm.GetAllSkillsForProduct = function () {\r\n if (vm.selectedProduct) {\r\n TeamFormCreationService.GetAllSkillsForProduct(vm.selectedProduct, loggedinUser, token).then(function (resp) {\r\n vm.productSkills = resp.data;\r\n \r\n // Merge selected skills with the new product skills\r\n var allSkills = vm.productSkills.concat(vm.selectedSkills.filter(function(skill) {\r\n return !vm.productSkills.includes(skill);\r\n }));\r\n\r\n vm.productSkills = allSkills;\r\n })\r\n } else {\r\n vm.productSkills = [];\r\n } \r\n }\r\n\r\n ///get all the circles through api\r\n function getAllCircles() {\r\n vm.circles = [];\r\n vm.CircleList=[];\r\n vm.MainRegionList = '';\r\n if (vm.EnableRegion) {\r\n TeamFormCreationService.GetRegion(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.MainRegionList = resp.data;\r\n $log.log('RegionList',vm.RegionList)\r\n }\r\n }\r\n })\r\n }else if (vm.LocationMapping == 'Circle') {\r\n TeamFormCreationService.GetTelecomCircle(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.CircleList = resp.data.values;\r\n \r\n }\r\n }\r\n })\r\n }else{\r\n\r\n TeamFormCreationService.getAllState(loggedinUser, token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.circles = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n ///Executes when the user select the state\r\n vm.selectState = function (state) {\r\n var Getstate = state;\r\n TeamFormCreationService.getCities(loggedinUser,Getstate,token).then(function (resp) {\r\n vm.cityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n \r\n vm.selectSubRegion = function(region){\r\n \r\n TeamFormCreationService.GetSubRegion(loggedinUser,token,region).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.SubRegionList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n vm.selectCitySubRegion = function(Subregion){\r\n \r\n TeamFormCreationService.GetCityBySubRegion(loggedinUser,Subregion,token).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.SubCityList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.selectStateforPresent = function (state) { \r\n var Getstate = state;\r\n TeamFormCreationService.getCities(loggedinUser,Getstate,token).then(function (resp) {\r\n vm.presentcityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n //state \r\n vm.getStateList = function (region) {\r\n TeamFormCreationService.getState(loggedinUser, token, region).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.allStates = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n ///Executes when the user select the city\r\n vm.selectCity = function (city) {\r\n TeamFormCreationService.getAllPincode(city).then(function (resp) {\r\n vm.pincodeList = resp.data;\r\n if (!resp.data) {\r\n var pincodeArray = [];\r\n pincodeArray.push({\r\n pincode: city\r\n });\r\n vm.pincodeList = pincodeArray;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.selectCityforPresent = function (loggedinUser, city) {\r\n TeamFormCreationService.getAllPincode(loggedinUser, city.ID).then(function (resp) {\r\n vm.presentpincodeList = resp.data;\r\n if (!resp.data) {\r\n var pincodeArray = [];\r\n pincodeArray.push({\r\n pincode: city\r\n });\r\n vm.pincodeList = pincodeArray;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.removeAccountDetail = function (index) {\r\n vm.workAreas.splice(index,1); \r\n vm.getAllHDAccounts(); \r\n }\r\n\r\n vm.EditData=function(index){\r\n vm.SelectedAccount = vm.workAreas[index]; \r\n vm.territoryStates(vm.SelectedAccount.AccountId);\r\n vm.selectedStateForTerritory(vm.SelectedAccount.State);\r\n vm.selectedCityForTerritory(vm.SelectedAccount.City); \r\n }\r\n\r\n vm.AccountChange=function (){ \r\n for (var i = 0; i < vm.RemainingCHDAccounts.length; i++) {\r\n var Acc = vm.RemainingCHDAccounts[i];\r\n if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n vm.SelectedAccount.AccountId = Acc.AccountId;\r\n // vm.SelectedAccount = Acc; \r\n // break;\r\n }\r\n }\r\n vm.territoryStates(vm.SelectedAccount.AccountId);\r\n }\r\n vm.territoryStates = function (AccountId) {\r\n vm.AccountIDforTerritory = AccountId;\r\n TeamFormCreationService.getTerritoryStates(loggedinUser, token,AccountId,vm.Role).then(function(resp) {\r\n vm.stateListTerritory = resp.data;\r\n if(resp.status == 200) {\r\n // vm.territoryCity();\r\n }\r\n })\r\n }\r\n\r\n vm.selectedStateForTerritory = function (state) {\r\n vm.territoryCity(state,vm.AccountIDforTerritory);\r\n }\r\n vm.territoryCity = function (state,AccountId) {\r\n vm.StateForTerritoryCity = state;\r\n TeamFormCreationService.getTerritoryCity(loggedinUser, token,AccountId,state,vm.Role).then(function(resp) {\r\n vm.cityListTerritory = resp.data;\r\n if(resp.status == 200) {\r\n \r\n\r\n }\r\n })\r\n }\r\n\r\n vm.selectedCityForTerritory = function (City) {\r\n vm.territoryPincodes(City);\r\n }\r\n vm.uniPin = [];\r\n vm.territoryPincodes = function (City) {\r\n TeamFormCreationService.getTerritoryPincodes(loggedinUser, token,vm.AccountIDforTerritory,vm.StateForTerritoryCity,City,vm.Role).then(function(resp) {\r\n // if(resp.status == 200) {\r\n vm.pinCodeListTerritory = resp.data;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n var Acc = vm.workAreas[i];\r\n if((Acc.City == City) && (Acc.AccountId ==vm.AccountIDforTerritory) && (Acc.State == vm.StateForTerritoryCity)) {\r\n for (var j = 0; j < vm.pinCodeListTerritory.length; j++) { \r\n var pinCodeUnique = vm.pinCodeListTerritory[j];\r\n for (var k = 0; k < Acc.PinCode.length; k++) { \r\n if( pinCodeUnique == Acc.PinCode[k]) {\r\n vm.pinCodeListTerritory.splice(j,1);\r\n // break; \r\n }\r\n }\r\n \r\n }\r\n }\r\n }\r\n // }\r\n })\r\n }\r\n\r\n vm.addMoreAccount = function(){\r\n vm.SelectedAccount=[]; \r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n var Acc = vm.workAreas[i];\r\n for (var j = 0; j < vm.RemainingCHDAccounts.length; j++) { \r\n // console.log('acc = ' + Acc.AccountId + \" vm.RemainingCHDAccounts[j].AccountId \" + vm.RemainingCHDAccounts[j].AccountId + 'len ' + j) \r\n if(Acc.AccountId == vm.RemainingCHDAccounts[j].AccountId ) {\r\n // vm.RemainingCHDAccounts.splice(j,1); \r\n //break; \r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n //CHDAllaccounts\r\n vm.getAllHDAccounts = function ( ) {\r\n TeamFormCreationService.getAllAccountsConfigured(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data){ \r\n if(resp.status==200){\r\n vm.CHDAccounts = resp.data;\r\n vm.RemainingCHDAccounts = vm.CHDAccounts;\r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n\r\n vm.UpdateAllHDAccountConfig = function(index){ \r\n vm.showAction = true; \r\n var checkAccount = false;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n if(vm.SelectedAccount.PinCode == undefined) {\r\n vm.showFailure(\"Failed\", \"Please add Account details with Locations\");\r\n vm.workAreas[index].edit = true;\r\n }\r\n // vm.workAreas[i] == vm.SelectedAccount;\r\n // vm.workAreas[i].AccountSkillSet = vm.SelectedSkills;\r\n // vm.workAreas[i].AccountLocations = vm.SelectedLocations;\r\n // var Acc = vm.workAreas[i];\r\n // if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n // vm.workAreas[i] == vm.SelectedAccount;\r\n // checkAccount = true;\r\n // break;\r\n // }\r\n }\r\n if(checkAccount == false && index == undefined) { \r\n vm.SelectedAccountObj = Object.assign({}, vm.SelectedAccount); \r\n if(vm.SelectedAccountObj.AccountName && vm.SelectedAccountObj.State && vm.SelectedAccountObj.City && vm.SelectedAccountObj.PinCode) {\r\n vm.workAreas.push(vm.SelectedAccountObj);\r\n } \r\n else {\r\n vm.showFailure(\"Failed\", \"Please add Account details with Locations\");\r\n vm.workAreas[i].edit = true;\r\n \r\n } \r\n \r\n }\r\n else {\r\n var Acc = vm.workAreas[i];\r\n }\r\n vm.showEditList = false; \r\n }\r\n\r\n vm.getTicketStatus = function () {\r\n TeamFormCreationService.GetTicketStatusForTerritory(loggedinUser, token).then(function(resp) {\r\n vm.statusList = resp.data;\r\n })\r\n }\r\n\r\n vm.GetAllNotAllocatedWareHouse = function ( ) {\r\n TeamFormCreationService.GetAllNotAllocatedWareHouse(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data){ \r\n if(resp.status==200){\r\n vm.NotAllocatedWarehouses = resp.data;\r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n\r\n vm.GetAllNotAllocatedWareHouse();\r\n vm.getAllHDAccounts(); \r\n vm.getAllSkill();\r\n vm.getStateList(\"INDIA\");\r\n vm.getTicketStatus();\r\n }\r\n});\r\n\nangular.module('inspinia').service('TaskPriorityOpsService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n var vm = this;\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n// https://perf.mymobiforce.com/coreapi/api/TicketPayment/getinvoicesinrange?ReqUserId=F00000000000&StartDate=2019-07-01&EndDate=2019-08-21\r\nthis.GetAllScheduleExceptionListbyDateRange = function (loggedinUser, startDate, endDate, token) {\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/GetSchedulerException?ReqUserId=' + loggedinUser + '&StartDate=' + startDate + '&EndDate='+endDate;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId':loggedinUser }\r\n });\r\n}\r\n\r\n\r\n //https://perf.mymobiforce.com/schedulingapi/api/AutoSchedulerException/MarkResolveSchedulerException?reqUserId=U350000000001&exceptionId=U350000000001\r\n this.ResolveException = function(loggedinUser, exceptionIdList, success, token){\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/MarkResolveSchedulerException?reqUserId=' + loggedinUser ;\r\n $http.put(url,{'exceptionIdList':exceptionIdList},{\r\n headers:{'Content-Type':'application/json', 'Token': token, 'UserId':loggedinUser}\r\n }).then(function (res) {\r\n if(status = '202'){\r\n vm.showSuccess(\"Schedule Exception\", \"Exception(s) resolved successfully\");\r\n }\r\n \r\n success(res);\r\n }, function () {\r\n vm.showFailure(\"Schedule Exception\", \"Unable to resolved Exception(s)\");\r\n })\r\n }\r\n \r\n\r\n // https://perf.mymobiforce.com/coreapi/api/TicketPayment/PayCompleteInvoice?ReqUserId=F00000000000&InvoiceNo=IN_000000001\r\n // this.PutSingleInvoicePayments = function (loggedinUser, InvoiceNo, success, token) {\r\n // var url = ApiURL + '/api/TicketPayment/PayCompleteInvoice?ReqUserId=' + loggedinUser + '&InvoiceNo=' + InvoiceNo\r\n // $http.put(url, null, {\r\n // headers: { 'Content-Type': 'application/json', 'Token': token }\r\n // }).then(function (res) {\r\n // vm.showSuccess(\"Payment Information\", \"Payment Completed Successfully\");\r\n // success(res);\r\n // }, function () {\r\n // vm.showFailure(\"Payment Information\", \"Unable to make payment\");\r\n // })\r\n // }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/TicketPayment/PayMultiInvoices?ReqUserId=F00000000000&InvoiceNos=indifnd\r\n // this.PutMultiSelectedInvoicePayments = function (loggedinUser, InvoiceNos, success, token) {\r\n // var url = ApiURL + '/api/TicketPayment/PayMultiInvoices?ReqUserId=' + loggedinUser + '&InvoiceNos=' + InvoiceNos\r\n // $http.put(url, null, {\r\n // headers: { 'Content-Type': 'application/json', 'Token': token }\r\n // }).then(function (res) {\r\n // vm.showSuccess(\"Payment Information\", \"Payment Completed Successfully\");\r\n // success(res);\r\n // }, function () {\r\n // vm.showFailure(\"Payment Information\", \"Unable to make payment\");\r\n // })\r\n // }\r\n\r\n // https://perf.mymobiforce.com/SchedulingAPI/api/AutoSchedulerException/GetActiveSchedulerExceptionMobileApp?reqUserId=U00000000406&startDate=2021-08-01&endDate=2021-10-07&PageIndex=1&PageSize=10\r\n // this.getAllJobTickets = function (reqUserId, startDate, endDate, token,PageIndex,PageSize) {\r\n // var url = '';\r\n // url = SchedulingAPI + '/api/AutoSchedulerException/GetActiveSchedulerExceptionMobileApp?reqUserId=' + reqUserId + '&startDate=' + startDate+ '&endDate=' + endDate +'&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n // // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // 'Token': token,\r\n // 'UserId': reqUserId\r\n // }\r\n // });\r\n // }\r\n//https://perf.mymobiforce.com/schedulingapi/api/AutoSchedulerException/GetSchedulerExceptionForServerWithDynPaging\r\n this.getAllJobForExceptionList = function ( loggedinUser, token,userFormData) {\r\n var url = SchedulingAPI + \"/api/AutoSchedulerException/GetSchedulerExceptionForServerWithDynPaging\";\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.getAllAccounts = function (loggedinUser,token) { \r\n var url = ApiURL+ '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n }\r\n this.getAllUserByReportingPerson = function (reportingTo, token) {\r\n var url = ApiURL +'/api/User/'+ reportingTo+'/byReportingToWithJobCount?ReqUserId='+reportingTo;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId':reportingTo }\r\n });\r\n }\r\n\r\n\r\n// https://perf.mymobiforce.com/publicapi/api/Report/DownloadInvoices?reqUserId=F00000000000&InvoicesNo=IN_000000002\r\nthis.downloadInvoicebyInvoiceNo = function (loggedinUser, InvoiceNos, success, token) {\r\n $window.location.href = PublicApiURL + '/api/Report/DownloadInvoices?reqUserId=' + loggedinUser + '&InvoicesNo=' + InvoiceNos\r\n console.log($window.location.href);\r\n // $http.get(url,{\r\n // headers: { 'Content-Type': 'application/json', 'Token': token }\r\n // }).then(function (res) {\r\n // vm.showSuccess(\"Download Information\", \"Download Completed Successfully\");\r\n // success(res);\r\n // }, function () {\r\n // vm.showFailure(\"Payment Information\", \"Unable to Download Invoices\");\r\n // })\r\n}\r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('TaskPriorityOpsController', function (inventoryService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tinventoryService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n\t\tinventoryService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.$parent.$parent.main.implementSelectItems('scheduleExceptionListNew', this);\r\n\t\t// $scope.$parent.$parent.main.implementSelectItems('InVoiceHistoryData', this);\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsed1 = true;\r\n\t\t$scope.isCollapsed2 = true;\r\n\t\t$scope.isCollapsed3 = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\t\tvm.editJobAppointment = function () {\r\n\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAppointment.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\nvm.closeJobAppointment = function () {\r\n\t\t\tvm.jobAppointmentModal.close();\r\n\t\t}\r\n\r\n\t\r\n\t\t$scope.userFilter = true;\r\n $scope.assignJobFilter = function() {\r\n $scope.userFilter = !$scope.userFilter;\r\n $scope.myvalue = true;\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n // $scope.toggleMenu();\r\n };\r\n \r\n$scope.toggleForBroadcast = function() {\r\n\t$scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n\t$scope.myvalue = true;\r\n\r\n};\r\n \r\n \r\n$scope.hideoverlay = function(){\r\n\t$scope.myvalue = false;\r\n\t$scope.class_status = true;\r\n\t$scope.broadcastSentUser = true;\r\n\t\r\n}\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('TalentRegisterService', function (PublicApiURL, $log, $http) {\r\n\r\n // https://perf.mymobiforce.com/publicapi/api/FreeLancerRegistration/freelancerinvite\r\n this.registerUser = function (userData) {\r\n var url = PublicApiURL + '/api/FreeLancerRegistration/freelancerinvite';\r\n return $http.post(url, userData,{\r\n \theaders:{\r\n \t\t'Content-Type': 'application/json'\r\n \t}\r\n });\r\n }\r\n});\r\n\n angular.module('inspinia').controller('TalentRegisterController', function (TalentRegisterService,$document, $timeout, $location, $window, $state,registerService, toaster,$uibModal,$scope) {\r\n var vm = this;\r\n vm.firstname = '';\r\n vm.lastname = '';\r\n vm.email = '';\r\n vm.phone = '';\r\n // vm.password = '';\r\n // vm.confirmpass = '';\r\n // vm.companyName = '';\r\n vm.termCheck = false;\r\n var modalInstance = {};\r\n var angular_pass = angular.element(\"#pass\");\r\n var angular_confirm_pass = angular.element(\"#confirm_pass\");\r\n var password = angular_pass[0],\r\n confirm_password = angular_confirm_pass[0];\r\n\r\nvm.Register = function (event) {\r\n /// \r\n /// Registering the New User\r\n /// \r\nif (vm.registerForm.$valid) {\r\n // console.log(\"pass\");\r\n var registerdata = {\r\n InviteName: vm.firstname +' '+ vm.lastname,\r\n InvitedPhoneNo: vm.phone\r\n }\r\n\r\n var json = angular.toJson(registerdata);\r\n if (angular.isDefined(json)) {\r\n TalentRegisterService.registerUser(json)\r\n .success(function (data,status) {\r\n if (status==201) {\r\n // toaster.pop({\r\n // type: 'success',\r\n // title: data.Message,\r\n // showCloseButton: true,\r\n // body: \"Redirecting to login page\",\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000\r\n // });\r\n // fieldsEmpty();\r\n $state.go('Thankyou',{userId:vm.firstname,email:vm.email},{reload:true});\r\n } else if(status==206)\r\n {\r\n if (data.Message == \"user already exist.\") {\r\n toaster.pop({\r\n type: 'error',\r\n title: data.Message,\r\n showCloseButton: true,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000\r\n });\r\n } else {\r\n toaster.pop({\r\n type: 'error',\r\n title: data.Message,\r\n showCloseButton: true,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000\r\n });\r\n }\r\n } \r\n })\r\n .error(function () {\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Unable to register',\r\n showCloseButton: true,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000\r\n });\r\n });\r\n }\r\n\r\n } else {\r\n vm.registerForm.submitted = true;\r\n }\r\n // if (confirm_password.validationMessage) {\r\n // return;\r\n // }\r\n\r\n // event.preventDefault();\r\n }\r\n\r\n\r\n\r\nvm.OpenTermModal=function()\r\n{\r\n modalInstance = $uibModal.open({\r\n templateUrl: 'termsAndCondition_modal.html',\r\n scope:$scope\r\n });\r\n}\r\n\r\nvm.CloseModal=function()\r\n{\r\n modalInstance.close();\r\n}\r\n\r\n // function fieldsEmpty() {\r\n // vm.firstname = '';\r\n // vm.lastname = '';\r\n // vm.email = '';\r\n // vm.phone = '';\r\n // vm.password = '';\r\n // vm.confirmpass = '';\r\n // vm.companyName = '';\r\n // } \r\n\r\n // function validatePassword() {\r\n // if (password.value != confirm_password.value) {\r\n // confirm_password.setCustomValidity(\"Passwords Doesn't Match\");\r\n // } else {\r\n // confirm_password.setCustomValidity('');\r\n // }\r\n // }\r\n // password.onchange = validatePassword;\r\n // confirm_password.onkeyup = validatePassword;\r\n });\r\n\nangular.module('inspinia').service('TabAdvancedDashboardService', function (ApiURL, PublicApiURL, $log, $http, DashboardURL, ActivityURL) {\r\n \r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n \r\n vm.getDashboard = function (loggedinUser, dashbardName, token, callback) {\r\n $http.get(DashboardURL+'/api/Dashboard/'+loggedinUser+'/'+ dashbardName + '/GetDashboardByName', {\r\n headers: {'Token': token, 'UserId': loggedinUser}\r\n }).then(function(res){\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.getChart = function (loggedinUser, chartType, metrics, dimensions, token, callback) {\r\n $http.get(DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP=null', {\r\n headers: {'Token': token, 'UserId': loggedinUser}\r\n }).then(function (res) {\r\n if (callback && (res.status == 200)) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n this.getSkills = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n\r\n this.getAccounts = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get accounts\");\r\n });\r\n }\r\n\r\n this.GetKPIAccounts = function (businessunit,vertical,month,year,loggedinUser, token, callback, failure) {\r\n var url = DashboardURL + '/api/AccountKPI/GetAccounts?BusinessUnit=' + businessunit + '&Vertical=' + vertical + '&TargetMonth=' + month +'&TargetYear=' + year;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get accounts\");\r\n });\r\n }\r\n\r\n this.getBusinessUnits = function (vertical,loggedinUser, token, callback, failure) {\r\n // var url = ApiURL + '/api/accountConfig/GetAllEnterpriseType';\r\n var url = DashboardURL + '/api/AccountKPI/GetBusinessUnits?BusinessUnit=' +vertical;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get business units\");\r\n });\r\n }\r\n\r\n this.GetVerticals = function (loggedinUser, token, callback, failure) {\r\n var url = DashboardURL + '/api/AccountKPI/GetVerticals';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get verticals\");\r\n });\r\n }\r\n\r\n\r\n this.getAllState = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n } \r\n });\r\n }\r\n\r\n this.getDistrictsByState = function (loggedinUser, token, state, callback, failure) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser }}).then(function (res) {\r\n callback(res.data.values);\r\n }, function () {\r\n failure(\"states\", \"Unable to get district\");\r\n });\r\n }\r\n\r\n this.getCitiesByState = function (loggedinUser, token, state) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n });\r\n }\r\n\r\n vm.getChart1 = function (loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData,total, callback) {\r\n $http.get(DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP='+encodeURI(rollUp)+\"&FilterKeys=\"+filterKeys+\"&FilterValues=\"+filterValues+\"&isData=\"+isData+\"&total=\"+total, {headers:{'Token': token, 'UserId': loggedinUser}}).then(function (res) {\r\n if (callback) {\r\n res.data['chartName'] = chartName;\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n});\nangular.module('inspinia').controller('TabAdvancedDashboardController', function ($state, $stateParams,$element, DTColumnBuilder, $q,$compile, $scope,AdvancedDashboardService, TabAdvancedDashboardService, CentralHelpdeskConfigService, $stateParams, $q, $log, $localStorage, DTOptionsBuilder, DTColumnDefBuilder, ReportService, $timeout) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n vm.matrixName = '';\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n var token = $localStorage.token;\r\n vm.OpenedDashboardName = $stateParams.name;\r\n vm.OpenedVerticalName = $stateParams.vertical;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n TabAdvancedDashboardService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n TabAdvancedDashboardService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n vm.dashboard_data = {};\r\n vm.metricsCharts = {};\r\n vm.tableCharts = {};\r\n vm.lineCharts = {};\r\n vm.pieCharts = {};\r\n vm.barCharts = {};\r\n vm.stackedCharts ={};\r\n vm.gaugeCharts ={};\r\n vm.deepLink = {};\r\n vm.selectDimension = {};\r\n vm.TabOrder = [];\r\n vm.states = [];\r\n var start_date = '';\r\n vm.BusinessUnit = '';\r\n vm.SelectedVertical = '';\r\n vm.State = '';\r\n vm.Skill = '';\r\n vm.Account = '';\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n var thisFiscalStart = '';\r\n var thisFiscalEnd = '';\r\n var intialLoad = true;\r\n vm.districts = [];\r\n vm.District = '';\r\n //vm.enableFilter = false;\r\n vm.filters = [];\r\n var total = '';\r\n vm.IsFilterApplied = false;\r\n vm.accountListForFilter = \"\";\r\n vm.selectedTabName = \"All\";\r\n var fPageIndex = 1;\r\n var fPageSize = 10;\r\n vm.financePageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n\r\n if (moment().quarter() === 2) {\r\n thisFiscalStart = moment().month('April').startOf('month');\r\n thisFiscalEnd = moment().add(1, 'year').month('March').endOf('month');\r\n } else {\r\n thisFiscalStart = moment().subtract(1, 'year').month('April').startOf('month');\r\n thisFiscalEnd = moment().month('March').endOf('month');\r\n };\r\n\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()], \r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], \r\n 'Payment week': [moment().startOf('week').isoWeekday(1), moment().endOf('week').isoWeekday(0)], \r\n // 'Last week': [moment().subtract(1, 'weeks').startOf('week').isoWeekday(1), moment().subtract(1, 'weeks').endOf('week').isoWeekday(0)], \r\n // 'This week': [moment().startOf('week'), moment().endOf('week')], \r\n 'This week': [moment().startOf('isoWeek'), moment().endOf('isoWeek')], \r\n 'Last week': [moment().subtract(1, 'weeks').startOf('week'), moment().subtract(1, 'weeks').endOf('week')], \r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n // 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This quater': [moment().startOf('quarter'), moment().endOf('quarter')],\r\n 'Last quater': [moment().subtract(1, 'quarters').startOf('quarter'), moment().subtract(1, 'quarters').endOf('quarter')], \r\n 'This year': [thisFiscalStart, thisFiscalEnd], \r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n vm.navigateToAdvanceDashboard = function (DashboardName, VerticalName) {\r\n $state.go('index.TabAdvancedDashboard', {\r\n name: DashboardName,\r\n vertical: VerticalName\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.IsDashboardFilterCheckRun = false;\r\n vm.DateRangeSelectedKey = \"Last Month\";\r\n vm.ActualSelectedKey = 'This Month';\r\n $scope.dateRangeChange = function(ev, picker){\r\n if (picker.chosenLabel == 'Today') {\r\n vm.DateRangeSelectedKey = 'Yesterday';\r\n vm.ActualSelectedKey = 'Today';\r\n } else if (picker.chosenLabel == 'This week') {\r\n vm.DateRangeSelectedKey = 'Last Week';\r\n vm.ActualSelectedKey = 'This Week';\r\n } else if (picker.chosenLabel == 'This month') {\r\n vm.DateRangeSelectedKey = 'Last Month';\r\n vm.ActualSelectedKey = 'This Month';\r\n } else if (picker.chosenLabel == 'Last month') {\r\n vm.DateRangeSelectedKey = 'Two Months Ago';\r\n vm.ActualSelectedKey = 'Last Month';\r\n } else {\r\n vm.DateRangeSelectedKey = picker.chosenLabel;\r\n vm.ActualSelectedKey = 'Custom Range';\r\n }\r\n var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n month = moment(startDate).format('MMMM');\r\n year =moment(startDate).format('YYYY');\r\n var endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n vm.tableCharts = {};\r\n vm.loadSpecificDashboard($stateParams.name);\r\n intialLoad = false;\r\n };\r\n\r\n// $scope.dateRangeChange = function(ev, picker){\r\n// var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n// var endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n \r\n// var duration = picker.endDate.diff(picker.startDate, 'days');\r\n// vm.Age = duration;\r\n// vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n// vm.tableCharts = {};\r\n// if(vm.Age <= 31) {\r\n// vm.loadSpecificDashboard($stateParams.name);\r\n// intialLoad = false;\r\n// }\r\n// else {\r\n// // vm.showFailure(\"Please Select date range within 30 days\");\r\n// alert(\"Please Select date range within 30 days\");\r\n// }\r\n\r\n// };\r\n \r\n $scope.dates = { startDate: thisFiscalStart, endDate: thisFiscalEnd};\r\n vm.rollup = \"Range(\"+thisFiscalStart.format(\"YYYY-MM-DD\")+\"|\"+thisFiscalEnd.format(\"YYYY-MM-DD\")+\")\";\r\n\r\n vm.getSkills = function () {\r\n TabAdvancedDashboardService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills; \r\n }, vm.showFailure);\r\n } \r\n vm.getSkills();\r\n\r\n\r\n var month = moment().format(\"MMMM\");\r\n var year = moment().format(\"YYYY\");\r\n \r\n\r\n // $scope.dropdownVerticalChange = function() {\r\n // if (vm.SelectedVertical && vm.SelectedVertical.length > 0) {\r\n // vm.getBusinessUnits();\r\n // vm.Allapplyfilter();\r\n // }\r\n // };\r\n\r\n // $scope.dropdownBusinessUnitChange = function() {\r\n // if (vm.BusinessUnit && vm.BusinessUnit.length > 0) {\r\n // vm.getAccounts();\r\n // vm.Allapplyfilter();\r\n // }\r\n // };\r\n\r\n // $scope.removeVertical = function(vertical) {\r\n // var index = vm.SelectedVertical.indexOf(vertical);\r\n // if (index > -1) {\r\n // vm.SelectedVertical.splice(index, 1);\r\n // vm.Allapplyfilter();\r\n // }\r\n // };\r\n // $scope.removeBusiness = function(business) {\r\n // var index = vm.BusinessUnit.indexOf(business);\r\n // if (index > -1) {\r\n // vm.BusinessUnit.splice(index, 1);\r\n // vm.getAccounts();\r\n // }\r\n // };\r\n // $scope.removeAccount = function(account) {\r\n // var index = vm.Account.indexOf(account);\r\n // if (index > -1) {\r\n // vm.Account.splice(index, 1);\r\n // vm.Allapplyfilter();\r\n // }\r\n // };\r\n \r\n \r\n vm.getAccounts = function () {\r\n if($stateParams.name == 'BU_KPI_DashBoard' || $stateParams.vertical) {\r\n if($stateParams.vertical){\r\n vm.selectedTabName = '';\r\n if ($stateParams.vertical == 'WG_EW') {\r\n vm.SelectedVertical = 'WhiteGoods';\r\n vm.BusinessUnit = 'WG_EW';\r\n }\r\n else if ($stateParams.vertical == 'WG_OEM') {\r\n vm.SelectedVertical = 'WhiteGoods';\r\n vm.BusinessUnit = 'WG_OEM';\r\n }\r\n else if ($stateParams.vertical == 'Telecom') {\r\n vm.SelectedVertical = 'Telecom';\r\n vm.BusinessUnit = '';\r\n }\r\n else if ($stateParams.vertical == 'CCTV') {\r\n vm.SelectedVertical = 'CCTV';\r\n vm.BusinessUnit = '';\r\n }\r\n else if ($stateParams.vertical == 'Network') {\r\n vm.SelectedVertical = 'Network';\r\n vm.BusinessUnit = '';\r\n }\r\n else if ($stateParams.vertical == 'Product') {\r\n vm.SelectedVertical = 'Product';\r\n vm.BusinessUnit = '';\r\n }\r\n else if (tabName == 'Team Productvity _WG') {\r\n vm.SelectedVertical = 'WhiteGoods';\r\n vm.BusinessUnit = '';\r\n }\r\n else if (tabName == 'Support') {\r\n vm.SelectedVertical = '';\r\n vm.BusinessUnit = '';\r\n }\r\n }\r\n }\r\n TabAdvancedDashboardService.GetKPIAccounts(vm.BusinessUnit,vm.SelectedVertical,month,year,loggedinUser, token, function (accounts) {\r\n vm.accounts = accounts.ActiveAccounts; \r\n var accountIds = []; \r\n angular.forEach(vm.accounts, function(d){\r\n accountIds.push(d.AccountId);\r\n }) \r\n vm.accountListForFilter = accountIds.join('|'); \r\n if(($stateParams.name == 'BU_KPI_DashBoard' && (vm.selectedTabName == 'WG_EW' || vm.selectedTabName == 'WG_OEM' || vm.selectedTabName == 'Telecom' || vm.selectedTabName == 'CCTV' || vm.selectedTabName == 'Network' || vm.selectedTabName == 'Product' || vm.selectedTabName == 'Team Productvity _WG' || vm.selectedTabName == 'Support')) || $stateParams.vertical) {\r\n vm.Allapplyfilter();\r\n }\r\n }, vm.showFailure); \r\n } \r\n vm.getAccounts();\r\n \r\n vm.updateDefaultDateFilter = function( dasahboardFilter){ \r\n if(intialLoad){ \r\n var startDate = '';\r\n var endDate = '';\r\n if(dasahboardFilter && dasahboardFilter.DefaultDateFilter)\r\n { \r\n startDate = $scope.ranges[dasahboardFilter.DefaultDateFilter][0];\r\n endDate = $scope.ranges[dasahboardFilter.DefaultDateFilter][1]; \r\n $scope.dates = { startDate: startDate, endDate: endDate};\r\n month = startDate.format(\"MMMM\");\r\n year = startDate.format(\"YYYY\");\r\n $scope.$broadcast('update.daterangepicker', {date: $scope.dates});\r\n vm.rollup = \"Range(\"+startDate.format(\"YYYY-MM-DD\")+\"|\"+endDate.format(\"YYYY-MM-DD\")+\")\"; \r\n }\r\n }\r\n }\r\n\r\n vm.getBusinessUnits = function () {\r\n vm.BusinessUnit = '';\r\n TabAdvancedDashboardService.getBusinessUnits(vm.SelectedVertical,loggedinUser, token, function (businessUnits) {\r\n vm.businessUnits = businessUnits;\r\n vm.getAccounts();\r\n }, vm.showFailure);\r\n } \r\n vm.getBusinessUnits();\r\n\r\n vm.GetVerticals = function () {\r\n TabAdvancedDashboardService.GetVerticals(loggedinUser, token, function (verticals) {\r\n vm.verticalsList = verticals; \r\n }, vm.showFailure);\r\n } \r\n vm.GetVerticals();\r\n\r\n vm.getStates = function () {\r\n TabAdvancedDashboardService.getAllState(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.states = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n vm.getStates();\r\n\r\n vm.getDistrictByState = function () {\r\n TabAdvancedDashboardService.getDistrictsByState(loggedinUser, token, vm.State, function (districts) {\r\n vm.districts = districts; \r\n }, vm.showFailure);\r\n }\r\n\r\n vm.getCitiesByState = function () {\r\n TabAdvancedDashboardService.getCitiesByState(loggedinUser, token, vm.State).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.districts = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n // vm.getCitiesByState();\r\n\r\n // vm.Allapplyfilter = function(){\r\n // vm.filterKeys = '';\r\n // vm.filterValues = '';\r\n // if(vm.SelectedVertical != '' && vm.Account == ''){\r\n // vm.Account = vm.accountListForFilter;\r\n // }\r\n // if(vm.BusinessUnit != '' && vm.Account == ''){\r\n // vm.Account = vm.accountListForFilter;\r\n // }\r\n // if(vm.SelectedVertical != '' || vm.Account != '' || vm.BusinessUnit != ''){\r\n // vm.IsFilterApplied = true;\r\n // }\r\n // // prepareFilters('BusinessUnit', vm.BusinessUnit);\r\n // // prepareFilters('AccountName', vm.Account);\r\n // prepareFilters('AccountId', vm.Account);\r\n // // prepareFilters('Skill', vm.Skill);\r\n // // prepareFilters('State', vm.State);\r\n // // prepareFilters('City', vm.District);\r\n // vm.tableCharts = {};\r\n // vm.loadSpecificDashboard($stateParams.name); \r\n // }\r\n\r\n // var prepareFilters = function(filterkey, filervalue){ \r\n // if(filervalue)\r\n // {\r\n // if(vm.filterKeys)\r\n // {\r\n // vm.filterKeys = vm.filterKeys + ',' + filterkey;\r\n // vm.filterValues = vm.filterValues + ',' + filervalue;\r\n // }\r\n // else\r\n // {\r\n // vm.filterKeys = filterkey;\r\n // vm.filterValues = filervalue;\r\n\r\n // }\r\n // }\r\n // }\r\n \r\n \r\n vm.Allapplyfilter = function(){\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n // if(vm.SelectedVertical != '' && vm.Account == ''){\r\n vm.Account = vm.accountListForFilter;\r\n if(vm.Accountlist){\r\n vm.Account = vm.Accountlist\r\n }\r\n // }\r\n // if(vm.BusinessUnit != '' && vm.Account == ''){\r\n // vm.Account = vm.accountListForFilter;\r\n // }\r\n if(vm.SelectedVertical != '' || vm.Account != '' || vm.BusinessUnit != ''){\r\n vm.IsFilterApplied = true;\r\n }\r\n if(vm.selectedTabName != 'All' && vm.selectedTabName != 'Support'){\r\n prepareFilters('AccountId', vm.Account);\r\n }\r\n else if (vm.selectedTabName == 'All' || vm.selectedTabName == 'Support'){\r\n vm.Account = '';\r\n }\r\n // prepareFilters('BusinessUnit', vm.BusinessUnit);\r\n // prepareFilters('AccountName', vm.Account);\r\n \r\n // prepareFilters('Skill', vm.Skill);\r\n // prepareFilters('State', vm.State);\r\n // prepareFilters('City', vm.District);\r\n vm.tableCharts = {};\r\n vm.loadSpecificDashboard($stateParams.name); \r\n }\r\n \r\n \r\n var prepareFilters = function(filterkey, filervalue){ \r\n if(filervalue)\r\n {\r\n if(vm.filterKeys)\r\n {\r\n vm.filterKeys = vm.filterKeys + ',' + filterkey;\r\n vm.filterValues = vm.filterValues + ',' + filervalue;\r\n }\r\n else\r\n {\r\n vm.filterKeys = filterkey;\r\n vm.filterValues = filervalue;\r\n \r\n }\r\n }\r\n }\r\n\r\n vm.ResetFilter = function(){\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n vm.BusinessUnit = '';\r\n vm.SelectedVertical = '';\r\n vm.Account = '';\r\n vm.Accountlist = '';\r\n vm.Skill = '';\r\n vm.State = '';\r\n vm.District = '';\r\n vm.tableCharts = {};\r\n vm.IsFilterApplied = false;\r\n vm.loadSpecificDashboard($stateParams.name);\r\n }\r\n\r\n\r\n vm.changeBackgroundColor = function(event, tabName) {\r\n vm.selectedTabName = tabName;\r\n if (vm.clickedDiv) {\r\n vm.clickedDiv.css('background', '#fff');\r\n vm.clickedDiv.css('color', 'black');\r\n }\r\n if (event && event.target) {\r\n var divElement = angular.element(event.target);\r\n divElement.css('background', 'linear-gradient(0deg, rgba(0,3,255,1) 0%, rgba(2,126,251,1) 100%)');\r\n divElement.css('color', 'white');\r\n vm.clickedDiv = divElement;\r\n }\r\n if ($stateParams.name == 'BU_KPI_DashBoard' && tabName != 'All') {\r\n if (tabName == 'WG_EW') {\r\n vm.SelectedVertical = 'WhiteGoods';\r\n vm.BusinessUnit = 'WG_EW';\r\n }\r\n else if (tabName == 'WG_OEM') {\r\n vm.SelectedVertical = 'WhiteGoods';\r\n vm.BusinessUnit = 'WG_OEM';\r\n }\r\n else if (tabName == 'Telecom') {\r\n vm.SelectedVertical = 'Telecom';\r\n vm.BusinessUnit = '';\r\n }\r\n else if (tabName == 'CCTV') {\r\n vm.SelectedVertical = 'CCTV';\r\n vm.BusinessUnit = '';\r\n }\r\n else if (tabName == 'Network') {\r\n vm.SelectedVertical = 'Network';\r\n vm.BusinessUnit = '';\r\n }\r\n else if (tabName == 'Product') {\r\n vm.SelectedVertical = 'Product';\r\n vm.BusinessUnit = '';\r\n }\r\n else if (tabName == 'Team Productvity _WG') {\r\n vm.SelectedVertical = 'WhiteGoods';\r\n vm.BusinessUnit = '';\r\n }\r\n else if (tabName == 'Support') {\r\n vm.SelectedVertical = '';\r\n vm.BusinessUnit = '';\r\n }\r\n vm.getAccounts();\r\n }\r\n if ($stateParams.name != 'BU_KPI_DashBoard'){\r\n vm.loadSpecificDashboard($stateParams.name);\r\n }\r\n };\r\n\r\n\r\n\r\n vm.getChart = function (chartId, chartType, metrics, dimensions, subtitle, YAxis, rollup) {\r\n vm.selectDimension[chartId] = {};\r\n TabAdvancedDashboardService.getChart1(loggedinUser, token, chartType, metrics, dimensions, rollup, vm.filterKeys, vm.filterValues,\"\",false, total, vm.createCallback(null, [function (data) {\r\n if (chartType == 'Metrics' || chartType == 'OneServMetrics' || chartType == 'metricscompare') {\r\n vm.metricsCharts[chartId] = {};\r\n vm.metricsCharts[chartId].value = data;\r\n vm.metricsCharts[chartId].subtitles = subtitle.split(\",\");\r\n vm.metricsCharts[chartId].ChartId = chartId;\r\n } else if (chartType == 'Table') {\r\n vm.tableCharts[chartId] = {};\r\n vm.tableCharts[chartId].value = data;\r\n vm.tableCharts[chartId].ChartId = chartId;\r\n vm.createTableChart(chartId, data.Categories.length , data); \r\n\r\n //vm.buildColumnBuilder(chartId, data.Categories.length);\r\n } \r\n else if (chartType == 'TableNew') {\r\n vm.tableCharts[chartId] = {};\r\n vm.tableCharts[chartId].value = data;\r\n vm.tableCharts[chartId].ChartId = chartId;\r\n vm.createTableChart(chartId, data.Categories.length , data); \r\n\r\n //vm.buildColumnBuilder(chartId, data.Categories.length);\r\n } \r\n else if (chartType == 'Line') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n } else if (chartType == 'Bar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n }else if (chartType == 'StackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n } else if (chartType == 'Pie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomPie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.pieCharts[chartId].selectedDimension=dimensions;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomLine') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n }else if (chartType == 'CustomBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n }else if (chartType == 'DrillDownBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createDrilledDownBarChart(chartId, YAxis);\r\n }else if (chartType == 'CustomStackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n }\r\n else if (chartType == 'metricskpi') {\r\n vm.gaugeCharts[chartId] = {};\r\n vm.gaugeCharts[chartId].value = data;\r\n vm.gaugeCharts[chartId].selectedRollup = rollup;\r\n vm.createGaugeChart(chartId);\r\n }\r\n }]));\r\n }\r\n vm.dashboardCallback = vm.createCallback(null, [function (data) {\r\n vm.dashboard_data = data;\r\n if (vm.TabOrder.length == 0) {\r\n if(vm.dashboard_data.TabOrder && vm.dashboard_data.TabOrder.length > 0){\r\n vm.TabOrder = vm.dashboard_data.TabOrder;\r\n vm.selectedTabName = vm.dashboard_data.TabOrder[0];\r\n vm.changeBackgroundColor(null, vm.dashboard_data.TabOrder[0]);\r\n }\r\n }\r\n if(data && data.DashboardFilters){\r\n vm.enableFilter = true; \r\n vm.updateDefaultDateFilter(data.DashboardFilters); \r\n //vm.getFilerValues(data.DashboardFilters.FilterList); \r\n }\r\n else\r\n {\r\n vm.enableFilter = false;\r\n vm.updateDefaultDateFilter(null);\r\n } \r\n if (data && data.DashboardFilters && (data.DashboardFilters.DateFilterList == null|| data.DashboardFilters.DateFilterList.length == 0)) {\r\n vm.IsDashboardFilterCheckRun = true;\r\n } \r\n else if (data && data.DashboardFilters && data.DashboardFilters.DateFilterList.length > 0) {\r\n var dateFilterList = data.DashboardFilters.DateFilterList;\r\n var filteredRanges = {};\r\n Object.keys($scope.ranges).forEach(function(key) {\r\n if (dateFilterList.includes(key)) {\r\n filteredRanges[key] = $scope.ranges[key];\r\n }\r\n });\r\n $scope.ranges = filteredRanges;\r\n vm.IsDashboardFilterCheckRun = true;\r\n }\r\n\r\n if(vm.selectedTabName == 'All' || !vm.selectedTabName){\r\n \r\n angular.forEach(data.ChartModel, function (d) {\r\n\r\n if (d.ClickableColumns != null && d.ClickableColumns.length > 0) {\r\n angular.forEach(d.ClickableColumns, function(cl){\r\n if (cl.Link==\"ProjectSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function () { \r\n return \"index.Report({report_name:'ProjectSummary', key:'\"+cl.KeyName+\"'})\";\r\n }\r\n }else if (cl.Link==\"CustomerSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function () { \r\n \r\n return \"index.Report({report_name:'CustomerSummary', key:'\"+cl.KeyName+\"'})\";\r\n }\r\n }else if (cl.Link==\"DashboardReport\") {\r\n \r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function (filterValue,filterName) {\r\n var Keyfilter = cl.KeyName; \r\n \r\n // else\r\n // {\r\n // start_date = vm.rollup;\r\n // }\r\n if (cl.KeyName.indexOf(\"|\")>=0) {\r\n var stringArray = cl.KeyName.split('|');\r\n filterName = stringArray[1];\r\n Keyfilter = stringArray[0];\r\n }\r\n if (filterValue == undefined && filterName ==undefined) {\r\n filterValue = '';\r\n filterName = '';\r\n }\r\n if (d.ChartType == 'Metrics' || d.ChartType == 'OneServMetrics' || d.ChartType == 'metricscompare') {\r\n //console.log('start_date',start_date);\r\n if (d.Rollups && d.Rollups.length>0) {\r\n angular.forEach(d.Rollups, function(d){\r\n if (d == 'Today') {\r\n var sDate = moment().format(\"YYYY-MM-DD\");\r\n var eDate = moment().format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n }\r\n else if (d == 'Yesterday') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\"; }\r\n else if (d == 'Monthly') {\r\n var sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n var eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n }else if (d == 'Week1') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week1');\r\n }else if (d == 'Week2') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week2');\r\n }else if (d == 'Week3') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week3');\r\n }else if (d == 'Week4') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week4');\r\n }\r\n })\r\n }else{\r\n start_date = vm.rollup;\r\n }\r\n var obj = {\r\n \"report_name\":'LinkTicketReport',\r\n \"key\":Keyfilter,\r\n \"filter_key\":filterName,\r\n \"filter_name\":filterValue,\r\n \"start_date\":start_date,\r\n \"isData\":true\r\n } \r\n return obj;\r\n }else{\r\n return \"index.DashboardReport({report_name:'LinkTicketReport', key:'\"+Keyfilter+\"',filter_key:'\"+filterName+\"', filter_name:'\"+filterValue+\"', start_date:'\"+vm.rollup+\"', isData:'\"+true+\"'})\";\r\n } \r\n }\r\n }else{\r\n \t\t\t\t\t\tif (cl.Link){ \r\n \t\t\t\t\t\t\tvm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function (filterValue,filterName) {\r\n \t\t\t\t\t\t\t\tvar Keyfilter = cl.KeyName; \r\n \t\t\t\t\t\t\t if (cl.KeyName.indexOf(\"|\")>=0) {\r\n \t\t\t\t\t\t\t\t\tvar stringArray = cl.KeyName.split('|');\r\n \t\t\t\t\t\t\t\t\tfilterName = stringArray[1];\r\n \t\t\t\t\t\t\t\t\tKeyfilter = stringArray[0];\r\n \t\t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t\t\tif (filterValue == undefined && filterName ==undefined) {\r\n \t\t\t\t\t\t\t\t\tfilterValue = '';\r\n \t\t\t\t\t\t\t\t\tfilterName = '';\r\n \t\t\t\t\t\t\t\t}\r\n\r\n filterName = filterName + ',' + vm.filterKeys;\r\n filterValue = filterValue + ',' + vm.filterValues;\r\n\r\n\r\n \t\t\t\t\t\t\t\tif (d.ChartType == 'Metrics' || d.ChartType == 'OneServMetrics' || d.ChartType == 'metricscompare') {\r\n \t\t\t\t\t\t\t\t\t//console.log('start_date',start_date);\r\n \t\t\t\t\t\t\t\t\tif (d.Rollups && d.Rollups.length>0) {\r\n \t\t\t\t\t\t\t\tangular.forEach(d.Rollups, function(d){\r\n \t\t\t\t\t\t\t\t\tif (d == 'Today') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n \t\t\t\t\t\t\t\t\t}\r\n else if (d == 'Yesterday') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Monthly') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week1') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week1');\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week2') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week2');\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week3') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week3');\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week4') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week4');\r\n \t\t\t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t\t\t})\r\n \t\t\t\t\t\t\t\t}else{\r\n \t\t\t\t\t\t\t\t\tstart_date = vm.rollup;\r\n \t\t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t\t\t var obj = { \r\n \t\t\t\t\t\t\t\t\t\t\"report_name\":cl.Link,\r\n \t\t\t\t\t\t\t\t\t\t\"key\":Keyfilter,\r\n \t\t\t\t\t\t\t\t\t\t\"filter_key\":filterName,\r\n \t\t\t\t\t\t\t\t\t\t\"filter_name\":filterValue,\r\n \t\t\t\t\t\t\t\t\t\t\"start_date\":start_date,\r\n \t\t\t\t\t\t\t\t\t\t\"isData\":true\r\n \t\t\t\t\t\t\t\t\t} \r\n \t\t\t\t\t\t\t\t\treturn obj;\r\n \t\t\t\t\t\t\t\t}else{\r\n \t\t\t\t\t\t\t\t\treturn \"index.DashboardReport({report_name:'\" + cl.Link + \"', key:'\"+Keyfilter+\"',filter_key:'\"+filterName+\"', filter_name:'\"+filterValue+\"', start_date:'\"+vm.rollup+\"', isData:'\"+true+\"'})\";\r\n \t\t\t\t\t\t\t\t} \r\n \t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t} \r\n })\r\n }\r\n if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Today\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Yesterday\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week1\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week1\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week2\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week2\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week3\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week3\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week4\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week4\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly-6\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly-6\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"YTD\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"YTD\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Monthly\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Today\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Yesterday\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if(d.ChartType == 'CustomBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'DrillDownBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'CustomStackedBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'CustomPie' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }\r\n else {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, vm.rollup);\r\n }\r\n\r\n });\r\n }\r\n\r\n else{\r\n angular.forEach(data.ChartModel, function (d) {\r\n if(vm.selectedTabName == d.TabName){\r\n\r\n if (d.ClickableColumns != null && d.ClickableColumns.length > 0) {\r\n angular.forEach(d.ClickableColumns, function(cl){\r\n if (cl.Link==\"ProjectSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function () { \r\n return \"index.Report({report_name:'ProjectSummary', key:'\"+cl.KeyName+\"'})\";\r\n }\r\n }else if (cl.Link==\"CustomerSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function () { \r\n \r\n return \"index.Report({report_name:'CustomerSummary', key:'\"+cl.KeyName+\"'})\";\r\n }\r\n }else if (cl.Link==\"DashboardReport\") {\r\n \r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function (filterValue,filterName) {\r\n var Keyfilter = cl.KeyName; \r\n \r\n // else\r\n // {\r\n // start_date = vm.rollup;\r\n // }\r\n if (cl.KeyName.indexOf(\"|\")>=0) {\r\n var stringArray = cl.KeyName.split('|');\r\n filterName = stringArray[1];\r\n Keyfilter = stringArray[0];\r\n }\r\n if (filterValue == undefined && filterName ==undefined) {\r\n filterValue = '';\r\n filterName = '';\r\n }\r\n if (d.ChartType == 'Metrics' || d.ChartType == 'OneServMetrics' || d.ChartType == 'metricscompare') {\r\n //console.log('start_date',start_date);\r\n if (d.Rollups && d.Rollups.length>0) {\r\n angular.forEach(d.Rollups, function(d){\r\n if (d == 'Today') {\r\n var sDate = moment().format(\"YYYY-MM-DD\");\r\n var eDate = moment().format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n }\r\n else if (d == 'Yesterday') {\r\n var sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n var eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\"; }\r\n else if (d == 'Monthly') {\r\n var sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n var eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n }else if (d == 'Week1') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week1');\r\n }else if (d == 'Week2') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week2');\r\n }else if (d == 'Week3') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week3');\r\n }else if (d == 'Week4') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week4');\r\n }\r\n })\r\n }else{\r\n start_date = vm.rollup;\r\n }\r\n var obj = {\r\n \"report_name\":'LinkTicketReport',\r\n \"key\":Keyfilter,\r\n \"filter_key\":filterName,\r\n \"filter_name\":filterValue,\r\n \"start_date\":start_date,\r\n \"isData\":true\r\n } \r\n return obj;\r\n }else{\r\n return \"index.DashboardReport({report_name:'LinkTicketReport', key:'\"+Keyfilter+\"',filter_key:'\"+filterName+\"', filter_name:'\"+filterValue+\"', start_date:'\"+vm.rollup+\"', isData:'\"+true+\"'})\";\r\n } \r\n }\r\n }else{\r\n if (cl.Link){ \r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function (filterValue,filterName) {\r\n var Keyfilter = cl.KeyName; \r\n if (cl.KeyName.indexOf(\"|\")>=0) {\r\n var stringArray = cl.KeyName.split('|');\r\n filterName = stringArray[1];\r\n Keyfilter = stringArray[0];\r\n }\r\n if (filterValue == undefined && filterName ==undefined) {\r\n filterValue = '';\r\n filterName = '';\r\n }\r\n \r\n filterName = filterName + ',' + vm.filterKeys;\r\n filterValue = filterValue + ',' + vm.filterValues;\r\n \r\n \r\n if (d.ChartType == 'Metrics' || d.ChartType == 'OneServMetrics' || d.ChartType == 'metricscompare') {\r\n //console.log('start_date',start_date);\r\n if (d.Rollups && d.Rollups.length>0) {\r\n angular.forEach(d.Rollups, function(d){\r\n if (d == 'Today') {\r\n var sDate = moment().format(\"YYYY-MM-DD\");\r\n var eDate = moment().format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n }\r\n else if (d == 'Yesterday') {\r\n var sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n var eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n }else if (d == 'Monthly') {\r\n var sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n var eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n }else if (d == 'Week1') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week1');\r\n }else if (d == 'Week2') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week2');\r\n }else if (d == 'Week3') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week3');\r\n }else if (d == 'Week4') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week4');\r\n }\r\n })\r\n }else{\r\n start_date = vm.rollup;\r\n }\r\n var obj = { \r\n \"report_name\":cl.Link,\r\n \"key\":Keyfilter,\r\n \"filter_key\":filterName,\r\n \"filter_name\":filterValue,\r\n \"start_date\":start_date,\r\n \"isData\":true\r\n } \r\n return obj;\r\n }else{\r\n return \"index.DashboardReport({report_name:'\" + cl.Link + \"', key:'\"+Keyfilter+\"',filter_key:'\"+filterName+\"', filter_name:'\"+filterValue+\"', start_date:'\"+vm.rollup+\"', isData:'\"+true+\"'})\";\r\n } \r\n }\r\n }\r\n } \r\n })\r\n }\r\n if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Today\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Yesterday\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week1\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week1\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week2\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week2\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week3\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week3\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week4\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week4\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly-6\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly-6\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"YTD\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"YTD\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Monthly\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Today\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Yesterday\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if(d.ChartType == 'CustomBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'DrillDownBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'CustomStackedBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'CustomPie' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }\r\n else {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, vm.rollup);\r\n }\r\n }\r\n \r\n });\r\n } \r\n }])\r\n\r\n \r\n \r\n\r\n vm.GetDateRange = function(month,year,week){\r\n var weeks=[],\r\n firstDate=new Date(year, month, 1),\r\n lastDate=new Date(year, month+1, 0), \r\n numDays= lastDate.getDate();\r\n if (week == 'week1') {\r\n var start=1;\r\n var end=7;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }else if (week == 'week2') {\r\n var start = 8;\r\n var end = 14;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }else if (week == 'week3') {\r\n var start = 15;\r\n var end = 21;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }else if (week == 'week4') {\r\n var start = 22;\r\n var end = numDays;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }\r\n }\r\n\r\n vm.getDashboard = function (name) {\r\n TabAdvancedDashboardService.getDashboard(loggedinUser, name, token, vm.dashboardCallback);\r\n }\r\n\r\n\r\n vm.loadDefaultDashboard = function(){\r\n if ($stateParams.name == 'account') {\r\n vm.getDashboard('Account Dashboard');\r\n } else if ($stateParams.name == 'accountDetails') {\r\n vm.getDashboard('Account Dashboard');\r\n }else if ($stateParams.name == 'admin') {\r\n vm.getDashboard('Admin Dashboard');\r\n }else if ($stateParams.name == 'manager') {\r\n vm.getDashboard('Manager Dashboard');\r\n }else if ($stateParams.name == 'supervisor') {\r\n vm.getDashboard('Supervisor Dashboard');\r\n }else if ($stateParams.name == 'vendor') {\r\n vm.getDashboard('Vendor Dashboard');\r\n } else {\r\n vm.getDashboard($stateParams.name);\r\n }\r\n }\r\n\r\n vm.loadSpecificDashboard = function(name){\r\n var DashboardListModel = vm.getAccountConfigSetting('DashboardListModel');\r\n var isLoaded = false;\r\n if(DashboardListModel && DashboardListModel.length>0){\r\n angular.forEach(DashboardListModel, function(d){\r\n if(d.DashboardType == name){\r\n vm.getDashboard(d.DashboardName);\r\n isLoaded = true;\r\n }\r\n })\r\n }\r\n if(isLoaded==false){\r\n vm.loadDefaultDashboard(name);\r\n }\r\n }\r\n\r\n if(!$stateParams.vertical){\r\n vm.loadSpecificDashboard($stateParams.name);\r\n }\r\n \r\n vm.LinkClick = function(url){\r\n // console.log(url);\r\n var i = vm.deepLink[url]('','');\r\n // console.log('i',i);\r\n var key ='';\r\n var filter_key='';\r\n var filter_name = '';\r\n var start_date='';\r\n var report_name = '';\r\n key = i.key;\r\n report_name = i.report_name;\r\n filter_key = i.filter_key;\r\n filter_name = i.filter_name;\r\n start_date = i.start_date;\r\n // console.log('params',key,report_name,filter_key,filter_name,start_date);\r\n $state.go('index.DashboardReport', {\r\n report_name: report_name,\r\n key: key,\r\n filter_key: filter_key,\r\n filter_name: filter_name,\r\n start_date: start_date,\r\n isData: true\r\n }, \r\n {\r\n reload: true\r\n });\r\n }\r\n \r\n //$log.log(\"$stateParams.name\",$stateParams.name);\r\n\r\n vm.saveRollup = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n if (chartType == 'Line') {\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis); \r\n }else if(chartType == 'Bar'){\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createBarChart(chartId, yAxis); \r\n }else if(chartType == 'CustomLine'){\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n dimensions = vm.lineCharts[chartId].selectedDimension;\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis); \r\n }else if(chartType == 'CustomBar'){\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n //$log.log(\"rollup\", rollup);\r\n if (vm.selectDimension && vm.selectDimension[chartId].dimension.length>0) {\r\n dimensions = vm.selectDimension[chartId].dimension; \r\n }else{\r\n dimensions = vm.lineCharts[chartId].selectedDimension;\r\n } \r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis); \r\n } \r\n }\r\n\r\n vm.ChangeDimensions = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.lineCharts[chartId].selectedDimension = dimensions;\r\n rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n $timeout(function(){\r\n vm.createLineChart(chartId, yAxis);\r\n },1000) \r\n }\r\n\r\n //For CustomPieChart\r\n vm.ChangeDimensionsPie = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.pieCharts[chartId].selectedDimension = dimensions;\r\n // vm.selectDimension[chartId].dimension = dimensions;\r\n //console.log('selectDimension',vm.selectDimension);\r\n // vm.lineCharts[chartId].selectedRollup = rollup;\r\n //rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, \"\");\r\n $timeout(function(){\r\n vm.createPieChart(chartId, yAxis);\r\n },1000)\r\n \r\n }\r\n\r\n //For CustomBarChart\r\n vm.ChangeDimensionsBar = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n // vm.selectDimension[chartId].dimension = dimensions;\r\n //console.log('selectDimension',vm.selectDimension);\r\n // vm.lineCharts[chartId].selectedRollup = rollup;\r\n //rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, \"\");\r\n $timeout(function(){\r\n vm.createBarChart(chartId, yAxis);\r\n },1000)\r\n \r\n }\r\n\r\n //For CustomStackedChart\r\n vm.ChangeDimensionsCustomStackedBar = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.stackedCharts[chartId].selectedDimension = dimensions;\r\n // vm.selectDimension = dimensions;\r\n // console.log('selectDimension',vm.selectDimension);\r\n // vm.lineCharts[chartId].selectedRollup = rollup;\r\n //rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, \"\");\r\n $timeout(function(){\r\n vm.createStackedChart(chartId, yAxis);\r\n },1000)\r\n \r\n }\r\n\r\n vm.isActiveRollbackCustomPie = function(chartId, dimension){\r\n if(vm.pieCharts[chartId] && vm.pieCharts[chartId].selectedDimension){\r\n return vm.pieCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackCustomBar = function(chartId, dimension){\r\n if(vm.barCharts[chartId] && vm.barCharts[chartId].selectedDimension){\r\n return vm.barCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackCustomStackedBar = function(chartId, dimension){\r\n if(vm.stackedCharts[chartId] && vm.stackedCharts[chartId].selectedDimension){\r\n return vm.stackedCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n\r\n vm.isActiveRollbackBar = function(chartId, rollup){\r\n if(vm.barCharts[chartId] && vm.barCharts[chartId].selectedRollup){\r\n return vm.barCharts[chartId].selectedRollup == rollup;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackStackedBar = function(chartId, rollup){\r\n if(vm.stackedCharts[chartId] && vm.stackedCharts[chartId].selectedRollup){\r\n return vm.stackedCharts[chartId].selectedRollup == rollup;\r\n }\r\n return false;\r\n }\r\n\r\n vm.isActiveRollback = function(chartId, rollup){\r\n if(vm.lineCharts[chartId] && vm.lineCharts[chartId].selectedRollup){\r\n return vm.lineCharts[chartId].selectedRollup == rollup;\r\n }\r\n return false;\r\n }\r\n // vm.isActiveRollbackCustome = function(chartId, dimension){\r\n // if(vm.lineCharts[chartId] && vm.lineCharts[chartId].selectedDimension){\r\n // return vm.lineCharts[chartId].selectedDimension == dimension;\r\n // }\r\n // return false;\r\n // }\r\n\r\n vm.createLineChart = function (chartId, yAxis) {\r\n vm.chartOptions = vm.chartOptions ? vm.chartOptions : {};\r\n $timeout(function () {\r\n if (vm.lineCharts[chartId] && vm.lineCharts[chartId].value) {\r\n vm.chartOptions[chartId] = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'line'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n categories: vm.lineCharts[chartId].value.Categories\r\n },\r\n // legend: {\r\n // layout: 'horizontal',\r\n // align: 'left',\r\n // itemWidth: 100,\r\n // verticalAlign: 'bottom',\r\n // //y: 30,\r\n // navigation: {\r\n // activeColor: '#3E576F',\r\n // animation: true,\r\n // arrowSize: 12,\r\n // inactiveColor: '#CCC',\r\n // style: {\r\n // fontWeight: 'bold',\r\n // color: '#333',\r\n // fontSize: '12px'\r\n // }\r\n // }\r\n // },\r\n // legend: {\r\n // align: 'right',\r\n // verticalAlign: 'top',\r\n // layout: 'vertical',\r\n // x: 0,\r\n // y: 100\r\n // },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n },\r\n scrollbar: {\r\n enabled: true\r\n }\r\n },\r\n plotOptions: {\r\n line: {\r\n dataLabels: {\r\n enabled: true\r\n },\r\n enableMouseTracking: true\r\n }\r\n },\r\n series: GetSeries()\r\n\r\n };\r\n function GetSeries(){\r\n\r\n if (vm.lineCharts[chartId].value.Series.length>10) {\r\n \r\n for(var i=0; i10) {\r\n var legend = {\r\n layout: 'horizontal',\r\n align: 'left',\r\n itemWidth: 100,\r\n verticalAlign: 'bottom',\r\n //y: 30,\r\n navigation: {\r\n activeColor: '#3E576F',\r\n animation: true,\r\n arrowSize: 12,\r\n inactiveColor: '#CCC',\r\n style: {\r\n fontWeight: 'bold',\r\n color: '#333',\r\n fontSize: '12px'\r\n }\r\n }\r\n }\r\n vm.chartOptions[chartId].legend = legend;\r\n }\r\n\r\n var chart = new Highcharts.chart(chartId, vm.chartOptions[chartId]);\r\n \r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n }\r\n }, 1000);\r\n }\r\n vm.createBarChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.barCharts[chartId] && vm.barCharts[chartId].value) {\r\n var chartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n // type : 'category',\r\n categories: vm.barCharts[chartId].value.Categories \r\n },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n \r\n }\r\n }\r\n },\r\n \r\n series: vm.barCharts[chartId].value.Series\r\n // drilldown:vm.barCharts[chartId].value.drilldown\r\n \r\n };\r\n \r\n if (chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]) {\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true;\r\n }\r\n \r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 2000);\r\n }\r\n\r\n //Create DrillDown Bar Chart\r\n vm.createDrilledDownBarChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.barCharts[chartId] && vm.barCharts[chartId].value) {\r\n var chartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n type : 'category'\r\n \r\n },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n \r\n }\r\n }\r\n },\r\n \r\n series: vm.barCharts[chartId].value.Series,\r\n drilldown:vm.barCharts[chartId].value.drilldown\r\n \r\n };\r\n \r\n if (chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]) {\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true;\r\n }\r\n \r\n \r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 2000);\r\n }\r\n\r\n //Stacked Chart\r\n vm.createStackedChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.stackedCharts[chartId] && vm.stackedCharts[chartId].value) {\r\n var stackedchartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n categories: vm.stackedCharts[chartId].value.Categories \r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n legend: {\r\n\r\n reversed: true\r\n },\r\n tooltip: {\r\n formatter: function () {\r\n return '' + this.x + '
' +\r\n this.series.name + ': ' + this.y + '
' +\r\n 'Total: ' + this.point.stackTotal;\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n align: 'right',\r\n color: 'black',\r\n x: -10\r\n },\r\n enableMouseTracking: true\r\n },\r\n series: {\r\n\r\n stacking: 'normal'\r\n }\r\n },\r\n series: vm.stackedCharts[chartId].value.Series\r\n };\r\n if (stackedchartData && stackedchartData.series && stackedchartData.series.length>0 && stackedchartData.series[0].data \r\n && stackedchartData.series[0].data.length>0 && stackedchartData.series[0].data[0]) {\r\n stackedchartData.series[0].data[0].sliced=true;\r\n stackedchartData.series[0].data[0].selected=true;\r\n }\r\n \r\n var chart = new Highcharts.chart(chartId, stackedchartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 2000);\r\n }\r\n\r\n vm.createPieChart = function (chartId, title) {\r\n vm.showPieChart = vm.showPieChart || {};\r\n vm.tempShowPieChart = vm.tempShowPieChart || {};\r\n vm.showPieChart[chartId] = true;\r\n $timeout(function () {\r\n vm.tempShowPieChart[chartId] = false;\r\n if (vm.pieCharts[chartId] && vm.pieCharts[chartId].value) {\r\n\r\n for(var i=0; i0){\r\n vm.tempShowPieChart[chartId]=true;\r\n }\r\n }\r\n vm.showPieChart[chartId]=vm.tempShowPieChart[chartId];\r\n var chartData = {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie'\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n title: {\r\n text: ''\r\n },\r\n tooltip: {\r\n headerFormat: ' {series.name} : {point.name}
',\r\n pointFormat: ' {point.name}: {point.y:,.0f}
',\r\n footerFormat: ' Percentage : {point.percentage:,.1f}% ', shared: true, useHTML: true\r\n //pointFormat: '{series.name}: {point.y:.1f}%'\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n dataLabels: {\r\n enabled: false\r\n },\r\n showInLegend: true\r\n }\r\n },\r\n series: [{\r\n name: title,\r\n colorByPoint: true,\r\n data: vm.pieCharts[chartId].value\r\n }]\r\n };\r\n if(chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]){\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true; \r\n }\r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 1000);\r\n }\r\n\r\n var gaugeInstances = {};\r\n vm.Value = \"\";\r\n vm.label = \"\";\r\n vm.TargetValue = \"\";\r\n vm.strValue = \"\";\r\n vm.ValueType = \"\";\r\n vm.createGaugeChart = function (chartId) {\r\n if (gaugeInstances[chartId]) {\r\n gaugeInstances[chartId].destroy();\r\n }\r\n vm.showGaugeChart = vm.showGaugeChart || {};\r\n vm.tempshowGaugeChart = vm.tempshowGaugeChart || {};\r\n vm.showGaugeChart[chartId] = true;\r\n vm.tempshowGaugeChart[chartId] = false;\r\n \r\n if (vm.gaugeCharts[chartId] && vm.gaugeCharts[chartId].value) {\r\n vm.tempshowGaugeChart[chartId] = true;\r\n vm.showGaugeChart[chartId] = vm.tempshowGaugeChart[chartId];\r\n if(vm.gaugeCharts[chartId].value[0]){\r\n if(vm.gaugeCharts[chartId].value[0].AcheivedPercentage || vm.gaugeCharts[chartId].value[0].AcheivedPercentage == 0){\r\n vm.label = \"(\" + vm.gaugeCharts[chartId].value[0].AcheivedPercentage + \"% of the target)\";\r\n }\r\n if(vm.gaugeCharts[chartId].value[0].Value || vm.gaugeCharts[chartId].value[0].Value == 0){\r\n vm.Value = vm.gaugeCharts[chartId].value[0].Value;\r\n }\r\n if(vm.gaugeCharts[chartId].value[0].TargetValue || vm.gaugeCharts[chartId].value[0].TargetValue == 0){\r\n vm.TargetValue = vm.gaugeCharts[chartId].value[0].TargetValue;\r\n }\r\n if(vm.gaugeCharts[chartId].value[0].ValueType){\r\n vm.ValueType = vm.gaugeCharts[chartId].value[0].ValueType;\r\n }\r\n if(vm.gaugeCharts[chartId].value[0].strValue){\r\n vm.strValue = vm.gaugeCharts[chartId].value[0].strValue;\r\n }\r\n }\r\n else{\r\n return;\r\n }\r\n var chartData = {\r\n id: chartId,\r\n value: vm.Value,\r\n min: 0,\r\n max: vm.TargetValue,\r\n decimals: 0,\r\n gaugeWidthScale: 0.6,\r\n pointer: true,\r\n pointerOptions: {\r\n toplength: -15,\r\n bottomlength: 10,\r\n bottomwidth: 12,\r\n color: '#333333',\r\n stroke: '#ffffff',\r\n stroke_width: 3,\r\n stroke_linecap: 'round'\r\n },\r\n customSectors: {\r\n ranges: [{\r\n color: \"#ff3b30\",\r\n lo: 0,\r\n hi: vm.TargetValue * 0.25\r\n }, {\r\n color: \"#FFA500\",\r\n lo: vm.TargetValue * 0.25,\r\n hi: vm.TargetValue * 0.50\r\n }, {\r\n color: \"#eccd28\",\r\n lo: vm.TargetValue * 0.50,\r\n hi: vm.TargetValue * 0.75\r\n }, {\r\n color: \"#43bf58\",\r\n lo: vm.TargetValue * 0.75,\r\n hi: vm.TargetValue\r\n }]\r\n },\r\n label: vm.label,\r\n labelFontColor: \"#333333\",\r\n labelFontFamily: \"Arial\",\r\n labelFontSize: \"20px\",\r\n textRenderer: function (val) {\r\n return (vm.ValueType == 'INR'?(vm.strValue): vm.Value);\r\n },\r\n };\r\n gaugeInstances[chartId] = new JustGage(chartData);\r\n }\r\n };\r\n\r\n// var intervalId = setInterval(function() {\r\n// gauge.refresh(Math.random() * 1000);\r\n// }, 5000);\r\n\r\n\r\n\r\n $scope.changeFunction = function() {\r\n alert('change');\r\n }\r\n\r\n var makeDynamicTable = function(chartId, dataSet){\r\n\r\n if(dataSet.Values.length >= 10)\r\n {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n }\r\n else\r\n {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('Tfgt')\r\n //.withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n\r\n }\r\n \r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n vm.tableCharts[chartId].dtInstance = {};\r\n vm.tableCharts[chartId].dtColumns = [];\r\n var columnList = Object.keys(dataSet.Categories);\r\n for(var index = 0; index < columnList.length; index++ ){\r\n\r\n var temp = '';\r\n var colunId = columnList[index];\r\n temp = DTColumnBuilder.newColumn(colunId).withTitle(dataSet.Categories[colunId]).renderWith(function(data,type,full,meta){\r\n var colKey = '';\r\n function getKeyByIndex(object, col) {\r\n var colList = Object.keys(object);\r\n colKey = colList[col]; \r\n }\r\n\r\n getKeyByIndex(full,meta.col)\r\n var firstColumntKey = Object.values(full)[0];\r\n var fixedCatogries = Object.values(vm.tableCharts[chartId].value.Categories)[0];\r\n var t = vm.tableCharts[chartId].value.Categories;\r\n var n = t[colKey]; \r\n if(data > 0 && vm.deepLink[n +' '+ vm.tableCharts[chartId].ChartId]){\r\n return \"' + data + \" \";\r\n // return \"\" + data + \" \";\r\n }else{\r\n return \"\"+data+\"\";\r\n }\r\n });\r\n vm.tableCharts[chartId].dtColumns.push(temp);\r\n } \r\n }\r\n \r\n vm.createTableChart = function (chartId, lenth , data) {\r\n makeDynamicTable(chartId, data);\r\n }\r\n\r\n\r\n $scope.totalFinList = 0;\r\n $scope.financePerPage = vm.financePageListCount;\r\n $scope.Financepagination = {\r\n current: 1\r\n };\r\n\r\n vm.changefinancePageListCount = function () {\r\n $scope.financePerPage = vm.financePageListCount;\r\n fPageSize = $scope.financePerPage;\r\n fPageIndex = $scope.Financepagination.current;\r\n $scope.FinanceUserTablePageChanged($scope.Financepagination.current);\r\n }\r\n\r\n fPageIndex = $scope.Financepagination.current;\r\n $scope.FinanceUserTablePageChanged = function (newPage) {\r\n if (newPage) {\r\n fPageIndex = newPage;\r\n vm.GetPaymentsForUser();\r\n }\r\n\r\n };\r\n\r\n vm.GetPaymentsForUser = function () {\r\n var data =\r\n {\r\n \"pageParams\": {\r\n \"page\": fPageIndex,\r\n \"pageSize\": fPageSize\r\n },\r\n \"searchParams\": {\r\n \"paymentStatus\": 7,\r\n \"searchText\": vm.userId\r\n }\r\n }\r\n\r\n TechnicianViewService.GetPaymentsForUser(data, loggedInUserId, token).then(function (resp) {\r\n vm.FinanceFiltersList = [];\r\n if (resp && resp.data) {\r\n vm.FinanceFiltersList = resp.data.items;\r\n $scope.totalFinList = resp.data.totalItems;\r\n if (vm.FinanceFiltersList.length < vm.financePageListCount)\r\n vm.financeListLength = $scope.totalFinList;\r\n else\r\n vm.financeListLength = fPageIndex * vm.financePageListCount;\r\n if (fPageIndex == 1)\r\n vm.fpageindexCount = 1;\r\n else\r\n vm.fpageindexCount = (((fPageIndex - 1) * vm.financePageListCount) + 1);\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n\r\n\r\n $scope.$on('fullscreen', function () {\r\n setTimeout(function () {\r\n $(element).highcharts().reflow();\r\n }, 0);\r\n }); \r\n\r\n}\r\n});\r\n\r\n\r\n\nangular.module('inspinia').service('SystemConfigService', function ($log, $http, CronUrl, SchedulingAPI, ApiURL) {\r\n\r\n this.GetDataForMenu = function (dataType, accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetDataForMenu?Type=' + dataType + '&AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetProjectSettings = function (ProjectId, accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetProjectSettings?ProjectId=' + ProjectId + '&AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAccountConfigSettings = function (accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetAccountConfigSettings?AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetTemplateSettings = function (DocId, accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetTemplateSettings?DocId=' + DocId + '&AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateAccountConfigSettings = function (accountId, accountConfigData, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/UpdateAccountConfigSettings?AccountId=' + accountId;\r\n return $http.put(url, accountConfigData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateProjectSettings = function (projectId, accountId, projectConfigData, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/UpdateProjectSettings?ProjectId=' + projectId + '&AccountId=' + accountId;\r\n return $http.put(url, projectConfigData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateTemplateSettings = function (docId, accountId, templateConfigData, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/UpdateTemplateSettings?DocId=' + docId + '&AccountId=' + accountId;\r\n return $http.put(url, templateConfigData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/GetAllMaster?UserId=F00000000000\r\nthis.GetAllSecheculingRules = function(loginUser, token){\r\n var url = ApiURL + '/api/MasterSelectionCriteria/GetAllMaster?UserId=' + loginUser;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loginUser }\r\n });\r\n}\r\n\r\nhttps://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/EnableInMyAccount?UserId=U400000000001&RuleIds=Rule_01\r\nthis.SaveSchedulingRule = function(loginUser, ruleidlist,token, success, failure){\r\nvar url = ApiURL +'/api/MasterSelectionCriteria/EnableInMyAccount?UserId='+ loginUser +'&RuleIds='+ruleidlist;\r\n$http.post(url, null, { headers: {'Content-Type': undefined, 'Token': token, 'UserId':loginUser}\r\n}).then(success, failure);\r\n}\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AutoAssignScheduler/GetSchedulerConfig?reqUserId=U350000000001\r\n this.getAssignationRule = function(loggedinUser,token){\r\n var url = SchedulingAPI + '/api/AutoAssignScheduler/GetSchedulerConfig?reqUserId=' + loggedinUser ; \r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n}\r\n\r\n// https://perf.mymobiforce.com/schedulingapi/api/AutoAssignScheduler/PutSchedulerConfigList?reqUserId=U350000000001\r\nthis.SaveAssignationRule = function(loggedinUser, ruleList, token, success, failure){\r\n var url = SchedulingAPI + '/api/AutoAssignScheduler/PutSchedulerConfigList?reqUserId='+ loggedinUser;\r\n $http.put(url,ruleList,{headers: {'Content-Type': 'application/json','Token': token, 'UserId': loggedinUser}}).then(success,failure);\r\n}\r\nthis.GetAllBonusPenalty = function (loggedinUser, token){\r\n var url = ApiURL + '/api/BonusPenalty/GetAllBonusPenalty';\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n}\r\n\r\n this.UpdateBonusPenalty = function (BonusData,loggedinUser, token) {\r\n var url = ApiURL + '/api/BonusPenalty/UpdateBonusPenalty';\r\n return $http.put(url, BonusData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser}\r\n });\r\n}\r\n\r\nthis.GetDataForMenu = function (dataType, accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetDataForMenu?Type=' + dataType + '&AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.GetProjectSettings = function (ProjectId, accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetProjectSettings?ProjectId=' + ProjectId + '&AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.GetAccountConfigSettings = function (accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetAccountConfigSettings?AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.GetTemplateSettings = function (DocId, accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetTemplateSettings?DocId=' + DocId + '&AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.UpdateAccountConfigSettings = function (accountId, accountConfigData, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/UpdateAccountConfigSettings?AccountId=' + accountId;\r\n return $http.put(url, accountConfigData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.UpdateProjectSettings = function (projectId, accountId, projectConfigData, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/UpdateProjectSettings?ProjectId=' + projectId + '&AccountId=' + accountId;\r\n return $http.put(url, projectConfigData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.UpdateTemplateSettings = function (docId, accountId, templateConfigData, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/UpdateTemplateSettings?DocId=' + docId + '&AccountId=' + accountId;\r\n return $http.put(url, templateConfigData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\n\r\n\r\n// https://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/GetAllMaster?UserId=F00000000000\r\nthis.GetAllSecheculingRules = function(loginUser, token){\r\nvar url = ApiURL + '/api/MasterSelectionCriteria/GetAllMaster?UserId=' + loginUser;\r\nreturn $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loginUser }\r\n });\r\n}\r\n\r\nhttps://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/EnableInMyAccount?UserId=U400000000001&RuleIds=Rule_01\r\nthis.SaveSchedulingRule = function(loginUser, ruleidlist,token, success, failure){\r\nvar url = ApiURL +'/api/MasterSelectionCriteria/EnableInMyAccount?UserId='+ loginUser +'&RuleIds='+ruleidlist;\r\n$http.post(url, null, { headers: {'Content-Type': undefined, 'Token': token, 'UserId':loginUser}\r\n}).then(success, failure);\r\n}\r\n\r\n// https://perf.mymobiforce.com/schedulingapi/api/AutoAssignScheduler/GetSchedulerConfig?reqUserId=U350000000001\r\nthis.getAssignationRule = function(loggedinUser,token){\r\nvar url = SchedulingAPI + '/api/AutoAssignScheduler/GetSchedulerConfig?reqUserId=' + loggedinUser ; \r\nreturn $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n});\r\n}\r\n\r\nthis.CreateTransactionalAlert = function(reqUserId,token,data){\r\n var url = ApiURL+'/api/alertconfiguration/'+reqUserId+'/CreateTransactionalAlert';\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n });\r\n}\r\n\r\nthis.GetAllAlertConfiguration = function(reqUserId,token){\r\n\tvar url=ApiURL+'/api/alertconfiguration/'+reqUserId+'/GetAllAlertConfiguration';\r\n\treturn $http.get(url,{\r\n\t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n\t})\r\n}\r\nthis.DeleteAlertConfiguration = function(reqUserId,id,type,token){\r\n return $http({\r\n method: 'DELETE',\r\n url: ApiURL + \"/api/alertconfiguration/\"+reqUserId+ \"/\"+id+\"/\"+type+\"/DeleteAlertConfiguration\",\r\n data: { \r\n },\r\n headers: {\r\n 'Content-type': 'application/json', 'token':token, 'UserId':reqUserId\r\n }\r\n })\r\n }\r\n\r\nthis.GetAlertConfiguration = function(reqUserId,id,type,token){\r\n\tvar url=ApiURL+'/api/alertconfiguration/'+reqUserId+'/'+id+'/'+type+'/GetAlertConfiguration';\r\n\treturn $http.get(url,{\r\n\t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n\t})\r\n}\r\n\r\n// https://perf.mymobiforce.com/schedulingapi/api/AutoAssignScheduler/PutSchedulerConfigList?reqUserId=U350000000001\r\nthis.SaveAssignationRule = function(loggedinUser, ruleList, token, success, failure){\r\nvar url = SchedulingAPI + '/api/AutoAssignScheduler/PutSchedulerConfigList?reqUserId='+ loggedinUser;\r\n$http.put(url,ruleList,{headers: {'Content-Type': 'application/json','Token': token, 'UserId': loggedinUser}}).then(success,failure);\r\n}\r\nthis.GetAllBonusPenalty = function (loggedinUser, token){\r\nvar url = ApiURL + '/api/BonusPenalty/GetAllBonusPenalty';\r\nreturn $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n});\r\n}\r\n\r\nthis.UpdateBonusPenalty = function (BonusData,loggedinUser, token) {\r\n var url = ApiURL + '/api/BonusPenalty/UpdateBonusPenalty';\r\nreturn $http.put(url, BonusData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser}\r\n});\r\n}\r\n\r\n});\r\n\r\n\nangular.module('inspinia').controller('SystemConfigController', function (SystemConfigService,CentralHelpdeskConfigService,$stateParams,MailUrl, $localStorage, $state, $timeout, $uibModal, DTOptionsBuilder, DTColumnBuilder, $compile, $q, DTColumnDefBuilder, $scope, $log, AccountSettingService, $localStorage, ReportService, DashboardURL) {\r\n var vm = this;\r\n\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n vm.AlertType = $stateParams.alertType;\r\n var token = $localStorage.token;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.accountId = \"\";\r\n vm.ProjectId = \"\";\r\n // vm.DocId = \"\";\r\n $scope.distance = 0;\r\n $scope.updateBikePosition = function () {\r\n var rangeSlider = document.getElementById('distanceRange');\r\n var bikeIcon = document.getElementById('bikeIcon');\r\n var rangeWidth = rangeSlider.offsetWidth;\r\n var rangeValue = rangeSlider.value;\r\n var bikePosition = (rangeValue / rangeSlider.max) * rangeWidth;\r\n bikeIcon.style.transform = 'translateX(' + bikePosition + 'px)';\r\n }\r\n\r\n vm.getAllAccounts = function ( ) {\r\n CentralHelpdeskConfigService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data) { \r\n if(resp.status==200)\r\n {\r\n vm.HDAllAccounts = resp.data;\r\n\r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n\r\n\r\n vm.OpenPriceModelMapping = function () { \r\n $state.go('index.PriceModelMapping', {\r\n \r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.OpenSlalisting = function () { \r\n $state.go('index.Slalisting', {\r\n \r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.OpenProject = function () { \r\n $state.go('index.Project', {\r\n \r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n\r\n vm.OpenDashboardReportList = function () { \r\n $state.go('index.DashboardReportList', {\r\n \r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n\r\n vm.OpenTemplateList = function () { \r\n $state.go('index.TemplateList', {\r\n \r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.OpenInvoiceConfigurations = function () { \r\n $state.go('index.InvoiceConfigurations', {\r\n \r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.OpenInvoiceConfigurations = function () { \r\n $state.go('index.InvoiceConfigurations', {\r\n \r\n }, {\r\n reload: true\r\n });\r\n }\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n vm.getAllAccounts(); \r\n\r\n\r\n vm.headingName = \"Account Settings\";\r\n\r\n vm.GetDataForMenu = function (dataType) {\r\n SystemConfigService.GetDataForMenu(dataType, vm.accountId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.dataForMenu = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.GetProjectSettings = function (ProjectId) {\r\n if (ProjectId) {\r\n vm.ProjectId = ProjectId;\r\n }\r\n vm.headingName = 'Project Settings';\r\n SystemConfigService.GetProjectSettings(vm.ProjectId, vm.accountId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.currentConfig = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.GetAccountConfigSettings = function () {\r\n if(vm.accountId == null)\r\n {\r\n vm.accountId = \"\";\r\n }\r\n vm.headingName = 'Account Settings';\r\n SystemConfigService.GetAccountConfigSettings(vm.accountId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.currentConfig = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAccountConfigSettings();\r\n\r\n vm.GetTemplateSettings = function (DocId) {\r\n if (DocId) {\r\n vm.DocId = DocId;\r\n }\r\n vm.headingName = 'Template Settings';\r\n SystemConfigService.GetTemplateSettings(vm.DocId, vm.accountId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.currentConfig = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n var accountConfigData = [];\r\n vm.UpdateAccountConfigSettings = function () {\r\n var updatedConfig = {}\r\n for (var index = 0; index < vm.currentConfig.length; index++) {\r\n var updatedConfig = {\r\n \"ItemName\": vm.currentConfig[index].ItemName,\r\n \"ItemDisplayName\": vm.currentConfig[index].ItemDisplayName,\r\n \"ItemValue\": vm.currentConfig[index].ItemValue,\r\n \"ItemType\": vm.currentConfig[index].ItemType,\r\n \"ItemFrom\": \"AccountConfig\",\r\n \"ItemDescription\": vm.currentConfig[index].ItemDescription,\r\n }\r\n accountConfigData.push(updatedConfig);\r\n }\r\n SystemConfigService.UpdateAccountConfigSettings(vm.accountId, accountConfigData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.GetAccountConfigSettings();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n var projectConfigData = [];\r\n vm.UpdateProjectSettings = function () {\r\n var updatedConfig = {}\r\n for (var index = 0; index < vm.currentConfig.length; index++) {\r\n var updatedConfig = {\r\n \"ItemName\": vm.currentConfig[index].ItemName,\r\n \"ItemDisplayName\": vm.currentConfig[index].ItemDisplayName,\r\n \"ItemValue\": vm.currentConfig[index].ItemValue,\r\n \"ItemType\": vm.currentConfig[index].ItemType,\r\n \"ItemFrom\": \"Project\",\r\n \"ItemDescription\": vm.currentConfig[index].ItemDescription,\r\n }\r\n projectConfigData.push(updatedConfig);\r\n }\r\n SystemConfigService.UpdateProjectSettings(vm.ProjectId, vm.accountId, projectConfigData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.GetProjectSettings(vm.ProjectId);\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n var templateConfigData = [];\r\n vm.UpdateTemplateSettings = function () {\r\n var updatedConfig = {}\r\n for (var index = 0; index < vm.currentConfig.length; index++) {\r\n var updatedConfig = {\r\n \"ItemName\": vm.currentConfig[index].ItemName,\r\n \"ItemDisplayName\": vm.currentConfig[index].ItemDisplayName,\r\n \"ItemValue\": vm.currentConfig[index].ItemValue,\r\n \"ItemType\": vm.currentConfig[index].ItemType,\r\n \"ItemFrom\": \"Template\",\r\n \"ItemDescription\": vm.currentConfig[index].ItemDescription,\r\n }\r\n templateConfigData.push(updatedConfig);\r\n }\r\n SystemConfigService.UpdateTemplateSettings(vm.DocId, vm.accountId, templateConfigData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.GetTemplateSettings(vm.DocId);\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n }, function () {\r\n });\r\n }\r\n///////// Scheduling rule \r\nvm.activeTab = ''; \r\n\r\nvm.activateTab = function(tab) {\r\n vm.activeTab = tab;\r\n vm.headingName =tab;\r\n };\r\n vm.toolScRuleList = [];\r\n vm.assetScRuleList = [];\r\n vm.certificateScRuleList = [];\r\n vm.roleScRuleList = [];\r\n vm.TalentPoolScRuleList = [];\r\n vm.dtInstance = {};\r\n vm.dtInstance_Certi = {};\r\n vm.dtInstance_Asset = {};\r\n vm.dtInstance_Tool = {};\r\n vm.dtInstance_TalentPool = {};\r\n vm.getAllSchedulingRules = function () {\r\n SystemConfigService.GetAllSecheculingRules(loggedinUser, token).then(function (res) {\r\n vm.ruleList = res.data;\r\n vm.toolScRuleList = [];\r\n vm.assetScRuleList = [];\r\n vm.certificateScRuleList = [];\r\n vm.roleScRuleList = [];\r\n vm.TalentPoolScRuleList = [];\r\n for (var i = 0; i < vm.ruleList.length; i++) {\r\n if (vm.ruleList[i].RuleType == 'Certificate') {\r\n vm.certificateScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'Asset') {\r\n vm.assetScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'Tool') {\r\n vm.toolScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'Role') {\r\n vm.roleScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'TalentPool') {\r\n vm.TalentPoolScRuleList.push(vm.ruleList[i]);\r\n }\r\n \r\n }\r\n if (vm.roleScRuleList) {\r\n vm.GenerateRoleTable();\r\n }\r\n if (vm.certificateScRuleList) {\r\n vm.GenerateCertificateTable();\r\n }\r\n if (vm.assetScRuleList) {\r\n vm.GenerateAssetsTable();\r\n }\r\n if (vm.toolScRuleList) {\r\n vm.GenerateToolTable();\r\n }\r\n if (vm.TalentPoolScRuleList) {\r\n vm.GenerateTalentPoolTable();\r\n }\r\n })\r\n }\r\n vm.getAllSchedulingRules();\r\n\r\n\r\n vm.GenerateRoleTable = function () {\r\n\r\n vm.headerCompiled = false;\r\n vm.selected = {};\r\n vm.selectAll = false;\r\n vm.toggleAll = toggleAll;\r\n vm.toggleOne = toggleOne;\r\n // var titleHtml = '
';\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.roleScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Role Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.roleScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll = false;\r\n // \treturn;\r\n // }\r\n }\r\n\r\n }\r\n vm.selectAll = true;\r\n }\r\n\r\n }\r\n\r\n\r\n vm.GenerateCertificateTable = function () {\r\n\r\n vm.headerCompiled_Certi = false;\r\n vm.selected_Certi = {};\r\n vm.selectAll_Certi = false;\r\n vm.toggleAll_Certi = toggleAll_Certi;\r\n vm.toggleOne_Certi = toggleOne_Certi;\r\n // var titleHtml_Certi = '
';\r\n\r\n vm.dtOptions_Certi = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.certificateScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled_Certi) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_Certi = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns_Certi = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_Certi[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Certificate Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll_Certi(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_Certi(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.certificateScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_Certi = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_Certi = true;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n vm.GenerateAssetsTable = function () {\r\n\r\n vm.headerCompiled_Asset = false;\r\n vm.selected_Asset = {};\r\n vm.selectAll_Asset = false;\r\n vm.toggleAll_Asset = toggleAll_Asset;\r\n vm.toggleOne_Asset = toggleOne_Asset;\r\n // var titleHtml_Asset = '
';\r\n\r\n vm.dtOptions_Asset = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.assetScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled_Asset) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_Asset = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns_Asset = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_Asset[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Assets Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll_Asset(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_Asset(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.assetScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_Asset = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_Asset = true;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n vm.GenerateToolTable = function () {\r\n\r\n vm.headerCompiled_Tool = false;\r\n vm.selected_Tool = {};\r\n vm.selectAll_Tool = false;\r\n vm.toggleAll_Tool = toggleAll_Tool;\r\n vm.toggleOne_Tool = toggleOne_Tool;\r\n // var titleHtml_Tool = '
';\r\n\r\n vm.dtOptions_Tool = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.toolScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallbacks', function (header) {\r\n if (!vm.headerCompiled_Tool) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_Tool = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns_Tool = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_Tool[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Tools Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n \r\n function toggleAll_Tool(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_Tool(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.toolScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_Tool = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_Tool = true;\r\n }\r\n\r\n }\r\n\r\n vm.GenerateTalentPoolTable = function () {\r\n\r\n vm.headerCompiled_TalentPool = false;\r\n vm.selected_TalentPool = {};\r\n vm.selectAll_TalentPool = false;\r\n vm.toggleAll_TalentPool = toggleAll_TalentPool;\r\n vm.toggleOne_TalentPool = toggleOne_TalentPool;\r\n // var titleHtml_TalentPool = '
';\r\n\r\n vm.dtOptions_TalentPool = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.TalentPoolScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallbacks', function (header) {\r\n if (!vm.headerCompiled_TalentPool) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_TalentPool = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n \r\n vm.dtColumns_TalentPool = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_TalentPool[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Talent Pool Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n function toggleAll_TalentPool(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_TalentPool(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.TalentPoolScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_TalentPool = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_TalentPool = true;\r\n }\r\n\r\n }\r\n vm.reloadData = function () {\r\n var resetPaging = true;\r\n vm.dtInstance.reloadData(resetPaging);\r\n vm.dtInstance_Certi.reloadData(resetPaging);\r\n vm.dtInstance_Asset.reloadData(resetPaging);\r\n vm.dtInstance_Tool.reloadData(resetPaging);\r\n vm.dtInstance_TalentPool.reloadData(resetPaging);\r\n\r\n }\r\n\r\n vm.SaveSchedulingRule = function () {\r\n\r\n var RuleIdList = '';\r\n for (var i = 0; i < vm.roleScRuleList.length; i++) {\r\n if (vm.selected[i] == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.roleScRuleList[i].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.roleScRuleList[i].RuleId;\r\n }\r\n }\r\n }\r\n for (var j = 0; j < vm.certificateScRuleList.length; j++) {\r\n if (vm.certificateScRuleList[j].IsEnable == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.certificateScRuleList[j].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.certificateScRuleList[j].RuleId;\r\n }\r\n }\r\n }\r\n for (var k = 0; k < vm.assetScRuleList.length; k++) {\r\n if (vm.assetScRuleList[k].IsEnable == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.assetScRuleList[k].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.assetScRuleList[k].RuleId;\r\n }\r\n }\r\n }\r\n for (var l = 0; l < vm.toolScRuleList.length; l++) {\r\n if (vm.toolScRuleList[l].IsEnable == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.toolScRuleList[l].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.toolScRuleList[l].RuleId;\r\n }\r\n }\r\n }\r\n for (var l = 0; l < vm.TalentPoolScRuleList.length; l++) {\r\n if (vm.TalentPoolScRuleList[l].IsEnable == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.TalentPoolScRuleList[l].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.TalentPoolScRuleList[l].RuleId;\r\n }\r\n }\r\n }\r\n SystemConfigService.SaveSchedulingRule(loggedinUser, RuleIdList, token, function (res) {\r\n if (res.data) {\r\n vm.showSuccess(\"Success\", \"Successfully Save Scheduling Rules\");\r\n // vm.getAllSchedulingRules();\r\n // // vm.reloadData();\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to Save Scheduling Rule.\");\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n //// Assignation Rule\r\n vm.dtInstance = {};\r\n vm.selected = {};\r\n vm.toggleOne = toggleOne;\r\n vm.changePriority = changePriority;\r\n vm.setPriorityIndex = {};\r\n // vm.getAllassignationrule = function(){\r\n // ScheduledReportService.getAssignationRule(loggedinUser, token).then(function(resp){\r\n // vm.AssignationRuleList = resp.data;\r\n // });\r\n // }\r\n // // vm.getAllassignationrule();\r\n\r\n vm.dtOption = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n SystemConfigService.getAssignationRule(loggedinUser, token).then(function (resp) {\r\n vm.AssignationRuleList = resp.data;\r\n // console.log(vm.AssignationRuleList);\r\n defer.resolve(vm.AssignationRuleList);\r\n });\r\n\r\n return defer.promise;\r\n }).withDOM('<\"html5buttons\"B>lTfgitp').withPaginationType('full_numbers')\r\n .withOption('order', []).withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompileds) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompileds = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n vm.dtColumn = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected[meta.row] = data.IsEnable;\r\n return '';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('RuleId').renderWith(function (data) {\r\n return '' + data + '';\r\n }).notSortable(),\r\n // DTColumnBuilder.newColumn('RuleType').withTitle('RuleType').renderWith(function (data) {\r\n // return '' + data + '';\r\n // }),\r\n DTColumnBuilder.newColumn('OrderByName').withTitle('Name').notSortable(),\r\n DTColumnBuilder.newColumn('Description').withTitle('Description').renderWith(function (data) {\r\n return '' + data + '';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn(null).withTitle('Priority Index').renderWith(function (data, type, full, meta) {\r\n \r\n vm.setPriorityIndex[meta.row] = data.PriorityIndex.toString();\r\n if(full.RuleType!=\"AssignFilter\"){\r\n return ' ';\r\n }\r\n return '';\r\n // return '' + data + '';\r\n }).notSortable()\r\n // DTColumnBuilder.newColumn('IsEnable').withTitle('IsEnable'), \r\n ];\r\n\r\n function toggleOne(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.AssignationRuleList[id].IsEnable = selectedItems[id];\r\n }\r\n }\r\n \r\n }\r\n\r\n function changePriority(allActivity){\r\n for (var id in allActivity) {\r\n if (allActivity.hasOwnProperty(id)) {\r\n vm.AssignationRuleList[id].PriorityIndex = Number(allActivity[id]);\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.SaveAssignationRule = function(){\r\n if(vm.AssignationRuleList.length > 0){\r\n SystemConfigService.SaveAssignationRule(loggedinUser, vm.AssignationRuleList, token, function (res) {\r\n if (res.data) {\r\n vm.showSuccess(\"Success\", \"Successfully Save Scheduling Rules\");\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to Save Scheduling Rule.\");\r\n });\r\n }\r\n\r\n }\r\n\r\n////// Bonus and penality\r\n\r\n vm.BonusList=[];\r\n vm.UpdateBonusList=[];\r\n vm.PenaltyList=[];\r\n vm.UpdatePenaltyList=[];\r\n vm.GetAllBonusPenalty = function () {\t\t\r\n SystemConfigService.GetAllBonusPenalty(loggedinUser, token).then(function (resp) {\r\n vm.BonusPenaltyList = resp.data;\r\n for(var i = 0; i < vm.BonusPenaltyList.length; i++)\r\n {\r\n if(vm.BonusPenaltyList[i].RuleType == \"Bonus\")\t\t\t\t\r\n vm.BonusList.push(vm.BonusPenaltyList[i]);\t\t\t\t\r\n else\r\n vm.PenaltyList.push(vm.BonusPenaltyList[i]);\r\n }\t\t\t\t\t\t\r\n });\r\n }\r\n vm.GetAllBonusPenalty();\r\n \r\n vm.UpdatePenaltyAmount = function(index,paneltyEnableDisable)\r\n {\t\r\n if(vm.PenaltyList[index].Amount==null || vm.PenaltyList[index].Amount==\"\")\r\n {\r\n vm.PenaltyList[index].edit=true;\r\n if(typeof(vm.PenaltyList[index].Amount) === \"undefined\")\r\n vm.showFailure(\"Failed\", \"Please valid amount\");\r\n else\r\n vm.showFailure(\"Failed\", \"Please enter amount\");\r\n return;\r\n }\r\n var pmessage = \"\";\r\n if(vm.PenaltyList[index].IsEnable)\r\n pmessage =\"Penalty has been enable successfully\";\r\n else\r\n pmessage =\"Penalty has been disable successfully\";\r\n \r\n var PenaltyDetails= {\r\n \"RuleId\": vm.PenaltyList[index].RuleId,\r\n \"RuleName\": vm.PenaltyList[index].RuleName,\r\n \"IsEnable\": vm.PenaltyList[index].IsEnable,\r\n \"Amount\": vm.PenaltyList[index].Amount\r\n }\r\n vm.UpdatePenaltyList.push(PenaltyDetails);\r\n SystemConfigService.UpdateBonusPenalty(vm.UpdatePenaltyList,loggedinUser, token).then(function (resp) {\r\n if(resp.data == \"Updated\" && resp.status == 200)\r\n {\r\n if(paneltyEnableDisable==\"paneltyEnableDisable\")\r\n vm.showSuccess(\"Success\", pmessage);\r\n else\r\n vm.showSuccess(\"Success\", \"Penalty has been successfully updated\");\r\n }\r\n else\r\n {\r\n vm.showFailure(\"Failed\", \"Penalty not updated\");\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.UpdateBonusAmount = function(index,bonusEnableDisable){\t\t\t\r\n if(vm.BonusList[index].Amount==null || vm.BonusList[index].Amount==\"\")\r\n {\r\n vm.BonusList[index].edit=true;\r\n if(typeof(vm.BonusList[index].Amount) === \"undefined\")\r\n vm.showFailure(\"Failed\", \"Please valid amount\");\r\n else\r\n vm.showFailure(\"Failed\", \"Please enter amount\");\r\n return;\r\n }\r\n var bmessage = \"\";\r\n if(vm.BonusList[index].IsEnable)\r\n bmessage =\"Bonus has been enable successfully\";\r\n else\r\n bmessage =\"Bonus has been disable successfully\";\r\n \r\n var BonusDetails= {\r\n \"RuleId\": vm.BonusList[index].RuleId,\r\n \"RuleName\": vm.BonusList[index].RuleName,\r\n \"IsEnable\": vm.BonusList[index].IsEnable,\r\n \"Amount\": vm.BonusList[index].Amount\r\n }\r\n vm.UpdateBonusList.push(BonusDetails);\r\n SystemConfigService.UpdateBonusPenalty(vm.UpdateBonusList,loggedinUser, token).then(function (resp) {\r\n if(resp.data == \"Updated\" && resp.status == 200)\r\n {\t\r\n if(bonusEnableDisable==\"bonusEnableDisable\")\r\n vm.showSuccess(\"Success\", bmessage);\r\n else\t\t\t\r\n vm.showSuccess(\"Success\", \"Bonus has been successfully updated\");\r\n }\r\n else\r\n {\r\n vm.showFailure(\"Failed\", \"Bonus not updated\");\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n //// Notification\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n if (vm.AlertType == 'main') {\r\n vm.eventType ='';\r\n }else if(vm.AlertType == 'transactional'){\r\n vm.eventType =$stateParams.eventType; \r\n }\r\n vm.mode = $stateParams.mode;\r\n vm.channelList = [\"SMS\",\"Email\",\"Notification\",\"WebNotification\"];\r\n vm.RoleList = [\"Project Manager\",\"Help Desk\",\"Supervisor\",\"Field Engineer\",\"Consumer\",\"Vendor Manager\"];\r\n vm.selectedRolesList = [];\r\n vm.channelList = [\"SMS\",\"Notifications\",\"Email\",\"WebNotification\"];\r\n vm.selectedChannelArray = '';\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.eventConfigurationArray = [];\r\n vm.dtInstance = {};\r\n vm.users=[];\r\n vm.toUsers=[];\r\n vm.toList=[];\r\n vm.mobileNo = '';\r\n vm.outsiderTransText = '';\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.showInfo =$scope.$parent.$parent.main.showInfo;\r\n vm.confirmTagModal =$scope.$parent.$parent.main.confirmTagModal;\r\n vm.outSidecheck1 = false;\r\n vm.AllConfigurayionList = '';\r\n //https://test.mymobiforce.com/assets/templates/36/JOB_ASSIGNED.html\r\n vm.mailMessagePath = MailUrl+'/assets/templates/'+'36'+'/';\r\n \r\n vm.GetAlertConfiguration = function(name,type){\r\n SystemConfigService.GetAlertConfiguration(loggedinUser,name,type,token).then(function(resp){\r\n if (resp && resp.status == 200) {\r\n vm.singleNotificationAlert = resp.data;\r\n vm.eventConfigurationArray = [];\r\n angular.forEach(vm.singleNotificationAlert.ListAlertTemplate, function(d){\r\n var editObject = {};\r\n editObject.channel = [];\r\n if (d) {\r\n editObject.check=true;\r\n editObject.role = d.Role;\r\n if (d.Role!='Outsider') {\r\n if (d.SMSEnabled) {\r\n editObject.channel.push(\"SMS\");\r\n editObject.smsText = d.SMSText;\r\n \r\n }if (d.EmailEnabled) {\r\n editObject.channel.push(\"Email\")\r\n }if (d.NotificationEnabled) {\r\n editObject.channel.push(\"Notifications\");\r\n editObject.smsText = d.NotificationText;\r\n }\r\n if (d.WebNotificationEnabled) {\r\n editObject.channel.push(\"WebNotification\");\r\n editObject.smsText = d.WebNotificationText;\r\n }\r\n vm.eventConfigurationArray.push(editObject);\r\n }else if (d.Role == 'Outsider') {\r\n vm.outSidecheck1 = true;\r\n vm.outsiderTransText = d.SMSText\r\n vm.toList = [];\r\n angular.forEach(d.UserOutSideContact, function(d){\r\n var objOutsider = {};\r\n if (d) {\r\n objOutsider.PersonalEmail = d.UserOutSideEmail;\r\n objOutsider.ContactNumber = d.UserOutSidePhone;\r\n vm.toList.push(objOutsider);\r\n }\r\n })\r\n // var emailArray = d.UserOutsideSystemEmail.split(\",\");\r\n // var mobileArray = d.UserOutSideSystemPhone.split(\",\");\r\n // vm.toList = [];\r\n // angular.forEach(emailArray,function(d){\r\n // var emailObj = [];\r\n // if (d!=\"\") {\r\n // emailObj.PersonalEmail = d;\r\n // vm.toList.push(emailObj);\r\n // }\r\n // })\r\n }\r\n \r\n }\r\n \r\n //console.log('vm.eventConfigurationArray',vm.eventConfigurationArray);\r\n })\r\n }\r\n })\r\n }\r\n \r\n vm.showTransactionalEdit =false;\r\n vm.EditAlerts = function(alertType,alertId,mode){\r\n if (alertType == 'transactional') {\r\n vm.alertType = alertType,\r\n vm.eventType = alertId,\r\n vm.mode = mode;\r\n if(vm.mode == true){\r\n vm.GetAlertConfiguration(vm.eventType,vm.alertType);\r\n }\r\n // $state.go('index.NotificationSettings',{\r\n // alertType:alertType,\r\n // eventType:alertId,\r\n // mode:true\r\n // },{\r\n // reload:true\r\n // })\r\n vm.showTransactionalEdit = true;\r\n }else if (alertType == 'SLA') {\r\n $state.go('index.SLASettings',{\r\n mode:true\r\n },{\r\n reload:true\r\n })\r\n \r\n }else if (alertType == 'Escalation') {\r\n $state.go('index.EscalationSettings',{\r\n mode:true,\r\n alertId:alertId\r\n },{\r\n reload:true\r\n })\r\n }\r\n \r\n }\r\n \r\n \r\n \r\n if (vm.mode == \"true\") {\r\n vm.mode = true;\r\n if(vm.AlertType == 'transactional'){\r\n vm.GetAlertConfiguration(vm.eventType,vm.AlertType);\r\n }\r\n \r\n }else{\r\n vm.mode = false;\r\n }\r\n vm.OpenTransactionalModal = function(){\r\n TransactionalModal = $uibModal.open({\r\n templateUrl: 'transactional-alert',\r\n scope: $scope,\r\n size:'lg'\r\n })\r\n }\r\n vm.CloseTransactionalModal = function(){\r\n TransactionalModal.close();\r\n }\r\n var confObject = {\r\n // check_1:'',\r\n // role_1:'',\r\n // channel_1:'',\r\n // emailP_1:'',\r\n // smsText_1:''\r\n }\r\n //vm.eventConfigurationArray.push(confObject);\r\n \r\n vm.AddEventsConfiguration = function(){\r\n var ele={};\r\n vm.eventConfigurationArray.push(ele);\r\n }\r\n vm.RemoveEventsConfiguration = function (index){\r\n vm.eventConfigurationArray.splice(index, 1);\r\n }\r\n \r\n \r\n \r\n \r\n // vm.GetEvent = function(event){\r\n // vm.eventType = event;\r\n // console.log('vm.eventType before',vm.eventType); \r\n // vm.CloseTransactionalModal();\r\n // console.log('vm.eventType after',vm.eventType); \r\n // }\r\n \r\n vm.OpenMailModal = function(){\r\n MailModal = $uibModal.open({\r\n templateUrl: 'mail-modal',\r\n scope: $scope,\r\n size:'lg'\r\n })\r\n }\r\n vm.CloseMailModal = function(){\r\n MailModal.close();\r\n }\r\n \r\n var confObject = {\r\n \r\n }\r\n vm.eventConfigurationArray.push(confObject);\r\n \r\n vm.AddEventsConfiguration = function(){\r\n var ele={};\r\n vm.eventConfigurationArray.push(ele);\r\n }\r\n vm.RemoveEventsConfiguration = function (index){\r\n vm.eventConfigurationArray.splice(index, 1);\r\n }\r\n // vm.storeSelectedRoles = function(role){\r\n \r\n // vm.selectedRolesList.push(vm.RoleList[role]);\r\n // }\r\n \r\n // vm.removeSelectedRoles = function (element) {\r\n // var matched = false;\r\n // angular.forEach(vm.selectedRolesList, function (d) {\r\n // if (d == element) {\r\n // matched = true;\r\n // return;\r\n // }\r\n // });\r\n // if (!matched) {\r\n // return element;\r\n // }\r\n // }\r\n vm.getUserSuggestion = function (val) {\r\n \r\n // vm.scheduleModel.toListMendtryErr=false;\r\n \r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}].concat(vm.users):vm.users;\r\n }\r\n vm.getUsers();\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}]:[];\r\n }\r\n \r\n vm.getUsers = function () {\r\n vm.users = [];\r\n ReportService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n //$log.log(data);\r\n }]));\r\n }\r\n \r\n vm.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName !=null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n vm.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.toList, function (d) {\r\n if (d.PersonalEmail == element.PersonalEmail) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n vm.selectUserNameInToList = function (item,mobile) {\r\n if (item == '' && mobile == '') {\r\n vm.showInfo(\"Information\",\"Please enter email or mobile\");\r\n return;\r\n }\r\n var obj=[];\r\n if (item && item.length!=0) {\r\n obj.PersonalEmail = item;\r\n }\r\n \r\n if (mobile && mobile.length>0) {\r\n obj.ContactNumber = mobile; \r\n }else{\r\n angular.forEach(vm.users, function(d){\r\n if (d.PersonalEmail == item) {\r\n obj.ContactNumber = d.ContactNumber;\r\n }\r\n })\r\n }\r\n vm.toList.push(obj);\r\n vm.toUsers = [];\r\n vm.mobileNo = '';\r\n }\r\n vm.RemovefromList = function(index){\r\n vm.toList.splice(index,1);\r\n }\r\n \r\n vm.SaveEventConfiguration = function(){\r\n \r\n if (vm.config_form.$valid) {\r\n var obj = {};\r\n obj.AlertType = vm.AlertType;\r\n obj.AlertId = vm.eventType;\r\n var alertArray = [];\r\n angular.forEach(vm.eventConfigurationArray, function(d){\r\n var alertObject = {};\r\n if (d && d.check) {\r\n if (d.channel.indexOf('SMS')!=-1) {\r\n alertObject.SMSEnabled = true;\r\n alertObject.SMSText = d.smsText;\r\n }else{\r\n alertObject.SMSEnabled = false;\r\n alertObject.SMSText = \"\";\r\n }\r\n if (d.channel.indexOf('Email')!=-1) {\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailTemplateName =vm.eventType;\r\n alertObject.EmailSubject = vm.eventType;\r\n }else{\r\n alertObject.EmailEnabled = false;\r\n alertObject.EmailTemplateName =\"\";\r\n alertObject.EmailSubject = \"\";\r\n }if (d.channel.indexOf('Notifications')!=-1) {\r\n alertObject.NotificationEnabled = true;\r\n alertObject.NotificationText =d.smsText;\r\n }else{\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText =\"\";\r\n }if (d.channel.indexOf('WebNotification')!=-1) {\r\n alertObject.WebNotificationEnabled = true;\r\n alertObject.WebNotificationText =d.smsText;\r\n }else{\r\n alertObject.WebNotificationEnabled = false;\r\n alertObject.WebNotificationText =\"\";\r\n }if (d.channel.indexOf('WhatsApp')!=-1) {\r\n alertObject.WhatsAppEnabled = true;\r\n alertObject.WhatsAppText =d.smsText;\r\n }else{\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText =\"\";\r\n }\r\n alertObject.Role = d.role;\r\n alertObject.UserOutSideContact=[];\r\n alertObject.UserOutSideContact.UserOutSideEmail = \"\";\r\n alertObject.UserOutSideContact.UserOutSidePhone = \"\";\r\n alertArray.push(alertObject);\r\n }\r\n })\r\n \r\n if (vm.outSidecheck1) {\r\n if (vm.toList && vm.toList.length>0) {\r\n var alertObject = {}\r\n var outSiderModel = [];\r\n angular.forEach(vm.toList, function(d){\r\n var objModel = {};\r\n if (d) {\r\n objModel.UserOutSideEmail = d.PersonalEmail;\r\n objModel.UserOutSidePhone = d.ContactNumber;\r\n outSiderModel.push(objModel);\r\n }\r\n })\r\n \r\n alertObject.UserOutSideContact = outSiderModel;\r\n alertObject.Role = \"Outsider\";\r\n alertObject.SMSText = vm.outsiderTransText;\r\n alertObject.SMSEnabled = true;\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailSubject = vm.eventType;\r\n alertObject.EmailTemplateName = vm.eventType;\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText = \"\";\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText = \"\";\r\n alertArray.push(alertObject);\r\n }else{\r\n vm.showInfo(\"Information\",\"Please select outside users or uncheck the button\");\r\n return;\r\n }\r\n }\r\n obj.ListAlertTemplate = alertArray;\r\n //console.log('obj',obj);\r\n SystemConfigService.CreateTransactionalAlert(loggedinUser,token,obj).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\",vm.eventType +\"-Transactional Alert has been created\");\r\n $timeout(function(){\r\n vm.showTransactionalEdit = false;\r\n // $state.go('index.NotificationSettings',{\r\n // alertType:'main',\r\n // eventType:'',\r\n // mode:''\r\n // },{\r\n // reload:true\r\n // });\r\n },1000)\r\n }else{\r\n vm.showFailure(\"Failure\",vm.eventType +\"-Transactional Alert creation failed due to some technical error\");\r\n }\r\n })\r\n }else{\r\n vm.config_form.submitted = true;\r\n }\r\n \r\n }\r\n \r\n \r\n vm.GetAllAlertConfiguration = function(){\r\n SystemConfigService.GetAllAlertConfiguration(loggedinUser,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data && resp.data.length>0) {\r\n vm.AllConfigurationList = resp.data;\r\n //console.log('vm.AllConfigurayionList',vm.AllConfigurationList);\r\n }else{\r\n vm.showFailure(\"Error\",\"No Configuration found\")\r\n }\r\n })\r\n }\r\n \r\n vm.DeleteAlertConfiguration = function(name,type){\r\n if(name){\r\n vm.confirmTagModal(\"Do you want to delete selected configuration?\",function(){\r\n if (type=='transactional') {\r\n SystemConfigService.DeleteAlertConfiguration(loggedinUser,name,type,token).then(function(resp){\r\n if (resp) {\r\n vm.showSuccess(\"Success\",\"Alert has been deleted successfully\");\r\n $timeout(function(){\r\n vm.GetAllAlertConfiguration();\r\n },2000)\r\n \r\n }else{\r\n vm.showFailure(\"Error\",\"Technical error occured\")\r\n }\r\n })\r\n }else if(type == 'Escalation'){\r\n SystemConfigService.DeleteEscalationAlertConfiguration(loggedinUser,name,type,token).then(function(resp){\r\n if (resp) {\r\n vm.showSuccess(\"Success\",\"Alert has been deleted successfully\");\r\n $timeout(function(){\r\n vm.GetAllAlertConfiguration();\r\n },2000)\r\n \r\n }else{\r\n vm.showFailure(\"Error\",\"Technical error occured\")\r\n }\r\n })\r\n \r\n }else if(type == 'SLA'){\r\n SystemConfigService.DeleteSLAAlertConfiguration(loggedinUser,name,type,token).then(function(resp){\r\n if (resp) {\r\n vm.showSuccess(\"Success\",\"Alert has been deleted successfully\");\r\n $timeout(function(){\r\n vm.GetAllAlertConfiguration();\r\n },2000)\r\n \r\n }else{\r\n vm.showFailure(\"Error\",\"Technical error occured\")\r\n }\r\n })\r\n }\r\n })\r\n }\r\n \r\n }\r\n \r\n //Global Call functions\r\n // if (vm.AlertType == 'main') {\r\n // vm.GetAllAlertConfiguration();\r\n // }\r\n \r\n \r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfrgitp')\r\n .withButtons([]).withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('searching',true)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n });\r\n // .withOption('order', [1, 'asc']);\r\n \r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n \r\n\r\n }\r\n});\r\nfunction checktwodecimal(el){\r\n\tvar ex = /^\\d*\\.?\\d{0,2}$/;\r\n\tif(ex.test(el.value)==false){\r\n\t el.value = el.value.substring(0,el.value.length - 1);\r\n\t }\r\n }\nangular.module('inspinia').service('StaffShiftCampaignService', function (ApiURL, StaffSchedulingAPI, PublicApiURL, ActivityURL, $window, $http, FreelancerURL, SchedulingAPI) {\r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n // this.GetAllInteractionsDashboard = function (data, loggedinUser, token) {\r\n // var url = FreelancerURL + '/api/FreeLancerRegistration/GetAllInteractionsDashboard';\r\n // return $http.put(url, data, {\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // 'Token': token,\r\n // 'UserId': loggedinUser\r\n // }\r\n // });\r\n // }\r\n\r\n\r\n this.GetStaffShiftCampaignForRM = function (campaignstatus, StartDate, EndDate, PageIndex, PageSize, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/GetStaffShiftCampaignForRM?CampaginStatus=' + campaignstatus + '&StartDate=' + StartDate + '&EndDate=' + EndDate + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.CreateStaffShiftCampaign = function (data, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/CreateStaffShiftCampaign';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetAllShiftsForDateDynamic = function (data,loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/GetAllAcceptedUserCampaignById';\r\n return $http.post(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.PublishShiftToUser = function (shiftId, userId, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/PublishShiftToUser?ShiftId=' + shiftId + '&UserId=' + userId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n // this.GetStaffShitCampaignForSupervisorById = function (campaginId, loginUserId, token) {\r\n // var url = StaffSchedulingAPI + '/api/StaffShift/GetStaffShitCampaignForSupervisorById?CampaginId=' + campaginId;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // 'Token': token,\r\n // 'UserId': loginUserId\r\n // }\r\n // });\r\n // }\r\n\r\n this.ApproveStaffOvertimeshift = function (shiftId, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffOvertimeShift/ApproveStaffOvertimeshift?StaffOvertimeId=' + shiftId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.RejectStaffOvertimeshift = function (shiftId, rejectComment, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffOvertimeShift/RejectStaffOvertimeshift?StaffOvertimeId=' + shiftId + '&RejectComment=' + rejectComment;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetAllShiftsForDateWithStatusXLS = function (startDate, endDate, status, userid, shiftType, accountId) {\r\n var url = PublicApiURL + '/api/Report/GetAllStaffShitData?ShiftFromDate=' + startDate + '&ShiftToDate=' + endDate + '&Status=' + status + '&UserId=' + userid + '&ShiftType=' + shiftType + '&AccountId=' + accountId;\r\n $window.open(url);\r\n }\r\n\r\n this.GetSupervisorsForAccount = function (loginUserId, token) {\r\n var url = ApiURL + '/api/User/GetSupervisorsForAccount';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.RunStaffCampaign = function (data, loginUserId, token) {\r\n var url = StaffSchedulingAPI + \"/api/StaffShift/RunStaffCampaign\";\r\n return $http.put(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId }\r\n });\r\n }\r\n\r\n this.getusersbyfilters = function (itemNames, itemValues, loginUserId, token) {\r\n var url = ApiURL + '/api/User/getusersbyfilters?itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetAllCampaignName = function (loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/GetAllStaffShiftCampaignId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n});\nangular.module('inspinia').controller('StaffShiftCampaignController', function (StaffShiftCampaignService,ReferService, shiftManagementService, TeamFormCreationService, $q, $filter, $log, $state, $localStorage, UIURL, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, uiCalendarConfig, ImageUrl, PublicApiURL, $window) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.broadcastSentUser = true;\r\n $scope.toggleForBroadcast = function () {\r\n $scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.timeLineDetail = true;\r\n $scope.openTimeLine = function () {\r\n $scope.timeLineDetail = !$scope.timeLineDetail;\r\n $scope.myvalue = true;\r\n };\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n $scope.toggleMenu = function (ShiftId) {\r\n vm.GetEligibleUserForShift(ShiftId);\r\n if ($scope.manualAssignationWrapper === \"hide-nav\") {\r\n $scope.manualAssignationWrapper = \"show-nav\";\r\n }\r\n else {\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n }\r\n };\r\n $scope.hideAllUser = true;\r\n\r\n $scope.showAllUser = function () {\r\n $scope.hideAllUser = true;\r\n };\r\n $scope.hideAllUserbutton = function () {\r\n $scope.hideAllUser = false;\r\n };\r\n $scope.userClass_status = true;\r\n $scope.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.userClass_status = true;\r\n $scope.broadcastSentUser = true;\r\n $scope.timeLineDetail = true;\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n vm.closeFeedbackoption();\r\n }\r\n $scope.close360ViewBroadcaste = function () {\r\n $scope.myvalue = false;\r\n angular.element('#div1').removeClass(\"alpha\");\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userSingle = function () {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.userFilter = true;\r\n $scope.assignJobFilter = function () {\r\n $scope.userFilter = !$scope.userFilter;\r\n $scope.myvalue = true;\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n // $scope.toggleMenu();\r\n };\r\n $scope.minatureSlide = true;\r\n $scope.minatureSlideBtn = function () {\r\n $scope.minatureSlide = !$scope.minatureSlide;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.hideFilter = function () {\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n var token = $localStorage.token;\r\n vm.IsOpenBucketEnabled = $localStorage.IsOpenBucketEnabled;\r\n vm.IsAutoAssignToCHDteam = $localStorage.IsAutoAssignToCHDteam;\r\n vm.IsOpenBucketEnabled = $localStorage.IsOpenBucketEnabled;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.accountId = $localStorage.accountConfig.AccountId;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n\r\n // variables required for slot allocation\r\n vm.sorttype = \"desc\";\r\n vm.SortType = \"desc\";\r\n vm.SortField = 'CreatedOn';\r\n vm.ShiftList = [];\r\n vm.assignButtonDisable = false;\r\n vm.shiftsListLength = 0;\r\n vm.shiftPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.ActiveShifTab = 'Teamlist';\r\n vm.AssignedTo = '';\r\n vm.shiftStatus = '';\r\n vm.DateField = 'CreatedOn';\r\n vm.State = '';\r\n vm.City = '';\r\n vm.shiftId = '';\r\n vm.userskill = '';\r\n vm.disableuploadbutton = false;\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.bookingdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.bookingRanges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n var itemNames=\"\";\r\n var itemValues=\"\";\r\n\r\n\r\n var scdt = new Date();\r\n scdt.setMinutes(scdt.getMinutes() + 30);\r\n vm.SourceCreationDate = scdt;\r\n var pcdt = new Date();\r\n pcdt.setDate(pcdt.getDate() + 7);\r\n vm.PlannedClosureDate = pcdt;\r\n\r\n vm.openCalendar = function (e, picker) {\r\n vm.ClosureDateTime.open = true;\r\n };\r\n var plannedclosuredatelimit = new Date();\r\n plannedclosuredatelimit.setMinutes(plannedclosuredatelimit.getMinutes() + 1)\r\n vm.ClosureDateTime = { date: '', datepickerOptions: { minDate: plannedclosuredatelimit } };\r\n vm.ReportingStartTime = moment('09:00', 'HH:mm').toDate();\r\n vm.ReportingEndTime = moment('18:00', 'HH:mm').toDate(); \r\n var date = new Date();\r\n var d = date.getDate();\r\n var m = date.getMonth();\r\n var y = date.getFullYear();\r\n vm.eventsF = function (start, end, timezone, callback) {\r\n var s = new Date(start).getTime() / 1000;\r\n var e = new Date(end).getTime() / 1000;\r\n var m = new Date(start).getMonth();\r\n var events = [{\r\n title: 'Feed Me ' + m,\r\n start: s + (50000),\r\n end: s + (100000),\r\n allDay: false,\r\n className: ['customFeed']\r\n }];\r\n callback(events);\r\n };\r\n\r\n vm.ShiftStatusList = [\"Created\", \"Published\", \"Accepted\", \"Inprogress\", \"Completed\", \"Lunch Break\", \"Rejected\", \"Approved\"];\r\n\r\n // start calender\r\n var scheduleStartDate = new Date();\r\n var scheduleEndDate = new Date();\r\n scheduleEndDate.setDate(scheduleEndDate.getDate() + 6);\r\n vm.slotBookingdates = { scheduleStartDate: moment().subtract(7, 'day'), scheduleEndDate: moment() };\r\n $scope.showCalendar = false;\r\n $scope.showBookingTab = false;\r\n vm.searchQuery = \"\";\r\n vm.slotDate = $filter('date')(new Date(), 'yyyy-MM-dd');\r\n $scope.toggleCalendar = function (userId) {\r\n vm.slotBookingUserId = userId;\r\n $scope.showBookingTab = true;\r\n $scope.showCalendar = !$scope.showCalendar;\r\n };\r\n $scope.dateOptions = {\r\n formatYear: 'yyyy',\r\n startingDay: 1,\r\n minDate: scheduleStartDate,\r\n maxDate: scheduleEndDate\r\n };\r\n $scope.date = scheduleStartDate;\r\n vm.campaignstatus = \"\";\r\n vm.toBeAssigned = [];\r\n vm.ApplyCampaignfilter = function () {\r\n $scope.UserTablepagination = {};\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n $scope.hideFilter();\r\n vm.GetStaffShiftCampaignForRM();\r\n }\r\n\r\n vm.sortColumn = function (col) {\r\n vm.SortField = col;\r\n if (vm.SortType == 'desc') {\r\n vm.SortType = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n } else {\r\n vm.SortType = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n };\r\n\r\n vm.sortClass = function (col) {\r\n if (vm.SortField == col) {\r\n if (vm.SortType == 'desc') {\r\n return 'fa fa-arrow-down';\r\n } else {\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n vm.closeSearchText = function () {\r\n vm.Experience = '';\r\n vm.rating = '';\r\n vm.state = '';\r\n vm.city = '';\r\n itemNames = '';\r\n itemValues = '';\r\n $scope.Userpagination = {};\r\n PageIndex = 1;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.applyUserFilter();\r\n }\r\n\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n $scope.Userpagination = {};\r\n PageIndex = 1;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.GetStaffShiftCampaignForRM();\r\n };\r\n\r\n vm.GetAllCampaignName = function () {\r\n StaffShiftCampaignService.GetAllCampaignName(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n vm.campaignNameList = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.campaignModel = function () {\r\n if(vm.toBeAssigned.length <= 0){\r\n vm.showFailure(\"Failed\",\"Please select atleast one user\")\r\n }\r\n else{\r\n vm.campaignRunModelOpen = $uibModal.open({\r\n templateUrl: 'campaignRunModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n \r\n }\r\n\r\n vm.CloseCampaignModel = function () {\r\n vm.campaignRunModelOpen.close();\r\n vm.CampaignId = \"\";\r\n vm.toBeAssigned = [];\r\n vm.applyUserFilter();\r\n }\r\n\r\n vm.RunStaffCampaign = function () {\r\n vm.campaign_form.submitted = true;\r\n var data = {\r\n \"UserIdList\": vm.toBeAssigned,\r\n \"CampaignId\": vm.CampaignId\r\n }\r\n if (vm.campaign_form.$valid) {\r\n StaffShiftCampaignService.RunStaffCampaign(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseCampaignModel();\r\n }\r\n else{\r\n vm.showFailure(\"Failed\",resp.data);\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n vm.implementSelectItemsUsers = function (itemList, scope) {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n scope.selectRowUsers = function (i) {\r\n vm.toBeAssigned = [];\r\n scope.showMinusUsers = false;\r\n scope.selectAllUsers = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n // var myObject = {\r\n // 'UserId': d.UserId,\r\n // 'Skill': d.Skill\r\n // };\r\n vm.toBeAssigned.push(d.UserId)\r\n scope.showMinusUsers = true;\r\n }\r\n\r\n });\r\n }\r\n \r\n scope.applyAllTeamSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllUsers;\r\n vm.toBeAssigned.push(d.UserId)\r\n });\r\n }\r\n\r\n scope.resetAllSelect = function () {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n }\r\n }\r\n\r\n vm.implementSelectItemsUsers('UsersList', this);\r\n\r\n $scope.totalTableUsersBG = 0;\r\n $scope.userCampaignTablePerPage = vm.shiftPageListCount;\r\n $scope.CampaignTablepagination = {\r\n current: 1\r\n };\r\n\r\n vm.changeCampaignPageListCount = function () {\r\n $scope.userCampaignTablePerPage = vm.shiftPageListCount;\r\n PageSize = $scope.userCampaignTablePerPage;\r\n $scope.CampaignTablepageChanged($scope.CampaignTablepagination.current);\r\n }\r\n\r\n PageIndex = $scope.CampaignTablepagination.current;\r\n $scope.CampaignTablepageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetStaffShiftCampaignForRM();\r\n };\r\n\r\n vm.GetStaffShiftCampaignForRM = function () {\r\n StaffShiftCampaignService.GetStaffShiftCampaignForRM(vm.campaignstatus,startDate,endDate,PageIndex,PageSize, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ShiftList = resp.data.objStaffShiftCampaginModels;\r\n $scope.totalTableShifts = resp.data.Count;\r\n if (vm.ShiftList.length < vm.shiftPageListCount)\r\n vm.shiftsListLength = $scope.totalTableShifts;\r\n else\r\n vm.shiftsListLength = PageIndex * vm.shiftPageListCount;\r\n if (PageIndex == 1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex - 1) * vm.shiftPageListCount) + 1);\r\n }\r\n\r\n })\r\n }\r\n\r\n vm.GetStaffShiftCampaignForRM();\r\n\r\n // vm.GetAllInteractionsDashboard = function () {\r\n // data = {\r\n // \"Status\": vm.shiftStatus,\r\n // \"Skill\": vm.userskill == \"\" ? \"\" : vm.userskill.join(\"|\"),\r\n // \"DateField\": vm.DateField,\r\n // \"FromDate\": startDate,\r\n // \"ToDate\": endDate,\r\n // \"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n // \"InteractionType\": vm.InteractionType,\r\n // \"PageIndex\": PageIndex,\r\n // \"PageCount\": PageSize,\r\n // \"State\": vm.State,\r\n // \"City\": vm.City\r\n // }\r\n // StaffShiftCampaignService.GetAllInteractionsDashboard(data, loggedinUser, token).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // vm.TotalSlots = resp.data.TotalSlots;\r\n // vm.AssignedSlots = resp.data.AssignedSlots;\r\n // vm.PendingSlots = resp.data.PendingSlots;\r\n // vm.CompletedSlots = resp.data.CompletedSlots;\r\n // vm.BreachedSlots = resp.data.BreachedSlots;\r\n // }\r\n\r\n // })\r\n // }\r\n\r\n vm.getAllShiftsByType = function (value) {\r\n vm.ActiveShifTab = value;\r\n vm.selectedCity = \"\";\r\n vm.selectedState = \"\";\r\n\r\n if (vm.ActiveShifTab == 'Campaignlist') {\r\n vm.GetStaffShiftCampaignForRM();\r\n }\r\n if (vm.ActiveShifTab == 'Teamlist') {\r\n vm.getusersbyfilters();\r\n }\r\n $scope.UserTablepagination = {};\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n }\r\n\r\n vm.AddShiftModal = function () {\r\n vm.GetSupervisorsForAccount();\r\n vm.shiftModal = $uibModal.open({\r\n templateUrl: 'CreateShift.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n vm.closeShiftModal = function () {\r\n vm.shiftModal.close();\r\n vm.disableBookingButton = false;\r\n vm.SelectedLocation = \"\";\r\n vm.SelectedDepartment = \"\";\r\n vm.startDate = \"\";\r\n vm.endDate = \"\";\r\n vm.CampaignDescription = \"\";\r\n vm.CampaignName = \"\";\r\n vm.selectedCity = \"\";\r\n vm.selectedState = \"\";\r\n vm.RequiredStaffCount = \"\";\r\n vm.SupervisorId = \"\";\r\n vm.ReportingStartTime = moment('09:00', 'HH:mm').toDate();\r\n vm.ReportingEndTime = moment('18:00', 'HH:mm').toDate(); \r\n vm.PinCode = \"\";\r\n vm.Location = \"\";\r\n }\r\n\r\n\r\n vm.BulkShiftMapView = function () {\r\n\t\t\t$state.go('index.bulkuploadshiftmap', {\r\n\t\t\t}, {\r\n\t\t\t\treload: true\r\n\t\t\t});\r\n\t\t}\r\n\r\n vm.GetSupervisorsForAccount = function () {\r\n StaffShiftCampaignService.GetSupervisorsForAccount(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp) {\r\n vm.supervisorsList = resp.data;\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n\r\n vm.GetSupervisorsForAccount();\r\n\r\n $scope.getCurrentDate = function() {\r\n return new Date();\r\n };\r\n\r\n function getAllStates() {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n\r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n\r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedStateOfUser = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n vm.CreateStaffShiftCampaign = function () {\r\n vm.campaign_creation_form.submitted = true;\r\n if (vm.campaign_creation_form.$valid) {\r\n vm.disableBookingButton = true;\r\n var data = {\r\n \"CampaignName\": vm.CampaignName,\r\n \"CampaignDescription\": vm.CampaignDescription,\r\n \"City\": vm.selectedCity,\r\n \"State\": vm.selectedState,\r\n \"RequiredStaffCount\": vm.RequiredStaffCount,\r\n \"ShiftStartTime\": moment(vm.startDate).format(\"YYYY-MM-DD\"),\r\n \"ShiftEndTime\": moment(vm.endDate).format(\"YYYY-MM-DD\"),\r\n \"SupervisorId\": vm.SupervisorId,\r\n \"IsCampaignOpen\": true,\r\n \"ReportingStartTime\": moment(vm.ReportingStartTime).format(\"HH:mm\"),\r\n \"ReportingEndTime\": moment(vm.ReportingEndTime).format(\"HH:mm\"), \r\n \"PinCode\": vm.PinCode,\r\n \"Location\": vm.Location\r\n }\r\n\r\n StaffShiftCampaignService.CreateStaffShiftCampaign(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", 'Campaign created successfully');\r\n vm.closeShiftModal();\r\n $timeout(function () {\r\n vm.GetStaffShiftCampaignForRM();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableBookingButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n vm.CampaignNameofUser = \"\";\r\n\r\n vm.getAcceptHistory = function (q, campaignName) { \r\n vm.CountDetails = q;\r\n vm.CampaignNameofUser = campaignName;\r\n vm.GetAllShiftsForDateDynamic();\r\n openHistoryModel = $uibModal.open({\r\n templateUrl: 'openHistoryModel.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n \r\n} \r\n\r\nvm.CloseHistoryModel = function () {\r\n openHistoryModel.close();\r\n}\r\n\r\n vm.exportTableToCSV = function() {\r\n var csv = [];\r\n var rows = vm.attendanceUsersList;\r\n\r\n // Header row\r\n var header = [\r\n 'Campaign ID',\r\n 'Campaign Name',\r\n 'User ID',\r\n 'User Name',\r\n 'Contact Number',\r\n 'Location',\r\n 'Acceptance Time'\r\n ];\r\n csv.push(header.join(','));\r\n\r\n // Data rows\r\n for (var i = 0; i < rows.length; i++) {\r\n var row = [\r\n vm.CountDetails,\r\n vm.CampaignNameofUser,\r\n rows[i].UserId,\r\n rows[i].UserName,\r\n rows[i].ContactNumber,\r\n '\"' + rows[i].LocationName.replace(/\"/g, '\"\"') + '\"', \r\n $filter('date')(rows[i].AcceptanceDateTime, 'dd/MM/yy hh:mm a')\r\n ];\r\n csv.push(row.join(','));\r\n }\r\n\r\n // Create CSV file\r\n var csvContent = csv.join('\\n');\r\n var blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\r\n var url = URL.createObjectURL(blob);\r\n\r\n // Create temporary anchor element and trigger download\r\n var a = document.createElement('a');\r\n a.href = url;\r\n a.target = '_blank';\r\n a.download = 'attendance.csv';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n}\r\n\r\n\r\n vm.GetStaffShitCampaignForSupervisorById = function (campaginId) {\r\n StaffShiftCampaignService.GetStaffShitCampaignForSupervisorById(campaginId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 202 && resp) {\r\n // $scope.toggleMenu();\r\n vm.campaignData = resp.data;\r\n }\r\n })\r\n\r\n }\r\n\r\n vm.PublishShiftToUser = function (userId) {\r\n vm.disableBookingButton = true;\r\n StaffShiftCampaignService.PublishShiftToUser(vm.shiftId, userId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 202 && resp) {\r\n vm.disableBookingButton = false;\r\n $scope.toggleMenu();\r\n vm.showSuccess(\"Success\", 'Shift published successfully');\r\n $timeout(function () {\r\n vm.GetStaffShiftCampaignForRM();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableBookingButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n\r\n vm.ApproveStaffOvertimeshift = function (shiftId) {\r\n vm.disableBookingButton = true;\r\n StaffShiftCampaignService.ApproveStaffOvertimeshift(shiftId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 202 && resp) {\r\n vm.disableBookingButton = false;\r\n vm.showSuccess(\"Success\", 'Shift approved successfully');\r\n $timeout(function () {\r\n vm.GetStaffShiftCampaignForRM();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableBookingButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n\r\n vm.RejectModal = function (item) {\r\n vm.shiftId = item;\r\n vm.RejctShareModal = $uibModal.open({\r\n templateUrl: 'rejectshiftmodal.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n vm.closerejectmodal = function () {\r\n vm.disableBookingButton = false;\r\n vm.RejectComment = \"\";\r\n vm.RejctShareModal.close();\r\n }\r\n\r\n\r\n vm.RejectStaffOvertimeshift = function () {\r\n vm.disableBookingButton = true;\r\n StaffShiftCampaignService.RejectStaffOvertimeshift(vm.shiftId, vm.RejectComment, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 202 && resp) {\r\n vm.showSuccess(\"Success\", 'Shift rejected successfully');\r\n vm.closerejectmodal();\r\n $timeout(function () {\r\n vm.GetStaffShiftCampaignForRM();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableBookingButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n vm.assigntotech = false;\r\n vm.AttendenceSidePanel = function (q) {\r\n vm.CampaignCompData = q;\r\n vm.CountDetails = q.CampaignId;\r\n vm.GetAllShiftsForDateDynamic();\r\n vm.assigntotech = true;\r\n \r\n };\r\n vm.GetAllShiftsForDateDynamic = function () {\r\n var data = {\r\n \"ShiftFromDate\": '',\r\n \"ShiftToDate\": '',\r\n \"Status\": '',\r\n \"UserId\": '',\r\n \"CampaginId\": vm.CountDetails,\r\n \"ShiftType\":'',\r\n \"OrderBy\":'',\r\n \"SortType\":'',\r\n \"PageIndex\":0,\r\n \"PageSize\":0\r\n }\r\n\r\n StaffShiftCampaignService.GetAllShiftsForDateDynamic(data,loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp) {\r\n vm.attendanceUsersList = resp.data;\r\n }\r\n else {\r\n vm.attendanceUsersList = \"\";\r\n }\r\n })\r\n}\r\n\r\n\r\n vm.ResetUserSelection = function (scope){\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n }\r\n\r\n vm.UsersFilterArray = function(){\r\n vm.ResetUserSelection(this);\r\n itemNames=\"\";\r\n itemValues=\"\";\r\n\r\n if (vm.state) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',CurrentState';\r\n itemValues = itemValues + \",\" + vm.state;\r\n }\r\n else\r\n {\r\n itemNames = 'CurrentState';\r\n itemValues = vm.state;\r\n } \r\n }\r\n if (vm.city) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',CurrentCity';\r\n itemValues = itemValues + \",\" + vm.city;\r\n }\r\n else\r\n {\r\n itemNames = 'CurrentCity';\r\n itemValues = vm.city;\r\n } \r\n }\r\n if (vm.rating) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',FERating';\r\n itemValues = itemValues + \",\" + vm.rating;\r\n }\r\n else\r\n {\r\n itemNames = 'FERating';\r\n itemValues = vm.rating;\r\n } \r\n }\r\n if (vm.Experience) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',Experience';\r\n itemValues = itemValues + \",\" + vm.Experience;\r\n }\r\n else\r\n {\r\n itemNames = 'Experience';\r\n itemValues = vm.Experience;\r\n } \r\n }\r\n\r\n }\r\n\r\n\r\n vm.getusersbyfilters = function () {\r\n StaffShiftCampaignService.getusersbyfilters(itemNames,itemValues, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp) {\r\n vm.UsersList = resp.data;\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n\r\n vm.applyUserFilter = function () {\r\n vm.UsersFilterArray();\r\n vm.getusersbyfilters(itemNames, itemValues, loggedinUser, token);\r\n }\r\n\r\n vm.applyUserFilter();\r\n\r\n\r\n }\r\n});\r\n\r\nangular.module('inspinia').filter('searchUser', function () {\r\n return function (items, search) {\r\n var filtered = [];\r\n if (search) {\r\n angular.forEach(items, function (item) {\r\n var searchstr = new RegExp(search, \"i\");\r\n if (item.id.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.User_Type.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.city.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.contactnumber.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.name.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.role.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.state.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n });\r\n } else {\r\n filtered = items;\r\n }\r\n return filtered;\r\n }\r\n})\nangular.module('inspinia').service('SlaObjectiveDetailsService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('SlaObjectiveDetailsController', function (SlaObjectiveDetailsService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\r\n\t\tvm.AddMilestoneModal = function () {\r\n\t\t\tvm.addmilestone = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Addmilestone.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n \r\n\tvm.CloseMilestone = function () {\r\n\tvm.addmilestone.close();\r\n\t}\r\n\r\n\tvm.SaveMilestone = function(){\r\n\t\tvm.showSuccess(\"Success\",\"Milestone Created Successfully\");\r\n\t\tvm.CloseMilestone();\r\n\t}\r\n\t$scope.milestones = [\r\n {\r\n order: 1,\r\n name: \"Initial Response\",\r\n criteria: \"Ticket Status-Equals-Assigned\",\r\n minutes: 120,\r\n startTime: \"Entity Process\",\r\n businessHours: \"Default\",\r\n\t\t\tdescrpation : \"\",\r\n },\r\n {\r\n order: 2,\r\n name: \"Final Resolution\",\r\n criteria: \"Ticket Priority - Equals-High\",\r\n minutes: 180,\r\n startTime: \"Entity Process\",\r\n businessHours: \"Default\",\r\n\t\t\tdescrpation : \"\",\r\n }\r\n ];\r\n\r\n // Function to delete a row\r\n $scope.deleteMilestone = function (index) {\r\n $scope.milestones.splice(index, 1);\r\n\t\tvm.showSuccess(\"Success\",\"Deleted Successfully\");\r\n\r\n };\r\n\r\n vm.editMilestone = function (row) {\r\n\t\tvm.selectedMilestone = angular.copy(row); // Copy data to avoid direct changes\r\n\t\tvm.editmilestone = $uibModal.open({\r\n\t\t\ttemplateUrl: 'EditMilestone.html',\r\n\t\t\tsize: 'lg',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\t\r\n\tvm.closeEditMilestone = function () {\r\n\t\tvm.editmilestone.close();\r\n\t};\r\n\t\r\n\tvm.updateMilestone = function () {\r\n\t\t// Loop through milestones to find and update the matching one\r\n\t\tfor (var i = 0; i < vm.milestones.length; i++) {\r\n\t\t\tif (vm.milestones[i].Order === vm.selectedMilestone.Order) {\r\n\t\t\t\tvm.milestones[i] = vm.selectedMilestone; // Directly assign the edited object\r\n\t\t\t\tbreak; // Exit loop once found\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.closeEditMilestone();\r\n\t};\r\n\t\r\n\tvm.AlertMilestoneModal = function () {\r\n\t\tvm.alertmilestone = $uibModal.open({\r\n\t\t\ttemplateUrl: 'AlertMilestone.html',\r\n\t\t\tsize: 'lg',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\r\nvm.CloseAlertMilestone = function () {\r\nvm.alertmilestone.close();\r\n}\r\n\t\r\n\t$scope.rows = [\r\n\t\t{ CaseEnters: '', Operator: '', Value: '', isEditable: false }\r\n\t];\r\n\t\r\n\t// Function to add a new row\r\n\t$scope.addRow = function () {\r\n\t\t$scope.rows.push({ CaseEnters: '', Operator: '', Value: '', isEditable: true });\r\n\t};\r\n\t\r\n\t// Function to remove a row\r\n\t$scope.removeRow = function (index) {\r\n\t\tif ($scope.rows.length > 1) {\r\n\t\t\t$scope.rows.splice(index, 1);\r\n\t\t}\r\n\t};\r\n\t\r\n // Function to remove user\r\n vm.removeUser = function (index) {\r\n vm.userList.splice(index, 1);\r\n };\r\n // Function to remove user from list\r\n vm.removeUser = function (index) {\r\n vm.userList.splice(index, 1);\r\n };\r\n\tvm.OpenDetailMilestone = function(){\r\n\t\t$state.go('index.MilestoneDetailView',{\r\n\t\t \r\n\t\t}, { reload: true });\r\n\t \r\n\t}\r\n\t$scope.slaobjectiveList = {\r\n name: \"Ticket_SLA\",\r\n SLAProcessType: \"Ticket\",\r\n SLAProject: \"Air Cooler Services\",\r\n SLACustomer: \"MMF Customers\",\r\n\t\tbusinessHours:\"Default\"\r\n };\r\n\r\n\t$scope.editSLA = function () {\r\n $scope.backupSLAObjective = angular.copy($scope.slaobjectiveList);\r\n $scope.isEditing = true;\r\n };\r\n\r\n // Save Function\r\n $scope.saveChanges = function () {\r\n console.log(\"Saving changes...\", $scope.slaobjectiveList);\r\n \r\n $scope.isEditing = false;\r\n };\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('SLASettingService', function (ApiURL,$log,$http) {\r\n\r\n //https://test.mymobiforce.com/coreapi/api/slaalertconfiguration/F00000000000/CreateMultipleSLAAlert\r\n this.CreateSLAlAlert = function(reqUserId,token,data){\r\n \tvar url = ApiURL+'/api/slaalertconfiguration/'+reqUserId+'/CreateMultipleSLAAlert';\r\n \treturn $http.post(url,data,{\r\n \t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n \t});\r\n }\r\n //https://test.mymobiforce.com/coreapi/api/alertconfiguration/U360000000001/GetAllAlertConfiguration\r\nthis.GetAllAlertConfiguration = function(reqUserId,token){\r\n\tvar url=ApiURL+'/api/alertconfiguration/'+reqUserId+'/GetAllAlertConfiguration';\r\n\treturn $http.get(url,{\r\n\t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n\t})\r\n}\r\n\r\n//https://test.mymobiforce.com/coreapi/api/slaalertconfiguration/U360000000001/GetAllSLAAlertConfiguration\r\nthis.GetAllSLAAlertConfiguration = function(reqUserId,token){\r\n var url=ApiURL+'/api/slaalertconfiguration/'+reqUserId+'/GetAllSLAAlertConfiguration';\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n })\r\n}\r\n//https://test.mymobiforce.com/coreapi/api/alertconfiguration/U360000000001/JOB_ASSIGNED/TRANSACTIONAL/GetAlertConfiguration\r\nthis.GetAlertConfiguration = function(reqUserId,id,type,token){\r\n\tvar url=ApiURL+'/api/alertconfiguration/'+reqUserId+'/'+id+'/'+type+'/GetAlertConfiguration';\r\n\treturn $http.get(url,{\r\n\t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n\t})\r\n}\r\nthis.DeleteAlertConfiguration = function(reqUserId,token,data){\r\n\tvar url=ApiURL+'/api/alertconfiguration/'+reqUserId+'/GetAllAlertConfiguration';\r\n\treturn $http.delete(url,data,{\r\n\t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n\t})\r\n}\r\n//https://test.mymobiforce.com/coreapi/api/alertconfiguration/U360000000001/alertId/alertType/DeleteAlertConfiguration\r\n//https://test.mymobiforce.com/coreapi/api/slaalertconfiguration/reqUserId/alertId/alertType/DeleteSLAAlertConfiguration\r\n\r\nthis.DeleteAlertConfiguration = function(reqUserId,id,type,token){\r\n return $http({\r\n method: 'DELETE',\r\n url: ApiURL + \"/api/slaalertconfiguration/\"+reqUserId+ \"/\"+id+\"/\"+type+\"/DeleteSLAAlertConfiguration\",\r\n data: { \r\n },\r\n headers: {\r\n 'Content-type': 'application/json', 'token':token, 'UserId':reqUserId\r\n }\r\n })\r\n }\r\n\r\n\r\n});\nangular.module('inspinia').controller('SLAController', function (MailUrl,$state,toaster,$timeout,$window,$state,ReportService, $scope,$uibModal,$log, $localStorage,NotificationSettingService,$stateParams,DTOptionsBuilder, DTColumnDefBuilder,SLASettingService) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if ($stateParams.mode == 'true') {\r\n vm.Openmode = true\r\n \r\n }else{\r\n vm.Openmode = false;\r\n\r\n }\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.showInfo =$scope.$parent.$parent.main.showInfo;\r\n vm.confirmTagModal =$scope.$parent.$parent.main.confirmTagModal;\r\n vm.channelList = [\"SMS\",\"Email\",\"Notification\",\"WebNotification\"];\r\n vm.RoleList = [\"Project Manager\",\"Help Desk\",\"Supervisor\",\"Field Engineer\",\"Consumer\"];\r\n vm.TimeList = [\"30 Min\",\"1 Hour\",\"2 Hours\",\"3 Hours\",\"4 Hours\",\"5 Hours\",\"6 Hours\"];\r\n vm.selectedRolesList = [];\r\n vm.selectedChannelArray = '';\r\n vm.eventConfigurationArray1 = [];\r\n vm.eventConfigurationArray2 = [];\r\n vm.eventConfigurationArray3 = [];\r\n vm.eventConfigurationArray4 = [];\r\n vm.dtInstance = {};\r\n vm.users=[];\r\n vm.toUsers=[];\r\n vm.toList=[];\r\n vm.mobileNo = '';\r\n vm.outsiderTransText = '';\r\n vm.outSidecheck1 = false;\r\n vm.AllConfigurayionList = '';\r\n vm.voiletedChannel = [];\r\n vm.voiletChannel = [];\r\n vm.voiletedSmsText = '';\r\n vm.voiletSmsText = '';\r\n vm.voiletedRole = [];\r\n vm.voiletRole=[];\r\n //https://test.mymobiforce.com/assets/templates/36/JOB_ASSIGNED.html\r\n vm.mailMessagePath = MailUrl+'/assets/templates/'+'36'+'/';\r\n\r\n vm.GetAllSLAAlertConfiguration = function(){\r\n SLASettingService.GetAllSLAAlertConfiguration(loggedinUser,token).then(function(resp){\r\n if (resp && resp.status == 200) {\r\n vm.SLAAlertConfigurationList = resp.data;\r\n angular.forEach(vm.SLAAlertConfigurationList, function(d){\r\n if (d.AlertId == 'SLA_VOILATE_SINGLE') {\r\n vm.check1 = true;\r\n vm.eventConfigurationArray1 = [];\r\n var SLAVOILATESINGLEObj = [];\r\n angular.forEach(d.ListSLAAlertTemplate, function(data){\r\n var arrayObj = {};\r\n arrayObj.channel = [];\r\n if (data.Role!='Outsider') {\r\n arrayObj.role = data.Role;\r\n if (data.DurationInMinutes<60) {\r\n arrayObj.time = data.DurationInMinutes + ' Min'; \r\n }else if (data.DurationInMinutes == 60){\r\n arrayObj.time = data.DurationInMinutes/60 + ' Hour';\r\n }else if (data.DurationInMinutes>60) {\r\n arrayObj.time = data.DurationInMinutes/60 + ' Hours';\r\n }\r\n if (data.SMSEnabled) {\r\n arrayObj.channel.push('SMS');\r\n arrayObj.smsText = data.SMSText;\r\n }if (data.EmailEnabled) {\r\n arrayObj.channel.push('Email');\r\n }if (data.NotificationEnabled) {\r\n arrayObj.channel.push('Notification');\r\n arrayObj.smsText = data.NotificationText\r\n }if (data.WhatsAppEnabled) {\r\n arrayObj.channel.push('WhatsApp');\r\n arrayObj.smsText = data.WhatsAppText\r\n }if (data.WebNotificationEnabled) {\r\n arrayObj.channel.push('WebNotification');\r\n arrayObj.smsText = data.WebNotificationText\r\n }\r\n SLAVOILATESINGLEObj.push(arrayObj);\r\n }else if (data.Role == 'Outsider') {\r\n vm.outSidecheck1 = true;\r\n if (data.UserOutSideContact && data.UserOutSideContact.length>0) {\r\n //vm.outSidecheck = true;\r\n vm.outsiderTransText = data.SMSText;\r\n vm.toList = [];\r\n angular.forEach(data.UserOutSideContact, function(v){\r\n var objOutsider = {};\r\n if (v) {\r\n objOutsider.PersonalEmail = v.UserOutSideEmail;\r\n objOutsider.ContactNumber = v.UserOutSidePhone;\r\n if (data.DurationInMinutes<60) {\r\n objOutsider.TimeDuration = d.DurationInMinutes + ' Min'\r\n }else if (d.DurationInMinutes==60) {\r\n objOutsider.TimeDuration = d.DurationInMinutes + ' Hour'\r\n }else if (d.DurationInMinutes>60) {\r\n objOutsider.TimeDuration = d.DurationInMinutes + ' Hours'\r\n }\r\n \r\n vm.toList.push(objOutsider);\r\n }\r\n })\r\n\r\n }\r\n }\r\n })\r\n vm.eventConfigurationArray1 = SLAVOILATESINGLEObj;\r\n }else if (d.AlertId == 'SLA_VOILATED_SINGLE') {\r\n vm.check3 = true;\r\n vm.eventConfigurationArray3 = [];\r\n var SLAVOILATEDSINGLEObj = [];\r\n angular.forEach(d.ListSLAAlertTemplate, function(data){\r\n var arrayObj = {};\r\n arrayObj.channel = [];\r\n if (data) {\r\n arrayObj.role = data.Role;\r\n if (data.DurationInMinutes<60) {\r\n arrayObj.time = data.DurationInMinutes + ' Min'; \r\n }else if (data.DurationInMinutes == 60){\r\n arrayObj.time = data.DurationInMinutes/60 + ' Hour';\r\n }else if (data.DurationInMinutes>60) {\r\n arrayObj.time = data.DurationInMinutes/60 + ' Hours';\r\n }\r\n if (data.SMSEnabled) {\r\n arrayObj.channel.push('SMS');\r\n arrayObj.smsText = data.SMSText;\r\n }if (data.EmailEnabled) {\r\n arrayObj.channel.push('Email');\r\n }if (data.NotificationEnabled) {\r\n arrayObj.channel.push('Notification');\r\n arrayObj.smsText = data.NotificationText\r\n }if (data.WhatsAppEnabled) {\r\n arrayObj.channel.push('WhatsApp');\r\n arrayObj.smsText = data.WhatsAppText\r\n }if (data.WebNotificationEnabled) {\r\n arrayObj.channel.push('WebNotification');\r\n arrayObj.smsText = data.WebNotificationText\r\n }\r\n SLAVOILATEDSINGLEObj.push(arrayObj);\r\n }\r\n })\r\n vm.eventConfigurationArray3 = SLAVOILATEDSINGLEObj;\r\n }else if (d.AlertId == 'SLA_VOILATE_SUMMARY') {\r\n vm.check2 = true;\r\n vm.eventConfigurationArray2 = [];\r\n \r\n angular.forEach(d.ListSLAAlertTemplate, function(data){\r\n if (data) {\r\n vm.voiletRole.push(data.Role);\r\n if (data.SMSEnabled) {\r\n vm.voiletChannel.push('SMS');\r\n vm.voiletSmsText = data.SMSText;\r\n }if (data.EmailEnabled) {\r\n vm.voiletChannel.push('Email');\r\n }if (data.NotificationEnabled) {\r\n vm.voiletChannel.push('Notification');\r\n vm.voiletSmsText = data.NotificationText\r\n }if (data.WhatsAppEnabled) {\r\n vm.voiletChannel.push('WhatsApp');\r\n vm.voiletSmsText = data.WhatsAppText\r\n }if (data.WebNotificationEnabled) {\r\n vm.voiletChannel.push('WebNotification');\r\n vm.voiletSmsText = data.WebNotificationText\r\n }\r\n }\r\n })\r\n angular.forEach(d.ListSLAPeriod, function(d){\r\n var arrayObj = {}; \r\n if (d) {\r\n if (d.DurationInMinutes<60) {\r\n arrayObj.time = d.DurationInMinutes + ' Min';\r\n }else if (d.DurationInMinutes == 60) {\r\n arrayObj.time = d.DurationInMinutes/60 + ' Hour';\r\n }else if (d.DurationInMinutes>60) {\r\n arrayObj.time = d.DurationInMinutes/60 + ' Hours';\r\n }\r\n arrayObj.exactTime = d.Hours + ':' + d.Minutes; \r\n if (d.Hours < 10) {\r\n d.Hours = '0' + d.Hours;\r\n }\r\n if (d.Minutes < 10) {\r\n d.Minutes = '0' + d.Minutes;\r\n }\r\n arrayObj.exactTime = d.Hours + ':' + d.Minutes;\r\n vm.eventConfigurationArray2.push(arrayObj);\r\n }\r\n })\r\n \r\n\r\n }else if (d.AlertId == 'SLA_VOILATED_SUMMARY') {\r\n vm.check4 = true;\r\n vm.eventConfigurationArray4 = [];\r\n angular.forEach(d.ListSLAAlertTemplate, function(data){\r\n if (data) {\r\n vm.voiletedRole.push(data.Role);\r\n if (data.SMSEnabled) {\r\n vm.voiletedChannel.push('SMS');\r\n vm.voiletedSmsText = data.SMSText;\r\n }if (data.EmailEnabled) {\r\n vm.voiletedChannel.push('Email');\r\n }if (data.NotificationEnabled) {\r\n vm.voiletedChannel.push('Notification');\r\n vm.voiletedSmsText = data.NotificationText\r\n }if (data.WhatsAppEnabled) {\r\n vm.voiletedChannel.push('WhatsApp');\r\n vm.voiletedSmsText = data.WhatsAppText\r\n }if (data.WebNotificationEnabled) {\r\n vm.voiletedChannel.push('WebNotification');\r\n vm.voiletedSmsText = data.WebNotificationText\r\n }\r\n }\r\n })\r\n angular.forEach(d.ListSLAPeriod, function(d){\r\n var arrayObj = {}; \r\n if (d) {\r\n if (d.DurationInMinutes<60) {\r\n arrayObj.time = d.DurationInMinutes + ' Min';\r\n }else if (d.DurationInMinutes == 60) {\r\n arrayObj.time = d.DurationInMinutes/60 + ' Hour';\r\n }else if (d.DurationInMinutes>60) {\r\n arrayObj.time = d.DurationInMinutes/60 + ' Hours';\r\n }\r\n if (d.Hours < 10) {\r\n d.Hours = '0' + d.Hours;\r\n }\r\n if (d.Minutes < 10) {\r\n d.Minutes = '0' + d.Minutes;\r\n }\r\n arrayObj.exactTime = d.Hours + ':' + d.Minutes;\r\n vm.eventConfigurationArray4.push(arrayObj);\r\n }\r\n })\r\n }\r\n })\r\n \r\n }\r\n })\r\n}\r\n\r\nvm.CancelEvent = function(){\r\n $state.go('index.NotificationSettings',{\r\n alertType:'main',\r\n eventType:'',\r\n mode:''\r\n },{\r\n reload:true\r\n })\r\n}\r\n\r\nif (vm.Openmode == true) {\r\n vm.GetAllSLAAlertConfiguration();\r\n}\r\n\r\n vm.OpenMailModal = function(){\r\n MailModal = $uibModal.open({\r\n templateUrl: 'mail-modal',\r\n scope: $scope,\r\n size:'lg'\r\n })\r\n }\r\n vm.CloseMailModal = function(){\r\n MailModal.close();\r\n }\r\n\r\nvar confObject1 = {\r\n}\r\nvar confObject2 = {\r\n}\r\nvar confObject3 = {\r\n}\r\nvar confObject4 = {\r\n}\r\nvm.eventConfigurationArray1.push(confObject1);\r\nvm.eventConfigurationArray2.push(confObject2);\r\nvm.eventConfigurationArray3.push(confObject3);\r\nvm.eventConfigurationArray4.push(confObject4);\r\n\r\nvm.AddEventsConfiguration1 = function(){\r\n var ele={};\r\n vm.eventConfigurationArray1.push(ele);\r\n}\r\nvm.RemoveEventsConfiguration1 = function (index){\r\n vm.eventConfigurationArray1.splice(index, 1);\r\n}\r\nvm.AddEventsConfiguration2 = function(){\r\n var ele={};\r\n vm.eventConfigurationArray2.push(ele);\r\n}\r\nvm.RemoveEventsConfiguration2 = function (index){\r\n vm.eventConfigurationArray2.splice(index, 1);\r\n}\r\nvm.AddEventsConfiguration3 = function(){\r\n var ele={};\r\n vm.eventConfigurationArray3.push(ele);\r\n}\r\nvm.RemoveEventsConfiguration3 = function (index){\r\n vm.eventConfigurationArray3.splice(index, 1);\r\n}\r\nvm.AddEventsConfiguration4 = function(){\r\n var ele={};\r\n vm.eventConfigurationArray4.push(ele);\r\n}\r\nvm.RemoveEventsConfiguration4 = function (index){\r\n vm.eventConfigurationArray4.splice(index, 1);\r\n}\r\n\r\nvm.getUserSuggestion = function (val) {\r\n\r\n // vm.scheduleModel.toListMendtryErr=false;\r\n\r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}].concat(vm.users):vm.users;\r\n }\r\n vm.getUsers();\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}]:[];\r\n }\r\n\r\n vm.getUsers = function () {\r\n vm.users = [];\r\n ReportService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n //$log.log(data);\r\n }]));\r\n }\r\n\r\n vm.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName !=null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n vm.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.toList, function (d) {\r\n if (d.PersonalEmail == element.PersonalEmail) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n vm.selectUserNameInToList = function (item,mobile,time) {\r\n if ((mobile==undefined || mobile == '') && (item==undefined || item == '')) {\r\n vm.showInfo(\"Information\",\"Please enter email or mobile\");\r\n return;\r\n }\r\n var obj=[];\r\n if (time!='') {\r\n obj.TimeDuration = time;\r\n if (item && item.length!=0) {\r\n obj.PersonalEmail = item;\r\n }\r\n if (mobile && mobile.length>0) {\r\n obj.ContactNumber = mobile; \r\n }else{\r\n angular.forEach(vm.users, function(d){\r\n if (d.PersonalEmail == item) {\r\n obj.ContactNumber = d.ContactNumber;\r\n }\r\n })\r\n }\r\n }else{\r\n vm.showInfo(\"Information\",\"Please select Timings\");\r\n return;\r\n }\r\n \r\n vm.toList.push(obj);\r\n vm.toUsers = [];\r\n vm.outsiderPhone = '';\r\n vm.outsiderTime = '';\r\n }\r\n vm.RemovefromList = function(index){\r\n vm.toList.splice(index,1);\r\n }\r\n\r\nvm.SaveEventConfiguration = function(){\r\n // SLA about to voilate single (SLA_VOILATE_SINGLE), SLA voilated single (SLA_VOILATED_SINGLE)\r\n // SLA about to voilate summary(SLA_VOILATE_SUMMARY), SLA voilated summary (SLA_VOILATED_SUMMARY)\r\n\r\nif (vm.sla_form.$valid) {\r\n var obj = [];\r\n if (vm.check1) {\r\n var alertArray = {};\r\n var configObject = [];\r\n var minutes = '';\r\n angular.forEach(vm.eventConfigurationArray1, function(d){\r\n var alertObject = {};\r\n if (d && d.check) {\r\n if (d.channel.indexOf('SMS')!=-1) {\r\n alertObject.SMSEnabled = true;\r\n alertObject.SMSText = d.smsText;\r\n }else{\r\n alertObject.SMSEnabled = false;\r\n alertObject.SMSText = \"\";\r\n }\r\n if (d.channel.indexOf('Email')!=-1) {\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailTemplateName =\"SLA_VOILATE_SINGLE\";\r\n alertObject.EmailSubject = \"SLA_VOILATE_SINGLE\";\r\n }else{\r\n alertObject.EmailEnabled = false;\r\n alertObject.EmailTemplateName =\"\";\r\n alertObject.EmailSubject = \"\";\r\n }if (d.channel.indexOf('Notification')!=-1) {\r\n alertObject.NotificationEnabled = true;\r\n alertObject.NotificationText =d.smsText;\r\n }else{\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText =\"\";\r\n }if (d.channel.indexOf('WhatsApp')!=-1) {\r\n alertObject.WhatsAppEnabled = true;\r\n alertObject.WhatsAppText =d.smsText;\r\n }else{\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText =\"\";\r\n }\r\n alertObject.Role = d.role;\r\n \r\n if (d.time && d.time.includes('Min')) {\r\n var timeSplit = d.time.split(' ');\r\n minutes = parseInt(timeSplit[0]);\r\n }else{\r\n var timeSplit = d.time.split(' ');\r\n minutes = parseInt(timeSplit[0])*60;\r\n }\r\n alertObject.DurationInMinutes= minutes;\r\n alertObject.UserOutSideContact=[];\r\n alertObject.UserOutSideContact.UserOutSideEmail = \"\";\r\n alertObject.UserOutSideContact.UserOutSidePhone = \"\";\r\n configObject.push(alertObject);\r\n }\r\n })\r\n if (vm.outSidecheck1) {\r\n var outSideObj = {};\r\n alertArray.ListSLAPeriod=[];\r\n if (vm.toList && vm.toList.length>0) {\r\n var alertObject = {}\r\n var outSiderModel = [];\r\n angular.forEach(vm.toList, function(d){\r\n var objModel = {};\r\n if (d) {\r\n objModel.UserOutSideEmail = d.PersonalEmail;\r\n objModel.UserOutSidePhone = d.ContactNumber;\r\n outSiderModel.push(objModel);\r\n }\r\n })\r\n alertObject.UserOutSideContact = outSiderModel;\r\n alertObject.DurationInMinutes = minutes;\r\n alertObject.Role = \"Outsider\";\r\n alertObject.SMSText = vm.outsiderTransText;\r\n alertObject.SMSEnabled = true;\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailSubject = \"SLA_VOILATE_SINGLE\";\r\n alertObject.EmailTemplateName = \"SLA_VOILATE_SINGLE\";\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText = \"\";\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText = \"\";\r\n alertObject.WebNotificationEnabled = false;\r\n alertObject.WebNotificationText = '';\r\n configObject.push(alertObject);\r\n }else{\r\n vm.showInfo(\"Information\",\"Please select outside users or uncheck the button\");\r\n return;\r\n }\r\n \r\n }\r\n\r\n alertArray.IsPreodic = false;\r\n alertArray.AlertType = 'SLA';\r\n alertArray.AlertId = 'SLA_VOILATE_SINGLE';\r\n alertArray.ListSLAPeriod = [];\r\n var listSlaObj = {};\r\n listSlaObj.Hours = 0;\r\n listSlaObj.Minutes = 0;\r\n listSlaObj.DurationInMinutes = 0;\r\n alertArray.ListSLAPeriod.push(listSlaObj);\r\n alertArray.ListSLAAlertTemplate = configObject;\r\n obj.push(alertArray);\r\n }else{\r\n console.log('this is uncheck for deletion'+ 'SLA_VOILATE_SINGLE');\r\n SLASettingService.DeleteAlertConfiguration(loggedinUser,'SLA_VOILATE_SINGLE','SLA',token).then(function(resp){\r\n if (resp) {\r\n console.log(resp);\r\n }\r\n })\r\n }\r\n if (vm.check3) {\r\n var alertArray={};\r\n var configObject = [];\r\n angular.forEach(vm.eventConfigurationArray3, function(d){\r\n var alertObject = {};\r\n if (d && d.check) {\r\n if (d.channel.indexOf('SMS')!=-1) {\r\n alertObject.SMSEnabled = true;\r\n alertObject.SMSText = d.smsText;\r\n }else{\r\n alertObject.SMSEnabled = false;\r\n alertObject.SMSText = \"\";\r\n }\r\n if (d.channel.indexOf('Email')!=-1) {\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailTemplateName =\"SLA_VOILATED_SINGLE\";\r\n alertObject.EmailSubject = \"SLA_VOILATED_SINGLE\";\r\n }else{\r\n alertObject.EmailEnabled = false;\r\n alertObject.EmailTemplateName =\"\";\r\n alertObject.EmailSubject = \"\";\r\n }if (d.channel.indexOf('Notification')!=-1) {\r\n alertObject.NotificationEnabled = true;\r\n alertObject.NotificationText =d.smsText;\r\n }else{\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText =\"\";\r\n }if (d.channel.indexOf('WhatsApp')!=-1) {\r\n alertObject.WhatsAppEnabled = true;\r\n alertObject.WhatsAppText =d.smsText;\r\n }else{\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText =\"\";\r\n }\r\n alertObject.Role = d.role;\r\n var minutes = '';\r\n if (d.time && d.time.includes('Min')) {\r\n var timeSplit = d.time.split(' ');\r\n minutes = parseInt(timeSplit[0]);\r\n }else{\r\n var timeSplit = d.time.split(' ');\r\n minutes = parseInt(timeSplit[0])*60;\r\n }\r\n alertObject.DurationInMinutes= minutes;\r\n alertObject.UserOutSideContact=[];\r\n alertObject.UserOutSideContact.UserOutSideEmail = \"\";\r\n alertObject.UserOutSideContact.UserOutSidePhone = \"\";\r\n configObject.push(alertObject);\r\n }\r\n })\r\n\r\n if (vm.outSidecheck1) {\r\n var outSideObj = {};\r\n alertArray.ListSLAPeriod=[];\r\n if (vm.toList && vm.toList.length>0) {\r\n var alertObject = {}\r\n var outSiderModel = [];\r\n angular.forEach(vm.toList, function(d){\r\n var objModel = {};\r\n if (d) {\r\n objModel.UserOutSideEmail = d.PersonalEmail;\r\n objModel.UserOutSidePhone = d.ContactNumber;\r\n outSiderModel.push(objModel);\r\n }\r\n })\r\n alertObject.UserOutSideContact = outSiderModel;\r\n alertObject.DurationInMinutes = minutes;\r\n alertObject.Role = \"Outsider\";\r\n alertObject.SMSText = vm.outsiderTransText;\r\n alertObject.SMSEnabled = true;\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailSubject = \"SLA_VOILATED_SINGLE\";\r\n alertObject.EmailTemplateName = \"SLA_VOILATED_SINGLE\";\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText = \"\";\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText = \"\";\r\n alertObject.WebNotificationEnabled = false;\r\n alertObject.WebNotificationText = '';\r\n configObject.push(alertObject);\r\n }else{\r\n vm.showInfo(\"Information\",\"Please select outside users or uncheck the button\");\r\n return;\r\n }\r\n \r\n }\r\n alertArray.IsPreodic = false;\r\n alertArray.AlertType = 'SLA';\r\n alertArray.AlertId = 'SLA_VOILATED_SINGLE';\r\n alertArray.ListSLAPeriod = [];\r\n var listSlaObj = {};\r\n listSlaObj.Hours = 0;\r\n listSlaObj.Minutes = 0;\r\n listSlaObj.DurationInMinutes = 0;\r\n alertArray.ListSLAPeriod.push(listSlaObj);\r\n alertArray.ListSLAAlertTemplate = configObject;\r\n obj.push(alertArray);\r\n }\r\n else{\r\n console.log('this is uncheck for deletion SLA_VOILATED_SINGLE');\r\n SLASettingService.DeleteAlertConfiguration(loggedinUser,'SLA_VOILATED_SINGLE','SLA',token).then(function(resp){\r\n if (resp) {\r\n console.log(resp);\r\n }\r\n })\r\n }\r\n if (vm.check2) {\r\n var alertArray={};\r\n var configObject = [];\r\n angular.forEach(vm.voiletRole, function(d){\r\n var alertObject = {};\r\n if (d) {\r\n if (vm.voiletChannel.indexOf('SMS')!=-1) {\r\n alertObject.SMSEnabled = true;\r\n alertObject.SMSText = vm.voiletSmsText;\r\n\r\n }else{\r\n alertObject.SMSEnabled = false;\r\n alertObject.SMSText = '';\r\n }\r\n if (vm.voiletChannel.indexOf('Email')!=-1) {\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailTemplateName ='SLA_VOILATE_SUMMARY';\r\n alertObject.EmailSubject = 'SLA_VOILATE_SUMMARY';\r\n }else{\r\n alertObject.EmailEnabled = false;\r\n alertObject.EmailTemplateName =\"\";\r\n alertObject.EmailSubject = \"\";\r\n }if (vm.voiletChannel.indexOf('Notification')!=-1) {\r\n alertObject.NotificationEnabled = true;\r\n alertObject.NotificationText =vm.voiletSmsText;\r\n }else{\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText =\"\";\r\n }if (vm.voiletChannel.indexOf('WhatsApp')!=-1) {\r\n alertObject.WhatsAppEnabled = true;\r\n alertObject.WhatsAppText =vm.voiletSmsText;\r\n }else{\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText =\"\";\r\n }\r\n if (vm.voiletChannel.indexOf('WebNotification')!=-1) {\r\n alertObject.WebNotificationEnabled = true;\r\n alertObject.WebNotificationText =vm.voiletSmsText;\r\n }else{\r\n alertObject.WebNotificationEnabled = false;\r\n alertObject.WebNotificationText =\"\";\r\n }\r\n alertObject.Role = d;\r\n alertObject.UserOutSideContact=[];\r\n alertObject.UserOutSideContact.UserOutSideEmail = \"\";\r\n alertObject.UserOutSideContact.UserOutSidePhone = \"\";\r\n alertObject.DurationInMinutes= \"\";\r\n configObject.push(alertObject);\r\n }\r\n })\r\n\r\n if (vm.outSidecheck1) {\r\n var outSideObj = {};\r\n alertArray.ListSLAPeriod=[];\r\n if (vm.toList && vm.toList.length>0) {\r\n var alertObject = {}\r\n var outSiderModel = [];\r\n angular.forEach(vm.toList, function(d){\r\n var objModel = {};\r\n if (d) {\r\n objModel.UserOutSideEmail = d.PersonalEmail;\r\n objModel.UserOutSidePhone = d.ContactNumber;\r\n outSiderModel.push(objModel);\r\n }\r\n })\r\n alertObject.UserOutSideContact = outSiderModel;\r\n alertObject.DurationInMinutes = minutes;\r\n alertObject.Role = \"Outsider\";\r\n alertObject.SMSText = vm.outsiderTransText;\r\n alertObject.SMSEnabled = true;\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailSubject = 'SLA_VOILATE_SUMMARY';\r\n alertObject.EmailTemplateName = 'SLA_VOILATE_SUMMARY';\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText = \"\";\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText = \"\";\r\n alertObject.WebNotificationEnabled = false;\r\n alertObject.WebNotificationText = '';\r\n configObject.push(alertObject);\r\n }else{\r\n vm.showInfo(\"Information\",\"Please select outside users or uncheck the button\");\r\n return;\r\n }\r\n \r\n }\r\n alertArray.IsPreodic = true;\r\n alertArray.AlertType = 'SLA';\r\n alertArray.AlertId = 'SLA_VOILATE_SUMMARY';\r\n\r\n alertArray.ListSLAPeriod = [];\r\n angular.forEach(vm.eventConfigurationArray2, function(d){\r\n if (d && d.check) {\r\n var listObj = {};\r\n var minutes= '';\r\n if (d.time.includes('Min')) {\r\n var timeSplit = d.time.split(' ');\r\n minutes = parseInt(timeSplit[0]);\r\n }else{\r\n\r\n var timeSplit = d.time.split(' ');\r\n minutes = parseInt(timeSplit[0])*60;\r\n }\r\n\r\n listObj.DurationInMinutes = minutes;\r\n if (d.exactTime.includes(':')) {\r\n var timeArray = d.exactTime.split(':');\r\n listObj.Hours = parseInt(timeArray[0]);\r\n listObj.Minutes = parseInt(timeArray[1]);\r\n }\r\n alertArray.ListSLAPeriod.push(listObj);\r\n }\r\n })\r\n alertArray.ListSLAAlertTemplate = configObject;\r\n obj.push(alertArray);\r\n }\r\n else{\r\n console.log('this is uncheck for deletion SLA_VOILATE_SUMMARY');\r\n SLASettingService.DeleteAlertConfiguration(loggedinUser,'SLA_VOILATE_SUMMARY','SLA',token).then(function(resp){\r\n if (resp) {\r\n console.log(resp);\r\n }\r\n })\r\n }\r\n if (vm.check4) {\r\n var alertArray={};\r\n var configObject = [];\r\n angular.forEach(vm.voiletedRole, function(d){\r\n var alertObject = {};\r\n if (d) {\r\n if (vm.voiletedChannel.indexOf('SMS')!=-1) {\r\n alertObject.SMSEnabled = true;\r\n alertObject.SMSText = vm.voiletSmsText;\r\n\r\n }else{\r\n alertObject.SMSEnabled = false;\r\n alertObject.SMSText = '';\r\n }\r\n if (vm.voiletedChannel.indexOf('Email')!=-1) {\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailTemplateName ='SLA_VOILATED_SUMMARY';\r\n alertObject.EmailSubject = 'SLA_VOILATED_SUMMARY';\r\n }else{\r\n alertObject.EmailEnabled = false;\r\n alertObject.EmailTemplateName =\"\";\r\n alertObject.EmailSubject = \"\";\r\n }if (vm.voiletedChannel.indexOf('Notification')!=-1) {\r\n alertObject.NotificationEnabled = true;\r\n alertObject.NotificationText =vm.voiletSmsText;\r\n }else{\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText =\"\";\r\n }if (vm.voiletedChannel.indexOf('WhatsApp')!=-1) {\r\n alertObject.WhatsAppEnabled = true;\r\n alertObject.WhatsAppText =vm.voiletSmsText;\r\n }else{\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText =\"\";\r\n }\r\n if (vm.voiletedChannel.indexOf('WebNotification')!=-1) {\r\n alertObject.WebNotificationEnabled = true;\r\n alertObject.WebNotificationText =vm.voiletSmsText;\r\n }else{\r\n alertObject.WebNotificationEnabled = false;\r\n alertObject.WebNotificationText =\"\";\r\n }\r\n alertObject.Role = d;\r\n alertObject.UserOutSideContact=[];\r\n alertObject.UserOutSideContact.UserOutSideEmail = \"\";\r\n alertObject.UserOutSideContact.UserOutSidePhone = \"\";\r\n alertObject.DurationInMinutes= \"\";\r\n configObject.push(alertObject);\r\n }\r\n })\r\n\r\n if (vm.outSidecheck1) {\r\n var outSideObj = {};\r\n alertArray.ListSLAPeriod=[];\r\n if (vm.toList && vm.toList.length>0) {\r\n var alertObject = {}\r\n var outSiderModel = [];\r\n angular.forEach(vm.toList, function(d){\r\n var objModel = {};\r\n if (d) {\r\n objModel.UserOutSideEmail = d.PersonalEmail;\r\n objModel.UserOutSidePhone = d.ContactNumber;\r\n outSiderModel.push(objModel);\r\n }\r\n })\r\n alertObject.UserOutSideContact = outSiderModel;\r\n alertObject.DurationInMinutes = minutes;\r\n alertObject.Role = \"Outsider\";\r\n alertObject.SMSText = vm.outsiderTransText;\r\n alertObject.SMSEnabled = true;\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailSubject = 'SLA_VOILATED_SUMMARY';\r\n alertObject.EmailTemplateName = 'SLA_VOILATED_SUMMARY';\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText = \"\";\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText = \"\";\r\n alertObject.WebNotificationEnabled = false;\r\n alertObject.WebNotificationText = '';\r\n configObject.push(alertObject);\r\n }else{\r\n vm.showInfo(\"Information\",\"Please select outside users or uncheck the button\");\r\n return;\r\n }\r\n \r\n }\r\n alertArray.IsPreodic = true;\r\n alertArray.AlertType = 'SLA';\r\n alertArray.AlertId = 'SLA_VOILATED_SUMMARY';\r\n\r\n alertArray.ListSLAPeriod = [];\r\n angular.forEach(vm.eventConfigurationArray4, function(d){\r\n if (d && d.check) {\r\n var listObj = {};\r\n var minutes= '';\r\n if (d.time.includes('Min')) {\r\n var timeSplit = d.time.split(' ');\r\n minutes = parseInt(timeSplit[0]);\r\n }else{\r\n\r\n var timeSplit = d.time.split(' ');\r\n minutes = parseInt(timeSplit[0])*60;\r\n }\r\n\r\n listObj.DurationInMinutes = minutes;\r\n if (d.exactTime.includes(':')) {\r\n var timeArray = d.exactTime.split(':');\r\n listObj.Hours = parseInt(timeArray[0]);\r\n listObj.Minutes = parseInt(timeArray[1]);\r\n }\r\n alertArray.ListSLAPeriod.push(listObj);\r\n }\r\n })\r\n alertArray.ListSLAAlertTemplate = configObject;\r\n obj.push(alertArray);\r\n }\r\n else{\r\n console.log('this is uncheck for deletion SLA_VOILATED_SUMMARY');\r\n SLASettingService.DeleteAlertConfiguration(loggedinUser,'SLA_VOILATED_SUMMARY','SLA',token).then(function(resp){\r\n if (resp) {\r\n console.log(resp);\r\n }\r\n })\r\n }\r\n \r\n \r\n console.log('obj',obj);\r\n SLASettingService.CreateSLAlAlert(loggedinUser,token,obj).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\",\"SLA Alert has been created\");\r\n $state.go('index.NotificationSettings',{\r\n alertType:'main',\r\n eventType:'',\r\n mode:''\r\n },{\r\n reload:true\r\n });\r\n }else{\r\n vm.showFailure(\"Failure\",\"SLA Alert creation failed due to some technical error\");\r\n }\r\n })\r\n}else{\r\n vm.sla_form.submitted = true;\r\n}\r\n \r\n}\r\n\r\n});\nangular.module('inspinia').service('SignupService', function (ApiURL, PublicApiURL, $http) {\r\n\r\n this.createAccount = function (data) {\r\n var url = PublicApiURL + '/api/SignUpWithPlan';\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json'}\r\n });\r\n }\r\n\r\n this.getVertical = function () {\r\n var url = PublicApiURL + '/api/GetSkillsWithCategory';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n params: {}\r\n });\r\n }\r\n\r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('SignupController', function (SignupService, $resource, toaster, $filter, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $window, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\tvm.skills = [];\r\n\tvm.verticalList = '';\r\n\tvm.skillList = [];\r\n\tvm.vertical = '';\r\n\r\n\tvm.saveUser = function () {\r\n\t\tvm.signup_form.submitted = true;\r\n\t\tvar accountPlanData = {\r\n\t\t\t\"CompanyName\": vm.company_name,\r\n\t\t\t\"FirstName\": vm.first_name,\r\n\t\t\t\"LastName\": vm.last_name,\r\n\t\t\t\"PhoneNumber\": vm.mobile,\r\n\t\t\t\"EmailId\": vm.email,\r\n\t\t\t\"Password\": vm.password,\r\n\t\t\t\"Vertical\": \"\",\r\n\t\t\t\"SkillBasedCommissions\": [],\r\n\t\t\t\"AccountType\": 1,\r\n\t\t\t\"Skills\": vm.skills,\r\n\t\t\t\"NoOfTickets\": \"30\",\r\n\t\t\t\"Month\": \"1\",\r\n\t\t\t\"GracePeriod\": \"1\"\r\n\t\t}\r\n\t\tif (vm.signup_form.$valid) {\r\n\t\t\tSignupService.createAccount(accountPlanData).then(function (resp) {\r\n\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\tvm.showSuccess(\"Account Creation Status\", \"Account Created Successfully\");\r\n\t\t\t\t\t$state.go(\"Login\", {\r\n\t\t\t\t\t\treload: true\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.showFailure(\"Account Creation Failed\", \"Account not created. Please try again later.\")\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tvm.selectVertical = function () {\r\n\t\tSignupService.getVertical().then(function (resp) {\r\n\t\t\tvm.verticalList = resp.data;\r\n\t\t})\r\n\t}\r\n\tvm.selectVertical();\r\n\r\n\r\n\t// vm.selectSkills = function (verticalName) {\r\n\t// \tif (verticalName != '') {\r\n\t// \t\tvm.skillList = '';\r\n\t// \t\tangular.forEach(vm.verticalList, function (d) {\r\n\t// \t\t\tif (d.Category == verticalName) {\r\n\t// \t\t\t\tvm.skillList = d.ListSkillSet;\r\n\t// \t\t\t\treturn;\r\n\t// \t\t\t}\r\n\t// \t\t})\r\n\t// \t}\r\n\t// }\r\n\r\n\r\n\tvm.selectSkills = function (verticalName) {\r\n\t\t// Preserve previously selected skills\r\n\t\tvar previouslySelectedSkills = angular.copy(vm.skills) || [];\r\n\t\r\n\t\tif (verticalName) {\r\n\t\t\t// Find the selected vertical\r\n\t\t\tvar vertical = vm.verticalList.find(function (d) {\r\n\t\t\t\treturn d.Category === verticalName;\r\n\t\t\t});\r\n\t\r\n\t\t\tif (vertical) {\r\n\t\t\t\tvar newSkillListFull = vertical.ListSkillSet || [];\r\n\t\t\t\tvar newSkillList = newSkillListFull.map(function (d) {\r\n\t\t\t\t\treturn d.SkillName;\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\tvar combinedSkills = previouslySelectedSkills.concat(newSkillList);\r\n\t\r\n\t\t\t\t// Remove duplicates from combined skills\r\n\t\t\t\tvm.skillList = [];\r\n\t\t\t\tangular.forEach(combinedSkills, function (skill) {\r\n\t\t\t\t\tif (vm.skillList.indexOf(skill) === -1) {\r\n\t\t\t\t\t\tvm.skillList.push(skill);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\t// Reapply previously selected skills that are still in the new skill list\r\n\t\t\t\tvm.skills = previouslySelectedSkills.filter(function (selectedSkill) {\r\n\t\t\t\t\treturn vm.skillList.indexOf(selectedSkill) !== -1;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvm.skillList = [];\r\n\t\t\tvm.skills = previouslySelectedSkills;\r\n\t\t}\r\n\t};\r\n\t\r\n\t\r\n\r\n\t\r\n\r\n});\nangular.module('inspinia').service('ShiftLeaveService', function (ApiURL, SchedulingAPI, StaffSchedulingAPI, $window, $http) {\r\n\r\n var vm = this;\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n this.LeaveShift = function (loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/LeaveShift/GetAll';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.CreateStaffShift = function (data, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/CreateStaffShift';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetEligibleUserForShift = function (shiftId, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/GetEligibleUserForShift?ShiftId=' + shiftId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.PublishShiftToUser = function (shiftId, userId, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/PublishShiftToUser?ShiftId=' + shiftId + '&UserId=' + userId;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.ApproveLeave = function (leaveId,approveComment,shiftPublishToUser, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/LeaveShift/Approve?LeaveId=' + leaveId + '&ApproveComment=' + approveComment + '&ShiftPublishToUser=' + shiftPublishToUser;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.RejectLeave = function (leaveId, rejectComment, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/LeaveShift/Reject?LeaveId=' + leaveId + '&RejectComment=' + rejectComment;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ShiftLeaveController', function (EmployeeShiftMapService, ShiftLeaveService, toaster, $filter, $compile, $q, $state, $localStorage, $scope, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.$parent.$parent.main.implementSelectItems('scheduleExceptionListNew', this);\r\n\t\t// $scope.$parent.$parent.main.implementSelectItems('InVoiceHistoryData', this);\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength = 0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.RejectComment = \"\";\r\n\t\tvm.ApproveComment = \"\";\r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId = '';\r\n\t\tvm.ShiftStatusList = [\"Created\", \"Published\", \"Accepted\", \"NotStarted\", \"Inprogress\", \"Completed\"];\r\n\t\tvar startDate = moment().subtract(0, 'day').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\tvm.bookingdates = { startDate: moment().subtract(0, 'day'), endDate: moment() };\r\n\t\tvm.bookingRanges = {\r\n\t\t'Today': [moment(), moment()],\r\n\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t'This month': [moment().startOf('month'), moment().endOf('month')],\r\n\t\t'Till now': [moment().subtract(5, 'years'), moment()]\r\n\t\t};\r\n\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.LeaveShift();\r\n\t\t };\r\n\r\n\r\n\t\tvm.AddShiftModal = function () {\r\n\t\t\tvm.GetAllLocations();\r\n\t\t\tvm.shiftModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'CreateShift.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.closeShiftModal = function () {\r\n\t\t\tvm.shiftModal.close();\r\n\t\t}\r\n\r\n\t\tvm.CreateStaffShift = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"LocationId\": vm.SelectedLocation.LocationId,\r\n\t\t\t\t\"DepartmentId\": vm.SelectedDepartment.DepartmentId,\r\n\t\t\t\t\"StartDate\": moment(vm.startDate).format(\"YYYY-MM-DD\"),\r\n\t\t\t\t\"EndDate\": moment(vm.endDate).format(\"YYYY-MM-DD\")\r\n\t\t\t}\r\n\t\t\tShiftLeaveService.CreateStaffShift(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 201 && resp) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", 'Shifts created successfully');\r\n\t\t\t\t\tvm.closeShiftModal();\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetAllShiftsForDate();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t}\r\n\r\n\t\tvm.PublishShiftToUser = function (userId) {\r\n\t\t\tShiftLeaveService.PublishShiftToUser(vm.shiftId, userId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 201 && resp) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", 'Shifts created successfully');\r\n\t\t\t\t\tvm.closeShiftModal();\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetAllShiftsForDate();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t}\r\n\r\n\t\tvm.GetAllLeaveShift = function () {\r\n\t\t\tShiftLeaveService.LeaveShift( loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.allLeavesList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllLeaveShift();\r\n\t\t\r\n\r\n\t\tvm.GetEligibleUserForShift = function (shiftId) {\r\n\t\t\tvm.shiftId = shiftId;\r\n\t\t\tShiftLeaveService.GetEligibleUserForShift(shiftId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.eligibleUsersList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\t\tvm.ApproveLeave = function () {\r\n\t\t\tvm.disableBookingButton = true;\r\n\t\t\tShiftLeaveService.ApproveLeave(vm.leaveId,vm.ApproveComment, vm.PublistUserId, loggedinUser, token).then(function (resp) {\r\n\t\t\t if (resp.status == 202 && resp) {\r\n\t\t\t\tvm.disableBookingButton = false;\r\n\t\t\t\tvm.showSuccess(\"Success\", 'Leave approved successfully');\r\n\t\t\t\tvm.closeapprovemodal();\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t vm.GetAllLeaveShift();\r\n\t\t\t\t}, 2000);\r\n\t\t\t }\r\n\t\t\t else {\r\n\t\t\t\tvm.disableBookingButton = false;\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t }\r\n\t\t\t})\r\n\t \r\n\t\t }\r\n\t \r\n\t\t vm.RejectModal = function (item) {\r\n\t\t\tvm.leaveId = item;\r\n\t\t\tvm.RejectShareModal = $uibModal.open({\r\n\t\t\t templateUrl: 'rejectleavemodal.html',\r\n\t\t\t backdrop: 'static',\r\n\t\t\t size: 'lg',\r\n\t\t\t scope: $scope\r\n\t\t\t});\r\n\t\t }\r\n\t\t vm.closerejectmodal = function () {\r\n\t\t\tvm.disableBookingButton = false;\r\n\t\t\tvm.RejectComment = \"\";\r\n\t\t\tvm.RejectShareModal.close();\r\n\t\t }\r\n\r\n\r\n\t\t vm.GetAllShiftsForDate = function () {\r\n\t\t\t data = {\r\n\t\t\t\t \"ShiftFromDate\": moment(vm.leaveDetail.LeaveDate).format(\"YYYY-MM-DD\"),\r\n\t\t\t\t \"ShiftToDate\": moment(vm.leaveDetail.LeaveDate).format(\"YYYY-MM-DD\"),\r\n\t\t\t\t \"Status\": \"\",\r\n\t\t\t\t \"DepartmentId\": \"\",\r\n\t\t\t\t \"LocationId\": \"\",\r\n\t\t\t\t \"UserId\": vm.leaveDetail.UserId,\r\n\t\t\t\t \"ShiftType\": \"\",\r\n\t\t\t\t \"OrderBy\": \"ShiftForDate\",\r\n\t\t\t\t \"SortType\": \"desc\",\r\n\t\t\t\t \"PageIndex\": 1,\r\n\t\t\t\t \"PageSize\": 10\r\n\t\t\t }\r\n\t\t\tEmployeeShiftMapService.GetAllShiftsForDate(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t if (resp && resp.data) {\r\n\t\t\t\tvm.TotalShift = resp.data.TotalCount;\r\n\t\t\t\tvm.ShiftList = resp.data.objStaffShiftModelResList;\r\n\t\t\t\tif(vm.TotalShift > 0){\r\n\t\t\t\t\tvm.GetEligibleUserForShift(vm.ShiftList[0].ShiftId);\r\n\t\t\t\t}\r\n\t\t\t }\r\n\t\t\t vm.ApproveShareModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'approveleavemodal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t });\r\n\t\t\t})\r\n\t\t }\r\n\r\n\t\t vm.ApprovalModal = function (item) {\r\n\t\t\tvm.leaveDetail = item;\r\n\t\t\tvm.leaveId = vm.leaveDetail.LeaveId;\r\n\t\t\tvm.GetAllShiftsForDate();\r\n\t\t }\r\n\t\t vm.closeapprovemodal = function () {\r\n\t\t\tvm.disableBookingButton = false;\r\n\t\t\tvm.ApproveComment = \"\";\r\n\t\t\tvm.PublistUserId = \"\";\r\n\t\t\tvm.ApproveShareModal.close();\r\n\t\t }\r\n\t \r\n\t \r\n\t\t vm.RejectLeave = function () {\r\n\t\t\tvm.disableBookingButton = true;\r\n\t\t\tShiftLeaveService.RejectLeave(vm.leaveId, vm.RejectComment, loggedinUser, token).then(function (resp) {\r\n\t\t\t if (resp.status == 202 && resp) {\r\n\t\t\t\tvm.showSuccess(\"Success\", 'Leave rejected successfully');\r\n\t\t\t\tvm.closerejectmodal();\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t vm.GetAllLeaveShift();\r\n\t\t\t\t}, 2000);\r\n\t\t\t }\r\n\t\t\t else {\r\n\t\t\t\tvm.disableBookingButton = false;\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t }\r\n\t\t\t})\r\n\t \r\n\t\t }\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('shiftManagementService', function (ApiURL,PublicApiURL, StaffSchedulingAPI, SchedulingAPI, $window, $http) {\r\n\r\n var vm = this;\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n\r\n //https://perf.mymobiforce.com/schedulingapi/api/AutoSchedulerException/GetSchedulerExceptionForServerWithDynPaging\r\n this.getAllJobForExceptionList = function (loggedinUser, token, userFormData) {\r\n var url = SchedulingAPI + \"/api/AutoSchedulerException/GetSchedulerExceptionForServerWithDynPaging\";\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.getAllAccounts = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n\r\n }\r\n });\r\n }\r\n\r\n this.CreateNewDepartment = function (departmentName, departmentDescription, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffDepartmentMaster/CreateNewDepartment?DepartmentName=' + departmentName + '&DepartmentDescription=' + departmentDescription;\r\n return $http.post(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.UpdateDepartmentName = function (departmentId, departmentName, departmentDescription, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffDepartmentMaster/UpdateDepartmentName?DepartmentId=' + departmentId + '&DepartmentName=' + departmentName + '&DepartmentDescription=' + departmentDescription;;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetAllDepartment = function (loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffDepartmentMaster/GetAllDepartment';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.AddNewLocation = function (data, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffLocationMaster/AddNewLocation';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.AddDepartmentsToLocation = function (locationId, data, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffLocationMaster/AddDepartmentsToLocation?LocationId=' + locationId;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.UpdateLocationName = function (locationId, locationName, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffLocationMaster/UpdateLocationName?LocationId=' + locationId + '&LocationName=' + locationName;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetAllDepartmentsForLocation = function (locationId, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffLocationMaster/GetAllDepartmentsForLocation?LocationId=' + locationId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetAllLocations = function (loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffLocationMaster/GetAllLocations';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetLocationswithDepartmentMapping = function (loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffLocationMaster/GetLocationswithDepartmentMapping';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.CreateNewDepartmentShift = function (data, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/DepartmentShift/CreateNewDepartmentShift';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.getCountry = function (loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Address/GetCountry?userId=' + loggedInUserId;\r\n return $http.get(url, {\r\n headers:{'Token':token}\r\n });\r\n }\r\n\r\n this.UpdateDepartmentShiftConfig = function (data, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/DepartmentShift/UpdateDepartmentShiftConfig';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetAllShiftConfigurationForDepartment = function (departmentId, locationId, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/DepartmentShift/GetAllShiftConfigurationForDepartment?DepartmentId=' + departmentId + '&LocationId=' + locationId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('shiftManagementController', function (shiftManagementService, TeamFormCreationService, ReferService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.$parent.$parent.main.implementSelectItems('scheduleExceptionListNew', this);\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength = 0;\r\n\t\tvm.departmentName = \"\";\r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId = '';\r\n\t\tvm.departmemtId = \"\";\r\n\t\tvm.edit = true;\r\n\t\tvm.dataFilters = [];\r\n\t\tvm.dataFiltersList = [];\r\n\t\tvm.locationId = \"\";\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\t\tvm.activateTab = function (tab) {\r\n\t\t\tvm.activeTab = tab;\r\n\t\t\tvm.headingName = tab;\r\n\t\t};\r\n\t\t$scope.clickedDiv = '';\r\n\r\n\t\tvm.activateTab('Department');\r\n\r\n\t\t$scope.changeBackgroundColor = function (event) {\r\n\t\t\tif ($scope.clickedDiv) {\r\n\t\t\t\t$scope.clickedDiv.css('background-color', '#f5f5f5');\r\n\t\t\t\t$scope.clickedDiv.css('color', 'black');\r\n\t\t\t\t// $scope.clickedDiv.find('span').css('color', '#000000'); // Reset the previous clicked div\r\n\t\t\t}\r\n\r\n\t\t\tvar divElement = angular.element(event.target);\r\n\t\t\tdivElement.css('background-color', 'blue' );\r\n\t\t\tdivElement.css('color', 'white' );\r\n\t\t\t// divElement.find('div').css('color', 'white');\r\n\t\t\t$scope.clickedDiv = divElement; // Store the current clicked div\r\n\t\t};\r\n\t\t\r\n\t\t$timeout(function() {\r\n\t\t\tvar firstDivElement = angular.element(document.querySelector('.side-rowtab'));\r\n\t\t\tfirstDivElement.triggerHandler('click');\r\n\t\t});\r\n\t\tfunction getAllStates() {\r\n\t\t\tvar defered = $q.defer();\r\n\t\t\tReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tdefered.resolve(resp);\r\n\t\t\t}, function (error) {\r\n\t\t\t\tdefered.reject(error);\r\n\t\t\t});\r\n\t\t\treturn defered.promise;\r\n\t\t}\r\n\t\t\r\n\t\tvar allStatePromise = getAllStates(loggedinUser);\r\n\t\tallStatePromise.then(function (resp) {\r\n\t\t\tvm.StateList = resp.data;\r\n\r\n\t\t});\r\n\t\tfunction getallCities(state) {\r\n\t\t\tReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t\t\tvm.CityList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.selectedState = function (state) {\r\n\t\t\tgetallCities(state);\r\n\t\t}\r\n\r\n\t\tvm.selectedCountry = function (state) {\r\n\t\t\tgetallCities(state);\r\n\t\t}\r\n\r\n\r\n\t\t$scope.isEditable = false;\r\n\t\t$scope.toggleEdit = function () {\r\n\t\t\t$scope.isEditable = true;\r\n\t\t}\r\n\t\t$scope.toggleEditNew = function () {\r\n\t\t\t$scope.isEditable = !$scope.isEditable; // Toggle the value of isEditable\r\n\t\t};\r\n\t\t$scope.isEditdepartment = false;\r\n\t\t$scope.toggleEditLocation = function () {\r\n\t\t\t$scope.isEditdepartment = true;\r\n\t\t}\r\n\t\t$scope.toggleEditNewLocation = function () {\r\n\t\t\t$scope.isEditdepartment = !$scope.isEditdepartment; // Toggle the value of isEditable\r\n\t\t};\r\n\t\tvm.AddDepartmentModal = function () {\r\n\t\t\tvm.departmentName = \"\";\r\n\t\t\tvm.departmentDescription = \"\";\r\n\t\t\tvm.departmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'DepartmentModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.closeDepartmentModal = function () {\r\n\t\t\tvm.departmentModal.close();\r\n\t\t\tvm.departmentName = \"\";\r\n\t\t\tvm.departmentDescription = \"\";\r\n\t\t}\r\n\t\tvm.AddLocationModal = function () {\r\n\t\t\tvm.locationName = \"\";\r\n vm.locationState = \"\";\r\n vm.locationCity = \"\";\r\n\t\t\tvm.locationModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'LocationModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.closeLocationModal = function () {\r\n\t\t\tvm.locationModal.close();\r\n\t\t\tvm.locationName = \"\";\r\n vm.locationState = \"\";\r\n vm.locationCity = \"\";\r\n\t\t}\r\n\r\n\t\tvm.OpenUpdateShiftModal = function (shift) {\r\n\t\t\tvm.shiftData = shift;\r\n\t\t\tvm.showAction = true;\r\n\t\t\t// vm.dataFilters = vm.shiftData.Shiftcapacity;\r\n\t\t\tangular.forEach(vm.shiftData.Shiftcapacity, function (d) {\r\n\t\t\t\thwData = {\r\n\t\t\t\t\tRole: d.Role,\r\n\t\t\t\t\tQuantity: d.Quantity,\r\n\t\t\t\t\tedit: false,\r\n\t\t\t\t}\r\n\t\t\t\tvm.dataFilters.push(hwData);\r\n\t\t\t});\r\n\t\t\tvm.GetAllLocations();\r\n\t\t\tvm.updateshiftModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'UpdateShiftModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeUpdateShiftModal = function () {\r\n\t\t\tvm.updateshiftModal.close();\r\n\t\t\tvm.SelectedLocation = \"\";\r\n\t\t\tvm.SelectedDepartment = \"\";\r\n\t\t\tvm.ShiftName = \"\";\r\n\t\t\tvm.ShiftStartTime = \"\";\r\n\t\t\tvm.ShiftEndTime = \"\";\r\n\t\t\tvm.IsShiftMarginEnabled = true;\r\n\t\t\tvm.MinutesBeforeShiftStart = 0;\r\n\t\t\tvm.MinutesAfterShiftEnd = 0;\r\n\t\t\tvm.OverTimeAllowanceEnabled = true;\r\n\t\t\tvm.OverTimeHourlyRate = 0;\r\n\t\t\tvm.LunchBreakDuration = 0;\r\n\t\t\tvm.ExperniceStaffRequried = 0;\r\n\t\t\tvm.NormalStaffRequired = 0;\r\n\t\t\tvm.dataFiltersList = [];\r\n\t\t\tvm.dataFilters = [];\r\n\t\t}\r\n\r\n\r\n\t\tvm.AddShiftModal = function () {\r\n\t\t\tvm.GetAllLocations();\r\n\t\t\tvm.shiftModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ShiftModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.closeShiftModal = function () {\r\n\t\t\tvm.shiftModal.close();\r\n\t\t\tvm.SelectedLocation = \"\";\r\n\t\t\tvm.SelectedDepartment = \"\";\r\n\t\t\tvm.ShiftName = \"\";\r\n\t\t\tvm.ShiftStartTime = \"\";\r\n\t\t\tvm.ShiftEndTime = \"\";\r\n\t\t\tvm.IsShiftMarginEnabled = true;\r\n\t\t\tvm.MinutesBeforeShiftStart = 0;\r\n\t\t\tvm.MinutesAfterShiftEnd = 0;\r\n\t\t\tvm.OverTimeAllowanceEnabled = true;\r\n\t\t\tvm.OverTimeHourlyRate = 0;\r\n\t\t\tvm.LunchBreakDuration = 0;\r\n\t\t\tvm.ExperniceStaffRequried = 0;\r\n\t\t\tvm.NormalStaffRequired = 0;\r\n\t\t\tvm.dataFilters = [];\r\n\t\t}\r\n\r\n\t\tvm.EditMapping = function (locationDep) {\r\n\t\t\tvm.CurrentMappingData = locationDep;\r\n\t\t\tvm.SelectedLocation = locationDep.LocationId;\r\n\t\t\tvm.DepartmentListToAdd = locationDep.DepartmentDetailList;\r\n\t\t\tvm.GetAllLocations();\r\n\t\t\tvm.GetAllDepartment();\r\n\t\t\tvm.EditmapModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'EditMappingModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.closeEditMapModal = function () {\r\n\t\t\tvm.EditmapModal.close();\r\n\t\t}\r\n\r\n\t\tvm.MapModal = function () {\r\n\t\t\tvm.SelectedLocation = \"\";\r\n\t\t\tvm.GetAllLocations();\r\n\t\t\tvm.GetAllDepartment();\r\n\t\t\tvm.mapModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'MappingModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.closeMapModal = function () {\r\n\t\t\tvm.mapModal.close();\r\n\t\t}\r\n\t\tvm.AssignShiftModal = function () {\r\n\t\t\tvm.assignModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'AssignShiftModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.closeAssignshiftModal = function () {\r\n\t\t\tvm.assignModal.close();\r\n\t\t}\r\n\r\n\t\tvm.CreateNewDepartment = function () {\r\n\t\t\tvm.adddepartment_form.submitted = true;\r\n\t\t\tif (vm.adddepartment_form.$valid) {\r\n\t\t\tif (vm.departmentName) {\r\n\t\t\t\tshiftManagementService.CreateNewDepartment(vm.departmentName, vm.departmentDescription, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201 && resp) {\r\n\t\t\t\t\t\tvm.listofActiveUsers = resp.data;\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t\tvm.closeDepartmentModal();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetAllDepartment();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Department Name cannot be empty.\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\tvm.getCountry = function () {\r\n\t\t\tshiftManagementService.getCountry(loggedinUser, token).then(function (resp) {\r\n\t\t\t if (resp.status == 200 && resp.data && resp.data.values.length > 0) {\r\n\t\t\t\tvm.Country = resp.data.values;\r\n\t\t\t\t// vm.getStates(vm.Country[0]);\r\n\t\t\t }\r\n\t\t\t})\r\n\t\t }\r\n\r\n\t\t vm.getCountry();\r\n\r\n\t\tvm.AddNewLocation = function () {\r\n\t\t\tvm.addlocation_form.submitted = true;\r\n\t\t\tif (vm.addlocation_form.$valid) {\r\n\t\t\tif (vm.locationName) {\r\n\t\t\t\tvar locationDate = {\r\n\t\t\t\t\t\"LocationName\": vm.locationName,\r\n\t\t\t\t\t\"City\": vm.locationCity,\r\n\t\t\t\t\t\"State\": vm.locationState\r\n\t\t\t\t}\r\n\t\t\t\tshiftManagementService.AddNewLocation(locationDate, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201 && resp) {\r\n\t\t\t\t\t\tvm.listofActiveUsers = resp.data;\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t\tvm.closeLocationModal();\r\n\t\t\t\t\t\tvm.locationName = \"\";\r\n\t\t\t\t\t\tvm.locationCity = \"\";\r\n\t\t\t\t\t\tvm.locationState = \"\";\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetAllLocations();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Department Name cannot be empty.\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tvm.addMoreFilter = function () {\r\n\t\tvm.showEditList = true;\r\n\t\tvm.showAction = false;\r\n\t};\r\n\tvm.addNewFilter = function (filter) {\r\n\t\tvm.dataFilters.push({\r\n\t\t\t\"Quantity\": filter.Quantity,\r\n\t\t\t\"Role\": filter.role,\r\n\t\t});\r\n\t\tvm.showEditList = false;\r\n\t\tvm.showAction = true;\r\n\t}; \r\n\tgetAllRole()\r\n\tfunction getAllRole() {\r\n\t\t TeamFormCreationService.getAllRoleByUserId(loggedinUser, token).then(function (resp) {\r\n\t\t\tif(resp.status == 200){\r\n\t\t\t if(resp.data && resp.data.length>0){\r\n\t\t\t vm.RolesList = resp.data;\r\n\t\t\t}\r\n\t\t\t}\r\n\t\t })\r\n\t\t\r\n\t }\r\n\t\r\n\t \r\n\t$scope.deleteDataFilter = function (filter) {\r\n\t\tconst index = vm.dataFilters.indexOf(filter);\r\n\t\tif (index !== -1) {\r\n\t\t\tvm.dataFilters.splice(index, 1);\r\n\t\t}\r\n\t};\r\n\r\n\t\tvm.AddDepartmentsToLocation = function () {\r\n\t\t\tvm.stockAssignation_form.submitted = true;\r\n\t\t\tif (vm.stockAssignation_form.$valid) {\r\n\t\t\t\tvar data = vm.DepartmentListToAdd;\r\n\t\t\t\tshiftManagementService.AddDepartmentsToLocation(vm.SelectedLocation, data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201 && resp) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t\t$timeout(function () {\r\n vm.GetLocationswithDepartmentMapping();\r\n }, 2000);\r\n\t\t\t\t\t\tif(vm.mapModal){\r\n\t\t\t\t\t\t\tvm.closeMapModal();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tvm.closeEditMapModal();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvm.SelectedLocation = [];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t}\r\n\t}\r\n\r\n\t\tvm.CreateNewDepartmentShift = function () {\r\n\t\t\tvm.addshift_form.submitted = true;\r\n\t\t\tif (vm.addshift_form.$valid) {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"LocationId\": vm.SelectedLocation.LocationId,\r\n\t\t\t\t\"LocationName\": vm.SelectedLocation.LocationName,\r\n\t\t\t\t\"DepartmentId\": vm.SelectedDepartment.DepartmentId,\r\n\t\t\t\t\"DepartmentName\": vm.SelectedDepartment.DepartmentName,\r\n\t\t\t\t\"ShiftName\": vm.ShiftName,\r\n\t\t\t\t\"ShiftStartTime\": vm.ShiftStartTime,\r\n\t\t\t\t\"ShiftEndTime\": vm.ShiftEndTime,\r\n\t\t\t\t\"IsShiftMarginEnabled\": vm.IsShiftMarginEnabled,\r\n\t\t\t\t\"MinutesBeforeShiftStart\": vm.MinutesBeforeShiftStart,\r\n\t\t\t\t\"MinutesAfterShiftEnd\": vm.MinutesAfterShiftEnd,\r\n\t\t\t\t\"OverTimeAllowanceEnabled\": vm.OverTimeAllowanceEnabled,\r\n\t\t\t\t\"OverTimeHourlyRate\": vm.OverTimeHourlyRate,\r\n\t\t\t\t\"IsTeaBreakEnable\": false,\r\n\t\t\t\t\"TeaBreakDuration\": \"\",\r\n\t\t\t\t\"ConsumedTeaBreakDuration\": 0,\r\n\t\t\t\t\"IsLunchBreakEnable\": true,\r\n\t\t\t\t\"LunchBreakDuration\": vm.LunchBreakDuration,\r\n\t\t\t\t\"ConsumedLunchBreakDuration\": 0,\r\n\t\t\t\t\"IsLunchBreakFlexi\": true,\r\n\t\t\t\t\"LunchStartTime\": \"\",\r\n\t\t\t\t\"LunchEndTime\": \"\",\r\n\t\t\t\t\"IsTeaBreakFlexi\": true,\r\n\t\t\t\t\"TeaBreakStartTime\": \"\",\r\n\t\t\t\t\"TeaBreakEndTime\": \"\",\r\n\t\t\t\t\"ExperniceStaffRequried\": vm.ExperniceStaffRequried,\r\n\t\t\t\t\"NormalStaffRequired\": vm.NormalStaffRequired,\r\n\t\t\t\t\"Shiftcapacity\" : vm.dataFilters\r\n\t\t\t}\r\n\t\t\tshiftManagementService.CreateNewDepartmentShift(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 201 && resp) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\tvm.closeShiftModal();\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetAllShiftConfigurationForDepartment();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\t\tvm.UpdateDepartmentShiftConfig = function () {\r\n\t\t\tvm.updateshift_form.submitted = true;\r\n\t\t\tif(vm.dataFilters){\r\n\t\t\t\tangular.forEach(vm.dataFilters, function (d) {\r\n\t\t\t\t\thwData = {\r\n\t\t\t\t\t\tRole: d.Role,\r\n\t\t\t\t\t\tQuantity: d.Quantity,\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.dataFiltersList.push(hwData);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tif (vm.updateshift_form.$valid) {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"MasterShiftId\" : vm.shiftData.MasterShiftId,\r\n\t\t\t\t\"LocationId\": vm.shiftData.LocationId,\r\n\t\t\t\t\"LocationName\": vm.shiftData.LocationName,\r\n\t\t\t\t\"DepartmentId\": vm.shiftData.DepartmentId,\r\n\t\t\t\t\"DepartmentName\": vm.shiftData.DepartmentName,\r\n\t\t\t\t\"ShiftName\": vm.shiftData.ShiftName,\r\n\t\t\t\t\"ShiftStartTime\": vm.shiftData.ShiftStartTime,\r\n\t\t\t\t\"ShiftEndTime\": vm.shiftData.ShiftEndTime,\r\n\t\t\t\t\"IsShiftMarginEnabled\": vm.shiftData.IsShiftMarginEnabled,\r\n\t\t\t\t\"MinutesBeforeShiftStart\": vm.shiftData.MinutesBeforeShiftStart,\r\n\t\t\t\t\"MinutesAfterShiftEnd\": vm.shiftData.MinutesAfterShiftEnd,\r\n\t\t\t\t\"OverTimeAllowanceEnabled\": vm.shiftData.OverTimeAllowanceEnabled,\r\n\t\t\t\t\"OverTimeHourlyRate\": vm.shiftData.OverTimeHourlyRate,\r\n\t\t\t\t\"IsTeaBreakEnable\": false,\r\n\t\t\t\t\"TeaBreakDuration\": \"\",\r\n\t\t\t\t\"ConsumedTeaBreakDuration\": 0,\r\n\t\t\t\t\"IsLunchBreakEnable\": true,\r\n\t\t\t\t\"LunchBreakDuration\": vm.shiftData.LunchBreakDuration,\r\n\t\t\t\t\"ConsumedLunchBreakDuration\": 0,\r\n\t\t\t\t\"IsLunchBreakFlexi\": true,\r\n\t\t\t\t\"LunchStartTime\": \"\",\r\n\t\t\t\t\"LunchEndTime\": \"\",\r\n\t\t\t\t\"IsTeaBreakFlexi\": true,\r\n\t\t\t\t\"TeaBreakStartTime\": \"\",\r\n\t\t\t\t\"TeaBreakEndTime\": \"\",\r\n\t\t\t\t\"ExperniceStaffRequried\": vm.shiftData.ExperniceStaffRequried,\r\n\t\t\t\t\"NormalStaffRequired\": vm.shiftData.NormalStaffRequired,\r\n\t\t\t\t\"shiftcapacity\" : vm.dataFiltersList\r\n\t\t\t}\r\n\t\t\tshiftManagementService.UpdateDepartmentShiftConfig(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 201 && resp) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\tvm.closeUpdateShiftModal();\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetAllShiftConfigurationForDepartment();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\t\tvm.UpdateDepartmentName = function (departmentId) {\r\n\t\t\tshiftManagementService.UpdateDepartmentName(departmentId, vm.updatedDepartmentName, vm.updatedDepartmentDescription, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 201 && resp) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetAllDepartment();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.UpdateLocationName = function (locationId) {\r\n\t\t\tshiftManagementService.UpdateLocationName(locationId, vm.locationName, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 201 && resp) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\tvm.closeLocationModal();\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetAllLocations();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.EditDepartment = function (department) {\r\n\t\t\tvm.updatedDepartmentName = department.DepartmentName;\r\n\t\t\tvm.updatedDepartmentDescription = department.DepartmentDescription;\r\n\t\t}\r\n\r\n\t\tvm.EditLocation = function (location) {\r\n\t\t\tvm.locationName = location.LocationName;\r\n\t\t}\r\n\r\n\t\tvm.GetAllDepartment = function () {\r\n\t\t\t$scope.isEditdepartment = false;\r\n\t\t\tshiftManagementService.GetAllDepartment(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.departmentList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllDepartment();\r\n\r\n\t\tvm.GetAllDepartmentsForLocation = function (locationId) {\r\n\t\t\tshiftManagementService.GetAllDepartmentsForLocation(locationId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.departmentListByLocation = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllShiftConfigurationForDepartment = function () {\r\n\t\t\tif (!vm.departmemtId) {\r\n\t\t\t\tvm.departmemtId = \"\";\r\n\t\t\t}\r\n\t\t\tif (!vm.locationId) {\r\n\t\t\t\tvm.locationId = \"\";\r\n\t\t\t}\r\n\t\t\tshiftManagementService.GetAllShiftConfigurationForDepartment(vm.departmemtId, vm.locationId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.AllShiftConfigList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllShiftConfigurationByID = function (departmemtId, locationId) {\r\n\t\t\tshiftManagementService.GetAllShiftConfigurationForDepartment(departmemtId, locationId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.ShiftConfigData = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllLocations = function () {\r\n\t\t\tshiftManagementService.GetAllLocations(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.locationsList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllLocations();\r\n\r\n\t\tvm.GetLocationswithDepartmentMapping = function () {\r\n\t\t\tshiftManagementService.GetLocationswithDepartmentMapping(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.locationsWithDepList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('ServicefomeditService', function (ApiURL, LocationURL,PublicApiURL, $log, $http,$localStorage) {\r\n var url = ApiURL + '/api/User';\r\n\r\n //state api https://product.mymobiforce.com/publicapi/api/Location/GetAllStates?userId=F00000000000&country=INDIA\r\n this.getState = function (loggedInUserId,token,region) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n }\r\n });\r\n }\r\n \r\n this.CreateUser = function (userFormData, loggedinUser, token) {\r\n var url = ApiURL + '/api/User?reqUserId='+loggedinUser;\r\n return $http.post(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser \r\n }\r\n });\r\n }\r\n\r\n this.getAllRole = function (token) {\r\n var url = ApiURL + '/api/role';\r\n return $http.get(url, {\r\n 'Token': token, 'UserId':loggedinUser\r\n });\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetRegion?userId=U370000000001\r\n this.GetRegion = function(loggedInUserId, token){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n this.GetTelecomCircle = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetTelecomCircles?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetSubRegion?userId=U370000000001®ion=North\r\n this.GetSubRegion = function(loggedInUserId, token, region){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+region;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetCity?userId=U360000000001&subregion=noida\r\n this.GetCityBySubRegion = function(loggedInUserId, subRegion, token){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+subRegion;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n\r\n this.getAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n//https://db.mymobiforce.com/publicapi/api/Address/GetCountry?userId=U420000000001\r\nthis.getCountry = function (loggedinUser, token) {\r\n var url = PublicApiURL + '/api/Address/GetCountry?userId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\nthis.getAllState = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\nthis.getCities = function (loggedinUser,state,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\n this.getAllCity = function (loggedinUser,state, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n });\r\n }\r\n\r\n this.getAllPincode = function (city) {\r\n var url = LocationURL+'/api/Location/'+$localStorage.loggedinUser+'/'+city+'/GetPincodesByCity';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n //http://localhost:56749/api/User/Project%20Manager/GetReportingToUserByRole?reqUserId=saurabhgupta3371%40gmail.com\r\n\r\n this.GetReportingToUser = function(role, loggedinUser, token){\r\n var url = ApiURL + '/api/User/' + role + '/GetReportingToUserByRole?reqUserId=' + loggedinUser\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n // this.validateAllPincode = function (pin) {\r\n // var url = 'https://www.whizapi.com/api/v2/util/ui/in/indian-city-by-postal-code?project-app-key=pso222ywjvx996b93gd8wpp6&pin='+pin;\r\n // return $http.get(url, {\r\n // params: {}\r\n // });\r\n // }\r\n\r\n this.getAllReportingTo = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/User';\r\n return $http.get(url, {\r\n params: {userid: loggedinUser},\r\n headers: {'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n this.getUserData = function (userid, token) {\r\n return $http.get(url, {\r\n params: {UserId:userid},\r\n headers: {'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.updateUser = function (userFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/User/UpdateTeamUserDetails';\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser}\r\n });\r\n }\r\n //http://192.168.0.80:92/CoreAPI/api/Role/ByReqUserId?reqUserId=kanika.bansal%40innotiontech.com\r\n\r\n this.getAllRoleByUserId = function (userId, token) {\r\n var url = ApiURL + '/api/Role/ByReqUserId?reqUserId='+userId;\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':userId}\r\n \r\n });\r\n }\r\n\r\n this.uploadProfilePic = function(loggedinUser, data, token, success, failure){\r\n $http.post(ApiURL + '/api/UploadImage', data, { \r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n \r\nthis.getAllAccounts = function (loggedInUserId,token) { \r\n var url = ApiURL+ '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n \r\n }\r\n });\r\n}\r\n\r\n//Accounts API\r\nthis.getAllAccountsConfigured = function (loggedinUser,token) { \r\n var url = ApiURL+ '/api/CentralHelpDesk/GetAllAccountHDConfig';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n}\r\n\r\n\r\n//https://product.mymobiforce.com/coreAPI/api/User/GetTeamUserDetails?UserId=U00000000413\r\nthis.getFixedUserInfo = function (userId,loggedInUser, token) {\r\n var url = ApiURL + '/api/User/GetTeamUserDetails?UserId='+ userId ;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n// http://localhost:56749/api/TerritoryMappingUser/GetStateByAccountIdAndRole?AccountId=114&Role=Administrator\r\nthis.getTerritoryStates = function (loggedInUser, token,AccountId,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetStateByAccountIdAndRole?AccountId='+ AccountId+ '&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n//http://localhost:56749/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId=144&State=Uttar%20Pradesh&Role=Administrator\r\nthis.getTerritoryCity = function (loggedInUser, token,AccountId,state,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId='+ AccountId+'&State='+state+'&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n//https://upgrad.mymobiforce.com/coreapi/api/TerritoryMappingUser/GetPincodeByStateAndCityAndAccountIdAndRole?AccountId=144&State=Uttar%20Pradesh&City=Noida&Role=Administrator\r\nthis.getTerritoryPincodes = function (loggedInUser, token,AccountId,state,City,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetPincodeByStateAndCityAndAccountIdAndRole?AccountId='+ AccountId+'&State='+state+'&City='+City+'&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n \r\n});\r\n\nangular.module('inspinia').controller('ServicefomeditController', function (ProjectCreationService,ReferService, MainService, $state, $scope, $timeout, $stateParams, $filter, $log, $localStorage, TeamFormCreationService, TeamProfileService, toaster,ServicefomeditService, $q, ImageUrl) {\r\n var vm = this;\r\n vm.isDisabled = false;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if ($localStorage.accountConfig) {\r\n if ($localStorage.accountConfig) {\r\n vm.EnableRegion = $localStorage.accountConfig.EnableRegion;\r\n }\r\n }else{\r\n vm.EnableRegion = false;\r\n }\r\n\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n vm.loggedinUserRole = $localStorage.loggedInUser_Role;\r\n\r\n //$log.log('Role=',vm.loggedinUserRole);\r\n angular.element(document).ready(function () {\r\n angular.element('ul[side-navigation]').find('a[ui-sref=\"index.TeamMember\"]').parent().prop('class', 'active');\r\n // angular.element(\".chosen-select\").chosen();\r\n });\r\n\r\n ///Global variables goign to use for seeting page defaults.\r\n\r\n var userId_ForUpdate = $stateParams.userId;\r\n vm.saveAndNewFlag = false;\r\n vm.editMode = false;\r\n vm.address_option = 'Yes';\r\n vm.officeFormValidation = false;\r\n vm.isCollapsed = false;\r\n vm.isUserDetailCollapsed = false;\r\n vm.isOfficeUseCollapsed = true;\r\n vm.Role = '';\r\n vm.specialist = \"No\";\r\n vm.ReportingTo = '';\r\n vm.SubCity='';\r\n vm.allStates = [];\r\n //page binding models using\r\n vm.username = '';\r\n vm.gender = '';\r\n vm.email = '';\r\n vm.phone_number = '';\r\n vm.last_name = '';\r\n vm.birth_date = moment();\r\n vm.father_name = '';\r\n vm.alternate_number = '';\r\n vm.workArea = '';\r\n vm.AccountName = '';\r\n vm.company = '';\r\n vm.permanent_address_line1 = '';\r\n vm.permanent_state = '';\r\n vm.permanent_pincode = '';\r\n vm.permanent_address_line2 = '';\r\n vm.permanent_city = '';\r\n vm.present_address_line1 = '';\r\n vm.present_address_line2 = '';\r\n vm.present_state = '';\r\n vm.present_city = '';\r\n vm.present_pincode = '';\r\n vm.skill = '';\r\n vm.expertise = '';\r\n vm.reportinToList = '';\r\n vm.workAreas = [];\r\n vm.CHDAccounts = [];\r\n vm.RemainingCHDAccounts = [];\r\n vm.SelectedAccount={};\r\n vm.showAction = true;\r\n // vm.multiPincode = []\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.LocationMapping = vm.getAccountConfigSetting('LocationMapping');\r\n console.log('vertical',vm.VerticalName);\r\n vm.MainRegion = '';\r\n vm.SubRegion = '';\r\n var today = new Date();\r\n var date = today.getFullYear() - 18;\r\n var age = (today.getMonth() + 1 + \"/\" + today.getDate() + \"/\" + date).toString();\r\n\r\n vm.maxDOB = new Date(age);\r\n vm.maxDOBStr = vm.maxDOB.toDateString();\r\n age = Date.parse(age);\r\n $scope.MaxDate = moment(age);\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.showEditList = false;\r\n vm.showEditLists = false;\r\n vm.isShow=true;\r\n \r\n getAllRole();\r\n\r\n function getAllRole() {\r\n if (vm.loggedinUserRole == 'Administrator' || vm.loggedinUserRole == 'Project Manager' || vm.loggedinUserRole == 'Vendor Manager' || vm.loggedinUserRole == 'SuperAdministrator' || vm.loggedinUserRole == 'OnBoarding Manager' || vm.loggedinUserRole == 'Account Manager' || vm.loggedinUserRole == 'OnBoarding Supervisor' || vm.loggedinUserRole == 'Operation Manager' || vm.loggedinUserRole == 'Operation Supervisor' || vm.loggedinUserRole == 'Higher Management'\r\n || vm.loggedinUserRole == 'Dispatch Head' || vm.loggedinUserRole == 'Dispatch Manager' || vm.loggedinUserRole == 'Freelancer Dispatcher' || vm.loggedinUserRole == 'Dispatch Team Lead' || vm.loggedinUserRole == 'OnBoarding Team Lead') {\r\n TeamFormCreationService.getAllRoleByUserId(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.RolesList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.checkMaxDOB = function () {\r\n if (vm.birth_date && !vm.birth_date._isAMomentObject) {\r\n var splittedDOB = vm.birth_date.split(\"/\");\r\n vm.birth_date = moment(new Date((splittedDOB[1] + \"/\" + splittedDOB[0] + \"/\" + splittedDOB[2]).toString()));\r\n }\r\n\r\n return (vm.maxDOB - vm.birth_date) < 0;\r\n }\r\n\r\n vm.GetReportingToUser = function (role) {\r\n vm.reportinToList=\"\";\r\n TeamFormCreationService.GetReportingToUser(role, loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.reportinToList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.removeAddmoreEditList = function () { \r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n}\r\n \r\n vm.selectedCountry = null;\r\n //get country of user\r\n\r\n vm.getCountry = function () {\r\n TeamFormCreationService.getCountry(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.values.length>0){\r\n vm.countrylist = resp.data.values;\r\n vm.selectedCountry = vm.countrylist[0];\r\n vm.getAllState();\r\n //getAllCircles(loggedinUser);\r\n }\r\n } \r\n })\r\n }\r\n\r\n vm.getAllState = function () {\r\n TeamFormCreationService.getAllState(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.stateList = resp.data;\r\n if ($state.current.name == 'index.TeamEdit') {\r\n vm.teamEditMode = $state.current.name;\r\n vm.editMode = true;\r\n \r\n if(userId_ForUpdate.startsWith(\"U\") || userId_ForUpdate.startsWith(\"F\")){\r\n TeamFormCreationService.getFixedUserInfo(userId_ForUpdate, loggedinUser, token).then(function (resp) {\r\n var userData = resp.data;\r\n vm.AccountName = userData.ServiceAccountIds;\r\n vm.username = userData.FirstName;\r\n vm.gender = userData.Gender;\r\n vm.email = userData.PersonalEmail;\r\n vm.phone_number = parseInt(userData.ContactNumber);\r\n vm.last_name = userData.LastName;\r\n vm.birth_date = moment(userData.DOB);\r\n vm.father_name = userData.FatherName;\r\n if(userData.AlternativeContactNumber){\r\n vm.alternate_number = parseInt(userData.AlternativeContactNumber);\r\n } \r\n vm.specialist = userData.Specialist; \r\n vm.workArea = userData.Locations;\r\n //vm.company = userData.CompanyName;\r\n vm.userId = userData.UserId;\r\n vm.permanent_address_line1 = userData.PermanentAdd1;\r\n vm.permanent_address_line2 = userData.PermanentAdd2;\r\n vm.permanent_city = userData.PermanentCity.toUpperCase();\r\n vm.permanent_state = userData.PermanentState;\r\n vm.permanent_pincode = userData.PermanentPinCode;\r\n vm.present_address_line1 = userData.CurrentAdd1;\r\n vm.present_address_line2 = userData.CurrentAdd2;\r\n vm.present_city = userData.CurrentCity.toUpperCase();\r\n vm.present_state = userData.CurrentState;\r\n vm.present_pincode = userData.CurrentPinCode;\r\n vm.skill = userData.SkillSet;\r\n vm.expertise = userData.Expertise;\r\n vm.Role = userData.Role;\r\n vm.GetReportingToUser(vm.Role);\r\n vm.ReportingTo = userData.ReportingTo;\r\n vm.workAreas = userData.TerritoryConfigurations;\r\n // vm.profilePic = userData.Picture;\r\n vm.imageServices(userData.Picture);\r\n if (vm.EnableRegion) {\r\n vm.MainRegion = userData.Region;\r\n \r\n //GetSubRegionList\r\n vm.selectSubRegion(vm.MainRegion);\r\n vm.Region = userData.SubRegion;\r\n vm.selectCitySubRegion(vm.Region);\r\n vm.SubCity = userData.Locations;\r\n }else{\r\n vm.workArea = userData.Locations;\r\n }\r\n \r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n \r\n ///Get the workArea badges in edit mode \r\n var circleArray = [];\r\n if(vm.workArea){\r\n for (var pin = 0; pin < vm.workArea.length; pin++) {\r\n circleArray.push({\r\n workArea: vm.workArea\r\n });\r\n }\r\n }\r\n \r\n \r\n ///Check Present address is same as the Permanent Address.\r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n }, function () {\r\n \r\n });\r\n }\r\n else\r\n {\r\n TeamProfileService.getUserInfo(userId_ForUpdate, loggedinUser, token).then(function (resp) {\r\n var userData = resp.data;\r\n vm.username = userData.FirstName;\r\n vm.gender = userData.Gender;\r\n vm.email = userData.PersonalEmail;\r\n vm.phone_number = parseInt(userData.ContactNumber);\r\n vm.last_name = userData.LastName;\r\n vm.birth_date = moment(userData.DOB);\r\n vm.father_name = userData.FatherName;\r\n vm.alternate_number = parseInt(userData.AlternativeContactNumber);\r\n vm.specialist = userData.Specialist; \r\n //vm.workArea = userData.Locations;\r\n vm.company = userData.CompanyName;\r\n vm.userId = userData.UserId;\r\n vm.permanent_address_line1 = userData.PermanentAdd1;\r\n vm.permanent_address_line2 = userData.PermanentAdd2;\r\n vm.permanent_city = userData.PermanentCity.toUpperCase();\r\n vm.permanent_state = userData.PermanentState;\r\n vm.permanent_pincode = userData.PermanentPinCode;\r\n vm.present_address_line1 = userData.CurrentAdd1;\r\n vm.present_address_line2 = userData.CurrentAdd2;\r\n vm.present_city = userData.CurrentCity.toUpperCase();\r\n vm.present_state = userData.CurrentState;\r\n vm.present_pincode = userData.CurrentPinCode;\r\n vm.skill = userData.SkillSet;\r\n vm.expertise = userData.Expertise;\r\n vm.Role = userData.Role;\r\n vm.GetReportingToUser(vm.Role);\r\n vm.ReportingTo = userData.ReportingTo;\r\n vm.profilePic = userData.Picture;\r\n if (vm.EnableRegion) {\r\n vm.MainRegion = userData.Region;\r\n \r\n //GetSubRegionList\r\n vm.selectSubRegion(vm.MainRegion);\r\n vm.Region = userData.SubRegion;\r\n vm.selectCitySubRegion(vm.Region);\r\n vm.SubCity = userData.Locations;\r\n }else{\r\n vm.workArea = userData.Locations;\r\n }\r\n \r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n \r\n ///Get the workArea badges in edit mode \r\n var circleArray = [];\r\n for (var pin = 0; pin < vm.workArea.length; pin++) {\r\n circleArray.push({\r\n workArea: vm.workArea\r\n });\r\n }\r\n \r\n ///Check Present address is same as the Permanent Address.\r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n }, function () {\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 vm.getCountry();\r\n\r\n $scope.modelOptions = {\r\n getterSetter: true\r\n };\r\n\r\n\r\n\r\n vm.getProfilePic = function(pic){\r\n return ImageUrl+\"/\"+vm.profilePic;\r\n }\r\n\r\n vm.changeFile = function(selector){\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n\r\n $scope.uploadImageFile = function(files){\r\n var file = files.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = loggedinUser+\"_ProfilePic_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if(file.type.indexOf(\"image/jpg\")>=0 || file.type.indexOf(\"image/png\")>=0 \r\n || file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n TeamFormCreationService.uploadProfilePic(loggedinUser, data, token, function(res){\r\n if(res && res.status==201 && res.data){\r\n vm.profilePic = filename;\r\n vm.imageServices(filename);\r\n }\r\n }, function(err){\r\n vm.showFailure(\"Failed\", err.data);\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n }\r\n vm.imageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function() {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n }\r\n vm.imageServices(vm.profileImg);\r\n\r\n ///Saving User function \r\n vm.saveUser = function () {\r\n vm.isDisabled = true;\r\n if (vm.signup_form.$valid) {\r\n if (vm.address_option == 'Yes') {\r\n vm.present_address_line1 = vm.permanent_address_line1;\r\n vm.present_address_line2 = vm.permanent_address_line2;\r\n vm.present_state = vm.permanent_state;\r\n vm.present_city = vm.permanent_city;\r\n vm.present_pincode = vm.permanent_pincode;\r\n }\r\n \r\n var workArea = '';\r\n var skill = '';\r\n if((vm.loggedinUserRole != \"Dispatch Manager\") && (vm.loggedinUserRole != \"OnBoarding Manager\") && (vm.loggedinUserRole != \"Dispatch Team Lead\")&& (vm.loggedinUserRole != \"OnBoarding Team Lead\")){ \r\n workArea = vm.workArea;\r\n skill = vm.skill;\r\n /*for (var index = 0; index < vm.workArea.length; index++) {\r\n if (index == (vm.workArea.length - 1)) {\r\n workArea = workArea + vm.workArea[index];\r\n continue;\r\n }\r\n workArea = workArea + vm.workArea[index] + ',';\r\n } \r\n for (var skillindex = 0; skillindex < vm.skill.length; skillindex++) {\r\n if (skillindex == (vm.skills.length - 1)) {\r\n skill = skill + vm.skill[skillindex];\r\n vm.selectExpertise(skill);\r\n continue;\r\n }\r\n skill = skill + vm.skill[skillindex] + ',';\r\n vm.selectExpertise(skill);\r\n }*/\r\n } \r\n\r\n ///model to send for creating user \r\n var userFormData = { \r\n \"UserId\": vm.userId,\r\n \"FirstName\": vm.username,\r\n \"LastName\": vm.last_name,\r\n \"Gender\": vm.gender,\r\n \"DOB\": moment(vm.birth_date, 'DD/MM/YYYY').format('YYYY-MM-DDTHH:mm:ss.SSSZ'), \r\n \"PersonalEmail\": vm.email,\r\n \"ContactNumber\": vm.phone_number,\r\n \"AlternativeContactNumber\": vm.alternate_number,\r\n \"CompanyName\": vm.company,\r\n \"Locations\": workArea,\r\n \"PermanentAdd1\": vm.permanent_address_line1,\r\n \"PermanentAdd2\": vm.permanent_address_line2,\r\n \"PermanentState\": vm.permanent_state,\r\n \"PermanentCity\": vm.permanent_city,\r\n \"PermanentPincode\": vm.permanent_pincode,\r\n \"CurrentAdd1\": vm.present_address_line1,\r\n \"CurrentAdd2\": vm.present_address_line2,\r\n \"CurrentState\": vm.present_state,\r\n \"CurrentCity\": vm.present_city,\r\n \"CurrentPincode\": vm.present_pincode,\r\n \"SkillSet\": skill,\r\n \"Expertise\": vm.expertise,\r\n \"ReportingTo\": '',\r\n \"Role\": '',\r\n \"Picture\":vm.profilePic,\r\n \"TerritoryConfigurations\":vm.workAreas,\r\n \"Specialist\":vm.specialist\r\n }\r\n if (vm.EnableRegion) {\r\n userFormData.Region = vm.MainRegion;\r\n \r\n var workArea = '';\r\n for (var index = 0; index < vm.SubCity.length; index++) {\r\n if (index == (vm.SubCity.length - 1)) {\r\n workArea = workArea + vm.SubCity[index];\r\n continue;\r\n }\r\n workArea = workArea + vm.SubCity[index] + ',';\r\n }\r\n userFormData.Locations = workArea;\r\n userFormData.SubRegion = vm.Region;\r\n }\r\n\r\n \r\n if (vm.loggedinUserRole == 'Administrator' || vm.loggedinUserRole == 'Project Manager' || vm.loggedinUserRole == 'Vendor Manager' || vm.loggedinUserRole == 'SuperAdministrator' || vm.loggedinUserRole == 'OnBoarding Manager' || vm.loggedinUserRole == 'Account Manager' || vm.loggedinUserRole == 'OnBoarding Supervisor' || vm.loggedinUserRole == 'Operation Manager' || vm.loggedinUserRole == 'Operation Supervisor' || vm.loggedinUserRole == 'Higher Management'\r\n || vm.loggedinUserRole == 'Dispatch Manager' || vm.loggedinUserRole == 'Dispatch Team Lead'|| vm.loggedinUserRole == 'Freelancer Dispatcher'|| vm.loggedinUserRole == 'OnBoarding Team Lead') {\r\n userFormData.ReportingTo = vm.ReportingTo;\r\n userFormData.Role = vm.Role;\r\n }else if(vm.loggedinUserRole == 'Supervisor'){\r\n userFormData.ReportingTo = loggedinUser;\r\n userFormData.Role = 'Field Engineer';\r\n }\r\n\r\n \r\n\r\n if((vm.email==null || vm.email=='') && (vm.phone_number==null || vm.phone_number=='')){\r\n vm.showFailure(\"Failed\", \"Please provide email id or mobile number\");\r\n vm.isDisabled = false;\r\n } else{\r\n // Submit as normal\r\n if (vm.editMode) {\r\n TeamFormCreationService.updateUser(userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess(\"Success\", \"User Updated Successfully\");\r\n vm.isDisabled = false;\r\n $timeout(function () {\r\n $state.go('index.TeamMember', {\r\n reload: true\r\n });\r\n }, 2000);\r\n }\r\n else{\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n \r\n }, function () {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", \"Unable to update user\");\r\n })\r\n } else {\r\n\r\n userFormData.UserId = '';\r\n TeamFormCreationService.updateUser(userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n if (!vm.saveAndNewFlag && vm.loggedinUserRole == 'SuperAdministrator') {\r\n $state.go('index.TeamMember', {\r\n reload: true\r\n });\r\n }\r\n else if (!vm.saveAndNewFlag) {\r\n $state.go('index.TeamMember', {\r\n reload: true\r\n });\r\n\r\n $timeout(function () {\r\n window.location.reload(true);\r\n }, 3000);\r\n } else {\r\n vm.showSuccess(\"User Creation Status\", \"User created successfully\");\r\n vm.isDisabled = false;\r\n clearFormFields();\r\n }\r\n } else if (resp.data.ErrorCode == 104) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"User already exist\");\r\n } else if(resp.data && resp.data.Message) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", resp.data.Message);\r\n } else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n vm.isDisabled = false;\r\n }, function (error) {\r\n vm.isDisabled = false;\r\n if (error.data.ErrorCode == 104) {\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n }\r\n );\r\n }\r\n }\r\n } else {\r\n vm.signup_form.submitted = true;\r\n vm.isDisabled = false;\r\n }\r\n }\r\n\r\n // vm.saveAndNew = function () {\r\n // vm.saveAndNewFlag = true;\r\n // vm.saveUser();\r\n // }\r\n\r\n vm.getAccounts = function () {\r\n TeamFormCreationService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data && resp.status==200) { \r\n vm.accounts = resp.data;\r\n } \r\n }, function () { \r\n });\r\n } \r\n vm.getAccounts();\r\n\r\n function clearFormFields() {\r\n vm.username = '';\r\n vm.gender = '';\r\n vm.address = '';\r\n vm.email = '';\r\n vm.phone_number = '';\r\n vm.last_name = '';\r\n // vm.birth_date = '';\r\n vm.cores_address = '';\r\n vm.father_name = '';\r\n vm.alternate_number = '';\r\n vm.workArea = '';\r\n vm.city = '';\r\n // vm.reporting_to = '';\r\n vm.state = '';\r\n // vm.role = '';\r\n vm.skill = '';\r\n vm.expertise = '';\r\n vm.saveAndNewFlag = false;\r\n }\r\n\r\n var skillsArray = [];\r\n vm.getAllSkill = function () {\r\n TeamFormCreationService.getAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skills = resp.data; \r\n for (var index = 0; index < vm.skills.length; index++) { \r\n skillsArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n }\r\n }); \r\n }\r\n\r\n vm.selectExpertise = function (skill) {\r\n // TeamFormCreationService.getAllSkills().then(function (resp) {\r\n // vm.expertiseList = resp.data;\r\n // vm.expertiseList = [];\r\n if (!vm.skills) {\r\n var expertiseArray = [];\r\n expertiseArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n vm.expertiseList = expertiseArray;\r\n }\r\n }\r\n\r\n\r\n ///get all the circles through api\r\n function getAllCircles() {\r\n vm.circles = [];\r\n vm.CircleList=[];\r\n vm.MainRegionList = '';\r\n if (vm.EnableRegion) {\r\n TeamFormCreationService.GetRegion(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.MainRegionList = resp.data;\r\n $log.log('RegionList',vm.RegionList)\r\n }\r\n }\r\n })\r\n }else if (vm.LocationMapping == 'Circle') {\r\n TeamFormCreationService.GetTelecomCircle(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.CircleList = resp.data.values;\r\n \r\n }\r\n }\r\n })\r\n }else{\r\n\r\n TeamFormCreationService.getAllState(loggedinUser, token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.circles = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n ///Executes when the user select the state\r\n vm.selectState = function (state) {\r\n var Getstate = state;\r\n TeamFormCreationService.getCities(loggedinUser,Getstate,token).then(function (resp) {\r\n vm.cityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n vm.selectSubRegion = function(region){\r\n \r\n TeamFormCreationService.GetSubRegion(loggedinUser,token,region).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.SubRegionList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n vm.selectCitySubRegion = function(Subregion){\r\n \r\n TeamFormCreationService.GetCityBySubRegion(loggedinUser,Subregion,token).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.SubCityList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.selectStateforPresent = function (state) { \r\n var Getstate = state;\r\n TeamFormCreationService.getCities(loggedinUser,Getstate,token).then(function (resp) {\r\n vm.presentcityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n //state \r\n vm.getStateList = function (region) {\r\n TeamFormCreationService.getState(loggedinUser, token, region).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.allStates = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n ///Executes when the user select the city\r\n vm.selectCity = function (city) {\r\n TeamFormCreationService.getAllPincode(city).then(function (resp) {\r\n vm.pincodeList = resp.data;\r\n if (!resp.data) {\r\n var pincodeArray = [];\r\n pincodeArray.push({\r\n pincode: city\r\n });\r\n vm.pincodeList = pincodeArray;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.selectCityforPresent = function (loggedinUser, city) {\r\n TeamFormCreationService.getAllPincode(loggedinUser, city.ID).then(function (resp) {\r\n vm.presentpincodeList = resp.data;\r\n if (!resp.data) {\r\n var pincodeArray = [];\r\n pincodeArray.push({\r\n pincode: city\r\n });\r\n vm.pincodeList = pincodeArray;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.removeAccountDetail = function (index) {\r\n vm.workAreas.splice(index,1); \r\n vm.getAllHDAccounts(); \r\n }\r\n\r\n vm.EditData=function(index){\r\n vm.SelectedAccount = vm.workAreas[index]; \r\n vm.territoryStates(vm.SelectedAccount.AccountId);\r\n vm.selectedStateForTerritory(vm.SelectedAccount.State);\r\n vm.selectedCityForTerritory(vm.SelectedAccount.City); \r\n }\r\n\r\n vm.AccountChange=function (){ \r\n for (var i = 0; i < vm.RemainingCHDAccounts.length; i++) {\r\n var Acc = vm.RemainingCHDAccounts[i];\r\n if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n vm.SelectedAccount.AccountId = Acc.AccountId;\r\n // vm.SelectedAccount = Acc; \r\n // break;\r\n }\r\n }\r\n vm.territoryStates(vm.SelectedAccount.AccountId);\r\n }\r\n vm.territoryStates = function (AccountId) {\r\n vm.AccountIDforTerritory = AccountId;\r\n TeamFormCreationService.getTerritoryStates(loggedinUser, token,AccountId,vm.Role).then(function(resp) {\r\n vm.stateListTerritory = resp.data;\r\n if(resp.status == 200) {\r\n // vm.territoryCity();\r\n }\r\n })\r\n }\r\n\r\n vm.selectedStateForTerritory = function (state) {\r\n vm.territoryCity(state,vm.AccountIDforTerritory);\r\n }\r\n vm.territoryCity = function (state,AccountId) {\r\n vm.StateForTerritoryCity = state;\r\n TeamFormCreationService.getTerritoryCity(loggedinUser, token,AccountId,state,vm.Role).then(function(resp) {\r\n vm.cityListTerritory = resp.data;\r\n if(resp.status == 200) {\r\n \r\n\r\n }\r\n })\r\n }\r\n\r\n vm.selectedCityForTerritory = function (City) {\r\n vm.territoryPincodes(City);\r\n }\r\n vm.uniPin = [];\r\n vm.territoryPincodes = function (City) {\r\n TeamFormCreationService.getTerritoryPincodes(loggedinUser, token,vm.AccountIDforTerritory,vm.StateForTerritoryCity,City,vm.Role).then(function(resp) {\r\n // if(resp.status == 200) {\r\n vm.pinCodeListTerritory = resp.data;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n var Acc = vm.workAreas[i];\r\n if((Acc.City == City) && (Acc.AccountId ==vm.AccountIDforTerritory) && (Acc.State == vm.StateForTerritoryCity)) {\r\n for (var j = 0; j < vm.pinCodeListTerritory.length; j++) { \r\n var pinCodeUnique = vm.pinCodeListTerritory[j];\r\n for (var k = 0; k < Acc.PinCode.length; k++) { \r\n if( pinCodeUnique == Acc.PinCode[k]) {\r\n vm.pinCodeListTerritory.splice(j,1);\r\n // break; \r\n }\r\n }\r\n \r\n }\r\n }\r\n }\r\n // }\r\n })\r\n }\r\n\r\n vm.addMoreAccount = function(){\r\n vm.SelectedAccount=[]; \r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n var Acc = vm.workAreas[i];\r\n for (var j = 0; j < vm.RemainingCHDAccounts.length; j++) { \r\n // console.log('acc = ' + Acc.AccountId + \" vm.RemainingCHDAccounts[j].AccountId \" + vm.RemainingCHDAccounts[j].AccountId + 'len ' + j) \r\n if(Acc.AccountId == vm.RemainingCHDAccounts[j].AccountId ) {\r\n // vm.RemainingCHDAccounts.splice(j,1); \r\n //break; \r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n //CHDAllaccounts\r\n vm.getAllHDAccounts = function ( ) {\r\n TeamFormCreationService.getAllAccountsConfigured(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data){ \r\n if(resp.status==200){\r\n vm.CHDAccounts = resp.data;\r\n vm.RemainingCHDAccounts = vm.CHDAccounts;\r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n\r\n vm.UpdateAllHDAccountConfig = function(index){ \r\n vm.showAction = true; \r\n var checkAccount = false;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n if(vm.SelectedAccount.PinCode == undefined) {\r\n vm.showFailure(\"Failed\", \"Please add Account details with Locations\");\r\n vm.workAreas[index].edit = true;\r\n }\r\n // vm.workAreas[i] == vm.SelectedAccount;\r\n // vm.workAreas[i].AccountSkillSet = vm.SelectedSkills;\r\n // vm.workAreas[i].AccountLocations = vm.SelectedLocations;\r\n // var Acc = vm.workAreas[i];\r\n // if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n // vm.workAreas[i] == vm.SelectedAccount;\r\n // checkAccount = true;\r\n // break;\r\n // }\r\n }\r\n if(checkAccount == false && index == undefined) { \r\n vm.SelectedAccountObj = Object.assign({}, vm.SelectedAccount); \r\n if(vm.SelectedAccountObj.AccountName && vm.SelectedAccountObj.State && vm.SelectedAccountObj.City && vm.SelectedAccountObj.PinCode) {\r\n vm.workAreas.push(vm.SelectedAccountObj);\r\n } \r\n else {\r\n vm.showFailure(\"Failed\", \"Please add Account details with Locations\");\r\n vm.workAreas[i].edit = true;\r\n \r\n } \r\n \r\n }\r\n else {\r\n var Acc = vm.workAreas[i];\r\n }\r\n vm.showEditList = false; \r\n }\r\n \r\n vm.getAllHDAccounts(); \r\n vm.getAllSkill();\r\n vm.getStateList(\"INDIA\");\r\n }\r\n});\r\n\nangular.module('inspinia').service('ServiceCenter_FormcreationService', function (ApiURL, AcessoriesURL,LocationURL,PublicApiURL, $log,MMFCRMURL, $http,$localStorage) {\r\n var url = ApiURL + '/api/User';\r\n\r\n //state api https://product.mymobiforce.com/publicapi/api/Location/GetAllStates?userId=F00000000000&country=INDIA\r\n this.getState = function (loggedInUserId,token,region) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetTicketStatusForTerritory = function (loggedInUser, token) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetTicketStatusForTerritory';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.GetAllRegionsByRole = function (data,loggedInUser, token) {\r\n var url = MMFCRMURL + '/api/CRMZonalMapping/GetAllRegionsByRole';\r\n return $http.post(url,data,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n \r\n this.GetAllAvailableSubRegion = function (region,loggedInUser, token) {\r\n var url = MMFCRMURL + '/api/CRMZonalMapping/GetAllAvailableSubRegion?Region=' + region;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.CreateUser = function (userFormData, loggedinUser, token) {\r\n var url = ApiURL + '/api/User?reqUserId='+loggedinUser;\r\n return $http.post(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser \r\n }\r\n });\r\n }\r\n\r\n this.getAllRole = function (token) {\r\n var url = ApiURL + '/api/role';\r\n return $http.get(url, {\r\n 'Token': token, 'UserId':loggedinUser\r\n });\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetRegion?userId=U370000000001\r\n this.GetRegion = function(loggedInUserId, token){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n this.GetTelecomCircle = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetTelecomCircles?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetSubRegion?userId=U370000000001®ion=North\r\n this.GetSubRegion = function(loggedInUserId, token, region){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+region;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n this.GetCityBySubRegion = function(loggedInUserId, subRegion, token){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+subRegion;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n this.GetAllProductNames = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets/GetAllProductNames';\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n this.GetAllSkillsForProduct = function (ProductName,loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets/GetAllSkillsForProduct?ProductName=' + ProductName;\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n\r\n this.getAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\nthis.getCountry = function (loggedinUser, token) {\r\n var url = PublicApiURL + '/api/Address/GetCountry?userId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\nthis.getAllState = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\nthis.getCities = function (loggedinUser,state,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\nthis.GetAllPinCodes = function (state,city,loggedinUser,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllPinCodes?State='+ state + '&City=' + city;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n this.getAllCity = function (loggedinUser,state, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n });\r\n }\r\n\r\n this.getAllPincode = function (city) {\r\n var url = LocationURL+'/api/Location/'+$localStorage.loggedinUser+'/'+city+'/GetPincodesByCity';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n this.GetReportingToUser = function(role, loggedinUser, token){\r\n var url = ApiURL + '/api/User/' + role + '/GetReportingToUserByRole?reqUserId=' + loggedinUser\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n this.getAllReportingTo = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/User';\r\n return $http.get(url, {\r\n params: {userid: loggedinUser},\r\n headers: {'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n this.getUserData = function (userid, token) {\r\n return $http.get(url, {\r\n params: {UserId:userid},\r\n headers: {'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.UpdateServiceCenterDetailsDoc = function (userFormData,applicationFormFile,payoutStructureFile,gstCertificateFile,aadhaarDocFile,panDocFile,chequeDocFile,tanDocFile,shopLicenceDocFile,loggedinUser, token,userId) {\r\n\r\n var formdata = new FormData();\t\t\r\n formdata.append(\"ApplicationForm\", applicationFormFile[0]);\r\n formdata.append(\"PayoutStructure\", payoutStructureFile[0]);\r\n formdata.append(\"GSTCertificate\", gstCertificateFile[0]);\t\r\n formdata.append(\"AadharDoc\", aadhaarDocFile[0]);\r\n formdata.append(\"PANDoc\", panDocFile[0]);\r\n formdata.append(\"CancelCheque\", chequeDocFile[0]);\t\r\n formdata.append(\"TANCertificate\", tanDocFile[0]);\t\r\n formdata.append(\"ShopLicense\", shopLicenceDocFile[0]);\t\r\n var authrizedData = JSON.stringify(userFormData);\r\n formdata.append(\"BackgroundData\", authrizedData);\r\n\r\n var url = ApiURL + '/api/User/UpdateServiceCenterDetailsDoc?UserId=' + userId;\r\n return $http.put(url, formdata, {\r\n headers: { 'Content-Type': undefined,\r\n 'Token':token, 'UserId':loggedinUser}\r\n });\r\n }\r\n //http://192.168.0.80:92/CoreAPI/api/Role/ByReqUserId?reqUserId=kanika.bansal%40innotiontech.com\r\n\r\n this.getAllRoleByUserId = function (userId, token) {\r\n var url = ApiURL + '/api/Role/ByReqUserId?reqUserId='+userId;\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':userId}\r\n \r\n });\r\n }\r\n\r\n this.uploadProfilePic = function(loggedinUser, data, token, success, failure){\r\n $http.post(ApiURL + '/api/UploadDoc', data, { \r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n \r\nthis.getAllAccounts = function (loggedInUserId,token) { \r\n var url = ApiURL+ '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n \r\n }\r\n });\r\n}\r\n\r\n//Accounts API\r\nthis.getAllAccountsConfigured = function (loggedinUser,token) { \r\n var url = ApiURL+ '/api/CentralHelpDesk/GetAllAccountHDConfig';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n}\r\n\r\n\r\n//https://product.mymobiforce.com/coreAPI/api/User/GetTeamUserDetails?UserId=U00000000413\r\nthis.getFixedUserInfo = function (userId,loggedInUser, token) {\r\n var url = ApiURL + '/api/User/GetTeamUserDetails?UserId='+ userId ;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n// http://localhost:56749/api/TerritoryMappingUser/GetStateByAccountIdAndRole?AccountId=114&Role=Administrator\r\nthis.getTerritoryStates = function (loggedInUser, token,AccountId,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetStateByAccountIdAndRole?AccountId='+ AccountId+ '&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n//http://localhost:56749/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId=144&State=Uttar%20Pradesh&Role=Administrator\r\nthis.getTerritoryCity = function (loggedInUser, token,AccountId,state,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId='+ AccountId+'&State='+state+'&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n//https://upgrad.mymobiforce.com/coreapi/api/TerritoryMappingUser/GetPincodeByStateAndCityAndAccountIdAndRole?AccountId=144&State=Uttar%20Pradesh&City=Noida&Role=Administrator\r\nthis.getTerritoryPincodes = function (loggedInUser, token,AccountId,state,City,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetPincodeByStateAndCityAndAccountIdAndRole?AccountId='+ AccountId+'&State='+state+'&City='+City+'&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n \r\nthis.GetAllNotAllocatedWareHouse = function (loggedInUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllNotAllocatedWareHouse';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\nthis.GetItemBrandName = function (token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemBrandName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n});\r\n\nangular.module('inspinia').controller('ServiceCenter_FormcreationController', function (ServiceCenter_FormcreationService,$uibModal,toaster ,ReferService, MainService,$rootScope,$http, $state, $scope, $timeout, $stateParams,DTOptionsBuilder,DTColumnDefBuilder, $log, $localStorage, ngProgressFactory, TeamProfileService, ApiURL, $q, ImageUrl) {\r\n var vm = this;\r\n vm.isDisabled = false;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if ($localStorage.accountConfig) {\r\n if ($localStorage.accountConfig) {\r\n vm.EnableRegion = $localStorage.accountConfig.EnableRegion;\r\n }\r\n }else{\r\n vm.EnableRegion = false;\r\n }\r\n\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\t\tvm.AccountId= $localStorage.accountConfig.AccountId;\r\n vm.loggedinUserRole = $localStorage.loggedInUser_Role;\r\n var userId_ForUpdate = $stateParams.userId;\r\n vm.saveAndNewFlag = false;\r\n vm.editMode = false;\r\n vm.address_option = 'Yes';\r\n vm.isCollapsed = false;\r\n vm.isUserDetailCollapsed = false;\r\n vm.canceler = $q.defer();\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n vm.Role = 'Service Center';\r\n $scope.panUploadError = false;\r\n $scope.adhaarUploadError =false;\r\n $scope.gstUploadError = false;\r\n $scope.payoutUploadError = false;\r\n vm.disableUploadButton = true;\r\n $scope.applicationFormUploadError = false;\r\n vm.specialist = \"No\";\r\n vm.ReportingTo = '';\r\n vm.mapstate = '';\r\n vm.mapcity = '';\r\n vm.mappincode = \"\";\r\n vm.warehouseToBeAllocated = '';\r\n vm.AadhaarNumber = '';\r\n vm.Rating = '';\r\n vm.ExperienceInYears = '';\r\n vm.GSTNumber = '';\r\n vm.TANNumber = '';\r\n vm.PANNumber = '';\r\n vm.SubCity='';\r\n vm.allStates = [];\r\n vm.dSecurityAmount = 0;\r\n vm.dMSLQuantityAmount = 0;\r\n vm.strListRegion = [];\r\n vm.strListSubRegion = [];\r\n vm.selectedCategory = '';\r\n vm.CustomUserId = '';\r\n vm.username = '';\r\n vm.gender = 'Male';\r\n vm.email = '';\r\n vm.phone_number = '';\r\n vm.last_name = '';\r\n vm.birth_date = moment();\r\n vm.father_name = '';\r\n vm.alternate_number = '';\r\n vm.workArea = '';\r\n vm.AccountName = '';\r\n vm.company = '';\r\n vm.permanent_address_line1 = '';\r\n vm.permanent_state = '';\r\n vm.permanent_pincode = '';\r\n vm.permanent_address_line2 = '';\r\n vm.permanent_city = '';\r\n vm.present_address_line1 = '';\r\n vm.present_address_line2 = '';\r\n vm.present_state = '';\r\n vm.present_city = '';\r\n vm.present_pincode = '';\r\n vm.skill = '';\r\n vm.companyname = '';\r\n vm.brand = '';\r\n vm.expertise = '';\r\n vm.reportinToList = '';\r\n vm.workAreas = [];\r\n vm.CHDAccounts = [];\r\n vm.RemainingCHDAccounts = [];\r\n vm.SelectedAccount={};\r\n vm.showAction = true;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.LocationMapping = vm.getAccountConfigSetting('LocationMapping');\r\n vm.MainRegion = '';\r\n vm.SubRegion = '';\r\n var today = new Date();\r\n // var date = today.getFullYear() - 18;\r\n var date = today.getFullYear();\r\n var age = (today.getMonth() + 1 + \"/\" + today.getDate() + \"/\" + date).toString();\r\n\r\n vm.maxDOB = new Date(age);\r\n vm.maxDOBStr = vm.maxDOB.toDateString();\r\n age = Date.parse(age);\r\n $scope.MaxDate = moment(age);\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.showEditList = false;\r\n vm.showEditLists = false;\r\n vm.isShow=true;\r\n var brandArray = [];\r\n vm.regionForRSM = \"\";\r\n vm.AllAvailableSubRegionList = [];\r\n\r\n var verifyBulkPost = ApiURL+\"/api/BulkUpload/MediaUpload?reqUserId={userId}&action=Create\";\r\n // var addBulkPost = ApiURL+\"/api/User/BulkCreateServiceCenters\";\r\n\r\n vm.GetItemBrandName = function () {\r\n ServiceCenter_FormcreationService.GetItemBrandName(token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BrandList = resp.data; // Store the brand list\r\n \r\n // Initialize brandArray if needed\r\n var brandArray = [];\r\n for (var index = 0; index < vm.BrandList.length; index++) {\r\n brandArray.push({\r\n brand: vm.BrandList[index]\r\n });\r\n }\r\n \r\n if (vm.editMode) {\r\n if (vm.brand && vm.brand.length > 0) {\r\n \r\n } else {\r\n vm.brand = [vm.BrandList[0]];\r\n }\r\n } else {\r\n vm.brand = [vm.BrandList[0]]; \r\n }\r\n }\r\n });\r\n };\r\n \r\n \r\n \r\n // vm.GetItemBrandName = function () {\r\n // ServiceCenter_FormcreationService.GetItemBrandName(token).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // vm.BrandList = resp.data; // Assign the API response to the BrandList\r\n // vm.brand = [resp.data[0]]; // Set the first item as the default selection\r\n // }\r\n // });\r\n // };\r\n vm.GetItemBrandName();\r\n\r\n\r\n\r\n // vm.checkMaxDOB = function () {\r\n // if (vm.birth_date && !vm.birth_date._isAMomentObject) {\r\n // var splittedDOB = vm.birth_date.split(\"/\");\r\n // vm.birth_date = moment(new Date((splittedDOB[1] + \"/\" + splittedDOB[0] + \"/\" + splittedDOB[2]).toString()));\r\n // }\r\n\r\n // return (vm.maxDOB - vm.birth_date) < 0;\r\n // }\r\n\r\n vm.GetReportingToUser = function (role) {\r\n vm.reportinToList=\"\";\r\n ServiceCenter_FormcreationService.GetReportingToUser(role, loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.reportinToList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n if($state.current.name == 'index.ServiceCenterFormCreation'){\r\n vm.GetReportingToUser('Service Center');\r\n }\r\n\r\n // vm.GetAllRegionsByRole = function ( ) {\r\n // var data = {\r\n // \"ReportingToUserId\": vm.ReportingTo\r\n // }\r\n // ServiceCenter_FormcreationService.GetAllRegionsByRole(data,loggedinUser, token).then(function (resp) { \r\n // if (resp && resp.data){ \r\n // if(resp.status==200){\r\n // vm.AllAvailableRegionList = resp.data;\r\n // }\r\n // } \r\n // }, function () { \r\n // });\r\n // }\r\n\r\n \r\n vm.GetAllAvailableSubRegion = function () {\r\n ServiceCenter_FormcreationService.GetAllAvailableSubRegion(vm.regionForRSM,loggedinUser, token).then(function (resp) { \r\n vm.AllSubRegionList = [];\r\n if (resp && resp.data){ \r\n if(resp.status==200){\r\n vm.AllAvailableSubRegionList = resp.data;\r\n angular.forEach(vm.AllAvailableSubRegionList, function(subregion) {\r\n if(subregion.UserId == vm.ReportingTo) {\r\n vm.AllSubRegionList.push(subregion);\r\n }\r\n })\r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n\r\n vm.removeAddmoreEditList = function () {\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n }\r\n\r\n vm.countrylist = [\"INDIA\"];\r\n vm.selectedCountry = \"INDIA\";\r\n\r\n\r\n vm.getAllState = function () {\r\n ServiceCenter_FormcreationService.getAllState(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.stateList = resp.data;\r\n if ($state.current.name == 'index.ServiceCenter_FormEdit') {\r\n vm.editMode = true;\r\n \r\n if(userId_ForUpdate.startsWith(\"U\") || userId_ForUpdate.startsWith(\"F\")){\r\n ServiceCenter_FormcreationService.getFixedUserInfo(userId_ForUpdate, loggedinUser, token).then(function (resp) {\r\n var userData = resp.data;\r\n vm.AccountName = userData.ServiceAccountIds;\r\n vm.username = userData.FirstName;\r\n vm.gender = 'Male';\r\n vm.email = userData.PersonalEmail;\r\n vm.phone_number = parseInt(userData.ContactNumber);\r\n vm.last_name = userData.LastName;\r\n vm.birth_date = moment(userData.DOB);\r\n vm.father_name = userData.FatherName;\r\n if(userData.AlternativeContactNumber){\r\n vm.alternate_number = parseInt(userData.AlternativeContactNumber);\r\n } \r\n vm.specialist = userData.Specialist; \r\n vm.workArea = userData.Locations;\r\n vm.userId = userData.UserId;\r\n vm.permanent_address_line1 = userData.PermanentAdd1;\r\n vm.permanent_address_line2 = userData.PermanentAdd2;\r\n vm.permanent_city = userData.PermanentCity.toUpperCase();\r\n vm.permanent_state = userData.PermanentState;\r\n vm.permanent_pincode = userData.PermanentPinCode;\r\n vm.present_address_line1 = userData.CurrentAdd1;\r\n vm.present_address_line2 = userData.CurrentAdd2;\r\n vm.present_city = userData.CurrentCity.toUpperCase();\r\n vm.present_state = userData.CurrentState;\r\n vm.present_pincode = userData.CurrentPinCode;\r\n vm.skill = userData.SkillSet;\r\n vm.selectedSkills = userData.SkillSet;\r\n vm.productSkills = userData.SkillSet;\r\n vm.expertise = userData.Expertise;\r\n vm.Role = userData.Role;\r\n vm.GetReportingToUser(vm.Role);\r\n vm.brand = userData.BrandName;\r\n vm.companyname = userData.CompanyName;\r\n vm.workAreas = userData.TerritoryConfigurations;\r\n vm.ExperienceInYears = userData.ExperienceInYears;\r\n vm.ReportingTo = userData.ReportingTo;\r\n vm.GetAllAvailableSubRegion();\r\n vm.AadhaarNumber = userData.AadharNumber;\r\n vm.GSTNumber = userData.GSTNumber;\r\n vm.TANNumber = userData.TANNumber;\r\n vm.PANNumber = userData.PANNumber;\r\n vm.selectedCategory = userData.ServiceCentreType;\r\n vm.CustomUserId = userData.CustomUserId;\r\n // vm.strListRegion = userData.strListRegion;\r\n if(userData.strListSubRegion){\r\n vm.strListSubRegion = userData.strListSubRegion[0];\r\n }\r\n vm.dMSLQuantityAmount = userData.dMSLQuantityAmount;\r\n vm.dSecurityAmount = userData.dSecurityAmount;\r\n vm.AadhaarFileName = userData.AadharDoc;\r\n vm.CancelledChequeFileName = userData.CancelCheque;\r\n vm.ApplicationFormFileName = userData.ApplicationForm;\r\n vm.GSTNumberFileName = userData.GSTCertificate;\r\n vm.PanCardFileName = userData.PANDoc;\r\n vm.PayoutStructureFileName = userData.PayoutStructure;\r\n vm.ShopLicenseFileName = userData.ShopLicense;\r\n vm.TanNumberFileName = userData.TANCertificate;\r\n vm.imageServices(userData.Picture);\r\n vm.aadhaarImageServices(userData.AadharDoc);\r\n vm.cancelledImageServices(userData.CancelCheque);\r\n vm.applicationformImageServices(userData.ApplicationForm);\r\n vm.gstImageServices(userData.GSTCertificate);\r\n vm.panCardImageServices(userData.PANDoc);\r\n vm.payoutImageServices(userData.PayoutStructure);\r\n vm.ShopLicenseImageServices(userData.ShopLicense);\r\n vm.tanNoImageServices(userData.TANCertificate);\r\n if (vm.EnableRegion) {\r\n vm.MainRegion = userData.Region;\r\n \r\n //GetSubRegionList\r\n vm.selectSubRegion(vm.MainRegion);\r\n vm.Region = userData.SubRegion;\r\n vm.selectCitySubRegion(vm.Region);\r\n vm.SubCity = userData.Locations;\r\n }else{\r\n vm.workArea = userData.Locations;\r\n }\r\n \r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n \r\n ///Get the workArea badges in edit mode \r\n var circleArray = [];\r\n if(vm.workArea){\r\n for (var pin = 0; pin < vm.workArea.length; pin++) {\r\n circleArray.push({\r\n workArea: vm.workArea\r\n });\r\n }\r\n }\r\n \r\n \r\n ///Check Present address is same as the Permanent Address.\r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n }, function () {\r\n \r\n });\r\n }\r\n else{\r\n TeamProfileService.getUserInfo(userId_ForUpdate, loggedinUser, token).then(function (resp) {\r\n var userData = resp.data;\r\n vm.username = userData.FirstName;\r\n vm.gender = 'Male';\r\n vm.email = userData.PersonalEmail;\r\n vm.phone_number = parseInt(userData.ContactNumber);\r\n vm.last_name = userData.LastName;\r\n vm.birth_date = moment(userData.DOB);\r\n vm.father_name = userData.FatherName;\r\n vm.alternate_number = parseInt(userData.AlternativeContactNumber);\r\n vm.specialist = userData.Specialist; \r\n //vm.workArea = userData.Locations;\r\n vm.warehouseToBeAllocated = userData.WareHouseId; \r\n vm.Rating = userData.Rating;\r\n vm.AadhaarNumber = userData.AadharNumber;\r\n vm.GSTNumber = userData.GSTNumber;\r\n vm.TANNumber = userData.TANNumber;\r\n vm.PANNumber = userData.PANNumber;\r\n vm.dMSLQuantityAmount = userData.dMSLQuantityAmount;\r\n vm.dSecurityAmount = userData.dSecurityAmount;\r\n vm.ReportingTo = userData.ReportingTo;\r\n vm.selectedCategory = userData.ServiceCentreType;\r\n vm.CustomUserId = userData.CustomUserId;\r\n // vm.strListRegion = userData.strListRegion;\r\n vm.GetAllAvailableSubRegion();\r\n if(userData.strListSubRegion){\r\n vm.strListSubRegion = userData.strListSubRegion[0];\r\n }\r\n vm.AadhaarFileName = userData.AadharDoc;\r\n vm.CancelledChequeFileName = userData.CancelCheque;\r\n vm.ApplicationFormFileName = userData.ApplicationForm;\r\n vm.GSTNumberFileName = userData.GSTCertificate;\r\n vm.PanCardFileName = userData.PANDoc;\r\n vm.PayoutStructureFileName = userData.PayoutStructure;\r\n vm.ShopLicenseFileName = userData.ShopLicense;\r\n vm.TanNumberFileName = userData.TANCertificate;\r\n vm.ExperienceInYears = userData.ExperienceInYears;\r\n vm.company = userData.CompanyName;\r\n vm.userId = userData.UserId;\r\n vm.permanent_address_line1 = userData.PermanentAdd1;\r\n vm.permanent_address_line2 = userData.PermanentAdd2;\r\n vm.permanent_city = userData.PermanentCity.toUpperCase();\r\n vm.permanent_state = userData.PermanentState;\r\n vm.permanent_pincode = userData.PermanentPinCode;\r\n vm.present_address_line1 = userData.CurrentAdd1;\r\n vm.present_address_line2 = userData.CurrentAdd2;\r\n vm.present_city = userData.CurrentCity.toUpperCase();\r\n vm.present_state = userData.CurrentState;\r\n vm.present_pincode = userData.CurrentPinCode;\r\n vm.skill = userData.SkillSet;\r\n vm.selectedSkills = userData.SkillSet;\r\n vm.productSkills = userData.SkillSet;\r\n vm.expertise = userData.Expertise;\r\n vm.brand = userData.BrandName;\r\n vm.companyname = userData.CompanyName;\r\n vm.Role = userData.Role;\r\n vm.GetReportingToUser(vm.Role);\r\n vm.profilePic = userData.Picture;\r\n if (vm.EnableRegion) {\r\n vm.MainRegion = userData.Region;\r\n \r\n //GetSubRegionList\r\n vm.selectSubRegion(vm.MainRegion);\r\n vm.Region = userData.SubRegion;\r\n vm.selectCitySubRegion(vm.Region);\r\n vm.SubCity = userData.Locations;\r\n }else{\r\n vm.workArea = userData.Locations;\r\n }\r\n \r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n \r\n ///Get the workArea badges in edit mode \r\n var circleArray = [];\r\n for (var pin = 0; pin < vm.workArea.length; pin++) {\r\n circleArray.push({\r\n workArea: vm.workArea\r\n });\r\n }\r\n \r\n ///Check Present address is same as the Permanent Address.\r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n }, function () {\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 vm.getAllState();\r\n \r\n // vm.getCountry();\r\n\r\n $scope.modelOptions = {\r\n getterSetter: true\r\n };\r\n\r\n\r\n\r\n vm.getProfilePic = function(pic){\r\n return ImageUrl+\"/\"+vm.profilePic;\r\n }\r\n\r\n vm.changeFile = function(selector){\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n\r\n $scope.uploadImageFile = function(files){\r\n var file = files.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = loggedinUser+\"_ProfilePic_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if(file.type.indexOf(\"image/jpg\")>=0 || file.type.indexOf(\"image/png\")>=0 \r\n || file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n ServiceCenter_FormcreationService.uploadProfilePic(loggedinUser, data, token, function(res){\r\n if(res && res.status==201 && res.data){\r\n vm.profilePic = filename;\r\n vm.imageServices(filename);\r\n }\r\n }, function(err){\r\n vm.showFailure(\"Failed\", err.data);\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n }\r\n vm.imageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else {\r\n vm.profileImg = resp.data;\r\n }\r\n }, function () {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n }\r\n vm.imageServices();\r\n\r\n vm.aadhaarImageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.adhaarImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.adhaarImg = resp.data;\r\n }\r\n }, function () {\r\n vm.adhaarImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.cancelledImageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.cancelledChequeImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.cancelledChequeImg = resp.data;\r\n }\r\n }, function () {\r\n vm.cancelledChequeImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.applicationformImageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.applicationFormImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.applicationFormImg = resp.data;\r\n }\r\n }, function () {\r\n vm.applicationFormImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.gstImageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.GSTImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.GSTImg = resp.data;\r\n }\r\n }, function () {\r\n vm.GSTImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.panCardImageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.panCardImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.panCardImg = resp.data;\r\n }\r\n }, function () {\r\n vm.panCardImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.payoutImageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.payoutImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.payoutImg = resp.data;\r\n }\r\n }, function () {\r\n vm.payoutImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.ShopLicenseImageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.licenseImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.licenseImg = resp.data;\r\n }\r\n }, function () {\r\n vm.licenseImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.tanNoImageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.tanNoImg = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.tanNoImg = resp.data;\r\n }\r\n }, function () {\r\n vm.tanNoImg = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n\r\n\r\n $scope.checkPDF = function (path) {\r\n if (path) {\r\n var pt = path.substr(path.length - 4);\r\n if (pt == '.pdf') {\r\n vm.error = function () {\r\n $(\".pdf\").attr({ \"target\": \"_blank\" })\r\n }\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n }\r\n vm.PDFView = function (page) {\r\n MainService.GetImageBlob(loggedinUser, token, page).then(function(resp) {\r\n \r\n vm.pdfimage = resp.data;\r\n });\r\n $scope.selected = null;\r\n $timeout(function(){\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size :'lg',\r\n scope: $scope\r\n });\r\n },1000)\r\n \r\n }\r\n vm.PDFUserModal = function(){\r\n jobAppointmentModal.close();\r\n }\r\n\r\n\r\n vm.ApplicationFormFileDoc = [];\r\n vm.AadhaarFileDoc = [];\r\n vm.PanCardFileDoc = [];\r\n vm.GSTNumberFileDoc = [];\r\n vm.TanNumberFileDoc = [];\r\n vm.PayoutStructureFileDoc = [];\r\n vm.CancelledChequeFileDoc = [];\r\n vm.ShopLicenseFileDoc = [];\r\n\r\n $scope.attachAadhaarDoc = function(files){ \r\n vm.AadhaarFileName = \"\";\r\n var file = files.files[0];\r\n vm.AadhaarFileName = file.name; \r\n vm.AadhaarFileDoc = files.files;\r\n $scope.adhaarUploadError =false;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.AadhaarFileDoc = [];\r\n angular.element(\"input[name='AadhaarDoc']\").val(null);\r\n vm.AadhaarFileName = \"\"; \r\n $scope.adhaarUploadError = true; \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n vm.PanDocument = \"\";\r\n\r\n $scope.attachPanCardDoc = function(files){ \r\n vm.PanCardFileName = \"\";\r\n var file = files.files[0];\r\n vm.PanCardFileName = file.name; \r\n vm.PanCardFileDoc = files.files;\r\n $scope.panUploadError = false;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.PanCardFileDoc = [];\r\n angular.element(\"input[name='PanDocument']\").val(null);\r\n vm.PanCardFileName = \"\"; \r\n $scope.panUploadError = true; \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n $scope.attachGSTNumberDoc = function(files){ \r\n vm.GSTNumberFileName = \"\";\r\n var file = files.files[0];\r\n vm.GSTNumberFileName = file.name; \r\n vm.GSTNumberFileDoc = files.files;\r\n // $scope.gstUploadError = false;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.GSTNumberFileDoc = [];\r\n angular.element(\"input[name='GstDocument']\").val(null);\r\n vm.GSTNumberFileName = \"\"; \r\n // $scope.gstUploadError = true; \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n $scope.attachTanNumberDoc = function(files){ \r\n vm.TanNumberFileName = \"\";\r\n var file = files.files[0];\r\n vm.TanNumberFileName = file.name; \r\n vm.TanNumberFileDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.TanNumberFileDoc = [];\r\n angular.element(\"input[name='TanDocument']\").val(null);\r\n vm.TanNumberFileName = \"\"; \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n $scope.attachApplicationFormDoc = function(files){ \r\n vm.ApplicationFormFileName = \"\";\r\n var file = files.files[0];\r\n vm.ApplicationFormFileName = file.name; \r\n vm.ApplicationFormFileDoc = files.files;\r\n $scope.applicationFormUploadError = false;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.ApplicationFormFileDoc = [];\r\n angular.element(\"input[name='ApplicationForm']\").val(null);\r\n vm.ApplicationFormFileName = \"\"; \r\n $scope.applicationFormUploadError = true; \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n}\r\n\r\n\r\n$scope.attachPayoutStructureDoc = function(files){ \r\n vm.PayoutStructureFileName = \"\";\r\n var file = files.files[0];\r\n vm.PayoutStructureFileName = file.name; \r\n vm.PayoutStructureFileDoc = files.files;\r\n $scope.payoutUploadError = false;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.PayoutStructureFileDoc = [];\r\n angular.element(\"input[name='payoutstructure']\").val(null);\r\n vm.PayoutStructureFileName = \"\";\r\n $scope.payoutUploadError = true;\r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n}\r\n\r\n\r\n$scope.attachShopLicenseDoc = function(files){ \r\n vm.ShopLicenseFileName = \"\";\r\n var file = files.files[0];\r\n vm.ShopLicenseFileName = file.name; \r\n vm.ShopLicenseFileDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.ShopLicenseFileDoc = [];\r\n angular.element(\"input[name='shoplicence']\").val(null);\r\n vm.ShopLicenseFileName = \"\"; \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n}\r\n\r\n$scope.attachCancelledChequeDoc = function(files){ \r\n vm.CancelledChequeFileName = \"\";\r\n var file = files.files[0];\r\n vm.CancelledChequeFileName = file.name; \r\n vm.CancelledChequeFileDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.CancelledChequeFileDoc = [];\r\n angular.element(\"input[name='CancelCheque']\").val(null);\r\n vm.CancelledChequeFileName = \"\"; \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n}\r\n\r\n\r\nvm.OpenPincodeUploadModel = function () {\r\n vm.PincodeModal = $uibModal.open({\r\n templateUrl: 'PinCodeUpload.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n}\r\n\r\nvm.closeReadyToRaiseModal = function () {\r\n vm.showPassed = false;\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.PincodeModal.close();\r\n \r\n}\r\n\r\nvm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n};\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n.withPaginationType('full_numbers')\r\n.withButtons([])\r\n.withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20])\r\n.withOption('order', []);\r\n\r\nvm.dtColumnDefs = [\r\nDTColumnDefBuilder.newColumnDef(0).notSortable(),\r\nDTColumnDefBuilder.newColumnDef(1).notSortable(),\r\nDTColumnDefBuilder.newColumnDef(2).notSortable()\r\n];\r\n\r\nvm.loaderFlag = false;\r\nvm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n}\r\n\r\nvm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n}\r\n\r\nvm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n var url = verifyBulkPost.replace(\"{userId}\", loggedinUser);\r\n $http.post(url, fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, \"Token\":token,'UserId': loggedinUser },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n vm.BulkPincodes = data.PincodeModel;\r\n if(data.Errors.length > 0)\r\n { debugger\r\n vm.Errors = data.Errors;\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.Errors, function (v, k) {\r\n\r\n if (v.ItemErrors.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.ItemErrors, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n });\r\n if (v.Row > 0 && data.PincodeModel && data.PincodeModel.length > 0 && data.PincodeModel.length >= v.Row) {\r\n e1.data = data.PincodeModel[v.Row - 1];\r\n }\r\n vm.errorList.push(e1);\r\n }\r\n });\r\n vm.showPassed = true;\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + data.Errors.length + \" errors.\";\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n }\r\n else\r\n {\r\n vm.showPassed = true;\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n if (data.Message && data.Message == \"File name is invalid\") {\r\n vm.successTitle = \"Error!\";\r\n vm.successMsg = data.Message + \" File name should be 'PinCode'.\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else {\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = \"Pincodes data validated successfully. Total \" + vm.BulkPincodes.length + \" pincodes found. Please click on Upload button to proceed.\";\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n }\r\n })\r\n .error(function (errorMessage) {\r\n $scope.$parent.$parent.main.showFailure(\"Failed\", \"Unable to upload document, technical error. Please contact to administrator\");\r\n });\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n};\r\n\r\nvm.uploadFile = function () {\r\n\r\n if (vm.BulkPincodes && vm.BulkPincodes.length > 0) {\r\n vm.BulkPincodesUpload = [];\r\n angular.forEach(vm.BulkPincodes, function(pin) {\r\n vm.BulkPincodesUpload.push(pin.Pincode);\r\n });\r\n vm.BulkPincodesUpload = removeDuplicates(vm.BulkPincodesUpload);\r\n vm.disableUploadButton = true;\r\n vm.progressbar.reset();\r\n \r\n vm.closeReadyToRaiseModal();\r\n\r\n if (vm.workArea && vm.workArea.length > 0) {\r\n angular.forEach(vm.BulkPincodesUpload, function(pin) {\r\n if (vm.workArea.indexOf(pin) === -1) {\r\n vm.workArea.push(pin);\r\n }\r\n });\r\n }\r\n else {\r\n vm.workArea = vm.BulkPincodesUpload;\r\n }\r\n } \r\n}\r\n\r\nfunction removeDuplicates(array) {\r\n var uniqueArray = [];\r\n angular.forEach(array, function(item) {\r\n if (uniqueArray.indexOf(item) === -1) {\r\n uniqueArray.push(item);\r\n }\r\n });\r\n return uniqueArray;\r\n}\r\n\r\n\r\n ///Saving User function \r\n vm.saveUser = function () {\r\n\r\n if (!vm.PanCardFileName) {\r\n $scope.panUploadError = true;\r\n }\r\n \r\n if (!vm.AadhaarFileName) {\r\n $scope.adhaarUploadError = true;\r\n }\r\n\r\n // if (!vm.GSTNumberFileName) {\r\n // $scope.gstUploadError = true;\r\n // }\r\n\r\n if (!vm.PayoutStructureFileName) {\r\n $scope.payoutUploadError = true;\r\n }\r\n\r\n if (!vm.ApplicationFormFileName) {\r\n $scope.applicationFormUploadError = true;\r\n }\r\n\r\n\r\n vm.isDisabled = true;\r\n if (vm.signup_form.$valid && !$scope.panUploadError && !$scope.adhaarUploadError && !$scope.applicationFormUploadError && !$scope.payoutUploadError ) {\r\n if (vm.address_option == 'Yes') {\r\n vm.present_address_line1 = vm.permanent_address_line1;\r\n vm.present_address_line2 = vm.permanent_address_line2;\r\n vm.present_state = vm.permanent_state;\r\n vm.present_city = vm.permanent_city;\r\n vm.present_pincode = vm.permanent_pincode;\r\n }\r\n \r\n var workArea = '';\r\n var skill = '';\r\n if((vm.loggedinUserRole != \"Dispatch Manager\") && (vm.loggedinUserRole != \"OnBoarding Manager\") && (vm.loggedinUserRole != \"Dispatch Team Lead\")&& (vm.loggedinUserRole != \"OnBoarding Team Lead\") && (vm.loggedinUserRole != \"Dispatch Supervisor\")){ \r\n workArea = vm.workArea;\r\n skill = vm.selectedSkills;\r\n } \r\n \r\n if(vm.strListSubRegion){\r\n if(vm.strListSubRegion.length > 0){\r\n vm.strListSubRegion = [vm.strListSubRegion];\r\n }\r\n }\r\n if(vm.GSTNumber){\r\n vm.GSTNumber = vm.GSTNumber.toUpperCase()\r\n }\r\n if(vm.TANNumber){\r\n vm.TANNumber = vm.TANNumber.toUpperCase();\r\n }\r\n if(vm.PANNumber){\r\n vm.PANNumber = vm.PANNumber.toUpperCase();\r\n }\r\n\r\n ///model to send for creating user \r\n var userFormData = { \r\n \"userid\": vm.userId,\r\n \"firstname\": vm.username,\r\n \"lastname\": vm.last_name,\r\n \"gender\": 'Male',\r\n \"dob\": moment(vm.birth_date, 'DD/MM/YYYY').format('YYYY-MM-DDTHH:mm:ss.SSSZ'), \r\n \"personalemail\": vm.email,\r\n \"ContactNumber\": vm.phone_number,\r\n \"AlternativeContactNumber\": vm.alternate_number,\r\n \"Locations\": workArea,\r\n \"PermanentAdd1\": vm.permanent_address_line1,\r\n \"PermanentAdd2\": vm.permanent_address_line2,\r\n \"PermanentState\": vm.permanent_state,\r\n \"PermanentCity\": vm.permanent_city,\r\n \"PermanentPincode\": vm.permanent_pincode,\r\n \"CurrentAdd1\": vm.present_address_line1,\r\n \"CurrentAdd2\": vm.present_address_line2,\r\n \"CurrentState\": vm.present_state,\r\n \"CurrentCity\": vm.present_city,\r\n \"CurrentPincode\": vm.present_pincode,\r\n \"SkillSet\": skill,\r\n \"Expertise\": vm.expertise,\r\n \"ReportingTo\": '',\r\n \"Role\": 'Service Center',\r\n \"Picture\":vm.profilePic,\r\n \"TerritoryConfigurations\":vm.workAreas,\r\n \"Specialist\":vm.specialist,\r\n \"WareHouseId\":vm.warehouseToBeAllocated,\r\n \"CompanyName\":vm.companyname,\r\n \"BrandName\": vm.brand,\r\n \"AadharNumber\":vm.AadhaarNumber,\r\n \"ExperienceInYears\":vm.ExperienceInYears,\r\n \"Rating\":vm.Rating,\r\n \"GSTNumber\":vm.GSTNumber,\r\n \"TANNumber\":vm.TANNumber,\r\n \"PANNumber\":vm.PANNumber,\r\n \"ApplicationForm\": vm.ApplicationFormFileName,\r\n \"PayoutStructure\":vm.PayoutStructureFileName,\r\n \"GSTCertificate\":vm.GSTNumberFileName,\r\n \"AadharDoc\":vm.AadhaarFileName,\r\n \"PANDoc\":vm.PanCardFileName,\r\n \"CancelCheque\":vm.CancelledChequeFileName,\r\n \"TANCertificate\":vm.TanNumberFileName,\r\n \"ShopLicense\":vm.ShopLicenseFileName,\r\n \"dSecurityAmount\":vm.dSecurityAmount,\r\n \"dMSLQuantityAmount\":vm.dMSLQuantityAmount,\r\n \"strListRegion\": [],\r\n \"strListSubRegion\": vm.strListSubRegion,\r\n \"ServiceCentreType\" : vm.selectedCategory,\r\n \"CustomUserId\" : vm.CustomUserId\r\n\r\n }\r\n if (vm.EnableRegion) {\r\n userFormData.Region = vm.MainRegion;\r\n \r\n var workArea = '';\r\n for (var index = 0; index < vm.SubCity.length; index++) {\r\n if (index == (vm.SubCity.length - 1)) {\r\n workArea = workArea + vm.SubCity[index];\r\n continue;\r\n }\r\n workArea = workArea + vm.SubCity[index] + ',';\r\n }\r\n userFormData.Locations = workArea;\r\n userFormData.SubRegion = vm.Region;\r\n }\r\n\r\n userFormData.ReportingTo = vm.ReportingTo;\r\n userFormData.Role = vm.Role;\r\n\r\n \r\n\r\n if((vm.email==null || vm.email=='') && (vm.phone_number==null || vm.phone_number=='')){\r\n vm.showFailure(\"Failed\", \"Please provide email id or mobile number\");\r\n vm.isDisabled = false;\r\n } else{\r\n // Submit as normal\r\n if (vm.editMode) {\r\n ServiceCenter_FormcreationService.UpdateServiceCenterDetailsDoc(userFormData,vm.ApplicationFormFileDoc,vm.PayoutStructureFileDoc,vm.GSTNumberFileDoc,vm.AadhaarFileDoc,vm.PanCardFileDoc,vm.CancelledChequeFileDoc,vm.TanNumberFileDoc,vm.ShopLicenseFileDoc,loggedinUser, token,vm.userId).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess(\"Success\", \"User Updated Successfully\");\r\n vm.isDisabled = false;\r\n $scope.panUploadError = \"\";\r\n $scope.adhaarUploadError = \"\";\r\n $scope.gstUploadError = \"\";\r\n $timeout(function () {\r\n $state.go('index.ServiceCenterList', {\r\n reload: true\r\n });\r\n }, 3000);\r\n }\r\n else{\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n \r\n }, function () {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", \"Unable to update user\");\r\n })\r\n } else {\r\n userFormData.UserId = '';\r\n ServiceCenter_FormcreationService.UpdateServiceCenterDetailsDoc(userFormData,vm.ApplicationFormFileDoc,vm.PayoutStructureFileDoc,vm.GSTNumberFileDoc,vm.AadhaarFileDoc,vm.PanCardFileDoc,vm.CancelledChequeFileDoc,vm.TanNumberFileDoc,vm.ShopLicenseFileDoc,loggedinUser, token,vm.userId).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess(\"User Creation Status\", \"Service center created successfully.\");\r\n $timeout(function () {\r\n vm.isDisabled = false;\r\n clearFormFields();\r\n $state.go('index.ServiceCenterList', {\r\n reload: true\r\n });\r\n }, 2000);\r\n } else if (resp.data.ErrorCode == 104) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"User already exist\");\r\n } else if(resp.data && resp.data.Message) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", resp.data.Message);\r\n } else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n vm.isDisabled = false;\r\n }, function (error) {\r\n vm.isDisabled = false;\r\n if (error.data.ErrorCode == 104) {\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n }\r\n );\r\n }\r\n }\r\n } else {\r\n vm.signup_form.submitted = true;\r\n vm.isDisabled = false;\r\n }\r\n }\r\n \r\n\r\n vm.saveUserclone = function () {\r\n vm.isDisabled = true;\r\n if (vm.signup_form.$valid ) {\r\n if (vm.address_option == 'Yes') {\r\n vm.present_address_line1 = vm.permanent_address_line1;\r\n vm.present_address_line2 = vm.permanent_address_line2;\r\n vm.present_state = vm.permanent_state;\r\n vm.present_city = vm.permanent_city;\r\n vm.present_pincode = vm.permanent_pincode;\r\n }\r\n \r\n var workArea = '';\r\n var skill = '';\r\n if((vm.loggedinUserRole != \"Dispatch Manager\") && (vm.loggedinUserRole != \"OnBoarding Manager\") && (vm.loggedinUserRole != \"Dispatch Team Lead\")&& (vm.loggedinUserRole != \"OnBoarding Team Lead\") && (vm.loggedinUserRole != \"Dispatch Supervisor\")){ \r\n workArea = vm.workArea;\r\n skill = vm.selectedSkills;\r\n } \r\n \r\n if(vm.strListSubRegion){\r\n if(vm.strListSubRegion.length > 0){\r\n vm.strListSubRegion = [vm.strListSubRegion];\r\n }\r\n }\r\n if(vm.GSTNumber){\r\n vm.GSTNumber = vm.GSTNumber.toUpperCase()\r\n }\r\n if(vm.TANNumber){\r\n vm.TANNumber = vm.TANNumber.toUpperCase();\r\n }\r\n if(vm.PANNumber){\r\n vm.PANNumber = vm.PANNumber.toUpperCase();\r\n }\r\n\r\n ///model to send for creating user \r\n var userFormData = { \r\n \"userid\": vm.userId,\r\n \"firstname\": vm.username,\r\n \"lastname\": vm.last_name,\r\n \"gender\": 'Male',\r\n \"dob\": moment(vm.birth_date, 'DD/MM/YYYY').format('YYYY-MM-DDTHH:mm:ss.SSSZ'), \r\n \"personalemail\": vm.email,\r\n \"ContactNumber\": vm.phone_number,\r\n \"AlternativeContactNumber\": vm.alternate_number,\r\n \"Locations\": workArea,\r\n \"PermanentAdd1\": vm.permanent_address_line1,\r\n \"PermanentAdd2\": vm.permanent_address_line2,\r\n \"PermanentState\": vm.permanent_state,\r\n \"PermanentCity\": vm.permanent_city,\r\n \"PermanentPincode\": vm.permanent_pincode,\r\n \"CurrentAdd1\": vm.present_address_line1,\r\n \"CurrentAdd2\": vm.present_address_line2,\r\n \"CurrentState\": vm.present_state,\r\n \"CurrentCity\": vm.present_city,\r\n \"CurrentPincode\": vm.present_pincode,\r\n \"SkillSet\": skill,\r\n \"Expertise\": vm.expertise,\r\n \"ReportingTo\": '',\r\n \"Role\": 'Service Center',\r\n \"Picture\":vm.profilePic,\r\n \"TerritoryConfigurations\":vm.workAreas,\r\n \"Specialist\":vm.specialist,\r\n \"WareHouseId\":vm.warehouseToBeAllocated,\r\n \"CompanyName\":vm.companyname,\r\n \"BrandName\": vm.brand,\r\n \"AadharNumber\":vm.AadhaarNumber,\r\n \"ExperienceInYears\":vm.ExperienceInYears,\r\n \"Rating\":vm.Rating,\r\n \"GSTNumber\":vm.GSTNumber,\r\n \"TANNumber\":vm.TANNumber,\r\n \"PANNumber\":vm.PANNumber,\r\n \"ApplicationForm\": vm.ApplicationFormFileName,\r\n \"PayoutStructure\":vm.PayoutStructureFileName,\r\n \"GSTCertificate\":vm.GSTNumberFileName,\r\n \"AadharDoc\":vm.AadhaarFileName,\r\n \"PANDoc\":vm.PanCardFileName,\r\n \"CancelCheque\":vm.CancelledChequeFileName,\r\n \"TANCertificate\":vm.TanNumberFileName,\r\n \"ShopLicense\":vm.ShopLicenseFileName,\r\n \"dSecurityAmount\":vm.dSecurityAmount,\r\n \"dMSLQuantityAmount\":vm.dMSLQuantityAmount,\r\n \"strListRegion\": [],\r\n \"strListSubRegion\": vm.strListSubRegion,\r\n \"ServiceCentreType\" : vm.selectedCategory,\r\n \"CustomUserId\" : vm.CustomUserId\r\n }\r\n if (vm.EnableRegion) {\r\n userFormData.Region = vm.MainRegion;\r\n \r\n var workArea = '';\r\n for (var index = 0; index < vm.SubCity.length; index++) {\r\n if (index == (vm.SubCity.length - 1)) {\r\n workArea = workArea + vm.SubCity[index];\r\n continue;\r\n }\r\n workArea = workArea + vm.SubCity[index] + ',';\r\n }\r\n userFormData.Locations = workArea;\r\n userFormData.SubRegion = vm.Region;\r\n }\r\n\r\n userFormData.ReportingTo = vm.ReportingTo;\r\n userFormData.Role = vm.Role;\r\n\r\n \r\n\r\n if((vm.email==null || vm.email=='') && (vm.phone_number==null || vm.phone_number=='')){\r\n vm.showFailure(\"Failed\", \"Please provide email id or mobile number\");\r\n vm.isDisabled = false;\r\n } else{\r\n // Submit as normal\r\n if (vm.editMode) {\r\n ServiceCenter_FormcreationService.UpdateServiceCenterDetailsDoc(userFormData,vm.ApplicationFormFileDoc,vm.PayoutStructureFileDoc,vm.GSTNumberFileDoc,vm.AadhaarFileDoc,vm.PanCardFileDoc,vm.CancelledChequeFileDoc,vm.TanNumberFileDoc,vm.ShopLicenseFileDoc,loggedinUser, token,vm.userId).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess(\"Success\", \"User Updated Successfully\");\r\n vm.isDisabled = false;\r\n $scope.panUploadError = \"\";\r\n $scope.adhaarUploadError = \"\";\r\n $scope.gstUploadError = \"\";\r\n $timeout(function () {\r\n $state.go('index.ServiceCenterList', {\r\n reload: true\r\n });\r\n }, 2000);\r\n }\r\n else{\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n \r\n }, function () {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", \"Unable to update user\");\r\n })\r\n } else {\r\n userFormData.UserId = '';\r\n ServiceCenter_FormcreationService.UpdateServiceCenterDetailsDoc(userFormData,vm.ApplicationFormFileDoc,vm.PayoutStructureFileDoc,vm.GSTNumberFileDoc,vm.AadhaarFileDoc,vm.PanCardFileDoc,vm.CancelledChequeFileDoc,vm.TanNumberFileDoc,vm.ShopLicenseFileDoc,loggedinUser, token,vm.userId).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess(\"User Creation Status\", \"Service center created successfully.\");\r\n $timeout(function () {\r\n vm.isDisabled = false;\r\n clearFormFields();\r\n $state.go('index.ServiceCenterList', {\r\n reload: true\r\n });\r\n }, 2000);\r\n } else if (resp.data.ErrorCode == 104) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"User already exist\");\r\n } else if(resp.data && resp.data.Message) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", resp.data.Message);\r\n } else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n vm.isDisabled = false;\r\n }, function (error) {\r\n vm.isDisabled = false;\r\n if (error.data.ErrorCode == 104) {\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n }\r\n );\r\n }\r\n }\r\n } else {\r\n vm.signup_form.submitted = true;\r\n vm.isDisabled = false;\r\n }\r\n }\r\n\r\n function clearFormFields() {\r\n vm.username = '';\r\n vm.gender = 'Male';\r\n vm.address = '';\r\n vm.email = '';\r\n vm.phone_number = '';\r\n vm.last_name = '';\r\n vm.cores_address = '';\r\n vm.father_name = '';\r\n vm.alternate_number = '';\r\n vm.workArea = '';\r\n vm.city = '';\r\n vm.state = '';\r\n vm.skill = '';\r\n vm.selectedSkills = [];\r\n vm.expertise = '';\r\n vm.saveAndNewFlag = false;\r\n }\r\n\r\n var skillsArray = [];\r\n vm.getAllSkill = function () {\r\n ServiceCenter_FormcreationService.getAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skills = resp.data; \r\n for (var index = 0; index < vm.skills.length; index++) { \r\n skillsArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n }\r\n }); \r\n }\r\n vm.selectedProduct = \"\";\r\n vm.selectedSkills = [];\r\n vm.ProductsList = [];\r\n\r\n vm.GetAllProductNames = function () {\r\n ServiceCenter_FormcreationService.GetAllProductNames(loggedinUser, token).then(function (resp) {\r\n vm.ProductsList = resp.data;\r\n }); \r\n }\r\n\r\n vm.GetAllProductNames();\r\n\r\n vm.GetAllSkillsForProduct = function () {\r\n if (vm.selectedProduct && vm.selectedProduct.length > 0) {\r\n var selectedProductPipeSeparated = vm.selectedProduct.join('|');\r\n ServiceCenter_FormcreationService.GetAllSkillsForProduct(selectedProductPipeSeparated, loggedinUser, token).then(function (resp) {\r\n vm.productSkills = resp.data;\r\n \r\n // Merge selected skills with the new product skills\r\n var allSkills = vm.productSkills.concat(vm.selectedSkills.filter(function(skill) {\r\n return !vm.productSkills.includes(skill);\r\n }));\r\n\r\n vm.productSkills = allSkills;\r\n })\r\n } else {\r\n vm.productSkills = [];\r\n } \r\n }\r\n\r\n ///get all the circles through api\r\n function getAllCircles() {\r\n vm.circles = [];\r\n vm.CircleList=[];\r\n vm.MainRegionList = '';\r\n if (vm.EnableRegion) {\r\n ServiceCenter_FormcreationService.GetRegion(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.MainRegionList = resp.data;\r\n $log.log('RegionList',vm.RegionList)\r\n }\r\n }\r\n })\r\n }else if (vm.LocationMapping == 'Circle') {\r\n ServiceCenter_FormcreationService.GetTelecomCircle(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.CircleList = resp.data.values;\r\n \r\n }\r\n }\r\n })\r\n }else{\r\n\r\n ServiceCenter_FormcreationService.getAllState(loggedinUser, token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.circles = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n ///Executes when the user select the state\r\n vm.selectState = function (state) {\r\n var Getstate = state;\r\n ServiceCenter_FormcreationService.getCities(loggedinUser,Getstate,token).then(function (resp) {\r\n vm.cityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n vm.selectStateforPincode = function (state) {\r\n ServiceCenter_FormcreationService.getCities(loggedinUser,state,token).then(function (resp) {\r\n vm.cityListForPincode = resp.data;\r\n if (!resp.data) {\r\n var citypincodeArray = [];\r\n citypincodeArray.push({\r\n city: state\r\n });\r\n vm.cityListForPincode = citypincodeArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n \r\n vm.GetAllPinCodes = function () {\r\n ServiceCenter_FormcreationService.GetAllPinCodes(vm.mapstate, vm.mapcity,loggedinUser,token).then(function (resp) {\r\n vm.allPincodes = resp.data;\r\n if (resp.data) {\r\n var citypincodeArray = [];\r\n citypincodeArray.push({\r\n city: state\r\n });\r\n vm.cityListForPincode = citypincodeArray;\r\n }\r\n }, function () {\r\n \r\n });\r\n }\r\n\r\n vm.GetInfoPinCodes = function () {\r\n ServiceCenter_FormcreationService.GetAllPinCodes(vm.permanent_state, vm.permanent_city,loggedinUser,token).then(function (resp) {\r\n vm.AddressallPincodes = resp.data;\r\n if (resp.data) {\r\n var citypincodeArray = [];\r\n citypincodeArray.push({\r\n city: state\r\n });\r\n vm.cityListForPincode = citypincodeArray;\r\n }\r\n }, function () {\r\n \r\n });\r\n }\r\n\r\n vm.ModifyPicodeList = function () {\r\n vm.AddPincode_form.submitted = true;\r\n if (vm.AddPincode_form.$valid) {\r\n if (vm.mappincode && vm.workArea) {\r\n vm.workArea = vm.workArea.concat(vm.mappincode);\r\n }\r\n if(!vm.workArea){\r\n vm.workArea = vm.mappincode;\r\n }\r\n vm.CloseMapPincodeModel();\r\n }\r\n };\r\n \r\n vm.selectSubRegion = function(region){\r\n \r\n ServiceCenter_FormcreationService.GetSubRegion(loggedinUser,token,region).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.SubRegionList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n vm.selectCitySubRegion = function(Subregion){\r\n \r\n ServiceCenter_FormcreationService.GetCityBySubRegion(loggedinUser,Subregion,token).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.SubCityList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.selectStateforPresent = function (state) { \r\n var Getstate = state;\r\n ServiceCenter_FormcreationService.getCities(loggedinUser,Getstate,token).then(function (resp) {\r\n vm.presentcityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n //state \r\n vm.getStateList = function (region) {\r\n ServiceCenter_FormcreationService.getState(loggedinUser, token, region).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.allStates = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n ///Executes when the user select the city\r\n vm.selectCity = function (city) {\r\n ServiceCenter_FormcreationService.getAllPincode(city).then(function (resp) {\r\n vm.pincodeList = resp.data;\r\n if (!resp.data) {\r\n var pincodeArray = [];\r\n pincodeArray.push({\r\n pincode: city\r\n });\r\n vm.pincodeList = pincodeArray;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.selectCityforPresent = function (loggedinUser, city) {\r\n ServiceCenter_FormcreationService.getAllPincode(loggedinUser, city.ID).then(function (resp) {\r\n vm.presentpincodeList = resp.data;\r\n if (!resp.data) {\r\n var pincodeArray = [];\r\n pincodeArray.push({\r\n pincode: city\r\n });\r\n vm.pincodeList = pincodeArray;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n \r\n vm.EditData=function(index){\r\n vm.SelectedAccount = vm.workAreas[index]; \r\n vm.territoryStates(vm.SelectedAccount.AccountId);\r\n vm.selectedStateForTerritory(vm.SelectedAccount.State);\r\n vm.selectedCityForTerritory(vm.SelectedAccount.City); \r\n }\r\n\r\n vm.AccountChange=function (){ \r\n for (var i = 0; i < vm.RemainingCHDAccounts.length; i++) {\r\n var Acc = vm.RemainingCHDAccounts[i];\r\n if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n vm.SelectedAccount.AccountId = Acc.AccountId;\r\n // vm.SelectedAccount = Acc; \r\n // break;\r\n }\r\n }\r\n vm.territoryStates(vm.SelectedAccount.AccountId);\r\n }\r\n vm.territoryStates = function (AccountId) {\r\n vm.AccountIDforTerritory = AccountId;\r\n ServiceCenter_FormcreationService.getTerritoryStates(loggedinUser, token,AccountId,vm.Role).then(function(resp) {\r\n vm.stateListTerritory = resp.data;\r\n if(resp.status == 200) {\r\n // vm.territoryCity();\r\n }\r\n })\r\n }\r\n\r\n vm.selectedStateForTerritory = function (state) {\r\n vm.territoryCity(state,vm.AccountIDforTerritory);\r\n }\r\n vm.territoryCity = function (state,AccountId) {\r\n vm.StateForTerritoryCity = state;\r\n ServiceCenter_FormcreationService.getTerritoryCity(loggedinUser, token,AccountId,state,vm.Role).then(function(resp) {\r\n vm.cityListTerritory = resp.data;\r\n if(resp.status == 200) {\r\n \r\n\r\n }\r\n })\r\n }\r\n\r\n vm.selectedCityForTerritory = function (City) {\r\n vm.territoryPincodes(City);\r\n }\r\n vm.uniPin = [];\r\n vm.territoryPincodes = function (City) {\r\n ServiceCenter_FormcreationService.getTerritoryPincodes(loggedinUser, token,vm.AccountIDforTerritory,vm.StateForTerritoryCity,City,vm.Role).then(function(resp) {\r\n // if(resp.status == 200) {\r\n vm.pinCodeListTerritory = resp.data;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n var Acc = vm.workAreas[i];\r\n if((Acc.City == City) && (Acc.AccountId ==vm.AccountIDforTerritory) && (Acc.State == vm.StateForTerritoryCity)) {\r\n for (var j = 0; j < vm.pinCodeListTerritory.length; j++) { \r\n var pinCodeUnique = vm.pinCodeListTerritory[j];\r\n for (var k = 0; k < Acc.PinCode.length; k++) { \r\n if( pinCodeUnique == Acc.PinCode[k]) {\r\n vm.pinCodeListTerritory.splice(j,1);\r\n // break; \r\n }\r\n }\r\n \r\n }\r\n }\r\n }\r\n // }\r\n })\r\n }\r\n\r\n vm.addMoreAccount = function(){\r\n vm.SelectedAccount=[]; \r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n var Acc = vm.workAreas[i];\r\n for (var j = 0; j < vm.RemainingCHDAccounts.length; j++) { \r\n // console.log('acc = ' + Acc.AccountId + \" vm.RemainingCHDAccounts[j].AccountId \" + vm.RemainingCHDAccounts[j].AccountId + 'len ' + j) \r\n if(Acc.AccountId == vm.RemainingCHDAccounts[j].AccountId ) {\r\n // vm.RemainingCHDAccounts.splice(j,1); \r\n //break; \r\n }\r\n }\r\n }\r\n }\r\n vm.MapPincodeModelOpen = function () {\r\n vm.AddPincodeModel = $uibModal.open({\r\n templateUrl: 'Addpincode.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n \r\n vm.CloseMapPincodeModel = function () {\r\n vm.AddPincodeModel.close();\r\n vm.mapstate = \"\";\r\n vm.mapcity = \"\";\r\n vm.cityListForPincode = [];\r\n vm.mappincode = \"\";\r\n vm.allPincodes = [];\r\n };\r\n\r\n\r\n vm.UpdateAllHDAccountConfig = function(index){ \r\n vm.showAction = true; \r\n var checkAccount = false;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n if(vm.SelectedAccount.PinCode == undefined) {\r\n vm.showFailure(\"Failed\", \"Please add Account details with Locations\");\r\n vm.workAreas[index].edit = true;\r\n }\r\n // vm.workAreas[i] == vm.SelectedAccount;\r\n // vm.workAreas[i].AccountSkillSet = vm.SelectedSkills;\r\n // vm.workAreas[i].AccountLocations = vm.SelectedLocations;\r\n // var Acc = vm.workAreas[i];\r\n // if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n // vm.workAreas[i] == vm.SelectedAccount;\r\n // checkAccount = true;\r\n // break;\r\n // }\r\n }\r\n if(checkAccount == false && index == undefined) { \r\n vm.SelectedAccountObj = Object.assign({}, vm.SelectedAccount); \r\n if(vm.SelectedAccountObj.AccountName && vm.SelectedAccountObj.State && vm.SelectedAccountObj.City && vm.SelectedAccountObj.PinCode) {\r\n vm.workAreas.push(vm.SelectedAccountObj);\r\n } \r\n else {\r\n vm.showFailure(\"Failed\", \"Please add Account details with Locations\");\r\n vm.workAreas[i].edit = true;\r\n \r\n } \r\n \r\n }\r\n else {\r\n var Acc = vm.workAreas[i];\r\n }\r\n vm.showEditList = false; \r\n }\r\n\r\n vm.getAllSkill();\r\n vm.getStateList(\"INDIA\");\r\n }\r\n});\r\n\nangular.module('inspinia').service('ServiceCenterTicketListService', function (ApiURL, AcessoriesURL, SchedulingAPI, $log, FreelancerURL, $http, MMFCRMURL, $window, PublicApiURL, ActivityURL, LocationURL) {\r\n\r\n this.downloadOnSiteReport = function (loggedInUserId, token, TicketId) {\r\n var url = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n });\r\n }\r\n\r\n this.updatePlannedClosure = function (loggedinUser, data, token, success, failure) {\r\n $http.put(ApiURL + '/api/Ticket/UpdatePlannedClosureDate', data,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (res && res.status == 200 && res) {\r\n success(res.data);\r\n } else {\r\n failure(\"Failed\", res.data.Message);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job, server is not responding correctly.\");\r\n });\r\n }\r\n\r\n this.VendorManagerAssignJobTeam = function (UserID, loggedInUserId,TicketId,jobAccountId,token) {\r\n var url = ApiURL + '/api/Ticket/'+ UserID +'/'+ loggedInUserId +'/'+ TicketId +'/'+ jobAccountId +'/AssignTicketByVendorFromMobile';\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.getStates = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.getAttachment = function (loggedInUserId, token, TicketId) {\r\n var url = ApiURL + '/api/Report/GetAttachmentsByTicketIdWithSignoffReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.viewReportPdf = function (loggedInUserId, token, fileName) {\r\n debugger\r\n var url = ApiURL + '/api/Image?fileName=' + fileName;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.getAllJobTickets = function (supervisorId, startDate, endDate, token, itemNames, itemValues, templateCols, templateItemNames, templateItemValues, DateField) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n\r\n this.getRejectHistory = function (TicketId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/TicketRejectionHistory?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n\r\n });\r\n }\r\n\r\n this.getAllJobTicketsListing = function (loggedinUser, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, DateField, PageIndex, PageSize, SortType, SortField) {\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRangeWithDynaPagingForServiceCentreListing?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + loggedinUser + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&SortType=' + SortType + '&SortField=' + SortField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.getAllJobTicketsDashboard = function (loggedinUser, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, DateField, PageIndex, PageSize, SortType, SortField) {\r\n url = ApiURL + '/api/Ticket/GetTicketDashboradbyDateRangeWithDynaPagingForServiceCentre?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + loggedinUser + '&itemNames=&itemValues=&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&SortType=' + SortType + '&SortField=' + SortField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.AutoBroadcastAllNewJobsManualMode = function (loginUserId, ticketId, token) {\r\n var url = '';\r\n url = SchedulingAPI + '/api/AutoJobBroadcast/BroadcastJobsManualMode';\r\n return $http.post(url, ticketId, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.downloadTicketsReports = function (loggedInUserId, fromDate, toDate, itemNames, itemValues, templateCols) {\r\n var url = PublicApiURL + \"/api/Report/DownloadAllTicketReport?fromDate=\" + fromDate + '&toDate=' + toDate + '&reqUserId=' + loggedInUserId + \"&itemNames=\" + itemNames + '&itemValues=' + itemValues + '&templateCols=' + templateCols;\r\n $window.open(url);\r\n }\r\n\r\n this.getCustomerJobCardbyJobId = function (accountId, jobId, token, success, failure) {\r\n $http.get(ApiURL + \"/api/GetCustomerJobCardbyJobId/\" + jobId + \"/\" + accountId + \"/GetCustomerJobCardbyJobId\", {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': accountId\r\n }\r\n }).then(function (res) {\r\n if (res && res.data && success) {\r\n success(res.data);\r\n } else if (failure) {\r\n failure();\r\n }\r\n });\r\n }\r\n\r\n\r\n //http://localhost:56749/api/Ticket/DeleteTicket?UserId=asd&TicketId=asdasd\r\n this.DeleteTickets = function (userId, ticketId, token) {\r\n // var url = ApiURL + \"/api/Ticket/DeleteTicket?UserId=\"+userId+ \"&TicketId=\"+ticketId;\r\n // return $http.delete(url,{\r\n // headers:{'Content-Type':'application/json','Token':token}\r\n // })\r\n\r\n return $http({\r\n method: 'DELETE',\r\n url: ApiURL + \"/api/Ticket/DeleteTicket?UserId=\" + userId + \"&TicketId=\" + ticketId,\r\n data: {\r\n\r\n },\r\n headers: {\r\n 'Content-type': 'application/json', 'Token': token, 'UserId': userId\r\n }\r\n })\r\n }\r\n\r\n this.SetTicketExecutionMode = function (reqUserId, mode, ticektIds, token) {\r\n var url = ApiURL + \"/api/Ticket/SetTicketExecutionMode?ReqUserId=\" + reqUserId + \"&mode=\" + mode;\r\n return $http.put(url, {\r\n \"tickets\": ticektIds\r\n }, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': reqUserId\r\n }\r\n })\r\n }\r\n\r\n\r\n this.updateStartTime = function (ticketId, userId, startTime, token, success, failure) {\r\n var url = ApiURL + \"/api/Ticket/updatestartdate?requserid=\" + userId + \"&ticketid=\" + ticketId + \"&starttime=\" + encodeURI(startTime.format(\"YYYY-MM-DDThh:mm:ss.SSSZ\"));\r\n $http.put(url, {\r\n \"requserid\": userId,\r\n \"ticketid\": ticketId,\r\n \"starttime\": startTime.format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\")\r\n }, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': userId\r\n }\r\n }).then(function (res) {\r\n if (res) {\r\n success(res);\r\n } else {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n }\r\n }, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.updateTicketSettlement = function (data, token, loggedInUserId, success, failure) {\r\n\r\n var url = ApiURL + \"/api/Ticket/setsettlementstatus\"\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.ApproveJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.AcceptJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.RejectJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.ConvertToNewJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.PullBackTicket = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/returnticket';\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.ActionByVendor = function (loggedInUserId, ticketIds, action, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketIds + '/ActionByVendor?Action=' + action;\r\n return $http.put(url, {}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n\r\n this.UpdateHoldingStatus = function (loggedInUserId, ticketId, holdingStatus, reason, Remark, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/ticketholding?HoldingStatus=' + holdingStatus + '&Reason=' + reason + '&Remark=' + Remark;\r\n return $http.put(url, {}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.updateTicket = function (ticket, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket?reqUserId=' + loggedInUserId;\r\n return $http.put(url, ticket, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n // this.downloadMultipleReports = function (loggedInUserId, ticketId, reportMapperId, correlated) {\r\n // var url = PublicApiURL + \"/api/Report/\" + ticketId + \"/DownloadReportByTemplateName?reqUserId=\" + loggedInUserId + \"&correlated=\" + (correlated?\"True\":\"False\")\r\n\r\n // $window.open(url);\r\n // }\r\n\r\n // this.downloadInvoice = function (loggedInUserId, ticketId, correlated) {\r\n // var url = PublicApiURL + \"/api/Report/\" + ticketId + \"/DownloadInvoice?reqUserId=\" + loggedInUserId + \"&correlated=\" + (correlated?\"True\":\"False\")\r\n\r\n // $window.open(url);\r\n // }\r\n\r\n\r\n this.TicketFollowUp = function (data, files, token, loggedInUserId, success, failure) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"ActivityModel\", followupdata);\r\n\r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUserId }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n this.CreateProductReplacementRequest = function (data, loggedInUserId, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/CreateProductReplacementRequest'\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.CreateProductReplacementRequestAF = function (data, loggedInUserId, token) {\r\n var url = AcessoriesURL + '/api/MMFApprovalFlow/CreateProductReplacementRequest'\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.CreateGasChargerRefulingRequest = function (data, loggedInUserId, token) {\r\n var url = AcessoriesURL + '/api/MMFGasCharger/CreateGasChargerRefulingRequest'\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.ResubmitProductReplacementRequest = function (data, loggedInUserId, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/ResubmitProductReplacementRequest'\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.ResubmitProductReplacementRequestAF = function (data, loggedInUserId, token) {\r\n var url = AcessoriesURL + '/api/MMFApprovalFlow/ResubmitProductReplacementRequest'\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n \r\n this.TicketFollowUpWithoutDoc = function (data, token, loggedInUserId, success, failure) {\r\n var formdata = new FormData();\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"ActivityModel\", followupdata);\r\n\r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUserId }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n this.getBillExpenseByTicketID = function (loggedinUser, ticketID, token) {\r\n var url = ApiURL + '/api/Expense/GetByTicketId?ReqUserId=' + loggedinUser + '&TicketId=' + ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.getPdfReport = function (loggedinUser, ticketID, token) {\r\n var url = ApiURL + '/api/Report/GeneratePdfReportForApprovedJob?TicketId=' + ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.downloadImage = function (loggedInUserId, ticketIDs, token) {\r\n var url = PublicApiURL + \"/api/Report/DownloadDataCaptureInFieldPicture?reqUserId=\" + loggedInUserId + \"&TicketIds=\" + ticketIDs;\r\n $window.open(url);\r\n\r\n }\r\n\r\n this.downloadMultipleReport = function (loggedInUserId, ticketIDs) {\r\n var url = PublicApiURL + \"/api/Report/DownloadDataCaptureInFileAttachment?reqUserId=\" + loggedInUserId + \"&TicketIds=\" + ticketIDs;\r\n $window.open(url);\r\n\r\n }\r\n\r\n this.getAllCustomers = function (loggedInUser, token) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' + loggedInUser;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUser }\r\n });\r\n }\r\n\r\n this.GetAllProjects = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + loggedinUser + '/GetProjectsByUserId'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n // https://product.mymobiforce.com/FreelancerAPI/api/FreeLancerUser/F00000001230/U400000000001/byUserIdWithJobCount\r\n this.getUserProfileData = function (loggedinUser, userid, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userid + '/' + loggedinUser + '/byUserIdWithJobCount'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/User/235432432/byUserIdWithJobCount?reqUserId=34234\r\n this.getFixedUserProfileData = function (loggedinUser, userid, token) {\r\n var url = ApiURL + '/api/User/' + userid + '/byUserIdWithJobCount?reqUserId=' + loggedinUser\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n //https://product.mymobiforce.com/coreapi/api/Ticket/CancelTicket?reqUserId=dfgdfs&TicketId=dfgfdg\r\n this.CancelTicket = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/CancelTicket?reqUserId=' + loggedInUserId + '&TicketId=' + ticketId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.TBCCancelationAudit = function (data, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobAudit';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetCSATRatingByTicketID = function (loggedInUserId, ticketId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/GetCSATRatingByTicketID';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetCancellationReasons = function (status, loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketCancelationReasonController/' + loggedInUserId + '/getCancellationReasons?AtStatus=' + status;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.UpdateJobServerCancel = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobServerCancel';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetTicketByGeneralSearch = function (SearchText, PageIndex, PageSize, loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketByGeneralSearch?searchText=' + SearchText + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.AddSiteAuditwithAttachment = function (data, files, token, loggedinUser) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"AuditRequestModel\", followupdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/Upload/PostMediaFileWithAuditObject';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n //https://product.mymobiforce.com/coreapi/api/Invoice/GetTicketDataToRaiseInvoice\r\n this.GetTicketDataToRaiseInvoice = function (loggedinUser, ticketIdList, token) {\r\n var url = ApiURL + '/api/Invoice/GetTicketDataToRaiseInvoice'\r\n return $http.put(url, ticketIdList, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Invoice/MarkTicketsReadyToRaiseInvoice\r\n this.MarkTicketsReadyToRaiseInvoice = function (loggedinUser, ticketwithLineitemList, token) {\r\n var url = ApiURL + '/api/Invoice/MarkTicketsReadyToRaiseInvoice'\r\n return $http.put(url, ticketwithLineitemList, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n //https://product.mymobiforce.com/CoreAPI/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=FollowUp\r\n this.GetReasonsByStatus = function (loggedinUser, token, status) {\r\n var url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + status;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetPullBacknReasons = function (loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + 'PullBack';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetAllReprotingToUsersCRM = function (ticketId, loggedInUserId, token) {\r\n var url = MMFCRMURL + '/api/UserManagement/GetAllReprotingToUsersCRM?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.TransferCallToServiceCentre = function (ticketId,userId, loggedInUserId, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/TransferCallToServiceCentre?TicketId=' + ticketId + '&UserId=' + userId;\r\n return $http.put(url,null,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.RevertTBCAndReassign = function (ticketId,userId, loggedInUserId, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/RevertTBCAndReassign?TicketId=' + ticketId + '&UserId=' + userId;\r\n return $http.put(url,null,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.PullBackTicketFromTechnician = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/PullBackTicketFromTechnician';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n});\r\n\nangular.module('inspinia').controller('ServiceCenterTicketListController', function ($state,JobTicketViewService, ManualAssignationJobService, $rootScope, $stateParams, ServiceCenterTicketListService, $stateParams, UIURL, $log, $localStorage, ApiURL, DTColumnBuilder, $uibModal, $scope, toaster, $filter, DTColumnDefBuilder, $window, $timeout, PublicApiURL, jobBidCreationService,InvoiceUrl, ImageUrl) {\r\n var vm = this;\r\n\r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n if (!loggedInUserId) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.AccountId= $localStorage.accountConfig.AccountId;\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.NokiaTableHeaderChange = $localStorage.accountConfig.NokiaTableHeaderChange;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n var token = $localStorage.token;\r\n vm.Remarks = '';\r\n vm.selectedTemplates = '';\r\n vm.PaymentStatus = '';\r\n vm.GroupType = 'Individual|WorkOrderGroup'; \r\n vm.searchJobTypeText = '';\r\n vm.SettlementStatus = '';\r\n vm.primaryHoldReason = '';\r\n vm.primaryHoldRemark = '';\r\n vm.actionFlag = false;\r\n vm.editPermission = false;\r\n vm.ticketList = [];\r\n vm.mappermission =false;\r\n vm.approvalRemark = '';\r\n vm.RejectionRemark = '';\r\n vm.searchText = \"\";\r\n vm.searchStatusText = \"All Job Status\";\r\n vm.DateField=\"CreatedOn\";\r\n vm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n vm.previousPage = $localStorage.previousPage;\r\n vm.autoScheduleOn = $localStorage.accountConfig.IsAutoSchedulerOn;\r\n var approveModalInstance = {};\r\n var rescheduleAuditModalInstance = {};\r\n vm.UserProfileData = {};\r\n var supervisorId = $localStorage.loggedInUserId;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.loggedInAs = $localStorage.loggedinAs;\r\n vm.aproveMessage = 'Please Rate !';\r\n var itemNames = '';\r\n var itemValues = '';\r\n var templateItemNames = '';\r\n var templateItemValues = '';\r\n var textItemNames = '';\r\n var textItemValues = '';\r\n vm.AuditTicketId='';\r\n vm.JobcountbyStatus = 'Assigned';\r\n vm.IsSafetyAudit = 'Not Done';\r\n vm.ratingwarning=\"\";\r\n vm.SortType = \"desc\";\r\n vm.SortField = 'CreatedOn';\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n vm.ticketPageListCount = 10;\r\n vm.ticketListLength = 0;\r\n vm.pageindexCount = 0;\r\n var startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: moment().subtract(7, 'days'), endDate: moment() };\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n vm.closeSearchText = function(){\r\n vm.searchText=\"\";\r\n vm.searchJobTypeText = \"\";\r\n textItemNames = '';\r\n textItemValues = '';\r\n itemNames = 'GroupType';\r\n itemValues = 'Individual|WorkOrderGroup';\r\n templateItemNames = '';\r\n templateItemValues = '';\r\n vm.ticketList = [];\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }\r\n\r\n vm.searchTicket = function () { \r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }\r\n\r\n vm.FilterArray = function () {\r\n itemNames = '';\r\n itemValues = '';\r\n templateItemNames = '';\r\n templateItemValues = '';\r\n if(vm.JobcountbyStatus){\r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else\r\n {\r\n itemNames = 'Status';\r\n itemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n\r\n if(vm.searchJobTypeText){\r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',Skill';\r\n itemValues = itemValues + \",\" + vm.searchJobTypeText;\r\n }\r\n else\r\n {\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n }\r\n }\r\n\r\n if(vm.searchText)\r\n {\r\n itemNames = 'Search';\r\n itemValues = vm.searchText;\r\n templateItemNames = '';\r\n templateItemValues = ''; \r\n textItemNames = '';\r\n textItemValues = '';\r\n startDate = startDate;\r\n endDate = endDate;\r\n }\r\n\r\n }\r\n\r\n vm.getAllTicketsByStatus = function(status){\r\n vm.JobcountbyStatus = status;\r\n if(vm.JobcountbyStatus == 'Assigned'){\r\n vm.SortField = 'AssignationDateObj';\r\n }\r\n else if(vm.JobcountbyStatus == 'Hold'){\r\n vm.SortField = 'HoldDateObj';\r\n }\r\n else if(vm.JobcountbyStatus == 'Completed'){\r\n vm.SortField = 'CompletionDateObj';\r\n }\r\n else if(vm.JobcountbyStatus == 'ScheduleException'){\r\n vm.SortField = 'ScheduleException';\r\n }\r\n else if(vm.JobcountbyStatus == 'Rejected'){\r\n vm.SortField = 'RejectionDateObj';\r\n }\r\n vm.GroupType = 'Individual|WorkOrderGroup'; \r\n vm.searchText='';\r\n vm.searchJobTypeText = '';\r\n vm.FilterArray();\r\n PageIndex=1;\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }\r\n\r\n\r\n vm.SubmitFilter = function () {\r\n var startDate = moment($scope.dates.startDate).format('YYYY-MM-DD');\r\n var endDate = moment($scope.dates.endDate).format('YYYY-MM-DD');\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }\r\n\r\n\r\n vm.orderdetailsview = function (salesOrderDetail) {\r\n\t\t\t$state.go('index.WareHouseOrderDetailView', {\r\n\t\t\t\torder_id: salesOrderDetail\r\n\t\t\t}, {\r\n\t\t\t\treload: true\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.FilterArray();\r\n $scope.Userpagination = {};\r\n PageIndex=1;\r\n $scope.TicketTablepagination = {\r\n current: 1\r\n }; \r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n };\r\n\r\n // vm.getAllJobTickets = function (supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues) {\r\n // var templateCols = '';\r\n // if (vm.VerticalName == 'Spectro Labs') {\r\n // templateCols = 'Water Source Type,Source Type'\r\n // } else if (vm.VerticalName == 'IMS') {\r\n // templateCols = 'Call Type'\r\n // } else {\r\n // templateCols = '';\r\n // }\r\n // if (vm.VerticalName == 'Spectro Labs' && vm.Role == 'Project Manager') {\r\n // if (itemNames == \"\" && itemValues == \"\") {\r\n // itemNames = 'Status';\r\n // itemValues = 'Completed';\r\n // } else {\r\n // itemNames += ',Status';\r\n // itemValues += ',Completed';\r\n // }\r\n // }\r\n // ServiceCenterTicketListService.getAllJobTickets(supervisorId, startDate, endDate, token, itemNames, itemValues, templateCols, templateItemNames, templateItemValues, vm.DateField).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // vm.ticketList = resp.data;\r\n // vm.enableFilters = true;\r\n // vm.actionFlag = false;\r\n // $localStorage.TList = vm.ticketList;\r\n // $localStorage.AllJobType = vm.searchJobTypeText;\r\n // $localStorage.AllJobStatus = vm.searchStatusText;\r\n // angular.forEach(vm.ticketList, function (t) {\r\n // t.StartTime = moment(t.StartTime, \"YYYY-MM-DDThh:mm:ssZ\");\r\n // t.StartTimeD = t.StartTime.format(\"DD/MM/YYYY LTS\");\r\n // })\r\n // // $timeout(function(){\r\n // // vm.searchTable();\r\n // // },2000);\r\n // }\r\n\r\n // }, function () {\r\n // //$log.log('not working');\r\n // });\r\n // }\r\n\r\n $scope.totalTableTickets = 0;\r\n $scope.ticketTablePerPage = vm.ticketPageListCount ;\r\n $scope.TicketTablepagination = {\r\n current: 1\r\n }; \r\n\r\n vm.changeTicketPageListCount = function() { \r\n vm.GroupType = 'Individual|WorkOrderGroup';\r\n $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n PageSize = $scope.ticketTablePerPage;\r\n $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n vm.selectAll = false;\r\n }\r\n \r\n PageIndex=$scope.TicketTablepagination.current;\r\n $scope.TicketTablepageChanged = function(newPage) { \r\n vm.GroupType = 'Individual|WorkOrderGroup'; \r\n PageIndex = newPage;\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsListing(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n };\r\n\r\n\r\n\r\n vm.getAllJobTicketsListing = function (supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize) {\r\n vm.FilterArray();\r\n var templateCols=\"\";\r\n PageIndex = PageIndex?PageIndex:1;\r\n ServiceCenterTicketListService.getAllJobTicketsListing(supervisorId, startDate, endDate, token, itemNames, itemValues,textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues,vm.DateField,PageIndex,PageSize,vm.SortType,vm.SortField).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ticketList = resp.data.LightTicketModels;\r\n $scope.totalTableTickets = resp.data.Count;\r\n if(vm.ticketList.length < vm.ticketPageListCount)\r\n vm.ticketListLength = $scope.totalTableUsers;\r\n else\r\n vm.ticketListLength = PageIndex * vm.ticketPageListCount;\r\n if(PageIndex==1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex-1) * vm.ticketPageListCount) + 1);\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n vm.getAllJobTicketsDashboard = function(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize) { \r\n var templateCols=\"\";\r\n PageIndex = PageIndex?PageIndex:1;\r\n ServiceCenterTicketListService.getAllJobTicketsDashboard(supervisorId, startDate, endDate, token, itemNames, itemValues,textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues,vm.DateField,PageIndex,PageSize,vm.SortType,vm.SortField).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TicketDashboarCounts = resp.data;\r\n vm.actionFlag = false;\r\n }\r\n });\r\n }\r\n \r\n vm.DefaultCall = function () { \r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }\r\n \r\n vm.DefaultCall();\r\n\r\n \r\n vm.ViewJob = function (ticket) {\r\n $state.go('index.JobDetailView', {\r\n ticketId: ticket\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n\r\n // Copied from main controller\r\n vm.implementSelectItems = function (itemList, scope) {\r\n scope.selectAll = false;\r\n scope.showMinus = false;\r\n scope.showAutoSchduleBtn = false;\r\n scope.downloadFlag = false;\r\n scope.downloadReportBtn = false;\r\n scope.deleteFlag = false;\r\n scope.selectRow = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.showMinus = false;\r\n scope.selectAll = false;\r\n scope.showAutoSchduleBtn = false;\r\n scope.downloadFlag = false;\r\n scope.downloadReportBtn = false;\r\n scope.deleteFlag = false;\r\n for(var j=0;j

\" + vm.name + \"

\" + ' ' + vm.contactnumber);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n\r\n }\r\n vm.makeJobMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.customerJobCard.ConsumerName + \"

\" + ' ' + vm.customerJobCard.JobId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.customerJobCard.ConsumerContact);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n }\r\n //It is used for the distance also \r\n function initMap() {\r\n var pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n pointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n pointC = new google.maps.LatLng(vm.JobStartLatitude,vm.JobStartLongitude),\r\n // center = new google.maps.LatLng(51.3, 0.8),\r\n myOptions = {\r\n zoom: 8,\r\n zoomControl: false,\r\n scaleControl: true,\r\n mapTypeControl: false,\r\n streetViewControl: false,\r\n gestureHandling: 'greedy',\r\n // center: center,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n },\r\n\r\n map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n // Instantiate a directions service.\r\n directionsService = new google.maps.DirectionsService,\r\n directionsDisplay = new google.maps.DirectionsRenderer({\r\n map: map\r\n }),\r\n duration = document.getElementById('duration');\r\n distance = document.getElementById('distance');\r\n flightPath = new google.maps.Polyline({\r\n path: [pointA, pointB, pointC],\r\n // geodesic: true,\r\n strokeColor: 'red',\r\n });\r\n $scope.InfoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n // click on marker B to get route from A to B\r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, icons.start, icons.end, distance, duration, map);\r\n \r\n if(vm.JobStartLatitude !=\"0\" && vm.JobStartLongitude !=\"0\"){\r\n \r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointB, pointC, icons.end, icons.StartTravel, distance, duration, map);\r\n }\r\n \r\n var travelMode = \"DRIVING\";\r\n var icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n }\r\n function calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, iconsStartA, iconsStartB, distance, duration, map) {\r\n var selectedMode = \"DRIVING\";\r\n directionsService.route({\r\n origin: pointA,\r\n destination: pointB,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n travelMode: google.maps.TravelMode[selectedMode]\r\n }, function (response, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n new google.maps.DirectionsRenderer({\r\n map: map,\r\n directions: response,\r\n suppressMarkers: true,\r\n polylineOptions: {\r\n strokeColor: \"#000000\"\r\n }\r\n });\r\n var leg = response.routes[0].legs[0];\r\n //outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n distance.innerHTML = response.routes[0].legs[0].distance.text;\r\n duration.innerHTML = response.routes[0].legs[0].duration.text;\r\n vm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n vm.makeJobMarker(leg.start_location, iconsStartA, map);\r\n vm.makeUserMarker(leg.end_location, iconsStartB, map);\r\n // vm.StartJobMarker(leg.startjob_location, icons.start, map);\r\n } else {\r\n window.alert('Directions request failed due to ' + status);\r\n }\r\n });\r\n }\r\n\r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/JOb_icon.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/delivery-man1.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n StartTravel: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/Delivery_pre.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n /* vm.getReadableDate = function(){\r\n var time = new moment(vm.customerJobCard.JobDateTime, \"YYYY-MM-DDThh:mm:ss\");\r\n return time.format(\"DD MMM YYYY\")+\" at \"+time.format(\"LTS\"); \r\n } */\r\n vm.getCustomerJobCard = function () {\r\n ServiceCenterTicketListService.getCustomerJobCardbyJobId(loggedInUserId, vm.trackingTicketId, token, function (data) {\r\n vm.JobLatitude = data.JobLatitude;\r\n vm.JobLongitude = data.JobLongitude;\r\n vm.FELatitude = data.FELatitude;\r\n vm.FELongitude = data.FELongitude;\r\n vm.JobStartLatitude = data.JobStartLatitude;\r\n vm.JobStartLongitude = data.JobStartLongitude;\r\n vm.contactnumber = data.FEContactNumber;\r\n vm.jobtype = data.Description;\r\n vm.name = data.FEName;\r\n // vm.mapMarkers=[];\r\n initMap();\r\n $log.log(\"res of getCustomerJobCard=\" + data);\r\n vm.customerJobCard = data;\r\n if ($localStorage.rateJobParams) {\r\n vm.customerJobCard.userRole = $localStorage.Role;\r\n vm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n vm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n delete $localStorage.rateJobParams;\r\n }\r\n if (data && data.JobStatus == 'PaymentDone') {\r\n\r\n }\r\n }, function () {\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n //}\r\n vm.disableCreateButton = false;\r\n\r\n vm.DisableCreateButton = function (disable) {\r\n if (disable) {\r\n vm.disableCreateButton = true;\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n }\r\n }\r\n vm.OpenReplaceModel = function (replacedetails) {\r\n vm.replaceticketid = replacedetails\r\n\t\t\tReplaceModel = $uibModal.open({\r\n\t\t\t templateUrl: 'ReplacementStatus.html',\r\n\t\t\t backdrop: 'static',\r\n\t\t\t scope: $scope,\r\n\t\t\t});\r\n\t\t }\r\n\t \r\n\t\t vm.closeRequestUpdateModel = function () {\r\n vm.DisableCreateButton(false);\r\n ReplaceModel.close();\r\n vm.strReplacementComment = '';\r\n vm.relacementoption = '';\r\n\t\t }\r\n vm.gasChargeticketid = \"\";\r\n vm.OpenGasChargingModel = function (gasChargeticketid) {\r\n vm.gasChargeticketid = gasChargeticketid\r\n GasChargingModel = $uibModal.open({\r\n templateUrl: 'GasChargingRequestApproval.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n \r\n vm.closeGasChargingModel = function () {\r\n vm.DisableCreateButton(false);\r\n GasChargingModel.close();\r\n vm.strGasChargingComment = '';\r\n vm.reasonofGasCharge = '';\r\n }\r\n\r\n\r\n vm.CreateGasChargerRefulingRequest = function () {\r\n vm.GasCharging_Form.submitted = true;\r\n if (vm.GasCharging_Form.$valid) {\r\n vm.DisableCreateButton(true);\r\n var data = {\r\n \"TicketId\": vm.gasChargeticketid,\r\n \"Comment\": vm.strGasChargingComment,\r\n \"Reason\": vm.reasonofGasCharge\r\n }\r\n ServiceCenterTicketListService.CreateGasChargerRefulingRequest(data, loggedInUserId, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Gas charging request raised successfully.\");\r\n vm.closeGasChargingModel();\r\n $timeout(function () {\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 2000);\r\n }\r\n else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n };\r\n\r\n\r\n vm.CreateProductReplacementRequest = function () {\r\n vm.Replacereason_Form.submitted = true;\r\n if (vm.Replacereason_Form.$valid) {\r\n vm.DisableCreateButton(true);\r\n var replacementreasondata = {\r\n \"strTicketId\": vm.replaceticketid,\r\n \"strReplacementComment\": vm.strReplacementComment,\r\n \"strReplacementReason\": vm.relacementoption,\r\n }\r\n var serviceFunction = (vm.accountConfig.AccountId !== '380' && vm.accountConfig.AccountId !== '383' && vm.accountConfig.AccountId !== '390')\r\n ? ServiceCenterTicketListService.CreateProductReplacementRequest \r\n : ServiceCenterTicketListService.CreateProductReplacementRequestAF;\r\n \r\n serviceFunction(replacementreasondata, loggedInUserId, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Product replacement request raised.\");\r\n vm.closeRequestUpdateModel();\r\n $timeout(function () {\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000);\r\n }\r\n else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n };\r\n \r\n\r\n vm.OpenResubmitReplaceModel = function (resubmitreplacedetails) {\r\n vm.resubmitReplacementId = resubmitreplacedetails;\r\n ResubmitReplaceModel = $uibModal.open({\r\n templateUrl: 'Resubmit.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n \r\n vm.closeResubmitRequestUpdateModel = function () {\r\n vm.DisableCreateButton(false);\r\n ResubmitReplaceModel.close();\r\n vm.resubmitstrReplacementComment = '';\r\n vm.resubmitReplacementId = '';\r\n }\r\n\r\n vm.ResubmitProductReplacementRequest = function () {\r\n vm.Resubmit_Form.submitted = true;\r\n if (vm.Resubmit_Form.$valid) {\r\n vm.DisableCreateButton(true);\r\n var resubmitreplacementreasondata = {\r\n \"strProductReplacementId\": vm.resubmitReplacementId,\r\n \"strReplacementComment\": vm.resubmitstrReplacementComment,\r\n \"strReplacementReason\": vm.resubmitrelacementoption,\r\n }\r\n var ResubmitProductReplacementRequest = (vm.accountConfig.AccountId !== '380' && vm.accountConfig.AccountId !== '383' && vm.accountConfig.AccountId !== '390')\r\n ? ServiceCenterTicketListService.ResubmitProductReplacementRequest \r\n : ServiceCenterTicketListService.ResubmitProductReplacementRequestAF;\r\n\r\n ResubmitProductReplacementRequest(resubmitreplacementreasondata, loggedInUserId, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Product replacement request raised.\");\r\n vm.closeResubmitRequestUpdateModel();\r\n $timeout(function () {\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000);\r\n }\r\n else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n \r\n }\r\n }\r\n \r\n\r\n vm.OpenTracking = function (ticket,tickets) {\r\n \r\n if(tickets && tickets.UserName){\r\n vm.mappermission =true;\r\n }\r\n else{\r\n vm.mappermission =false;\r\n\r\n }\r\n vm.trackingTicketId = ticket;\r\n Tracking = $uibModal.open({\r\n templateUrl: 'Tracking.html',\r\n size: 'lg',\r\n scope: $scope,\r\n controller: ModelInstanceOfMap\r\n })\r\n }\r\n vm.CloseTracking = function () {\r\n Tracking.close();\r\n }\r\n\r\n vm.getTemplateCallback = function (templates) {\r\n vm.templateListData = templates;\r\n vm.templateList = [];\r\n angular.forEach(vm.templateListData, function (d) {\r\n if (d.Skill != 'Water Sample Collection') {\r\n vm.templateList.push(d);\r\n }\r\n })\r\n }\r\n vm.TicketBreachValueconver = function(TicketBreachValue)\r\n {\r\n var TicketBreachValueInString=\"\"; \r\n if(TicketBreachValue==0)\r\n TicketBreachValueInString = \"Not Breached\";\r\n if(TicketBreachValue==1)\r\n TicketBreachValueInString = \"Breached\";\r\n \r\n return TicketBreachValueInString;\r\n }\r\n vm.CreateLabBooking = function () {\r\n vm.ticketData.Template = vm.selectedTemplates;\r\n console.log('vm.ticketData', vm.ticketData);\r\n }\r\n\r\n vm.OpenApproveModal = function (currentJOb) \r\n {\r\n \r\n vm.CurrentJob = currentJOb;\r\n vm.RatingOfTicket = ''; \r\n if(vm.CurrentJob.IsLineItemAvailable==true && vm.CurrentJob.IsDynamicPriceApproved==false){\r\n vm.aproveMessage = 'Please approve dynamic pricing line item under the ticket details section!';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'dynamic_price_approved_model.html',\r\n scope: $scope\r\n });\r\n }\r\n else{\r\n vm.aproveMessage = 'Please Rate !';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'approve_model.html',\r\n scope: $scope\r\n });\r\n }\r\n \r\n }\r\n\r\n vm.CloseModal = function () {\r\n approveModalInstance.close();\r\n }\r\n\r\n vm.TBCCancelationAudit = function(){ \r\n vm.tbccancellationReasonsForm.submitted = true;\r\n // if(vm.CancellationReasons == 'Customer not responding' || vm.CancellationReasons == 'Customer denied sharing code'){\r\n vm.tbccancellationReasonsForm.$valid = true\r\n if (vm.tbccancellationReasonsForm.$valid) { \r\n if(vm.closureCode){\r\n vm.IsClosuerCodeAvailable = true;\r\n }\r\n else{\r\n vm.IsClosuerCodeAvailable = false;\r\n }\r\n var data = {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"AuditValue\": vm.TBCCancelationModel,\r\n \"IsApplicableForAutoPayment\": vm.IsApplicableForAutoPayment,\r\n \"IsCommissionDetect\": vm.IsCommissionDetect,\r\n \"ClosuerCode\": vm.closureCode,\r\n \"IsClosuerCodeAvailable\" : vm.IsClosuerCodeAvailable,\r\n \"CancelReason\" : vm.CancellationReasons,\r\n }\r\n approveModalInstance.close();\r\n ServiceCenterTicketListService.TBCCancelationAudit(data,loggedInUserId,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n vm.closureCode = \"\";\r\n vm.IsClosureCodeNeeded = \"\";\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000); \r\n }\r\n });\r\n }\r\n // }\r\n }\r\n\r\n\r\n vm.OpenRescheduleAuditModal = function (currentAuditJOb) \r\n { \r\n vm.CurrentAuditJob = currentAuditJOb;\r\n vm.RatingOfTicket = '';\r\n vm.RescheduleAuditTicketId = vm.CurrentAuditJob.TicketId;\r\n vm.AuditPrimaryReason = vm.CurrentAuditJob.PrimaryReason;\r\n rescheduleAuditModalInstance = $uibModal.open({\r\n templateUrl: 'reschedule_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n\r\n vm.RescheduleAuditCloseModal = function () {\r\n rescheduleAuditModalInstance.close();\r\n }\r\n \r\n vm.JobRescheduleAudit = function()\r\n {\r\n rescheduleAuditModalInstance.close();\r\n ServiceCenterTicketListService.TBCCancelationAudit(vm.RescheduleAuditModel,vm.RescheduleAuditTicketId,loggedInUserId,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n }\r\n });\r\n }\r\n vm.OpenTicketRatingModal = function (currentTicketJob) \r\n { \r\n ServiceCenterTicketListService.GetCSATRatingByTicketID(loggedInUserId, currentTicketJob.TicketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TicketRatingList=resp.data;\r\n ticketRatingModalInstance = $uibModal.open({\r\n templateUrl: 'ticket_rating_model.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n }, function () {\r\n \r\n });\r\n } \r\n \r\n\r\n vm.TicketRatingCloseModal = function () {\r\n ticketRatingModalInstance.close();\r\n }\r\n\r\n \r\n\r\n vm.NoLatLongModal = function () {\r\n NoLatLongModalInstance = $uibModal.open({\r\n templateUrl: 'latLong.html',\r\n scope: $scope\r\n });\r\n\r\n }\r\n\r\n vm.NoLatLongModalModal = function () {\r\n NoLatLongModalInstance.close();\r\n }\r\n\r\n\r\n vm.OpenSettlementModal = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n vm.PaymentStatus = '';\r\n vm.Remarks = '';\r\n\r\n settlementModalInstance = $uibModal.open({\r\n templateUrl: 'settlement_model.html',\r\n scope: $scope\r\n });\r\n\r\n }\r\n\r\n vm.SettlementCloseModal = function () {\r\n settlementModalInstance.close();\r\n }\r\n\r\n vm.settlemenTicket = function (status, ticketId, remarks, userId) {\r\n settlementModalInstance.close();\r\n var settlementData = {};\r\n settlementData.PaymentStatus = status;\r\n settlementData.ReqUserId = loggedInUserId;\r\n settlementData.TicketId = ticketId;\r\n settlementData.Remarks = remarks;\r\n settlementData.FEId = userId;\r\n settlementData.Status = \"Done\";\r\n ServiceCenterTicketListService.updateTicketSettlement(settlementData, token, loggedInUserId, function (res) {\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job settlement successfully done.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to settlement payment. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n\r\n }\r\n\r\n\r\n vm.DeleteTicket = function () {\r\n var ticketId = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId.push(t.TicketId);\r\n }\r\n })\r\n // ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n\r\n if (ticketId != null && ticketId.length == 1) {\r\n ServiceCenterTicketListService.DeleteTickets(loggedInUserId, ticketId, token).then(function (resp) {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n if (resp && resp.status == 202) {\r\n vm.showSuccess(\"Deleted\", resp.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"You can delete only one ticket at a time.\");\r\n }\r\n }\r\n\r\nvm.NoLatLongTickits=\"\";\r\n vm.AutoSchedule = function () {\r\n var ticketId = [];\r\n var notlatlongticketId = \"\";\r\n angular.forEach(vm.ticketList, function (t) { \r\n if (t.checked) {\r\n if(t.Latitude==\"\" || t.Latitude==\"0.0\" || t.Latitude==\"0\" || t.Longitude==\"\" || t.Longitude==\"0.0\" || t.Longitude==\"0\")\r\n {\r\n notlatlongticketId = t.TicketId + \", \";\r\n }\r\n else\r\n { \r\n ticketId.push(t.TicketId); \r\n }\r\n \r\n }\r\n })\r\n\r\n if (ticketId != null) {\r\n ServiceCenterTicketListService.SetTicketExecutionMode(loggedInUserId, \"Auto\", ticketId, token).then(function (resp) {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Scheduled Tickets\", resp.data.toString());\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else {\r\n vm.showFailure(\"Failed to schedule tickets\", resp.data.toString());\r\n }\r\n })\r\n }\r\n if(notlatlongticketId !=\"\")\r\n {\r\n vm.NoLatLongTickits = notlatlongticketId;\r\n vm.NoLatLongModal();\r\n \r\n \r\n } \r\n }\r\n\r\n\r\n vm.OpenFollowUpModel = function (ticketId) {\r\n vm.followup = '';\r\n vm.tickId = ticketId;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n }\r\n\r\n vm.CloseFollowUpModel = function () {\r\n vm.primaryHoldReason='';\r\n vm.primaryHoldRemark='';\r\n vm.followFiles = null; \r\n FollowUpModel.close();\r\n }\r\n\r\n vm.RejectJobModel = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n RejectJobModel = $uibModal.open({\r\n templateUrl: 'Rejectjob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.ConvertToNewJob = function(currentJOb){\r\n\r\n vm.CurrentJob = currentJOb; \r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"New\" \r\n };\r\n ServiceCenterTicketListService.ConvertToNewJob(data, token, loggedInUserId, function (res) {\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job converted successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to convert job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.CloseRejectModel = function () {\r\n RejectJobModel.close();\r\n }\r\n\r\n var ModalInstanceCtrlFollowUp = function ($scope, $rootScope, $uibModalInstance) {\r\n vm.updateFollowUpStatus = function () {\r\n var data = {};\r\n data = {\r\n \"userId\": loggedInUserId,\r\n \"dateTime\": \"\",\r\n \"activity\": vm.followup,\r\n \"action\": \"FOLLOW_UP\",\r\n \"userName\": \"\",\r\n \"ticketId\": vm.tickId,\r\n \"primaryReason\": \"\",\r\n \"SecondryReason\": \"\",\r\n \"ReasonComment\": \"\"\r\n }\r\n vm.CloseFollowUpModel();\r\n ServiceCenterTicketListService.TicketFollowUp(data, token, loggedInUserId).then(function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n }\r\n\r\n vm.ApproveJob = function () {\r\n \r\n if (vm.RatingOfTicket) {\r\n var jobwinrate = 0.0;\r\n if(vm.Winrate == null || vm.Winrate == 0 || vm.Winrate =='')\r\n jobwinrate = 0.0;\r\n else\r\n jobwinrate = vm.Winrate; \r\n\r\n \r\n\r\n approveModalInstance.close();\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Approved\",\r\n \"JobWinRate\" :parseFloat(jobwinrate.toFixed(2)),\r\n \"TechnicianRating\": vm.RatingOfTicket.toString(),\r\n \"ApprovalRemark\": vm.approvalRemark.toString(),\r\n \"IsSafetyAudit\":vm.IsSafetyAudit\r\n };\r\n ServiceCenterTicketListService.ApproveJob(data, token, loggedInUserId).then(function (res) {\r\n if(res && res.data==\"Please enter atleast one Line Item to Approve this job \")\r\n {\r\n vm.showFailure(\"Success\", \"Please enter atleast one Line Item to Approve this job.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000)\r\n }\r\n else if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job approved successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000) } \r\n else if (res && res.data && res.data.Message) {\r\n\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n } else {\r\n vm.ratingwarning=\"Please rate the technician.\";\r\n }\r\n }\r\n\r\n vm.AcceptJob = function (currentJOb) {\r\n \r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Accepted\" \r\n };\r\n ServiceCenterTicketListService.AcceptJob(data, token, loggedInUserId, function (res) {\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job accepted successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to accept job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n\r\n vm.reAssignJob = function (currentJOb) {\r\n \r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Assigned\" \r\n };\r\n ServiceCenterTicketListService.AcceptJob(data, token, loggedInUserId, function (res) {\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job reassigned successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000)\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to reassign job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n\r\n vm.cloneTicket = function (currentJOb) {\r\n \r\n vm.CurrentJob = currentJOb;\r\n $state.go('index.JobBidCreation', { \r\n cloneticketid:vm.CurrentJob.TicketId \r\n },\r\n {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n }); \r\n \r\n }\r\n\r\n vm.RejectJob = function () {\r\n if(!vm.RejectionRemark)\r\n {\r\n vm.showFailure(\"Failed\", \"Please comment on rejection.\");\r\n return;\r\n }\r\n RejectJobModel.close(); \r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Rejected\", \r\n \"RejectionRemark\": vm.RejectionRemark.toString()\r\n };\r\n ServiceCenterTicketListService.RejectJob(data, token, loggedInUserId, function (res) {\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job rejected successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000)\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n\r\n // vm.PullBackTicket = function (ticketId) {\r\n // ServiceCenterTicketListService.PullBackTicket(loggedInUserId, ticketId, token).then(function (resp) {\r\n // if (resp && resp.status == 200) {\r\n // vm.showSuccess(\"Success\", \"Job has pull backed successfully.\")\r\n // $timeout(function () {\r\n // vm.FilterArray();\r\n // vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // }, 2000)\r\n // } \r\n // })\r\n // }\r\n vm.toBeAssignedTicketId = \"\";\r\n vm.teamToBeAssignedList = [];\r\n vm.ReallocateTicket = function(ticketId){\r\n vm.toBeAssignedTicketId = ticketId;\r\n vm.teamToBeAssignedList = [];\r\n ManualAssignationJobService.GetAllReprotingToUsersCRM(vm.toBeAssignedTicketId,loggedInUserId, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n if (Array.isArray(resp.data) && resp.data.length > 0) {\r\n vm.teamToBeAssignedList = resp.data;\r\n reallocateModalInstance = $uibModal.open({\r\n templateUrl: 'call_reallocate_model.html',\r\n scope: $scope\r\n }); \r\n } else {\r\n vm.showFailure(\"Failed\",resp.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n vm.reallocateTicketCloseModal = function () {\r\n reallocateModalInstance.close();\r\n vm.disableCreateButton = false;\r\n vm.toBeAssignedTicketId = \"\";\r\n vm.teamToBeAssignedList = [];\r\n }\r\n\r\n vm.AllocateTicket = function(ticketId){\r\n vm.toBeAssignedTicketId = ticketId;\r\n vm.teamToBeAssignedList = [];\r\n ManualAssignationJobService.GetAllReprotingToUsersCRM(vm.toBeAssignedTicketId,loggedInUserId, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n if (Array.isArray(resp.data) && resp.data.length > 0) {\r\n vm.teamToBeAssignedList = resp.data;\r\n allocateModalInstance = $uibModal.open({\r\n templateUrl: 'call_allocate_model.html',\r\n scope: $scope\r\n }); \r\n } else {\r\n vm.showFailure(\"Failed\",resp.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n vm.AllocateTicketCloseModal = function () {\r\n allocateModalInstance.close();\r\n vm.disableCreateButton = false;\r\n vm.toBeAssignedTicketId = \"\";\r\n vm.teamToBeAssignedList = [];\r\n }\r\n\r\n\r\n vm.OpenRevertAndReassignTicketModel = function(ticketId){\r\n vm.toBeAssignedTicketId = ticketId;\r\n vm.teamToBeAssignedList = [];\r\n ManualAssignationJobService.GetAllReprotingToUsersCRM(vm.toBeAssignedTicketId,loggedInUserId, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n if (Array.isArray(resp.data) && resp.data.length > 0) {\r\n vm.teamToBeAssignedList = resp.data;\r\n revertModalInstance = $uibModal.open({\r\n templateUrl: 'call_revert_model.html',\r\n scope: $scope\r\n }); \r\n } else {\r\n vm.showFailure(\"Failed\",resp.data);\r\n }\r\n }\r\n });\r\n }\r\n\r\n vm.closeRevertTicketModel = function () {\r\n revertModalInstance.close();\r\n vm.disableCreateButton = false;\r\n vm.toBeAssignedTicketId = \"\";\r\n vm.teamToBeAssignedList = [];\r\n }\r\n\r\n vm.RevertTBCAndReassign = function () {\r\n vm.revertForm.submitted = true;\r\n if (vm.revertForm.$valid) {\r\n vm.disableCreateButton = true;\r\n ServiceCenterTicketListService.RevertTBCAndReassign(vm.toBeAssignedTicketId, vm.selectTechnician, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Job has been re-assigned to the selected technician successfully.\");\r\n vm.closeRevertTicketModel();\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 2000)\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n });\r\n }\r\n }\r\n\r\n vm.TransferCallToServiceCentre = function () {\r\n vm.reallocationForm.submitted = true;\r\n if (vm.reallocationForm.$valid){\r\n vm.disableCreateButton = true;\r\n ServiceCenterTicketListService.TransferCallToServiceCentre(vm.toBeAssignedTicketId, vm.selectTechnician, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Job has reallocated successfully.\");\r\n vm.reallocateTicketCloseModal();\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 2000)\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n\r\n vm.AssignTicketsToFixedTeam = function () {\r\n vm.allocationForm.submitted = true;\r\n if (vm.allocationForm.$valid){\r\n vm.disableCreateButton = true;\r\n ServiceCenterTicketListService.VendorManagerAssignJobTeam(vm.selectTechnician, loggedInUserId, vm.toBeAssignedTicketId, vm.AccountId, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == '200') {\r\n vm.showSuccess(\"Success\", \"Job has allocated successfully.\");\r\n vm.AllocateTicketCloseModal();\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 2000)\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n vm.GetHoldReasons = function(){\r\n ServiceCenterTicketListService.GetReasonsByStatus(supervisorId, token, 'Hold').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForHold = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetHoldReasons();\r\n\r\n vm.OpenHoldUpModel = function (ticketId, holdstatus) {\r\n if(holdstatus == 'Unhold')\r\n {\r\n vm.UpdateHoldingStatus(ticketId, holdstatus);\r\n } \r\n else{\r\n vm.tickId = ticketId;\r\n $scope.holdstatus =holdstatus;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'HoldJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n } \r\n }\r\n vm.UpdateHoldReason=\"Update\";\r\n\r\n vm.UpdateHoldingStatus = function (ticketId, holdingStatus) {\r\n if(vm.primaryHoldReason!= null)\r\n {\t\r\n vm.enable1 = \"false\";\r\n vm.UpdateHoldReason=\"Updating...\";\r\n };\r\n ServiceCenterTicketListService.UpdateHoldingStatus(loggedInUserId, ticketId, holdingStatus,vm.primaryHoldReason,vm.primaryHoldRemark, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n vm.showSuccess('Job Hold/Unhold Status', 'Job has been updated successfully');\r\n vm.CloseFollowUpModel();\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000)\r\n } else {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n }\r\n }, function (err) {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n })\r\n }\r\n\r\n vm.downloadReport = function (ticketId, templateName) {\r\n if (templateName == 'Water Testing') {\r\n var urlWithFeasible = PublicApiURL + '/api/Report/' + ticketId + '/DownloadReportByTemplateName?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlWithFeasible, '_blank')\r\n } else {\r\n var urlForNonFeasible = PublicApiURL + '/api/Report/' + ticketId + '/Report?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlForNonFeasible, '_blank')\r\n }\r\n }\r\n\r\n vm.starChanged = function () {\r\n switch (vm.RatingOfTicket) {\r\n case '5':\r\n vm.aproveMessage = 'Excellent';\r\n break;\r\n\r\n case '4':\r\n vm.aproveMessage = 'Very Good';\r\n break;\r\n\r\n case '3':\r\n vm.aproveMessage = 'Good';\r\n break;\r\n\r\n case '2':\r\n vm.aproveMessage = 'Bad';\r\n break;\r\n\r\n case '1':\r\n vm.aproveMessage = 'Very Bad';\r\n break;\r\n }\r\n vm.ratingwarning=\"\";\r\n }\r\n vm.updateStartTime = function (ticket) {\r\n if (moment(ticket.StartTimeD, \"DD/MM/YYYY LTS\").format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\") != ticket.StartTime.format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\")) {\r\n ServiceCenterTicketListService.updateStartTime(ticket.TicketId, loggedInUserId, ticket.StartTime, token, function () {\r\n vm.showSuccess(\"Success\", \"Start time updated successfully.\");\r\n }, vm.showFailure);\r\n ticket.StartTimeD = ticket.StartTime.format(\"DD/MM/YYYY LTS\");\r\n }\r\n\r\n }\r\n\r\n vm.setDefaultValTocal = function (ticket) {\r\n if (ticket.StartTime) {\r\n ticket.StartTimeObj = moment(ticket.StartTime, \"YYYY-MM-DDThh:mm:ss.SSSZ\");\r\n }\r\n }\r\n\r\n vm.showStartTimeCal = function (ticket) {\r\n if (ticket) {\r\n angular.forEach(vm.ticketList, function (d) {\r\n d.calStartTime = false;\r\n });\r\n ticket.calStartTime = true;\r\n }\r\n }\r\n\r\n // vm.downloadMultipleReports = function () {\r\n // var ticketId = \"\";\r\n // var correlated = $localStorage.accountConfig.CorrelatedReports;\r\n // var reportMapperId = $localStorage.accountConfig.ReportMapperId;\r\n // angular.forEach(vm.ticketList, function (t) {\r\n // if (t.checked) {\r\n // ticketId += t.TicketId + \",\";\r\n // }\r\n // })\r\n // ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n // ServiceCenterTicketListService.downloadMultipleReports(loggedInUserId, ticketId, reportMapperId, correlated);\r\n // vm.showAutoSchduleBtn = false;\r\n // vm.downloadFlag = false;\r\n // vm.downloadReportBtn = false;\r\n // vm.deleteFlag = false;\r\n // vm.getAllJobTicketsListing(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // vm.getAllJobTicketsDashboard(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n // // }\r\n\r\n // vm.downloadInvoiceReport = function () {\r\n // var ticketId = \"\";\r\n // var correlated = $localStorage.accountConfig.CorrelatedReports;\r\n // // var reportMapperId = $localStorage.accountConfig.ReportMapperId;\r\n // angular.forEach(vm.ticketList, function (t) {\r\n // if (t.checked) {\r\n // ticketId += t.TicketId + \",\";\r\n // }\r\n // })\r\n // ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n // ServiceCenterTicketListService.downloadInvoice(loggedInUserId, ticketId, correlated);\r\n // }\r\n\r\n vm.showMultipleDownloadButton = function () {\r\n var ticketSelected = false;\r\n var IsReportMapper = false; \r\n vm.invoiceFlag = false;\r\n vm.deleteFlag = false;\r\n vm.actionFlag = false;\r\n var actionFlagList = [];\r\n var deleteFlagList = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n ticketSelected = ticketSelected || t.checked;\r\n if(t.checked){\r\n if(t.reportMapperId)\r\n {\r\n IsReportMapper = true;\r\n }\r\n else\r\n {\r\n IsReportMapper = false; \r\n }\r\n }\r\n if (vm.Role == 'Vendor Manager') {\r\n if (t.checked && t.Skill == 'Water Lab Test' && t.Status == 'Completed') {\r\n vm.invoiceFlag = true;\r\n } else if (t.checked && t.AcceptDate != null) {\r\n actionFlagList.push(false);\r\n } else if (t.checked && t.AcceptDate == null && t.Status == 'Rejected') {\r\n actionFlagList.push(false);\r\n } else if (t.checked && t.AcceptDate == null && t.Status == 'Assigned') {\r\n actionFlagList.push(true);\r\n }\r\n } else {\r\n if (t.checked && t.Skill == 'Water Lab Test' && t.Status == 'Completed') {\r\n vm.invoiceFlag = true;\r\n } else if (t.checked && t.Status == 'New') {\r\n deleteFlagList.push(true);\r\n // vm.deleteFlag = true;\r\n } else if (t.checked && t.Status != 'New') {\r\n // vm.deleteFlag = false;\r\n deleteFlagList.push(false);\r\n }\r\n }\r\n\r\n\r\n })\r\n if (deleteFlagList.includes(false)) {\r\n vm.deleteFlag = false;\r\n } else if (deleteFlagList.includes(true)) {\r\n vm.deleteFlag = true;\r\n } if (actionFlagList.includes(false)) {\r\n vm.actionFlag = false\r\n } else {\r\n vm.actionFlag = true;\r\n }\r\n return IsReportMapper && ticketSelected && $localStorage.accountConfig != null && $localStorage.accountConfig.CorrelatedReports != null && $localStorage.accountConfig.ReportMapperId != null;\r\n }\r\n // vm.showInvoiceButton = function () {\r\n // var invoiceFlag = false;\r\n // angular.forEach(vm.ticketList, function (t) {\r\n // if (t.checked && t.Skill == 'Water Lab Test' && t.Status == 'Completed') {\r\n // var invoiceFlag = true;\r\n // return invoiceFlag;\r\n // } \r\n // })\r\n // return invoiceFlag;\r\n // }\r\n\r\n vm.hideSingleDownloadButton = function () {\r\n return $localStorage.accountConfig != null && $localStorage.accountConfig.CorrelatedReports != null && $localStorage.accountConfig.ReportMapperId != null || $localStorage.loggedInUser_Role == 'Vendor Manager';\r\n }\r\n\r\n vm.isApprovalPermission = function (defaultValue) {\r\n if (vm.accountConfig && vm.accountConfig['ApprovalPermission'] != null) {\r\n return vm.accountConfig['ApprovalPermission'].split(\",\").indexOf($localStorage.loggedInUser_Role) > -1;\r\n }\r\n return defaultValue;\r\n }\r\n\r\n vm.OpenBillModal = function (ticketId) {\r\n vm.BillDetails = [];\r\n vm.TotalExpense = '';\r\n ServiceCenterTicketListService.getBillExpenseByTicketID(loggedInUserId, ticketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n angular.forEach(resp.data, function (d) {\r\n vm.BillDetails = d.Bills;\r\n vm.TotalExpense = d.ExpenseAmount;\r\n })\r\n }\r\n if (vm.TotalExpense != 0) {\r\n BillModal = $uibModal.open({\r\n templateUrl: 'bill_model.html',\r\n scope: $scope\r\n })\r\n }\r\n })\r\n }\r\n\r\n vm.CloseBillModal = function () {\r\n BillModal.close();\r\n }\r\n\r\n vm.getPicUrl = function (pic) {\r\n return ImageUrl + '/' + pic;\r\n }\r\n vm.ReportpdfUrl = function (pic) {\r\n // alert('hello');\r\n return InvoiceUrl + '/' + pic;\r\n }\r\n\r\n\r\n vm.downloadDataCaptureImage = function(){\r\n var ticket = '';\r\n for(var i=0;i 31 \r\n && (charCode < 48 || charCode > 57))\r\n return false;\r\n\r\n return true;\r\n }\r\n \r\n });\r\n\r\nangular.module('inspinia').filter('changeTime', function () {\r\n\r\n return function (s) {\r\n var ms = s % 1000;\r\n s = (s - ms) / 1000;\r\n var secs = s % 60;\r\n s = (s - secs) / 60;\r\n var mins = s % 60;\r\n var hrs = (s - mins) / 60;\r\n\r\n return hrs + ':' + mins + ' hr';\r\n }\r\n});\r\nfunction CheckRegExOnKeyPressDesc(e) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s.,/-]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\nangular.module('inspinia').service('ServiceCenterListService', function (ApiURL,MMFCRMURL, $http,$localStorage) {\r\n\r\n \r\n\r\n // this.GetAllTicketsForContact = function (loggedinUser, token, contactNo) {\r\n // var url = MMFCRMURL + '/api/CRMConsumer/GetAllTicketsForContact?Contact=' + contactNo;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n // }\r\n // });\r\n // }\r\n\r\nthis.GetSearchServiceCenter = function (loggedinUser,token,searchtext,PageIndex,PageSize) {\r\n var url = ApiURL + '/api/User/SearchServiceCenterNew?searchText=' + searchtext + '&pageIndex=' + PageIndex + '&pageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.GetSearchServiceCenter_CSV = function (loggedinUser, token, searchtext) {\r\n var url = ApiURL + '/api/User/SearchServiceCenter_CSV?searchText=' + searchtext;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\n\r\nthis.ActivateVendorTeam = function (userIdtoUpdate, loggedInUser, token) {\r\n var url = ApiURL + '/api/User/ActivateVendorTeam?userId='+ userIdtoUpdate;\r\n return $http.put(url,null,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n this.ResetPasswordForTeam = function (loggedinUser,TechnicianUserId, token) {\r\n var url = ApiURL + '/api/User/ResetPasswordForTeam?UserId=' + TechnicianUserId;\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }});\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ServiceCenterListController', function (ServiceCenterListService,CentralHDTicketsViewService, ReferService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.AccountId= $localStorage.accountConfig.AccountId;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.IsConsumerFound = false;\r\n\t\tvm.consumerTitle = '';\r\n\t\tvm.consumerFirstName = '';\r\n\t\tvm.consumerLastName = '';\r\n\t\t// if (!$localStorage.searchtext) {\r\n\t\t// \t// If not, initialize it to an empty string\r\n\t\t// \t$localStorage.searchtext = '';\r\n\t\t// }\r\n\t\r\n\t\t// // Assign the value of searchtext to $localStorage.searchtext whenever it changes\r\n\t\t// $scope.$watch('searchtext', function(newVal) {\r\n\t\t// \t$localStorage.searchtext = newVal;\r\n\t\t// });\r\n\t\r\n\t\t// Retrieve the value of searchtext from local storage\r\n\t\t// $scope.searchtext = vm.searchtext;\r\n\t\tvm.searchtext = '';\r\n\t\tvm.consumerAltContact = '';\r\n\t\tvm.PersonalEmail = '';\r\n\t\tvm.consumerType = '';\r\n\t\tvm.consumerCity = '';\r\n\t\tvm.consumerPincode = '';\r\n\t\tvm.consumerState = '';\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t$scope.minDate = new Date();\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.ticketListLength = 0;\r\n\t\tvm.pageindexCount = 0;\r\n\t\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount ;\r\n\t\t$scope.TicketTablepagination = {\r\n\t\t current: 1\r\n\t\t}; \r\n\t\r\n\t\tvm.changeTicketPageListCount = function() { \r\n\t\t $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t PageSize = $scope.ticketTablePerPage;\r\n\t\t $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t}\r\n\t\t\r\n\t\tPageIndex=$scope.TicketTablepagination.current;\r\n\t\t$scope.TicketTablepageChanged = function(newPage) { \r\n\t\t PageIndex = newPage;\r\n\t\t vm.GetSearchServiceCenter(); \r\n\t\t};\r\n\r\n\t\tvm.consumerAllTicketsData = [];\r\n \r\n\t\tvm.GetSearchServiceCenter = function () {\r\n\t\t\tServiceCenterListService.GetSearchServiceCenter(loggedinUser,token,vm.searchtext,PageIndex,PageSize).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.consumerAllTicketsData = resp.data.ASCResponse;\r\n\t\t\t\t\tvm.IsConsumerFound = true;\r\n\t\t\t\t\t$scope.totalTableTickets = resp.data.Count;\r\n\t\t\t\t\tif(vm.consumerAllTicketsData.length < vm.ticketPageListCount)\r\n\t\t\t\t\t\tvm.ticketListLength = $scope.totalTableUsers;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.ticketListLength = PageIndex * vm.ticketPageListCount;\r\n\t\t\t\t\tif(PageIndex==1)\r\n\t\t\t\t\t\tvm.pageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.pageindexCount = (((PageIndex-1) * vm.ticketPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\tvm.IsConsumerFound = false;\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message)\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetSearchServiceCenter();\r\n\r\n\r\n\t\tvm.GetSearchServiceCenter_CSV = function () {\r\n\t\t\tServiceCenterListService.GetSearchServiceCenter_CSV(loggedinUser,token,vm.searchtext).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\t\tvar csvData = resp.data;\r\n\t\t\t\t\tvar blob = new Blob([csvData], { type: 'text/csv' });\r\n\t\t\t\t\tvar url = window.URL.createObjectURL(blob);\r\n\t\t\t\t\tvar a = document.createElement('a');\r\n\t\t\t\t\ta.href = url;\r\n\t\t\t\t\ta.download = 'service_center_list.csv';\r\n\t\t\t\t\ta.click();\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\r\n\t\tvm.ResetFilter = function(){\r\n\t\t\tvm.searchtext = '';\r\n\t\t\tPageIndex = 1;\r\n\t\t\tvm.GetSearchServiceCenter();\r\n\t\t\t// vm.consumerAllTicketsData = '';\r\n\t\t\t// vm.IsConsumerFound = false;\r\n\t\t}\r\n\t\tvm.Open360ForActiveUsers = function(teamid){\r\n\t\t\t$state.go('index.Technician360view',{\r\n\t\t\t\tuserId: teamid\r\n\t\t\t }, { reload: true });\r\n\t\t}\r\n\t\tvm.Editdetails = function(userId){\r\n\t\t\t$state.go('index.ServiceCenter_FormEdit',{\r\n\t\t\t\tuserId: userId\r\n\t\t\t }, { reload: true });\r\n\t\t}\r\n\t\tvm.AddTeamMember = function () {\r\n\t\t\t$state.go('index.ServiceCenterFormCreation', {\r\n\t\t\t reload: true\r\n\t\t\t});\r\n\t\t }\r\n\t\t vm.UploadServiceCenter = function () {\r\n\t\t\t$state.go('index.bulkuploadServiceCenter', {\r\n\t\t\t reload: true\r\n\t\t\t});\r\n\t\t }\r\n\t\tvm.ActivateUser = function (userIdtoUpdate) {\r\n\t\t\tif (vm.isUpdating) return;\r\n\t\t \r\n\t\t\tvm.isUpdating = true;\r\n\t\t\tServiceCenterListService.ActivateVendorTeam(userIdtoUpdate, loggedinUser, token).then(function (resp) {\r\n\t\t\t if (resp && resp.status == 200) {\r\n\t\t\t\t// vm.showSuccess(\"Success\", \"User status updated successfully\");\r\n\t\t\t\t$timeout(function(){\r\n\t\t\t\t vm.GetSearchServiceCenter();\r\n\t\t\t\t vm.isUpdating = false;\r\n\t\t\t\t}, 2000);\r\n\t\t\t } else {\r\n\t\t\t\tvm.isUpdating = false;\r\n\t\t\t }\r\n\t\t\t}).catch(function() {\r\n\t\t\t vm.isUpdating = false;\r\n\t\t\t});\r\n\t\t };\r\n\t\t vm.ResetPasswordForTeam = function (UserId) {\r\n\t\t\tServiceCenterListService.ResetPasswordForTeam(loggedinUser, UserId, token).then(function (resp) {\r\n\t\t\t if (resp && resp.status == 200) {\r\n\t\t\t\tvm.showSuccess('Success', resp.data);\r\n\t\t\t }\r\n\t\t\t else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t }\r\n\t\t\t});\r\n\t \r\n\t\t }\r\n\r\n///share modal\r\nvm.OpenShareDetails = function (Type) {\r\n\tvm.shareType = Type\r\n\tvm.opensharewithtype = $uibModal.open({\r\n\t\ttemplateUrl: 'ShareDetailwithtypeModal.html',\r\n\t\tsize: 'md',\r\n\t\tbackdrop: 'static',\r\n\t\tscope: $scope,\r\n\t});\r\n};\r\n\r\nvm.CloseAreaConfirmationModal = function () {\r\n\tvm.opensharewithtype.close();\r\n\tvm.phoneNumber = '';\r\n\tvm.infoemail = '';\r\n}\r\nvm.share = function(shareType) {\r\n\tvm.shareinfo_form.submitted = true;\r\n if (shareType === 'SMS' || shareType === 'Whatsapp') {\r\n if (vm.shareinfo_form.contactphone.$valid) {\r\n\t\tvm.showSuccess(\"Successfully Sending\" + shareType + 'to' + vm.phoneNumber);\r\n\t\tvm.CloseAreaConfirmationModal();\r\n } \r\n\t\r\n } else if (shareType === 'Email') {\r\n if (vm.shareinfo_form.emailid.$valid) {\r\n\t\tvm.showSuccess('Sending Email to', vm.infoemail);\r\n\t\tvm.CloseAreaConfirmationModal();\r\n } \r\n\t \r\n }\r\n };\r\n \r\n\r\n\t}\r\n});\nangular.module('inspinia').service('ServiceCenterCreationService', function (ApiURL,FreelancerURL, LocationURL,PublicApiURL, $log, $http,$localStorage) {\r\n\r\n \r\n this.CreateUser = function (userFormData, loggedinUser, token) {\r\n var url = ApiURL + '/api/User?reqUserId='+loggedinUser;\r\n return $http.post(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser \r\n }\r\n });\r\n }\r\n\r\n\r\n this.getAllRole = function (token) {\r\n var url = ApiURL + '/api/role';\r\n return $http.get(url, {\r\n 'Token': token, 'UserId':loggedinUser\r\n });\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetRegion?userId=U370000000001\r\n this.GetRegion = function(loggedInUserId, token){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n this.GetTelecomCircle = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetTelecomCircles?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetSubRegion?userId=U370000000001®ion=North\r\n this.GetSubRegion = function(loggedInUserId, token, region){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+region;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetCity?userId=U360000000001&subregion=noida\r\n this.GetCityBySubRegion = function(loggedInUserId, subRegion, token){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+subRegion;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n\r\n this.getAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n this.getAllBrands = function(loggedinUser, token){\r\n var url = ApiURL + '/api/MMFConsumer/GetBrandMaster';\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n//https://db.mymobiforce.com/publicapi/api/Address/GetCountry?userId=U420000000001\r\nthis.getCountry = function (loggedinUser, token) {\r\n var url = PublicApiURL + '/api/Address/GetCountry?userId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\nthis.getAllState = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\nthis.getCities = function (loggedinUser,state,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\n this.getAllCity = function (loggedinUser,state, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n });\r\n }\r\n\r\n this.getAllPincode = function (city) {\r\n var url = LocationURL+'/api/Location/'+$localStorage.loggedinUser+'/'+city+'/GetPincodesByCity';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n //http://localhost:56749/api/User/Project%20Manager/GetReportingToUserByRole?reqUserId=saurabhgupta3371%40gmail.com\r\n\r\n this.GetReportingToUser = function(role, loggedinUser, token){\r\n var url = ApiURL + '/api/User/' + role + '/GetReportingToUserByRole?reqUserId=' + loggedinUser\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n // this.validateAllPincode = function (pin) {\r\n // var url = 'https://www.whizapi.com/api/v2/util/ui/in/indian-city-by-postal-code?project-app-key=pso222ywjvx996b93gd8wpp6&pin='+pin;\r\n // return $http.get(url, {\r\n // params: {}\r\n // });\r\n // }\r\n\r\n this.getAllReportingTo = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/User';\r\n return $http.get(url, {\r\n params: {userid: loggedinUser},\r\n headers: {'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n\r\n // this.userDetails = function (contactNumber,loggedinUser, token ){\r\n // var url = FreelancerURL + '/api/FreelancerUser/GetServiceCenterDetails?UserIdOrContactNumber=' + contactNumber ;\r\n // return $http.get(url,{\r\n // headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser} \r\n // });\r\n // }\r\n\r\n this.updateUser = function (userFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/User/UpdateTeamUserDetails';\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser}\r\n });\r\n }\r\n //http://192.168.0.80:92/CoreAPI/api/Role/ByReqUserId?reqUserId=kanika.bansal%40innotiontech.com\r\n\r\n this.getAllRoleByUserId = function (userId, token) {\r\n var url = ApiURL + '/api/Role/ByReqUserId?reqUserId='+userId;\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':userId}\r\n \r\n });\r\n }\r\n\r\n this.uploadProfilePic = function(loggedinUser, data, token, success, failure){\r\n $http.post(ApiURL + '/api/UploadImage', data, { \r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n \r\nthis.getAllAccounts = function (loggedInUserId,token) { \r\n var url = ApiURL+ '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n \r\n }\r\n });\r\n}\r\n\r\n//Accounts API\r\nthis.getAllAccountsConfigured = function (loggedinUser,token) { \r\n var url = ApiURL+ '/api/CentralHelpDesk/GetAllAccountHDConfig';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n}\r\n\r\n\r\n//https://product.mymobiforce.com/coreAPI/api/User/GetTeamUserDetails?UserId=U00000000413\r\nthis.getFixedUserInfo = function (userId,loggedInUser, token) {\r\n var url = ApiURL + '/api/User/GetTeamUserDetails?UserId='+ userId ;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n// http://localhost:56749/api/TerritoryMappingUser/GetStateByAccountIdAndRole?AccountId=114&Role=Administrator\r\nthis.getTerritoryStates = function (loggedInUser, token,AccountId,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetStateByAccountIdAndRole?AccountId='+ AccountId+ '&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n//http://localhost:56749/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId=144&State=Uttar%20Pradesh&Role=Administrator\r\nthis.getTerritoryCity = function (loggedInUser, token,AccountId,state,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId='+ AccountId+'&State='+state+'&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n//https://upgrad.mymobiforce.com/coreapi/api/TerritoryMappingUser/GetPincodeByStateAndCityAndAccountIdAndRole?AccountId=144&State=Uttar%20Pradesh&City=Noida&Role=Administrator\r\nthis.getTerritoryPincodes = function (loggedInUser, token,AccountId,state,City,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetPincodeByStateAndCityAndAccountIdAndRole?AccountId='+ AccountId+'&State='+state+'&City='+City+'&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\nthis.GetServiceCenterDetails = function (contactnumber,loggedInUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/GetServiceCenterDetails?UserIdOrContactNumber='+ contactnumber;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n// https://testaz.mymobiforce.com/freelancerAPI/api/FreelancerUser/BulkCreateServiceCenter\r\nthis.createServiceCenter = function (serviceCenterData, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/BulkCreateServiceCenter' ;\r\n return $http.post(url, serviceCenterData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser \r\n }\r\n });\r\n}\r\n\r\n \r\n});\r\n\nangular.module('inspinia').controller('ServiceCenterCreationController', function (ServiceCenterCreationService, ProjectCreationService, ReferService, MainService, $state, $scope, $timeout, $stateParams, $filter, $log, $localStorage, TeamProfileService, ImageUrl) {\r\n var vm = this;\r\n vm.isDisabled = false;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if ($localStorage.accountConfig) {\r\n if ($localStorage.accountConfig) {\r\n vm.EnableRegion = $localStorage.accountConfig.EnableRegion;\r\n }\r\n } else {\r\n vm.EnableRegion = false;\r\n }\r\n\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n vm.loggedinUserRole = $localStorage.loggedInUser_Role;\r\n\r\n //$log.log('Role=',vm.loggedinUserRole);\r\n angular.element(document).ready(function () {\r\n angular.element('ul[side-navigation]').find('a[ui-sref=\"index.TeamMember\"]').parent().prop('class', 'active');\r\n // angular.element(\".chosen-select\").chosen();\r\n });\r\n\r\n ///Global variables goign to use for seeting page defaults.\r\n\r\n var userId_ForUpdate = $stateParams.userId;\r\n vm.saveAndNewFlag = false;\r\n vm.editMode = false;\r\n vm.address_option = 'Yes';\r\n vm.officeFormValidation = false;\r\n vm.isCollapsed = false;\r\n vm.isUserDetailCollapsed = false;\r\n vm.isOfficeUseCollapsed = true;\r\n vm.Role = '';\r\n vm.specialist = \"No\";\r\n vm.ReportingTo = '';\r\n vm.SubCity = '';\r\n vm.allStates = [];\r\n //page binding models using\r\n vm.username = '';\r\n vm.gender = '';\r\n vm.email = '';\r\n vm.phone_number = '';\r\n vm.last_name = '';\r\n vm.father_name = '';\r\n vm.alternate_number = '';\r\n vm.workArea = '';\r\n vm.AccountName = '';\r\n vm.company = '';\r\n vm.permanent_address_line1 = '';\r\n vm.permanent_state = '';\r\n vm.permanent_pincode = '';\r\n vm.permanent_address_line2 = '';\r\n vm.permanent_city = '';\r\n vm.present_address_line1 = '';\r\n vm.present_address_line2 = '';\r\n vm.present_state = '';\r\n vm.present_city = '';\r\n vm.present_pincode = '';\r\n vm.skill = '';\r\n vm.expertise = '';\r\n vm.reportinToList = '';\r\n vm.workAreas = [];\r\n vm.CHDAccounts = [];\r\n vm.RemainingCHDAccounts = [];\r\n vm.SelectedAccount = {};\r\n vm.showAction = true;\r\n // vm.multiPincode = []\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.LocationMapping = vm.getAccountConfigSetting('LocationMapping');\r\n vm.MainRegion = '';\r\n vm.SubRegion = '';\r\n var today = new Date();\r\n var date = today.getFullYear() - 18;\r\n var age = (today.getMonth() + 1 + \"/\" + today.getDate() + \"/\" + date).toString();\r\n\r\n vm.maxDOB = new Date(age);\r\n vm.maxDOBStr = vm.maxDOB.toDateString();\r\n age = Date.parse(age);\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.showEditList = false;\r\n vm.showEditLists = false;\r\n vm.isShow = true;\r\n vm.brand = \"\";\r\n // getAllRole();\r\n\r\n // function getAllRole() {\r\n // if (vm.loggedinUserRole == 'Administrator' || vm.loggedinUserRole == 'Project Manager' || vm.loggedinUserRole == 'Vendor Manager' || vm.loggedinUserRole == 'SuperAdministrator' || vm.loggedinUserRole == 'OnBoarding Manager' || vm.loggedinUserRole == 'Account Manager' || vm.loggedinUserRole == 'OnBoarding Supervisor' || vm.loggedinUserRole == 'Operation Manager' || vm.loggedinUserRole == 'Operation Supervisor' || vm.loggedinUserRole == 'Higher Management'\r\n // || vm.loggedinUserRole == 'Dispatch Head' || vm.loggedinUserRole == 'Dispatch Manager' || vm.loggedinUserRole == 'Freelancer Dispatcher' || vm.loggedinUserRole == 'Dispatch Team Lead' || vm.loggedinUserRole == 'OnBoarding Team Lead') {\r\n // ServiceCenterCreationService.getAllRoleByUserId(loggedinUser, token).then(function (resp) {\r\n // if(resp.status == 200){\r\n // if(resp.data && resp.data.length>0){\r\n // vm.RolesList = resp.data;\r\n // }\r\n // }\r\n // })\r\n // }\r\n // }\r\n\r\n\r\n\r\n // vm.contactNumber = \"\";\r\n // vm.firstName = \"\";\r\n // vm.lastName = \"\";\r\n // vm.shopName = \"\";\r\n // vm.upiId = \"\";\r\n \r\n // vm.skills = \"\";\r\n // vm.address1 = \"\";\r\n // vm.address2 = \"\";\r\n // vm.state = [];\r\n // vm.city = \"\";\r\n // vm.pincode = \"\";\r\n\r\n vm.edit = false;\r\n\r\n vm.GetServiceCenterDetails = function () {\r\n ServiceCenterCreationService.GetServiceCenterDetails(vm.contactNumber, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n // if(resp.data && resp.data.length>0){\r\n vm.edit = true;\r\n vm.existingUser = resp.data;\r\n vm.phone_number = vm.existingUser.ContactNumber;\r\n vm.username = vm.existingUser.FirstName;\r\n vm.last_name = vm.existingUser.LastName;\r\n vm.shop_name = vm.existingUser.ShopName;\r\n vm.UPIId = vm.existingUser.UPI_Id;\r\n vm.brand = vm.existingUser.BrandName;\r\n vm.skill = vm.existingUser.Skills;\r\n vm.permanent_address_line1 = vm.existingUser.Address;\r\n vm.permanent_address_line2 = vm.existingUser.Add2;\r\n vm.permanent_state = vm.existingUser.State;\r\n vm.selectState(vm.permanent_state)\r\n vm.permanent_city = vm.existingUser.CurrentCity;\r\n vm.permanent_pincode = vm.existingUser.CurrentPincode;\r\n }\r\n })\r\n }\r\n\r\n var serviceCenterData = [];\r\n vm.createServiceCenter = function () {\r\n vm.signup_form.submitted = true\r\n serviceCenterData = [{\r\n \"FirstName\": vm.username,\r\n \"LastName\": vm.last_name,\r\n \"ShopName\": vm.shop_name,\r\n \"ContactNumber\": parseInt(vm.phone_number), // Convert to integer\r\n \"Address\": vm.permanent_address_line1,\r\n // \"PermanentAdd1\": vm.permanent_address_line1,\r\n // \"PermanentAdd2\": vm.permanent_address_line2,\r\n \"CurrentCity\": vm.permanent_city,\r\n \"State\": vm.permanent_state,\r\n \"CurrentPincode\": parseFloat(vm.permanent_pincode), // Convert to float\r\n \"BrandName\": vm.brand,\r\n \"Skills\": vm.skill,\r\n \"UPI_Id\": vm.UPIId\r\n }];\r\n if (vm.signup_form.$valid) {\r\n ServiceCenterCreationService.createServiceCenter(serviceCenterData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n if (vm.edit) {\r\n vm.showSuccess(\"Success\", \"Service center Updated Successfully\");\r\n }\r\n else {\r\n vm.showSuccess(\"Success\", \"Service center created Successfully\");\r\n }\r\n\r\n $timeout(function() {\r\n $state.go('index.AllUsersList', { reload: true });\r\n }, 2000); \r\n\r\n }\r\n else{\r\n vm.showFailure(\" Service Creation Failed\", resp.data);\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n vm.resetForm = function () {\r\n // Reset all input values to empty\r\n vm.username = \" \";\r\n vm.last_name = \" \";\r\n vm.shop_name = \" \";\r\n vm.phone_number = \" \";\r\n vm.permanent_address_line1 = \" \";\r\n vm.permanent_city = \" \";\r\n vm.permanent_state = \" \";\r\n vm.permanent_pincode = \" \";\r\n vm.skillCombine = \" \";\r\n vm.UPIId = \" \";\r\n };\r\n\r\n\r\n vm.cancelForm = function () {\r\n if (vm.edit) {\r\n \r\n vm.GetServiceCenterDetails();\r\n } else {\r\n\r\n vm.resetForm();\r\n }\r\n };\r\n\r\n // vm.GetServiceCenterDetails()\r\n vm.GetReportingToUser = function (role) {\r\n vm.reportinToList = \"\";\r\n ServiceCenterCreationService.GetReportingToUser(role, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.reportinToList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.removeAddmoreEditList = function () {\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n }\r\n\r\n vm.selectedCountry = null;\r\n //get country of user\r\n\r\n // vm.getCountry = function () {\r\n // ServiceCenterCreationService.getCountry(loggedinUser, token).then(function (resp) {\r\n // if(resp.status == 200){\r\n // if(resp.data && resp.data.values.length>0){\r\n // vm.countrylist = resp.data.values;\r\n // vm.selectedCountry = vm.countrylist[0];\r\n // vm.getAllState();\r\n // //getAllCircles(loggedinUser);\r\n // }\r\n // } \r\n // })\r\n // }\r\n\r\n\r\n vm.getAllState = function () {\r\n ServiceCenterCreationService.getAllState(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.stateList = resp.data;\r\n if ($state.current.name == 'index.TeamEdit') {\r\n vm.teamEditMode = $state.current.name;\r\n vm.editMode = true;\r\n\r\n if (userId_ForUpdate.startsWith(\"U\") || userId_ForUpdate.startsWith(\"F\")) {\r\n ServiceCenterCreationService.getFixedUserInfo(userId_ForUpdate, loggedinUser, token).then(function (resp) {\r\n var userData = resp.data;\r\n vm.AccountName = userData.ServiceAccountIds;\r\n vm.username = userData.FirstName;\r\n vm.gender = userData.Gender;\r\n vm.email = userData.PersonalEmail;\r\n vm.phone_number = parseInt(userData.ContactNumber);\r\n vm.last_name = userData.LastName;\r\n vm.birth_date = moment(userData.DOB);\r\n vm.father_name = userData.FatherName;\r\n if (userData.AlternativeContactNumber) {\r\n vm.alternate_number = parseInt(userData.AlternativeContactNumber);\r\n }\r\n vm.specialist = userData.Specialist;\r\n vm.workArea = userData.Locations;\r\n //vm.company = userData.CompanyName;\r\n vm.userId = userData.UserId;\r\n vm.permanent_address_line1 = userData.PermanentAdd1;\r\n vm.permanent_address_line2 = userData.PermanentAdd2;\r\n vm.permanent_city = userData.PermanentCity.toUpperCase();\r\n vm.permanent_state = userData.PermanentState;\r\n vm.permanent_pincode = userData.PermanentPinCode;\r\n vm.present_address_line1 = userData.CurrentAdd1;\r\n vm.present_address_line2 = userData.CurrentAdd2;\r\n vm.present_city = userData.CurrentCity.toUpperCase();\r\n vm.present_state = userData.CurrentState;\r\n vm.present_pincode = userData.CurrentPinCode;\r\n vm.skill = userData.SkillSet;\r\n vm.expertise = userData.Expertise;\r\n vm.Role = userData.Role;\r\n vm.GetReportingToUser(vm.Role);\r\n vm.ReportingTo = userData.ReportingTo;\r\n vm.workAreas = userData.TerritoryConfigurations;\r\n // vm.profilePic = userData.Picture;\r\n vm.imageServices(userData.Picture);\r\n if (vm.EnableRegion) {\r\n vm.MainRegion = userData.Region;\r\n\r\n //GetSubRegionList\r\n vm.selectSubRegion(vm.MainRegion);\r\n vm.Region = userData.SubRegion;\r\n vm.selectCitySubRegion(vm.Region);\r\n vm.SubCity = userData.Locations;\r\n } else {\r\n vm.workArea = userData.Locations;\r\n }\r\n\r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n\r\n ///Get the workArea badges in edit mode \r\n var circleArray = [];\r\n if (vm.workArea) {\r\n for (var pin = 0; pin < vm.workArea.length; pin++) {\r\n circleArray.push({\r\n workArea: vm.workArea\r\n });\r\n }\r\n }\r\n\r\n\r\n ///Check Present address is same as the Permanent Address.\r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n else {\r\n TeamProfileService.getUserInfo(userId_ForUpdate, loggedinUser, token).then(function (resp) {\r\n var userData = resp.data;\r\n vm.username = userData.FirstName;\r\n vm.gender = userData.Gender;\r\n vm.email = userData.PersonalEmail;\r\n vm.phone_number = parseInt(userData.ContactNumber);\r\n vm.last_name = userData.LastName;\r\n vm.birth_date = moment(userData.DOB);\r\n vm.father_name = userData.FatherName;\r\n vm.alternate_number = parseInt(userData.AlternativeContactNumber);\r\n vm.specialist = userData.Specialist;\r\n //vm.workArea = userData.Locations;\r\n vm.company = userData.CompanyName;\r\n vm.userId = userData.UserId;\r\n vm.permanent_address_line1 = userData.PermanentAdd1;\r\n vm.permanent_address_line2 = userData.PermanentAdd2;\r\n vm.permanent_city = userData.PermanentCity.toUpperCase();\r\n vm.permanent_state = userData.PermanentState;\r\n vm.permanent_pincode = userData.PermanentPinCode;\r\n vm.present_address_line1 = userData.CurrentAdd1;\r\n vm.present_address_line2 = userData.CurrentAdd2;\r\n vm.present_city = userData.CurrentCity.toUpperCase();\r\n vm.present_state = userData.CurrentState;\r\n vm.present_pincode = userData.CurrentPinCode;\r\n vm.skill = userData.SkillSet;\r\n vm.expertise = userData.Expertise;\r\n vm.Role = userData.Role;\r\n vm.GetReportingToUser(vm.Role);\r\n vm.ReportingTo = userData.ReportingTo;\r\n vm.profilePic = userData.Picture;\r\n if (vm.EnableRegion) {\r\n vm.MainRegion = userData.Region;\r\n\r\n //GetSubRegionList\r\n vm.selectSubRegion(vm.MainRegion);\r\n vm.Region = userData.SubRegion;\r\n vm.selectCitySubRegion(vm.Region);\r\n vm.SubCity = userData.Locations;\r\n } else {\r\n vm.workArea = userData.Locations;\r\n }\r\n\r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n\r\n ///Get the workArea badges in edit mode \r\n var circleArray = [];\r\n for (var pin = 0; pin < vm.workArea.length; pin++) {\r\n circleArray.push({\r\n workArea: vm.workArea\r\n });\r\n }\r\n\r\n ///Check Present address is same as the Permanent Address.\r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n }, function () {\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 vm.getAllState()\r\n\r\n // vm.getCountry();\r\n\r\n $scope.modelOptions = {\r\n getterSetter: true\r\n };\r\n\r\n\r\n\r\n vm.getProfilePic = function (pic) {\r\n return ImageUrl + \"/\" + vm.profilePic;\r\n }\r\n\r\n vm.changeFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n\r\n $scope.uploadImageFile = function (files) {\r\n var file = files.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = loggedinUser + \"_ProfilePic_\" + rendomnumber + \".\" + file.name.split(\".\")[1];\r\n var file = new File([file], filename, { type: file.type });\r\n\r\n if (file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n ServiceCenterCreationService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.profilePic = filename;\r\n vm.imageServices(filename);\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", err.data);\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n }\r\n vm.imageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else {\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function () {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n\r\n }\r\n vm.imageServices(vm.profileImg);\r\n\r\n\r\n ///Saving User function \r\n vm.saveUser = function () {\r\n vm.isDisabled = true;\r\n if (vm.signup_form.$valid) {\r\n if (vm.address_option == 'Yes') {\r\n vm.present_address_line1 = vm.permanent_address_line1;\r\n vm.present_address_line2 = vm.permanent_address_line2;\r\n vm.present_state = vm.permanent_state;\r\n vm.present_city = vm.permanent_city;\r\n vm.present_pincode = vm.permanent_pincode;\r\n }\r\n\r\n var workArea = '';\r\n var skill = '';\r\n if ((vm.loggedinUserRole != \"Dispatch Manager\") && (vm.loggedinUserRole != \"OnBoarding Manager\") && (vm.loggedinUserRole != \"Dispatch Team Lead\") && (vm.loggedinUserRole != \"OnBoarding Team Lead\")) {\r\n workArea = vm.workArea;\r\n skill = vm.skill;\r\n /*for (var index = 0; index < vm.workArea.length; index++) {\r\n if (index == (vm.workArea.length - 1)) {\r\n workArea = workArea + vm.workArea[index];\r\n continue;\r\n }\r\n workArea = workArea + vm.workArea[index] + ',';\r\n } \r\n for (var skillindex = 0; skillindex < vm.skill.length; skillindex++) {\r\n if (skillindex == (vm.skills.length - 1)) {\r\n skill = skill + vm.skill[skillindex];\r\n vm.selectExpertise(skill);\r\n continue;\r\n }\r\n skill = skill + vm.skill[skillindex] + ',';\r\n vm.selectExpertise(skill);\r\n }*/\r\n }\r\n\r\n ///model to send for creating user \r\n var userFormData = {\r\n \"UserId\": vm.userId,\r\n \"FirstName\": vm.username,\r\n \"LastName\": vm.last_name,\r\n \"Gender\": vm.gender,\r\n \"DOB\": moment(vm.birth_date, 'DD/MM/YYYY').format('YYYY-MM-DDTHH:mm:ss.SSSZ'),\r\n \"PersonalEmail\": vm.email,\r\n \"ContactNumber\": vm.phone_number,\r\n \"AlternativeContactNumber\": vm.alternate_number,\r\n \"CompanyName\": vm.company,\r\n \"Locations\": workArea,\r\n \"PermanentAdd1\": vm.permanent_address_line1,\r\n \"PermanentAdd2\": vm.permanent_address_line2,\r\n \"PermanentState\": vm.permanent_state,\r\n \"PermanentCity\": vm.permanent_city,\r\n \"PermanentPincode\": vm.permanent_pincode,\r\n \"CurrentAdd1\": vm.present_address_line1,\r\n \"CurrentAdd2\": vm.present_address_line2,\r\n \"CurrentState\": vm.present_state,\r\n \"CurrentCity\": vm.present_city,\r\n \"CurrentPincode\": vm.present_pincode,\r\n \"SkillSet\": skill,\r\n \"Expertise\": vm.expertise,\r\n \"ReportingTo\": '',\r\n \"Role\": '',\r\n \"Picture\": vm.profilePic,\r\n \"TerritoryConfigurations\": vm.workAreas,\r\n \"Specialist\": vm.specialist\r\n }\r\n if (vm.EnableRegion) {\r\n userFormData.Region = vm.MainRegion;\r\n\r\n var workArea = '';\r\n for (var index = 0; index < vm.SubCity.length; index++) {\r\n if (index == (vm.SubCity.length - 1)) {\r\n workArea = workArea + vm.SubCity[index];\r\n continue;\r\n }\r\n workArea = workArea + vm.SubCity[index] + ',';\r\n }\r\n userFormData.Locations = workArea;\r\n userFormData.SubRegion = vm.Region;\r\n }\r\n\r\n\r\n if (vm.loggedinUserRole == 'Administrator' || vm.loggedinUserRole == 'Project Manager' || vm.loggedinUserRole == 'Vendor Manager' || vm.loggedinUserRole == 'SuperAdministrator' || vm.loggedinUserRole == 'OnBoarding Manager' || vm.loggedinUserRole == 'Account Manager' || vm.loggedinUserRole == 'OnBoarding Supervisor' || vm.loggedinUserRole == 'Operation Manager' || vm.loggedinUserRole == 'Operation Supervisor' || vm.loggedinUserRole == 'Higher Management'\r\n || vm.loggedinUserRole == 'Dispatch Manager' || vm.loggedinUserRole == 'Dispatch Team Lead' || vm.loggedinUserRole == 'Freelancer Dispatcher' || vm.loggedinUserRole == 'OnBoarding Team Lead') {\r\n userFormData.ReportingTo = vm.ReportingTo;\r\n userFormData.Role = vm.Role;\r\n } else if (vm.loggedinUserRole == 'Supervisor') {\r\n userFormData.ReportingTo = loggedinUser;\r\n userFormData.Role = 'Field Engineer';\r\n }\r\n\r\n\r\n\r\n if ((vm.email == null || vm.email == '') && (vm.phone_number == null || vm.phone_number == '')) {\r\n vm.showFailure(\"Failed\", \"Please provide email id or mobile number\");\r\n vm.isDisabled = false;\r\n } else {\r\n // Submit as normal\r\n if (vm.editMode) {\r\n ServiceCenterCreationService.updateUser(userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess(\"Success\", \"User Updated Successfully\");\r\n vm.isDisabled = false;\r\n $timeout(function () {\r\n $state.go('index.TeamMember', {\r\n reload: true\r\n });\r\n }, 2000);\r\n }\r\n else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n\r\n }, function () {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", \"Unable to update user\");\r\n })\r\n } else {\r\n\r\n userFormData.UserId = '';\r\n ServiceCenterCreationService.updateUser(userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n if (!vm.saveAndNewFlag && vm.loggedinUserRole == 'SuperAdministrator') {\r\n $state.go('index.TeamMember', {\r\n reload: true\r\n });\r\n }\r\n else if (!vm.saveAndNewFlag) {\r\n $state.go('index.TeamMember', {\r\n reload: true\r\n });\r\n\r\n $timeout(function () {\r\n window.location.reload(true);\r\n }, 3000);\r\n } else {\r\n vm.showSuccess(\"User Creation Status\", \"User created successfully\");\r\n vm.isDisabled = false;\r\n clearFormFields();\r\n }\r\n } else if (resp.data.ErrorCode == 104) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"User already exist\");\r\n } else if (resp.data && resp.data.Message) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", resp.data.Message);\r\n } else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n vm.isDisabled = false;\r\n }, function (error) {\r\n vm.isDisabled = false;\r\n if (error.data.ErrorCode == 104) {\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n }\r\n );\r\n }\r\n }\r\n } else {\r\n vm.signup_form.submitted = true;\r\n vm.isDisabled = false;\r\n }\r\n }\r\n\r\n // vm.saveAndNew = function () {\r\n // vm.saveAndNewFlag = true;\r\n // vm.saveUser();\r\n // }\r\n\r\n vm.getAccounts = function () {\r\n ServiceCenterCreationService.getAllAccounts(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data && resp.status == 200) {\r\n vm.accounts = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n vm.getAccounts();\r\n\r\n function clearFormFields() {\r\n vm.username = '';\r\n vm.gender = '';\r\n vm.address = '';\r\n vm.email = '';\r\n vm.phone_number = '';\r\n vm.last_name = '';\r\n // vm.birth_date = '';\r\n vm.cores_address = '';\r\n vm.father_name = '';\r\n vm.alternate_number = '';\r\n vm.workArea = '';\r\n vm.city = '';\r\n // vm.reporting_to = '';\r\n vm.state = '';\r\n // vm.role = '';\r\n vm.skill = '';\r\n vm.expertise = '';\r\n vm.saveAndNewFlag = false;\r\n }\r\n\r\n var skillsArray = [];\r\n vm.getAllSkill = function () {\r\n ServiceCenterCreationService.getAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skills = resp.data;\r\n for (var index = 0; index < vm.skills.length; index++) {\r\n skillsArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n }\r\n });\r\n }\r\nvm.BrandList = \"\";\r\n // var brandArray = [];\r\n vm.getAllBrands = function () {\r\n ServiceCenterCreationService.getAllBrands(loggedinUser, token).then(function (resp) {\r\n vm.BrandList = resp.data;\r\n // for (var index = 0; index < vm.brands.length; index++) {\r\n // brandArray.push({\r\n // brand: vm.brands.BrandNameName\r\n // });\r\n // }\r\n });\r\n }\r\n\r\n vm.selectExpertise = function (skill) {\r\n // ServiceCenterCreationService.getAllSkills().then(function (resp) {\r\n // vm.expertiseList = resp.data;\r\n // vm.expertiseList = [];\r\n if (!vm.skills) {\r\n var expertiseArray = [];\r\n expertiseArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n vm.expertiseList = expertiseArray;\r\n }\r\n }\r\n\r\n\r\n ///get all the circles through api\r\n function getAllCircles() {\r\n vm.circles = [];\r\n vm.CircleList = [];\r\n vm.MainRegionList = '';\r\n if (vm.EnableRegion) {\r\n ServiceCenterCreationService.GetRegion(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.MainRegionList = resp.data;\r\n $log.log('RegionList', vm.RegionList)\r\n }\r\n }\r\n })\r\n } else if (vm.LocationMapping == 'Circle') {\r\n ServiceCenterCreationService.GetTelecomCircle(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length > 0) {\r\n vm.CircleList = resp.data.values;\r\n\r\n }\r\n }\r\n })\r\n } else {\r\n\r\n ServiceCenterCreationService.getAllState(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.circles = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n ///Executes when the user select the state\r\n vm.selectState = function (state) {\r\n var Getstate = state;\r\n ServiceCenterCreationService.getCities(loggedinUser, Getstate, token).then(function (resp) {\r\n vm.cityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n // console.log(vm.cityList);\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n vm.selectSubRegion = function (region) {\r\n\r\n ServiceCenterCreationService.GetSubRegion(loggedinUser, token, region).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.SubRegionList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n vm.selectCitySubRegion = function (Subregion) {\r\n\r\n ServiceCenterCreationService.GetCityBySubRegion(loggedinUser, Subregion, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.SubCityList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.selectStateforPresent = function (state) {\r\n var Getstate = state;\r\n ServiceCenterCreationService.getCities(loggedinUser, Getstate, token).then(function (resp) {\r\n vm.presentcityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n //state \r\n vm.getStateList = function (region) {\r\n ServiceCenterCreationService.GetRegion(loggedinUser, token, region).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.allStates = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n ///Executes when the user select the city\r\n vm.selectCity = function (city) {\r\n ServiceCenterCreationService.getAllPincode(city).then(function (resp) {\r\n vm.pincodeList = resp.data;\r\n if (!resp.data) {\r\n var pincodeArray = [];\r\n pincodeArray.push({\r\n pincode: city\r\n });\r\n vm.pincodeList = pincodeArray;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.selectCityforPresent = function (loggedinUser, city) {\r\n ServiceCenterCreationService.getAllPincode(loggedinUser, city.ID).then(function (resp) {\r\n vm.presentpincodeList = resp.data;\r\n if (!resp.data) {\r\n var pincodeArray = [];\r\n pincodeArray.push({\r\n pincode: city\r\n });\r\n vm.pincodeList = pincodeArray;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.removeAccountDetail = function (index) {\r\n vm.workAreas.splice(index, 1);\r\n vm.getAllHDAccounts();\r\n }\r\n\r\n vm.EditData = function (index) {\r\n vm.SelectedAccount = vm.workAreas[index];\r\n vm.territoryStates(vm.SelectedAccount.AccountId);\r\n vm.selectedStateForTerritory(vm.SelectedAccount.State);\r\n vm.selectedCityForTerritory(vm.SelectedAccount.City);\r\n }\r\n\r\n vm.AccountChange = function () {\r\n for (var i = 0; i < vm.RemainingCHDAccounts.length; i++) {\r\n var Acc = vm.RemainingCHDAccounts[i];\r\n if (Acc.AccountName == vm.SelectedAccount.AccountName) {\r\n vm.SelectedAccount.AccountId = Acc.AccountId;\r\n // vm.SelectedAccount = Acc; \r\n // break;\r\n }\r\n }\r\n vm.territoryStates(vm.SelectedAccount.AccountId);\r\n }\r\n vm.territoryStates = function (AccountId) {\r\n vm.AccountIDforTerritory = AccountId;\r\n ServiceCenterCreationService.getTerritoryStates(loggedinUser, token, AccountId, vm.Role).then(function (resp) {\r\n vm.stateListTerritory = resp.data;\r\n if (resp.status == 200) {\r\n // vm.territoryCity();\r\n }\r\n })\r\n }\r\n\r\n vm.selectedStateForTerritory = function (state) {\r\n vm.territoryCity(state, vm.AccountIDforTerritory);\r\n }\r\n vm.territoryCity = function (state, AccountId) {\r\n vm.StateForTerritoryCity = state;\r\n ServiceCenterCreationService.getTerritoryCity(loggedinUser, token, AccountId, state, vm.Role).then(function (resp) {\r\n vm.cityListTerritory = resp.data;\r\n if (resp.status == 200) {\r\n\r\n\r\n }\r\n })\r\n }\r\n\r\n vm.selectedCityForTerritory = function (City) {\r\n vm.territoryPincodes(City);\r\n }\r\n vm.uniPin = [];\r\n vm.territoryPincodes = function (City) {\r\n ServiceCenterCreationService.getTerritoryPincodes(loggedinUser, token, vm.AccountIDforTerritory, vm.StateForTerritoryCity, City, vm.Role).then(function (resp) {\r\n // if(resp.status == 200) {\r\n vm.pinCodeListTerritory = resp.data;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n var Acc = vm.workAreas[i];\r\n if ((Acc.City == City) && (Acc.AccountId == vm.AccountIDforTerritory) && (Acc.State == vm.StateForTerritoryCity)) {\r\n for (var j = 0; j < vm.pinCodeListTerritory.length; j++) {\r\n var pinCodeUnique = vm.pinCodeListTerritory[j];\r\n for (var k = 0; k < Acc.PinCode.length; k++) {\r\n if (pinCodeUnique == Acc.PinCode[k]) {\r\n vm.pinCodeListTerritory.splice(j, 1);\r\n // break; \r\n }\r\n }\r\n\r\n }\r\n }\r\n }\r\n // }\r\n })\r\n }\r\n\r\n vm.addMoreAccount = function () {\r\n vm.SelectedAccount = [];\r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n var Acc = vm.workAreas[i];\r\n for (var j = 0; j < vm.RemainingCHDAccounts.length; j++) {\r\n // console.log('acc = ' + Acc.AccountId + \" vm.RemainingCHDAccounts[j].AccountId \" + vm.RemainingCHDAccounts[j].AccountId + 'len ' + j) \r\n if (Acc.AccountId == vm.RemainingCHDAccounts[j].AccountId) {\r\n // vm.RemainingCHDAccounts.splice(j,1); \r\n //break; \r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n //CHDAllaccounts\r\n vm.getAllHDAccounts = function () {\r\n ServiceCenterCreationService.getAllAccountsConfigured(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.CHDAccounts = resp.data;\r\n vm.RemainingCHDAccounts = vm.CHDAccounts;\r\n }\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.UpdateAllHDAccountConfig = function (index) {\r\n vm.showAction = true;\r\n var checkAccount = false;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n if (vm.SelectedAccount.PinCode == undefined) {\r\n vm.showFailure(\"Failed\", \"Please add Account details with Locations\");\r\n vm.workAreas[index].edit = true;\r\n }\r\n // vm.workAreas[i] == vm.SelectedAccount;\r\n // vm.workAreas[i].AccountSkillSet = vm.SelectedSkills;\r\n // vm.workAreas[i].AccountLocations = vm.SelectedLocations;\r\n // var Acc = vm.workAreas[i];\r\n // if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n // vm.workAreas[i] == vm.SelectedAccount;\r\n // checkAccount = true;\r\n // break;\r\n // }\r\n }\r\n if (checkAccount == false && index == undefined) {\r\n vm.SelectedAccountObj = Object.assign({}, vm.SelectedAccount);\r\n if (vm.SelectedAccountObj.AccountName && vm.SelectedAccountObj.State && vm.SelectedAccountObj.City && vm.SelectedAccountObj.PinCode) {\r\n vm.workAreas.push(vm.SelectedAccountObj);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Please add Account details with Locations\");\r\n vm.workAreas[i].edit = true;\r\n\r\n }\r\n\r\n }\r\n else {\r\n var Acc = vm.workAreas[i];\r\n }\r\n vm.showEditList = false;\r\n }\r\n\r\n vm.getAllHDAccounts();\r\n vm.getAllSkill();\r\n vm.getStateList(\"INDIA\");\r\n vm.getAllBrands();\r\n }\r\n});\r\n\nangular.module('inspinia').service('SearchUserInfoService', function (ApiURL, FreelancerURL,LocationURL,PublicApiURL, $log, $http,$localStorage) {\r\n \r\n \r\n\r\n this.GetSearchUserInfoByReqUserId = function (loggedinUser, SearchUser, token){\r\n var url = FreelancerURL + \"/api/FreeLancerUser/\"+SearchUser+\"/GetUserDetails\";\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n this.getFixedUserInfo = function(userId, loggedInUser, token){\r\n // var url = ApiURL + '/api/User/' + userId +'/byUserIdWithJobCount?reqUserId='+ loggedInUser ;\r\n\t var url = FreelancerURL + '/api/FreeLancerUser/' + userId +'/'+ loggedInUser+ '/'+ 'byUserIdWithJobCount' ;\r\n\t return $http.get(url,{\r\n\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\r\n this.getJobsByUserId=function(status,userId,loggedinUser, token,PageIndex,PageSize,OrderBy,SortType){\r\n //var url =ApiURL + \"/api/Ticket/\" +userId+\"/byUserId?reqUserId=\"+loggedinUser;\r\n var url =ApiURL + \"/api/CallPatching/\" +userId+ \"/\"+status+\"/byUserIdStatusforCHDWithDynPaging?\"+ 'PageIndex=' + PageIndex + '&PageSize=' + PageSize+ '&OrderBy=' + OrderBy + '&SortType=' + SortType;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetFreelancerJobs = function(userId, loggedinUser, token){\r\n var url = FreelancerURL + '/api/FreelancerTicket/' + userId + '/' + loggedinUser + '/ByUserId'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n \r\n});\r\n\nangular.module('inspinia').controller('SearchUserInfoController', function (SearchUserInfoService, toaster, $filter, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder, DTColumnBuilder, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n\tvm = this;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\tvm.SortType = 'desc';\r\n vm.SortField = 'CreatedOn';\r\n\tvar uPageIndex = 1;\r\n var uPageSize = 10; \r\n\tvar jPageIndex = 1;\r\n var jPageSize = 10; \r\n\tvm.jobsPageListCount=10;\r\n\tvm.pageListCounts = [10, 20, 30, 50];\r\n\r\n\t$scope.JobsPerPage = vm.jobsPageListCount;\r\n $scope.jobspagination = {\r\n current: 1\r\n };\r\n\r\n\t vm.sortColumn = function(col){\r\n\t\tvm.SortField = col;\r\n\t\tif(vm.SortType=='desc'){\r\n\t\t vm.SortType = 'asc';\r\n\t\t vm.reverseclass = 'fa fa-arrow-up';\r\n\t\t}else{\r\n\t\t vm.SortType = 'desc';\r\n\t\t vm.reverseclass = 'fa fa-arrow-down';\r\n\t\t}\r\n\t\tvm.filterStatusForJObs($scope.jobStatusForPaging, $scope.selectedUserId, $localStorage.loggedInUserId, token,jPageIndex,jPageSize)\r\n \r\n\t };\r\n\t \r\n\t // remove and change class\r\n\t vm.sortClass = function(col){\r\n\t\tif(vm.SortField == col ){\r\n\t\t if(vm.SortType == 'desc'){\r\n\t\t return 'fa fa-arrow-down'; \r\n\t\t }else{\r\n\t\t return 'fa fa-arrow-up';\r\n\t\t }\r\n\t\t}\r\n\t\t else{\r\n\t\t return '';\r\n\t\t}\r\n\t }\r\n\r\n\tvm.cangeJobsPageListCount = function() { \r\n\t\t$scope.JobsPerPage = vm.jobsPageListCount;\r\n\t\tuPageSize = $scope.JobsPerPage;\r\n\t\t$scope.jobsTablepageChanged($scope.jobspagination.current);\r\n\t\tvm.selectAll = false;\r\n\t }\r\n\t uPageIndex=$scope.jobspagination.current;\r\n $scope.jobsTablepageChanged = function(newPage) { \r\n jPageIndex = newPage;\r\n vm.jobsStarIndex = (newPage-1)*vm.jobsMaxcount; \r\n vm.jobsMaxcount = newPage*vm.jobsPageListCount;\r\n vm.filterStatusForJObs($scope.jobStatusForPaging);\r\n \r\n };\r\n\t $scope.totalJobs = 0;\r\n\r\n\tvm.SearchUserInfoList ={};\r\n\tvm.SearchUserinfo = function () {\t\t\t\r\n\t\tvm.SearchUserinfoForm.submitted = true;\r\n\t\tif (vm.SearchUserinfoForm.$valid) {\r\n\t\tSearchUserInfoService.GetSearchUserInfoByReqUserId(loggedinUser, vm.SearchUser, token).then(function (resp) {\r\n\t\t\tif(resp.status==206){\t\t\t\r\n\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\tvm.SearchUserInfoList =\"\";\t\r\n\t\t\t}\t\t\r\n\t\t\telse\r\n\t\t\t\tvm.SearchUserInfoList = resp.data;\t\t\t\t\t\t\t\t\r\n\t\t});\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\n\tvm.getFLprofile = function (userId) {\r\n\t $scope.selectedUserId=userId; \r\n\t document.getElementById(\"freelancerProfile\").style.width = \"100%\";\r\n\t SearchUserInfoService.getFixedUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n\t vm.TicketSelectedForAssistedSuggestion = resp.data;\r\n\t // for(var i=0;i= 1 && newValue <= 24) {\r\n vm.configurableHours = newValue;\r\n }\r\n }\r\n};\r\n$scope.getStatusClass = function (status) {\r\n if (status == false) {\r\n return 'label label-danger';\r\n } else if (status == true) {\r\n return 'label label-primary';\r\n }\r\n return '';\r\n};\r\nvm.toggleEdit = function() {\r\nvm.isEditable = !vm.isEditable;\r\n};\r\n\r\n vm.getSkillList = function () {\r\n return [\r\n { Skill: \"General Electrician\", FirstPriority: \"MMF\", SecondPriority: \"ASC\", State: \"Maharashtra\", City: \"Mumbai\", bIsActive: true },\r\n { Skill: \"AC Installation\", FirstPriority: \"ASC\", SecondPriority: \"MMF\", State: \"Karnataka\", City: \"Bangalore\", bIsActive: true },\r\n { Skill: \"Plumbing\", FirstPriority: \"MMF\", SecondPriority: \"ASC\", State: \"Tamil Nadu\", City: \"Chennai\", bIsActive: false },\r\n { Skill: \"Carpentry\", FirstPriority: \"ASC\", SecondPriority: \"MMF\", State: \"Delhi\", City: \"New Delhi\", bIsActive: true },\r\n { Skill: \"Painting\", FirstPriority: \"MMF\", SecondPriority: \"ASC\", State: \"West Bengal\", City: \"Kolkata\", bIsActive: true }\r\n ];\r\n};\r\n\r\n // Table for Skill\r\nvm.searchSkillModelTable = function () {\r\nvm.dtInstanceSkillModal.DataTable.search(vm.searchSkillModelText);\r\nvm.dtInstanceSkillModal.DataTable.search(vm.searchSkillModelText).draw();\r\n};\r\nvm.dtOptionsSkill = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.getSkillList());\r\n return defer.promise;\r\n})\r\n.withDOM('<\"html5buttons\"B>lTfgitp')\r\n.withPaginationType('full_numbers')\r\n.withOption('order', [])\r\n.withOption('createdRow', createdRow)\r\n.withOption('rowCallback', rowCallback);\r\n\r\nvm.dtColumnsSkill = [\r\nDTColumnBuilder.newColumn('Skill').withTitle('Skill'),\r\nDTColumnBuilder.newColumn('State').withTitle('State'),\r\nDTColumnBuilder.newColumn('City').withTitle('City'),\r\nDTColumnBuilder.newColumn('FirstPriority').withTitle('First Priority'),\r\nDTColumnBuilder.newColumn('SecondPriority').withTitle('Second Priority'),\r\nDTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n var displayText = data ? 'Active' : 'Inactive';\r\n return '' + displayText + '';\r\n}),\r\nDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n return '';\r\n })\r\n];\r\n\r\nfunction createdRow(row) {\r\n$compile(angular.element(row).contents())($scope);\r\n}\r\n\r\nfunction rowCallback(nRow) {\r\n$('td', nRow).unbind('click');\r\n$('td', nRow).bind('click', function () {\r\n $scope.$apply(function () { });\r\n});\r\nreturn nRow;\r\n}\r\n\r\n\r\nvm.refreshRigionTable = function () {\r\nvm.dtInstanceRegionModal.reloadData();\r\n};\r\n\r\n\r\n\r\nvm.skillList = vm.getSkillList();\r\n$scope.clearSearchFilters = function () {\r\n \r\n vm.searchSkillModelText = \"\";\r\n \r\n if (vm.dtInstanceSkillModal && vm.dtInstanceSkillModal.DataTable) {\r\n vm.dtInstanceSkillModal.DataTable.search(\"\").draw();\r\n }\r\n \r\n};\r\n\r\nvm.AddSkillModelOpen = function () {\r\n vm.addregion = $uibModal.open({\r\n templateUrl: 'AddSkill.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n vm.getAllSkill();\r\n }\r\n\r\n vm.CloseAddRegionModel = function () {\r\n vm.addregion.close();\r\n vm.PrioritySkill = \"\";\r\n vm.SubRegionState = \"\";\r\n vm.SubRegionCity = \"\";\r\n vm.FirstPriority = \"\";\r\n vm.disableCreationButton = false;\r\n }\r\n function getAllStates() {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n\r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n\r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n});\nangular.module('inspinia').service('ScreenBuildersService', function () {\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ScreenBuildersController', function (ScreenBuildersService, $timeout, $rootScope, DTColumnBuilder, $compile, $q, ProjectCreationService, $scope, TeamProfileService, $stateParams, $uibModal, $localStorage, $log, $state, DTOptionsBuilder, PlanningResourseMapService, DashboardService, DTColumnDefBuilder, ImageUrl) {\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n $rootScope.rootScopeMessage = '';\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\r\n $scope.goToTemplateList = function () {\r\n $state.go('index.TemplateList');\r\n };\r\n\r\n $scope.goToSLAListing = function () {\r\n $state.go('index.ScheduledReport');\r\n };\r\n\r\n $scope.goToApprvalFlowBuilder = function () {\r\n $state.go('index.ApprovalFlowBuilders');\r\n };\r\n\r\n $scope.goToDashboardReportListing = function () {\r\n $state.go('index.DashboardReportList');\r\n };\r\n \r\n }\r\n});\nangular.module('inspinia').service('ScheduledReportService', function ($log, $http, CronUrl, ApiURL) {\r\n\r\n vm = this;\r\n\r\n vm.getSheduledReports = function (loggedinUser, token, callback) {\r\n $http.get(ApiURL+'/api/ReportSchedule/getallcronbyAccount?userId='+loggedinUser+'&entity=report', {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(function(res){\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n // https://product.mymobiforce.com/coreapi/api/ReportSchedule/enableAnddisablecronApi\r\n vm.enabledSchedules = function(loggedinUser, ids, token, callback){\r\n \t$http.put(ApiURL+'/api/ReportSchedule/enableAnddisablecronApi', {ids : ids, userId: loggedinUser, enable: true}, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser } }).then(function(res){\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n });\r\n \t\r\n }\r\n\r\n vm.disableSchedules = function(loggedinUser, ids, token, callback){\r\n\t $http.put(ApiURL+'/api/ReportSchedule/enableAnddisablecronApi', {ids : ids, userId: loggedinUser, enable: false}, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser } }).then(function(res){\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n});\nangular.module('inspinia').controller('ScheduledReportController', function ($uibModal, DTOptionsBuilder, DTColumnDefBuilder, $scope, $log, ScheduledReportService, $localStorage, ReportService, DashboardURL) {\r\n var vm = this;\r\n\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n var token = $localStorage.token;\r\n\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\r\n var token = $localStorage.token;\r\n vm.schedules = [];\r\n vm.selectStatus = {};\r\n $scope.$parent.$parent.main.implementSelectItems('schedules', this);\r\n\r\n vm.getSheduledReports = function(){\r\n angular.forEach(vm.schedules, function(d){\r\n vm.selectStatus[d.id]=d.checked;\r\n });\r\n\r\n ScheduledReportService.getSheduledReports(loggedinUser, token, vm.createCallback(null, [function(data){\r\n if(angular.equals(vm.schedules, data)){\r\n //$log.log(\"same schedule data\");\r\n return false;\r\n }\r\n vm.schedules = [];\r\n if (vm.schedules && data) {\r\n vm.schedules.extend(data);\r\n }\r\n angular.forEach(vm.schedules, function(d){\r\n d.checked = vm.selectStatus[d.id];\r\n var sT = d.jobStartTime;\r\n var eT = d.endTime;\r\n d.startTimeIns = sT.date+\" \"+sT.month+\" \"+sT.year+\" \"+vm.parseTo2(sT.hour)+\":\"+vm.parseTo2(sT.min)+\":\"+vm.parseTo2(sT.sec);\r\n d.endTimeIns = eT.date+\" \"+eT.month+\" \"+eT.year+\" \"+vm.parseTo2(eT.hour)+\":\"+vm.parseTo2(eT.min)+\":\"+vm.parseTo2(eT.sec);\r\n d.modelObj = JSON.parse(d.model);\r\n d.duration = d.modelObj.RollUps;\r\n if(isNaN(d.duration)){\r\n d.displayDuration = d.duration;\r\n } else {\r\n d.displayDuration = \"Last \"+d.duration+\" day\"+(d.duration>1?\"s\":\"\"); \r\n }\r\n d.TOList=[];\r\n angular.forEach(d.modelObj.TOList, function(email){\r\n var addedUsr = false;\r\n angular.forEach(vm.users, function(u){\r\n if(u.UserId.toLowerCase().indexOf(email.toLowerCase()) > -1){\r\n addedUsr=true;\r\n d.TOList.push(u); \r\n }\r\n })\r\n if(!addedUsr){\r\n d.TOList.push({UserId:email, FirstName:email.split(\"@\")[0], LastName:\"\"});\r\n }\r\n })\r\n\r\n d.CCList=[];\r\n angular.forEach(d.modelObj.CCList, function(email){\r\n var addedUsr = false;\r\n angular.forEach(vm.users, function(u){\r\n if(u.UserId.toLowerCase().indexOf(email.toLowerCase()) > -1){\r\n addedUsr=true;\r\n d.CCList.push(u);\r\n }\r\n })\r\n if(!addedUsr){\r\n d.CCList.push({UserId:email, FirstName:email.split(\"@\")[0], LastName:\"\"});\r\n }\r\n })\r\n\r\n d.BCCList=[];\r\n angular.forEach(d.modelObj.BCCList, function(email){\r\n var addedUsr = false;\r\n angular.forEach(vm.users, function(u){\r\n if(u.UserId.toLowerCase().indexOf(email.toLowerCase()) > -1){\r\n addedUsr=true;\r\n d.BCCList.push(u);\r\n }\r\n })\r\n if(!addedUsr){\r\n d.BCCList.push({UserId:email, FirstName:email.split(\"@\")[0], LastName:\"\"});\r\n }\r\n })\r\n \r\n });\r\n }]));\r\n }; \r\n vm.getSheduledReports();\r\n\r\n vm.getMonth = function(mon){\r\n var m = [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\", \"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"].indexOf(mon)+1;\r\n return (m>9)?m:\"0\"+m;\r\n }\r\n\r\n vm.parseTo2 = function(v){\r\n return (v+\"\").length>1?v:\"0\"+v;\r\n }\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp')\r\n .withButtons([{extend:'colvis'},{extend:'csv'},{extend:'print'},{extend:'copy'}]).withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('order', []);\r\n \r\n vm.buildColumnBuilder = function (l) {\r\n vm.dtColumnDefs = [];\r\n for (var i = 0; i < l; i++) {\r\n vm.dtColumnDefs.push(DTColumnDefBuilder.newColumnDef(i).notSortable());\r\n }\r\n }\r\n vm.buildColumnBuilder(6);\r\n\r\n vm.scheduleModel = {\r\n frequency: \"once\",\r\n once: \"once\",\r\n daily: \"daily\",\r\n weekly: \"weekly\",\r\n every_15_days: \"every_15_days\",\r\n monthly: \"monthly\",\r\n cronExpression: \"expression\",\r\n input_for_month: {\r\n option: \"start_of_day\",\r\n start_of_day: \"start_of_day\",\r\n end_of_day: \"end_of_day\",\r\n specific_date: \"specific_date\",\r\n date: 1\r\n },\r\n specific_date_range: [],\r\n start_date:moment(),\r\n end_date:moment().add(1, 'M'),\r\n attachReportInMailBody:true,\r\n scheduleTime:\"\",\r\n scheduleName:\"\",\r\n reportNameAlreadyExists:false,\r\n reportNameMendtryErr:false,\r\n toListMendtryErr:false,\r\n timeMendtryErr:false,\r\n endTimeErr:false,\r\n sampleDate:moment(),\r\n sampleDateMendtryErr:false,\r\n pull_data: {\r\n range: \"last_day\",\r\n day: \"last_day\",\r\n week: \"last_week\",\r\n month: \"last_month\",\r\n quarter: \"last_quarter\",\r\n current_month: \"current_month\",\r\n specific: \"specific\",\r\n specific_day_value: 1,\r\n calculate_range: function () {\r\n //$log.log(vm.scheduleModel.pull_data.range);\r\n var today = new Date();\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n var date = today;\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 1, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 3, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n }if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n return 01 + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n //$log.log(vm.scheduleModel.pull_data.specific_day_value)\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - vm.scheduleModel.pull_data.specific_day_value);\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n }\r\n }\r\n }\r\n };\r\n\r\n for (var i = 1; i < 32; i++) {\r\n vm.scheduleModel.specific_date_range.push({ value: i, label: i });\r\n }\r\n\r\n vm.ScheduledReport = function (s) {\r\n vm.shareModel.toList = s.TOList;\r\n vm.shareModel.ccList = s.CCList;\r\n vm.shareModel.bccList = s.BCCList;\r\n vm.scheduleModel.reportName=s.uniqueId;\r\n if(s.cronType.toLowerCase()==vm.scheduleModel.cronExpression){\r\n vm.scheduleModel.frequency=vm.scheduleModel.monthly;\r\n vm.scheduleModel.input_for_month.option=vm.scheduleModel.input_for_month.end_of_day; \r\n var splittedExp = s.cronExpression.split(\" \"); \r\n vm.scheduleModel.scheduleTime=vm.parseTo2(splittedExp[1])+\":\"+vm.parseTo2(splittedExp[2]);\r\n } else if(s.cronType.toLowerCase()==vm.scheduleModel.monthly) {\r\n vm.scheduleModel.frequency=vm.scheduleModel.monthly;\r\n vm.scheduleModel.input_for_month.option=vm.scheduleModel.input_for_month.specific_date;\r\n vm.scheduleModel.input_for_month.date=s.monthly.dayOfMonth;\r\n vm.scheduleModel.scheduleTime=vm.parseTo2(s.monthly.hour)+\":\"+vm.parseTo2(s.monthly.min);\r\n } else if(s.cronType.toLowerCase()==vm.scheduleModel.weekly){ \r\n vm.scheduleModel.frequency=vm.scheduleModel.weekly;\r\n\r\n vm.scheduleModel.input_of_week={}\r\n vm.scheduleModel.input_of_week.sun=false\r\n vm.scheduleModel.input_of_week.mon=false\r\n vm.scheduleModel.input_of_week.tue=false\r\n vm.scheduleModel.input_of_week.wed=false\r\n vm.scheduleModel.input_of_week.thu=false\r\n vm.scheduleModel.input_of_week.fri=false\r\n vm.scheduleModel.input_of_week.sat=false\r\n\r\n switch(s.weekly.dayOfWeek[0]){\r\n case 1:\r\n vm.scheduleModel.input_of_week.sun=true;break;\r\n case 2:\r\n vm.scheduleModel.input_of_week.mon=true;break;\r\n case 3:\r\n vm.scheduleModel.input_of_week.tue=true;break;\r\n case 4:\r\n vm.scheduleModel.input_of_week.wed=true;break;\r\n case 5:\r\n vm.scheduleModel.input_of_week.thu=true;break;\r\n case 6:\r\n vm.scheduleModel.input_of_week.fri=true;break;\r\n case 7:\r\n vm.scheduleModel.input_of_week.sat=true;break;\r\n }\r\n vm.scheduleModel.scheduleTime=vm.parseTo2(s.weekly.hour)+\":\"+vm.parseTo2(s.weekly.min);\r\n } else if(s.cronType.toLowerCase()==vm.scheduleModel.daily){ \r\n vm.scheduleModel.frequency=vm.scheduleModel.daily;\r\n vm.scheduleModel.scheduleTime=vm.parseTo2(s.daily.hour)+\":\"+vm.parseTo2(s.daily.min);\r\n } else if(s.cronType.toLowerCase()==vm.scheduleModel.once){ \r\n vm.scheduleModel.frequency=vm.scheduleModel.once;\r\n if(s.jobStartTime){\r\n vm.scheduleModel.sampleDate=moment(s.jobStartTime.year+\"-\"+s.jobStartTime.month+\"-\"+vm.parseTo2(s.jobStartTime.date)+\" \"+vm.parseTo2(s.jobStartTime.hour)+\":\"+vm.parseTo2(s.jobStartTime.min)+\":\"+vm.parseTo2(s.jobStartTime.sec), \"YYYY-MMM-DD hh:mm:ss\"); \r\n } \r\n }\r\n\r\n if(isNaN(s.duration)){ \r\n if(s.duration==\"Last Day\"){\r\n vm.scheduleModel.pull_data.range=vm.scheduleModel.pull_data.day;\r\n } else if(s.duration==\"Last Week\"){\r\n vm.scheduleModel.pull_data.range=vm.scheduleModel.pull_data.week;\r\n } else if(s.duration==\"Last Month\"){\r\n vm.scheduleModel.pull_data.range=vm.scheduleModel.pull_data.month;\r\n } else if(s.duration==\"Last Quarter\"){\r\n vm.scheduleModel.pull_data.range=vm.scheduleModel.pull_data.quarter;\r\n }else if(s.duration==\"Current Month\"){\r\n vm.scheduleModel.pull_data.range=vm.scheduleModel.pull_data.current_month;\r\n }\r\n } else {\r\n vm.scheduleModel.pull_data.range=vm.scheduleModel.pull_data.specific;\r\n vm.scheduleModel.pull_data.specific_day_value=s.duration;\r\n }\r\n\r\n if(s.jobStartTime) {\r\n vm.scheduleModel.start_date=moment(s.jobStartTime.year+\"-\"+s.jobStartTime.month+\"-\"+vm.parseTo2(s.jobStartTime.date)+\" \"+vm.parseTo2(s.jobStartTime.hour)+\":\"+vm.parseTo2(s.jobStartTime.min)+\":\"+vm.parseTo2(s.jobStartTime.sec), \"YYYY-MMM-DD hh:mm:ss\");\r\n } else {\r\n vm.scheduleModel.start_date=moment();\r\n }\r\n if(s.endTime) {\r\n vm.scheduleModel.end_date=moment(s.endTime.year+\"-\"+s.endTime.month+\"-\"+vm.parseTo2(s.endTime.date)+\" \"+vm.parseTo2(s.endTime.hour)+\":\"+vm.parseTo2(s.endTime.min)+\":\"+vm.parseTo2(s.endTime.sec), \"YYYY-MMM-DD hh:mm:ss\");\r\n } else {\r\n vm.scheduleModel.end_date=vm.scheduleModel.start_date.add(1, 'month');\r\n }\r\n \r\n vm.scheduleModel.attachReportInMailBody=s.modelObj.ReportInMailBody;\r\n vm.scheduleModel.sampleDateMendtryErr=false;\r\n \r\n vm.shareModel.content = s.modelObj.Body.replace(new RegExp(\"
\", 'g'), \"\\n\");;\r\n vm.scheduleModel.modelReportName = s.reportName;\r\n vm.ScheduledReportModal = $uibModal.open({\r\n templateUrl: 'ScheduledReport.html',\r\n backdrop: 'static',\r\n windowClass:'schedulerModal',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.monthNames3 = [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\",\r\n \"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"\r\n ];\r\n\r\n vm.scheduleModel.scheduleReport = function () {\r\n var startTime = null;\r\n var endTime = null;\r\n var cronExpression = null;\r\n var daily = null;\r\n var weekly = null;\r\n var monthly = null;\r\n //$log.log(\"vm.scheduleModel.scheduleTime \",vm.scheduleModel.scheduleTime);\r\n if(vm.scheduleModel.reportName==null || vm.scheduleModel.reportName.length==0){\r\n vm.scheduleModel.reportNameMendtryErr=true;\r\n return;\r\n }\r\n if(vm.shareModel.toList.length==0){\r\n vm.scheduleModel.toListMendtryErr=true;\r\n return; \r\n }\r\n\r\n if (vm.scheduleModel.frequency == vm.scheduleModel.once) {\r\n //$log.log(\"vm.scheduleModel.sampleDate\", vm.scheduleModel.sampleDate);\r\n if(vm.scheduleModel.sampleDate){\r\n var sample_Data = vm.scheduleModel.sampleDate?vm.scheduleModel.sampleDate:new moment();\r\n startTime = {\r\n \"date\": sample_Data.format(\"DD\"),\r\n \"hour\": sample_Data.format(\"HH\"),\r\n \"min\": sample_Data.format(\"mm\"),\r\n \"month\": sample_Data.format(\"MMM\").toUpperCase(),\r\n \"sec\": sample_Data.format(\"ss\"),\r\n \"year\": sample_Data.format(\"YYYY\")\r\n };\r\n endTime = startTime;\r\n //$log.log(\"startTime \",startTime);\r\n } else {\r\n vm.showFailure(\"Invalid Parameter\", \"Please select valid time to send report\");\r\n return;\r\n }\r\n \r\n } else {\r\n var startDate = vm.scheduleModel.start_date?new Date(vm.scheduleModel.start_date):new Date();\r\n var endDate = vm.scheduleModel.end_date?new Date(vm.scheduleModel.end_date):new Date();\r\n if(endDate\");\r\n \r\n var schedulerModel = {};\r\n schedulerModel[\"TOList\"]=toList;\r\n schedulerModel[\"CCList\"]=ccList;\r\n schedulerModel[\"BCCList\"]=bccList;\r\n schedulerModel[\"Body\"]=content;\r\n schedulerModel[\"Subject\"]=\"Report: \" + vm.scheduleModel.modelReportName\r\n schedulerModel[\"ReportName\"]=vm.scheduleModel.modelReportName\r\n schedulerModel[\"ReqUserId\"]=loggedinUser;\r\n schedulerModel[\"FilterKeys\"]=null;\r\n schedulerModel[\"FilterValues\"]=null;\r\n schedulerModel[\"ReportInMailBody\"]=vm.scheduleModel.attachReportInMailBody;\r\n if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.day){\r\n schedulerModel[\"RollUps\"]=\"Last Day\";\r\n } else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.week){\r\n schedulerModel[\"RollUps\"]=\"Last Week\"; \r\n } else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.month){\r\n schedulerModel[\"RollUps\"]=\"Last Month\"; \r\n } else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.quarter){\r\n schedulerModel[\"RollUps\"]=\"Last Quarter\"; \r\n }else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.current_month){\r\n schedulerModel[\"RollUps\"]=\"Current Month\"; \r\n } else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.specific){\r\n var re = /^[1-9]+[0-9]*$/;\r\n if(!re.test(vm.scheduleModel.pull_data.specific_day_value)){\r\n vm.scheduleModel.pull_data.specificDayValMedtryErr=true;\r\n return;\r\n }\r\n schedulerModel[\"RollUps\"]=vm.scheduleModel.pull_data.specific_day_value; \r\n }\r\n data[\"model\"]=JSON.stringify(schedulerModel);\r\n data[\"entity\"]=\"report\";\r\n\r\n ReportService.RescheduleReport(loggedinUser, data, token, \r\n vm.createCallback(null, [function (data) {\r\n // //$log.log(data);\r\n vm.showSuccess(\"Success\", \"Schedule Updated\");\r\n vm.getSheduledReports();\r\n }]));\r\n\r\n vm.closeScheduledReportModal();\r\n }\r\n\r\n vm.closeScheduledReportModal = function () {\r\n vm.ScheduledReportModal.close();\r\n }\r\n\r\n vm.shareModel = {\r\n selectedUsers: [],\r\n toList: [],\r\n ccList: [],\r\n bccList: [],\r\n content: vm.defaultMailBody\r\n };\r\n\r\n vm.shareModel.getUserSuggestion = function (val) {\r\n\r\n vm.scheduleModel.toListMendtryErr=false;\r\n\r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}].concat(vm.users):vm.users;\r\n }\r\n vm.getUsers();\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}]:[];\r\n } \r\n\r\n vm.shareModel.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.shareModel.toList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.ccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n } \r\n if (!matched) {\r\n angular.forEach(vm.shareModel.bccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n } \r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n \r\n vm.shareModel.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName!=null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n\r\n vm.getUsers = function () {\r\n vm.users = [];\r\n ReportService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n //$log.log(data);\r\n }]));\r\n };\r\n\r\n vm.getUsers(); \r\n\r\n vm.shareModel.cancelledToListUser = function (i) {\r\n vm.shareModel.toList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledCCListUser = function (i) {\r\n vm.shareModel.ccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledBCCListUser = function (i) {\r\n vm.shareModel.bccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.selectUserNameInToList = function (item) {\r\n vm.shareModel.toList.push(item);\r\n vm.shareModel.toUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInCCList = function (item) {\r\n vm.shareModel.ccList.push(item);\r\n vm.shareModel.ccUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInBCCList = function (item) {\r\n vm.shareModel.bccList.push(item);\r\n vm.shareModel.bccUsers = [];\r\n }\r\n\r\n vm.enableSchedules = function(id){\r\n var ids = id;\r\n angular.forEach(vm.schedules, function(s){\r\n if(s.checked){\r\n ids += s.id+\",\";\r\n }\r\n });\r\n if(ids.length>0){\r\n ids=ids.substring(0, ids.length-1);\r\n }\r\n\r\n ScheduledReportService.enabledSchedules(loggedinUser, ids, token, function(data){\r\n vm.showSuccess(\"Status\", data.msg);\r\n vm.getSheduledReports();\r\n });\r\n }\r\n\r\n vm.disableSchedules = function(id){\r\n var ids = id;\r\n angular.forEach(vm.schedules, function(s){\r\n if(s.checked){\r\n ids += s.id+\",\";\r\n }\r\n });\r\n if(ids.length>0){\r\n ids=ids.substring(0, ids.length-1);\r\n }\r\n\r\n ScheduledReportService.disableSchedules(loggedinUser, ids, token, function(data){\r\n vm.showSuccess(\"Status\", data.msg);\r\n vm.getSheduledReports();\r\n });\r\n\r\n }\r\n }\r\n});\nangular.module('inspinia').service('SchedulingRuleService', function($http, FreelancerURL,ApiURL,PublicApiURL){\r\n\r\n// https://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/GetAllMaster?UserId=F00000000000\r\nthis.GetAllSecheculingRules = function(loginUser, token){\r\n var url = ApiURL + '/api/MasterSelectionCriteria/GetAllMaster?UserId=' + loginUser;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loginUser }\r\n });\r\n}\r\n\r\nhttps://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/EnableInMyAccount?UserId=U400000000001&RuleIds=Rule_01\r\nthis.SaveSchedulingRule = function(loginUser, ruleidlist,token, success, failure){\r\n var url = ApiURL +'/api/MasterSelectionCriteria/EnableInMyAccount?UserId='+ loginUser +'&RuleIds='+ruleidlist;\r\n $http.post(url, null, { headers: {'Content-Type': undefined, 'Token': token, 'UserId':loginUser}\r\n }).then(success, failure);\r\n}\r\n\r\n\r\n\r\n})\nangular.module('inspinia').controller('SchedulingRuleController', function (SchedulingRuleService, $q, DTColumnBuilder, DTOptionsBuilder, $compile, $stateParams, $uibModal, $scope, $log, ImageUrl, $sce, toaster, $localStorage, $timeout, $state) {\r\n\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n $scope.$parent.$parent.main.implementSelectItems('ruleList', this);\r\n // $scope.$parent.$parent.main.implementSelectItems('certificateScRuleList', this);\r\n // $scope.$parent.$parent.main.implementSelectItems('assetScRuleList', this);\r\n\r\n vm.toolScRuleList = [];\r\n vm.assetScRuleList = [];\r\n vm.certificateScRuleList = [];\r\n vm.roleScRuleList = [];\r\n vm.TalentPoolScRuleList = [];\r\n vm.dtInstance = {};\r\n vm.dtInstance_Certi = {};\r\n vm.dtInstance_Asset = {};\r\n vm.dtInstance_Tool = {};\r\n vm.dtInstance_TalentPool = {};\r\n vm.getAllSchedulingRules = function () {\r\n SchedulingRuleService.GetAllSecheculingRules(loggedinUser, token).then(function (res) {\r\n vm.ruleList = res.data;\r\n vm.toolScRuleList = [];\r\n vm.assetScRuleList = [];\r\n vm.certificateScRuleList = [];\r\n vm.roleScRuleList = [];\r\n vm.TalentPoolScRuleList = [];\r\n for (var i = 0; i < vm.ruleList.length; i++) {\r\n if (vm.ruleList[i].RuleType == 'Certificate') {\r\n vm.certificateScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'Asset') {\r\n vm.assetScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'Tool') {\r\n vm.toolScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'Role') {\r\n vm.roleScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'TalentPool') {\r\n vm.TalentPoolScRuleList.push(vm.ruleList[i]);\r\n }\r\n \r\n }\r\n if (vm.roleScRuleList) {\r\n vm.GenerateRoleTable();\r\n }\r\n if (vm.certificateScRuleList) {\r\n vm.GenerateCertificateTable();\r\n }\r\n if (vm.assetScRuleList) {\r\n vm.GenerateAssetsTable();\r\n }\r\n if (vm.toolScRuleList) {\r\n vm.GenerateToolTable();\r\n }\r\n if (vm.TalentPoolScRuleList) {\r\n vm.GenerateTalentPoolTable();\r\n }\r\n })\r\n }\r\n vm.getAllSchedulingRules();\r\n\r\n\r\n vm.GenerateRoleTable = function () {\r\n\r\n vm.headerCompiled = false;\r\n vm.selected = {};\r\n vm.selectAll = false;\r\n vm.toggleAll = toggleAll;\r\n vm.toggleOne = toggleOne;\r\n // var titleHtml = '
';\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.roleScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Role Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.roleScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll = false;\r\n // \treturn;\r\n // }\r\n }\r\n\r\n }\r\n vm.selectAll = true;\r\n }\r\n\r\n }\r\n\r\n\r\n vm.GenerateCertificateTable = function () {\r\n\r\n vm.headerCompiled_Certi = false;\r\n vm.selected_Certi = {};\r\n vm.selectAll_Certi = false;\r\n vm.toggleAll_Certi = toggleAll_Certi;\r\n vm.toggleOne_Certi = toggleOne_Certi;\r\n // var titleHtml_Certi = '
';\r\n\r\n vm.dtOptions_Certi = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.certificateScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled_Certi) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_Certi = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns_Certi = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_Certi[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Certificate Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll_Certi(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_Certi(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.certificateScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_Certi = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_Certi = true;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n vm.GenerateAssetsTable = function () {\r\n\r\n vm.headerCompiled_Asset = false;\r\n vm.selected_Asset = {};\r\n vm.selectAll_Asset = false;\r\n vm.toggleAll_Asset = toggleAll_Asset;\r\n vm.toggleOne_Asset = toggleOne_Asset;\r\n // var titleHtml_Asset = '
';\r\n\r\n vm.dtOptions_Asset = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.assetScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled_Asset) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_Asset = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns_Asset = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_Asset[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Assets Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll_Asset(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_Asset(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.assetScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_Asset = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_Asset = true;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n vm.GenerateToolTable = function () {\r\n\r\n vm.headerCompiled_Tool = false;\r\n vm.selected_Tool = {};\r\n vm.selectAll_Tool = false;\r\n vm.toggleAll_Tool = toggleAll_Tool;\r\n vm.toggleOne_Tool = toggleOne_Tool;\r\n // var titleHtml_Tool = '
';\r\n\r\n vm.dtOptions_Tool = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.toolScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallbacks', function (header) {\r\n if (!vm.headerCompiled_Tool) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_Tool = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns_Tool = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_Tool[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Tools Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n \r\n function toggleAll_Tool(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_Tool(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.toolScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_Tool = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_Tool = true;\r\n }\r\n\r\n }\r\n\r\n vm.GenerateTalentPoolTable = function () {\r\n\r\n vm.headerCompiled_TalentPool = false;\r\n vm.selected_TalentPool = {};\r\n vm.selectAll_TalentPool = false;\r\n vm.toggleAll_TalentPool = toggleAll_TalentPool;\r\n vm.toggleOne_TalentPool = toggleOne_TalentPool;\r\n // var titleHtml_TalentPool = '
';\r\n\r\n vm.dtOptions_TalentPool = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.TalentPoolScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallbacks', function (header) {\r\n if (!vm.headerCompiled_TalentPool) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_TalentPool = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n \r\n vm.dtColumns_TalentPool = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_TalentPool[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Talent Pool Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n function toggleAll_TalentPool(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_TalentPool(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.TalentPoolScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_TalentPool = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_TalentPool = true;\r\n }\r\n\r\n }\r\n vm.reloadData = function () {\r\n var resetPaging = true;\r\n vm.dtInstance.reloadData(resetPaging);\r\n vm.dtInstance_Certi.reloadData(resetPaging);\r\n vm.dtInstance_Asset.reloadData(resetPaging);\r\n vm.dtInstance_Tool.reloadData(resetPaging);\r\n vm.dtInstance_TalentPool.reloadData(resetPaging);\r\n\r\n }\r\n\r\n vm.SaveSchedulingRule = function () {\r\n\r\n var RuleIdList = '';\r\n for (var i = 0; i < vm.roleScRuleList.length; i++) {\r\n if (vm.selected[i] == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.roleScRuleList[i].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.roleScRuleList[i].RuleId;\r\n }\r\n }\r\n }\r\n for (var j = 0; j < vm.certificateScRuleList.length; j++) {\r\n if (vm.certificateScRuleList[j].IsEnable == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.certificateScRuleList[j].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.certificateScRuleList[j].RuleId;\r\n }\r\n }\r\n }\r\n for (var k = 0; k < vm.assetScRuleList.length; k++) {\r\n if (vm.assetScRuleList[k].IsEnable == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.assetScRuleList[k].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.assetScRuleList[k].RuleId;\r\n }\r\n }\r\n }\r\n for (var l = 0; l < vm.toolScRuleList.length; l++) {\r\n if (vm.toolScRuleList[l].IsEnable == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.toolScRuleList[l].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.toolScRuleList[l].RuleId;\r\n }\r\n }\r\n }\r\n for (var l = 0; l < vm.TalentPoolScRuleList.length; l++) {\r\n if (vm.TalentPoolScRuleList[l].IsEnable == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.TalentPoolScRuleList[l].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.TalentPoolScRuleList[l].RuleId;\r\n }\r\n }\r\n }\r\n SchedulingRuleService.SaveSchedulingRule(loggedinUser, RuleIdList, token, function (res) {\r\n if (res.data) {\r\n vm.showSuccess(\"Success\", \"Successfully Save Scheduling Rules\");\r\n // vm.getAllSchedulingRules();\r\n // // vm.reloadData();\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to Save Scheduling Rule.\");\r\n });\r\n\r\n }\r\n\r\n})\r\n\r\n\nangular.module('inspinia').service('ScheduleAssignService',function($http,ApiURL,SchedulingAPI,FreelancerURL,PublicApiURL){\r\n\r\n\r\nthis.GetTicketsByFilter = function(loggedinUser,itemNames,itemValues, token){\r\n var url = ApiURL + '/api/Ticket/' + loggedinUser + '/GetTicketsForAssignation?itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token}\r\n })\r\n }\r\n\r\n\r\n //https://test.mymobiforce.com/SchedulingAPI/api/AssistedScheduling/GetSchedulingEvaluationResult?reqUserId=U360000000001\r\n\r\n this.GetSchedulingEvaluationResult = function(data,reqUserId,token){\r\n \tvar url = SchedulingAPI + 'x='+reqUserId;\r\n \treturn $http.post(url,data,{\r\n \t\theaders:{'Content-Type':'application/json','Token':token}\r\n \t})\r\n\r\n }\r\n\r\n //BroadCast Jobs/Bids\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/createBidFromAssistedScheduling?reqUserId=asdasd\r\n\r\n this.BroadCastJobsforUser = function(loggedinUser,data, token){\r\n var url = FreelancerURL + '/api/BID/createBidFromAssistedScheduling?reqUserId=' + loggedinUser;\r\n return $http.post(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetCountry?userId=U420000000001\r\n this.getCountry = function (loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Address/GetCountry?userId=' + loggedInUserId;\r\n return $http.get(url, {\r\n headers:{'Token':token}\r\n });\r\n }\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetStates?userId=U420000000001&country=QATAR\r\n this.getStates = function (loggedInUserId, token, country) {\r\n var url = PublicApiURL + '/api/Address/GetStates?userId=' + loggedInUserId + '&country=' + country;\r\n return $http.get(url,{\r\n headers:{'Token':token,}\r\n });\r\n }\r\n\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetCities?userId=U420000000001&state=DOHA\r\n this.getCities = function (loggedInUserId, token, state) {\r\n var url = PublicApiURL + '/api/Address/GetCities?userId=' + loggedInUserId + '&state=' + state;\r\n return $http.get(url, {\r\n headers:{'Token':token}\r\n });\r\n }\r\n\r\n\r\n \r\n//https://test.mymobiforce.com/SchedulingAPI/api/AssistedScheduling/GetAllAssignedJobs?accountId=35&supervisiorId=U350000000006&fromDate=2018-12-17&toDate=2018-12-17\r\n \r\n this.GetSchedulingEventToday = function(accountId,supervisiorId,fromDate,toDate,itemNames,itemValues,token){\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetAllAssignedJobs?accountId='+accountId +'&supervisiorId='+supervisiorId +'&fromDate='+fromDate+ '&toDate='+toDate +\r\n \"&itemNames=\" + itemNames + \"&itemValues=\" + itemValues;\r\n return $http.get(url,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token,\r\n 'UserId': supervisiorId\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n// https://demo.mymobiforce.com/schedulingapi/api/AutoJobAssign/AutoScheduleAllJobsDemo?reqUserId=U560000000001\r\n this.AutoAssignTickets = function(reqUserId,ticketId, token){\r\n var url = SchedulingAPI + '/api/AutoJobAssign/AutoScheduleAllJobsDemo?reqUserId='+reqUserId +'&TicketIds='+ticketId;\r\n return $http.put(url,{}, {\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': reqUserId\r\n }\r\n }) \r\n }\r\n\r\n\r\n this.AutoAssignTicketsForToday = function(reqUserId,selectedDate, transMode, itemNames,itemValues,token){\r\n var url = SchedulingAPI + '/api/AutoJobAssign/AutoScheduleAllJobsDemo?reqUserId='+reqUserId+'&scheduleDate='+selectedDate + '&transMode='+transMode +\r\n \"&itemNames=\" + itemNames + \"&itemValues=\" + itemValues;\r\n return $http.put(url,{}, {\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': reqUserId\r\n }\r\n }) \r\n }\r\n\r\n // https://product.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetFixedTeamTimeLine?reqUserId=U400000000001\r\n this.OnloadUser = function(data,reqUserId,token){\r\n \tvar url = SchedulingAPI + '/api/AssistedScheduling/GetFixedTeamTimeLine?reqUserId='+reqUserId;\r\n \treturn $http.post(url,data,{\r\n \t\theaders:{'Content-Type':'application/json','Token':token}\r\n \t})\r\n\r\n }\r\n\r\n\r\n //Assign Tickets\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/ass/asd/asd/AssignTicket\r\n this.AssignTickets = function(userId,reqUserId,ticketId, token){\r\n var TicketId = ticketId.split(',');\r\n var url = ApiURL + '/api/Ticket/' + userId + '/' + reqUserId + '/AssignTicket'\r\n return $http.put(url,TicketId, {\r\n headers:{'Content-Type':'application/json','Token':token\r\n }\r\n }) \r\n }\r\n \r\n\r\n\r\n\r\n//AssignTicketsTimeline\r\n//https://test.mymobiforce.com/coreapi/api/Ticket/test/AssignTicketForAssistedScheduling\r\n this.AssignTicketsTimeline = function(reqUserId,list, token){\r\n var url = ApiURL + '/api/Ticket/' + reqUserId + '/AssignTicketForAssistedScheduling'\r\n return $http.put(url,list,{\r\n headers:{'Content-Type':'application/json','Token':token}\r\n })\r\n }\r\n\r\n\r\n\r\n this.GetTicketsByStatus = function (loggedinUser, itemNames,itemValues, token) {\r\n var url = FreelancerURL + '/api/BID/'+loggedinUser+'/' + itemNames + '/'+ itemValues + '/getjobsbyfilter';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetTicketsByStatusDemo = function (loggedinUser, itemNames,itemValues, fromDate, toDate, token) {\r\n var url = FreelancerURL + '/api/BID/'+loggedinUser+'/' + itemNames + '/'+ itemValues + '/' + fromDate + '/' + toDate + '/getjobsbyfilterDemo';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n})\nvar app =angular.module('inspinia').controller('ScheduleJobAssigne',function(ScheduleAssignService, jobBidCreationService, UIURL,FreelancerFixedService,\r\n $log, $state, $localStorage, $stateParams, $uibModal, VendorCreationService, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile,\r\n uiCalendarConfig, ImageUrl,$filter){\r\n\r\n\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserSkill = $localStorage.loggedInUser_SkillSet;\r\n var loggedinUserRegion = $localStorage.loggedInUser_Region;\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n }else{\r\n var token = $localStorage.token;\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.TimeoutFunc = $scope.$parent.$parent.main.TimeoutFunc;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.loggedinAs = $localStorage.loggedinAs; \r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.MobiforceCommission = vm.getAccountConfigSetting('MobiforceCommissionPercentage');\r\n vm.VendorAssignation = vm.getAccountConfigSetting('VendorAssignation');\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.FreelancerAccess = vm.getAccountConfigSetting('FreelancerAccess');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.AllTicketList = '';\r\n vm.filterCriteria1 = [\"Price\",\"Distance\",\"Ratings\"];\r\n vm.filterCriteria2 = [\"Price\",\"Distance\",\"Ratings\"];\r\n vm.filterCriteria3 = [\"Price\",\"Distance\",\"Ratings\"];\r\n vm.selectedFilter1 = 'Distance';\r\n vm.selectedFilter2= 'Ratings';\r\n vm.selectedFilter3= 'Price';\r\n vm.disablefilters = true;\r\n vm.range = '10';\r\n vm.isCurrentLocation = false;\r\n vm.selectedRow = null; // initialize our variable to null\r\n vm.selectedFreelancers = [];\r\n vm.SuggestedUserList = [];\r\n vm.AssignTicektData = [];\r\n vm.AllAssignUserDetails=[];\r\n $scope.AssignSelectedUser={};\r\n $scope.AssignSelectedUser.allItemsSelected = false;\r\n vm.AllAssignUserList =[];\r\n vm.BroadcastedUserList =[];\r\n vm.ReadyToAssignList =[];\r\n $scope.BroadcastedUser ={};\r\n $scope.BroadcastedUser.allItemsSelected = false;\r\n vm.TransMode = 'driving';\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.IsBroadcastPermision = true;\r\n vm.IsAssignPermision = true;\r\n vm.Mode = 'List';\r\n vm.TicketStatus = 'New';\r\n vm.cities = [];\r\n vm.markers = [];\r\n var NewJobIcon = UIURL+'/assets/images/patterns/JOb_icon.png';\r\n var BroadcastedJobIcon = UIURL+'/assets/images/patterns/JOb_icon.png';\r\n var AssignedJobIcon = UIURL+'/assets/images/patterns/JOb_icon.png';\r\n var CompletedJobIcon = UIURL+'/assets/images/patterns/JOb_icon.png';\r\n var flIcon = UIURL+'/assets/images/patterns/mascot_icon2.png';\r\n var ftIcon = UIURL+'/assets/images/patterns/mascot_icon2.png';\r\n var fvIcon = UIURL+'/assets/images/patterns/mascot_icon2.png';\r\n var vIcon = UIURL+'/assets/images/patterns/mascot_icon2.png';\r\n var DefaultImage = UIURL+'/assets/images/patterns/Photo1.png';\r\n vm.InfoWindow;\r\n vm.selectedTicket = '';\r\n vm.BroadcastedJobList = '';\r\n var listdata=[];\r\n //vm.filterUserData = 'All';\r\n\r\n\r\n $scope.editingData = {};\r\n $scope.editingFPrice = {};\r\n $scope.modify = function(list){ \r\n $scope.editingData[list.UserId] = true;\r\n };\r\n\r\n $scope.modifyFPrice = function(list){ \r\n $scope.editingFPrice[list.UserId] = true;\r\n };\r\n\r\n\r\n $scope.update = function(list){\r\n if(list.Price==0){\r\n vm.showFailure(\"Failed\",\"Bid price can't be zero.\");\r\n }else{\r\n list.TPrice = (Number)(list.Price) + ((list.Price * vm.GSTPercentange)/100);\r\n list.FPrice = (list.Price) - ((list.Price * vm.MobiforceCommission)/100);\r\n $scope.editingData[list.UserId] = false;\r\n }\r\n \r\n };\r\n\r\n $scope.updateFPrice = function(list){\r\n if(list.FPrice==0){\r\n vm.showFailure(\"Failed\",\"price can't be zero.\");\r\n }else{\r\n list.Price = (list.FPrice * 100)/(100 - vm.MobiforceCommission);\r\n list.TPrice = (Number)(list.Price) + ((list.Price * vm.GSTPercentange)/100);\r\n \r\n $scope.editingFPrice[list.UserId] = false;\r\n }\r\n \r\n };\r\n\r\n//loggedinUser,itemNames,itemValues, token\r\nvm.GetTicketsForAssignation = function(){\r\n if (vm.VerticalName!='IMS' || vm.VerticalName!='Spectro Labs') {\r\n var itemNames = '';\r\n var itemValues = '';\r\n if(loggedinUserSkill==\"VSAT\"){\r\n itemNames+=\"Template\";\r\n itemValues+=\"VSAT CCR\";\r\n } else if(loggedinUserSkill==\"LeaseLine\"){\r\n itemNames+=\"Template\";\r\n itemValues+=\"LeaseLine CCR\";\r\n }\r\n ScheduleAssignService.GetTicketsByFilter(loggedinUser,itemNames,itemValues,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n var ticketData = [];\r\n vm.AllTicketList = resp.data;\r\n ticketData = vm.AllTicketList;\r\n // vm.selectedTicket = ticketData[0];\r\n vm.disablefilters = false;\r\n // vm.GetSchedulingResults();\r\n GetSchedulingEventforToday(loggedinUser);\r\n scheduler.clearAll();\r\n }\r\n })\r\n }\r\n}\r\n\r\nvm.round2Decimal = function (no) {\r\n return Math.round(no * 100) / 100; \r\n}\r\n\r\n\r\nvm.model = {};\r\nvm.model.allItemsSelected = false;\r\n\r\nif(vm.FreelancerAccess){\r\n vm.model = [{ \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\":\"Field Engineer\"},\r\n { \"key\": 2, \"Role\": \"Field Engineer\", \"userType\":\"Freelancer\", \"Value\":\"Freelancer\"},\r\n { \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Fixed Team\", \"Value\":\"Vendor\"},\r\n { \"key\": 4, \"Role\": \"Vendor Manager\", \"userType\":\"Freelancer\", \"Value\":\"Freelancer Vendor\"}\r\n ];\r\n}else{\r\n vm.model = [\r\n { \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\":\"Field Engineer\"},\r\n { \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Fixed Team\", \"Value\":\"Vendor\"}\r\n ];\r\n}\r\n\r\n\r\nvm.selectEntityFilter = function () {\r\n var newList = [];\r\n var usersList = angular.copy(vm.SuggestedUserList.users);\r\n vm.TestCase = false;\r\n for (var i = 0; i < vm.model.length; i++) {\r\n if (!vm.model[i].isChecked) {\r\n vm.TestCase = true;\r\n vm.model.allItemsSelected = false;\r\n var Role =vm.model[i].Role;\r\n var userType =vm.model[i].userType;\r\n var allIndex = [];\r\n /*usersList.some(function(obj, x) {\r\n if(obj.role == Role && obj.userType == userType){\r\n delete usersList[x];\r\n } else {\r\n false;\r\n }\r\n });*/\r\n newList =[];\r\n /*angular.forEach(usersList, function(d){\r\n if(d){\r\n newList.push(d);\r\n }\r\n })*/\r\n }\r\n }\r\n if(newList=='' && vm.TestCase == false){\r\n newList= vm.SuggestedUserList.users;\r\n // scheduler.updateCollection(\"sections\", newList);\r\n vm.model.allItemsSelected = true;\r\n }else{\r\n // scheduler.updateCollection(\"sections\", newList);\r\n }\r\n };\r\n\r\n vm.selectAllFilter = function () {\r\n for (var i = 0; i < vm.model.length; i++) {\r\n vm.model[i].isChecked = vm.model.allItemsSelected;\r\n }\r\n /*if(vm.model.allItemsSelected==true){\r\n scheduler.updateCollection(\"sections\", vm.SuggestedUserList.users);\r\n }else{\r\n var freelist =[];\r\n scheduler.updateCollection(\"sections\",freelist);\r\n }*/\r\n };\r\n vm.model.allItemsSelected = true;\r\n vm.selectAllFilter();\r\n\r\n\r\n vm.FilterData = function(item,level){\r\n if (level == 1) {\r\n vm.filterCriteria2 = [];\r\n angular.forEach(vm.filterCriteria1,function(d){\r\n if (d!=item) {\r\n vm.filterCriteria2.push(d);\r\n }\r\n })\r\n }else if(level == 2){\r\n vm.filterCriteria3 = [];\r\n angular.forEach(vm.filterCriteria1,function(d){\r\n if (d!=item) {\r\n if (d!=vm.selectedFilter1) {\r\n vm.filterCriteria3.push(d);\r\n } \r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.GetJobsByFilter = function(item,value){\r\n if (item == 'Priority') {\r\n var itemNames = 'Priority';\r\n var itemValues = value;\r\n ScheduleAssignService.GetTicketsByFilter(loggedinUser,itemNames,itemValues).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n vm.AllTicketList = resp.data;\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.GetMobCommission = function(data)\r\n { \r\n vm.MobiforceCommission =data;\r\n }\r\n\r\n vm.GetServiceTax = function(data)\r\n { \r\n vm.GSTPercentange =data;\r\n }\r\n\r\n\r\n jobBidCreationService.GetMobCommission(loggedinUser, token, vm.GetMobCommission);\r\n jobBidCreationService.GetServiceTax(loggedinUser, token, vm.GetServiceTax);\r\n\r\n\r\n\r\n vm.getBroadcastedTickets = function(){\r\n // var loggedinUser1 = 'U350000000001'\r\n var itemNames = 'Ticket Status';\r\n var itemValues = 'Broadcasted';\r\n if(vm.VerticalName=='IMS'){\r\n if(loggedinUserSkill==\"VSAT\"){\r\n itemNames+=\",Template\";\r\n itemValues+=\",VSAT CCR\";\r\n } else if(loggedinUserSkill==\"LeaseLine\"){\r\n itemName+=\",Template\";\r\n itemValues+=\",LeaseLine CCR\";\r\n }\r\n }\r\n ScheduleAssignService.GetTicketsByStatus(loggedinUser,itemNames, itemValues,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n var ticketData = [];\r\n vm.BroadcastedJobList = resp.data;\r\n // ticketData = vm.BroadcastedJobList;\r\n // vm.selectedTicket = ticketData[0];\r\n vm.disablefilters = false;\r\n // vm.GetSchedulingResults();\r\n GetSchedulingEventforToday(loggedinUser);\r\n scheduler.clearAll();\r\n }\r\n })\r\n }\r\n\r\n vm.getReadyToAssign= function(){\r\n\r\n // var loggedinUser1 = 'U350000000001'\r\n var itemNames = 'Ticket Status';\r\n var itemValues = 'ReadyToAssign';\r\n if(vm.VerticalName=='IMS'){\r\n if(loggedinUserSkill==\"VSAT\"){\r\n itemNames+=\",Template\";\r\n itemValues+=\",VSAT CCR\";\r\n } else if(loggedinUserSkill==\"LeaseLine\"){\r\n itemNames+=\",Template\";\r\n itemValues+=\",LeaseLine CCR\";\r\n }\r\n }\r\n ScheduleAssignService.GetTicketsByStatus(loggedinUser,itemNames, itemValues,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n var ticketData = [];\r\n vm.ReadyToAssignList = resp.data;\r\n // ticketData = vm.BroadcastedJobList;\r\n // vm.selectedTicket = ticketData[0];\r\n vm.disablefilters = false;\r\n // vm.GetSchedulingResults();\r\n GetSchedulingEventforToday(loggedinUser);\r\n scheduler.clearAll();\r\n }\r\n })\r\n }\r\n\r\n \r\n\r\n \r\n vm.setClickedRowNew = function(index,data){ \r\n vm.IsLineItemAvailable = data.IsLineItemAvailable;\r\n\r\n //function that sets the value of selectedRow to current index\r\n vm.selectedRow = index;\r\n if(vm.IsMaterialDelivered){\r\n if(data.MetrialDeliverStatus !='Delivered'){\r\n vm.IsBroadcastPermision = false;\r\n vm.IsAssignPermision = false;\r\n }\r\n }\r\n vm.selectedTicket = data;\r\n vm.disablefilters = false;\r\n if (vm.range!= '') {\r\n vm.GetSchedulingResults();\r\n }\r\n}\r\n\r\n vm.setClickedRowBroad = function(index,data){ //function that sets the value of selectedRow to current index\r\n vm.selectedRow = index;\r\n vm.selectedTicket = data;\r\n vm.disablefilters = false;\r\n if (vm.range!= '') {\r\n vm.GetSchedulingResults();\r\n }\r\n}\r\n\r\nvm.setSelectedFreelancers = function(index,data){\r\n if( vm.selectedFreelancers.indexOf(data) > -1 ){\r\n vm.selectedFreelancers.splice(vm.selectedFreelancers.indexOf(data), 1);\r\n }\r\n else{\r\n vm.selectedFreelancers.push(data);\r\n }\r\n}\r\n\r\nvm.isSelected = function(data){\r\n var bool = vm.selectedFreelancers.indexOf(data) >-1;\r\n return bool;\r\n}\r\n\r\nvm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : DefaultImage;\r\n}\r\n\r\nvm.filterUsers = function(role){\r\n if (role == 'Field Engineer') {\r\n vm.filterUserData = 'Field Engineer';\r\n }else if(role == 'Freelancer'){\r\n vm.filterUserData = 'Freelancer';\r\n }else if(role == 'Vendor Manager'){\r\n vm.filterUserData = 'Vendor Manager';\r\n } \r\n}\r\n\r\nvm.ChangeMode = function (mode) {\r\n if(mode == 'List'){\r\n vm.Mode = 'List';\r\n if(vm.selectedTicket == ''){\r\n GetSchedulingEventforToday(loggedinUser);\r\n } else {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n}\r\n\r\nvm.GetSchedulingResults = function(){\r\n\r\n vm.cities = [];\r\n vm.markers = [];\r\n if (vm.TicketStatus == 'New') {\r\n if (vm.selectedTicket=='' || vm.selectedTicket==null) {\r\n // vm.showFailure(\"Please select a job\");\r\n }else{\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function(d){\r\n if(d.isChecked){\r\n roleList.push({\"UserRole\":d.Role, \"UserType\":d.userType});\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.TicketId;\r\n\r\n // obj.jobId = vm.selectedTicket.LinkId?vm.selectedTicket.LinkId:vm.selectedTicket.TicketId;\r\n obj.JobAccountId = '';\r\n obj.FromDate = new Date().toISOString().slice(0,10);\r\n obj.ToDate = new Date().toISOString().slice(0,10);\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.RangeFromJob = parseInt(vm.range*1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList;\r\n if (vm.selectedFilter1!=undefined && vm.selectedFilter1!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter1.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter1.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate'; \r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2!=undefined && vm.selectedFilter2!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter2.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter2.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3!=undefined && vm.selectedFilter3!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n }else if (vm.selectedFilter3.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating';\r\n }else if (vm.selectedFilter3.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj,loggedinUser,token).then(function(resp){\r\n if (resp && resp.status==200 && resp.data && resp.data.users.length>0) {\r\n vm.SuggestedUserList = [];\r\n vm.BroadcastedList = [];\r\n vm.BroadcastedUserList =[];\r\n vm.SuggestedUserList = resp.data;\r\n for(var i=0;i=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter1.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter1.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate'; \r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2!=undefined && vm.selectedFilter2!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter2.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter2.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3!=undefined && vm.selectedFilter3!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n }else if (vm.selectedFilter3.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating';\r\n }else if (vm.selectedFilter3.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj,loggedinUser,token).then(function(resp){\r\n if (resp && resp.status==200 && resp.data && resp.data.users.length>0) {\r\n vm.SuggestedUserList = [];\r\n vm.SuggestedUserList =resp.data;\r\n for(var i=0;i=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter1.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter1.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate'; \r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2!=undefined && vm.selectedFilter2!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter2.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter2.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3!=undefined && vm.selectedFilter3!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n }else if (vm.selectedFilter3.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating';\r\n }else if (vm.selectedFilter3.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj,loggedinUser,token).then(function(resp){\r\n if (resp && resp.status==200 && resp.data && resp.data.users.length>0) {\r\n vm.SuggestedUserList = [];\r\n\r\n vm.SuggestedUserList =resp.data;\r\n for(var i=0;itoday){\r\n var sdate = start_date.split(\" \")[0];\r\n var stime = start_date.split(\" \")[1];\r\n var edate = end_date.split(\" \")[0];\r\n var etime = end_date.split(\" \")[1];\r\n start_date = newdate + ' ' + stime;\r\n end_date = newdate + ' ' + etime;\r\n }*/\r\n // vm.AllAssignUserList.push({\"UserId\":Id,\"TicketId\":ticketid}); \r\n\r\n //var fromDate = new Date().toISOString().slice(0,10);\r\n //var toDate = new Date().toISOString().slice(0,10);\r\n\r\n var AssignList =[];\r\n\r\n if(vm.AllAssignUserDetails.length!=0){\r\n console.log(vm.AllAssignUserDetails);\r\n AssignList = $filter('filter')(vm.AllAssignUserDetails,function(value){\r\n // return value.UserId==Id && value.start_date==start_date;\r\n //return value.UserId==Id;\r\n return value.TicketId==ticket;\r\n\r\n })\r\n console.log(AssignList);\r\n /// it is used for the \r\n if(AssignList.length!=0){\r\n var checklinkId = AssignList[0].LinkId;\r\n AssignList =[];\r\n var evs = scheduler.getEvents();\r\n var checkList = $filter('filter')(evs,function(value){\r\n return value.LinkId==checklinkId;\r\n })\r\n var d = checkList[0].id;\r\n scheduler.deleteEvent(d);\r\n }\r\n\r\n if(AssignList.length==0){\r\n var eventId = scheduler.addEvent({\r\n start_date: start_date,\r\n end_date: end_date,\r\n assignedUserid: Id,\r\n status :status,\r\n Role :Role,\r\n TicketId:ticket,\r\n Distance :Distance,\r\n LinkId: linkId,\r\n SuggestedPrice:SuggestedPrice,\r\n Price : Price,\r\n Name : Name,\r\n userType :userType\r\n });\r\n\r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkId,\"Role\":Role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":Name,\"Distance\":Distance,\"SuggestedPrice\":SuggestedPrice,\"type\":userType,\"Price\": Price});\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n }else if(vm.AllAssignUserDetails.length==0){\r\n var eventId = scheduler.addEvent({\r\n start_date: start_date,\r\n end_date: end_date,\r\n assignedUserid: Id,\r\n status :status,\r\n Role :Role,\r\n TicketId:ticket,\r\n LinkId: linkId,\r\n Distance :Distance,\r\n SuggestedPrice:SuggestedPrice,\r\n Price : Price,\r\n Name : Name,\r\n userType: userType,\r\n });\r\n\r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkId,\"Role\":Role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":Name,\"Distance\":Distance,\"SuggestedPrice\":SuggestedPrice,\"type\":userType,\"Price\": Price});\r\n\r\n }\r\n }\r\n\r\n /* vm.AssignTicketsTimeline = function () {\r\n vm.AllUserList =[];\r\n if(vm.selectedFreelancers == ''){\r\n vm.showFailure(\"Please select users.\")\r\n } else {\r\n angular.forEach(vm.selectedFreelancers,function(data){\r\n if(data.Role=='Field Engineer' && data.type=='Fixed Team') {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Field Engineer' && data.type == 'Freelancer') {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Vendor Manager' && data.type == 'Fixed Team') {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n }\r\n })\r\n\r\n ScheduleAssignService.AssignTicketssTimeline(loggedinUser,vm.AllUserList,token).then(function(resp){\r\n if (resp.status == 200 && resp.data) {\r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n // vm.TimeoutFunc(1500, vm.GetTicketsForAssignation());\r\n // vm.TimeoutFGetSchedulingEventforToday(loggedinUser));\r\n //vm.GetTicketsForAssignation();\r\n // GetSchedulingEventforToday(loggedinUser);\r\n vm.selectedFreelancers = [];\r\n vm.AssignModal.close();\r\n\r\n\r\n scheduler.clearAll();\r\n\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n // vm.AssignModal.close();\r\n GetSchedulingEventforToday(loggedinUser);\r\n vm.GetTicketsForAssignation();\r\n }, 1500);\r\n // $timeout(function() {\r\n // vm.GetTicketsForAssignation();\r\n // }, 1000);\r\n if(vm.Mode=='Map') {\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n }else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }\r\n }*/\r\n\r\n\r\n vm.AssignTicketsTimeline = function () {\r\n\r\n vm.AllUserList =[];\r\n angular.forEach(vm.AllAssignUserDetails,function(data){\r\n\r\n if(data.Role=='Field Engineer' && data.type=='Fixed Team' && data.isChecked ==true) {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Field Engineer' && data.type == 'Freelancer' && data.isChecked ==true) {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Vendor Manager' && data.type == 'Fixed Team' && data.isChecked ==true) {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Vendor Manager' && data.type == 'Freelancer' && data.isChecked ==true){\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n }\r\n })\r\n if(vm.AllUserList == ''){\r\n vm.showFailure(\"Please select users.\")\r\n } else {\r\n ScheduleAssignService.AssignTicketsTimeline(loggedinUser,vm.AllUserList,token).then(function(resp){\r\n if (resp && resp.data) {\r\n\r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n scheduler.clearAll();\r\n\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n GetSchedulingEventforToday(loggedinUser);\r\n if(vm.TicketStatus==\"New\"){\r\n vm.GetTicketsForAssignation();\r\n }else if(vm.TicketStatus==\"ReadyToAssign\"){\r\n vm.getReadyToAssign();\r\n }\r\n\r\n\r\n }, 1500);\r\n if(vm.Mode=='Map') {\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n }else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n vm.clearData = function () {\r\n vm.AllAssignUserDetails = [];\r\n vm.selectedTicket = '';\r\n vm.mapMarkers = [];\r\n } \r\n\r\n\r\n vm.OpenBroadcastModal = function(){\r\n if(vm.BroadcastedUserList == ''){\r\n vm.showFailure(\"Not found\",\"No users found\");\r\n } else {\r\n $scope.BroadcastedUser.allItemsSelected = true;\r\n $scope.selectAllBoardUser();\r\n vm.BroadcastModal = $uibModal.open({\r\n templateUrl: 'Broadcast-modal',\r\n backdrop: 'static',\r\n size:'lg',\r\n scope: $scope\r\n });\r\n }\r\n }\r\n\r\n vm.CloseBroadcastModal = function(){\r\n vm.selectedFreelancers = [];\r\n vm.BroadcastModal.close();\r\n }\r\n\r\n vm.OpenAssignModal = function(){ \r\n vm.AllAssignUserDetails =[];\r\n var evs = scheduler.getEvents();\r\n var t = vm.TicketStatus;\r\n var uniqueEventlist = new Map(); \r\n\r\n\r\n var eventslist = $filter('filter')(evs,function(value){\r\n return value.Price ==0;\r\n })\r\n\r\n angular.forEach(evs,function(data){\r\n\r\n if(!uniqueEventlist.has(data.TicketId)){\r\n uniqueEventlist.set(data.TicketId);\r\n\r\n if(data.status=='New'){\r\n var Id= data.assignedUserid;\r\n var ticketid= data.TicketId;\r\n var linkid = data.LinkId;\r\n var start_date =moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users,function(value){\r\n if(value.id==Id && value.userType!='Freelancer'){ \r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkid,\"Role\":value.role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":value.name,\"Distance\":value.UserDistance,\"SuggestedPrice\":value.BIDCounterRate,\"type\":value.userType,\"Price\": value.BIDCounterRate});\r\n\r\n }\r\n\r\n })\r\n }else if(data.status=='Broadcasted'){\r\n var Id= data.assignedUserid;\r\n var ticketid= data.TicketId;\r\n var linkid = data.LinkId;\r\n var start_date =moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users,function(value){\r\n if(value.id==Id){\r\n\r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkid,\"Role\":value.role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":value.name,\"Distance\":value.UserDistance,\"SuggestedPrice\":value.BIDCounterRate,\"type\":value.userType,\"Price\": value.BIDCounterRate});\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n\r\n })\r\n }else if(data.status=='ReadyToAssign'){\r\n\r\n var Id= data.assignedUserid;\r\n var ticketid= data.TicketId;\r\n var linkid = data.LinkId;\r\n var start_date =moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users,function(value){\r\n if(value.id==Id){\r\n\r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkid,\"Role\":value.role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":value.name,\"Distance\":value.UserDistance,\"SuggestedPrice\":value.BIDCounterRate,\"type\":value.userType,\"Price\": value.BIDCounterRate});\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n\r\n })\r\n }\r\n }\r\n })\r\n $scope.AssignSelectedUser = vm.AllAssignUserDetails;\r\n $scope.AssignSelectedUser.allItemsSelected = true;\r\n $scope.selectAll();\r\n\r\n vm.AssignModal = $uibModal.open({\r\n templateUrl: 'Assign-modal',\r\n size:'lg',\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n // }\r\n }\r\n\r\n vm.CloseAssignModal = function(){\r\n vm.selectedFreelancers = [];\r\n vm.AssignModal.close();\r\n }\r\n\r\n\r\n //Broadcast Bids/Jobs\r\n vm.BroadcastTicket = function(){\r\n\r\n\r\n var BidData = [];\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n obj.JobID = vm.selectedTicket.TicketId;\r\n obj.BIDDuration = vm.selectedTicket.BidDuration;\r\n // obj.BroadCastRate = vm.selectedTicket.BroadcastRate\r\n //obj.BroadCastGrossRate = vm.selectedTicket.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = parseInt(vm.selectedTicket.MobiforceCommission);\r\n // obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n\r\n\r\n var UserData = [];\r\n /* angular.forEach(vm.selectedFreelancers, function (d) {\r\n if (d) {*/\r\n angular.forEach($scope.BroadcastedUser, function (d) {\r\n if (d.isChecked==true) {\r\n // UserData.push(d.UserId);\r\n UserData.push({\"UserId\":d.UserId,\"SuggestedPrice\":parseInt(d.SuggestedPrice),\"Price\":parseInt(d.Price) ,\"Distance\":d.Distance});\r\n } \r\n });\r\n var checklist = $filter('filter')(UserData,function(value){\r\n return value.Price ==0;\r\n })\r\n if(checklist.length!=0){\r\n vm.showFailure(\"Failed\", \"Bid price can't be zero.\");\r\n }else{\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"JobId\": vm.selectedTicket.TicketId,\r\n \"BIDDuration\": vm.selectedTicket.BidDuration,\r\n \"MobiforceCommissionPercentage\": parseInt(vm.selectedTicket.MobiforceCommission),\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModal.close();\r\n\r\n ScheduleAssignService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n toaster.pop(vm.toaster_success);\r\n vm.selectedFreelancers = [];\r\n $timeout(function () {\r\n vm.GetTicketsForAssignation();\r\n }, 1500);\r\n\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Please select users.\");\r\n }\r\n }) \r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n }\r\n } \r\n\r\n }\r\n\r\n//Assign Tickets\r\nvm.AssignTickets = function (role, userId) {\r\n if (role == 'Field Engineer') {\r\n ScheduleAssignService.AssignTickets(userId,loggedinUser,vm.selectedTicket.TicketId,token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n vm.TimeoutFunc(1500, vm.GetTicketsForAssignation());\r\n // $timeout(function() {\r\n // vm.GetTicketsForAssignation();\r\n // }, 1000);\r\n if(vm.Mode=='Map') {\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n }else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }else if (role == 'Vendor Manager') {\r\n }\r\n}\r\n\r\n //MAP INTEGRATION\r\n vm.MapIntegration = function(){\r\n //for Initial Loading\r\n if(vm.selectedTicket==''){\r\n vm.mapMarkers = [];\r\n //Today's Scheduling Events\r\n angular.forEach(vm.SuggestedUserList.tickets, function(d){\r\n var customer = {};\r\n customer.lat = d.latitude;\r\n customer.long = d.longitude;\r\n customer.StartTime = d.start_date;\r\n customer.Address = d.city+' '+d.state;\r\n customer.ConsumerName = d.customerName;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = d.status;\r\n customer.AssignedUser = d.assignedUserName;\r\n customer.JobId = d.id;\r\n customer.StartDate = d.start_date;\r\n customer.EndDate = d.end_date;\r\n vm.mapMarkers.push(customer);\r\n })\r\n angular.forEach(vm.SuggestedUserList.users, function(d){\r\n var obj = {};\r\n obj.UserName = d.name;\r\n obj.BIDCounterRate = vm.round2Decimal(d.BIDCounterRate);\r\n obj.UserRating = d.UserRating?d.UserRating:0;\r\n obj.UserDistance = vm.round2Decimal(d.UserDistance);\r\n obj.UserLatitude = d.UserLatitude;\r\n obj.UserLongitude = d.UserLongitude;\r\n obj.UserContact = d.contactnumber?d.contactnumber:'NA';\r\n obj.UserImage = vm.getProfilePic(d.UserProfilePhoto);\r\n obj.Role = d.role;\r\n obj.userType = d.userType;\r\n vm.mapMarkers.push(obj);\r\n })\r\n //New Jobs\r\n if(vm.TicketStatus == 'New'){\r\n angular.forEach(vm.AllTicketList, function(d){\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.Latitude);\r\n var DefaultLong = parseFloat(d.Longitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.City+' '+d.State;\r\n customer.ConsumerName = d.ConsumerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'New';\r\n customer.JobId = d.TicketId;\r\n customer.StartDate = d.StartTime;\r\n customer.EndDate = d.EndTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n //Broadcasted Jobs\r\n } else if (vm.TicketStatus == 'Broadcasted'){\r\n angular.forEach(vm.BroadcastedJobList, function(d){\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.Location;\r\n customer.ConsumerName = d.CustomerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'Broadcasted';\r\n customer.JobId = d.JobId;\r\n customer.StartDate = d.StartDateTime;\r\n customer.EndDate = d.EndDateTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n } else if (vm.TicketStatus == 'ReadyToAssign'){\r\n angular.forEach(vm.ReadyToAssignList, function(d){\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.Location;\r\n customer.ConsumerName = d.CustomerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'ReadyToAssign';\r\n customer.JobId = d.JobId;\r\n customer.StartDate = d.StartDateTime;\r\n customer.EndDate = d.EndDateTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n }\r\n //on Job Selection\r\n } else {\r\n vm.mapMarkers = [];\r\n var customer = {};\r\n //Adding Customer Site on Ticket Status Basis\r\n if(vm.TicketStatus == 'New') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.Latitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.Longitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.City+' '+vm.selectedTicket.State;\r\n customer.ConsumerName = vm.selectedTicket.ConsumerName;\r\n customer.Status = vm.selectedTicket.TicketStatus;\r\n customer.JobId = vm.selectedTicket.TicketId;\r\n customer.StartDate = vm.selectedTicket.StartTime;\r\n customer.EndDate = vm.selectedTicket.EndTime;\r\n } \r\n else if (vm.TicketStatus == 'Broadcasted') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.JobLatitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.Location;\r\n customer.ConsumerName = vm.selectedTicket.CustomerName;\r\n customer.Status = vm.selectedTicket.Status;\r\n customer.JobId = vm.selectedTicket.JobId;\r\n customer.StartDate = vm.selectedTicket.StartDateTime;\r\n customer.EndDate = vm.selectedTicket.EndDateTime;\r\n } else if (vm.TicketStatus == 'ReadyToAssign') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.JobLatitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.Location;\r\n customer.ConsumerName = vm.selectedTicket.CustomerName;\r\n customer.Status = vm.selectedTicket.Status;\r\n customer.JobId = vm.selectedTicket.JobId;\r\n customer.StartDate = vm.selectedTicket.StartDateTime;\r\n customer.EndDate = vm.selectedTicket.EndDateTime;\r\n }\r\n customer.JobType = vm.selectedTicket.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n vm.mapMarkers.push(customer);\r\n\r\n //Adding Users into Marker\r\n angular.forEach(vm.SuggestedUserList.users,function(d){\r\n var obj = {};\r\n if (d && d.UserLatitude && d.UserLongitude) {\r\n obj.UserName = d.name;\r\n // obj.BIDApplyDateTime = d.BIDApplyDateTime;\r\n // obj.BIDApplyStatus = d.BIDApplyStatus;\r\n obj.BIDCounterRate = vm.round2Decimal(d.BIDCounterRate);\r\n obj.JobId = d.id;\r\n // obj.UserCurrentJobs = d.UserCurrentJobs;\r\n // obj.UserId = d.UserId;\r\n obj.UserRating = d.UserRating?d.UserRating:0;\r\n // obj.UserTotalJobs = d.UserTotalJobs;\r\n obj.UserDistance = vm.round2Decimal(d.UserDistance);\r\n obj.UserLatitude = d.UserLatitude;\r\n obj.UserLongitude = d.UserLongitude;\r\n obj.UserContact = d.contactnumber?d.contactnumber:'NA';\r\n obj.UserImage = vm.getProfilePic(d.UserProfilePhoto);\r\n // if (obj.Role=='Freelancer') {\r\n // obj.AssigButton = false; \r\n // }else{\r\n // obj.AssigButton = true;\r\n // }\r\n obj.Role = d.role;\r\n obj.userType = d.userType;\r\n vm.mapMarkers.push(obj);\r\n }\r\n })\r\n }\r\n\r\n\r\n //Setting the Map Options\r\n vm.MapOptions = {\r\n center: new google.maps.LatLng(DefaultLat, DefaultLong),\r\n // zoom: 20,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n }\r\n\r\n //Initializing the InfoWindow, Map and LatLngBounds objects.\r\n vm.InfoWindow = new google.maps.InfoWindow();\r\n vm.Latlngbounds = new google.maps.LatLngBounds();\r\n vm.Map = new google.maps.Map(document.getElementById(\"map-canvas\"), vm.MapOptions);\r\n\r\n //Looping through the Array and adding Markers.\r\n for(var i=0; iimage
\"\r\n vm.InfoWindow.setContent(\"

\"+data.ConsumerName+\"


\"+' '+data.JobId+\"
\"+' '+data.Status+\"
\"+' '+data.AssignedUser+\"
\"+' '+moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+data.Address+\"
\"); \r\n } else if(data.Status == 'Completed'){\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\"+data.ConsumerName+\"


\"+' '+data.JobId+\"
\"+' '+data.Status+\"
\"+' '+data.AssignedUser+\"
\"+' '+moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+data.Address+\"
\"); \r\n } \r\n else {\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\"+data.ConsumerName+\"


\"+' '+data.JobId+\"
\"+' '+data.Status+\"
\"+' '+moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+data.Address+\"
\");\r\n }\r\n vm.InfoWindow.open(vm.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n vm.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, data);\r\n vm.Latlngbounds.extend(marker.position);\r\n }else{\r\n ticketLatlng = new google.maps.LatLng(data.UserLatitude, data.UserLongitude);\r\n //Initializing the Marker object.\r\n if(data.Role == 'Field Engineer' && data.userType == 'Freelancer'){\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: flIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n }\r\n }); \r\n }else if (data.Role == 'Field Engineer' && data.userType == 'Fixed Team') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: ftIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n\r\n }\r\n });\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Fixed Team') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: vIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n\r\n }\r\n });\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Freelancer') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: fvIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n\r\n }\r\n });\r\n }\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, data) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n if(data.Role == 'Field Engineer' && data.userType == 'Fixed Team'){\r\n var Role = 'Field Engineer';\r\n } else if(data.Role == 'Field Engineer' && data.userType == 'Freelancer'){\r\n var Role = 'Freelancer';\r\n } else if(data.Role == 'Vendor Manager' && data.userType == 'Fixed Team') {\r\n var Role = 'Vendor Manager';\r\n } else {\r\n var Role = 'Freelancer Vendor';\r\n }\r\n var content = \"
image
\"+' '+data.UserName+\"
\"+' '+data.UserContact+\"
\"+' '+data.UserDistance+\" Kms
\"+' '+data.BIDCounterRate+\"
\"+' '+Role+\"
\"\r\n vm.InfoWindow.setContent(content);\r\n vm.InfoWindow.open(vm.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n vm.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, data); \r\n // vm.Latlngbounds.extend(marker.position);\r\n }\r\n //Plotting the Marker on the Map. \r\n }\r\n //Adjusting the Map for best display.\r\n vm.Map.setCenter(vm.Latlngbounds.getCenter());\r\n // vm.Map.fitBounds(vm.Latlngbounds);\r\n vm.Map.setZoom(13);\r\n \r\n }\r\n\r\n//Global Calls\r\nvm.GetTicketsForAssignation();\r\n}\r\n\r\nfunction GetSchedulingEventforToday(supervisiorId){\r\n //scheduler.clearAll();\r\n var accountId='';\r\n \r\n /*var fromDate = new Date().toISOString().slice(0,10);\r\n var toDate = new Date().toISOString().slice(0,10);*/\r\n /*var fromDate =\"2018-12-13\"\r\n var toDate = \"2019-01-03\"*/\r\n var date = new Date();\r\n var fromDate = new Date(date.getFullYear(), date.getMonth(), 1);\r\n fromDate = moment(fromDate).format(\"YYYY-MM-DD\");\r\n var toDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n toDate = moment(toDate).format(\"YYYY-MM-DD\");\r\n ScheduleAssignService.GetSchedulingEventToday(accountId,supervisiorId,fromDate,toDate,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n vm.SuggestedUserList = [];\r\n\r\n vm.SuggestedUserList = resp.data;\r\n\r\n var evs = scheduler.getEvents();\r\n\r\n angular.forEach(evs,function(val){\r\n if(val.status=='New'){\r\n var id =val.id;\r\n scheduler.deleteEvent(id); \r\n }\r\n })\r\n init();\r\n }\r\n })\r\n vm.MapIntegration();\r\n }\r\n GetSchedulingEventforToday(loggedinUser);\r\n\r\n\r\n\r\n\r\n\r\n $scope.selectEntity = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < $scope.AssignSelectedUser.length; i++) {\r\n if (!$scope.AssignSelectedUser[i].isChecked) {\r\n $scope.AssignSelectedUser.allItemsSelected = false;\r\n return;\r\n }\r\n }\r\n\r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.AssignSelectedUser.allItemsSelected = true;\r\n };\r\n\r\n // This executes when checkbox in table header is checked\r\n $scope.selectAll = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < $scope.AssignSelectedUser.length; i++) {\r\n $scope.AssignSelectedUser[i].isChecked = $scope.AssignSelectedUser.allItemsSelected;\r\n }\r\n };\r\n\r\n\r\n\r\n\r\n $scope.selectEntityBoardUser = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < $scope.BroadcastedUser.length; i++) {\r\n if (!$scope.BroadcastedUser[i].isChecked) {\r\n $scope.BroadcastedUser.allItemsSelected = false;\r\n return;\r\n }\r\n }\r\n\r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.BroadcastedUser.allItemsSelected = true;\r\n };\r\n\r\n // This executes when checkbox in table header is checked\r\n $scope.selectAllBoardUser = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < $scope.BroadcastedUser.length; i++) {\r\n $scope.BroadcastedUser[i].isChecked = $scope.BroadcastedUser.allItemsSelected;\r\n }\r\n };\r\n\r\n\r\n\r\n function init() {\r\n\r\n scheduler.locale.labels.timeline_tab = \"Timeline\";\r\n scheduler.locale.labels.section_custom=\"Section\";\r\n // scheduler.config.details_on_create=true;\r\n // scheduler.config.details_on_dblclick=true;\r\n scheduler.config.dblclick_create = false; \r\n\r\n scheduler.config.xml_date=\"%Y-%m-%d %H:%i\";\r\n var format = scheduler.date.date_to_str(\"%H:%i\");\r\n scheduler.config.touch_tooltip = true;\r\n scheduler.config.drag_resize= false;\r\n\r\n\r\n \r\n\r\n //it is used for the drag and drop functionality \r\n scheduler.attachEvent(\"onBeforeDrag\", function (event_id, mode, native_event_object){\r\n\r\n var ev = scheduler.getEvent(event_id);\r\n if(ev.status=='Assigned'){\r\n return false;\r\n } if(ev.status=='Completed'){\r\n return false;\r\n } \r\n else{\r\n return true; \r\n }\r\n });\r\n\r\n\r\n\r\n// this is used when we drag the event in one use to another user but the time is still same \r\nscheduler.attachEvent(\"onBeforeEventChanged\", function(ev, e, is_new, original){\r\n\r\n if (original.assignedUserid == ev.assignedUserid) \r\n return false;\r\n\r\n ev.start_date = original.start_date;\r\n ev.end_date = original.end_date;\r\n return true;\r\n});\r\n\r\n\r\n\r\n\r\n //this methd is used to stop the open the popup on double click \r\n scheduler.attachEvent(\"onDblClick\", function (id, e){ \r\n return false;\r\n });\r\n\r\n\r\n\r\n if(vm.SuggestedUserList.users.length!=0){\r\n var sections =[];\r\n var sections =vm.SuggestedUserList;\r\n if(vm.selectedTicket.Status==\"ReadyToAssign\"){\r\n var sectionlist = $filter('filter')(sections.users,function(value){\r\n // return value.BIDCounterRate!=0;\r\n return value.BIDCounterRate;\r\n })\r\n sections.users = sectionlist;\r\n }\r\n }else{\r\n var sections =[];\r\n var sections = vm.SuggestedUserList;\r\n // var sections.users =[];\r\n }\r\n\r\n /* scheduler.templates.event_bar_text = function(sd, ed, ev){\r\n return format(sd)+\" - \"+format(ed);\r\n }*/\r\n\r\n\r\n //this is used for the tooltip\r\n scheduler.templates.tooltip_text = function(start,end,event) { \r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id = event.id;\r\n }\r\n return \"Job Status : \"+event.status+\"
\"+ \r\n\r\n \"Job Id : \"+Id+\"
\"+ \r\n \"Start Time : \" + scheduler.templates.tooltip_date_format(start) + \"
\" +\r\n \"End Time : \" + scheduler.templates.tooltip_date_format(end);\r\n\r\n };\r\n\r\n// this is used for creating two event in the same slot \r\n scheduler.config.collision_limit = 5; //allows creating 2 events per time slot\r\n/*scheduler.attachEvent(\"onEventLoading\", function(ev){ \r\n return scheduler.checkCollision(ev); \r\n});\r\n*/\r\n\r\n\r\n\r\n\r\nscheduler.createTimelineView({\r\n name: \"timeline\",\r\n x_date: \"%H:%i\",\r\n x_unit:\"minute\",// the scale parameters will be calculated in minutes\r\n x_step:30, //sets the '30 minute' step, e.g. 09:00 - 09:30\r\n x_size:24, // the number of '30 minute's in the interval 09:00 - 15:00\r\n // 15 - 9 = 6 hours = 360 minutes = 360/30 = 12\r\n x_start:18, //scale starts from 09:00,i.e. 9 hours from the default start- 00:00.\r\n // 9 hours = 540 minutes = 540/30 = 18 'x_step's \r\n x_length:48,//sc\r\n y_unit: scheduler.serverList('sections',sections.users),\r\n y_property: \"assignedUserid\",\r\n render:\"bar\",\r\n });\r\n\r\nscheduler.ignore_timeline = function(date){\r\n //non-work hours\r\n if (date.getHours() < 8 || date.getHours() > 18) return true;\r\n };\r\n\r\n\r\n scheduler.templates.timeline_scale_label =function(key, label,sections){\r\n if(sections.userType=='Fixed Team' && sections.role=='Field Engineer'){\r\n var UserIdentity ='FE';\r\n\r\n } else if(sections.userType=='Freelancer' && sections.role=='Field Engineer'){\r\n var UserIdentity ='FL';\r\n\r\n } else if(sections.userType=='Fixed Team' && sections.role=='Vendor Manager'){\r\n var UserIdentity ='V';\r\n\r\n } else if(sections.userType=='Freelancer' && sections.role=='Vendor Manager'){\r\n var UserIdentity ='FV';\r\n \r\n }\r\n var ratings = sections.UserRating?sections.UserRating:0;\r\n if(sections.BIDCounterRate!=null){\r\n return \"
\\\r\n
image
\\\r\n
\\\r\n
\"+sections.name+\"\"+UserIdentity+\"
\\\r\n

\"+sections.contactnumber+\"

\\\r\n

\"+ moment(sections.LastLocationDateTime).format(\"DD/MM/YYYY HH:mm\")+\"

\\\r\n
\\\r\n \"+ratings+\"\\\r\n \\\r\n \"+round2Decimal(sections.UserDistance)+\" km \\\r\n \"+sections.UserDuration+\" Min\\\r\n
\\\r\n
\\\r\n
\";\r\n }else{\r\n return \"
\\\r\n
image
\\\r\n
\\\r\n
\"+sections.name+\"\"+UserIdentity+\"
\\\r\n

\"+sections.contactnumber+\"

\\\r\n

\"+ moment(sections.LastLocationDateTime).format(\"DD/MM/YYYY HH:mm\")+\"

\\\r\n
\\\r\n \"+ratings+\"\\\r\n \"+sections.UserDuration+\" Min\\\r\n
\\\r\n
\";\r\n }\r\n\r\n };\r\n\r\n\r\n function getPic(profilePic) {\r\n return profilePic ? ImageUrl + '/' + profilePic : DefaultImage;\r\n }\r\n\r\n function round2Decimal(no) {\r\n return Math.round(no * 100) / 100; \r\n }\r\n\r\n\r\n\r\n\r\n\r\n scheduler.attachEvent(\"onBeforeViewChange\", function(old_mode,old_date,mode,date){\r\n //any custom logic here\r\n\r\n vm.mode =mode;\r\n return true;\r\n });\r\n\r\n/*scheduler.templates.event_text=function(start, end, event){\r\n return \"
\"+Id+\"
\";\r\n}\r\n*/\r\n\r\n //timeline event bar text is used for timeline mode\r\n scheduler.templates.event_bar_text = function (start, end, event) {\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id =event.LinkId?event.LinkId:event.id;\r\n }\r\n return \"
\"+Id+\"
\";\r\n};\r\n\r\n// it is used when we dislay in month mode\r\nscheduler.templates.event_bar_date = function(start,end,event){\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id = event.LinkId?event.LinkId:event.id;\r\n }\r\n return \"\"+Id+\" \";\r\n};\r\n\r\n // it is used for the week basis \r\n scheduler.templates.event_header = function(start,end,event){\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id =event.LinkId?event.LinkId:event.id;\r\n }\r\n return \"
\"+Id+\"
\";\r\n\r\n};\r\n\r\n\r\n\r\n//this is used for the status \r\nscheduler.templates.event_class = function (start, end, event) {\r\n if(vm.mode=='timeline'){\r\n scheduler.config.readonly = false;\r\n if (event.status == \"Assigned\") {\r\n return \"Assigned\";\r\n }\r\n if (event.status == \"New\") {\r\n return \"New\";\r\n }\r\n if (event.status == \"Broadcasted\") {\r\n return \"Broadcasted\";\r\n } \r\n if (event.status == \"Completed\") {\r\n return \"Completed\";\r\n }if(event.status ==\"ReadyToAssign\"){\r\n return \"ReadyToAssign\";\r\n }\r\n return \"dhx_rent_payed\";\r\n\r\n}\r\nelse if(vm.mode=='week' || vm.mode=='month' || vm.mode=='day'){\r\n scheduler.config.readonly = true;\r\n if (event.status == \"Assigned\") {\r\n return \"Assigned1\";\r\n }\r\n if (event.status == \"New\") {\r\n return \"New1\";\r\n }\r\n if (event.status == \"Broadcasted\") {\r\n return \"Broadcasted1\";\r\n } \r\n if (event.status == \"Completed\") {\r\n return \"Completed1\";\r\n }if(event.status ==\"ReadyToAssign\"){\r\n return \"ReadyToAssign1\";\r\n }\r\n return \"dhx_rent_payed1\";\r\n}\r\n\r\n};\r\n\r\nscheduler.init('scheduler_here',new Date(),\"timeline\");\r\n\r\nif(sections.tickets.length!=0){\r\n\r\n var sectionlist = $filter('filter')(sections.tickets,function(value){\r\n // return value.UserId==Id && value.start_date==start_date;\r\n //return value.UserId==Id;\r\n return value.status=='Completed' || value.status=='Assigned';\r\n\r\n })\r\n sections.tickets = sectionlist;\r\n scheduler.parse(sections.tickets,\"json\");\r\n}\r\n\r\n //scheduler.parse(sections.tickets,\"json\");\r\n\r\n }\r\n\r\n//init();\r\nvm.GetAllStates = function () {\r\n //U310000000001\r\n VendorCreationService.getAllState(loggedinUser).then(function (resp) {\r\n if (resp.data) {\r\n if (!angular.equals(vm.stateList, resp.data.values)) {\r\n vm.stateList = resp.data.values;\r\n }\r\n }\r\n })\r\n}\r\nvm.GetAllStates();\r\n})\r\n\nvar app = angular.module('inspinia').controller('DemoAssignedController', function (ScheduleAssignService, DTColumnBuilder, jobBidCreationService, UIURL, FreelancerFixedService,\r\n $log, $state, $localStorage, $stateParams, CentralHelpdeskConfigService, CentralHDTicketsViewService, $uibModal, AssignationRuleService, SchedulingRuleService, VendorCreationService, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile,\r\n uiCalendarConfig, ImageUrl, $filter) {\r\n\r\n\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserSkill = $localStorage.loggedInUser_SkillSet;\r\n var loggedinUserRegion = $localStorage.loggedInUser_Region;\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var token = $localStorage.token;\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.TimeoutFunc = $scope.$parent.$parent.main.TimeoutFunc;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.loggedinAs = $localStorage.loggedinAs;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.MobiforceCommission = vm.getAccountConfigSetting('MobiforceCommissionPercentage');\r\n vm.VendorAssignation = vm.getAccountConfigSetting('VendorAssignation');\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.FreelancerAccess = vm.getAccountConfigSetting('FreelancerAccess');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.AllTicketList = '';\r\n vm.filterCriteria1 = [\"Price\", \"Distance\", \"Ratings\"];\r\n vm.filterCriteria2 = [\"Price\", \"Distance\", \"Ratings\"];\r\n vm.filterCriteria3 = [\"Price\", \"Distance\", \"Ratings\"];\r\n vm.selectedFilter1 = 'Distance';\r\n vm.selectedFilter2 = 'Ratings';\r\n vm.selectedFilter3 = 'Price';\r\n vm.disablefilters = true;\r\n vm.range = '10';\r\n vm.TerritoryState = '';\r\n vm.NewJob = true;\r\n vm.isCurrentLocation = false;\r\n vm.selectedRow = null; // initialize our variable to null\r\n vm.selectedFreelancers = [];\r\n vm.SuggestedUserList = [];\r\n vm.AssignTicektData = [];\r\n vm.AllAssignUserDetails = [];\r\n $scope.AssignSelectedUser = {};\r\n $scope.AssignSelectedUser.allItemsSelected = false;\r\n vm.AllAssignUserList = [];\r\n vm.BroadcastedUserList = [];\r\n vm.ReadyToAssignList = [];\r\n $scope.BroadcastedUser = {};\r\n $scope.BroadcastedUser.allItemsSelected = false;\r\n vm.TransMode = 'driving';\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.IsBroadcastPermision = true;\r\n vm.IsAssignPermision = true;\r\n vm.Mode = 'List';\r\n vm.TicketStatus = 'New';\r\n vm.cities = [];\r\n vm.markers = [];\r\n var itemNames = '';\r\n var itemValues = '';\r\n vm.otherfilter = '';\r\n vm.DateField = 'CreatedOn';\r\n var NewJobIcon = UIURL + '/assets/images/patterns/JOb_icon.png';\r\n var BroadcastedJobIcon = UIURL + '/assets/images/patterns/JOb_icon.png';\r\n var AssignedJobIcon = UIURL + '/assets/images/patterns/JOb_icon.png';\r\n var CompletedJobIcon = UIURL + '/assets/images/patterns/JOb_icon.png';\r\n var flIcon = UIURL + '/assets/images/patterns/mascot_icon2.png';\r\n var ftIcon = UIURL + '/assets/images/patterns/mascot_icon2.png';\r\n var fvIcon = UIURL + '/assets/images/patterns/mascot_icon2.png';\r\n var vIcon = UIURL + '/assets/images/patterns/mascot_icon2.png';\r\n var DefaultImage = UIURL + '/assets/images/patterns/Photo1.png';\r\n vm.InfoWindow;\r\n vm.selectedTicket = '';\r\n vm.BroadcastedJobList = '';\r\n // var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var startDate = moment().format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: startDate, endDate: endDate };\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n\r\n\r\n\r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.getAllTicketList();\r\n\r\n };\r\n\r\n $scope.editingData = {};\r\n $scope.editingFPrice = {};\r\n $scope.modify = function (list) {\r\n $scope.editingData[list.UserId] = true;\r\n };\r\n\r\n $scope.modifyFPrice = function (list) {\r\n $scope.editingFPrice[list.UserId] = true;\r\n };\r\n\r\n\r\n $scope.update = function (list) {\r\n if (list.Price == 0) {\r\n vm.showFailure(\"Failed\", \"Bid price can't be zero.\");\r\n } else {\r\n list.TPrice = (Number)(list.Price) + ((list.Price * vm.GSTPercentange) / 100);\r\n list.FPrice = (list.Price) - ((list.Price * vm.MobiforceCommission) / 100);\r\n $scope.editingData[list.UserId] = false;\r\n }\r\n\r\n };\r\n\r\n $scope.updateFPrice = function (list) {\r\n if (list.FPrice == 0) {\r\n vm.showFailure(\"Failed\", \"price can't be zero.\");\r\n } else {\r\n list.Price = (list.FPrice * 100) / (100 - vm.MobiforceCommission);\r\n list.TPrice = (Number)(list.Price) + ((list.Price * vm.GSTPercentange) / 100);\r\n\r\n $scope.editingFPrice[list.UserId] = false;\r\n }\r\n\r\n };\r\n\r\n vm.Technicianviewtypes = [\r\n {\r\n name: 'All',\r\n value: 'All'\r\n },\r\n {\r\n name: 'New',\r\n value: 'New'\r\n },\r\n {\r\n name: 'ReadyToAssign',\r\n value: 'ReadyToAssign'\r\n },\r\n\r\n {\r\n name: 'Broadcasted',\r\n value: 'Broadcasted'\r\n },\r\n\r\n {\r\n name: 'Approved',\r\n value: 'Approved'\r\n },\r\n {\r\n name: 'Assigned',\r\n value: 'Assigned'\r\n },\r\n {\r\n name: 'Cancelled',\r\n value: 'Cancelled'\r\n },\r\n {\r\n name: 'OnSite',\r\n value: 'OnSite'\r\n },\r\n {\r\n name: 'Lunch',\r\n value: 'Lunch'\r\n },\r\n {\r\n name: 'InTransite',\r\n value: 'InTransite'\r\n },\r\n {\r\n name: 'Completed',\r\n value: 'Completed'\r\n },\r\n {\r\n name: 'Rejected',\r\n value: 'Rejected'\r\n },\r\n {\r\n name: 'On Hold',\r\n value: 'Hold'\r\n },\r\n ];\r\n vm.technicianuserviewtype = vm.Technicianviewtypes[0].value;\r\n vm.userviewlayout = vm.technicianuserviewtype;\r\n vm.globalsearch = '';\r\n vm.userviewtype = function (userview) {\r\n vm.globalsearch = userview;\r\n vm.getAllTicketList();\r\n }\r\n\r\n vm.Filter = function () {\r\n if (vm.otherfilter == 'New' || vm.otherfilter == \"ReadyToAssign\") {\r\n itemNames = 'Ticket Status';\r\n itemValues = vm.otherfilter;\r\n }\r\n else {\r\n itemNames = 'Ticket Status';\r\n itemValues = vm.technicianuserviewtype;\r\n }\r\n if (vm.VerticalName != 'IMS' || vm.VerticalName != 'Spectro Labs') {\r\n if (loggedinUserSkill == \"VSAT\") {\r\n itemNames += \"Template\";\r\n itemValues += \"VSAT CCR\";\r\n } else if (loggedinUserSkill == \"LeaseLine\") {\r\n itemNames += \"Template\";\r\n itemValues += \"LeaseLine CCR\";\r\n }\r\n }\r\n\r\n if (vm.VerticalName == 'IMS') {\r\n if (loggedinUserSkill == \"VSAT\") {\r\n itemNames += \",Template\";\r\n itemValues += \",VSAT CCR\";\r\n } else if (loggedinUserSkill == \"LeaseLine\") {\r\n itemNames += \",Template\";\r\n itemValues += \",LeaseLine CCR\";\r\n }\r\n }\r\n\r\n if (vm.TerritoryState != '') {\r\n itemNames += \",State\";\r\n itemValues = itemValues + \",\" + vm.TerritoryState;\r\n }\r\n }\r\n vm.getAllTicketList = function () {\r\n var fromDate = startDate;\r\n var toDate = endDate;\r\n vm.Filter();\r\n ScheduleAssignService.GetTicketsByStatusDemo(loggedinUser, itemNames, itemValues, fromDate, toDate, token).then(function (resp) {\r\n if (resp && resp.status == 200 && resp.data) {\r\n //var ticketData = [];\r\n vm.AllTicketLists = resp.data;\r\n // ticketData = vm.AllTicketLists; \r\n vm.disablefilters = false;\r\n\r\n GetSchedulingEventfordates(loggedinUser, fromDate, toDate);\r\n scheduler.clearAll();\r\n }\r\n })\r\n }\r\n\r\n vm.getAllTicketList();\r\n\r\n vm.round2Decimal = function (no) {\r\n return Math.round(no * 100) / 100;\r\n }\r\n\r\n\r\n $scope.class1 = false;\r\n vm.addRemoveRedClass = function () {\r\n if ($scope.class1) {\r\n $scope.class1 = false;\r\n } else {\r\n $scope.class1 = true;\r\n }\r\n }\r\n\r\n\r\n\r\n vm.model = {};\r\n vm.model.allItemsSelected = false;\r\n\r\n // if(vm.FreelancerAccess){\r\n // vm.model = [{ \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\":\"Field Engineer\"},\r\n // { \"key\": 2, \"Role\": \"Field Engineer\", \"userType\":\"Freelancer\", \"Value\":\"Freelancer\"},\r\n // { \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Fixed Team\", \"Value\":\"Vendor\"},\r\n // { \"key\": 4, \"Role\": \"Vendor Manager\", \"userType\":\"Freelancer\", \"Value\":\"Freelancer Vendor\"}\r\n // ];\r\n // }else{\r\n // vm.model = [\r\n // { \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\":\"Field Engineer\"},\r\n // { \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Fixed Team\", \"Value\":\"Vendor\"}\r\n // ];\r\n // }\r\n\r\n if (vm.FreelancerAccess) {\r\n vm.model = [{ \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\": \"Fixed Team\" },\r\n { \"key\": 2, \"Role\": \"Field Engineer\", \"userType\": \"Freelancer\", \"Value\": \"Freelancers/Contractors\" },\r\n { \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Freelancer\", \"Value\": \"Third party vendors\" }\r\n ];\r\n } else {\r\n vm.model = [{ \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\": \"Fixed Team\" },\r\n { \"key\": 2, \"Role\": \"Field Engineer\", \"userType\": \"Freelancer\", \"Value\": \"Freelancers/Contractors\" },\r\n { \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Freelancer\", \"Value\": \"Third party vendors\" }\r\n ];\r\n }\r\n\r\n vm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n\r\n vm.getSkills = function () {\r\n CentralHDTicketsViewService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills;\r\n }, vm.showFailure);\r\n }\r\n vm.getSkills();\r\n\r\n vm.statusList = [];\r\n vm.getJobAllStatus = function () {\r\n CentralHDTicketsViewService.getJobAllStatus(loggedinUser, token, function (data) {\r\n //vm.statusList = data;\r\n angular.forEach(data, function (status) {\r\n if (status.StatusName == 'On Hold') {\r\n status.StatusName = 'Hold';\r\n }\r\n vm.statusList.push(status.StatusName);\r\n })\r\n }, vm.showFailure);\r\n }\r\n vm.getJobAllStatus();\r\n\r\n vm.GetAllStates = function () {\r\n CentralHDTicketsViewService.getStates(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.states = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n vm.GetAllStates();\r\n\r\n vm.getAllAccounts = function () {\r\n CentralHelpdeskConfigService.getAllAccounts(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.HDAllAccounts = resp.data;\r\n\r\n }\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.getAllAccounts();\r\n\r\n vm.getAllCustomer = function () {\r\n CentralHDTicketsViewService.getAllCustomers(loggedinUser, token).then(function (resp) {\r\n vm.CustomerList = resp.data;\r\n })\r\n }\r\n\r\n vm.GetProjectByCustomer = function () {\r\n vm.ProjectListByCustomer = [];\r\n angular.forEach(vm.CustomerList, function (customer) {\r\n if (customer.CompanyName == vm.SearchByCName) {\r\n vm.ProjectListByCustomer = customer.Projects;\r\n }\r\n })\r\n }\r\n\r\n vm.getAllCustomer();\r\n\r\n vm.GetCustomerByAccount = function () {\r\n var SelectedAccountId = '';\r\n angular.forEach(vm.HDAllAccounts, function (account) {\r\n if (account.AccountName == vm.SearchByAccountName) {\r\n SelectedAccountId = account.AccountId;\r\n }\r\n })\r\n CentralHDTicketsViewService.GetCustomersByAccount(loggedinUser, SelectedAccountId, token).then(function (resp) {\r\n vm.CustomerList = resp.data;\r\n })\r\n }\r\n $scope.isOpen = false;\r\n $scope.isOpen1 = false;\r\n $scope.isCollapsed = true;\r\n $scope.isCollapsed0 = true;\r\n $scope.isCollapsed1 = true;\r\n $scope.isCollapsed2 = true;\r\n $scope.isCollapsed3 = true;\r\n $scope.isCollapsed4 = true;\r\n $scope.isCollapsed5 = true;\r\n $scope.isCollapsed6 = true;\r\n $scope.isCollapsed7 = true;\r\n $scope.isCollapsed8 = true;\r\n $scope.isCollapsed9 = true;\r\n $scope.isCollapsed10 = true;\r\n $scope.isCollapsed11 = true;\r\n $scope.isCollapsed12 = true;\r\n $scope.isCollapsed13 = true;\r\n $scope.isCollapsed14 = true;\r\n $scope.isCollapsed15 = true;\r\n $scope.isCollapsed16 = true;\r\n $scope.isCollapsed17 = true;\r\n $scope.isCollapsed18 = true;\r\n $scope.isCollapsed19 = true;\r\n $scope.isCollapsed20 = true;\r\n $scope.isCollapsed21 = true;\r\n $scope.isCollapsed22 = true;\r\n $scope.isCollapsed23 = true;\r\n $scope.isCollapsed24 = true;\r\n $scope.isCollapsed25 = true;\r\n $scope.isCollapsed26 = true;\r\n $scope.isCollapsed27 = true;\r\n $scope.isCollapsed28 = true;\r\n $scope.isCollapsed29 = true;\r\n $scope.isCollapsed30 = true;\r\n $scope.isCollapsed31 = true;\r\n $scope.isCollapsed32 = true;\r\n $scope.isCollapsed33 = true;\r\n $scope.isCollapsed34 = true;\r\n $scope.isCollapsed35 = true;\r\n $scope.isCollapsed36 = true;\r\n $scope.isCollapsed37 = true;\r\n $scope.isCollapsed38 = true;\r\n $scope.isCollapsed39 = true;\r\n $scope.isCollapsed40 = true;\r\n $scope.isCollapsed41 = true;\r\n $scope.isCollapsed42 = true;\r\n $scope.isCollapsed43 = true;\r\n\r\n $scope.openAnalysisReport = function (analysisDetails) {\r\n $localStorage.UploadId = analysisDetails.UploadId;\r\n $scope.showAnalysisReport = !$scope.showAnalysisReport;\r\n angular.element('#filter-visible-area').removeClass(\"filter-slider-visible\");\r\n }\r\n $scope.backScreen = function () {\r\n $scope.showAnalysisReport = false;\r\n angular.element('#filter-visible-area').addClass(\"filter-slider-visible\");\r\n }\r\n // $scope.class1 = false;\r\n // vm.addRemoveRedClass = function (UploadId) {\r\n // $localStorage.UploadId = UploadId;\r\n // if ($scope.class1) {\r\n // $scope.class1 = false;\r\n // } else {\r\n // $scope.class1 = true;\r\n // }\r\n // }\r\n\r\n vm.RedirectToConfiguration = function () {\r\n $state.go('index.SchedulerRuleConfig', { reload: true });\r\n }\r\n\r\n vm.selectEntityFilter = function () {\r\n var newList = [];\r\n var usersList = angular.copy(vm.SuggestedUserList.users);\r\n vm.TestCase = false;\r\n for (var i = 0; i < vm.model.length; i++) {\r\n if (!vm.model[i].isChecked) {\r\n vm.TestCase = true;\r\n vm.model.allItemsSelected = false;\r\n var Role = vm.model[i].Role;\r\n var userType = vm.model[i].userType;\r\n var allIndex = [];\r\n /*usersList.some(function(obj, x) {\r\n if(obj.role == Role && obj.userType == userType){\r\n delete usersList[x];\r\n } else {\r\n false;\r\n }\r\n });*/\r\n newList = [];\r\n /*angular.forEach(usersList, function(d){\r\n if(d){\r\n newList.push(d);\r\n }\r\n })*/\r\n }\r\n }\r\n if (newList == '' && vm.TestCase == false) {\r\n newList = vm.SuggestedUserList.users;\r\n // scheduler.updateCollection(\"sections\", newList);\r\n vm.model.allItemsSelected = true;\r\n } else {\r\n // scheduler.updateCollection(\"sections\", newList);\r\n }\r\n };\r\n\r\n vm.selectAllFilter = function () {\r\n for (var i = 0; i < vm.model.length; i++) {\r\n vm.model[i].isChecked = vm.model.allItemsSelected;\r\n }\r\n /*if(vm.model.allItemsSelected==true){\r\n scheduler.updateCollection(\"sections\", vm.SuggestedUserList.users);\r\n }else{\r\n var freelist =[];\r\n scheduler.updateCollection(\"sections\",freelist);\r\n }*/\r\n };\r\n vm.model.allItemsSelected = true;\r\n vm.selectAllFilter();\r\n\r\n\r\n vm.FilterData = function (item, level) {\r\n if (level == 1) {\r\n vm.filterCriteria2 = [];\r\n angular.forEach(vm.filterCriteria1, function (d) {\r\n if (d != item) {\r\n vm.filterCriteria2.push(d);\r\n }\r\n })\r\n } else if (level == 2) {\r\n vm.filterCriteria3 = [];\r\n angular.forEach(vm.filterCriteria1, function (d) {\r\n if (d != item) {\r\n if (d != vm.selectedFilter1) {\r\n vm.filterCriteria3.push(d);\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.GetJobsByFilter = function (item, value) {\r\n if (item == 'Priority') {\r\n var itemNames = 'Priority';\r\n var itemValues = value;\r\n ScheduleAssignService.GetTicketsByFilter(loggedinUser, itemNames, itemValues).then(function (resp) {\r\n if (resp && resp.status == 200 && resp.data) {\r\n vm.AllTicketList = resp.data;\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.GetMobCommission = function (data) {\r\n vm.MobiforceCommission = data;\r\n }\r\n\r\n vm.GetServiceTax = function (data) {\r\n vm.GSTPercentange = data;\r\n }\r\n\r\n\r\n jobBidCreationService.GetMobCommission(loggedinUser, token, vm.GetMobCommission);\r\n jobBidCreationService.GetServiceTax(loggedinUser, token, vm.GetServiceTax);\r\n\r\n\r\n\r\n\r\n vm.setClickedRowNew = function (index, data) {\r\n\r\n //need to fix assisted scheduling. returning for now\r\n return true;\r\n\r\n\r\n //function that sets the value of selectedRow to current index\r\n vm.selectedRow = index;\r\n if (vm.IsMaterialDelivered) {\r\n if (data.MetrialDeliverStatus != 'Delivered') {\r\n vm.IsBroadcastPermision = false;\r\n vm.IsAssignPermision = false;\r\n }\r\n }\r\n vm.selectedTicket = data;\r\n vm.disablefilters = false;\r\n if (vm.range != '') {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n\r\n\r\n\r\n vm.setClickedRowBroad = function (index, data) { //function that sets the value of selectedRow to current index\r\n vm.selectedRow = index;\r\n vm.selectedTicket = data;\r\n vm.disablefilters = false;\r\n if (vm.range != '') {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n\r\n vm.setSelectedFreelancers = function (index, data) {\r\n if (vm.selectedFreelancers.indexOf(data) > -1) {\r\n vm.selectedFreelancers.splice(vm.selectedFreelancers.indexOf(data), 1);\r\n }\r\n else {\r\n vm.selectedFreelancers.push(data);\r\n }\r\n }\r\n\r\n vm.isSelected = function (data) {\r\n var bool = vm.selectedFreelancers.indexOf(data) > -1;\r\n return bool;\r\n }\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : DefaultImage;\r\n }\r\n\r\n vm.filterUsers = function (role) {\r\n if (role == 'Field Engineer') {\r\n vm.filterUserData = 'Field Engineer';\r\n } else if (role == 'Freelancer') {\r\n vm.filterUserData = 'Freelancer';\r\n } else if (role == 'Vendor Manager') {\r\n vm.filterUserData = 'Vendor Manager';\r\n }\r\n }\r\n\r\n vm.ChangeMode = function (mode) {\r\n if (mode == 'List') {\r\n vm.Mode = 'List';\r\n if (vm.selectedTicket == '') {\r\n console.log('ChangeMode');\r\n GetSchedulingEventforToday(loggedinUser);\r\n } else {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n }\r\n\r\n vm.OnloadUsers = function () {\r\n var today = new Date();\r\n var newdate = moment(today).format(\"YYYY-MM-DD\");\r\n var data = {\r\n\r\n \"JobId\": \"\",\r\n \"ActOnCurrentLocation\": true,\r\n \"RangeFromJob\": \"\",\r\n \"OrderByUsers\": [\r\n {\r\n \"PriorityOrder\": 0,\r\n \"OrderByField\": \"\"\r\n }\r\n ],\r\n \"FETravelChargePerKM\": 0,\r\n \"FromDate\": newdate,\r\n \"ToDate\": newdate,\r\n \"TransportMode\": \"\",\r\n \"UserConfigList\": [\r\n {\r\n \"UserRole\": \"\",\r\n \"UserType\": \"\"\r\n }\r\n ]\r\n\r\n }\r\n ScheduleAssignService.OnloadUser(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200 && resp.data && resp.data.users.length > 0) {\r\n vm.SuggestedUserList = [];\r\n\r\n vm.SuggestedUserList = resp.data;\r\n for (var i = 0; i < vm.SuggestedUserList.users.length; i++) {\r\n if (vm.SuggestedUserList.users[i].contactnumber) {\r\n vm.SuggestedUserList.users[i].contactnumber = vm.SuggestedUserList.users[i].contactnumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n }\r\n\r\n\r\n for (var i = 0; i < vm.SuggestedUserList.users.length; i++) {\r\n if (vm.SuggestedUserList.users[i].userType == \"Fixed Team\") {\r\n $(\".FEHIDE\").addClass(\"colors\");\r\n\r\n }\r\n }\r\n init();\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n //vm.OnloadUsers();\r\n\r\n\r\n\r\n\r\n vm.GetSchedulingResults = function () {\r\n\r\n vm.cities = [];\r\n vm.markers = [];\r\n if (vm.TicketStatus == 'New') {\r\n if (vm.selectedTicket == '' || vm.selectedTicket == null) {\r\n // vm.showFailure(\"Please select a job\");\r\n } else {\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function (d) {\r\n if (d.isChecked) {\r\n roleList.push({ \"UserRole\": d.Role, \"UserType\": d.userType });\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.JobId;\r\n\r\n // obj.jobId = vm.selectedTicket.LinkId?vm.selectedTicket.LinkId:vm.selectedTicket.TicketId;\r\n obj.JobAccountId = '';\r\n obj.FromDate = new Date().toISOString().slice(0, 10);\r\n obj.ToDate = new Date().toISOString().slice(0, 10);\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.RangeFromJob = parseInt(vm.range * 1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList;\r\n if (vm.selectedFilter1 != undefined && vm.selectedFilter1 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter1.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter1.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2 != undefined && vm.selectedFilter2 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter2.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter2.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3 != undefined && vm.selectedFilter3 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter3.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter3.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200 && resp.data && resp.data.users.length > 0) {\r\n vm.SuggestedUserList = [];\r\n vm.BroadcastedList = [];\r\n vm.BroadcastedUserList = [];\r\n vm.SuggestedUserList = resp.data;\r\n for (var i = 0; i < vm.SuggestedUserList.users.length; i++) {\r\n if (vm.SuggestedUserList.users[i].contactnumber) {\r\n vm.SuggestedUserList.users[i].contactnumber = vm.SuggestedUserList.users[i].contactnumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n\r\n }\r\n\r\n vm.UserList = resp.data.users;\r\n angular.forEach(vm.UserList, function (d) {\r\n if (d.userType == 'Freelancer') {\r\n vm.BroadcastedList.push(d);\r\n var TPrice = (Number)(d.Price) + ((d.Price * vm.GSTPercentange) / 100);\r\n var FPrice = (d.Price) - ((d.Price * vm.MobiforceCommission) / 100);\r\n vm.BroadcastedUserList.push({ \"UserId\": d.id, \"Role\": d.role, \"Name\": d.name, \"ContactNumber\": d.contactnumber, \"Distance\": d.UserDistance, \"SuggestedPrice\": d.BIDCounterRate, \"type\": d.userType, \"Price\": d.Price, \"TPrice\": TPrice, \"FPrice\": FPrice });\r\n\r\n }\r\n })\r\n $scope.BroadcastedUser = vm.BroadcastedUserList;\r\n\r\n vm.GetResult(resp.data.users, vm.selectedTicket.TicketId, vm.selectedTicket.LinkId, vm.selectedTicket.StartTime, vm.selectedTicket.TaskEndTime, vm.selectedTicket.TicketStatus);\r\n\r\n\r\n init();\r\n vm.selectEntityFilter();\r\n // vm.MapIntegration()\r\n // vm.MapData();\r\n } else {\r\n vm.toaster_fail.title = \"Not Found\";\r\n vm.toaster_fail.body = \"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n console.log('GetSchedulingResults');\r\n GetSchedulingEventforToday(loggedinUser);\r\n }\r\n })\r\n }\r\n } else if (vm.TicketStatus == 'Broadcasted') {\r\n if (vm.selectedTicket == '' || vm.selectedTicket == null) {\r\n // vm.showFailure(\"Please select a job\");\r\n } else {\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function (d) {\r\n if (d.isChecked) {\r\n roleList.push({ \"UserRole\": d.Role, \"UserType\": d.userType });\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.JobId;\r\n // obj.jobId = vm.selectedTicket.LinkId?vm.selectedTicket.LinkId:vm.selectedTicket.TicketId;\r\n obj.JobAccountId = '';\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.FromDate = new Date().toISOString().slice(0, 10);\r\n obj.ToDate = new Date().toISOString().slice(0, 10);\r\n obj.RangeFromJob = parseInt(vm.range * 1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList;\r\n if (vm.selectedFilter1 != undefined && vm.selectedFilter1 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter1.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter1.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2 != undefined && vm.selectedFilter2 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter2.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter2.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3 != undefined && vm.selectedFilter3 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter3.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter3.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200 && resp.data && resp.data.users.length > 0) {\r\n vm.SuggestedUserList = [];\r\n vm.SuggestedUserList = resp.data;\r\n for (var i = 0; i < vm.SuggestedUserList.users.length; i++) {\r\n if (vm.SuggestedUserList.users[i].contactnumber) {\r\n vm.SuggestedUserList.users[i].contactnumber = vm.SuggestedUserList.users[i].contactnumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n }\r\n vm.userList = resp.data;\r\n vm.GetResult(resp.data.users, vm.selectedTicket.JobId, vm.selectedTicket.LinkId, vm.selectedTicket.StartDateTime, vm.selectedTicket.TaskEndTime, vm.selectedTicket.Status);\r\n\r\n init();\r\n vm.selectEntityFilter();\r\n // vm.MapIntegration()\r\n // vm.MapData();\r\n } else {\r\n vm.toaster_fail.title = \"Not Found\";\r\n vm.toaster_fail.body = \"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n console.log('GetSchedulingResults-2');\r\n GetSchedulingEventforToday(loggedinUser);\r\n }\r\n })\r\n }\r\n }\r\n if (vm.TicketStatus == 'ReadyToAssign') {\r\n if (vm.selectedTicket == '' || vm.selectedTicket == null) {\r\n // vm.showFailure(\"Please select a job\");\r\n } else {\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function (d) {\r\n if (d.isChecked) {\r\n roleList.push({ \"UserRole\": d.Role, \"UserType\": d.userType });\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.JobId;\r\n obj.JobAccountId = '';\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.FromDate = new Date().toISOString().slice(0, 10);\r\n obj.ToDate = new Date().toISOString().slice(0, 10);\r\n obj.RangeFromJob = parseInt(vm.range * 1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList;\r\n if (vm.selectedFilter1 != undefined && vm.selectedFilter1 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter1.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter1.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2 != undefined && vm.selectedFilter2 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter2.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter2.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3 != undefined && vm.selectedFilter3 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter3.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter3.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200 && resp.data && resp.data.users.length > 0) {\r\n vm.SuggestedUserList = [];\r\n\r\n vm.SuggestedUserList = resp.data;\r\n for (var i = 0; i < vm.SuggestedUserList.users.length; i++) {\r\n if (vm.SuggestedUserList.users[i].contactnumber) {\r\n vm.SuggestedUserList.users[i].contactnumber = vm.SuggestedUserList.users[i].contactnumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n }\r\n vm.userList = resp.data;\r\n vm.GetResult(resp.data.users, vm.selectedTicket.JobId, vm.selectedTicket.LinkId, vm.selectedTicket.StartDateTime, vm.selectedTicket.TaskEndTime, vm.selectedTicket.Status);\r\n\r\n init();\r\n vm.selectEntityFilter();\r\n // vm.MapIntegration()\r\n // vm.MapData();\r\n } else {\r\n vm.toaster_fail.title = \"Not Found\";\r\n vm.toaster_fail.body = \"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n console.log('GetSchedulingResults-3');\r\n GetSchedulingEventforToday(loggedinUser);\r\n\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n vm.GetResult = function (user, ticketid, linkId, start, end, status) {\r\n // scheduler.clearAll();\r\n\r\n var ticket = vm.selectedTicket.TicketId ? vm.selectedTicket.TicketId : vm.selectedTicket.JobId;\r\n\r\n var evs = scheduler.getEvents();\r\n if (vm.TicketStatus == \"ReadyToAssign\") {\r\n var bidRate = user[0].BIDCounterRate;\r\n var readyList = $filter('filter')(user, function (value) {\r\n return value.BIDCounterRate != 0;\r\n })\r\n if (readyList.length != 0) {\r\n var Id = readyList[0].id;\r\n var Role = readyList[0].role;\r\n var userType = readyList[0].userType;\r\n var Name = readyList[0].name;\r\n var Distance = readyList[0].UserDistance;\r\n var SuggestedPrice = readyList[0].BIDCounterRate;\r\n var Price = readyList[0].BIDCounterRate;\r\n } else {\r\n var Id = user[0].id\r\n var Role = user[0].role;\r\n var userType = user[0].userType;\r\n var Name = user[0].name;\r\n var Distance = user[0].UserDistance;\r\n var SuggestedPrice = user[0].BIDCounterRate;\r\n var Price = user[0].BIDCounterRate;\r\n }\r\n } else {\r\n var Id = user[0].id;\r\n var Role = user[0].role;\r\n var userType = user[0].userType;\r\n var Name = user[0].name;\r\n var Distance = user[0].UserDistance;\r\n var SuggestedPrice = user[0].BIDCounterRate;\r\n var Price = user[0].BIDCounterRate;\r\n }\r\n /* var Role = user[0].role;\r\n var userType = user[0].userType;\r\n var Name = user[0].name;\r\n var Distance = user[0].UserDistance;\r\n var SuggestedPrice = user[0].BIDCounterRate;\r\n var Price = user[0].BIDCounterRate;*/\r\n var start_date = moment(start).format(\"DD-MM-YYYY HH:mm\");\r\n var end_date = moment(end).format(\"DD-MM-YYYY HH:mm\");\r\n var today = new Date();\r\n var newdate = moment(today).format(\"DD-MM-YYYY\");\r\n\r\n\r\n\r\n // if(start_datetoday){\r\n var sdate = start_date.split(\" \")[0];\r\n var stime = start_date.split(\" \")[1];\r\n var edate = end_date.split(\" \")[0];\r\n var etime = end_date.split(\" \")[1];\r\n start_date = newdate + ' ' + stime;\r\n end_date = newdate + ' ' + etime;\r\n }*/\r\n // vm.AllAssignUserList.push({\"UserId\":Id,\"TicketId\":ticketid}); \r\n\r\n //var fromDate = new Date().toISOString().slice(0,10);\r\n //var toDate = new Date().toISOString().slice(0,10);\r\n\r\n var AssignList = [];\r\n\r\n if (vm.AllAssignUserDetails.length != 0) {\r\n console.log(vm.AllAssignUserDetails);\r\n AssignList = $filter('filter')(vm.AllAssignUserDetails, function (value) {\r\n // return value.UserId==Id && value.start_date==start_date;\r\n //return value.UserId==Id;\r\n return value.TicketId == ticket;\r\n\r\n })\r\n console.log(AssignList);\r\n /// it is used for the \r\n if (AssignList.length != 0) {\r\n var checklinkId = AssignList[0].LinkId;\r\n AssignList = [];\r\n var evs = scheduler.getEvents();\r\n var checkList = $filter('filter')(evs, function (value) {\r\n return value.LinkId == checklinkId;\r\n })\r\n var d = checkList[0].id;\r\n scheduler.deleteEvent(d);\r\n }\r\n\r\n if (AssignList.length == 0) {\r\n var eventId = scheduler.addEvent({\r\n start_date: start_date,\r\n end_date: end_date,\r\n assignedUserid: Id,\r\n status: status,\r\n Role: Role,\r\n TicketId: ticket,\r\n Distance: Distance,\r\n LinkId: linkId,\r\n SuggestedPrice: SuggestedPrice,\r\n Price: Price,\r\n Name: Name,\r\n userType: userType\r\n });\r\n\r\n vm.AllAssignUserDetails.push({ \"UserId\": Id, \"TicketId\": ticketid, \"LinkId\": linkId, \"Role\": Role, \"start_date\": start_date, \"end_date\": end_date, \"Name\": Name, \"Distance\": Distance, \"SuggestedPrice\": SuggestedPrice, \"type\": userType, \"Price\": Price });\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n } else if (vm.AllAssignUserDetails.length == 0) {\r\n var eventId = scheduler.addEvent({\r\n start_date: start_date,\r\n end_date: end_date,\r\n assignedUserid: Id,\r\n status: status,\r\n Role: Role,\r\n TicketId: ticket,\r\n LinkId: linkId,\r\n Distance: Distance,\r\n SuggestedPrice: SuggestedPrice,\r\n Price: Price,\r\n Name: Name,\r\n userType: userType,\r\n });\r\n\r\n vm.AllAssignUserDetails.push({ \"UserId\": Id, \"TicketId\": ticketid, \"LinkId\": linkId, \"Role\": Role, \"start_date\": start_date, \"end_date\": end_date, \"Name\": Name, \"Distance\": Distance, \"SuggestedPrice\": SuggestedPrice, \"type\": userType, \"Price\": Price });\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n vm.AssignTicketsTimeline = function () {\r\n\r\n vm.AllUserList = [];\r\n angular.forEach(vm.AllAssignUserDetails, function (data) {\r\n\r\n if (data.Role == 'Field Engineer' && data.type == 'Fixed Team' && data.isChecked == true) {\r\n vm.AllUserList.push({ \"UserId\": data.UserId, \"TicketId\": data.JobId ? data.JobId : data.LinkId, \"StartTime\": data.start_date, \"Endtime\": data.end_date, \"SuggestedPrice\": data.SuggestedPrice, \"AssignPrice\": data.Price, \"Distance\": data.Distance })\r\n } else if (data.Role == 'Field Engineer' && data.type == 'Freelancer' && data.isChecked == true) {\r\n vm.AllUserList.push({ \"UserId\": data.UserId, \"TicketId\": data.JobId ? data.JobId : data.LinkId, \"StartTime\": data.start_date, \"Endtime\": data.end_date, \"SuggestedPrice\": data.SuggestedPrice, \"AssignPrice\": data.Price, \"Distance\": data.Distance })\r\n } else if (data.Role == 'Vendor Manager' && data.type == 'Fixed Team' && data.isChecked == true) {\r\n vm.AllUserList.push({ \"UserId\": data.UserId, \"TicketId\": data.JobId ? data.JobId : data.LinkId, \"StartTime\": data.start_date, \"Endtime\": data.end_date, \"SuggestedPrice\": data.SuggestedPrice, \"AssignPrice\": data.Price, \"Distance\": data.Distance })\r\n } else if (data.Role == 'Vendor Manager' && data.type == 'Freelancer' && data.isChecked == true) {\r\n vm.AllUserList.push({ \"UserId\": data.UserId, \"TicketId\": data.JobId ? data.JobId : data.LinkId, \"StartTime\": data.start_date, \"Endtime\": data.end_date, \"SuggestedPrice\": data.SuggestedPrice, \"AssignPrice\": data.Price, \"Distance\": data.Distance })\r\n }\r\n })\r\n if (vm.AllUserList == '') {\r\n vm.showFailure(\"Please select users.\")\r\n } else {\r\n ScheduleAssignService.AssignTicketsTimeline(loggedinUser, vm.AllUserList, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n\r\n vm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n scheduler.clearAll();\r\n\r\n $timeout(function () {\r\n vm.mapMarkers = [];\r\n vm.AssignModal.close();\r\n console.log('AssignTicketsTimeline');\r\n GetSchedulingEventforToday(loggedinUser);\r\n if (vm.TicketStatus == \"New\") {\r\n vm.otherfilter = \"New\";\r\n vm.getAllTicketList();\r\n\r\n } else if (vm.TicketStatus == \"ReadyToAssign\") {\r\n vm.otherfilter = \"ReadyToAssign\";\r\n vm.getAllTicketList();\r\n }\r\n vm.otherfilter = '';\r\n\r\n }, 1500);\r\n if (vm.Mode == 'Map') {\r\n $timeout(function () {\r\n vm.mapMarkers = [];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }\r\n $state.reload();\r\n }\r\n\r\n vm.clearData = function () {\r\n vm.AllAssignUserDetails = [];\r\n vm.selectedTicket = '';\r\n vm.mapMarkers = [];\r\n }\r\n\r\n\r\n vm.OpenBroadcastModal = function () {\r\n if (vm.BroadcastedUserList == '') {\r\n vm.showFailure(\"Not found\", \"No users found\");\r\n } else {\r\n $scope.BroadcastedUser.allItemsSelected = true;\r\n $scope.selectAllBoardUser();\r\n vm.BroadcastModal = $uibModal.open({\r\n templateUrl: 'Broadcast-modal',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n }\r\n\r\n vm.CloseBroadcastModal = function () {\r\n vm.selectedFreelancers = [];\r\n vm.BroadcastModal.close();\r\n }\r\n\r\n vm.OpenAssignModal = function () {\r\n vm.AllAssignUserDetails = [];\r\n var evs = scheduler.getEvents();\r\n var t = vm.TicketStatus;\r\n var uniqueEventlist = new Map();\r\n\r\n\r\n var eventslist = $filter('filter')(evs, function (value) {\r\n return value.Price == 0;\r\n })\r\n\r\n angular.forEach(evs, function (data) {\r\n\r\n if (!uniqueEventlist.has(data.JobId)) {\r\n uniqueEventlist.set(data.JobId);\r\n\r\n if (data.status == 'New') {\r\n var Id = data.assignedUserid;\r\n var ticketid = data.JobId;\r\n var linkid = data.LinkId;\r\n var start_date = moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users, function (value) {\r\n if (value.id == Id && value.userType != 'Freelancer') {\r\n vm.AllAssignUserDetails.push({ \"UserId\": Id, \"TicketId\": ticketid, \"LinkId\": linkid, \"Role\": value.role, \"start_date\": start_date, \"end_date\": end_date, \"Name\": value.name, \"Distance\": value.UserDistance, \"SuggestedPrice\": value.BIDCounterRate, \"type\": value.userType, \"Price\": value.BIDCounterRate });\r\n\r\n }\r\n\r\n })\r\n } else if (data.status == 'Broadcasted') {\r\n var Id = data.assignedUserid;\r\n var ticketid = data.JobId;\r\n var linkid = data.LinkId;\r\n var start_date = moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users, function (value) {\r\n if (value.id == Id) {\r\n\r\n vm.AllAssignUserDetails.push({ \"UserId\": Id, \"TicketId\": ticketid, \"LinkId\": linkid, \"Role\": value.role, \"start_date\": start_date, \"end_date\": end_date, \"Name\": value.name, \"Distance\": value.UserDistance, \"SuggestedPrice\": value.BIDCounterRate, \"type\": value.userType, \"Price\": value.BIDCounterRate });\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n\r\n })\r\n } else if (data.status == 'ReadyToAssign') {\r\n\r\n var Id = data.assignedUserid;\r\n var ticketid = data.JobId;\r\n var linkid = data.LinkId;\r\n var start_date = moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users, function (value) {\r\n if (value.id == Id) {\r\n\r\n vm.AllAssignUserDetails.push({ \"UserId\": Id, \"TicketId\": ticketid, \"LinkId\": linkid, \"Role\": value.role, \"start_date\": start_date, \"end_date\": end_date, \"Name\": value.name, \"Distance\": value.UserDistance, \"SuggestedPrice\": value.BIDCounterRate, \"type\": value.userType, \"Price\": value.BIDCounterRate });\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n\r\n })\r\n }\r\n }\r\n })\r\n $scope.AssignSelectedUser = vm.AllAssignUserDetails;\r\n $scope.AssignSelectedUser.allItemsSelected = true;\r\n $scope.selectAll();\r\n\r\n vm.AssignModal = $uibModal.open({\r\n templateUrl: 'Assign-modal',\r\n size: 'lg',\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n // }\r\n }\r\n\r\n vm.CloseAssignModal = function () {\r\n vm.selectedFreelancers = [];\r\n vm.AssignModal.close();\r\n }\r\n\r\n\r\n //Broadcast Bids/Jobs\r\n vm.BroadcastTicket = function () {\r\n\r\n\r\n var BidData = [];\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n obj.JobID = vm.selectedTicket.JobId;\r\n obj.BIDDuration = vm.selectedTicket.BIDDuration;\r\n // obj.BroadCastRate = vm.selectedTicket.BroadcastRate\r\n //obj.BroadCastGrossRate = vm.selectedTicket.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = parseInt(vm.selectedTicket.MobiforceCommission);\r\n // obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n\r\n\r\n var UserData = [];\r\n /* angular.forEach(vm.selectedFreelancers, function (d) {\r\n if (d) {*/\r\n angular.forEach($scope.BroadcastedUser, function (d) {\r\n if (d.isChecked == true) {\r\n // UserData.push(d.UserId);\r\n UserData.push({ \"UserId\": d.UserId, \"SuggestedPrice\": parseInt(d.SuggestedPrice), \"Price\": parseInt(d.Price), \"Distance\": d.Distance });\r\n }\r\n });\r\n var checklist = $filter('filter')(UserData, function (value) {\r\n return value.Price == 0;\r\n })\r\n if (checklist.length != 0) {\r\n vm.showFailure(\"Failed\", \"Bid price can't be zero.\");\r\n } else {\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"JobId\": vm.selectedTicket.JobId,\r\n \"BIDDuration\": vm.selectedTicket.BidDuration,\r\n \"MobiforceCommissionPercentage\": parseInt(vm.selectedTicket.MobiforceCommission),\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModal.close();\r\n\r\n ScheduleAssignService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n toaster.pop(vm.toaster_success);\r\n vm.selectedFreelancers = [];\r\n $timeout(function () {\r\n vm.otherfilter = \"New\";\r\n vm.getAllTicketList();\r\n\r\n }, 1500);\r\n vm.otherfilter = '';\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Please select users.\");\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n }\r\n }\r\n\r\n }\r\n\r\n //Assign Tickets\r\n vm.AssignTickets = function (role, userId) {\r\n if (role == 'Field Engineer') {\r\n ScheduleAssignService.AssignTickets(userId, loggedinUser, vm.selectedTicket.TicketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n vm.otherfilter = \"New\";\r\n vm.TimeoutFunc(1500, vm.getAllTicketList());\r\n if (vm.Mode == 'Map') {\r\n $timeout(function () {\r\n vm.mapMarkers = [];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n vm.otherfilter = '';\r\n } else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n } else if (role == 'Vendor Manager') {\r\n }\r\n }\r\n\r\n //MAP INTEGRATION\r\n vm.MapIntegration = function () {\r\n //for Initial Loading\r\n if (vm.selectedTicket == '') {\r\n vm.mapMarkers = [];\r\n //Today's Scheduling Events\r\n angular.forEach(vm.SuggestedUserList.tickets, function (d) {\r\n var customer = {};\r\n customer.lat = d.latitude;\r\n customer.long = d.longitude;\r\n customer.StartTime = d.start_date;\r\n customer.Address = d.city + ' ' + d.state;\r\n customer.ConsumerName = d.customerName;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = d.status;\r\n customer.AssignedUser = d.assignedUserName;\r\n customer.JobId = d.id;\r\n customer.StartDate = d.start_date;\r\n customer.EndDate = d.end_date;\r\n if (d.status != 'Lunch') {\r\n vm.mapMarkers.push(customer);\r\n }\r\n })\r\n angular.forEach(vm.SuggestedUserList.users, function (d) {\r\n var obj = {};\r\n obj.UserName = d.name;\r\n obj.BIDCounterRate = vm.round2Decimal(d.BIDCounterRate);\r\n obj.UserRating = d.UserRating ? d.UserRating : 0;\r\n obj.UserDistance = vm.round2Decimal(d.UserDistance);\r\n obj.UserLatitude = d.UserLatitude;\r\n obj.UserLongitude = d.UserLongitude;\r\n obj.UserContact = d.contactnumber ? d.contactnumber : 'NA';\r\n obj.UserImage = vm.getProfilePic(d.UserProfilePhoto);\r\n obj.Role = d.role;\r\n obj.userType = d.userType;\r\n vm.mapMarkers.push(obj);\r\n })\r\n //New Jobs\r\n if (vm.TicketStatus == 'New') {\r\n angular.forEach(vm.AllTicketList, function (d) {\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.City + ' ' + d.State;\r\n customer.ConsumerName = d.ConsumerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'New';\r\n customer.JobId = d.TicketId;\r\n customer.StartDate = d.StartTime;\r\n customer.EndDate = d.EndTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n //Broadcasted Jobs\r\n } else if (vm.TicketStatus == 'Broadcasted') {\r\n angular.forEach(vm.BroadcastedJobList, function (d) {\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.Location;\r\n customer.ConsumerName = d.CustomerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'Broadcasted';\r\n customer.JobId = d.JobId;\r\n customer.StartDate = d.StartDateTime;\r\n customer.EndDate = d.EndDateTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n } else if (vm.TicketStatus == 'ReadyToAssign') {\r\n angular.forEach(vm.ReadyToAssignList, function (d) {\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.Location;\r\n customer.ConsumerName = d.CustomerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'ReadyToAssign';\r\n customer.JobId = d.JobId;\r\n customer.StartDate = d.StartDateTime;\r\n customer.EndDate = d.EndDateTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n }\r\n //on Job Selection\r\n } else {\r\n vm.mapMarkers = [];\r\n var customer = {};\r\n //Adding Customer Site on Ticket Status Basis\r\n if (vm.TicketStatus == 'New') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.Latitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.Longitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.City + ' ' + vm.selectedTicket.State;\r\n customer.ConsumerName = vm.selectedTicket.ConsumerName;\r\n customer.Status = vm.selectedTicket.TicketStatus;\r\n customer.JobId = vm.selectedTicket.TicketId;\r\n customer.StartDate = vm.selectedTicket.StartTime;\r\n customer.EndDate = vm.selectedTicket.EndTime;\r\n\r\n }\r\n else if (vm.TicketStatus == 'Broadcasted') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.JobLatitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.Location;\r\n customer.ConsumerName = vm.selectedTicket.CustomerName;\r\n customer.Status = vm.selectedTicket.Status;\r\n customer.JobId = vm.selectedTicket.JobId;\r\n customer.StartDate = vm.selectedTicket.StartDateTime;\r\n customer.EndDate = vm.selectedTicket.EndDateTime;\r\n } else if (vm.TicketStatus == 'ReadyToAssign') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.JobLatitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.Location;\r\n customer.ConsumerName = vm.selectedTicket.CustomerName;\r\n customer.Status = vm.selectedTicket.Status;\r\n customer.JobId = vm.selectedTicket.JobId;\r\n customer.StartDate = vm.selectedTicket.StartDateTime;\r\n customer.EndDate = vm.selectedTicket.EndDateTime;\r\n }\r\n customer.JobType = vm.selectedTicket.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n vm.mapMarkers.push(customer);\r\n\r\n //Adding Users into Marker\r\n angular.forEach(vm.SuggestedUserList.users, function (d) {\r\n var obj = {};\r\n if (d && d.UserLatitude && d.UserLongitude) {\r\n obj.UserName = d.name;\r\n // obj.BIDApplyDateTime = d.BIDApplyDateTime;\r\n // obj.BIDApplyStatus = d.BIDApplyStatus;\r\n obj.BIDCounterRate = vm.round2Decimal(d.BIDCounterRate);\r\n obj.JobId = d.id;\r\n // obj.UserCurrentJobs = d.UserCurrentJobs;\r\n // obj.UserId = d.UserId;\r\n obj.UserRating = d.UserRating ? d.UserRating : 0;\r\n // obj.UserTotalJobs = d.UserTotalJobs;\r\n obj.UserDistance = vm.round2Decimal(d.UserDistance);\r\n obj.UserLatitude = d.UserLatitude;\r\n obj.UserLongitude = d.UserLongitude;\r\n obj.UserContact = d.contactnumber ? d.contactnumber : 'NA';\r\n obj.UserImage = vm.getProfilePic(d.UserProfilePhoto);\r\n // if (obj.Role=='Freelancer') {\r\n // obj.AssigButton = false; \r\n // }else{\r\n // obj.AssigButton = true;\r\n // }\r\n obj.Role = d.role;\r\n obj.userType = d.userType;\r\n vm.mapMarkers.push(obj);\r\n }\r\n })\r\n }\r\n\r\n\r\n //Setting the Map Options\r\n vm.MapOptions = {\r\n center: new google.maps.LatLng(DefaultLat, DefaultLong),\r\n // zoom: 20,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n }\r\n\r\n //Initializing the InfoWindow, Map and LatLngBounds objects.\r\n vm.InfoWindow = new google.maps.InfoWindow();\r\n vm.Latlngbounds = new google.maps.LatLngBounds();\r\n vm.Map = new google.maps.Map(document.getElementById(\"map-canvas\"), vm.MapOptions);\r\n\r\n //Looping through the Array and adding Markers.\r\n for (var i = 0; i < vm.mapMarkers.length; i++) {\r\n var data = vm.mapMarkers[i];\r\n var ticketLatlng = '';\r\n if (data.Role == 'Customer') {\r\n ticketLatlng = new google.maps.LatLng(data.lat, data.long);\r\n //Initializing the Marker object.\r\n if (data.Status == 'New') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n //label:data.ConsumerName,\r\n title: data.ConsumerName,\r\n // labelClass:\"marker_container-label\",\r\n // labelInBackground:false,\r\n //icon:NewJobIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/JOb_icon.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n animation: google.maps.Animation.DROP,\r\n label: {\r\n text: data.ConsumerName,\r\n color: \"#C70E20\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n }\r\n });\r\n } else if (data.Status == 'Broadcasted') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n //label:data.ConsumerName,\r\n title: data.ConsumerName,\r\n // labelClass:\"marker_container-label\",\r\n // labelInBackground:false,\r\n // icon:BroadcastedJobIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/JOb_icon.png',\r\n labelOrigin: new google.maps.Point(50, 32),\r\n },\r\n animation: google.maps.Animation.DROP,\r\n label: {\r\n text: data.ConsumerName,\r\n color: \"#C70E20\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n }\r\n });\r\n } else if (data.Status == 'Assigned') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n //label:data.ConsumerName,\r\n title: data.ConsumerName,\r\n // labelClass:\"marker_container-label\",\r\n // labelInBackground:false,\r\n //icon: AssignedJobIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/JOb_icon.png',\r\n labelOrigin: new google.maps.Point(50, 32),\r\n },\r\n animation: google.maps.Animation.DROP,\r\n label: {\r\n text: data.ConsumerName,\r\n color: \"#C70E20\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n }\r\n });\r\n } else if (data.Status == 'Completed') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n //label:data.ConsumerName,\r\n title: data.ConsumerName,\r\n // labelClass:\"marker_container-label\",\r\n // labelInBackground:false,\r\n //icon: CompletedJobIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/JOb_icon.png',\r\n labelOrigin: new google.maps.Point(50, 32),\r\n },\r\n animation: google.maps.Animation.DROP,\r\n label: {\r\n text: data.ConsumerName,\r\n color: \"#C70E20\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n }\r\n });\r\n } else {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n // label:data.ConsumerName,\r\n title: data.ConsumerName,\r\n // labelClass:\"marker_container-label\",\r\n // labelInBackground:false,\r\n // icon: CompletedJobIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/JOb_icon.png',\r\n labelOrigin: new google.maps.Point(50, 32),\r\n },\r\n animation: google.maps.Animation.DROP,\r\n label: {\r\n text: data.ConsumerName,\r\n color: \"#C70E20\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n }\r\n });\r\n }\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, data) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n if (data.Status == 'Assigned') {\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\" + data.ConsumerName + \"


\" + ' ' + data.JobId + \"
\" + ' ' + data.Status + \"
\" + ' ' + data.AssignedUser + \"
\" + ' ' + moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + data.Address + \"
\");\r\n } else if (data.Status == 'Completed') {\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\" + data.ConsumerName + \"


\" + ' ' + data.JobId + \"
\" + ' ' + data.Status + \"
\" + ' ' + data.AssignedUser + \"
\" + ' ' + moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + data.Address + \"
\");\r\n }\r\n else {\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\" + data.ConsumerName + \"


\" + ' ' + data.JobId + \"
\" + ' ' + data.Status + \"
\" + ' ' + moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + data.Address + \"
\");\r\n }\r\n vm.InfoWindow.open(vm.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n vm.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, data);\r\n vm.Latlngbounds.extend(marker.position);\r\n } else {\r\n ticketLatlng = new google.maps.LatLng(data.UserLatitude, data.UserLongitude);\r\n //Initializing the Marker object.\r\n if (data.Role == 'Field Engineer' && data.userType == 'Freelancer') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: flIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n }\r\n });\r\n } else if (data.Role == 'Field Engineer' && data.userType == 'Fixed Team') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: ftIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n\r\n }\r\n });\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Fixed Team') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: vIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n\r\n }\r\n });\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Freelancer') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: fvIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n\r\n }\r\n });\r\n }\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, data) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n if (data.Role == 'Field Engineer' && data.userType == 'Fixed Team') {\r\n var Role = 'Field Engineer';\r\n } else if (data.Role == 'Field Engineer' && data.userType == 'Freelancer') {\r\n var Role = 'Freelancer';\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Fixed Team') {\r\n var Role = 'Vendor Manager';\r\n } else {\r\n var Role = 'Freelancer Vendor';\r\n }\r\n var content = \"
image
\" + ' ' + data.UserName + \"
\" + ' ' + data.UserContact + \"
\" + ' ' + data.UserDistance + \" Kms
\" + ' ' + data.BIDCounterRate + \"
\" + ' ' + Role + \"
\"\r\n vm.InfoWindow.setContent(content);\r\n vm.InfoWindow.open(vm.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n vm.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, data);\r\n // vm.Latlngbounds.extend(marker.position);\r\n }\r\n //Plotting the Marker on the Map. \r\n }\r\n //Adjusting the Map for best display.\r\n vm.Map.setCenter(vm.Latlngbounds.getCenter());\r\n // vm.Map.fitBounds(vm.Latlngbounds);\r\n vm.Map.setZoom(13);\r\n\r\n }\r\n }\r\n\r\n\r\n vm.territoryChange = function () {\r\n GetSchedulingEventforToday(loggedinUser);\r\n }\r\n\r\n function GetSchedulingEventforToday(supervisiorId) {\r\n var accountId = '';\r\n // var date = new Date();\r\n // var fromDate = new Date(date.getFullYear(), date.getMonth(), 1);\r\n // fromDate = moment(fromDate).format(\"YYYY-MM-DD\");\r\n fromDate = moment().format(\"YYYY-MM-DD\");\r\n // var toDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n // toDate = moment(toDate).format(\"YYYY-MM-DD\");\r\n toDate = moment().format(\"YYYY-MM-DD\");\r\n var itemNames = 'State';\r\n var itemValues = vm.TerritoryState;\r\n ScheduleAssignService.GetSchedulingEventToday(accountId, supervisiorId, fromDate, toDate, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.status == 200 && resp.data) {\r\n vm.SuggestedUserList = [];\r\n vm.SuggestedUserList = resp.data;\r\n vm.ObjectivesList = resp.data.businessObjectives;\r\n var evs = scheduler.getEvents();\r\n angular.forEach(evs, function (val) {\r\n if (val.status == 'New') {\r\n var id = val.id;\r\n scheduler.deleteEvent(id);\r\n }\r\n })\r\n init();\r\n }\r\n })\r\n vm.MapIntegration();\r\n }\r\n\r\n\r\n function GetSchedulingEventfordates(supervisiorId, fromDate, toDate) {\r\n var accountId = '';\r\n var date = new Date();\r\n //var fromDate = new Date(date.getFullYear(), date.getMonth(), 1);\r\n fromDate = moment(fromDate).format(\"YYYY-MM-DD\");\r\n //var toDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n toDate = moment(toDate).format(\"YYYY-MM-DD\");\r\n var itemNames = 'State';\r\n var itemValues = vm.TerritoryState;\r\n ScheduleAssignService.GetSchedulingEventToday(accountId, supervisiorId, fromDate, toDate, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.status == 200 && resp.data) {\r\n vm.SuggestedUserList = [];\r\n vm.SuggestedUserList = resp.data;\r\n var evs = scheduler.getEvents();\r\n angular.forEach(evs, function (val) {\r\n if (val.status == 'New') {\r\n var id = val.id;\r\n scheduler.deleteEvent(id);\r\n }\r\n })\r\n init();\r\n }\r\n })\r\n vm.MapIntegration();\r\n }\r\n\r\n\r\n\r\n GetSchedulingEventforToday(loggedinUser);\r\n\r\n\r\n\r\n\r\n\r\n $scope.selectEntity = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < $scope.AssignSelectedUser.length; i++) {\r\n if (!$scope.AssignSelectedUser[i].isChecked) {\r\n $scope.AssignSelectedUser.allItemsSelected = false;\r\n return;\r\n }\r\n }\r\n\r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.AssignSelectedUser.allItemsSelected = true;\r\n };\r\n\r\n // This executes when checkbox in table header is checked\r\n $scope.selectAll = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < $scope.AssignSelectedUser.length; i++) {\r\n $scope.AssignSelectedUser[i].isChecked = $scope.AssignSelectedUser.allItemsSelected;\r\n }\r\n };\r\n\r\n\r\n\r\n\r\n $scope.selectEntityBoardUser = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < $scope.BroadcastedUser.length; i++) {\r\n if (!$scope.BroadcastedUser[i].isChecked) {\r\n $scope.BroadcastedUser.allItemsSelected = false;\r\n return;\r\n }\r\n }\r\n\r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.BroadcastedUser.allItemsSelected = true;\r\n };\r\n\r\n // This executes when checkbox in table header is checked\r\n $scope.selectAllBoardUser = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < $scope.BroadcastedUser.length; i++) {\r\n $scope.BroadcastedUser[i].isChecked = $scope.BroadcastedUser.allItemsSelected;\r\n }\r\n };\r\n\r\n\r\n\r\n function init() {\r\n scheduler.locale.labels.timeline_tab = \"Timeline\";\r\n scheduler.locale.labels.section_custom = \"Section\";\r\n // scheduler.config.details_on_create=true;\r\n // scheduler.config.details_on_dblclick=true;\r\n scheduler.config.dblclick_create = false;\r\n scheduler.config.xml_date = \"%Y-%m-%d %H:%i\";\r\n var format = scheduler.date.date_to_str(\"%H:%i\");\r\n scheduler.config.touch_tooltip = true;\r\n scheduler.config.drag_resize = false;\r\n\r\n //it is used for the drag and drop functionality \r\n scheduler.attachEvent(\"onBeforeDrag\", function (event_id, mode, native_event_object) {\r\n var ev = scheduler.getEvent(event_id);\r\n if (ev.status == 'Assigned') {\r\n return false;\r\n }\r\n else if (ev.status == 'InTransite') {\r\n return false;\r\n }\r\n else if (ev.status == 'OnSite') {\r\n return false;\r\n }\r\n else if (ev.status == 'Completed') {\r\n return false;\r\n }\r\n else if (ev.status == 'Lunch') {\r\n return false;\r\n }\r\n else if (ev.status == 'Approved') {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n\r\n // this is used when we drag the event in one use to another user but the time is still same \r\n scheduler.attachEvent(\"onBeforeEventChanged\", function (ev, e, is_new, original) {\r\n if (original.assignedUserid == ev.assignedUserid)\r\n return false;\r\n ev.start_date = original.start_date;\r\n ev.end_date = original.end_date;\r\n return true;\r\n });\r\n\r\n //this methd is used to stop the open the popup on double click \r\n scheduler.attachEvent(\"onDblClick\", function (id, e) {\r\n return false;\r\n });\r\n\r\n if (vm.SuggestedUserList.users.length != 0) {\r\n var sections = [];\r\n var sections = vm.SuggestedUserList;\r\n if (vm.selectedTicket.Status == \"ReadyToAssign\") {\r\n var sectionlist = $filter('filter')(sections.users, function (value) {\r\n // return value.BIDCounterRate!=0;\r\n return value.BIDCounterRate;\r\n })\r\n sections.users = sectionlist;\r\n }\r\n } else {\r\n var sections = [];\r\n var sections = vm.SuggestedUserList;\r\n // var sections.users =[];\r\n }\r\n\r\n //this is used for the tooltip\r\n scheduler.templates.tooltip_text = function (start, end, event) {\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if (res == \"1\") {\r\n var Id = event.LinkId ? event.LinkId : event.TicketId;\r\n } else {\r\n var Id = event.id;\r\n }\r\n return \"Job Status : \" + event.status + \"
\" +\r\n \"Job Id : \" + Id + \"
\" +\r\n \"Travel Distance : \" + event.TravelDistance + \" Km
\" +\r\n \"Travel Duration : \" + event.TravelDuration + \" Mins
\" +\r\n \"Job Type : \" + event.JobType + \"
\" +\r\n \"Job Duration : \" + event.TaskDuration + \"
\"\r\n \"Start Time : \" + scheduler.templates.tooltip_date_format(start) + \"
\"\r\n \"End Time : \" + scheduler.templates.tooltip_date_format(end);\r\n };\r\n\r\n //this is used for creating two event in the same slot \r\n scheduler.config.collision_limit = 5; //allows creating 2 events per time slot\r\n /*scheduler.attachEvent(\"onEventLoading\", function(ev){ \r\n return scheduler.checkCollision(ev); \r\n });\r\n */\r\n\r\n scheduler.createTimelineView({\r\n name: \"timeline\",\r\n x_date: \"%H:%i\",\r\n x_unit: \"minute\",// the scale parameters will be calculated in minutes\r\n x_step: 30, //sets the '30 minute' step, e.g. 09:00 - 09:30\r\n x_size: 24, // the number of '30 minute's in the interval 09:00 - 15:00\r\n // 15 - 9 = 6 hours = 360 minutes = 360/30 = 12\r\n x_start: 18, //scale starts from 09:00,i.e. 9 hours from the default start- 00:00.\r\n // 9 hours = 540 minutes = 540/30 = 18 'x_step's \r\n x_length: 48,//sc\r\n y_unit: scheduler.serverList('sections', sections.users),\r\n y_property: \"assignedUserid\",\r\n render: \"bar\",\r\n });\r\n\r\n scheduler.ignore_timeline = function (date) {\r\n //non-work hours\r\n if (date.getHours() < 8 || date.getHours() > 18) return true;\r\n };\r\n\r\n scheduler.templates.timeline_scale_label = function (key, label, sections) {\r\n\r\n if (sections.userType == 'Fixed Team' && sections.role == 'Field Engineer' && sections.VendorTeam == 'Non Vendor Team') {\r\n $(document).ready(function () {\r\n $(\".FEHIDE\").hide();\r\n });\r\n\r\n var UserIdentity = 'FE';\r\n } else if (sections.userType == 'Fixed Team' && sections.role == 'Field Engineer' && sections.VendorTeam == 'Vendor Team') {\r\n var UserIdentity = 'VT';\r\n } else if (sections.userType == 'Freelancer' && sections.role == 'Field Engineer') {\r\n var UserIdentity = 'FL';\r\n } else if (sections.userType == 'Fixed Team' && sections.role == 'Vendor Manager') {\r\n var UserIdentity = 'V';\r\n } else if (sections.userType == 'Freelancer' && sections.role == 'Vendor Manager') {\r\n var UserIdentity = 'FV';\r\n $(document).ready(function () {\r\n $(\".FEHIDE\").show();\r\n });\r\n }\r\n var ratings = sections.UserRating ? sections.UserRating : 0;\r\n // if (sections.userType == 'Fixed Team' && sections.role == 'Vendor Manager') {\r\n // return \"
\";\r\n // }\r\n // else {\r\n if (sections.BIDCounterRate != null) {\r\n return \"
\\\r\n
image
\\\r\n
\\\r\n
\"+ sections.name + \"\" + UserIdentity + \"\" + UserIdentity + \"
\\\r\n
\\\r\n
\\\r\n \\\r\n \\\r\n \\\r\n \\\r\n \"+ round2Decimal(sections.UserDistance) + \" km \\\r\n \"+ sections.UserDuration + \" Min\\\r\n \"+ ratings + \" \\\r\n
\\\r\n
\";\r\n } else {\r\n return \"
\\\r\n
image
\\\r\n
\\\r\n
\"+ sections.name + \"\" + UserIdentity + \"
\\\r\n
\\\r\n
\" + sections.city + \" (\" + sections.state + \")\" +\"
\\\r\n
\\\r\n \\\r\n \\\r\n \\\r\n \\\r\n \"+ round2Decimal(sections.UserDistance) + \" km \\\r\n \"+ sections.UserDuration + \" Min\\\r\n \"+ ratings + \" \\\r\n
\\\r\n
\";\r\n }\r\n // }\r\n };\r\n\r\n function getPic(profilePic) {\r\n return profilePic ? ImageUrl + '/' + profilePic : DefaultImage;\r\n }\r\n\r\n function round2Decimal(no) {\r\n return Math.round(no * 100) / 100;\r\n }\r\n\r\n scheduler.attachEvent(\"onBeforeViewChange\", function (old_mode, old_date, mode, date) {\r\n //any custom logic here\r\n vm.mode = mode;\r\n return true;\r\n });\r\n\r\n //timeline event bar text is used for timeline mode\r\n scheduler.templates.event_bar_text = function (start, end, event) {\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if (res == \"1\") {\r\n var Id = event.LinkId ? event.LinkId : event.TicketId;\r\n }\r\n // else if(res==\"L\"){\r\n // return \"
\"+event.JobType + \"
\";\r\n // }\r\n else {\r\n var Id = event.LinkId ? event.LinkId : event.id;\r\n }\r\n return \"
\" + Id.substring(8, 14) + \" | \" + event.JobType + \"
\";\r\n\r\n };\r\n\r\n // it is used when we dislay in month mode\r\n scheduler.templates.event_bar_date = function (start, end, event) {\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if (res == \"1\") {\r\n var Id = event.LinkId ? event.LinkId : event.TicketId;\r\n } else {\r\n var Id = event.LinkId ? event.LinkId : event.id;\r\n }\r\n return \"\" + Id + \" \";\r\n };\r\n\r\n // it is used for the week basis \r\n scheduler.templates.event_header = function (start, end, event) {\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if (res == \"1\") {\r\n var Id = event.LinkId ? event.LinkId : event.TicketId;\r\n } else {\r\n var Id = event.LinkId ? event.LinkId : event.id;\r\n }\r\n return \"
\" + Id + \"
\";\r\n };\r\n\r\n //this is used for the status \r\n scheduler.templates.event_class = function (start, end, event) {\r\n if (vm.mode == 'timeline') {\r\n scheduler.config.readonly = false;\r\n if (event.status == \"Assigned\") {\r\n return \"Assigned\";\r\n }\r\n else if (event.status == \"New\") {\r\n return \"New\";\r\n }\r\n else if (event.status == \"InTransite\") {\r\n return \"InTransite\";\r\n }\r\n else if (event.status == \"OnSite\") {\r\n return \"OnSite\";\r\n }\r\n else if (event.status == \"Broadcasted\") {\r\n return \"Broadcasted\";\r\n }\r\n else if (event.status == \"Completed\") {\r\n return \"Completed\";\r\n }\r\n else if (event.status == \"Lunch\") {\r\n return \"Lunch\";\r\n }\r\n else if (event.status == \"Approved\") {\r\n return \"Approved\";\r\n }\r\n else if (event.status == \"ReadyToAssign\") {\r\n return \"ReadyToAssign\";\r\n }\r\n return \"dhx_rent_payed\";\r\n }\r\n else if (vm.mode == 'week' || vm.mode == 'month' || vm.mode == 'day') {\r\n scheduler.config.readonly = true;\r\n if (event.status == \"Assigned\") {\r\n return \"Assigned1\";\r\n }\r\n else if (event.status == \"New\") {\r\n return \"New1\";\r\n }\r\n else if (event.status == \"Broadcasted\") {\r\n return \"Broadcasted1\";\r\n }\r\n else if (event.status == \"Completed\") {\r\n return \"Completed1\";\r\n }\r\n else if (event.status == \"InTransite\") {\r\n return \"InTransite1\";\r\n }\r\n else if (event.status == \"OnSite\") {\r\n return \"OnSite1\";\r\n }\r\n else if (event.status == \"Lunch\") {\r\n return \"Lunch1\";\r\n }\r\n else if (event.status == \"Approved\") {\r\n return \"Approved1\";\r\n }\r\n else if (event.status == \"ReadyToAssign\") {\r\n return \"ReadyToAssign1\";\r\n }\r\n return \"dhx_rent_payed1\";\r\n }\r\n };\r\n\r\n scheduler.init('scheduler_here', new Date(), \"timeline\");\r\n if (sections.tickets.length != 0) {\r\n var sectionlist = $filter('filter')(sections.tickets, function (value) {\r\n return value.status == 'Completed' || value.status == 'Assigned' || value.status == 'OnSite' || value.status == 'Approved' || value.status == 'Lunch'\r\n || value.status == 'InTransite';\r\n })\r\n sections.tickets = sectionlist;\r\n scheduler.parse(sections.tickets, \"json\");\r\n }\r\n }\r\n\r\n //init();\r\n /*vm.GetAllStates = function () {\r\n VendorCreationService.getAllState(loggedinUser).then(function (resp) {\r\n if (resp.data) {\r\n if (!angular.equals(vm.stateList, resp.data.values)) {\r\n vm.stateList = resp.data.values;\r\n }\r\n }\r\n })\r\n }\r\n vm.GetAllStates();*/\r\n\r\n\r\n vm.getCountry = function () {\r\n ScheduleAssignService.getCountry(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp.data && resp.data.values.length > 0) {\r\n vm.Country = resp.data.values;\r\n vm.getStates(vm.Country[0]);\r\n $log.log('city', vm.RegionList)\r\n }\r\n })\r\n }\r\n\r\n vm.getStates = function (country) {\r\n ScheduleAssignService.getStates(loggedinUser, token, country).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length > 0) {\r\n vm.stateList = resp.data.values;\r\n $log.log('states', vm.stateList);\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.getCountry();\r\n\r\n\r\n\r\n vm.AutoAssignSelectedTickets = function () {\r\n var ticketId = '';\r\n angular.forEach(vm.AllTicketList, function (t) {\r\n if (t.isChecked) {\r\n ticketId += t.TicketId + \",\";\r\n }\r\n })\r\n ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n if (ticketId != \"\") {\r\n ScheduleAssignService.AutoAssignTickets(loggedinUser, ticketId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n\r\n vm.SuggestedUserList = [];\r\n vm.SuggestedUserList = resp.data;\r\n vm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n vm.otherfilter = \"New\";\r\n vm.getAllTicketList();\r\n vm.otherfilter = '';\r\n\r\n init();\r\n\r\n } else {\r\n vm.toaster_fail.title = \"Not Found\";\r\n vm.toaster_fail.body = \"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select the job first\");\r\n return;\r\n }\r\n $state.reload();\r\n }\r\n\r\n vm.OpenAutoAssignModal = function () {\r\n autoAssignModalInstance = $uibModal.open({\r\n templateUrl: 'auto_assign_model.html',\r\n scope: $scope\r\n });\r\n }\r\n vm.CloseModal = function () {\r\n autoAssignModalInstance.close();\r\n }\r\n\r\n vm.AutoAssign = function () {\r\n var selectedDate = moment(vm.Selecteddate).format('YYYY-MM-DD');\r\n var itemNames = 'State';\r\n var itemValues = vm.TerritoryState;\r\n ScheduleAssignService.AutoAssignTicketsForToday(loggedinUser, selectedDate, vm.TransMode, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.SuggestedUserList = [];\r\n vm.SuggestedUserList = resp.data;\r\n autoAssignModalInstance.close();\r\n vm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n vm.otherfilter = \"New\";\r\n vm.getAllTicketList();\r\n vm.otherfilter = '';\r\n init();\r\n\r\n } else {\r\n vm.toaster_fail.title = \"Not Found\";\r\n vm.toaster_fail.body = \"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n\r\n }\r\n })\r\n $state.reload();\r\n }\r\n\r\n // This property will be bound to checkbox in table header\r\n vm.AllTicketList.allTicketSelected = false;\r\n\r\n\r\n\r\n // This executes when entity in table is checked\r\n $scope.selectSingleTicket = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < vm.AllTicketLists.length; i++) {\r\n if (!vm.AllTicketLists[i].isChecked) {\r\n vm.AllTicketLists.allTicketSelected = false;\r\n return;\r\n }\r\n }\r\n\r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.model.allItemsSelected = true;\r\n };\r\n\r\n // This executes when checkbox in table header is checked\r\n $scope.selectAllTicket = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < vm.AllTicketLists.length; i++) {\r\n vm.AllTicketLists[i].isChecked = vm.AllTicketLists.allTicketSelected;\r\n }\r\n };\r\n $(function () {\r\n $('#colorselector').change(function () {\r\n $('.colors').hide();\r\n $('#' + $(this).val()).show();\r\n });\r\n });\r\n\r\n // vm.getAllTools = function(){\r\n // NewTalentPoolService.GetAllToolSets(loggedinUser,token,function(data){\r\n // vm.Asset_ToolList = data;\r\n // },vm.showFailure);\r\n // }\r\n // vm.getAllTools();\r\n\r\n vm.getAllSchedulingRules = function () {\r\n SchedulingRuleService.GetAllSecheculingRules(loggedinUser, token).then(function (res) {\r\n vm.ruleList = res.data;\r\n vm.toolScRuleList = [];\r\n vm.assetScRuleList = [];\r\n vm.certificateScRuleList = [];\r\n vm.roleScRuleList = [];\r\n for (var i = 0; i < vm.ruleList.length; i++) {\r\n if (vm.ruleList[i].RuleType == 'Certificate') {\r\n vm.certificateScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'Asset') {\r\n vm.assetScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'Tool') {\r\n vm.toolScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'Role') {\r\n vm.roleScRuleList.push(vm.ruleList[i]);\r\n }\r\n }\r\n if (vm.roleScRuleList) {\r\n vm.GenerateRoleTable();\r\n }\r\n if (vm.certificateScRuleList) {\r\n vm.GenerateCertificateTable();\r\n }\r\n if (vm.assetScRuleList) {\r\n vm.GenerateAssetsTable();\r\n }\r\n if (vm.toolScRuleList) {\r\n vm.GenerateToolTable();\r\n }\r\n })\r\n\r\n }\r\n\r\n vm.GenerateCertificateTable = function () {\r\n\r\n vm.headerCompiled_Certi = false;\r\n vm.selected_Certi = {};\r\n vm.selectAll_Certi = false;\r\n vm.toggleAll_Certi = toggleAll_Certi;\r\n vm.toggleOne_Certi = toggleOne_Certi;\r\n // var titleHtml_Certi = '
';\r\n\r\n vm.dtOptions_Certi = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.certificateScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled_Certi) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_Certi = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns_Certi = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_Certi[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Certificate Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll_Certi(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_Certi(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.certificateScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_Certi = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_Certi = true;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n vm.GenerateAssetsTable = function () {\r\n\r\n vm.headerCompiled_Asset = false;\r\n vm.selected_Asset = {};\r\n vm.selectAll_Asset = false;\r\n vm.toggleAll_Asset = toggleAll_Asset;\r\n vm.toggleOne_Asset = toggleOne_Asset;\r\n // var titleHtml_Asset = '
';\r\n\r\n vm.dtOptions_Asset = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.assetScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled_Asset) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_Asset = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns_Asset = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_Asset[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Assets Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll_Asset(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_Asset(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.assetScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_Asset = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_Asset = true;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n vm.GenerateToolTable = function () {\r\n\r\n vm.headerCompiled_Tool = false;\r\n vm.selected_Tool = {};\r\n vm.selectAll_Tool = false;\r\n vm.toggleAll_Tool = toggleAll_Tool;\r\n vm.toggleOne_Tool = toggleOne_Tool;\r\n // var titleHtml_Tool = '
';\r\n\r\n vm.dtOptions_Tool = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.toolScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallbacks', function (header) {\r\n if (!vm.headerCompiled_Tool) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_Tool = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns_Tool = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_Tool[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Tools Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll_Tool(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_Tool(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.toolScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_Tool = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_Tool = true;\r\n }\r\n\r\n }\r\n vm.getAllSchedulingRules();\r\n\r\n vm.GenerateRoleTable = function () {\r\n\r\n vm.headerCompiled = false;\r\n vm.selected = {};\r\n vm.selectAll = false;\r\n vm.toggleAll = toggleAll;\r\n vm.toggleOne = toggleOne;\r\n // var titleHtml = '
';\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.roleScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Role Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.roleScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll = false;\r\n // \treturn;\r\n // }\r\n }\r\n\r\n }\r\n vm.selectAll = true;\r\n }\r\n\r\n }\r\n\r\n vm.AssignationRulePriorityList = [0, 1, 2, 3, 4, 5, 6];\r\n vm.AssignationRules = function () {\r\n AssignationRuleService.getAssignationRule(loggedinUser, token).then(function (resp) {\r\n vm.AssignationRuleList = [];\r\n\r\n vm.AssignationRuleList = resp.data;\r\n for (var i = 0; i < vm.AssignationRuleList.length; i++) {\r\n var rule = vm.AssignationRuleList[i];\r\n if (rule.IsEnable && i == 0) {\r\n\r\n vm.AssignName = rule.OrderByName;\r\n vm.AssignPriorityIndex = rule.PriorityIndex\r\n\r\n }\r\n else if (rule.IsEnable && i == 1) {\r\n vm.AssignName1 = rule.OrderByName;\r\n vm.AssignPriorityIndex1 = rule.PriorityIndex\r\n\r\n }\r\n else if (rule.IsEnable && i == 2) {\r\n vm.AssignName2 = rule.OrderByName;\r\n vm.AssignPriorityIndex2 = rule.PriorityIndex\r\n\r\n }\r\n else if (rule.IsEnable && i == 3) {\r\n vm.AssignName3 = rule.OrderByName;\r\n vm.AssignPriorityIndex3 = rule.PriorityIndex\r\n\r\n }\r\n else if (rule.IsEnable && i == 4) {\r\n vm.AssignName4 = rule.OrderByName;\r\n vm.AssignPriorityIndex4 = rule.PriorityIndex\r\n\r\n }\r\n else if (rule.IsEnable && i == 5) {\r\n vm.AssignName5 = rule.OrderByName;\r\n vm.AssignPriorityIndex5 = rule.PriorityIndex\r\n\r\n }\r\n }\r\n\r\n })\r\n };\r\n vm.AssignationRules();\r\n\r\n\r\n})\r\n\nvar app =angular.module('inspinia').controller('AutoAssignedController',function(ScheduleAssignService,UIURL,FreelancerFixedService,\r\n $log, $state, $localStorage, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile,\r\n uiCalendarConfig, ImageUrl,$filter){\r\n\r\n\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserSkill = $localStorage.loggedInUser_SkillSet;\r\n var loggedinUserRegion = $localStorage.loggedInUser_Region;\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n }else{\r\n var token = $localStorage.token;\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.TimeoutFunc = $scope.$parent.$parent.main.TimeoutFunc;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.loggedinAs = $localStorage.loggedinAs; \r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.MobiforceCommission = vm.getAccountConfigSetting('MobiforceCommissionPercentage');\r\n vm.VendorAssignation = vm.getAccountConfigSetting('VendorAssignation');\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.AllTicketList = '';\r\n vm.filterCriteria1 = [\"Price\",\"Distance\",\"Ratings\"];\r\n vm.filterCriteria2 = [\"Price\",\"Distance\",\"Ratings\"];\r\n vm.filterCriteria3 = [\"Price\",\"Distance\",\"Ratings\"];\r\n vm.selectedFilter1 = 'Distance';\r\n vm.selectedFilter2= 'Ratings';\r\n vm.selectedFilter3= 'Price';\r\n vm.disablefilters = true;\r\n vm.range = '50';\r\n vm.isCurrentLocation = true;\r\n vm.selectedRow = null; // initialize our variable to null\r\n vm.selectedFreelancers = [];\r\n vm.SuggestedUserList = [];\r\n vm.AssignTicektData = [];\r\n vm.AllAssignUserDetails=[];\r\n $scope.AssignSelectedUser={};\r\n $scope.AssignSelectedUser.allItemsSelected = false;\r\n vm.AllAssignUserList =[];\r\n vm.BroadcastedUserList =[];\r\n vm.ReadyToAssignList =[];\r\n $scope.BroadcastedUser ={};\r\n $scope.BroadcastedUser.allItemsSelected = false;\r\n vm.TransMode = 'driving';\r\n \r\n vm.Mode = 'List';\r\n vm.TicketStatus = 'New';\r\n vm.cities = [];\r\n vm.markers = [];\r\n var NewJobIcon = UIURL+'/assets/images/patterns/NewJobIcon.png';\r\n var BroadcastedJobIcon = UIURL+'/assets/images/patterns/BroadcastedJobIcon.png';\r\n var AssignedJobIcon = UIURL+'/assets/images/patterns/AssignedJobIcon.png';\r\n var CompletedJobIcon = UIURL+'/assets/images/patterns/completed.png';\r\n var flIcon = UIURL+'/assets/images/patterns/delivery-man1.png';\r\n var ftIcon = UIURL+'/assets/images/patterns/delivery-man1.png';\r\n var fvIcon = UIURL+'/assets/images/patterns/delivery-man1.png';\r\n var vIcon = UIURL+'/assets/images/patterns/delivery-man1.png';\r\n var DefaultImage = UIURL+'/assets/images/patterns/Photo1.png';\r\n vm.InfoWindow;\r\n vm.selectedTicket = '';\r\n vm.BroadcastedJobList = '';\r\n var listdata=[];\r\n //vm.filterUserData = 'All';\r\n \r\n\r\n $scope.editingData = {};\r\n $scope.modify = function(list){ \r\n $scope.editingData[list.UserId] = true;\r\n };\r\n\r\n\r\n $scope.update = function(list){\r\n if(list.Price==0){\r\n vm.showFailure(\"Failed\",\"Bid price can't be zero.\");\r\n }else{\r\n $scope.editingData[list.UserId] = false;\r\n }\r\n \r\n };\r\n\r\n //loggedinUser,itemNames,itemValues, token\r\n vm.GetTicketsForAssignation = function(){\r\n if (vm.VerticalName!='IMS' || vm.VerticalName!='Spectro Labs') {\r\n var itemNames = '';\r\n var itemValues = '';\r\n if(loggedinUserSkill==\"VSAT\"){\r\n itemNames+=\"Template\";\r\n itemValues+=\"VSAT CCR\";\r\n } else if(loggedinUserSkill==\"LeaseLine\"){\r\n itemNames+=\"Template\";\r\n itemValues+=\"LeaseLine CCR\";\r\n }\r\n ScheduleAssignService.GetTicketsByFilter(loggedinUser,itemNames,itemValues,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n var ticketData = [];\r\n vm.AllTicketList = resp.data;\r\n ticketData = vm.AllTicketList;\r\n // vm.selectedTicket = ticketData[0];\r\n vm.disablefilters = false;\r\n // vm.GetSchedulingResults();\r\n // GetSchedulingEventforToday(loggedinUser);\r\n //scheduler.clearAll();\r\n }\r\n })\r\n }\r\n }\r\n \r\n vm.round2Decimal = function (no) {\r\n return Math.round(no * 100) / 100; \r\n }\r\n\r\n\r\n vm.model = {};\r\n vm.model.allItemsSelected = false;\r\n vm.model = [{ \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\":\"Field Engineer\"},\r\n /* { \"key\": 2, \"Role\": \"Field Engineer\", \"userType\":\"Freelancer\", \"Value\":\"Freelancer\"},*/\r\n { \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Fixed Team\", \"Value\":\"Vendor\"},\r\n /* { \"key\": 4, \"Role\": \"Vendor Manager\", \"userType\":\"Freelancer\", \"Value\":\"Freelancer Vendor\"}*/\r\n ];\r\n \r\n vm.selectEntityFilter = function () {\r\n var newList = [];\r\n var usersList = angular.copy(vm.SuggestedUserList.users);\r\n vm.TestCase = false;\r\n for (var i = 0; i < vm.model.length; i++) {\r\n if (!vm.model[i].isChecked) {\r\n vm.TestCase = true;\r\n vm.model.allItemsSelected = false;\r\n var Role =vm.model[i].Role;\r\n var userType =vm.model[i].userType;\r\n var allIndex = [];\r\n /*usersList.some(function(obj, x) {\r\n if(obj.role == Role && obj.userType == userType){\r\n delete usersList[x];\r\n } else {\r\n false;\r\n }\r\n });*/\r\n newList =[];\r\n /*angular.forEach(usersList, function(d){\r\n if(d){\r\n newList.push(d);\r\n }\r\n })*/\r\n }\r\n }\r\n if(newList=='' && vm.TestCase == false){\r\n newList= vm.SuggestedUserList.users;\r\n // scheduler.updateCollection(\"sections\", newList);\r\n vm.model.allItemsSelected = true;\r\n }else{\r\n // scheduler.updateCollection(\"sections\", newList);\r\n }\r\n };\r\n\r\n vm.selectAllFilter = function () {\r\n for (var i = 0; i < vm.model.length; i++) {\r\n vm.model[i].isChecked = vm.model.allItemsSelected;\r\n }\r\n /*if(vm.model.allItemsSelected==true){\r\n scheduler.updateCollection(\"sections\", vm.SuggestedUserList.users);\r\n }else{\r\n var freelist =[];\r\n scheduler.updateCollection(\"sections\",freelist);\r\n }*/\r\n };\r\n vm.model.allItemsSelected = true;\r\n vm.selectAllFilter();\r\n\r\n\r\n vm.FilterData = function(item,level){\r\n if (level == 1) {\r\n vm.filterCriteria2 = [];\r\n angular.forEach(vm.filterCriteria1,function(d){\r\n if (d!=item) {\r\n vm.filterCriteria2.push(d);\r\n }\r\n })\r\n }else if(level == 2){\r\n vm.filterCriteria3 = [];\r\n angular.forEach(vm.filterCriteria1,function(d){\r\n if (d!=item) {\r\n if (d!=vm.selectedFilter1) {\r\n vm.filterCriteria3.push(d);\r\n } \r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n \r\n \r\n // This property will be bound to checkbox in table header\r\n vm.AllTicketList.allTicketSelected = false;\r\n \r\n \r\n \r\n // This executes when entity in table is checked\r\n $scope.selectSingleTicket = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < vm.AllTicketList.length; i++) {\r\n if (!vm.AllTicketList[i].isChecked) {\r\n vm.AllTicketList.allTicketSelected = false;\r\n return;\r\n }\r\n }\r\n \r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.model.allItemsSelected = true;\r\n };\r\n \r\n // This executes when checkbox in table header is checked\r\n $scope.selectAllTicket = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < vm.AllTicketList.length; i++) {\r\n vm.AllTicketList[i].isChecked = vm.AllTicketList.allTicketSelected;\r\n }\r\n };\r\n \r\n vm.AutoAssign = function(){\r\n \r\n\r\n var ticketId = '';\r\n\r\n angular.forEach(vm.AllTicketList, function (t) {\r\n if (t.isChecked) {\r\n ticketId += t.TicketId + \",\";\r\n }\r\n })\r\n ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n if(ticketId!=\"\"){\r\n ScheduleAssignService.AutoAssignTickets(loggedinUser,ticketId,token).then(function(resp){\r\n if (resp && resp.status==200 ) {\r\n \r\n vm.SuggestedUserList = []; \r\n vm.SuggestedUserList = resp.data;\r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n vm.GetTicketsForAssignation();\r\n init();\r\n \r\n }else{\r\n vm.toaster_fail.title=\"Not Found\";\r\n vm.toaster_fail.body=\"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n \r\n }\r\n })\r\n }else{\r\n vm.showFailure(\"Failed\",\"Please select the job first\");\r\n }\r\n \r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n vm.GetJobsByFilter = function(item,value){\r\n if (item == 'Priority') {\r\n var itemNames = 'Priority';\r\n var itemValues = value;\r\n ScheduleAssignService.GetTicketsByFilter(loggedinUser,itemNames,itemValues).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n vm.AllTicketList = resp.data;\r\n }\r\n })\r\n }\r\n }\r\n \r\n vm.getBroadcastedTickets = function(){\r\n // var loggedinUser1 = 'U350000000001'\r\n var itemNames = 'Ticket Status';\r\n var itemValues = 'Broadcasted';\r\n if(vm.VerticalName=='IMS'){\r\n if(loggedinUserSkill==\"VSAT\"){\r\n itemNames+=\",Template\";\r\n itemValues+=\",VSAT CCR\";\r\n } else if(loggedinUserSkill==\"LeaseLine\"){\r\n itemName+=\",Template\";\r\n itemValues+=\",LeaseLine CCR\";\r\n }\r\n }\r\n ScheduleAssignService.GetTicketsByStatus(loggedinUser,itemNames, itemValues,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n var ticketData = [];\r\n vm.BroadcastedJobList = resp.data;\r\n // ticketData = vm.BroadcastedJobList;\r\n // vm.selectedTicket = ticketData[0];\r\n vm.disablefilters = false;\r\n // vm.GetSchedulingResults();\r\n GetSchedulingEventforToday(loggedinUser);\r\n scheduler.clearAll();\r\n }\r\n })\r\n }\r\n \r\n vm.getReadyToAssign= function(){\r\n\r\n // var loggedinUser1 = 'U350000000001'\r\n var itemNames = 'Ticket Status';\r\n var itemValues = 'ReadyToAssign';\r\n if(vm.VerticalName=='IMS'){\r\n if(loggedinUserSkill==\"VSAT\"){\r\n itemNames+=\",Template\";\r\n itemValues+=\",VSAT CCR\";\r\n } else if(loggedinUserSkill==\"LeaseLine\"){\r\n itemName+=\",Template\";\r\n itemValues+=\",LeaseLine CCR\";\r\n }\r\n }\r\n ScheduleAssignService.GetTicketsByStatus(loggedinUser,itemNames, itemValues,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n var ticketData = [];\r\n vm.ReadyToAssignList = resp.data;\r\n // ticketData = vm.BroadcastedJobList;\r\n // vm.selectedTicket = ticketData[0];\r\n vm.disablefilters = false;\r\n // vm.GetSchedulingResults();\r\n GetSchedulingEventforToday(loggedinUser);\r\n scheduler.clearAll();\r\n }\r\n })\r\n }\r\n \r\n \r\n\r\n\r\n vm.setClickedRowNew = function(index,data){ \r\n //function that sets the value of selectedRow to current index\r\n vm.selectedRow = index;\r\n\r\n vm.selectedTicket = data;\r\n vm.disablefilters = false;\r\n if (vm.range!= '') {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n\r\n vm.setClickedRowBroad = function(index,data){ //function that sets the value of selectedRow to current index\r\n vm.selectedRow = index;\r\n vm.selectedTicket = data;\r\n vm.disablefilters = false;\r\n if (vm.range!= '') {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n\r\n vm.setSelectedFreelancers = function(index,data){\r\n if( vm.selectedFreelancers.indexOf(data) > -1 ){\r\n vm.selectedFreelancers.splice(vm.selectedFreelancers.indexOf(data), 1);\r\n }\r\n else{\r\n vm.selectedFreelancers.push(data);\r\n }\r\n }\r\n\r\n vm.isSelected = function(data){\r\n var bool = vm.selectedFreelancers.indexOf(data) >-1;\r\n return bool;\r\n }\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : DefaultImage;\r\n }\r\n\r\n vm.filterUsers = function(role){\r\n if (role == 'Field Engineer') {\r\n vm.filterUserData = 'Field Engineer';\r\n }else if(role == 'Freelancer'){\r\n vm.filterUserData = 'Freelancer';\r\n }else if(role == 'Vendor Manager'){\r\n vm.filterUserData = 'Vendor Manager';\r\n } \r\n }\r\n\r\n vm.ChangeMode = function (mode) {\r\n if(mode == 'List'){\r\n vm.Mode = 'List';\r\n if(vm.selectedTicket == ''){\r\n GetSchedulingEventforToday(loggedinUser);\r\n } else {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n }\r\n\r\n vm.GetSchedulingResults = function(){\r\n \r\n vm.cities = [];\r\n vm.markers = [];\r\n if (vm.TicketStatus == 'New') {\r\n if (vm.selectedTicket=='' || vm.selectedTicket==null) {\r\n // vm.showFailure(\"Please select a job\");\r\n }else{\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function(d){\r\n if(d.isChecked){\r\n roleList.push({\"UserRole\":d.Role, \"UserType\":d.userType});\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.TicketId;\r\n\r\n // obj.jobId = vm.selectedTicket.LinkId?vm.selectedTicket.LinkId:vm.selectedTicket.TicketId;\r\n obj.JobAccountId = '';\r\n obj.FromDate = new Date().toISOString().slice(0,10);\r\n obj.ToDate = new Date().toISOString().slice(0,10);\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.RangeFromJob = parseInt(vm.range*1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList;\r\n if (vm.selectedFilter1!=undefined && vm.selectedFilter1!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter1.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter1.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate'; \r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2!=undefined && vm.selectedFilter2!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter2.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter2.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3!=undefined && vm.selectedFilter3!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n }else if (vm.selectedFilter3.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating';\r\n }else if (vm.selectedFilter3.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj,loggedinUser,token).then(function(resp){\r\n if (resp && resp.status==200 && resp.data && resp.data.users.length>0) {\r\n vm.SuggestedUserList = [];\r\n vm.BroadcastedList = [];\r\n vm.BroadcastedUserList =[];\r\n vm.SuggestedUserList = resp.data;\r\n vm.UserList = resp.data.users;\r\n angular.forEach(vm.UserList, function(d){\r\n if(d.userType == 'Freelancer'){\r\n vm.BroadcastedList.push(d);\r\n vm.BroadcastedUserList.push({\"UserId\":d.id,\"Role\":d.role,\"Name\":d.name,\"Distance\":d.UserDistance,\"SuggestedPrice\":d.BIDCounterRate,\"type\":d.userType,\"Price\": d.BIDCounterRate});\r\n \r\n }\r\n })\r\n $scope.BroadcastedUser =vm.BroadcastedUserList;\r\n \r\n vm.GetResult(resp.data.users,vm.selectedTicket.TicketId,vm.selectedTicket.LinkId,vm.selectedTicket.StartTime,vm.selectedTicket.EndTime,vm.selectedTicket.TicketStatus);\r\n \r\n \r\n init();\r\n vm.selectEntityFilter();\r\n // vm.MapIntegration()\r\n // vm.MapData();\r\n }else{\r\n vm.toaster_fail.title=\"Not Found\";\r\n vm.toaster_fail.body=\"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n GetSchedulingEventforToday(loggedinUser);\r\n }\r\n })\r\n }\r\n } else if (vm.TicketStatus == 'Broadcasted') {\r\n if (vm.selectedTicket=='' || vm.selectedTicket==null) {\r\n // vm.showFailure(\"Please select a job\");\r\n }else{\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function(d){\r\n if(d.isChecked){\r\n roleList.push({\"UserRole\":d.Role, \"UserType\":d.userType});\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.JobId;\r\n // obj.jobId = vm.selectedTicket.LinkId?vm.selectedTicket.LinkId:vm.selectedTicket.TicketId;\r\n obj.JobAccountId = '';\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.FromDate = new Date().toISOString().slice(0,10);\r\n obj.ToDate = new Date().toISOString().slice(0,10);\r\n obj.RangeFromJob = parseInt(vm.range*1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList;\r\n if (vm.selectedFilter1!=undefined && vm.selectedFilter1!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter1.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter1.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate'; \r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2!=undefined && vm.selectedFilter2!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter2.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter2.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3!=undefined && vm.selectedFilter3!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n }else if (vm.selectedFilter3.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating';\r\n }else if (vm.selectedFilter3.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj,loggedinUser,token).then(function(resp){\r\n if (resp && resp.status==200 && resp.data && resp.data.users.length>0) {\r\n vm.SuggestedUserList = [];\r\n vm.SuggestedUserList =resp.data;\r\n vm.userList = resp.data;\r\n vm.GetResult(resp.data.users,vm.selectedTicket.JobId,vm.selectedTicket.LinkId,vm.selectedTicket.StartDateTime,vm.selectedTicket.EndDateTime,vm.selectedTicket.Status);\r\n \r\n init();\r\n vm.selectEntityFilter();\r\n // vm.MapIntegration()\r\n // vm.MapData();\r\n }else{\r\n vm.toaster_fail.title=\"Not Found\";\r\n vm.toaster_fail.body=\"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n GetSchedulingEventforToday(loggedinUser);\r\n }\r\n })\r\n }\r\n }\r\n if (vm.TicketStatus == 'ReadyToAssign') {\r\n if (vm.selectedTicket=='' || vm.selectedTicket==null) {\r\n // vm.showFailure(\"Please select a job\");\r\n }else{\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function(d){\r\n if(d.isChecked){\r\n roleList.push({\"UserRole\":d.Role, \"UserType\":d.userType});\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.JobId;\r\n obj.JobAccountId = '';\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.FromDate = new Date().toISOString().slice(0,10);\r\n obj.ToDate = new Date().toISOString().slice(0,10);\r\n obj.RangeFromJob = parseInt(vm.range*1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList; \r\n if (vm.selectedFilter1!=undefined && vm.selectedFilter1!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter1.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter1.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate'; \r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2!=undefined && vm.selectedFilter2!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter2.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter2.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3!=undefined && vm.selectedFilter3!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n }else if (vm.selectedFilter3.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating';\r\n }else if (vm.selectedFilter3.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj,loggedinUser,token).then(function(resp){\r\n if (resp && resp.status==200 && resp.data && resp.data.users.length>0) {\r\n vm.SuggestedUserList = [];\r\n \r\n vm.SuggestedUserList =resp.data;\r\n vm.userList = resp.data;\r\n vm.GetResult(resp.data.users,vm.selectedTicket.JobId,vm.selectedTicket.LinkId,vm.selectedTicket.StartDateTime,vm.selectedTicket.EndDateTime,vm.selectedTicket.Status);\r\n \r\n init();\r\n vm.selectEntityFilter();\r\n // vm.MapIntegration()\r\n // vm.MapData();\r\n }else{\r\n vm.toaster_fail.title=\"Not Found\";\r\n vm.toaster_fail.body=\"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n GetSchedulingEventforToday(loggedinUser);\r\n\r\n }\r\n })\r\n }\r\n } \r\n }\r\n\r\n vm.GetResult = function(user,ticketid,linkId,start,end,status){\r\n // scheduler.clearAll();\r\n \r\n var ticket = vm.selectedTicket.TicketId?vm.selectedTicket.TicketId:vm.selectedTicket.JobId; \r\n \r\n var evs = scheduler.getEvents();\r\n if(vm.TicketStatus==\"ReadyToAssign\"){\r\n var bidRate = user[0].BIDCounterRate;\r\n var readyList = $filter('filter')(user,function(value){\r\n return value.BIDCounterRate!=0;\r\n })\r\n if(readyList.length!=0){\r\n var Id = readyList[0].id;\r\n var Role = readyList[0].role;\r\n var userType = readyList[0].userType;\r\n var Name = readyList[0].name;\r\n var Distance = readyList[0].UserDistance;\r\n var SuggestedPrice = readyList[0].BIDCounterRate;\r\n var Price = readyList[0].BIDCounterRate;\r\n }else{\r\n var Id = user[0].id\r\n var Role = user[0].role;\r\n var userType = user[0].userType;\r\n var Name = user[0].name;\r\n var Distance = user[0].UserDistance;\r\n var SuggestedPrice = user[0].BIDCounterRate;\r\n var Price = user[0].BIDCounterRate;\r\n }\r\n }else{\r\n var Id = user[0].id;\r\n var Role = user[0].role;\r\n var userType = user[0].userType;\r\n var Name = user[0].name;\r\n var Distance = user[0].UserDistance;\r\n var SuggestedPrice = user[0].BIDCounterRate;\r\n var Price = user[0].BIDCounterRate;\r\n }\r\n /* var Role = user[0].role;\r\n var userType = user[0].userType;\r\n var Name = user[0].name;\r\n var Distance = user[0].UserDistance;\r\n var SuggestedPrice = user[0].BIDCounterRate;\r\n var Price = user[0].BIDCounterRate;*/\r\n var start_date = moment(start).format(\"DD-MM-YYYY HH:mm\");\r\n var end_date= moment(end).format(\"DD-MM-YYYY HH:mm\");\r\n var today = new Date(); \r\n var newdate = moment(today).format(\"DD-MM-YYYY\");\r\n\r\n \r\n\r\n // if(start_datetoday){\r\n var sdate = start_date.split(\" \")[0];\r\n var stime = start_date.split(\" \")[1];\r\n var edate = end_date.split(\" \")[0];\r\n var etime = end_date.split(\" \")[1];\r\n start_date = newdate + ' ' + stime;\r\n end_date = newdate + ' ' + etime;\r\n }\r\n // vm.AllAssignUserList.push({\"UserId\":Id,\"TicketId\":ticketid}); \r\n\r\n //var fromDate = new Date().toISOString().slice(0,10);\r\n //var toDate = new Date().toISOString().slice(0,10);\r\n\r\n var AssignList =[];\r\n \r\n if(vm.AllAssignUserDetails.length!=0){\r\n console.log(vm.AllAssignUserDetails);\r\n AssignList = $filter('filter')(vm.AllAssignUserDetails,function(value){\r\n // return value.UserId==Id && value.start_date==start_date;\r\n //return value.UserId==Id;\r\n return value.TicketId==ticket;\r\n\r\n })\r\n console.log(AssignList);\r\n /// it is used for the \r\n if(AssignList.length!=0){\r\n var checklinkId = AssignList[0].LinkId;\r\n AssignList =[];\r\n var evs = scheduler.getEvents();\r\n var checkList = $filter('filter')(evs,function(value){\r\n return value.LinkId==checklinkId;\r\n })\r\n var d = checkList[0].id;\r\n scheduler.deleteEvent(d);\r\n }\r\n \r\n if(AssignList.length==0){\r\n var eventId = scheduler.addEvent({\r\n start_date: start_date,\r\n end_date: end_date,\r\n assignedUserid: Id,\r\n status :status,\r\n Role :Role,\r\n TicketId:ticket,\r\n Distance :Distance,\r\n LinkId: linkId,\r\n SuggestedPrice:SuggestedPrice,\r\n Price : Price,\r\n Name : Name,\r\n userType :userType\r\n });\r\n\r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkId,\"Role\":Role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":Name,\"Distance\":Distance,\"SuggestedPrice\":SuggestedPrice,\"type\":userType,\"Price\": Price});\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n }else if(vm.AllAssignUserDetails.length==0){\r\n var eventId = scheduler.addEvent({\r\n start_date: start_date,\r\n end_date: end_date,\r\n assignedUserid: Id,\r\n status :status,\r\n Role :Role,\r\n TicketId:ticket,\r\n LinkId: linkId,\r\n Distance :Distance,\r\n SuggestedPrice:SuggestedPrice,\r\n Price : Price,\r\n Name : Name,\r\n userType: userType,\r\n });\r\n \r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkId,\"Role\":Role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":Name,\"Distance\":Distance,\"SuggestedPrice\":SuggestedPrice,\"type\":userType,\"Price\": Price});\r\n \r\n }\r\n }\r\n\r\n /* vm.AssignTicketsTimeline = function () {\r\n vm.AllUserList =[];\r\n if(vm.selectedFreelancers == ''){\r\n vm.showFailure(\"Please select users.\")\r\n } else {\r\n angular.forEach(vm.selectedFreelancers,function(data){\r\n if(data.Role=='Field Engineer' && data.type=='Fixed Team') {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Field Engineer' && data.type == 'Freelancer') {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Vendor Manager' && data.type == 'Fixed Team') {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n }\r\n })\r\n\r\n ScheduleAssignService.AssignTicketssTimeline(loggedinUser,vm.AllUserList,token).then(function(resp){\r\n if (resp.status == 200 && resp.data) {\r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n // vm.TimeoutFunc(1500, vm.GetTicketsForAssignation());\r\n // vm.TimeoutFGetSchedulingEventforToday(loggedinUser));\r\n //vm.GetTicketsForAssignation();\r\n // GetSchedulingEventforToday(loggedinUser);\r\n vm.selectedFreelancers = [];\r\n vm.AssignModal.close();\r\n\r\n\r\n scheduler.clearAll();\r\n\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n // vm.AssignModal.close();\r\n GetSchedulingEventforToday(loggedinUser);\r\n vm.GetTicketsForAssignation();\r\n }, 1500);\r\n // $timeout(function() {\r\n // vm.GetTicketsForAssignation();\r\n // }, 1000);\r\n if(vm.Mode=='Map') {\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n }else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }\r\n }*/\r\n\r\n\r\n vm.AssignTicketsTimeline = function () {\r\n \r\n vm.AllUserList =[];\r\n angular.forEach(vm.AllAssignUserDetails,function(data){\r\n\r\n if(data.Role=='Field Engineer' && data.type=='Fixed Team' && data.isChecked ==true) {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Field Engineer' && data.type == 'Freelancer' && data.isChecked ==true) {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Vendor Manager' && data.type == 'Fixed Team' && data.isChecked ==true) {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Vendor Manager' && data.type == 'Freelancer' && data.isChecked ==true){\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n }\r\n })\r\n if(vm.AllUserList == ''){\r\n vm.showFailure(\"Please select users.\")\r\n } else {\r\n ScheduleAssignService.AssignTicketsTimeline(loggedinUser,vm.AllUserList,token).then(function(resp){\r\n if (resp && resp.data) {\r\n \r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n scheduler.clearAll();\r\n\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n GetSchedulingEventforToday(loggedinUser);\r\n if(vm.TicketStatus==\"New\"){\r\n vm.GetTicketsForAssignation();\r\n }else if(vm.TicketStatus==\"ReadyToAssign\"){\r\n vm.getReadyToAssign();\r\n }\r\n \r\n \r\n }, 1500);\r\n if(vm.Mode=='Map') {\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n }else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\nvm.clearData = function () {\r\n vm.AllAssignUserDetails = [];\r\n vm.selectedTicket = '';\r\n vm.mapMarkers = [];\r\n } \r\n\r\n\r\n vm.OpenBroadcastModal = function(){\r\n if(vm.BroadcastedUserList == ''){\r\n vm.showFailure(\"Not found\",\"No users found\");\r\n } else {\r\n $scope.BroadcastedUser.allItemsSelected = true;\r\n $scope.selectAllBoardUser();\r\n vm.BroadcastModal = $uibModal.open({\r\n templateUrl: 'Broadcast-modal',\r\n backdrop: 'static',\r\n size:'lg',\r\n scope: $scope\r\n });\r\n }\r\n }\r\n \r\n vm.CloseBroadcastModal = function(){\r\n vm.selectedFreelancers = [];\r\n vm.BroadcastModal.close();\r\n }\r\n\r\n vm.OpenAssignModal = function(){ \r\n vm.AllAssignUserDetails =[];\r\n var evs = scheduler.getEvents();\r\n var t = vm.TicketStatus;\r\n\r\n\r\n var eventslist = $filter('filter')(evs,function(value){\r\n return value.Price ==0;\r\n })\r\n \r\n angular.forEach(evs,function(data){\r\n\r\n if(data.status=='New'){\r\n var Id= data.assignedUserid;\r\n var ticketid= data.TicketId;\r\n var linkid = data.LinkId;\r\n var start_date =moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users,function(value){\r\n if(value.id==Id && value.userType!='Freelancer'){ \r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkid,\"Role\":value.role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":value.name,\"Distance\":value.UserDistance,\"SuggestedPrice\":value.BIDCounterRate,\"type\":value.userType,\"Price\": value.BIDCounterRate});\r\n\r\n }\r\n\r\n })\r\n }else if(data.status=='Broadcasted'){\r\n var Id= data.assignedUserid;\r\n var ticketid= data.TicketId;\r\n var linkid = data.LinkId;\r\n var start_date =moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users,function(value){\r\n if(value.id==Id){\r\n \r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkid,\"Role\":value.role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":value.name,\"Distance\":value.UserDistance,\"SuggestedPrice\":value.BIDCounterRate,\"type\":value.userType,\"Price\": value.BIDCounterRate});\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n\r\n })\r\n }else if(data.status=='ReadyToAssign'){\r\n \r\n var Id= data.assignedUserid;\r\n var ticketid= data.TicketId;\r\n var linkid = data.LinkId;\r\n var start_date =moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users,function(value){\r\n if(value.id==Id){\r\n \r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkid,\"Role\":value.role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":value.name,\"Distance\":value.UserDistance,\"SuggestedPrice\":value.BIDCounterRate,\"type\":value.userType,\"Price\": value.BIDCounterRate});\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n\r\n })\r\n }\r\n })\r\n \r\n \r\n\r\n $scope.AssignSelectedUser = vm.AllAssignUserDetails;\r\n $scope.AssignSelectedUser.allItemsSelected = true;\r\n $scope.selectAll();\r\n\r\n vm.AssignModal = $uibModal.open({\r\n templateUrl: 'Assign-modal',\r\n size:'lg',\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n // }\r\n }\r\n\r\n vm.CloseAssignModal = function(){\r\n vm.selectedFreelancers = [];\r\n vm.AssignModal.close();\r\n }\r\n\r\n\r\n //Broadcast Bids/Jobs\r\n vm.BroadcastTicket = function(){\r\n\r\n\r\n var BidData = [];\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n obj.JobID = vm.selectedTicket.TicketId;\r\n obj.BIDDuration = vm.selectedTicket.BidDuration;\r\n // obj.BroadCastRate = vm.selectedTicket.BroadcastRate\r\n //obj.BroadCastGrossRate = vm.selectedTicket.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = parseInt(vm.selectedTicket.MobiforceCommission);\r\n // obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n\r\n \r\n var UserData = [];\r\n /* angular.forEach(vm.selectedFreelancers, function (d) {\r\n if (d) {*/\r\n angular.forEach($scope.BroadcastedUser, function (d) {\r\n if (d.isChecked==true) {\r\n // UserData.push(d.UserId);\r\n UserData.push({\"UserId\":d.UserId,\"SuggestedPrice\":parseInt(d.SuggestedPrice),\"Price\":parseInt(d.Price) ,\"Distance\":d.Distance});\r\n } \r\n });\r\n var checklist = $filter('filter')(UserData,function(value){\r\n return value.Price ==0;\r\n })\r\n if(checklist.length!=0){\r\n vm.showFailure(\"Failed\", \"Bid price can't be zero.\");\r\n }else{\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"JobId\": vm.selectedTicket.TicketId,\r\n \"BIDDuration\": vm.selectedTicket.BidDuration,\r\n \"MobiforceCommissionPercentage\": parseInt(vm.selectedTicket.MobiforceCommission),\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModal.close();\r\n\r\n ScheduleAssignService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n toaster.pop(vm.toaster_success);\r\n vm.selectedFreelancers = [];\r\n $timeout(function () {\r\n vm.GetTicketsForAssignation();\r\n }, 1500);\r\n\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Please select users.\");\r\n }\r\n }) \r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n }\r\n } \r\n\r\n }\r\n\r\n//Assign Tickets\r\n vm.AssignTickets = function (role, userId) {\r\n if (role == 'Field Engineer') {\r\n ScheduleAssignService.AssignTickets(userId,loggedinUser,vm.selectedTicket.TicketId,token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n vm.TimeoutFunc(1500, vm.GetTicketsForAssignation());\r\n // $timeout(function() {\r\n // vm.GetTicketsForAssignation();\r\n // }, 1000);\r\n if(vm.Mode=='Map') {\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n }else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }else if (role == 'Vendor Manager') {\r\n }\r\n }\r\n \r\n //MAP INTEGRATION\r\n vm.MapIntegration = function(){\r\n //for Initial Loading\r\n if(vm.selectedTicket==''){\r\n vm.mapMarkers = [];\r\n //Today's Scheduling Events\r\n angular.forEach(vm.SuggestedUserList.tickets, function(d){\r\n var customer = {};\r\n customer.lat = d.latitude;\r\n customer.long = d.longitude;\r\n customer.StartTime = d.start_date;\r\n customer.Address = d.city+' '+d.state;\r\n customer.ConsumerName = d.customerName;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = d.status;\r\n customer.AssignedUser = d.assignedUserName;\r\n customer.JobId = d.id;\r\n customer.StartDate = d.start_date;\r\n customer.EndDate = d.end_date;\r\n vm.mapMarkers.push(customer);\r\n })\r\n angular.forEach(vm.SuggestedUserList.users, function(d){\r\n var obj = {};\r\n obj.UserName = d.name;\r\n obj.BIDCounterRate = vm.round2Decimal(d.BIDCounterRate);\r\n obj.UserRating = d.UserRating?d.UserRating:0;\r\n obj.UserDistance = vm.round2Decimal(d.UserDistance);\r\n obj.UserLatitude = d.UserLatitude;\r\n obj.UserLongitude = d.UserLongitude;\r\n obj.UserContact = d.contactnumber?d.contactnumber:'NA';\r\n obj.UserImage = vm.getProfilePic(d.UserProfilePhoto);\r\n obj.Role = d.role;\r\n obj.userType = d.userType;\r\n vm.mapMarkers.push(obj);\r\n })\r\n //New Jobs\r\n if(vm.TicketStatus == 'New'){\r\n angular.forEach(vm.AllTicketList, function(d){\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.Latitude);\r\n var DefaultLong = parseFloat(d.Longitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.City+' '+d.State;\r\n customer.ConsumerName = d.ConsumerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'New';\r\n customer.JobId = d.TicketId;\r\n customer.StartDate = d.StartTime;\r\n customer.EndDate = d.EndTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n //Broadcasted Jobs\r\n } else if (vm.TicketStatus == 'Broadcasted'){\r\n angular.forEach(vm.BroadcastedJobList, function(d){\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.Location;\r\n customer.ConsumerName = d.CustomerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'Broadcasted';\r\n customer.JobId = d.JobId;\r\n customer.StartDate = d.StartDateTime;\r\n customer.EndDate = d.EndDateTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n } else if (vm.TicketStatus == 'ReadyToAssign'){\r\n angular.forEach(vm.ReadyToAssignList, function(d){\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.Location;\r\n customer.ConsumerName = d.CustomerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'ReadyToAssign';\r\n customer.JobId = d.JobId;\r\n customer.StartDate = d.StartDateTime;\r\n customer.EndDate = d.EndDateTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n }\r\n //on Job Selection\r\n } else {\r\n vm.mapMarkers = [];\r\n var customer = {};\r\n //Adding Customer Site on Ticket Status Basis\r\n if(vm.TicketStatus == 'New') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.Latitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.Longitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.City+' '+vm.selectedTicket.State;\r\n customer.ConsumerName = vm.selectedTicket.ConsumerName;\r\n customer.Status = vm.selectedTicket.TicketStatus;\r\n customer.JobId = vm.selectedTicket.TicketId;\r\n customer.StartDate = vm.selectedTicket.StartTime;\r\n customer.EndDate = vm.selectedTicket.EndTime;\r\n } \r\n else if (vm.TicketStatus == 'Broadcasted') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.JobLatitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.Location;\r\n customer.ConsumerName = vm.selectedTicket.CustomerName;\r\n customer.Status = vm.selectedTicket.Status;\r\n customer.JobId = vm.selectedTicket.JobId;\r\n customer.StartDate = vm.selectedTicket.StartDateTime;\r\n customer.EndDate = vm.selectedTicket.EndDateTime;\r\n } else if (vm.TicketStatus == 'ReadyToAssign') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.JobLatitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.Location;\r\n customer.ConsumerName = vm.selectedTicket.CustomerName;\r\n customer.Status = vm.selectedTicket.Status;\r\n customer.JobId = vm.selectedTicket.JobId;\r\n customer.StartDate = vm.selectedTicket.StartDateTime;\r\n customer.EndDate = vm.selectedTicket.EndDateTime;\r\n }\r\n customer.JobType = vm.selectedTicket.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n vm.mapMarkers.push(customer);\r\n\r\n //Adding Users into Marker\r\n angular.forEach(vm.SuggestedUserList.users,function(d){\r\n var obj = {};\r\n if (d && d.UserLatitude && d.UserLongitude) {\r\n obj.UserName = d.name;\r\n // obj.BIDApplyDateTime = d.BIDApplyDateTime;\r\n // obj.BIDApplyStatus = d.BIDApplyStatus;\r\n obj.BIDCounterRate = vm.round2Decimal(d.BIDCounterRate);\r\n obj.JobId = d.id;\r\n // obj.UserCurrentJobs = d.UserCurrentJobs;\r\n // obj.UserId = d.UserId;\r\n obj.UserRating = d.UserRating?d.UserRating:0;\r\n // obj.UserTotalJobs = d.UserTotalJobs;\r\n obj.UserDistance = vm.round2Decimal(d.UserDistance);\r\n obj.UserLatitude = d.UserLatitude;\r\n obj.UserLongitude = d.UserLongitude;\r\n obj.UserContact = d.contactnumber?d.contactnumber:'NA';\r\n obj.UserImage = vm.getProfilePic(d.UserProfilePhoto);\r\n // if (obj.Role=='Freelancer') {\r\n // obj.AssigButton = false; \r\n // }else{\r\n // obj.AssigButton = true;\r\n // }\r\n obj.Role = d.role;\r\n obj.userType = d.userType;\r\n vm.mapMarkers.push(obj);\r\n }\r\n })\r\n }\r\n \r\n\r\n //Setting the Map Options\r\n vm.MapOptions = {\r\n center: new google.maps.LatLng(DefaultLat, DefaultLong),\r\n // zoom: 20,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n }\r\n\r\n //Initializing the InfoWindow, Map and LatLngBounds objects.\r\n vm.InfoWindow = new google.maps.InfoWindow();\r\n vm.Latlngbounds = new google.maps.LatLngBounds();\r\n vm.Map = new google.maps.Map(document.getElementById(\"map-canvas\"), vm.MapOptions);\r\n\r\n //Looping through the Array and adding Markers.\r\n for(var i=0; iimage
\"\r\n vm.InfoWindow.setContent(\"

\"+data.ConsumerName+\"


\"+' '+data.JobId+\"
\"+' '+data.Status+\"
\"+' '+data.AssignedUser+\"
\"+' '+moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+data.Address+\"
\"); \r\n } else if(data.Status == 'Completed'){\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\"+data.ConsumerName+\"


\"+' '+data.JobId+\"
\"+' '+data.Status+\"
\"+' '+data.AssignedUser+\"
\"+' '+moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+data.Address+\"
\"); \r\n } \r\n else {\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\"+data.ConsumerName+\"


\"+' '+data.JobId+\"
\"+' '+data.Status+\"
\"+' '+moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+data.Address+\"
\");\r\n }\r\n vm.InfoWindow.open(vm.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n vm.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, data);\r\n vm.Latlngbounds.extend(marker.position);\r\n }else{\r\n ticketLatlng = new google.maps.LatLng(data.UserLatitude, data.UserLongitude);\r\n //Initializing the Marker object.\r\n if(data.Role == 'Field Engineer' && data.userType == 'Freelancer'){\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: flIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/delivery-man1.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n \r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n }\r\n }); \r\n }else if (data.Role == 'Field Engineer' && data.userType == 'Fixed Team') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: ftIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/delivery-man1.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n \r\n }\r\n });\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Fixed Team') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: vIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/delivery-man1.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n \r\n }\r\n });\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Freelancer') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: fvIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/delivery-man1.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n \r\n }\r\n });\r\n }\r\n \r\n //Adding InfoWindow to the Marker.\r\n (function (marker, data) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n if(data.Role == 'Field Engineer' && data.userType == 'Fixed Team'){\r\n var Role = 'Field Engineer';\r\n } else if(data.Role == 'Field Engineer' && data.userType == 'Freelancer'){\r\n var Role = 'Freelancer';\r\n } else if(data.Role == 'Vendor Manager' && data.userType == 'Fixed Team') {\r\n var Role = 'Vendor Manager';\r\n } else {\r\n var Role = 'Freelancer Vendor';\r\n }\r\n var content = \"
image
\"+' '+data.UserName+\"
\"+' '+data.UserContact+\"
\"+' '+data.UserDistance+\" Kms
\"+' '+data.BIDCounterRate+\"
\"+' '+Role+\"
\"\r\n vm.InfoWindow.setContent(content);\r\n vm.InfoWindow.open(vm.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n vm.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, data); \r\n // vm.Latlngbounds.extend(marker.position);\r\n }\r\n //Plotting the Marker on the Map. \r\n }\r\n //Adjusting the Map for best display.\r\n vm.Map.setCenter(vm.Latlngbounds.getCenter());\r\n // vm.Map.fitBounds(vm.Latlngbounds);\r\n vm.Map.setZoom(13);\r\n \r\n }\r\n\r\n//Global Calls\r\nvm.GetTicketsForAssignation();\r\n }\r\n\r\nfunction GetSchedulingEventforToday(supervisiorId){\r\n //scheduler.clearAll();\r\n var accountId='';\r\n \r\n /*var fromDate = new Date().toISOString().slice(0,10);\r\n var toDate = new Date().toISOString().slice(0,10);*/\r\n /*var fromDate =\"2018-12-13\"\r\n var toDate = \"2019-01-03\"*/\r\n var date = new Date();\r\n var fromDate = new Date(date.getFullYear(), date.getMonth(), 1);\r\n fromDate = moment(fromDate).format(\"YYYY-MM-DD\");\r\n var toDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n toDate = moment(toDate).format(\"YYYY-MM-DD\");\r\n ScheduleAssignService.GetSchedulingEventToday(accountId,supervisiorId,fromDate,toDate,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n vm.SuggestedUserList = [];\r\n \r\n vm.SuggestedUserList = resp.data;\r\n\r\n var evs = scheduler.getEvents();\r\n\r\n angular.forEach(evs,function(val){\r\n if(val.status=='New'){\r\n var id =val.id;\r\n scheduler.deleteEvent(id); \r\n }\r\n })\r\n init();\r\n }\r\n })\r\n vm.MapIntegration();\r\n}\r\nGetSchedulingEventforToday(loggedinUser);\r\n\r\n\r\n\r\n\r\n\r\n $scope.selectEntity = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < $scope.AssignSelectedUser.length; i++) {\r\n if (!$scope.AssignSelectedUser[i].isChecked) {\r\n $scope.AssignSelectedUser.allItemsSelected = false;\r\n return;\r\n }\r\n }\r\n \r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.AssignSelectedUser.allItemsSelected = true;\r\n };\r\n \r\n // This executes when checkbox in table header is checked\r\n $scope.selectAll = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < $scope.AssignSelectedUser.length; i++) {\r\n $scope.AssignSelectedUser[i].isChecked = $scope.AssignSelectedUser.allItemsSelected;\r\n }\r\n };\r\n\r\n \r\n\r\n\r\n $scope.selectEntityBoardUser = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < $scope.BroadcastedUser.length; i++) {\r\n if (!$scope.BroadcastedUser[i].isChecked) {\r\n $scope.BroadcastedUser.allItemsSelected = false;\r\n return;\r\n }\r\n }\r\n \r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.BroadcastedUser.allItemsSelected = true;\r\n };\r\n\r\n // This executes when checkbox in table header is checked\r\n $scope.selectAllBoardUser = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < $scope.BroadcastedUser.length; i++) {\r\n $scope.BroadcastedUser[i].isChecked = $scope.BroadcastedUser.allItemsSelected;\r\n }\r\n };\r\n\r\n\r\n\r\n function init() {\r\n\r\n scheduler.locale.labels.timeline_tab = \"Timeline\";\r\n scheduler.locale.labels.section_custom=\"Section\";\r\n // scheduler.config.details_on_create=true;\r\n // scheduler.config.details_on_dblclick=true;\r\n scheduler.config.dblclick_create = false; \r\n\r\n scheduler.config.xml_date=\"%Y-%m-%d %H:%i\";\r\n var format = scheduler.date.date_to_str(\"%H:%i\");\r\n scheduler.config.touch_tooltip = true;\r\n scheduler.config.drag_resize= false;\r\n\r\n scheduler.config.multisection = true; \r\n scheduler.config.multisection_shift_all = false;\r\n \r\n\r\n \r\n \r\n //it is used for the drag and drop functionality \r\n scheduler.attachEvent(\"onBeforeDrag\", function (event_id, mode, native_event_object){\r\n \r\n var ev = scheduler.getEvent(event_id);\r\n if(ev.status=='Assigned'){\r\n return false;\r\n } if(ev.status=='Completed'){\r\n return false;\r\n } \r\n else{\r\n return true; \r\n }\r\n });\r\n\r\n\r\n\r\n// this is used when we drag the event in one use to another user but the time is still same \r\n scheduler.attachEvent(\"onBeforeEventChanged\", function(ev, e, is_new, original){\r\n \r\n if (original.assignedUserid == ev.assignedUserid) \r\n return false;\r\n \r\n ev.start_date = original.start_date;\r\n ev.end_date = original.end_date;\r\n return true;\r\n});\r\n\r\n\r\n\r\n\r\n //this methd is used to stop the open the popup on double click \r\n scheduler.attachEvent(\"onDblClick\", function (id, e){ \r\n return false;\r\n });\r\n\r\n\r\n\r\n if(vm.SuggestedUserList.users.length!=0){\r\n var sections =[];\r\n var sections =vm.SuggestedUserList;\r\n if(vm.selectedTicket.Status==\"ReadyToAssign\"){\r\n var sectionlist = $filter('filter')(sections.users,function(value){\r\n return value.BIDCounterRate!=0;\r\n })\r\n sections.users = sectionlist;\r\n }\r\n }else{\r\n var sections =[];\r\n var sections = vm.SuggestedUserList;\r\n // var sections.users =[];\r\n }\r\n \r\n /* scheduler.templates.event_bar_text = function(sd, ed, ev){\r\n return format(sd)+\" - \"+format(ed);\r\n }*/\r\n \r\n\r\n //this is used for the tooltip\r\n scheduler.templates.tooltip_text = function(start,end,event) { \r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id = event.LinkId;\r\n }\r\n return \"Job Status : \"+event.status+\"
\"+ \r\n\r\n \"Job Id : \"+Id+\"
\"+ \r\n \"Start Time : \" + scheduler.templates.tooltip_date_format(start) + \"
\" +\r\n \"End Time : \" + scheduler.templates.tooltip_date_format(end);\r\n\r\n };\r\n\r\n// this is used for creating two event in the same slot \r\n scheduler.config.collision_limit = 5; //allows creating 2 events per time slot\r\n/*scheduler.attachEvent(\"onEventLoading\", function(ev){ \r\n return scheduler.checkCollision(ev); \r\n});\r\n*/\r\n\r\n\r\n\r\n\r\n scheduler.createTimelineView({\r\n name: \"timeline\",\r\n x_date: \"%H:%i\",\r\n x_unit:\"minute\",// the scale parameters will be calculated in minutes\r\n x_step:30, //sets the '30 minute' step, e.g. 09:00 - 09:30\r\n x_size:24, // the number of '30 minute's in the interval 09:00 - 15:00\r\n // 15 - 9 = 6 hours = 360 minutes = 360/30 = 12\r\n x_start:18, //scale starts from 09:00,i.e. 9 hours from the default start- 00:00.\r\n // 9 hours = 540 minutes = 540/30 = 18 'x_step's \r\n x_length:48,//sc\r\n y_unit: scheduler.serverList('sections',sections.users),\r\n y_property: \"assignedUserid\",\r\n render:\"bar\",\r\n\r\n });\r\n\r\n scheduler.ignore_timeline = function(date){\r\n //non-work hours\r\n if (date.getHours() < 8 || date.getHours() > 18) return true;\r\n };\r\n\r\n\r\n scheduler.templates.timeline_scale_label =function(key, label,sections){\r\n if(sections.userType=='Fixed Team' && sections.role=='Field Engineer'){\r\n var UserIdentity ='FE';\r\n \r\n } else if(sections.userType=='Freelancer' && sections.role=='Field Engineer'){\r\n var UserIdentity ='FL';\r\n \r\n } else if(sections.userType=='Fixed Team' && sections.role=='Vendor Manager'){\r\n var UserIdentity ='V';\r\n \r\n } else if(sections.userType=='Freelancer' && sections.role=='Vendor Manager'){\r\n var UserIdentity ='FV';\r\n \r\n }\r\n var ratings = sections.UserRating?sections.UserRating:0;\r\n if(sections.BIDCounterRate!=null){\r\n return \"
\\\r\n
image
\\\r\n
\\\r\n
\"+sections.name+\"\"+UserIdentity+\"
\\\r\n
\\\r\n \"+ratings+\"\\\r\n \\\r\n \"+round2Decimal(sections.UserDistance)+\" km \\\r\n \"+sections.UserDuration+\" Min\\\r\n
\\\r\n
\\\r\n
\";\r\n }else{\r\n return \"
\\\r\n
image
\\\r\n
\\\r\n
\"+sections.name+\"\"+UserIdentity+\"
\\\r\n
\\\r\n \"+ratings+\"\\\r\n \"+sections.UserDuration+\" Min\\\r\n
\\\r\n
\";\r\n }\r\n\r\n };\r\n\r\n\r\nfunction getPic(profilePic) {\r\n return profilePic ? ImageUrl + '/' + profilePic : DefaultImage;\r\n}\r\n\r\nfunction round2Decimal(no) {\r\n return Math.round(no * 100) / 100; \r\n}\r\n \r\n\r\n \r\n\r\n\r\nscheduler.attachEvent(\"onBeforeViewChange\", function(old_mode,old_date,mode,date){\r\n //any custom logic here\r\n \r\n vm.mode =mode;\r\n return true;\r\n});\r\n\r\n/*scheduler.templates.event_text=function(start, end, event){\r\n return \"
\"+Id+\"
\";\r\n}\r\n*/\r\n \r\n //timeline event bar text is used for timeline mode\r\n scheduler.templates.event_bar_text = function (start, end, event) {\r\n var t = event.id;\r\n debugger;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id =event.LinkId;\r\n }\r\n return \"
\"+Id+\"
\";\r\n };\r\n\r\n// it is used when we dislay in month mode\r\nscheduler.templates.event_bar_date = function(start,end,event){\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id = event.LinkId?event.LinkId:event.id;\r\n }\r\n return \"\"+Id+\" \";\r\n};\r\n \r\n // it is used for the week basis \r\n scheduler.templates.event_header = function(start,end,event){\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id =event.LinkId?event.LinkId:event.id;\r\n }\r\n return \"
\"+Id+\"
\";\r\n \r\n};\r\n\r\n\r\n\r\n//this is used for the status \r\n scheduler.templates.event_class = function (start, end, event) {\r\n if(vm.mode=='timeline'){\r\n scheduler.config.readonly = false;\r\n if (event.status == \"Assigned\") {\r\n return \"Assigned\";\r\n }\r\n if (event.status == \"New\") {\r\n return \"New\";\r\n }\r\n if (event.status == \"Broadcasted\") {\r\n return \"Broadcasted\";\r\n } \r\n if (event.status == \"Completed\") {\r\n return \"Completed\";\r\n }if(event.status ==\"ReadyToAssign\"){\r\n return \"ReadyToAssign\";\r\n }\r\n return \"dhx_rent_payed\";\r\n\r\n }\r\n else if(vm.mode=='week' || vm.mode=='month' || vm.mode=='day'){\r\n scheduler.config.readonly = true;\r\n if (event.status == \"Assigned\") {\r\n return \"Assigned1\";\r\n }\r\n if (event.status == \"New\") {\r\n return \"New1\";\r\n }\r\n if (event.status == \"Broadcasted\") {\r\n return \"Broadcasted1\";\r\n } \r\n if (event.status == \"Completed\") {\r\n return \"Completed1\";\r\n }if(event.status ==\"ReadyToAssign\"){\r\n return \"ReadyToAssign1\";\r\n }\r\n return \"dhx_rent_payed1\";\r\n }\r\n\r\n };\r\n\r\n /* var someDate = new Date();\r\n var numberOfDaysToAdd = 5;\r\n var nextday = 1;\r\n someDate.setDate(someDate.getDate() + nextday)*/\r\n\r\n scheduler.init('scheduler_here',new Date(),\"timeline\");\r\n\r\n if(sections.tickets.length!=0){\r\n\r\n var sectionlist = $filter('filter')(sections.tickets,function(value){\r\n // return value.UserId==Id && value.start_date==start_date;\r\n //return value.UserId==Id;\r\n return value.status=='Completed' || value.status=='Assigned';\r\n\r\n })\r\n sections.tickets = sectionlist;\r\n scheduler.parse(sections.tickets,\"json\");\r\n }\r\n \r\n //scheduler.parse(sections.tickets,\"json\");\r\n \r\n }\r\n\r\n//init();\r\n})\r\n\nangular.module('inspinia').service('ScheduleExceptionListPagingService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n var vm = this;\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n// https://perf.mymobiforce.com/coreapi/api/TicketPayment/getinvoicesinrange?ReqUserId=F00000000000&StartDate=2019-07-01&EndDate=2019-08-21\r\nthis.GetAllScheduleExceptionListbyDateRange = function (loggedinUser, startDate, endDate, token) {\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/GetSchedulerException?ReqUserId=' + loggedinUser + '&StartDate=' + startDate + '&EndDate='+endDate;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId':loggedinUser }\r\n });\r\n}\r\n\r\n\r\n //https://perf.mymobiforce.com/schedulingapi/api/AutoSchedulerException/MarkResolveSchedulerException?reqUserId=U350000000001&exceptionId=U350000000001\r\n this.ResolveException = function(loggedinUser, exceptionIdList, success, token){\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/MarkResolveSchedulerException?reqUserId=' + loggedinUser ;\r\n $http.put(url,{'exceptionIdList':exceptionIdList},{\r\n headers:{'Content-Type':'application/json', 'Token': token, 'UserId':loggedinUser}\r\n }).then(function (res) {\r\n if(status = '202'){\r\n vm.showSuccess(\"Schedule Exception\", \"Exception(s) resolved successfully\");\r\n }\r\n \r\n success(res);\r\n }, function () {\r\n vm.showFailure(\"Schedule Exception\", \"Unable to resolved Exception(s)\");\r\n })\r\n }\r\n \r\n\r\n // https://perf.mymobiforce.com/coreapi/api/TicketPayment/PayCompleteInvoice?ReqUserId=F00000000000&InvoiceNo=IN_000000001\r\n // this.PutSingleInvoicePayments = function (loggedinUser, InvoiceNo, success, token) {\r\n // var url = ApiURL + '/api/TicketPayment/PayCompleteInvoice?ReqUserId=' + loggedinUser + '&InvoiceNo=' + InvoiceNo\r\n // $http.put(url, null, {\r\n // headers: { 'Content-Type': 'application/json', 'Token': token }\r\n // }).then(function (res) {\r\n // vm.showSuccess(\"Payment Information\", \"Payment Completed Successfully\");\r\n // success(res);\r\n // }, function () {\r\n // vm.showFailure(\"Payment Information\", \"Unable to make payment\");\r\n // })\r\n // }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/TicketPayment/PayMultiInvoices?ReqUserId=F00000000000&InvoiceNos=indifnd\r\n // this.PutMultiSelectedInvoicePayments = function (loggedinUser, InvoiceNos, success, token) {\r\n // var url = ApiURL + '/api/TicketPayment/PayMultiInvoices?ReqUserId=' + loggedinUser + '&InvoiceNos=' + InvoiceNos\r\n // $http.put(url, null, {\r\n // headers: { 'Content-Type': 'application/json', 'Token': token }\r\n // }).then(function (res) {\r\n // vm.showSuccess(\"Payment Information\", \"Payment Completed Successfully\");\r\n // success(res);\r\n // }, function () {\r\n // vm.showFailure(\"Payment Information\", \"Unable to make payment\");\r\n // })\r\n // }\r\n\r\n // https://perf.mymobiforce.com/SchedulingAPI/api/AutoSchedulerException/GetActiveSchedulerExceptionMobileApp?reqUserId=U00000000406&startDate=2021-08-01&endDate=2021-10-07&PageIndex=1&PageSize=10\r\n // this.getAllJobTickets = function (reqUserId, startDate, endDate, token,PageIndex,PageSize) {\r\n // var url = '';\r\n // url = SchedulingAPI + '/api/AutoSchedulerException/GetActiveSchedulerExceptionMobileApp?reqUserId=' + reqUserId + '&startDate=' + startDate+ '&endDate=' + endDate +'&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n // // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // 'Token': token,\r\n // 'UserId': reqUserId\r\n // }\r\n // });\r\n // }\r\n//https://perf.mymobiforce.com/schedulingapi/api/AutoSchedulerException/GetSchedulerExceptionForServerWithDynPaging\r\n this.getAllJobForExceptionList = function ( loggedinUser, token,userFormData) {\r\n var url = SchedulingAPI + \"/api/AutoSchedulerException/GetSchedulerExceptionForServerWithDynPaging\";\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.getAllAccounts = function (loggedinUser,token) { \r\n var url = ApiURL+ '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n }\r\n this.getAllUserByReportingPerson = function (reportingTo, token) {\r\n var url = ApiURL +'/api/User/'+ reportingTo+'/byReportingToWithJobCount?ReqUserId='+reportingTo;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId':reportingTo }\r\n });\r\n }\r\n\r\n\r\n// https://perf.mymobiforce.com/publicapi/api/Report/DownloadInvoices?reqUserId=F00000000000&InvoicesNo=IN_000000002\r\nthis.downloadInvoicebyInvoiceNo = function (loggedinUser, InvoiceNos, success, token) {\r\n $window.location.href = PublicApiURL + '/api/Report/DownloadInvoices?reqUserId=' + loggedinUser + '&InvoicesNo=' + InvoiceNos\r\n console.log($window.location.href);\r\n // $http.get(url,{\r\n // headers: { 'Content-Type': 'application/json', 'Token': token }\r\n // }).then(function (res) {\r\n // vm.showSuccess(\"Download Information\", \"Download Completed Successfully\");\r\n // success(res);\r\n // }, function () {\r\n // vm.showFailure(\"Payment Information\", \"Unable to Download Invoices\");\r\n // })\r\n}\r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ScheduleExceptionListPagingController', function (ScheduleExceptionListPagingService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tScheduleExceptionListPagingService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n\t\tScheduleExceptionListPagingService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.$parent.$parent.main.implementSelectItems('scheduleExceptionListNew', this);\r\n\t\t// $scope.$parent.$parent.main.implementSelectItems('InVoiceHistoryData', this);\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount ; \r\n\t\t$scope.TicketTablepagination = {\r\n\t\t current: 1\r\n\t\t};\r\n\t\r\n\t\r\n\t\tvm.changeTicketPageListCount = function() { \r\n\t\t $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t PageSize = $scope.ticketTablePerPage;\r\n\t\t $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t}\r\n\r\n\t\tPageIndex=$scope.TicketTablepagination.current;\r\n\t\t$scope.TicketTablepageChanged = function(newPage) { \r\n\t\t PageIndex = newPage; \r\n\t\t vm.getAllJobForExceptionList();\r\n\t\t};\r\n\r\n\t\tvm.scheduleExceptionListNew=[];\r\n \r\n\t\tvm.getAllJobForExceptionList = function() {\r\n\t\t\tvar userFormData = {\t\r\n\t\t\t\t\"startDate\":startDate,\t\r\n\t\t\t\t\"endDate\":endDate,\r\n\t\t\t\t\"PageIndex\": PageIndex,\r\n\t\t\t\t\"PageSize\":PageSize,\t\r\n\t\t\t\t\"ExceptionType\":vm.ExceptionType,\r\n\t\t\t\t\"ExceptionState\":vm.exceptionState,\r\n\t\t\t\t\"ExceptionAssignToUserId\":vm.UserId,\r\n\t\t\t\t\"ReqUserId\":loggedinUser,\r\n\t\t\t\t\"AccountName\":vm.SearchByAccountName\r\n\t\t\t}\r\n\t\t PageIndex = PageIndex?PageIndex:1;\r\n\t\t ScheduleExceptionListPagingService.getAllJobForExceptionList(loggedinUser,token,userFormData).then(function (resp) {\r\n\t\t if (resp && resp.data) {\r\n\t\t\t vm.scheduleExceptionListNew = resp.data.listScheduleException;\r\n\t\t\t $scope.totalTableTickets = resp.data.nRecordCount;\r\n\t\t\t $scope.totalTableUsers = resp.data.nRecordCount;\r\n \r\n\t\t\t vm.enableFilters = true;\r\n\t\t\t vm.actionFlag = false;\r\n\t\t\t $localStorage.TList = vm.scheduleExceptionListNew;\r\n\t\t\t $localStorage.AllJobType = vm.searchJobTypeText;\r\n\t\t\t $localStorage.AllJobStatus = vm.searchStatusText;\r\n\t\t\t angular.forEach(vm.scheduleExceptionListNew, function (t) {\r\n\t\t\t t.StartTime = moment(t.StartTime, \"YYYY-MM-DDThh:mm:ssZ\"); \r\n\t\t\t t.StartTimeD = t.StartTime.format(\"YYYY-MM-DD hh:mm\");\r\n \r\n\t\t\t var today = moment();\r\n\t\t\t })\r\n\t\t\t\r\n\t\t\t if(vm.scheduleExceptionListNew.length < vm.ticketPageListCount)\r\n\t\t\t vm.scheduleExceptionListNewLength = $scope.totalTableTickets;\r\n\t\t\t else\r\n\t\t\t vm.scheduleExceptionListNewLength = PageIndex * vm.ticketPageListCount;\r\n\t\t\t if(PageIndex==1)\r\n\t\t\t vm.pageindexCount = 1;\r\n\t\t\t else\r\n\t\t\t vm.pageindexCount = (((PageIndex-1) * vm.ticketPageListCount) + 1);\r\n\t\t }\r\n \r\n\t\t }, function () { \r\n\t\t });\r\n\t\t \r\n\t }\r\n\t vm.getAllJobForExceptionList();\r\n\r\n\r\n\t vm.implementSelectItemsNewJob = function (itemList, scope) {\r\n\t\tscope.selectAllNewJob = false;\r\n\t\tscope.showMinusNewJob = false;\r\n\t\tscope.selectRowNewJob = function (i) {\r\n\t\t scope.showMinusNewJob = false;\r\n\t\t scope.selectAllNewJob = false;\r\n\t\t angular.forEach(scope[itemList], function (d) {\r\n\t\t\tif (d.checked) {\r\n\t\t\t scope.showMinusNewJob = true;\r\n\t\t\t \r\n\t\t\t}\r\n\t\t });\r\n\t\t}\r\n\t\tscope.applyAllNewJobSelect = function () {\r\n\t\t angular.forEach(scope[itemList], function (d) {\r\n\t\t\td.checked = scope.selectAllNewJob;\r\n\t\t });\r\n\t\t}\r\n \r\n\t\tscope.resetAllSelect = function () {\r\n\t\t scope.selectAllNewJob = false;\r\n\t\t scope.showMinusNewJob = false;\r\n\t\t}\r\n\t }\r\n \r\n\t vm.implementSelectItemsNewJob('scheduleExceptionListNew', this);\r\n\r\n\t vm.JobView = function (ticketId) {\r\n\t\t$localStorage.backToOldJobList = '';\r\n\t\t $localStorage.SDate = startDate;\r\n\t\t $localStorage.EDate = endDate;\r\n\t\t \r\n\t\t $localStorage.TicketFilterModel ={\r\n\t\t\t\"JobLocation\" : vm.locationSearch,\r\n\t\t\t\"JobStatus\" : vm.searchStatusText,\r\n\t\t\t\"JobSDate\" : startDate,\r\n\t\t\t\"JobEDate\" : endDate, \r\n\t\t\t\"JobSkill\" : vm.skillsSearch,\r\n\t\t\t\"UserType\" : vm.UsersType,\r\n\t\t\t\"PageIndex\" : PageIndex \r\n\t\t } ;\r\n\t\t$localStorage.backToOldJobList = 'ManualAssignationTeamAssign';\r\n\t\t\r\n\t\t\r\n\t\t $state.go('index.JobDetailView', {\r\n\t\t\tticketId: ticketId\r\n\t\t })\r\n\t\t\r\n\t }\r\n\r\n\r\n\tvm.DisableScheduledExceptionButtons = function (disable) {\r\n\t if(disable){\r\n\t \t\tvm.disableExceptionButton = true;\t\t\t\r\n\t }\r\n\t else{\r\n\t \tvm.disableExceptionButton = false;\r\n\t }\r\n\t}\r\n\tvm.getAllDispatchUser = function () {\r\n\t\tScheduleExceptionListPagingService.getAllUserByReportingPerson(loggedinUser, token).then(function (resp) {\r\n\t\t vm.DSusers = resp.data;\r\n\t\t}, function () {\r\n\t\t})\r\n\t }\r\n\t vm.getAllDispatchUser();\r\n\r\n\r\n\tvm.resolveException = function(){\r\n\t\tvm.DisableScheduledExceptionButtons(true);\r\n\t\tvar exceptionIdList = []; \r\n\t\tangular.forEach(vm.scheduleExceptionListNew, function(d){\r\n\t\t if (d.checked) {\r\n\t\t\texceptionIdList.push(d.ExceptionId); \r\n\t\t }\r\n\t\t})\r\n\t\tvm.DisableScheduledExceptionButtons(true); \r\n\t\tScheduleExceptionListPagingService.ResolveException(loggedinUser, exceptionIdList, vm.createCallback(null, [function(data){\r\n\t\t\t\t\t$timeout(function(){ \r\n\t\t\t\t\t\tvm.selectSingle = false;\r\n\t\t\t\t\t\tvm.DisableScheduledExceptionButtons(false);\r\n\t\t\t\t\t\tvm.getAllJobForExceptionList(); \r\n\t\t\t\t\t }, 1000);\r\n\t\t}]), token);\r\n\t}\r\n\tvm.accounts=[];\r\n\tvm.getAllAccounts = function ( ) {\r\n\t\tScheduleExceptionListPagingService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n\t\t if (resp && resp.data) { \r\n\t\t\tif(resp.status==200)\r\n\t\t\t{\r\n\t\t\t vm.showAllAccounts = resp.data;\r\n\r\n\t\t\t}\r\n\t\t } \r\n\t\t}, function () { \r\n\t\t});\r\n\t}\r\n\tvm.getAllAccounts();\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('SMEInteractionService', function (ApiURL, PublicApiURL, ActivityURL, LocationURL, $http, FreelancerURL, SchedulingAPI) {\r\n\r\n this.SendCommunicationInvite = function (UserId, type, step, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/SendCommunicationInviteOnBoarding?UserId=' + UserId + '&Type=' + type + '&Step=' + step;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetAllInteractions = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetAllInteractions';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllInteractionsDashboard = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetAllInteractionsDashboard';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.AssignSlotInteractionToUser = function (data, userId, InteractionType, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/AssignSlotInteractionToUser?AssignToUser=' + userId + '&InteractionType=' + InteractionType;\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAvailableSlots = function (selectedDate, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/GetAvailableSlotsForBGVerification?date=' + selectedDate;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n\r\n }\r\n });\r\n }\r\n\r\n this.BookSlotForSMEInterationWeb = function (userId, selectedDate, slotIndex, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/BookSlotForSMEInterationWeb?UserId=' + userId + '&date=' + selectedDate + '&SlotId=' + slotIndex;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetBasicDetailsWeb = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerRegistration/GetBasicDetailsWeb?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.UploadSMEInteractionVideo = function (UserId,Rating, Feedback,Skill,FrontFileName, files, token, loggedinUser) {\r\n var formdata = new FormData();\r\n formdata.append(FrontFileName, files[0]);\r\n formdata.append(\"UserId\", UserId);\r\n formdata.append(\"skill\", Skill);\r\n formdata.append(\"Feedback\", Feedback);\r\n formdata.append(\"Rating\", Rating);\r\n var url = ApiURL + '/api/Upload/UploadSMEInteractionVideo';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n});\nangular.module('inspinia').controller('SMEInteractionController', function (SMEInteractionService, ReferService, ScheduleAssignService, $q, $log, $filter, $state, $localStorage, UIURL, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, uiCalendarConfig, ImageUrl, PublicApiURL, $window) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n var accountid = $localStorage.accountConfig.AccountId;\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n vm.sorttype = \"desc\";\r\n vm.SortType = \"desc\";\r\n vm.SortField = 'CreatedOn';\r\n vm.InteractionList = [];\r\n vm.assignButtonDisable = false;\r\n vm.bGVerifyListLength = 0;\r\n vm.userPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.InteractionType = 'SMEInteration';\r\n vm.statusList = [\"Pending\", \"Completed\", \"Assigned\"];\r\n vm.AssignedTo = '';\r\n vm.slotStatus = 'Assigned';\r\n vm.DateField = 'CreatedOn';\r\n vm.State = '';\r\n vm.City = '';\r\n vm.userskill = '';\r\n vm.disableuploadbutton = false;\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.bookingdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.bookingRanges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n // start calender\r\n var scheduleStartDate = new Date();\r\n var scheduleEndDate = new Date();\r\n scheduleEndDate.setDate(scheduleEndDate.getDate() + 6);\r\n vm.slotBookingdates = { scheduleStartDate: moment().subtract(7, 'day'), scheduleEndDate: moment() };\r\n $scope.showCalendar = false;\r\n $scope.showBookingTab = false;\r\n vm.slotDate = $filter('date')(new Date(), 'yyyy-MM-dd');\r\n $scope.toggleCalendar = function (userId) {\r\n vm.slotBookingUserId = userId;\r\n vm.GetAvailableSlots(vm.slotDate);\r\n $scope.showBookingTab = true;\r\n $scope.showCalendar = !$scope.showCalendar;\r\n };\r\n $scope.dateClicked = function () {\r\n vm.slotDate = $filter('date')(new Date(vm.slotBookingdates), 'yyyy-MM-dd');\r\n vm.GetAvailableSlots(vm.slotDate);\r\n };\r\n $scope.dateOptions = {\r\n formatYear: 'yyyy',\r\n startingDay: 1,\r\n minDate: scheduleStartDate,\r\n maxDate: scheduleEndDate\r\n };\r\n $scope.date = scheduleStartDate;\r\n\r\n\r\n\r\n ////end calender\r\n\r\n var scdt = new Date();\r\n scdt.setMinutes(scdt.getMinutes() + 30);\r\n vm.SourceCreationDate = scdt;\r\n var pcdt = new Date();\r\n pcdt.setDate(pcdt.getDate() + 7);\r\n vm.PlannedClosureDate = pcdt;\r\n\r\n vm.openCalendar = function (e, picker) {\r\n vm.ClosureDateTime.open = true;\r\n };\r\n var plannedclosuredatelimit = new Date();\r\n plannedclosuredatelimit.setMinutes(plannedclosuredatelimit.getMinutes() + 1)\r\n vm.ClosureDateTime = { date: '', datepickerOptions: { minDate: plannedclosuredatelimit } };\r\n\r\n var date = new Date();\r\n var d = date.getDate();\r\n var m = date.getMonth();\r\n var y = date.getFullYear();\r\n vm.eventsF = function (start, end, timezone, callback) {\r\n var s = new Date(start).getTime() / 1000;\r\n var e = new Date(end).getTime() / 1000;\r\n var m = new Date(start).getMonth();\r\n var events = [{\r\n title: 'Feed Me ' + m,\r\n start: s + (50000),\r\n end: s + (100000),\r\n allDay: false,\r\n className: ['customFeed']\r\n }];\r\n callback(events);\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n if (vm.InteractionType == 'BGVerify') {\r\n vm.InteractionType = 'BGVerify'\r\n }\r\n if (vm.InteractionType == 'SMEInteration') {\r\n vm.InteractionType = 'SMEInteration'\r\n }\r\n $scope.Userpagination = {};\r\n PageIndex = 1;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n };\r\n\r\n\r\n vm.toBeAssigned = [];\r\n vm.implementSelectItemsUsers = function (itemList, scope) {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n scope.selectRowUsers = function (i) {\r\n scope.showMinusUsers = false;\r\n scope.selectAllUsers = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n vm.toBeAssigned.push(d.UserId)\r\n scope.showMinusUsers = true;\r\n }\r\n\r\n });\r\n }\r\n scope.applyAllNewJobSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllUsers;\r\n });\r\n }\r\n\r\n scope.resetAllSelect = function () {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n }\r\n }\r\n\r\n vm.implementSelectItemsUsers('InteractionList', this);\r\n\r\n\r\n vm.AssignTickets = function (userId) {\r\n if (vm.toBeAssigned.length <= 1) {\r\n vm.showFailure(\"Failed\", 'Please select atleast 1 user to assign');\r\n } else {\r\n vm.assignButtonDisable = true;\r\n s.AssignSlotInteractionToUser(vm.toBeAssigned, userId, vm.InteractionType, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\", \"Users assigned successfully\");\r\n vm.assignButtonDisable = false;\r\n $timeout(function () {\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n vm.toBeAssigned = [];\r\n }, 2000);\r\n\r\n } else {\r\n vm.showFailure(\"Failed\", \"User could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"User could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n })\r\n }\r\n }\r\n\r\n\r\n $scope.totalTableUsersBG = 0;\r\n $scope.userSMETablePerPage = vm.userPageListCount;\r\n $scope.UserSMETablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeUserSMEPageListCount = function () {\r\n $scope.userSMETablePerPage = vm.userPageListCount;\r\n PageSize = $scope.userSMETablePerPage;\r\n $scope.UserSMETablepageChanged($scope.UserSMETablepagination.current);\r\n }\r\n\r\n PageIndex = $scope.UserSMETablepagination.current;\r\n $scope.UserSMETablepageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetAllInteractions();\r\n };\r\n\r\n $scope.totalTableUsersBG = 0;\r\n $scope.userTablePerPage = vm.userPageListCount;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeUserPageListCount = function () {\r\n $scope.userTablePerPage = vm.userPageListCount;\r\n PageSize = $scope.userTablePerPage;\r\n $scope.UserTablepageChanged($scope.UserTablepagination.current);\r\n }\r\n\r\n PageIndex = $scope.UserTablepagination.current;\r\n $scope.UserTablepageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetAllInteractions();\r\n };\r\n\r\n\r\n vm.GetAllInteractions = function () {\r\n data = {\r\n \"Status\": vm.slotStatus,\r\n \"Skill\": vm.userskill == \"\" ? \"\" : vm.userskill.join(\"|\"),\r\n \"DateField\": vm.DateField,\r\n \"FromDate\": startDate,\r\n \"ToDate\": endDate,\r\n \"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n \"InteractionType\": vm.InteractionType,\r\n \"PageIndex\": PageIndex,\r\n \"PageCount\": PageSize,\r\n \"State\": vm.State,\r\n \"City\": vm.City\r\n }\r\n SMEInteractionService.GetAllInteractions(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.InteractionList = resp.data.GetInteractionResModelList;\r\n $scope.totalTableUsersBG = resp.data.Count;\r\n if (vm.InteractionList.length < vm.userPageListCount)\r\n vm.bGVerifyListLength = $scope.totalTableUsersBG;\r\n else\r\n vm.bGVerifyListLength = PageIndex * vm.userPageListCount;\r\n if (PageIndex == 1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n\r\n })\r\n }\r\n\r\n vm.GetAllInteractionsDashboard = function () {\r\n data = {\r\n \"Status\": vm.slotStatus,\r\n \"Skill\": vm.userskill == \"\" ? \"\" : vm.userskill.join(\"|\"),\r\n \"DateField\": vm.DateField,\r\n \"FromDate\": startDate,\r\n \"ToDate\": endDate,\r\n \"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n \"InteractionType\": vm.InteractionType,\r\n \"PageIndex\": PageIndex,\r\n \"PageCount\": PageSize,\r\n \"State\": vm.State,\r\n \"City\": vm.City\r\n }\r\n SMEInteractionService.GetAllInteractionsDashboard(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TotalSlots = resp.data.TotalSlots;\r\n vm.AssignedSlots = resp.data.AssignedSlots;\r\n vm.PendingSlots = resp.data.PendingSlots;\r\n vm.CompletedSlots = resp.data.CompletedSlots;\r\n vm.BreachedSlots = resp.data.BreachedSlots;\r\n }\r\n\r\n })\r\n }\r\n\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n\r\n /// video upload\r\n vm.VideoUploadPopup = function (UserId, UserSkill) {\r\n vm.UserIdForVideo = UserId;\r\n vm.UserSkillForVideo = UserSkill;\r\n VideoModel = $uibModal.open({\r\n templateUrl: 'videoupload_model.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n }, function () {\r\n });\r\n \r\n }\r\n vm.file = [];\r\n $scope.uploadVideoFile = function(files){\r\n vm.FrontFileName=\"\";\r\n vm.FilesFrontDoc = files.files;\r\n vm.FrontFileName = vm.FilesFrontDoc[0].name; \r\n vm.file.push(vm.FilesFrontDoc);\t\r\n var allowedExtensions = /(\\.mp4|\\.mov|\\.avi|\\.webm|\\.m4v|\\.mov|\\.qt)$/i; \r\n if(!allowedExtensions.exec(vm.FrontFileName)){\r\n vm.FilesFrontDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .mp4,.mov,.avi,.webm,.m4v,.mov,.qt only.');\r\n }\r\n }\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n };\r\n\r\n $scope.stars = [1, 2, 3, 4, 5];\r\n $scope.skillrating = 0;\r\n\r\n $scope.setRating = function(rating) {\r\n $scope.skillrating = rating;\r\n };\r\n\r\n vm.UploadVideo = function () {\r\n var Feedback = vm.FeedbackRemarks;\r\n var Rating = $scope.skillrating;\r\n vm.disableuploadbutton = true;\r\n SMEInteractionService.UploadSMEInteractionVideo(vm.UserIdForVideo,Rating, Feedback,vm.UserSkillForVideo ,vm.FrontFileName, vm.FilesFrontDoc, token, loggedinUser).then(function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Video Uploaded Successfully.\");\r\n vm.VideoUploadPop();\r\n vm.disableuploadbutton = false;\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", \"Not Uploaded\");\r\n vm.VideoUploadPop();\r\n vm.disableuploadbutton = false;\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n });\r\n }\r\n\r\n vm.VideoUploadPop = function () {\r\n VideoModel.close();\r\n $scope.skillrating = 0;\r\n vm.FeedbackRemarks = \"\";\r\n }\r\n\r\n vm.GetAvailableSlots = function (slotDate) {\r\n vm.slotDate = slotDate\r\n SMEInteractionService.GetAvailableSlots(slotDate, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AvailableSlots = resp.data.objAvailableSlotModelList;\r\n if(vm.AvailableSlots.length != 0){\r\n $scope.showBookingTab = true;\r\n }\r\n else{\r\n $scope.showBookingTab = false;\r\n }\r\n $scope.selectedTimeSlot = vm.AvailableSlots[0];\r\n }\r\n })\r\n }\r\n vm.SlotId = '';\r\n vm.disableBookingButton = false;\r\n vm.BookSlotForSMEInterationWeb = function () {\r\n vm.disableBookingButton = true;\r\n SMEInteractionService.BookSlotForSMEInterationWeb(vm.slotBookingUserId, vm.slotDate, vm.SlotId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $scope.toggleCalendar();\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n $timeout(function () {\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n }, 2000);\r\n vm.disableBookingButton = false;\r\n }\r\n else {\r\n vm.disableBookingButton = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n })\r\n }\r\n\r\n vm.ProfileEditView = function (userId) {\r\n $state.go('index.RegistrationForm', {\r\n UserId: userId\r\n })\r\n }\r\n\r\n vm.getAllUsersByType = function (value) {\r\n $scope.totalTableUsersBG = 0;\r\n if (value == 'BGVerify') {\r\n vm.InteractionType = 'BGVerify'\r\n }\r\n if (value == 'SMEInteration') {\r\n vm.InteractionType = 'SMEInteration'\r\n }\r\n $scope.UserTablepagination = {};\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n $scope.UserSMETablepagination = {};\r\n $scope.UserSMETablepagination = {\r\n current: 1\r\n };\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n\r\n }\r\n\r\n vm.getAllSlotsByStatus = function (status) {\r\n vm.slotStatus = status;\r\n PageIndex = 1;\r\n vm.GetAllInteractions();\r\n }\r\n\r\n vm.OpenSMEPopUp = function (userDetail) {\r\n vm.userName = userDetail.UserName;\r\n vm.userId = userDetail.UserId;\r\n SMEInteractionModel = $uibModal.open({\r\n templateUrl: 'SME_Interaction_model.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n }, function () {\r\n });\r\n }\r\n\r\n $scope.SmeInteractionScreen = true;\r\n $scope.Smeinteract = function() {\r\n $scope.SmeInteractionScreen = !$scope.SmeInteractionScreen;\r\n };\r\n\r\n $scope.closeNav = function () {\r\n $scope.SmeInteractionScreen = !$scope.SmeInteractionScreen;\r\n }\r\n\r\n vm.closeInteractionPopUp = function () {\r\n SMEInteractionModel.close();\r\n }\r\n\r\n vm.GetBasicDetails = function (UserId) {\r\n vm.UserId = UserId;\r\n SMEInteractionService.GetBasicDetailsWeb(vm.UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserBasicInfo = resp.data;\r\n });\r\n }\r\n vm.SendCommunicationInvite = function (type, Step, UserId) {\r\n // if($scope.AudioCallInitiated == false && type == 'Audio') {\r\n vm.UserId = UserId;\r\n if (type == 'Audio') {\r\n SMEInteractionService.SendCommunicationInvite(vm.UserId, type, Step, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n {\r\n vm.connectionLink = resp.data;\r\n vm.showSuccess(\"Success\", \"Audio call request initiated\");\r\n // vm.PollVideoCallFieldLocation();\t\r\n // $scope.AudioCallInitiated = true;\t\t\t\t\r\n\r\n }\r\n }\r\n });\r\n }\r\n else if (type == 'Video') {\r\n SMEInteractionService.SendCommunicationInvite(vm.UserId, type, Step, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n {\r\n vm.connectionLink = resp.data;\r\n vm.closeInteractionPopUp();\r\n vm.showSuccess(\"Success\", \"Video call request initiated\");\r\n // vm.PollVideoCallFieldLocation();\t\r\n // $scope.VideoCallInitiated = true;\t\t\t\t\r\n\r\n }\r\n }\r\n });\r\n }\r\n else if (type == 'Text') {\r\n SMEInteractionService.SendCommunicationInvite(vm.UserId, type, Step, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n {\r\n vm.connectionLink = resp.data;\r\n vm.showSuccess(\"Success\", \"Communication Request Initiated\");\r\n // vm.PollVideoCallFieldLocation();\t\r\n // $scope.ChatInitiated = true;\t\t\t\t\r\n\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n }\r\n});\r\n\r\nangular.module('inspinia').filter('searchUser', function () {\r\n return function (items, search) {\r\n var filtered = [];\r\n if (search) {\r\n angular.forEach(items, function (item) {\r\n var searchstr = new RegExp(search, \"i\");\r\n if (item.id.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.User_Type.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.city.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.contactnumber.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.name.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.role.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.state.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n });\r\n } else {\r\n filtered = items;\r\n }\r\n return filtered;\r\n }\r\n})\nangular.module('inspinia').service('SLAObjectiveListService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('SLAObjectiveListController', function (SLAObjectiveListService,SlaService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedInUserId = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedInUserId) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.slaItems = [\r\n\t\t\t{\r\n\t\t\t\tname: \"Ticket_SLA\",\r\n\t\t\t\tentityType: \"Ticket\",\r\n\t\t\t\tdescription: \"Defines the time limits for resolving support tickets, ensuring timely responses and resolutions.\",\r\n\t\t\t\tliknobject : \"Priority\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: \"Payment_SLA\",\r\n\t\t\t\tentityType: \"Payment\",\r\n\t\t\t\tdescription: \"Establishes deadlines for processing payments, preventing delays and ensuring financial commitments are met.\",\r\n\t\t\t\tliknobject : \"Priority\"\r\n\t\t\t}\r\n\t\t];\r\n\t\r\n\t\t// Function to delete a row\r\n\t\t$scope.deleteRow = function (index) {\r\n\t\t\t$scope.slaItems.splice(index, 1);\r\n\t\t\tvm.showSuccess(\"Success\",\"SLA Objective Deleted Successfully\");\r\n\r\n\t\t};\r\n\t\r\n\t\t// Function to clone a row\r\n\t\t$scope.cloneRow = function (row) {\r\n\t\t\t$scope.slaItems.push(angular.copy(row));\r\n\t\t\tvm.showSuccess(\"Success\",\"SLA Objective Clone Successfully\");\r\n\r\n\t\t};\r\n\r\n\r\n\r\n\t\t////// sla objective process\r\n\t\t$scope.objectiveprocess = [\r\n\t\t\t{\r\n\t\t\t\tname: \"Ticket_SLA\",\r\n\t\t\t\tentityType: \"Ticket\",\r\n\t\t\t\tdescription: \"Defines the time limits for resolving support tickets, ensuring timely responses and resolutions.\",\r\n\t\t\t\tentityenters : \"When Entity is Created\",\r\n\t\t\t\tentityexists : \"Based on custom criteria\",\r\n\t\t\t\tBusinessHours: \"Default\",\r\n\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: \"Payment_SLA\",\r\n\t\t\t\tentityType: \"Payment\",\r\n\t\t\t\tdescription: \"Establishes deadlines for processing payments, preventing delays and ensuring financial commitments are met.\",\r\n\t\t\t\tentityenters : \"When Entity is Created\",\r\n\t\t\t\tentityexists : \"Based on custom criteria\",\r\n\t\t\t\tBusinessHours: \"Default\"\r\n\r\n\t\t\t}\r\n\t\t];\r\n\t\r\n\t\t// Function to delete a row\r\n\t\t$scope.deleteRowslaobjectiveprocess = function (index) {\r\n\t\t\t$scope.objectiveprocess.splice(index, 1);\r\n\t\t\tvm.showSuccess(\"Success\",\"SLA Objective Process Deleted Successfully\");\r\n\r\n\t\t};\r\n\t\r\n\t\t// Function to clone a row\r\n\t\t$scope.cloneRowslaobjectiveprocess = function (row) {\r\n\t\t\t$scope.objectiveprocess.push(angular.copy(row));\r\n\t\t\tvm.showSuccess(\"Success\",\"SLA Objective Process Clone Successfully\");\r\n\r\n\t\t};\r\n\t\r\n\t\tvm.slamilestone = [\r\n {\r\n name: \"Initial Response\",\r\n description: \"Acknowledging the ticket, assigning priority, and providing an estimated resolution time for the reported issue or request.\",\r\n recurrancetype: \"No Recurrence\",\r\n },\r\n {\r\n name: \"Final Resolution\",\r\n description: \"Confirming issue resolution, validating with the requester, closing the ticket, and documenting steps taken to resolve it.\",\r\n recurrancetype: \"Independent\",\r\n }\r\n ];\r\n\t\tvm.editingIndex = null; // Stores the index of the row being edited\r\n\r\n\t\t// Start Editing a Row\r\n\t\tvm.startEdit = function (index) {\r\n\t\t\tvm.editingIndex = index;\r\n\t\t};\r\n\t\r\n\t\t// Save Edited Row\r\n\t\tvm.saveEdit = function () {\r\n\t\t\tvm.editingIndex = null;\r\n\t\t};\r\n\t\r\n\t\t// Cancel Editing\r\n\t\tvm.cancelEdit = function () {\r\n\t\t\tvm.editingIndex = null;\r\n\t\t};\r\n\t\r\n // Object to store form inputs\r\n vm.newMilestone = {};\r\n\r\n // Function to save new milestone\r\n vm.SaveMilestone = function () {\r\n if (!vm.newMilestone.name || !vm.newMilestone.description || !vm.newMilestone.recurrancetype) {\r\n alert(\"Please fill in all fields.\");\r\n return;\r\n\t\t\t\t\r\n }\r\n\r\n // Add new milestone to the list\r\n vm.slamilestone.push({\r\n name: vm.newMilestone.name,\r\n description: vm.newMilestone.description,\r\n recurrancetype: vm.newMilestone.recurrancetype\r\n });\r\n\r\n // Clear input fields\r\n vm.newMilestone = {};\r\n\t\t\tvm.CloseMilestone();\r\n\r\n\r\n };\r\n\r\n// Function to delete a row\r\nvm.deleteRowslamilestone = function (index) {\r\n\tvm.slamilestone.splice(index, 1);\r\n\tvm.showSuccess(\"Success\",\"SLA Milestone Deleted Successfully\");\r\n\r\n};\r\n\r\n// Function to clone a row\r\nvm.cloneRowslamilestone = function (row) {\r\n\tvm.slamilestone.push(angular.copy(row));\r\n\tvm.showSuccess(\"Success\",\"SLA Milestone Clone Successfully\");\r\n\r\n};\r\n\r\n\t\tvm.AddSLAObjective = function () {\r\n\t\t\t\t\tvm.addslaobjective = $uibModal.open({\r\n\t\t\t\t\t\ttemplateUrl: 'CreateSLAObjectiveProcess.html',\r\n\t\t\t\t\t\tsize: 'lg',\r\n\t\t\t\t\t\tbackdrop: 'static',\r\n\t\t\t\t\t\tscope: $scope,\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\t\t \r\n\t\t\tvm.CloseSLAObjective = function () {\r\n\t\t\tvm.addslaobjective.close();\r\n\t\t\t}\r\n\r\n\t\t\tvm.NewAddSLAObjective = function () {\r\n\t\t\t\tvm.newaddslaobjective = $uibModal.open({\r\n\t\t\t\t\ttemplateUrl: 'CreateSLAObjective.html',\r\n\t\t\t\t\tsize: 'lg',\r\n\t\t\t\t\tbackdrop: 'static',\r\n\t\t\t\t\tscope: $scope,\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t \r\n\t\tvm.CloseNewSLAObjective = function () {\r\n\t\tvm.newaddslaobjective.close();\r\n\t\t}\r\n\r\n\t\tvm.slaobjectivenew = [\r\n\t\t\t{\r\n\t\t\t\tname: \"First Response\",\r\n\t\t\t\tentityType: \"Air Cooler Services\",\r\n\t\t\t\tcustomer: \"MMF Customers\",\r\n\t\t\t\tprocess: \"Sla_Ticket\",\r\n\t\t\t\tstartDate: \"2024-03-01\",\r\n\t\t\t\tendDate: \"2024-03-31\",\r\n\t\t\t\tbusinessHours: \"Default\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tname: \"Resolve Customer Query\",\r\n\t\t\t\tentityType: \"Dealer Visit\",\r\n\t\t\t\tcustomer: \"Flipkart Customers\",\r\n\t\t\t\tprocess: \"Sla_Payment\",\r\n\t\t\t\tstartDate: \"2024-04-01\",\r\n\t\t\t\tendDate: \"2024-04-30\",\r\n\t\t\t\tbusinessHours: \"Default\"\r\n\t\t\t}\r\n\t\t];\r\n\t\t\r\n\t\t// Save new SLA entry\r\n\t\tvm.Saveslaobjective = function () {\r\n\t\t\tif (vm.dialertask_form.$valid) {\r\n\t\t\t\tvar ItemnewSLA = {\r\n\t\t\t\t\tname: vm.newslaobjectivename,\r\n\t\t\t\t\tentityType: vm.SLAProject,\r\n\t\t\t\t\tcustomer: vm.SLACustomer,\r\n\t\t\t\t\tprocess: vm.CaseEnters,\r\n\t\t\t\t\tstartDate: vm.startDate,\r\n\t\t\t\t\tendDate: vm.endDate,\r\n\t\t\t\t\tbusinessHours: vm.BusinessHours\r\n\t\t\t\t};\r\n\t\t\r\n\t\t\t\tvm.slaobjectivenew.push(ItemnewSLA); // Add to table\r\n\t\t\t\tvm.resetForm(); // Reset form\r\n\t\t\t\t// vm.CloseSLAObjective()\r\n\t\t\r\n\t\t\t} else {\r\n\t\t\t\tvm.dialertask_form.submitted = true;\r\n\t\t\t}\r\n\t\t};\r\n\t\t\r\n\t\t// Reset form\r\n\t\tvm.resetForm = function () {\r\n\t\t\tvm.newslaobjectivename = \"\";\r\n\t\t\tvm.SLAProject = \"\";\r\n\t\t\tvm.SLACustomer = \"\";\r\n\t\t\tvm.CaseEnters = \"\";\r\n\t\t\tvm.startDate = \"\";\r\n\t\t\tvm.endDate = \"\";\r\n\t\t\tvm.BusinessHours = \"\";\r\n\t\t\tvm.CloseNewSLAObjective\t()\r\n\t\t};\r\n\t\t\r\n\t\t// Delete row\r\n\t\tvm.deleteRow = function (index) {\r\n\t\t\tvm.slaobjectivenew.splice(index, 1);\r\n\t\t\tvm.showSuccess(\"Success\",\"SLA Objective delete Successfully\");\r\n\t\t};\r\n\t\t\r\n\t\t// Clone row\r\n\t\tvm.cloneRow = function (row) {\r\n\t\t\tvar clonedRow = angular.copy(row);\r\n\t\t\tvm.slaobjectivenew.push(clonedRow);\r\n\t\t\tvm.showSuccess(\"Success\",\"SLA Objective Clone Successfully\");\r\n\t\t};\r\n\r\n\t\t\t// vm.Saveobjective = function(){\r\n\t\t\t// \tvm.showSuccess(\"Success\",\"SLA Objective Created Successfully\");\r\n\t\t\t// \tvm.CloseSLAObjective();\r\n\t\t\t// }\r\n\r\n\t\t\tvm.objectiveprocess = [\r\n\t\t\t\t{\r\n\t\t\t\t\tname: \"Ticket_Sla\",\r\n\t\t\t\t\tentityType: \"Ticket\",\r\n\t\t\t\t\tdescription: \"Handle ticket resolution\",\r\n\t\t\t\t\tentityenters: \"When Entity is created\",\r\n\t\t\t\t\tentityexists: \"When Entity reached terminal state\",\r\n\t\t\t\t\tBusinessHours: \"Default\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: \"Invoice_Sla\",\r\n\t\t\t\t\tentityType: \"Invoice\",\r\n\t\t\t\t\tdescription: \"Invoice processing SLA\",\r\n\t\t\t\t\tentityenters: \"Based on custom date/Time\",\r\n\t\t\t\t\tentityexists: \"Based on custom criteria\",\r\n\t\t\t\t\tBusinessHours: \"Default\"\r\n\t\t\t\t}\r\n\t\t\t]; \r\n\t\t\tvm.newObjective = {}; // Temporary object for form input\r\n\r\n // Save data to table\r\n vm.Saveobjective = function () {\r\n if (vm.dialertask_form.$valid) {\r\n vm.objectiveprocess.push({\r\n name: vm.slaobjectivename,\r\n entityType: vm.SLAProcessType,\r\n description: vm.slaDescription,\r\n entityenters: vm.CaseEnters,\r\n entityexists: vm.CaseExits,\r\n BusinessHours: \"Default\" // Static for now\r\n });\r\n\t\t\tvm.showSuccess(\"Success\",\"SLA Objective Process Created Successfully\");\r\n // Clear form after save\r\n vm.slaobjectivename = \"\";\r\n vm.SLAProcessType = \"\";\r\n vm.slaDescription = \"\";\r\n vm.CaseEnters = \"\";\r\n vm.CaseExits = \"\";\r\n vm.CloseSLAObjective();\r\n } else {\r\n vm.dialertask_form.submitted = true;\r\n }\r\n };\r\n\r\n // Delete row\r\n vm.deleteRowslaobjectiveprocess = function (index) {\r\n vm.objectiveprocess.splice(index, 1);\r\n };\r\n\r\n // Clone row\r\n vm.cloneRowslaobjectiveprocess = function (objective) {\r\n var cloned = angular.copy(objective);\r\n vm.objectiveprocess.push(cloned);\r\n };\r\n\t\t\tvm.OpenAddMilestone = function(){\r\n\t\t\t\t$state.go('index.AddMilestone',{\r\n\t\t\t\t \r\n\t\t\t\t}, { reload: true });\r\n\t\t\t \r\n\t\t\t}\r\n\t\t\tvm.OpenAddSlaobjective = function(){\r\n\t\t\t\t$state.go('index.SlaObjectiveDetails',{\r\n\t\t\t\t \r\n\t\t\t\t}, { reload: true });\r\n\t\t\t \r\n\t\t\t}\r\n\r\n\t\t\tvm.OpenpageMilestone = function(){\r\n\t\t\t\t$state.go('index.MilestoneDetailView',{\r\n\t\t\t\t \r\n\t\t\t\t}, { reload: true });\r\n\t\t\t \r\n\t\t\t}\r\n\r\n\t\t\t vm.AddMilestoneModal = function () {\r\n\t\t\t\tvm.addmilestone = $uibModal.open({\r\n\t\t\t\t\ttemplateUrl: 'Addmilestone.html',\r\n\t\t\t\t\tsize: 'md',\r\n\t\t\t\t\tbackdrop: 'static',\r\n\t\t\t\t\tscope: $scope,\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t \r\n\t\tvm.CloseMilestone = function () {\r\n\t\tvm.addmilestone.close();\r\n\t\t}\r\n\t\r\n\t\t// vm.SaveMilestone = function(){\r\n\t\t// \tvm.showSuccess(\"Success\",\"Milestone Created Successfully\");\r\n\t\t// \tvm.CloseMilestone();\r\n\t\t// }\r\n\r\n\t\t$scope.rows = [\r\n\t\t\t{ CaseEnters: '', Operator: '', Value: '', isEditable: false }\r\n\t\t];\r\n\t\t\r\n\t\t// Function to add a new row\r\n\t\t$scope.addRow = function () {\r\n\t\t\t$scope.rows.push({ CaseEnters: '', Operator: '', Value: '', isEditable: true });\r\n\t\t};\r\n\t\t\r\n\t\t// Function to remove a row\r\n\t\t$scope.removeRow = function (index) {\r\n\t\t\tif ($scope.rows.length > 1) {\r\n\t\t\t\t$scope.rows.splice(index, 1);\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n});\nangular.module('inspinia').service('SlaService', function ($log, $http, $localStorage, $window, ApiURL, PublicApiURL) {\r\n\r\n\r\n //https://perf.mymobiforce.com/coreapi/api/SLAConfiguration/3600000000001/CreateSLAConfiguration\r\n \tthis.createSla = function (loggedInUserId, data,token) {\r\n var url = ApiURL + '/api/SLAConfiguration/'+loggedInUserId+'/CreateSLAConfiguration/';\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedInUserId}\r\n });\r\n }\r\n\r\n //https://perf.mymobiforce.com/coreapi/api/SLAConfiguration/U350000000001/GetAllSLAConfiguration\r\n this.getAllSla = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/SLAConfiguration/'+loggedInUserId+'/GetAllSLAConfiguration/';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedInUserId}\r\n });\r\n } \r\n\r\n\r\n\r\n //https://perf.mymobiforce.com/coreapi/api/SLAConfiguration/U350000000001/SLA35000000000001/GetSLAConfiguration\r\n this.getSingleSla = function (loggedInUserId, slaId ,token) {\r\n var url = ApiURL + '/api/SLAConfiguration/'+loggedInUserId+'/'+slaId+'/GetSLAConfiguration/';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedInUserId}\r\n });\r\n } \r\n\r\n //https://perf.mymobiforce.com/coreapi/api/SLAConfiguration/U350000000001/UpdateSLAConfiguration\r\n this.UpdateSla = function (loggedInUserId, data,token) {\r\n var url = ApiURL + '/api/SLAConfiguration/'+loggedInUserId+'/UpdateSLAConfiguration/';\r\n return $http.put(url, data, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedInUserId}\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/publicapi/api/Location/GetRegion?userId=U360000000001\r\n this.getRegionbyUserId = function (loggedInUserId, token) {\r\n var url = PublicApiURL + '/api/Location/GetRegion?userId='+loggedInUserId;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedInUserId}\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/Project/U350000000001/U350000000001/GetProjectsByUserId\r\n this.getProjectsbyUserId = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/Project/'+loggedInUserId+'/'+loggedInUserId+'/GetProjectsByUserId';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedInUserId}\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/SkillSets?reqUserId=U350000000001\r\n this.getSkills = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedInUserId;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedInUserId}\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/Customer?reqUserId=U350000000001\r\n this.getCustomers = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/Customer?reqUserId='+loggedInUserId;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedInUserId}\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/Project/U350000000001/C0000000001/GetProjectsByCustomerId\r\n this.GetProjectsByCustomerId = function (loggedInUserId, customerId, token) {\r\n var url = ApiURL + '/api/Project/'+loggedInUserId+'/'+customerId+'/GetProjectsByCustomerId';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedInUserId}\r\n });\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('SLAListingController', function (SlaService, $state, $log, $localStorage, $uibModal, $scope, toaster,DTOptionsBuilder, DTColumnDefBuilder, $filter, $window, $timeout) {\r\n \r\n var vm = this;\r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n\r\n if (!loggedInUserId) {\r\n $state.go('Login',{\r\n reload: true\r\n });\r\n } else {\r\n \r\n var token = $localStorage.token;\r\n vm.AllSlaList = '';\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.LocationCheck = false;\r\n vm.ProjectCheck = false;\r\n vm.CustomerCheck = false;\r\n vm.SkillsetCheck = false;\r\n vm.CalltypeCheck = false;\r\n vm.Location = '';\r\n vm.Project = '';\r\n vm.Customer = '';\r\n vm.SkillSet = '';\r\n vm.CallType = '';\r\n vm.dtInstance = {};\r\n \r\n \r\n vm.GetAllSLA = function () {\r\n SlaService.getAllSla(loggedInUserId, token).then(function(resp){\r\n if(resp && resp.data){\r\n vm.AllSlaList = resp.data;\r\n }\r\n })\r\n }\r\n vm.GetAllSLA();\r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers')\r\n .withButtons([])\r\n .withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [3, 'asc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(10).notSortable()\r\n ];\r\n \r\n\r\n \r\n vm.OpenSettingModal = function(slaId){\r\n vm.getLocations();\r\n vm.getProjects();\r\n vm.getSkills();\r\n vm.getCustomers();\r\n SlaService.getSingleSla(loggedInUserId, slaId, token).then(function(resp){\r\n var singleList = [];\r\n if(resp && resp.data){\r\n var singleList = resp.data;\r\n vm.SlaID = singleList[0].SLAId,\r\n vm.SlaDefinition = singleList[0].SLADefinition;\r\n vm.Severity = singleList[0].Severity;\r\n vm.SlaValue = singleList[0].SLAValue;\r\n vm.Timing = singleList[0].SLACalender;\r\n vm.startTime = singleList[0].ShiftStartTime;\r\n vm.endTime = singleList[0].ShiftEndTime;\r\n vm.HolidaySchedule = singleList[0].HolidayListApplicable;\r\n vm.WorkingDays = singleList[0].NotWorkingDays;\r\n vm.HolidayList = singleList[0].HolidayList;\r\n vm.SlaActive = singleList[0].IsSLAActive;\r\n vm.Location = singleList[0].SLALocation;\r\n vm.Customer = singleList[0].Customer;\r\n vm.Project = singleList[0].Project;\r\n vm.SkillSet = singleList[0].Skill;\r\n vm.CallType = singleList[0].CallType;\r\n if(vm.Location){\r\n vm.LocationCheck = true;\r\n }\r\n if(vm.Customer){\r\n vm.CustomerCheck = true;\r\n /*$timeout(function () {\r\n vm.getProjectsbyCustomer(vm.Customer) \r\n }, 1000);*/\r\n }\r\n if(vm.Project){\r\n vm.ProjectCheck = true;\r\n }\r\n if(vm.SkillSet){\r\n vm.SkillsetCheck = true;\r\n }\r\n if(vm.CallType){\r\n vm.CalltypeCheck = true;\r\n }\r\n }\r\n })\r\n\r\n vm.SettingModal = $uibModal.open({\r\n templateUrl: 'Setting-modal',\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.getLocations = function () {\r\n SlaService.getRegionbyUserId(loggedInUserId, token).then(function(resp){\r\n if(resp && resp.data){\r\n vm.locationList = resp.data.values;\r\n }\r\n })\r\n }\r\n\r\n vm.getProjects = function () {\r\n vm.Project = '';\r\n SlaService.getProjectsbyUserId(loggedInUserId, token).then(function(resp){\r\n if(resp && resp.data){\r\n vm.projectList = resp.data;\r\n if(vm.Customer){\r\n \t$timeout(function () {\r\n vm.getProjectsbyCustomer(vm.Customer) \r\n }, 1000);\r\n }\r\n \r\n }\r\n })\r\n }\r\n\r\n vm.getSkills = function () {\r\n SlaService.getSkills(loggedInUserId, token).then(function(resp){\r\n if(resp && resp.data){\r\n vm.skillList = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.getCustomers = function () {\r\n SlaService.getCustomers(loggedInUserId, token).then(function(resp){\r\n if(resp && resp.data){\r\n vm.customerList = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.getProjectsbyCustomer = function(customerName){\r\n var CustomId = '';\r\n vm.projectList ='';\r\n angular.forEach(vm.customerList, function(d){\r\n if(d.CompanyName == customerName){\r\n CustomId = d.CustomerId;\r\n }\r\n })\r\n SlaService.GetProjectsByCustomerId(loggedInUserId, CustomId, token).then(function(resp){\r\n if(resp && resp.data){\r\n vm.projectList = resp.data;\r\n }\r\n })\r\n }\r\n\r\n\t\tvm.CloseSettingModal = function(){\r\n\t\t\tvm.LocationCheck = false;\r\n\t\t\tvm.CustomerCheck = false;\r\n\t\t\tvm.SkillsetCheck = false;\r\n\t\t\tvm.CalltypeCheck = false;\r\n\t\t\tvm.ProjectCheck = false;\r\n\t\t\tvm.SettingModal.close();\r\n\t\t}\r\n \r\n vm.Save = function(){\r\n var CustomerId = '';\r\n var ProjectId = '';\r\n angular.forEach(vm.customerList, function(d){\r\n if(d.CompanyName == vm.Customer){\r\n CustomerId = d.CustomerId;\r\n }\r\n })\r\n \r\n angular.forEach(vm.projectList, function(e){\r\n if(e.Name == vm.Project){\r\n ProjectId = e.ProjectId;\r\n }\r\n })\r\n\r\n var dataModel = {\r\n \"SLAId\": vm.SlaID,\r\n \"SLADefinition\": vm.SlaDefinition,\r\n \"Severity\": vm.Severity,\r\n \"SLAValue\": vm.SlaValue,\r\n \"SLACalender\": vm.Timing,\r\n \"ShiftStartTime\": vm.startTime,\r\n \"ShiftEndTime\": vm.endTime,\r\n \"HolidayListApplicable\": vm.HolidaySchedule,\r\n \"SLALocation\" : vm.Location,\r\n \"Skill\" : vm.SkillSet,\r\n \"CallType\" : vm.CallType,\r\n \"Project\" : vm.Project,\r\n \"ProjectId\": ProjectId,\r\n \"Customer\": vm.Customer,\r\n \"CustomerId\": CustomerId,\r\n \"IsSLAActive\" : vm.SlaActive,\r\n \"NotWorkingDays\": vm.WorkingDays?vm.WorkingDays:'',\r\n \"HolidayList\": vm.HolidayList?vm.HolidayList:'',\r\n }\r\n\r\n if(!vm.Location && !vm.Customer && !vm.Project && !vm.SkillSet && !vm.CallType){\r\n vm.showFailure(\"Failed\",\"Please select atleast one.\")\r\n }else {\r\n SlaService.UpdateSla(loggedInUserId, dataModel, token).then(function(resp){\r\n if(resp && resp.status==202 ){\r\n vm.showSuccess(\"Success\",\"Sla settings updated\");\r\n vm.CloseSettingModal();\r\n vm.GetAllSLA();\r\n $timeout(function () {\r\n $state.reload();\r\n }, 1000);\r\n }else if(resp.status == 206){ \r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }else{\r\n vm.showFailure(\"Failed\",\"Sla setting updation failed.Server is not responding correctly. Please try again later.\")\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.changeSlaSetting = function(sla){\r\n\r\n \t SlaService.UpdateSla(loggedInUserId, sla, token).then(function(resp){\r\n if(resp && resp.status==202 ){\r\n vm.showSuccess(\"Success\",\"Sla settings updated\");\r\n // vm.CloseSettingModal();\r\n // vm.GetAllSLA();\r\n \r\n }else if(resp.status == 206){ \r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }else{\r\n vm.showFailure(\"Failed\",\"Sla setting updation failed.Server is not responding correctly. Please try again later.\")\r\n }\r\n })\r\n\r\n\r\n\r\n }\r\n\r\n\r\n }\r\n});\r\n\nvar app =angular.module('inspinia').controller('SLACrationController', function (SlaService,$scope, $state, $filter,$stateParams, $timeout,$log, $localStorage, $uibModal, $scope, toaster, $filter, $window, $timeout) {\r\n var vm = this;\r\n\r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n var slaId = $stateParams.slaId;\r\n\r\n if (!loggedInUserId) {\r\n $state.go('Login',{\r\n reload: true\r\n });\r\n } else {\r\n\r\n \tvar token = $localStorage.token;\r\n \tvm.readyList =\"\";\r\n vm.SLAId =\"\",\r\n \t vm.SlaDefinition = '';\r\n vm.Severity = '';\r\n vm.SlaValue = '';\r\n vm.slaValueInDays = 0;\r\n vm.TimeJobReceive ='';\r\n vm.Timing = '24X7';\r\n vm.startTime = '00:00';\r\n vm.endTime = '23:59';\r\n vm.Location = '';\r\n vm.Project = '';\r\n vm.ProjectId = '';\r\n vm.Customer = '';\r\n vm.CustomerId = '';\r\n vm.Skill = '';\r\n vm.CallType = '';\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n \tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n // vm.dayList = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"]\r\n vm.HolidaySchedule = false;\r\n // vm.HolidayList = {\r\n // HolidayDate: moment().format(\"YYYY-MM-DD\"),\r\n // HolidayName: ''\r\n // };\r\n\r\n vm.model = {};\r\n\t\r\n\t // This property will be bound to checkbox in table header\r\n\t \r\n vm.model = [\r\n \r\n\t { \"key\": 1, \"value\": \"Mon\" , \"isChecked\":true },\r\n\t { \"key\": 2, \"value\": \"Tue\" , \"isChecked\":true },\r\n\t { \"key\": 3, \"value\": \"Wed\" ,\"isChecked\":true },\r\n\t { \"key\": 4, \"value\": \"Thu\" ,\"isChecked\":true },\r\n\t { \"key\": 5, \"value\": \"Fri\" ,\"isChecked\":true },\r\n\t { \"key\": 6, \"value\": \"Sat\" ,\"isChecked\":true },\r\n\t { \"key\": 0, \"value\": \"Sun\", \"isChecked\":true }\r\n\t \r\n\t ];\r\n\t vm.model.allItemsSelected = true;\r\n\r\n \r\n\t // This executes when entity in table is checked\r\n\t vm.selectEntity = function () {\r\n\t // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n\t for (var i = 0; i < vm.model.length; i++) {\r\n\t if (!vm.model[i].isChecked) {\r\n\t vm.model.allItemsSelected = false;\r\n\t return;\r\n\t }\r\n\t }\r\n\t\r\n\t //If not the check the \"allItemsSelected\" checkbox\r\n\t vm.model.allItemsSelected = true;\r\n\t };\r\n\t\r\n\t // This executes when checkbox in table header is checked\r\n\t vm.selectAll = function () {\r\n\t // Loop through all the entities and set their isChecked property\r\n\t for (var i = 0; i < vm.model.length; i++) {\r\n\t vm.model[i].isChecked = vm.model.allItemsSelected;\r\n\t }\r\n\t };\r\n\t if(!slaId){\r\n vm.selectAll();\r\n\t }\r\n\t \r\n vm.deSelectAll = function () {\r\n for (var i = 0; i < vm.model.length; i++) {\r\n vm.model[i].isChecked = false;\r\n }\r\n };\r\n vm.selectTimings = function(){\r\n vm.startTime = \"00:00\";\r\n vm.endTime = \"23:59\";\r\n }\r\n \r\n \r\n \r\n\r\n \tvm.HolidayList = [];\r\n \tvar List = {\r\n \t\t\t\"IsHolidayActive\": false,\r\n \t\t\t\"HolidayDate\": moment().format(\"YYYY-MM-DD\")\r\n\t}\r\n\tvm.HolidayList.push(List);\r\n\r\n\t vm.HolidayList.allItemsSelected = false;\r\n\r\n\r\n\r\n\tvm.AddHolidayList = function(){\r\n \t\tvar ele={\r\n \"IsHolidayActive\": false,\r\n \"HolidayDate\": moment().format(\"YYYY-MM-DD\")\r\n \t\t};\r\n \t\tvm.HolidayList.push(ele);\r\n\t}\r\n\tvm.RemoveHolidayList = function (index){\r\n \t\tvm.HolidayList.splice(index, 1);\r\n\t}\r\n\r\n\r\n vm.AddSLA = function(){\r\n vm.WorkingDays =[];\r\n vm.LeaveList =[];\r\n \r\n angular.forEach(vm.model,function(data){\r\n \tif(data.isChecked==false){\r\n \t\tvm.WorkingDays.push(data.key);\r\n \t}\t\r\n })\r\n vm.HolidaySchedule = JSON.parse(vm.HolidaySchedule);\r\n\r\n for(var i=0;i -1 ){\r\n vm.selectedFreelancers.splice(vm.selectedFreelancers.indexOf(data), 1);\r\n }\r\n else{\r\n vm.selectedFreelancers.push(data);\r\n }\r\n}\r\n\r\nvm.isSelected = function(data){\r\n var bool = vm.selectedFreelancers.indexOf(data) >-1;\r\n return bool;\r\n}\r\n\r\nvm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : DefaultImage;\r\n}\r\n\r\nvm.filterUsers = function(role){\r\n if (role == 'Field Engineer') {\r\n vm.filterUserData = 'Field Engineer';\r\n }else if(role == 'Freelancer'){\r\n vm.filterUserData = 'Freelancer';\r\n }else if(role == 'Vendor Manager'){\r\n vm.filterUserData = 'Vendor Manager';\r\n } \r\n}\r\n\r\nvm.ChangeMode = function (mode) {\r\n if(mode == 'List'){\r\n vm.Mode = 'List';\r\n if(vm.selectedTicket == ''){\r\n GetSchedulingEventforToday(loggedinUser);\r\n } else {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n}\r\n\r\nvm.GetSchedulingResults = function(){\r\n\r\n vm.cities = [];\r\n vm.markers = [];\r\n if (vm.TicketStatus == 'New') {\r\n if (vm.selectedTicket=='' || vm.selectedTicket==null) {\r\n // vm.showFailure(\"Please select a job\");\r\n }else{\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function(d){\r\n if(d.isChecked){\r\n roleList.push({\"UserRole\":d.Role, \"UserType\":d.userType});\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.TicketId;\r\n\r\n // obj.jobId = vm.selectedTicket.LinkId?vm.selectedTicket.LinkId:vm.selectedTicket.TicketId;\r\n obj.JobAccountId = '';\r\n obj.FromDate = new Date().toISOString().slice(0,10);\r\n obj.ToDate = new Date().toISOString().slice(0,10);\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.RangeFromJob = parseInt(vm.range*1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList;\r\n if (vm.selectedFilter1!=undefined && vm.selectedFilter1!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter1.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter1.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate'; \r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2!=undefined && vm.selectedFilter2!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter2.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter2.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3!=undefined && vm.selectedFilter3!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n }else if (vm.selectedFilter3.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating';\r\n }else if (vm.selectedFilter3.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj,loggedinUser,token).then(function(resp){\r\n if (resp && resp.status==200 && resp.data && resp.data.users.length>0) {\r\n vm.SuggestedUserList = [];\r\n vm.BroadcastedList = [];\r\n vm.BroadcastedUserList =[];\r\n vm.SuggestedUserList = resp.data;\r\n for(var i=0;i=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter1.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter1.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate'; \r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2!=undefined && vm.selectedFilter2!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter2.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter2.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3!=undefined && vm.selectedFilter3!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n }else if (vm.selectedFilter3.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating';\r\n }else if (vm.selectedFilter3.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj,loggedinUser,token).then(function(resp){\r\n if (resp && resp.status==200 && resp.data && resp.data.users.length>0) {\r\n vm.SuggestedUserList = [];\r\n vm.SuggestedUserList =resp.data;\r\n for(var i=0;i=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter1.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter1.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate'; \r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2!=undefined && vm.selectedFilter2!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter2.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter2.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3!=undefined && vm.selectedFilter3!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n }else if (vm.selectedFilter3.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating';\r\n }else if (vm.selectedFilter3.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj,loggedinUser,token).then(function(resp){\r\n if (resp && resp.status==200 && resp.data && resp.data.users.length>0) {\r\n vm.SuggestedUserList = [];\r\n\r\n vm.SuggestedUserList =resp.data;\r\n for(var i=0;itoday){\r\n var sdate = start_date.split(\" \")[0];\r\n var stime = start_date.split(\" \")[1];\r\n var edate = end_date.split(\" \")[0];\r\n var etime = end_date.split(\" \")[1];\r\n start_date = newdate + ' ' + stime;\r\n end_date = newdate + ' ' + etime;\r\n }*/\r\n // vm.AllAssignUserList.push({\"UserId\":Id,\"TicketId\":ticketid}); \r\n\r\n //var fromDate = new Date().toISOString().slice(0,10);\r\n //var toDate = new Date().toISOString().slice(0,10);\r\n\r\n var AssignList =[];\r\n\r\n if(vm.AllAssignUserDetails.length!=0){\r\n console.log(vm.AllAssignUserDetails);\r\n AssignList = $filter('filter')(vm.AllAssignUserDetails,function(value){\r\n // return value.UserId==Id && value.start_date==start_date;\r\n //return value.UserId==Id;\r\n return value.TicketId==ticket;\r\n\r\n })\r\n console.log(AssignList);\r\n /// it is used for the \r\n if(AssignList.length!=0){\r\n var checklinkId = AssignList[0].LinkId;\r\n AssignList =[];\r\n var evs = scheduler.getEvents();\r\n var checkList = $filter('filter')(evs,function(value){\r\n return value.LinkId==checklinkId;\r\n })\r\n var d = checkList[0].id;\r\n scheduler.deleteEvent(d);\r\n }\r\n\r\n if(AssignList.length==0){\r\n var eventId = scheduler.addEvent({\r\n start_date: start_date,\r\n end_date: end_date,\r\n assignedUserid: Id,\r\n status :status,\r\n Role :Role,\r\n TicketId:ticket,\r\n Distance :Distance,\r\n LinkId: linkId,\r\n SuggestedPrice:SuggestedPrice,\r\n Price : Price,\r\n Name : Name,\r\n userType :userType\r\n });\r\n\r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkId,\"Role\":Role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":Name,\"Distance\":Distance,\"SuggestedPrice\":SuggestedPrice,\"type\":userType,\"Price\": Price});\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n }else if(vm.AllAssignUserDetails.length==0){\r\n var eventId = scheduler.addEvent({\r\n start_date: start_date,\r\n end_date: end_date,\r\n assignedUserid: Id,\r\n status :status,\r\n Role :Role,\r\n TicketId:ticket,\r\n LinkId: linkId,\r\n Distance :Distance,\r\n SuggestedPrice:SuggestedPrice,\r\n Price : Price,\r\n Name : Name,\r\n userType: userType,\r\n });\r\n\r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkId,\"Role\":Role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":Name,\"Distance\":Distance,\"SuggestedPrice\":SuggestedPrice,\"type\":userType,\"Price\": Price});\r\n\r\n }\r\n }\r\n\r\n /* vm.AssignTicketsTimeline = function () {\r\n vm.AllUserList =[];\r\n if(vm.selectedFreelancers == ''){\r\n vm.showFailure(\"Please select users.\")\r\n } else {\r\n angular.forEach(vm.selectedFreelancers,function(data){\r\n if(data.Role=='Field Engineer' && data.type=='Fixed Team') {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Field Engineer' && data.type == 'Freelancer') {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Vendor Manager' && data.type == 'Fixed Team') {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n }\r\n })\r\n\r\n ScheduleAssignService.AssignTicketssTimeline(loggedinUser,vm.AllUserList,token).then(function(resp){\r\n if (resp.status == 200 && resp.data) {\r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n // vm.TimeoutFunc(1500, vm.GetTicketsForAssignation());\r\n // vm.TimeoutFGetSchedulingEventforToday(loggedinUser));\r\n //vm.GetTicketsForAssignation();\r\n // GetSchedulingEventforToday(loggedinUser);\r\n vm.selectedFreelancers = [];\r\n vm.AssignModal.close();\r\n\r\n\r\n scheduler.clearAll();\r\n\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n // vm.AssignModal.close();\r\n GetSchedulingEventforToday(loggedinUser);\r\n vm.GetTicketsForAssignation();\r\n }, 1500);\r\n // $timeout(function() {\r\n // vm.GetTicketsForAssignation();\r\n // }, 1000);\r\n if(vm.Mode=='Map') {\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n }else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }\r\n }*/\r\n\r\n\r\n vm.AssignTicketsTimeline = function () {\r\n\r\n vm.AllUserList =[];\r\n angular.forEach(vm.AllAssignUserDetails,function(data){\r\n\r\n if(data.Role=='Field Engineer' && data.type=='Fixed Team' && data.isChecked ==true) {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Field Engineer' && data.type == 'Freelancer' && data.isChecked ==true) {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Vendor Manager' && data.type == 'Fixed Team' && data.isChecked ==true) {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Vendor Manager' && data.type == 'Freelancer' && data.isChecked ==true){\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n }\r\n })\r\n if(vm.AllUserList == ''){\r\n vm.showFailure(\"Please select users.\")\r\n } else {\r\n ScheduleAssignService.AssignTicketsTimeline(loggedinUser,vm.AllUserList,token).then(function(resp){\r\n if (resp && resp.data) {\r\n\r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n scheduler.clearAll();\r\n\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n GetSchedulingEventforToday(loggedinUser);\r\n if(vm.TicketStatus==\"New\"){\r\n vm.GetTicketsForAssignation();\r\n }else if(vm.TicketStatus==\"ReadyToAssign\"){\r\n vm.getReadyToAssign();\r\n }\r\n\r\n\r\n }, 1500);\r\n if(vm.Mode=='Map') {\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n }else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n vm.clearData = function () {\r\n vm.AllAssignUserDetails = [];\r\n vm.selectedTicket = '';\r\n vm.mapMarkers = [];\r\n } \r\n\r\n\r\n vm.OpenBroadcastModal = function(){\r\n if(vm.BroadcastedUserList == ''){\r\n vm.showFailure(\"Not found\",\"No users found\");\r\n } else {\r\n $scope.BroadcastedUser.allItemsSelected = true;\r\n $scope.selectAllBoardUser();\r\n vm.BroadcastModal = $uibModal.open({\r\n templateUrl: 'Broadcast-modal',\r\n backdrop: 'static',\r\n size:'lg',\r\n scope: $scope\r\n });\r\n }\r\n }\r\n\r\n vm.CloseBroadcastModal = function(){\r\n vm.selectedFreelancers = [];\r\n vm.BroadcastModal.close();\r\n }\r\n\r\n vm.OpenAssignModal = function(){ \r\n vm.AllAssignUserDetails =[];\r\n var evs = scheduler.getEvents();\r\n var t = vm.TicketStatus;\r\n var uniqueEventlist = new Map(); \r\n\r\n\r\n var eventslist = $filter('filter')(evs,function(value){\r\n return value.Price ==0;\r\n })\r\n\r\n angular.forEach(evs,function(data){\r\n\r\n if(!uniqueEventlist.has(data.TicketId)){\r\n uniqueEventlist.set(data.TicketId);\r\n\r\n if(data.status=='New'){\r\n var Id= data.assignedUserid;\r\n var ticketid= data.TicketId;\r\n var linkid = data.LinkId;\r\n var start_date =moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users,function(value){\r\n if(value.id==Id && value.userType!='Freelancer'){ \r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkid,\"Role\":value.role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":value.name,\"Distance\":value.UserDistance,\"SuggestedPrice\":value.BIDCounterRate,\"type\":value.userType,\"Price\": value.BIDCounterRate});\r\n\r\n }\r\n\r\n })\r\n }else if(data.status=='Broadcasted'){\r\n var Id= data.assignedUserid;\r\n var ticketid= data.TicketId;\r\n var linkid = data.LinkId;\r\n var start_date =moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users,function(value){\r\n if(value.id==Id){\r\n\r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkid,\"Role\":value.role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":value.name,\"Distance\":value.UserDistance,\"SuggestedPrice\":value.BIDCounterRate,\"type\":value.userType,\"Price\": value.BIDCounterRate});\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n\r\n })\r\n }else if(data.status=='ReadyToAssign'){\r\n\r\n var Id= data.assignedUserid;\r\n var ticketid= data.TicketId;\r\n var linkid = data.LinkId;\r\n var start_date =moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users,function(value){\r\n if(value.id==Id){\r\n\r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkid,\"Role\":value.role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":value.name,\"Distance\":value.UserDistance,\"SuggestedPrice\":value.BIDCounterRate,\"type\":value.userType,\"Price\": value.BIDCounterRate});\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n\r\n })\r\n }\r\n }\r\n })\r\n $scope.AssignSelectedUser = vm.AllAssignUserDetails;\r\n $scope.AssignSelectedUser.allItemsSelected = true;\r\n $scope.selectAll();\r\n\r\n vm.AssignModal = $uibModal.open({\r\n templateUrl: 'Assign-modal',\r\n size:'lg',\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n // }\r\n }\r\n\r\n vm.CloseAssignModal = function(){\r\n vm.selectedFreelancers = [];\r\n vm.AssignModal.close();\r\n }\r\n\r\n\r\n //Broadcast Bids/Jobs\r\n vm.BroadcastTicket = function(){\r\n\r\n\r\n var BidData = [];\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n obj.JobID = vm.selectedTicket.TicketId;\r\n obj.BIDDuration = vm.selectedTicket.BidDuration;\r\n // obj.BroadCastRate = vm.selectedTicket.BroadcastRate\r\n //obj.BroadCastGrossRate = vm.selectedTicket.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = parseInt(vm.selectedTicket.MobiforceCommission);\r\n // obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n\r\n\r\n var UserData = [];\r\n /* angular.forEach(vm.selectedFreelancers, function (d) {\r\n if (d) {*/\r\n angular.forEach($scope.BroadcastedUser, function (d) {\r\n if (d.isChecked==true) {\r\n // UserData.push(d.UserId);\r\n UserData.push({\"UserId\":d.UserId,\"SuggestedPrice\":parseInt(d.SuggestedPrice),\"Price\":parseInt(d.Price) ,\"Distance\":d.Distance});\r\n } \r\n });\r\n var checklist = $filter('filter')(UserData,function(value){\r\n return value.Price ==0;\r\n })\r\n if(checklist.length!=0){\r\n vm.showFailure(\"Failed\", \"Bid price can't be zero.\");\r\n }else{\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"JobId\": vm.selectedTicket.TicketId,\r\n \"BIDDuration\": vm.selectedTicket.BidDuration,\r\n \"MobiforceCommissionPercentage\": parseInt(vm.selectedTicket.MobiforceCommission),\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModal.close();\r\n\r\n ScheduleAssignService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n toaster.pop(vm.toaster_success);\r\n vm.selectedFreelancers = [];\r\n $timeout(function () {\r\n vm.GetTicketsForAssignation();\r\n }, 1500);\r\n\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Please select users.\");\r\n }\r\n }) \r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n }\r\n } \r\n\r\n }\r\n\r\n//Assign Tickets\r\nvm.AssignTickets = function (role, userId) {\r\n if (role == 'Field Engineer') {\r\n ScheduleAssignService.AssignTickets(userId,loggedinUser,vm.selectedTicket.TicketId,token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n vm.TimeoutFunc(1500, vm.GetTicketsForAssignation());\r\n // $timeout(function() {\r\n // vm.GetTicketsForAssignation();\r\n // }, 1000);\r\n if(vm.Mode=='Map') {\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n }else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }else if (role == 'Vendor Manager') {\r\n }\r\n}\r\n\r\n //MAP INTEGRATION\r\n vm.MapIntegration = function(){\r\n //for Initial Loading\r\n if(vm.selectedTicket==''){\r\n vm.mapMarkers = [];\r\n //Today's Scheduling Events\r\n angular.forEach(vm.SuggestedUserList.tickets, function(d){\r\n var customer = {};\r\n customer.lat = d.latitude;\r\n customer.long = d.longitude;\r\n customer.StartTime = d.start_date;\r\n customer.Address = d.city+' '+d.state;\r\n customer.ConsumerName = d.customerName;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = d.status;\r\n customer.AssignedUser = d.assignedUserName;\r\n customer.JobId = d.id;\r\n customer.StartDate = d.start_date;\r\n customer.EndDate = d.end_date;\r\n vm.mapMarkers.push(customer);\r\n })\r\n angular.forEach(vm.SuggestedUserList.users, function(d){\r\n var obj = {};\r\n obj.UserName = d.name;\r\n obj.BIDCounterRate = vm.round2Decimal(d.BIDCounterRate);\r\n obj.UserRating = d.UserRating?d.UserRating:0;\r\n obj.UserDistance = vm.round2Decimal(d.UserDistance);\r\n obj.UserLatitude = d.UserLatitude;\r\n obj.UserLongitude = d.UserLongitude;\r\n obj.UserContact = d.contactnumber?d.contactnumber:'NA';\r\n obj.UserImage = vm.getProfilePic(d.UserProfilePhoto);\r\n obj.Role = d.role;\r\n obj.userType = d.userType;\r\n vm.mapMarkers.push(obj);\r\n })\r\n //New Jobs\r\n if(vm.TicketStatus == 'New'){\r\n angular.forEach(vm.AllTicketList, function(d){\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.Latitude);\r\n var DefaultLong = parseFloat(d.Longitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.City+' '+d.State;\r\n customer.ConsumerName = d.ConsumerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'New';\r\n customer.JobId = d.TicketId;\r\n customer.StartDate = d.StartTime;\r\n customer.EndDate = d.EndTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n //Broadcasted Jobs\r\n } else if (vm.TicketStatus == 'Broadcasted'){\r\n angular.forEach(vm.BroadcastedJobList, function(d){\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.Location;\r\n customer.ConsumerName = d.CustomerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'Broadcasted';\r\n customer.JobId = d.JobId;\r\n customer.StartDate = d.StartDateTime;\r\n customer.EndDate = d.EndDateTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n } else if (vm.TicketStatus == 'ReadyToAssign'){\r\n angular.forEach(vm.ReadyToAssignList, function(d){\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.Location;\r\n customer.ConsumerName = d.CustomerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'ReadyToAssign';\r\n customer.JobId = d.JobId;\r\n customer.StartDate = d.StartDateTime;\r\n customer.EndDate = d.EndDateTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n }\r\n //on Job Selection\r\n } else {\r\n vm.mapMarkers = [];\r\n var customer = {};\r\n //Adding Customer Site on Ticket Status Basis\r\n if(vm.TicketStatus == 'New') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.Latitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.Longitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.City+' '+vm.selectedTicket.State;\r\n customer.ConsumerName = vm.selectedTicket.ConsumerName;\r\n customer.Status = vm.selectedTicket.TicketStatus;\r\n customer.JobId = vm.selectedTicket.TicketId;\r\n customer.StartDate = vm.selectedTicket.StartTime;\r\n customer.EndDate = vm.selectedTicket.EndTime;\r\n } \r\n else if (vm.TicketStatus == 'Broadcasted') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.JobLatitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.Location;\r\n customer.ConsumerName = vm.selectedTicket.CustomerName;\r\n customer.Status = vm.selectedTicket.Status;\r\n customer.JobId = vm.selectedTicket.JobId;\r\n customer.StartDate = vm.selectedTicket.StartDateTime;\r\n customer.EndDate = vm.selectedTicket.EndDateTime;\r\n } else if (vm.TicketStatus == 'ReadyToAssign') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.JobLatitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.Location;\r\n customer.ConsumerName = vm.selectedTicket.CustomerName;\r\n customer.Status = vm.selectedTicket.Status;\r\n customer.JobId = vm.selectedTicket.JobId;\r\n customer.StartDate = vm.selectedTicket.StartDateTime;\r\n customer.EndDate = vm.selectedTicket.EndDateTime;\r\n }\r\n customer.JobType = vm.selectedTicket.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n vm.mapMarkers.push(customer);\r\n\r\n //Adding Users into Marker\r\n angular.forEach(vm.SuggestedUserList.users,function(d){\r\n var obj = {};\r\n if (d && d.UserLatitude && d.UserLongitude) {\r\n obj.UserName = d.name;\r\n // obj.BIDApplyDateTime = d.BIDApplyDateTime;\r\n // obj.BIDApplyStatus = d.BIDApplyStatus;\r\n obj.BIDCounterRate = vm.round2Decimal(d.BIDCounterRate);\r\n obj.JobId = d.id;\r\n // obj.UserCurrentJobs = d.UserCurrentJobs;\r\n // obj.UserId = d.UserId;\r\n obj.UserRating = d.UserRating?d.UserRating:0;\r\n // obj.UserTotalJobs = d.UserTotalJobs;\r\n obj.UserDistance = vm.round2Decimal(d.UserDistance);\r\n obj.UserLatitude = d.UserLatitude;\r\n obj.UserLongitude = d.UserLongitude;\r\n obj.UserContact = d.contactnumber?d.contactnumber:'NA';\r\n obj.UserImage = vm.getProfilePic(d.UserProfilePhoto);\r\n // if (obj.Role=='Freelancer') {\r\n // obj.AssigButton = false; \r\n // }else{\r\n // obj.AssigButton = true;\r\n // }\r\n obj.Role = d.role;\r\n obj.userType = d.userType;\r\n vm.mapMarkers.push(obj);\r\n }\r\n })\r\n }\r\n\r\n\r\n //Setting the Map Options\r\n vm.MapOptions = {\r\n center: new google.maps.LatLng(DefaultLat, DefaultLong),\r\n // zoom: 20,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n }\r\n\r\n //Initializing the InfoWindow, Map and LatLngBounds objects.\r\n vm.InfoWindow = new google.maps.InfoWindow();\r\n vm.Latlngbounds = new google.maps.LatLngBounds();\r\n vm.Map = new google.maps.Map(document.getElementById(\"map-canvas\"), vm.MapOptions);\r\n\r\n //Looping through the Array and adding Markers.\r\n for(var i=0; iimage
\"\r\n vm.InfoWindow.setContent(\"

\"+data.ConsumerName+\"


\"+' '+data.JobId+\"
\"+' '+data.Status+\"
\"+' '+data.AssignedUser+\"
\"+' '+moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+data.Address+\"
\"); \r\n } else if(data.Status == 'Completed'){\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\"+data.ConsumerName+\"


\"+' '+data.JobId+\"
\"+' '+data.Status+\"
\"+' '+data.AssignedUser+\"
\"+' '+moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+data.Address+\"
\"); \r\n } \r\n else {\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\"+data.ConsumerName+\"


\"+' '+data.JobId+\"
\"+' '+data.Status+\"
\"+' '+moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+data.Address+\"
\");\r\n }\r\n vm.InfoWindow.open(vm.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n vm.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, data);\r\n vm.Latlngbounds.extend(marker.position);\r\n }else{\r\n ticketLatlng = new google.maps.LatLng(data.UserLatitude, data.UserLongitude);\r\n //Initializing the Marker object.\r\n if(data.Role == 'Field Engineer' && data.userType == 'Freelancer'){\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: flIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n }\r\n }); \r\n }else if (data.Role == 'Field Engineer' && data.userType == 'Fixed Team') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: ftIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n\r\n }\r\n });\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Fixed Team') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: vIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n\r\n }\r\n });\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Freelancer') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: fvIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n\r\n }\r\n });\r\n }\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, data) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n if(data.Role == 'Field Engineer' && data.userType == 'Fixed Team'){\r\n var Role = 'Field Engineer';\r\n } else if(data.Role == 'Field Engineer' && data.userType == 'Freelancer'){\r\n var Role = 'Freelancer';\r\n } else if(data.Role == 'Vendor Manager' && data.userType == 'Fixed Team') {\r\n var Role = 'Vendor Manager';\r\n } else {\r\n var Role = 'Freelancer Vendor';\r\n }\r\n var content = \"
image
\"+' '+data.UserName+\"
\"+' '+data.UserContact+\"
\"+' '+data.UserDistance+\" Kms
\"+' '+data.BIDCounterRate+\"
\"+' '+Role+\"
\"\r\n vm.InfoWindow.setContent(content);\r\n vm.InfoWindow.open(vm.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n vm.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, data); \r\n // vm.Latlngbounds.extend(marker.position);\r\n }\r\n //Plotting the Marker on the Map. \r\n }\r\n //Adjusting the Map for best display.\r\n vm.Map.setCenter(vm.Latlngbounds.getCenter());\r\n // vm.Map.fitBounds(vm.Latlngbounds);\r\n vm.Map.setZoom(13);\r\n \r\n }\r\n\r\n//Global Calls\r\nvm.GetTicketsForAssignation();\r\n}\r\n\r\nfunction GetSchedulingEventforToday(supervisiorId){\r\n //scheduler.clearAll();\r\n var accountId='';\r\n \r\n /*var fromDate = new Date().toISOString().slice(0,10);\r\n var toDate = new Date().toISOString().slice(0,10);*/\r\n /*var fromDate =\"2018-12-13\"\r\n var toDate = \"2019-01-03\"*/\r\n var date = new Date();\r\n var fromDate = new Date(date.getFullYear(), date.getMonth(), 1);\r\n fromDate = moment(fromDate).format(\"YYYY-MM-DD\");\r\n var toDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n toDate = moment(toDate).format(\"YYYY-MM-DD\");\r\n ScheduleAssignService.GetSchedulingEventToday(accountId,supervisiorId,fromDate,toDate,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n vm.SuggestedUserList = [];\r\n\r\n vm.SuggestedUserList = resp.data;\r\n\r\n var evs = scheduler.getEvents();\r\n\r\n angular.forEach(evs,function(val){\r\n if(val.status=='New'){\r\n var id =val.id;\r\n scheduler.deleteEvent(id); \r\n }\r\n })\r\n init();\r\n }\r\n })\r\n vm.MapIntegration();\r\n }\r\n GetSchedulingEventforToday(loggedinUser);\r\n\r\n\r\n\r\n\r\n\r\n $scope.selectEntity = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < $scope.AssignSelectedUser.length; i++) {\r\n if (!$scope.AssignSelectedUser[i].isChecked) {\r\n $scope.AssignSelectedUser.allItemsSelected = false;\r\n return;\r\n }\r\n }\r\n\r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.AssignSelectedUser.allItemsSelected = true;\r\n };\r\n\r\n // This executes when checkbox in table header is checked\r\n $scope.selectAll = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < $scope.AssignSelectedUser.length; i++) {\r\n $scope.AssignSelectedUser[i].isChecked = $scope.AssignSelectedUser.allItemsSelected;\r\n }\r\n };\r\n\r\n\r\n\r\n\r\n $scope.selectEntityBoardUser = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < $scope.BroadcastedUser.length; i++) {\r\n if (!$scope.BroadcastedUser[i].isChecked) {\r\n $scope.BroadcastedUser.allItemsSelected = false;\r\n return;\r\n }\r\n }\r\n\r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.BroadcastedUser.allItemsSelected = true;\r\n };\r\n\r\n // This executes when checkbox in table header is checked\r\n $scope.selectAllBoardUser = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < $scope.BroadcastedUser.length; i++) {\r\n $scope.BroadcastedUser[i].isChecked = $scope.BroadcastedUser.allItemsSelected;\r\n }\r\n };\r\n\r\n\r\n\r\n function init() {\r\n\r\n scheduler.locale.labels.timeline_tab = \"Timeline\";\r\n scheduler.locale.labels.section_custom=\"Section\";\r\n // scheduler.config.details_on_create=true;\r\n // scheduler.config.details_on_dblclick=true;\r\n scheduler.config.dblclick_create = false; \r\n\r\n scheduler.config.xml_date=\"%Y-%m-%d %H:%i\";\r\n var format = scheduler.date.date_to_str(\"%H:%i\");\r\n scheduler.config.touch_tooltip = true;\r\n scheduler.config.drag_resize= false;\r\n\r\n\r\n \r\n\r\n //it is used for the drag and drop functionality \r\n scheduler.attachEvent(\"onBeforeDrag\", function (event_id, mode, native_event_object){\r\n\r\n var ev = scheduler.getEvent(event_id);\r\n if(ev.status=='Assigned'){\r\n return false;\r\n } if(ev.status=='Completed'){\r\n return false;\r\n } \r\n else{\r\n return true; \r\n }\r\n });\r\n\r\n\r\n\r\n// this is used when we drag the event in one use to another user but the time is still same \r\nscheduler.attachEvent(\"onBeforeEventChanged\", function(ev, e, is_new, original){\r\n\r\n if (original.assignedUserid == ev.assignedUserid) \r\n return false;\r\n\r\n ev.start_date = original.start_date;\r\n ev.end_date = original.end_date;\r\n return true;\r\n});\r\n\r\n\r\n\r\n\r\n //this methd is used to stop the open the popup on double click \r\n scheduler.attachEvent(\"onDblClick\", function (id, e){ \r\n return false;\r\n });\r\n\r\n\r\n\r\n if(vm.SuggestedUserList.users.length!=0){\r\n var sections =[];\r\n var sections =vm.SuggestedUserList;\r\n if(vm.selectedTicket.Status==\"ReadyToAssign\"){\r\n var sectionlist = $filter('filter')(sections.users,function(value){\r\n // return value.BIDCounterRate!=0;\r\n return value.BIDCounterRate;\r\n })\r\n sections.users = sectionlist;\r\n }\r\n }else{\r\n var sections =[];\r\n var sections = vm.SuggestedUserList;\r\n // var sections.users =[];\r\n }\r\n\r\n /* scheduler.templates.event_bar_text = function(sd, ed, ev){\r\n return format(sd)+\" - \"+format(ed);\r\n }*/\r\n\r\n\r\n //this is used for the tooltip\r\n scheduler.templates.tooltip_text = function(start,end,event) { \r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id = event.id;\r\n }\r\n return \"Job Status : \"+event.status+\"
\"+ \r\n\r\n \"Job Id : \"+Id+\"
\"+ \r\n \"Start Time : \" + scheduler.templates.tooltip_date_format(start) + \"
\" +\r\n \"End Time : \" + scheduler.templates.tooltip_date_format(end);\r\n\r\n };\r\n\r\n// this is used for creating two event in the same slot \r\n scheduler.config.collision_limit = 5; //allows creating 2 events per time slot\r\n/*scheduler.attachEvent(\"onEventLoading\", function(ev){ \r\n return scheduler.checkCollision(ev); \r\n});\r\n*/\r\n\r\n\r\n\r\n\r\nscheduler.createTimelineView({\r\n name: \"timeline\",\r\n x_date: \"%H:%i\",\r\n x_unit:\"minute\",// the scale parameters will be calculated in minutes\r\n x_step:30, //sets the '30 minute' step, e.g. 09:00 - 09:30\r\n x_size:24, // the number of '30 minute's in the interval 09:00 - 15:00\r\n // 15 - 9 = 6 hours = 360 minutes = 360/30 = 12\r\n x_start:18, //scale starts from 09:00,i.e. 9 hours from the default start- 00:00.\r\n // 9 hours = 540 minutes = 540/30 = 18 'x_step's \r\n x_length:48,//sc\r\n y_unit: scheduler.serverList('sections',sections.users),\r\n y_property: \"assignedUserid\",\r\n render:\"bar\",\r\n });\r\n\r\nscheduler.ignore_timeline = function(date){\r\n //non-work hours\r\n if (date.getHours() < 8 || date.getHours() > 18) return true;\r\n };\r\n\r\n\r\n scheduler.templates.timeline_scale_label =function(key, label,sections){\r\n if(sections.userType=='Fixed Team' && sections.role=='Field Engineer'){\r\n var UserIdentity ='FE';\r\n\r\n } else if(sections.userType=='Freelancer' && sections.role=='Field Engineer'){\r\n var UserIdentity ='FL';\r\n\r\n } else if(sections.userType=='Fixed Team' && sections.role=='Vendor Manager'){\r\n var UserIdentity ='V';\r\n\r\n } else if(sections.userType=='Freelancer' && sections.role=='Vendor Manager'){\r\n var UserIdentity ='FV';\r\n \r\n }\r\n var ratings = sections.UserRating?sections.UserRating:0;\r\n if(sections.BIDCounterRate!=null){\r\n return \"
\\\r\n
image
\\\r\n
\\\r\n
\"+sections.name+\"\"+UserIdentity+\"
\\\r\n

\"+sections.contactnumber+\"

\\\r\n

\"+ moment(sections.LastLocationDateTime).format(\"DD/MM/YYYY HH:mm\")+\"

\\\r\n
\\\r\n \"+ratings+\"\\\r\n \\\r\n \"+round2Decimal(sections.UserDistance)+\" km \\\r\n \"+sections.UserDuration+\" Min\\\r\n
\\\r\n
\\\r\n
\";\r\n }else{\r\n return \"
\\\r\n
image
\\\r\n
\\\r\n
\"+sections.name+\"\"+UserIdentity+\"
\\\r\n

\"+sections.contactnumber+\"

\\\r\n

\"+ moment(sections.LastLocationDateTime).format(\"DD/MM/YYYY HH:mm\")+\"

\\\r\n
\\\r\n \"+ratings+\"\\\r\n \"+sections.UserDuration+\" Min\\\r\n
\\\r\n
\";\r\n }\r\n\r\n };\r\n\r\n\r\n function getPic(profilePic) {\r\n return profilePic ? ImageUrl + '/' + profilePic : DefaultImage;\r\n }\r\n\r\n function round2Decimal(no) {\r\n return Math.round(no * 100) / 100; \r\n }\r\n\r\n\r\n\r\n\r\n\r\n scheduler.attachEvent(\"onBeforeViewChange\", function(old_mode,old_date,mode,date){\r\n //any custom logic here\r\n\r\n vm.mode =mode;\r\n return true;\r\n });\r\n\r\n/*scheduler.templates.event_text=function(start, end, event){\r\n return \"
\"+Id+\"
\";\r\n}\r\n*/\r\n\r\n //timeline event bar text is used for timeline mode\r\n scheduler.templates.event_bar_text = function (start, end, event) {\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id =event.LinkId?event.LinkId:event.id;\r\n }\r\n return \"
\"+Id+\"
\";\r\n};\r\n\r\n// it is used when we dislay in month mode\r\nscheduler.templates.event_bar_date = function(start,end,event){\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id = event.LinkId?event.LinkId:event.id;\r\n }\r\n return \"\"+Id+\" \";\r\n};\r\n\r\n // it is used for the week basis \r\n scheduler.templates.event_header = function(start,end,event){\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id =event.LinkId?event.LinkId:event.id;\r\n }\r\n return \"
\"+Id+\"
\";\r\n\r\n};\r\n\r\n\r\n\r\n//this is used for the status \r\nscheduler.templates.event_class = function (start, end, event) {\r\n if(vm.mode=='timeline'){\r\n scheduler.config.readonly = false;\r\n if (event.status == \"Assigned\") {\r\n return \"Assigned\";\r\n }\r\n if (event.status == \"New\") {\r\n return \"New\";\r\n }\r\n if (event.status == \"Broadcasted\") {\r\n return \"Broadcasted\";\r\n } \r\n if (event.status == \"Completed\") {\r\n return \"Completed\";\r\n }if(event.status ==\"ReadyToAssign\"){\r\n return \"ReadyToAssign\";\r\n }\r\n return \"dhx_rent_payed\";\r\n\r\n}\r\nelse if(vm.mode=='week' || vm.mode=='month' || vm.mode=='day'){\r\n scheduler.config.readonly = true;\r\n if (event.status == \"Assigned\") {\r\n return \"Assigned1\";\r\n }\r\n if (event.status == \"New\") {\r\n return \"New1\";\r\n }\r\n if (event.status == \"Broadcasted\") {\r\n return \"Broadcasted1\";\r\n } \r\n if (event.status == \"Completed\") {\r\n return \"Completed1\";\r\n }if(event.status ==\"ReadyToAssign\"){\r\n return \"ReadyToAssign1\";\r\n }\r\n return \"dhx_rent_payed1\";\r\n}\r\n\r\n};\r\n\r\nscheduler.init('scheduler_here',new Date(),\"timeline\");\r\n\r\nif(sections.tickets.length!=0){\r\n\r\n var sectionlist = $filter('filter')(sections.tickets,function(value){\r\n // return value.UserId==Id && value.start_date==start_date;\r\n //return value.UserId==Id;\r\n return value.status=='Completed' || value.status=='Assigned';\r\n\r\n })\r\n sections.tickets = sectionlist;\r\n scheduler.parse(sections.tickets,\"json\");\r\n}\r\n\r\n //scheduler.parse(sections.tickets,\"json\");\r\n\r\n }\r\n\r\n//init();\r\nvm.GetAllStates = function () {\r\n //U310000000001\r\n VendorCreationService.getAllState(loggedinUser).then(function (resp) {\r\n if (resp.data) {\r\n if (!angular.equals(vm.stateList, resp.data.values)) {\r\n vm.stateList = resp.data.values;\r\n }\r\n }\r\n })\r\n}\r\nvm.GetAllStates();\r\n})\r\n\nangular.module('inspinia').service('RosterShiftService',function($http,ApiURL,SchedulingAPI,StaffSchedulingAPI,FreelancerURL,PublicApiURL){\r\n\r\n this.GetSchedulingEvaluationResult = function(data,reqUserId,token){\r\n \tvar url = SchedulingAPI + 'x='+reqUserId;\r\n \treturn $http.post(url,data,{\r\n \t\theaders:{'Content-Type':'application/json','Token':token}\r\n \t})\r\n\r\n }\r\n\r\n this.BroadCastJobsforUser = function(loggedinUser,data, token){\r\n var url = FreelancerURL + '/api/BID/createBidFromAssistedScheduling?reqUserId=' + loggedinUser;\r\n return $http.post(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n // this.getCountry = function (loggedInUserId, token){\r\n // var url = PublicApiURL + '/api/Address/GetCountry?userId=' + loggedInUserId;\r\n // return $http.get(url, {\r\n // headers:{'Token':token}\r\n // });\r\n // }\r\n\r\n this.getStates = function (loggedInUserId, token, country) {\r\n var url = PublicApiURL + '/api/Address/GetStates?userId=' + loggedInUserId + '&country=' + country;\r\n return $http.get(url,{\r\n headers:{'Token':token,}\r\n });\r\n }\r\n\r\n this.getCities = function (loggedInUserId, token, state) {\r\n var url = PublicApiURL + '/api/Address/GetCities?userId=' + loggedInUserId + '&state=' + state;\r\n return $http.get(url, {\r\n headers:{'Token':token}\r\n });\r\n }\r\n\r\n this.GetDataForShiftView = function(data,loggedInUserId,token){\r\n var url = StaffSchedulingAPI + '/api/StaffShift/GetDataForShiftView';\r\n return $http.put(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n\r\n }\r\n\r\n this.AutoAssignTickets = function(reqUserId,ticketId, token){\r\n var url = SchedulingAPI + '/api/AutoJobAssign/AutoScheduleAllJobsDemo?reqUserId='+reqUserId +'&TicketIds='+ticketId;\r\n return $http.put(url,{}, {\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': reqUserId\r\n }\r\n }) \r\n }\r\n\r\n\r\n this.AutoAssignTicketsForToday = function(reqUserId,selectedDate, transMode, itemNames,itemValues,token){\r\n var url = SchedulingAPI + '/api/AutoJobAssign/AutoScheduleAllJobsDemo?reqUserId='+reqUserId+'&scheduleDate='+selectedDate + '&transMode='+transMode +\r\n \"&itemNames=\" + itemNames + \"&itemValues=\" + itemValues;\r\n return $http.put(url,{}, {\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': reqUserId\r\n }\r\n }) \r\n }\r\n\r\n\r\n this.AssignTickets = function(userId,reqUserId,ticketId, token){\r\n var TicketId = ticketId.split(',');\r\n var url = ApiURL + '/api/Ticket/' + userId + '/' + reqUserId + '/AssignTicket'\r\n return $http.put(url,TicketId, {\r\n headers:{'Content-Type':'application/json','Token':token\r\n }\r\n }) \r\n }\r\n \r\n\r\n this.AssignTicketsTimeline = function(reqUserId,list, token){\r\n var url = ApiURL + '/api/Ticket/' + reqUserId + '/AssignTicketForAssistedScheduling'\r\n return $http.put(url,list,{\r\n headers:{'Content-Type':'application/json','Token':token}\r\n })\r\n }\r\n\r\n this.GetTicketsByStatus = function (loggedinUser, itemNames,itemValues, token) {\r\n var url = FreelancerURL + '/api/BID/'+loggedinUser+'/' + itemNames + '/'+ itemValues + '/getjobsbyfilter';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetTicketsByStatusDemo = function (loggedinUser, itemNames,itemValues, fromDate, toDate, token) {\r\n var url = FreelancerURL + '/api/BID/'+loggedinUser+'/' + itemNames + '/'+ itemValues + '/' + fromDate + '/' + toDate + '/getjobsbyfilterDemo';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetEligibleUserForShiftSwap = function (shiftId, loggedinUser, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/GetEligibleUserForShiftSwap?ShiftId=' + shiftId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.ShiftSwapToUser = function (shiftId, userId, loggedinUser, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/ShiftSwapToUser?ShiftId=' + shiftId + '&UserId=' + userId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n})\nvar app = angular.module('inspinia').controller('RosterShiftController', function (RosterShiftService, DTColumnBuilder,shiftManagementService, jobBidCreationService, UIURL, FreelancerFixedService,\r\n $log, $state, $localStorage, $stateParams, CentralHelpdeskConfigService, EmployeeShiftMapService,CentralHDTicketsViewService, $uibModal, AssignationRuleService, SchedulingRuleService, VendorCreationService, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile,\r\n uiCalendarConfig, ImageUrl, $filter) {\r\n\r\n\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserSkill = $localStorage.loggedInUser_SkillSet;\r\n var loggedinUserRegion = $localStorage.loggedInUser_Region;\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var token = $localStorage.token;\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.TimeoutFunc = $scope.$parent.$parent.main.TimeoutFunc;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.loggedinAs = $localStorage.loggedinAs;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.MobiforceCommission = vm.getAccountConfigSetting('MobiforceCommissionPercentage');\r\n vm.VendorAssignation = vm.getAccountConfigSetting('VendorAssignation');\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.FreelancerAccess = vm.getAccountConfigSetting('FreelancerAccess');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.AllTicketList = '';\r\n vm.filterCriteria1 = [\"Price\", \"Distance\", \"Ratings\"];\r\n vm.filterCriteria2 = [\"Price\", \"Distance\", \"Ratings\"];\r\n vm.filterCriteria3 = [\"Price\", \"Distance\", \"Ratings\"];\r\n vm.selectedFilter1 = 'Distance';\r\n vm.selectedFilter2 = 'Ratings';\r\n vm.selectedFilter3 = 'Price';\r\n vm.disablefilters = true;\r\n vm.range = '10';\r\n vm.TerritoryState = '';\r\n vm.NewJob = true;\r\n vm.isCurrentLocation = false;\r\n vm.selectedRow = null; // initialize our variable to null\r\n vm.selectedFreelancers = [];\r\n vm.SuggestedUserList = [];\r\n vm.AssignTicektData = [];\r\n vm.AllAssignUserDetails = [];\r\n $scope.AssignSelectedUser = {};\r\n $scope.AssignSelectedUser.allItemsSelected = false;\r\n vm.AllAssignUserList = [];\r\n vm.BroadcastedUserList = [];\r\n vm.ReadyToAssignList = [];\r\n $scope.BroadcastedUser = {};\r\n $scope.BroadcastedUser.allItemsSelected = false;\r\n vm.TransMode = 'driving';\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.IsBroadcastPermision = true;\r\n vm.IsAssignPermision = true;\r\n vm.Mode = 'List';\r\n vm.TicketStatus = 'New';\r\n vm.cities = [];\r\n vm.markers = [];\r\n var itemNames = '';\r\n var itemValues = '';\r\n vm.otherfilter = '';\r\n vm.DateField = 'CreatedOn';\r\n var NewJobIcon = UIURL + '/assets/images/patterns/JOb_icon.png';\r\n var BroadcastedJobIcon = UIURL + '/assets/images/patterns/JOb_icon.png';\r\n var AssignedJobIcon = UIURL + '/assets/images/patterns/JOb_icon.png';\r\n var CompletedJobIcon = UIURL + '/assets/images/patterns/JOb_icon.png';\r\n var flIcon = UIURL + '/assets/images/patterns/mascot_icon2.png';\r\n var ftIcon = UIURL + '/assets/images/patterns/mascot_icon2.png';\r\n var fvIcon = UIURL + '/assets/images/patterns/mascot_icon2.png';\r\n var vIcon = UIURL + '/assets/images/patterns/mascot_icon2.png';\r\n var DefaultImage = UIURL + '/assets/images/patterns/Photo1.png';\r\n vm.InfoWindow;\r\n vm.selectedTicket = '';\r\n vm.BroadcastedJobList = '';\r\n var startDate = moment().startOf('isoWeek').isoWeekday(1).format(\"YYYY-MM-DD\");\r\n var endDate = moment().endOf('isoWeek').isoWeekday(7).format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: startDate, endDate: endDate };\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last week': [moment().startOf('week').isoWeekday(1), moment().endOf('week').isoWeekday(0)],\r\n 'This week': [moment().startOf('isoWeek').isoWeekday(1), moment().endOf('isoWeek').isoWeekday(7)],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n\r\n\r\n\r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n GetSchedulingEventforToday(loggedinUser);\r\n\r\n };\r\n\r\n $scope.editingData = {};\r\n $scope.editingFPrice = {};\r\n $scope.modify = function (list) {\r\n $scope.editingData[list.UserId] = true;\r\n };\r\n\r\n $scope.modifyFPrice = function (list) {\r\n $scope.editingFPrice[list.UserId] = true;\r\n };\r\n\r\n\r\n $scope.update = function (list) {\r\n if (list.Price == 0) {\r\n vm.showFailure(\"Failed\", \"Bid price can't be zero.\");\r\n } else {\r\n list.TPrice = (Number)(list.Price) + ((list.Price * vm.GSTPercentange) / 100);\r\n list.FPrice = (list.Price) - ((list.Price * vm.MobiforceCommission) / 100);\r\n $scope.editingData[list.UserId] = false;\r\n }\r\n\r\n };\r\n\r\n $scope.updateFPrice = function (list) {\r\n if (list.FPrice == 0) {\r\n vm.showFailure(\"Failed\", \"price can't be zero.\");\r\n } else {\r\n list.Price = (list.FPrice * 100) / (100 - vm.MobiforceCommission);\r\n list.TPrice = (Number)(list.Price) + ((list.Price * vm.GSTPercentange) / 100);\r\n\r\n $scope.editingFPrice[list.UserId] = false;\r\n }\r\n\r\n };\r\n\r\n vm.Technicianviewtypes = [\r\n {\r\n name: 'All',\r\n value: 'All'\r\n },\r\n {\r\n name: 'New',\r\n value: 'New'\r\n },\r\n {\r\n name: 'ReadyToAssign',\r\n value: 'ReadyToAssign'\r\n },\r\n\r\n {\r\n name: 'Broadcasted',\r\n value: 'Broadcasted'\r\n },\r\n\r\n {\r\n name: 'Approved',\r\n value: 'Approved'\r\n },\r\n {\r\n name: 'Assigned',\r\n value: 'Assigned'\r\n },\r\n {\r\n name: 'Cancelled',\r\n value: 'Cancelled'\r\n },\r\n {\r\n name: 'OnSite',\r\n value: 'OnSite'\r\n },\r\n {\r\n name: 'Lunch',\r\n value: 'Lunch'\r\n },\r\n {\r\n name: 'InTransite',\r\n value: 'InTransite'\r\n },\r\n {\r\n name: 'Completed',\r\n value: 'Completed'\r\n },\r\n {\r\n name: 'Rejected',\r\n value: 'Rejected'\r\n },\r\n {\r\n name: 'On Hold',\r\n value: 'Hold'\r\n },\r\n ];\r\n vm.technicianuserviewtype = vm.Technicianviewtypes[0].value;\r\n vm.userviewlayout = vm.technicianuserviewtype;\r\n vm.globalsearch = '';\r\n vm.userviewtype = function (userview) {\r\n vm.globalsearch = userview;\r\n vm.getAllTicketList();\r\n }\r\n\r\n vm.Filter = function () {\r\n if (vm.otherfilter == 'New' || vm.otherfilter == \"ReadyToAssign\") {\r\n itemNames = 'Ticket Status';\r\n itemValues = vm.otherfilter;\r\n }\r\n else {\r\n itemNames = 'Ticket Status';\r\n itemValues = vm.technicianuserviewtype;\r\n }\r\n if (vm.VerticalName != 'IMS' || vm.VerticalName != 'Spectro Labs') {\r\n if (loggedinUserSkill == \"VSAT\") {\r\n itemNames += \"Template\";\r\n itemValues += \"VSAT CCR\";\r\n } else if (loggedinUserSkill == \"LeaseLine\") {\r\n itemNames += \"Template\";\r\n itemValues += \"LeaseLine CCR\";\r\n }\r\n }\r\n\r\n if (vm.VerticalName == 'IMS') {\r\n if (loggedinUserSkill == \"VSAT\") {\r\n itemNames += \",Template\";\r\n itemValues += \",VSAT CCR\";\r\n } else if (loggedinUserSkill == \"LeaseLine\") {\r\n itemNames += \",Template\";\r\n itemValues += \",LeaseLine CCR\";\r\n }\r\n }\r\n\r\n if (vm.TerritoryState != '') {\r\n itemNames += \",State\";\r\n itemValues = itemValues + \",\" + vm.TerritoryState;\r\n }\r\n }\r\n vm.getAllTicketList = function () {\r\n var fromDate = startDate;\r\n var toDate = endDate;\r\n vm.Filter();\r\n RosterShiftService.GetTicketsByStatusDemo(loggedinUser, itemNames, itemValues, fromDate, toDate, token).then(function (resp) {\r\n if (resp && resp.status == 200 && resp.data) {\r\n //var ticketData = [];\r\n vm.AllTicketLists = resp.data;\r\n // ticketData = vm.AllTicketLists; \r\n vm.disablefilters = false;\r\n\r\n // GetSchedulingEventfordates(loggedinUser, fromDate, toDate);\r\n scheduler.clearAll();\r\n }\r\n })\r\n }\r\n\r\n vm.getAllTicketList();\r\n\r\n vm.round2Decimal = function (no) {\r\n return Math.round(no * 100) / 100;\r\n }\r\n\r\n\r\n $scope.class1 = false;\r\n vm.addRemoveRedClass = function () {\r\n if ($scope.class1) {\r\n $scope.class1 = false;\r\n } else {\r\n $scope.class1 = true;\r\n }\r\n }\r\n\r\n\r\n\r\n vm.model = {};\r\n vm.model.allItemsSelected = false;\r\n\r\n // if(vm.FreelancerAccess){\r\n // vm.model = [{ \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\":\"Field Engineer\"},\r\n // { \"key\": 2, \"Role\": \"Field Engineer\", \"userType\":\"Freelancer\", \"Value\":\"Freelancer\"},\r\n // { \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Fixed Team\", \"Value\":\"Vendor\"},\r\n // { \"key\": 4, \"Role\": \"Vendor Manager\", \"userType\":\"Freelancer\", \"Value\":\"Freelancer Vendor\"}\r\n // ];\r\n // }else{\r\n // vm.model = [\r\n // { \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\":\"Field Engineer\"},\r\n // { \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Fixed Team\", \"Value\":\"Vendor\"}\r\n // ];\r\n // }\r\n\r\n if (vm.FreelancerAccess) {\r\n vm.model = [{ \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\": \"Fixed Team\" },\r\n { \"key\": 2, \"Role\": \"Field Engineer\", \"userType\": \"Freelancer\", \"Value\": \"Freelancers/Contractors\" },\r\n { \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Freelancer\", \"Value\": \"Third party vendors\" }\r\n ];\r\n } else {\r\n vm.model = [{ \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\": \"Fixed Team\" },\r\n { \"key\": 2, \"Role\": \"Field Engineer\", \"userType\": \"Freelancer\", \"Value\": \"Freelancers/Contractors\" },\r\n { \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Freelancer\", \"Value\": \"Third party vendors\" }\r\n ];\r\n }\r\n\r\n vm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n\r\n vm.getSkills = function () {\r\n CentralHDTicketsViewService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills;\r\n }, vm.showFailure);\r\n }\r\n vm.getSkills();\r\n\r\n vm.statusList = [];\r\n vm.getJobAllStatus = function () {\r\n CentralHDTicketsViewService.getJobAllStatus(loggedinUser, token, function (data) {\r\n //vm.statusList = data;\r\n angular.forEach(data, function (status) {\r\n if (status.StatusName == 'On Hold') {\r\n status.StatusName = 'Hold';\r\n }\r\n vm.statusList.push(status.StatusName);\r\n })\r\n }, vm.showFailure);\r\n }\r\n vm.getJobAllStatus();\r\n\r\n vm.GetAllStates = function () {\r\n CentralHDTicketsViewService.getStates(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.states = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n vm.GetAllStates();\r\n\r\n vm.getAllAccounts = function () {\r\n CentralHelpdeskConfigService.getAllAccounts(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.HDAllAccounts = resp.data;\r\n\r\n }\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.getAllAccounts();\r\n\r\n vm.getAllCustomer = function () {\r\n CentralHDTicketsViewService.getAllCustomers(loggedinUser, token).then(function (resp) {\r\n vm.CustomerList = resp.data;\r\n })\r\n }\r\n\r\n vm.GetProjectByCustomer = function () {\r\n vm.ProjectListByCustomer = [];\r\n angular.forEach(vm.CustomerList, function (customer) {\r\n if (customer.CompanyName == vm.SearchByCName) {\r\n vm.ProjectListByCustomer = customer.Projects;\r\n }\r\n })\r\n }\r\n\r\n vm.getAllCustomer();\r\n\r\n vm.GetCustomerByAccount = function () {\r\n var SelectedAccountId = '';\r\n angular.forEach(vm.HDAllAccounts, function (account) {\r\n if (account.AccountName == vm.SearchByAccountName) {\r\n SelectedAccountId = account.AccountId;\r\n }\r\n })\r\n CentralHDTicketsViewService.GetCustomersByAccount(loggedinUser, SelectedAccountId, token).then(function (resp) {\r\n vm.CustomerList = resp.data;\r\n })\r\n }\r\n $scope.isOpen = false;\r\n $scope.isOpen1 = false;\r\n $scope.isCollapsed = true;\r\n $scope.isCollapsed0 = true;\r\n $scope.isCollapsed1 = true;\r\n $scope.isCollapsed2 = true;\r\n $scope.isCollapsed3 = true;\r\n $scope.isCollapsed4 = true;\r\n $scope.isCollapsed5 = true;\r\n $scope.isCollapsed6 = true;\r\n $scope.isCollapsed7 = true;\r\n $scope.isCollapsed8 = true;\r\n $scope.isCollapsed9 = true;\r\n $scope.isCollapsed10 = true;\r\n $scope.isCollapsed11 = true;\r\n $scope.isCollapsed12 = true;\r\n $scope.isCollapsed13 = true;\r\n $scope.isCollapsed14 = true;\r\n $scope.isCollapsed15 = true;\r\n $scope.isCollapsed16 = true;\r\n $scope.isCollapsed17 = true;\r\n $scope.isCollapsed18 = true;\r\n $scope.isCollapsed19 = true;\r\n $scope.isCollapsed20 = true;\r\n $scope.isCollapsed21 = true;\r\n $scope.isCollapsed22 = true;\r\n $scope.isCollapsed23 = true;\r\n $scope.isCollapsed24 = true;\r\n $scope.isCollapsed25 = true;\r\n $scope.isCollapsed26 = true;\r\n $scope.isCollapsed27 = true;\r\n $scope.isCollapsed28 = true;\r\n $scope.isCollapsed29 = true;\r\n $scope.isCollapsed30 = true;\r\n $scope.isCollapsed31 = true;\r\n $scope.isCollapsed32 = true;\r\n $scope.isCollapsed33 = true;\r\n $scope.isCollapsed34 = true;\r\n $scope.isCollapsed35 = true;\r\n $scope.isCollapsed36 = true;\r\n $scope.isCollapsed37 = true;\r\n $scope.isCollapsed38 = true;\r\n $scope.isCollapsed39 = true;\r\n $scope.isCollapsed40 = true;\r\n $scope.isCollapsed41 = true;\r\n $scope.isCollapsed42 = true;\r\n $scope.isCollapsed43 = true;\r\n\r\n $scope.openAnalysisReport = function (analysisDetails) {\r\n $localStorage.UploadId = analysisDetails.UploadId;\r\n $scope.showAnalysisReport = !$scope.showAnalysisReport;\r\n angular.element('#filter-visible-area').removeClass(\"filter-slider-visible\");\r\n }\r\n $scope.backScreen = function () {\r\n $scope.showAnalysisReport = false;\r\n angular.element('#filter-visible-area').addClass(\"filter-slider-visible\");\r\n }\r\n // $scope.class1 = false;\r\n // vm.addRemoveRedClass = function (UploadId) {\r\n // $localStorage.UploadId = UploadId;\r\n // if ($scope.class1) {\r\n // $scope.class1 = false;\r\n // } else {\r\n // $scope.class1 = true;\r\n // }\r\n // }\r\n\r\n vm.RedirectToConfiguration = function () {\r\n $state.go('index.SchedulerRuleConfig', { reload: true });\r\n }\r\n\r\n vm.selectEntityFilter = function () {\r\n var newList = [];\r\n var usersList = angular.copy(vm.SuggestedUserList.users);\r\n vm.TestCase = false;\r\n for (var i = 0; i < vm.model.length; i++) {\r\n if (!vm.model[i].isChecked) {\r\n vm.TestCase = true;\r\n vm.model.allItemsSelected = false;\r\n var Role = vm.model[i].Role;\r\n var userType = vm.model[i].userType;\r\n var allIndex = [];\r\n /*usersList.some(function(obj, x) {\r\n if(obj.role == Role && obj.userType == userType){\r\n delete usersList[x];\r\n } else {\r\n false;\r\n }\r\n });*/\r\n newList = [];\r\n /*angular.forEach(usersList, function(d){\r\n if(d){\r\n newList.push(d);\r\n }\r\n })*/\r\n }\r\n }\r\n if (newList == '' && vm.TestCase == false) {\r\n newList = vm.SuggestedUserList.users;\r\n // scheduler.updateCollection(\"sections\", newList);\r\n vm.model.allItemsSelected = true;\r\n } else {\r\n // scheduler.updateCollection(\"sections\", newList);\r\n }\r\n };\r\n\r\n vm.selectAllFilter = function () {\r\n for (var i = 0; i < vm.model.length; i++) {\r\n vm.model[i].isChecked = vm.model.allItemsSelected;\r\n }\r\n /*if(vm.model.allItemsSelected==true){\r\n scheduler.updateCollection(\"sections\", vm.SuggestedUserList.users);\r\n }else{\r\n var freelist =[];\r\n scheduler.updateCollection(\"sections\",freelist);\r\n }*/\r\n };\r\n vm.model.allItemsSelected = true;\r\n vm.selectAllFilter();\r\n\r\n\r\n vm.FilterData = function (item, level) {\r\n if (level == 1) {\r\n vm.filterCriteria2 = [];\r\n angular.forEach(vm.filterCriteria1, function (d) {\r\n if (d != item) {\r\n vm.filterCriteria2.push(d);\r\n }\r\n })\r\n } else if (level == 2) {\r\n vm.filterCriteria3 = [];\r\n angular.forEach(vm.filterCriteria1, function (d) {\r\n if (d != item) {\r\n if (d != vm.selectedFilter1) {\r\n vm.filterCriteria3.push(d);\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.GetMobCommission = function (data) {\r\n vm.MobiforceCommission = data;\r\n }\r\n\r\n vm.GetServiceTax = function (data) {\r\n vm.GSTPercentange = data;\r\n }\r\n\r\n\r\n jobBidCreationService.GetMobCommission(loggedinUser, token, vm.GetMobCommission);\r\n jobBidCreationService.GetServiceTax(loggedinUser, token, vm.GetServiceTax);\r\n\r\n\r\n\r\n\r\n vm.setClickedRowNew = function (index, data) {\r\n\r\n //need to fix assisted scheduling. returning for now\r\n return true;\r\n\r\n\r\n //function that sets the value of selectedRow to current index\r\n vm.selectedRow = index;\r\n if (vm.IsMaterialDelivered) {\r\n if (data.MetrialDeliverStatus != 'Delivered') {\r\n vm.IsBroadcastPermision = false;\r\n vm.IsAssignPermision = false;\r\n }\r\n }\r\n vm.selectedTicket = data;\r\n vm.disablefilters = false;\r\n if (vm.range != '') {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n\r\n\r\n\r\n vm.setClickedRowBroad = function (index, data) { //function that sets the value of selectedRow to current index\r\n vm.selectedRow = index;\r\n vm.selectedTicket = data;\r\n vm.disablefilters = false;\r\n if (vm.range != '') {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n\r\n vm.setSelectedFreelancers = function (index, data) {\r\n if (vm.selectedFreelancers.indexOf(data) > -1) {\r\n vm.selectedFreelancers.splice(vm.selectedFreelancers.indexOf(data), 1);\r\n }\r\n else {\r\n vm.selectedFreelancers.push(data);\r\n }\r\n }\r\n\r\n vm.isSelected = function (data) {\r\n var bool = vm.selectedFreelancers.indexOf(data) > -1;\r\n return bool;\r\n }\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : DefaultImage;\r\n }\r\n\r\n vm.filterUsers = function (role) {\r\n if (role == 'Field Engineer') {\r\n vm.filterUserData = 'Field Engineer';\r\n } else if (role == 'Freelancer') {\r\n vm.filterUserData = 'Freelancer';\r\n } else if (role == 'Vendor Manager') {\r\n vm.filterUserData = 'Vendor Manager';\r\n }\r\n }\r\n\r\n vm.ChangeMode = function (mode) {\r\n if (mode == 'List') {\r\n vm.Mode = 'List';\r\n if (vm.selectedTicket == '') {\r\n console.log('ChangeMode');\r\n GetSchedulingEventforToday(loggedinUser);\r\n } else {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n vm.GetSchedulingResults = function () {\r\n\r\n vm.cities = [];\r\n vm.markers = [];\r\n if (vm.TicketStatus == 'New') {\r\n if (vm.selectedTicket == '' || vm.selectedTicket == null) {\r\n // vm.showFailure(\"Please select a job\");\r\n } else {\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function (d) {\r\n if (d.isChecked) {\r\n roleList.push({ \"UserRole\": d.Role, \"UserType\": d.userType });\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.JobId;\r\n\r\n // obj.jobId = vm.selectedTicket.LinkId?vm.selectedTicket.LinkId:vm.selectedTicket.TicketId;\r\n obj.JobAccountId = '';\r\n obj.FromDate = new Date().toISOString().slice(0, 10);\r\n obj.ToDate = new Date().toISOString().slice(0, 10);\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.RangeFromJob = parseInt(vm.range * 1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList;\r\n if (vm.selectedFilter1 != undefined && vm.selectedFilter1 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter1.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter1.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2 != undefined && vm.selectedFilter2 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter2.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter2.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3 != undefined && vm.selectedFilter3 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter3.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter3.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n RosterShiftService.GetSchedulingEvaluationResult(obj, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200 && resp.data && resp.data.users.length > 0) {\r\n vm.SuggestedUserList = [];\r\n vm.BroadcastedList = [];\r\n vm.BroadcastedUserList = [];\r\n vm.SuggestedUserList = resp.data;\r\n for (var i = 0; i < vm.SuggestedUserList.users.length; i++) {\r\n if (vm.SuggestedUserList.users[i].contactnumber) {\r\n vm.SuggestedUserList.users[i].contactnumber = vm.SuggestedUserList.users[i].contactnumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n\r\n }\r\n\r\n vm.UserList = resp.data.users;\r\n angular.forEach(vm.UserList, function (d) {\r\n if (d.userType == 'Freelancer') {\r\n vm.BroadcastedList.push(d);\r\n var TPrice = (Number)(d.Price) + ((d.Price * vm.GSTPercentange) / 100);\r\n var FPrice = (d.Price) - ((d.Price * vm.MobiforceCommission) / 100);\r\n vm.BroadcastedUserList.push({ \"UserId\": d.id, \"Role\": d.role, \"Name\": d.name, \"ContactNumber\": d.contactnumber, \"Distance\": d.UserDistance, \"SuggestedPrice\": d.BIDCounterRate, \"type\": d.userType, \"Price\": d.Price, \"TPrice\": TPrice, \"FPrice\": FPrice });\r\n\r\n }\r\n })\r\n $scope.BroadcastedUser = vm.BroadcastedUserList;\r\n\r\n vm.GetResult(resp.data.users, vm.selectedTicket.TicketId, vm.selectedTicket.LinkId, vm.selectedTicket.StartTime, vm.selectedTicket.TaskEndTime, vm.selectedTicket.TicketStatus);\r\n\r\n\r\n init();\r\n vm.selectEntityFilter();\r\n } else {\r\n vm.toaster_fail.title = \"Not Found\";\r\n vm.toaster_fail.body = \"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n console.log('GetSchedulingResults');\r\n GetSchedulingEventforToday(loggedinUser);\r\n }\r\n })\r\n }\r\n } else if (vm.TicketStatus == 'Broadcasted') {\r\n if (vm.selectedTicket == '' || vm.selectedTicket == null) {\r\n // vm.showFailure(\"Please select a job\");\r\n } else {\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function (d) {\r\n if (d.isChecked) {\r\n roleList.push({ \"UserRole\": d.Role, \"UserType\": d.userType });\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.JobId;\r\n // obj.jobId = vm.selectedTicket.LinkId?vm.selectedTicket.LinkId:vm.selectedTicket.TicketId;\r\n obj.JobAccountId = '';\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.FromDate = new Date().toISOString().slice(0, 10);\r\n obj.ToDate = new Date().toISOString().slice(0, 10);\r\n obj.RangeFromJob = parseInt(vm.range * 1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList;\r\n if (vm.selectedFilter1 != undefined && vm.selectedFilter1 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter1.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter1.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2 != undefined && vm.selectedFilter2 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter2.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter2.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3 != undefined && vm.selectedFilter3 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter3.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter3.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n RosterShiftService.GetSchedulingEvaluationResult(obj, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200 && resp.data && resp.data.users.length > 0) {\r\n vm.SuggestedUserList = [];\r\n vm.SuggestedUserList = resp.data;\r\n for (var i = 0; i < vm.SuggestedUserList.users.length; i++) {\r\n if (vm.SuggestedUserList.users[i].contactnumber) {\r\n vm.SuggestedUserList.users[i].contactnumber = vm.SuggestedUserList.users[i].contactnumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n }\r\n vm.userList = resp.data;\r\n vm.GetResult(resp.data.users, vm.selectedTicket.JobId, vm.selectedTicket.LinkId, vm.selectedTicket.StartDateTime, vm.selectedTicket.TaskEndTime, vm.selectedTicket.Status);\r\n\r\n init();\r\n vm.selectEntityFilter();\r\n // vm.MapIntegration()\r\n // vm.MapData();\r\n } else {\r\n vm.toaster_fail.title = \"Not Found\";\r\n vm.toaster_fail.body = \"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n console.log('GetSchedulingResults-2');\r\n GetSchedulingEventforToday(loggedinUser);\r\n }\r\n })\r\n }\r\n }\r\n if (vm.TicketStatus == 'ReadyToAssign') {\r\n if (vm.selectedTicket == '' || vm.selectedTicket == null) {\r\n // vm.showFailure(\"Please select a job\");\r\n } else {\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function (d) {\r\n if (d.isChecked) {\r\n roleList.push({ \"UserRole\": d.Role, \"UserType\": d.userType });\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.JobId;\r\n obj.JobAccountId = '';\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.FromDate = new Date().toISOString().slice(0, 10);\r\n obj.ToDate = new Date().toISOString().slice(0, 10);\r\n obj.RangeFromJob = parseInt(vm.range * 1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList;\r\n if (vm.selectedFilter1 != undefined && vm.selectedFilter1 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter1.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter1.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2 != undefined && vm.selectedFilter2 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter2.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter2.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3 != undefined && vm.selectedFilter3 != '') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance') >= 0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n } else if (vm.selectedFilter3.indexOf('Ratings') >= 0) {\r\n orderObj.OrderByField = 'UserRating';\r\n } else if (vm.selectedFilter3.indexOf('Price') >= 0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n RosterShiftService.GetSchedulingEvaluationResult(obj, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200 && resp.data && resp.data.users.length > 0) {\r\n vm.SuggestedUserList = [];\r\n\r\n vm.SuggestedUserList = resp.data;\r\n for (var i = 0; i < vm.SuggestedUserList.users.length; i++) {\r\n if (vm.SuggestedUserList.users[i].contactnumber) {\r\n vm.SuggestedUserList.users[i].contactnumber = vm.SuggestedUserList.users[i].contactnumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n }\r\n vm.userList = resp.data;\r\n vm.GetResult(resp.data.users, vm.selectedTicket.JobId, vm.selectedTicket.LinkId, vm.selectedTicket.StartDateTime, vm.selectedTicket.TaskEndTime, vm.selectedTicket.Status);\r\n\r\n init();\r\n vm.selectEntityFilter();\r\n // vm.MapIntegration()\r\n // vm.MapData();\r\n } else {\r\n vm.toaster_fail.title = \"Not Found\";\r\n vm.toaster_fail.body = \"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n console.log('GetSchedulingResults-3');\r\n GetSchedulingEventforToday(loggedinUser);\r\n\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n vm.GetResult = function (user, ticketid, linkId, start, end, status) {\r\n // scheduler.clearAll();\r\n\r\n var ticket = vm.selectedTicket.TicketId ? vm.selectedTicket.TicketId : vm.selectedTicket.JobId;\r\n\r\n var evs = scheduler.getEvents();\r\n if (vm.TicketStatus == \"ReadyToAssign\") {\r\n var bidRate = user[0].BIDCounterRate;\r\n var readyList = $filter('filter')(user, function (value) {\r\n return value.BIDCounterRate != 0;\r\n })\r\n if (readyList.length != 0) {\r\n var Id = readyList[0].id;\r\n var Role = readyList[0].role;\r\n var userType = readyList[0].userType;\r\n var Name = readyList[0].name;\r\n var Distance = readyList[0].UserDistance;\r\n var SuggestedPrice = readyList[0].BIDCounterRate;\r\n var Price = readyList[0].BIDCounterRate;\r\n } else {\r\n var Id = user[0].id\r\n var Role = user[0].role;\r\n var userType = user[0].userType;\r\n var Name = user[0].name;\r\n var Distance = user[0].UserDistance;\r\n var SuggestedPrice = user[0].BIDCounterRate;\r\n var Price = user[0].BIDCounterRate;\r\n }\r\n } else {\r\n var Id = user[0].id;\r\n var Role = user[0].role;\r\n var userType = user[0].userType;\r\n var Name = user[0].name;\r\n var Distance = user[0].UserDistance;\r\n var SuggestedPrice = user[0].BIDCounterRate;\r\n var Price = user[0].BIDCounterRate;\r\n }\r\n /* var Role = user[0].role;\r\n var userType = user[0].userType;\r\n var Name = user[0].name;\r\n var Distance = user[0].UserDistance;\r\n var SuggestedPrice = user[0].BIDCounterRate;\r\n var Price = user[0].BIDCounterRate;*/\r\n var start_date = moment(start).format(\"DD-MM-YYYY HH:mm\");\r\n var end_date = moment(end).format(\"DD-MM-YYYY HH:mm\");\r\n var today = new Date();\r\n var newdate = moment(today).format(\"DD-MM-YYYY\");\r\n\r\n\r\n\r\n // if(start_datetoday){\r\n var sdate = start_date.split(\" \")[0];\r\n var stime = start_date.split(\" \")[1];\r\n var edate = end_date.split(\" \")[0];\r\n var etime = end_date.split(\" \")[1];\r\n start_date = newdate + ' ' + stime;\r\n end_date = newdate + ' ' + etime;\r\n }*/\r\n // vm.AllAssignUserList.push({\"UserId\":Id,\"TicketId\":ticketid}); \r\n\r\n //var fromDate = new Date().toISOString().slice(0,10);\r\n //var toDate = new Date().toISOString().slice(0,10);\r\n\r\n var AssignList = [];\r\n\r\n if (vm.AllAssignUserDetails.length != 0) {\r\n console.log(vm.AllAssignUserDetails);\r\n AssignList = $filter('filter')(vm.AllAssignUserDetails, function (value) {\r\n // return value.UserId==Id && value.start_date==start_date;\r\n //return value.UserId==Id;\r\n return value.TicketId == ticket;\r\n\r\n })\r\n console.log(AssignList);\r\n /// it is used for the \r\n if (AssignList.length != 0) {\r\n var checklinkId = AssignList[0].LinkId;\r\n AssignList = [];\r\n var evs = scheduler.getEvents();\r\n var checkList = $filter('filter')(evs, function (value) {\r\n return value.LinkId == checklinkId;\r\n })\r\n var d = checkList[0].id;\r\n scheduler.deleteEvent(d);\r\n }\r\n\r\n if (AssignList.length == 0) {\r\n var eventId = scheduler.addEvent({\r\n start_date: start_date,\r\n end_date: end_date,\r\n assignedUserid: Id,\r\n status: status,\r\n Role: Role,\r\n TicketId: ticket,\r\n Distance: Distance,\r\n LinkId: linkId,\r\n SuggestedPrice: SuggestedPrice,\r\n Price: Price,\r\n Name: Name,\r\n userType: userType\r\n });\r\n\r\n vm.AllAssignUserDetails.push({ \"UserId\": Id, \"TicketId\": ticketid, \"LinkId\": linkId, \"Role\": Role, \"start_date\": start_date, \"end_date\": end_date, \"Name\": Name, \"Distance\": Distance, \"SuggestedPrice\": SuggestedPrice, \"type\": userType, \"Price\": Price });\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n } else if (vm.AllAssignUserDetails.length == 0) {\r\n var eventId = scheduler.addEvent({\r\n start_date: start_date,\r\n end_date: end_date,\r\n assignedUserid: Id,\r\n status: status,\r\n Role: Role,\r\n TicketId: ticket,\r\n LinkId: linkId,\r\n Distance: Distance,\r\n SuggestedPrice: SuggestedPrice,\r\n Price: Price,\r\n Name: Name,\r\n userType: userType,\r\n });\r\n\r\n vm.AllAssignUserDetails.push({ \"UserId\": Id, \"TicketId\": ticketid, \"LinkId\": linkId, \"Role\": Role, \"start_date\": start_date, \"end_date\": end_date, \"Name\": Name, \"Distance\": Distance, \"SuggestedPrice\": SuggestedPrice, \"type\": userType, \"Price\": Price });\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n vm.AssignTicketsTimeline = function () {\r\n\r\n vm.AllUserList = [];\r\n angular.forEach(vm.AllAssignUserDetails, function (data) {\r\n\r\n if (data.Role == 'Field Engineer' && data.type == 'Fixed Team' && data.isChecked == true) {\r\n vm.AllUserList.push({ \"UserId\": data.UserId, \"TicketId\": data.JobId ? data.JobId : data.LinkId, \"StartTime\": data.start_date, \"Endtime\": data.end_date, \"SuggestedPrice\": data.SuggestedPrice, \"AssignPrice\": data.Price, \"Distance\": data.Distance })\r\n } else if (data.Role == 'Field Engineer' && data.type == 'Freelancer' && data.isChecked == true) {\r\n vm.AllUserList.push({ \"UserId\": data.UserId, \"TicketId\": data.JobId ? data.JobId : data.LinkId, \"StartTime\": data.start_date, \"Endtime\": data.end_date, \"SuggestedPrice\": data.SuggestedPrice, \"AssignPrice\": data.Price, \"Distance\": data.Distance })\r\n } else if (data.Role == 'Vendor Manager' && data.type == 'Fixed Team' && data.isChecked == true) {\r\n vm.AllUserList.push({ \"UserId\": data.UserId, \"TicketId\": data.JobId ? data.JobId : data.LinkId, \"StartTime\": data.start_date, \"Endtime\": data.end_date, \"SuggestedPrice\": data.SuggestedPrice, \"AssignPrice\": data.Price, \"Distance\": data.Distance })\r\n } else if (data.Role == 'Vendor Manager' && data.type == 'Freelancer' && data.isChecked == true) {\r\n vm.AllUserList.push({ \"UserId\": data.UserId, \"TicketId\": data.JobId ? data.JobId : data.LinkId, \"StartTime\": data.start_date, \"Endtime\": data.end_date, \"SuggestedPrice\": data.SuggestedPrice, \"AssignPrice\": data.Price, \"Distance\": data.Distance })\r\n }\r\n })\r\n if (vm.AllUserList == '') {\r\n vm.showFailure(\"Please select users.\")\r\n } else {\r\n RosterShiftService.AssignTicketsTimeline(loggedinUser, vm.AllUserList, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n\r\n vm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n scheduler.clearAll();\r\n\r\n $timeout(function () {\r\n vm.mapMarkers = [];\r\n vm.AssignModal.close();\r\n console.log('AssignTicketsTimeline');\r\n GetSchedulingEventforToday(loggedinUser);\r\n if (vm.TicketStatus == \"New\") {\r\n vm.otherfilter = \"New\";\r\n vm.getAllTicketList();\r\n\r\n } else if (vm.TicketStatus == \"ReadyToAssign\") {\r\n vm.otherfilter = \"ReadyToAssign\";\r\n vm.getAllTicketList();\r\n }\r\n vm.otherfilter = '';\r\n\r\n }, 1500);\r\n // if (vm.Mode == 'Map') {\r\n // $timeout(function () {\r\n // vm.mapMarkers = [];\r\n // vm.AssignModal.close();\r\n // }, 1500);\r\n // }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }\r\n $state.reload();\r\n }\r\n\r\n vm.clearData = function () {\r\n vm.AllAssignUserDetails = [];\r\n vm.selectedTicket = '';\r\n vm.mapMarkers = [];\r\n }\r\n\r\n\r\n vm.OpenBroadcastModal = function () {\r\n if (vm.BroadcastedUserList == '') {\r\n vm.showFailure(\"Not found\", \"No users found\");\r\n } else {\r\n $scope.BroadcastedUser.allItemsSelected = true;\r\n $scope.selectAllBoardUser();\r\n vm.BroadcastModal = $uibModal.open({\r\n templateUrl: 'Broadcast-modal',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n }\r\n\r\n vm.CloseBroadcastModal = function () {\r\n vm.selectedFreelancers = [];\r\n vm.BroadcastModal.close();\r\n }\r\n\r\n vm.OpenAssignModal = function () {\r\n vm.AllAssignUserDetails = [];\r\n var evs = scheduler.getEvents();\r\n var t = vm.TicketStatus;\r\n var uniqueEventlist = new Map();\r\n\r\n\r\n var eventslist = $filter('filter')(evs, function (value) {\r\n return value.Price == 0;\r\n })\r\n\r\n angular.forEach(evs, function (data) {\r\n\r\n if (!uniqueEventlist.has(data.JobId)) {\r\n uniqueEventlist.set(data.JobId);\r\n\r\n if (data.status == 'New') {\r\n var Id = data.assignedUserid;\r\n var ticketid = data.JobId;\r\n var linkid = data.LinkId;\r\n var start_date = moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n angular.forEach(vm.SuggestedUserList.users, function (value) {\r\n if (value.id == Id && value.userType != 'Freelancer') {\r\n vm.AllAssignUserDetails.push({ \"UserId\": Id, \"TicketId\": ticketid, \"LinkId\": linkid, \"Role\": value.role, \"start_date\": start_date, \"end_date\": end_date, \"Name\": value.name, \"Distance\": value.UserDistance, \"SuggestedPrice\": value.BIDCounterRate, \"type\": value.userType, \"Price\": value.BIDCounterRate });\r\n\r\n }\r\n\r\n })\r\n } else if (data.status == 'Broadcasted') {\r\n var Id = data.assignedUserid;\r\n var ticketid = data.JobId;\r\n var linkid = data.LinkId;\r\n var start_date = moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users, function (value) {\r\n if (value.id == Id) {\r\n\r\n vm.AllAssignUserDetails.push({ \"UserId\": Id, \"TicketId\": ticketid, \"LinkId\": linkid, \"Role\": value.role, \"start_date\": start_date, \"end_date\": end_date, \"Name\": value.name, \"Distance\": value.UserDistance, \"SuggestedPrice\": value.BIDCounterRate, \"type\": value.userType, \"Price\": value.BIDCounterRate });\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n\r\n })\r\n } else if (data.status == 'ReadyToAssign') {\r\n\r\n var Id = data.assignedUserid;\r\n var ticketid = data.JobId;\r\n var linkid = data.LinkId;\r\n var start_date = moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users, function (value) {\r\n if (value.id == Id) {\r\n\r\n vm.AllAssignUserDetails.push({ \"UserId\": Id, \"TicketId\": ticketid, \"LinkId\": linkid, \"Role\": value.role, \"start_date\": start_date, \"end_date\": end_date, \"Name\": value.name, \"Distance\": value.UserDistance, \"SuggestedPrice\": value.BIDCounterRate, \"type\": value.userType, \"Price\": value.BIDCounterRate });\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n\r\n })\r\n }\r\n }\r\n })\r\n $scope.AssignSelectedUser = vm.AllAssignUserDetails;\r\n $scope.AssignSelectedUser.allItemsSelected = true;\r\n $scope.selectAll();\r\n\r\n vm.AssignModal = $uibModal.open({\r\n templateUrl: 'Assign-modal',\r\n size: 'lg',\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n // }\r\n }\r\n\r\n vm.CloseAssignModal = function () {\r\n vm.selectedFreelancers = [];\r\n vm.AssignModal.close();\r\n }\r\n\r\n\r\n //Broadcast Bids/Jobs\r\n vm.BroadcastTicket = function () {\r\n\r\n\r\n var BidData = [];\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n obj.JobID = vm.selectedTicket.JobId;\r\n obj.BIDDuration = vm.selectedTicket.BIDDuration;\r\n // obj.BroadCastRate = vm.selectedTicket.BroadcastRate\r\n //obj.BroadCastGrossRate = vm.selectedTicket.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = parseInt(vm.selectedTicket.MobiforceCommission);\r\n // obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n\r\n\r\n var UserData = [];\r\n /* angular.forEach(vm.selectedFreelancers, function (d) {\r\n if (d) {*/\r\n angular.forEach($scope.BroadcastedUser, function (d) {\r\n if (d.isChecked == true) {\r\n // UserData.push(d.UserId);\r\n UserData.push({ \"UserId\": d.UserId, \"SuggestedPrice\": parseInt(d.SuggestedPrice), \"Price\": parseInt(d.Price), \"Distance\": d.Distance });\r\n }\r\n });\r\n var checklist = $filter('filter')(UserData, function (value) {\r\n return value.Price == 0;\r\n })\r\n if (checklist.length != 0) {\r\n vm.showFailure(\"Failed\", \"Bid price can't be zero.\");\r\n } else {\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"JobId\": vm.selectedTicket.JobId,\r\n \"BIDDuration\": vm.selectedTicket.BidDuration,\r\n \"MobiforceCommissionPercentage\": parseInt(vm.selectedTicket.MobiforceCommission),\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModal.close();\r\n\r\n RosterShiftService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n toaster.pop(vm.toaster_success);\r\n vm.selectedFreelancers = [];\r\n $timeout(function () {\r\n vm.otherfilter = \"New\";\r\n vm.getAllTicketList();\r\n\r\n }, 1500);\r\n vm.otherfilter = '';\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Please select users.\");\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n }\r\n }\r\n\r\n }\r\n\r\n //Assign Tickets\r\n vm.AssignTickets = function (role, userId) {\r\n if (role == 'Field Engineer') {\r\n RosterShiftService.AssignTickets(userId, loggedinUser, vm.selectedTicket.TicketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n vm.otherfilter = \"New\";\r\n vm.TimeoutFunc(1500, vm.getAllTicketList());\r\n if (vm.Mode == 'Map') {\r\n $timeout(function () {\r\n vm.mapMarkers = [];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n vm.otherfilter = '';\r\n } else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n } else if (role == 'Vendor Manager') {\r\n }\r\n }\r\n\r\n //MAP INTEGRATION\r\n vm.MapIntegration = function () {\r\n //for Initial Loading\r\n if (vm.selectedTicket == '') {\r\n vm.mapMarkers = [];\r\n //Today's Scheduling Events\r\n angular.forEach(vm.SuggestedUserList.tickets, function (d) {\r\n var customer = {};\r\n customer.lat = d.latitude;\r\n customer.long = d.longitude;\r\n customer.StartTime = d.start_date;\r\n customer.Address = d.city + ' ' + d.state;\r\n customer.ConsumerName = d.customerName;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = d.status;\r\n customer.AssignedUser = d.assignedUserName;\r\n customer.JobId = d.id;\r\n customer.StartDate = d.start_date;\r\n customer.EndDate = d.end_date;\r\n if (d.status != 'Lunch Break') {\r\n vm.mapMarkers.push(customer);\r\n }\r\n })\r\n angular.forEach(vm.SuggestedUserList.users, function (d) {\r\n var obj = {};\r\n obj.UserName = d.name;\r\n obj.BIDCounterRate = vm.round2Decimal(d.BIDCounterRate);\r\n obj.UserRating = d.UserRating ? d.UserRating : 0;\r\n obj.UserDistance = vm.round2Decimal(d.UserDistance);\r\n obj.UserLatitude = d.UserLatitude;\r\n obj.UserLongitude = d.UserLongitude;\r\n obj.UserContact = d.contactnumber ? d.contactnumber : 'NA';\r\n obj.UserImage = vm.getProfilePic(d.UserProfilePhoto);\r\n obj.Role = d.role;\r\n obj.userType = d.userType;\r\n vm.mapMarkers.push(obj);\r\n })\r\n //New Jobs\r\n if (vm.TicketStatus == 'New') {\r\n angular.forEach(vm.AllTicketList, function (d) {\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.City + ' ' + d.State;\r\n customer.ConsumerName = d.ConsumerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'New';\r\n customer.JobId = d.TicketId;\r\n customer.StartDate = d.StartTime;\r\n customer.EndDate = d.EndTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n //Broadcasted Jobs\r\n } else if (vm.TicketStatus == 'Broadcasted') {\r\n angular.forEach(vm.BroadcastedJobList, function (d) {\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.Location;\r\n customer.ConsumerName = d.CustomerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'Broadcasted';\r\n customer.JobId = d.JobId;\r\n customer.StartDate = d.StartDateTime;\r\n customer.EndDate = d.EndDateTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n } else if (vm.TicketStatus == 'ReadyToAssign') {\r\n angular.forEach(vm.ReadyToAssignList, function (d) {\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.Location;\r\n customer.ConsumerName = d.CustomerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'ReadyToAssign';\r\n customer.JobId = d.JobId;\r\n customer.StartDate = d.StartDateTime;\r\n customer.EndDate = d.EndDateTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n }\r\n //on Job Selection\r\n } else {\r\n vm.mapMarkers = [];\r\n var customer = {};\r\n //Adding Customer Site on Ticket Status Basis\r\n if (vm.TicketStatus == 'New') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.Latitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.Longitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.City + ' ' + vm.selectedTicket.State;\r\n customer.ConsumerName = vm.selectedTicket.ConsumerName;\r\n customer.Status = vm.selectedTicket.TicketStatus;\r\n customer.JobId = vm.selectedTicket.TicketId;\r\n customer.StartDate = vm.selectedTicket.StartTime;\r\n customer.EndDate = vm.selectedTicket.EndTime;\r\n\r\n }\r\n else if (vm.TicketStatus == 'Broadcasted') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.JobLatitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.Location;\r\n customer.ConsumerName = vm.selectedTicket.CustomerName;\r\n customer.Status = vm.selectedTicket.Status;\r\n customer.JobId = vm.selectedTicket.JobId;\r\n customer.StartDate = vm.selectedTicket.StartDateTime;\r\n customer.EndDate = vm.selectedTicket.EndDateTime;\r\n } else if (vm.TicketStatus == 'ReadyToAssign') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.JobLatitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.Location;\r\n customer.ConsumerName = vm.selectedTicket.CustomerName;\r\n customer.Status = vm.selectedTicket.Status;\r\n customer.JobId = vm.selectedTicket.JobId;\r\n customer.StartDate = vm.selectedTicket.StartDateTime;\r\n customer.EndDate = vm.selectedTicket.EndDateTime;\r\n }\r\n customer.JobType = vm.selectedTicket.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n vm.mapMarkers.push(customer);\r\n\r\n //Adding Users into Marker\r\n angular.forEach(vm.SuggestedUserList.users, function (d) {\r\n var obj = {};\r\n if (d && d.UserLatitude && d.UserLongitude) {\r\n obj.UserName = d.name;\r\n // obj.BIDApplyDateTime = d.BIDApplyDateTime;\r\n // obj.BIDApplyStatus = d.BIDApplyStatus;\r\n obj.BIDCounterRate = vm.round2Decimal(d.BIDCounterRate);\r\n obj.JobId = d.id;\r\n // obj.UserCurrentJobs = d.UserCurrentJobs;\r\n // obj.UserId = d.UserId;\r\n obj.UserRating = d.UserRating ? d.UserRating : 0;\r\n // obj.UserTotalJobs = d.UserTotalJobs;\r\n obj.UserDistance = vm.round2Decimal(d.UserDistance);\r\n obj.UserLatitude = d.UserLatitude;\r\n obj.UserLongitude = d.UserLongitude;\r\n obj.UserContact = d.contactnumber ? d.contactnumber : 'NA';\r\n obj.UserImage = vm.getProfilePic(d.UserProfilePhoto);\r\n // if (obj.Role=='Freelancer') {\r\n // obj.AssigButton = false; \r\n // }else{\r\n // obj.AssigButton = true;\r\n // }\r\n obj.Role = d.role;\r\n obj.userType = d.userType;\r\n vm.mapMarkers.push(obj);\r\n }\r\n })\r\n }\r\n\r\n\r\n //Setting the Map Options\r\n vm.MapOptions = {\r\n center: new google.maps.LatLng(DefaultLat, DefaultLong),\r\n // zoom: 20,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n }\r\n\r\n //Initializing the InfoWindow, Map and LatLngBounds objects.\r\n vm.InfoWindow = new google.maps.InfoWindow();\r\n vm.Latlngbounds = new google.maps.LatLngBounds();\r\n vm.Map = new google.maps.Map(document.getElementById(\"map-canvas\"), vm.MapOptions);\r\n\r\n //Looping through the Array and adding Markers.\r\n for (var i = 0; i < vm.mapMarkers.length; i++) {\r\n var data = vm.mapMarkers[i];\r\n var ticketLatlng = '';\r\n if (data.Role == 'Customer') {\r\n ticketLatlng = new google.maps.LatLng(data.lat, data.long);\r\n //Initializing the Marker object.\r\n if (data.Status == 'New') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n //label:data.ConsumerName,\r\n title: data.ConsumerName,\r\n // labelClass:\"marker_container-label\",\r\n // labelInBackground:false,\r\n //icon:NewJobIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/JOb_icon.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n animation: google.maps.Animation.DROP,\r\n label: {\r\n text: data.ConsumerName,\r\n color: \"#C70E20\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n }\r\n });\r\n } else if (data.Status == 'Broadcasted') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n //label:data.ConsumerName,\r\n title: data.ConsumerName,\r\n // labelClass:\"marker_container-label\",\r\n // labelInBackground:false,\r\n // icon:BroadcastedJobIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/JOb_icon.png',\r\n labelOrigin: new google.maps.Point(50, 32),\r\n },\r\n animation: google.maps.Animation.DROP,\r\n label: {\r\n text: data.ConsumerName,\r\n color: \"#C70E20\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n }\r\n });\r\n } else if (data.Status == 'Assigned') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n //label:data.ConsumerName,\r\n title: data.ConsumerName,\r\n // labelClass:\"marker_container-label\",\r\n // labelInBackground:false,\r\n //icon: AssignedJobIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/JOb_icon.png',\r\n labelOrigin: new google.maps.Point(50, 32),\r\n },\r\n animation: google.maps.Animation.DROP,\r\n label: {\r\n text: data.ConsumerName,\r\n color: \"#C70E20\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n }\r\n });\r\n } else if (data.Status == 'Completed') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n //label:data.ConsumerName,\r\n title: data.ConsumerName,\r\n // labelClass:\"marker_container-label\",\r\n // labelInBackground:false,\r\n //icon: CompletedJobIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/JOb_icon.png',\r\n labelOrigin: new google.maps.Point(50, 32),\r\n },\r\n animation: google.maps.Animation.DROP,\r\n label: {\r\n text: data.ConsumerName,\r\n color: \"#C70E20\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n }\r\n });\r\n } else {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n // label:data.ConsumerName,\r\n title: data.ConsumerName,\r\n // labelClass:\"marker_container-label\",\r\n // labelInBackground:false,\r\n // icon: CompletedJobIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/JOb_icon.png',\r\n labelOrigin: new google.maps.Point(50, 32),\r\n },\r\n animation: google.maps.Animation.DROP,\r\n label: {\r\n text: data.ConsumerName,\r\n color: \"#C70E20\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n }\r\n });\r\n }\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, data) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n if (data.Status == 'Assigned') {\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\" + data.ConsumerName + \"


\" + ' ' + data.JobId + \"
\" + ' ' + data.Status + \"
\" + ' ' + data.AssignedUser + \"
\" + ' ' + moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + data.Address + \"
\");\r\n } else if (data.Status == 'Completed') {\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\" + data.ConsumerName + \"


\" + ' ' + data.JobId + \"
\" + ' ' + data.Status + \"
\" + ' ' + data.AssignedUser + \"
\" + ' ' + moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + data.Address + \"
\");\r\n }\r\n else {\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\" + data.ConsumerName + \"


\" + ' ' + data.JobId + \"
\" + ' ' + data.Status + \"
\" + ' ' + moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + data.Address + \"
\");\r\n }\r\n vm.InfoWindow.open(vm.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n vm.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, data);\r\n vm.Latlngbounds.extend(marker.position);\r\n } else {\r\n ticketLatlng = new google.maps.LatLng(data.UserLatitude, data.UserLongitude);\r\n //Initializing the Marker object.\r\n if (data.Role == 'Field Engineer' && data.userType == 'Freelancer') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: flIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n }\r\n });\r\n } else if (data.Role == 'Field Engineer' && data.userType == 'Fixed Team') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: ftIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n\r\n }\r\n });\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Fixed Team') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: vIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n\r\n }\r\n });\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Freelancer') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: fvIcon,\r\n icon: {\r\n url: UIURL + '/assets/images/patterns/mascot_icon2.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position: \"absolute\"\r\n\r\n }\r\n });\r\n }\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, data) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n if (data.Role == 'Field Engineer' && data.userType == 'Fixed Team') {\r\n var Role = 'Field Engineer';\r\n } else if (data.Role == 'Field Engineer' && data.userType == 'Freelancer') {\r\n var Role = 'Freelancer';\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Fixed Team') {\r\n var Role = 'Vendor Manager';\r\n } else {\r\n var Role = 'Freelancer Vendor';\r\n }\r\n var content = \"
image
\" + ' ' + data.UserName + \"
\" + ' ' + data.UserContact + \"
\" + ' ' + data.UserDistance + \" Kms
\" + ' ' + data.BIDCounterRate + \"
\" + ' ' + Role + \"
\"\r\n vm.InfoWindow.setContent(content);\r\n vm.InfoWindow.open(vm.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n vm.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, data);\r\n // vm.Latlngbounds.extend(marker.position);\r\n }\r\n //Plotting the Marker on the Map. \r\n }\r\n //Adjusting the Map for best display.\r\n vm.Map.setCenter(vm.Latlngbounds.getCenter());\r\n // vm.Map.fitBounds(vm.Latlngbounds);\r\n vm.Map.setZoom(13);\r\n\r\n }\r\n }\r\n\r\n\r\n vm.GetAllDepartment = function () {\r\n $scope.isEditdepartment = false;\r\n shiftManagementService.GetAllDepartment(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp) {\r\n vm.departmentList = resp.data;\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllDepartment();\r\n\r\n vm.GetAllLocations = function () {\r\n shiftManagementService.GetAllLocations(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp) {\r\n vm.locationsList = resp.data;\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllLocations();\r\n\r\n\r\n document.getElementById('prevButton').addEventListener('click', function() {\r\n handleButtonClick('prev');\r\n });\r\n \r\n document.getElementById('nextButton').addEventListener('click', function() {\r\n handleButtonClick('next');\r\n });\r\n \r\n function handleButtonClick(direction) {\r\n var currentStartDate = scheduler.getState().date;\r\n startDate = direction === 'prev' ? scheduler.date.add(currentStartDate, -7, 'day') : scheduler.date.add(currentStartDate, 7, 'day');\r\n endDate = scheduler.date.add(startDate, 6, 'day');\r\n startDate = moment(startDate).format(\"YYYY-MM-DD\");\r\n endDate = moment(endDate).format(\"YYYY-MM-DD\");\r\n GetSchedulingEventforToday(loggedinUser);\r\n }\r\n \r\n\r\n\r\n vm.territoryChange = function () {\r\n if(!vm.SelectedLocation){\r\n vm.SelectedLocation = \"\";\r\n }\r\n if(!vm.departmemtId){\r\n vm.departmemtId = \"\";\r\n }\r\n GetSchedulingEventforToday(loggedinUser);\r\n }\r\n\r\n function GetSchedulingEventforToday(loggedinUser) {\r\n fromDate = moment().format(\"YYYY-MM-DD\");\r\n toDate = moment().format(\"YYYY-MM-DD\");\r\n var data = {\r\n \"LocationId\": vm.SelectedLocation,\r\n \"DepartmentId\": vm.departmemtId,\r\n \"StartDate\": startDate,\r\n \"EndDate\": endDate\r\n }\r\n RosterShiftService.GetDataForShiftView(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200 && resp.data) {\r\n vm.SuggestedUserList = [];\r\n vm.SuggestedUserList = resp.data;\r\n vm.ListShiftDaySummary = resp.data.ListShiftDaySummary;\r\n vm.ShiftSummaryOverAll = resp.data.ShiftSummaryOverAll;\r\n var evs = scheduler.getEvents();\r\n // angular.forEach(evs, function (val) {\r\n // if (val.status == 'Created') {\r\n // var id = val.id;\r\n // scheduler.deleteEvent(id);\r\n // }\r\n // })\r\n init();\r\n }\r\n })\r\n // vm.MapIntegration();\r\n }\r\n\r\n\r\n GetSchedulingEventforToday(loggedinUser);\r\n\r\n\r\n $scope.selectEntity = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < $scope.AssignSelectedUser.length; i++) {\r\n if (!$scope.AssignSelectedUser[i].isChecked) {\r\n $scope.AssignSelectedUser.allItemsSelected = false;\r\n return;\r\n }\r\n }\r\n\r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.AssignSelectedUser.allItemsSelected = true;\r\n };\r\n\r\n // This executes when checkbox in table header is checked\r\n $scope.selectAll = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < $scope.AssignSelectedUser.length; i++) {\r\n $scope.AssignSelectedUser[i].isChecked = $scope.AssignSelectedUser.allItemsSelected;\r\n }\r\n };\r\n\r\n\r\n\r\n\r\n $scope.selectEntityBoardUser = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < $scope.BroadcastedUser.length; i++) {\r\n if (!$scope.BroadcastedUser[i].isChecked) {\r\n $scope.BroadcastedUser.allItemsSelected = false;\r\n return;\r\n }\r\n }\r\n\r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.BroadcastedUser.allItemsSelected = true;\r\n };\r\n\r\n // This executes when checkbox in table header is checked\r\n $scope.selectAllBoardUser = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < $scope.BroadcastedUser.length; i++) {\r\n $scope.BroadcastedUser[i].isChecked = $scope.BroadcastedUser.allItemsSelected;\r\n }\r\n };\r\n\r\n\r\n\r\n function init() {\r\n scheduler.locale.labels.timeline_tab = \"Week\";\r\n scheduler.locale.labels.section_custom = \"Section\";\r\n // scheduler.config.details_on_create=true;\r\n // scheduler.config.details_on_dblclick=true;\r\n scheduler.config.dblclick_create = false;\r\n scheduler.config.xml_date = \"%Y-%m-%d %H:%i\";\r\n var format = scheduler.date.date_to_str(\"%H:%i\");\r\n scheduler.config.touch_tooltip = true;\r\n scheduler.config.drag_resize = false;\r\n\r\n //it is used for the drag and drop functionality \r\n scheduler.attachEvent(\"onBeforeDrag\", function (event_id, mode, native_event_object) {\r\n var ev = scheduler.getEvent(event_id);\r\n if (ev.status == 'Accepted') {\r\n return false;\r\n }\r\n else if (ev.status == 'Published') {\r\n return false;\r\n }\r\n else if (ev.status == 'Inprogress') {\r\n return false;\r\n }\r\n else if (ev.status == 'Completed') {\r\n return false;\r\n }\r\n else if (ev.status == 'Lunch Break') {\r\n return false;\r\n }\r\n else if (ev.status == 'Approved') {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n });\r\n\r\n // this is used when we drag the event in one use to another user but the time is still same \r\n scheduler.attachEvent(\"onBeforeEventChanged\", function (ev, e, is_new, original) {\r\n if (original.assignedUserid == ev.assignedUserid)\r\n return false;\r\n ev.start_date = original.start_date;\r\n ev.end_date = original.end_date;\r\n return true;\r\n });\r\n\r\n //this methd is used to stop the open the popup on double click \r\n // scheduler.attachEvent(\"onDblClick\", function (id, e) {\r\n // return false;\r\n // });\r\n\r\n if (vm.SuggestedUserList.users.length != 0) {\r\n var sections = [];\r\n var sections = vm.SuggestedUserList;\r\n if (vm.selectedTicket.Status == \"ReadyToAssign\") {\r\n var sectionlist = $filter('filter')(sections.users, function (value) {\r\n // return value.BIDCounterRate!=0;\r\n return value.BIDCounterRate;\r\n })\r\n sections.users = sectionlist;\r\n }\r\n } else {\r\n var sections = [];\r\n var sections = vm.SuggestedUserList;\r\n // var sections.users =[];\r\n }\r\n\r\n //this is used for the tooltip\r\n scheduler.templates.tooltip_text = function (start, end, event) {\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n // if (res == \"1\") {\r\n // var Id = event.id ? event.LinkId : event.TicketId;\r\n // } else {\r\n var Id = event.id;\r\n // }\r\n return \"Shift Status : \" + event.status + \"
\" +\r\n \"Shift Id : \" + Id + \"
\" +\r\n \"Shift Type : \" + event.ShiftType + \"
\" +\r\n \"Shift Time : \" + event.ShiftTime + \"
\" +\r\n \"Start Time : \" + scheduler.templates.tooltip_date_format(start) + \"
\" +\r\n \"End Time : \" + scheduler.templates.tooltip_date_format(end);\r\n };\r\n\r\n //this is used for creating two event in the same slot \r\n scheduler.config.collision_limit = 5; //allows creating 2 events per time slot\r\n /*scheduler.attachEvent(\"onEventLoading\", function(ev){ \r\n return scheduler.checkCollision(ev); \r\n });\r\n */\r\n\r\n scheduler.createTimelineView({\r\n name: \"timeline\",\r\n x_date: \"%D, %M %d\",\r\n x_unit: \"day\",// the scale parameters will be calculated in minutes\r\n x_step: 1, //sets the '30 minute' step, e.g. 09:00 - 09:30\r\n x_size: 7, // the number of '30 minute's in the interval 09:00 - 15:00\r\n // 15 - 9 = 6 hours = 360 minutes = 360/30 = 12\r\n x_start: firstDayOfCurrentWeek, //scale starts from 09:00,i.e. 9 hours from the default start- 00:00.\r\n // 9 hours = 540 minutes = 540/30 = 18 'x_step's \r\n x_length: 7,//sc\r\n y_unit: scheduler.serverList('sections', sections.users),\r\n y_property: \"assignedUserid\",\r\n render: \"bar\",\r\n });\r\n\r\n scheduler.ignore_timeline = function (date) {\r\n //non-work hours\r\n //if (date.getHours() < 8 || date.getHours() > 18) return true;\r\n };\r\n\r\n scheduler.templates.timeline_scale_label = function (key, label, sections) {\r\n\r\n if (sections.userType == 'Fixed Team' && sections.role == 'Field Engineer' && sections.VendorTeam == 'Non Vendor Team') {\r\n $(document).ready(function () {\r\n $(\".FEHIDE\").hide();\r\n });\r\n\r\n var UserIdentity = 'FE';\r\n } else if (sections.userType == 'Fixed Team' && sections.role == 'Field Engineer' && sections.VendorTeam == 'Vendor Team') {\r\n var UserIdentity = 'VT';\r\n } else if (sections.userType == 'Freelancer' && sections.role == 'Field Engineer') {\r\n var UserIdentity = 'FL';\r\n } else if (sections.userType == 'Fixed Team' && sections.role == 'Vendor Manager') {\r\n var UserIdentity = 'V';\r\n } else if (sections.userType == 'Freelancer' && sections.role == 'Vendor Manager') {\r\n var UserIdentity = 'FV';\r\n $(document).ready(function () {\r\n $(\".FEHIDE\").show();\r\n });\r\n }\r\n\r\n $scope.getInitials = function(name) {\r\n var words = name.split(' ');\r\n var initials = words.map(function(word) {\r\n return word[0];\r\n }).join('').toUpperCase();\r\n return initials;\r\n };\r\n\r\n var initials = $scope.getInitials(sections.name);\r\n\r\n $scope.colors = [\r\n '#E0DFFD',\r\n '#DDEFEF',\r\n '#FFF5D6',\r\n '#B7E3B6',\r\n '#E4EDF9',\r\n '#EDDCF3',\r\n '#F3F5FE',\r\n '#FFF2F0'\r\n ];\r\n\r\n $scope.colorCounter = 0;\r\n\r\n $scope.getContrastColor = function (hexColor) {\r\n\r\n // Extract RGB components\r\n var r = parseInt(hexColor.slice(1, 3), 16);\r\n var g = parseInt(hexColor.slice(3, 5), 16);\r\n var b = parseInt(hexColor.slice(5, 7), 16);\r\n // Calculate a darker shade by multiplying each component by a factor (e.g., 0.8)\r\n var factor = 1.7;\r\n var darkerR = Math.round(r * factor);\r\n var darkerG = Math.round(g * factor);\r\n var darkerB = Math.round(b * factor);\r\n\r\n // Convert the darker shade to hex\r\n var darkerShadeHex = '#' + ('00' + darkerR.toString(16)).slice(-2) +\r\n ('00' + darkerG.toString(16)).slice(-2) +\r\n ('00' + darkerB.toString(16)).slice(-2);\r\n\r\n return darkerShadeHex;\r\n };\r\n $scope.randomBackgroundColor = $scope.colors[Math.floor(Math.random() * $scope.colors.length)];\r\n $scope.randomTextColor = $scope.getContrastColor($scope.randomBackgroundColor);\r\n $scope.dynamicStyles = {\r\n 'background-color': $scope.randomBackgroundColor,\r\n 'color': $scope.randomTextColor\r\n };\r\n\r\n // $scope.resetColorCounter = function() {\r\n // $scope.colorCounter = 0;\r\n // };\r\n\r\n var ratings = sections.UserRating ? sections.UserRating : 0;\r\n return \"
\\\r\n
\\\r\n \" + initials +\"
\\\r\n
\\\r\n

\"+ sections.name + \"

\\\r\n

(\"+ sections.Role + \")

\\\r\n \" + sections.TotalHours + \" h / $ \" + sections.AmountEarned +\"\\\r\n
\\\r\n
\\\r\n
\";\r\n };\r\n\r\n function getPic(profilePic) {\r\n return profilePic ? ImageUrl + '/' + profilePic : DefaultImage;\r\n }\r\n\r\n function round2Decimal(no) {\r\n return Math.round(no * 100) / 100;\r\n }\r\n vm.Opened = false;\r\n scheduler.attachEvent(\"onBeforeViewChange\", function (old_mode, old_date, mode, date) {\r\n //any custom logic here\r\n vm.mode = mode;\r\n return true;\r\n });\r\n\r\n// Change the labels for the Save and Delete buttons\r\n\r\n// scheduler.config.buttons_left = [\"dhx_save_btn\", \"dhx_cancel_btn\"];\r\n\r\n// scheduler.config.buttons_left[\"dhx_save_btn\"] = 'CustomSaveLabel';\r\n// scheduler.config.buttons_left = [\"dhx_save_btn\", \"dhx_cancel_btn\"];\r\n\r\nscheduler.config.buttons_left = [\"dhx_save_btn\", \"dhx_cancel_btn\"];\r\n// scheduler.config.labels[\"dhx_save_btn\"] = \"Assign\";\r\n\r\nscheduler.config.buttons_right = [];\r\n\r\n\r\nvar initialEventDate;\r\n\r\nscheduler.attachEvent(\"onBeforeDrag\", function (id, mode, e){\r\n if (mode != \"create\") {\r\n initialEventDate = scheduler.getEvent(id).start_date;\r\n }\r\n return true;\r\n});\r\n\r\nscheduler.attachEvent(\"onDragEnd\", function(id, mode, e){\r\n var finalEventDate = scheduler.getEvent(id).start_date;\r\n scheduler.showLightbox(id);\r\n var directionDrag;\r\n if (initialEventDate < finalEventDate) {\r\n \tdirectionDrag = 'Left to right';\r\n } else if (initialEventDate > finalEventDate) {\r\n \tdirectionDrag = 'Right to left';\r\n } else {\r\n \tdirectionDrag = 'Undraged';\r\n }\r\n scheduler.formSection('direction').setValue(directionDrag);\r\n});\r\nscheduler.locale.labels[\"dhx_save_btn\"] = \"YourCustomLabel\";\r\n\r\n scheduler.templates.event_bar_text = function (start, end, event) {\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if (res == \"1\") {\r\n var Id = event.id ? event.id : event.id;\r\n }\r\n // else if(res==\"L\"){\r\n // return \"
\"+event.JobType + \"
\";\r\n // }\r\n else {\r\n var Id = event.id ? event.id : event.id;\r\n }\r\n\r\n var barText = Id.substring(12, 16) + ' | ' + event.ShiftType;\r\n\r\n return '
'+\r\n // ' ' + Id + '
' +\r\n '

' + event.ShiftTime + '

' +\r\n // '

' + event.ShiftName + '

' +\r\n // ' ' + event.ShiftType + '
';\r\n '

' + event.ShiftDepartment + '

' +\r\n // '

' + event.ShiftLocation + '

' +\r\n '
';\r\n };\r\n\r\n scheduler.attachEvent('onClick', function (id, e) {\r\n vm.eventID = id;\r\n vm.dropdownOptions = [];\r\n vm.GetEligibleUserForShiftSwap(id);\r\n return false; \r\n });\r\n\r\nvm.dropdownOptions = [];\r\n\r\nscheduler.config.lightbox.sections = [];\r\n\r\nvm.GetEligibleUserForShiftSwap = function (shiftId) {\r\n vm.shiftId = shiftId;\r\n RosterShiftService.GetEligibleUserForShiftSwap(shiftId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp) {\r\n vm.eligibleUsersList = resp.data;\r\n if (vm.eligibleUsersList) {\r\n vm.dropdownOptions = vm.eligibleUsersList.map(function (user) {\r\n return { key: user.UserId, label: user.UserName };\r\n });\r\n\r\n // Clear existing sections\r\n scheduler.config.lightbox.sections = [];\r\n\r\n // Add new section with updated dropdown options\r\n scheduler.config.lightbox.sections.push({\r\n name: \"Select User:\",\r\n height: 35,\r\n type: \"select\",\r\n map_to: \"user_id\",\r\n options: vm.dropdownOptions\r\n });\r\n\r\n // Open the lightbox\r\n scheduler.resetLightbox();\r\n scheduler.showLightbox(shiftId);\r\n } else {\r\n vm.showFailure(\"Failed\", 'Only published and accepted Shift can be re-assigned');\r\n }\r\n }\r\n });\r\n};\r\n\r\n\r\n\r\n\r\nscheduler.attachEvent(\"onEventSave\", function (id, data, is_new_event) {\r\n var selectedUser = data.user_id;\r\n vm.PublishShiftToUser(id,selectedUser);\r\n return true;\r\n});\r\n \r\nscheduler.attachEvent(\"onEventCancel\", function () {\r\n scheduler.config.lightbox.sections = [];\r\n scheduler.endLightbox(false);\r\n return true;\r\n});\r\n\r\nvm.PublishShiftToUser = function (id,selectedUser) {\r\n EmployeeShiftMapService.PublishShiftToUser(id, selectedUser, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 202 && resp) {\r\n vm.showSuccess(\"Success\", 'Shift published successfully');\r\n $timeout(function () {\r\n GetSchedulingEventforToday(loggedinUser);\r\n }, 2000);\r\n \r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n}\r\n\r\nvar currentDate = new Date(startDate);\r\nvar firstDayOfCurrentWeek = new Date(currentDate);\r\nvar dayOfWeek = currentDate.getDay(); // 0 is Sunday, 1 is Monday, ..., 6 is Saturday\r\nvar difference = dayOfWeek === 0 ? 6 : dayOfWeek - 1;\r\nfirstDayOfCurrentWeek.setDate(currentDate.getDate() - difference);\r\n\r\n scheduler.templates.event_bar_date = function (start, end, event) {\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if (res == \"1\") {\r\n var Id = event.id ? event.id : event.TicketId;\r\n } else {\r\n var Id = event.id ? event.id : event.id;\r\n }\r\n return \"\" + Id + \" \";\r\n };\r\n\r\n // it is used for the week basis \r\n scheduler.templates.event_header = function (start, end, event) {\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if (res == \"1\") {\r\n var Id = event.id ? event.id : event.id;\r\n } else {\r\n var Id = event.id ? event.id : event.id;\r\n }\r\n return \"
\" + Id + \"
\";\r\n };\r\n\r\n //this is used for the status \r\n scheduler.templates.event_class = function (start, end, event) {\r\n if (vm.mode == 'timeline') {\r\n scheduler.config.readonly = false;\r\n if (event.status == \"Accepted\") {\r\n return \"Assigned\";\r\n }\r\n else if (event.status == \"Created\") {\r\n return \"New\";\r\n }\r\n else if (event.status == \"Inprogress\") {\r\n return \"InTransite\";\r\n }\r\n else if (event.status == \"Published\") {\r\n return \"Lunch\";\r\n }\r\n else if (event.status == \"Completed\") {\r\n return \"Completed\";\r\n }\r\n else if (event.status == \"Lunch Break\") {\r\n return \"Lunch\";\r\n }\r\n else if (event.status == \"Approved\") {\r\n return \"Approved\";\r\n }\r\n return \"dhx_rent_payed\";\r\n }\r\n else if (vm.mode == 'week' || vm.mode == 'month' || vm.mode == 'day') {\r\n scheduler.config.readonly = true;\r\n if (event.status == \"Assigned\") {\r\n return \"Assigned1\";\r\n }\r\n else if (event.status == \"New\") {\r\n return \"New1\";\r\n }\r\n else if (event.status == \"Broadcasted\") {\r\n return \"Broadcasted1\";\r\n }\r\n else if (event.status == \"Completed\") {\r\n return \"Completed1\";\r\n }\r\n else if (event.status == \"InTransite\") {\r\n return \"InTransite1\";\r\n }\r\n else if (event.status == \"OnSite\") {\r\n return \"OnSite1\";\r\n }\r\n else if (event.status == \"Lunch\") {\r\n return \"Lunch1\";\r\n }\r\n else if (event.status == \"Approved\") {\r\n return \"Approved1\";\r\n }\r\n else if (event.status == \"ReadyToAssign\") {\r\n return \"ReadyToAssign1\";\r\n }\r\n return \"dhx_rent_payed1\";\r\n }\r\n };\r\n\r\n scheduler.init('scheduler_here', firstDayOfCurrentWeek, \"timeline\");\r\n if (sections.tickets.length != 0) {\r\n var sectionlist = $filter('filter')(sections.tickets, function (value) {\r\n return value.status == 'Completed' || value.status == 'Published' || value.status == 'Approved' || value.status == 'Accepted' || value.status == 'Inprogress'\r\n || value.status == 'Lunch Break';\r\n })\r\n sections.tickets = sectionlist;\r\n scheduler.parse(sections.tickets, \"json\");\r\n }\r\n }\r\n\r\n // init();\r\n\r\n\r\n // vm.getCountry = function () {\r\n // RosterShiftService.getCountry(loggedinUser, token).then(function (resp) {\r\n // if (resp.status == 200 && resp.data && resp.data.values.length > 0) {\r\n // vm.Country = resp.data.values;\r\n // vm.getStates(vm.Country[0]);\r\n // $log.log('city', vm.RegionList)\r\n // }\r\n // })\r\n // }\r\n\r\n vm.getStates = function (country) {\r\n RosterShiftService.getStates(loggedinUser, token, country).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length > 0) {\r\n vm.stateList = resp.data.values;\r\n $log.log('states', vm.stateList);\r\n }\r\n }\r\n })\r\n }\r\n\r\n // vm.getCountry();\r\n\r\n\r\n\r\n vm.AutoAssignSelectedTickets = function () {\r\n var ticketId = '';\r\n angular.forEach(vm.AllTicketList, function (t) {\r\n if (t.isChecked) {\r\n ticketId += t.TicketId + \",\";\r\n }\r\n })\r\n ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n if (ticketId != \"\") {\r\n RosterShiftService.AutoAssignTickets(loggedinUser, ticketId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n\r\n vm.SuggestedUserList = [];\r\n vm.SuggestedUserList = resp.data;\r\n vm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n vm.otherfilter = \"New\";\r\n vm.getAllTicketList();\r\n vm.otherfilter = '';\r\n\r\n init();\r\n\r\n } else {\r\n vm.toaster_fail.title = \"Not Found\";\r\n vm.toaster_fail.body = \"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select the job first\");\r\n return;\r\n }\r\n $state.reload();\r\n }\r\n\r\n vm.OpenAutoAssignModal = function () {\r\n autoAssignModalInstance = $uibModal.open({\r\n templateUrl: 'auto_assign_model.html',\r\n scope: $scope\r\n });\r\n }\r\n vm.CloseModal = function () {\r\n autoAssignModalInstance.close();\r\n }\r\n\r\n vm.AutoAssign = function () {\r\n var selectedDate = moment(vm.Selecteddate).format('YYYY-MM-DD');\r\n var itemNames = 'State';\r\n var itemValues = vm.TerritoryState;\r\n RosterShiftService.AutoAssignTicketsForToday(loggedinUser, selectedDate, vm.TransMode, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.SuggestedUserList = [];\r\n vm.SuggestedUserList = resp.data;\r\n autoAssignModalInstance.close();\r\n vm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n vm.otherfilter = \"New\";\r\n vm.getAllTicketList();\r\n vm.otherfilter = '';\r\n init();\r\n\r\n } else {\r\n vm.toaster_fail.title = \"Not Found\";\r\n vm.toaster_fail.body = \"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n\r\n }\r\n })\r\n $state.reload();\r\n }\r\n\r\n // This property will be bound to checkbox in table header\r\n vm.AllTicketList.allTicketSelected = false;\r\n\r\n\r\n\r\n // This executes when entity in table is checked\r\n $scope.selectSingleTicket = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < vm.AllTicketLists.length; i++) {\r\n if (!vm.AllTicketLists[i].isChecked) {\r\n vm.AllTicketLists.allTicketSelected = false;\r\n return;\r\n }\r\n }\r\n\r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.model.allItemsSelected = true;\r\n };\r\n\r\n // This executes when checkbox in table header is checked\r\n $scope.selectAllTicket = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < vm.AllTicketLists.length; i++) {\r\n vm.AllTicketLists[i].isChecked = vm.AllTicketLists.allTicketSelected;\r\n }\r\n };\r\n $(function () {\r\n $('#colorselector').change(function () {\r\n $('.colors').hide();\r\n $('#' + $(this).val()).show();\r\n });\r\n });\r\n\r\n // vm.getAllTools = function(){\r\n // NewTalentPoolService.GetAllToolSets(loggedinUser,token,function(data){\r\n // vm.Asset_ToolList = data;\r\n // },vm.showFailure);\r\n // }\r\n // vm.getAllTools();\r\n\r\n // vm.getAllSchedulingRules = function () {\r\n // SchedulingRuleService.GetAllSecheculingRules(loggedinUser, token).then(function (res) {\r\n // vm.ruleList = res.data;\r\n // vm.toolScRuleList = [];\r\n // vm.assetScRuleList = [];\r\n // vm.certificateScRuleList = [];\r\n // vm.roleScRuleList = [];\r\n // for (var i = 0; i < vm.ruleList.length; i++) {\r\n // if (vm.ruleList[i].RuleType == 'Certificate') {\r\n // vm.certificateScRuleList.push(vm.ruleList[i]);\r\n // } else if (vm.ruleList[i].RuleType == 'Asset') {\r\n // vm.assetScRuleList.push(vm.ruleList[i]);\r\n // } else if (vm.ruleList[i].RuleType == 'Tool') {\r\n // vm.toolScRuleList.push(vm.ruleList[i]);\r\n // } else if (vm.ruleList[i].RuleType == 'Role') {\r\n // vm.roleScRuleList.push(vm.ruleList[i]);\r\n // }\r\n // }\r\n // if (vm.roleScRuleList) {\r\n // vm.GenerateRoleTable();\r\n // }\r\n // if (vm.certificateScRuleList) {\r\n // vm.GenerateCertificateTable();\r\n // }\r\n // if (vm.assetScRuleList) {\r\n // vm.GenerateAssetsTable();\r\n // }\r\n // if (vm.toolScRuleList) {\r\n // vm.GenerateToolTable();\r\n // }\r\n // })\r\n\r\n // }\r\n\r\n // vm.GenerateCertificateTable = function () {\r\n\r\n // vm.headerCompiled_Certi = false;\r\n // vm.selected_Certi = {};\r\n // vm.selectAll_Certi = false;\r\n // vm.toggleAll_Certi = toggleAll_Certi;\r\n // vm.toggleOne_Certi = toggleOne_Certi;\r\n // // var titleHtml_Certi = '
';\r\n\r\n // vm.dtOptions_Certi = DTOptionsBuilder.fromFnPromise(function () {\r\n // var defer = $q.defer();\r\n // defer.resolve(vm.certificateScRuleList);\r\n // return defer.promise;\r\n // })\r\n // .withPaginationType('full_numbers')\r\n // .withOption('order', [])\r\n // .withBootstrap()\r\n // .withOption('createdRow', function (row, data, dataIndex) {\r\n // $compile(angular.element(row).contents())($scope);\r\n // })\r\n // .withOption('headerCallback', function (header) {\r\n // if (!vm.headerCompiled_Certi) {\r\n // // Use this headerCompiled field to only compile header once\r\n // vm.headerCompiled_Certi = true;\r\n // $compile(angular.element(header).contents())($scope);\r\n // }\r\n // });\r\n\r\n\r\n // vm.dtColumns_Certi = [\r\n // DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n // vm.selected_Certi[meta.row] = data.IsEnable;\r\n // return '
';\r\n // }).notSortable(),\r\n // DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n // return '' + data + '';\r\n // }),\r\n // DTColumnBuilder.newColumn('Description').withTitle('Certificate Description').notSortable().renderWith(function (data) {\r\n // return '' + data + '';\r\n // })\r\n\r\n\r\n // ];\r\n\r\n // function toggleAll_Certi(selectAll, selectedItems) {\r\n // for (var id in selectedItems) {\r\n // if (selectedItems.hasOwnProperty(id)) {\r\n // selectedItems[id] = selectAll;\r\n // }\r\n // }\r\n // }\r\n // function toggleOne_Certi(selectedItems) {\r\n // for (var id in selectedItems) {\r\n // if (selectedItems.hasOwnProperty(id)) {\r\n // vm.certificateScRuleList[id].IsEnable = selectedItems[id];\r\n // // if (!selectedItems[id]) {\r\n // // \tvm.selectAll_Certi = false;\r\n // // \treturn;\r\n // // }\r\n // }\r\n // }\r\n // vm.selectAll_Certi = true;\r\n // }\r\n\r\n\r\n\r\n // }\r\n\r\n // vm.GenerateAssetsTable = function () {\r\n\r\n // vm.headerCompiled_Asset = false;\r\n // vm.selected_Asset = {};\r\n // vm.selectAll_Asset = false;\r\n // vm.toggleAll_Asset = toggleAll_Asset;\r\n // vm.toggleOne_Asset = toggleOne_Asset;\r\n // // var titleHtml_Asset = '
';\r\n\r\n // vm.dtOptions_Asset = DTOptionsBuilder.fromFnPromise(function () {\r\n // var defer = $q.defer();\r\n // defer.resolve(vm.assetScRuleList);\r\n // return defer.promise;\r\n // })\r\n // .withPaginationType('full_numbers')\r\n // .withOption('order', [])\r\n // .withBootstrap()\r\n // .withOption('createdRow', function (row, data, dataIndex) {\r\n // $compile(angular.element(row).contents())($scope);\r\n // })\r\n // .withOption('headerCallback', function (header) {\r\n // if (!vm.headerCompiled_Asset) {\r\n // // Use this headerCompiled field to only compile header once\r\n // vm.headerCompiled_Asset = true;\r\n // $compile(angular.element(header).contents())($scope);\r\n // }\r\n // });\r\n\r\n\r\n // vm.dtColumns_Asset = [\r\n // DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n // vm.selected_Asset[meta.row] = data.IsEnable;\r\n // return '
';\r\n // }).notSortable(),\r\n // DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n // return '' + data + '';\r\n // }),\r\n // DTColumnBuilder.newColumn('Description').withTitle('Assets Description').notSortable().renderWith(function (data) {\r\n // return '' + data + '';\r\n // })\r\n\r\n\r\n // ];\r\n\r\n // function toggleAll_Asset(selectAll, selectedItems) {\r\n // for (var id in selectedItems) {\r\n // if (selectedItems.hasOwnProperty(id)) {\r\n // selectedItems[id] = selectAll;\r\n // }\r\n // }\r\n // }\r\n // function toggleOne_Asset(selectedItems) {\r\n // for (var id in selectedItems) {\r\n // if (selectedItems.hasOwnProperty(id)) {\r\n // vm.assetScRuleList[id].IsEnable = selectedItems[id];\r\n // }\r\n // }\r\n // vm.selectAll_Asset = true;\r\n // }\r\n\r\n\r\n\r\n // }\r\n\r\n // vm.GenerateToolTable = function () {\r\n\r\n // vm.headerCompiled_Tool = false;\r\n // vm.selected_Tool = {};\r\n // vm.selectAll_Tool = false;\r\n // vm.toggleAll_Tool = toggleAll_Tool;\r\n // vm.toggleOne_Tool = toggleOne_Tool;\r\n // // var titleHtml_Tool = '
';\r\n\r\n // vm.dtOptions_Tool = DTOptionsBuilder.fromFnPromise(function () {\r\n // var defer = $q.defer();\r\n // defer.resolve(vm.toolScRuleList);\r\n // return defer.promise;\r\n // })\r\n // .withPaginationType('full_numbers')\r\n // .withOption('order', [])\r\n // .withBootstrap()\r\n // .withOption('createdRow', function (row, data, dataIndex) {\r\n // $compile(angular.element(row).contents())($scope);\r\n // })\r\n // .withOption('headerCallbacks', function (header) {\r\n // if (!vm.headerCompiled_Tool) {\r\n // // Use this headerCompiled field to only compile header once\r\n // vm.headerCompiled_Tool = true;\r\n // $compile(angular.element(header).contents())($scope);\r\n // }\r\n // });\r\n\r\n\r\n // vm.dtColumns_Tool = [\r\n // DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n // vm.selected_Tool[meta.row] = data.IsEnable;\r\n // return '
';\r\n // }).notSortable(),\r\n // DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n // return '' + data + '';\r\n // }),\r\n // DTColumnBuilder.newColumn('Description').withTitle('Tools Description').notSortable().renderWith(function (data) {\r\n // return '' + data + '';\r\n // })\r\n\r\n\r\n // ];\r\n\r\n // function toggleAll_Tool(selectAll, selectedItems) {\r\n // for (var id in selectedItems) {\r\n // if (selectedItems.hasOwnProperty(id)) {\r\n // selectedItems[id] = selectAll;\r\n // }\r\n // }\r\n // }\r\n // function toggleOne_Tool(selectedItems) {\r\n // for (var id in selectedItems) {\r\n // if (selectedItems.hasOwnProperty(id)) {\r\n // vm.toolScRuleList[id].IsEnable = selectedItems[id];\r\n // // if (!selectedItems[id]) {\r\n // // \tvm.selectAll_Tool = false;\r\n // // \treturn;\r\n // // }\r\n // }\r\n // }\r\n // vm.selectAll_Tool = true;\r\n // }\r\n\r\n // }\r\n // vm.getAllSchedulingRules();\r\n\r\n // vm.GenerateRoleTable = function () {\r\n\r\n // vm.headerCompiled = false;\r\n // vm.selected = {};\r\n // vm.selectAll = false;\r\n // vm.toggleAll = toggleAll;\r\n // vm.toggleOne = toggleOne;\r\n // // var titleHtml = '
';\r\n\r\n // vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n // var defer = $q.defer();\r\n // defer.resolve(vm.roleScRuleList);\r\n // return defer.promise;\r\n // })\r\n // .withPaginationType('full_numbers')\r\n // .withOption('order', [])\r\n // .withBootstrap()\r\n // .withOption('createdRow', function (row, data, dataIndex) {\r\n // $compile(angular.element(row).contents())($scope);\r\n // })\r\n // .withOption('headerCallback', function (header) {\r\n // if (!vm.headerCompiled) {\r\n // // Use this headerCompiled field to only compile header once\r\n // vm.headerCompiled = true;\r\n // $compile(angular.element(header).contents())($scope);\r\n // }\r\n // });\r\n\r\n\r\n // vm.dtColumns = [\r\n // DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n // vm.selected[meta.row] = data.IsEnable;\r\n // return '
';\r\n // }).notSortable(),\r\n // DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n // return '' + data + '';\r\n // }),\r\n // DTColumnBuilder.newColumn('Description').withTitle('Role Description').notSortable().renderWith(function (data) {\r\n // return '' + data + '';\r\n // })\r\n\r\n\r\n // ];\r\n\r\n // function toggleAll(selectAll, selectedItems) {\r\n // for (var id in selectedItems) {\r\n // if (selectedItems.hasOwnProperty(id)) {\r\n // selectedItems[id] = selectAll;\r\n // }\r\n // }\r\n // }\r\n // function toggleOne(selectedItems) {\r\n // for (var id in selectedItems) {\r\n // if (selectedItems.hasOwnProperty(id)) {\r\n // vm.roleScRuleList[id].IsEnable = selectedItems[id];\r\n // // if (!selectedItems[id]) {\r\n // // \tvm.selectAll = false;\r\n // // \treturn;\r\n // // }\r\n // }\r\n\r\n // }\r\n // vm.selectAll = true;\r\n // }\r\n\r\n // }\r\n\r\n\r\n \r\n vm.disableBookingButton = false;\r\n\r\n vm.ShiftSwapToUser = function (userId) {\r\n vm.disableBookingButton = true;\r\n RosterShiftService.ShiftSwapToUser(vm.shiftId, userId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 202 && resp) {\r\n vm.disableBookingButton = false;\r\n $scope.toggleMenu();\r\n vm.showSuccess(\"Success\", 'Shift swapped successfully');\r\n $timeout(function () {\r\n vm.GetAllShiftsForDate();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableBookingButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n\r\n vm.AssignationRulePriorityList = [0, 1, 2, 3, 4, 5, 6];\r\n vm.AssignationRules = function () {\r\n AssignationRuleService.getAssignationRule(loggedinUser, token).then(function (resp) {\r\n vm.AssignationRuleList = [];\r\n\r\n vm.AssignationRuleList = resp.data;\r\n for (var i = 0; i < vm.AssignationRuleList.length; i++) {\r\n var rule = vm.AssignationRuleList[i];\r\n if (rule.IsEnable && i == 0) {\r\n\r\n vm.AssignName = rule.OrderByName;\r\n vm.AssignPriorityIndex = rule.PriorityIndex\r\n\r\n }\r\n else if (rule.IsEnable && i == 1) {\r\n vm.AssignName1 = rule.OrderByName;\r\n vm.AssignPriorityIndex1 = rule.PriorityIndex\r\n\r\n }\r\n else if (rule.IsEnable && i == 2) {\r\n vm.AssignName2 = rule.OrderByName;\r\n vm.AssignPriorityIndex2 = rule.PriorityIndex\r\n\r\n }\r\n else if (rule.IsEnable && i == 3) {\r\n vm.AssignName3 = rule.OrderByName;\r\n vm.AssignPriorityIndex3 = rule.PriorityIndex\r\n\r\n }\r\n else if (rule.IsEnable && i == 4) {\r\n vm.AssignName4 = rule.OrderByName;\r\n vm.AssignPriorityIndex4 = rule.PriorityIndex\r\n\r\n }\r\n else if (rule.IsEnable && i == 5) {\r\n vm.AssignName5 = rule.OrderByName;\r\n vm.AssignPriorityIndex5 = rule.PriorityIndex\r\n\r\n }\r\n }\r\n\r\n })\r\n };\r\n vm.AssignationRules();\r\n\r\n\r\n})\r\n\nvar app =angular.module('inspinia').controller('AutoAssignedController',function(ScheduleAssignService,UIURL,FreelancerFixedService,\r\n $log, $state, $localStorage, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile,\r\n uiCalendarConfig, ImageUrl,$filter){\r\n\r\n\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserSkill = $localStorage.loggedInUser_SkillSet;\r\n var loggedinUserRegion = $localStorage.loggedInUser_Region;\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n }else{\r\n var token = $localStorage.token;\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.TimeoutFunc = $scope.$parent.$parent.main.TimeoutFunc;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.loggedinAs = $localStorage.loggedinAs; \r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.MobiforceCommission = vm.getAccountConfigSetting('MobiforceCommissionPercentage');\r\n vm.VendorAssignation = vm.getAccountConfigSetting('VendorAssignation');\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.AllTicketList = '';\r\n vm.filterCriteria1 = [\"Price\",\"Distance\",\"Ratings\"];\r\n vm.filterCriteria2 = [\"Price\",\"Distance\",\"Ratings\"];\r\n vm.filterCriteria3 = [\"Price\",\"Distance\",\"Ratings\"];\r\n vm.selectedFilter1 = 'Distance';\r\n vm.selectedFilter2= 'Ratings';\r\n vm.selectedFilter3= 'Price';\r\n vm.disablefilters = true;\r\n vm.range = '50';\r\n vm.isCurrentLocation = true;\r\n vm.selectedRow = null; // initialize our variable to null\r\n vm.selectedFreelancers = [];\r\n vm.SuggestedUserList = [];\r\n vm.AssignTicektData = [];\r\n vm.AllAssignUserDetails=[];\r\n $scope.AssignSelectedUser={};\r\n $scope.AssignSelectedUser.allItemsSelected = false;\r\n vm.AllAssignUserList =[];\r\n vm.BroadcastedUserList =[];\r\n vm.ReadyToAssignList =[];\r\n $scope.BroadcastedUser ={};\r\n $scope.BroadcastedUser.allItemsSelected = false;\r\n vm.TransMode = 'driving';\r\n \r\n vm.Mode = 'List';\r\n vm.TicketStatus = 'New';\r\n vm.cities = [];\r\n vm.markers = [];\r\n var NewJobIcon = UIURL+'/assets/images/patterns/NewJobIcon.png';\r\n var BroadcastedJobIcon = UIURL+'/assets/images/patterns/BroadcastedJobIcon.png';\r\n var AssignedJobIcon = UIURL+'/assets/images/patterns/AssignedJobIcon.png';\r\n var CompletedJobIcon = UIURL+'/assets/images/patterns/completed.png';\r\n var flIcon = UIURL+'/assets/images/patterns/delivery-man1.png';\r\n var ftIcon = UIURL+'/assets/images/patterns/delivery-man1.png';\r\n var fvIcon = UIURL+'/assets/images/patterns/delivery-man1.png';\r\n var vIcon = UIURL+'/assets/images/patterns/delivery-man1.png';\r\n var DefaultImage = UIURL+'/assets/images/patterns/Photo1.png';\r\n vm.InfoWindow;\r\n vm.selectedTicket = '';\r\n vm.BroadcastedJobList = '';\r\n var listdata=[];\r\n //vm.filterUserData = 'All';\r\n \r\n\r\n $scope.editingData = {};\r\n $scope.modify = function(list){ \r\n $scope.editingData[list.UserId] = true;\r\n };\r\n\r\n\r\n $scope.update = function(list){\r\n if(list.Price==0){\r\n vm.showFailure(\"Failed\",\"Bid price can't be zero.\");\r\n }else{\r\n $scope.editingData[list.UserId] = false;\r\n }\r\n \r\n };\r\n\r\n //loggedinUser,itemNames,itemValues, token\r\n vm.GetTicketsForAssignation = function(){\r\n if (vm.VerticalName!='IMS' || vm.VerticalName!='Spectro Labs') {\r\n var itemNames = '';\r\n var itemValues = '';\r\n if(loggedinUserSkill==\"VSAT\"){\r\n itemNames+=\"Template\";\r\n itemValues+=\"VSAT CCR\";\r\n } else if(loggedinUserSkill==\"LeaseLine\"){\r\n itemNames+=\"Template\";\r\n itemValues+=\"LeaseLine CCR\";\r\n }\r\n ScheduleAssignService.GetTicketsByFilter(loggedinUser,itemNames,itemValues,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n var ticketData = [];\r\n vm.AllTicketList = resp.data;\r\n ticketData = vm.AllTicketList;\r\n // vm.selectedTicket = ticketData[0];\r\n vm.disablefilters = false;\r\n // vm.GetSchedulingResults();\r\n // GetSchedulingEventforToday(loggedinUser);\r\n //scheduler.clearAll();\r\n }\r\n })\r\n }\r\n }\r\n \r\n vm.round2Decimal = function (no) {\r\n return Math.round(no * 100) / 100; \r\n }\r\n\r\n\r\n vm.model = {};\r\n vm.model.allItemsSelected = false;\r\n vm.model = [{ \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\":\"Field Engineer\"},\r\n /* { \"key\": 2, \"Role\": \"Field Engineer\", \"userType\":\"Freelancer\", \"Value\":\"Freelancer\"},*/\r\n { \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Fixed Team\", \"Value\":\"Vendor\"},\r\n /* { \"key\": 4, \"Role\": \"Vendor Manager\", \"userType\":\"Freelancer\", \"Value\":\"Freelancer Vendor\"}*/\r\n ];\r\n \r\n vm.selectEntityFilter = function () {\r\n var newList = [];\r\n var usersList = angular.copy(vm.SuggestedUserList.users);\r\n vm.TestCase = false;\r\n for (var i = 0; i < vm.model.length; i++) {\r\n if (!vm.model[i].isChecked) {\r\n vm.TestCase = true;\r\n vm.model.allItemsSelected = false;\r\n var Role =vm.model[i].Role;\r\n var userType =vm.model[i].userType;\r\n var allIndex = [];\r\n /*usersList.some(function(obj, x) {\r\n if(obj.role == Role && obj.userType == userType){\r\n delete usersList[x];\r\n } else {\r\n false;\r\n }\r\n });*/\r\n newList =[];\r\n /*angular.forEach(usersList, function(d){\r\n if(d){\r\n newList.push(d);\r\n }\r\n })*/\r\n }\r\n }\r\n if(newList=='' && vm.TestCase == false){\r\n newList= vm.SuggestedUserList.users;\r\n // scheduler.updateCollection(\"sections\", newList);\r\n vm.model.allItemsSelected = true;\r\n }else{\r\n // scheduler.updateCollection(\"sections\", newList);\r\n }\r\n };\r\n\r\n vm.selectAllFilter = function () {\r\n for (var i = 0; i < vm.model.length; i++) {\r\n vm.model[i].isChecked = vm.model.allItemsSelected;\r\n }\r\n /*if(vm.model.allItemsSelected==true){\r\n scheduler.updateCollection(\"sections\", vm.SuggestedUserList.users);\r\n }else{\r\n var freelist =[];\r\n scheduler.updateCollection(\"sections\",freelist);\r\n }*/\r\n };\r\n vm.model.allItemsSelected = true;\r\n vm.selectAllFilter();\r\n\r\n\r\n vm.FilterData = function(item,level){\r\n if (level == 1) {\r\n vm.filterCriteria2 = [];\r\n angular.forEach(vm.filterCriteria1,function(d){\r\n if (d!=item) {\r\n vm.filterCriteria2.push(d);\r\n }\r\n })\r\n }else if(level == 2){\r\n vm.filterCriteria3 = [];\r\n angular.forEach(vm.filterCriteria1,function(d){\r\n if (d!=item) {\r\n if (d!=vm.selectedFilter1) {\r\n vm.filterCriteria3.push(d);\r\n } \r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n \r\n \r\n // This property will be bound to checkbox in table header\r\n vm.AllTicketList.allTicketSelected = false;\r\n \r\n \r\n \r\n // This executes when entity in table is checked\r\n $scope.selectSingleTicket = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < vm.AllTicketList.length; i++) {\r\n if (!vm.AllTicketList[i].isChecked) {\r\n vm.AllTicketList.allTicketSelected = false;\r\n return;\r\n }\r\n }\r\n \r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.model.allItemsSelected = true;\r\n };\r\n \r\n // This executes when checkbox in table header is checked\r\n $scope.selectAllTicket = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < vm.AllTicketList.length; i++) {\r\n vm.AllTicketList[i].isChecked = vm.AllTicketList.allTicketSelected;\r\n }\r\n };\r\n \r\n vm.AutoAssign = function(){\r\n \r\n\r\n var ticketId = '';\r\n\r\n angular.forEach(vm.AllTicketList, function (t) {\r\n if (t.isChecked) {\r\n ticketId += t.TicketId + \",\";\r\n }\r\n })\r\n ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n if(ticketId!=\"\"){\r\n ScheduleAssignService.AutoAssignTickets(loggedinUser,ticketId,token).then(function(resp){\r\n if (resp && resp.status==200 ) {\r\n \r\n vm.SuggestedUserList = []; \r\n vm.SuggestedUserList = resp.data;\r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n vm.GetTicketsForAssignation();\r\n init();\r\n \r\n }else{\r\n vm.toaster_fail.title=\"Not Found\";\r\n vm.toaster_fail.body=\"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n \r\n }\r\n })\r\n }else{\r\n vm.showFailure(\"Failed\",\"Please select the job first\");\r\n }\r\n \r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n vm.GetJobsByFilter = function(item,value){\r\n if (item == 'Priority') {\r\n var itemNames = 'Priority';\r\n var itemValues = value;\r\n ScheduleAssignService.GetTicketsByFilter(loggedinUser,itemNames,itemValues).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n vm.AllTicketList = resp.data;\r\n }\r\n })\r\n }\r\n }\r\n \r\n vm.getBroadcastedTickets = function(){\r\n // var loggedinUser1 = 'U350000000001'\r\n var itemNames = 'Ticket Status';\r\n var itemValues = 'Broadcasted';\r\n if(vm.VerticalName=='IMS'){\r\n if(loggedinUserSkill==\"VSAT\"){\r\n itemNames+=\",Template\";\r\n itemValues+=\",VSAT CCR\";\r\n } else if(loggedinUserSkill==\"LeaseLine\"){\r\n itemName+=\",Template\";\r\n itemValues+=\",LeaseLine CCR\";\r\n }\r\n }\r\n ScheduleAssignService.GetTicketsByStatus(loggedinUser,itemNames, itemValues,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n var ticketData = [];\r\n vm.BroadcastedJobList = resp.data;\r\n // ticketData = vm.BroadcastedJobList;\r\n // vm.selectedTicket = ticketData[0];\r\n vm.disablefilters = false;\r\n // vm.GetSchedulingResults();\r\n GetSchedulingEventforToday(loggedinUser);\r\n scheduler.clearAll();\r\n }\r\n })\r\n }\r\n \r\n vm.getReadyToAssign= function(){\r\n\r\n // var loggedinUser1 = 'U350000000001'\r\n var itemNames = 'Ticket Status';\r\n var itemValues = 'ReadyToAssign';\r\n if(vm.VerticalName=='IMS'){\r\n if(loggedinUserSkill==\"VSAT\"){\r\n itemNames+=\",Template\";\r\n itemValues+=\",VSAT CCR\";\r\n } else if(loggedinUserSkill==\"LeaseLine\"){\r\n itemName+=\",Template\";\r\n itemValues+=\",LeaseLine CCR\";\r\n }\r\n }\r\n ScheduleAssignService.GetTicketsByStatus(loggedinUser,itemNames, itemValues,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n var ticketData = [];\r\n vm.ReadyToAssignList = resp.data;\r\n // ticketData = vm.BroadcastedJobList;\r\n // vm.selectedTicket = ticketData[0];\r\n vm.disablefilters = false;\r\n // vm.GetSchedulingResults();\r\n GetSchedulingEventforToday(loggedinUser);\r\n scheduler.clearAll();\r\n }\r\n })\r\n }\r\n \r\n \r\n\r\n\r\n vm.setClickedRowNew = function(index,data){ \r\n //function that sets the value of selectedRow to current index\r\n vm.selectedRow = index;\r\n\r\n vm.selectedTicket = data;\r\n vm.disablefilters = false;\r\n if (vm.range!= '') {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n\r\n vm.setClickedRowBroad = function(index,data){ //function that sets the value of selectedRow to current index\r\n vm.selectedRow = index;\r\n vm.selectedTicket = data;\r\n vm.disablefilters = false;\r\n if (vm.range!= '') {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n\r\n vm.setSelectedFreelancers = function(index,data){\r\n if( vm.selectedFreelancers.indexOf(data) > -1 ){\r\n vm.selectedFreelancers.splice(vm.selectedFreelancers.indexOf(data), 1);\r\n }\r\n else{\r\n vm.selectedFreelancers.push(data);\r\n }\r\n }\r\n\r\n vm.isSelected = function(data){\r\n var bool = vm.selectedFreelancers.indexOf(data) >-1;\r\n return bool;\r\n }\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : DefaultImage;\r\n }\r\n\r\n vm.filterUsers = function(role){\r\n if (role == 'Field Engineer') {\r\n vm.filterUserData = 'Field Engineer';\r\n }else if(role == 'Freelancer'){\r\n vm.filterUserData = 'Freelancer';\r\n }else if(role == 'Vendor Manager'){\r\n vm.filterUserData = 'Vendor Manager';\r\n } \r\n }\r\n\r\n vm.ChangeMode = function (mode) {\r\n if(mode == 'List'){\r\n vm.Mode = 'List';\r\n if(vm.selectedTicket == ''){\r\n GetSchedulingEventforToday(loggedinUser);\r\n } else {\r\n vm.GetSchedulingResults();\r\n }\r\n }\r\n }\r\n\r\n vm.GetSchedulingResults = function(){\r\n \r\n vm.cities = [];\r\n vm.markers = [];\r\n if (vm.TicketStatus == 'New') {\r\n if (vm.selectedTicket=='' || vm.selectedTicket==null) {\r\n // vm.showFailure(\"Please select a job\");\r\n }else{\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function(d){\r\n if(d.isChecked){\r\n roleList.push({\"UserRole\":d.Role, \"UserType\":d.userType});\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.TicketId;\r\n\r\n // obj.jobId = vm.selectedTicket.LinkId?vm.selectedTicket.LinkId:vm.selectedTicket.TicketId;\r\n obj.JobAccountId = '';\r\n obj.FromDate = new Date().toISOString().slice(0,10);\r\n obj.ToDate = new Date().toISOString().slice(0,10);\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.RangeFromJob = parseInt(vm.range*1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList;\r\n if (vm.selectedFilter1!=undefined && vm.selectedFilter1!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter1.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter1.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate'; \r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2!=undefined && vm.selectedFilter2!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter2.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter2.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3!=undefined && vm.selectedFilter3!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n }else if (vm.selectedFilter3.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating';\r\n }else if (vm.selectedFilter3.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj,loggedinUser,token).then(function(resp){\r\n if (resp && resp.status==200 && resp.data && resp.data.users.length>0) {\r\n vm.SuggestedUserList = [];\r\n vm.BroadcastedList = [];\r\n vm.BroadcastedUserList =[];\r\n vm.SuggestedUserList = resp.data;\r\n vm.UserList = resp.data.users;\r\n angular.forEach(vm.UserList, function(d){\r\n if(d.userType == 'Freelancer'){\r\n vm.BroadcastedList.push(d);\r\n vm.BroadcastedUserList.push({\"UserId\":d.id,\"Role\":d.role,\"Name\":d.name,\"Distance\":d.UserDistance,\"SuggestedPrice\":d.BIDCounterRate,\"type\":d.userType,\"Price\": d.BIDCounterRate});\r\n \r\n }\r\n })\r\n $scope.BroadcastedUser =vm.BroadcastedUserList;\r\n \r\n vm.GetResult(resp.data.users,vm.selectedTicket.TicketId,vm.selectedTicket.LinkId,vm.selectedTicket.StartTime,vm.selectedTicket.EndTime,vm.selectedTicket.TicketStatus);\r\n \r\n \r\n init();\r\n vm.selectEntityFilter();\r\n // vm.MapIntegration()\r\n // vm.MapData();\r\n }else{\r\n vm.toaster_fail.title=\"Not Found\";\r\n vm.toaster_fail.body=\"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n GetSchedulingEventforToday(loggedinUser);\r\n }\r\n })\r\n }\r\n } else if (vm.TicketStatus == 'Broadcasted') {\r\n if (vm.selectedTicket=='' || vm.selectedTicket==null) {\r\n // vm.showFailure(\"Please select a job\");\r\n }else{\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function(d){\r\n if(d.isChecked){\r\n roleList.push({\"UserRole\":d.Role, \"UserType\":d.userType});\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.JobId;\r\n // obj.jobId = vm.selectedTicket.LinkId?vm.selectedTicket.LinkId:vm.selectedTicket.TicketId;\r\n obj.JobAccountId = '';\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.FromDate = new Date().toISOString().slice(0,10);\r\n obj.ToDate = new Date().toISOString().slice(0,10);\r\n obj.RangeFromJob = parseInt(vm.range*1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList;\r\n if (vm.selectedFilter1!=undefined && vm.selectedFilter1!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter1.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter1.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate'; \r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2!=undefined && vm.selectedFilter2!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter2.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter2.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3!=undefined && vm.selectedFilter3!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n }else if (vm.selectedFilter3.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating';\r\n }else if (vm.selectedFilter3.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj,loggedinUser,token).then(function(resp){\r\n if (resp && resp.status==200 && resp.data && resp.data.users.length>0) {\r\n vm.SuggestedUserList = [];\r\n vm.SuggestedUserList =resp.data;\r\n vm.userList = resp.data;\r\n vm.GetResult(resp.data.users,vm.selectedTicket.JobId,vm.selectedTicket.LinkId,vm.selectedTicket.StartDateTime,vm.selectedTicket.EndDateTime,vm.selectedTicket.Status);\r\n \r\n init();\r\n vm.selectEntityFilter();\r\n // vm.MapIntegration()\r\n // vm.MapData();\r\n }else{\r\n vm.toaster_fail.title=\"Not Found\";\r\n vm.toaster_fail.body=\"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n GetSchedulingEventforToday(loggedinUser);\r\n }\r\n })\r\n }\r\n }\r\n if (vm.TicketStatus == 'ReadyToAssign') {\r\n if (vm.selectedTicket=='' || vm.selectedTicket==null) {\r\n // vm.showFailure(\"Please select a job\");\r\n }else{\r\n var obj = {};\r\n var roleList = [];\r\n angular.forEach(vm.model, function(d){\r\n if(d.isChecked){\r\n roleList.push({\"UserRole\":d.Role, \"UserType\":d.userType});\r\n }\r\n })\r\n obj.OrderByUsers = [];\r\n obj.JobId = vm.selectedTicket.JobId;\r\n obj.JobAccountId = '';\r\n obj.ActOnCurrentLocation = vm.isCurrentLocation;\r\n obj.FromDate = new Date().toISOString().slice(0,10);\r\n obj.ToDate = new Date().toISOString().slice(0,10);\r\n obj.RangeFromJob = parseInt(vm.range*1000);\r\n obj.FETravelChargePerKM = 10;\r\n obj.TransportMode = vm.TransMode;\r\n obj.UserConfigList = roleList; \r\n if (vm.selectedFilter1!=undefined && vm.selectedFilter1!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 1;\r\n if (vm.selectedFilter1.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter1.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter1.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate'; \r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter2!=undefined && vm.selectedFilter2!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 2;\r\n if (vm.selectedFilter2.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance'; \r\n }else if (vm.selectedFilter2.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating'; \r\n }else if (vm.selectedFilter2.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n if (vm.selectedFilter3!=undefined && vm.selectedFilter3!='') {\r\n var orderObj = {};\r\n orderObj.PriorityOrder = 3;\r\n if (vm.selectedFilter3.indexOf('Distance')>=0) {\r\n orderObj.OrderByField = 'UserDistance';\r\n }else if (vm.selectedFilter3.indexOf('Ratings')>=0) {\r\n orderObj.OrderByField = 'UserRating';\r\n }else if (vm.selectedFilter3.indexOf('Price')>=0) {\r\n orderObj.OrderByField = 'BIDCounterRate';\r\n }\r\n obj.OrderByUsers.push(orderObj);\r\n }\r\n\r\n ScheduleAssignService.GetSchedulingEvaluationResult(obj,loggedinUser,token).then(function(resp){\r\n if (resp && resp.status==200 && resp.data && resp.data.users.length>0) {\r\n vm.SuggestedUserList = [];\r\n \r\n vm.SuggestedUserList =resp.data;\r\n vm.userList = resp.data;\r\n vm.GetResult(resp.data.users,vm.selectedTicket.JobId,vm.selectedTicket.LinkId,vm.selectedTicket.StartDateTime,vm.selectedTicket.EndDateTime,vm.selectedTicket.Status);\r\n \r\n init();\r\n vm.selectEntityFilter();\r\n // vm.MapIntegration()\r\n // vm.MapData();\r\n }else{\r\n vm.toaster_fail.title=\"Not Found\";\r\n vm.toaster_fail.body=\"No users found\";\r\n toaster.pop(vm.toaster_fail);\r\n GetSchedulingEventforToday(loggedinUser);\r\n\r\n }\r\n })\r\n }\r\n } \r\n }\r\n\r\n vm.GetResult = function(user,ticketid,linkId,start,end,status){\r\n // scheduler.clearAll();\r\n \r\n var ticket = vm.selectedTicket.TicketId?vm.selectedTicket.TicketId:vm.selectedTicket.JobId; \r\n \r\n var evs = scheduler.getEvents();\r\n if(vm.TicketStatus==\"ReadyToAssign\"){\r\n var bidRate = user[0].BIDCounterRate;\r\n var readyList = $filter('filter')(user,function(value){\r\n return value.BIDCounterRate!=0;\r\n })\r\n if(readyList.length!=0){\r\n var Id = readyList[0].id;\r\n var Role = readyList[0].role;\r\n var userType = readyList[0].userType;\r\n var Name = readyList[0].name;\r\n var Distance = readyList[0].UserDistance;\r\n var SuggestedPrice = readyList[0].BIDCounterRate;\r\n var Price = readyList[0].BIDCounterRate;\r\n }else{\r\n var Id = user[0].id\r\n var Role = user[0].role;\r\n var userType = user[0].userType;\r\n var Name = user[0].name;\r\n var Distance = user[0].UserDistance;\r\n var SuggestedPrice = user[0].BIDCounterRate;\r\n var Price = user[0].BIDCounterRate;\r\n }\r\n }else{\r\n var Id = user[0].id;\r\n var Role = user[0].role;\r\n var userType = user[0].userType;\r\n var Name = user[0].name;\r\n var Distance = user[0].UserDistance;\r\n var SuggestedPrice = user[0].BIDCounterRate;\r\n var Price = user[0].BIDCounterRate;\r\n }\r\n /* var Role = user[0].role;\r\n var userType = user[0].userType;\r\n var Name = user[0].name;\r\n var Distance = user[0].UserDistance;\r\n var SuggestedPrice = user[0].BIDCounterRate;\r\n var Price = user[0].BIDCounterRate;*/\r\n var start_date = moment(start).format(\"DD-MM-YYYY HH:mm\");\r\n var end_date= moment(end).format(\"DD-MM-YYYY HH:mm\");\r\n var today = new Date(); \r\n var newdate = moment(today).format(\"DD-MM-YYYY\");\r\n\r\n \r\n\r\n // if(start_datetoday){\r\n var sdate = start_date.split(\" \")[0];\r\n var stime = start_date.split(\" \")[1];\r\n var edate = end_date.split(\" \")[0];\r\n var etime = end_date.split(\" \")[1];\r\n start_date = newdate + ' ' + stime;\r\n end_date = newdate + ' ' + etime;\r\n }\r\n // vm.AllAssignUserList.push({\"UserId\":Id,\"TicketId\":ticketid}); \r\n\r\n //var fromDate = new Date().toISOString().slice(0,10);\r\n //var toDate = new Date().toISOString().slice(0,10);\r\n\r\n var AssignList =[];\r\n \r\n if(vm.AllAssignUserDetails.length!=0){\r\n console.log(vm.AllAssignUserDetails);\r\n AssignList = $filter('filter')(vm.AllAssignUserDetails,function(value){\r\n // return value.UserId==Id && value.start_date==start_date;\r\n //return value.UserId==Id;\r\n return value.TicketId==ticket;\r\n\r\n })\r\n console.log(AssignList);\r\n /// it is used for the \r\n if(AssignList.length!=0){\r\n var checklinkId = AssignList[0].LinkId;\r\n AssignList =[];\r\n var evs = scheduler.getEvents();\r\n var checkList = $filter('filter')(evs,function(value){\r\n return value.LinkId==checklinkId;\r\n })\r\n var d = checkList[0].id;\r\n scheduler.deleteEvent(d);\r\n }\r\n \r\n if(AssignList.length==0){\r\n var eventId = scheduler.addEvent({\r\n start_date: start_date,\r\n end_date: end_date,\r\n assignedUserid: Id,\r\n status :status,\r\n Role :Role,\r\n TicketId:ticket,\r\n Distance :Distance,\r\n LinkId: linkId,\r\n SuggestedPrice:SuggestedPrice,\r\n Price : Price,\r\n Name : Name,\r\n userType :userType\r\n });\r\n\r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkId,\"Role\":Role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":Name,\"Distance\":Distance,\"SuggestedPrice\":SuggestedPrice,\"type\":userType,\"Price\": Price});\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n }else if(vm.AllAssignUserDetails.length==0){\r\n var eventId = scheduler.addEvent({\r\n start_date: start_date,\r\n end_date: end_date,\r\n assignedUserid: Id,\r\n status :status,\r\n Role :Role,\r\n TicketId:ticket,\r\n LinkId: linkId,\r\n Distance :Distance,\r\n SuggestedPrice:SuggestedPrice,\r\n Price : Price,\r\n Name : Name,\r\n userType: userType,\r\n });\r\n \r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkId,\"Role\":Role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":Name,\"Distance\":Distance,\"SuggestedPrice\":SuggestedPrice,\"type\":userType,\"Price\": Price});\r\n \r\n }\r\n }\r\n\r\n /* vm.AssignTicketsTimeline = function () {\r\n vm.AllUserList =[];\r\n if(vm.selectedFreelancers == ''){\r\n vm.showFailure(\"Please select users.\")\r\n } else {\r\n angular.forEach(vm.selectedFreelancers,function(data){\r\n if(data.Role=='Field Engineer' && data.type=='Fixed Team') {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Field Engineer' && data.type == 'Freelancer') {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Vendor Manager' && data.type == 'Fixed Team') {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n }\r\n })\r\n\r\n ScheduleAssignService.AssignTicketssTimeline(loggedinUser,vm.AllUserList,token).then(function(resp){\r\n if (resp.status == 200 && resp.data) {\r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n // vm.TimeoutFunc(1500, vm.GetTicketsForAssignation());\r\n // vm.TimeoutFGetSchedulingEventforToday(loggedinUser));\r\n //vm.GetTicketsForAssignation();\r\n // GetSchedulingEventforToday(loggedinUser);\r\n vm.selectedFreelancers = [];\r\n vm.AssignModal.close();\r\n\r\n\r\n scheduler.clearAll();\r\n\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n // vm.AssignModal.close();\r\n GetSchedulingEventforToday(loggedinUser);\r\n vm.GetTicketsForAssignation();\r\n }, 1500);\r\n // $timeout(function() {\r\n // vm.GetTicketsForAssignation();\r\n // }, 1000);\r\n if(vm.Mode=='Map') {\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n }else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }\r\n }*/\r\n\r\n\r\n vm.AssignTicketsTimeline = function () {\r\n \r\n vm.AllUserList =[];\r\n angular.forEach(vm.AllAssignUserDetails,function(data){\r\n\r\n if(data.Role=='Field Engineer' && data.type=='Fixed Team' && data.isChecked ==true) {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Field Engineer' && data.type == 'Freelancer' && data.isChecked ==true) {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Vendor Manager' && data.type == 'Fixed Team' && data.isChecked ==true) {\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n } else if (data.Role=='Vendor Manager' && data.type == 'Freelancer' && data.isChecked ==true){\r\n vm.AllUserList.push({\"UserId\":data.UserId,\"TicketId\":data.TicketId?data.TicketId:data.LinkId,\"StartTime\":data.start_date,\"Endtime\":data.end_date,\"SuggestedPrice\":data.SuggestedPrice,\"AssignPrice\":data.Price ,\"Distance\":data.Distance})\r\n }\r\n })\r\n if(vm.AllUserList == ''){\r\n vm.showFailure(\"Please select users.\")\r\n } else {\r\n ScheduleAssignService.AssignTicketsTimeline(loggedinUser,vm.AllUserList,token).then(function(resp){\r\n if (resp && resp.data) {\r\n \r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n scheduler.clearAll();\r\n\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n GetSchedulingEventforToday(loggedinUser);\r\n if(vm.TicketStatus==\"New\"){\r\n vm.GetTicketsForAssignation();\r\n }else if(vm.TicketStatus==\"ReadyToAssign\"){\r\n vm.getReadyToAssign();\r\n }\r\n \r\n \r\n }, 1500);\r\n if(vm.Mode=='Map') {\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n }else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\nvm.clearData = function () {\r\n vm.AllAssignUserDetails = [];\r\n vm.selectedTicket = '';\r\n vm.mapMarkers = [];\r\n } \r\n\r\n\r\n vm.OpenBroadcastModal = function(){\r\n if(vm.BroadcastedUserList == ''){\r\n vm.showFailure(\"Not found\",\"No users found\");\r\n } else {\r\n $scope.BroadcastedUser.allItemsSelected = true;\r\n $scope.selectAllBoardUser();\r\n vm.BroadcastModal = $uibModal.open({\r\n templateUrl: 'Broadcast-modal',\r\n backdrop: 'static',\r\n size:'lg',\r\n scope: $scope\r\n });\r\n }\r\n }\r\n \r\n vm.CloseBroadcastModal = function(){\r\n vm.selectedFreelancers = [];\r\n vm.BroadcastModal.close();\r\n }\r\n\r\n vm.OpenAssignModal = function(){ \r\n vm.AllAssignUserDetails =[];\r\n var evs = scheduler.getEvents();\r\n var t = vm.TicketStatus;\r\n\r\n\r\n var eventslist = $filter('filter')(evs,function(value){\r\n return value.Price ==0;\r\n })\r\n \r\n angular.forEach(evs,function(data){\r\n\r\n if(data.status=='New'){\r\n var Id= data.assignedUserid;\r\n var ticketid= data.TicketId;\r\n var linkid = data.LinkId;\r\n var start_date =moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users,function(value){\r\n if(value.id==Id && value.userType!='Freelancer'){ \r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkid,\"Role\":value.role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":value.name,\"Distance\":value.UserDistance,\"SuggestedPrice\":value.BIDCounterRate,\"type\":value.userType,\"Price\": value.BIDCounterRate});\r\n\r\n }\r\n\r\n })\r\n }else if(data.status=='Broadcasted'){\r\n var Id= data.assignedUserid;\r\n var ticketid= data.TicketId;\r\n var linkid = data.LinkId;\r\n var start_date =moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users,function(value){\r\n if(value.id==Id){\r\n \r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkid,\"Role\":value.role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":value.name,\"Distance\":value.UserDistance,\"SuggestedPrice\":value.BIDCounterRate,\"type\":value.userType,\"Price\": value.BIDCounterRate});\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n\r\n })\r\n }else if(data.status=='ReadyToAssign'){\r\n \r\n var Id= data.assignedUserid;\r\n var ticketid= data.TicketId;\r\n var linkid = data.LinkId;\r\n var start_date =moment(data.start_date).format('YYYY-MM-DD HH:mm');\r\n var end_date = moment(data.end_date).format('YYYY-MM-DD HH:mm');\r\n\r\n angular.forEach(vm.SuggestedUserList.users,function(value){\r\n if(value.id==Id){\r\n \r\n vm.AllAssignUserDetails.push({\"UserId\":Id,\"TicketId\":ticketid,\"LinkId\":linkid,\"Role\":value.role,\"start_date\":start_date,\"end_date\":end_date,\"Name\":value.name,\"Distance\":value.UserDistance,\"SuggestedPrice\":value.BIDCounterRate,\"type\":value.userType,\"Price\": value.BIDCounterRate});\r\n // console.log(vm.AllAssignUserDetails);\r\n }\r\n\r\n })\r\n }\r\n })\r\n \r\n \r\n\r\n $scope.AssignSelectedUser = vm.AllAssignUserDetails;\r\n $scope.AssignSelectedUser.allItemsSelected = true;\r\n $scope.selectAll();\r\n\r\n vm.AssignModal = $uibModal.open({\r\n templateUrl: 'Assign-modal',\r\n size:'lg',\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n // }\r\n }\r\n\r\n vm.CloseAssignModal = function(){\r\n vm.selectedFreelancers = [];\r\n vm.AssignModal.close();\r\n }\r\n\r\n\r\n //Broadcast Bids/Jobs\r\n vm.BroadcastTicket = function(){\r\n\r\n\r\n var BidData = [];\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n obj.JobID = vm.selectedTicket.TicketId;\r\n obj.BIDDuration = vm.selectedTicket.BidDuration;\r\n // obj.BroadCastRate = vm.selectedTicket.BroadcastRate\r\n //obj.BroadCastGrossRate = vm.selectedTicket.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = parseInt(vm.selectedTicket.MobiforceCommission);\r\n // obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n\r\n \r\n var UserData = [];\r\n /* angular.forEach(vm.selectedFreelancers, function (d) {\r\n if (d) {*/\r\n angular.forEach($scope.BroadcastedUser, function (d) {\r\n if (d.isChecked==true) {\r\n // UserData.push(d.UserId);\r\n UserData.push({\"UserId\":d.UserId,\"SuggestedPrice\":parseInt(d.SuggestedPrice),\"Price\":parseInt(d.Price) ,\"Distance\":d.Distance});\r\n } \r\n });\r\n var checklist = $filter('filter')(UserData,function(value){\r\n return value.Price ==0;\r\n })\r\n if(checklist.length!=0){\r\n vm.showFailure(\"Failed\", \"Bid price can't be zero.\");\r\n }else{\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"JobId\": vm.selectedTicket.TicketId,\r\n \"BIDDuration\": vm.selectedTicket.BidDuration,\r\n \"MobiforceCommissionPercentage\": parseInt(vm.selectedTicket.MobiforceCommission),\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModal.close();\r\n\r\n ScheduleAssignService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n toaster.pop(vm.toaster_success);\r\n vm.selectedFreelancers = [];\r\n $timeout(function () {\r\n vm.GetTicketsForAssignation();\r\n }, 1500);\r\n\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Please select users.\");\r\n }\r\n }) \r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n }\r\n } \r\n\r\n }\r\n\r\n//Assign Tickets\r\n vm.AssignTickets = function (role, userId) {\r\n if (role == 'Field Engineer') {\r\n ScheduleAssignService.AssignTickets(userId,loggedinUser,vm.selectedTicket.TicketId,token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\",\"Job Assigned Successfully\");\r\n vm.TimeoutFunc(1500, vm.GetTicketsForAssignation());\r\n // $timeout(function() {\r\n // vm.GetTicketsForAssignation();\r\n // }, 1000);\r\n if(vm.Mode=='Map') {\r\n $timeout(function () {\r\n vm.mapMarkers=[];\r\n vm.AssignModal.close();\r\n }, 1500);\r\n }\r\n }else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n })\r\n }else if (role == 'Vendor Manager') {\r\n }\r\n }\r\n \r\n //MAP INTEGRATION\r\n vm.MapIntegration = function(){\r\n //for Initial Loading\r\n if(vm.selectedTicket==''){\r\n vm.mapMarkers = [];\r\n //Today's Scheduling Events\r\n angular.forEach(vm.SuggestedUserList.tickets, function(d){\r\n var customer = {};\r\n customer.lat = d.latitude;\r\n customer.long = d.longitude;\r\n customer.StartTime = d.start_date;\r\n customer.Address = d.city+' '+d.state;\r\n customer.ConsumerName = d.customerName;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = d.status;\r\n customer.AssignedUser = d.assignedUserName;\r\n customer.JobId = d.id;\r\n customer.StartDate = d.start_date;\r\n customer.EndDate = d.end_date;\r\n vm.mapMarkers.push(customer);\r\n })\r\n angular.forEach(vm.SuggestedUserList.users, function(d){\r\n var obj = {};\r\n obj.UserName = d.name;\r\n obj.BIDCounterRate = vm.round2Decimal(d.BIDCounterRate);\r\n obj.UserRating = d.UserRating?d.UserRating:0;\r\n obj.UserDistance = vm.round2Decimal(d.UserDistance);\r\n obj.UserLatitude = d.UserLatitude;\r\n obj.UserLongitude = d.UserLongitude;\r\n obj.UserContact = d.contactnumber?d.contactnumber:'NA';\r\n obj.UserImage = vm.getProfilePic(d.UserProfilePhoto);\r\n obj.Role = d.role;\r\n obj.userType = d.userType;\r\n vm.mapMarkers.push(obj);\r\n })\r\n //New Jobs\r\n if(vm.TicketStatus == 'New'){\r\n angular.forEach(vm.AllTicketList, function(d){\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.Latitude);\r\n var DefaultLong = parseFloat(d.Longitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.City+' '+d.State;\r\n customer.ConsumerName = d.ConsumerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'New';\r\n customer.JobId = d.TicketId;\r\n customer.StartDate = d.StartTime;\r\n customer.EndDate = d.EndTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n //Broadcasted Jobs\r\n } else if (vm.TicketStatus == 'Broadcasted'){\r\n angular.forEach(vm.BroadcastedJobList, function(d){\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.Location;\r\n customer.ConsumerName = d.CustomerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'Broadcasted';\r\n customer.JobId = d.JobId;\r\n customer.StartDate = d.StartDateTime;\r\n customer.EndDate = d.EndDateTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n } else if (vm.TicketStatus == 'ReadyToAssign'){\r\n angular.forEach(vm.ReadyToAssignList, function(d){\r\n var customer = {};\r\n var DefaultLat = parseFloat(d.JobLatitude);\r\n var DefaultLong = parseFloat(d.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = d.Location;\r\n customer.ConsumerName = d.CustomerName;\r\n customer.JobType = d.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n customer.Status = 'ReadyToAssign';\r\n customer.JobId = d.JobId;\r\n customer.StartDate = d.StartDateTime;\r\n customer.EndDate = d.EndDateTime;\r\n vm.mapMarkers.push(customer);\r\n })\r\n }\r\n //on Job Selection\r\n } else {\r\n vm.mapMarkers = [];\r\n var customer = {};\r\n //Adding Customer Site on Ticket Status Basis\r\n if(vm.TicketStatus == 'New') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.Latitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.Longitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.City+' '+vm.selectedTicket.State;\r\n customer.ConsumerName = vm.selectedTicket.ConsumerName;\r\n customer.Status = vm.selectedTicket.TicketStatus;\r\n customer.JobId = vm.selectedTicket.TicketId;\r\n customer.StartDate = vm.selectedTicket.StartTime;\r\n customer.EndDate = vm.selectedTicket.EndTime;\r\n } \r\n else if (vm.TicketStatus == 'Broadcasted') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.JobLatitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.Location;\r\n customer.ConsumerName = vm.selectedTicket.CustomerName;\r\n customer.Status = vm.selectedTicket.Status;\r\n customer.JobId = vm.selectedTicket.JobId;\r\n customer.StartDate = vm.selectedTicket.StartDateTime;\r\n customer.EndDate = vm.selectedTicket.EndDateTime;\r\n } else if (vm.TicketStatus == 'ReadyToAssign') {\r\n var DefaultLat = parseFloat(vm.selectedTicket.JobLatitude);\r\n var DefaultLong = parseFloat(vm.selectedTicket.JobLongitude);\r\n customer.lat = DefaultLat;\r\n customer.long = DefaultLong;\r\n customer.Address = vm.selectedTicket.Location;\r\n customer.ConsumerName = vm.selectedTicket.CustomerName;\r\n customer.Status = vm.selectedTicket.Status;\r\n customer.JobId = vm.selectedTicket.JobId;\r\n customer.StartDate = vm.selectedTicket.StartDateTime;\r\n customer.EndDate = vm.selectedTicket.EndDateTime;\r\n }\r\n customer.JobType = vm.selectedTicket.JobType;\r\n customer.ContactNumber = 'NA';\r\n customer.Role = 'Customer';\r\n vm.mapMarkers.push(customer);\r\n\r\n //Adding Users into Marker\r\n angular.forEach(vm.SuggestedUserList.users,function(d){\r\n var obj = {};\r\n if (d && d.UserLatitude && d.UserLongitude) {\r\n obj.UserName = d.name;\r\n // obj.BIDApplyDateTime = d.BIDApplyDateTime;\r\n // obj.BIDApplyStatus = d.BIDApplyStatus;\r\n obj.BIDCounterRate = vm.round2Decimal(d.BIDCounterRate);\r\n obj.JobId = d.id;\r\n // obj.UserCurrentJobs = d.UserCurrentJobs;\r\n // obj.UserId = d.UserId;\r\n obj.UserRating = d.UserRating?d.UserRating:0;\r\n // obj.UserTotalJobs = d.UserTotalJobs;\r\n obj.UserDistance = vm.round2Decimal(d.UserDistance);\r\n obj.UserLatitude = d.UserLatitude;\r\n obj.UserLongitude = d.UserLongitude;\r\n obj.UserContact = d.contactnumber?d.contactnumber:'NA';\r\n obj.UserImage = vm.getProfilePic(d.UserProfilePhoto);\r\n // if (obj.Role=='Freelancer') {\r\n // obj.AssigButton = false; \r\n // }else{\r\n // obj.AssigButton = true;\r\n // }\r\n obj.Role = d.role;\r\n obj.userType = d.userType;\r\n vm.mapMarkers.push(obj);\r\n }\r\n })\r\n }\r\n \r\n\r\n //Setting the Map Options\r\n vm.MapOptions = {\r\n center: new google.maps.LatLng(DefaultLat, DefaultLong),\r\n // zoom: 20,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n }\r\n\r\n //Initializing the InfoWindow, Map and LatLngBounds objects.\r\n vm.InfoWindow = new google.maps.InfoWindow();\r\n vm.Latlngbounds = new google.maps.LatLngBounds();\r\n vm.Map = new google.maps.Map(document.getElementById(\"map-canvas\"), vm.MapOptions);\r\n\r\n //Looping through the Array and adding Markers.\r\n for(var i=0; iimage
\"\r\n vm.InfoWindow.setContent(\"

\"+data.ConsumerName+\"


\"+' '+data.JobId+\"
\"+' '+data.Status+\"
\"+' '+data.AssignedUser+\"
\"+' '+moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+data.Address+\"
\"); \r\n } else if(data.Status == 'Completed'){\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\"+data.ConsumerName+\"


\"+' '+data.JobId+\"
\"+' '+data.Status+\"
\"+' '+data.AssignedUser+\"
\"+' '+moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+data.Address+\"
\"); \r\n } \r\n else {\r\n //var content = \"
image
\"\r\n vm.InfoWindow.setContent(\"

\"+data.ConsumerName+\"


\"+' '+data.JobId+\"
\"+' '+data.Status+\"
\"+' '+moment(data.StartDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+moment(data.EndDate).format(\"YYYY-MM-DD HH:mm\")+\"
\"+' '+data.Address+\"
\");\r\n }\r\n vm.InfoWindow.open(vm.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n vm.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, data);\r\n vm.Latlngbounds.extend(marker.position);\r\n }else{\r\n ticketLatlng = new google.maps.LatLng(data.UserLatitude, data.UserLongitude);\r\n //Initializing the Marker object.\r\n if(data.Role == 'Field Engineer' && data.userType == 'Freelancer'){\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: flIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/delivery-man1.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n \r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n }\r\n }); \r\n }else if (data.Role == 'Field Engineer' && data.userType == 'Fixed Team') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: ftIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/delivery-man1.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n \r\n }\r\n });\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Fixed Team') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: vIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/delivery-man1.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n \r\n }\r\n });\r\n } else if (data.Role == 'Vendor Manager' && data.userType == 'Freelancer') {\r\n var marker = new google.maps.Marker({\r\n position: ticketLatlng,\r\n map: vm.Map,\r\n title: data.UserName,\r\n animation: google.maps.Animation.DROP,\r\n //icon: fvIcon,\r\n icon: {\r\n url: UIURL+'/assets/images/patterns/delivery-man1.png',\r\n labelOrigin: new google.maps.Point(80, 52),\r\n },\r\n label: {\r\n text: data.UserName,\r\n color: \"#1a237e\",\r\n fontSize: \"14px\",\r\n fontWeight: \"bold\",\r\n position:\"absolute\"\r\n \r\n }\r\n });\r\n }\r\n \r\n //Adding InfoWindow to the Marker.\r\n (function (marker, data) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n if(data.Role == 'Field Engineer' && data.userType == 'Fixed Team'){\r\n var Role = 'Field Engineer';\r\n } else if(data.Role == 'Field Engineer' && data.userType == 'Freelancer'){\r\n var Role = 'Freelancer';\r\n } else if(data.Role == 'Vendor Manager' && data.userType == 'Fixed Team') {\r\n var Role = 'Vendor Manager';\r\n } else {\r\n var Role = 'Freelancer Vendor';\r\n }\r\n var content = \"
image
\"+' '+data.UserName+\"
\"+' '+data.UserContact+\"
\"+' '+data.UserDistance+\" Kms
\"+' '+data.BIDCounterRate+\"
\"+' '+Role+\"
\"\r\n vm.InfoWindow.setContent(content);\r\n vm.InfoWindow.open(vm.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n vm.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, data); \r\n // vm.Latlngbounds.extend(marker.position);\r\n }\r\n //Plotting the Marker on the Map. \r\n }\r\n //Adjusting the Map for best display.\r\n vm.Map.setCenter(vm.Latlngbounds.getCenter());\r\n // vm.Map.fitBounds(vm.Latlngbounds);\r\n vm.Map.setZoom(13);\r\n \r\n }\r\n\r\n//Global Calls\r\nvm.GetTicketsForAssignation();\r\n }\r\n\r\nfunction GetSchedulingEventforToday(supervisiorId){\r\n //scheduler.clearAll();\r\n var accountId='';\r\n \r\n /*var fromDate = new Date().toISOString().slice(0,10);\r\n var toDate = new Date().toISOString().slice(0,10);*/\r\n /*var fromDate =\"2018-12-13\"\r\n var toDate = \"2019-01-03\"*/\r\n var date = new Date();\r\n var fromDate = new Date(date.getFullYear(), date.getMonth(), 1);\r\n fromDate = moment(fromDate).format(\"YYYY-MM-DD\");\r\n var toDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n toDate = moment(toDate).format(\"YYYY-MM-DD\");\r\n ScheduleAssignService.GetSchedulingEventToday(accountId,supervisiorId,fromDate,toDate,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n vm.SuggestedUserList = [];\r\n \r\n vm.SuggestedUserList = resp.data;\r\n\r\n var evs = scheduler.getEvents();\r\n\r\n angular.forEach(evs,function(val){\r\n if(val.status=='New'){\r\n var id =val.id;\r\n scheduler.deleteEvent(id); \r\n }\r\n })\r\n init();\r\n }\r\n })\r\n vm.MapIntegration();\r\n}\r\nGetSchedulingEventforToday(loggedinUser);\r\n\r\n\r\n\r\n\r\n\r\n $scope.selectEntity = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < $scope.AssignSelectedUser.length; i++) {\r\n if (!$scope.AssignSelectedUser[i].isChecked) {\r\n $scope.AssignSelectedUser.allItemsSelected = false;\r\n return;\r\n }\r\n }\r\n \r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.AssignSelectedUser.allItemsSelected = true;\r\n };\r\n \r\n // This executes when checkbox in table header is checked\r\n $scope.selectAll = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < $scope.AssignSelectedUser.length; i++) {\r\n $scope.AssignSelectedUser[i].isChecked = $scope.AssignSelectedUser.allItemsSelected;\r\n }\r\n };\r\n\r\n \r\n\r\n\r\n $scope.selectEntityBoardUser = function () {\r\n // If any entity is not checked, then uncheck the \"allItemsSelected\" checkbox\r\n for (var i = 0; i < $scope.BroadcastedUser.length; i++) {\r\n if (!$scope.BroadcastedUser[i].isChecked) {\r\n $scope.BroadcastedUser.allItemsSelected = false;\r\n return;\r\n }\r\n }\r\n \r\n //If not the check the \"allItemsSelected\" checkbox\r\n $scope.BroadcastedUser.allItemsSelected = true;\r\n };\r\n\r\n // This executes when checkbox in table header is checked\r\n $scope.selectAllBoardUser = function () {\r\n // Loop through all the entities and set their isChecked property\r\n for (var i = 0; i < $scope.BroadcastedUser.length; i++) {\r\n $scope.BroadcastedUser[i].isChecked = $scope.BroadcastedUser.allItemsSelected;\r\n }\r\n };\r\n\r\n\r\n\r\n function init() {\r\n\r\n scheduler.locale.labels.timeline_tab = \"Timeline\";\r\n scheduler.locale.labels.section_custom=\"Section\";\r\n // scheduler.config.details_on_create=true;\r\n // scheduler.config.details_on_dblclick=true;\r\n scheduler.config.dblclick_create = false; \r\n\r\n scheduler.config.xml_date=\"%Y-%m-%d %H:%i\";\r\n var format = scheduler.date.date_to_str(\"%H:%i\");\r\n scheduler.config.touch_tooltip = true;\r\n scheduler.config.drag_resize= false;\r\n\r\n scheduler.config.multisection = true; \r\n scheduler.config.multisection_shift_all = false;\r\n \r\n\r\n \r\n \r\n //it is used for the drag and drop functionality \r\n scheduler.attachEvent(\"onBeforeDrag\", function (event_id, mode, native_event_object){\r\n \r\n var ev = scheduler.getEvent(event_id);\r\n if(ev.status=='Assigned'){\r\n return false;\r\n } if(ev.status=='Completed'){\r\n return false;\r\n } \r\n else{\r\n return true; \r\n }\r\n });\r\n\r\n\r\n\r\n// this is used when we drag the event in one use to another user but the time is still same \r\n scheduler.attachEvent(\"onBeforeEventChanged\", function(ev, e, is_new, original){\r\n \r\n if (original.assignedUserid == ev.assignedUserid) \r\n return false;\r\n \r\n ev.start_date = original.start_date;\r\n ev.end_date = original.end_date;\r\n return true;\r\n});\r\n\r\n\r\n\r\n\r\n //this methd is used to stop the open the popup on double click \r\n scheduler.attachEvent(\"onDblClick\", function (id, e){ \r\n return false;\r\n });\r\n\r\n\r\n\r\n if(vm.SuggestedUserList.users.length!=0){\r\n var sections =[];\r\n var sections =vm.SuggestedUserList;\r\n if(vm.selectedTicket.Status==\"ReadyToAssign\"){\r\n var sectionlist = $filter('filter')(sections.users,function(value){\r\n return value.BIDCounterRate!=0;\r\n })\r\n sections.users = sectionlist;\r\n }\r\n }else{\r\n var sections =[];\r\n var sections = vm.SuggestedUserList;\r\n // var sections.users =[];\r\n }\r\n \r\n /* scheduler.templates.event_bar_text = function(sd, ed, ev){\r\n return format(sd)+\" - \"+format(ed);\r\n }*/\r\n \r\n\r\n //this is used for the tooltip\r\n scheduler.templates.tooltip_text = function(start,end,event) { \r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id = event.LinkId;\r\n }\r\n return \"Job Status : \"+event.status+\"
\"+ \r\n\r\n \"Job Id : \"+Id+\"
\"+ \r\n \"Start Time : \" + scheduler.templates.tooltip_date_format(start) + \"
\" +\r\n \"End Time : \" + scheduler.templates.tooltip_date_format(end);\r\n\r\n };\r\n\r\n// this is used for creating two event in the same slot \r\n scheduler.config.collision_limit = 5; //allows creating 2 events per time slot\r\n/*scheduler.attachEvent(\"onEventLoading\", function(ev){ \r\n return scheduler.checkCollision(ev); \r\n});\r\n*/\r\n\r\n\r\n\r\n\r\n scheduler.createTimelineView({\r\n name: \"timeline\",\r\n x_date: \"%H:%i\",\r\n x_unit:\"minute\",// the scale parameters will be calculated in minutes\r\n x_step:30, //sets the '30 minute' step, e.g. 09:00 - 09:30\r\n x_size:24, // the number of '30 minute's in the interval 09:00 - 15:00\r\n // 15 - 9 = 6 hours = 360 minutes = 360/30 = 12\r\n x_start:18, //scale starts from 09:00,i.e. 9 hours from the default start- 00:00.\r\n // 9 hours = 540 minutes = 540/30 = 18 'x_step's \r\n x_length:48,//sc\r\n y_unit: scheduler.serverList('sections',sections.users),\r\n y_property: \"assignedUserid\",\r\n render:\"bar\",\r\n\r\n });\r\n\r\n scheduler.ignore_timeline = function(date){\r\n //non-work hours\r\n if (date.getHours() < 8 || date.getHours() > 18) return true;\r\n };\r\n\r\n\r\n scheduler.templates.timeline_scale_label =function(key, label,sections){\r\n if(sections.userType=='Fixed Team' && sections.role=='Field Engineer'){\r\n var UserIdentity ='FE';\r\n \r\n } else if(sections.userType=='Freelancer' && sections.role=='Field Engineer'){\r\n var UserIdentity ='FL';\r\n \r\n } else if(sections.userType=='Fixed Team' && sections.role=='Vendor Manager'){\r\n var UserIdentity ='V';\r\n \r\n } else if(sections.userType=='Freelancer' && sections.role=='Vendor Manager'){\r\n var UserIdentity ='FV';\r\n \r\n }\r\n var ratings = sections.UserRating?sections.UserRating:0;\r\n if(sections.BIDCounterRate!=null){\r\n return \"
\\\r\n
image
\\\r\n
\\\r\n
\"+sections.name+\"\"+UserIdentity+\"
\\\r\n
\\\r\n \"+ratings+\"\\\r\n \\\r\n \"+round2Decimal(sections.UserDistance)+\" km \\\r\n \"+sections.UserDuration+\" Min\\\r\n
\\\r\n
\\\r\n
\";\r\n }else{\r\n return \"
\\\r\n
image
\\\r\n
\\\r\n
\"+sections.name+\"\"+UserIdentity+\"
\\\r\n
\\\r\n \"+ratings+\"\\\r\n \"+sections.UserDuration+\" Min\\\r\n
\\\r\n
\";\r\n }\r\n\r\n };\r\n\r\n\r\nfunction getPic(profilePic) {\r\n return profilePic ? ImageUrl + '/' + profilePic : DefaultImage;\r\n}\r\n\r\nfunction round2Decimal(no) {\r\n return Math.round(no * 100) / 100; \r\n}\r\n \r\n\r\n \r\n\r\n\r\nscheduler.attachEvent(\"onBeforeViewChange\", function(old_mode,old_date,mode,date){\r\n //any custom logic here\r\n \r\n vm.mode =mode;\r\n return true;\r\n});\r\n\r\n/*scheduler.templates.event_text=function(start, end, event){\r\n return \"
\"+Id+\"
\";\r\n}\r\n*/\r\n \r\n //timeline event bar text is used for timeline mode\r\n scheduler.templates.event_bar_text = function (start, end, event) {\r\n var t = event.id;\r\n debugger;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id =event.LinkId;\r\n }\r\n return \"
\"+Id+\"
\";\r\n };\r\n\r\n// it is used when we dislay in month mode\r\nscheduler.templates.event_bar_date = function(start,end,event){\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id = event.LinkId?event.LinkId:event.id;\r\n }\r\n return \"\"+Id+\" \";\r\n};\r\n \r\n // it is used for the week basis \r\n scheduler.templates.event_header = function(start,end,event){\r\n var t = event.id;\r\n t = t.toString();\r\n var res = t.charAt(0);\r\n if(res==\"1\"){\r\n var Id = event.LinkId?event.LinkId:event.TicketId;\r\n }else{\r\n var Id =event.LinkId?event.LinkId:event.id;\r\n }\r\n return \"
\"+Id+\"
\";\r\n \r\n};\r\n\r\n\r\n\r\n//this is used for the status \r\n scheduler.templates.event_class = function (start, end, event) {\r\n if(vm.mode=='timeline'){\r\n scheduler.config.readonly = false;\r\n if (event.status == \"Assigned\") {\r\n return \"Assigned\";\r\n }\r\n if (event.status == \"New\") {\r\n return \"New\";\r\n }\r\n if (event.status == \"Broadcasted\") {\r\n return \"Broadcasted\";\r\n } \r\n if (event.status == \"Completed\") {\r\n return \"Completed\";\r\n }if(event.status ==\"ReadyToAssign\"){\r\n return \"ReadyToAssign\";\r\n }\r\n return \"dhx_rent_payed\";\r\n\r\n }\r\n else if(vm.mode=='week' || vm.mode=='month' || vm.mode=='day'){\r\n scheduler.config.readonly = true;\r\n if (event.status == \"Assigned\") {\r\n return \"Assigned1\";\r\n }\r\n if (event.status == \"New\") {\r\n return \"New1\";\r\n }\r\n if (event.status == \"Broadcasted\") {\r\n return \"Broadcasted1\";\r\n } \r\n if (event.status == \"Completed\") {\r\n return \"Completed1\";\r\n }if(event.status ==\"ReadyToAssign\"){\r\n return \"ReadyToAssign1\";\r\n }\r\n return \"dhx_rent_payed1\";\r\n }\r\n\r\n };\r\n\r\n /* var someDate = new Date();\r\n var numberOfDaysToAdd = 5;\r\n var nextday = 1;\r\n someDate.setDate(someDate.getDate() + nextday)*/\r\n\r\n scheduler.init('scheduler_here',new Date(),\"timeline\");\r\n\r\n if(sections.tickets.length!=0){\r\n\r\n var sectionlist = $filter('filter')(sections.tickets,function(value){\r\n // return value.UserId==Id && value.start_date==start_date;\r\n //return value.UserId==Id;\r\n return value.status=='Completed' || value.status=='Assigned';\r\n\r\n })\r\n sections.tickets = sectionlist;\r\n scheduler.parse(sections.tickets,\"json\");\r\n }\r\n \r\n //scheduler.parse(sections.tickets,\"json\");\r\n \r\n }\r\n\r\n//init();\r\n})\r\n\nangular.module('inspinia').service('RoleAccessManagement', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('RoleAccessManagementController', function (RoleAccessManagement, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\t\tvm.roles = [\r\n\t\t\t{ name: 'Account Manager', description: 'Manages client relationships, ensuring satisfaction, retention, and revenue growth through effective communication and strategic planning.\t' },\r\n\t\t\t{ name: 'Administrator', description: 'Oversees the overall operations and ensures system reliability.' },\r\n\t\t\t{ name: 'Branch Service Manager\t', description: 'Supervises branch services, ensures customer satisfaction, and aligns branch operations with organizational objectives.' },\r\n\t\t\t{ name: 'Category Manager', description: 'Strategically manages product categories, driving profitability through pricing, merchandising, and supply chain coordination.' },\r\n\t\t\t{ name: 'Community Manager', description: 'Builds and engages online/offline communities, fostering relationships and brand loyalty through communication and events.' },\r\n\t\t\t{ name: 'Customer', description: 'Engages with services/products, providing feedback, ensuring satisfaction, and driving business through ongoing interactions.' },\r\n\t\t\t{ name: 'Defective Management', description: 'Handles defect identification, analysis, and resolution to maintain product/service quality and customer satisfaction.' },\r\n\t\t\t{ name: 'Dispatch Head', description: 'Oversees logistics and dispatch operations, ensuring timely deliveries and optimal resource allocation.' },\r\n\t\t\t{ name: 'Dispatch Manager', description: 'Manages dispatch teams, schedules shipments, and ensures smooth delivery operations.' },\r\n\t\t\t{ name: 'Dispatch Supervisor', description: 'Supervises dispatch staff, monitors activities, and resolves logistical issues efficiently.' },\r\n\t\t\t{ name: 'Dispatch Team Lead', description: 'Guides dispatch team members, assigns tasks, and ensures operational efficiency.' },\r\n\t\t\t{ name: 'Field Engineer\t', description: 'Provides on-site technical support, installation, and maintenance of equipment or systems.' },\r\n\t\t\t{ name: 'Freelancer Dispatcher', description: 'Coordinates freelance dispatching activities, ensuring timely task completion and communication.' },\r\n\t\t\t{ name: 'Help Desk', description: 'Provides first-line support, resolving technical or service-related issues for users/customers.' },\r\n\t\t\t{ name: 'Higher Management', description: 'Coordinates freelance dispatching activities, ensuring timely task completion and communication.\t' },\r\n\t\t\t{ name: 'Invoice Manager', description: 'Manages billing operations, ensuring timely invoicing and error-free transactions.' },\r\n\t\t\t{ name: 'Onboarding Head', description: 'Leads onboarding initiatives, ensuring seamless employee integration and alignment with company culture. \t' },\r\n\t\t\t{ name: 'Onboarding Manager', description: 'Oversees new hires onboarding process, facilitating training and resource allocation.\t' },\r\n\t\t\t{ name: 'Onboarding Team Lead', description: 'Coordinates onboarding efforts, mentoring team members to meet objectives.' },\r\n\t\t\t{ name: 'Project Manager', description: 'Plans, executes, and oversees projects, ensuring timely completion within budget and scope.' },\r\n\t\t\t{ name: 'Regional Service Manager', description: 'Manages regional service teams, ensuring alignment with company standards and customer satisfaction.' },\r\n\t\t\t{ name: 'Supervisor', description: 'Oversees team operations, monitors performance, and ensures efficiency.' },\r\n\t\t\t{ name: 'Vendor Manager', description: 'Manages vendor relationships, ensuring quality service and cost-effectiveness.' },\r\n\t\t\t{ name: 'Warehouse Manager', description: 'Oversees warehouse operations, ensuring inventory accuracy and efficient workflow.' },\r\n\t\t];\r\n\t\tvm.isEditMode = false;\r\n\t\tvm.RoleAccessManagementModal = function (role) {\r\n\t\t\tif (role) {\r\n\t\t\t\tvm.selectedRole = angular.copy(role); // For editing, make a copy of the role\r\n\t\t\t\tvm.modalTitle = 'Edit ' + vm.selectedRole.name; // Edit title\r\n\t\t\t\tvm.isEditMode = true; // Flag to indicate that it's in edit mode\r\n\t\t\t} else {\r\n\t\t\t\tvm.modalTitle = 'New Role'; // Title for creating a new role\r\n\t\t\t\tvm.isEditMode = false; // Flag for creating a new role\r\n\t\t\t}\r\n\t\t\tvm.roleaccessModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'RoleAccessModal.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n\t\t\t vm.RoleAccessManagementClose = function () {\r\n\t\t\t\t vm.roleaccessModelOpen.close();\r\n\t\t\t\t\r\n\t\t\t }\r\n\t\t\t vm.deleteregion = function(){\r\n\t\t\t\tvm.showSuccess(\"Success\", \"Delete successfully.\");\r\n\t\t\t}\r\n\t\t\tvm.disableCreateButton = false;\r\n\t\t\t vm.CreateCase = function(){\r\n\t\t\t\t\r\n\t\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \" Successfully Save\");\r\n\t\t\t\t\tvm.RoleAccessManagementClose();\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t}\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('RoasterTeamFormCreationService', function (ApiURL, LocationURL,PublicApiURL, $log, $http,$localStorage) {\r\n var url = ApiURL + '/api/User';\r\n\r\n //state api https://product.mymobiforce.com/publicapi/api/Location/GetAllStates?userId=F00000000000&country=INDIA\r\n this.getState = function (loggedInUserId,token,region) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n }\r\n });\r\n }\r\n \r\n this.CreateUser = function (userFormData, loggedinUser, token) {\r\n var url = ApiURL + '/api/User?reqUserId='+loggedinUser;\r\n return $http.post(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser \r\n }\r\n });\r\n }\r\n\r\n this.getAllRole = function (token) {\r\n var url = ApiURL + '/api/role';\r\n return $http.get(url, {\r\n 'Token': token, 'UserId':loggedinUser\r\n });\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetRegion?userId=U370000000001\r\n this.GetRegion = function(loggedInUserId, token){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n this.GetTelecomCircle = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetTelecomCircles?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetSubRegion?userId=U370000000001®ion=North\r\n this.GetSubRegion = function(loggedInUserId, token, region){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+region;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetCity?userId=U360000000001&subregion=noida\r\n this.GetCityBySubRegion = function(loggedInUserId, subRegion, token){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+subRegion;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n\r\n this.getAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n//https://db.mymobiforce.com/publicapi/api/Address/GetCountry?userId=U420000000001\r\nthis.getCountry = function (loggedinUser, token) {\r\n var url = PublicApiURL + '/api/Address/GetCountry?userId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\nthis.getAllState = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\nthis.getCities = function (loggedinUser,state,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\n this.getAllCity = function (loggedinUser,state, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n });\r\n }\r\n\r\n this.getAllPincode = function (city) {\r\n var url = LocationURL+'/api/Location/'+$localStorage.loggedinUser+'/'+city+'/GetPincodesByCity';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n //http://localhost:56749/api/User/Project%20Manager/GetReportingToUserByRole?reqUserId=saurabhgupta3371%40gmail.com\r\n\r\n this.GetReportingToUser = function(role, loggedinUser, token){\r\n var url = ApiURL + '/api/User/' + role + '/GetReportingToUserByRole?reqUserId=' + loggedinUser\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n // this.validateAllPincode = function (pin) {\r\n // var url = 'https://www.whizapi.com/api/v2/util/ui/in/indian-city-by-postal-code?project-app-key=pso222ywjvx996b93gd8wpp6&pin='+pin;\r\n // return $http.get(url, {\r\n // params: {}\r\n // });\r\n // }\r\n\r\n this.getAllReportingTo = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/User';\r\n return $http.get(url, {\r\n params: {userid: loggedinUser},\r\n headers: {'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n this.getUserData = function (userid, token) {\r\n return $http.get(url, {\r\n params: {UserId:userid},\r\n headers: {'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.updateUser = function (userFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/User/UpdateTeamUserDetails';\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser}\r\n });\r\n }\r\n //http://192.168.0.80:92/CoreAPI/api/Role/ByReqUserId?reqUserId=kanika.bansal%40innotiontech.com\r\n\r\n this.getAllRoleByUserId = function (userId, token) {\r\n var url = ApiURL + '/api/Role/ByReqUserId?reqUserId='+userId;\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':userId}\r\n \r\n });\r\n }\r\n\r\n this.uploadProfilePic = function(loggedinUser, data, token, success, failure){\r\n $http.post(ApiURL + '/api/UploadImage', data, { \r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n \r\nthis.getAllAccounts = function (loggedInUserId,token) { \r\n var url = ApiURL+ '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n \r\n }\r\n });\r\n}\r\n\r\n//Accounts API\r\nthis.getAllAccountsConfigured = function (loggedinUser,token) { \r\n var url = ApiURL+ '/api/CentralHelpDesk/GetAllAccountHDConfig';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n}\r\n\r\n\r\n//https://product.mymobiforce.com/coreAPI/api/User/GetTeamUserDetails?UserId=U00000000413\r\nthis.getFixedUserInfo = function (userId,loggedInUser, token) {\r\n var url = ApiURL + '/api/User/GetTeamUserDetails?UserId='+ userId ;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n// http://localhost:56749/api/TerritoryMappingUser/GetStateByAccountIdAndRole?AccountId=114&Role=Administrator\r\nthis.getTerritoryStates = function (loggedInUser, token,AccountId,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetStateByAccountIdAndRole?AccountId='+ AccountId+ '&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n//http://localhost:56749/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId=144&State=Uttar%20Pradesh&Role=Administrator\r\nthis.getTerritoryCity = function (loggedInUser, token,AccountId,state,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId='+ AccountId+'&State='+state+'&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n//https://upgrad.mymobiforce.com/coreapi/api/TerritoryMappingUser/GetPincodeByStateAndCityAndAccountIdAndRole?AccountId=144&State=Uttar%20Pradesh&City=Noida&Role=Administrator\r\nthis.getTerritoryPincodes = function (loggedInUser, token,AccountId,state,City,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetPincodeByStateAndCityAndAccountIdAndRole?AccountId='+ AccountId+'&State='+state+'&City='+City+'&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n \r\n});\r\n\nangular.module('inspinia').controller('RoasterTeamFormCreationController', function (shiftManagementService,ProjectCreationService,ReferService, MainService, $state, $scope, $timeout, $stateParams, $filter, $log, $localStorage, RoasterTeamFormCreationService, TeamProfileService, toaster, $q, ImageUrl) {\r\n var vm = this;\r\n vm.isDisabled = false;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if ($localStorage.accountConfig) {\r\n if ($localStorage.accountConfig) {\r\n vm.EnableRegion = $localStorage.accountConfig.EnableRegion;\r\n }\r\n }else{\r\n vm.EnableRegion = false;\r\n }\r\n\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n vm.loggedinUserRole = $localStorage.loggedInUser_Role;\r\n\r\n //$log.log('Role=',vm.loggedinUserRole);\r\n angular.element(document).ready(function () {\r\n angular.element('ul[side-navigation]').find('a[ui-sref=\"index.RoasterTeamMember\"]').parent().prop('class', 'active');\r\n // angular.element(\".chosen-select\").chosen();\r\n });\r\n\r\n ///Global variables goign to use for seeting page defaults.\r\n\r\n var userId_ForUpdate = $stateParams.userId;\r\n vm.saveAndNewFlag = false;\r\n vm.editMode = false;\r\n vm.address_option = 'Yes';\r\n vm.officeFormValidation = false;\r\n vm.isCollapsed = false;\r\n vm.isUserDetailCollapsed = false;\r\n vm.isOfficeUseCollapsed = true;\r\n vm.Role = '';\r\n vm.specialist = \"No\";\r\n vm.ReportingTo = '';\r\n vm.SubCity='';\r\n vm.allStates = [];\r\n //page binding models using\r\n vm.username = '';\r\n vm.gender = '';\r\n vm.email = '';\r\n vm.phone_number = '';\r\n vm.last_name = '';\r\n vm.birth_date = moment();\r\n vm.father_name = '';\r\n vm.alternate_number = '';\r\n vm.workArea = '';\r\n vm.AccountName = '';\r\n vm.company = '';\r\n vm.permanent_address_line1 = '';\r\n vm.permanent_state = '';\r\n vm.permanent_pincode = '';\r\n vm.permanent_address_line2 = '';\r\n vm.permanent_city = '';\r\n vm.present_address_line1 = '';\r\n vm.present_address_line2 = '';\r\n vm.present_state = '';\r\n vm.present_city = '';\r\n vm.present_pincode = '';\r\n vm.skill = '';\r\n vm.expertise = '';\r\n vm.reportinToList = '';\r\n vm.workAreas = [];\r\n vm.CHDAccounts = [];\r\n vm.RemainingCHDAccounts = [];\r\n vm.SelectedAccount={};\r\n vm.showAction = true;\r\n // vm.multiPincode = []\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.LocationMapping = vm.getAccountConfigSetting('LocationMapping');\r\n console.log('vertical',vm.VerticalName);\r\n vm.MainRegion = '';\r\n vm.SubRegion = '';\r\n var today = new Date();\r\n var date = today.getFullYear() - 18;\r\n var age = (today.getMonth() + 1 + \"/\" + today.getDate() + \"/\" + date).toString();\r\n\r\n vm.maxDOB = new Date(age);\r\n vm.maxDOBStr = vm.maxDOB.toDateString();\r\n age = Date.parse(age);\r\n $scope.MaxDate = moment(age);\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.showEditList = false;\r\n vm.showEditLists = false;\r\n vm.isShow=true;\r\n \r\n getAllRole();\r\n\r\n function getAllRole() {\r\n if (vm.loggedinUserRole == 'Administrator' || vm.loggedinUserRole == 'Project Manager' || vm.loggedinUserRole == 'Vendor Manager' || vm.loggedinUserRole == 'SuperAdministrator' || vm.loggedinUserRole == 'OnBoarding Manager' || vm.loggedinUserRole == 'Account Manager' || vm.loggedinUserRole == 'OnBoarding Supervisor' || vm.loggedinUserRole == 'Operation Manager' || vm.loggedinUserRole == 'Operation Supervisor' || vm.loggedinUserRole == 'Higher Management'\r\n || vm.loggedinUserRole == 'Dispatch Head' || vm.loggedinUserRole == 'Dispatch Manager' || vm.loggedinUserRole == 'Freelancer Dispatcher' || vm.loggedinUserRole == 'Dispatch Team Lead' || vm.loggedinUserRole == 'OnBoarding Team Lead') {\r\n RoasterTeamFormCreationService.getAllRoleByUserId(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.RolesList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.checkMaxDOB = function () {\r\n if (vm.birth_date && !vm.birth_date._isAMomentObject) {\r\n var splittedDOB = vm.birth_date.split(\"/\");\r\n vm.birth_date = moment(new Date((splittedDOB[1] + \"/\" + splittedDOB[0] + \"/\" + splittedDOB[2]).toString()));\r\n }\r\n\r\n return (vm.maxDOB - vm.birth_date) < 0;\r\n }\r\n\r\n vm.GetReportingToUser = function (role) {\r\n vm.reportinToList=\"\";\r\n RoasterTeamFormCreationService.GetReportingToUser(role, loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.reportinToList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.removeAddmoreEditList = function () { \r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n}\r\n \r\n vm.selectedCountry = null;\r\n //get country of user\r\n\r\n vm.getCountry = function () {\r\n RoasterTeamFormCreationService.getCountry(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.values.length>0){\r\n vm.countrylist = resp.data.values;\r\n vm.selectedCountry = vm.countrylist[0];\r\n vm.getAllState();\r\n //getAllCircles(loggedinUser);\r\n }\r\n } \r\n })\r\n }\r\n\r\n\r\n vm.GetAllDepartmentsForLocation = function (locationId) {\r\n shiftManagementService.GetAllDepartmentsForLocation(locationId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp) {\r\n vm.departmentListByLocation = resp.data;\r\n if (vm.DepartmentId) {\r\n for (var i = 0; i < vm.departmentListByLocation.length; i++) {\r\n if (vm.departmentListByLocation[i].DepartmentId == vm.DepartmentId) {\r\n vm.SelectedDepartment = vm.departmentListByLocation[i];\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllLocations = function () {\r\n shiftManagementService.GetAllLocations(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp) {\r\n vm.locationsList = resp.data;\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllLocations();\r\n\r\n vm.getAllState = function () {\r\n RoasterTeamFormCreationService.getAllState(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.stateList = resp.data;\r\n if ($state.current.name == 'index.RoasterTeamEdit') {\r\n vm.teamEditMode = $state.current.name;\r\n vm.editMode = true;\r\n \r\n if(userId_ForUpdate.startsWith(\"U\") || userId_ForUpdate.startsWith(\"F\")){\r\n RoasterTeamFormCreationService.getFixedUserInfo(userId_ForUpdate, loggedinUser, token).then(function (resp) {\r\n var userData = resp.data;\r\n vm.AccountName = userData.ServiceAccountIds;\r\n vm.username = userData.FirstName;\r\n vm.gender = userData.Gender;\r\n vm.email = userData.PersonalEmail;\r\n vm.phone_number = parseInt(userData.ContactNumber);\r\n vm.last_name = userData.LastName;\r\n vm.birth_date = moment(userData.DOB);\r\n vm.father_name = userData.FatherName;\r\n if(userData.AlternativeContactNumber){\r\n vm.alternate_number = parseInt(userData.AlternativeContactNumber);\r\n } \r\n vm.specialist = userData.Specialist; \r\n vm.workArea = userData.Locations;\r\n //vm.company = userData.CompanyName;\r\n vm.userId = userData.UserId;\r\n vm.permanent_address_line1 = userData.PermanentAdd1;\r\n vm.permanent_address_line2 = userData.PermanentAdd2;\r\n vm.permanent_city = userData.PermanentCity.toUpperCase();\r\n vm.permanent_state = userData.PermanentState;\r\n vm.permanent_pincode = userData.PermanentPinCode;\r\n vm.present_address_line1 = userData.CurrentAdd1;\r\n vm.present_address_line2 = userData.CurrentAdd2;\r\n vm.present_city = userData.CurrentCity.toUpperCase();\r\n vm.present_state = userData.CurrentState;\r\n vm.present_pincode = userData.CurrentPinCode;\r\n vm.skill = userData.SkillSet;\r\n vm.expertise = userData.Expertise;\r\n vm.Role = userData.Role;\r\n vm.GetReportingToUser(vm.Role);\r\n vm.ReportingTo = userData.ReportingTo;\r\n vm.workAreas = userData.TerritoryConfigurations;\r\n vm.overtimeHourlyRate = userData.OverTimeHourlyRate;\r\n vm.shiftHourlyRate = userData.ShiftHourlyRate;\r\n vm.IsExperienced = userData.IsExperienced;\r\n vm.LocationId = userData.LocationId;\r\n if (vm.LocationId) {\r\n for (var i = 0; i < vm.locationsList.length; i++) {\r\n if (vm.locationsList[i].LocationId == vm.LocationId) {\r\n vm.SelectedLocation = vm.locationsList[i];\r\n \r\n }\r\n }\r\n } \r\n vm.DepartmentId = userData.DepartmentId;\r\n vm.GetAllDepartmentsForLocation(userData.LocationId); \r\n \r\n // vm.profilePic = userData.Picture;\r\n vm.imageServices(userData.Picture);\r\n if (vm.EnableRegion) {\r\n vm.MainRegion = userData.Region;\r\n \r\n //GetSubRegionList\r\n vm.selectSubRegion(vm.MainRegion);\r\n vm.Region = userData.SubRegion;\r\n vm.selectCitySubRegion(vm.Region);\r\n vm.SubCity = userData.Locations;\r\n }else{\r\n vm.workArea = userData.Locations;\r\n }\r\n \r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n \r\n ///Get the workArea badges in edit mode \r\n var circleArray = [];\r\n if(vm.workArea){\r\n for (var pin = 0; pin < vm.workArea.length; pin++) {\r\n circleArray.push({\r\n workArea: vm.workArea\r\n });\r\n }\r\n }\r\n \r\n \r\n ///Check Present address is same as the Permanent Address.\r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n }, function () {\r\n \r\n });\r\n }\r\n else\r\n {\r\n TeamProfileService.getUserInfo(userId_ForUpdate, loggedinUser, token).then(function (resp) {\r\n var userData = resp.data;\r\n vm.username = userData.FirstName;\r\n vm.gender = userData.Gender;\r\n vm.email = userData.PersonalEmail;\r\n vm.phone_number = parseInt(userData.ContactNumber);\r\n vm.last_name = userData.LastName;\r\n vm.birth_date = moment(userData.DOB);\r\n vm.father_name = userData.FatherName;\r\n vm.alternate_number = parseInt(userData.AlternativeContactNumber);\r\n vm.specialist = userData.Specialist; \r\n //vm.workArea = userData.Locations;\r\n vm.company = userData.CompanyName;\r\n vm.userId = userData.UserId;\r\n vm.permanent_address_line1 = userData.PermanentAdd1;\r\n vm.permanent_address_line2 = userData.PermanentAdd2;\r\n vm.permanent_city = userData.PermanentCity.toUpperCase();\r\n vm.permanent_state = userData.PermanentState;\r\n vm.permanent_pincode = userData.PermanentPinCode;\r\n vm.present_address_line1 = userData.CurrentAdd1;\r\n vm.present_address_line2 = userData.CurrentAdd2;\r\n vm.present_city = userData.CurrentCity.toUpperCase();\r\n vm.present_state = userData.CurrentState;\r\n vm.present_pincode = userData.CurrentPinCode;\r\n vm.skill = userData.SkillSet;\r\n vm.expertise = userData.Expertise;\r\n vm.Role = userData.Role;\r\n vm.GetReportingToUser(vm.Role);\r\n vm.ReportingTo = userData.ReportingTo;\r\n vm.profilePic = userData.Picture;\r\n if (vm.EnableRegion) {\r\n vm.MainRegion = userData.Region;\r\n \r\n //GetSubRegionList\r\n vm.selectSubRegion(vm.MainRegion);\r\n vm.Region = userData.SubRegion;\r\n vm.selectCitySubRegion(vm.Region);\r\n vm.SubCity = userData.Locations;\r\n }else{\r\n vm.workArea = userData.Locations;\r\n }\r\n \r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n \r\n ///Get the workArea badges in edit mode \r\n var circleArray = [];\r\n for (var pin = 0; pin < vm.workArea.length; pin++) {\r\n circleArray.push({\r\n workArea: vm.workArea\r\n });\r\n }\r\n \r\n ///Check Present address is same as the Permanent Address.\r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n }, function () {\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 vm.getCountry();\r\n\r\n $scope.modelOptions = {\r\n getterSetter: true\r\n };\r\n\r\n\r\n\r\n vm.getProfilePic = function(pic){\r\n return ImageUrl+\"/\"+vm.profilePic;\r\n }\r\n\r\n vm.changeFile = function(selector){\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n\r\n $scope.uploadImageFile = function(files){\r\n var file = files.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = loggedinUser+\"_ProfilePic_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if(file.type.indexOf(\"image/jpg\")>=0 || file.type.indexOf(\"image/png\")>=0 \r\n || file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n RoasterTeamFormCreationService.uploadProfilePic(loggedinUser, data, token, function(res){\r\n if(res && res.status==201 && res.data){\r\n vm.profilePic = filename;\r\n vm.imageServices(filename);\r\n }\r\n }, function(err){\r\n vm.showFailure(\"Failed\", err.data);\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n }\r\n vm.imageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function() {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n }\r\n vm.imageServices(vm.profileImg);\r\n\r\n ///Saving User function \r\n vm.saveUser = function () {\r\n vm.isDisabled = true;\r\n vm.signup_form.submitted = true;\r\n if (vm.signup_form.$valid) {\r\n if (vm.address_option == 'Yes') {\r\n vm.present_address_line1 = vm.permanent_address_line1;\r\n vm.present_address_line2 = vm.permanent_address_line2;\r\n vm.present_state = vm.permanent_state;\r\n vm.present_city = vm.permanent_city;\r\n vm.present_pincode = vm.permanent_pincode;\r\n }\r\n \r\n var workArea = '';\r\n var skill = '';\r\n if((vm.loggedinUserRole != \"Dispatch Manager\") && (vm.loggedinUserRole != \"OnBoarding Manager\") && (vm.loggedinUserRole != \"Dispatch Team Lead\")&& (vm.loggedinUserRole != \"OnBoarding Team Lead\")){ \r\n workArea = vm.workArea;\r\n skill = vm.skill;\r\n /*for (var index = 0; index < vm.workArea.length; index++) {\r\n if (index == (vm.workArea.length - 1)) {\r\n workArea = workArea + vm.workArea[index];\r\n continue;\r\n }\r\n workArea = workArea + vm.workArea[index] + ',';\r\n } \r\n for (var skillindex = 0; skillindex < vm.skill.length; skillindex++) {\r\n if (skillindex == (vm.skills.length - 1)) {\r\n skill = skill + vm.skill[skillindex];\r\n vm.selectExpertise(skill);\r\n continue;\r\n }\r\n skill = skill + vm.skill[skillindex] + ',';\r\n vm.selectExpertise(skill);\r\n }*/\r\n } \r\n\r\n ///model to send for creating user \r\n var userFormData = { \r\n \"UserId\": vm.userId,\r\n \"FirstName\": vm.username,\r\n \"LastName\": vm.last_name,\r\n \"Gender\": vm.gender,\r\n \"DOB\": moment(vm.birth_date, 'DD/MM/YYYY').format('YYYY-MM-DDTHH:mm:ss.SSSZ'), \r\n \"PersonalEmail\": vm.email,\r\n \"ContactNumber\": vm.phone_number,\r\n \"AlternativeContactNumber\": vm.alternate_number,\r\n \"CompanyName\": vm.company,\r\n \"Locations\": workArea,\r\n \"PermanentAdd1\": vm.permanent_address_line1,\r\n \"PermanentAdd2\": vm.permanent_address_line2,\r\n \"PermanentState\": vm.permanent_state,\r\n \"PermanentCity\": vm.permanent_city,\r\n \"PermanentPincode\": vm.permanent_pincode,\r\n \"CurrentAdd1\": vm.present_address_line1,\r\n \"CurrentAdd2\": vm.present_address_line2,\r\n \"CurrentState\": vm.present_state,\r\n \"CurrentCity\": vm.present_city,\r\n \"CurrentPincode\": vm.present_pincode,\r\n \"SkillSet\": skill,\r\n \"Expertise\": vm.expertise,\r\n \"ReportingTo\": '',\r\n \"Role\": '',\r\n \"Picture\":vm.profilePic,\r\n \"TerritoryConfigurations\":vm.workAreas,\r\n \"Specialist\":vm.specialist,\r\n \"DepartmentId\": vm.SelectedDepartment.DepartmentId,\r\n \"LocationId\": vm.SelectedLocation.LocationId,\r\n \"DepartmentName\": vm.SelectedDepartment.DepartmentName,\r\n \"LocationName\": vm.SelectedLocation.LocationName,\r\n \"IsExperienced\": vm.IsExperienced,\r\n \"OverTimeHourlyRate\": vm.overtimeHourlyRate,\r\n \"ShiftHourlyRate\": vm.shiftHourlyRate,\r\n }\r\n if (vm.EnableRegion) {\r\n userFormData.Region = vm.MainRegion;\r\n \r\n var workArea = '';\r\n for (var index = 0; index < vm.SubCity.length; index++) {\r\n if (index == (vm.SubCity.length - 1)) {\r\n workArea = workArea + vm.SubCity[index];\r\n continue;\r\n }\r\n workArea = workArea + vm.SubCity[index] + ',';\r\n }\r\n userFormData.Locations = workArea;\r\n userFormData.SubRegion = vm.Region;\r\n }\r\n\r\n \r\n if (vm.loggedinUserRole == 'Administrator' || vm.loggedinUserRole == 'Project Manager' || vm.loggedinUserRole == 'Vendor Manager' || vm.loggedinUserRole == 'SuperAdministrator' || vm.loggedinUserRole == 'OnBoarding Manager' || vm.loggedinUserRole == 'Account Manager' || vm.loggedinUserRole == 'OnBoarding Supervisor' || vm.loggedinUserRole == 'Operation Manager' || vm.loggedinUserRole == 'Operation Supervisor' || vm.loggedinUserRole == 'Higher Management'\r\n || vm.loggedinUserRole == 'Dispatch Manager' || vm.loggedinUserRole == 'Dispatch Team Lead'|| vm.loggedinUserRole == 'Freelancer Dispatcher'|| vm.loggedinUserRole == 'OnBoarding Team Lead') {\r\n userFormData.ReportingTo = vm.ReportingTo;\r\n userFormData.Role = vm.Role;\r\n }else if(vm.loggedinUserRole == 'Supervisor'){\r\n userFormData.ReportingTo = loggedinUser;\r\n userFormData.Role = 'Field Engineer';\r\n }\r\n\r\n \r\n\r\n if((vm.email==null || vm.email=='') && (vm.phone_number==null || vm.phone_number=='')){\r\n vm.showFailure(\"Failed\", \"Please provide email id or mobile number\");\r\n vm.isDisabled = false;\r\n } else{\r\n // Submit as normal\r\n if (vm.editMode) {\r\n RoasterTeamFormCreationService.updateUser(userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess(\"Success\", \"User Updated Successfully\");\r\n vm.isDisabled = false;\r\n $timeout(function () {\r\n $state.go('index.RoasterTeamMember', {\r\n reload: true\r\n });\r\n }, 2000);\r\n }\r\n else{\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n \r\n }, function () {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", \"Unable to update user\");\r\n })\r\n } else {\r\n\r\n userFormData.UserId = '';\r\n RoasterTeamFormCreationService.updateUser(userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n if (!vm.saveAndNewFlag && vm.loggedinUserRole == 'SuperAdministrator') {\r\n $state.go('index.RoasterTeamMember', {\r\n reload: true\r\n });\r\n }\r\n else if (!vm.saveAndNewFlag) {\r\n $state.go('index.RoasterTeamMember', {\r\n reload: true\r\n });\r\n\r\n $timeout(function () {\r\n window.location.reload(true);\r\n }, 3000);\r\n } else {\r\n vm.showSuccess(\"User Creation Status\", \"User created successfully\");\r\n vm.isDisabled = false;\r\n clearFormFields();\r\n }\r\n } else if (resp.data.ErrorCode == 104) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"User already exist\");\r\n } else if(resp.data && resp.data.Message) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", resp.data.Message);\r\n } else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n vm.isDisabled = false;\r\n }, function (error) {\r\n vm.isDisabled = false;\r\n if (error.data.ErrorCode == 104) {\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n }\r\n );\r\n }\r\n }\r\n } else {\r\n vm.signup_form.submitted = false;\r\n vm.isDisabled = false;\r\n }\r\n }\r\n\r\n // vm.saveAndNew = function () {\r\n // vm.saveAndNewFlag = true;\r\n // vm.saveUser();\r\n // }\r\n\r\n vm.getAccounts = function () {\r\n RoasterTeamFormCreationService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data && resp.status==200) { \r\n vm.accounts = resp.data;\r\n } \r\n }, function () { \r\n });\r\n } \r\n vm.getAccounts();\r\n\r\n function clearFormFields() {\r\n vm.username = '';\r\n vm.gender = '';\r\n vm.address = '';\r\n vm.email = '';\r\n vm.phone_number = '';\r\n vm.last_name = '';\r\n // vm.birth_date = '';\r\n vm.cores_address = '';\r\n vm.father_name = '';\r\n vm.alternate_number = '';\r\n vm.workArea = '';\r\n vm.city = '';\r\n // vm.reporting_to = '';\r\n vm.state = '';\r\n // vm.role = '';\r\n vm.skill = '';\r\n vm.expertise = '';\r\n vm.saveAndNewFlag = false;\r\n }\r\n\r\n var skillsArray = [];\r\n vm.getAllSkill = function () {\r\n RoasterTeamFormCreationService.getAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skills = resp.data; \r\n for (var index = 0; index < vm.skills.length; index++) { \r\n skillsArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n }\r\n }); \r\n }\r\n\r\n vm.selectExpertise = function (skill) {\r\n // RoasterTeamFormCreationService.getAllSkills().then(function (resp) {\r\n // vm.expertiseList = resp.data;\r\n // vm.expertiseList = [];\r\n if (!vm.skills) {\r\n var expertiseArray = [];\r\n expertiseArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n vm.expertiseList = expertiseArray;\r\n }\r\n }\r\n\r\n\r\n ///get all the circles through api\r\n function getAllCircles() {\r\n vm.circles = [];\r\n vm.CircleList=[];\r\n vm.MainRegionList = '';\r\n if (vm.EnableRegion) {\r\n RoasterTeamFormCreationService.GetRegion(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.MainRegionList = resp.data;\r\n $log.log('RegionList',vm.RegionList)\r\n }\r\n }\r\n })\r\n }else if (vm.LocationMapping == 'Circle') {\r\n RoasterTeamFormCreationService.GetTelecomCircle(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.CircleList = resp.data.values;\r\n \r\n }\r\n }\r\n })\r\n }else{\r\n\r\n RoasterTeamFormCreationService.getAllState(loggedinUser, token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.circles = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n ///Executes when the user select the state\r\n vm.selectState = function (state) {\r\n var Getstate = state;\r\n RoasterTeamFormCreationService.getCities(loggedinUser,Getstate,token).then(function (resp) {\r\n vm.cityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n vm.selectSubRegion = function(region){\r\n \r\n RoasterTeamFormCreationService.GetSubRegion(loggedinUser,token,region).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.SubRegionList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n vm.selectCitySubRegion = function(Subregion){\r\n \r\n RoasterTeamFormCreationService.GetCityBySubRegion(loggedinUser,Subregion,token).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.SubCityList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.selectStateforPresent = function (state) { \r\n var Getstate = state;\r\n RoasterTeamFormCreationService.getCities(loggedinUser,Getstate,token).then(function (resp) {\r\n vm.presentcityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n //state \r\n vm.getStateList = function (region) {\r\n RoasterTeamFormCreationService.getState(loggedinUser, token, region).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.allStates = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n ///Executes when the user select the city\r\n vm.selectCity = function (city) {\r\n RoasterTeamFormCreationService.getAllPincode(city).then(function (resp) {\r\n vm.pincodeList = resp.data;\r\n if (!resp.data) {\r\n var pincodeArray = [];\r\n pincodeArray.push({\r\n pincode: city\r\n });\r\n vm.pincodeList = pincodeArray;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.selectCityforPresent = function (loggedinUser, city) {\r\n RoasterTeamFormCreationService.getAllPincode(loggedinUser, city.ID).then(function (resp) {\r\n vm.presentpincodeList = resp.data;\r\n if (!resp.data) {\r\n var pincodeArray = [];\r\n pincodeArray.push({\r\n pincode: city\r\n });\r\n vm.pincodeList = pincodeArray;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.removeAccountDetail = function (index) {\r\n vm.workAreas.splice(index,1); \r\n vm.getAllHDAccounts(); \r\n }\r\n\r\n vm.EditData=function(index){\r\n vm.SelectedAccount = vm.workAreas[index]; \r\n vm.territoryStates(vm.SelectedAccount.AccountId);\r\n vm.selectedStateForTerritory(vm.SelectedAccount.State);\r\n vm.selectedCityForTerritory(vm.SelectedAccount.City); \r\n }\r\n\r\n vm.AccountChange=function (){ \r\n for (var i = 0; i < vm.RemainingCHDAccounts.length; i++) {\r\n var Acc = vm.RemainingCHDAccounts[i];\r\n if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n vm.SelectedAccount.AccountId = Acc.AccountId;\r\n // vm.SelectedAccount = Acc; \r\n // break;\r\n }\r\n }\r\n vm.territoryStates(vm.SelectedAccount.AccountId);\r\n }\r\n vm.territoryStates = function (AccountId) {\r\n vm.AccountIDforTerritory = AccountId;\r\n RoasterTeamFormCreationService.getTerritoryStates(loggedinUser, token,AccountId,vm.Role).then(function(resp) {\r\n vm.stateListTerritory = resp.data;\r\n if(resp.status == 200) {\r\n // vm.territoryCity();\r\n }\r\n })\r\n }\r\n\r\n vm.selectedStateForTerritory = function (state) {\r\n vm.territoryCity(state,vm.AccountIDforTerritory);\r\n }\r\n vm.territoryCity = function (state,AccountId) {\r\n vm.StateForTerritoryCity = state;\r\n RoasterTeamFormCreationService.getTerritoryCity(loggedinUser, token,AccountId,state,vm.Role).then(function(resp) {\r\n vm.cityListTerritory = resp.data;\r\n if(resp.status == 200) {\r\n \r\n\r\n }\r\n })\r\n }\r\n\r\n vm.selectedCityForTerritory = function (City) {\r\n vm.territoryPincodes(City);\r\n }\r\n vm.uniPin = [];\r\n vm.territoryPincodes = function (City) {\r\n RoasterTeamFormCreationService.getTerritoryPincodes(loggedinUser, token,vm.AccountIDforTerritory,vm.StateForTerritoryCity,City,vm.Role).then(function(resp) {\r\n // if(resp.status == 200) {\r\n vm.pinCodeListTerritory = resp.data;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n var Acc = vm.workAreas[i];\r\n if((Acc.City == City) && (Acc.AccountId ==vm.AccountIDforTerritory) && (Acc.State == vm.StateForTerritoryCity)) {\r\n for (var j = 0; j < vm.pinCodeListTerritory.length; j++) { \r\n var pinCodeUnique = vm.pinCodeListTerritory[j];\r\n for (var k = 0; k < Acc.PinCode.length; k++) { \r\n if( pinCodeUnique == Acc.PinCode[k]) {\r\n vm.pinCodeListTerritory.splice(j,1);\r\n // break; \r\n }\r\n }\r\n \r\n }\r\n }\r\n }\r\n // }\r\n })\r\n }\r\n\r\n vm.addMoreAccount = function(){\r\n vm.SelectedAccount=[]; \r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n var Acc = vm.workAreas[i];\r\n for (var j = 0; j < vm.RemainingCHDAccounts.length; j++) { \r\n // console.log('acc = ' + Acc.AccountId + \" vm.RemainingCHDAccounts[j].AccountId \" + vm.RemainingCHDAccounts[j].AccountId + 'len ' + j) \r\n if(Acc.AccountId == vm.RemainingCHDAccounts[j].AccountId ) {\r\n // vm.RemainingCHDAccounts.splice(j,1); \r\n //break; \r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n //CHDAllaccounts\r\n vm.getAllHDAccounts = function ( ) {\r\n RoasterTeamFormCreationService.getAllAccountsConfigured(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data){ \r\n if(resp.status==200){\r\n vm.CHDAccounts = resp.data;\r\n vm.RemainingCHDAccounts = vm.CHDAccounts;\r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n\r\n vm.UpdateAllHDAccountConfig = function(index){ \r\n vm.showAction = true; \r\n var checkAccount = false;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n if(vm.SelectedAccount.PinCode == undefined) {\r\n vm.showFailure(\"Failed\", \"Please add Account details with Locations\");\r\n vm.workAreas[index].edit = true;\r\n }\r\n // vm.workAreas[i] == vm.SelectedAccount;\r\n // vm.workAreas[i].AccountSkillSet = vm.SelectedSkills;\r\n // vm.workAreas[i].AccountLocations = vm.SelectedLocations;\r\n // var Acc = vm.workAreas[i];\r\n // if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n // vm.workAreas[i] == vm.SelectedAccount;\r\n // checkAccount = true;\r\n // break;\r\n // }\r\n }\r\n if(checkAccount == false && index == undefined) { \r\n vm.SelectedAccountObj = Object.assign({}, vm.SelectedAccount); \r\n if(vm.SelectedAccountObj.AccountName && vm.SelectedAccountObj.State && vm.SelectedAccountObj.City && vm.SelectedAccountObj.PinCode) {\r\n vm.workAreas.push(vm.SelectedAccountObj);\r\n } \r\n else {\r\n vm.showFailure(\"Failed\", \"Please add Account details with Locations\");\r\n vm.workAreas[i].edit = true;\r\n \r\n } \r\n \r\n }\r\n else {\r\n var Acc = vm.workAreas[i];\r\n }\r\n vm.showEditList = false; \r\n }\r\n \r\n vm.getAllHDAccounts(); \r\n vm.getAllSkill();\r\n vm.getStateList(\"INDIA\");\r\n }\r\n});\r\n\nangular.module('inspinia').service('ReturnablePartConsumeListService', function (AcessoriesURL, ApiURL, $window, $http) {\r\n\r\n this.GetAllWareHouse = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllWareHouse';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n } \r\n\r\n this.GetRefundablePartlist = function (paymentstatus,DateField,startDate,endDate,oPageIndex,oPageSize,OrderBy,SortType, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/GetRefundablePartlist?StartDate=' + startDate + '&EndDate=' + endDate + '&DateField=' + DateField + '&PaidStatus=' + paymentstatus + '&OrderBy=' + OrderBy + '&SortType=' + SortType + '&PageSize=' + oPageSize + '&PageIndex=' + oPageIndex;\r\n return $http.get(url,{\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.ReturnTicketPartOrderPlace = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFReturnOrder/ReturnTicketPartOrderPlace';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetRefundablePartlist_CSV = function (paymentstatus,DateField,startDate,endDate,oPageIndex,oPageSize,OrderBy,SortType, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/GetRefundablePartlist_CSV?StartDate=' + startDate + '&EndDate=' + endDate + '&DateField=' + DateField + '&PaidStatus=' + paymentstatus + '&OrderBy=' + OrderBy + '&SortType=' + SortType + '&PageSize=' + oPageSize + '&PageIndex=' + oPageIndex;\r\n return $http.get(url,{\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n // this.MarkNonReturnPartDetails = function (parttId,loggedinUser, token) {\r\n // var url = AcessoriesURL + '/api/RequestedPartInventoryController/MarkNonReturnPartDetails?PartId=' + parttId;\r\n // return $http.put(url,null, {\r\n // headers: { 'Token': token, 'UserId': loggedinUser }\r\n // });\r\n // }\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ReturnablePartConsumeListController', function (ReturnablePartConsumeListService,ngProgressFactory, $resource,$rootScope,$http, $stateParams, toaster, $filter, $compile, $q,ApiURL, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\t// var warehouseId = $stateParams.warehouseId;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvar oPageIndex = 1;\r\n\t\tvar oPageSize = 10;\r\n\t\tvm.progressbar = ngProgressFactory.createInstance();\r\n\t\tvm.noMsg = [];\r\n\t\tvm.noOfRecords = 0;\r\n\t\tvm.file = null;\r\n\t\tvm.allOrdersPageListCount = 10;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.DateField = 'CreatedOn';\r\n\t\tvm.OrderBy = 'desc';\r\n \t\tvm.SortType = 'CreatedOn';\r\n\t\t vm.paymentstatus = 'All';\r\n\t\tvm.allInventoryPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.UserId = '';\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\t$scope.dates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t\t};\r\n\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.GetRefundablePartlist();\r\n\t\t};\r\n\r\n\t\t$scope.totalInvList = 0;\r\n\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t$scope.InventoryPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.changeAllInventoryPageListCount = function () {\r\n\t\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t\tPageSize = $scope.inventoryPerPage;\r\n\t\t\t$scope.AllInventoryTablePageChanged($scope.InventoryPagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\t\tPageIndex = newPage;\r\n\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\tPageIndex = newPage;\r\n\t\t\tvm.GetRefundablePartlist();\r\n\r\n\t\t};\r\n\t\tvm.SearchText = '';\r\n\t\tvm.warehouselist = \"\";\r\n\t\tvm.warehouseInvetoryList = [];\r\n\r\n\r\n\t\tvm.clearFilter = function () {\r\n\t\t\tvm.SearchText = '';\r\n\t\t\tvm.warehouselist = '';\r\n\r\n\t\t}\r\n vm.applyOrderFilter = function () {\r\n\t\t\tvm.GetDamgedPrdouctDetailList();\r\n\t\t\tvm.GetProductDetailDashboardByFilter();\r\n\t\t\t// vm.GetOrdersDashboardByFilter();\r\n\t\t}\r\n\t\tvm.selectedData = [];\r\n\r\n\t\tvm.handleCheckboxToggle = function (order) {\r\n\t\t\tif (order.isSelected) {\r\n\t\t\t\tvm.selectedData.push({\r\n\t\t\t\t\tTicketId: order.TicketId,\r\n\t\t\t\t\tMMFPartId: order.PartId,\r\n\t\t\t\t\tSKUId: order.SKUId,\r\n\t\t\t\t\tStockCount: order.StockCount\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.selectedData = vm.selectedData.filter(function (item) {\r\n\t\t\t\t\treturn item.MMFPartId !== order.PartId;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t\t\r\n\t\tvm.toggleSelectAll = function () {\r\n\t\t\tif (vm.selectAll) {\r\n\t\t\t\tvm.selectedData = vm.paymentstatusList\r\n\t\t\t\t\t.filter(function (order) {\r\n\t\t\t\t\t\treturn order.PartReturnStatus === 'Pending' || order.PartReturnStatus === 'Reject';\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.map(function (order) {\r\n\t\t\t\t\t\torder.isSelected = true;\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tTicketId: order.TicketId,\r\n\t\t\t\t\t\t\tMMFPartId: order.PartId,\r\n\t\t\t\t\t\t\tSKUId: order.SKUId,\r\n\t\t\t\t\t\t\tStockCount: order.StockCount\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.paymentstatusList = vm.paymentstatusList.map(function (order) {\r\n\t\t\t\t\torder.isSelected = false;\r\n\t\t\t\t\treturn order;\r\n\t\t\t\t});\r\n\t\t\t\tvm.selectedData = [];\r\n\t\t\t}\r\n\t\t};\r\n\t\t;\r\n\t\t\r\n\r\nvm.OpenCreateChallanModel = function () {\r\n if (vm.selectedData.length === 0) {\r\n alert('Please select at least one item.');\r\n return;\r\n }\r\n vm.createchallan = $uibModal.open({\r\n templateUrl: 'MarkpaymentAccept.html',\r\n backdrop: 'static',\r\n scope: angular.extend($scope.$new(), { challanData: vm.selectedData })\r\n });\r\n};\r\n\r\n\r\n\t\tvm.closeCreateChallanConfirmation = function () {\r\n\t\t\tvm.createchallan.close();\r\n\t\t\tvm.selectedData = [];\r\n\t\t}\r\n\r\n\r\n\t\t$scope.TotalRecord = 0;\r\n\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t$scope.OrdersPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllOrderPageListCount = function () {\r\n\t\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t\toPageSize = $scope.ordersPerPage;\r\n\t\t\t$scope.AllOrderTablePageChanged($scope.OrdersPagination.current);\r\n\t\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\t\toPageIndex = newPage;\r\n\t\t\t\tvm.GetRefundablePartlist();\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\toPageIndex = newPage;\r\n\t\t\tvm.GetRefundablePartlist();\r\n\r\n\t\t};\r\n\r\n\t\tvm.OpenTicketView = function (ticket) {\r\n\t\t\t$state.go('index.JobDetailView', {\r\n\t\t\t\tticketId: ticket\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\t\t\r\n\t\tvm.paymentstatusList = [];\r\n\t\tvm.GetRefundablePartlist = function () {\r\n\t\t\tReturnablePartConsumeListService.GetRefundablePartlist(vm.paymentstatus,vm.DateField,startDate,endDate,oPageIndex,oPageSize,vm.OrderBy,vm.SortType, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.paymentstatusList = resp.data.returnableparts;\r\n\t\t\t\t\t$scope.TotalRecord = resp.data.Count;\r\n\t\t\t\t\tif (vm.paymentstatusList.length < vm.allOrdersPageListCount)\r\n\t\t\t\t\t\tvm.orderListLength = $scope.TotalRecord;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.orderListLength = oPageIndex * vm.allOrdersPageListCount;\r\n\t\t\t\t\tif (oPageIndex == 1)\r\n\t\t\t\t\t\tvm.opageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.opageindexCount = (((oPageIndex - 1) * vm.allOrdersPageListCount) + 1);\r\n\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetRefundablePartlist();\r\n\r\n\t\tvm.GetAllWareHouse = function () {\r\n\t\t\tReturnablePartConsumeListService.GetAllWareHouse(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.warehouseitemlist = resp.data;\r\n\t\t\t\t\tif (vm.warehouseitemlist.length > 0) {\r\n\t\t\t\t\t\tvm.warehouseid = vm.warehouseitemlist[0].strWareHouseId; \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllWareHouse();\r\n\t\tvm.OpenNonReturnUploadModel = function () {\r\n\t\t\tvm.ReadyToRaiseModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ReadyToRaiseModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeReadyToRaiseModal = function () {\r\n\t\t\tvm.showPassed = false;\r\n\t\t\tvm.showErrors = false;\r\n\t\t\tvm.errorList = [];\r\n\t\t\tvm.ReadyToRaiseModal.close();\r\n\t\t}\r\n\t\r\n\r\n\t\tvm.ReturnTicketPartOrderPlace = function () {\r\n\t\t\tvm.validationForm.submitted = true;\r\n\t\t\tif (vm.validationForm.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\tvar data ={\r\n\t\t\t\t\"WareHouseID\": vm.warehouseid,\r\n\t\t\t\t\"Attachment\": vm.FileName,\r\n\t\t\t\t\"WarrantyType\": \"\",\r\n\t\t\t\t\"returnTicketDefects\": vm.selectedData\r\n\t\t\t}\r\n\t\t\tReturnablePartConsumeListService.ReturnTicketPartOrderPlace(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Return Challan has been created successfully\");\r\n\t\t\t\t\tvm.closeCreateChallanConfirmation();\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tvm.GetRefundablePartlist();\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\t}\r\n\r\n\t\tvm.GetRefundablePartlist_CSV = function () {\r\n\t\t\tReturnablePartConsumeListService.GetRefundablePartlist_CSV(vm.paymentstatus,vm.DateField,startDate,endDate,oPageIndex,oPageSize,vm.OrderBy,vm.SortType, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvar csvData = resp.data;\r\n\t\t\t\t\tvar blob = new Blob([csvData], { type: 'text/csv' });\r\n\t\t\t\t\tvar url = window.URL.createObjectURL(blob);\r\n\t\t\t\t\tvar a = document.createElement('a');\r\n\t\t\t\t\ta.href = url;\r\n\t\t\t\t\ta.download = 'All_Returnable_Products_List.csv';\r\n\t\t\t\t\ta.click();\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.getProjects = function(customer){\r\n\t\t\tvm.projectList = customer.Projects;\r\n\t\t\tif(vm.projectList.length > 0){\r\n\t\t\t vm.selectedProject = vm.projectList[0];\r\n\t\t\t}\r\n\t\t }\r\n\t\t\r\n\t\t if (vm.bulkuploadType == 'cms') {\r\n\t\t\tvm.dzOptions = {\r\n\t\t\t paramName: 'photo',\r\n\t\t\t maxFilesize: '100',\r\n\t\t\t url: '/',\r\n\t\t\t acceptedFiles: '.zip',\r\n\t\t\t dictDefaultMessage: 'Click to add or drop files',\r\n\t\t\t dictRemoveFile: 'Remove'\r\n\t\t\t};\r\n\t\t } else {\r\n\t\t\tvm.dzOptions = {\r\n\t\t\t paramName: 'photo',\r\n\t\t\t maxFilesize: '100',\r\n\t\t\t url: '/',\r\n\t\t\t acceptedFiles: '.xlsx, .xls',\r\n\t\t\t dictDefaultMessage: 'Click to add or drop files',\r\n\t\t\t dictRemoveFile: 'Remove'\r\n\t\t\t};\r\n\t\t }\r\n\t\t\r\n\t\t vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n\t\t\t.withPaginationType('full_numbers').withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20]);\r\n\t\t\r\n\t\t// vm.dtColumnDefs = [\r\n\t\t// \tDTColumnDefBuilder.newColumnDef(0).notSortable()\r\n\t\t// ];\r\n\t\t\r\n\t\t vm.loaderFlag = false;\r\n\t\t vm.hideLoader = function () {\r\n\t\t\tif (vm.loaderFlag) {\r\n\t\t\t $rootScope.$broadcast(\"loader_hide\");\r\n\t\t\t $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n\t\t\t $timeout(vm.hideLoader, 1);\r\n\t\t\t}\r\n\t\t }\r\n\t\t\r\n\t\t vm.scrollDwn = function () {\r\n\t\t\t$(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n\t\t\t// $location.hash('error_datatable');\r\n\t\t\t// $anchorScroll();\r\n\t\t }\r\n\t\t\r\n\t\t vm.dzCallbacks = {\r\n\t\t\t'addedfile': function (file) {\r\n\t\t\t vm.showErrors = false;\r\n\t\t\t vm.errorList = [];\r\n\t\t\t vm.UpdateErrorList = [];\r\n\t\t\t vm.disableUploadButton = true;\r\n\t\t\t vm.users = [];\r\n\t\t\r\n\t\t\t vm.customers = [];\r\n\t\t\t vm.tickets = [];\r\n\t\t\t vm.cms = [];\r\n\t\t\t $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n\t\t\t $(\".bulkupload-progress\").width(0);\r\n\t\t\t $(\".ajax-loader\").hide();\r\n\t\t\t vm.progressbar.reset();\r\n\t\t\t vm.progressbar.start();\r\n\t\t\t vm.showSuccess = false;\r\n\t\t\t vm.canceler = $q.defer();\r\n\t\t\t vm.successTitle = \"\";\r\n\t\t\t vm.successMsg = \"\";\r\n\t\t\t vm.noOfRecords = 0;\r\n\t\t\r\n\t\t\t var dropzoneChildren = $(\"#dropzone1\").children();\r\n\t\t\t $(\"#dropzone1\").empty();\r\n\t\t\t $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n\t\t\t $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\t\t\r\n\t\t\t vm.loaderFlag = true;\r\n\t\t\t vm.hideLoader();\r\n\t\t\t vm.file = file;\r\n\t\t\r\n\t\t\t var fd = new FormData();\r\n\t\t\t fd.append('file', file);\r\n\t\t\t if (vm.bulkuploadType != 'cms') {\r\n\t\t\t\tif (vm.updateType != 'UpdateS') {\r\n\t\t\t\t $http.post(ApiURL + '/api/BulkUpload/MediaUpload?reqUserId=' + loggedinUser + '&action=Create', fd, {\r\n\t\t\t\t transformRequest: angular.identity,\r\n\t\t\t\t headers: { 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser},\r\n\t\t\t\t timeout: vm.canceler.promise\r\n\t\t\t\t})\r\n\t\t\t\t .success(function (data) {\r\n\t\t\t\t\t$(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\tif (vm.bulkuploadType == 'user') {\r\n\t\t\t\t\t vm.users = data.Users;\r\n\t\t\t\t\t vm.noOfRecords = data.Users ? data.Users.length : 0;\r\n\t\t\t\t\t} else if (vm.bulkuploadType == 'customer') {\r\n\t\t\t\t\t vm.customers = data.Customers;\r\n\t\t\t\t\t vm.noOfRecords = data.Customers ? data.Customers.length : 0;\r\n\t\t\t\t\t} else if (vm.bulkuploadType == 'ticket') {\r\n\t\t\t\t\t vm.tickets = data.Tickets;\r\n\t\t\t\t\t vm.noOfRecords = data.Tickets ? data.Tickets.length : 0;\r\n\t\t\t\t\t}\r\n\t\t\r\n\t\t\t\t\t$(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n\t\t\t\t\tif (data.Errors.length > 0) {\r\n\t\t\t\t\t //console.log('data.Errors',data.Errors);\r\n\t\t\t\t\t vm.dtColumnDefs = [\r\n\t\t\t\t\t\tDTColumnDefBuilder.newColumnDef(0).notSortable()\r\n\t\t\t\t\t ];\r\n\t\t\t\t\t angular.forEach(data.Errors, function (v, k) {\r\n\t\t\r\n\t\t\t\t\t\tif (v.ItemErrors.length > 0) {\r\n\t\t\t\t\t\t var e1 = {};\r\n\t\t\t\t\t\t angular.forEach(v.ItemErrors, function (v1, k1) {\r\n\t\t\t\t\t\t\te1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n\t\t\t\t\t\t });\r\n\t\t\t\t\t\t if (v.Row > 0 && data.Users && data.Users.length > 0 && data.Users.length >= v.Row) {\r\n\t\t\t\t\t\t\te1.data = data.Users[v.Row - 1];\r\n\t\t\t\t\t\t } if (v.Row > 0 && data.Tickets && data.Tickets.length > 0 && data.Tickets.length >= v.Row) {\r\n\t\t\t\t\t\t\te1.data = data.Tickets[v.Row - 1];\r\n\t\t\t\t\t\t } if (v.Row > 0 && data.Customers && data.Customers.length > 0 && data.Customers.length >= v.Row) {\r\n\t\t\t\t\t\t\te1.data = data.Customers[v.Row - 1];\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t vm.errorList.push(e1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t });\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Invalid records!\";\r\n\t\t\t\t\t vm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t vm.showErrors = true;\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t} else if (data.ErrorCode == 103) {\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Missing columns in excel file\";\r\n\t\t\t\t\t vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t angular.forEach(data.MissingColumns, function (k, v) {\r\n\t\t\t\t\t\tvm.noMsg.push(k);\r\n\t\t\t\t\t });\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t} else if (data.Message && data.Message.length>0) {\r\n\t\t\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Validation failed\";\r\n\t\t\t\t\t vm.successMsg = data.Message\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t angular.forEach(data.MissingColumns, function (k, v) {\r\n\t\t\t\t\t\tvm.noMsg.push(k);\r\n\t\t\t\t\t });\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = false;\r\n\t\t\t\t\t vm.successTitle = \"Validation completed\";\r\n\t\t\t\t\t vm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are validated successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found. Please click on start upload button to proceed.\";\r\n\t\t\t\t\t // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t })\r\n\t\t\t\t .error(function (errorMessage) {\r\n\t\t\t\t\t$(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t\tvm.successTitle = \"Validation of records failed\";\r\n\t\t\t\t\tvm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t });\r\n\t\t\t\t}else if (vm.updateType == 'UpdateS'){\r\n\t\t\t\t //http://localhost:56749/api/BulkUpload/BulkUpdateLinkTickets?reqUserId=U310000000001\r\n\t\t\t\t $http.post(ApiURL + '/api/BulkUpload/BulkUpdateLinkTickets?reqUserId=' + loggedinUser, fd, {\r\n\t\t\t\t transformRequest: angular.identity,\r\n\t\t\t\t headers: { 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser },\r\n\t\t\t\t timeout: vm.canceler.promise\r\n\t\t\t\t})\r\n\t\t\t\t .success(function (data) {\r\n\t\t\t\t\t$(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\tif (vm.bulkuploadType == 'user') {\r\n\t\t\t\t\t vm.users = data.Users;\r\n\t\t\t\t\t vm.noOfRecords = data.Users ? data.Users.length : 0;\r\n\t\t\t\t\t} else if (vm.bulkuploadType == 'customer') {\r\n\t\t\t\t\t vm.customers = data.Customers;\r\n\t\t\t\t\t vm.noOfRecords = data.Customers ? data.Customers.length : 0;\r\n\t\t\t\t\t} else if (vm.bulkuploadType == 'ticket') {\r\n\t\t\t\t\t vm.tickets = data.Tickets;\r\n\t\t\t\t\t vm.noOfRecords = data.Tickets ? data.Tickets.length : 0;\r\n\t\t\t\t\t}\r\n\t\t\r\n\t\t\t\t\t$(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n\t\t\t\t\tif (data.Errors.length > 0) {\r\n\t\t\t\t\t vm.showErrors = true;\r\n\t\t\t\t\t // vm.dtColumnDefs = [];\r\n\t\t\t\t\t // for (var i = 0; i < data.Errors.length; i++) {\r\n\t\t\t\t\t // vm.dtColumnDefs.push(DTColumnDefBuilder.newColumnDef(i));\r\n\t\t\t\t\t // }\r\n\t\t\t\t\t vm.dtColumnDefs = [\r\n\t\t\t\t\t\tDTColumnDefBuilder.newColumnDef(0).notSortable()\r\n\t\t\t\t\t ];\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t angular.forEach(data.Errors, function (v, k) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//errObj.ItemErrors = [];\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif (v.ItemErrors.length>0) {\r\n\t\t\t\t\t\t angular.forEach(v.ItemErrors, function(d){\r\n\t\t\t\t\t\t\tvar errObj = {};\r\n\t\t\t\t\t\t\terrObj.TicketId = v.TicketId;\r\n\t\t\t\t\t\t\tif (d.ErrorMessage) {\r\n\t\t\t\t\t\t\t errObj.TestName = d.TemplateName;\r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t errObj.ParameterName = d.ItemName;\r\n\t\t\t\t\t\t\t errObj.Error = d.ErrorMessage;\r\n\t\t\t\t\t\t\t errObj.row = d.row;\r\n\t\t\t\t\t\t\t errObj.col = d.col;\r\n\t\t\t\t\t\t\t vm.UpdateErrorList.push(errObj);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t }) \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//vm.UpdateErrorList.push(errObj);\r\n\t\t\t\t\t\t//console.log('vm.UpdateErrorList',vm.UpdateErrorList);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t });\r\n\t\t\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Invalid records!\";\r\n\t\t\t\t\t vm.successMsg = \"There are \" + vm.UpdateErrorList.length + \" errors. To see them click here\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t vm.showErrors = true;\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t} else if (data.ErrorCode == 103) {\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Missing columns in excel file\";\r\n\t\t\t\t\t vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t angular.forEach(data.MissingColumns, function (k, v) {\r\n\t\t\t\t\t\tvm.noMsg.push(k);\r\n\t\t\t\t\t });\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t} else if (data.Message && data.Message.length>0) {\r\n\t\t\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Upload failed\";\r\n\t\t\t\t\t vm.successMsg = data.Message\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t angular.forEach(data.MissingColumns, function (k, v) {\r\n\t\t\t\t\t\tvm.noMsg.push(k);\r\n\t\t\t\t\t });\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = false;\r\n\t\t\t\t\t vm.successTitle = \"Upload completed\";\r\n\t\t\t\t\t vm.successMsg = \"All tickets have been uploaded successfully\";\r\n\t\t\t\t\t // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t })\r\n\t\t\t\t .error(function (errorMessage) {\r\n\t\t\t\t\t$(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t\tvm.showSuccess = true;\r\n\t\t\t\t\tvm.successTitle = \"Upload failed\";\r\n\t\t\t\t\tvm.successMsg = errorMessage.Message;\r\n\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t });\r\n\t\t\t\t}\r\n\t\t\t \r\n\t\t\t } else {\r\n\t\t\t\tvar url = verifyBulkPost.replace(\"{accountId}\", vm.userId);\r\n\t\t\t\t$http.post(url, fd, {\r\n\t\t\t\t transformRequest: angular.identity,\r\n\t\t\t\t headers: { 'Content-Type': undefined },\r\n\t\t\t\t timeout: vm.canceler.promise\r\n\t\t\t\t})\r\n\t\t\t\t .success(function (data) {\r\n\t\t\t\t\tif(data.errorCode==0 && data.result && data.result.success && data.result.success.length>0){\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = false;\r\n\t\t\t\t\t vm.successTitle = \"Validation completed\";\r\n\t\t\t\t\t vm.successMsg = \"CMS content is validated successfully. Please click on start upload button to proceed.\";\r\n\t\t\t\t\t // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\t\t\t vm.progressbar.complete();\r\n\t\t\r\n\t\t\t\t\t} else if(data.validationFlag==false && data.rowErrors){\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Invalid records!\";\r\n\t\t\t\t\t vm.successMsg = \"There are \" + data.rowErrors.length + \" errors. To see them click here\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t vm.showErrors = true;\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t if (data.rowErrors.length > 0) {\r\n\t\t\t\t\t\tvm.dtColumnDefs = [\r\n\t\t\t\t\t\t DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n\t\t\t\t\t\t];\r\n\t\t\t\t\t\tangular.forEach(data.rowErrors, function (v, k) {\r\n\t\t\r\n\t\t\t\t\t\t if (v.error.length > 0) {\r\n\t\t\t\t\t\t\tvar e1 = {};\r\n\t\t\t\t\t\t\tangular.forEach(v.error, function (v1, k1) {\r\n\t\t\t\t\t\t\t e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1 : v1;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\te1.data=JSON.parse(v.content); \r\n\t\t\t\t\t\t\tvm.errorList.push(e1);\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t }\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t\t vm.successTitle = \"Validation of records failed\";\r\n\t\t\t\t\t vm.successMsg = data.error+\". Please correct the data and re-upload file.\";\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t\t}\r\n\t\t\t\t })\r\n\t\t\t\t .error(function (errorMessage) {\r\n\t\t\t\t\tvm.showSuccess = true;\r\n\t\t\t\t\t$(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t\tvm.successTitle = \"Validation of records failed\";\r\n\t\t\t\t\tvm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t });\r\n\t\t\t }\r\n\t\t\t},\r\n\t\t\t'success': function (file, xhr) {\r\n\t\t\t},\r\n\t\t\t'error': function (file, errorMessage) {\r\n\t\t\t}\r\n\t\t };\r\n\t\t\r\n\t\t vm.addFiles = function () {\r\n\t\t\t$(\"#dropzone1\").trigger(\"click\");\r\n\t\t }\r\n\t\t\r\n\t\t vm.uploadFile = function () {\r\n\t\t\tif (vm.users && vm.users.length > 0) {\r\n\t\t\r\n\t\t\t vm.progressbar.reset();\r\n\t\t\t vm.progressbar.start();\r\n\t\t\r\n\t\t\t $http.post(ApiURL + '/api/User/' + loggedinUser + '/UploadUsers',\r\n\t\t\t\tvm.users, {\r\n\t\t\t\t headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser }\r\n\t\t\t\t})\r\n\t\t\t\t.success(function (data) {\r\n\t\t\t\t console.log(data);\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t vm.successTitle = \"Upload completed\";\r\n\t\t\t\t vm.successMsg = \"Users are created in bulk successfully\";\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t})\r\n\t\t\t\t.error(function (errorMessage) {\r\n\t\t\t\t console.log(errorMessage)\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.successTitle = \"Upload Failed\";\r\n\t\t\t\t vm.successMsg = errorMessage;\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t});\r\n\t\t\r\n\t\t\t} else if (vm.tickets && vm.tickets.length > 0) {\r\n\t\t\r\n\t\t\t vm.progressbar.reset();\r\n\t\t\t vm.progressbar.start();\r\n\t\t\t vm.disableUploadButton = true;\r\n\t\t\r\n\t\t\t $http.post(ApiURL + '/api/Ticket/{TicketRequestModels}/' + vm.userId + '/UploadTickets?action=Create',\r\n\t\t\t\tvm.tickets, {\r\n\t\t\t\t headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':vm.userId }\r\n\t\t\t\t})\r\n\t\t\t\t.success(function (data) {\r\n\t\t\t\t console.log(data);\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t vm.successTitle = \"Upload completed\";\r\n\t\t\t\t vm.successMsg = \"Jobs are created in bulk successfully\";\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t})\r\n\t\t\t\t.error(function (errorMessage) {\r\n\t\t\t\t console.log(errorMessage)\r\n\t\t\t\t vm.disableUploadButton = false;\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.successTitle = \"Upload Failed\";\r\n\t\t\t\t vm.successMsg = errorMessage;\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t});\r\n\t\t\r\n\t\t\t} else if (vm.customers && vm.customers.length > 0) {\r\n\t\t\r\n\t\t\t vm.progressbar.reset();\r\n\t\t\t vm.progressbar.start();\r\n\t\t\r\n\t\t\t $http.post(ApiURL + '/api/Customer/{objCustomerRequestModels}/' + vm.userId + '/UploadCustomers',\r\n\t\t\t\tvm.customers, {\r\n\t\t\t\t headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':vm.userId }\r\n\t\t\t\t})\r\n\t\t\t\t.success(function (data) {\r\n\t\t\t\t console.log(data);\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.successTitle = \"Upload completed\";\r\n\t\t\t\t vm.successMsg = \"Customers are created in bulk successfully\";\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t})\r\n\t\t\t\t.error(function (errorMessage) {\r\n\t\t\t\t console.log(errorMessage)\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.successTitle = \"Upload Failed\";\r\n\t\t\t\t vm.successMsg = errorMessage;\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t});\r\n\t\t\t} else if (vm.bulkuploadType == 'cms') {\r\n\t\t\t vm.progressbar.reset();\r\n\t\t\t vm.progressbar.start();\r\n\t\t\r\n\t\t\t var fd = new FormData();\r\n\t\t\t fd.append('file', vm.file);\r\n\t\t\t \r\n\t\t\t var url = addBulkPost.replace(\"{accountId}\", vm.userId).replace(\"{userId}\", vm.userId);\r\n\t\t\t $http.post(url, fd, {\r\n\t\t\t\ttransformRequest: angular.identity,\r\n\t\t\t\theaders: { 'Content-Type': undefined }\r\n\t\t\t })\r\n\t\t\t\t.success(function (data) {\r\n\t\t\t\t console.log(data);\r\n\t\t\t\t if (data.errorCode > 0) {\r\n\t\t\t\t\tvm.showSuccess = true;\r\n\t\t\t\t\tvm.successTitle = \"Upload Failed\";\r\n\t\t\t\t\tvm.successMsg = data.error;\r\n\t\t\t\t\tvm.noMsg = [];\r\n\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\r\n\t\t\t\t } else if (data.result && data.result.success) {\r\n\t\t\t\t\tvm.showSuccess = true;\r\n\t\t\t\t\tvm.successTitle = \"Upload completed\";\r\n\t\t\t\t\tvm.successMsg = \"Products are created in bulk successfully\";\r\n\t\t\t\t\tvm.noMsg = [];\r\n\t\t\t\t\t$(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t } else {\r\n\t\t\t\t\tvm.showSuccess = true;\r\n\t\t\t\t\tvm.successTitle = \"Upload Failed\";\r\n\t\t\t\t\tvm.successMsg = \"Technical problem\";\r\n\t\t\t\t\tvm.noMsg = [];\r\n\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t }\r\n\t\t\t\t})\r\n\t\t\t\t.error(function (errorMessage) {\r\n\t\t\t\t console.log(errorMessage)\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.successTitle = \"Upload Failed\";\r\n\t\t\t\t vm.successMsg = errorMessage;\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t }\r\n\t\t vm.selectedItems = {}; \r\n\r\n // vm.toggleSelectAll = function () {\r\n // angular.forEach(vm.paymentstatusList, function (item) {\r\n // vm.selectedItems[item] = vm.checkedAll;\r\n // });\r\n // };\r\n \r\n // vm.toggleSingleSelection = function (partId) {\r\n // vm.checkedAll = vm.paymentstatusList.every(function (item) {\r\n // return vm.selectedItems[item];\r\n // });\r\n // };\r\n\t\tvm.Acceptancemodel = function (requestDetails) {\r\n\t\t\tvm.showPartDetails=false;\r\n\t\t\tvm.AllRequestDetail = requestDetails;\r\n\t\t\tvm.updateStatusModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'acceptancepopup.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\t\t$scope.uploadImageForNotice = function (files) {\r\n\t\t\tvm.FileName = \"\";\r\n\t\t\tvm.FilesDoc = files.files[0];\r\n\t\t\tvm.FileName = vm.FilesDoc.name;\r\n\t\t\tvm.FileSize = vm.FilesDoc.size;\r\n\t\t \r\n\t\t\t// Allowed file extensions (Images: jpg, jpeg, png, jfif and Documents: pdf, doc, docx)\r\n\t\t\tvar allowedExtensions = /(\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png|\\.JFIF|\\.jfif|\\.PDF|\\.pdf|\\.DOC|\\.doc|\\.DOCX|\\.docx)$/i;\r\n\t\t \r\n\t\t\t// Validate file extension\r\n\t\t\tif (!allowedExtensions.exec(vm.FileName)) {\r\n\t\t\t vm.FilesDoc = [];\r\n\t\t\t vm.clear();\r\n\t\t\t alert('Please upload a file with extensions .jpg, .jpeg, .png, .jfif, .pdf, .doc, or .docx only.');\r\n\t\t\t}\r\n\t\t \r\n\t\t\t// Optional: You can re-enable the file size check if needed (e.g., for 1MB max file size)\r\n\t\t\t// var allowedFileSize = 1000000; // 1MB\r\n\t\t\t// if(vm.FileSize > allowedFileSize) {\r\n\t\t\t// vm.FilesDoc = [];\r\n\t\t\t// vm.clear(); \r\n\t\t\t// alert('File size cannot exceed 1MB');\r\n\t\t\t// }\r\n\t\t };\r\n\t\t \r\n\t\t // Function to clear the file input\r\n\t\t vm.clear = function () {\r\n\t\t\tangular.element(\"input[type='file']\").val(null);\r\n\t\t };\r\n\t\t \r\n\t \r\n\t\t vm.clear = function () {\r\n\t\t\tangular.element(\"input[type='file']\").val(null);\r\n\t\t };\r\n\t\t// vm.CloseAcceptanceModel = function () {\r\n\t\t// \tvm.updateStatusModelOpen.close();\r\n\t\t// \tvm.DisableCreateButton(false);\r\n\t\t// \tvm.UpdateOrderStatus = \"\";\r\n\t\t// \tvm.TrackingLink = \"\";\r\n\t\t// \tvm.strPackageId = \"\";\r\n\t\t// \tvm.strPackageStatus = \"\";\r\n\t\t// \tvm.strPackageTrackingId = \"\";\r\n\t\t// \tvm.strShipmentId = \"\";\r\n\t\t// \tvm.PackageDetails = [];\r\n\t\t// \tvm.datePackedOn = moment().format(\"YYYY-MM-DD\");\r\n\t\t// }\r\n\r\n\t\r\n\r\n\t}\r\n});\nangular.module('inspinia').controller('RoasterTeamMemberController', function (teamCardService, $timeout, MainService, $rootScope, DTColumnBuilder, $compile, $q, ProjectCreationService, $scope, TeamProfileService, $stateParams, $uibModal, $localStorage, $log, $state, DTOptionsBuilder, PlanningResourseMapService, DashboardService, DTColumnDefBuilder, ImageUrl) {\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n $rootScope.rootScopeMessage = '';\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.users = [];\r\n vm.FilterSwitch = false;\r\n vm.client = 1;\r\n vm.tab = 1;\r\n vm.skill = '';\r\n vm.workArea = '';\r\n var skillsArray;\r\n var circleArray;\r\n var ProjectModal = {};\r\n var userIndex = 0;\r\n vm.filteredProperties = {};\r\n vm.selectAll = false;\r\n vm.showMinus = false;\r\n vm.searchText = \"\";\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.dtInstance = {};\r\n var witemNames = \"\";\r\n var witemValues = \"\";\r\n var wsSDate = '';\r\n var wsEDate = '';\r\n var uPageIndex = 1;\r\n var uwPageIndex = 1;\r\n var uPageSize = 10;\r\n var uwPageSize = 10;\r\n vm.userPageListCount= 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n\r\n vm.imageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else {\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function () {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n vm.exportData = function () {\r\n var blob = new Blob([document.getElementById('tab-1').innerHTML], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, \"Report.xls\");\r\n };\r\n\r\n vm.preProcessUsers = function (user) {\r\n user.ratingStars = vm.getRatingStars(user.CustomerRating);\r\n user.blankStars = vm.getBlankStars(user.CustomerRating);\r\n user.displayName = user.FirstName + \" \" + user.LastName;\r\n // user.displayName = user.displayName.length>8?(user.displayName.substring(0, 8)+\"...\"):user.displayName;\r\n var locs = \"\";\r\n angular.forEach(user.Locations, function (l) {\r\n locs += l + \",\";\r\n });\r\n user.allLocations = locs.length > 0 ? locs.substring(0, locs.length - 1) : \"\";\r\n var skills = \"\";\r\n angular.forEach(user.SkillSet, function (s) {\r\n skills += s + \",\";\r\n });\r\n user.allSkills = skills.length > 0 ? skills.substring(0, skills.length - 1) : \"\";\r\n var workareas = \"\";\r\n angular.forEach(user.Locations, function (w) {\r\n workareas += w + \",\";\r\n });\r\n user.allWorkareas = workareas.length > 0 ? workareas.substring(0, workareas.length - 1) : \"\";\r\n }\r\n\r\n vm.getAllUser = function () {\r\n teamCardService.getAllUserByReportingPerson(loggedinUser, token).then(function (resp) {\r\n vm.users = resp.data;\r\n vm.imageServices(vm.users.Picture);\r\n // angular.forEach(vm.users, function (d) {\r\n // vm.preProcessUsers(d);\r\n // });\r\n // if (vm.users.length == 0) {\r\n // vm.client = 1;\r\n // } else {\r\n // vm.client = 3;\r\n // vm.userInfo = vm.users[userIndex];\r\n // }\r\n }, function () {\r\n //$log.log('not working');\r\n })\r\n }\r\n\r\n vm.getUserInfo = function (userId, loggedinUser) {\r\n TeamProfileService.getFixedUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n vm.userInfo = resp.data;\r\n vm.imageServices(vm.userInfo.Picture);\r\n vm.preProcessUsers(vm.userInfo);\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.getAllSkills = function () {\r\n TeamProfileService.getAllSkills().then(function (resp) {\r\n vm.skills = resp.data;\r\n for (var index = 0; index < vm.skills.length; index++) {\r\n skillsArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.getAllCircles = function (loggedinUser) {\r\n ProjectCreationService.GetAllCircles(loggedinUser).then(function (resp) {\r\n vm.circles = resp.data;\r\n for (var index = 0; index < vm.circles.length; index++) {\r\n circleArray.push({\r\n workArea: vm.circles.circle\r\n });\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.AddTeamMember = function () {\r\n $state.go('index.RoasterTeamCreate', {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileView = function (userid) {\r\n $state.go('index.TeamProfile', {\r\n userId: userid\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileData = function (userId) {\r\n vm.getUserInfo(userId, loggedinUser);\r\n vm.client = 3;\r\n }\r\n\r\n vm.filtermodal = function () {\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'Filter.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n\r\n\r\n vm.CloseModal = function () {\r\n ProjectModal.close();\r\n }\r\n $scope.selectedOption = '';\r\n vm.LunchSchedule = function () {\r\n UpdateLunch = $uibModal.open({\r\n templateUrl: 'LunchPopup.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n vm.closeUpdateLunch = function () {\r\n UpdateLunch.close();\r\n }\r\n\r\n vm.editTeamMember = function (userName) {\r\n $state.go('index.RoasterTeamEdit', {\r\n userId: userName\r\n });\r\n }\r\n vm.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userClass_status = true;\r\n vm.userSingle = function () {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.close360View = function () {\r\n $scope.userClass_status = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n vm.Get360TeamProfileData = function (userId) {\r\n vm.userId = userId;\r\n DashboardService.Get360ProfileData(loggedinUser, userId, token).then(function (resp) {\r\n if (resp.data) {\r\n vm.userSingle();\r\n $scope.myvalue = false;\r\n }\r\n vm.teamdata = resp.data;\r\n vm.AvgRating = vm.teamdata.userProfile.AverageRating;\r\n vm.ReviewsList = vm.teamdata.userProfile.Reviews\r\n vm.teamdata.ratingStars = vm.getRatingStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.blankStars = vm.getBlankStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.avgratingStars = vm.getAvgRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.avgblankStars = vm.getAvgBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n if (vm.teamdata.userProfile.ContactNumber) {\r\n vm.teamdata.userProfile.ContactNumber = vm.teamdata.userProfile.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n\r\n if (vm.teamdata.userProfile.Reviews) {\r\n vm.teamdata.userProfile.Reviews.forEach(function (element, i) {\r\n vm.teamdata.userratingStars = vm.getUserRatingStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n vm.teamdata.userblankStars = vm.getUserBlankStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n element.arrayRating = vm.teamdata.userratingStars;\r\n element.blankRating = vm.teamdata.userblankStars;\r\n });\r\n }\r\n\r\n vm.TechnicianRating = Number(vm.teamdata.userProfile.Ratings.TechnicianRating).toFixed(1);\r\n $timeout(function () {\r\n displayTotals();\r\n }, 300);\r\n }, function () {\r\n })\r\n }\r\n\r\n $scope.totalWS = 0;\r\n $scope.wsPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function(userId) {\r\n $scope.wsPerPage = vm.userPageListCount;\r\n uPageSize = $scope.wsPerPage;\r\n $scope.WSTablePageChanged($scope.Userpagination.current);\r\n\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.wsersFilterArray(); \r\n vm.Get360WorkSummary(loggedinUser, token,userId, witemNames, witemValues, uPageIndex, uPageSize,wsSDate,wsEDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\n }\r\n\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n if(witemNames != 'Search')\r\n {\r\n vm.wsersFilterArray();\r\n }\r\n\r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate,wsEDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\n\r\n\r\n vm.wsersFilterArray = function()\r\n {\r\n witemNames=\"\";\r\n witemValues=\"\";\r\n\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(witemNames) \r\n {\r\n witemNames = witemNames + ',Search';\r\n witemValues = witemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n witemNames = 'Search';\r\n witemValues = vm.userNameSearch;\r\n } \r\n }\r\n\r\n if(vm.JobcountbyStatus)\r\n {\r\n if(witemNames) \r\n {\r\n witemNames = witemNames + ',Status';\r\n witemValues = witemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else\r\n {\r\n witemNames = 'Status';\r\n witemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.wsTicketList = resp.data.workSummaryData;\r\n $scope.totalWS = resp.data.WorkSummaryTotalCount;\r\n if (vm.wsTicketList.length < vm.userPageListCount)\r\n vm.wsListLength = $scope.totalWS;\r\n else\r\n vm.wsListLength = uPageIndex * vm.userPageListCount;\r\n if (uPageIndex == 1)\r\n vm.wspageindexCount = 1;\r\n else\r\n vm.wspageindexCount = (((uPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n vm.RedirectToConfiguration = function () {\r\n $state.go('index.CalendarManagement', { reload: true });\r\n }\r\n \r\n vm.Get360SkillSummary = function () {\r\n DashboardService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for(var i=0;ilTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n // .withScroller()\r\n // .withOption('deferRender', true)\r\n // .withOption('scrollY', 350)\r\n // .withOption('paging', false)\r\n .withOption('rowCallback', rowCallback);\r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n function rowCallback(nRow, aData, iDisplayIndex, iDisplayIndexFull) {\r\n $('td', nRow).unbind('click');\r\n $('td', nRow).bind('click', function () {\r\n $scope.$apply(function () {\r\n vm.ProfileData(aData.UserId);\r\n });\r\n });\r\n return nRow;\r\n }\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle('UserId').renderWith(function (data, type, full, meta) {\r\n if (data.Role != 'Field Engineer') {\r\n return '';\r\n } else {\r\n return '';\r\n }\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Name').renderWith(function (data, type, full, meta) {\r\n var address = '';\r\n if (data.Picture == null) {\r\n address = \"assets/images/patterns/photo1.png\";\r\n } else {\r\n // address= vm.getProfilePic(data.Picture);\r\n\r\n\r\n // var img = full.Picture;\r\n // vm.imageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, data.Picture).then(function (resp) {\r\n address = resp.data;\r\n\r\n });\r\n\r\n // } \r\n // vm.imageServices(data.Picture);\r\n }\r\n\r\n return '' + data.FirstName + ' ' + data.LastName + '';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('ContactNumber').withTitle('Phone Number').notSortable(),\r\n DTColumnBuilder.newColumn('Role').withTitle('Role').notSortable(),\r\n DTColumnBuilder.newColumn('LocationName').withTitle('Location Name').notSortable(),\r\n DTColumnBuilder.newColumn('DepartmentName').withTitle('Department Name').notSortable(),\r\n DTColumnBuilder.newColumn('IsExperienced').withTitle('Experienced').notSortable(),\r\n DTColumnBuilder.newColumn('OverTimeHourlyRate').withTitle('Overtime Hourly Rate').notSortable(),\r\n DTColumnBuilder.newColumn('ShiftHourlyRate').withTitle('Shift Hourly Rate').notSortable(),\r\n\r\n // DTColumnBuilder.newColumn('').withTitle('Account Name').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.accNameLoac = [];\r\n // vm.accIdLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.accNameLoac.push(d.AccountName);\r\n // });\r\n // } else {\r\n // vm.accNameLoac = '';\r\n // }\r\n // return '
' + vm.accNameLoac + '
'\r\n // }),\r\n // DTColumnBuilder.newColumn('').withTitle('Account Id').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.accLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.accLoac.push(d.AccountId);\r\n // });\r\n // } else {\r\n // vm.accLoac = '';\r\n // }\r\n // return '
' + vm.accLoac + '
'\r\n // }),\r\n\r\n // DTColumnBuilder.newColumn('').withTitle('State').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.stateLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.stateLoac.push(d.State);\r\n // });\r\n // } else {\r\n // vm.stateLoac = '';\r\n // }\r\n // return '
' + vm.stateLoac + '
'\r\n // }),\r\n\r\n // DTColumnBuilder.newColumn('').withTitle('City').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.cityLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.cityLoac.push(d.City);\r\n // });\r\n // } else {\r\n // vm.cityLoac = '';\r\n // }\r\n // return '
' + vm.cityLoac + '
'\r\n // }),\r\n\r\n // DTColumnBuilder.newColumn('').withTitle('Pin Code').notSortable().renderWith(function (data, type, full, meta) {\r\n // if (full.TerritoryMappingModel) {\r\n // vm.pinLoac = [];\r\n // angular.forEach(full.TerritoryMappingModel, function (d) {\r\n // vm.pinLoac.push(d.PinCode);\r\n // });\r\n // } else {\r\n // vm.pinLoac = '';\r\n // }\r\n // return '
' + vm.pinLoac + '
'\r\n // }),\r\n\r\n // DTColumnBuilder.newColumn('JobTotal').withTitle('Total Jobs').notSortable(),\r\n // DTColumnBuilder.newColumn('JobCompleted').withTitle('Completed Jobs').notSortable()\r\n\r\n ];\r\n\r\n\r\n // vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n // '<\"html5buttons\"B>lTfgitp')\r\n // .withButtons([]).withPaginationType(\r\n // 'full_numbers').withOption('lengthChange', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n // .withOption('order', [1, 'asc']);\r\n\r\n // vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n // // DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(2).notSortable().withClass('td-small-with-panel'),\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(7).notSortable()];\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n }\r\n});\n/* FileSaver.js\r\n * A saveAs() FileSaver implementation.\r\n * 1.3.2\r\n * 2016-06-16 18:25:19\r\n *\r\n * By Eli Grey, http://eligrey.com\r\n * License: MIT\r\n * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md\r\n */\r\n\r\n/*global self */\r\n/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */\r\n\r\n/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\r\n\r\nvar saveAs = saveAs || (function(view) {\r\n\t\"use strict\";\r\n\t// IE <10 is explicitly unsupported\r\n\tif (typeof view === \"undefined\" || typeof navigator !== \"undefined\" && /MSIE [1-9]\\./.test(navigator.userAgent)) {\r\n\t\treturn;\r\n\t}\r\n\tvar\r\n\t\t doc = view.document\r\n\t\t // only get URL when necessary in case Blob.js hasn't overridden it yet\r\n\t\t, get_URL = function() {\r\n\t\t\treturn view.URL || view.webkitURL || view;\r\n\t\t}\r\n\t\t, save_link = doc.createElementNS(\"http://www.w3.org/1999/xhtml\", \"a\")\r\n\t\t, can_use_save_link = \"download\" in save_link\r\n\t\t, click = function(node) {\r\n\t\t\tvar event = new MouseEvent(\"click\");\r\n\t\t\tnode.dispatchEvent(event);\r\n\t\t}\r\n\t\t, is_safari = /constructor/i.test(view.HTMLElement) || view.safari\r\n\t\t, is_chrome_ios =/CriOS\\/[\\d]+/.test(navigator.userAgent)\r\n\t\t, throw_outside = function(ex) {\r\n\t\t\t(view.setImmediate || view.setTimeout)(function() {\r\n\t\t\t\tthrow ex;\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t\t, force_saveable_type = \"application/octet-stream\"\r\n\t\t// the Blob API is fundamentally broken as there is no \"downloadfinished\" event to subscribe to\r\n\t\t, arbitrary_revoke_timeout = 1000 * 40 // in ms\r\n\t\t, revoke = function(file) {\r\n\t\t\tvar revoker = function() {\r\n\t\t\t\tif (typeof file === \"string\") { // file is an object URL\r\n\t\t\t\t\tget_URL().revokeObjectURL(file);\r\n\t\t\t\t} else { // file is a File\r\n\t\t\t\t\tfile.remove();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tsetTimeout(revoker, arbitrary_revoke_timeout);\r\n\t\t}\r\n\t\t, dispatch = function(filesaver, event_types, event) {\r\n\t\t\tevent_types = [].concat(event_types);\r\n\t\t\tvar i = event_types.length;\r\n\t\t\twhile (i--) {\r\n\t\t\t\tvar listener = filesaver[\"on\" + event_types[i]];\r\n\t\t\t\tif (typeof listener === \"function\") {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tlistener.call(filesaver, event || filesaver);\r\n\t\t\t\t\t} catch (ex) {\r\n\t\t\t\t\t\tthrow_outside(ex);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t, auto_bom = function(blob) {\r\n\t\t\t// prepend BOM for UTF-8 XML and text/* types (including HTML)\r\n\t\t\t// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\r\n\t\t\tif (/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\r\n\t\t\t\treturn new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});\r\n\t\t\t}\r\n\t\t\treturn blob;\r\n\t\t}\r\n\t\t, FileSaver = function(blob, name, no_auto_bom) {\r\n\t\t\tif (!no_auto_bom) {\r\n\t\t\t\tblob = auto_bom(blob);\r\n\t\t\t}\r\n\t\t\t// First try a.download, then web filesystem, then object URLs\r\n\t\t\tvar\r\n\t\t\t\t filesaver = this\r\n\t\t\t\t, type = blob.type\r\n\t\t\t\t, force = type === force_saveable_type\r\n\t\t\t\t, object_url\r\n\t\t\t\t, dispatch_all = function() {\r\n\t\t\t\t\tdispatch(filesaver, \"writestart progress write writeend\".split(\" \"));\r\n\t\t\t\t}\r\n\t\t\t\t// on any filesys errors revert to saving with object URLs\r\n\t\t\t\t, fs_error = function() {\r\n\t\t\t\t\tif ((is_chrome_ios || (force && is_safari)) && view.FileReader) {\r\n\t\t\t\t\t\t// Safari doesn't allow downloading of blob urls\r\n\t\t\t\t\t\tvar reader = new FileReader();\r\n\t\t\t\t\t\treader.onloadend = function() {\r\n\t\t\t\t\t\t\tvar url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');\r\n\t\t\t\t\t\t\tvar popup = view.open(url, '_blank');\r\n\t\t\t\t\t\t\tif(!popup) view.location.href = url;\r\n\t\t\t\t\t\t\turl=undefined; // release reference before dispatching\r\n\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\r\n\t\t\t\t\t\t\tdispatch_all();\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\treader.readAsDataURL(blob);\r\n\t\t\t\t\t\tfilesaver.readyState = filesaver.INIT;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// don't create more object URLs than needed\r\n\t\t\t\t\tif (!object_url) {\r\n\t\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (force) {\r\n\t\t\t\t\t\tview.location.href = object_url;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar opened = view.open(object_url, \"_blank\");\r\n\t\t\t\t\t\tif (!opened) {\r\n\t\t\t\t\t\t\t// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html\r\n\t\t\t\t\t\t\tview.location.href = object_url;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\r\n\t\t\t\t\tdispatch_all();\r\n\t\t\t\t\trevoke(object_url);\r\n\t\t\t\t}\r\n\t\t\t;\r\n\t\t\tfilesaver.readyState = filesaver.INIT;\r\n\r\n\t\t\tif (can_use_save_link) {\r\n\t\t\t\tobject_url = get_URL().createObjectURL(blob);\r\n\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\tsave_link.href = object_url;\r\n\t\t\t\t\tsave_link.download = name;\r\n\t\t\t\t\tclick(save_link);\r\n\t\t\t\t\tdispatch_all();\r\n\t\t\t\t\trevoke(object_url);\r\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\r\n\t\t\t\t});\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tfs_error();\r\n\t\t}\r\n\t\t, FS_proto = FileSaver.prototype\r\n\t\t, saveAs = function(blob, name, no_auto_bom) {\r\n\t\t\treturn new FileSaver(blob, name || blob.name || \"download\", no_auto_bom);\r\n\t\t}\r\n\t;\r\n\t// IE 10+ (native saveAs)\r\n\tif (typeof navigator !== \"undefined\" && navigator.msSaveOrOpenBlob) {\r\n\t\treturn function(blob, name, no_auto_bom) {\r\n\t\t\tname = name || blob.name || \"download\";\r\n\r\n\t\t\tif (!no_auto_bom) {\r\n\t\t\t\tblob = auto_bom(blob);\r\n\t\t\t}\r\n\t\t\treturn navigator.msSaveOrOpenBlob(blob, name);\r\n\t\t};\r\n\t}\r\n\r\n\tFS_proto.abort = function(){};\r\n\tFS_proto.readyState = FS_proto.INIT = 0;\r\n\tFS_proto.WRITING = 1;\r\n\tFS_proto.DONE = 2;\r\n\r\n\tFS_proto.error =\r\n\tFS_proto.onwritestart =\r\n\tFS_proto.onprogress =\r\n\tFS_proto.onwrite =\r\n\tFS_proto.onabort =\r\n\tFS_proto.onerror =\r\n\tFS_proto.onwriteend =\r\n\t\tnull;\r\n\r\n\treturn saveAs;\r\n}(\r\n\t typeof self !== \"undefined\" && self\r\n\t|| typeof window !== \"undefined\" && window\r\n\t|| this.content\r\n));\r\n// `self` is undefined in Firefox for Android content script context\r\n// while `this` is nsIContentFrameMessageManager\r\n// with an attribute `content` that corresponds to the window\r\n\r\nif (typeof module !== \"undefined\" && module.exports) {\r\n module.exports.saveAs = saveAs;\r\n} else if ((typeof define !== \"undefined\" && define !== null) && (define.amd !== null)) {\r\n define(\"FileSaver.js\", function() {\r\n return saveAs;\r\n });\r\n}\nangular.module('inspinia').service('ReportLatestService', function (ApiURL, $log, $http, $localStorage) {\r\n\r\n\r\n\r\n});\r\n\nangular.module('inspinia').controller('ReportLatestController', function (ReportLatestService,ReportCreationService, $stateParams, $uibModal, $scope, $log, $state, $localStorage) {\r\n var vm = this;\r\n if (!$localStorage.loggedInUserId) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n \r\n}\r\n});\nangular.module('inspinia').service('ReportDownloadService', function (ApiURL, $http, DashboardURL, $window, PublicApiURL) {\r\n\r\n var vm = this;\r\n\r\n this.getAllReportsByUserId = function (loggedinUser, token) {\r\n var url = DashboardURL + '/api/S3ReportMapper/GetReportNameByUserId';\r\n return $http.get(url, {\r\n headers: { \r\n 'Token': token, \r\n 'UserId':loggedinUser \r\n }\r\n });\r\n }\r\n\r\n this.GetReportColumnsByReportName = function (data, loggedinUser, token) {\r\n var url = DashboardURL + '/api/S3ReportMapper/GetReportColumnsByReportName';\r\n return $http.put(url,data, {\r\n headers: { \r\n 'Token': token, \r\n 'UserId':loggedinUser \r\n }\r\n });\r\n }\r\n\r\n this.GetCustomersByAccount = function (loggedinUser, accountId, token) {\r\n var url = ApiURL + '/api/Customer/GetCustomerByAccountId?accountId=' + accountId\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token,'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.GenerateReports = function (data, loggedinUser, token) {\r\n var url = DashboardURL + '/api/S3ReportMapper/GenerateReport';\r\n return $http.post(url,data, {\r\n headers: { \r\n 'Token': token, \r\n 'UserId':loggedinUser \r\n }\r\n });\r\n }\r\n\r\n // https://pro.mymobiforce.com/dashboardapi/api/S3ReportMapper/DownloadS3Report?ReportIdOnS3=tushar tst_U1140000000001_22082017375529\r\n\r\n this.DownloadReport = function (ReportIdOnS3, loggedinUser, token) { \r\n var url = DashboardURL + \"/api/S3ReportMapper/DownloadS3Report?ReportIdOnS3=\" + ReportIdOnS3; \r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getAllAccounts = function (loggedinUser,token) { \r\n var url = ApiURL+ '/api/CentralHelpDesk/GetAllAccountHDConfig';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n }\r\n\r\n // this.DownloadReport = function (ReportIdOnS3) { \r\n // var url = PublicApiURL + \"/api/Report/DownloadS3Report?ReportIdOnS3=\" + ReportIdOnS3; \r\n // $window.open(url, \"_blank\");\r\n // }\r\n\r\n this.GetAllgeneratedReport = function (loggedinUser,token,itemNames,itemValues,uPageIndex,uPageSize,DataFeild,startDate,endDate) {\r\n var url = DashboardURL + '/api/S3ReportMapper/GetAllReportsByUserId?filteritem=' + itemNames + '&filterValue=' + itemValues +'&PageIndex=' + uPageIndex + '&PageSize=' + uPageSize + '&DataFeild='+ DataFeild + '&startDate=' + startDate + '&endDate=' + endDate;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n } \r\n\r\n\r\n});\r\n\nangular.module('inspinia').controller('ReportDownloadController', function ($uibModal,ReportDownloadService, $compile, MainService, $timeout,$location,$window, $stateParams, DTOptionsBuilder, DTColumnBuilder, $scope, $state, $log, ReportService, $localStorage, DashboardURL, $q,$http,$rootScope) {\r\n var vm = this;\r\n\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var token = $localStorage.token;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.users = [];\r\n startDate = '';\r\n endDate = '';\r\n var uPageIndex = 1;\r\n var uPageSize = 10; \r\n var uitemNames=\"\";\r\n var uitemValues=\"\";\r\n vm.OrderBy = \"CreatedOn\";\r\n vm.sorttype = \"desc\";\r\n vm.DateField=\"StatusChangedOn\";\r\n vm.reportnames='';\r\n vm.FilterStatus=\"All\";\r\n vm.Reportname = \"\";\r\n vm.reportsLength=0;\r\n vm.reportPageListCount= 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.reportNametoGen = '';\r\n vm.ReportByAccountName = [];\r\n vm.HDAllAccounts = [];\r\n $log.log('$stateParams.start_date',$stateParams.start_date);\r\n \r\n\r\n if (moment().quarter() === 2) {\r\n thisFiscalStart = moment().month('April').startOf('month');\r\n thisFiscalEnd = moment().add(1, 'year').month('March').endOf('month');\r\n } else {\r\n thisFiscalStart = moment().subtract(1, 'year').month('April').startOf('month');\r\n thisFiscalEnd = moment().month('March').endOf('month');\r\n };\r\n\r\n vm.reportdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'This year': [thisFiscalStart, thisFiscalEnd], \r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n vm.genreportdates = { startDate: moment(), endDate: moment() };\r\n vm.ranges1 = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'This year': [thisFiscalStart, thisFiscalEnd], \r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n vm.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.GetAllgenReport(loggedinUser, token, uitemNames, uitemValues, uPageIndex, uPageSize ,vm.OrderBy, startDate, endDate);\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) { \r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n };\r\n\r\n\r\n getAllReports();\r\n\r\n function getAllReports() {\r\n ReportDownloadService.getAllReportsByUserId(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.reportType = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.getAllReportsColumn = function (ReportType) {\r\n vm.ReportType = ReportType;\r\n if(ReportType== \"\"){\r\n vm.showFailure(\"Failed\", \"Please select report name that needs to be generated\");\r\n }\r\n else {\r\n var data = {\r\n \"ReportName\": vm.ReportType\r\n } \r\n ReportDownloadService.GetReportColumnsByReportName(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.reportColumnsdata = resp.data;\r\n vm.reportCol = vm.reportColumnsdata.ColumnObject;\r\n vm.selectAllColumns = true;\r\n vm.showMinusColumns = false;\r\n openModal = $uibModal.open({\r\n templateUrl: 'customModal.html',\r\n size: 'lg',\r\n scope: $scope,\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n \r\n };\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n });\r\n }\r\n\r\n }, function () {\r\n \r\n });\r\n } \r\n }\r\n\r\n vm.getAllAccounts = function ( ) {\r\n ReportDownloadService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data) { \r\n if(resp.status==200)\r\n {\r\n vm.HDAllAccounts = resp.data;\r\n \r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n vm.getAllAccounts();\r\n\r\n vm.implementSelectItemsTickets = function (itemList1, scope1) { \r\n scope1.selectAllColumns = true; \r\n scope1.showMinusColumns = false;\r\n scope1.selectRow1 = function (i) { \r\n scope1.selectAllColumns = false; \r\n scope1.showMinusColumns = false;\r\n for(var i=0; i< scope1.reportCol.length;i++){\r\n scope1.showMinusColumns = true;\r\n var tempTickets = scope1.reportCol[i];\r\n if(tempTickets.checked1) { \r\n scope1.showMinusColumns = true;\r\n }\r\n }\r\n }\r\n scope1.applyAllColumnsSelect = function () {\r\n angular.forEach(scope1[itemList1], function (d) {\r\n d.checked1 = scope1.selectAllColumns;\r\n });\r\n } \r\n }\r\n vm.implementSelectItemsTickets('reportCol', this);\r\n\r\n vm.generateReport = function () {\r\n var ColumnListModel = [];\r\n for (var colIndex = 0; colIndex < vm.reportCol.length; colIndex++) {\r\n if(vm.reportCol[colIndex].checked1){ \r\n ColumnListModel.push(vm.reportCol[colIndex]);\r\n ColumnListModel.forEach(function (element,i) {\r\n delete element.checked1;\r\n });\r\n }\r\n }\r\n vm.SelectedAccounts=[];\r\n angular.forEach(vm.HDAllAccounts, function (account) {\r\n angular.forEach(vm.ReportByAccountName, function (accountName) {\r\n if (account.AccountName == accountName) {\r\n vm.SelectedAccounts.push(account.AccountId);\r\n }\r\n }) \r\n }) \r\n \r\n var data = {\r\n \"ReportName\": vm.reportNametoGen,\r\n \"ReportType\": vm.ReportType,\r\n \"Account\" : vm.SelectedAccounts,\r\n \"Customer\" : vm.SearchByCName,\r\n \"Project\" : vm.SearchByPName,\r\n \"Status\" : vm.FilterStatus,\r\n \"EndDate\": moment(vm.genreportdates.endDate).format('YYYY-MM-DD'),\r\n \"StartDate\": moment(vm.genreportdates.startDate).format('YYYY-MM-DD'),\r\n \"ColumnObject\": ColumnListModel,\r\n } \r\n ReportDownloadService.GenerateReports(data,loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\",\"Report Generated Successfully.\"); \r\n $timeout(function () {\r\n vm.GetAllgenReport();\r\n vm.ResetUserFilter();\r\n }, 5000); \r\n } \r\n else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n });\r\n }\r\n\r\n vm.GetCustomerByAccount=function(){ \r\n var SelectedAccountId = '';\r\n angular.forEach(vm.HDAllAccounts, function (account) {\r\n if (account.AccountName==vm.ReportByAccountName) {\r\n SelectedAccountId = account.AccountId; \r\n }\r\n })\r\n ReportDownloadService.GetCustomersByAccount(loggedinUser,SelectedAccountId,token).then(function(resp){\r\n vm.CustomerList = resp.data;\r\n })\r\n }\r\n\r\n vm.GetProjectByCustomer=function(){\r\n vm.ProjectListByCust=[];\r\n angular.forEach(vm.CustomerList, function (customer) {\r\n if (customer.CompanyName==vm.SearchByCName) {\r\n vm.ProjectListByCust = customer.Projects; \r\n }\r\n })\r\n }\r\n\r\n vm.statusList=[\"Broadcasted\",\"Cancelled\",\"Assigned\", \"New\",\"Hold\", \"ReadyToAssign\", \"Rejected\",\"Approved\",\"Completed\",\"AssignedNoAction\", \"ScheduleException\",\"AddressException\",\"PriceException\"];\r\n\r\n\r\n vm.UsersFilterArray = function()\r\n {\r\n uitemNames=\"\";\r\n uitemValues=\"\";\r\n\r\n if (vm.reportnames) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',ReportName';\r\n uitemValues = uitemValues + \",\" + vm.reportnames.join('|');\r\n }\r\n else\r\n {\r\n uitemNames = 'ReportName';\r\n uitemValues = vm.reportnames.join('|');\r\n } \r\n }\r\n }\r\n\r\n vm.ResetUserFilter = function () { \r\n vm.reportNametoGen = '';\r\n vm.ReportByAccountName = [];\r\n vm.genreportdates.endDate;\r\n vm.genreportdates.startDate;\r\n ColumnListModel = [];\r\n vm.SelectedAccounts = [];\r\n vm.SearchByCName = '';\r\n vm.SearchByPName = '';\r\n vm.FilterStatus = 'All'\r\n }\r\n\r\n vm.UsersFilterArray(); \r\n vm.ReportByFiltersList=[];\r\n vm.reportDetails = [];\r\n vm.GetAllgenReport = function () {\r\n ReportDownloadService.GetAllgeneratedReport(loggedinUser, token, uitemNames, uitemValues, uPageIndex, uPageSize,vm.OrderBy, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.ReportByFiltersList = resp.data.ReportList;\r\n $scope.totalReports = vm.statusCount.Count;\r\n if(vm.ReportByFiltersList.length < vm.reportPageListCount)\r\n vm.reportListLength = $scope.totalReports;\r\n else\r\n vm.reportListLength = uPageIndex * vm.reportPageListCount;\r\n if(uPageIndex==1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex-1) * vm.reportPageListCount) + 1);\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllgenReport();\r\n\r\n $scope.totalReports = 0;\r\n $scope.reportsPerPage = vm.reportPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n vm.changeUserPageListCount = function() { \r\n $scope.reportsPerPage = vm.reportPageListCount;\r\n uPageSize = $scope.reportsPerPage;\r\n $scope.UserTablePageChanged($scope.Userpagination.current);\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.UsersFilterArray(); \r\n vm.GetAllgenReport(loggedinUser, token, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy);\r\n\r\n };\r\n }\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.UsersFilterArray(); \r\n vm.GetAllgenReport(loggedinUser, token, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy);\r\n\r\n };\r\n\r\n vm.applyUserFilter= function(){\r\n vm.UsersFilterArray();\r\n uPageIndex=1;\r\n $scope.Userpagination = {\r\n current: 1\r\n }; \r\n vm.GetAllgenReport(loggedinUser, token, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy);\r\n }\r\n\r\n vm.GetListPersistentReports = function (loggedInUserId) {\r\n ReportDownloadService.ListPersistentReports(loggedInUserId, token).then(function (resp) {\r\n if (resp.data) {\r\n vm.ReportList = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.downloadPersistentReport = function (ReportIdOnS3) { \r\n ReportDownloadService.DownloadReport(ReportIdOnS3, loggedinUser, token).then(function(resp){ \r\n if (resp && resp.status == 200) { \r\n vm.responseData = resp.data;\r\n var blob = new Blob([vm.responseData],{\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, ReportIdOnS3 +\".csv\");\r\n }\r\n else{\r\n vm.showFailure(\"Failure\", \"Unable to Downloaded due to server issue\");\r\n }\t\t\t\r\n })\r\n }\r\n\r\n vm.implementSelectItemsRG = function (itemList, scope) {\r\n scope.selectAllColumn = false;\r\n scope.showMinusRG = false;\r\n scope.selectCountRG = 0;\r\n scope.selectRowRG = function (i) {\r\n scope.selectCountRG = 0;\r\n scope.showMinusRG = false;\r\n scope.selectAllColumn = false;\r\n angular.forEach(vm.ColumnsList, function (d) {\r\n if (d.checked) {\r\n scope.showMinusRG = true;\r\n scope.selectCountRG++;\r\n }\r\n });\r\n }\r\n scope.applyAllRGSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllColumn;\r\n scope.selectCountRG++;\r\n });\r\n }\r\n }\r\n\r\n vm.implementSelectItemsRG('ColumnsList', this);\r\n }\r\n\r\n});\r\n\r\n\nangular.module(\"inspinia\").controller(\"reportDetailShareController\", function ($uibModal, $window,DashboardURL, $compile, MainService, $scope, $log, $q,dashboardReportListService, DTOptionsBuilder, DTColumnBuilder, $timeout, $localStorage,$state, $stateParams, reportDetailService) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n\r\n if(!loggedinUser)\r\n {\r\n loggedinUser = $stateParams.userid;\r\n }\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.DocumentType = $stateParams.Type;\r\n vm.ReportId = $stateParams.report_id;\r\n vm.ReportName = '';\r\n var token = $localStorage.token;\r\n\r\n if(!token)\r\n {\r\n token = $stateParams.token;\r\n }\r\n\r\n vm.showSuccess = function (title, body) {\r\n if (title) {\r\n vm.toaster_success.title = title;\r\n } if (body) {\r\n vm.toaster_success.body = body;\r\n }\r\n toaster.pop(vm.toaster_success);\r\n }\r\n\r\n vm.showFailure = function (title, body) {\r\n if (title) {\r\n vm.toaster_fail.title = title;\r\n } if (body) {\r\n vm.toaster_fail.body = body;\r\n }\r\n toaster.pop(vm.toaster_fail);\r\n }\r\n\r\n $scope.isLayoutEditable = false;\r\n vm.AllFieldList = [];\r\n vm.AllValues = [];\r\n vm.tableCharts = {};\r\n vm.deepLink = {};\r\n vm.valueClass = {};\r\n vm.profileImg = '';\r\n var intialLoad = true;\r\n vm.users = [];\r\n vm.filename = '';\r\n vm.report_title = \"\";\r\n vm.attachReportInMailBody = true;\r\n vm.attachReportInExcel = true;\r\n //vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n //vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.filter_key = $stateParams.filter_key ? $stateParams.filter_key : \"\";\r\n vm.isData = $stateParams.isData ? $stateParams.isData : false;\r\n vm.key = $stateParams.key ? $stateParams.key : \"\";\r\n vm.filter_name = $stateParams.filter_name ? $stateParams.filter_name : \"\";\r\n vm.additionalInfo = $stateParams.end_date ? $stateParams.end_date : \"\";\r\n var today = new Date();\r\n var formattedDate = today.toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' });\r\n // vm.defaultMailBody = \"Hello,\\n\\nYou are requested to view project report on below link \\n\\n\" + $window.location.href + \" \\n\\nThanks\\nMobiforce Team\";\r\n vm.defaultMailBody = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + 'on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n //var creationDatefunc = $scope.$parent.$parent.main.AccountStartDate;\r\n //vm.accountCreationDate = creationDatefunc();\r\n vm.accountCreationDate = moment(\"2017-04-01\");\r\n vm.tableCharts = {};\r\n vm.selectDimension = {};\r\n vm.dashboard_data = {};\r\n vm.metricsCharts = {};\r\n vm.tableCharts = {};\r\n vm.lineCharts = {};\r\n vm.pieCharts = {};\r\n vm.barCharts = {};\r\n vm.stackedCharts = {};\r\n var start_date = '';\r\n var thisFiscalStart = '';\r\n var thisFiscalEnd = '';\r\n vm.BusinessUnit = '';\r\n vm.State = '';\r\n vm.Skill = '';\r\n vm.Account = '';\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n var total = 'Total';\r\n\r\n if (moment().quarter() === 2) {\r\n thisFiscalStart = moment().month('April').startOf('month');\r\n thisFiscalEnd = moment().add(1, 'year').month('March').endOf('month');\r\n } else {\r\n thisFiscalStart = moment().subtract(1, 'year').month('April').startOf('month');\r\n thisFiscalEnd = moment().month('March').endOf('month');\r\n };\r\n\r\n\r\n vm.shareModel = {\r\n selectedUsers: [],\r\n toList: [],\r\n ccList: [],\r\n bccList: [],\r\n content: vm.defaultMailBody\r\n };\r\n vm.monthNames3 = [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\",\r\n \"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"\r\n ];\r\n\r\n vm.scheduleModel = {\r\n frequency: \"once\",\r\n once: \"once\",\r\n daily: \"daily\",\r\n weekly: \"weekly\",\r\n every_15_days: \"every_15_days\",\r\n monthly: \"monthly\",\r\n cronExpression: \"expression\",\r\n input_for_month: {\r\n option: \"start_of_day\",\r\n start_of_day: \"start_of_day\",\r\n end_of_day: \"end_of_day\",\r\n specific_date: \"specific_date\",\r\n date: 1\r\n },\r\n specific_date_range: [],\r\n start_date: moment(),\r\n end_date: moment().add(1, 'M'),\r\n attachReportInMailBody: true,\r\n attachReportInExcel: true,\r\n scheduleTime: \"\",\r\n scheduleName: \"\",\r\n reportNameAlreadyExists: false,\r\n reportNameMendtryErr: false,\r\n toListMendtryErr: false,\r\n timeMendtryErr: false,\r\n sampleDateMendtryErr: false,\r\n pull_data: {\r\n range: \"last_day\",\r\n day: \"last_day\",\r\n week: \"last_week\",\r\n month: \"last_month\",\r\n quarter: \"last_quarter\",\r\n current_month: \"current_month\",\r\n specific: \"specific\",\r\n specific_day_value: 1,\r\n calculate_range: function () {\r\n //$log.log(vm.scheduleModel.pull_data.range);\r\n var today = new Date();\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n var date = today;\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 1, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 3, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n return 1 + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n //$log.log(vm.scheduleModel.pull_data.specific_day_value)\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - vm.scheduleModel.pull_data.specific_day_value);\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n }\r\n }\r\n };\r\n\r\n for (var i = 1; i < 32; i++) {\r\n vm.scheduleModel.specific_date_range.push({ value: i, label: i });\r\n }\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment()]\r\n };\r\n\r\n $scope.dashboardranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Payment week': [moment().startOf('week').isoWeekday(1), moment().endOf('week').isoWeekday(0)],\r\n // 'Last week': [moment().subtract(1, 'weeks').startOf('week').isoWeekday(1), moment().subtract(1, 'weeks').endOf('week').isoWeekday(0)], \r\n 'This week': [moment().startOf('week'), moment().endOf('week')],\r\n 'Last week': [moment().subtract(1, 'weeks').startOf('week'), moment().subtract(1, 'weeks').endOf('week')],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n // 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This quater': [moment().startOf('quarter'), moment().endOf('quarter')],\r\n 'Last quater': [moment().subtract(1, 'quarters').startOf('quarter'), moment().subtract(1, 'quarters').endOf('quarter')],\r\n 'This year': [thisFiscalStart, thisFiscalEnd],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n\r\n $scope.dateRangeChange = function (ev, picker) {\r\n var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n var endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.AllValues = [];\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n if (vm.DocumentType == 'dashboard') {\r\n vm.getDashboard($stateParams.report_name);\r\n intialLoad = false;\r\n }\r\n else if (vm.DocumentType == 'report') {\r\n vm.getCustomerReport($stateParams.report_id);\r\n }\r\n vm.tableCharts = {};\r\n };\r\n\r\n $scope.filterRangeChange = function (ev, picker) {\r\n vm.filterstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n vm.filterendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n };\r\n $log.log('$stateParams.start_date', $stateParams.start_date);\r\n if ($stateParams.start_date) { \r\n var startDate = $scope.dashboardranges[$stateParams.start_date][0].format(\"YYYY-MM-DD\");\r\n var endDate = $scope.dashboardranges[$stateParams.start_date][1].format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n $scope.dates = { startDate: startDate, endDate: endDate };\r\n } else if (vm.isData) {\r\n if ($stateParams.start_date == '' || $stateParams.start_date == null) {\r\n $scope.dates = { startDate: vm.accountCreationDate, endDate: moment() };\r\n var startDate = vm.accountCreationDate;\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n }\r\n } else {\r\n $scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n var startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n }\r\n //vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n //vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.filter_key = $stateParams.filter_key ? $stateParams.filter_key : \"\";\r\n vm.isData = $stateParams.isData ? $stateParams.isData : false;\r\n vm.key = $stateParams.key ? $stateParams.key : \"\";\r\n vm.filter_name = $stateParams.filter_name ? $stateParams.filter_name : \"\";\r\n //vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.createCallback = function (modelObj, callbacks) {\r\n return function (data) {\r\n if (modelObj && data) {\r\n modelObj.extend(data);\r\n }\r\n if (callbacks) {\r\n angular.forEach(callbacks, function (d) {\r\n if (d) {\r\n d(data);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n $scope.dragoverCallback = function (index, external, type, callback) {\r\n $scope.logListEvent('dragged over', index, external, type);\r\n // Invoke callback to origin for container types.\r\n if (type == 'container' && !external) {\r\n console.log('Container being dragged contains ' + callback() + ' items');\r\n }\r\n return index < 10; // Disallow dropping in the third row.\r\n };\r\n\r\n $scope.order = [];\r\n var currentIndex = 0;\r\n $scope.dropCallback = function (index, item, external, type) {\r\n $scope.logListEvent('dropped at', index, item, external, type);\r\n $scope.order = vm.AllValuesOriginalIndex;\r\n var currentIndex = $scope.order.indexOf(item.chartId);\r\n // If the item is already in the order array, remove it from the current position\r\n if (currentIndex !== -1) {\r\n $scope.order.splice(currentIndex, 1);\r\n }\r\n // Insert the item at the new position\r\n $scope.order.splice(index, 0, item.chartId);\r\n console.log($scope.order);\r\n return item;\r\n }; \r\n\r\n $scope.logEvent = function (message) {\r\n console.log(message);\r\n };\r\n\r\n $scope.logListEvent = function (action, index, external, type) {\r\n var message = external ? 'External ' : '';\r\n message += type + ' element was ' + action + ' position ' + index;\r\n console.log(message);\r\n };\r\n\r\n // Initialize model\r\n // $scope.model = [[]];\r\n var id = 10;\r\n angular.forEach(vm.metricsChart, function (container) {\r\n var container = { items: [], effectAllowed: effect };\r\n for (var k = 0; k < 7; ++k) {\r\n container.items.push({ label: effect + ' ' + id++, effectAllowed: \"all\" });\r\n }\r\n });\r\n\r\n $scope.$watch(vm.metricsChart, function (model) {\r\n $scope.modelAsJson = angular.toJson(model, true);\r\n }, true);\r\n\r\n\r\n vm.dashboardCallback = vm.createCallback(null, [function (data) {\r\n vm.dashboard_data = data;\r\n\r\n if (data && data.DashboardFilters) {\r\n vm.enableFilter = true;\r\n vm.updateDefaultDateFilter(data.DashboardFilters);\r\n //vm.getFilerValues(data.DashboardFilters.FilterList); \r\n }\r\n else {\r\n vm.enableFilter = false;\r\n vm.updateDefaultDateFilter(null);\r\n }\r\n\r\n angular.forEach(data.ChartModel, function (d) {\r\n\r\n if (d.ClickableColumns != null && d.ClickableColumns.length > 0) {\r\n angular.forEach(d.ClickableColumns, function (cl) {\r\n if (cl.Link == \"ProjectSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \" + d.ChartId] = function () {\r\n return \"index.Report({report_name:'ProjectSummary', key:'\" + cl.KeyName + \"'})\";\r\n }\r\n } else if (cl.Link == \"CustomerSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \" + d.ChartId] = function () {\r\n\r\n return \"index.Report({report_name:'CustomerSummary', key:'\" + cl.KeyName + \"'})\";\r\n }\r\n } else if (cl.Link == \"DashboardReport\") {\r\n\r\n vm.deepLink[cl.ColumnName + \" \" + d.ChartId] = function (filterValue, filterName) {\r\n var Keyfilter = cl.KeyName;\r\n if (cl.KeyName.indexOf(\"|\") >= 0) {\r\n var stringArray = cl.KeyName.split('|');\r\n filterName = stringArray[1];\r\n Keyfilter = stringArray[0];\r\n }\r\n if (filterValue == undefined && filterName == undefined) {\r\n filterValue = '';\r\n filterName = '';\r\n }\r\n if (d.ChartType == 'Metrics' || d.chartType == 'OneServMetrics') {\r\n //console.log('start_date',start_date);\r\n if (d.Rollups && d.Rollups.length > 0) {\r\n angular.forEach(d.Rollups, function (d) {\r\n if (d == 'Today') {\r\n var sDate = moment().format(\"YYYY-MM-DD\");\r\n var eDate = moment().format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n }\r\n else if (d == 'Yesterday') {\r\n var sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n var eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n }\r\n else if (d == 'Monthly') {\r\n var sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n var eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n } else if (d == 'Week1') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week1');\r\n } else if (d == 'Week2') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week2');\r\n } else if (d == 'Week3') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week3');\r\n } else if (d == 'Week4') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week4');\r\n }\r\n })\r\n } else {\r\n start_date = vm.rollup;\r\n }\r\n var obj = {\r\n \"report_name\": 'LinkTicketReport',\r\n \"key\": Keyfilter,\r\n \"filter_key\": filterName,\r\n \"filter_name\": filterValue,\r\n \"start_date\": start_date,\r\n \"isData\": true\r\n }\r\n return obj;\r\n } else {\r\n return \"index.DashboardReport({report_name:'LinkTicketReport', key:'\" + Keyfilter + \"',filter_key:'\" + filterName + \"', filter_name:'\" + filterValue + \"', start_date:'\" + vm.rollup + \"', isData:'\" + true + \"'})\";\r\n }\r\n }\r\n } else {\r\n if (cl.Link) {\r\n vm.deepLink[cl.ColumnName + \" \" + d.ChartId] = function (filterValue, filterName) {\r\n var Keyfilter = cl.KeyName;\r\n if (cl.KeyName.indexOf(\"|\") >= 0) {\r\n var stringArray = cl.KeyName.split('|');\r\n filterName = stringArray[1];\r\n Keyfilter = stringArray[0];\r\n }\r\n if (filterValue == undefined && filterName == undefined) {\r\n filterValue = '';\r\n filterName = '';\r\n }\r\n\r\n filterName = filterName + ',' + vm.filterKeys;\r\n filterValue = filterValue + ',' + vm.filterValues;\r\n\r\n if (d.ChartType == 'Metrics' || d.chartType == 'OneServMetrics') {\r\n //console.log('start_date',start_date);\r\n if (d.Rollups && d.Rollups.length > 0) {\r\n angular.forEach(d.Rollups, function (d) {\r\n if (d == 'Today') {\r\n var sDate = moment().format(\"YYYY-MM-DD\");\r\n var eDate = moment().format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n }\r\n else if (d == 'Yesterday') {\r\n var sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n var eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n } else if (d == 'Monthly') {\r\n var sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n var eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n } else if (d == 'Week1') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week1');\r\n } else if (d == 'Week2') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week2');\r\n } else if (d == 'Week3') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week3');\r\n } else if (d == 'Week4') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week4');\r\n }\r\n })\r\n } else {\r\n start_date = vm.rollup;\r\n }\r\n var obj = {\r\n \"report_name\": cl.Link,\r\n \"key\": Keyfilter,\r\n \"filter_key\": filterName,\r\n \"filter_name\": filterValue,\r\n \"start_date\": start_date,\r\n \"isData\": true\r\n }\r\n return obj;\r\n } else {\r\n return \"index.DashboardReport({report_name:'\" + cl.Link + \"', key:'\" + Keyfilter + \"',filter_key:'\" + filterName + \"', filter_name:'\" + filterValue + \"', start_date:'\" + vm.rollup + \"', isData:'\" + true + \"'})\";\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Today\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Yesterday\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week1\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week1\");\r\n } else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week2\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week2\");\r\n } else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week3\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week3\");\r\n } else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week4\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week4\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly-6\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly-6\");\r\n }\r\n else if (d.ChartType == 'CustomLine' && d.Dimensions.length > 0 && d.Rollups.indexOf(\"Monthly\") >= 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if (d.ChartType == 'CustomLine' && d.Dimensions.length > 0 && d.Rollups.indexOf(\"Today\") >= 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if (d.ChartType == 'CustomLine' && d.Dimensions.length > 0 && d.Rollups.indexOf(\"Yesterday\") >= 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if (d.ChartType == 'CustomBar' && d.Dimensions.length > 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n } else if (d.ChartType == 'DrillDownBar' && d.Dimensions.length > 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n } else if (d.ChartType == 'CustomStackedBar' && d.Dimensions.length > 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n } else if (d.ChartType == 'CustomPie' && d.Dimensions.length > 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }\r\n else {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, vm.rollup);\r\n }\r\n\r\n });\r\n // console.log('vm.deepLink',vm.deepLink);\r\n }])\r\n\r\n vm.getDashboard = function (dashboardName) {\r\n reportDetailService.getDashboard(loggedinUser, dashboardName, token, vm.dashboardCallback);\r\n }\r\n\r\n vm.getReportName = function (reportNameParam) {\r\n if (reportNameParam == 'ProjectSummary') {\r\n return 'Project Report';\r\n } else if (reportNameParam == 'ProjectStatus') {\r\n return 'Project Status Report';\r\n } else if (reportNameParam == 'CustomerSummary') {\r\n return 'Customer Report';\r\n } else if (reportNameParam == 'CustomerStatusReport') {\r\n return 'Customer Status Report';\r\n } else if (reportNameParam == 'Financial') {\r\n return 'Financial Report';\r\n } else if (reportNameParam == 'DailyProgress') {\r\n return 'Daily Progress Report';\r\n } else if (reportNameParam == 'DailyStatusProgress') {\r\n return '';\r\n } else if (reportNameParam == 'Scheduled') {\r\n return '';\r\n } else if (reportNameParam == 'TeamReport') {\r\n return 'Team Report';\r\n } else if (reportNameParam == 'TeamDetailReport') {\r\n return 'Team Detailed Report';\r\n } else if (reportNameParam == 'ReferralReport') {\r\n return 'Referral Report';\r\n } else if (reportNameParam == 'LabReport') {\r\n return 'Lab Report';\r\n } else if (reportNameParam == 'SpectroLabDetailedReport') {\r\n return 'Spectro Lab Detailed Report';\r\n }\r\n else if (reportNameParam == 'CustomerHCLReport') {\r\n return 'Customer HCL Report';\r\n }\r\n else if (reportNameParam == 'CustomerLocationHCLReport') {\r\n return 'Customer Location HCL Report';\r\n }\r\n else if (reportNameParam == 'CityTicketHCLReport') {\r\n return 'City Ticket HCL Report';\r\n }\r\n else if (reportNameParam == 'TeamHclReport') {\r\n return 'Team Hcl Report';\r\n }\r\n else if (reportNameParam == 'TeamHclDetailedReport') {\r\n return 'Team Hcl Detailed Report';\r\n } else if (reportNameParam == 'TeamTicketHCLReport') {\r\n return 'Team Ticket HCL Report';\r\n } else if (reportNameParam == 'LinkTicketReport') {\r\n return 'Link Ticket Report';\r\n } else if (reportNameParam == 'TicketSummary') {\r\n return 'Ticket Summary';\r\n } else if (reportNameParam == 'AgingofTickets') {\r\n return 'Aging of Tickets';\r\n } else if (reportNameParam == 'Regional Summary') {\r\n return 'Regional Summary';\r\n } else if (reportNameParam == 'Finance Report') {\r\n return 'Finance Report';\r\n } else if (reportNameParam == 'Finance Ticket Report') {\r\n return 'Finance Ticket Report';\r\n }\r\n else {\r\n return reportNameParam;\r\n }\r\n }\r\n\r\n vm.getReportTitle = function (reportNameParam) {\r\n if (reportNameParam == 'ProjectSummary') {\r\n return 'Project Summary';\r\n } else if (reportNameParam == 'ProjectStatus') {\r\n return 'Project Status';\r\n } else if (reportNameParam == 'CustomerSummary') {\r\n return 'Customer Summary';\r\n } else if (reportNameParam == 'CustomerStatusReport') {\r\n return 'Customer Status Report';\r\n } else if (reportNameParam == 'Financial') {\r\n return 'Financial Summary';\r\n } else if (reportNameParam == 'DailyProgress') {\r\n return 'Project Daily Progress';\r\n } else if (reportNameParam == 'DailyStatusProgress') {\r\n return 'Daily Status Progress';\r\n } else if (reportNameParam == 'Scheduled') {\r\n return 'Scheduled Report';\r\n } else if (reportNameParam == 'TeamReport') {\r\n return 'Team Report';\r\n } else if (reportNameParam == 'TeamDetailReport') {\r\n return 'Team Detailed Report';\r\n } else if (reportNameParam == 'ReferralReport') {\r\n return 'Referral Report';\r\n } else if (reportNameParam == 'LabReport') {\r\n return 'Lab Report';\r\n } else if (reportNameParam == 'SpectroLabDetailedReport') {\r\n return 'Spectro Lab Detailed Report';\r\n } else if (reportNameParam == 'CustomerHCLReport') {\r\n return 'Customer HCL Report';\r\n }\r\n else if (reportNameParam == 'CustomerLocationHCLReport') {\r\n return 'Customer Location HCL Report';\r\n } else if (reportNameParam == 'CityTicketHCLReport') {\r\n return 'City Ticket HCL Report';\r\n }\r\n else if (reportNameParam == 'TeamHclReport') {\r\n return 'Team Hcl Report';\r\n }\r\n else if (reportNameParam == 'TeamHclDetailedReport') {\r\n return 'Team Hcl Detailed Report';\r\n }\r\n else if (reportNameParam == 'TeamTicketHCLReport') {\r\n return 'Team Ticket HCL Report';\r\n } else if (reportNameParam == 'LinkTicketReport') {\r\n return 'Link Ticket Report';\r\n } else if (reportNameParam == 'TicketSummary') {\r\n return 'Ticket Summary';\r\n } else if (reportNameParam == 'Regional Summary') {\r\n return 'Regional Summary';\r\n } else if (reportNameParam == 'Finance Report') {\r\n return 'Finance Report';\r\n } else if (reportNameParam == 'Finance Ticket Report') {\r\n return 'Finance Ticket Report';\r\n }\r\n else {\r\n return reportNameParam;\r\n }\r\n\r\n }\r\n\r\n\r\n vm.reportLayoutCallback = vm.createCallback(null, [function (data) {\r\n if(vm.widgetcreate){\r\n vm.closecreatewidet();\r\n }\r\n else if(vm.widgetupdate){\r\n vm.closeupdatewidget();\r\n }\r\n vm.report_data = data;\r\n vm.ReportName = data.ReportName;\r\n var matricsCount = 0;\r\n vm.tableCount = 0;\r\n vm.tableNames = [];\r\n vm.tableOrder = [];\r\n vm.tableArray = [];\r\n var matricsIds = [];\r\n vm.AllValues = [];\r\n angular.forEach(data.chartModel, function (d) {\r\n if (d.ClickableColumns != null && d.ClickableColumns.length > 0) {\r\n angular.forEach(d.ClickableColumns, function (cl) {\r\n if (cl.Link == \"Project Status Report\") {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'ProjectStatus', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n } if (cl.Link == \"Customer Status Report\") {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'CustomerStatusReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n } if (cl.Link == 'Customer Location HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'CustomerLocationHCLReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"' , start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n }\r\n if (cl.Link == 'City Ticket HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName, i) {\r\n return \"index.Report({report_name:'CityTicketHCLReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"' , start_date:'\" + vm.rollup + \"', end_date:'\" + i + \"'})\";\r\n }\r\n }\r\n if (cl.Link == 'Team Hcl Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n // var fromDate = $stateParams.start_date?$stateParams.start_date:\"\";\r\n // var toDate = $stateParams.end_date?$stateParams.end_date:\"\";;\r\n return \"index.Report({report_name:'TeamHclDetailedReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"' , start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n }\r\n if (cl.Link == 'Team Ticket HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName, i) {\r\n //$log.log('Name',i);\r\n // var fromDate = $stateParams.start_date?$stateParams.start_date:\"\";\r\n // var toDate = $stateParams.end_date?$stateParams.end_date:\"\";;\r\n return \"index.Report({report_name:'TeamTicketHCLReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"' , start_date:'\" + vm.rollup + \"' , end_date:'\" + i + \"'})\";\r\n }\r\n }\r\n if (cl.Link == \"JobView\") {\r\n\r\n if (vm.VerticalName == \"IMS\") {\r\n vm.deepLink[cl.ColumnName] = function (param) {\r\n return \"index.JobView({ticketId:'\" + param + \"',type:'isTicketView'})\";\r\n }\r\n }\r\n else {\r\n vm.deepLink[cl.ColumnName] = function (param) {\r\n return \"index.JobDetailView({ticketId:'\" + param + \"',type:'isTicketView'})\";\r\n }\r\n\r\n }\r\n\r\n } if (cl.Link == 'Team Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'TeamDetailReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n } if (cl.Link == 'Spectro Lab Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'SpectroLabDetailedReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n } if (cl.Link == 'Finance Ticket Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'Finance Ticket Report', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n }\r\n });\r\n }\r\n if (d.UIClasess != null && d.UIClasess.length > 0) {\r\n vm.valueClass = {};\r\n angular.forEach(d.UIClasess, function (cl) {\r\n vm.valueClass[cl.ColumnName] = cl.ClassName;\r\n });\r\n }\r\n vm.filter_key = ''; \r\n vm.filter_name = ''; \r\n if (d.DataFilters != null && d.DataFilters.length > 0) { \r\n angular.forEach(d.DataFilters, function (cl) {\r\n if (vm.filter_key) {\r\n vm.filter_key = vm.filter_key + \",\" + cl.FieldName;\r\n vm.filter_name = vm.filter_name + \",\" + cl.FieldValue;\r\n }\r\n else {\r\n vm.filter_key = cl.FieldName;\r\n vm.filter_name = cl.FieldValue;\r\n }\r\n });\r\n }\r\n if (d.ChartType == 'Metrics') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name, \"\", false);\r\n matricsCount++;\r\n matricsIds.push(d.ChartId);\r\n vm.metricsCharts[d.ChartId] = d;\r\n vm.metricsCharts[d.ChartId].value = \"Loading...\";\r\n var CompData = {};\r\n CompData.chartId = d.ChartId;\r\n CompData.chartType = 'metrices';\r\n CompData.metrics = d.Metrics[0];\r\n CompData.value = \"Loading...\";\r\n CompData.EntityName = d.EntityName;\r\n CompData.DataFilters = d.DataFilters;\r\n CompData.ChartTitle = d.ChartTitle;\r\n CompData.ChartSubtitle = d.ChartSubtitle;\r\n vm.AllValues.push(CompData);\r\n }\r\n else if (d.ChartType == 'Table') {\r\n if (vm.isData) {\r\n d.Metrics = vm.key;\r\n }\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name, d.ChartTitle, vm.isData);\r\n vm.tableNames[vm.tableCount] = d.ChartTitle;\r\n vm.tableOrder[vm.tableCount] = d.ChartId;\r\n vm.tableCount = vm.tableCount + 1;\r\n vm.tableCharts[d.ChartId] = {};\r\n vm.tableCharts[d.ChartId].ChartId = d.ChartId;\r\n vm.tableCharts[d.ChartId].ChartTitle = d.ChartTitle;\r\n vm.tableCharts[d.ChartId].ChartSubtitle = d.ChartSubtitle;\r\n vm.tableCharts[d.ChartId].DataFilters = d.DataFilters;\r\n vm.tableCharts[d.ChartId].EntityName = d.EntityName;\r\n }\r\n });\r\n if (matricsCount >= 5) {\r\n if (matricsCount % 4 == 0) {\r\n matricsCount = 4;\r\n } else {\r\n matricsCount = 3;\r\n }\r\n }\r\n matricsCount = 12 / matricsCount;\r\n matricsCount = Math.round(matricsCount);\r\n angular.forEach(matricsIds, function (d) {\r\n vm.metricsCharts[d].width = \"col-lg-\" + matricsCount;\r\n });\r\n }])\r\n\r\n\r\n vm.getCustomerReport = function (reportid) {\r\n reportDetailService.getCustomerReportById(loggedinUser, reportid, token, vm.reportLayoutCallback);\r\n\r\n }\r\n\r\n vm.report_title = vm.getReportTitle($stateParams.report_name);\r\n\r\n if (vm.DocumentType == 'dashboard') {\r\n vm.getDashboard($stateParams.report_name);\r\n }\r\n else if (vm.DocumentType == 'report') {\r\n vm.getCustomerReport($stateParams.report_id);\r\n }\r\n\r\n // var metricsDictionary = {};\r\n \r\n\r\n vm.getChart = function (chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData, total) {\r\n vm.AllValuesOriginalIndex = [];\r\n vm.rachit = [];\r\n reportDetailService.getChart(loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData, total, vm.createCallback(vm.rachit, [function (data) {\r\n if (chartType == 'Metrics') {\r\n vm.metricsCharts[chartId].value = data;\r\n for (var i = 0; i < vm.AllValues.length; i++) {\r\n if (vm.AllValues[i].chartId == chartId) {\r\n index = i;\r\n break; // Exit the loop when the chartId is found\r\n }\r\n }\r\n vm.AllValues[index].value = data;\r\n vm.AllValuesOriginalIndex.push(chartId);\r\n } else if (chartType == 'Table') {\r\n vm.tableCharts[chartId].value = data;\r\n vm.tableCharts[chartId].DimensionName = dimensions[0];\r\n vm.dataFilters = vm.tableCharts[chartId].DataFilters;\r\n vm.EntityName = vm.tableCharts[chartId].EntityName;\r\n vm.buildColumnBuilder(data, chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData);\r\n\r\n }\r\n console.log(vm.AllValuesOriginalIndex);\r\n }]));\r\n\r\n // for (var i = 0; i < vm.AllValues.length; i++) {\r\n // var chartData = vm.AllValues[i];\r\n // metricsDictionary[currentIndex] = chartData.chartId;\r\n // currentIndex++;\r\n // }\r\n // console.log(metricsDictionary);\r\n }\r\n\r\n \r\n\r\n vm.buildColumnBuilder = function (dataSets, chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData) {\r\n if (vm.tableCharts[chartId] && vm.tableCharts[chartId].value) {\r\n var columns = [];\r\n for (var key in dataSets.Categories) {\r\n var temp = '';\r\n // var columnName = key;\r\n temp = DTColumnBuilder.newColumn(key).withTitle(dataSets.Categories[key]).renderWith(function (data, type, full, meta) {\r\n var temp = '';\r\n function getKeyByValue(object, value) {\r\n for (var prop in object) {\r\n if (object.hasOwnProperty(prop)) {\r\n if (object[prop] === value)\r\n temp = prop;\r\n }\r\n }\r\n }\r\n getKeyByValue(full, data)\r\n var firstColumntKey = Object.values(full)[0];\r\n // var fixedCatogries = Object.values(vm.tableCharts[chartId].value.Categories)[0];\r\n var t = vm.tableCharts[chartId].value.Categories;\r\n var n = t[temp];\r\n if (vm.deepLink[n]) {\r\n return \"' + data + \"\";\r\n }\r\n //data = 'T360000388568_CCR_Form_Photo7825.jpg';\r\n\r\n if ((temp == 'CCR URL' || temp == 'CCRFormPhotoAttachmentPath' || temp == 'TicketSignOffReport') && data) {\r\n\r\n vm.filename = data.substring(data.lastIndexOf('/') + 1);\r\n\r\n\r\n return '' + vm.filename + ' ';\r\n\r\n }\r\n else if ((temp == 'FieldReports') && data) {\r\n var fileUrls = data.split(',');\r\n var ancharStr = '';\r\n var filename;\r\n angular.forEach(fileUrls, function (value, key) {\r\n filename = value.substring(value.lastIndexOf('/') + 1);\r\n ancharStr = ancharStr + '' + filename + ' ';\r\n });\r\n\r\n return ancharStr;\r\n\r\n }\r\n else {\r\n return data;\r\n }\r\n });\r\n columns.push(temp);\r\n }\r\n vm.tableCharts[chartId].dtColumns = columns;\r\n }\r\n\r\n\r\n\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(dataSets.Values);\r\n return defer.promise;\r\n }).withDOM(\r\n '<\"html5buttons\"B>lTfgitp')\r\n .withOption('lengthChange', false)\r\n .withOption('order', [])\r\n .withButtons([{ extend: 'colvis' }, { extend: 'csv' }, { extend: 'print' }, { extend: 'copy' }])\r\n .withOption('createdRow', createdRow);\r\n }\r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n $scope.shouldHighlightItem = function() {\r\n $scope.isLayoutEditable = true;\r\n };\r\n\r\n $scope.shouldNotHighlightItem = function() {\r\n $scope.isLayoutEditable = false;\r\n };\r\n\r\n\r\n // Dashboard code start by simran\r\n\r\n vm.getChartDashboard = function (chartId, chartType, metrics, dimensions, subtitle, YAxis, rollup) {\r\n vm.AllValues = [];\r\n vm.AllValuesDash = [];\r\n vm.selectDimension[chartId] = {};\r\n reportDetailService.getChart1(loggedinUser, token, chartType, metrics, dimensions, rollup, vm.filterKeys, vm.filterValues, \"\", false, total, vm.createCallback(null, [function (data) {\r\n if (chartType == 'Metrics' || chartType == 'OneServMetrics') {\r\n vm.metricsCharts[chartId] = {};\r\n vm.metricsCharts[chartId].value = data;\r\n vm.metricsCharts[chartId].subtitles = subtitle.split(\",\");\r\n vm.metricsCharts[chartId].ChartId = chartId;\r\n vm.AllValuesDash.push(vm.metricsCharts[chartId].value);\r\n } else if (chartType == 'Table') {\r\n vm.tableCharts[chartId] = {};\r\n vm.tableCharts[chartId].value = data;\r\n vm.tableCharts[chartId].ChartId = chartId;\r\n vm.createTableChart(chartId, data.Categories.length, data);\r\n\r\n //vm.buildColumnBuilder(chartId, data.Categories.length);\r\n } else if (chartType == 'Line') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n } else if (chartType == 'Bar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n } else if (chartType == 'StackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n } else if (chartType == 'Pie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomPie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.pieCharts[chartId].selectedDimension = dimensions;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomLine') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n } else if (chartType == 'CustomBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n } else if (chartType == 'DrillDownBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createDrilledDownBarChart(chartId, YAxis);\r\n } else if (chartType == 'CustomStackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n }\r\n }]));\r\n }\r\n\r\n\r\n var makeDynamicTable = function (chartId, dataSet) {\r\n\r\n if (dataSet.Values.length >= 10) {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n }\r\n else {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('Tfgt')\r\n //.withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n\r\n }\r\n\r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n vm.tableCharts[chartId].dtInstance = {};\r\n vm.tableCharts[chartId].dtColumns = [];\r\n var columnList = Object.keys(dataSet.Categories);\r\n for (var index = 0; index < columnList.length; index++) {\r\n\r\n var temp = '';\r\n var colunId = columnList[index];\r\n temp = DTColumnBuilder.newColumn(colunId).withTitle(dataSet.Categories[colunId]).renderWith(function (data, type, full, meta) {\r\n var colKey = '';\r\n function getKeyByIndex(object, col) {\r\n var colList = Object.keys(object);\r\n colKey = colList[col];\r\n }\r\n getKeyByIndex(full, meta.col)\r\n var firstColumntKey = Object.values(full)[0];\r\n var fixedCatogries = Object.values(vm.tableCharts[chartId].value.Categories)[0];\r\n var t = vm.tableCharts[chartId].value.Categories;\r\n var n = t[colKey];\r\n if (data > 0 && vm.deepLink[n + ' ' + vm.tableCharts[chartId].ChartId]) {\r\n return \"' + data + \" \";\r\n // return \"\" + data + \" \";\r\n } else {\r\n return \"\" + data + \"\";\r\n }\r\n });\r\n vm.tableCharts[chartId].dtColumns.push(temp);\r\n }\r\n }\r\n\r\n vm.createTableChart = function (chartId, lenth, data) {\r\n makeDynamicTable(chartId, data);\r\n }\r\n\r\n vm.updateDefaultDateFilter = function (dasahboardFilter) {\r\n if (intialLoad) {\r\n var startDate = '';\r\n var endDate = '';\r\n if (dasahboardFilter && dasahboardFilter.DefaultDateFilter) {\r\n startDate = $scope.dashboardranges[dasahboardFilter.DefaultDateFilter][0];\r\n endDate = $scope.dashboardranges[dasahboardFilter.DefaultDateFilter][1];\r\n $scope.dates = { startDate: startDate, endDate: endDate };\r\n $scope.$broadcast('update.daterangepicker', { date: $scope.dates });\r\n vm.rollup = \"Range(\" + startDate.format(\"YYYY-MM-DD\") + \"|\" + endDate.format(\"YYYY-MM-DD\") + \")\";\r\n }\r\n }\r\n }\r\n\r\n vm.ShareMailReport = function () {\r\n vm.SharedReportName = vm.ReportName;\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.shareModel.mailbody = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.shareModel.content = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.ShareModal = $uibModal.open({\r\n templateUrl: 'ShareMailwidgetCtrl.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.ShareReport = function () {\r\n vm.SharedReportName = vm.ReportName;\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.GetSharedUsers(vm.ReportName);\r\n vm.shareModel.mailbody = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.shareModel.content = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.ShareModal = $uibModal.open({\r\n templateUrl: 'SharewidgetCtrl.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeShareReportModal = function () {\r\n vm.ShareModal.close();\r\n }\r\n\r\n vm.GetSharedUsers = function (dashboardname) {\r\n dashboardReportListService.GetSharedUsers(dashboardname,loggedinUser, token).then(function (resp) {\r\n if(resp.data){\r\n vm.shareModel.toList = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.GrantRevokeAccessToReport = function(){\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function(user){\r\n toList.push(user.UserId);\r\n });\r\n if(toList.length==0){\r\n vm.scheduleModel.toListMendtryErr=true;\r\n return;\r\n }\r\n var commaSeparatedtoList = toList.join(',');\r\n vm.closeShareReportModal();\r\n dashboardReportListService.GrantRevokeAccessToReport(vm.SharedReportName, commaSeparatedtoList, loggedinUser,token).then(function(resp){\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.closeShareReportModal();\r\n } \r\n else{\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n })\r\n }\r\n\r\n vm.updatewidget = function (item) {\r\n vm.itemData = item;\r\n if(item.chartType){\r\n vm.selectedOption = item.chartType;\r\n vm.deleteChartId = item.chartId;\r\n vm.SelectedType = item.EntityName;\r\n vm.chartName = item.metrics;\r\n vm.chartDisplayName = item.ChartTitle;\r\n vm.chartDescription = item.ChartSubtitle;\r\n vm.GetMetricsByEntityType(item.EntityName, item.metrics);\r\n vm.dataFilters = item.DataFilters; \r\n }\r\n else{\r\n vm.selectedOption = \"dimension\";\r\n vm.deleteChartId = item.ChartId;\r\n vm.SelectedType = item.EntityName;\r\n // vm.chartDisplayName = item.chartDisplayName;\r\n vm.DimensionName = item.DimensionName;\r\n vm.chartName = item.DimensionName;\r\n // vm.chartDescription = item.chartDescription;\r\n vm.GetDimensionByEntityName(item.EntityName, vm.DimensionName);\r\n vm.dataFilters = item.DataFilters;\r\n }\r\n \r\n }\r\n vm.closeupdatewidget = function () {\r\n vm.widgetupdate.close();\r\n vm.SelectedType = \"\";\r\n vm.SelectedChartName = \"\";\r\n vm.chartDisplayName = \"\";\r\n vm.chartDescription = \"\";\r\n }\r\n\r\n vm.createwidget = function () {\r\n vm.widgetcreate = $uibModal.open({\r\n templateUrl: 'createwidget.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n vm.closecreatewidet = function () {\r\n vm.widgetcreate.close();\r\n vm.dataFilters = [];\r\n vm.chartDisplayName= \"\";\r\n vm.chartDescription = \"\";\r\n vm.SelectedType = \"\";\r\n vm.SelectedChartName = \"\";\r\n }\r\n\r\n vm.ReportFilter = function () {\r\n vm.FilterModal = $uibModal.open({\r\n templateUrl: 'ReportFilter.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeReportFilterModal = function () {\r\n vm.FilterModal.close();\r\n }\r\n\r\n vm.ScheduledReport = function () {\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.scheduleModel.reportName = vm.ReportName;\r\n vm.scheduleModel.frequency = vm.scheduleModel.once;\r\n vm.scheduleModel.pull_data.range = vm.scheduleModel.pull_data.day;\r\n vm.scheduleModel.attachReportInMailBody = true;\r\n vm.scheduleModel.attachReportInExcel = true;\r\n vm.scheduleModel.sampleDateMendtryErr = false;\r\n vm.scheduleModel.input_of_week = null;\r\n vm.scheduleModel.sampleDate = new moment();\r\n vm.scheduleModel.input_for_month.option = vm.scheduleModel.input_for_month.start_of_day;\r\n vm.shareModel.content = \"Please find below the progress report as on $Date\\n\\nYou are requested to view the detailed report at $Link\";\r\n vm.ScheduledReportModal = $uibModal.open({\r\n templateUrl: 'ScheduledwidgetCtrl.html',\r\n backdrop: 'static',\r\n windowClass: 'schedulerModal',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeScheduledReportModal = function () {\r\n vm.ScheduledReportModal.close();\r\n }\r\n\r\n $scope.options = ['Option 1', 'Option 2', 'Option 3', 'Option 4'];\r\n $scope.selectedOptions = {};\r\n\r\n vm.shareModel.getUserSuggestion = function (val) {\r\n vm.scheduleModel.toListMendtryErr = false;\r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }].concat(vm.users) : vm.users;\r\n }\r\n // vm.getUsersLite();\r\n return re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }] : [];\r\n }\r\n\r\n // vm.getUsers = function () {\r\n // vm.users = [];\r\n // reportDetailService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n // //$log.log(data);\r\n // }]));\r\n // }\r\n\r\n vm.getUsersLite = function () {\r\n vm.users = [];\r\n reportDetailService.getUsersLite(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n //$log.log(data);\r\n }]));\r\n }\r\n\r\n vm.getUsersLite();\r\n\r\n vm.shareModel.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName != null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n\r\n vm.shareModel.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.shareModel.toList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.ccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n }\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.bccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n }\r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n\r\n vm.shareModel.cancelledToListUser = function (i) {\r\n vm.shareModel.toList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledCCListUser = function (i) {\r\n vm.shareModel.ccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledBCCListUser = function (i) {\r\n vm.shareModel.bccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.selectUserNameInToList = function (item) {\r\n vm.shareModel.toList.push(item);\r\n vm.shareModel.toUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInCCList = function (item) {\r\n vm.shareModel.ccList.push(item);\r\n vm.shareModel.ccUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInBCCList = function (item) {\r\n vm.shareModel.bccList.push(item);\r\n vm.shareModel.bccUsers = [];\r\n }\r\n\r\n vm.shareModel.mailReport = function () {\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function (user) {\r\n toList.push(user.UserId);\r\n });\r\n var ccList = [];\r\n angular.forEach(vm.shareModel.ccList, function (user) {\r\n ccList.push(user.UserId);\r\n });\r\n var bccList = [];\r\n angular.forEach(vm.shareModel.bccList, function (user) {\r\n bccList.push(user.UserId);\r\n });\r\n if (toList.length == 0) {\r\n vm.scheduleModel.toListMendtryErr = true;\r\n return;\r\n }\r\n if (vm.shareModel.content.length == 0) {\r\n return false;\r\n }\r\n\r\n var content = vm.shareModel.content;\r\n content = content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n vm.closeShareReportModal();\r\n reportDetailService.mailReport(token, toList, ccList, bccList, \"Report: \" + vm.ReportName,\r\n content, vm.ReportName, loggedinUser, vm.filter_key, vm.filter_name,\r\n vm.attachReportInMailBody, vm.attachReportInExcel, vm.rollup,\r\n vm.createCallback(null, [function (data) {\r\n vm.showSuccess(\"Success\", \"Report has been shared successfully\");\r\n }]));\r\n }\r\n\r\n vm.downloadReport = function () {\r\n reportDetailService.downloadReport(vm.report_data.ReportName, loggedinUser, vm.filter_key, vm.filter_name, vm.rollup, vm.isData);\r\n }\r\n\r\n vm.scheduleModel.checkName = function () {\r\n reportDetailService.checkReportName(vm.scheduleModel.reportName, function (data) {\r\n //$log.log(\"checkName reposnse\", data);\r\n vm.scheduleModel.reportNameAlreadyExists = data;\r\n });\r\n }\r\n\r\n vm.scheduleModel.scheduleReport = function () {\r\n var startTime = null;\r\n var endTime = null;\r\n var cronExpression = null;\r\n var daily = null;\r\n var weekly = null;\r\n var monthly = null;\r\n //$log.log(\"vm.scheduleModel.scheduleTime \",vm.scheduleModel.scheduleTime);\r\n if (vm.scheduleModel.reportName == null || vm.scheduleModel.reportName.length == 0) {\r\n vm.scheduleModel.reportNameMendtryErr = true;\r\n return;\r\n }\r\n if (vm.shareModel.toList.length == 0) {\r\n vm.scheduleModel.toListMendtryErr = true;\r\n return;\r\n }\r\n if (vm.scheduleModel.frequency == vm.scheduleModel.once) {\r\n //$log.log(\"vm.scheduleModel.sampleDate\", vm.scheduleModel.sampleDate);\r\n if (vm.scheduleModel.sampleDate) {\r\n var sample_Data = vm.scheduleModel.sampleDate ? vm.scheduleModel.sampleDate : new moment();\r\n startTime = {\r\n \"date\": sample_Data.format(\"DD\"),\r\n \"hour\": sample_Data.format(\"HH\"),\r\n \"min\": sample_Data.format(\"mm\"),\r\n \"month\": sample_Data.format(\"MMM\").toUpperCase(),\r\n \"sec\": sample_Data.format(\"ss\"),\r\n \"year\": sample_Data.format(\"YYYY\")\r\n };\r\n var sampleEndTime = moment(sample_Data).add(1, 'month');\r\n endTime = {\r\n \"date\": sampleEndTime.format(\"DD\"),\r\n \"hour\": sampleEndTime.format(\"HH\"),\r\n \"min\": sampleEndTime.format(\"mm\"),\r\n \"month\": sampleEndTime.format(\"MMM\").toUpperCase(),\r\n \"sec\": sampleEndTime.format(\"ss\"),\r\n \"year\": sampleEndTime.format(\"YYYY\")\r\n };\r\n //$log.log(\"startTime \",startTime);\r\n } else {\r\n vm.scheduleModel.sampleDateMendtryErr = true;\r\n return;\r\n }\r\n\r\n } else {\r\n var startDate = vm.scheduleModel.start_date ? new Date(vm.scheduleModel.start_date) : new Date();\r\n var endDate = vm.scheduleModel.end_date ? new Date(vm.scheduleModel.end_date) : new Date();\r\n startTime = {\r\n \"date\": startDate.getDate(),\r\n \"hour\": startDate.getHours(),\r\n \"min\": startDate.getMinutes(),\r\n \"month\": vm.monthNames3[startDate.getMonth()],\r\n \"sec\": startDate.getSeconds(),\r\n \"year\": startDate.getFullYear()\r\n };\r\n endTime = {\r\n \"date\": endDate.getDate(),\r\n \"hour\": endDate.getHours(),\r\n \"min\": endDate.getMinutes(),\r\n \"month\": vm.monthNames3[endDate.getMonth()],\r\n \"sec\": endDate.getSeconds(),\r\n \"year\": endDate.getFullYear()\r\n };\r\n var hour, min;\r\n if (vm.scheduleModel.scheduleTime) {\r\n var splittedtime = vm.scheduleModel.scheduleTime.split(\":\");\r\n hour = parseInt(splittedtime[0]);\r\n min = parseInt(splittedtime[1]);\r\n } else {\r\n vm.scheduleModel.timeMendtryErr = true;\r\n return;\r\n }\r\n if (vm.scheduleModel.frequency == vm.scheduleModel.daily) {\r\n daily = {\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n } else if (vm.scheduleModel.frequency == vm.scheduleModel.weekly) {\r\n var dayOfWeek = [];\r\n\r\n if (vm.scheduleModel.input_of_week.sun) {\r\n dayOfWeek.push(1);\r\n }\r\n if (vm.scheduleModel.input_of_week.mon) {\r\n dayOfWeek.push(2);\r\n }\r\n if (vm.scheduleModel.input_of_week.tue) {\r\n dayOfWeek.push(3);\r\n }\r\n if (vm.scheduleModel.input_of_week.wed) {\r\n dayOfWeek.push(4);\r\n }\r\n if (vm.scheduleModel.input_of_week.thu) {\r\n dayOfWeek.push(5);\r\n }\r\n if (vm.scheduleModel.input_of_week.fri) {\r\n dayOfWeek.push(6);\r\n }\r\n if (vm.scheduleModel.input_of_week.sat) {\r\n dayOfWeek.push(7);\r\n }\r\n weekly = {\r\n \"dayOfWeek\": dayOfWeek,\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n } else if (vm.scheduleModel.frequency == vm.scheduleModel.monthly) {\r\n if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.start_of_day) {\r\n monthly = {\r\n \"dayOfMonth\": \"1\",\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.end_of_day) {\r\n cronExpression = \"0 \" + hour + \" \" + min + \" L * ?\";\r\n vm.scheduleModel.frequency = vm.scheduleModel.cronExpression\r\n } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.specific_date) {\r\n monthly = {\r\n \"dayOfMonth\": vm.scheduleModel.input_for_month.date,\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n }\r\n\r\n }\r\n }\r\n\r\n var data = {\r\n \"cronExpression\": cronExpression,\r\n \"cronType\": vm.scheduleModel.frequency,\r\n \"daily\": daily,\r\n \"endTime\": endTime,\r\n \"jobStartTime\": startTime,\r\n \"method\": \"POST\",\r\n \"monthly\": monthly,\r\n \"uniqueId\": vm.scheduleModel.reportName,\r\n \"reportId\": $stateParams.report_id,\r\n \"url\": DashboardURL + \"/api/Report/mailexcelreportbyreportid\",\r\n \"weekly\": weekly,\r\n \"accountId\": loggedinUser\r\n };\r\n\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function (user) {\r\n toList.push(user.PersonalEmail);\r\n });\r\n var ccList = [];\r\n angular.forEach(vm.shareModel.ccList, function (user) {\r\n ccList.push(user.PersonalEmail);\r\n });\r\n var bccList = [];\r\n angular.forEach(vm.shareModel.bccList, function (user) {\r\n bccList.push(user.PersonalEmail);\r\n });\r\n\r\n if (vm.shareModel.content.length == 0) {\r\n vm.shareModel.contentMedtryErr = true;\r\n return;\r\n }\r\n\r\n var content = vm.shareModel.content;\r\n content = content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n var schedulerModel = {};\r\n schedulerModel[\"TOList\"] = toList;\r\n schedulerModel[\"CCList\"] = ccList;\r\n schedulerModel[\"BCCList\"] = bccList;\r\n schedulerModel[\"Body\"] = content;\r\n schedulerModel[\"Subject\"] = \"Report: \" + vm.ReportName\r\n schedulerModel[\"ReportId\"] = vm.ReportId\r\n schedulerModel[\"ReqUserId\"] = loggedinUser;\r\n schedulerModel[\"FilterKeys\"] = null;\r\n schedulerModel[\"FilterValues\"] = null;\r\n schedulerModel[\"ReportInMailBody\"] = vm.scheduleModel.attachReportInMailBody;\r\n schedulerModel[\"AttachXLSReportInMail\"] = vm.scheduleModel.attachReportInExcel;\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n schedulerModel[\"RollUps\"] = \"Last Day\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n schedulerModel[\"RollUps\"] = \"Last Week\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n schedulerModel[\"RollUps\"] = \"Last Month\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n schedulerModel[\"RollUps\"] = \"Last Quarter\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n schedulerModel[\"RollUps\"] = \"Current Month\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n var re = /^[1-9]+[0-9]*$/;\r\n if (!re.test(vm.scheduleModel.pull_data.specific_day_value)) {\r\n vm.scheduleModel.pull_data.specificDayValMedtryErr = true;\r\n return;\r\n }\r\n schedulerModel[\"RollUps\"] = vm.scheduleModel.pull_data.specific_day_value;\r\n }\r\n data[\"model\"] = JSON.stringify(schedulerModel);\r\n data[\"entity\"] = \"report\";\r\n\r\n reportDetailService.scheduleReport(loggedinUser, data, token,\r\n vm.createCallback(null, [function (data) {\r\n if (data.msg == \"Schedule already exists\") {\r\n vm.showFailure(\"Failed\", \"Schedule with same name already exists.\");\r\n } else if (data.msg == \"Unexpected params\") {\r\n vm.showFailure(\"Failed\", \"Unexpected parameters.\");\r\n } else if (data.msg == \"Failed\") {\r\n vm.showFailure(\"Server Error\", \"Failed to create schedule.\");\r\n } else {\r\n vm.showSuccess(\"Success\", \"Report scheduled successfully.\");\r\n vm.closeScheduledReportModal();\r\n }\r\n }]));\r\n }\r\n\r\n vm.PDFView = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n vm.pdfimage = resp.data;\r\n });\r\n $scope.selected = null;\r\n $timeout(function () {\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }, 1000)\r\n }\r\n vm.PDFUserModal = function () {\r\n jobAppointmentModal.close();\r\n }\r\n vm.isShow = true;\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n\r\n // vm.addMoreFilter = function () {\r\n // vm.SelectedSkills = [];\r\n // vm.SelectedLocations = [];\r\n // vm.SelectedField = [];\r\n // vm.showEditList = true;\r\n // vm.showAction = false;\r\n // vm.getAllAccountsExceptHD();\r\n\r\n // }\r\n\r\n vm.addMoreFilter = function () {\r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n };\r\n\r\n vm.addNewFilter = function (filter) {\r\n if (filter.FieldName.Type == 'Text') {\r\n filter.FieldValue = filter.FieldValue.join('|');\r\n }\r\n else if (filter.FieldName.Type == 'DateTime'){\r\n filter.FieldValue = vm.filterstartDate + '|' + vm.filterendDate;\r\n filter.FieldValue = filter.FieldValue.toString();\r\n\r\n }\r\n else if (filter.FieldName.Type == 'Numeric'){\r\n filter.FieldValue = filter.FieldValue.toString();\r\n }\r\n vm.dataFilters.push({\r\n \"FieldName\": filter.FieldName.Name,\r\n \"Condition\": filter.Condition,\r\n \"FieldValue\": filter.FieldValue,\r\n \"JoiningOperator\": filter.JoiningOperator\r\n });\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n // Clear the form fields after adding\r\n // filter.FieldName = \"\";\r\n // filter.Condition = \"\";\r\n // filter.FieldValue = \"\";\r\n // filter.JoiningOperator = \"\";\r\n };\r\n\r\n $scope.toggleEdit = function (filter) {\r\n angular.forEach(vm.AllFieldList.Fields, function (d) {\r\n if (d.Name == filter.FieldName) {\r\n filter.FieldName = d; \r\n return; \r\n }\r\n });\r\n \r\n if (filter.FieldName.Type == 'Text') {\r\n filter.FieldValue = filter.FieldValue.split('|');\r\n }\r\n else if (filter.FieldName.Type == 'DateTime'){\r\n var dateValues = filter.FieldValue.split('|');\r\n vm.filterstartDate = dateValues[0];\r\n vm.filterendDate = dateValues[1];\r\n \r\n }\r\n else if (filter.FieldName.Type == 'Numeric'){\r\n filter.FieldValue = parseFloat(filter.FieldValue);\r\n }\r\n vm.GetFieldValuesByFieldNames(vm.SelectedType, filter.FieldName.Name);\r\n // filter.FieldValue = filter.FieldValue;\r\n filter.Condition = filter.Condition;\r\n filter.JoiningOperator = filter.JoiningOperator;\r\n };\r\n\r\n vm.SaveCustomSettings = function(){\r\n reportDetailService.SaveCustomSettings($stateParams.report_id, $scope.order, loggedinUser,token).then(function(resp){\r\n if (resp && resp.status == 201) {\r\n vm.showSuccess(\"Success\", \"Layout Saved Successfully\");\r\n $scope.shouldNotHighlightItem();\r\n } \r\n else{\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n })\r\n }\r\n\r\n $scope.updateDataFilter = function (filter) {\r\n // Update the values with the edited values\r\n\r\n if (filter.FieldName.Type == 'Text') {\r\n filter.FieldValue = filter.FieldValue.join('|');\r\n }\r\n else if (filter.FieldName.Type == 'DateTime'){\r\n filter.FieldValue = vm.filterstartDate + '|' + vm.filterendDate;\r\n filter.FieldValue = filter.FieldValue.toString();\r\n\r\n }\r\n else if (filter.FieldName.Type == 'Numeric'){\r\n filter.FieldValue = filter.FieldValue.toString();\r\n }\r\n filter.FieldName = filter.FieldName.Name;\r\n filter.Condition = filter.Condition;\r\n filter.JoiningOperator = filter.JoiningOperator;\r\n };\r\n\r\n $scope.deleteDataFilter = function (filter) {\r\n const index = vm.dataFilters.indexOf(filter);\r\n if (index !== -1) {\r\n vm.dataFilters.splice(index, 1);\r\n }\r\n };\r\n\r\n vm.removeAddmoreEditList = function () {\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n }\r\n\r\n vm.openDilogforDelete = function (index) {\r\n $scope.deleteIndex = index;\r\n vm.ShareModal = $uibModal.open({\r\n templateUrl: 'openDilogforDelete.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.closeopenDilogforDeleteModal = function () {\r\n vm.ShareModal.close();\r\n }\r\n\r\n vm.selectedOption = 'dimension';\r\n\r\n vm.ChangeOption = function (type) {\r\n vm.selectedOption = type;\r\n vm.SelectedType = \"\";\r\n vm.SelectedChartName = \"\";\r\n vm.chartDisplayName = \"\";\r\n vm.chartDescription = \"\";\r\n vm.dataFilters = [];\r\n }\r\n\r\n vm.GetFieldValuesByFieldNames = function (EntityType, EntityName) {\r\n reportDetailService.GetFieldValuesByFieldNames(EntityType, EntityName,loggedinUser, token).then(function (resp) {\r\n vm.AllFieldValuesList = resp.data.Values;\r\n })\r\n }\r\n\r\n vm.ChangeMetrics = function (chart) {\r\n if(vm.selectedOption == 'metrices'){\r\n vm.chartName = chart.MetricsName\r\n }\r\n else{\r\n vm.chartName = chart.DimensionName\r\n }\r\n vm.chartDisplayName = chart.DisplayName;\r\n vm.chartDescription = chart.Description;\r\n vm.dataFilters = [];\r\n }\r\n\r\n vm.GetFieldTypesByEntityName = function (EntityType) {\r\n reportDetailService.GetFieldTypesByEntityName(EntityType, loggedinUser, token).then(function (resp) {\r\n vm.AllFieldList = resp.data;\r\n\r\n })\r\n }\r\n\r\n\r\n vm.GetMetricsByEntityType = function (EntityType,SelectedChartName) {\r\n reportDetailService.GetMetricsByEntityType(EntityType, loggedinUser, token).then(function (resp) {\r\n vm.AllMetricsList = resp.data;\r\n if(SelectedChartName){\r\n angular.forEach(vm.AllMetricsList, function (d) {\r\n if (d.MetricsName == SelectedChartName) {\r\n vm.SelectedChartName = d; \r\n return; \r\n }\r\n });\r\n vm.GetFieldTypesByEntityName(EntityType);\r\n if(vm.AllFieldList){\r\n vm.widgetupdate = $uibModal.open({\r\n templateUrl: 'updatewidget.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.GetDimensionByEntityName = function (EntityType,SelectedChartName) {\r\n reportDetailService.GetDimensionByEntityName(EntityType, loggedinUser, token).then(function (resp) {\r\n vm.AllDimensionsList = resp.data;\r\n if(SelectedChartName){\r\n angular.forEach(vm.AllDimensionsList, function (d) {\r\n if (d.DimensionName == SelectedChartName) {\r\n vm.SelectedChartName = d; \r\n vm.chartDisplayName = d.DisplayName;\r\n vm.chartDescription = d.Description; \r\n return; \r\n }\r\n });\r\n vm.GetFieldTypesByEntityName(EntityType);\r\n if(vm.AllFieldList){\r\n vm.widgetupdate = $uibModal.open({\r\n templateUrl: 'updatewidget.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllEntityTypes = function () {\r\n reportDetailService.GetAllEntityTypes(loggedinUser, token).then(function (resp) {\r\n vm.AllEntityList = resp.data;\r\n })\r\n }\r\n\r\n vm.GetAllEntityTypes();\r\n vm.dataFilters = [];\r\n\r\n vm.AddChartsToReport = function () {\r\n vm.feedbackForm.submitted = true;\r\n if (vm.feedbackForm.$valid) {\r\n data = {\r\n \"ReportId\": $stateParams.report_id,\r\n \"ChatType\": vm.selectedOption,\r\n \"ChartName\": vm.chartName,\r\n \"DisplayName\": vm.chartDisplayName,\r\n \"Description\": vm.chartDescription,\r\n \"DeleteChartId\": \"\",\r\n \"DataFilters\": vm.dataFilters\r\n }\r\n reportDetailService.AddChartsToReport(data, loggedinUser, token, vm.reportLayoutCallback);\r\n }\r\n }\r\n\r\n vm.UpdateChartsFromReport = function() {\r\n data ={\r\n \"ReportId\": $stateParams.report_id,\r\n \"ChatType\": vm.selectedOption,\r\n \"ChartName\": vm.chartName,\r\n \"DisplayName\": vm.chartDisplayName,\r\n \"Description\": vm.chartDescription,\r\n \"DeleteChartId\": vm.deleteChartId,\r\n \"DataFilters\": vm.dataFilters\r\n }\r\n reportDetailService.UpdateChartsFromReport(data, loggedinUser, token,vm.reportLayoutCallback);\r\n vm.dataFilters = [];\r\n vm.chartDisplayName= \"\";\r\n vm.chartDisplayName = \"\";\r\n vm.closeupdatewidget();\r\n // .then(function (resp) {\r\n // if(resp.data && resp.status == 201){ \r\n // $timeout(function () {\r\n // vm.getCustomerReport(vm.getReportName($stateParams.report_name));\r\n // }, 2000)\r\n // vm.showSuccess(\"Success\", resp.data);\r\n // }\r\n // else{\r\n // vm.showFailure(\"Failed\", resp.data);\r\n // }\r\n // })\r\n }\r\n\r\n vm.DeleteChartsFromReport = function(item) {\r\n if(item.chartId){\r\n vm.deleteChartId = item.chartId;\r\n }\r\n else{\r\n vm.deleteChartId = item.ChartId;\r\n }\r\n reportDetailService.DeleteChartsFromReport($stateParams.report_id,vm.deleteChartId, loggedinUser, token).then(function (resp) {\r\n if(resp.data && resp.status == 201){\r\n $timeout(function () {\r\n vm.getCustomerReport($stateParams.report_id);\r\n }, 2000)\r\n vm.showSuccess(\"Success\", resp.data);\r\n }\r\n else{\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').service('reportDetailService', function (ApiURL, $log, $http, DashboardURL, $window, CronUrl, PublicApiURL) {\r\n\r\n vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n vm.getCustomerReport = function (loggedinUser, reportname, token, callback) {\r\n $http.get(DashboardURL + '/api/Report/' + loggedinUser + '/' + reportname + '/GetByReportName', { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n vm.getCustomerReportById = function (loggedinUser, reportid, token, callback) {\r\n $http.get(DashboardURL + '/api/Report/GetReportById?reportId=' + reportid, { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n vm.getDashboard = function (loggedinUser, dashbardName, token, callback) {\r\n $http.get(DashboardURL + '/api/Dashboard/' + loggedinUser + '/' + dashbardName + '/GetDashboardByName', {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.GetDashboardByDashboardId = function (loggedinUser, dashboardId, token, callback) {\r\n $http.get(DashboardURL + '/api/Dashboard/GetDashboardByDashboardId?reqUserId=' + loggedinUser + '&DashboardId=' + dashboardId, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.getChart = function (loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData, total, callback) {\r\n $http.get(DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP=' + encodeURI(rollUp) + \"&FilterKeys=\" + filterKeys + \"&FilterValues=\" + filterValues + \"&isData=\" + isData + \"&total=\" + total, { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n res.data['chartName'] = chartName;\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n this.getSkills = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId=' + loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n\r\n this.getAccounts = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get accounts\");\r\n });\r\n }\r\n\r\n\r\n this.getBusinessUnits = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/accountConfig/GetAllEnterpriseType';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get business units\");\r\n });\r\n }\r\n\r\n\r\n this.getAllState = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.getDistrictsByState = function (loggedinUser, token, state, callback, failure) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State=' + state;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n }).then(function (res) {\r\n callback(res.data.values);\r\n }, function () {\r\n failure(\"states\", \"Unable to get district\");\r\n });\r\n }\r\n\r\n this.getCitiesByState = function (loggedinUser, token, state) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State=' + state;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // vm.getUsers = function (loggedinUser, token, callback) {\r\n // $http.get(ApiURL + '/api/' + loggedinUser + '/User', { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n // if (callback) {\r\n // callback(res.data);\r\n // }\r\n // })\r\n // }\r\n\r\n vm.getUsersLite = function (loggedinUser, token, callback) {\r\n $http.get(DashboardURL + '/api/Dashboard/GetReportUsers', { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.mailReport = function (token, toList, ccList, bccList, subject, message, reportName, userID, filterKey, filterValue, reportInMailBody, rollUps, callback) {\r\n var data = {\r\n \"TOList\": toList,\r\n \"CCList\": ccList,\r\n \"BCCList\": bccList,\r\n \"Body\": message,\r\n \"Subject\": subject,\r\n \"ReportName\": reportName,\r\n \"ReqUserId\": userID,\r\n \"FilterKeys\": null,\r\n \"FilterValues\": null,\r\n \"ReportInMailBody\": reportInMailBody,\r\n \"RollUps\": rollUps\r\n };\r\n\r\n $http.post(DashboardURL + '/api/Report/mailexcelreportbyname', data, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': userID } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n // vm.scheduleReport = function (loggedinUser, data, token, callback) {\r\n // $http.post(ApiURL + '/api/ReportSchedule/cron?userId=' + loggedinUser, data, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n // if (callback) {\r\n // callback(res.data);\r\n // }\r\n // })\r\n // }\r\n\r\n vm.scheduleReport = function (loggedinUser, data, token, callback) {\r\n $http.put(DashboardURL + '/api/AddUpateScheduleToReport', data, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.RescheduleReport = function (loggedinUser, data, token, callback) {\r\n $http.put(ApiURL + '/api/ReportSchedule/cron?userId=' + loggedinUser, data, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.downloadReport = function (reportName, loggedinUser, filterKey, filterName, rollUps, isData) {\r\n $window.location.href = PublicApiURL + \"/api/Report/DownloadExcelReportByReportName?reportName=\" + reportName + \"&reqUserId=\" + loggedinUser + \"&FilterKeys=\" + filterKey + \"&FilterValues=\" + filterName + \"&RollUps=\" + rollUps + \"&isData=\" + isData;\r\n console.log('$window.location.href', $window.location.href);\r\n }\r\n\r\n vm.checkReportName = function (reportName, callback) {\r\n $http.get(CronUrl + '/isCronNameExists?name=' + reportName, { headers: { 'Content-Type': 'application/json' } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllEntityTypes = function (loggedinUser, token) {\r\n var url = DashboardURL + '/api/Dashboard/GetAllEntityTypes';\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n vm.GetFieldTypesByEntityName = function (EntityType, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Dashboard/GetFieldTypesByEntityName?EntityName=' + EntityType;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n vm.GetFieldValuesByFieldNames = function (EntityType, FieldName, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Dashboard/GetFieldValuesByFieldNames?EntityName=' + EntityType + '&FieldName=' + FieldName;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n vm.GetMetricsByEntityType = function (EntityType, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Metrics/GetMetricsByEntityType?EntityType=' + EntityType;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n vm.GetDimensionByEntityName = function (EntityType, loggedinUser, token) {\r\n var url = DashboardURL + '/api/GetDimensionByEntityName?Name=' + EntityType;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n vm.AddChartsToReport = function (data, loggedinUser, token, callback) {\r\n var url = DashboardURL + '/api/AddChartsToReport';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n vm.AddChartsToDashboard = function (data, loggedinUser, token, callback) {\r\n var url = DashboardURL + '/api/Chart/AddChartsToDashboard';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n vm.UpdateChartsFromReport = function (data, loggedinUser, token, callback) {\r\n var url = DashboardURL + '/api/UpdateChartsFromReport';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n\r\n vm.UpdateChartsFromDashboard = function (data, loggedinUser, token, callback) {\r\n var url = DashboardURL + '/api/Chart/UpdateChartsFromDashboard';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n vm.DeleteChartsFromReport = function (ReportId, deleteChartId, loggedinUser, token) {\r\n var url = DashboardURL + '/api/DeleteChartsFromReport?ReportId=' + ReportId + '&ChartId=' + deleteChartId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n vm.DeleteChartsFromDashboard = function (DashboardId, deleteChartId, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Chart/DeleteChartsFromDashboard?DashboardId=' + DashboardId + '&ChartId=' + deleteChartId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.SaveCustomSettingsForDashboard = function (DashboardId, order, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Chart/SaveLayoutToDashboard?DashboardId=' + DashboardId;\r\n return $http.put(url, order, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.SaveCustomSettings = function (ReportId, order, loggedinUser, token) {\r\n var url = DashboardURL + '/api/SaveLayoutToReport?ReportId=' + ReportId;\r\n return $http.put(url, order, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n});\r\n\nangular.module(\"inspinia\").controller(\"reportDetailController\", function ($uibModal, $window, DashboardURL, $compile, MainService, $scope, $log, $q, dashboardReportListService, CentralHelpdeskConfigService, DTOptionsBuilder, DTColumnBuilder, $timeout, $localStorage, $state, $stateParams, reportDetailService) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.DocumentType = $stateParams.Type;\r\n vm.ReportId = $stateParams.report_id;\r\n vm.ReportName = '';\r\n var token = $localStorage.token;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n $scope.isLayoutEditable = false;\r\n vm.AllFieldList = [];\r\n vm.AllValues = [];\r\n vm.tableCharts = {};\r\n vm.deepLink = {};\r\n vm.valueClass = {};\r\n vm.selectedOption = 'dimension';\r\n var intialLoad = true;\r\n vm.users = [];\r\n vm.filename = '';\r\n vm.attachReportInMailBody = true;\r\n vm.attachReportInExcel = true;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.filter_key = $stateParams.filter_key ? $stateParams.filter_key : \"\";\r\n vm.isData = $stateParams.isData ? $stateParams.isData : false;\r\n vm.key = $stateParams.key ? $stateParams.key : \"\";\r\n vm.filter_name = $stateParams.filter_name ? $stateParams.filter_name : \"\";\r\n vm.additionalInfo = $stateParams.end_date ? $stateParams.end_date : \"\";\r\n var today = new Date();\r\n var formattedDate = today.toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' });\r\n // vm.defaultMailBody = \"Hello,\\n\\nYou are requested to view project report on below link \\n\\n\" + $window.location.href + \" \\n\\nThanks\\nMobiforce Team\";\r\n vm.defaultMailBody = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + 'on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n var creationDatefunc = $scope.$parent.$parent.main.AccountStartDate;\r\n vm.accountCreationDate = creationDatefunc();\r\n vm.tableCharts = {};\r\n vm.selectDimension = {};\r\n vm.dashboard_data = {};\r\n vm.metricsCharts = {};\r\n vm.tableCharts = {};\r\n vm.lineCharts = {};\r\n vm.pieCharts = {};\r\n vm.barCharts = {};\r\n vm.stackedCharts = {};\r\n var start_date = '';\r\n var thisFiscalStart = '';\r\n var thisFiscalEnd = '';\r\n vm.BusinessUnit = '';\r\n vm.State = '';\r\n vm.Skill = '';\r\n vm.Account = '';\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n var total = 'Total';\r\n\r\n if (moment().quarter() === 2) {\r\n thisFiscalStart = moment().month('April').startOf('month');\r\n thisFiscalEnd = moment().add(1, 'year').month('March').endOf('month');\r\n } else {\r\n thisFiscalStart = moment().subtract(1, 'year').month('April').startOf('month');\r\n thisFiscalEnd = moment().month('March').endOf('month');\r\n };\r\n\r\n\r\n $log.log('$stateParams.start_date', $stateParams.start_date);\r\n if ($stateParams.start_date) {\r\n vm.rollup = $stateParams.start_date;\r\n //\"Range(\"+startDate+\"|\"+endDate+\")\";\r\n var dateArray1 = vm.rollup.split('(');\r\n var dateArray2 = dateArray1[1].split(')');\r\n var dateArray3 = dateArray2[0].split('|');\r\n var startDate = moment(dateArray3[0]).format(\"YYYY-MM-DD\");\r\n var endDate = moment(dateArray3[1]).format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: moment(dateArray3[0]), endDate: moment(dateArray3[1]) };\r\n\r\n } else if (vm.isData) {\r\n if ($stateParams.start_date == '' || $stateParams.start_date == null) {\r\n $scope.dates = { startDate: vm.accountCreationDate, endDate: moment() };\r\n var startDate = vm.accountCreationDate;\r\n //var startDate = moment(0).format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n }\r\n } else {\r\n $scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n var startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n //var startDate = moment(0).format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n\r\n }\r\n\r\n vm.shareModel = {\r\n selectedUsers: [],\r\n toList: [],\r\n ccList: [],\r\n bccList: [],\r\n content: vm.defaultMailBody\r\n };\r\n vm.monthNames3 = [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\",\r\n \"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"\r\n ];\r\n\r\n vm.scheduleModel = {\r\n frequency: \"once\",\r\n once: \"once\",\r\n daily: \"daily\",\r\n weekly: \"weekly\",\r\n every_15_days: \"every_15_days\",\r\n monthly: \"monthly\",\r\n cronExpression: \"expression\",\r\n input_for_month: {\r\n option: \"start_of_day\",\r\n start_of_day: \"start_of_day\",\r\n end_of_day: \"end_of_day\",\r\n specific_date: \"specific_date\",\r\n date: 1\r\n },\r\n specific_date_range: [],\r\n start_date: moment(),\r\n end_date: moment().add(1, 'M'),\r\n attachReportInMailBody: true,\r\n attachReportInExcel: true,\r\n scheduleTime: \"\",\r\n scheduleName: \"\",\r\n reportNameAlreadyExists: false,\r\n reportNameMendtryErr: false,\r\n toListMendtryErr: false,\r\n timeMendtryErr: false,\r\n sampleDateMendtryErr: false,\r\n pull_data: {\r\n range: \"last_day\",\r\n day: \"last_day\",\r\n week: \"last_week\",\r\n month: \"last_month\",\r\n quarter: \"last_quarter\",\r\n current_month: \"current_month\",\r\n specific: \"specific\",\r\n specific_day_value: 1,\r\n calculate_range: function () {\r\n //$log.log(vm.scheduleModel.pull_data.range);\r\n var today = new Date();\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n var date = today;\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 1, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 3, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n return 1 + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n //$log.log(vm.scheduleModel.pull_data.specific_day_value)\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - vm.scheduleModel.pull_data.specific_day_value);\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n }\r\n }\r\n };\r\n\r\n for (var i = 1; i < 32; i++) {\r\n vm.scheduleModel.specific_date_range.push({ value: i, label: i });\r\n }\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment()]\r\n };\r\n\r\n $scope.dashboardranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Payment week': [moment().startOf('week').isoWeekday(1), moment().endOf('week').isoWeekday(0)],\r\n // 'Last week': [moment().subtract(1, 'weeks').startOf('week').isoWeekday(1), moment().subtract(1, 'weeks').endOf('week').isoWeekday(0)], \r\n 'This week': [moment().startOf('week'), moment().endOf('week')],\r\n 'Last week': [moment().subtract(1, 'weeks').startOf('week'), moment().subtract(1, 'weeks').endOf('week')],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n // 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This quater': [moment().startOf('quarter'), moment().endOf('quarter')],\r\n 'Last quater': [moment().subtract(1, 'quarters').startOf('quarter'), moment().subtract(1, 'quarters').endOf('quarter')],\r\n 'This year': [thisFiscalStart, thisFiscalEnd],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n\r\n $scope.dateRangeChange = function (ev, picker) {\r\n var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n var endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.AllValues = [];\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n if (vm.DocumentType == 'dashboard') {\r\n vm.GetDashboardByDashboardId($stateParams.report_id);\r\n intialLoad = false;\r\n }\r\n else if (vm.DocumentType == 'report') {\r\n vm.getCustomerReport($stateParams.report_id);\r\n }\r\n vm.tableCharts = {};\r\n };\r\n\r\n $scope.filterRangeChange = function (ev, picker) {\r\n vm.filterstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n vm.filterendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n };\r\n\r\n vm.getSkills = function () {\r\n reportDetailService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills;\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.getAccounts = function () {\r\n if (vm.loggedinUserRole == \"Dispatch Manager\") {\r\n CentralHelpdeskConfigService.getAllAccounts(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data && resp.status == 200) {\r\n vm.accounts = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n else {\r\n reportDetailService.getAccounts(loggedinUser, token, function (accounts) {\r\n vm.accounts = accounts;\r\n }, vm.showFailure);\r\n }\r\n }\r\n\r\n vm.getBusinessUnits = function () {\r\n reportDetailService.getBusinessUnits(loggedinUser, token, function (businessUnits) {\r\n vm.businessUnits = businessUnits;\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.getStates = function () {\r\n reportDetailService.getAllState(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.states = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n\r\n vm.getDistrictByState = function () {\r\n reportDetailService.getDistrictsByState(loggedinUser, token, vm.State, function (districts) {\r\n vm.districts = districts;\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.getCitiesByState = function () {\r\n reportDetailService.getCitiesByState(loggedinUser, token, vm.State).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.districts = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n\r\n $log.log('$stateParams.start_date', $stateParams.start_date);\r\n if ($stateParams.start_date) {\r\n vm.rollup = $stateParams.start_date;\r\n var dateArray1 = vm.rollup.split('(');\r\n var dateArray2 = dateArray1[1].split(')');\r\n var dateArray3 = dateArray2[0].split('|');\r\n var startDate = moment(dateArray3[0]).format(\"YYYY-MM-DD\");\r\n var endDate = moment(dateArray3[1]).format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: moment(dateArray3[0]), endDate: moment(dateArray3[1]) };\r\n } else if (vm.isData) {\r\n if ($stateParams.start_date == '' || $stateParams.start_date == null) {\r\n $scope.dates = { startDate: vm.accountCreationDate, endDate: moment() };\r\n var startDate = vm.accountCreationDate;\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n }\r\n } else {\r\n $scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n var startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n }\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.filter_key = $stateParams.filter_key ? $stateParams.filter_key : \"\";\r\n vm.isData = $stateParams.isData ? $stateParams.isData : false;\r\n vm.key = $stateParams.key ? $stateParams.key : \"\";\r\n vm.filter_name = $stateParams.filter_name ? $stateParams.filter_name : \"\";\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n $scope.dragoverCallback = function (index, external, type, callback) {\r\n $scope.logListEvent('dragged over', index, external, type);\r\n // Invoke callback to origin for container types.\r\n if (type == 'container' && !external) {\r\n console.log('Container being dragged contains ' + callback() + ' items');\r\n }\r\n return index < 10; // Disallow dropping in the third row.\r\n };\r\n\r\n $scope.order = [];\r\n var currentIndex = 0;\r\n $scope.dropCallback = function (index, item, external, type) {\r\n $scope.logListEvent('dropped at', index, item, external, type);\r\n $scope.order = vm.AllValuesOriginalIndex;\r\n var currentIndex = $scope.order.indexOf(item.chartId);\r\n // If the item is already in the order array, remove it from the current position\r\n if (currentIndex !== -1) {\r\n $scope.order.splice(currentIndex, 1);\r\n }\r\n // Insert the item at the new position\r\n $scope.order.splice(index, 0, item.chartId);\r\n console.log($scope.order);\r\n return item;\r\n };\r\n\r\n $scope.logEvent = function (message) {\r\n console.log(message);\r\n };\r\n\r\n $scope.logListEvent = function (action, index, external, type) {\r\n var message = external ? 'External ' : '';\r\n message += type + ' element was ' + action + ' position ' + index;\r\n console.log(message);\r\n };\r\n\r\n\r\n var id = 10;\r\n angular.forEach(vm.metricsChart, function (container) {\r\n var container = { items: [], effectAllowed: effect };\r\n for (var k = 0; k < 7; ++k) {\r\n container.items.push({ label: effect + ' ' + id++, effectAllowed: \"all\" });\r\n }\r\n });\r\n\r\n $scope.$watch(vm.metricsChart, function (model) {\r\n $scope.modelAsJson = angular.toJson(model, true);\r\n }, true);\r\n\r\n\r\n vm.dashboardCallback = vm.createCallback(null, [function (data) {\r\n if (vm.widgetcreate) {\r\n vm.closecreatewidet();\r\n }\r\n else if (vm.widgetupdate) {\r\n vm.closeupdatewidget();\r\n }\r\n vm.dashboard_data = data;\r\n var matricsCount = 0;\r\n vm.tableCount = 0;\r\n vm.lineCount = 0;\r\n vm.tableNames = [];\r\n vm.tableOrder = [];\r\n vm.tableArray = [];\r\n var matricsIds = [];\r\n vm.AllValues = [];\r\n var linechartIds = [];\r\n vm.lineArray = [];\r\n if (data && data.DashboardFilters) {\r\n vm.enableFilter = true;\r\n vm.updateDefaultDateFilter(data.DashboardFilters);\r\n }\r\n else {\r\n vm.enableFilter = false;\r\n vm.updateDefaultDateFilter(null);\r\n }\r\n\r\n angular.forEach(data.ChartModel, function (d) {\r\n\r\n if (d.ClickableColumns != null && d.ClickableColumns.length > 0) {\r\n angular.forEach(d.ClickableColumns, function (cl) {\r\n if (cl.Link == \"ProjectSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \" + d.ChartId] = function () {\r\n return \"index.Report({report_name:'ProjectSummary', key:'\" + cl.KeyName + \"'})\";\r\n }\r\n } else if (cl.Link == \"CustomerSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \" + d.ChartId] = function () {\r\n\r\n return \"index.Report({report_name:'CustomerSummary', key:'\" + cl.KeyName + \"'})\";\r\n }\r\n } else if (cl.Link == \"DashboardReport\") {\r\n\r\n vm.deepLink[cl.ColumnName + \" \" + d.ChartId] = function (filterValue, filterName) {\r\n var Keyfilter = cl.KeyName;\r\n if (cl.KeyName.indexOf(\"|\") >= 0) {\r\n var stringArray = cl.KeyName.split('|');\r\n filterName = stringArray[1];\r\n Keyfilter = stringArray[0];\r\n }\r\n if (filterValue == undefined && filterName == undefined) {\r\n filterValue = '';\r\n filterName = '';\r\n }\r\n if (d.ChartType == 'Metrics') {\r\n if (d.Rollups && d.Rollups.length > 0) {\r\n angular.forEach(d.Rollups, function (d) {\r\n if (d == 'Today') {\r\n var sDate = moment().format(\"YYYY-MM-DD\");\r\n var eDate = moment().format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n }\r\n else if (d == 'Yesterday') {\r\n var sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n var eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n }\r\n else if (d == 'Monthly') {\r\n var sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n var eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n } else if (d == 'Week1') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week1');\r\n } else if (d == 'Week2') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week2');\r\n } else if (d == 'Week3') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week3');\r\n } else if (d == 'Week4') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week4');\r\n }\r\n })\r\n } else {\r\n start_date = vm.rollup;\r\n }\r\n var obj = {\r\n \"report_name\": 'LinkTicketReport',\r\n \"key\": Keyfilter,\r\n \"filter_key\": filterName,\r\n \"filter_name\": filterValue,\r\n \"start_date\": start_date,\r\n \"isData\": true\r\n }\r\n return obj;\r\n } else {\r\n return \"index.DashboardReport({report_name:'LinkTicketReport', key:'\" + Keyfilter + \"',filter_key:'\" + filterName + \"', filter_name:'\" + filterValue + \"', start_date:'\" + vm.rollup + \"', isData:'\" + true + \"'})\";\r\n }\r\n }\r\n } else {\r\n if (cl.Link) {\r\n vm.deepLink[cl.ColumnName + \" \" + d.ChartId] = function (filterValue, filterName) {\r\n var Keyfilter = cl.KeyName;\r\n if (cl.KeyName.indexOf(\"|\") >= 0) {\r\n var stringArray = cl.KeyName.split('|');\r\n filterName = stringArray[1];\r\n Keyfilter = stringArray[0];\r\n }\r\n if (filterValue == undefined && filterName == undefined) {\r\n filterValue = '';\r\n filterName = '';\r\n }\r\n\r\n filterName = filterName + ',' + vm.filterKeys;\r\n filterValue = filterValue + ',' + vm.filterValues;\r\n\r\n if (d.ChartType == 'Metrics') {\r\n if (d.Rollups && d.Rollups.length > 0) {\r\n angular.forEach(d.Rollups, function (d) {\r\n if (d == 'Today') {\r\n var sDate = moment().format(\"YYYY-MM-DD\");\r\n var eDate = moment().format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n }\r\n else if (d == 'Yesterday') {\r\n var sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n var eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n } else if (d == 'Monthly') {\r\n var sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n var eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n } else if (d == 'Week1') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week1');\r\n } else if (d == 'Week2') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week2');\r\n } else if (d == 'Week3') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week3');\r\n } else if (d == 'Week4') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week4');\r\n }\r\n })\r\n } else {\r\n start_date = vm.rollup;\r\n }\r\n var obj = {\r\n \"report_name\": cl.Link,\r\n \"key\": Keyfilter,\r\n \"filter_key\": filterName,\r\n \"filter_name\": filterValue,\r\n \"start_date\": start_date,\r\n \"isData\": true\r\n }\r\n return obj;\r\n } else {\r\n return \"index.DashboardReport({report_name:'\" + cl.Link + \"', key:'\" + Keyfilter + \"',filter_key:'\" + filterName + \"', filter_name:'\" + filterValue + \"', start_date:'\" + vm.rollup + \"', isData:'\" + true + \"'})\";\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n if (d.ChartType == 'Line') {\r\n vm.lineCount = vm.lineCount + 1;\r\n linechartIds.push(d.ChartId);\r\n vm.lineCharts[d.ChartId] = d;\r\n vm.lineCharts[d.ChartId].value = \"Loading...\";\r\n var CompLData = {};\r\n CompLData.chartId = d.ChartId;\r\n CompLData.chartType = 'linecharts';\r\n CompLData.metrics = d.Metrics;\r\n CompLData.value = \"Loading...\";\r\n CompLData.EntityName = d.EntityName;\r\n CompLData.DataFilters = d.DataFilters;\r\n CompLData.ChartTitle = d.ChartTitle;\r\n CompLData.ChartSubtitle = d.ChartSubtitle;\r\n CompLData.Rollups = d.Rollups;\r\n CompLData.YAxis = d.YAxis;\r\n vm.lineArray.push(CompLData);\r\n }\r\n\r\n if (d.ChartType == 'Metrics') {\r\n matricsCount++;\r\n matricsIds.push(d.ChartId);\r\n vm.metricsCharts[d.ChartId] = d;\r\n vm.metricsCharts[d.ChartId].value = \"Loading...\";\r\n var CompData = {};\r\n CompData.chartId = d.ChartId;\r\n CompData.chartType = 'metrices';\r\n CompData.metrics = d.Metrics[0];\r\n CompData.value = \"Loading...\";\r\n CompData.EntityName = d.EntityName;\r\n CompData.DataFilters = d.DataFilters;\r\n CompData.ChartTitle = d.ChartTitle;\r\n CompData.ChartSubtitle = d.ChartSubtitle;\r\n vm.AllValues.push(CompData);\r\n }\r\n\r\n if (d.ChartType == 'Table') {\r\n vm.tableNames[vm.tableCount] = d.ChartTitle;\r\n vm.tableOrder[vm.tableCount] = d.ChartId;\r\n vm.tableCount = vm.tableCount + 1;\r\n vm.tableCharts[d.ChartId] = {};\r\n vm.tableCharts[d.ChartId].ChartId = d.ChartId;\r\n vm.tableCharts[d.ChartId].ChartTitle = d.ChartTitle;\r\n vm.tableCharts[d.ChartId].ChartSubtitle = d.ChartSubtitle;\r\n vm.tableCharts[d.ChartId].DataFilters = d.DataFilters;\r\n vm.tableCharts[d.ChartId].EntityName = d.EntityName;\r\n }\r\n\r\n if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Today\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Yesterday\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week1\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week1\");\r\n } else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week2\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week2\");\r\n } else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week3\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week3\");\r\n } else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week4\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week4\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly-6\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly-6\");\r\n }\r\n else if (d.ChartType == 'CustomLine' && d.Dimensions.length > 0 && d.Rollups.indexOf(\"Monthly\") >= 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if (d.ChartType == 'CustomLine' && d.Dimensions.length > 0 && d.Rollups.indexOf(\"Today\") >= 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if (d.ChartType == 'CustomLine' && d.Dimensions.length > 0 && d.Rollups.indexOf(\"Yesterday\") >= 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if (d.ChartType == 'CustomBar' && d.Dimensions.length > 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n } else if (d.ChartType == 'DrillDownBar' && d.Dimensions.length > 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n } else if (d.ChartType == 'CustomStackedBar' && d.Dimensions.length > 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n } else if (d.ChartType == 'CustomPie' && d.Dimensions.length > 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }\r\n else {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, vm.rollup);\r\n }\r\n\r\n });\r\n }])\r\n\r\n vm.GetDashboardByDashboardId = function (dashboardName) {\r\n reportDetailService.GetDashboardByDashboardId(loggedinUser, dashboardName, token, vm.dashboardCallback);\r\n }\r\n\r\n vm.reportLayoutCallback = vm.createCallback(null, [function (data) {\r\n if (vm.widgetcreate) {\r\n vm.closecreatewidet();\r\n }\r\n else if (vm.widgetupdate) {\r\n vm.closeupdatewidget();\r\n }\r\n vm.report_data = data;\r\n vm.ReportName = data.ReportName;\r\n var matricsCount = 0;\r\n vm.tableCount = 0;\r\n vm.tableNames = [];\r\n vm.tableOrder = [];\r\n vm.tableArray = [];\r\n var matricsIds = [];\r\n vm.AllValues = [];\r\n angular.forEach(data.chartModel, function (d) {\r\n if (d.ClickableColumns != null && d.ClickableColumns.length > 0) {\r\n angular.forEach(d.ClickableColumns, function (cl) {\r\n if (cl.Link == \"Project Status Report\") {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'ProjectStatus', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n } if (cl.Link == \"Customer Status Report\") {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'CustomerStatusReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n } if (cl.Link == 'Customer Location HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'CustomerLocationHCLReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"' , start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n }\r\n if (cl.Link == 'City Ticket HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName, i) {\r\n return \"index.Report({report_name:'CityTicketHCLReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"' , start_date:'\" + vm.rollup + \"', end_date:'\" + i + \"'})\";\r\n }\r\n }\r\n if (cl.Link == 'Team Hcl Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'TeamHclDetailedReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"' , start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n }\r\n if (cl.Link == 'Team Ticket HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName, i) {\r\n return \"index.Report({report_name:'TeamTicketHCLReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"' , start_date:'\" + vm.rollup + \"' , end_date:'\" + i + \"'})\";\r\n }\r\n }\r\n if (cl.Link == \"JobView\") {\r\n\r\n if (vm.VerticalName == \"IMS\") {\r\n vm.deepLink[cl.ColumnName] = function (param) {\r\n return \"index.JobView({ticketId:'\" + param + \"',type:'isTicketView'})\";\r\n }\r\n }\r\n else {\r\n vm.deepLink[cl.ColumnName] = function (param) {\r\n return \"index.JobDetailView({ticketId:'\" + param + \"',type:'isTicketView'})\";\r\n }\r\n\r\n }\r\n\r\n } if (cl.Link == 'Team Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'TeamDetailReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n } if (cl.Link == 'Spectro Lab Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'SpectroLabDetailedReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n } if (cl.Link == 'Finance Ticket Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'Finance Ticket Report', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n }\r\n });\r\n }\r\n if (d.UIClasess != null && d.UIClasess.length > 0) {\r\n vm.valueClass = {};\r\n angular.forEach(d.UIClasess, function (cl) {\r\n vm.valueClass[cl.ColumnName] = cl.ClassName;\r\n });\r\n }\r\n vm.filter_key = '';\r\n vm.filter_name = '';\r\n if (d.DataFilters != null && d.DataFilters.length > 0) {\r\n angular.forEach(d.DataFilters, function (cl) {\r\n if (vm.filter_key) {\r\n vm.filter_key = vm.filter_key + \",\" + cl.FieldName;\r\n vm.filter_name = vm.filter_name + \",\" + cl.FieldValue;\r\n }\r\n else {\r\n vm.filter_key = cl.FieldName;\r\n vm.filter_name = cl.FieldValue;\r\n }\r\n });\r\n }\r\n if (d.ChartType == 'Metrics') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name, \"\", false);\r\n matricsCount++;\r\n matricsIds.push(d.ChartId);\r\n vm.metricsCharts[d.ChartId] = d;\r\n vm.metricsCharts[d.ChartId].value = \"Loading...\";\r\n var CompData = {};\r\n CompData.chartId = d.ChartId;\r\n CompData.chartType = 'metrices';\r\n CompData.metrics = d.Metrics[0];\r\n CompData.value = \"Loading...\";\r\n CompData.EntityName = d.EntityName;\r\n CompData.DataFilters = d.DataFilters;\r\n CompData.ChartTitle = d.ChartTitle;\r\n CompData.ChartSubtitle = d.ChartSubtitle;\r\n vm.AllValues.push(CompData);\r\n }\r\n else if (d.ChartType == 'Table') {\r\n if (vm.isData) {\r\n d.Metrics = vm.key;\r\n }\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name, d.ChartTitle, vm.isData);\r\n vm.tableNames[vm.tableCount] = d.ChartTitle;\r\n vm.tableOrder[vm.tableCount] = d.ChartId;\r\n vm.tableCount = vm.tableCount + 1;\r\n vm.tableCharts[d.ChartId] = {};\r\n vm.tableCharts[d.ChartId].ChartId = d.ChartId;\r\n vm.tableCharts[d.ChartId].ChartTitle = d.ChartTitle;\r\n vm.tableCharts[d.ChartId].ChartSubtitle = d.ChartSubtitle;\r\n vm.tableCharts[d.ChartId].DataFilters = d.DataFilters;\r\n vm.tableCharts[d.ChartId].EntityName = d.EntityName;\r\n }\r\n });\r\n if (matricsCount >= 5) {\r\n if (matricsCount % 4 == 0) {\r\n matricsCount = 4;\r\n } else {\r\n matricsCount = 3;\r\n }\r\n }\r\n matricsCount = 12 / matricsCount;\r\n matricsCount = Math.round(matricsCount);\r\n angular.forEach(matricsIds, function (d) {\r\n vm.metricsCharts[d].width = \"col-lg-\" + matricsCount;\r\n });\r\n }])\r\n\r\n\r\n vm.getCustomerReport = function (reportid) {\r\n reportDetailService.getCustomerReportById(loggedinUser, reportid, token, vm.reportLayoutCallback);\r\n }\r\n\r\n if (vm.DocumentType == 'dashboard') {\r\n vm.GetDashboardByDashboardId($stateParams.report_id);\r\n vm.getSkills();\r\n vm.getAccounts();\r\n vm.getBusinessUnits();\r\n vm.getStates();\r\n }\r\n else if (vm.DocumentType == 'report') {\r\n vm.getCustomerReport($stateParams.report_id);\r\n }\r\n\r\n vm.getChart = function (chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData, total) {\r\n vm.AllValuesOriginalIndex = [];\r\n vm.rachit = [];\r\n reportDetailService.getChart(loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData, total, vm.createCallback(vm.rachit, [function (data) {\r\n if (chartType == 'Metrics') {\r\n vm.metricsCharts[chartId].value = data;\r\n for (var i = 0; i < vm.AllValues.length; i++) {\r\n if (vm.AllValues[i].chartId == chartId) {\r\n index = i;\r\n break; // Exit the loop when the chartId is found\r\n }\r\n }\r\n vm.AllValues[index].value = data;\r\n vm.AllValuesOriginalIndex.push(chartId);\r\n } else if (chartType == 'Table') {\r\n vm.tableCharts[chartId].value = data;\r\n vm.tableCharts[chartId].DimensionName = dimensions[0];\r\n vm.dataFilters = vm.tableCharts[chartId].DataFilters;\r\n vm.EntityName = vm.tableCharts[chartId].EntityName;\r\n vm.buildColumnBuilder(data, chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData);\r\n\r\n }\r\n console.log(vm.AllValuesOriginalIndex);\r\n }]));\r\n\r\n // for (var i = 0; i < vm.AllValues.length; i++) {\r\n // var chartData = vm.AllValues[i];\r\n // metricsDictionary[currentIndex] = chartData.chartId;\r\n // currentIndex++;\r\n // }\r\n // console.log(metricsDictionary);\r\n }\r\n\r\n\r\n\r\n vm.buildColumnBuilder = function (dataSets, chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData) {\r\n if (vm.tableCharts[chartId] && vm.tableCharts[chartId].value) {\r\n var columns = [];\r\n for (var key in dataSets.Categories) {\r\n var temp = '';\r\n // var columnName = key;\r\n temp = DTColumnBuilder.newColumn(key).withTitle(dataSets.Categories[key]).renderWith(function (data, type, full, meta) {\r\n var temp = '';\r\n function getKeyByValue(object, value) {\r\n for (var prop in object) {\r\n if (object.hasOwnProperty(prop)) {\r\n if (object[prop] === value)\r\n temp = prop;\r\n }\r\n }\r\n }\r\n getKeyByValue(full, data)\r\n var firstColumntKey = Object.values(full)[0];\r\n // var fixedCatogries = Object.values(vm.tableCharts[chartId].value.Categories)[0];\r\n var t = vm.tableCharts[chartId].value.Categories;\r\n var n = t[temp];\r\n if (vm.deepLink[n]) {\r\n return \"' + data + \"\";\r\n }\r\n //data = 'T360000388568_CCR_Form_Photo7825.jpg';\r\n\r\n if ((temp == 'CCR URL' || temp == 'CCRFormPhotoAttachmentPath' || temp == 'TicketSignOffReport') && data) {\r\n\r\n vm.filename = data.substring(data.lastIndexOf('/') + 1);\r\n\r\n\r\n return '' + vm.filename + ' ';\r\n\r\n }\r\n else if ((temp == 'FieldReports') && data) {\r\n var fileUrls = data.split(',');\r\n var ancharStr = '';\r\n var filename;\r\n angular.forEach(fileUrls, function (value, key) {\r\n filename = value.substring(value.lastIndexOf('/') + 1);\r\n ancharStr = ancharStr + '' + filename + ' ';\r\n });\r\n\r\n return ancharStr;\r\n\r\n }\r\n else {\r\n return data;\r\n }\r\n });\r\n columns.push(temp);\r\n }\r\n vm.tableCharts[chartId].dtColumns = columns;\r\n }\r\n\r\n\r\n\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(dataSets.Values);\r\n return defer.promise;\r\n }).withDOM(\r\n '<\"html5buttons\"B>lTfgitp')\r\n .withOption('lengthChange', false)\r\n .withOption('order', [])\r\n .withButtons([{ extend: 'colvis' }, { extend: 'csv' }, { extend: 'print' }, { extend: 'copy' }])\r\n .withOption('createdRow', createdRow);\r\n }\r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n $scope.shouldHighlightItem = function () {\r\n $scope.isLayoutEditable = true;\r\n };\r\n\r\n $scope.shouldNotHighlightItem = function () {\r\n $scope.isLayoutEditable = false;\r\n };\r\n\r\n\r\n // Dashboard code start by simran\r\n\r\n vm.getChartDashboard = function (chartId, chartType, metrics, dimensions, subtitle, YAxis, rollup) {\r\n vm.AllValuesOriginalIndex = [];\r\n vm.lineArraysOriginalIndex = [];\r\n vm.selectDimension[chartId] = {};\r\n reportDetailService.getChart(loggedinUser, token, chartType, metrics, dimensions, rollup, vm.filterKeys, vm.filterValues, \"\", false, total, vm.createCallback(null, [function (data) {\r\n if (chartType == 'Metrics') {\r\n vm.metricsCharts[chartId].value = data;\r\n for (var i = 0; i < vm.AllValues.length; i++) {\r\n if (vm.AllValues[i].chartId == chartId) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n vm.AllValues[index].value = data;\r\n vm.AllValuesOriginalIndex.push(chartId);\r\n }\r\n else if (chartType == 'Table') {\r\n vm.tableCharts[chartId].value = data;\r\n vm.tableCharts[chartId].DimensionName = dimensions[0];\r\n vm.dataFilters = vm.tableCharts[chartId].DataFilters;\r\n vm.EntityName = vm.tableCharts[chartId].EntityName;\r\n vm.createTableChart(chartId, data.Categories.length, data);\r\n }\r\n\r\n else if (chartType == 'Line') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n }\r\n else if (chartType == 'Bar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n } else if (chartType == 'StackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n } else if (chartType == 'Pie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomPie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.pieCharts[chartId].selectedDimension = dimensions;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomLine') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n } else if (chartType == 'CustomBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n } else if (chartType == 'DrillDownBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createDrilledDownBarChart(chartId, YAxis);\r\n } else if (chartType == 'CustomStackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n }\r\n }]));\r\n }\r\n\r\n vm.saveRollup = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n if (chartType == 'Line') {\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n if (!dimensions) {\r\n dimensions = '';\r\n }\r\n vm.getChartDashboard(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis);\r\n } else if (chartType == 'Bar') {\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.getChartDashboard(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createBarChart(chartId, yAxis);\r\n } else if (chartType == 'CustomLine') {\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n dimensions = vm.lineCharts[chartId].selectedDimension;\r\n vm.getChartDashboard(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis);\r\n } else if (chartType == 'CustomBar') {\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n if (vm.selectDimension && vm.selectDimension[chartId].dimension.length > 0) {\r\n dimensions = vm.selectDimension[chartId].dimension;\r\n } else {\r\n dimensions = vm.lineCharts[chartId].selectedDimension;\r\n }\r\n vm.getChartDashboard(chartId, chartType, metrics, dimensions, rollup);\r\n vm.createLineChart(chartId, yAxis);\r\n }\r\n }\r\n\r\n vm.createLineChart = function (chartId, yAxis) {\r\n vm.chartOptions = vm.chartOptions ? vm.chartOptions : {};\r\n $timeout(function () {\r\n if (vm.lineCharts[chartId] && vm.lineCharts[chartId].value) {\r\n vm.chartOptions[chartId] = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'line'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n categories: vm.lineCharts[chartId].value.Categories\r\n },\r\n // legend: {\r\n // layout: 'horizontal',\r\n // align: 'left',\r\n // itemWidth: 100,\r\n // verticalAlign: 'bottom',\r\n // //y: 30,\r\n // navigation: {\r\n // activeColor: '#3E576F',\r\n // animation: true,\r\n // arrowSize: 12,\r\n // inactiveColor: '#CCC',\r\n // style: {\r\n // fontWeight: 'bold',\r\n // color: '#333',\r\n // fontSize: '12px'\r\n // }\r\n // }\r\n // },\r\n // legend: {\r\n // align: 'right',\r\n // verticalAlign: 'top',\r\n // layout: 'vertical',\r\n // x: 0,\r\n // y: 100\r\n // },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n },\r\n scrollbar: {\r\n enabled: true\r\n }\r\n },\r\n plotOptions: {\r\n line: {\r\n dataLabels: {\r\n enabled: true\r\n },\r\n enableMouseTracking: true\r\n }\r\n },\r\n series: GetSeries()\r\n\r\n };\r\n function GetSeries() {\r\n\r\n if (vm.lineCharts[chartId].value.Series.length > 10) {\r\n\r\n for (var i = 0; i < vm.lineCharts[chartId].value.Series.length; i++) {\r\n //vm.lineCharts[chartId].value.Series[i].visible = false;\r\n }\r\n return vm.lineCharts[chartId].value.Series;\r\n } else {\r\n return vm.lineCharts[chartId].value.Series;\r\n }\r\n }\r\n if (vm.lineCharts[chartId].value.Series.length > 10) {\r\n var legend = {\r\n layout: 'horizontal',\r\n align: 'left',\r\n itemWidth: 100,\r\n verticalAlign: 'bottom',\r\n //y: 30,\r\n navigation: {\r\n activeColor: '#3E576F',\r\n animation: true,\r\n arrowSize: 12,\r\n inactiveColor: '#CCC',\r\n style: {\r\n fontWeight: 'bold',\r\n color: '#333',\r\n fontSize: '12px'\r\n }\r\n }\r\n }\r\n vm.chartOptions[chartId].legend = legend;\r\n }\r\n\r\n var chart = new Highcharts.chart(chartId, vm.chartOptions[chartId]);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n }\r\n }, 1000);\r\n }\r\n vm.createBarChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.barCharts[chartId] && vm.barCharts[chartId].value) {\r\n var chartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n // type : 'category',\r\n categories: vm.barCharts[chartId].value.Categories\r\n },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n\r\n }\r\n }\r\n },\r\n\r\n series: vm.barCharts[chartId].value.Series\r\n // drilldown:vm.barCharts[chartId].value.drilldown\r\n\r\n };\r\n\r\n if (chartData && chartData.series && chartData.series.length > 0 && chartData.series[0].data\r\n && chartData.series[0].data.length > 0 && chartData.series[0].data[0]) {\r\n chartData.series[0].data[0].sliced = true;\r\n chartData.series[0].data[0].selected = true;\r\n }\r\n\r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n }\r\n }, 2000);\r\n }\r\n\r\n //Create DrillDown Bar Chart\r\n vm.createDrilledDownBarChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.barCharts[chartId] && vm.barCharts[chartId].value) {\r\n var chartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n type: 'category'\r\n\r\n },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n\r\n }\r\n }\r\n },\r\n\r\n series: vm.barCharts[chartId].value.Series,\r\n drilldown: vm.barCharts[chartId].value.drilldown\r\n\r\n };\r\n\r\n if (chartData && chartData.series && chartData.series.length > 0 && chartData.series[0].data\r\n && chartData.series[0].data.length > 0 && chartData.series[0].data[0]) {\r\n chartData.series[0].data[0].sliced = true;\r\n chartData.series[0].data[0].selected = true;\r\n }\r\n\r\n\r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n }\r\n }, 2000);\r\n }\r\n\r\n //Stacked Chart\r\n vm.createStackedChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.stackedCharts[chartId] && vm.stackedCharts[chartId].value) {\r\n var stackedchartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n categories: vm.stackedCharts[chartId].value.Categories\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n legend: {\r\n\r\n reversed: true\r\n },\r\n tooltip: {\r\n formatter: function () {\r\n return '' + this.x + '
' +\r\n this.series.name + ': ' + this.y + '
' +\r\n 'Total: ' + this.point.stackTotal;\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n align: 'right',\r\n color: 'black',\r\n x: -10\r\n },\r\n enableMouseTracking: true\r\n },\r\n series: {\r\n\r\n stacking: 'normal'\r\n }\r\n },\r\n series: vm.stackedCharts[chartId].value.Series\r\n };\r\n if (stackedchartData && stackedchartData.series && stackedchartData.series.length > 0 && stackedchartData.series[0].data\r\n && stackedchartData.series[0].data.length > 0 && stackedchartData.series[0].data[0]) {\r\n stackedchartData.series[0].data[0].sliced = true;\r\n stackedchartData.series[0].data[0].selected = true;\r\n }\r\n\r\n var chart = new Highcharts.chart(chartId, stackedchartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n }\r\n }, 2000);\r\n }\r\n\r\n vm.createPieChart = function (chartId, title) {\r\n vm.showPieChart = vm.showPieChart || {};\r\n vm.tempShowPieChart = vm.tempShowPieChart || {};\r\n vm.showPieChart[chartId] = true;\r\n $timeout(function () {\r\n vm.tempShowPieChart[chartId] = false;\r\n if (vm.pieCharts[chartId] && vm.pieCharts[chartId].value) {\r\n\r\n for (var i = 0; i < vm.pieCharts[chartId].value.length; i++) {\r\n if (vm.pieCharts[chartId].value[i].y > 0) {\r\n vm.tempShowPieChart[chartId] = true;\r\n }\r\n }\r\n vm.showPieChart[chartId] = vm.tempShowPieChart[chartId];\r\n var chartData = {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie'\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n title: {\r\n text: ''\r\n },\r\n tooltip: {\r\n headerFormat: ' {series.name} : {point.name}
',\r\n pointFormat: ' {point.name}: {point.y:,.0f}
',\r\n footerFormat: ' Percentage : {point.percentage:,.1f}% ', shared: true, useHTML: true\r\n //pointFormat: '{series.name}: {point.y:.1f}%'\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n dataLabels: {\r\n enabled: false\r\n },\r\n showInLegend: true\r\n }\r\n },\r\n series: [{\r\n name: title,\r\n colorByPoint: true,\r\n data: vm.pieCharts[chartId].value\r\n }]\r\n };\r\n if (chartData && chartData.series && chartData.series.length > 0 && chartData.series[0].data\r\n && chartData.series[0].data.length > 0 && chartData.series[0].data[0]) {\r\n chartData.series[0].data[0].sliced = true;\r\n chartData.series[0].data[0].selected = true;\r\n }\r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n }\r\n }, 1000);\r\n }\r\n\r\n var gaugeInstances = {};\r\n vm.createGaugeChart = function (chartId) {\r\n if (gaugeInstances[chartId]) {\r\n gaugeInstances[chartId].destroy();\r\n }\r\n vm.showGaugeChart = vm.showGaugeChart || {};\r\n vm.tempshowGaugeChart = vm.tempshowGaugeChart || {};\r\n vm.showGaugeChart[chartId] = true;\r\n vm.tempshowGaugeChart[chartId] = false;\r\n\r\n if (vm.gaugeCharts[chartId] && vm.gaugeCharts[chartId].value) {\r\n vm.tempshowGaugeChart[chartId] = true;\r\n vm.showGaugeChart[chartId] = vm.tempshowGaugeChart[chartId];\r\n var label = \"(\" + vm.gaugeCharts[chartId].value[0].AcheivedPercentage + \"% of the target)\";\r\n var chartData = {\r\n id: chartId,\r\n value: vm.gaugeCharts[chartId].value[0].Value,\r\n min: 0,\r\n max: vm.gaugeCharts[chartId].value[0].TargetValue,\r\n decimals: 0,\r\n gaugeWidthScale: 0.6,\r\n pointer: true,\r\n pointerOptions: {\r\n toplength: -15,\r\n bottomlength: 10,\r\n bottomwidth: 12,\r\n color: '#333333',\r\n stroke: '#ffffff',\r\n stroke_width: 3,\r\n stroke_linecap: 'round'\r\n },\r\n customSectors: {\r\n ranges: [{\r\n color: \"#ff3b30\",\r\n lo: 0,\r\n hi: vm.gaugeCharts[chartId].value[0].TargetValue * 0.25\r\n }, {\r\n color: \"#FFA500\",\r\n lo: vm.gaugeCharts[chartId].value[0].TargetValue * 0.25,\r\n hi: vm.gaugeCharts[chartId].value[0].TargetValue * 0.50\r\n }, {\r\n color: \"#eccd28\",\r\n lo: vm.gaugeCharts[chartId].value[0].TargetValue * 0.50,\r\n hi: vm.gaugeCharts[chartId].value[0].TargetValue * 0.75\r\n }, {\r\n color: \"#43bf58\",\r\n lo: vm.gaugeCharts[chartId].value[0].TargetValue * 0.75,\r\n hi: vm.gaugeCharts[chartId].value[0].TargetValue\r\n }]\r\n },\r\n label: label,\r\n labelFontColor: \"#333333\",\r\n labelFontFamily: \"Arial\",\r\n labelFontSize: \"20px\",\r\n textRenderer: function (val) {\r\n return (vm.gaugeCharts[chartId].value[0].ValueType == 'INR' ? (vm.gaugeCharts[chartId].value[0].strValue) : vm.gaugeCharts[chartId].value[0].Value);\r\n },\r\n };\r\n gaugeInstances[chartId] = new JustGage(chartData);\r\n }\r\n };\r\n\r\n var makeDynamicTable = function (chartId, dataSet) {\r\n\r\n if (dataSet.Values.length >= 10) {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n }\r\n else {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('Tfgt')\r\n //.withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n\r\n }\r\n\r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n vm.tableCharts[chartId].dtInstance = {};\r\n vm.tableCharts[chartId].dtColumns = [];\r\n var columnList = Object.keys(dataSet.Categories);\r\n for (var index = 0; index < columnList.length; index++) {\r\n\r\n var temp = '';\r\n var colunId = columnList[index];\r\n temp = DTColumnBuilder.newColumn(colunId).withTitle(dataSet.Categories[colunId]).renderWith(function (data, type, full, meta) {\r\n var colKey = '';\r\n function getKeyByIndex(object, col) {\r\n var colList = Object.keys(object);\r\n colKey = colList[col];\r\n }\r\n getKeyByIndex(full, meta.col)\r\n var firstColumntKey = Object.values(full)[0];\r\n var fixedCatogries = Object.values(vm.tableCharts[chartId].value.Categories)[0];\r\n var t = vm.tableCharts[chartId].value.Categories;\r\n var n = t[colKey];\r\n if (data > 0 && vm.deepLink[n + ' ' + vm.tableCharts[chartId].ChartId]) {\r\n return \"' + data + \" \";\r\n // return \"\" + data + \" \";\r\n } else {\r\n return \"\" + data + \"\";\r\n }\r\n });\r\n vm.tableCharts[chartId].dtColumns.push(temp);\r\n }\r\n }\r\n\r\n vm.createTableChart = function (chartId, lenth, data) {\r\n makeDynamicTable(chartId, data);\r\n }\r\n\r\n vm.updateDefaultDateFilter = function (dasahboardFilter) {\r\n if (intialLoad) {\r\n var startDate = '';\r\n var endDate = '';\r\n if (dasahboardFilter && dasahboardFilter.DefaultDateFilter) {\r\n startDate = $scope.dashboardranges[dasahboardFilter.DefaultDateFilter][0];\r\n endDate = $scope.dashboardranges[dasahboardFilter.DefaultDateFilter][1];\r\n $scope.dates = { startDate: startDate, endDate: endDate };\r\n $scope.$broadcast('update.daterangepicker', { date: $scope.dates });\r\n vm.rollup = \"Range(\" + startDate.format(\"YYYY-MM-DD\") + \"|\" + endDate.format(\"YYYY-MM-DD\") + \")\";\r\n }\r\n }\r\n }\r\n\r\n vm.ShareMailReport = function () {\r\n vm.SharedReportName = vm.ReportName;\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.shareModel.mailbody = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.shareModel.content = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.ShareModal = $uibModal.open({\r\n templateUrl: 'ShareMailwidgetCtrl.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.ShareReport = function () {\r\n vm.SharedReportName = vm.ReportName;\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.GetSharedUsers(vm.ReportName);\r\n vm.shareModel.mailbody = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.shareModel.content = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.ShareModal = $uibModal.open({\r\n templateUrl: 'SharewidgetCtrl.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeShareReportModal = function () {\r\n vm.ShareModal.close();\r\n }\r\n\r\n vm.GetSharedUsers = function (dashboardname) {\r\n dashboardReportListService.GetSharedUsers(dashboardname, loggedinUser, token).then(function (resp) {\r\n if (resp.data) {\r\n vm.shareModel.toList = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.GrantRevokeAccessToReport = function () {\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function (user) {\r\n toList.push(user.UserId);\r\n });\r\n if (toList.length == 0) {\r\n vm.scheduleModel.toListMendtryErr = true;\r\n return;\r\n }\r\n var commaSeparatedtoList = toList.join(',');\r\n vm.closeShareReportModal();\r\n dashboardReportListService.GrantRevokeAccessToReport(vm.SharedReportName, commaSeparatedtoList, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.closeShareReportModal();\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n })\r\n }\r\n\r\n vm.updatewidget = function (item) {\r\n vm.itemData = item;\r\n if (item.chartType) {\r\n vm.selectedOption = item.chartType;\r\n vm.deleteChartId = item.chartId;\r\n vm.SelectedType = item.EntityName;\r\n vm.chartName = item.metrics;\r\n vm.chartDisplayName = item.ChartTitle;\r\n vm.chartDescription = item.ChartSubtitle;\r\n vm.chartYAxisName = item.YAxis;\r\n vm.GetMetricsByEntityType(item.EntityName, item.metrics);\r\n vm.dataFilters = item.DataFilters;\r\n }\r\n else {\r\n vm.selectedOption = \"dimension\";\r\n vm.deleteChartId = item.ChartId;\r\n vm.SelectedType = item.EntityName;\r\n // vm.chartDisplayName = item.chartDisplayName;\r\n vm.DimensionName = item.DimensionName;\r\n vm.chartName = item.DimensionName;\r\n // vm.chartDescription = item.chartDescription;\r\n vm.GetDimensionByEntityName(item.EntityName, vm.DimensionName);\r\n vm.dataFilters = item.DataFilters;\r\n }\r\n\r\n }\r\n vm.closeupdatewidget = function () {\r\n vm.widgetupdate.close();\r\n vm.SelectedType = \"\";\r\n vm.SelectedChartName = \"\";\r\n vm.chartDisplayName = \"\";\r\n vm.chartDescription = \"\";\r\n vm.chartYAxisName = \"\";\r\n }\r\n\r\n vm.createwidget = function () {\r\n vm.widgetcreate = $uibModal.open({\r\n templateUrl: 'createwidget.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n vm.closecreatewidet = function () {\r\n vm.widgetcreate.close();\r\n vm.dataFilters = [];\r\n vm.chartDisplayName = \"\";\r\n vm.chartDescription = \"\";\r\n vm.chartYAxisName = \"\";\r\n vm.SelectedType = \"\";\r\n vm.SelectedChartName = \"\";\r\n }\r\n\r\n vm.ReportFilter = function () {\r\n vm.FilterModal = $uibModal.open({\r\n templateUrl: 'ReportFilter.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeReportFilterModal = function () {\r\n vm.FilterModal.close();\r\n }\r\n\r\n vm.ScheduledReport = function () {\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.scheduleModel.reportName = vm.ReportName;\r\n vm.scheduleModel.frequency = vm.scheduleModel.once;\r\n vm.scheduleModel.pull_data.range = vm.scheduleModel.pull_data.day;\r\n vm.scheduleModel.attachReportInMailBody = true;\r\n vm.scheduleModel.attachReportInExcel = true;\r\n vm.scheduleModel.sampleDateMendtryErr = false;\r\n vm.scheduleModel.input_of_week = null;\r\n vm.scheduleModel.sampleDate = new moment();\r\n vm.scheduleModel.input_for_month.option = vm.scheduleModel.input_for_month.start_of_day;\r\n vm.shareModel.content = \"Please find below the progress report as on $Date\\n\\nYou are requested to view the detailed report at $Link\";\r\n vm.ScheduledReportModal = $uibModal.open({\r\n templateUrl: 'ScheduledwidgetCtrl.html',\r\n backdrop: 'static',\r\n windowClass: 'schedulerModal',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeScheduledReportModal = function () {\r\n vm.ScheduledReportModal.close();\r\n }\r\n\r\n $scope.options = ['Option 1', 'Option 2', 'Option 3', 'Option 4'];\r\n $scope.selectedOptions = {};\r\n\r\n vm.shareModel.getUserSuggestion = function (val) {\r\n vm.scheduleModel.toListMendtryErr = false;\r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }].concat(vm.users) : vm.users;\r\n }\r\n // vm.getUsersLite();\r\n return re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }] : [];\r\n }\r\n\r\n // vm.getUsers = function () {\r\n // vm.users = [];\r\n // reportDetailService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n // //$log.log(data);\r\n // }]));\r\n // }\r\n\r\n vm.getUsersLite = function () {\r\n vm.users = [];\r\n reportDetailService.getUsersLite(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n //$log.log(data);\r\n }]));\r\n }\r\n\r\n vm.getUsersLite();\r\n\r\n vm.shareModel.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName != null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n\r\n vm.shareModel.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.shareModel.toList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.ccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n }\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.bccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n }\r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n\r\n vm.shareModel.cancelledToListUser = function (i) {\r\n vm.shareModel.toList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledCCListUser = function (i) {\r\n vm.shareModel.ccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledBCCListUser = function (i) {\r\n vm.shareModel.bccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.selectUserNameInToList = function (item) {\r\n vm.shareModel.toList.push(item);\r\n vm.shareModel.toUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInCCList = function (item) {\r\n vm.shareModel.ccList.push(item);\r\n vm.shareModel.ccUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInBCCList = function (item) {\r\n vm.shareModel.bccList.push(item);\r\n vm.shareModel.bccUsers = [];\r\n }\r\n\r\n vm.shareModel.mailReport = function () {\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function (user) {\r\n toList.push(user.UserId);\r\n });\r\n var ccList = [];\r\n angular.forEach(vm.shareModel.ccList, function (user) {\r\n ccList.push(user.UserId);\r\n });\r\n var bccList = [];\r\n angular.forEach(vm.shareModel.bccList, function (user) {\r\n bccList.push(user.UserId);\r\n });\r\n if (toList.length == 0) {\r\n vm.scheduleModel.toListMendtryErr = true;\r\n return;\r\n }\r\n if (vm.shareModel.content.length == 0) {\r\n return false;\r\n }\r\n\r\n var content = vm.shareModel.content;\r\n content = content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n vm.closeShareReportModal();\r\n reportDetailService.mailReport(token, toList, ccList, bccList, \"Report: \" + vm.ReportName,\r\n content, vm.ReportName, loggedinUser, vm.filter_key, vm.filter_name,\r\n vm.attachReportInMailBody, vm.attachReportInExcel, vm.rollup,\r\n vm.createCallback(null, [function (data) {\r\n vm.showSuccess(\"Success\", \"Report has been shared successfully\");\r\n }]));\r\n }\r\n\r\n vm.downloadReport = function () {\r\n reportDetailService.downloadReport(vm.report_data.ReportName, loggedinUser, vm.filter_key, vm.filter_name, vm.rollup, vm.isData);\r\n }\r\n\r\n vm.scheduleModel.checkName = function () {\r\n reportDetailService.checkReportName(vm.scheduleModel.reportName, function (data) {\r\n //$log.log(\"checkName reposnse\", data);\r\n vm.scheduleModel.reportNameAlreadyExists = data;\r\n });\r\n }\r\n\r\n vm.scheduleModel.scheduleReport = function () {\r\n var startTime = null;\r\n var endTime = null;\r\n var cronExpression = null;\r\n var daily = null;\r\n var weekly = null;\r\n var monthly = null;\r\n //$log.log(\"vm.scheduleModel.scheduleTime \",vm.scheduleModel.scheduleTime);\r\n if (vm.scheduleModel.reportName == null || vm.scheduleModel.reportName.length == 0) {\r\n vm.scheduleModel.reportNameMendtryErr = true;\r\n return;\r\n }\r\n if (vm.shareModel.toList.length == 0) {\r\n vm.scheduleModel.toListMendtryErr = true;\r\n return;\r\n }\r\n if (vm.scheduleModel.frequency == vm.scheduleModel.once) {\r\n //$log.log(\"vm.scheduleModel.sampleDate\", vm.scheduleModel.sampleDate);\r\n if (vm.scheduleModel.sampleDate) {\r\n var sample_Data = vm.scheduleModel.sampleDate ? vm.scheduleModel.sampleDate : new moment();\r\n startTime = {\r\n \"date\": sample_Data.format(\"DD\"),\r\n \"hour\": sample_Data.format(\"HH\"),\r\n \"min\": sample_Data.format(\"mm\"),\r\n \"month\": sample_Data.format(\"MMM\").toUpperCase(),\r\n \"sec\": sample_Data.format(\"ss\"),\r\n \"year\": sample_Data.format(\"YYYY\")\r\n };\r\n var sampleEndTime = moment(sample_Data).add(1, 'month');\r\n endTime = {\r\n \"date\": sampleEndTime.format(\"DD\"),\r\n \"hour\": sampleEndTime.format(\"HH\"),\r\n \"min\": sampleEndTime.format(\"mm\"),\r\n \"month\": sampleEndTime.format(\"MMM\").toUpperCase(),\r\n \"sec\": sampleEndTime.format(\"ss\"),\r\n \"year\": sampleEndTime.format(\"YYYY\")\r\n };\r\n //$log.log(\"startTime \",startTime);\r\n } else {\r\n vm.scheduleModel.sampleDateMendtryErr = true;\r\n return;\r\n }\r\n\r\n } else {\r\n var startDate = vm.scheduleModel.start_date ? new Date(vm.scheduleModel.start_date) : new Date();\r\n var endDate = vm.scheduleModel.end_date ? new Date(vm.scheduleModel.end_date) : new Date();\r\n startTime = {\r\n \"date\": startDate.getDate(),\r\n \"hour\": startDate.getHours(),\r\n \"min\": startDate.getMinutes(),\r\n \"month\": vm.monthNames3[startDate.getMonth()],\r\n \"sec\": startDate.getSeconds(),\r\n \"year\": startDate.getFullYear()\r\n };\r\n endTime = {\r\n \"date\": endDate.getDate(),\r\n \"hour\": endDate.getHours(),\r\n \"min\": endDate.getMinutes(),\r\n \"month\": vm.monthNames3[endDate.getMonth()],\r\n \"sec\": endDate.getSeconds(),\r\n \"year\": endDate.getFullYear()\r\n };\r\n var hour, min;\r\n if (vm.scheduleModel.scheduleTime) {\r\n var splittedtime = vm.scheduleModel.scheduleTime.split(\":\");\r\n hour = parseInt(splittedtime[0]);\r\n min = parseInt(splittedtime[1]);\r\n } else {\r\n vm.scheduleModel.timeMendtryErr = true;\r\n return;\r\n }\r\n if (vm.scheduleModel.frequency == vm.scheduleModel.daily) {\r\n daily = {\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n } else if (vm.scheduleModel.frequency == vm.scheduleModel.weekly) {\r\n var dayOfWeek = [];\r\n\r\n if (vm.scheduleModel.input_of_week.sun) {\r\n dayOfWeek.push(1);\r\n }\r\n if (vm.scheduleModel.input_of_week.mon) {\r\n dayOfWeek.push(2);\r\n }\r\n if (vm.scheduleModel.input_of_week.tue) {\r\n dayOfWeek.push(3);\r\n }\r\n if (vm.scheduleModel.input_of_week.wed) {\r\n dayOfWeek.push(4);\r\n }\r\n if (vm.scheduleModel.input_of_week.thu) {\r\n dayOfWeek.push(5);\r\n }\r\n if (vm.scheduleModel.input_of_week.fri) {\r\n dayOfWeek.push(6);\r\n }\r\n if (vm.scheduleModel.input_of_week.sat) {\r\n dayOfWeek.push(7);\r\n }\r\n weekly = {\r\n \"dayOfWeek\": dayOfWeek,\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n } else if (vm.scheduleModel.frequency == vm.scheduleModel.monthly) {\r\n if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.start_of_day) {\r\n monthly = {\r\n \"dayOfMonth\": \"1\",\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.end_of_day) {\r\n cronExpression = \"0 \" + hour + \" \" + min + \" L * ?\";\r\n vm.scheduleModel.frequency = vm.scheduleModel.cronExpression\r\n } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.specific_date) {\r\n monthly = {\r\n \"dayOfMonth\": vm.scheduleModel.input_for_month.date,\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n }\r\n\r\n }\r\n }\r\n\r\n var data = {\r\n \"cronExpression\": cronExpression,\r\n \"cronType\": vm.scheduleModel.frequency,\r\n \"daily\": daily,\r\n \"endTime\": endTime,\r\n \"jobStartTime\": startTime,\r\n \"method\": \"POST\",\r\n \"monthly\": monthly,\r\n \"uniqueId\": vm.scheduleModel.reportName,\r\n \"reportId\": $stateParams.report_id,\r\n \"url\": DashboardURL + \"/api/Report/mailexcelreportbyreportid\",\r\n \"weekly\": weekly,\r\n \"accountId\": loggedinUser\r\n };\r\n\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function (user) {\r\n toList.push(user.PersonalEmail);\r\n });\r\n var ccList = [];\r\n angular.forEach(vm.shareModel.ccList, function (user) {\r\n ccList.push(user.PersonalEmail);\r\n });\r\n var bccList = [];\r\n angular.forEach(vm.shareModel.bccList, function (user) {\r\n bccList.push(user.PersonalEmail);\r\n });\r\n\r\n if (vm.shareModel.content.length == 0) {\r\n vm.shareModel.contentMedtryErr = true;\r\n return;\r\n }\r\n\r\n var content = vm.shareModel.content;\r\n content = content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n var schedulerModel = {};\r\n schedulerModel[\"TOList\"] = toList;\r\n schedulerModel[\"CCList\"] = ccList;\r\n schedulerModel[\"BCCList\"] = bccList;\r\n schedulerModel[\"Body\"] = content;\r\n schedulerModel[\"Subject\"] = \"Report: \" + vm.ReportName\r\n schedulerModel[\"ReportId\"] = vm.ReportId\r\n schedulerModel[\"ReqUserId\"] = loggedinUser;\r\n schedulerModel[\"FilterKeys\"] = null;\r\n schedulerModel[\"FilterValues\"] = null;\r\n schedulerModel[\"ReportInMailBody\"] = vm.scheduleModel.attachReportInMailBody;\r\n schedulerModel[\"AttachXLSReportInMail\"] = vm.scheduleModel.attachReportInExcel;\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n schedulerModel[\"RollUps\"] = \"Last Day\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n schedulerModel[\"RollUps\"] = \"Last Week\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n schedulerModel[\"RollUps\"] = \"Last Month\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n schedulerModel[\"RollUps\"] = \"Last Quarter\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n schedulerModel[\"RollUps\"] = \"Current Month\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n var re = /^[1-9]+[0-9]*$/;\r\n if (!re.test(vm.scheduleModel.pull_data.specific_day_value)) {\r\n vm.scheduleModel.pull_data.specificDayValMedtryErr = true;\r\n return;\r\n }\r\n schedulerModel[\"RollUps\"] = vm.scheduleModel.pull_data.specific_day_value;\r\n }\r\n data[\"model\"] = JSON.stringify(schedulerModel);\r\n data[\"entity\"] = \"report\";\r\n\r\n reportDetailService.scheduleReport(loggedinUser, data, token,\r\n vm.createCallback(null, [function (data) {\r\n if (data.msg == \"Schedule already exists\") {\r\n vm.showFailure(\"Failed\", \"Schedule with same name already exists.\");\r\n } else if (data.msg == \"Unexpected params\") {\r\n vm.showFailure(\"Failed\", \"Unexpected parameters.\");\r\n } else if (data.msg == \"Failed\") {\r\n vm.showFailure(\"Server Error\", \"Failed to create schedule.\");\r\n } else {\r\n vm.showSuccess(\"Success\", \"Report scheduled successfully.\");\r\n vm.closeScheduledReportModal();\r\n }\r\n }]));\r\n }\r\n\r\n vm.PDFView = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n vm.pdfimage = resp.data;\r\n });\r\n $scope.selected = null;\r\n $timeout(function () {\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }, 1000)\r\n }\r\n vm.PDFUserModal = function () {\r\n jobAppointmentModal.close();\r\n }\r\n vm.isShow = true;\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n\r\n // vm.addMoreFilter = function () {\r\n // vm.SelectedSkills = [];\r\n // vm.SelectedLocations = [];\r\n // vm.SelectedField = [];\r\n // vm.showEditList = true;\r\n // vm.showAction = false;\r\n // vm.getAllAccountsExceptHD();\r\n\r\n // }\r\n\r\n vm.addMoreFilter = function () {\r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n };\r\n\r\n vm.addNewFilter = function (filter) {\r\n if (filter.FieldName.Type == 'Text') {\r\n filter.FieldValue = filter.FieldValue.join('|');\r\n }\r\n else if (filter.FieldName.Type == 'DateTime') {\r\n filter.FieldValue = vm.filterstartDate + '|' + vm.filterendDate;\r\n filter.FieldValue = filter.FieldValue.toString();\r\n\r\n }\r\n else if (filter.FieldName.Type == 'Numeric') {\r\n filter.FieldValue = filter.FieldValue.toString();\r\n }\r\n vm.dataFilters.push({\r\n \"FieldName\": filter.FieldName.Name,\r\n \"Condition\": filter.Condition,\r\n \"FieldValue\": filter.FieldValue,\r\n \"JoiningOperator\": filter.JoiningOperator\r\n });\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n // Clear the form fields after adding\r\n // filter.FieldName = \"\";\r\n // filter.Condition = \"\";\r\n // filter.FieldValue = \"\";\r\n // filter.JoiningOperator = \"\";\r\n };\r\n\r\n $scope.toggleEdit = function (filter) {\r\n angular.forEach(vm.AllFieldList.Fields, function (d) {\r\n if (d.Name == filter.FieldName) {\r\n filter.FieldName = d;\r\n return;\r\n }\r\n });\r\n\r\n if (filter.FieldName.Type == 'Text') {\r\n filter.FieldValue = filter.FieldValue.split('|');\r\n }\r\n else if (filter.FieldName.Type == 'DateTime') {\r\n var dateValues = filter.FieldValue.split('|');\r\n vm.filterstartDate = dateValues[0];\r\n vm.filterendDate = dateValues[1];\r\n\r\n }\r\n else if (filter.FieldName.Type == 'Numeric') {\r\n filter.FieldValue = parseFloat(filter.FieldValue);\r\n }\r\n vm.GetFieldValuesByFieldNames(vm.SelectedType, filter.FieldName.Name);\r\n // filter.FieldValue = filter.FieldValue;\r\n filter.Condition = filter.Condition;\r\n filter.JoiningOperator = filter.JoiningOperator;\r\n };\r\n\r\n vm.SaveCustomSettings = function () {\r\n const SaveCustom = vm.DocumentType === 'dashboard' ? reportDetailService.SaveCustomSettingsForDashboard : reportDetailService.SaveCustomSettings;\r\n SaveCustom($stateParams.report_id, $scope.order, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 201) {\r\n vm.showSuccess(\"Success\", \"Layout Saved Successfully\");\r\n $scope.shouldNotHighlightItem();\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n })\r\n }\r\n\r\n $scope.updateDataFilter = function (filter) {\r\n if (filter.FieldName.Type == 'Text') {\r\n filter.FieldValue = filter.FieldValue.join('|');\r\n }\r\n else if (filter.FieldName.Type == 'DateTime') {\r\n filter.FieldValue = vm.filterstartDate + '|' + vm.filterendDate;\r\n filter.FieldValue = filter.FieldValue.toString();\r\n\r\n }\r\n else if (filter.FieldName.Type == 'Numeric') {\r\n filter.FieldValue = filter.FieldValue.toString();\r\n }\r\n filter.FieldName = filter.FieldName.Name;\r\n filter.Condition = filter.Condition;\r\n filter.JoiningOperator = filter.JoiningOperator;\r\n };\r\n\r\n $scope.deleteDataFilter = function (filter) {\r\n const index = vm.dataFilters.indexOf(filter);\r\n if (index !== -1) {\r\n vm.dataFilters.splice(index, 1);\r\n }\r\n };\r\n\r\n vm.removeAddmoreEditList = function () {\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n }\r\n\r\n vm.openDilogforDelete = function (index) {\r\n $scope.deleteIndex = index;\r\n vm.ShareModal = $uibModal.open({\r\n templateUrl: 'openDilogforDelete.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.closeopenDilogforDeleteModal = function () {\r\n vm.ShareModal.close();\r\n }\r\n\r\n vm.ChangeOption = function (type) {\r\n vm.selectedOption = type;\r\n vm.SelectedType = \"\";\r\n vm.SelectedChartName = \"\";\r\n vm.chartDisplayName = \"\";\r\n vm.chartDescription = \"\";\r\n vm.chartYAxisName = \"\";\r\n vm.dataFilters = [];\r\n }\r\n\r\n vm.GetFieldValuesByFieldNames = function (EntityType, EntityName) {\r\n reportDetailService.GetFieldValuesByFieldNames(EntityType, EntityName, loggedinUser, token).then(function (resp) {\r\n vm.AllFieldValuesList = resp.data.Values;\r\n })\r\n }\r\n\r\n vm.ChangeMetrics = function (chart) {\r\n var metricsNames = [];\r\n if (vm.selectedOption == 'linecharts' && Array.isArray(chart)) {\r\n for (var i = 0; i < chart.length; i++) {\r\n metricsNames.push(chart[i].MetricsName);\r\n }\r\n vm.chartName = metricsNames;\r\n vm.chartDisplayName = \"\";\r\n vm.chartDescription = \"\";\r\n }\r\n else if (vm.selectedOption == 'metrices') {\r\n vm.chartName = chart.MetricsName;\r\n vm.chartName = [vm.chartName];\r\n vm.chartDisplayName = chart.DisplayName;\r\n vm.chartDescription = chart.Description;\r\n }\r\n else {\r\n vm.chartName = chart.DimensionName;\r\n vm.chartName = [vm.chartName];\r\n vm.chartDisplayName = chart.DisplayName;\r\n vm.chartDescription = chart.Description;\r\n }\r\n vm.dataFilters = [];\r\n }\r\n\r\n vm.GetFieldTypesByEntityName = function (EntityType) {\r\n reportDetailService.GetFieldTypesByEntityName(EntityType, loggedinUser, token).then(function (resp) {\r\n vm.AllFieldList = resp.data;\r\n\r\n })\r\n }\r\n\r\n vm.GetMetricsByEntityType = function (EntityType, SelectedChartName) {\r\n reportDetailService.GetMetricsByEntityType(EntityType, loggedinUser, token).then(function (resp) {\r\n vm.AllMetricsList = resp.data;\r\n if (SelectedChartName) {\r\n vm.SelectedChartName = [];\r\n angular.forEach(vm.AllMetricsList, function (d) {\r\n if (Array.isArray(SelectedChartName)) {\r\n if (SelectedChartName.indexOf(d.MetricsName) !== -1) {\r\n vm.SelectedChartName.push(d);\r\n }\r\n } else {\r\n if (d.MetricsName === SelectedChartName) {\r\n vm.SelectedChartName = d;\r\n }\r\n }\r\n });\r\n vm.GetFieldTypesByEntityName(EntityType);\r\n if (vm.AllFieldList) {\r\n vm.widgetupdate = $uibModal.open({\r\n templateUrl: 'updatewidget.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.GetDimensionByEntityName = function (EntityType, SelectedChartName) {\r\n reportDetailService.GetDimensionByEntityName(EntityType, loggedinUser, token).then(function (resp) {\r\n vm.AllDimensionsList = resp.data;\r\n if (SelectedChartName) {\r\n angular.forEach(vm.AllDimensionsList, function (d) {\r\n if (d.DimensionName == SelectedChartName) {\r\n vm.SelectedChartName = d;\r\n vm.chartDisplayName = d.DisplayName;\r\n vm.chartDescription = d.Description;\r\n return;\r\n }\r\n });\r\n vm.GetFieldTypesByEntityName(EntityType);\r\n if (vm.AllFieldList) {\r\n vm.widgetupdate = $uibModal.open({\r\n templateUrl: 'updatewidget.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllEntityTypes = function () {\r\n reportDetailService.GetAllEntityTypes(loggedinUser, token).then(function (resp) {\r\n vm.AllEntityList = resp.data;\r\n })\r\n }\r\n\r\n vm.GetAllEntityTypes();\r\n vm.dataFilters = [];\r\n\r\n vm.AddChartsToReport = function () {\r\n vm.feedbackForm.submitted = true;\r\n if (vm.feedbackForm.$valid) {\r\n data = {\r\n \"ReportId\": $stateParams.report_id,\r\n \"ChatType\": vm.selectedOption,\r\n \"ChartName\": vm.chartName,\r\n \"DisplayName\": vm.chartDisplayName,\r\n \"Description\": vm.chartDescription,\r\n \"DeleteChartId\": \"\",\r\n \"DataFilters\": vm.dataFilters\r\n }\r\n reportDetailService.AddChartsToReport(data, loggedinUser, token, vm.reportLayoutCallback);\r\n }\r\n }\r\n\r\n vm.AddChartsToDashboard = function () {\r\n vm.feedbackForm.submitted = true;\r\n if (vm.feedbackForm.$valid) {\r\n data = {\r\n \"DashboardId\": $stateParams.report_id,\r\n \"ChatType\": vm.selectedOption,\r\n \"ChartName\": vm.chartName,\r\n \"DisplayName\": vm.chartDisplayName,\r\n \"Description\": vm.chartDescription,\r\n \"DeleteChartId\": \"\",\r\n \"DataFilters\": vm.dataFilters,\r\n \"YAxis\": vm.chartYAxisName\r\n }\r\n reportDetailService.AddChartsToDashboard(data, loggedinUser, token, vm.dashboardCallback);\r\n }\r\n }\r\n\r\n vm.UpdateChartsFromReport = function () {\r\n data = {\r\n \"ReportId\": $stateParams.report_id,\r\n \"ChatType\": vm.selectedOption,\r\n \"ChartName\": vm.chartName,\r\n \"DisplayName\": vm.chartDisplayName,\r\n \"Description\": vm.chartDescription,\r\n \"DeleteChartId\": vm.deleteChartId,\r\n \"DataFilters\": vm.dataFilters\r\n }\r\n reportDetailService.UpdateChartsFromReport(data, loggedinUser, token, vm.reportLayoutCallback);\r\n vm.dataFilters = [];\r\n vm.chartDisplayName = \"\";\r\n vm.chartDisplayName = \"\";\r\n vm.closeupdatewidget();\r\n }\r\n\r\n vm.UpdateChartsFromDashboard = function () {\r\n data = {\r\n \"DashboardId\": $stateParams.report_id,\r\n \"ChatType\": vm.selectedOption,\r\n \"ChartName\": vm.chartName,\r\n \"DisplayName\": vm.chartDisplayName,\r\n \"Description\": vm.chartDescription,\r\n \"DeleteChartId\": vm.deleteChartId,\r\n \"DataFilters\": vm.dataFilters,\r\n \"YAxis\": vm.chartYAxisName\r\n }\r\n reportDetailService.UpdateChartsFromDashboard(data, loggedinUser, token, vm.dashboardCallback);\r\n vm.dataFilters = [];\r\n vm.chartDisplayName = \"\";\r\n vm.chartDisplayName = \"\";\r\n vm.chartYAxisName = \"\";\r\n vm.closeupdatewidget();\r\n }\r\n\r\n vm.DeleteChartsFromReport = function (item) {\r\n if (item.chartId) {\r\n vm.deleteChartId = item.chartId;\r\n } else {\r\n vm.deleteChartId = item.ChartId;\r\n }\r\n const deleteService = vm.DocumentType === 'dashboard' ? reportDetailService.DeleteChartsFromDashboard : reportDetailService.DeleteChartsFromReport;\r\n deleteService($stateParams.report_id, vm.deleteChartId, loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.status == 201) {\r\n $timeout(function () {\r\n if (vm.DocumentType == 'dashboard') {\r\n vm.GetDashboardByDashboardId($stateParams.report_id);\r\n intialLoad = false;\r\n } else if (vm.DocumentType == 'report') {\r\n vm.getCustomerReport($stateParams.report_id);\r\n }\r\n }, 2000);\r\n vm.showSuccess(\"Success\", resp.data);\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n\r\n vm.Allapplyfilter = function () {\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n prepareFilters('BusinessUnit', vm.BusinessUnit);\r\n prepareFilters('AccountName', vm.Account);\r\n prepareFilters('Skill', vm.Skill);\r\n prepareFilters('State', vm.State);\r\n prepareFilters('City', vm.District);\r\n vm.tableCharts = {};\r\n vm.GetDashboardByDashboardId($stateParams.report_id);\r\n }\r\n\r\n var prepareFilters = function (filterkey, filervalue) {\r\n if (filervalue) {\r\n if (vm.filterKeys) {\r\n vm.filterKeys = vm.filterKeys + ',' + filterkey;\r\n vm.filterValues = vm.filterValues + ',' + filervalue;\r\n }\r\n else {\r\n vm.filterKeys = filterkey;\r\n vm.filterValues = filervalue;\r\n\r\n }\r\n }\r\n }\r\n\r\n vm.ResetFilter = function () {\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n vm.BusinessUnit = '';\r\n vm.Account = '';\r\n vm.Skill = '';\r\n vm.State = '';\r\n vm.District = '';\r\n vm.tableCharts = {};\r\n vm.GetDashboardByDashboardId($stateParams.report_id);\r\n }\r\n\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').service('ReportCreationService', function () {\r\n\r\n \r\n});\r\n\nangular.module('inspinia').controller('ReportCreationController', function ($scope, $log, $localStorage,ReportCreationService) {\r\nvar vm = this;\r\n \r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n if (!loggedInUserId) {\r\n \r\n $state.go('Login', {\r\n reload: true\r\n });\r\n \r\n } else {\r\n\r\n var lastIndex = 3;\r\n $scope.list = [];\r\n \r\n\r\n var NonAggregated = function() {\r\n $scope.list.push({\r\n 'id': '_1',\r\n 'text': 'One'\r\n },{\r\n 'id': '_2',\r\n 'text': 'Two'\r\n },{\r\n 'id': '_3',\r\n 'text': 'Three'\r\n },{\r\n 'id': '_4',\r\n 'text': 'Four'\r\n });\r\n };\r\n\r\n \r\n\r\n $scope.settings = {\r\n bootstrap2: false,\r\n filterClear: '',\r\n filterPlaceHolder: 'Filter!',\r\n moveSelectedLabel: 'Move selected only',\r\n moveAllLabel: 'Move all!',\r\n removeSelectedLabel: 'Remove selected only',\r\n removeAllLabel: 'Remove all!',\r\n moveOnSelect: false,\r\n preserveSelection: 'moved',\r\n selectedListLabel: '',\r\n nonSelectedListLabel: '',\r\n postfix: '_helperz',\r\n selectMinHeight: 130,\r\n filter: true,\r\n filterNonSelected: '',\r\n filterSelected: '',\r\n infoAll: '',\r\n infoFiltered: 'Filtered {0} from {1}!',\r\n infoEmpty: 'Empty list!',\r\n filterValues: true\r\n };\r\n\r\n NonAggregated();\r\n\r\n \r\n $scope.lists = [];\r\n var Aggregated = function() {\r\n $scope.lists.push({\r\n 'ids': '_1',\r\n 'texts': 'Five'\r\n },{\r\n 'ids': '_2',\r\n 'texts': 'Six'\r\n },{\r\n 'ids': '_3',\r\n 'texts': 'Seven'\r\n },{\r\n 'ids': '_4',\r\n 'texts': 'Eight'\r\n });\r\n };\r\n\r\n \r\n\r\n $scope.setting = {\r\n bootstrap2: false,\r\n filterClear: '',\r\n filterPlaceHolder: 'Filter!',\r\n moveSelectedLabel: 'Move selected only',\r\n moveAllLabel: 'Move all!',\r\n removeSelectedLabel: 'Remove selected only',\r\n removeAllLabel: 'Remove all!',\r\n moveOnSelect: false,\r\n preserveSelection: 'moved',\r\n selectedListLabel: '',\r\n nonSelectedListLabel: '',\r\n postfix: '_helperz',\r\n selectMinHeight: 130,\r\n filter: true,\r\n filterNonSelected: '',\r\n filterSelected: '',\r\n infoAll: '',\r\n infoFiltered: 'Filtered {0} from {1}!',\r\n infoEmpty: 'Empty list!',\r\n filterValues: true\r\n };\r\n\r\n Aggregated();\r\n\r\n\r\n\r\n\r\n$scope.listed = [];\r\nvar DrillDown = function() {\r\n $scope.listed.push({\r\n 'id_1': '_1',\r\n 'text_1': 'Nine'\r\n },{\r\n 'id_1': '_2',\r\n 'text_1': 'Ten'\r\n },{\r\n 'id_1': '_3',\r\n 'text_1': 'Eleven'\r\n },{\r\n 'id_1': '_4',\r\n 'text_1': 'Twelve'\r\n });\r\n};\r\n\r\n\r\n\r\n$scope.set = {\r\n bootstrap2: false,\r\n filterClear: '',\r\n filterPlaceHolder: 'Filter!',\r\n moveSelectedLabel: 'Move selected only',\r\n moveAllLabel: 'Move all!',\r\n removeSelectedLabel: 'Remove selected only',\r\n removeAllLabel: 'Remove all!',\r\n moveOnSelect: false,\r\n preserveSelection: 'moved',\r\n selectedListLabel: '',\r\n nonSelectedListLabel: '',\r\n postfix: '_helperz',\r\n selectMinHeight: 130,\r\n filter: true,\r\n filterNonSelected: '',\r\n filterSelected: '',\r\n infoAll: '',\r\n infoFiltered: 'Filtered {0} from {1}!',\r\n infoEmpty: 'Empty list!',\r\n filterValues: true\r\n};\r\n\r\nDrillDown();\r\n\r\n}\r\n\r\n\r\n\r\n})\nangular.module('inspinia').service('ReportService', function (ApiURL, $log, $http, DashboardURL, $window, CronUrl, PublicApiURL) {\r\n\r\n vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n vm.getDummyData = function (callback) {\r\n callback(JSON.parse('{\"dashboardName\": \"Account Dashboard\",\"dashboardDescription\": \"This is a Account Dashboard for Admin Role\",\"Role\": \"Administrator\",\"chartModel\": [{\"YAxisRules\": [{\"YAxisRule\": \"COUNT\",}], \"ChartName\": \"JOBS\",\"ChartType\": \"METRICS\",\"ChartId\": \"CH0000001\"\"dashboardId\" : \"d00000001\"\"ChartTitle\": \"Jobs\",\"ChartSubtitle\": \"Job Count\",\"ChartColor\": \"BLACK\",\"XRules\": {\"XAxis\": \"Status(Assigned,Completed,Approved)\"}}]}'));\r\n }\r\n\r\n vm.getDummyTableData = function (callback) {\r\n //$log.log(\"in getDummyTableData\");\r\n callback(JSON.parse('{\"Table\" :{\"ColumnHeaderName\" : \"Location\",\"ColumnHeaderValuesList\" : [\"All Location\", \"Haryana\", \"Delhi\"],\"TableColumns\" : [{\"ColumnName\":\"RFLOS\", \"ValueList\": [\"200/400\", \"20/40\", \"-\"]},{\"ColumnName\":\"IWAN\", \"ValueList\": [\"400/800\", \"-\", \"40/80\"]}]}}'));\r\n }\r\n\r\n vm.getCustomerReport = function (loggedinUser, reportname, token, callback) {\r\n $http.get(DashboardURL+'/api/Report/'+loggedinUser+'/'+reportname+'/GetByReportName', { headers: {'Token': token,'UserId':loggedinUser}}).then(function(res){\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n vm.getChart = function (loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData,total,callback) {\r\n //$log.log(\"in service\", DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP='+rollUp+\"&FilterKeys=\"+filterKeys+\"&FilterValues=\"+filterValues);\r\n $http.get(DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP='+encodeURI(rollUp)+\"&FilterKeys=\"+filterKeys+\"&FilterValues=\"+filterValues+\"&isData=\"+isData+\"&total=\"+total, {headers:{'Token': token,'UserId':loggedinUser}}).then(function (res) {\r\n if (callback) {\r\n res.data['chartName'] = chartName;\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n this.GetSearchServiceCenter = function (loggedinUser,token,searchtext) {\r\n var url = ApiURL + '/api/User/SearchServiceCenter?searchText=' + searchtext;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n vm.getUsers = function(loggedinUser, token, callback){\r\n $http.get(ApiURL + '/api/'+loggedinUser+'/User', { headers: {'Token': token,'UserId':loggedinUser}}).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.mailReport = function(token, toList, ccList, bccList, subject, message, reportName, userID, filterKey, filterValue, reportInMailBody, rollUps, callback){\r\n var data = {\r\n \"TOList\": toList,\r\n \"CCList\": ccList,\r\n \"BCCList\": bccList,\r\n \"Body\": message,\r\n \"Subject\": subject,\r\n \"ReportName\": reportName,\r\n \"ReqUserId\": userID,\r\n \"FilterKeys\": null,\r\n \"FilterValues\": null,\r\n \"ReportInMailBody\": reportInMailBody,\r\n \"RollUps\":rollUps\r\n };\r\n\r\n //$log.log(\"data\", data);\r\n $http.post(DashboardURL + '/api/Report/mailexcelreportbyname', data, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId':userID } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.scheduleReport = function(loggedinUser, data, token, callback){\r\n $http.post(ApiURL + '/api/ReportSchedule/cron?userId='+loggedinUser, data, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId':loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n //$log.log(\"scheduleReport in report service\", res);\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.RescheduleReport = function(loggedinUser, data, token, callback){\r\n $http.put(ApiURL + '/api/ReportSchedule/cron?userId='+loggedinUser, data, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId':loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n //$log.log(\"rescheduleReport in report service\", res);\r\n callback(res.data);\r\n }\r\n })\r\n } \r\n\r\n vm.downloadReport = function(reportName, loggedinUser, filterKey, filterName,rollUps,isData) {\r\n if(reportName == 'DSR Report' || reportName == 'Gangnam Ticket ReportG'){\r\n $window.location.href= 'https://login.mymobiforce.com/coreapi/reports/DSR%20Report.xlsb';\r\n }else{\r\n $window.location.href=PublicApiURL+\"/api/Report/DownloadExcelReportByReportName?reportName=\"+reportName+\"&reqUserId=\"+loggedinUser+\"&FilterKeys=\"+filterKey+\"&FilterValues=\"+filterName+\"&RollUps=\"+rollUps+\"&isData=\"+isData;\r\n console.log('$window.location.href',$window.location.href);\r\n }\r\n \r\n }\r\n\r\n vm.checkReportName = function(reportName, callback){\r\n $http.get(CronUrl + '/isCronNameExists?name='+reportName, { headers: { 'Content-Type': 'application/json' } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('ReportController', function ($uibModal, $compile,InventoryCartService,InventoryItemListService, MainService, $timeout,$location,$window, $stateParams, DTOptionsBuilder, DTColumnBuilder, $scope, $state, $log, ReportService, $localStorage, DashboardURL, $q,$http,$rootScope) {\r\n var vm = this;\r\n\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var token = $localStorage.token;\r\n\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n ReportService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n ReportService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n vm.report_data = {};\r\n var accountConfig = $localStorage.accountConfig;\r\n vm.accountId = $localStorage.accountConfig.AccountId;\r\n if (accountConfig && accountConfig.EnableRegion) {\r\n vm.EnableRegion = accountConfig.EnableRegion\r\n }else{\r\n vm.EnableRegion = false;\r\n }\r\n vm.metricsCharts = {};\r\n vm.tableArray = [];\r\n vm.profileImg='';\r\n vm.users = [];\r\n vm.filename='';\r\n vm.deepLink = {};\r\n vm.valueClass = {};\r\n vm.report_title=\"\";\r\n vm.attachReportInMailBody = true;\r\n vm.attachReportInExcel = true;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.filter_key = $stateParams.filter_key?$stateParams.filter_key:\"\";\r\n vm.isData = $stateParams.isData?$stateParams.isData:false;\r\n vm.key = $stateParams.key?$stateParams.key:\"\";\r\n vm.filter_name = $stateParams.filter_name?$stateParams.filter_name:\"\";\r\n vm.additionalInfo = $stateParams.end_date?$stateParams.end_date:\"\";\r\n vm.defaultMailBody = \"Hello,\\n\\nYou are requested to view project report on below link \\n\\n\" + $window.location.href + \" \\n\\nThanks\\nMobiforce Team\";\r\n var creationDatefunc = $scope.$parent.$parent.main.AccountStartDate;\r\n vm.accountCreationDate = creationDatefunc();\r\n vm.tableCharts = {};\r\n var total = 'Total';\r\n $log.log('$stateParams.start_date',$stateParams.start_date);\r\n\r\n // var startDate = $stateParams.start_date?$stateParams.start_date:moment(0).format(\"YYYY-MM-DD\");\r\n // var endDate = $stateParams.end_date?$stateParams.end_date:moment().format(\"YYYY-MM-DD\");\r\n if ($stateParams.start_date) {\r\n vm.rollup = $stateParams.start_date;\r\n //\"Range(\"+startDate+\"|\"+endDate+\")\";\r\n var dateArray1 = vm.rollup.split('(');\r\n var dateArray2 = dateArray1[1].split(')');\r\n var dateArray3 = dateArray2[0].split('|');\r\n var startDate = moment(dateArray3[0]).format(\"YYYY-MM-DD\");\r\n var endDate = moment(dateArray3[1]).format(\"YYYY-MM-DD\");\r\n\r\n $scope.dates = { startDate: moment(dateArray3[0]), endDate: moment(dateArray3[1])};\r\n \r\n \r\n }else if(vm.isData){\r\n if ($stateParams.start_date =='' || $stateParams.start_date == null) {\r\n $scope.dates = { startDate:vm.accountCreationDate, endDate: moment() };\r\n var startDate =vm.accountCreationDate;\r\n //var startDate = moment(0).format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n }\r\n \r\n \r\n }else {\r\n $scope.dates = { startDate:moment().subtract(0, 'days'), endDate: moment() };\r\n var startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n //var startDate = moment(0).format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n \r\n }\r\n\r\n vm.Allapplyfilter = function () {\r\n vm.filter_key = '';\r\n vm.filter_name = '';\r\n prepareFilters('ProductBrand', vm.brandName);\r\n\r\n prepareFilters('ProductGroup', vm.productGroup);\r\n prepareFilters('ProductCategory', vm.partName);\r\n\r\n prepareFilters('strJobServiceType', vm.ticketType);\r\n prepareFilters('TicketStatus', vm.callStatus);\r\n prepareFilters('VendorUserId', vm.serviceCenter);\r\n\r\n vm.getCustomerReport(vm.getReportName($stateParams.report_name));\r\n vm.tableCharts = {};\r\n }\r\n\r\n var prepareFilters = function (filterkey, filtername) {\r\n if (filtername) {\r\n if (vm.filter_key) {\r\n vm.filter_key = vm.filter_key + ',' + filterkey;\r\n vm.filter_name = vm.filter_name + ',' + filtername;\r\n }\r\n else {\r\n vm.filter_key = filterkey;\r\n vm.filter_name = filtername;\r\n\r\n }\r\n }\r\n }\r\n\r\n\r\n vm.clearFilter = function () {\r\n vm.brandName = '';\r\n vm.partName = '';\r\n vm.productGroup = '';\r\n vm.callStatus = '';\r\n vm.ticketType = '';\r\n vm.serviceCenter = '';\r\n vm.Allapplyfilter();\r\n }\r\n\r\n vm.searchtext = '';\r\n\r\n vm.GetSearchServiceCenter = function () {\r\n\t\t\tReportService.GetSearchServiceCenter(loggedinUser,token,vm.searchtext).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.serviceCenterList = resp.data;\r\n\t\t\t\t}\r\n else{\r\n vm.serviceCenterList = [];\r\n }\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.GetSearchServiceCenter();\r\n \r\n vm.shareModel = {\r\n selectedUsers: [],\r\n toList: [],\r\n ccList: [],\r\n bccList: [],\r\n content: vm.defaultMailBody\r\n };\r\n vm.monthNames3 = [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\",\r\n \"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"\r\n ];\r\n\r\n vm.scheduleModel = {\r\n frequency: \"once\",\r\n once: \"once\",\r\n daily: \"daily\",\r\n weekly: \"weekly\",\r\n every_15_days: \"every_15_days\",\r\n monthly: \"monthly\",\r\n cronExpression: \"expression\",\r\n input_for_month: {\r\n option: \"start_of_day\",\r\n start_of_day: \"start_of_day\",\r\n end_of_day: \"end_of_day\",\r\n specific_date: \"specific_date\",\r\n date: 1\r\n },\r\n specific_date_range: [],\r\n start_date:moment(),\r\n end_date:moment().add(1, 'M'),\r\n attachReportInMailBody:true,\r\n attachReportInExcel: true,\r\n scheduleTime:\"\",\r\n scheduleName:\"\",\r\n reportNameAlreadyExists:false,\r\n reportNameMendtryErr:false,\r\n toListMendtryErr:false,\r\n timeMendtryErr:false,\r\n sampleDateMendtryErr:false,\r\n pull_data: {\r\n range: \"last_day\",\r\n day: \"last_day\",\r\n week: \"last_week\",\r\n month: \"last_month\",\r\n quarter: \"last_quarter\",\r\n current_month: \"current_month\",\r\n specific: \"specific\",\r\n specific_day_value: 1,\r\n calculate_range: function () {\r\n //$log.log(vm.scheduleModel.pull_data.range);\r\n var today = new Date();\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n var date = today;\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 1, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 3, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n return 01 + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n //$log.log(vm.scheduleModel.pull_data.specific_day_value)\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - vm.scheduleModel.pull_data.specific_day_value);\r\n return date.getDate() + \"-\" + (date.getMonth()+1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth()+1) + \"-\" + today.getFullYear();\r\n }\r\n }\r\n }\r\n };\r\n\r\n for (var i = 1; i < 32; i++) {\r\n vm.scheduleModel.specific_date_range.push({ value: i, label: i });\r\n }\r\n\r\n vm.getChart = function (chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData, total) {\r\n //$log.log(\"in controller\", loggedinUser, chartType, metrics, dimensions, rollUp, filterKeys, filterValues); \r\n vm.rachit = [];\r\n ReportService.getChart(loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData, total, vm.createCallback(vm.rachit, [function (data) {\r\n if (chartType == 'Metrics') {\r\n vm.metricsCharts[chartId].value = data;\r\n } else if (chartType == 'Table') { \r\n\r\n //vm.tableCharts[chartId] = {};\r\n vm.tableCharts[chartId].value = data;\r\n //vm.tableCharts[chartId].ChartId = chartId;\r\n //vm.tableCharts[chartId].table_name = data.chartName; \r\n // console.log(data,chartType);\r\n vm.buildColumnBuilder(data, chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData);\r\n \r\n }\r\n }]));\r\n }\r\n\r\n vm.plotHistory = function(data){\r\n vm.ticketHistory = [];\r\n if (data!=null && data != '') {\r\n vm.ticketHistory = JSON.parse(data);\r\n }\r\n \r\n // $log.log('plotHistory',vm.ticketHistory);\r\n }\r\n\r\n \r\n\r\n // $scope.dates = { startDate: moment().subtract(1, 'day'), endDate: moment().subtract(1, 'day') };\r\n // $scope.dates = { startDate: moment(0), endDate: moment() };\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n // 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n 'This month': [moment().startOf('month'), moment()]\r\n };\r\n\r\n $scope.dateRangeChange = function(ev, picker){\r\n // console.log(ev, picker);\r\n var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n var endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n \r\n //$location.search(start_date);\r\n // $location.path($stateParams.start_date+\"/\"+$stateParams.end_date).replace();\r\n // $log.log('$stateParams.start_date',$stateParams.start_date);\r\n // $log.log('$stateParams.end_date',$stateParams.end_date);\r\n // vm.sDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n // vm.eDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n vm.getCustomerReport(vm.getReportName($stateParams.report_name));\r\n vm.tableCharts = {};\r\n\r\n };\r\n \r\n vm.reportLayoutCallback = vm.createCallback(null, [function (data) {\r\n vm.report_data = data;\r\n var matricsCount = 0;\r\n vm.tableCount = 0;\r\n vm.tableNames = [];\r\n vm.tableOrder = [];\r\n vm.tableArray = [];\r\n var matricsIds = [];\r\n //$log.log(data);\r\n angular.forEach(data.chartModel, function (d) {\r\n if (d.ClickableColumns != null && d.ClickableColumns.length > 0) {\r\n angular.forEach(d.ClickableColumns, function (cl) {\r\n if (cl.Link == \"Project Status Report\") {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n //$log.log(\"index.Report({report_name:'ProjectStatus', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"'})\");\r\n return \"index.Report({report_name:'ProjectStatus', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"', start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n } if (cl.Link == \"Customer Status Report\") {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n //$log.log(\"index.Report({report_name:'CustomerStatusReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"'})\");\r\n return \"index.Report({report_name:'CustomerStatusReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"', start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n }if (cl.Link == 'Customer Location HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName){\r\n return \"index.Report({report_name:'CustomerLocationHCLReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"' , start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n }\r\n if (cl.Link == 'City Ticket HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName,i){\r\n // var fromDate = $stateParams.start_date?$stateParams.start_date:\"\";\r\n // var toDate = $stateParams.end_date?$stateParams.end_date:\"\";;\r\n return \"index.Report({report_name:'CityTicketHCLReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"' , start_date:'\"+vm.rollup+\"', end_date:'\"+i+\"'})\";\r\n }\r\n }\r\n if (cl.Link == 'Team Hcl Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName){\r\n // var fromDate = $stateParams.start_date?$stateParams.start_date:\"\";\r\n // var toDate = $stateParams.end_date?$stateParams.end_date:\"\";;\r\n return \"index.Report({report_name:'TeamHclDetailedReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"' , start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n }\r\n if (cl.Link == 'Team Ticket HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName,i){\r\n //$log.log('Name',i);\r\n // var fromDate = $stateParams.start_date?$stateParams.start_date:\"\";\r\n // var toDate = $stateParams.end_date?$stateParams.end_date:\"\";;\r\n return \"index.Report({report_name:'TeamTicketHCLReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"' , start_date:'\"+vm.rollup+\"' , end_date:'\"+i+\"'})\";\r\n }\r\n }\r\n if (cl.Link == \"JobView\") {\r\n\r\n if(vm.VerticalName == \"IMS\"){\r\n vm.deepLink[cl.ColumnName] = function (param) {\r\n return \"index.JobView({ticketId:'\" + param + \"',type:'isTicketView'})\";\r\n }\r\n }\r\n else {\r\n vm.deepLink[cl.ColumnName] = function (param) {\r\n return \"index.JobDetailView({ticketId:'\" + param + \"',type:'isTicketView'})\";\r\n }\r\n \r\n }\r\n \r\n }if (cl.Link == 'Team Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName){\r\n return \"index.Report({report_name:'TeamDetailReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"', start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n }if (cl.Link == 'Spectro Lab Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName){\r\n return \"index.Report({report_name:'SpectroLabDetailedReport', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"', start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n }if (cl.Link == 'Finance Ticket Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName){\r\n return \"index.Report({report_name:'Finance Ticket Report', filter_key:'\"+cl.KeyName+\"', filter_name:'\"+filterName+\"', start_date:'\"+vm.rollup+\"'})\";\r\n }\r\n }\r\n });\r\n }\r\n if (d.UIClasess != null && d.UIClasess.length > 0) {\r\n vm.valueClass = {};\r\n angular.forEach(d.UIClasess, function (cl) {\r\n vm.valueClass[cl.ColumnName] = cl.ClassName;\r\n });\r\n }\r\n //$log.log(vm.valueClass);\r\n // $log.log(\"dates\", $scope.dates);\r\n if (d.ChartType == 'Metrics') {\r\n \r\n // $timeout(function(){\r\n // vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name);\r\n // },1000)\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name,\"\",false);\r\n matricsCount++;\r\n matricsIds.push(d.ChartId);\r\n vm.metricsCharts[d.ChartId] = d;\r\n vm.metricsCharts[d.ChartId].value = \"Loading...\";\r\n } \r\n else if(d.ChartType == 'Table'){\r\n\r\n if (vm.isData) {\r\n d.Metrics = vm.key; \r\n }\r\n // var isData = false;\r\n // if (vm.report_data.ReportName == 'Link Ticket Report') {\r\n // d.Metrics = vm.key;\r\n // isData = true;\r\n // }\r\n $timeout(function(){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name, d.ChartTitle,vm.isData);\r\n },100)\r\n // vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name);\r\n vm.tableNames[vm.tableCount]=d.ChartTitle;\r\n vm.tableOrder[vm.tableCount]=d.ChartId;\r\n vm.tableCount = vm.tableCount + 1;\r\n\r\n vm.tableCharts[d.ChartId] = {};\r\n //vm.tableCharts[d.ChartId].value = data;\r\n vm.tableCharts[d.ChartId].ChartId = d.ChartId;\r\n vm.tableCharts[d.ChartId].table_name = d.ChartTitle;\r\n\r\n // console.log(vm.tableNames);\r\n // console.log(vm.tableOrder);\r\n // vm.tableArray[vm.tableCount].table_name = d.ChartTitle;\r\n // $log.log('vm.tableArray[vm.tableCount].table_name',vm.tableArray[vm.tableCount].table_name); \r\n }\r\n \r\n \r\n });\r\n if (matricsCount >= 5) {\r\n if (matricsCount % 4 == 0) {\r\n matricsCount = 4;\r\n } else {\r\n matricsCount = 3;\r\n }\r\n }\r\n matricsCount = 12 / matricsCount;\r\n matricsCount = Math.round(matricsCount);\r\n angular.forEach(matricsIds, function (d) {\r\n vm.metricsCharts[d].width = \"col-lg-\" + matricsCount;\r\n });\r\n }])\r\n\r\n vm.getCustomerReport = function (reportname) {\r\n ReportService.getCustomerReport(loggedinUser, reportname, token, vm.reportLayoutCallback);\r\n \r\n }\r\n\r\n vm.getReportName = function(reportNameParam){\r\n if (reportNameParam == 'ProjectSummary') {\r\n return 'Project Report';\r\n } else if (reportNameParam == 'ProjectStatus') {\r\n return 'Project Status Report';\r\n } else if (reportNameParam == 'CustomerSummary') {\r\n return 'Customer Report';\r\n } else if (reportNameParam == 'CustomerStatusReport') {\r\n return 'Customer Status Report';\r\n } else if (reportNameParam == 'Financial') {\r\n return 'Financial Report';\r\n } else if (reportNameParam == 'DailyProgress') {\r\n return 'Daily Progress Report';\r\n } else if (reportNameParam == 'DailyStatusProgress') {\r\n return '';\r\n } else if (reportNameParam == 'Scheduled') {\r\n return '';\r\n }else if (reportNameParam == 'TeamReport') {\r\n return 'Team Report';\r\n }else if (reportNameParam == 'TeamDetailReport') {\r\n return 'Team Detailed Report';\r\n } else if(reportNameParam == 'ReferralReport'){\r\n return 'Referral Report';\r\n }else if(reportNameParam == 'LabReport'){\r\n return 'Lab Report';\r\n }else if(reportNameParam == 'SpectroLabDetailedReport'){\r\n return 'Spectro Lab Detailed Report';\r\n }\r\n else if(reportNameParam == 'CustomerHCLReport'){\r\n return 'Customer HCL Report';\r\n }\r\n else if(reportNameParam == 'CustomerLocationHCLReport'){\r\n return 'Customer Location HCL Report';\r\n }\r\n else if(reportNameParam == 'CityTicketHCLReport'){\r\n return 'City Ticket HCL Report';\r\n }\r\n else if(reportNameParam == 'TeamHclReport'){\r\n return 'Team Hcl Report';\r\n }\r\n else if(reportNameParam == 'TeamHclDetailedReport'){\r\n return 'Team Hcl Detailed Report';\r\n }else if(reportNameParam == 'TeamTicketHCLReport'){\r\n return 'Team Ticket HCL Report';\r\n }else if(reportNameParam == 'LinkTicketReport'){\r\n return 'Link Ticket Report';\r\n }else if(reportNameParam == 'TicketSummary'){\r\n return 'Ticket Summary';\r\n }else if(reportNameParam == 'AgingofTickets'){\r\n return 'Aging of Tickets';\r\n }else if(reportNameParam == 'Regional Summary'){\r\n return 'Regional Summary';\r\n }else if(reportNameParam == 'Finance Report'){\r\n return 'Finance Report';\r\n }else if(reportNameParam == 'Finance Ticket Report'){\r\n return 'Finance Ticket Report';\r\n }\r\n else \r\n {\r\n return reportNameParam;\r\n }\r\n }\r\n\r\n vm.getReportTitle = function(reportNameParam){\r\n if (reportNameParam == 'ProjectSummary') {\r\n return 'Project Summary';\r\n } else if (reportNameParam == 'ProjectStatus') {\r\n return 'Project Status';\r\n } else if (reportNameParam == 'CustomerSummary') {\r\n return 'Customer Summary';\r\n } else if (reportNameParam == 'CustomerStatusReport') {\r\n return 'Customer Status Report';\r\n } else if (reportNameParam == 'Financial') {\r\n return 'Financial Summary';\r\n } else if (reportNameParam == 'DailyProgress') {\r\n return 'Project Daily Progress';\r\n } else if (reportNameParam == 'DailyStatusProgress') {\r\n return 'Daily Status Progress';\r\n } else if (reportNameParam == 'Scheduled') {\r\n return 'Scheduled Report';\r\n }else if (reportNameParam == 'TeamReport') {\r\n return 'Team Report';\r\n }else if (reportNameParam == 'TeamDetailReport') {\r\n return 'Team Detailed Report';\r\n } else if(reportNameParam == 'ReferralReport'){\r\n return 'Referral Report';\r\n }else if(reportNameParam == 'LabReport'){\r\n return 'Lab Report';\r\n }else if(reportNameParam == 'SpectroLabDetailedReport'){\r\n return 'Spectro Lab Detailed Report';\r\n }else if(reportNameParam == 'CustomerHCLReport'){\r\n return 'Customer HCL Report';\r\n }\r\n else if(reportNameParam == 'CustomerLocationHCLReport'){\r\n return 'Customer Location HCL Report';\r\n }else if(reportNameParam == 'CityTicketHCLReport'){\r\n return 'City Ticket HCL Report';\r\n }\r\n else if(reportNameParam == 'TeamHclReport'){\r\n return 'Team Hcl Report';\r\n }\r\n else if(reportNameParam == 'TeamHclDetailedReport'){\r\n return 'Team Hcl Detailed Report';\r\n }\r\n else if(reportNameParam == 'TeamTicketHCLReport'){\r\n return 'Team Ticket HCL Report';\r\n }else if(reportNameParam == 'LinkTicketReport'){\r\n return 'Link Ticket Report';\r\n }else if(reportNameParam == 'TicketSummary'){\r\n return 'Ticket Summary';\r\n }else if(reportNameParam == 'Regional Summary'){\r\n return 'Regional Summary';\r\n }else if(reportNameParam == 'Finance Report'){\r\n return 'Finance Report';\r\n }else if(reportNameParam == 'Finance Ticket Report'){\r\n return 'Finance Ticket Report';\r\n }\r\n else\r\n {\r\n return reportNameParam;\r\n }\r\n\r\n }\r\n\r\n vm.report_title = vm.getReportTitle($stateParams.report_name);\r\n vm.getCustomerReport(vm.getReportName($stateParams.report_name));\r\n\r\n vm.ShareReport = function () {\r\n //$log.log(\"ShareReport\");\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.shareModel.content = \"Please find below the progress report as on $Date\\n\\nYou are requested to view the detailed report at $Link\";\r\n vm.ShareModal = $uibModal.open({\r\n templateUrl: 'ShareReport.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeShareReportModal = function () {\r\n vm.ShareModal.close();\r\n }\r\n\r\n vm.ReportFilter = function () {\r\n vm.FilterModal = $uibModal.open({\r\n templateUrl: 'ReportFilter.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeReportFilterModal = function () {\r\n vm.FilterModal.close();\r\n }\r\n\r\n vm.ScheduledReport = function () {\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.scheduleModel.reportName=\"\";\r\n vm.scheduleModel.frequency=vm.scheduleModel.once;\r\n vm.scheduleModel.pull_data.range=vm.scheduleModel.pull_data.day; \r\n vm.scheduleModel.attachReportInMailBody=true;\r\n vm.scheduleModel.attachReportInExcel=true;\r\n vm.scheduleModel.sampleDateMendtryErr=false;\r\n vm.scheduleModel.input_of_week=null;\r\n vm.scheduleModel.sampleDate=new moment();\r\n vm.scheduleModel.input_for_month.option=vm.scheduleModel.input_for_month.start_of_day; \r\n vm.shareModel.content = \"Please find below the progress report as on $Date\\n\\nYou are requested to view the detailed report at $Link\";\r\n vm.ScheduledReportModal = $uibModal.open({\r\n templateUrl: 'ScheduledReport.html',\r\n backdrop: 'static',\r\n windowClass:'schedulerModal',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeScheduledReportModal = function () {\r\n vm.ScheduledReportModal.close();\r\n }\r\n\r\n vm.shareModel.getUserSuggestion = function (val) {\r\n\r\n vm.scheduleModel.toListMendtryErr=false;\r\n\r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}].concat(vm.users):vm.users;\r\n }\r\n vm.getUsers();\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}]:[];\r\n }\r\n\r\n vm.getUsers = function () {\r\n vm.users = [];\r\n ReportService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n //$log.log(data);\r\n }]));\r\n }\r\n\r\n vm.shareModel.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName !=null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n\r\n vm.shareModel.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.shareModel.toList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.ccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n } \r\n if (!matched) {\r\n angular.forEach(vm.shareModel.bccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n } \r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n\r\n vm.shareModel.cancelledToListUser = function (i) {\r\n vm.shareModel.toList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledCCListUser = function (i) {\r\n vm.shareModel.ccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledBCCListUser = function (i) {\r\n vm.shareModel.bccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.selectUserNameInToList = function (item) {\r\n vm.shareModel.toList.push(item);\r\n vm.shareModel.toUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInCCList = function (item) {\r\n vm.shareModel.ccList.push(item);\r\n vm.shareModel.ccUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInBCCList = function (item) {\r\n vm.shareModel.bccList.push(item);\r\n vm.shareModel.bccUsers = [];\r\n }\r\n\r\n vm.shareModel.mailReport = function () {\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function(user){\r\n toList.push(user.UserId);\r\n });\r\n var ccList = [];\r\n angular.forEach(vm.shareModel.ccList, function(user){\r\n ccList.push(user.UserId);\r\n });\r\n var bccList = [];\r\n angular.forEach(vm.shareModel.bccList, function(user){\r\n bccList.push(user.UserId);\r\n });\r\n if(toList.length==0){\r\n vm.scheduleModel.toListMendtryErr=true;\r\n return;\r\n }\r\n if(vm.shareModel.content.length==0){\r\n return false;\r\n }\r\n\r\n var content = vm.shareModel.content;\r\n content=content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n vm.closeShareReportModal();\r\n ReportService.mailReport(token, toList, ccList, bccList, \"Report: \" + vm.getReportName($stateParams.report_name), \r\n content, vm.getReportName($stateParams.report_name), loggedinUser, vm.filter_key, vm.filter_name, \r\n vm.attachReportInMailBody,vm.attachReportInExcel,vm.rollup,\r\n vm.createCallback(null, [function (data) { \r\n vm.showSuccess(\"Success\", \"Report has been shared successfully\");\r\n }]));\r\n }\r\n\r\n vm.downloadReport = function(){\r\n ReportService.downloadReport(vm.report_data.ReportName, loggedinUser, vm.filter_key, vm.filter_name,vm.rollup,vm.isData);\r\n \r\n }\r\n\r\n vm.scheduleModel.checkName = function(){\r\n ReportService.checkReportName(vm.scheduleModel.reportName, function(data){\r\n //$log.log(\"checkName reposnse\", data);\r\n vm.scheduleModel.reportNameAlreadyExists=data;\r\n });\r\n }\r\n\r\n vm.scheduleModel.scheduleReport = function () {\r\n var startTime = null;\r\n var endTime = null;\r\n var cronExpression = null;\r\n var daily = null;\r\n var weekly = null;\r\n var monthly = null;\r\n //$log.log(\"vm.scheduleModel.scheduleTime \",vm.scheduleModel.scheduleTime);\r\n if(vm.scheduleModel.reportName==null || vm.scheduleModel.reportName.length==0){\r\n vm.scheduleModel.reportNameMendtryErr=true;\r\n return;\r\n }\r\n if(vm.shareModel.toList.length==0){\r\n vm.scheduleModel.toListMendtryErr=true;\r\n return; \r\n }\r\n\r\n if (vm.scheduleModel.frequency == vm.scheduleModel.once) {\r\n //$log.log(\"vm.scheduleModel.sampleDate\", vm.scheduleModel.sampleDate);\r\n if(vm.scheduleModel.sampleDate){\r\n var sample_Data = vm.scheduleModel.sampleDate?vm.scheduleModel.sampleDate:new moment();\r\n startTime = {\r\n \"date\": sample_Data.format(\"DD\"),\r\n \"hour\": sample_Data.format(\"HH\"),\r\n \"min\": sample_Data.format(\"mm\"),\r\n \"month\": sample_Data.format(\"MMM\").toUpperCase(),\r\n \"sec\": sample_Data.format(\"ss\"),\r\n \"year\": sample_Data.format(\"YYYY\")\r\n };\r\n\r\n var sampleEndTime = moment(sample_Data).add(1, 'month');\r\n endTime = {\r\n \"date\": sampleEndTime.format(\"DD\"),\r\n \"hour\": sampleEndTime.format(\"HH\"),\r\n \"min\": sampleEndTime.format(\"mm\"),\r\n \"month\": sampleEndTime.format(\"MMM\").toUpperCase(),\r\n \"sec\": sampleEndTime.format(\"ss\"),\r\n \"year\": sampleEndTime.format(\"YYYY\")\r\n };\r\n //$log.log(\"startTime \",startTime);\r\n } else {\r\n vm.scheduleModel.sampleDateMendtryErr=true;\r\n return;\r\n }\r\n \r\n } else {\r\n var startDate = vm.scheduleModel.start_date?new Date(vm.scheduleModel.start_date):new Date();\r\n var endDate = vm.scheduleModel.end_date?new Date(vm.scheduleModel.end_date):new Date();\r\n startTime = {\r\n \"date\": startDate.getDate(),\r\n \"hour\": startDate.getHours(),\r\n \"min\": startDate.getMinutes(),\r\n \"month\": vm.monthNames3[startDate.getMonth()],\r\n \"sec\": startDate.getSeconds(),\r\n \"year\": startDate.getFullYear()\r\n };\r\n endTime = {\r\n \"date\": endDate.getDate(),\r\n \"hour\": endDate.getHours(),\r\n \"min\": endDate.getMinutes(),\r\n \"month\": vm.monthNames3[endDate.getMonth()],\r\n \"sec\": endDate.getSeconds(),\r\n \"year\": endDate.getFullYear()\r\n };\r\n var hour, min;\r\n if(vm.scheduleModel.scheduleTime){\r\n var splittedtime = vm.scheduleModel.scheduleTime.split(\":\");\r\n hour = splittedtime[0];\r\n min = splittedtime[1];\r\n } else {\r\n vm.scheduleModel.timeMendtryErr=true;\r\n return;\r\n }\r\n if (vm.scheduleModel.frequency == vm.scheduleModel.daily) {\r\n daily = {\r\n \"hour\": hour,\r\n \"min\": min\r\n };\r\n } else if (vm.scheduleModel.frequency == vm.scheduleModel.weekly) {\r\n var dayOfWeek = [];\r\n\r\n if (vm.scheduleModel.input_of_week.sun) {\r\n dayOfWeek.push(1);\r\n }\r\n if (vm.scheduleModel.input_of_week.mon) {\r\n dayOfWeek.push(2);\r\n }\r\n if (vm.scheduleModel.input_of_week.tue) {\r\n dayOfWeek.push(3);\r\n }\r\n if (vm.scheduleModel.input_of_week.wed) {\r\n dayOfWeek.push(4);\r\n }\r\n if (vm.scheduleModel.input_of_week.thu) {\r\n dayOfWeek.push(5);\r\n }\r\n if (vm.scheduleModel.input_of_week.fri) {\r\n dayOfWeek.push(6);\r\n }\r\n if (vm.scheduleModel.input_of_week.sat) {\r\n dayOfWeek.push(7);\r\n }\r\n weekly = {\r\n \"dayOfWeek\": dayOfWeek,\r\n \"hour\": hour,\r\n \"min\": min\r\n };\r\n } else if (vm.scheduleModel.frequency == vm.scheduleModel.monthly) {\r\n if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.start_of_day) {\r\n monthly = {\r\n \"dayOfMonth\": \"1\",\r\n \"hour\": hour,\r\n \"min\": min\r\n };\r\n } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.end_of_day) {\r\n cronExpression = \"0 \"+hour+\" \"+min+\" L * ?\";\r\n vm.scheduleModel.frequency = vm.scheduleModel.cronExpression\r\n } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.specific_date) {\r\n monthly = {\r\n \"dayOfMonth\": vm.scheduleModel.input_for_month.date,\r\n \"hour\": hour,\r\n \"min\": min\r\n };\r\n }\r\n\r\n } \r\n }\r\n\r\n var data = {\r\n \"cronExpression\": cronExpression,\r\n \"cronType\": vm.scheduleModel.frequency,\r\n \"daily\": daily,\r\n \"endTime\": endTime,\r\n \"jobStartTime\": startTime,\r\n \"method\": \"POST\",\r\n \"monthly\": monthly,\r\n \"uniqueId\": vm.scheduleModel.reportName,\r\n \"reportName\": vm.getReportName($stateParams.report_name),\r\n \"url\": DashboardURL+\"/api/Report/mailexcelreportbyname\",\r\n \"weekly\": weekly,\r\n \"accountId\":loggedinUser\r\n };\r\n\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function(user){\r\n toList.push(user.UserId);\r\n });\r\n var ccList = [];\r\n angular.forEach(vm.shareModel.ccList, function(user){\r\n ccList.push(user.UserId);\r\n });\r\n var bccList = [];\r\n angular.forEach(vm.shareModel.bccList, function(user){\r\n bccList.push(user.UserId);\r\n });\r\n\r\n if(vm.shareModel.content.length==0){\r\n vm.shareModel.contentMedtryErr=true;\r\n return;\r\n }\r\n\r\n var content = vm.shareModel.content;\r\n content=content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n var schedulerModel = {};\r\n schedulerModel[\"TOList\"]=toList;\r\n schedulerModel[\"CCList\"]=ccList;\r\n schedulerModel[\"BCCList\"]=bccList;\r\n schedulerModel[\"Body\"]=content;\r\n schedulerModel[\"Subject\"]=\"Report: \" + vm.getReportName($stateParams.report_name)\r\n schedulerModel[\"ReportName\"]=vm.getReportName($stateParams.report_name)\r\n schedulerModel[\"ReqUserId\"]=loggedinUser;\r\n schedulerModel[\"FilterKeys\"]=null;\r\n schedulerModel[\"FilterValues\"]=null;\r\n schedulerModel[\"ReportInMailBody\"]=vm.scheduleModel.attachReportInMailBody;\r\n schedulerModel[\"AttachXLSReportInMail\"]=vm.scheduleModel.attachReportInExcel;\r\n if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.day){\r\n schedulerModel[\"RollUps\"]=\"Last Day\";\r\n } else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.week){\r\n schedulerModel[\"RollUps\"]=\"Last Week\"; \r\n } else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.month){\r\n schedulerModel[\"RollUps\"]=\"Last Month\"; \r\n } else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.quarter){\r\n schedulerModel[\"RollUps\"]=\"Last Quarter\"; \r\n }else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.current_month){\r\n schedulerModel[\"RollUps\"]=\"Current Month\"; \r\n } else if(vm.scheduleModel.pull_data.range==vm.scheduleModel.pull_data.specific){\r\n var re = /^[1-9]+[0-9]*$/;\r\n if(!re.test(vm.scheduleModel.pull_data.specific_day_value)){\r\n vm.scheduleModel.pull_data.specificDayValMedtryErr=true;\r\n return;\r\n }\r\n schedulerModel[\"RollUps\"]=vm.scheduleModel.pull_data.specific_day_value; \r\n }\r\n data[\"model\"]=JSON.stringify(schedulerModel);\r\n data[\"entity\"]=\"report\";\r\n\r\n ReportService.scheduleReport(loggedinUser, data, token,\r\n vm.createCallback(null, [function (data) { \r\n if(data.msg==\"Schedule already exists\"){\r\n vm.showFailure(\"Failed\", \"Schedule with same name already exists.\");\r\n } else if(data.msg==\"Unexpected params\"){\r\n vm.showFailure(\"Failed\", \"Unexpected parameters.\");\r\n } else if(data.msg==\"Failed\"){\r\n vm.showFailure(\"Server Error\", \"Failed to create schedule.\");\r\n } else {\r\n vm.showSuccess(\"Success\", \"Report scheduled successfully.\");\r\n vm.closeScheduledReportModal();\r\n }\r\n }]));\r\n }\r\n // vm.filename='';\r\n \r\n\r\n vm.PDFView = function (img) { \r\n \r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n \r\n vm.pdfimage = resp.data;\r\n });\r\n $scope.selected = null;\r\n $timeout(function(){\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size :'lg',\r\n scope: $scope\r\n });\r\n },1000)\r\n \r\n }\r\n vm.PDFUserModal = function(){\r\n jobAppointmentModal.close();\r\n }\r\n\r\n \r\n \r\n vm.buildColumnBuilder = function (dataSets, chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData) {\r\n if (vm.tableCharts[chartId] && vm.tableCharts[chartId].value) {\r\n var columns = [];\r\n for (var key in dataSets.Categories) {\r\n var temp = '';\r\n // var columnName = key;\r\n temp = DTColumnBuilder.newColumn(key).withTitle(dataSets.Categories[key]).renderWith(function(data,type,full,meta){\r\n var temp = '';\r\n function getKeyByValue(object, value) {\r\n for( var prop in object ) {\r\n if( object.hasOwnProperty( prop ) ) {\r\n if( object[ prop ] === value )\r\n temp = prop;\r\n }\r\n }\r\n }\r\n getKeyByValue(full,data)\r\n var firstColumntKey = Object.values(full)[0];\r\n // var fixedCatogries = Object.values(vm.tableCharts[chartId].value.Categories)[0];\r\n var t = vm.tableCharts[chartId].value.Categories;\r\n var n = t[temp];\r\n var dateTimeFields = [\r\n \"AssignationDate\", \"AssignationDateObj\", \r\n \"CompletionDate\", \"CompletionDateObj\",\r\n \"AppointmentStartDate\", \"AppointmentTakenDateTimeObj\", \"ActualStartTimeObj\",\"ActualStartTime\",\r\n \"ApprovedDate\", \"ApprovedDateObj\",\"CreationDateObj\",\"CreatedOn\",\"CreatedOnSource\",\"WarrantyExpiryDate\"\r\n ];\r\n var dateFields = [\"PurchaseDate\"];\r\n if (dateTimeFields.includes(temp) && data) {\r\n return moment(data).format('DD/MM/YYYY hh:mm A');\r\n }\r\n if (dateFields.includes(temp) && data) {\r\n return moment(data).format('DD/MM/YYYY');\r\n }\r\n if(vm.deepLink[n]){\r\n return \"' + data + \"\";\r\n }\r\n //data = 'T360000388568_CCR_Form_Photo7825.jpg';\r\n \r\n if((temp =='CCR URL' || temp == 'CCRFormPhotoAttachmentPath'|| temp == 'TicketSignOffReport') && data){\r\n \r\n vm.filename = data.substring(data.lastIndexOf('/')+1);\r\n \r\n \r\n return '' + vm.filename + ' ';\r\n \r\n }\r\n else if((temp == 'FieldReports') && data){\r\n var fileUrls = data.split(',');\r\n var ancharStr = '';\r\n var filename;\r\n angular.forEach(fileUrls, function(value, key){\r\n filename = value.substring(value.lastIndexOf('/')+1);\r\n ancharStr = ancharStr + '' + filename + ' ';\r\n });\r\n\r\n return ancharStr;\r\n \r\n }\r\n else{\r\n return data;\r\n }\r\n });\r\n columns.push(temp);\r\n } \r\n vm.tableCharts[chartId].dtColumns = columns; \r\n }\r\n \r\n\r\n\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(dataSets.Values);\r\n return defer.promise;\r\n }).withDOM(\r\n '<\"html5buttons\"B>lTfgitp')\r\n .withOption('lengthChange', false)\r\n .withOption('order', [])\r\n .withButtons([{ extend: 'colvis' }, {\r\n extend: 'csv', filename: vm.report_data.ReportName, exportOptions: {\r\n columns: ':visible'\r\n }\r\n }, {\r\n extend: 'print', title: vm.report_data.ReportName, exportOptions: {\r\n columns: ':visible'\r\n }\r\n }, {\r\n extend: 'copy', exportOptions: {\r\n columns: ':visible'\r\n }\r\n }])\r\n .withOption('createdRow', createdRow);\r\n }\r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n \r\n\r\n vm.statusList = [\"Assigned\",\"Completed\",\"Approved\",\"Cancelled\",\"Hold\"];\r\n\r\n vm.GetItemBrandName = function () {\r\n\t\t\tInventoryCartService.GetItemBrandName(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.BrandList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t};\r\n\r\n\t\tvm.GetItemGroupName = function () {\r\n\t\t\tif (!vm.brandName) {\r\n\t\t\t\tvm.brandName = \"\";\r\n\t\t\t}\r\n\t\t\tInventoryCartService.GetItemGroupName(vm.brandName, loggedinUser, token).then(\r\n\t\t\t\tfunction (resp) {\r\n\t\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\t\tvm.PartNameList = resp.data;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\tvm.GetItemListName = function () {\r\n\t\t\tif (!vm.productGroup) {\r\n\t\t\t\tvm.productGroup = \"\";\r\n\t\t\t}\r\n\t\t\tInventoryCartService.GetItemListName(vm.brandName,vm.productGroup,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.PartList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t};\r\n\r\n if (vm.accountId == '364' || vm.accountId == '361') {\r\n vm.GetItemBrandName();\r\n vm.GetItemGroupName();\r\n vm.GetItemListName();\r\n }\r\n\r\n\t\t// vm.PartListWithFilter = [];\r\n\r\n\t\t// vm.GetItemPartName = function () {\r\n\t\t// vm.PartListWithFilter = [];\r\n\t\t// if (!vm.partName) {\r\n\t\t// \tvm.partName = \"\";\r\n\t\t// }\r\n\t\t// InventoryItemListService.GetItemPartName(vm.brandName,vm.productGroup,vm.partName,loggedinUser,token).then(function (resp) {\r\n\t\t// \tif (resp.data && resp.status == 200) {\r\n\t\t// \t vm.PartListWithFilter = resp.data;\r\n\t\t// \t}\r\n\t\t// }, vm.showFailure);\r\n\t\t// };\r\n\t\t// vm.GetItemPartName();\r\n\r\n }\r\n});\r\n\r\n\nangular.module('inspinia').service('RegisteredAllUserService',function(ApiURL,FreelancerURL, PublicApiURL,ActivityURL,LocationURL,$http, FreelancerURL, SchedulingAPI){\r\n\r\n this.GetAllSkills = function (loggedinUser, token) { \r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n\r\n this.getAllState = function (loggedinUser,token) { \r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url,{\r\n headers:{\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n this.GetAllRegisteredUser = function (loggedinUser,token,itemNames,itemValues,userType,userAvailableStatus,DateField,PageIndex,PageSize, startDate, endDate,OrderBy,SortType) {\r\n var url = '';\r\n url = FreelancerURL + '/api/FreeLancerRegistration/GetRegisteredUsersByFiltersWithDynaPage?itemNames=' + itemNames + '&itemValues=' + itemValues + '&userType=' + userType+ '&userAvailableStatus=' + userAvailableStatus + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&FromDate=' + startDate + '&ToDate=' + endDate+ '&OrderBy=' + OrderBy + '&SortType=' + SortType;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getAllState = function (loggedinUser) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllStates';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n //http://192.168.0.80:92/LocationAPI/api/Location/saurabhgupta3371%40gmail.com/UTTAR%20PRADESH/GetCitiesByState\r\n \r\n this.getCityByState = function (loggedinUser, state) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/' + state + '/GetCitiesByState';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n});\nangular.module('inspinia').controller('RegisteredAllUserController', function (RegisteredAllUserService,ActiveUserUpdateService,ReferService,$q,CentralHelpdeskConfigService, ScheduleAssignService,RegisteredAllUserService, $log, $state, $localStorage, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, uiCalendarConfig, ImageUrl, PublicApiURL,$window) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserSkill = $localStorage.loggedInUser_SkillSet;\r\n var loggedinUserRegion = $localStorage.loggedInUser_Region;\r\n var accountid= $localStorage.accountConfig.AccountId;\r\n \r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var token = $localStorage.token;\r\n \r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.MobiforceCommission = vm.getAccountConfigSetting('MobiforceCommissionPercentage');\r\n vm.VendorAssignation = vm.getAccountConfigSetting('VendorAssignation');\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.FreelancerAccess = vm.getAccountConfigSetting('FreelancerAccess');\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.loggedinAs = $localStorage.loggedinAs;\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.userskill = '';\r\n vm.pincode = '';\r\n vm.userNameSearch = '';\r\n vm.contactNumberSearch = '';\r\n vm.userSource = '';\r\n vm.CriminalVerified='';\r\n vm.IdVerified='';\r\n vm.IsAuthorizedServicePartner = '';\r\n vm.PANVerified='';\r\n vm.UserAvailable=''\r\n vm.skillData = '';\r\n vm.circleData = '';\r\n vm.isChecked = \"fixed\";\r\n vm.searchText = \"\";\r\n vm.Technicianstartingdate = '2017-01-01';\r\n vm.tab = '';\r\n vm.pageindexCount=0;\r\n vm.DateField=\"StatusChangedOn\";\r\n vm.searchStatusText=\"All\"; \r\n var uPageIndex = 1;\r\n var uPageSize = 10; \r\n vm.UsersType=\"\";\r\n vm.uType=\"\";\r\n var uitemNames=\"\";\r\n var uitemValues=\"\";\r\n vm.searchUsersText=\"\";\r\n vm.jobsCount='';\r\n vm.SortType = 'desc';\r\n vm.SortField = 'CreatedOn';\r\n vm.userPageListCount= 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n\r\n var startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: startDate, endDate:endDate};\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment(vm.Technicianstartingdate), moment(endDate)],\r\n };\r\n \r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n };\r\n vm.searchText = '';\r\n vm.RegistrationNo = '';\r\n\r\n vm.preProcessData = function (vendor) {\r\n var locations = \"\";\r\n angular.forEach(vendor.WorkLocationList, function (l) {\r\n locations += l + \",\";\r\n });\r\n vendor.allLocations = locations.length > 0 ? locations.substring(0, locations.length - 1) : \"\";\r\n\r\n var skills = \"\";\r\n angular.forEach(vendor.SkillData, function (s) {\r\n skills += s.Skill + \",\";\r\n });\r\n vendor.allSkills = skills.length > 0 ? skills.substring(0, skills.length - 1) : \"\";\r\n }\r\n\r\n vm.creationForm = function (RegistrationNo) {\r\n $localStorage.From = '';\r\n $state.go('index.OnBoardingForm', {\r\n RegistrationNo: RegistrationNo\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.userOnboardingForm = function (UserId) {\r\n $localStorage.From = '';\r\n $state.go('index.RegistrationForm', {\r\n UserId: UserId\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.loadAllSkills = function(){ \r\n RegisteredAllUserService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skillsWithPipe = '';\r\n if (resp && resp.data) {\r\n vm.skillData = resp.data;\r\n if(vm.skillData && vm.skillData.length>0){\r\n angular.forEach(vm.skillData, function(s){\r\n vm.skillsWithPipe += s.SkillName+\"|\";\r\n });\r\n vm.skillsWithPipe = vm.skillsWithPipe.length>0\r\n ? vm.skillsWithPipe.substring(0,vm.skillsWithPipe.length-1) : \"\";\r\n }\r\n }\r\n });\r\n }\r\n vm.loadAllSkills();\r\n \r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n \r\n vm.ResetUserSelection = function (scope){\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n }\r\n\r\n if(vm.loggedInUserRole == \"SuperAdministrator\")\r\n {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Freelancer Team\"];\r\n }\r\n else\r\n {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Freelancer Team\"];\r\n }\r\n \r\n vm.ResetUserFilter = function () { \r\n vm.UsersType = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.userskill = ''; \r\n vm.uType= ''; \r\n vm.CriminalVerified='';\r\n vm.IdVerified='';\r\n vm.IsAuthorizedServicePartner = '';\r\n vm.PANVerified=''; \r\n vm.userSource = ''; \r\n vm.pincode ='';\r\n vm.userNameSearch ='';\r\n vm.contactNumberSearch = '';\r\n startDate = '';\r\n endDate = '';\r\n vm.applyUserFilter();\r\n // vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n }\r\n\r\n vm.UsersFilterArray = function()\r\n {\r\n vm.ResetUserSelection(this);\r\n uitemNames=\"\";\r\n uitemValues=\"\";\r\n\r\n if (vm.userskill) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',SkillSet';\r\n uitemValues = uitemValues + \",\" + vm.userskill;\r\n }\r\n else\r\n {\r\n uitemNames = 'SkillSet';\r\n uitemValues = vm.userskill;\r\n } \r\n }\r\n if (vm.userSource) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Source';\r\n uitemValues = uitemValues + \",\" + vm.userSource;\r\n }\r\n else\r\n {\r\n uitemNames = 'Source';\r\n uitemValues = vm.userSource;\r\n } \r\n }\r\n if (vm.pincode) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.pincode;\r\n }\r\n else\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.pincode;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.userNameSearch;\r\n } \r\n }\r\n if (vm.contactNumberSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',ContactNumber';\r\n uitemValues = uitemValues + \",\" + vm.contactNumberSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'ContactNumber';\r\n uitemValues = vm.contactNumberSearch;\r\n } \r\n }\r\n \r\n if (vm.CriminalVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsCriminalVerified';\r\n uitemValues = uitemValues + \",\" + true;\r\n }\r\n else\r\n {\r\n uitemNames = 'IsCriminalVerified';\r\n uitemValues = true;\r\n } \r\n }\r\n if (vm.IdVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsAdharVerified';\r\n uitemValues = uitemValues + \",\" + true;\r\n }\r\n else\r\n {\r\n uitemNames = 'IsAdharVerified';\r\n uitemValues = true;\r\n } \r\n }\r\n if (vm.IsAuthorizedServicePartner == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsAuthorizedServicePartner';\r\n uitemValues = uitemValues + \",\" + true;\r\n }\r\n else\r\n {\r\n uitemNames = 'IsAuthorizedServicePartner';\r\n uitemValues = true;\r\n } \r\n }\r\n if (vm.PANVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsPanVerified';\r\n uitemValues = uitemValues + \",\" + true;\r\n }\r\n else\r\n {\r\n uitemNames = 'IsPanVerified';\r\n uitemValues = true;\r\n } \r\n }\r\n if (vm.PermanentState) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Locations';\r\n uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n }\r\n else\r\n {\r\n uitemNames = 'Locations';\r\n uitemValues = vm.PermanentState;\r\n } \r\n }\r\n if (vm.PermanentState && vm.PermanentCity) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.PermanentCity;\r\n }\r\n else\r\n {\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.UsersType;\r\n } \r\n }\r\n if (vm.UsersType) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + \",\" + vm.UsersType;\r\n }\r\n else\r\n {\r\n uitemNames = 'Role';\r\n uitemValues = vm.UsersType;\r\n } \r\n } \r\n\r\n if(vm.UsersType==\"Freelancer\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n }\r\n else if(vm.UsersType==\"Freelancer Vendor\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n } \r\n else if(vm.UsersType==\"Freelancer Team\")\r\n {\r\n vm.uType=\"Fixed\";\r\n }\r\n else \r\n {\r\n vm.uType=\"\";\r\n vm.UsersType = '';\r\n } \r\n\r\n }\r\n\r\n function getAllStates(loggedinUser) {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser,token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n \r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n \r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function() { \r\n $scope.usersPerPage = vm.userPageListCount;\r\n uPageSize = $scope.usersPerPage;\r\n $scope.UserTablePageChanged($scope.Userpagination.current);\r\n vm.selectAll = false;\r\n \r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.UsersFilterArray(); \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n };\r\n }\r\n \r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n if(uitemNames != 'Search')\r\n {\r\n vm.UsersFilterArray();\r\n }\r\n \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n };\r\n\r\n vm.ticketList=[];\r\n\r\n vm.UserByFiltersList=[];\r\n vm.GetAllRegisteredUser = function (loggedinUser, token, uitemNames, uitemValues, userType, UserAvailable, uPageIndex, uPageSize) {\r\n RegisteredAllUserService.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, userType, vm.UserAvailable, vm.DateField, uPageIndex, uPageSize, startDate, endDate,vm.SortField,vm.SortType).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserByFiltersList = resp.data.ListUserResponseModel;\r\n $scope.totalUsers = resp.data.Count;\r\n // preprocessData(vm.UserByFiltersList);\r\n if(vm.UserByFiltersList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = uPageIndex * vm.userPageListCount;\r\n if(uPageIndex==1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex-1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n vm.UsersFilterArray(); \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n }\r\n vm.searchTicket = function () { \r\n vm.ResetTicketFilter(); \r\n };\r\n vm.searchUser = function () { \r\n vm.ResetUserSelection(this);\r\n vm.ResetUserFilter(); \r\n if(vm.searchUsersText)\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.searchUsersText;\r\n } \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n };\r\n \r\n\r\n vm.closeUserSearchText = function()\r\n { \r\n vm.ResetUserSelection(this);\r\n vm.ResetUserFilter(); \r\n vm.searchUsersText=\"\";\r\n uitemNames = '';\r\n uitemValues = ''; \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n\r\n }\r\n vm.applyUserFilter=function()\r\n { \r\n vm.UsersFilterArray(); \r\n \r\n uPageIndex=1;\r\n $scope.Userpagination = {\r\n current: 1\r\n }; \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n\r\n }\r\n vm.SubmitFilter = function () { \r\n\r\n $scope.Userpagination = {};\r\n vm.UsersFilterArray();\r\n uPageIndex=1;\r\n $scope.Userpagination = {\r\n current: 1\r\n }; \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n\r\n }\r\n vm.sortColumn = function(col){\r\n vm.SortField = col;\r\n if(vm.SortType=='desc'){\r\n vm.SortType = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n }else{\r\n vm.SortType = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n };\r\n \r\n // remove and change class\r\n vm.sortClass = function(col){\r\n if(vm.SortField == col ){\r\n if(vm.SortType == 'desc'){\r\n return 'fa fa-arrow-down'; \r\n }else{\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else{\r\n return '';\r\n }\r\n }\r\n\r\n});\nangular.module('inspinia').controller('ReferVendorController', function (ReferService, $rootScope, CustomerFormCreationService, $q, $log, $localStorage, $stateParams, toaster, $state, $timeout, ImageUrl, $scope) {\r\n var vm = this;\r\n var loggedinUser = 'U310000000001';\r\n vm.ReferealKey = $stateParams.reference_key;\r\n vm.stateList = '';\r\n vm.first_name = '';\r\n vm.last_name = '';\r\n vm.date_of_birth = '';\r\n vm.email = '';\r\n vm.phone = '';\r\n vm.address1 = '';\r\n vm.address2 = '';\r\n vm.state = '';\r\n vm.city = '';\r\n vm.pincode = '';\r\n vm.gender = '';\r\n vm.cityList = '';\r\n vm.BGDocList = [];\r\n vm.error = {};\r\n vm.verticalList = '';\r\n vm.company_name = '';\r\n vm.vertical = '';\r\n vm.skills = [];\r\n vm.employee_strength = '';\r\n vm.inventory = '';\r\n\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n\r\n vm.BGDocType = ['GST Certificate Copy', 'Aadhar Card (Of Business owner)', 'PAN Card (of Business or of Owner)', 'Address Proof (of Business)', 'Voter ID Card', 'Business Profile/ Owner Resume', 'Educational Certificate (Of Highest Degree)', 'Cancelled Cheque'];\r\n vm.BDDocSubType = {};\r\n vm.BDDocSubType['GST Certificate Copy'] = ['GST Certificate'];\r\n vm.BDDocSubType['Address Proof (of Business)'] = [\"Driving License\", \"Passport\", \"Rent Agreement\", \"Telephone/Gas Bill\", \"Bank Passbook\"];\r\n vm.BDDocSubType['PAN Card (of Business or of Owner)'] = ['Pan Card'];\r\n vm.BDDocSubType['Educational Certificate (Of Highest Degree)'] = [\"10th Certificate\", \"12th Certificate\", \"Graduation Degree/Deploma\", \"PG Degree/Deploma\"];\r\n vm.BDDocSubType['Aadhar Card (Of Business owner)'] = [\"Aadhar Card\"];\r\n vm.BDDocSubType['Business Profile/ Owner Resume'] = [\"Resume\"];\r\n vm.BDDocSubType['Voter ID Card'] = [\"Voter ID Card\"];\r\n vm.BDDocSubType['Cancelled Cheque'] = [\"Cancelled Cheque\"];\r\n\r\n angular.forEach(vm.BGDocType, function(d, i){\r\n vm.BGDocList[i] = {\r\n \"DocumentType\": d,\r\n \"DocumentName\": vm.BDDocSubType[d][0],\r\n \"DocumentPath\": \"\"\r\n };\r\n vm.error[d] = null;\r\n });\r\n\r\n vm.dd_options = {};\r\n vm.months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\r\n vm.mm_options = {\"Jan\":true, \"Feb\":true, \"Mar\":true, \"Apr\":true, \"May\":true, \"Jun\":true, \r\n \"Jul\":true, \"Aug\":true, \"Sep\":true, \"Oct\":true, \"Nov\":true, \"Dec\":true};\r\n vm.max_date = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n vm.yyyy_options = [];\r\n var currentYear = moment().format(\"YYYY\");\r\n var currentMonth = moment().format(\"MM\")*1;\r\n var currentDate = moment().format(\"DD\")*1;\r\n\r\n for(var i=18;i<=60;i++){ \r\n vm.yyyy_options.push(currentYear-i);\r\n }\r\n\r\n for(var i=1;i<=31;i++){\r\n vm.dd_options[i]=true;\r\n }\r\n\r\n vm.getDateList = function(){\r\n if(vm.date_of_birth_yyyy!=null && vm.date_of_birth_mm!=null){\r\n var month = vm.months.indexOf(vm.date_of_birth_mm);\r\n var maxDD = vm.max_date[month];\r\n if(month==1 && vm.date_of_birth_yyyy%4 > 0){\r\n maxDD=28;\r\n }\r\n\r\n vm.dd_options=[];\r\n for(var i=1;i<=maxDD;i++){\r\n vm.dd_options[i]=true;\r\n }\r\n if(currentYear-vm.date_of_birth_yyyy==18 && vm.date_of_birth_mm==vm.months[currentMonth-1]){\r\n for(var i=currentDate;i=0 || file.type.indexOf(\"image/png\")>=0 \r\n || file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n var data = new FormData();\r\n data.append(\"files\", files.files[0]);\r\n ReferService.uploadProfilePic(loggedinUser, data, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm[type] = res.data;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n \r\n }\r\n\r\n vm.getFileType = function(url){\r\n if(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0){\r\n return \"image\";\r\n } else if(url.indexOf(\".pdf\")>=0){\r\n return \"pdf\";\r\n } else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0){\r\n return \"doc\";\r\n } else {\r\n return \"others\";\r\n }\r\n }\r\n\r\n $scope.uploadBGFile = function (elem) {\r\n var data = new FormData();\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n var doc = vm.BGDocList[index];\r\n vm.error[doc.DocumentType] = null;\r\n var file = elem.files[0];\r\n if(file.type==\"application/pdf\" \r\n || file.type==\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" \r\n || file.type==\"application/msword\" || file.type.indexOf(\"image/jpg\")>=0 || file.type.indexOf(\"image/png\")>=0 \r\n || file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n data.append(\"files\", elem.files[0]);\r\n ReferService.uploadProfilePic(loggedinUser, data, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n doc.DocumentPath = res.data;\r\n doc.DocumentPath1 = elem.files[0].name;\r\n doc.edit=false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server is not responding correctly.\");\r\n });\r\n } else {\r\n vm.error[doc.DocumentType] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n\r\n vm.getVerticalName = function() {\r\n ReferService.getVerticalName().then(function (resp) {\r\n vm.verticalList = resp.data;\r\n })\r\n }\r\n vm.getVerticalName();\r\n\r\n vm.selectSkills = function (vertical) {\r\n if(vertical!=''){\r\n vm.skillList = '';\r\n angular.forEach(vm.verticalList, function(d){\r\n if(d.Category == vertical){\r\n vm.skillList = d.ListSkillSet;\r\n return;\r\n }\r\n })\r\n }\r\n }\r\n\r\n})\nangular.module('inspinia').service('ReferService', function ($http, FreelancerURL, LocationURL, ApiURL, PublicApiURL) {\r\n\r\n this.CreateFreelancer = function (freelancerData) {\r\n var url = PublicApiURL + '/api/FreeLancerRegistration/';\r\n return $http.post(url, freelancerData, {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n\r\n this.CreateVendor = function (vendorData) {\r\n var url = PublicApiURL + '/api/FreeLancerRegistration/RegisterFreelancerVendor/';\r\n return $http.post(url, vendorData, {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n\r\n // https://test.mymobiforce.com/publicapi/api/Location/GetSubRegion?userId=U350000000006®ion=INDIA\r\n this.getAllState = function (userId,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':userId }\r\n });\r\n }\r\n\r\n // https://test.mymobiforce.com/publicapi/api/Location/GetCity?userId=U350000000006&subregion=UTTAR%20PRADESH\r\n this.getAllCity = function (userId, state,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':userId }\r\n });\r\n }\r\n\r\n this.uploadProfilePic = function (loggedinUser, data, success, failure) {\r\n $http.post(PublicApiURL + '/api/PostUserPic?reqUserId=' + loggedinUser, data, {\r\n headers: {\r\n 'Content-Type': undefined\r\n }\r\n }).then(success, failure);\r\n }\r\n\r\n //https://test.mymobiforce.com/publicapi/api/GetSkillsWithCategory\r\n this.getVerticalName = function(){\r\n var url = PublicApiURL + '/api/GetSkillsWithCategory';\r\n return $http.get(url);\r\n }\r\n})\nangular.module('inspinia').controller('ReferFreelancerController', function (ReferService, $rootScope, CustomerFormCreationService, $q, $log, $localStorage, $stateParams, toaster, $state, $timeout, ImageUrl, $scope) {\r\n var vm = this;\r\n var loggedinUser = 'U310000000001';\r\n vm.ReferealKey = $stateParams.reference_key;\r\n vm.stateList = '';\r\n vm.first_name = '';\r\n vm.last_name = '';\r\n vm.date_of_birth = '';\r\n vm.email = '';\r\n vm.phone = '';\r\n vm.address1 = '';\r\n vm.address2 = '';\r\n vm.state = '';\r\n vm.city = '';\r\n vm.pincode = '';\r\n vm.gender = '';\r\n vm.cityList = '';\r\n vm.BGDocList = [];\r\n vm.error = {};\r\n \r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n\r\n vm.BGDocType = ['Upload Aadhar Card', 'Upload Address Proof', 'Upload Pan Card', 'Upload Education Certificate', 'Upload Police Verification', 'Upload Resume'];\r\n vm.BDDocSubType = {};\r\n vm.BDDocSubType['Upload Aadhar Card'] = ['Aadhar Card'];\r\n vm.BDDocSubType['Upload Address Proof'] = [\"Voter Id Card\", \"Driving License\", \"Passport\", \"Rent Agreement\", \"Telephone/Gas Bill\", \"Bank Passbook\"];\r\n vm.BDDocSubType['Upload Pan Card'] = ['Pan Card'];\r\n vm.BDDocSubType['Upload Education Certificate'] = [\"10th Certificate\", \"12th Certificate\", \"Graduation Degree/Deploma\", \"PG Degree/Deploma\"];\r\n vm.BDDocSubType['Upload Police Verification'] = [\"Police Verification\"];\r\n vm.BDDocSubType['Upload Resume'] = [\"Resume\"];\r\n\r\n angular.forEach(vm.BGDocType, function(d, i){\r\n vm.BGDocList[i] = {\r\n \"DocumentType\": d,\r\n \"DocumentName\": vm.BDDocSubType[d][0],\r\n \"DocumentPath\": \"\"\r\n };\r\n vm.error[d] = null;\r\n });\r\n\r\n vm.dd_options = {};\r\n vm.months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\r\n vm.mm_options = {\"Jan\":true, \"Feb\":true, \"Mar\":true, \"Apr\":true, \"May\":true, \"Jun\":true, \r\n \"Jul\":true, \"Aug\":true, \"Sep\":true, \"Oct\":true, \"Nov\":true, \"Dec\":true};\r\n vm.max_date = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n vm.yyyy_options = [];\r\n var currentYear = moment().format(\"YYYY\");\r\n var currentMonth = moment().format(\"MM\")*1;\r\n var currentDate = moment().format(\"DD\")*1;\r\n\r\n for(var i=18;i<=60;i++){ \r\n vm.yyyy_options.push(currentYear-i);\r\n }\r\n\r\n for(var i=1;i<=31;i++){\r\n vm.dd_options[i]=true;\r\n }\r\n\r\n vm.getDateList = function(){\r\n if(vm.date_of_birth_yyyy!=null && vm.date_of_birth_mm!=null){\r\n var month = vm.months.indexOf(vm.date_of_birth_mm);\r\n var maxDD = vm.max_date[month];\r\n if(month==1 && vm.date_of_birth_yyyy%4 > 0){\r\n maxDD=28;\r\n }\r\n\r\n vm.dd_options=[];\r\n for(var i=1;i<=maxDD;i++){\r\n vm.dd_options[i]=true;\r\n }\r\n if(currentYear-vm.date_of_birth_yyyy==18 && vm.date_of_birth_mm==vm.months[currentMonth-1]){\r\n for(var i=currentDate;i=0 || file.type.indexOf(\"image/png\")>=0 \r\n || file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n var data = new FormData();\r\n data.append(\"files\", files.files[0]);\r\n ReferService.uploadProfilePic(loggedinUser, data, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm[type] = res.data;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n \r\n }\r\n\r\n vm.getFileType = function(url){\r\n if(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0){\r\n return \"image\";\r\n } else if(url.indexOf(\".pdf\")>=0){\r\n return \"pdf\";\r\n } else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0){\r\n return \"doc\";\r\n } else {\r\n return \"others\";\r\n }\r\n }\r\n\r\n $scope.uploadBGFile = function (elem) {\r\n var data = new FormData();\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n var doc = vm.BGDocList[index];\r\n vm.error[doc.DocumentType] = null;\r\n var file = elem.files[0];\r\n if(file.type==\"application/pdf\" \r\n || file.type==\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" \r\n || file.type==\"application/msword\" || file.type.indexOf(\"image/jpg\")>=0 || file.type.indexOf(\"image/png\")>=0 \r\n || file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n data.append(\"files\", elem.files[0]);\r\n ReferService.uploadProfilePic(loggedinUser, data, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n doc.DocumentPath = res.data;\r\n doc.DocumentPath1 = elem.files[0].name;\r\n doc.edit=false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server is not responding correctly.\");\r\n });\r\n } else {\r\n vm.error[doc.DocumentType] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n\r\n})\nangular.module('inspinia').service('ReferService', function ($http, FreelancerURL, LocationURL, ApiURL, PublicApiURL) {\r\n\r\n this.CreateFreelancer = function (freelancerData) {\r\n var url = PublicApiURL + '/api/FreeLancerRegistration/';\r\n return $http.post(url, freelancerData, {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n\r\n this.CreateVendor = function (vendorData) {\r\n var url = PublicApiURL + '/api/FreeLancerRegistration/RegisterFreelancerVendor/';\r\n return $http.post(url, vendorData, {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n\r\n // https://test.mymobiforce.com/publicapi/api/Location/GetSubRegion?userId=U350000000006®ion=INDIA\r\n this.getAllState = function (userId,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':userId }\r\n });\r\n }\r\n\r\n // https://test.mymobiforce.com/publicapi/api/Location/GetCity?userId=U350000000006&subregion=UTTAR%20PRADESH\r\n this.getAllCity = function (userId, state,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':userId }\r\n });\r\n }\r\n\r\n this.uploadProfilePic = function (loggedinUser, data, success, failure) {\r\n $http.post(PublicApiURL + '/api/PostUserPic?reqUserId=' + loggedinUser, data, {\r\n headers: {\r\n 'Content-Type': undefined\r\n }\r\n }).then(success, failure);\r\n }\r\n\r\n //https://test.mymobiforce.com/publicapi/api/GetSkillsWithCategory\r\n this.getVerticalName = function(){\r\n var url = PublicApiURL + '/api/GetSkillsWithCategory';\r\n return $http.get(url);\r\n }\r\n})\nangular.module('inspinia').controller('ReferController', function (ReferService, $rootScope, CustomerFormCreationService, $q, $log, $localStorage, $stateParams, toaster, $state, $timeout, ImageUrl, $scope) {\r\n var vm = this;\r\n var loggedinUser = 'U310000000001';\r\n vm.ReferealKey = $stateParams.reference_key;\r\n vm.stateList = '';\r\n vm.first_name = '';\r\n vm.last_name = '';\r\n vm.date_of_birth = '';\r\n vm.email = '';\r\n vm.phone = '';\r\n vm.address1 = '';\r\n vm.address2 = '';\r\n vm.state = '';\r\n vm.city = '';\r\n vm.pincode = '';\r\n vm.gender = '';\r\n vm.cityList = '';\r\n vm.BGDocList = [];\r\n vm.error = {};\r\n vm.verticalList = '';\r\n vm.company_name = '';\r\n vm.vertical = '';\r\n vm.skills = [];\r\n vm.employee_strength = '';\r\n vm.inventory = '';\r\n\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n\r\n vm.BGDocType = ['Upload Aadhar Card', 'Upload Address Proof', 'Upload Pan Card', 'Upload Education Certificate', 'Upload Police Verification', 'Upload Resume'];\r\n vm.BDDocSubType = {};\r\n vm.BDDocSubType['Upload Aadhar Card'] = ['Aadhar Card'];\r\n vm.BDDocSubType['Upload Address Proof'] = [\"Voter Id Card\", \"Driving License\", \"Passport\", \"Rent Agreement\", \"Telephone/Gas Bill\", \"Bank Passbook\"];\r\n vm.BDDocSubType['Upload Pan Card'] = ['Pan Card'];\r\n vm.BDDocSubType['Upload Education Certificate'] = [\"10th Certificate\", \"12th Certificate\", \"Graduation Degree/Deploma\", \"PG Degree/Deploma\"];\r\n vm.BDDocSubType['Upload Police Verification'] = [\"Police Verification\"];\r\n vm.BDDocSubType['Upload Resume'] = [\"Resume\"];\r\n\r\n angular.forEach(vm.BGDocType, function(d, i){\r\n vm.BGDocList[i] = {\r\n \"DocumentType\": d,\r\n \"DocumentName\": vm.BDDocSubType[d][0],\r\n \"DocumentPath\": \"\"\r\n };\r\n vm.error[d] = null;\r\n });\r\n\r\n vm.dd_options = {};\r\n vm.months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\r\n vm.mm_options = {\"Jan\":true, \"Feb\":true, \"Mar\":true, \"Apr\":true, \"May\":true, \"Jun\":true, \r\n \"Jul\":true, \"Aug\":true, \"Sep\":true, \"Oct\":true, \"Nov\":true, \"Dec\":true};\r\n vm.max_date = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n vm.yyyy_options = [];\r\n var currentYear = moment().format(\"YYYY\");\r\n var currentMonth = moment().format(\"MM\")*1;\r\n var currentDate = moment().format(\"DD\")*1;\r\n\r\n for(var i=18;i<=60;i++){ \r\n vm.yyyy_options.push(currentYear-i);\r\n }\r\n\r\n for(var i=1;i<=31;i++){\r\n vm.dd_options[i]=true;\r\n }\r\n\r\n vm.getDateList = function(){\r\n if(vm.date_of_birth_yyyy!=null && vm.date_of_birth_mm!=null){\r\n var month = vm.months.indexOf(vm.date_of_birth_mm);\r\n var maxDD = vm.max_date[month];\r\n if(month==1 && vm.date_of_birth_yyyy%4 > 0){\r\n maxDD=28;\r\n }\r\n\r\n vm.dd_options=[];\r\n for(var i=1;i<=maxDD;i++){\r\n vm.dd_options[i]=true;\r\n }\r\n if(currentYear-vm.date_of_birth_yyyy==18 && vm.date_of_birth_mm==vm.months[currentMonth-1]){\r\n for(var i=currentDate;i=0 || file.type.indexOf(\"image/png\")>=0 \r\n || file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n var data = new FormData();\r\n data.append(\"files\", files.files[0]);\r\n ReferService.uploadProfilePic(loggedinUser, data, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm[type] = res.data;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n \r\n }\r\n\r\n vm.getFileType = function(url){\r\n if(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0){\r\n return \"image\";\r\n } else if(url.indexOf(\".pdf\")>=0){\r\n return \"pdf\";\r\n } else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0){\r\n return \"doc\";\r\n } else {\r\n return \"others\";\r\n }\r\n }\r\n\r\n $scope.uploadBGFile = function (elem) {\r\n var data = new FormData();\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n var doc = vm.BGDocList[index];\r\n vm.error[doc.DocumentType] = null;\r\n var file = elem.files[0];\r\n if(file.type==\"application/pdf\" \r\n || file.type==\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" \r\n || file.type==\"application/msword\" || file.type.indexOf(\"image/jpg\")>=0 || file.type.indexOf(\"image/png\")>=0 \r\n || file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n data.append(\"files\", elem.files[0]);\r\n ReferService.uploadProfilePic(loggedinUser, data, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n doc.DocumentPath = res.data;\r\n doc.DocumentPath1 = elem.files[0].name;\r\n doc.edit=false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server is not responding correctly.\");\r\n });\r\n } else {\r\n vm.error[doc.DocumentType] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n\r\n vm.getVerticalName = function() {\r\n ReferService.getVerticalName().then(function (resp) {\r\n vm.verticalList = resp.data;\r\n })\r\n }\r\n vm.getVerticalName();\r\n\r\n vm.selectSkills = function (vertical) {\r\n if(vertical!=''){\r\n vm.skillList = '';\r\n angular.forEach(vm.verticalList, function(d){\r\n if(d.Category == vertical){\r\n vm.skillList = d.ListSkillSet;\r\n return;\r\n }\r\n })\r\n }\r\n }\r\n\r\n})\nangular.module('inspinia').service('RedirectUserPaymentService', function (ApiURL, $log, $http,FreelancerURL, PublicApiURL) {\r\n\r\n // https://perf.mymobiforce.com/freelancerapi/api/PaymentAccount?reqUserId=U400000000001\r\n\tthis.updateAccountPaymentDetails = function(loggedinUser,token,userId,rechargeAmt,processingAmt,gstAmount,totalAmount,processingFee,gstFee, transactionId,paymentId,paymentStatus,InstamojoId, success, failure){\r\n\t\tvar data ={\r\n \"AccountName\": \"\",\r\n \"AccountId\": \"\",\r\n \"RechargeAmount\": rechargeAmt,\r\n \"RechargeBy\": userId,\r\n \"Description\": \"\",\r\n \"GST\": gstAmount,\r\n \"TotalAmount\": totalAmount,\r\n \"PaymentType\": \"online\",\r\n \"Status\": paymentStatus,\r\n \"PaymentId\": paymentId,\r\n \"TransactionId\": transactionId,\r\n \"InstamojoId\": InstamojoId,\r\n \"ProcessingFeeAmount\": processingAmt,\r\n \"ProcessingFee\": processingFee,\r\n \"GSTFee\": gstFee\r\n\t\t};\r\n\t\t$http.post(FreelancerURL+\"/api/PaymentAccount?reqUserId=\"+userId, data, \r\n\t\t\t{ headers: { 'Content-Type': 'application/json','Token':token, 'UserId':loggedinUser } }).then(function(res){\r\n\t\t\tif(res && success){\r\n\t\t\t\tsuccess(res);\r\n\t\t\t}\r\n\t\t});\r\n }\r\n \r\n\r\n\r\n});\nangular.module('inspinia').controller('RedirectUserPaymentController', function ($scope,$localStorage, $state, $log, $location, RedirectUserPaymentService) {\r\n \r\n var vm = this;\r\n var token = $localStorage.token;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure\r\n vm.contactNumber = $localStorage.ContactNumber;\r\n\r\n vm.userId = $state.params.user;\r\n vm.rechargeAmt = $state.params.rAmt;\r\n vm.processingAmt = $state.params.proFeeAmt;\r\n vm.gstAmount = $state.params.gstAmt;\r\n vm.totalAmount = $state.params.tAmt;\r\n vm.processingFee = $state.params.proFee;\r\n vm.gstFee = $state.params.gstFee;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm.tranactionErrorCode = '0';\r\n vm.transactionMsg= 'Payment Transaction Failed, Please retry!';\r\n\r\n vm.transactionId = null;\r\n vm.paymentId = null;\r\n vm.paymentStatus = null;\r\n vm.InstamojoId = null; \r\n vm.getQueryParams = function(){\r\n var params = $location.search();\r\n vm.transactionId = params.transaction_id;\r\n vm.paymentId = params.payment_id;\r\n vm.paymentStatus = params.payment_status;\r\n vm.InstamojoId = params.id;\r\n }\r\n vm.getQueryParams();\r\n if(vm.transactionId){\r\n RedirectUserPaymentService.updateAccountPaymentDetails(loggedinUser,token,vm.userId,vm.rechargeAmt,vm.processingAmt,vm.gstAmount,vm.totalAmount,vm.processingFee,vm.gstFee, vm.transactionId,vm.paymentId,vm.paymentStatus,vm.InstamojoId, function(res){\r\n if(res && res.status == 200){\r\n if(res.data.ErrorCode == 2001)\r\n {\r\n vm.tranactionErrorCode = res.data.ErrorCode;\r\n $scope.$parent.$parent.main.GetAccountBalance();\r\n vm.transactionMsg = res.data.Message;\r\n vm.showSuccess(vm.transactionMsg);\r\n }\r\n else{ \r\n vm.transactionMsg = res.data.Message; \r\n vm.showFailure(vm.transactionMsg);\r\n } \r\n }\r\n },function(res){\r\n vm.showFailure(vm.transactionMsg);\r\n })\r\n }\r\n \r\n});\nangular.module('inspinia').service('RedirectPaymentService', function (ApiURL, $log, $http, PublicApiURL) {\r\n\r\n\t// this.getPaymentStatus = function(paymentId, transactionId, paymentReqId, success, failure){\r\n\t// \tvar url = ApiURL+\"\";\r\n\r\n\t// \t$http.get().then(function(res){\r\n\t// \t\tif(res && res.data){\r\n\t// \t\t\tsuccess(res.data);\r\n\t// \t\t} else {\r\n\t// \t\t\tfailure(\"Error\", \"Unable to get payment status, server is not responding correctly.\");\r\n\t// \t\t}\r\n\t// \t}, function(err){\r\n\t// \t\tfailure(\"Error\", \"Unable to get payment status, server is not responding correctly.\");\r\n\t// \t});\r\n\t// }\r\n\r\n\tthis.updatePaymentDetails = function(jobCardId, totalAmount, modeOfPayment, transactionId, success, failure){\r\n\t\tvar data ={\r\n\t\t \"JobCardId\": jobCardId,\r\n\t\t \"totalAmount\": totalAmount,\r\n\t\t \"modeOfPayment\": modeOfPayment,\r\n\t\t \"trns_id\": transactionId\r\n\t\t};\r\n\t\t$http.put(PublicApiURL+\"/api/CustomerJobCard/PutCustomerJobCardAmount\", data, \r\n\t\t\t{ headers: { 'Content-Type': 'application/json' } }).then(function(res){\r\n\t\t\tif(res && res.status==200 && res.data && success){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n});\nangular.module('inspinia').controller('RedirectPaymentController', function ($scope, $state, $log, $location, RedirectPaymentService) {\r\n \r\n \tvar vm = this;\r\n\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.main.showFailure\r\n\r\n\r\n\tvar totalAmount = $state.params.ta;\r\n\tvar jobCardId = $state.params.job;\r\n\r\n\tvar transactionId = null;\r\n\t\t\r\n\tvm.getQueryParams = function(){\r\n\t \tvar params = $location.search();\r\n\t \ttransactionId = params.transaction_id;\r\n\t}\r\n\r\n\tvm.getQueryParams();\r\n\tif(transactionId){\r\n\t\tRedirectPaymentService.updatePaymentDetails(jobCardId, totalAmount, \"Online\", transactionId, function(res){\r\n\t\t\tif(res && res.status == 'successful'){\r\n\t\t\t\t$state.go(\"RateJob\", {\t\t\t\t\t\r\n\t\t\t\t\tjobCardId: jobCardId\r\n\t });\r\n\t\t\t}\r\n\t\t}, vm.showFailure)\r\n\t}\r\n});\nangular.module('inspinia').service('RechargeService', function ($http, ApiURL, PublicApiURL, FreelancerURL) {\r\n\r\n this.getAllState = function (userId) {\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId=' + userId + '®ion=INDIA';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n this.getAllCity = function (userId, state) {\r\n var url = PublicApiURL + '/api/Location/GetCity?userId=' + userId + '&subregion=' + state;\r\n return $http.get(url);\r\n }\r\n\r\n this.buyLicenseRequestToGenerateOrderId = function (loggedinUser, amount, token) {\r\n var url = ApiURL + '/api/RazorPay/CreateOrder?amountToBeCharged=' + amount + '&RechargeIn=AccountWallet';\r\n return $http.post(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GoToVerifySignature = function (response, loggedinUser, token) {\r\n var url = ApiURL + '/api/RazorPay/VerifySignature'\r\n return $http.post(url, response, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.updateAccountPaymentDetails = function (token, loggedinUser, data) {\r\n var url = FreelancerURL + '/api/PaymentAccount?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.createPaymentLink = function (data, loggedinUser, token, success, failure) {\r\n $http.post(PublicApiURL + \"/api/Payment/createpaymentlink\", data,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (res && res.data && success) {\r\n success(res.data);\r\n } else if (failure) {\r\n failure();\r\n }\r\n });\r\n }\r\n\r\n this.GetAccountRechageParams = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/account/' + loggedinUser + '/getAccountRechageParams';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n})\r\n\nangular.module('inspinia').controller('RechargeController', function ($uibModal, $localStorage, $window, jobBidCreationService, $scope, toaster, PaymentSectionService, UIURL, RechargeService) {\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\tvm.FirstName = $localStorage.loggedInUser_FirstName;\r\n\tvm.LastName = $localStorage.loggedInUser_LastName;\r\n\tvm.ContactNumber = $localStorage.ContactNumber;\r\n\tvm.CurrencySymbol = $localStorage.accountConfig.CurrencySymbol;\r\n\tvm.response = {};\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t}\r\n\telse {\r\n\t\t//need to get these percentage from servver\r\n\t\tvm.processingFee = 3;\r\n\t\tvm.gstFee = 5;\r\n\t\tvm.minRechageAmount = 5000;\r\n\t\tvm.rechargeAmount = 5000;\r\n\t}\r\n\r\n\r\n\r\n\tvm.GetServiceTax = function (data) {\r\n\t\tvm.gstFee = data;\r\n\t\tvm.calculateRecahge();\r\n\t}\r\n\r\n\tjobBidCreationService.GetServiceTax(loggedinUser, token, vm.GetServiceTax);\r\n\r\n\tvm.calculateRecahge = function () {\r\n\t\tif (vm.rechargeAmount > 0) {\r\n\t\t\t// vm.gstFeeAmount = (vm.rechargeAmount * (vm.gstFee / 100)).toFixed(2);\r\n\t\t\t// vm.subTotal = Number(vm.rechargeAmount) + Number(vm.gstFeeAmount);\r\n\t\t\t// vm.procssingFeeAmount = (vm.subTotal * (vm.processingFee / 100)).toFixed(2);\r\n\t\t\t// vm.totalAmount = (Number(vm.subTotal) + Number(vm.procssingFeeAmount)).toFixed(2);\r\n\t\t\tvm.gstFeeAmount = 0;\r\n\t\t\tvm.subTotal = Number(vm.rechargeAmount);\r\n\t\t\tvm.procssingFeeAmount = 0;\r\n\t\t\tvm.totalAmount = (Number(vm.rechargeAmount));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvm.gstFeeAmount = \"\";\r\n\t\t\tvm.subTotal = \"\";\r\n\t\t\tvm.procssingFeeAmount = \"\";\r\n\t\t\tvm.totalAmount = \"\";\r\n\t\t}\r\n\r\n\t}\r\n\r\n\r\n\tvm.GetAccountRechageParams = function () {\r\n\t\tRechargeService.GetAccountRechageParams(loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.status == 200 && resp.data) {\r\n\t\t\t\tvm.minRechageAmount = Number(resp.data.minAccountRecharge);\r\n\t\t\t\tvm.rechargeAmount = vm.minRechageAmount;\r\n\t\t\t\tvm.processingFee = resp.data.transactionCharge;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tvm.GetAccountRechageParams();\r\n\r\n\tvm.calculateRecahge();\r\n\r\n\r\n\t// To Integrate RazorPay\r\n\r\n\r\n\tfunction GoToUpdateAccount() {\r\n\t\tvar data = {\r\n\t\t\t\"AccountName\": \"\",\r\n\t\t\t\"AccountId\": \"\",\r\n\t\t\t\"RechargeAmount\": vm.rechargeAmount,\r\n\t\t\t\"RechargeBy\": loggedinUser,\r\n\t\t\t\"Description\": \"\",\r\n\t\t\t\"GST\": vm.gstFeeAmount,\r\n\t\t\t// \"TotalAmount\": vm.totalAmount,\r\n\t\t\t\"TotalAmount\": vm.rechargeAmount,\r\n\t\t\t\"PaymentType\": \"online\",\r\n\t\t\t\"Status\": \"Done\",\r\n\t\t\t\"PaymentId\": \"\",\r\n\t\t\t\"TransactionId\": \"\",\r\n\t\t\t\"InstamojoId\": \"\",\r\n\t\t\t\"ProcessingFeeAmount\": vm.procssingFeeAmount,\r\n\t\t\t\"ProcessingFee\": '0',\r\n\t\t\t\"GSTFee\": 0\r\n\t\t\t// \"ProcessingFee\": vm.processingFee,\r\n\t\t\t// \"GSTFee\": vm.gstFee\r\n\t\t};\r\n\t\tif (vm.response) {\r\n\t\t\tdata.PaymentId = vm.response.razorpay_payment_id;\r\n\t\t\tdata.TransactionId = vm.response.razorpay_order_id;\r\n\t\t}\r\n\t\tif (data) {\r\n\t\t\tRechargeService.updateAccountPaymentDetails(token, loggedinUser, data).then( function (res) {\r\n\t\t\t\tif (res && res.status == 200) {\r\n\t\t\t\t\tvm.showSuccess('Success', res.data.Message);\r\n\t\t\t\t\t$scope.$parent.$parent.main.GetAccountBalance();\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tvm.showSuccess('Failed', res.data.Message);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tfunction GoToVerifySingnature(response) {\r\n\t\tvm.response = response;\r\n\t\tvm.response.RechargeIn = \"AccountWallet\";\r\n\t\tRechargeService.GoToVerifySignature(vm.response, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp.status == '202') {\r\n\t\t\t\tvm.showSuccess('Success', 'Payment Done Successfully');\r\n\t\t\t\tGoToUpdateAccount();\r\n\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tfunction goToNextStepForPayment(orderId, event) {\r\n\t\tCallbackToGetResponse = function (response) {\r\n\t\t\tif (response) {\r\n\t\t\t\tGoToVerifySingnature(response);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar options = {\r\n\t\t\t\"key\": \"rzp_test_pKf3uRdmvsAUdL\", // Enter the Key ID generated from the Dashboard\r\n\t\t\t\"amount\": \"\", // Amount is in currency subunits. Default currency is INR. Hence, 50000 refers to 100 paise or INR 500.\r\n\t\t\t\"currency\": \"INR\",\r\n\t\t\t\"name\": \"\",\r\n\t\t\t\"description\": \"Account Recharge\",\r\n\t\t\t\"image\": \"\",\r\n\t\t\t\"order_id\": \"\",\r\n\t\t\t\"handler\": CallbackToGetResponse,\r\n\t\t\t\"prefill\": { \"name\": \"\", \"email\": \"innotiontechnologies@gmail.com\", \"contact\": \"\" },\r\n\t\t\t\"notes\": { \"address\": \"C-22A, Sector 57, Noida, UP\" },\r\n\t\t\t\"theme\": { \"color\": \"#F37254\" }\r\n\t\t};\r\n\t\toptions.currency = vm.CurrencySymbol;\r\n\t\toptions.amount = vm.totalAmount;\r\n\t\toptions.order_id = orderId;\r\n\t\toptions.prefill.name = vm.FirstName + \" \" + vm.LastName;\r\n\t\toptions.prefill.contact = vm.ContactNumber;\r\n\t\t// options.prefill.contact = \"8051747909\";\r\n\t\toptions.name = vm.FirstName + \" \" + vm.LastName;\r\n\r\n\t\tvar rzp1 = new Razorpay(options);\r\n\t\trzp1.open();\r\n\t\tevent.preventDefault();\r\n\r\n\t}\r\n\r\n\tvm.makePayment = function (event) {\r\n\t\tvm.recharge_form.submitted = true;\r\n\t\tif (vm.rechargeAmount < vm.minRechageAmount) {\r\n\t\t\tvm.recharge_form.recharge.$invalid = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar orderId = '';\r\n\t\tif (vm.recharge_form.$valid) {\r\n\t\t\tRechargeService.buyLicenseRequestToGenerateOrderId(loggedinUser, vm.rechargeAmount, token).then(function (resp) {\r\n\t\t\t\tif (resp.status = 201) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", 'Order id generate' + resp.statusText);\r\n\t\t\t\t\torderId = resp.data;\r\n\t\t\t\t\tif (orderId) {\r\n\t\t\t\t\t\tgoToNextStepForPayment(orderId, event);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.showSuccess(\"Failed\", 'Order id not generate' + resp.statusText);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t// To Integrate Instamojo\r\n\r\n\r\n\t// vm.makePayment = function(){\r\n\t// \tvm.recharge_form.submitted = true;\r\n\t// \tif(vm.rechargeAmount < vm.minRechageAmount){\r\n\t// \t\tvm.recharge_form.recharge.$invalid = true;\r\n\t// \t\treturn;\t\r\n\t// \t}\r\n\t// \tif(vm.recharge_form.$valid){\r\n\t// \t\tvar paymentInfo = {\r\n\t// \t\t\t\"name\": $localStorage.loggedInUser_FirstName+' '+$localStorage.loggedInUser_LastName,\r\n\t// \t\t\t\"phone\" : $localStorage.ContactNumber,\r\n\t// \t\t\t\"rechargeAmount\": vm.rechargeAmount,\r\n\t// \t\t\t//\"rechargeAmount\": \"4999\",\r\n\t// \t\t\t\"amount\": vm.totalAmount,\r\n\t// \t\t//\t\"redircet_url\": encodeURI($window.origin + \"/#/index/RedirectUserPaymentUrl/\" + loggedinUser+ \"/\" + vm.rechargeAmount + \"/\" + vm.procssingFeeAmount + \"/\" + vm.gstFeeAmount + \"/\" + vm.totalAmount + \"/\" + vm.processingFee +\"/\" + vm.gstFee)\r\n\t// \t\t\t\"redircet_url\": $window.origin + \"/#/index/RedirectUserPaymentUrl/\"\r\n\r\n\t// \t}\r\n\t// \tRechargeService.createPaymentLink(paymentInfo, loggedinUser, token, function(res){\r\n\t// \t\tif(res.ErrorCode)\r\n\t// \t\t{\r\n\t// \t\t\tvm.showFailure(\"Failed\", res.ErrorDesc);\r\n\t// \t\t}\r\n\t// \t\telse\r\n\t// \t\t{\r\n\t// \t\t\t$window.location.href = res.Link;\r\n\t// \t\t}\r\n\r\n\t// \t}, function(){\r\n\t// \t\tvm.showFailure(\"Failed\", \"Unable to get payment link, server is not responding correctly.\");\r\n\t// \t});\r\n\t// }\r\n\t// }\r\n\r\n\t$(function () {\r\n\t\t$(\".number-only\").keypress(function (e) {\r\n\t\t\tif (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {\r\n\t\t\t\t$(\"#wdm_errmsg\").html(\"Please Enter Digits Only\").show().fadeOut(\"slow\");\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\t/* Do not allow paste */\r\n\t\t$('.number-only').bind(\"paste\", function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t});\r\n\t\t// $('.number-only').keypress(function(e) {\r\n\t\t// if(isNaN(this.value+\"\"+String.fromCharCode(e.charCode))) return false;\r\n\t\t// })\t\r\n\r\n\t});\r\n})\nangular.module('inspinia').service('Project_Details_LatestService', function(ApiURL, $log, $http){\r\n\r\n\r\n//http://115.124.122.225:93/CoreAPI/api/Ticket/sachin.rana%40innotiontech.com/Uttar%20Pradesh/Drive%20Test/GetByCircleProjectName\r\nthis.GetTicketByCircleProjectName = function(loggedinUser, circle, projectName, token){\r\n var url = ApiURL + '/api/Ticket/' + loggedinUser + '/' + circle + '/' + projectName + '/GetByCircleProjectName'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','Token':token,'UserId':loggedinUser}\r\n });\r\n}\r\n// https://product.mymobiforce.com/coreapi/api/Ticket/Gati%20Tikona%20Lavelle%20Networks/GetTicketsByProjectName\r\nthis.GetTicketByCircleProjectNameOnLoad = function(loggedinUser, projectName, token){\r\n var url = ApiURL + '/api/Ticket/' + '/' + projectName + '/GetTicketsByProjectName'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','Token':token,'UserId':loggedinUser}\r\n });\r\n}\r\n\r\n\r\n//http://115.124.122.225:93/CoreAPI/api/ProjectLocation/sachin.rana%40innotiontech.com/tata_Drive%20Test/GetProjectLocationByProjectId\r\n\r\nthis.GetLocationByProjectId = function(loggedinUser,projectId, token){\r\n var url = ApiURL + '/api/ProjectLocation/' + loggedinUser + '/' + projectId + '/GetProjectLocationByProjectId'\r\n return $http.get(url,{\r\n headers: {'Content-Type': 'application/json','Token':token,'UserId':loggedinUser}\r\n })\r\n}\r\n\r\n\r\n\r\n});\nangular.module('inspinia').controller('Project_Details_LatestController', function ($stateParams, $timeout, $uibModal, $scope, $log, $state, $localStorage, Project_Details_LatestService, ProjectService, DTOptionsBuilder, DTColumnDefBuilder) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if (!loggedinUser) {\r\n $state.go('Login',{\r\n reload:true\r\n });\r\n }else{\r\n vm.ProjectId = $stateParams.projectId;\r\n vm.pocLocation = $stateParams.pocLocation;\r\n vm.projectName = $stateParams.projectName;\r\n vm.pocName = $stateParams.pocName;\r\n vm.pocNumber = $stateParams.pocNumber;\r\n vm.circleTicketList = '';\r\n vm.ticketCircle = vm.pocLocation;\r\n vm.projectModel = '';\r\n vm.selectedLocation = '';\r\n vm.circle = '';\r\n\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n vm.backlist = function () {\r\n \r\n $state.go('index.Project1',{reload: true });\r\n\r\n}\r\n\r\n vm.exportData = function () {\r\n var blob = new Blob([document.getElementById('job-Table').innerHTML], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, \"Report.xls\");\r\n };\r\n\r\n // vm.GetProjectById = function(ProjectId){\r\n // ProjectService.GetProjectByProjectId(loggedinUser,ProjectId).then(function(resp)\r\n // {\r\n // vm.projectModel = resp.data;\r\n // },function(error){\r\n // //$log.log('error occured in GetProjectById');\r\n // });\r\n // }\r\n\r\n vm.GetProjectLocations = function () {\r\n ProjectService.GetProjectLocations(loggedinUser, vm.ProjectId, vm.pocLocation, token).then(function (resp) {\r\n vm.projectModel = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured in GetProjectLocations');\r\n })\r\n }\r\n\r\n vm.GetProjectLocationsByProjectId = function (projectId, circle) {\r\n ProjectService.GetProjectLocations(loggedinUser, projectId, circle, token).then(function (resp) {\r\n vm.projectModel = resp.data;\r\n vm.GetTicketsByLocations(circle);\r\n }, function (error) {\r\n //$log.log('error occured in GetProjectLocations');\r\n })\r\n }\r\n\r\n\r\n\r\n vm.GetLocationByProjectId = function () {\r\n Project_Details_LatestService.GetLocationByProjectId(loggedinUser, vm.ProjectId, token).then(function (resp) {\r\n vm.selectedLocation = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured in GetProjectLocations');\r\n })\r\n }\r\n vm.GetTicketByCircleProjectName = function () {\r\n Project_Details_LatestService.GetTicketByCircleProjectName(loggedinUser, vm.ticketCircle, vm.projectName, token).then(function (resp) {\r\n vm.circleTicketList = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured in GetTicketByCircleProjectId');\r\n })\r\n }\r\n vm.GetTicketByCircleProjectNameOnLoad = function () {\r\n Project_Details_LatestService.GetTicketByCircleProjectNameOnLoad(loggedinUser, vm.projectName, token).then(function (resp) {\r\n vm.circleTicketList = resp.data;\r\n }, function (error) {\r\n })\r\n }\r\n\r\n vm.GetTicketsByLocations = function (circle) {\r\n Project_Details_LatestService.GetTicketByCircleProjectName(loggedinUser, circle, vm.projectName, token).then(function (resp) {\r\n vm.circleTicketList = resp.data;\r\n if (vm.circleTicketList == null) {\r\n vm.circleTicketList = '';\r\n }\r\n }, function (error) {\r\n vm.circleTicketList = '';\r\n //$log.log('error occured in GetTicketsByLocations');\r\n })\r\n }\r\n\r\n\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withButtons([{extend:'colvis'},{extend:'csv'}])\r\n \r\n \r\n .withPaginationType('full_numbers')\r\n .withOption('lengthChange', true)\r\n .withOption('paging', true)\r\n .withOption('bInfo',true)\r\n .withOption('order', [0, 'desc']);\r\n \r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n //DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable()];\r\n \r\n\r\n vm.GetProjectLocations();\r\n vm.GetLocationByProjectId();\r\n vm.GetTicketByCircleProjectNameOnLoad();\r\n\r\n }\r\n \r\n\r\n});\nangular.module('inspinia').service('RateJobService', function($http, ApiURL, PublicApiURL){\r\n\r\n\tthis.rateCustomer = function(accountId, jobCardId, rating, feedback, success, failure){\r\n\t\tvar data = {\r\n\t\t \"JobCardId\": jobCardId,\r\n\t\t \"accountId\": accountId,\r\n\t\t \"rating\": rating,\r\n\t\t \"feedback\": feedback\r\n\t\t};\r\n\t\t$http.put(PublicApiURL+\"/api/CustomerJobCard/PutCustomerJobCardRating\", data, \r\n\t\t\t{ headers: { 'Content-Type': 'application/json' } }).then(function(res){\r\n\t\t\tif(res && res.status==202 && success){\r\n\t\t\t\tsuccess();\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.getCustomerJobCard = function(jobCardId, success, failure){\r\n\t\t$http.get(PublicApiURL+\"/api/CustomerJobCard/\"+jobCardId+\"/GetCustomerJobCard\").then(function(res){\r\n\t\t\tif(res && res.data && success){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\r\n\tthis.getAllReasonStatements = function(success, failure){\r\n\t\t$http.get(PublicApiURL+\"/api/ReasonStatement/getallreasonstatements\").then(function(res){\r\n\t\t\tif(res && res.data && success){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n});\nangular.module('inspinia').controller('RateJobController', function (UIURL, $scope, $state, $stateParams, $localStorage, $log, $timeout, RateJobService, ImageUrl) {\r\n var vm = this;\r\n\r\n var jobCardId = $stateParams.jobCardId;\r\n \r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n\r\n vm.feedback = {};\r\n\r\n vm.ticketId = '';\r\n\r\n\r\n\r\n vm.confirmationModalObj={};\r\n\r\n vm.rateCustomer = function(){\r\n vm.feedbackStr = \"\";\r\n angular.forEach(vm.feedback, function(v, k){\r\n if(v){\r\n vm.feedbackStr+=k+\",\";\r\n }\r\n });\r\n if(vm.otherRatingFeedback && vm.otherRatingFeedback.length>0){\r\n vm.feedbackStr+=vm.otherRatingFeedback;\r\n } else {\r\n vm.feedbackStr=vm.feedbackStr.length>0?vm.feedbackStr.substr(0, vm.feedbackStr.length-1):null;\r\n }\r\n \r\n RateJobService.rateCustomer(accountId, jobCardId, vm.rating, vm.feedbackStr, function(){\r\n vm.showSuccess(\"Success\", \"Rated successfully\");\r\n $timeout(function() {\r\n $localStorage.rateJobParams = {\r\n rating: vm.rating,\r\n status: \"RatingDone\"\r\n }\r\n $state.go('PaymentSection', {\r\n accountId: accountId,\r\n jobCardId: jobCardId,\r\n reload: true\r\n });\r\n }, 2000);\r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n\r\n vm.getCustomerJobCard = function(){\r\n RateJobService.getCustomerJobCard(jobCardId, function(data){\r\n vm.ticketId = data.JobId;\r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n }); \r\n }\r\n\r\n\r\n vm.getCustomerJobCard();\r\n\r\n vm.getRatingMeaning = function(){\r\n switch(parseInt(vm.rating)){\r\n case 1: return \"Terrible\"; \r\n case 2: return \"Bad\";\r\n case 3: return \"Ok\";\r\n case 4: return \"Good\";\r\n case 5: return \"Excellent\";\r\n default: return \"\";\r\n }\r\n }\r\n\r\n vm.reasons = {\"CancelationList\":[], \"RescheduleList\":[], \"RatingList\":[]};\r\n vm.getAllReasonStatements = function(){\r\n RateJobService.getAllReasonStatements(function(data){\r\n if(data && data.CancelationList){\r\n vm.reasons.CancelationList = data.CancelationList;\r\n vm.cancelReason = vm.reasons.CancelationList[0];\r\n }\r\n if(data && data.RescheduleList){\r\n vm.reasons.RescheduleList = data.RescheduleList;\r\n vm.rescheduleReason = vm.reasons.RescheduleList[0];\r\n }\r\n if(data && data.RatingList && data.RatingList.length>0){\r\n vm.reasons.RatingList = data.RatingList;\r\n }\r\n }, function(){\r\n\r\n });\r\n }\r\n vm.getAllReasonStatements();\r\n\r\n vm.getRatingFeedbackList = function(rating){\r\n var feedbackList = [];\r\n angular.forEach(vm.reasons.RatingList, function(d){\r\n if(d && d.Rating==rating){\r\n feedbackList=d.ReasonList;\r\n return;\r\n }\r\n });\r\n $log.log(\"getRatingFeedbackList result\", feedbackList);\r\n return feedbackList;\r\n }\r\n\r\n vm.getImageUrl = function(image){\r\n return ImageUrl + \"/\" +image;\r\n }\r\n})\nangular.module('inspinia').service('ProjectDetailService', function(ApiURL, $log, $http){\r\n\r\n\r\n//http://115.124.122.225:93/CoreAPI/api/Ticket/sachin.rana%40innotiontech.com/Uttar%20Pradesh/Drive%20Test/GetByCircleProjectName\r\nthis.GetTicketByCircleProjectName = function(loggedinUser, circle, projectName, token){\r\n var url = ApiURL + '/api/Ticket/' + loggedinUser + '/' + circle + '/' + projectName + '/GetByCircleProjectName'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':loggedinUser}\r\n });\r\n}\r\n\r\n\r\n//http://115.124.122.225:93/CoreAPI/api/ProjectLocation/sachin.rana%40innotiontech.com/tata_Drive%20Test/GetProjectLocationByProjectId\r\n\r\nthis.GetLocationByProjectId = function(loggedinUser,projectId, token){\r\n var url = ApiURL + '/api/ProjectLocation/' + loggedinUser + '/' + projectId + '/GetProjectLocationByProjectId'\r\n return $http.get(url,{\r\n headers: {'Content-Type': 'application/json','Token':token, 'UserId':loggedinUser}\r\n })\r\n}\r\n\r\n\r\n\r\n});\nangular.module('inspinia').controller('ProjectDetailController', function ($stateParams, $uibModal, $scope, $log, $state, $localStorage, ProjectDetailService, ProjectService, DTOptionsBuilder, DTColumnDefBuilder) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if (!loggedinUser) {\r\n $state.go('Login',{\r\n reload:true\r\n });\r\n }else{\r\n vm.ProjectId = $stateParams.projectId;\r\n vm.pocLocation = $stateParams.pocLocation;\r\n vm.projectName = $stateParams.projectName;\r\n vm.pocName = $stateParams.pocName;\r\n vm.pocNumber = $stateParams.pocNumber;\r\n vm.circleTicketList = '';\r\n vm.ticketCircle = vm.pocLocation;\r\n vm.projectModel = '';\r\n vm.selectedLocation = '';\r\n vm.circle = '';\r\n\r\n vm.editProject = function (projectId) {\r\n $state.go('index.ProjectEdit', {\r\n projectId: projectId\r\n });\r\n }\r\n\r\n\r\n vm.exportData = function () {\r\n var blob = new Blob([document.getElementById('job-Table').innerHTML], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, \"Report.xls\");\r\n };\r\n\r\n // vm.GetProjectById = function(ProjectId){\r\n // ProjectService.GetProjectByProjectId(loggedinUser,ProjectId).then(function(resp)\r\n // {\r\n // vm.projectModel = resp.data;\r\n // },function(error){\r\n // //$log.log('error occured in GetProjectById');\r\n // });\r\n // }\r\n\r\n vm.GetProjectLocations = function () {\r\n ProjectService.GetProjectLocations(loggedinUser, vm.ProjectId, vm.pocLocation, token).then(function (resp) {\r\n vm.projectModel = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured in GetProjectLocations');\r\n })\r\n }\r\n\r\n vm.GetProjectLocationsByProjectId = function (projectId, circle) {\r\n ProjectService.GetProjectLocations(loggedinUser, projectId, circle, token).then(function (resp) {\r\n vm.GetTicketsByLocations(circle);\r\n vm.projectModel = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured in GetProjectLocations');\r\n })\r\n }\r\n\r\n\r\n\r\n vm.GetLocationByProjectId = function () {\r\n ProjectDetailService.GetLocationByProjectId(loggedinUser, vm.ProjectId, token).then(function (resp) {\r\n vm.selectedLocation = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured in GetProjectLocations');\r\n })\r\n }\r\n vm.GetTicketByCircleProjectName = function () {\r\n ProjectDetailService.GetTicketByCircleProjectName(loggedinUser, vm.ticketCircle, vm.projectName, token).then(function (resp) {\r\n vm.circleTicketList = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured in GetTicketByCircleProjectId');\r\n })\r\n }\r\n\r\n vm.GetTicketsByLocations = function (circle) {\r\n ProjectDetailService.GetTicketByCircleProjectName(loggedinUser, circle, vm.projectName, token).then(function (resp) {\r\n vm.circleTicketList = resp.data;\r\n if (vm.circleTicketList == null) {\r\n vm.circleTicketList = '';\r\n }\r\n }, function (error) {\r\n vm.circleTicketList = '';\r\n //$log.log('error occured in GetTicketsByLocations');\r\n })\r\n }\r\n\r\n\r\n // var prev=0;\r\n // vm.dtOptions = DTOptionsBuilder.newOptions()\r\n // .withDOM('<\"html5buttons\"B>lTfrgitp')\r\n // .withButtons([{ extend: 'colvis' }, { extend: 'csv', filename: function () { return vm.getFileNameExport() } }])\r\n // // .withButtons([{extend:'csv'}])\r\n // .withOption('stateSave', true)\r\n // .withOption('deferRender', true)\r\n // .withOption('stateSaveCallback', function (settings, data) {\r\n // localStorage.setItem('JoblistTableProp', JSON.stringify(data));\r\n // })\r\n // .withOption('stateLoadCallback', function (settings) {\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp')\r\n .withButtons([{extend:'csv'}])\r\n \r\n .withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n // .withOption('order', [1, 'desc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(11).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(12).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(13).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(14).notSortable()\r\n ];\r\n\r\n vm.GetProjectLocations();\r\n vm.GetLocationByProjectId();\r\n vm.GetTicketByCircleProjectName();\r\n\r\n }\r\n \r\n\r\n});\nangular.module('inspinia').service('ProjectLatestService', function (ApiURL, $log, $http, $localStorage) {\r\n\r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n //http://115.124.122.225:93/CoreAPI/api/Project/srachit46%40gmail.com/srachit46%40gmail.com/GetProjectsByUserId\r\n\r\n this.GetAllProjects1 = function (loggedinUser, callback, token) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + loggedinUser + '/GetProjectsByUserId'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token,'UserId':loggedinUser }\r\n }).then(function (res) {\r\n callback(res.data);\r\n }, function () {\r\n vm.showFailure(\"Projects\", \"Unable to get projects\");\r\n });\r\n }\r\n\r\n this.GetAllProjects = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + loggedinUser + '/GetProjectsByUserId'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token }\r\n })\r\n }\r\n\r\n\r\n //http://115.124.122.225:93/CoreAPI/api/Project/srachit46%40gmail.com/tata_Test%20Project/GetProjectById\r\n\r\n this.GetProjectByProjectId = function (projectId, loggedinUser, token, callback) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + projectId + '/GetProjectById'\r\n return $http.get(url, {\r\n\r\n headers: { 'Content-Type': 'application/json' ,'Token':token,'UserId':loggedinUser}\r\n }).then(function (resp) {\r\n callback(resp.data);\r\n }, function (error) {\r\n vm.showFailure(\"Failed\", 'Could not be able to get project, id =' + projectId);\r\n });\r\n }\r\n\r\n\r\n\r\n this.ProjectsList = function () {\r\n var url = ApiURL;\r\n return $http.get(url);\r\n }\r\n //http://115.124.122.225:93/CoreAPI/api/ProjectLocation/sachin.rana%40innotiontech.com/tata_Drive%20Test/Tamilnadu/GetProjectLocation\r\n this.GetProjectLocations = function (loggedinUser, projectId, circle, token) {\r\n var url = ApiURL + '/api/ProjectLocation/' + loggedinUser + '/' + projectId + '/' + circle + '/GetProjectLocation'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token }\r\n });\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('ProjectLatestController', function (ProjectLatestService, ProjectCreationService, customerService, $stateParams, $uibModal, $scope, $log, $state, $localStorage, DTOptionsBuilder, DTColumnDefBuilder) {\r\n var vm = this;\r\n if (!$localStorage.loggedInUserId) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.searchText = \"\"\r\n var circleArray = [];\r\n var ProjectModal = {};\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n var projectIndex = 0;\r\n //vm.projectId = '';\r\n vm.projects = [];\r\n vm.client = 1;\r\n vm.projectId = '';\r\n vm.project_name = '';\r\n vm.customerId = '';\r\n vm.circle = '';\r\n vm.start_date = '';\r\n vm.end_date = '';\r\n vm.sla = '';\r\n vm.projectModel = '';\r\n vm.pocLocation = '';\r\n vm.SupervisorName = '';\r\n vm.pocNumber = '';\r\n vm.pocName = '';\r\n vm.projectLocations = '';\r\n vm.projectName = '';\r\n vm.filters = {};\r\n vm.filterOptions = {};\r\n vm.selectedFilters = {};\r\n vm.dtInstance = {};\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n ProjectLatestService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n ProjectLatestService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n $scope.$parent.$parent.main.implementSelectItems('projects', this);\r\n\r\n vm.exportData = function () {\r\n var blob = new Blob([document.getElementById('project-table').innerHTML], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, \"Report.xls\");\r\n };\r\n\r\n vm.preProcessData = function(project){\r\n var skills = \"\";\r\n angular.forEach(project.ProjectLocationModels, function(l){\r\n skills += l.Circle + \",\";\r\n }); \r\n project.allLocations = skills.length>0?skills.substring(0, skills.length-1):\"\";\r\n }\r\n\r\n ///Get all Project for Logged in Users\r\n vm.GetAllProjects = function () {\r\n vm.projects = [];\r\n ProjectLatestService.GetAllProjects1(loggedinUser, vm.createCallback(vm.projects, [function () {\r\n vm.list_width = vm.projects.length == 0 ? 12 : 8;\r\n vm.projectModel = vm.projects[0];\r\n angular.forEach(vm.projects, function(p){\r\n vm.preProcessData(p);\r\n });\r\n }]), token);\r\n }\r\n\r\n vm.GetProjectInfo = function (projectId) {\r\n ProjectLatestService.GetProjectByProjectId(projectId, loggedinUser, token, vm.createCallback(null, [function (data) {\r\n vm.projectModel = data;\r\n \r\n }]));\r\n }\r\n\r\n vm.openProjectModal = function () {\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'approve_model.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.CloseModal = function () {\r\n ProjectModal.close();\r\n }\r\n\r\n vm.ProjectView = function () {\r\n $state.go('index.ProjectProfile', {\r\n\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.editProject = function (projectId) {\r\n $state.go('index.ProjectEditLatest', {\r\n projectId: projectId\r\n });\r\n }\r\n\r\n\r\n vm.ViewProject = function (pocLocation, projectId, projectName) {\r\n $state.go('index.Project_Details_Latest', {\r\n pocLocation: pocLocation,\r\n projectId: projectId,\r\n projectName: projectName\r\n // SupervisorName:SupervisorName,\r\n // pocNumber:pocNumber,\r\n // pocName:pocName\r\n },\r\n {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n\r\n });\r\n }\r\n\r\n vm.getAllCustomer = function (loggedinUser) {\r\n customerService.getAllCustomers(loggedinUser, token).then(function (resp) {\r\n vm.customers = resp.data;\r\n });\r\n }\r\n\r\n vm.filtermodal = function () {\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'Filter.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.CloseModal = function () {\r\n ProjectModal.close();\r\n }\r\n\r\n vm.getAllCircles = function () {\r\n vm.circleArray=[];\r\n vm.circles=[];\r\n ProjectCreationService.GetAllCircles1(vm.createCallback(vm.circles, [function (data) {\r\n angular.forEach(data, function (d) {\r\n vm.circleArray.push({\r\n workArea: d.circle\r\n });\r\n })\r\n //$log.log(vm.circleArray, vm.circles);\r\n }]));\r\n }\r\n\r\n vm.search = function () {\r\n \r\n if (Object.keys(vm.filters).length > 0) {\r\n vm.filterOptions = {};\r\n angular.extend(vm.filterOptions, vm.filters);\r\n if(vm.filters.workArea){\r\n vm.filterOptions.ProjectLocationModels = {};\r\n vm.filterOptions.ProjectLocationModels.Circle = vm.filters.workArea[0];\r\n }\r\n } else {\r\n vm.filterOptions = {};\r\n }\r\n //$log.log(vm.filterOptions);\r\n ProjectModal.close();\r\n }\r\n\r\n vm.GetAllProjects();\r\n // vm.getAllCircles();\r\n vm.getAllCustomer(loggedinUser);\r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n vm.editProject = function (projectId) {\r\n $state.go('index.ProjectEditLatest', {\r\n projectId: projectId\r\n });\r\n }\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withButtons([{extend:'colvis'},{extend:'csv'}])\r\n \r\n \r\n .withPaginationType('full_numbers')\r\n .withOption('lengthChange', true)\r\n .withOption('paging', true)\r\n .withOption('bInfo',true)\r\n .withOption('order', [0, 'desc']);\r\n \r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0),\r\n //DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2),\r\n DTColumnDefBuilder.newColumnDef(3),\r\n DTColumnDefBuilder.newColumnDef(4),\r\n DTColumnDefBuilder.newColumnDef(5)];\r\n }\r\n\r\n vm.PieChart5 = {\r\n data: [226, 134],\r\n options: {\r\n fill: [\"#1ab394\", \"#d7d7d7\"]\r\n }\r\n};\r\n\r\n});\nangular.module('inspinia').service('ProjectCreationLatestService', function (ApiURL, LocationURL, $log, $http, $localStorage,PublicApiURL) {\r\n\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n this.CreateProject = function (projectFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/Project?reqUserId=' + loggedinUser;\r\n return $http.post(url, projectFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n this.UpdateProject = function (projectFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/Project?reqUserId=' + loggedinUser;\r\n return $http.put(url, projectFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n this.GetAllCustomers = function (loggedinUser, token){\r\n var url = ApiURL + '/api/Customer?reqUserId=' + loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n\r\n this.GetAllCircles = function(loggedinUser){\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllCircles'\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json'}\r\n });\r\n }\r\n\r\n this.GetAllCircles1 = function(callback){\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllCircles'\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json'}\r\n }).then(function(resp){\r\n if(callback){\r\n callback(resp.data);\r\n }\r\n }, function(){\r\n vm.showFailure(\"Circles\", \"Unable to get cirlces\");\r\n });\r\n }\r\n \r\n this.GetTelecomCircle = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetTelecomCircles?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.GetPointofContacts = function(loggedinUser,customerId, token)\r\n {\r\n var url = ApiURL + '/api/CustomerContact/' + loggedinUser + '/' + customerId + '/GetCustomerContactsByCustomerId'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n\r\n this.GetAllSupervisors = function(role,loggedinUser, token){\r\n var url = ApiURL + '/api/User/'+role+ '/' + \"UserStatus\"+ '/'+ \"Active\" +'/byRole?reqUserId=' + loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n }); \r\n }\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetCountry?userId=U420000000001\r\n this.getCountry = function (userId,token) {\r\n var url = PublicApiURL + '/api/Address/GetCountry?userId=' + userId;\r\n return $http.get(url, {\r\n headers:{'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':userId}\r\n //params: {}\r\n });\r\n }\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetStates?userId=U420000000001&country=QATAR\r\n this.getStates = function (userId,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':userId}\r\n });\r\n }\r\n\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetCities?userId=U420000000001&state=DOHA\r\n this.getCities = function (userId, state) {\r\n var url = PublicApiURL + '/api/Address/GetCities?userId=' + userId + '&state=' + state;\r\n return $http.get(url, {\r\n headers:{'Content-Type':'application/json',\r\n 'UserId':userId}\r\n });\r\n }\r\n // this.GetUsersByRole = function (loggedinUser, role, itemNames,itemValues) {\r\n // var url = ApiURL + '/api/User/'+role+ '/' + itemNames+ '/'+ itemValues+'/byRole?reqUserId=' + loggedinUser;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json'\r\n // }\r\n // });\r\n // }\r\n\r\n this.GetProjectByProjectId = function (loggedinUser,projectId, token) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + projectId + '/GetProjectById'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/SkillSets?reqUserId=U400000000001\r\n this.getAllSkills = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers: {'Token': token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 200 && res.data){\r\n success(res.data);\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get skill list, server error.\")\r\n })\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/GetAllMaster?UserId=U400000000001\r\n // https://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/GetAll?UserId=U400000000001\r\n this.GetAllSchedulingRule = function(loginUser, token){\r\n // var url = ApiURL + '/api/MasterSelectionCriteria/GetAllMaster?UserId='+loginUser;\r\n var url = ApiURL + '/api/MasterSelectionCriteria/GetAll?UserId=' + loginUser;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loginUser }\r\n });\r\n }\r\n\r\n\r\n\r\n \r\n});\nangular.module('inspinia').controller('ProjectCreationLatestController', function ($scope, $state, DTOptionsBuilder, DTColumnBuilder, $q, $compile, $stateParams, $timeout, $log, $uibModal, ProjectCreationLatestService, $localStorage, $filter, toaster) {\r\n\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.loggedinUserRole = $localStorage.loggedInUser_Role;\r\n var projectId = '';\r\n vm.IsPCLink = $localStorage.accountConfig.IsPCLink;\r\n vm.managerId = '';\r\n var projectId_ForUpdate = $stateParams.projectId;\r\n vm.allcustomers = '';\r\n vm.editMode = false;\r\n vm.FixedBidPrice = false;\r\n vm.DynamicPricing = false;\r\n vm.IsCustomerAppointmentNeeded = false;\r\n vm.IsHappyCodeEnabled = false;\r\n vm.IsQuickResolveTicketsEnable = false;\r\n vm.IsSpareShipmentEnabled = false;\r\n vm.IsOnSiteReportEnabled = false;\r\n vm.GeoFenceEnabled = false;\r\n vm.avg_time_close = true;\r\n vm.range = 0;\r\n // vm.PriceBid = 'ON';\r\n var role = 'Supervisor';\r\n /// for declaration\r\n vm.ProjectName = '';\r\n vm.saveAndNewFlag = false;\r\n vm.isDisabled = false;\r\n vm.ProjectManager = '';\r\n vm.StartDate = moment();\r\n vm.EndDate = moment();\r\n vm.Customer = '';\r\n vm.ProjectDescription = '';\r\n vm.AvgTimeClose = '';\r\n vm.MeetingCustAppointment = '';\r\n vm.WithinDay = '';\r\n vm.Circle = '';\r\n vm.POC = '';\r\n vm.Supervisor = '';\r\n vm.mFirstName = '';\r\n vm.mLastName = '';\r\n vm.mMobile = '';\r\n vm.mOtherMobile = '';\r\n vm.mEmail = '';\r\n vm.Projects = [];\r\n vm.pocId = '';\r\n vm.Policies = [];\r\n vm.pocDataGlobal = [];\r\n vm.POCList = [];\r\n vm.CircleList = [];\r\n vm.tcircle = '';\r\n vm.globalMainPOCData = [];\r\n vm.projectManagerList = '';\r\n vm.price = '';\r\n vm.circleArray = '';\r\n vm.Skill = '';\r\n vm.AllSchedulingRuleList = [];\r\n vm.RemaningSkillSet = [];\r\n vm.AllSkillList = [];\r\n vm.showSchedulingTable = false;\r\n vm.ScheduleingRuleSkill = [];\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.LocationMapping = vm.getAccountConfigSetting('LocationMapping');\r\n ProjectCreationLatestService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n ProjectCreationLatestService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n vm.showLocation = false;\r\n if(vm.IsPCLink){\r\n vm.showLocation = true;\r\n }\r\n\r\n if ($state.current.name == 'index.ProjectCreationLatest') {\r\n var POC_1 = {\r\n LocationOf_1: '',\r\n POCOf_1: '',\r\n SupervisorOf_1: '',\r\n CustomerOf_1: ''\r\n };\r\n vm.POCList.push(POC_1);\r\n }\r\n\r\n vm.removePoc = function () {\r\n var lastpoc = vm.POCList.length - 1;\r\n vm.POCList.splice(lastpoc);\r\n }\r\n \r\n //For ProjectEdit Mode\r\n if ($state.current.name == 'index.ProjectEditLatest') {\r\n vm.editMode = true;\r\n ProjectCreationLatestService.GetProjectByProjectId(loggedinUser, projectId_ForUpdate, token).then(function (resp) {\r\n var projectData = resp.data;\r\n // vm.skillrulemap = projectData.ProjectSkillRulesMap;\r\n vm.ScheduleingRuleSkill = Object.keys(projectData.ProjectSkillRulesMap);\r\n vm.AllSchedulingRuleList = Object.values(projectData.ProjectSkillRulesMap);\r\n var ruleIdList =[];\r\n for(var i = 0 ; i < vm.AllSchedulingRuleList.length; i++){\r\n var temp = [];\r\n for( var j = 0; j< vm.AllSchedulingRuleList[i].length; j++){\r\n if(vm.AllSchedulingRuleList[i][j].IsEnable){\r\n temp.push(vm.AllSchedulingRuleList[i][j].RuleId);\r\n }\r\n }\r\n ruleIdList.push(temp);\r\n }\r\n \r\n for(var map = 0 ; map < ruleIdList.length; map++){\r\n vm.skillrulemap[vm.ScheduleingRuleSkill[map]] = ruleIdList[map];\r\n }\r\n console.log(vm.skillrulemap);\r\n ProjectCreationLatestService.getAllSkills(loggedinUser, token, function (data) {\r\n vm.AllSkillSets = data;\r\n vm.RemaningSkillSet[0] = vm.AllSkillSets.slice(); \r\n for(var index = 0; index< vm.ScheduleingRuleSkill.length; index++){\r\n if(index > 0){\r\n vm.addMoreSkill(index-1);\r\n }\r\n vm.renderRuleTable(vm.ScheduleingRuleSkill[index], vm.AllSchedulingRuleList[index], index);\r\n }\r\n\r\n vm.GetPointofContacts(projectData.CustomerId);\r\n vm.ProjectName = projectData.Name;\r\n vm.managerId = projectData.Manager;\r\n vm.StartDate = moment(projectData.StartDate, 'YYYY-MM-DDTHH:mm:ss.SSSZ').format('YYYY-MM-DD');\r\n vm.EndDate = moment(projectData.EndDate, 'YYYY-MM-DDTHH:mm:ss.SSSZ').format('YYYY-MM-DD');\r\n // vm.StartDate = $filter('date')(new Date(projectData.StartDate),\"dd/MM/yyyy\");\r\n // vm.EndDate = $filter('date')(new Date(projectData.EndDate),\"dd/MM/yyyy\");\r\n vm.Customer = projectData.CustomerId;\r\n vm.JobDuration = projectData.JobDuration;\r\n vm.ProjectDescription = projectData.Description;\r\n if(projectData.CustomerContactResponseModel)\r\n {\r\n vm.pocId = projectData.CustomerContactResponseModel.DocId; \r\n }\r\n vm.AvgTimeClose = parseInt(projectData.SlaModel.Policies[0]);\r\n vm.MeetingCustAppointment = projectData.SlaModel.Policies[1];\r\n vm.WithinDay = parseInt(projectData.SlaModel.Policies[2]);\r\n vm.range = projectData.GetFenceRange; \r\n vm.price = parseFloat(projectData.JobRate);\r\n vm.GeoFenceEnabled = projectData.GeoFenceEnabled;\r\n vm.FixedBidPrice = projectData.FixedBidPrice;\r\n vm.DynamicPricing = projectData.DynamicPricing;\r\n vm.IsCustomerAppointmentNeeded = projectData.IsCustomerAppointmentNeeded;\r\n vm.IsHappyCodeEnabled = projectData.IsHappyCodeEnabled;\r\n vm.IsQuickResolveTicketsEnable = projectData.IsQuickResolveTicketsEnable;\r\n vm.IsOnSiteReportEnabled = projectData.IsOnSiteReportEnabled;\r\n vm.IsSpareShipmentEnabled = projectData.IsSpareShipmentEnabled;\r\n // vm.ScheduleingRuleSkill = projectData.ProjectSkillRules;\r\n for (var projectLocationIndex = 0; projectLocationIndex < projectData.ProjectLocationModels.length; projectLocationIndex++) {\r\n var listPoc = {}\r\n listPoc['PlId'] = projectData.ProjectLocationModels[projectLocationIndex].PlId;\r\n listPoc['LocationOf_' + (projectLocationIndex + 1)] = projectData.ProjectLocationModels[projectLocationIndex].Circle;\r\n listPoc['SupervisorOf_' + (projectLocationIndex + 1)] = projectData.ProjectLocationModels[projectLocationIndex].SupervisorId;\r\n listPoc['POCOf_' + (projectLocationIndex + 1)] = projectData.ProjectLocationModels[projectLocationIndex].CustomerContactRequestModelId;\r\n vm.POCList.push(listPoc);\r\n }\r\n //$log.log('POCList',vm.POCList);\r\n \r\n if(vm.POCList.length <= 0){\r\n var POC_1 = {\r\n LocationOf_1: '',\r\n POCOf_1: '',\r\n SupervisorOf_1: '',\r\n CustomerOf_1: ''\r\n };\r\n vm.POCList.push(POC_1);\r\n }\r\n\r\n }); \r\n });\r\n }\r\n\r\n vm.GetAllCustomers = function () {\r\n ProjectCreationLatestService.GetAllCustomers(loggedinUser, token).then(function (resp) {\r\n vm.allcustomers = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured');\r\n })\r\n }\r\n\r\n vm.selectedCountry = null;\r\n //get country of user\r\n vm.getCountry = function () {\r\n ProjectCreationLatestService.getCountry(loggedinUser,token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length > 0) {\r\n vm.countrylist = resp.data.values;\r\n vm.selectedCountry = vm.countrylist[0];\r\n vm.GetAllCircles();\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.GetAllCircles = function () {\r\n vm.circles = [];\r\n if (vm.LocationMapping == 'Project' || vm.LocationMapping == '' || vm.LocationMapping == null) {\r\n ProjectCreationLatestService.getStates(loggedinUser,token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.circles = resp.data;\r\n\r\n }\r\n }\r\n });\r\n\r\n /* ProjectCreationService.GetAllCircles1(vm.createCallback(vm.circles, [function (data) {\r\n angular.forEach(data, function (d) {\r\n vm.CircleList.push({\r\n circle: d.circle\r\n });\r\n })\r\n //$log.log(vm.circleArray);\r\n }]));*/\r\n } else if (vm.VerticalName == 'Circle') {\r\n ProjectCreationLatestService.GetTelecomCircle(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length > 0) {\r\n vm.circles = resp.data.values;\r\n\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n vm.GetPointofContacts = function (customerId) {\r\n ProjectCreationLatestService.GetPointofContacts(loggedinUser, customerId, token).then(function (resp) {\r\n vm.onSelectPoc = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured');\r\n })\r\n }\r\n\r\n vm.GetAllSupervisors = function (role, loggedinUser) {\r\n ProjectCreationLatestService.GetAllSupervisors(role, loggedinUser, token).then(function (resp) {\r\n vm.supervisorList = resp.data;\r\n }, function (error) {\r\n //$log.log('error Occured');\r\n })\r\n }\r\n\r\n vm.GetAllProjectManagers = function (loggedinUser) {\r\n ProjectCreationLatestService.GetAllSupervisors('Project Manager', loggedinUser, token).then(function (resp) {\r\n vm.projectManagerList = resp.data;\r\n //$log.log(\"vm.projectManagerList\", vm.projectManagerList);\r\n }, function (error) {\r\n //$log.log('error Occured');\r\n })\r\n }\r\n\r\n $scope.pocData = {\r\n \"FirstName\": vm.FirstName,\r\n \"LastName\": vm.LastName,\r\n \"Mobile\": vm.Mobile,\r\n \"OtherMobile\": vm.OtherMobile,\r\n \"Email\": vm.Email,\r\n \"CustomerId\": vm.Customer,\r\n \"Projects\": [\r\n \"\"\r\n ]\r\n }\r\n\r\n vm.getSkillSets = function () {\r\n ProjectCreationLatestService.getAllSkills(loggedinUser, token, function (data) {\r\n vm.AllSkillSets = data;\r\n vm.RemaningSkillSet[0] = vm.AllSkillSets.slice(); \r\n // console.log(vm.AllSkillSets);\r\n }, vm.showFailure);\r\n }\r\n vm.getSkillSets();\r\n\r\n vm.getRemainingSkillSets = function (index) {\r\n vm.RemaningSkillSet[index] = vm.RemaningSkillSet[index-1].slice();\r\n if ($state.current.name == 'index.ProjectEdit') {\r\n var removeLastSkill = vm.ScheduleingRuleSkill[index-1];\r\n }\r\n else{\r\n var removeLastSkill = vm.ScheduleingRuleSkill[vm.ScheduleingRuleSkill.length-1];\r\n }\r\n for (var i = 0; i < vm.RemaningSkillSet[index].length; i++) { \r\n if (vm.RemaningSkillSet[index][i].SkillName == removeLastSkill) {\r\n vm.RemaningSkillSet[index].splice(i, 1); \r\n }\r\n }\r\n }\r\n\r\n \r\n vm.dtInstance = [];\r\n vm.dtOptions = [];\r\n vm.dtColumns = [];\r\n vm.selected = [];\r\n \r\n vm.selectedRulesList = [];\r\n vm.selectedSkill = '';\r\n vm.skillrulemap = {};\r\n\r\n vm.EnableRuleTable = function (skill, index) {\r\n if (skill) {\r\n vm.selectedSkill = skill;\r\n vm.showSchedulingTable = true;\r\n vm.getAllSchedulingRule(index);\r\n }\r\n }\r\n\r\n vm.renderRuleTable = function(skill, rule,index){\r\n vm.showSchedulingTable = true;\r\n vm.AllSchedulingRuleList[index] = rule;\r\n if (vm.AllSchedulingRuleList[index]) {\r\n vm.CreateTable(index);\r\n }\r\n }\r\n\r\n vm.getAllSchedulingRule = function (index) {\r\n ProjectCreationLatestService.GetAllSchedulingRule(loggedinUser, token).then(function (resp) {\r\n vm.AllSchedulingRuleList[index] = resp.data;\r\n if (vm.AllSchedulingRuleList[index]) {\r\n vm.CreateTable(index);\r\n }\r\n\r\n })\r\n }\r\n\r\n\r\n\r\n vm.CreateTable = function (index) {\r\n\r\n vm.headerCompiled = false;\r\n vm.dtInstance[index] = {};\r\n vm.selected[index] = {};\r\n vm.selectAll = false;\r\n vm.toggleAll = toggleAll;\r\n vm.toggleOne = toggleOne;\r\n // var titleHtml = '
';\r\n\r\n vm.dtOptions[index] = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.AllSchedulingRuleList[index]);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns[index] = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected[index][meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleType').withTitle('Rule Type').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('Description').withTitle('Role Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }).notSortable()\r\n\r\n\r\n ];\r\n\r\n function toggleAll(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n\r\n function toggleOne(selectedItems, index) {\r\n var tempRuleIdList = [];\r\n for (var id in selectedItems[index]) {\r\n if (selectedItems[index].hasOwnProperty(id)) {\r\n vm.AllSchedulingRuleList[index][id].IsEnable = selectedItems[index][id];\r\n if (vm.AllSchedulingRuleList[index][id].IsEnable) {\r\n tempRuleIdList.push(vm.AllSchedulingRuleList[index][id].RuleId);\r\n }\r\n }\r\n }\r\n vm.skillrulemap[vm.ScheduleingRuleSkill[index]] = tempRuleIdList;\r\n vm.selectAll = true;\r\n }\r\n\r\n\r\n }\r\n\r\n vm.tempSkillList = [];\r\n var skill = {}\r\n vm.tempSkillList.push(skill);\r\n\r\n vm.addMoreSkill = function (index) {\r\n var temp = {}\r\n vm.getRemainingSkillSets(index+1);\r\n vm.tempSkillList.push(temp); \r\n }\r\n\r\n vm.addMoreSkillByUser = function (index) {\r\n var temp = {}\r\n vm.getRemainingSkillSets(index+1);\r\n vm.tempSkillList.push(temp); \r\n vm.EnableRuleTable(vm.RemaningSkillSet[index][0].SkillName, index); \r\n }\r\n\r\n vm.removeSkill = function (index) { \r\n var removeSkillObject = ''; \r\n var removedSkill = vm.ScheduleingRuleSkill[index];\r\n for(var pos = 0 ; pos < vm.RemaningSkillSet.length; pos++){\r\n for(var posi = 0; posi < vm.RemaningSkillSet[pos].length;posi ++){\r\n if(vm.RemaningSkillSet[pos][posi].SkillName == removedSkill){\r\n removeSkillObject = vm.RemaningSkillSet[pos][posi];\r\n }\r\n }\r\n \r\n }\r\n\r\n //vm.RemaningSkillSet.splice(index,1);\r\n\r\n for(var i=index+1; i < vm.RemaningSkillSet.length;i++)\r\n {\r\n vm.RemaningSkillSet[i].push(removeSkillObject);\r\n }\r\n vm.RemaningSkillSet.splice(index,1);\r\n vm.AllSchedulingRuleList.splice(index,1);\r\n vm.ScheduleingRuleSkill.splice(index,1);\r\n vm.dtOptions.splice(index,1);\r\n vm.dtColumns.splice(index,1);\r\n vm.dtInstance.splice(index,1);\r\n vm.tempSkillList.splice(index, 1);\r\n var key = Object.keys(vm.skillrulemap)[index];\r\n delete vm.skillrulemap[key];\r\n\r\n // vm.getSkillSets();\r\n \r\n }\r\n\r\n\r\n //model to send Project Creation\r\n vm.saveProject = function () {\r\n \r\n if (vm.loggedinUserRole == 'Project Manager') {\r\n vm.managerId = loggedinUser;\r\n }\r\n var locationContactModel = [];\r\n // var CustomerContactRequestModel = [];\r\n for (var custIndex = 0; custIndex < vm.POCList.length; custIndex++) {\r\n\r\n if (!vm.POCList[custIndex]['LocationOf_' + (custIndex + 1)] && !vm.POCList[custIndex]['SupervisorOf_' + (custIndex + 1)]) {\r\n continue;\r\n }\r\n\r\n if (vm.POCList[custIndex].PlId) {\r\n var obj = {};\r\n obj = {\r\n \"PlId\": vm.POCList[custIndex]['PlId'],\r\n \"CustomerId\": vm.Customer,\r\n \"Circle\": vm.POCList[custIndex]['LocationOf_' + (custIndex + 1)],\r\n \"CustomerContactRequestModelId\": vm.POCList[custIndex]['POCOf_' + (custIndex + 1)],\r\n \"SupervisorId\": vm.POCList[custIndex]['SupervisorOf_' + (custIndex + 1)],\r\n \"CustomerContactRequestModel\": null\r\n }\r\n\r\n if (vm.pocDataGlobal != 0) {\r\n if (!obj.CustomerContactRequestModelId || angular.isUndefined(obj.CustomerContactRequestModelId)) {\r\n obj.CustomerContactRequestModel = {\r\n \"FirstName\": vm.pocDataGlobal[custIndex].FirstName,\r\n \"LastName\": vm.pocDataGlobal[custIndex].LastName,\r\n \"Email\": vm.pocDataGlobal[custIndex].Email,\r\n \"OtherMobile\": vm.pocDataGlobal[custIndex].OtherMobile,\r\n \"Mobile\": vm.pocDataGlobal[custIndex].Mobile\r\n }\r\n }\r\n }\r\n\r\n } else {\r\n var obj = {};\r\n obj = {\r\n \"CustomerId\": vm.Customer,\r\n \"Circle\": vm.POCList[custIndex]['LocationOf_' + (custIndex + 1)],\r\n \"CustomerContactRequestModelId\": vm.POCList[custIndex]['POCOf_' + (custIndex + 1)],\r\n \"SupervisorId\": vm.POCList[custIndex]['SupervisorOf_' + (custIndex + 1)],\r\n \"CustomerContactRequestModel\": null\r\n }\r\n if (vm.pocDataGlobal != 0) {\r\n if (!obj.CustomerContactRequestModelId || angular.isUndefined(obj.CustomerContactRequestModelId)) {\r\n obj.CustomerContactRequestModel = {\r\n \"FirstName\": vm.pocDataGlobal[custIndex].FirstName,\r\n \"LastName\": vm.pocDataGlobal[custIndex].LastName,\r\n \"Email\": vm.pocDataGlobal[custIndex].Email,\r\n \"OtherMobile\": vm.pocDataGlobal[custIndex].OtherMobile,\r\n \"Mobile\": vm.pocDataGlobal[custIndex].Mobile\r\n }\r\n }\r\n }\r\n }\r\n locationContactModel.push(obj);\r\n // CustomerContactRequestModel.push(obj.CustomerContactRequestModel);\r\n }\r\n\r\n var projectData = {\r\n \"ProjectId\": projectId_ForUpdate,\r\n \"Name\": vm.ProjectName,\r\n \"Manager\": vm.managerId,\r\n \"StartDate\": moment(vm.StartDate, \"YYYY-MM-DD\").format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n \"EndDate\": moment(vm.EndDate, \"YYYY-MM-DD\").format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n \"CustomerId\": vm.Customer,\r\n \"Description\": vm.ProjectDescription,\r\n \"Status\": 'Active',\r\n \"CustomerContactRequestModelId\": vm.pocId,\r\n \"JobRate\": vm.price,\r\n \"JobGrossRate\": \"\",\r\n \"FixedBidPrice\": vm.FixedBidPrice,\r\n \"GeoFenceEnabled\": vm.GeoFenceEnabled,\r\n \"GetFenceRange\": vm.range,\r\n \"CustomerContactRequestModel\": null,\r\n \"JobDuration\": vm.JobDuration,\r\n \"ProjectSkillRules\" : vm.skillrulemap,\r\n // \"ProjectSkillRules\" : vm.tempSkillList,\r\n \"Locations\": locationContactModel,\r\n \"DynamicPricing\": vm.DynamicPricing,\r\n \"IsCustomerAppointmentNeeded\": vm.IsCustomerAppointmentNeeded,\r\n \"IsQuickResolveTicketsEnable\": vm.IsQuickResolveTicketsEnable,\r\n \"IsHappyCodeEnabled\": vm.IsHappyCodeEnabled,\r\n \"IsOnSiteReportEnabled\": vm.IsOnSiteReportEnabled,\r\n \"IsSpareShipmentEnabled\": vm.IsSpareShipmentEnabled,\r\n \"SLA\": {\r\n \"Policies\": [\r\n\r\n ]\r\n }\r\n }\r\n if (vm.globalMainPOCData != 0) {\r\n if (!projectData.CustomerContactRequestModelId) {\r\n projectData.CustomerContactRequestModel = {\r\n \"FirstName\": vm.globalMainPOCData[0].FirstName,\r\n \"LastName\": vm.globalMainPOCData[0].LastName,\r\n \"Mobile\": vm.globalMainPOCData[0].Mobile,\r\n \"OtherMobile\": vm.globalMainPOCData[0].OtherMobile,\r\n \"Email\": vm.globalMainPOCData[0].Email,\r\n \"CustomerId\": vm.Customer,\r\n \"Projects\": [\r\n \"\"\r\n ]\r\n }\r\n }\r\n }\r\n\r\n projectData.SLA.Policies.push(vm.AvgTimeClose);\r\n projectData.SLA.Policies.push(vm.MeetingCustAppointment);\r\n projectData.SLA.Policies.push(vm.WithinDay);\r\n //$log.log(projectData);\r\n\r\n\r\n if(vm.EndDate <= vm.StartDate)\r\n {\r\n vm.showFailure(\"Faild\", \"End date can't be less than start date\");\r\n return\r\n }\r\n\r\n if (vm.project_form.$valid) {\r\n vm.isDisabled = true;\r\n if (vm.editMode) {\r\n ProjectCreationLatestService.UpdateProject(projectData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n // toaster.pop({\r\n // type: 'success',\r\n // title: 'Project Information',\r\n // shoeCloseButton: true,\r\n // body: 'Project Updated Successfully',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"timeout\": 2000,\r\n // \"tapToDismiss\": true,\r\n // positionClass: \"toast-top-full-width\"\r\n // });\r\n vm.showSuccess(\"Project Update Status\", \"Project Updated Successfully\");\r\n vm.isDisabled = false;\r\n $timeout(function () {\r\n $state.go('index.Project1', {\r\n reload: true\r\n });\r\n }, 2000);\r\n } else if (resp.data && resp.data.Message) {\r\n vm.showFailure(\"Project Update Status\", resp.data.Message);\r\n } else {\r\n vm.showFailure(\"Project Update Status\", \"Unable to create project, server is not responding correctly.\");\r\n }\r\n vm.isDisabled = false;\r\n }, function () {\r\n vm.isDisabled = false;\r\n // toaster.pop({\r\n // type: 'error',\r\n // title: 'Project Creation Status',\r\n // showCloseButton: true,\r\n // body: 'unable to update user',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n vm.showFailure(\"Project Update Status\", \"Unable to create project, server is not responding correctly.\");\r\n vm.isDisabled = false;\r\n })\r\n } else {\r\n ProjectCreationLatestService.CreateProject(angular.toJson(projectData), loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.isDisabled = true;\r\n if (!vm.saveAndNewFlag) {\r\n // toaster.pop({\r\n // type: 'success',\r\n // title: 'Project Creation Status ',\r\n // showCloseButton: true,\r\n // body: 'Project created successfully',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n vm.showSuccess(\"Project Creation Status\", \"Project created successfully\");\r\n vm.isDisabled = false;\r\n clearFormFields();\r\n $timeout(function () {\r\n $state.go('index.Project1', {\r\n reload: true\r\n });\r\n }, 2000);\r\n } else {\r\n vm.showFailure(\"Project Creation Status\", \"Unable to create project, server is not responding correctly.\");\r\n }\r\n } else if (resp.data && resp.data.Message) {\r\n vm.showFailure(\"Project Creation Status\", resp.data.Message);\r\n } else {\r\n vm.showFailure(\"Project Creation Status\", \"Unable to create project, server is not responding correctly.\");\r\n }\r\n vm.isDisabled = false;\r\n }, function (error) {\r\n $log.log(error);\r\n vm.isDisabled = false;\r\n var msg = 'Unable to create project, server is not responding correctly.';\r\n if (error.data && error.data.error_code == 1013) {\r\n msg = \"Project already exist with name \" + projectData.Name;\r\n } else if (error.data && error.data.Message) {\r\n msg = error.data.Message;\r\n }\r\n vm.showFailure(\"Project Creation Status\", msg);\r\n // toaster.pop({\r\n // type: 'error',\r\n // title: 'Project Creation Status ',\r\n // showCloseButton: true,\r\n // body: msg,\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n });\r\n }\r\n }\r\n else {\r\n vm.project_form.submitted = true;\r\n }\r\n }\r\n function clearFormFields() {\r\n vm.ProjectName = '';\r\n vm.ProjectManager = '';\r\n vm.StartDate = '';\r\n vm.EndDate = '';\r\n vm.Customer = '';\r\n vm.ProjectDescription = '';\r\n vm.AvgTimeClose = '';\r\n vm.MeetingCustAppointment = '';\r\n vm.WithinDay = '';\r\n vm.Location = '';\r\n vm.POC = '';\r\n vm.Supervisor = '';\r\n vm.range = '';\r\n vm.price = '';\r\n }\r\n\r\n //adding more Poc section\r\n\r\n\r\n\r\n vm.demotag = [\r\n { text: 'Delhi' }\r\n // { text: 'Lucknow' }\r\n\r\n ];\r\n\r\n\r\n $scope.AddMainContactPopUp = function () {\r\n var mainModalInstance = $uibModal.open({\r\n templateUrl: 'Add_Main_Contact_modal.html',\r\n backdrop: true,\r\n controller: function ($scope, $log, $uibModalInstance) {\r\n $scope.SavePOCModal = function () {\r\n if ($scope.AddMainPOCSave_Form.$valid) {\r\n $scope.objMainPOCData = {};\r\n objMainPOCData = {\r\n \"FirstName\": $scope.mFirstName,\r\n \"LastName\": $scope.mLastName,\r\n \"Email\": $scope.mEmail,\r\n \"OtherMobile\": $scope.mOtherMobile,\r\n \"Mobile\": $scope.mMobile\r\n }\r\n //$log.log(objMainPOCData);\r\n vm.globalMainPOCData.push(objMainPOCData);\r\n // pocDataGlobal = objpocData;\r\n //$log.log(vm.globalMainPOCData);\r\n $uibModalInstance.close();\r\n // $rootScope.$broadcast('Saving_Template', {\r\n // });\r\n } else {\r\n $scope.AddMainPOCSave_Form.submitted = true;\r\n }\r\n }\r\n $scope.CloseModal = function () {\r\n $uibModalInstance.close();\r\n }\r\n\r\n },\r\n // controller: ModalInstanceCtrl,\r\n size: 'lg',\r\n\r\n });\r\n }\r\n\r\n\r\n $scope.AddContactPopUp = function () {\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'Add_Contact_modal.html',\r\n backdrop: true,\r\n controller: ModalInstanceCtrl,\r\n // resolve : {\r\n // pocData : function(){\r\n\r\n // return {customerId:vm.Customer};\r\n // }\r\n // },\r\n size: 'lg',\r\n\r\n });\r\n }\r\n\r\n var ModalInstanceCtrl = function ($scope, $rootScope, $uibModalInstance) {\r\n // console.log(pocData);\r\n // $scope.pocData = pocData;\r\n // pocDataGlobal=$scope.pocData;\r\n $scope.SavingTemplate = function () {\r\n if ($scope.AddPOCSave_Form.$valid) {\r\n $scope.objpocData = {};\r\n objpocData = {\r\n \"FirstName\": $scope.FirstName,\r\n \"LastName\": $scope.LastName,\r\n \"Email\": $scope.Email,\r\n \"OtherMobile\": $scope.OtherMobile,\r\n \"Mobile\": $scope.Mobile\r\n }\r\n //$log.log(objpocData);\r\n vm.pocDataGlobal.push(objpocData);\r\n // pocDataGlobal = objpocData;\r\n //$log.log(vm.pocDataGlobal);\r\n $uibModalInstance.close();\r\n // $rootScope.$broadcast('Saving_Template', {\r\n // });\r\n } else {\r\n $scope.AddPOCSave_Form.submitted = true;\r\n }\r\n }\r\n\r\n $scope.CloseModal = function () {\r\n $uibModalInstance.close();\r\n }\r\n }\r\n\r\n vm.getCircles = function (index) {\r\n var locations = [];\r\n angular.extend(locations, vm.circles);\r\n if (vm.LocationMapping == 'Project' || vm.LocationMapping == '' || vm.LocationMapping == null) {\r\n\r\n angular.forEach(vm.circles, function (d) {\r\n for (var i = 0; i < vm.POCList.length; i++) {\r\n if (i != index && d.circle == vm.POCList[i]['LocationOf_' + (i + 1)]) {\r\n locations.splice(locations.indexOf(d), 1);\r\n }\r\n }\r\n });\r\n } else if (vm.LocationMapping == 'Circle') {\r\n angular.forEach(vm.circles, function (d) {\r\n for (var i = 0; i < vm.POCList.length; i++) {\r\n if (i != index && d == vm.POCList[i]['LocationOf_' + (i + 1)]) {\r\n locations.splice(locations.indexOf(d), 1);\r\n }\r\n }\r\n });\r\n }\r\n\r\n return locations;\r\n }\r\n\r\n vm.geofencestatus = function () {\r\n if (vm.GeoFenceEnabled == false) {\r\n vm.range = 0;\r\n } else {\r\n vm.range = '';\r\n }\r\n console.log(vm.GeoFenceEnabled + ' ' + vm.range);\r\n }\r\n\r\n vm.addMorePoc = function () {\r\n var ele = {\r\n\r\n }\r\n vm.POCList.push(ele);\r\n }\r\n\r\n vm.GetAllCustomers();\r\n vm.getCountry();\r\n vm.GetAllSupervisors(role, loggedinUser);\r\n vm.GetAllProjectManagers(loggedinUser);\r\n }\r\n\r\n\r\n});\r\n\nangular.module('inspinia').service('ProjectCreationService', function (ApiURL, LocationURL, $log, $http, $localStorage,PublicApiURL) {\r\n\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n this.CreateProject = function (projectFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/Project?reqUserId=' + loggedinUser;\r\n return $http.post(url, projectFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n this.UpdateProject = function (projectFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/Project?reqUserId=' + loggedinUser;\r\n return $http.put(url, projectFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n this.GetAllCustomers = function (loggedinUser, token){\r\n var url = ApiURL + '/api/Customer?reqUserId=' + loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n\r\n this.GetAllCircles = function(loggedinUser){\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllCircles'\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json'}\r\n });\r\n }\r\n\r\n this.GetAllCircles1 = function(callback){\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllCircles'\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json'}\r\n }).then(function(resp){\r\n if(callback){\r\n callback(resp.data);\r\n }\r\n }, function(){\r\n vm.showFailure(\"Circles\", \"Unable to get cirlces\");\r\n });\r\n }\r\n \r\n this.GetTelecomCircle = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetTelecomCircles?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.GetPointofContacts = function(loggedinUser,customerId, token)\r\n {\r\n var url = ApiURL + '/api/CustomerContact/' + loggedinUser + '/' + customerId + '/GetCustomerContactsByCustomerId'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n\r\n this.GetAllSupervisors = function(role,loggedinUser, token){\r\n var url = ApiURL + '/api/User/'+role+ '/' + \"UserStatus\"+ '/'+ \"Active\" +'/byRole?reqUserId=' + loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n }); \r\n }\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetCountry?userId=U420000000001\r\n this.getCountry = function (userId,token) {\r\n var url = PublicApiURL + '/api/Address/GetCountry?userId=' + userId;\r\n return $http.get(url, {\r\n headers:{'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':userId}\r\n //params: {}\r\n });\r\n }\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetStates?userId=U420000000001&country=QATAR\r\n this.getStates = function (userId,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':userId}\r\n });\r\n }\r\n\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetCities?userId=U420000000001&state=DOHA\r\n this.getCities = function (userId, state,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':userId}\r\n });\r\n }\r\n\r\n this.GetProjectByProjectId = function (loggedinUser,projectId, token) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + projectId + '/GetProjectById'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/SkillSets?reqUserId=U400000000001\r\n this.getAllSkills = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers: {'Token': token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 200 && res.data){\r\n success(res.data);\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get skill list, server error.\")\r\n })\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/GetAllMaster?UserId=U400000000001\r\n // https://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/GetAll?UserId=U400000000001\r\n this.GetAllSchedulingRule = function(loginUser, token){\r\n // var url = ApiURL + '/api/MasterSelectionCriteria/GetAllMaster?UserId='+loginUser;\r\n var url = ApiURL + '/api/MasterSelectionCriteria/GetAll?UserId=' + loginUser;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loginUser }\r\n });\r\n }\r\n\r\n\r\n\r\n \r\n});\nangular.module('inspinia').controller('ProjectCreationController', function ($scope, $state, DTOptionsBuilder, DTColumnBuilder, $q, $compile, $stateParams, $timeout, $log, $uibModal, ProjectCreationService, $localStorage, $filter, toaster) {\r\n\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.loggedinUserRole = $localStorage.loggedInUser_Role;\r\n var projectId = '';\r\n vm.IsPCLink = $localStorage.accountConfig.IsPCLink;\r\n vm.managerId = '';\r\n var projectId_ForUpdate = $stateParams.projectId;\r\n vm.allcustomers = '';\r\n vm.editMode = false;\r\n vm.FixedBidPrice = false;\r\n vm.DynamicPricing = false;\r\n vm.IsCustomerAppointmentNeeded = false;\r\n vm.IsQuickResolveTicketsEnable = true;\r\n vm.IsHappyCodeEnabled = false;\r\n vm.IsOnSiteReportEnabled = false;\r\n vm.IsSpareShipmentEnabled = false;\r\n vm.GeoFenceEnabled = false;\r\n vm.avg_time_close = true;\r\n vm.range = 0;\r\n // vm.PriceBid = 'ON';\r\n var role = 'Supervisor';\r\n /// for declaration\r\n vm.ProjectName = '';\r\n vm.saveAndNewFlag = false;\r\n vm.isDisabled = false;\r\n vm.ProjectManager = '';\r\n vm.StartDate = moment();\r\n vm.EndDate = moment();\r\n vm.Customer = '';\r\n vm.ProjectDescription = '';\r\n vm.AvgTimeClose = '';\r\n vm.MeetingCustAppointment = '';\r\n vm.WithinDay = '';\r\n vm.Circle = '';\r\n vm.POC = '';\r\n vm.Supervisor = '';\r\n vm.mFirstName = '';\r\n vm.mLastName = '';\r\n vm.mMobile = '';\r\n vm.mOtherMobile = '';\r\n vm.mEmail = '';\r\n vm.Projects = [];\r\n vm.pocId = '';\r\n vm.Policies = [];\r\n vm.pocDataGlobal = [];\r\n vm.POCList = [];\r\n vm.CircleList = [];\r\n vm.tcircle = '';\r\n vm.globalMainPOCData = [];\r\n vm.projectManagerList = '';\r\n vm.price = '';\r\n vm.circleArray = '';\r\n vm.Skill = '';\r\n vm.AllSchedulingRuleList = [];\r\n vm.RemaningSkillSet = [];\r\n vm.AllSkillList = [];\r\n vm.showSchedulingTable = false;\r\n vm.ScheduleingRuleSkill = [];\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.LocationMapping = vm.getAccountConfigSetting('LocationMapping');\r\n ProjectCreationService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n ProjectCreationService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n vm.showLocation = false;\r\n if(vm.IsPCLink){\r\n vm.showLocation = true;\r\n }\r\n\r\n if ($state.current.name == 'index.ProjectCreation') {\r\n var POC_1 = {\r\n LocationOf_1: '',\r\n POCOf_1: '',\r\n SupervisorOf_1: '',\r\n CustomerOf_1: ''\r\n };\r\n vm.POCList.push(POC_1);\r\n }\r\n\r\n vm.removePoc = function () {\r\n var lastpoc = vm.POCList.length - 1;\r\n vm.POCList.splice(lastpoc);\r\n }\r\n \r\n //For ProjectEdit Mode\r\n if ($state.current.name == 'index.ProjectEdit') {\r\n vm.editMode = true;\r\n ProjectCreationService.GetProjectByProjectId(loggedinUser, projectId_ForUpdate, token).then(function (resp) {\r\n var projectData = resp.data;\r\n // vm.skillrulemap = projectData.ProjectSkillRulesMap;\r\n vm.ScheduleingRuleSkill = Object.keys(projectData.ProjectSkillRulesMap);\r\n vm.AllSchedulingRuleList = Object.values(projectData.ProjectSkillRulesMap);\r\n var ruleIdList =[];\r\n for(var i = 0 ; i < vm.AllSchedulingRuleList.length; i++){\r\n var temp = [];\r\n for( var j = 0; j< vm.AllSchedulingRuleList[i].length; j++){\r\n if(vm.AllSchedulingRuleList[i][j].IsEnable){\r\n temp.push(vm.AllSchedulingRuleList[i][j].RuleId);\r\n }\r\n }\r\n ruleIdList.push(temp);\r\n }\r\n \r\n for(var map = 0 ; map < ruleIdList.length; map++){\r\n vm.skillrulemap[vm.ScheduleingRuleSkill[map]] = ruleIdList[map];\r\n }\r\n console.log(vm.skillrulemap);\r\n ProjectCreationService.getAllSkills(loggedinUser, token, function (data) {\r\n vm.AllSkillSets = data;\r\n vm.RemaningSkillSet[0] = vm.AllSkillSets.slice(); \r\n for(var index = 0; index< vm.ScheduleingRuleSkill.length; index++){\r\n if(index > 0){\r\n vm.addMoreSkill(index-1);\r\n }\r\n vm.renderRuleTable(vm.ScheduleingRuleSkill[index], vm.AllSchedulingRuleList[index], index);\r\n }\r\n\r\n vm.GetPointofContacts(projectData.CustomerId);\r\n vm.ProjectName = projectData.Name;\r\n vm.managerId = projectData.Manager;\r\n vm.StartDate = moment(projectData.StartDate, 'YYYY-MM-DDTHH:mm:ss.SSSZ').format('YYYY-MM-DD');\r\n vm.EndDate = moment(projectData.EndDate, 'YYYY-MM-DDTHH:mm:ss.SSSZ').format('YYYY-MM-DD');\r\n // vm.StartDate = $filter('date')(new Date(projectData.StartDate),\"dd/MM/yyyy\");\r\n // vm.EndDate = $filter('date')(new Date(projectData.EndDate),\"dd/MM/yyyy\");\r\n vm.Customer = projectData.CustomerId;\r\n vm.JobDuration = projectData.JobDuration;\r\n vm.ProjectDescription = projectData.Description;\r\n if(projectData.CustomerContactResponseModel)\r\n {\r\n vm.pocId = projectData.CustomerContactResponseModel.DocId; \r\n }\r\n vm.AvgTimeClose = parseInt(projectData.SlaModel.Policies[0]);\r\n vm.MeetingCustAppointment = projectData.SlaModel.Policies[1];\r\n vm.WithinDay = parseInt(projectData.SlaModel.Policies[2]);\r\n vm.range = projectData.GetFenceRange; \r\n vm.price = parseFloat(projectData.JobRate);\r\n vm.GeoFenceEnabled = projectData.GeoFenceEnabled;\r\n vm.FixedBidPrice = projectData.FixedBidPrice;\r\n vm.DynamicPricing = projectData.DynamicPricing;\r\n vm.IsCustomerAppointmentNeeded = projectData.IsCustomerAppointmentNeeded;\r\n vm.IsQuickResolveTicketsEnable = projectData.IsQuickResolveTicketsEnable;\r\n vm.IsHappyCodeEnabled = projectData.IsHappyCodeEnabled;\r\n vm.IsOnSiteReportEnabled = projectData.IsOnSiteReportEnabled;\r\n vm.IsSpareShipmentEnabled = projectData.IsSpareShipmentEnabled;\r\n // vm.ScheduleingRuleSkill = projectData.ProjectSkillRules;\r\n for (var projectLocationIndex = 0; projectLocationIndex < projectData.ProjectLocationModels.length; projectLocationIndex++) {\r\n var listPoc = {}\r\n listPoc['PlId'] = projectData.ProjectLocationModels[projectLocationIndex].PlId;\r\n listPoc['LocationOf_' + (projectLocationIndex + 1)] = projectData.ProjectLocationModels[projectLocationIndex].Circle;\r\n listPoc['SupervisorOf_' + (projectLocationIndex + 1)] = projectData.ProjectLocationModels[projectLocationIndex].SupervisorId;\r\n listPoc['POCOf_' + (projectLocationIndex + 1)] = projectData.ProjectLocationModels[projectLocationIndex].CustomerContactRequestModelId;\r\n vm.POCList.push(listPoc);\r\n }\r\n //$log.log('POCList',vm.POCList);\r\n \r\n if(vm.POCList.length <= 0){\r\n var POC_1 = {\r\n LocationOf_1: '',\r\n POCOf_1: '',\r\n SupervisorOf_1: '',\r\n CustomerOf_1: ''\r\n };\r\n vm.POCList.push(POC_1);\r\n }\r\n\r\n }); \r\n });\r\n }\r\n\r\n vm.GetAllCustomers = function () {\r\n ProjectCreationService.GetAllCustomers(loggedinUser, token).then(function (resp) {\r\n vm.allcustomers = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured');\r\n })\r\n }\r\n\r\n vm.selectedCountry = null;\r\n //get country of user\r\n vm.getCountry = function () {\r\n ProjectCreationService.getCountry(loggedinUser,token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length > 0) {\r\n vm.countrylist = resp.data.values;\r\n vm.selectedCountry = vm.countrylist[0];\r\n vm.GetAllCircles(loggedinUser);\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.GetAllCircles = function () {\r\n vm.circles = [];\r\n if (vm.LocationMapping == 'Project' || vm.LocationMapping == '' || vm.LocationMapping == null) {\r\n ProjectCreationService.getStates(loggedinUser,token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.circles = resp.data;\r\n\r\n }\r\n }\r\n });\r\n\r\n /* ProjectCreationService.GetAllCircles1(vm.createCallback(vm.circles, [function (data) {\r\n angular.forEach(data, function (d) {\r\n vm.CircleList.push({\r\n circle: d.circle\r\n });\r\n })\r\n //$log.log(vm.circleArray);\r\n }]));*/\r\n } else if (vm.VerticalName == 'Circle') {\r\n ProjectCreationService.GetTelecomCircle(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length > 0) {\r\n vm.circles = resp.data.values;\r\n\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n }\r\n\r\n vm.GetPointofContacts = function (customerId) {\r\n ProjectCreationService.GetPointofContacts(loggedinUser, customerId, token).then(function (resp) {\r\n vm.onSelectPoc = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured');\r\n })\r\n }\r\n\r\n vm.GetAllSupervisors = function (role, loggedinUser) {\r\n ProjectCreationService.GetAllSupervisors(role, loggedinUser, token).then(function (resp) {\r\n vm.supervisorList = resp.data;\r\n }, function (error) {\r\n //$log.log('error Occured');\r\n })\r\n }\r\n\r\n vm.GetAllProjectManagers = function (loggedinUser) {\r\n ProjectCreationService.GetAllSupervisors('Project Manager', loggedinUser, token).then(function (resp) {\r\n vm.projectManagerList = resp.data;\r\n //$log.log(\"vm.projectManagerList\", vm.projectManagerList);\r\n }, function (error) {\r\n //$log.log('error Occured');\r\n })\r\n }\r\n\r\n $scope.pocData = {\r\n \"FirstName\": vm.FirstName,\r\n \"LastName\": vm.LastName,\r\n \"Mobile\": vm.Mobile,\r\n \"OtherMobile\": vm.OtherMobile,\r\n \"Email\": vm.Email,\r\n \"CustomerId\": vm.Customer,\r\n \"Projects\": [\r\n \"\"\r\n ]\r\n }\r\n\r\n vm.getSkillSets = function () {\r\n ProjectCreationService.getAllSkills(loggedinUser, token, function (data) {\r\n vm.AllSkillSets = data;\r\n vm.RemaningSkillSet[0] = vm.AllSkillSets.slice(); \r\n // console.log(vm.AllSkillSets);\r\n }, vm.showFailure);\r\n }\r\n vm.getSkillSets();\r\n\r\n vm.getRemainingSkillSets = function (index) {\r\n vm.RemaningSkillSet[index] = vm.RemaningSkillSet[index-1].slice();\r\n if ($state.current.name == 'index.ProjectEdit') {\r\n var removeLastSkill = vm.ScheduleingRuleSkill[index-1];\r\n }\r\n else{\r\n var removeLastSkill = vm.ScheduleingRuleSkill[vm.ScheduleingRuleSkill.length-1];\r\n }\r\n for (var i = 0; i < vm.RemaningSkillSet[index].length; i++) { \r\n if (vm.RemaningSkillSet[index][i].SkillName == removeLastSkill) {\r\n vm.RemaningSkillSet[index].splice(i, 1); \r\n }\r\n }\r\n }\r\n\r\n \r\n vm.dtInstance = [];\r\n vm.dtOptions = [];\r\n vm.dtColumns = [];\r\n vm.selected = [];\r\n \r\n vm.selectedRulesList = [];\r\n vm.selectedSkill = '';\r\n vm.skillrulemap = {};\r\n\r\n vm.EnableRuleTable = function (skill, index) {\r\n if (skill) {\r\n vm.selectedSkill = skill;\r\n vm.showSchedulingTable = true;\r\n vm.getAllSchedulingRule(index);\r\n }\r\n }\r\n\r\n vm.renderRuleTable = function(skill, rule,index){\r\n vm.showSchedulingTable = true;\r\n vm.AllSchedulingRuleList[index] = rule;\r\n if (vm.AllSchedulingRuleList[index]) {\r\n vm.CreateTable(index);\r\n }\r\n }\r\n\r\n vm.getAllSchedulingRule = function (index) {\r\n ProjectCreationService.GetAllSchedulingRule(loggedinUser, token).then(function (resp) {\r\n vm.AllSchedulingRuleList[index] = resp.data;\r\n if (vm.AllSchedulingRuleList[index]) {\r\n vm.CreateTable(index);\r\n }\r\n\r\n })\r\n }\r\n\r\n\r\n\r\n vm.CreateTable = function (index) {\r\n\r\n vm.headerCompiled = false;\r\n vm.dtInstance[index] = {};\r\n vm.selected[index] = {};\r\n vm.selectAll = false;\r\n vm.toggleAll = toggleAll;\r\n vm.toggleOne = toggleOne;\r\n // var titleHtml = '
';\r\n\r\n vm.dtOptions[index] = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.AllSchedulingRuleList[index]);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns[index] = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected[index][meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleType').withTitle('Rule Type').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('Description').withTitle('Role Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }).notSortable()\r\n\r\n\r\n ];\r\n\r\n function toggleAll(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n\r\n function toggleOne(selectedItems, index) {\r\n var tempRuleIdList = [];\r\n for (var id in selectedItems[index]) {\r\n if (selectedItems[index].hasOwnProperty(id)) {\r\n vm.AllSchedulingRuleList[index][id].IsEnable = selectedItems[index][id];\r\n if (vm.AllSchedulingRuleList[index][id].IsEnable) {\r\n tempRuleIdList.push(vm.AllSchedulingRuleList[index][id].RuleId);\r\n }\r\n }\r\n }\r\n vm.skillrulemap[vm.ScheduleingRuleSkill[index]] = tempRuleIdList;\r\n vm.selectAll = true;\r\n }\r\n\r\n\r\n }\r\n\r\n vm.tempSkillList = [];\r\n var skill = {}\r\n vm.tempSkillList.push(skill);\r\n\r\n vm.addMoreSkill = function (index) {\r\n var temp = {}\r\n vm.getRemainingSkillSets(index+1);\r\n vm.tempSkillList.push(temp); \r\n }\r\n\r\n vm.addMoreSkillByUser = function (index) {\r\n var temp = {}\r\n vm.getRemainingSkillSets(index+1);\r\n vm.tempSkillList.push(temp); \r\n vm.EnableRuleTable(vm.RemaningSkillSet[index][0].SkillName, index); \r\n }\r\n\r\n vm.removeSkill = function (index) { \r\n var removeSkillObject = ''; \r\n var removedSkill = vm.ScheduleingRuleSkill[index];\r\n for(var pos = 0 ; pos < vm.RemaningSkillSet.length; pos++){\r\n for(var posi = 0; posi < vm.RemaningSkillSet[pos].length;posi ++){\r\n if(vm.RemaningSkillSet[pos][posi].SkillName == removedSkill){\r\n removeSkillObject = vm.RemaningSkillSet[pos][posi];\r\n }\r\n }\r\n \r\n }\r\n\r\n //vm.RemaningSkillSet.splice(index,1);\r\n\r\n for(var i=index+1; i < vm.RemaningSkillSet.length;i++)\r\n {\r\n vm.RemaningSkillSet[i].push(removeSkillObject);\r\n }\r\n vm.RemaningSkillSet.splice(index,1);\r\n vm.AllSchedulingRuleList.splice(index,1);\r\n vm.ScheduleingRuleSkill.splice(index,1);\r\n vm.dtOptions.splice(index,1);\r\n vm.dtColumns.splice(index,1);\r\n vm.dtInstance.splice(index,1);\r\n vm.tempSkillList.splice(index, 1);\r\n var key = Object.keys(vm.skillrulemap)[index];\r\n delete vm.skillrulemap[key];\r\n\r\n // vm.getSkillSets();\r\n \r\n }\r\n\r\n\r\n //model to send Project Creation\r\n vm.saveProject = function () {\r\n \r\n if (vm.loggedinUserRole == 'Project Manager') {\r\n vm.managerId = loggedinUser;\r\n }\r\n var locationContactModel = [];\r\n // var CustomerContactRequestModel = [];\r\n for (var custIndex = 0; custIndex < vm.POCList.length; custIndex++) {\r\n\r\n if (!vm.POCList[custIndex]['LocationOf_' + (custIndex + 1)] && !vm.POCList[custIndex]['SupervisorOf_' + (custIndex + 1)]) {\r\n continue;\r\n }\r\n\r\n if (vm.POCList[custIndex].PlId) {\r\n var obj = {};\r\n obj = {\r\n \"PlId\": vm.POCList[custIndex]['PlId'],\r\n \"CustomerId\": vm.Customer,\r\n \"Circle\": vm.POCList[custIndex]['LocationOf_' + (custIndex + 1)],\r\n \"CustomerContactRequestModelId\": vm.POCList[custIndex]['POCOf_' + (custIndex + 1)],\r\n \"SupervisorId\": vm.POCList[custIndex]['SupervisorOf_' + (custIndex + 1)],\r\n \"CustomerContactRequestModel\": null\r\n }\r\n\r\n if (vm.pocDataGlobal != 0) {\r\n if (!obj.CustomerContactRequestModelId || angular.isUndefined(obj.CustomerContactRequestModelId)) {\r\n obj.CustomerContactRequestModel = {\r\n \"FirstName\": vm.pocDataGlobal[custIndex].FirstName,\r\n \"LastName\": vm.pocDataGlobal[custIndex].LastName,\r\n \"Email\": vm.pocDataGlobal[custIndex].Email,\r\n \"OtherMobile\": vm.pocDataGlobal[custIndex].OtherMobile,\r\n \"Mobile\": vm.pocDataGlobal[custIndex].Mobile\r\n }\r\n }\r\n }\r\n\r\n } else {\r\n var obj = {};\r\n obj = {\r\n \"CustomerId\": vm.Customer,\r\n \"Circle\": vm.POCList[custIndex]['LocationOf_' + (custIndex + 1)],\r\n \"CustomerContactRequestModelId\": vm.POCList[custIndex]['POCOf_' + (custIndex + 1)],\r\n \"SupervisorId\": vm.POCList[custIndex]['SupervisorOf_' + (custIndex + 1)],\r\n \"CustomerContactRequestModel\": null\r\n }\r\n if (vm.pocDataGlobal != 0) {\r\n if (!obj.CustomerContactRequestModelId || angular.isUndefined(obj.CustomerContactRequestModelId)) {\r\n obj.CustomerContactRequestModel = {\r\n \"FirstName\": vm.pocDataGlobal[custIndex].FirstName,\r\n \"LastName\": vm.pocDataGlobal[custIndex].LastName,\r\n \"Email\": vm.pocDataGlobal[custIndex].Email,\r\n \"OtherMobile\": vm.pocDataGlobal[custIndex].OtherMobile,\r\n \"Mobile\": vm.pocDataGlobal[custIndex].Mobile\r\n }\r\n }\r\n }\r\n }\r\n locationContactModel.push(obj);\r\n // CustomerContactRequestModel.push(obj.CustomerContactRequestModel);\r\n }\r\n\r\n var projectData = {\r\n \"ProjectId\": projectId_ForUpdate,\r\n \"Name\": vm.ProjectName,\r\n \"Manager\": vm.managerId,\r\n \"StartDate\": moment(vm.StartDate, \"YYYY-MM-DD\").format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n \"EndDate\": moment(vm.EndDate, \"YYYY-MM-DD\").format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n \"CustomerId\": vm.Customer,\r\n \"Description\": vm.ProjectDescription,\r\n \"Status\": 'Active',\r\n \"CustomerContactRequestModelId\": vm.pocId,\r\n \"JobRate\": vm.price,\r\n \"JobGrossRate\": \"\",\r\n \"FixedBidPrice\": vm.FixedBidPrice,\r\n \"GeoFenceEnabled\": vm.GeoFenceEnabled,\r\n \"GetFenceRange\": vm.range,\r\n \"CustomerContactRequestModel\": null,\r\n \"JobDuration\": vm.JobDuration,\r\n \"ProjectSkillRules\" : vm.skillrulemap,\r\n // \"ProjectSkillRules\" : vm.tempSkillList,\r\n \"Locations\": locationContactModel,\r\n \"DynamicPricing\": vm.DynamicPricing,\r\n \"IsCustomerAppointmentNeeded\": vm.IsCustomerAppointmentNeeded,\r\n \"IsQuickResolveTicketsEnable\": vm.IsQuickResolveTicketsEnable,\r\n \"IsHappyCodeEnabled\": vm.IsHappyCodeEnabled,\r\n \"IsOnSiteReportEnabled\": vm.IsOnSiteReportEnabled,\r\n \"IsSpareShipmentEnabled\": vm.IsSpareShipmentEnabled,\r\n \"SLA\": {\r\n \"Policies\": [\r\n\r\n ]\r\n }\r\n }\r\n if (vm.globalMainPOCData != 0) {\r\n if (!projectData.CustomerContactRequestModelId) {\r\n projectData.CustomerContactRequestModel = {\r\n \"FirstName\": vm.globalMainPOCData[0].FirstName,\r\n \"LastName\": vm.globalMainPOCData[0].LastName,\r\n \"Mobile\": vm.globalMainPOCData[0].Mobile,\r\n \"OtherMobile\": vm.globalMainPOCData[0].OtherMobile,\r\n \"Email\": vm.globalMainPOCData[0].Email,\r\n \"CustomerId\": vm.Customer,\r\n \"Projects\": [\r\n \"\"\r\n ]\r\n }\r\n }\r\n }\r\n\r\n projectData.SLA.Policies.push(vm.AvgTimeClose);\r\n projectData.SLA.Policies.push(vm.MeetingCustAppointment);\r\n projectData.SLA.Policies.push(vm.WithinDay);\r\n //$log.log(projectData);\r\n\r\n\r\n if(vm.EndDate <= vm.StartDate)\r\n {\r\n vm.showFailure(\"Faild\", \"End date can't be less than start date\");\r\n return\r\n }\r\n\r\n if (vm.project_form.$valid) {\r\n vm.isDisabled = true;\r\n if (vm.editMode) {\r\n ProjectCreationService.UpdateProject(projectData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n // toaster.pop({\r\n // type: 'success',\r\n // title: 'Project Information',\r\n // shoeCloseButton: true,\r\n // body: 'Project Updated Successfully',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"timeout\": 2000,\r\n // \"tapToDismiss\": true,\r\n // positionClass: \"toast-top-full-width\"\r\n // });\r\n vm.showSuccess(\"Project Update Status\", \"Project Updated Successfully\");\r\n vm.isDisabled = false;\r\n $timeout(function () {\r\n $state.go('index.Project', {\r\n reload: true\r\n });\r\n }, 2000);\r\n } else if (resp.data && resp.data.Message) {\r\n vm.showFailure(\"Project Update Status\", resp.data.Message);\r\n } else {\r\n vm.showFailure(\"Project Update Status\", \"Unable to create project, server is not responding correctly.\");\r\n }\r\n vm.isDisabled = false;\r\n }, function () {\r\n vm.isDisabled = false;\r\n // toaster.pop({\r\n // type: 'error',\r\n // title: 'Project Creation Status',\r\n // showCloseButton: true,\r\n // body: 'unable to update user',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n vm.showFailure(\"Project Update Status\", \"Unable to create project, server is not responding correctly.\");\r\n vm.isDisabled = false;\r\n })\r\n } else {\r\n ProjectCreationService.CreateProject(angular.toJson(projectData), loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.isDisabled = true;\r\n if (!vm.saveAndNewFlag) {\r\n // toaster.pop({\r\n // type: 'success',\r\n // title: 'Project Creation Status ',\r\n // showCloseButton: true,\r\n // body: 'Project created successfully',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n vm.showSuccess(\"Project Creation Status\", \"Project created successfully\");\r\n vm.isDisabled = false;\r\n clearFormFields();\r\n $timeout(function () {\r\n $state.go('index.Project', {\r\n reload: true\r\n });\r\n }, 2000);\r\n } else {\r\n vm.showFailure(\"Project Creation Status\", \"Unable to create project, server is not responding correctly.\");\r\n }\r\n } else if (resp.data && resp.data.Message) {\r\n vm.showFailure(\"Project Creation Status\", resp.data.Message);\r\n } else {\r\n vm.showFailure(\"Project Creation Status\", \"Unable to create project, server is not responding correctly.\");\r\n }\r\n vm.isDisabled = false;\r\n }, function (error) {\r\n $log.log(error);\r\n vm.isDisabled = false;\r\n var msg = 'Unable to create project, server is not responding correctly.';\r\n if (error.data && error.data.error_code == 1013) {\r\n msg = \"Project already exist with name \" + projectData.Name;\r\n } else if (error.data && error.data.Message) {\r\n msg = error.data.Message;\r\n }\r\n vm.showFailure(\"Project Creation Status\", msg);\r\n // toaster.pop({\r\n // type: 'error',\r\n // title: 'Project Creation Status ',\r\n // showCloseButton: true,\r\n // body: msg,\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n });\r\n }\r\n }\r\n else {\r\n vm.project_form.submitted = true;\r\n }\r\n }\r\n function clearFormFields() {\r\n vm.ProjectName = '';\r\n vm.ProjectManager = '';\r\n vm.StartDate = '';\r\n vm.EndDate = '';\r\n vm.Customer = '';\r\n vm.ProjectDescription = '';\r\n vm.AvgTimeClose = '';\r\n vm.MeetingCustAppointment = '';\r\n vm.WithinDay = '';\r\n vm.Location = '';\r\n vm.POC = '';\r\n vm.Supervisor = '';\r\n vm.range = '';\r\n vm.price = '';\r\n }\r\n\r\n //adding more Poc section\r\n\r\n\r\n\r\n vm.demotag = [\r\n { text: 'Delhi' }\r\n // { text: 'Lucknow' }\r\n\r\n ];\r\n\r\n\r\n $scope.AddMainContactPopUp = function () {\r\n var mainModalInstance = $uibModal.open({\r\n templateUrl: 'Add_Main_Contact_modal.html',\r\n backdrop: true,\r\n controller: function ($scope, $log, $uibModalInstance) {\r\n $scope.SavePOCModal = function () {\r\n if ($scope.AddMainPOCSave_Form.$valid) {\r\n $scope.objMainPOCData = {};\r\n objMainPOCData = {\r\n \"FirstName\": $scope.mFirstName,\r\n \"LastName\": $scope.mLastName,\r\n \"Email\": $scope.mEmail,\r\n \"OtherMobile\": $scope.mOtherMobile,\r\n \"Mobile\": $scope.mMobile\r\n }\r\n //$log.log(objMainPOCData);\r\n vm.globalMainPOCData.push(objMainPOCData);\r\n // pocDataGlobal = objpocData;\r\n //$log.log(vm.globalMainPOCData);\r\n $uibModalInstance.close();\r\n // $rootScope.$broadcast('Saving_Template', {\r\n // });\r\n } else {\r\n $scope.AddMainPOCSave_Form.submitted = true;\r\n }\r\n }\r\n $scope.CloseModal = function () {\r\n $uibModalInstance.close();\r\n }\r\n\r\n },\r\n // controller: ModalInstanceCtrl,\r\n size: 'lg',\r\n\r\n });\r\n }\r\n\r\n\r\n $scope.AddContactPopUp = function () {\r\n var modalInstance = $uibModal.open({\r\n templateUrl: 'Add_Contact_modal.html',\r\n backdrop: true,\r\n controller: ModalInstanceCtrl,\r\n // resolve : {\r\n // pocData : function(){\r\n\r\n // return {customerId:vm.Customer};\r\n // }\r\n // },\r\n size: 'lg',\r\n\r\n });\r\n }\r\n\r\n var ModalInstanceCtrl = function ($scope, $rootScope, $uibModalInstance) {\r\n // console.log(pocData);\r\n // $scope.pocData = pocData;\r\n // pocDataGlobal=$scope.pocData;\r\n $scope.SavingTemplate = function () {\r\n if ($scope.AddPOCSave_Form.$valid) {\r\n $scope.objpocData = {};\r\n objpocData = {\r\n \"FirstName\": $scope.FirstName,\r\n \"LastName\": $scope.LastName,\r\n \"Email\": $scope.Email,\r\n \"OtherMobile\": $scope.OtherMobile,\r\n \"Mobile\": $scope.Mobile\r\n }\r\n //$log.log(objpocData);\r\n vm.pocDataGlobal.push(objpocData);\r\n // pocDataGlobal = objpocData;\r\n //$log.log(vm.pocDataGlobal);\r\n $uibModalInstance.close();\r\n // $rootScope.$broadcast('Saving_Template', {\r\n // });\r\n } else {\r\n $scope.AddPOCSave_Form.submitted = true;\r\n }\r\n }\r\n\r\n $scope.CloseModal = function () {\r\n $uibModalInstance.close();\r\n }\r\n }\r\n\r\n vm.getCircles = function (index) {\r\n var locations = [];\r\n angular.extend(locations, vm.circles);\r\n if (vm.LocationMapping == 'Project' || vm.LocationMapping == '' || vm.LocationMapping == null) {\r\n\r\n angular.forEach(vm.circles, function (d) {\r\n for (var i = 0; i < vm.POCList.length; i++) {\r\n if (i != index && d.circle == vm.POCList[i]['LocationOf_' + (i + 1)]) {\r\n locations.splice(locations.indexOf(d), 1);\r\n }\r\n }\r\n });\r\n } else if (vm.LocationMapping == 'Circle') {\r\n angular.forEach(vm.circles, function (d) {\r\n for (var i = 0; i < vm.POCList.length; i++) {\r\n if (i != index && d == vm.POCList[i]['LocationOf_' + (i + 1)]) {\r\n locations.splice(locations.indexOf(d), 1);\r\n }\r\n }\r\n });\r\n }\r\n\r\n return locations;\r\n }\r\n\r\n vm.geofencestatus = function () {\r\n if (vm.GeoFenceEnabled == false) {\r\n vm.range = 0;\r\n } else {\r\n vm.range = '';\r\n }\r\n console.log(vm.GeoFenceEnabled + ' ' + vm.range);\r\n }\r\n\r\n vm.addMorePoc = function () {\r\n var ele = {\r\n\r\n }\r\n vm.POCList.push(ele);\r\n }\r\n\r\n vm.GetAllCustomers();\r\n vm.getCountry();\r\n vm.GetAllSupervisors(role, loggedinUser);\r\n vm.GetAllProjectManagers(loggedinUser);\r\n }\r\n\r\n\r\n});\r\n\nangular.module('inspinia').service('ProfileObjectDetailService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ProfileObjectDetailController', function (ProfileObjectDetailService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount ; \r\n\t\t$scope.TicketTablepagination = {\r\n\t\t current: 1\r\n\t\t};\r\n\t\r\n\t\r\n\t\tvm.changeTicketPageListCount = function() { \r\n\t\t $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t PageSize = $scope.ticketTablePerPage;\r\n\t\t $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t}\r\n\r\n\t\tPageIndex=$scope.TicketTablepagination.current;\r\n\t\t$scope.TicketTablepageChanged = function(newPage) { \r\n\t\t PageIndex = newPage; \r\n\t\t vm.getAllJobForExceptionList();\r\n\t\t};\r\n\r\n\t\tvm.scheduleExceptionListNew=[];\r\n \r\n\t\tvm.AddNewProfileModalOpen = function () {\r\n\t\t\tvm.addnewprofile = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'AddNewProfile.html',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n \r\n\tvm.CloseNewProfileModal = function () {\r\n\tvm.addnewprofile.close();\r\n\t}\r\n\tvm.objects = [\r\n\t\t{ name: \"User Creation\", permissions: \"Read,Create,Edit,Delete\", fields: 10, tabSettings: \"Default On\" },\r\n\t\t{ name: \"User Updation\", permissions: \"Read,Create,Edit,Delete\", fields: 10, tabSettings: \"Default On\" },\r\n\t\t{ name: \"Status Tracking\", permissions: \"-\", fields: 7, tabSettings: \"-\" },\r\n\t\t{ name: \"Review and Approval\", permissions: \"Read,Create,Edit,Delete\", fields: 7, tabSettings: \"Default On\" },\r\n\t\t{ name: \"Notification\", permissions: \"Read,Create,Edit,Delete\", fields: 11, tabSettings: \"Default Off\" },\r\n\t\t{ name: \"Email Notification\", permissions: \"Read,Create,Edit,Delete\", fields: 7, tabSettings: \"Default On\" },\r\n\t\t{ name: \"Appointment Booking\", permissions: \"-\", fields: 10, tabSettings: \"Default Off\" },\r\n\t\t{ name: \"Rejection\", permissions: \"Read,Create\", fields: 7, tabSettings: \"Default Off\" },\r\n\t\t{ name: \"Assignment\", permissions: \"Read,Create,Edit,Delete\", fields: 7, tabSettings: \"Default Off\" },\r\n\t\t{ name: \"Resolved/Closed\", permissions: \"-\", fields: 8, tabSettings: \"Default On\" },\r\n\t\t{ name: \"Analytics Overview\", permissions: \"-\", fields: 7, tabSettings: \"Default Off\" },\r\n\t\t{ name: \"Sales Metrics\", permissions: \"-\", fields: 6, tabSettings: \"Default On\" },\r\n\t\t{ name: \"User Engagement\", permissions: \"Read,Create,Edit,Delete\", fields: 7, tabSettings: \"Default Off\" },\r\n\t\t{ name: \"Draft Invoices\", permissions: \"-\", fields: 5, tabSettings: \"Default On\" },\r\n\t\t{ name: \"Template Selection\", permissions: \"Read,Create,Edit\", fields: 7, tabSettings: \"Default Off\" },\r\n\t\t{ name: \"Payment Options\", permissions: \"Read,Create\", fields: 9, tabSettings: \"Default On\" },\r\n\t\t{ name: \"Payment Tracking\", permissions: \"-\", fields: 4, tabSettings: \"Default Off\" },\r\n\t\t{ name: \"Campaign Management\", permissions: \"Read,Create,Edit,Delete\", fields: 14, tabSettings: \"Default On\" },\r\n\t\t{ name: \"Campaign Template\", permissions: \"Read,Create,Edit\", fields: 7, tabSettings: \"Default Off\" },\r\n\t\t{ name: \"Campaign Scheduling\", permissions: \"-\", fields: 14, tabSettings: \"Default Off\" },\r\n\t\t{ name: \"Assets Library\", permissions: \"Read,Create,Edit,Delete\", fields: 12, tabSettings: \"Default Off\" },\r\n\t\t{ name: \"Asset Configure\", permissions: \"-\", fields: 7, tabSettings: \"Default On\" },\r\n\t\t{ name: \"Project Creation\", permissions: \"Read,Create,Edit,Delete\", fields: 8, tabSettings: \"Default Off\" },\r\n\t\t{ name: \"Track Project Progress\", permissions: \"-\", fields: 3, tabSettings: \"Default On\" },\r\n\t\t{ name: \"Manage Schedules\", permissions: \"Read,Create,Edit,Delete\", fields: 11, tabSettings: \"Default On\" },\r\n\t\t{ name: \"Manage Time Zones\", permissions: \"Read,Create,Edit,Delete\", fields: 12, tabSettings: \"Default On\" },\r\n\t\t{ name: \"Configure Calendar View\", permissions: \"-\", fields: 7, tabSettings: \"Default Off\" },\r\n\t\t{ name: \"Recurring Schedules\", permissions: \"Read,Create,Edit,Delete\", fields: 7, tabSettings: \"Default On\" }\r\n\t];\r\n\r\n\r\nvm.OpenProfileOverview = function(){\r\n\t$state.go('index.ObjectSettingsDetails',{\r\n\t \r\n\t}, { reload: true });\r\n \r\n}\r\nvm.isEditMode = false;\r\nvm.editMode = false;\r\nvm.selectedObject = vm.objects[0];\r\nvm.permissions = {};\r\nvm.selectedObject.permissionsList = vm.selectedObject.permissions.split(',');\r\nvm.selectedObject.permissionsList.forEach(function(permission) {\r\n\tif (permission !== \"-\") {\r\n\t\tvm.permissions[permission] = true;\r\n\t}\r\n});\r\n\r\n// vm.saveSettings = function() {\r\n// \tconsole.log('Settings saved:', vm.selectedObject, vm.permissions);\r\n// \tvm.editMode = false; // Exit edit mode after saving\r\n// };\r\n// vm.objectSettings = { tabDefault: 'Default On' };\r\nvm.defaultPermissions = [\r\n\t{ name: 'Read', enabled: true },\r\n\t{ name: 'Create', enabled: true },\r\n\t{ name: 'Edit', enabled: true },\r\n\t{ name: 'Delete', enabled: false },\r\n\t{ name: 'View All', enabled: false },\r\n\t{ name: 'Modify All', enabled: false }\r\n];\r\nvm.permissions = angular.copy(vm.defaultPermissions);\r\n$scope.isCollapsed = false;\r\nvm.toggleEditMode = function(obj) {\r\n\tif (obj) {\r\n\t\tvm.selectedObject = obj;\r\n\t\tvm.isEditMode = true;\r\n\t\tvm.editMode = true;\r\n\t\t// $timeout(function() {\r\n\t\t// \tdocument.getElementById('editSection').scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n\t\t// }, 100);\r\n\t} else {\r\n\t\tconsole.log('Saved:', vm.selectedObject, vm.objectSettings, vm.permissions);\r\n\t\tvm.isEditMode = false;\r\n\t\tvm.selectedObject = null;\r\n\t}\r\n};\r\n\r\nvm.saveSettings = function() {\r\n\tconsole.log('Settings saved:', vm.selectedObject, vm.permissions);\r\n\tvm.isEditMode = false; // Exit edit mode after saving\r\n};\r\n\r\nvm.cancelEditMode = function() {\r\n\tvm.isEditMode = false;\r\n\tvm.selectedObject = null;\r\n};\r\n\t}\r\n});\nangular.module('inspinia').service('ProfileManagementDetailService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ProfileManagementDetailController', function (ProfileManagementDetailService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\tvm.OpenAssignedProfile = function(){\r\n\t\t\t$state.go('index.AssignedProfileToUser',{\r\n\t\t\t \r\n\t\t\t}, { reload: true });\r\n\t\t \r\n\t\t}\r\n\r\n\t\tvm.Objectdetailview = function(){\r\n\t\t\t$state.go('index.ProfileObjectDetail',{\r\n\t\t\t \r\n\t\t\t}, { reload: true });\r\n\t\t \r\n\t\t}\r\n\t\tvm.confrigueappmenus = function(){\r\n\t\t\t$state.go('index.AppsMenusConfige',{\r\n\t\t\t \r\n\t\t\t}, { reload: true });\r\n\t\t \r\n\t\t}\r\n\t\tvm.isPanelVisible = false;\r\n\r\n\t\tvm.togglePanel = function () {\r\n\t\t\tvm.isPanelVisible = !vm.isPanelVisible;\r\n\t\t };\r\n // Assigned profiles data\r\n vm.profiles = [\r\n { name: \"Sumant Kumar\", username: \"SumantKumar352\", role: \"Service Center Manager\", customChecked: true, profile: \"Dispatch Head\" },\r\n { name: \"Amit Sharma\", username: \"AmitSharma123\", role: \"Technician Lead\", customChecked: true, profile: \"Dispatch Head\" },\r\n { name: \"Neha Verma\", username: \"NehaVerma456\", role: \"Customer Service Executive\", customChecked: true, profile: \"Dispatch Head\" },\r\n { name: \"Rahul Mehta\", username: \"RahulMehta789\", role: \"Parts & Inventory Manager\", customChecked: true, profile: \"Dispatch Head\" }\r\n ];\r\n\r\n // Function to handle profile overview\r\n vm.OpenProfileOverview = function(profile) {\r\n console.log(\"Opening profile overview for:\", profile);\r\n // Add logic to open profile overview\r\n };\r\n\r\n // Function to open Clone Profile modal\r\n vm.CloneProfileModalOpen = function(profile) {\r\n console.log(\"Opening clone profile modal for:\", profile);\r\n // Add logic to open modal\r\n };\r\n \r\n \r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('ProfileManagementService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ProfileManagementController', function (ProfileManagementService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount ; \r\n\t\t$scope.TicketTablepagination = {\r\n\t\t current: 1\r\n\t\t};\r\n\t\r\n\t\r\n\t\tvm.changeTicketPageListCount = function() { \r\n\t\t $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t PageSize = $scope.ticketTablePerPage;\r\n\t\t $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t}\r\n\r\n\t\tPageIndex=$scope.TicketTablepagination.current;\r\n\t\t$scope.TicketTablepageChanged = function(newPage) { \r\n\t\t PageIndex = newPage; \r\n\t\t vm.getAllJobForExceptionList();\r\n\t\t};\r\n\r\n\t\tvm.scheduleExceptionListNew=[];\r\n \r\n\t\tvm.AddNewProfileModalOpen = function () {\r\n\t\t\tvm.addnewprofile = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'AddNewProfile.html',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n \r\n\tvm.CloseNewProfileModal = function () {\r\n\tvm.addnewprofile.close();\r\n\t}\r\n\tvm.ExistingProfile = \"Dispatch Head\"; \r\n\r\n\t// vm.profiles = [\r\n\t// \t{ name: \"Dispatch Head\",description:\"\", customChecked: false },\r\n\t// \t{ name: \"Dispatch Supervisor\", customChecked: false },\r\n\t// \t{ name: \"Onboarding Manager\", customChecked: false },\r\n\t// \t{ name: \"Freelancer Dispatcher\", customChecked: true },\r\n\t// \t{ name: \"Onboarding Team Lead\", customChecked: true },\r\n\t// \t{ name: \"Supervisor\", customChecked: true },\r\n\t// ];\r\n\tvm.profiles = [\r\n\t\t{ name: 'Dispatch Head', description: 'Oversees logistics and dispatch operations, ensuring timely deliveries and optimal resource allocation.', customChecked: false },\r\n\t\t{ name: 'Account Manager', description: 'Manages client relationships, ensuring satisfaction, retention, and revenue growth through effective communication and strategic planning.', customChecked: false },\r\n\t\t{ name: 'Administrator', description: 'Oversees the overall operations and ensures system reliability.', customChecked: false },\r\n\t\t{ name: 'Branch Service Manager', description: 'Supervises branch services, ensures customer satisfaction, and aligns branch operations with organizational objectives.', customChecked: false },\r\n\t\t{ name: 'Category Manager', description: 'Strategically manages product categories, driving profitability through pricing, merchandising, and supply chain coordination.', customChecked: false },\r\n\t\t{ name: 'Community Manager', description: 'Builds and engages online/offline communities, fostering relationships and brand loyalty through communication and events.', customChecked: false },\r\n\t\t{ name: 'Customer', description: 'Engages with services/products, providing feedback, ensuring satisfaction, and driving business through ongoing interactions.', customChecked: false },\r\n\t\t{ name: 'Defective Management', description: 'Handles defect identification, analysis, and resolution to maintain product/service quality and customer satisfaction.', customChecked: false },\r\n\t\t{ name: 'Dispatch Manager', description: 'Manages dispatch teams, schedules shipments, and ensures smooth delivery operations.', customChecked: false },\r\n\t\t{ name: 'Dispatch Supervisor', description: 'Supervises dispatch staff, monitors activities, and resolves logistical issues efficiently.', customChecked: false },\r\n\t\t{ name: 'Dispatch Team Lead', description: 'Guides dispatch team members, assigns tasks, and ensures operational efficiency.', customChecked: false },\r\n\t\t{ name: 'Field Engineer', description: 'Provides on-site technical support, installation, and maintenance of equipment or systems.', customChecked: false },\r\n\t\t{ name: 'Freelancer Dispatcher', description: 'Coordinates freelance dispatching activities, ensuring timely task completion and communication.', customChecked: true },\r\n\t\t{ name: 'Help Desk', description: 'Provides first-line support, resolving technical or service-related issues for users/customers.', customChecked: false },\r\n\t\t{ name: 'Higher Management', description: 'Coordinates freelance dispatching activities, ensuring timely task completion and communication.', customChecked: false },\r\n\t\t{ name: 'Invoice Manager', description: 'Manages billing operations, ensuring timely invoicing and error-free transactions.', customChecked: false },\r\n\t\t{ name: 'Onboarding Head', description: 'Leads onboarding initiatives, ensuring seamless employee integration and alignment with company culture.', customChecked: false },\r\n\t\t{ name: 'Onboarding Manager', description: 'Oversees new hires onboarding process, facilitating training and resource allocation.', customChecked: false },\r\n\t\t{ name: 'Onboarding Team Lead', description: 'Coordinates onboarding efforts, mentoring team members to meet objectives.', customChecked: true },\r\n\t\t{ name: 'Project Manager', description: 'Plans, executes, and oversees projects, ensuring timely completion within budget and scope.', customChecked: false },\r\n\t\t{ name: 'Regional Service Manager', description: 'Manages regional service teams, ensuring alignment with company standards and customer satisfaction.', customChecked: false },\r\n\t\t{ name: 'Supervisor', description: 'Oversees team operations, monitors performance, and ensures efficiency.', customChecked: true },\r\n\t\t{ name: 'Vendor Manager', description: 'Manages vendor relationships, ensuring quality service and cost-effectiveness.', customChecked: false },\r\n\t\t{ name: 'Warehouse Manager', description: 'Oversees warehouse operations, ensuring inventory accuracy and efficient workflow.', customChecked: false }\r\n\t];\r\n\t\r\n\r\n\t// Function to Save a New Profile\r\n\tvm.SaveProfile = function() {\r\n\t\tif (vm.ProfileName) {\r\n\t\t\tvm.profiles.push({\r\n\t\t\t\tname: vm.ProfileName,\r\n\t\t\t\tdescription: vm.SummaryDescription,\r\n\t\t\t\tcustomChecked: true ,// Default unchecked\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t\tvm.showSuccess(\"Success\",\"Profile Created Successfully\");\r\n\t\t\t// Clear input field after saving\r\n\t\t\tvm.ProfileName = \"\";\r\n\t\t\tvm.CloseNewProfileModal();\r\n\t\t}\r\n\t};\r\n\tvm.SavecloneProfile = function() {\r\n\t\tif (vm.ProfileName) {\r\n\t\t\tvm.profiles.push({\r\n\t\t\t\tname: vm.ProfileName,\r\n\t\t\t\tdescription: vm.SummaryDescription,\r\n\t\t\t\tcustomChecked: true, \r\n\t\t\t\tisCloned: true\r\n\t\t\t});\r\n\t\t\tvm.showSuccess(\"Success\",\"Profile Clone Successfully\");\r\n\t\t\t// Clear input field after saving\r\n\t\t\tvm.ProfileName = \"\";\r\n\t\t\t\r\n\t\t\tvm.CloseCloneModal();\r\n\t\t}\r\n\t};\r\n\t \r\n\tvm.CloneProfileModalOpen = function (selectedProfile) {\r\n\t\tvm.SelectedProfile = selectedProfile;\r\n\t\tvm.ProfileName = '';\r\n\t\t// vm.SelectedProfile.isCloned = true;\r\n\t\t// vm.SelectedProfile.customChecked = true; \t\t\r\n\t\tvm.cloneprofile = $uibModal.open({\r\n\t\t\ttemplateUrl: 'CloneProfile.html',\r\n\t\t\tsize: 'md',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\r\nvm.CloseCloneModal = function () {\r\nvm.cloneprofile.close();\r\n}\r\nvm.DeleteProfile = function(profile) {\r\n if (!vm.profiles || !profile) {\r\n console.error(\"Profiles list or profile is undefined\");\r\n return;\r\n }\r\n\r\n for (var i = 0; i < vm.profiles.length; i++) {\r\n if (vm.profiles[i].name === profile.name) {\r\n vm.profiles.splice(i, 1); // Remove the row from the list\r\n vm.showSuccess(\"Success\", \"Profile Deleted Successfully\");\r\n console.log(\"Profile deleted:\", profile);\r\n return; // Stop loop after deleting\r\n }\r\n }\r\n\r\n console.warn(\"Profile not found in list\");\r\n};\r\n\r\nvm.OpenProfileOverview = function(){\r\n\t$state.go('index.ProfileManagementDetail',{\r\n\t \r\n\t}, { reload: true });\r\n \r\n}\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('ProductReplacementOrdersService', function (AcessoriesURL, ApiURL, SchedulingAPI, $window, $http) {\r\n\r\n this.GetAllWareHouse = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllWareHouse';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetProductReplacementList = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/GetProductReplacementList';\r\n return $http.put(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetProductReplacementList_CSV = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/GetProductReplacementList_CSV';\r\n return $http.put(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetProductReplacementDetails = function (replacementId, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/GetProductReplacementDetails?replacementId=' + replacementId;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UpdateProductReplacementStatus = function ( data,loggedinUser,token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/UpdateProductReplacementStatus';\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateProductReplacementStatusWithAttachment = function (data, file, FileName, loggedinUser, token) {\r\n var formdata = new FormData();\r\n formdata.append(FileName, file);\r\n var FiltersData = JSON.stringify(data);\r\n formdata.append(\"FiltersData\", FiltersData);\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/UpdateProductReplacementStatusWithAttachment';\r\n return $http.put(url, formdata, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.MarkProductStatusDeliveredByServiceCenter = function (data, imageFile, imageFileName, invoiceFile, invoiceFileName, loggedinUser, token) {\r\n var formdata = new FormData();\r\n formdata.append(imageFileName, imageFile);\r\n formdata.append(invoiceFileName, invoiceFile);\r\n var FiltersData = JSON.stringify(data);\r\n formdata.append(\"FiltersData\", FiltersData);\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/MarkProductStatusDeliveredByServiceCenter';\r\n return $http.put(url, formdata, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.ResubmitProductReplacementRequest = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/ResubmitProductReplacementRequest'\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CreateReOrderProductReplacementRequest = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/CreateReOrderProductReplacementRequest';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ProductReplacementOrdersController', function (ProductReplacementOrdersService, MainService, $resource, $stateParams, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\t// var warehouseId = $stateParams.warehouseId;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvar oPageIndex = 1;\r\n\t\tvar oPageSize = 10;\r\n\t\tvm.AccountId= $localStorage.accountConfig.AccountId;\r\n\t\tvm.allOrdersPageListCount = 10;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.ImageFileName = \"\";\r\n\t\tvm.InvoiceFileName = \"\";\r\n\t\tvm.allInventoryPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.UserId = '';\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\t$scope.dates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t\t};\r\n\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t};\r\n\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t$scope.TicketTablepagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\t\tvm.GetAllWareHouse = function () {\r\n\t\t\tProductReplacementOrdersService.GetAllWareHouse(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.warehouseitemlist = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllWareHouse();\r\n\t\tvm.OpenResubmitReplaceModel = function (resubmitreplacedetails) {\r\n\t\t\tvm.resubmitReplacementId = resubmitreplacedetails;\r\n\t\t\tResubmitReplaceModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Resubmit.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeResubmitRequestUpdateModel = function () {\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tResubmitReplaceModel.close();\r\n\t\t\tvm.resubmitstrReplacementComment = '';\r\n\t\t\tvm.resubmitReplacementId = '';\r\n\t\t}\r\n\t\tvm.ResubmitProductReplacementRequest = function () {\r\n\t\t\tvm.Resubmit_Form.submitted = true;\r\n\t\t\tif (vm.Resubmit_Form.$valid) {\r\n\t\t\t\t// $scope.uploadFiles();\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar resubmitreplacementreasondata = {\r\n\t\t\t\t\t\"strProductReplacementId\": vm.resubmitReplacementId,\r\n\t\t\t\t\t\"strReplacementComment\": vm.resubmitstrReplacementComment,\r\n\t\t\t\t\t\"strReplacementReason\": vm.resubmitrelacementoption,\r\n\t\t\t\t}\r\n\t\t\t\tProductReplacementOrdersService.ResubmitProductReplacementRequest(resubmitreplacementreasondata, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Product replacement request raised.\");\r\n\t\t\t\t\t\tvm.closeResubmitRequestUpdateModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t\t\t// vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.trackingStatus = false;\r\n\r\n\t\tvm.GetProductReplacementDetails = function (replacementId) {\r\n\t\t\tProductReplacementOrdersService.GetProductReplacementDetails(replacementId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.trackingDetails = resp.data;\r\n\t\t\t\t\tvm.activitytimeline = resp.data.listApprovalTrail;\r\n\t\t\t\t\tvm.trackingStatus = true;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.OpenUseerDetails = function (orderid) {\r\n\t\t\t$state.go('index.WareHouseOrderDetailView', {\r\n\t\t\t\torder_id: orderid\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\r\n\t\tvm.reorderReplacementId = '';\r\n\t\tvm.OpenReOrderConfirmation = function (reordereplacedetails) {\r\n\t\t\tvm.reorderReplacementId = reordereplacedetails;\r\n\t\t\tReorderModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ReOrderPart.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeReOrderConfirmation = function () {\r\n\t\t\tReorderModel.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.reorderReplacementId = '';\r\n\t\t\tvm.reorderReplacementComment = '';\r\n\t\t}\r\n\r\n\t\tvm.CreateReOrderProductReplacementRequest = function () {\r\n\t\t\tvm.Reorder_Form.submitted = true;\r\n\t\t\tif (vm.Reorder_Form.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar reordereplacementreasondata = {\r\n\t\t\t\t\t\"strProductReplacementId\": vm.reorderReplacementId,\r\n\t\t\t\t\t\"strReplacementComment\": vm.reorderReplacementComment,\r\n\t\t\t\t\t\"strReplacementReason\": vm.reorderrelacementoption,\r\n\t\t\t\t}\r\n\t\t\t\tProductReplacementOrdersService.CreateReOrderProductReplacementRequest(reordereplacementreasondata, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Product re-order request raised.\");\r\n\t\t\t\t\t\tvm.closeReOrderConfirmation();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\t// vm.TrackingSidePanel = function (replacementId) {\r\n\t\t// \tvm.TrackDetails = p;\r\n\t\t// \tvm.trackingStatus = true;\r\n\t\t// }\r\n\t\tvm.OpenTicketView = function (ticket) {\r\n\t\t\t$state.go('index.JobDetailView', {\r\n\t\t\t\tticketId: ticket\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\t\tvm.productType = \"\";\r\n\t\tvm.OpenDeliveredModel = function (requestId, product) {\r\n\t\t\tvm.requestIdTobeUpdated = requestId;\r\n\t\t\tvm.productType = product;\r\n\t\t\tDeliveredUpdateModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'UpdateDeliveredStatus.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeDeliveredUpdateModel = function () {\r\n\t\t\tDeliveredUpdateModel.close();\r\n\t\t\tvm.DeliveryRemark = \"\";\r\n\t\t\tvm.warehouselist = \"\";\r\n\t\t\tvm.InvoiceFileName = \"\";\r\n\t\t\tvm.ImageFileName = \"\";\r\n\t\t\tvm.substatus = \"\";\r\n\t\t\tvm.productType = \"\";\r\n\t\t\tvm.IndoorSerialNumber = \"\";\r\n\t\t\tvm.OutdoorSerialNumber = \"\";\r\n\t\t\tvm.ModelNumber = \"\";\r\n\t\t\tvm.clear();\r\n\r\n\t\t}\r\n\r\n\t\tvm.OpenRequestUpdateModel = function (requestId, action) {\r\n\t\t\tvm.UpdateAction = action;\r\n\t\t\tvm.requestIdTobeUpdated = requestId;\r\n\t\t\tRequestUpdateModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'UpdateRequestStatus.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeRequestUpdateModel = function () {\r\n\t\t\tRequestUpdateModel.close();\r\n\t\t\tvm.UpdationRemark = \"\";\r\n\t\t\tvm.warehouselist = \"\";\r\n\t\t\tvm.FileName = \"\";\r\n\t\t\tvm.GRNumber = \"\";\r\n\t\t\tvm.PackageDetails = \"\";\r\n\t\t\tvm.TrackingLink = \"\";\r\n\t\t\tvm.warehouselist = \"\";\r\n\t\t}\r\n\r\n\t\t$scope.uploadImageForNotice = function (files) {\r\n\t\t\tvm.FileName = \"\";\r\n\t\t\tvm.FilesDoc = files.files[0];\r\n\t\t\tvm.FileName = vm.FilesDoc.name;\r\n\t\t\tvm.FileSize = vm.FilesDoc.size;\r\n\r\n\t\t\t// Allowed file extensions (Images: jpg, jpeg, png, jfif and Documents: pdf, doc, docx)\r\n\t\t\tvar allowedExtensions = /(\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png|\\.JFIF|\\.jfif|\\.PDF|\\.pdf|\\.DOC|\\.doc|\\.DOCX|\\.docx)$/i;\r\n\r\n\t\t\t// Validate file extension\r\n\t\t\tif (!allowedExtensions.exec(vm.FileName)) {\r\n\t\t\t\tvm.FilesDoc = [];\r\n\t\t\t\tvm.clear();\r\n\t\t\t\talert('Please upload a file with extensions .jpg, .jpeg, .png, .jfif, .pdf, .doc, or .docx only.');\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t$scope.uploadImageForDelivery = function (files) {\r\n\t\t\tvm.ImageFileName = \"\";\r\n\t\t\tvm.ImageFilesDoc = files.files[0];\r\n\t\t\tvm.ImageFileName = vm.ImageFilesDoc.name;\r\n\t\t\tvm.ImageFileSize = vm.ImageFilesDoc.size;\r\n\r\n\t\t\t// Allowed file extensions (Images: jpg, jpeg, png, jfif and Documents: pdf, doc, docx)\r\n\t\t\tvar allowedExtensions = /(\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png|\\.JFIF|\\.jfif|\\.PDF|\\.pdf|\\.DOC|\\.doc|\\.DOCX|\\.docx)$/i;\r\n\r\n\t\t\t// Validate file extension\r\n\t\t\tif (!allowedExtensions.exec(vm.ImageFileName)) {\r\n\t\t\t\tvm.ImageFilesDoc = [];\r\n\t\t\t\tvm.clear();\r\n\t\t\t\talert('Please upload a file with extensions .jpg, .jpeg, .png, .jfif, .pdf, .doc, or .docx only.');\r\n\t\t\t}\r\n\t\t}\r\n\t\t$scope.uploadInvoiceForDelivery = function (files) {\r\n\t\t\tvm.InvoiceFileName = \"\";\r\n\t\t\tvm.InvoiceFilesDoc = files.files[0];\r\n\t\t\tvm.InvoiceFileName = vm.InvoiceFilesDoc.name;\r\n\t\t\tvm.FileSize = vm.InvoiceFilesDoc.size;\r\n\r\n\t\t\t// Allowed file extensions (Images: jpg, jpeg, png, jfif and Documents: pdf, doc, docx)\r\n\t\t\tvar allowedExtensions = /(\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png|\\.JFIF|\\.jfif|\\.PDF|\\.pdf|\\.DOC|\\.doc|\\.DOCX|\\.docx)$/i;\r\n\r\n\t\t\t// Validate file extension\r\n\t\t\tif (!allowedExtensions.exec(vm.InvoiceFileName)) {\r\n\t\t\t\tvm.InvoiceFilesDoc = [];\r\n\t\t\t\tvm.clear();\r\n\t\t\t\talert('Please upload a file with extensions .jpg, .jpeg, .png, .jfif, .pdf, .doc, or .docx only.');\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Function to clear the file input\r\n\t\tvm.clear = function () {\r\n\t\t\tangular.element(\"input[type='file']\").val(null);\r\n\t\t};\r\n\t\tvm.PDFViewOfShipmentDoc = function (page) {\r\n\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, page).then(function (resp) {\r\n\t\t\t\tvm.pdfimage = resp.data;\r\n\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t});\r\n\t\t\t$timeout(function () {\r\n\t\t\t\tvm.taxInvoiceModel = $uibModal.open({\r\n\t\t\t\t\ttemplateUrl: \"PDFView.html\",\r\n\t\t\t\t\tsize: \"lg\",\r\n\t\t\t\t\tscope: $scope,\r\n\t\t\t\t});\r\n\t\t\t}, 1000);\r\n\t\t};\r\n\t\tvm.closePDFView = function () {\r\n\t\t\tvm.taxInvoiceModel.close();\r\n\r\n\t\t};\r\n\t\tvm.ImageViewOfShipmentDoc = function (img, index) {\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\t\tif (resp.data == null || resp.data == '') {\r\n\t\t\t\t\tvm.productImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.productImg[index] = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.productImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t\r\n\t\t$scope.checkPDF = function (path) {\r\n\t\t\tif (path) {\r\n\t\t\t\tvar pt = path.substr(path.length - 4);\r\n\t\t\t\tif (pt == '.pdf') {\r\n\t\t\t\t\tvm.error = function () {\r\n\t\t\t\t\t\t$(\".pdf\").attr({ \"target\": \"_blank\" })\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.ActionToBeTaken = '';\r\n\t\tvm.UpdateRequestStatusBySC = function () {\r\n\t\t\tif (vm.UpdateAction == 'Approval') {\r\n\t\t\t\tvm.ActionToBeTaken = 'Approved';\r\n\t\t\t}\r\n\t\t\telse if (vm.UpdateAction == 'Dispatched'){\r\n\t\t\t\tvm.ActionToBeTaken = 'Dispatched';\r\n\t\t\t}\r\n\t\t\telse if (vm.UpdateAction == 'Delivered'){\r\n\t\t\t\tvm.ActionToBeTaken = 'Delivered';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tvm.ActionToBeTaken = 'Rejected';\r\n\t\t\t}\r\n\t\t\tvm.Request_Update_Form.submitted = true;\r\n\t\t\tif (vm.Request_Update_Form.$valid) {\r\n\t\t\t\tvar RequestModel = {\r\n\t\t\t\t\t\"ReplacementId\": vm.requestIdTobeUpdated,\r\n\t\t\t\t\t\"Status\": vm.ActionToBeTaken,\r\n\t\t\t\t\t\"Comment\": \"\",\r\n\t\t\t\t\t\"Reason\": vm.UpdationRemark,\r\n\t\t\t\t\t\"WareHouseId\": vm.warehouselist\r\n\t\t\t\t }\r\n\t\t\t\tProductReplacementOrdersService.UpdateProductReplacementStatus(RequestModel, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Request updated successfully\");\r\n\t\t\t\t\t\tvm.closeRequestUpdateModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.UpdateProductReplacementStatusWithAttachment = function () {\r\n\t\t\tif (vm.UpdateAction == 'Approval') {\r\n\t\t\t\tvm.ActionToBeTaken = 'Approved';\r\n\t\t\t}\r\n\t\t\telse if (vm.UpdateAction == 'Dispatched') {\r\n\t\t\t\tvm.ActionToBeTaken = 'Dispatched';\r\n\t\t\t}\r\n\t\t\telse if (vm.UpdateAction == 'Delivered') {\r\n\t\t\t\tvm.ActionToBeTaken = 'Delivered';\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.ActionToBeTaken = 'Rejected';\r\n\t\t\t}\r\n\t\t\tvm.Request_Update_Form.submitted = true;\r\n\t\t\tif (vm.Request_Update_Form.$valid) {\r\n\t\t\t\tvm.PackageDetails = [{\r\n\t\t\t\t\t\"strPackageId\": vm.strPackageId,\r\n\t\t\t\t\t\"strPackageStatus\": \"Shipped\",\r\n\t\t\t\t\t\"strPackageTrackingId\": vm.strPackageTrackingId,\r\n\t\t\t\t\t\"strShipmentId\": vm.strShipmentId,\r\n\t\t\t\t\t\"datePackedOn\": moment().format(\"YYYY-MM-DD\")\r\n\t\t\t\t}]\r\n\t\t\t\tvar RequestModel = {\r\n\t\t\t\t\t\"ReplacementId\": vm.requestIdTobeUpdated,\r\n\t\t\t\t\t\"Status\": vm.ActionToBeTaken,\r\n\t\t\t\t\t\"Comment\": \"\",\r\n\t\t\t\t\t\"Reason\": vm.UpdationRemark,\r\n\t\t\t\t\t\"WareHouseId\": vm.warehouselist,\r\n\t\t\t\t\t\"TrackingLink\": vm.TrackingLink,\r\n\t\t\t\t\t\"PackageDetails\": vm.PackageDetails,\r\n\t\t\t\t\t\"GRNumber\": vm.GRNumber,\r\n\t\t\t\t\t\"Attachement\": vm.FileName,\r\n\t\t\t\t}\r\n\t\t\t\tProductReplacementOrdersService.UpdateProductReplacementStatusWithAttachment(RequestModel, vm.FilesDoc, vm.FileName, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Request updated successfully\");\r\n\t\t\t\t\t\tvm.closeRequestUpdateModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.AcceptDelivery = function () {\r\n\t\t\tvm.DeliveryModal_Form.submitted = true;\r\n\t\t\tif (vm.DeliveryModal_Form.$valid) {\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"ReplacementId\": vm.requestIdTobeUpdated,\r\n\t\t\t\t\t\"Reason\": vm.DeliveryRemark,\r\n\t\t\t\t\t\"ModelNumber\": vm.ModelNumber,\r\n\t\t\t\t\t\"IndoorSerialNumber\": vm.IndoorSerialNumber,\r\n\t\t\t\t\t\"OutdoorSerialNumber\": vm.OutdoorSerialNumber,\r\n\t\t\t\t\t\"SubStatus\": vm.substatus,\r\n\t\t\t\t\t\"DamgedAttachment\": vm.ImageFileName,\r\n\t\t\t\t\t\"InvoiceImage\": vm.InvoiceFileName\r\n\t\t\t\t}\r\n\t\t\t\tProductReplacementOrdersService.MarkProductStatusDeliveredByServiceCenter(data, vm.ImageFilesDoc, vm.ImageFileName, vm.InvoiceFilesDoc, vm.InvoiceFileName, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Request marked delivered successfully\");\r\n\t\t\t\t\t\tvm.closeDeliveredUpdateModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\t\t}\r\n\t\t$scope.openTrackingLink = function (trackingLink) {\r\n\t\t\t$window.open(trackingLink, '_blank');\r\n\t\t};\r\n\r\n\r\n\t\t$scope.totalInvList = 0;\r\n\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t$scope.InventoryPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\r\n\t\tvm.changeAllInventoryPageListCount = function () {\r\n\t\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t\tPageSize = $scope.inventoryPerPage;\r\n\t\t\t$scope.AllInventoryTablePageChanged($scope.InventoryPagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\t\tPageIndex = newPage;\r\n\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\tPageIndex = newPage;\r\n\t\t\tvm.GetProductReplacementList();\r\n\r\n\t\t};\r\n\t\tvm.SearchText = '';\r\n\t\tvm.warehouselist = \"\";\r\n\t\tvm.warehouseInvetoryList = [];\r\n\r\n\r\n\t\tvm.clearFilter = function () {\r\n\t\t\tvm.SearchText = '';\r\n\t\t\tvm.warehouselist = '';\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\t\tvm.applyOrderFilter = function () {\r\n\t\t\tvm.GetProductReplacementList();\r\n\t\t}\r\n\t\tvm.SelectedOrderStatus = '';\r\n\r\n\t\tvm.setSelectedFilter = function (item) {\r\n\t\t\tvm.SelectedOrderStatus = item;\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t};\r\n\r\n\r\n\t\tvm.clearMyOrderFilter = function () {\r\n\t\t\tvm.SelectedOrderStatus = '';\r\n\t\t\tvm.warehouselist = '';\r\n\t\t\tvm.searchTag = '';\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t}\r\n\r\n\t\tvm.TrainingImageServices = function (img, index) {\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\t\tif (resp.data == null || resp.data == '') {\r\n\t\t\t\t\tvm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.TrainingImagebase64[index] = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\t$scope.filesArray.push({\r\n\t\t\t\t\tname: img,\r\n\t\t\t\t\tsrc: vm.TrainingImagebase64[index],\r\n\t\t\t\t});\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t$scope.filesArray.push({\r\n\t\t\t\t\tname: img,\r\n\t\t\t\t\tsrc: vm.TrainingImagebase64[index],\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.showPartDetails = false;\r\n\r\n\t\tvm.CancelMyOrder = function () {\r\n\t\t\tProductReplacementOrdersService.CancelMyOrder(vm.orderId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Order cancelled successfully.\");\r\n\t\t\t\t\tvm.closeOrderCancelConfirmation();\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\t$scope.totalOrderList = 0;\r\n\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t$scope.OrdersPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllOrderPageListCount = function () {\r\n\t\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t\toPageSize = $scope.ordersPerPage;\r\n\t\t\t$scope.AllOrderTablePageChanged($scope.OrdersPagination.current);\r\n\t\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\t\toPageIndex = newPage;\r\n\t\t\t\tvm.GetProductReplacementList();\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\toPageIndex = newPage;\r\n\t\t\tvm.GetProductReplacementList();\r\n\r\n\t\t};\r\n\t\tvm.orderInvetoryList = [];\r\n\r\n\t\tvm.GetProductReplacementList = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Status\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tProductReplacementOrdersService.GetProductReplacementList(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.orderInvetoryList = resp.data.ReturnList;\r\n\t\t\t\t\t$scope.totalOrderList = resp.data.RecordCount;\r\n\t\t\t\t\tvm.productImg = [];\r\n\t\t\t\t\tfor (var i = 0; i < vm.orderInvetoryList.length; i++) {\r\n\t\t\t\t\t\tvar item = vm.orderInvetoryList[i];\r\n\t\t\t\t\t\tvm.ImageViewOfShipmentDoc(item.strPackageAttachment, i);\r\n\t\t\t\t\t\t// vm.ImageViewOfInvoice(item.InvoiceImage, i);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (vm.orderInvetoryList.length < vm.allOrdersPageListCount)\r\n\t\t\t\t\t\tvm.orderListLength = $scope.totalOrderList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.orderListLength = oPageIndex * vm.allOrdersPageListCount;\r\n\t\t\t\t\tif (oPageIndex == 1)\r\n\t\t\t\t\t\tvm.opageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.opageindexCount = (((oPageIndex - 1) * vm.allOrdersPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetProductReplacementList();\r\n\r\n\t\tvm.GetProductReplacementList_CSV = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Status\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tProductReplacementOrdersService.GetProductReplacementList_CSV(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvar csvData = resp.data;\r\n\t\t\t\t\tvar blob = new Blob([csvData], { type: 'text/csv' });\r\n\t\t\t\t\tvar url = window.URL.createObjectURL(blob);\r\n\t\t\t\t\tvar a = document.createElement('a');\r\n\t\t\t\t\ta.href = url;\r\n\t\t\t\t\ta.download = 'All_Replacement_Orders_List.csv';\r\n\t\t\t\t\ta.click();\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.Acceptancemodel = function (requestDetails) {\r\n\t\t\tvm.showPartDetails = false;\r\n\t\t\tvm.AllRequestDetail = requestDetails;\r\n\t\t\tvm.updateStatusModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'acceptancepopup.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseAcceptanceModel = function () {\r\n\t\t\tvm.updateStatusModelOpen.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.UpdateOrderStatus = \"\";\r\n\t\t\tvm.TrackingLink = \"\";\r\n\t\t\tvm.strPackageId = \"\";\r\n\t\t\tvm.strPackageStatus = \"\";\r\n\t\t\tvm.strPackageTrackingId = \"\";\r\n\t\t\tvm.strShipmentId = \"\";\r\n\t\t\tvm.PackageDetails = [];\r\n\t\t\tvm.datePackedOn = moment().format(\"YYYY-MM-DD\");\r\n\t\t}\r\n\t}\r\n});\nangular.module('inspinia').service('ProductReplacementApprovalService', function (AcessoriesURL, ApiURL,MMFCRMURL, SchedulingAPI, $window, $http) {\r\n\r\n this.GetAllWareHouse = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllWareHouse';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetProductReplacementList = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFApprovalFlow/GetProductReplacementList';\r\n return $http.put(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetAllActiveProductModelMaster = function (ProductName, brand,loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllActiveProductModelMaster?productName=' + ProductName + '&brandName=' + brand;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n this.GetProductReplacementDashboard = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFApprovalFlow/GetProductReplacementDashboard';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetProductReplacementList_CSV = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFApprovalFlow/GetProductReplacementList_CSV';\r\n return $http.put(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetProductReplacementDetails = function (replacementId, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFApprovalFlow/GetProductReplacementDetails?replacementId=' + replacementId;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UpdateProductReplacementStatus = function ( data,loggedinUser,token) {\r\n var url = AcessoriesURL + '/api/MMFApprovalFlow/UpdateProductReplacementStatus';\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateProductReplacementStatusWithAttachment = function (data, file, FileName, loggedinUser, token) {\r\n var formdata = new FormData();\r\n formdata.append(FileName, file);\r\n var FiltersData = JSON.stringify(data);\r\n formdata.append(\"FiltersData\", FiltersData);\r\n var url = AcessoriesURL + '/api/MMFApprovalFlow/UpdateProductReplacementStatusWithAttachment';\r\n return $http.put(url, formdata, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.MarkProductStatusDeliveredByServiceCenter = function (data, imageFile, imageFileName, invoiceFile, invoiceFileName, loggedinUser, token) {\r\n var formdata = new FormData();\r\n formdata.append(imageFileName, imageFile);\r\n formdata.append(invoiceFileName, invoiceFile);\r\n var FiltersData = JSON.stringify(data);\r\n formdata.append(\"FiltersData\", FiltersData);\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/MarkProductStatusDeliveredByServiceCenter';\r\n return $http.put(url, formdata, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.ResubmitProductReplacementRequest = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFApprovalFlow/ResubmitProductReplacementRequest'\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CreateReOrderProductReplacementRequest = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFApprovalFlow/CreateReOrderProductReplacementRequest';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ProductReplacementApprovalController', function (ProductReplacementApprovalService, MainService, $resource, $stateParams, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\t// var warehouseId = $stateParams.warehouseId;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvar oPageIndex = 1;\r\n\t\tvar oPageSize = 10;\r\n\t\tvm.AccountId= $localStorage.accountConfig.AccountId;\r\n\t\tvm.allOrdersPageListCount = 10;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.ImageFileName = \"\";\r\n\t\tvm.InvoiceFileName = \"\";\r\n\t\tvm.allInventoryPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.UserId = '';\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\t$scope.dates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t\t};\r\n\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t};\r\n\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t$scope.TicketTablepagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\t\tvm.GetAllWareHouse = function () {\r\n\t\t\tProductReplacementApprovalService.GetAllWareHouse(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.warehouseitemlist = resp.data;\r\n\t\t\t\t\t\r\n\t\t\t\t\t// Set the first item as default\r\n\t\t\t\t\tif (vm.warehouseitemlist.length > 0) {\r\n\t\t\t\t\t\tvm.warehouselist = vm.warehouseitemlist[0].strWareHouseId;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t};\r\n\t\t\r\n\t\tvm.GetAllWareHouse();\r\n\t\tvm.OpenResubmitReplaceModel = function (resubmitreplacedetails) {\r\n\t\t\tvm.resubmitReplacementId = resubmitreplacedetails;\r\n\t\t\tResubmitReplaceModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Resubmit.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeResubmitRequestUpdateModel = function () {\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tResubmitReplaceModel.close();\r\n\t\t\tvm.resubmitstrReplacementComment = '';\r\n\t\t\tvm.resubmitReplacementId = '';\r\n\t\t}\r\n\t\tvm.ResubmitProductReplacementRequest = function () {\r\n\t\t\tvm.Resubmit_Form.submitted = true;\r\n\t\t\tif (vm.Resubmit_Form.$valid) {\r\n\t\t\t\t// $scope.uploadFiles();\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar resubmitreplacementreasondata = {\r\n\t\t\t\t\t\"strProductReplacementId\": vm.resubmitReplacementId,\r\n\t\t\t\t\t\"strReplacementComment\": vm.resubmitstrReplacementComment,\r\n\t\t\t\t\t\"strReplacementReason\": vm.resubmitrelacementoption,\r\n\t\t\t\t}\r\n\t\t\t\tProductReplacementApprovalService.ResubmitProductReplacementRequest(resubmitreplacementreasondata, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Product replacement request raised.\");\r\n\t\t\t\t\t\tvm.closeResubmitRequestUpdateModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t\t\tvm.GetProductReplacementDashboard();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.trackingStatus = false;\r\n\r\n\t\tvm.GetProductReplacementDetails = function (replacementId) {\r\n\t\t\tProductReplacementApprovalService.GetProductReplacementDetails(replacementId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.trackingDetails = resp.data;\r\n\t\t\t\t\tvm.activitytimeline = resp.data.listApprovalTrail;\r\n\t\t\t\t\tvm.trackingStatus = true;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.OpenUseerDetails = function (orderid) {\r\n\t\t\t$state.go('index.WareHouseOrderDetailView', {\r\n\t\t\t\torder_id: orderid\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\r\n\t\tvm.reorderReplacementId = '';\r\n\t\tvm.OpenReOrderConfirmation = function (reordereplacedetails) {\r\n\t\t\tvm.reorderReplacementId = reordereplacedetails;\r\n\t\t\tReorderModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ReOrderPart.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeReOrderConfirmation = function () {\r\n\t\t\tReorderModel.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.reorderReplacementId = '';\r\n\t\t\tvm.reorderReplacementComment = '';\r\n\t\t}\r\n\r\n\t\tvm.CreateReOrderProductReplacementRequest = function () {\r\n\t\t\tvm.Reorder_Form.submitted = true;\r\n\t\t\tif (vm.Reorder_Form.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar reordereplacementreasondata = {\r\n\t\t\t\t\t\"strProductReplacementId\": vm.reorderReplacementId,\r\n\t\t\t\t\t\"strReplacementComment\": vm.reorderReplacementComment,\r\n\t\t\t\t\t\"strReplacementReason\": vm.reorderrelacementoption,\r\n\t\t\t\t}\r\n\t\t\t\tProductReplacementApprovalService.CreateReOrderProductReplacementRequest(reordereplacementreasondata, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Product re-order request raised.\");\r\n\t\t\t\t\t\tvm.closeReOrderConfirmation();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t\t\tvm.GetProductReplacementDashboard();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\t// vm.TrackingSidePanel = function (replacementId) {\r\n\t\t// \tvm.TrackDetails = p;\r\n\t\t// \tvm.trackingStatus = true;\r\n\t\t// }\r\n\t\tvm.OpenTicketView = function (ticket) {\r\n\t\t\t$state.go('index.JobDetailView', {\r\n\t\t\t\tticketId: ticket\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\t\tvm.productType = \"\";\r\n\t\tvm.OpenDeliveredModel = function (requestId, product) {\r\n\t\t\tvm.requestIdTobeUpdated = requestId;\r\n\t\t\tvm.productType = product;\r\n\t\t\tDeliveredUpdateModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'UpdateDeliveredStatus.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeDeliveredUpdateModel = function () {\r\n\t\t\tDeliveredUpdateModel.close();\r\n\t\t\tvm.DeliveryRemark = \"\";\r\n\t\t\tvm.warehouselist = \"\";\r\n\t\t\tvm.InvoiceFileName = \"\";\r\n\t\t\tvm.ImageFileName = \"\";\r\n\t\t\tvm.substatus = \"\";\r\n\t\t\tvm.productType = \"\";\r\n\t\t\tvm.IndoorSerialNumber = \"\";\r\n\t\t\tvm.OutdoorSerialNumber = \"\";\r\n\t\t\tvm.ModelNumber = \"\";\r\n\t\t\tvm.clear();\r\n\r\n\t\t}\r\n\t\r\n\t\tvm.OpenRequestUpdateModel = function (requestId, action,modelbrand,productname) {\r\n\t\t\tvm.UpdateAction = action;\r\n\t\t\tvm.requestIdTobeUpdated = requestId;\r\n\t\t\tvm.ModelBrand = modelbrand;\r\n\t\t\tvm.ModelProducName = productname;\r\n\t\t\tRequestUpdateModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'UpdateRequestStatus.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope, \r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.GetAllActiveProductModelMaster = function () {\r\n\t\t\tProductReplacementApprovalService.GetAllActiveProductModelMaster(vm.ModelProducName,vm.ModelBrand,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.AllActiveProductModelNoList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.closeRequestUpdateModel = function () {\r\n\t\t\tRequestUpdateModel.close();\r\n\t\t\tvm.UpdationRemark = \"\";\r\n\t\t\tvm.warehouselist = \"\";\r\n\t\t\tvm.FileName = \"\";\r\n\t\t\tvm.GRNumber = \"\";\r\n\t\t\tvm.PackageDetails = \"\";\r\n\t\t\tvm.TrackingLink = \"\";\r\n\t\t\tvm.warehouselist = \"\";\r\n\t\t\tvm.newmodelname = \"\";\r\n\t\t\tvm.oldmodelprice = \"\";\r\n\t\t\tvm.newmodelprice = \"\";\r\n\t\t\tvm.DisableCreateButton = false;\r\n\t\t}\r\n\r\n\t\t$scope.uploadImageForNotice = function (files) {\r\n\t\t\tvm.FileName = \"\";\r\n\t\t\tvm.FilesDoc = files.files[0];\r\n\t\t\tvm.FileName = vm.FilesDoc.name;\r\n\t\t\tvm.FileSize = vm.FilesDoc.size;\r\n\r\n\t\t\t// Allowed file extensions (Images: jpg, jpeg, png, jfif and Documents: pdf, doc, docx)\r\n\t\t\tvar allowedExtensions = /(\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png|\\.JFIF|\\.jfif|\\.PDF|\\.pdf|\\.DOC|\\.doc|\\.DOCX|\\.docx)$/i;\r\n\r\n\t\t\t// Validate file extension\r\n\t\t\tif (!allowedExtensions.exec(vm.FileName)) {\r\n\t\t\t\tvm.FilesDoc = [];\r\n\t\t\t\tvm.clear();\r\n\t\t\t\talert('Please upload a file with extensions .jpg, .jpeg, .png, .jfif, .pdf, .doc, or .docx only.');\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t$scope.uploadImageForDelivery = function (files) {\r\n\t\t\tvm.ImageFileName = \"\";\r\n\t\t\tvm.ImageFilesDoc = files.files[0];\r\n\t\t\tvm.ImageFileName = vm.ImageFilesDoc.name;\r\n\t\t\tvm.ImageFileSize = vm.ImageFilesDoc.size;\r\n\r\n\t\t\t// Allowed file extensions (Images: jpg, jpeg, png, jfif and Documents: pdf, doc, docx)\r\n\t\t\tvar allowedExtensions = /(\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png|\\.JFIF|\\.jfif|\\.PDF|\\.pdf|\\.DOC|\\.doc|\\.DOCX|\\.docx)$/i;\r\n\r\n\t\t\t// Validate file extension\r\n\t\t\tif (!allowedExtensions.exec(vm.ImageFileName)) {\r\n\t\t\t\tvm.ImageFilesDoc = [];\r\n\t\t\t\tvm.clear();\r\n\t\t\t\talert('Please upload a file with extensions .jpg, .jpeg, .png, .jfif, .pdf, .doc, or .docx only.');\r\n\t\t\t}\r\n\t\t}\r\n\t\t$scope.uploadInvoiceForDelivery = function (files) {\r\n\t\t\tvm.InvoiceFileName = \"\";\r\n\t\t\tvm.InvoiceFilesDoc = files.files[0];\r\n\t\t\tvm.InvoiceFileName = vm.InvoiceFilesDoc.name;\r\n\t\t\tvm.FileSize = vm.InvoiceFilesDoc.size;\r\n\r\n\t\t\t// Allowed file extensions (Images: jpg, jpeg, png, jfif and Documents: pdf, doc, docx)\r\n\t\t\tvar allowedExtensions = /(\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png|\\.JFIF|\\.jfif|\\.PDF|\\.pdf|\\.DOC|\\.doc|\\.DOCX|\\.docx)$/i;\r\n\r\n\t\t\t// Validate file extension\r\n\t\t\tif (!allowedExtensions.exec(vm.InvoiceFileName)) {\r\n\t\t\t\tvm.InvoiceFilesDoc = [];\r\n\t\t\t\tvm.clear();\r\n\t\t\t\talert('Please upload a file with extensions .jpg, .jpeg, .png, .jfif, .pdf, .doc, or .docx only.');\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Function to clear the file input\r\n\t\tvm.clear = function () {\r\n\t\t\tangular.element(\"input[type='file']\").val(null);\r\n\t\t};\r\n\t\tvm.PDFViewOfShipmentDoc = function (page) {\r\n\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, page).then(function (resp) {\r\n\t\t\t\tvm.pdfimage = resp.data;\r\n\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t});\r\n\t\t\t$timeout(function () {\r\n\t\t\t\tvm.taxInvoiceModel = $uibModal.open({\r\n\t\t\t\t\ttemplateUrl: \"PDFView.html\",\r\n\t\t\t\t\tsize: \"lg\",\r\n\t\t\t\t\tscope: $scope,\r\n\t\t\t\t});\r\n\t\t\t}, 1000);\r\n\t\t};\r\n\t\tvm.closePDFView = function () {\r\n\t\t\tvm.taxInvoiceModel.close();\r\n\r\n\t\t};\r\n\t\tvm.ImageViewOfShipmentDoc = function (img, index) {\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\t\tif (resp.data == null || resp.data == '') {\r\n\t\t\t\t\tvm.productImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.productImg[index] = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.productImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t\r\n\t\t$scope.checkPDF = function (path) {\r\n\t\t\tif (path) {\r\n\t\t\t\tvar pt = path.substr(path.length - 4);\r\n\t\t\t\tif (pt == '.pdf') {\r\n\t\t\t\t\tvm.error = function () {\r\n\t\t\t\t\t\t$(\".pdf\").attr({ \"target\": \"_blank\" })\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.ActionToBeTaken = '';\r\n\t\tvm.UpdateRequestStatus = function () {\r\n\t\t\tif (vm.UpdateAction == 'Approval') {\r\n\t\t\t\tvm.ActionToBeTaken = 'Approved';\r\n\t\t\t}\r\n\t\t\telse if (vm.UpdateAction == 'Dispatched'){\r\n\t\t\t\tvm.ActionToBeTaken = 'Dispatched';\r\n\t\t\t}\r\n\t\t\telse if (vm.UpdateAction == 'Delivered'){\r\n\t\t\t\tvm.ActionToBeTaken = 'Delivered';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tvm.ActionToBeTaken = 'Reject';\r\n\t\t\t}\r\n\t\t\tvm.Request_Update_Form.submitted = true;\r\n\t\t\tif (vm.Request_Update_Form.$valid) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t\tvar RequestModel = {\r\n\t\t\t\t\t\"ReplacementId\": vm.requestIdTobeUpdated,\r\n\t\t\t\t\t\"Status\": vm.ActionToBeTaken,\r\n\t\t\t\t\t\"Comment\": \"\",\r\n\t\t\t\t\t\"Reason\": vm.UpdationRemark,\r\n\t\t\t\t\t\"WareHouseId\": vm.warehouselist,\r\n\t\t\t\t\t\"NewModelNumber\" : vm.newmodelname,\r\n\t\t\t\t\t\"OldModelPrice\" : vm.oldmodelprice,\r\n\t\t\t\t\t\"NewModelPrice\" : vm.newmodelprice,\r\n\t\t\t\t }\r\n\t\t\t\tProductReplacementApprovalService.UpdateProductReplacementStatus(RequestModel, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Request updated successfully\");\r\n\t\t\t\t\t\tvm.closeRequestUpdateModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t\t\tvm.GetProductReplacementDashboard();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t\tvm.DisableCreateButton = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.UpdateProductReplacementStatusWithAttachment = function () {\r\n\t\t\tif (vm.UpdateAction == 'Approval') {\r\n\t\t\t\tvm.ActionToBeTaken = 'Approved';\r\n\t\t\t}\r\n\t\t\telse if (vm.UpdateAction == 'Dispatched') {\r\n\t\t\t\tvm.ActionToBeTaken = 'Dispatched';\r\n\t\t\t}\r\n\t\t\telse if (vm.UpdateAction == 'Delivered') {\r\n\t\t\t\tvm.ActionToBeTaken = 'Delivered';\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.ActionToBeTaken = 'Reject';\r\n\t\t\t}\r\n\t\t\tvm.Request_Update_Form.submitted = true;\r\n\t\t\tif (vm.Request_Update_Form.$valid) { \r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t\tvm.PackageDetails = [{\r\n\t\t\t\t\t\"strPackageId\": vm.strPackageId,\r\n\t\t\t\t\t\"strPackageStatus\": \"Shipped\",\r\n\t\t\t\t\t\"strPackageTrackingId\": vm.strPackageTrackingId,\r\n\t\t\t\t\t\"strShipmentId\": vm.strShipmentId,\r\n\t\t\t\t\t\"datePackedOn\": moment().format(\"YYYY-MM-DD\")\r\n\t\t\t\t}]\r\n\t\t\t\tvar RequestModel = {\r\n\t\t\t\t\t\"ReplacementId\": vm.requestIdTobeUpdated,\r\n\t\t\t\t\t\"Status\": vm.ActionToBeTaken,\r\n\t\t\t\t\t\"Comment\": \"\",\r\n\t\t\t\t\t\"Reason\": vm.UpdationRemark,\r\n\t\t\t\t\t\"WareHouseId\": vm.warehouselist,\r\n\t\t\t\t\t\"TrackingLink\": vm.TrackingLink,\r\n\t\t\t\t\t\"PackageDetails\": vm.PackageDetails,\r\n\t\t\t\t\t\"GRNumber\": vm.GRNumber,\r\n\t\t\t\t\t\"Attachement\": vm.FileName,\r\n\t\t\t\t}\r\n\t\t\t\tProductReplacementApprovalService.UpdateProductReplacementStatusWithAttachment(RequestModel, vm.FilesDoc, vm.FileName, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Request updated successfully\");\r\n\t\t\t\t\t\tvm.closeRequestUpdateModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t\t\tvm.GetProductReplacementDashboard();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.AcceptDelivery = function () {\r\n\t\t\tvm.DeliveryModal_Form.submitted = true;\r\n\t\t\tif (vm.DeliveryModal_Form.$valid) {\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"ReplacementId\": vm.requestIdTobeUpdated,\r\n\t\t\t\t\t\"Reason\": vm.DeliveryRemark,\r\n\t\t\t\t\t\"ModelNumber\": vm.ModelNumber,\r\n\t\t\t\t\t\"IndoorSerialNumber\": vm.IndoorSerialNumber,\r\n\t\t\t\t\t\"OutdoorSerialNumber\": vm.OutdoorSerialNumber,\r\n\t\t\t\t\t\"SubStatus\": vm.substatus,\r\n\t\t\t\t\t\"DamgedAttachment\": vm.ImageFileName,\r\n\t\t\t\t\t\"InvoiceImage\": vm.InvoiceFileName\r\n\t\t\t\t}\r\n\t\t\t\tProductReplacementApprovalService.MarkProductStatusDeliveredByServiceCenter(data, vm.ImageFilesDoc, vm.ImageFileName, vm.InvoiceFilesDoc, vm.InvoiceFileName, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Request marked delivered successfully\");\r\n\t\t\t\t\t\tvm.closeDeliveredUpdateModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\t\t}\r\n\t\t$scope.openTrackingLink = function (trackingLink) {\r\n\t\t\t$window.open(trackingLink, '_blank');\r\n\t\t};\r\n\r\n\r\n\t\t$scope.totalInvList = 0;\r\n\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t$scope.InventoryPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\r\n\t\tvm.changeAllInventoryPageListCount = function () {\r\n\t\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t\tPageSize = $scope.inventoryPerPage;\r\n\t\t\t$scope.AllInventoryTablePageChanged($scope.InventoryPagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\t\tPageIndex = newPage;\r\n\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\tPageIndex = newPage;\r\n\t\t\tvm.GetProductReplacementList();\r\n\r\n\t\t};\r\n\t\tvm.SearchText = '';\r\n\t\tvm.warehouselist = \"\";\r\n\t\tvm.warehouseInvetoryList = [];\r\n\r\n\r\n\t\tvm.clearFilter = function () {\r\n\t\t\tvm.SearchText = '';\r\n\t\t\tvm.warehouselist = '';\r\n\r\n\t\t}\r\n\r\n\t\tvm.applyOrderFilter = function () {\r\n\t\t\tvm.GetProductReplacementList();\r\n\t\t\tvm.GetProductReplacementDashboard();\r\n\t\t}\r\n\r\n\t\tvm.SelectedOrderStatus = vm.loggedInUserRole === 'Service Center' ? 'Dispatched' : 'PendingAtMe';\r\n\r\n\t\tvm.setSelectedFilter = function (item) {\r\n\t\t\tvm.SelectedOrderStatus = item;\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t};\r\n\r\n\r\n\t\tvm.clearMyOrderFilter = function () {\r\n\t\t\tvm.SelectedOrderStatus = '';\r\n\t\t\tvm.warehouselist = '';\r\n\t\t\tvm.searchTag = '';\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t}\r\n\r\n\t\tvm.TrainingImageServices = function (img, index) {\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\t\tif (resp.data == null || resp.data == '') {\r\n\t\t\t\t\tvm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.TrainingImagebase64[index] = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\t$scope.filesArray.push({\r\n\t\t\t\t\tname: img,\r\n\t\t\t\t\tsrc: vm.TrainingImagebase64[index],\r\n\t\t\t\t});\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t$scope.filesArray.push({\r\n\t\t\t\t\tname: img,\r\n\t\t\t\t\tsrc: vm.TrainingImagebase64[index],\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.showPartDetails = false;\r\n\r\n\t\t$scope.totalOrderList = 0;\r\n\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t$scope.OrdersPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllOrderPageListCount = function () {\r\n\t\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t\toPageSize = $scope.ordersPerPage;\r\n\t\t\t$scope.AllOrderTablePageChanged($scope.OrdersPagination.current);\r\n\t\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\t\toPageIndex = newPage;\r\n\t\t\t\tvm.GetProductReplacementList();\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\toPageIndex = newPage;\r\n\t\t\tvm.GetProductReplacementList();\r\n\r\n\t\t};\r\n\t\tvm.orderInvetoryList = [];\r\n\r\n\t\tvm.GetProductReplacementList = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Status\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tProductReplacementApprovalService.GetProductReplacementList(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.orderInvetoryList = resp.data.ReturnList;\r\n\t\t\t\t\t$scope.totalOrderList = resp.data.RecordCount;\r\n\t\t\t\t\tvm.productImg = [];\r\n\t\t\t\t\tfor (var i = 0; i < vm.orderInvetoryList.length; i++) {\r\n\t\t\t\t\t\tvar item = vm.orderInvetoryList[i];\r\n\t\t\t\t\t\tvm.ImageViewOfShipmentDoc(item.strPackageAttachment, i);\r\n\t\t\t\t\t\t// vm.ImageViewOfInvoice(item.InvoiceImage, i);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (vm.orderInvetoryList.length < vm.allOrdersPageListCount)\r\n\t\t\t\t\t\tvm.orderListLength = $scope.totalOrderList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.orderListLength = oPageIndex * vm.allOrdersPageListCount;\r\n\t\t\t\t\tif (oPageIndex == 1)\r\n\t\t\t\t\t\tvm.opageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.opageindexCount = (((oPageIndex - 1) * vm.allOrdersPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetProductReplacementList();\r\n\r\n\r\n\t\tvm.GetProductReplacementDashboard = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Status\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tProductReplacementApprovalService.GetProductReplacementDashboard(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.DashboardCount = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.GetProductReplacementDashboard();\r\n\r\n\t\tvm.GetProductReplacementList_CSV = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Status\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tProductReplacementApprovalService.GetProductReplacementList_CSV(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvar csvData = resp.data;\r\n\t\t\t\t\tvar blob = new Blob([csvData], { type: 'text/csv' });\r\n\t\t\t\t\tvar url = window.URL.createObjectURL(blob);\r\n\t\t\t\t\tvar a = document.createElement('a');\r\n\t\t\t\t\ta.href = url;\r\n\t\t\t\t\ta.download = 'All_Replacement_Orders_List.csv';\r\n\t\t\t\t\ta.click();\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.Acceptancemodel = function (requestDetails) {\r\n\t\t\tvm.showPartDetails = false;\r\n\t\t\tvm.AllRequestDetail = requestDetails;\r\n\t\t\tvm.updateStatusModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'acceptancepopup.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseAcceptanceModel = function () {\r\n\t\t\tvm.updateStatusModelOpen.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.UpdateOrderStatus = \"\";\r\n\t\t\tvm.TrackingLink = \"\";\r\n\t\t\tvm.strPackageId = \"\";\r\n\t\t\tvm.strPackageStatus = \"\";\r\n\t\t\tvm.strPackageTrackingId = \"\";\r\n\t\t\tvm.strShipmentId = \"\";\r\n\t\t\tvm.PackageDetails = [];\r\n\t\t\tvm.datePackedOn = moment().format(\"YYYY-MM-DD\");\r\n\t\t}\r\n\t}\r\n});\nangular.module('inspinia').service('PriceModelMappingService', function (ApiURL, FreelancerURL,LocationURL,PublicApiURL, $log, $http,$localStorage,$window) {\r\n\r\nthis.getAllGoodsWithoutZeroPrice = function ( reqUserId,token,PageIndex,PageSize,SearchValue) { \r\n var url = ApiURL + '/api/ProductBrandModel/GetAllWhiteGoodsIntegrationWithoutZeroPrice?' + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n if(SearchValue)\r\n {\r\n url = url + '&searchValue=' + SearchValue;\r\n }\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': reqUserId\r\n }\r\n });\r\n}\r\n\r\n//https://product.mymobiforce.com/coreapi/api/TicketToBeCancel/GetTBCCancellationReasons\r\nthis.GetTBCCancellationReasons = function ( reqUserId,token) { \r\n var url = ApiURL + '/api/TicketToBeCancel/GetTBCCancellationReasons';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': reqUserId\r\n }\r\n });\r\n}\r\n\r\n//Tickets API\r\nthis.getAllGoodsWithZeroPrice = function (reqUserId,token,PageIndex,PageSize,SearchValue) { \r\n url = ApiURL + '/api/ProductBrandModel/GetAllWhiteGoodsIntegrationWithZeroPrice?'+ '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n if(SearchValue)\r\n {\r\n url = url + '&searchValue=' + SearchValue;\r\n }\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':reqUserId\r\n \r\n }\r\n });\r\n}\r\n\r\n//https://product.mymobiforce.com/coreapi/api/ProductBrandModel/UpdateWhiteGoodsIntegrationConfig\r\nthis.UpdateWhiteGoodsIntegrationConfig = function (loginUserId, data, token) { \r\n var url = ApiURL + '/api/ProductBrandModel/UpdateWhiteGoodsIntegrationConfig';\r\n return $http.put(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':loginUserId}\r\n });\r\n}\r\n\r\nthis.UpdateTBCconfig = function (loginUserId, data, token) { \r\n var url = ApiURL + '/api/TicketToBeCancel/ConfigureTBCCancellationReasonsOnAccount';\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':loginUserId}\r\n });\r\n}\r\n//https://product.mymobiforce.com/coreapi/api/ProductBrandModel/GetJobLineItemGroupByModel\r\nthis.GetSuggestionOfJobLineItem = function (loginUserId, data, token) { \r\n var url = ApiURL + '/api/ProductBrandModel/GetJobLineItemGroupByModel';\r\n return $http.put(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':loginUserId}\r\n });\r\n}\r\n\r\n//https://login.mymobiforce.com/coreapi/api/ProductBrandModel/CreateWhiteGoodsIntegrationConfig\r\nthis.AddBrandandModel = function (data, token, loggedInUserId) { \r\n var url = ApiURL + '/api/ProductBrandModel/CreateWhiteGoodsIntegrationConfig';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n}\r\n\r\n// https://product.mymobiforce.com/coreapi/api/SkillSets?reqUserId=U1850000000001\r\nthis.GetAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n });\r\n}\r\n\r\n// https://product.mymobiforce.com/coreapi/api/Project/GetProjectsIdsByAccountId\r\nthis.GetAllProjects = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/Project/GetProjectsIdsByAccountId';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n });\r\n}\r\n\r\n\r\n});\r\n\nangular.module('inspinia').controller('PriceModelMappingController', function (PriceModelMappingService,ReferService, toaster, $filter,$rootScope, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder,DTColumnDefBuilder, DTColumnBuilder, $uibModal, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n\tvm = this;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\t\r\n\tvm.ListGoodsWithoutZeroPrice ={};\r\n \tvm.CustomDateformat = $localStorage.CustomDateformat; \r\n vm.LineItemAccountId = $localStorage.accountConfig.AccountId\r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.CurrencySymbol = $localStorage.accountConfig.CurrencySymbol;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n var token = $localStorage.token;\r\n\t vm.ticketList = [];\r\n vm.ListGoodsWithoutZeroPrice=[];\r\n vm.ListOfLineItem=[];\r\n vm.ListofGoods=[]; \r\n vm.CustomerList = [];\r\n vm.ProjectList = [];\r\n vm.SearchByGroupId = '';\r\n vm.BrandName ='';\r\n vm.ModelNumber ='';\r\n vm.SelectedPriceGroup = '';\r\n vm.ProjectId ='';\r\n vm.SkillName ='';\r\n vm.AccountId = '';\r\n\r\n vm.addBrandName ='';\r\n vm.addModelNumber ='';\r\n vm.addSelectedPriceGroup = '';\r\n vm.addProjectId ='';\r\n vm.addSkillName ='';\r\n vm.addAccountId = '';\r\n vm.addGroupId = '';\r\n vm.edit=false;\r\n vm.SearchByPriceGroupId = '';\r\n vm.SearchByNoPriceGroupId = '';\r\n vm.ProjectId = '';\r\n vm.previousPage = $localStorage.previousPage;\r\n vm.autoScheduleOn = $localStorage.accountConfig.IsAutoSchedulerOn;\r\n var approveModalInstance = {};\r\n var supervisorId = $localStorage.loggedInUserId;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.loggedInAs = $localStorage.loggedinAs;\r\n\r\n // page 1 to 10\r\n\r\n vm.pageindexCount=0;\r\n vm.pageindexCountWithoutZero=0;\r\n vm.ticketList = [];\r\n vm.WithZeroListLength=0;\r\n vm.WithoutZeroListLength=0;\r\n vm.TypeOfList=\"ZeroPrice\";\r\n \r\n var itemNames = \"\";\r\n var itemValues = \"\";\r\n var PageIndex = 1;\r\n \r\n\r\n var PageIndexWithoutZero = 1;\r\n var PageSize = 10;\r\n\r\n $scope.totalTableWithZero = 0;\r\n $scope.usersTablePerPage = 10;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n \r\n $scope.totalTableWithoutZero = 0;\r\n $scope.usersTablePerPageWithoutZero = 10; \r\n $scope.UserTablepaginationWithoutZero = {\r\n currentPage: 1\r\n };\r\n \r\n $scope.UserTablepagination.current= $localStorage.TicketFilterModel?$localStorage.TicketFilterModel.PageIndex:1;\r\n\r\n $scope.UserTablepageChanged = function(newPage) {\r\n\t\t \r\n\t PageIndex = newPage;\t \r\n\t vm.getAllGoodsWithZeroPrice(loggedinUser,token,PageIndex,PageSize,vm.SearchByNoPriceGroupId);\r\n \r\n\t};\r\n $scope.UserTablepaginationWithoutZero.currentPage= $localStorage.TicketFilterModelInvoice?$localStorage.TicketFilterModelInvoice.PageIndexWithoutZero:1;\r\n\r\n $scope.UserTablepageChangedWTZ = function(newPage) {\r\n \r\n PageIndexWithoutZero = newPage;\t\r\n \r\n vm.getAllGoodsWithoutZeroPrice(loggedinUser,token,PageIndexWithoutZero,PageSize,vm.SearchByNoPriceGroupId);\r\n\r\n };\r\n \r\n\r\nvm.TabClickEvent= function(listType)\r\n{\r\n \r\n vm.TypeOfList=listType;\r\n if(vm.TypeOfList==\"ZeroPrice\")\r\n {\r\n vm.getAllGoodsWithZeroPrice(loggedinUser,token,PageIndex,PageSize, vm.SearchByPriceGroupId);\r\n }\r\n else if (vm.TypeOfList==\"WithoutZeroPrice\")\r\n { \r\n vm.getAllGoodsWithoutZeroPrice(loggedinUser,token,PageIndexWithoutZero,PageSize, vm.SearchByNoPriceGroupId);\r\n }\r\n else if (vm.TypeOfList==\"TBC\")\r\n { \r\n vm.GetTBCCancellationReasons(loggedinUser,token);\r\n }\r\n}\r\n\r\nvm.applySearch = function(){\r\n if(vm.TypeOfList==\"ZeroPrice\")\r\n { \r\n vm.getAllGoodsWithZeroPrice(loggedinUser,token,PageIndex,PageSize, vm.SearchByPriceGroupId);\r\n }\r\n else if(vm.TypeOfList==\"WithoutZeroPrice\")\r\n { \r\n vm.getAllGoodsWithoutZeroPrice(loggedinUser,token,PageIndexWithoutZero,PageSize, vm.SearchByNoPriceGroupId);\r\n } \r\n}\r\n\r\nvm.clearSearchText = function(){ \r\n if(vm.TypeOfList==\"ZeroPrice\")\r\n { \r\n vm.SearchByPriceGroupId = '';\r\n vm.getAllGoodsWithZeroPrice(loggedinUser,token,PageIndex,PageSize, vm.SearchByPriceGroupId);\r\n }\r\n else if(vm.TypeOfList==\"WithoutZeroPrice\")\r\n { \r\n vm.SearchByNoPriceGroupId = '';\r\n vm.getAllGoodsWithoutZeroPrice(loggedinUser,token,PageIndexWithoutZero,PageSize, vm.SearchByNoPriceGroupId);\r\n } \r\n}\r\n\r\n\r\nvm.getAllGoodsWithoutZeroPrice = function (loggedinUser,token,PageIndex,PageSize,SearchValue) {\t\r\n\tPriceModelMappingService.getAllGoodsWithoutZeroPrice(loggedinUser,token,PageIndex,PageSize,SearchValue).then(function (resp) {\r\n\t if (resp && resp.data) {\r\n\t\tvm.ListGoodsWithoutZeroPrice = resp.data.BrandModelList;\r\n\t\t $scope.totalTableWithoutZero = resp.data.Total;\t\r\n \r\n if(vm.ListGoodsWithoutZeroPrice.length < 10)\r\n vm.WithoutZeroListLength = $scope.totalTableWithoutZero;\r\n else\r\n vm.WithoutZeroListLength = PageIndexWithoutZero * 10;\r\n if(PageIndexWithoutZero==1)\r\n vm.pageindexCountWithoutZero = 1;\r\n else\r\n vm.pageindexCountWithoutZero = (((PageIndexWithoutZero-1) * 10) + 1);\r\n\t }\r\n\r\n\t}, function () {\r\n\t \r\n\t});\r\n }\r\n\r\n vm.GetTBCCancellationReasons = function (loggedinUser,token) {\t\r\n PriceModelMappingService.GetTBCCancellationReasons(loggedinUser,token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.getTBClist = resp.data;\r\n // $scope.totalTableWithoutZero = resp.data.Total;\t\r\n \r\n // if(vm.ListGoodsWithoutZeroPrice.length < 10)\r\n // vm.WithoutZeroListLength = $scope.totalTableWithoutZero;\r\n // else\r\n // vm.WithoutZeroListLength = PageIndexWithoutZero * 10;\r\n // if(PageIndexWithoutZero==1)\r\n // vm.pageindexCountWithoutZero = 1;\r\n // else\r\n // vm.pageindexCountWithoutZero = (((PageIndexWithoutZero-1) * 10) + 1);\r\n }\r\n \r\n }, function () {\r\n \r\n });\r\n }\r\n \r\n //getAllGoodsWithZeroPrice\r\n\r\n vm.getAllGoodsWithZeroPrice = function (loggedinUser,token,PageIndex,PageSize, SearchValue) {\r\n PriceModelMappingService.getAllGoodsWithZeroPrice(loggedinUser,token,PageIndex,PageSize, SearchValue).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ListofGoods = resp.data.BrandModelList;\t\r\n $scope.totalTableWithZero = resp.data.Total;\r\n \r\n if(vm.ListofGoods.length < 10)\r\n vm.WithZeroListLength = $scope.totalTableWithZero;\r\n else\r\n vm.WithZeroListLength = PageIndex * 10;\r\n if(PageIndex==1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex-1) * 10) + 1);\r\n } \r\n \r\n }, function () {\r\n \r\n });\r\n }\r\n \r\n vm.getAllGoodsWithZeroPrice(loggedinUser,token,PageIndex,PageSize);\r\n\r\n vm.updateWhiteGoods = function (index) { \r\n var data = [ \r\n {\r\n \"BrandName\": vm.ListofGoods[index].BrandName,\r\n \"ModelNumber\": vm.ListofGoods[index].ModelNumber,\r\n \"GroupId\": vm.SelectedPriceGroup.GroupId,\r\n \"GroupName\": vm.SelectedPriceGroup.GroupName,\r\n \"ProjectId\": vm.ListofGoods[index].ProjectId,\r\n \"SkillName\": vm.ListofGoods[index].SkillName\r\n } \r\n ] \r\n PriceModelMappingService.UpdateWhiteGoodsIntegrationConfig(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 202 ) {\r\n \r\n $timeout(function () {\r\n\r\n vm.showSuccess(\"Success\", \"Updated successfully\"); \r\n vm.getAllGoodsWithZeroPrice(loggedinUser,token,PageIndex,PageSize);\r\n \r\n }, 1000);\r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n }, function () { \r\n });\r\n }\r\n\r\n //TBC edit and save\r\n vm.updateTBCResons = function (index) {\r\n if(vm.getTBClist[index].TBCPrice > 100 || vm.getTBClist[index].TBCPrice < -1) {\r\n vm.showFailure(\"please enter percentage between 0 to 100 only\"); \r\n vm.GetTBCCancellationReasons(loggedinUser,token);\r\n }\r\n else {\r\n var data = [ \r\n {\r\n \"CancellationReason\": vm.getTBClist[index].CancellationReason,\r\n \"TBCPrice\": vm.getTBClist[index].TBCPrice,\r\n \"IsApplicableForAutoPayment\": vm.getTBClist[index].IsApplicableForAutoPayment\r\n } \r\n ] \r\n PriceModelMappingService.UpdateTBCconfig(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 200 ) {\r\n \r\n $timeout(function () {\r\n vm.showSuccess(\"Success\", \"Updated successfully\"); \r\n vm.GetTBCCancellationReasons(loggedinUser,token); \r\n }, 2000);\r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n }, function () { \r\n });\r\n } \r\n }\r\n\r\n //get suggestion'\r\n vm.getJobLineItem = function (index,e) {\r\n // vm.ListofGoods[index].edit = e;\r\n var data = \r\n {\r\n \"BrandName\": vm.ListofGoods[index].BrandName,\r\n \"ModelNumber\": vm.ListofGoods[index].ModelNumber,\r\n \"GroupId\": vm.ListofGoods[index].GroupId,\r\n \"GroupName\": vm.ListofGoods[index].GroupName,\r\n \"ProjectId\": vm.ListofGoods[index].ProjectId,\r\n \"SkillName\": vm.ListofGoods[index].SkillName,\r\n \"AccountId\": vm.ListofGoods[index].AccountId\r\n } \r\n PriceModelMappingService.GetSuggestionOfJobLineItem(loggedinUser, data, token).then(function (resp) {\r\n vm.ListOfLineItem = resp.data;\r\n }, function () { \r\n });\r\n }\r\n\r\n vm.getJobLineItemForAdd = function () {\r\n var data = \r\n {\r\n \"ProjectId\": vm.ProjectId,\r\n \"AccountId\": vm.LineItemAccountId\r\n } \r\n PriceModelMappingService.GetSuggestionOfJobLineItem(loggedinUser, data, token).then(function (resp) {\r\n vm.ListOfLineItem = resp.data;\r\n }, function () { \r\n });\r\n }\r\n\r\n vm.loadAllSkills = function(){\r\n PriceModelMappingService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skillsWithPipe = '';\r\n if (resp && resp.data) {\r\n vm.skillData = resp.data;\r\n }\r\n });\r\n }\r\n vm.loadAllSkills();\r\n\r\n vm.loadAllProjects = function(){\r\n PriceModelMappingService.GetAllProjects(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ProjectData = resp.data;\r\n }\r\n });\r\n }\r\n vm.loadAllProjects();\r\n \r\n\r\n vm.openBMModel = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n openBMModel = $uibModal.open({\r\n templateUrl: 'openBMmodel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n \r\n vm.CloseopenBMModel = function () {\r\n vm.addBrandName ='';\r\n vm.addModelNumber ='';\r\n vm.addSelectedPriceGroup = '';\r\n vm.addProjectId ='';\r\n vm.addSkillName ='';\r\n vm.addAccountId = '';\r\n vm.addGroupId = '';\r\n vm.ProjectId = '';\r\n openBMModel.close();\r\n }\r\n \r\n vm.AddBM = function () { \r\n var data = [{\r\n \"BrandName\": vm.addBrandName,\r\n \"ModelNumber\": vm.addModelNumber,\r\n \"GroupId\": vm.addSelectedPriceGroup.GroupId,\r\n \"GroupName\": vm.addSelectedPriceGroup.GroupName,\r\n \"ProjectId\": vm.ProjectId,\r\n \"SkillName\": vm.addSkillName \r\n }];\r\n PriceModelMappingService.AddBrandandModel(data, token, loggedinUser).then(function (resp) { \r\n if (resp.status == 201 ) {\r\n vm.showSuccess(\"Success\", \"Added successfully\"); \r\n $timeout(function () { \r\n vm.CloseopenBMModel(); \r\n vm.getAllGoodsWithZeroPrice(loggedinUser,token,PageIndex,PageSize);\r\n }, 1000);\r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n }, function () { \r\n });\r\n \r\n }\r\n \r\n }\r\n\r\n})\r\n \r\n\r\n\nangular.module('inspinia').service('PreferredVendorTechnicianProfileService', function (ApiURL,FreelancerURL, LocationURL, $log, $http, $localStorage) {\r\n \r\n\t //http://localhost:56749/api/Vendor/kanika.bansal%40innotiontech.com/V0000000001/getvendorbyid\r\n\t this.GetVendorById = function(loggedInUser,vendorId, token){\r\n\t\tvar url = ApiURL + '/api/Vendor/' + loggedInUser + '/' + vendorId + '/getvendorbyid';\r\n\t\treturn $http.get(url,{\r\n\t\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t\t})\r\n\t }\r\n\r\n\t //https://perf.mymobiforce.com/freelancerapi/api/FreelancerVendor/getvendorteam?reqUserId=F00000000000&VendorId=V00000000143\r\n\tthis.GetVendorTeam = function(loggedInUser,vendorId, token){\r\n\t\tvar url = FreelancerURL + '/api/FreelancerVendor/getvendorteam?reqUserId=' + loggedInUser + '&VendorId=' + vendorId;\r\n\t\treturn $http.get(url,{\r\n\t\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t\t})\r\n\t }\r\n\r\n\t this.PreferredSingleVendor = function(loggedinUser, vendorId, status, token){\r\n\t\tvar url = FreelancerURL + '/api/FreelancerVendor/Favorite/' + loggedinUser + '/'+ vendorId +'/'+status;\r\n\t\treturn $http.put(url, null, {\r\n\t\t headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n\t\t});\r\n\t }\r\n\t this.BlockedSingleUser = function(loggedinUser, userId, status, token){\r\n\t\tvar url = FreelancerURL + '/api/FreeLancerUser/Block/' + loggedinUser + '/'+ userId +'/'+status;\r\n\t\treturn $http.put(url, null, {\r\n\t\t headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n\t\t});\r\n\t }\r\n\t this.BlockedVendor = function(loggedinUser, vendorId, status, token){\r\n\t\tvar url = FreelancerURL + '/api/FreelancerVendor/Block/' + loggedinUser + '/'+ vendorId +'/'+status;\r\n\t\treturn $http.put(url, null, {\r\n\t\t headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n\t\t});\r\n\t }\r\n\r\n\t// this.GetTicketsByVendor = function(loggedInUser,vendorId,itemName,itemValue,token){\r\n\t// \tvar url = ApiURL + '/api/Ticket/' + loggedInUser + '/' + vendorId + '/' + itemName + '/' + itemValue+'/getticketsbyvendor';\r\n\t// \treturn $http.get(url,{\r\n\t// \t headers:{'Content-Type' : 'application/json','Token':token}\r\n\t// \t})\r\n\t// }\r\n\t \r\n\tthis.GetTicketsByVendor = function(loggedInUser,vendorId,token){\r\n\t var url = FreelancerURL + '/api/FreeLancerTicket/byVendorId?reqUserId=' + loggedInUser + '&VendorId=' + vendorId;\r\n\t return $http.get(url,{\r\n\t\theaders:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\r\n\tthis.UserAgreement=function(userId,loggedinUser, token){\r\n\t\tvar url =ApiURL + \"/api/User/GetEULAByUserId?reqUserId=\" +loggedinUser+\"&userId=\"+userId;\r\n\t\treturn $http.get(url, {\r\n\t\t headers: {\r\n\t\t\t'Content-Type': 'application/json',\r\n\t\t\t'Token': token, 'UserId':loggedinUser\r\n\t\t }\r\n\t\t});\r\n\t }\r\n\r\n \r\n\t// https://perf.mymobiforce.com/coreapi/api/Vendor/F00000000000/V00000000141/getvendorbyid\r\n\t//https://perf.mymobiforce.com/FreelancerAPI/api/FreelancerTicket/F00000000657/F00000000000/ByUserId\r\n});\r\n\r\n//https://perf.mymobiforce.com/coreapi/api/User/F00000000657/byUserIdWithJobCount?reqUserId=F00000000000\nangular.module('inspinia').controller('PreferredVendorTechnicianProfileController', function (PreferredVendorTechnicianProfileService, MainService,ActiveUserService,ImageUrl, $log, $state, $localStorage, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n // var loggedinUser = 'F00000000000';\r\n // var loggedinUser = $localStorage.loggedInUserId;\r\n vm.loggedInUser_Role=$localStorage.loggedInUser_Role;\r\n var token = $localStorage.token;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n vm.NokiaTableHeaderChange = $localStorage.accountConfig.NokiaTableHeaderChange;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login',{\r\n reload:true\r\n });\r\n }else{\r\n //Global Variable Declaration\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n vm.vendorList='';\r\n vm.vendorData = '';\r\n vm.ActivationStatus = '';\r\n vm.searchText = '';\r\n vm.dtInstance = {};\r\n vm.vendorId = $stateParams.VendorId; \r\n vm.jobTickets = '';\r\n vm.itemName = '';\r\n vm.itemValue = '';\r\n vm.dtInstance = {};\r\n vm. dtInstanceticket={};\r\n vm.AccountHistoryData=[];\r\n vm.InsurenceImg=\"\";\r\n vm.CertprofileImg=[];\r\n vm.profileImg=\"\";\r\n vm.teamprofileImg=\"\";\r\n vm.teamCertificateprofileImg=[];\r\n vm.backlistVendor = function () {\r\n if(vm.loggedInUser_Role== 'SuperAdministrator'){\r\n $state.go('index.NewTalentPool',{type: 'Vendor',reload: true });\r\n }\r\n else{\r\n $state.go('index.PreferredVendorTalentPool',{reload: true });\r\n\r\n }\r\n}\r\n$scope.checkPDF = function(path){\r\n\r\n if(!path)\r\n return true;\r\n \r\n var pt = path.substr(path.length - 4);\r\n if(pt == '.pdf'){\r\n vm.error = function(){\r\n $(\".pdf\").attr({\"target\" : \"_blank\"})\r\n }\r\n return true;\r\n }\r\n}\r\nvm.imageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function() {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n } \r\nvm.InsurenceimageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.InsurenceImg = 'assets/images/patterns/pdf.png';\r\n }\r\nelse{\r\n vm.InsurenceImg= resp.data;\r\n}\r\n \r\n }, function() {\r\n vm.InsurenceImg = 'assets/images/patterns/pdf.png';\r\n });\r\n \r\n}\r\n \r\nvm.CertimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.CertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.CertprofileImg[index] = resp.data;\r\n }\r\n \r\n }, function() {\r\n vm.CertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n \r\n }\r\n vm.teamimageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.teamprofileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.teamprofileImg = resp.data;\r\n }\r\n console.log(vm.teamprofileImg);\r\n }, function() {\r\n vm.teamprofileImg = 'assets/images/patterns/photo1.png';\r\n }); \r\n } \r\n vm.TeamCertificateimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.teamCertificateprofileImg[index] = 'assets/images/patterns/pdf.png';\r\n }\r\n else{\r\n vm.teamCertificateprofileImg[index] = resp.data;\r\n }\r\n }, function() {\r\n vm.teamCertificateprofileImg[index] = 'assets/images/patterns/pdf.png';\r\n });\r\n } \r\n vm.GetVendorById = function () {\r\n PreferredVendorTechnicianProfileService.GetVendorById(loggedinUser, vm.vendorId, token).then(function (resp) {\r\n vm.users = resp.data;\r\n vm.InsurenceimageServices(vm.users.InsuranceDetails.InsuranceImageURL);\r\n for(var i=0;i\" + \"Decoded URI: \" + dec;\r\n $('#agreementview').contents().find('html').html(dec);\r\n // document.getElementById(\"demo\").html(dec);\r\n \r\n // vm.showSuccess('Success', \"User added in preferred talent pool\");\r\n // vm.PreferredUserModal.close();\r\n }else{\r\n var dec = decodeURIComponent(resp.data).replace(/\\+/g,\" \");\r\n $('#agreementview').contents().find('html').html(dec);\r\n }\r\n \r\n })\r\n }\r\n if(vm.loggedInUser_Role== 'SuperAdministrator'){\r\n vm.RechargeHistory = function (userid) {\r\n vm.userid=userid;\r\n RechargeModal = $uibModal.open({\r\n templateUrl: 'viewRechargeHistory.html',\r\n scope: $scope,\r\n resolve: {\r\n items: function () {\r\n return {\r\n AccountName: vm.CompanyName,\r\n AccountId: vm.Email\r\n };\r\n }\r\n },\r\n size: 'lg'\r\n });\r\n ActiveUserService.getFreelancerHistory(userid, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AccountHistoryData = resp.data;\r\n }\r\n })\r\n }\r\n }\r\n \r\n vm.CloseRechargeModal = function () {\r\n RechargeModal.close();\r\n }\r\n \r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('order', []);\r\n \r\n vm.dtColumnDefs = [\r\n //DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable().withClass('td-small-with-panel'),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable()];\r\n\r\n\r\n //if(vm.loggedInUser_Role== 'SuperAdministrator'){\r\n vm.TicketHistory = function(userid) {\r\n vm.userid=userid;\r\n TicketModal = $uibModal.open({\r\n templateUrl: 'TicketHistory.html',\r\n scope: $scope,\r\n windowClass:'schedulerModal'\r\n // controller: GetTicketByVendor(vendorId,itemName,itemValue),\r\n // size:'lg' \r\n }); \r\n \r\n }\r\n //}\r\n \r\n vm.CloseTicketModal = function(){\r\n TicketModal.close();\r\n }\r\n \r\n vm.GetTicketByVendor = function(vendorId,itemName,itemValue){\r\n PreferredVendorTechnicianProfileService.GetTicketsByVendor(loggedinUser,vendorId,token).then(function(resp){\r\n if(resp.data){\r\n vm.jobTickets = resp.data;\r\n }\r\n })\r\n }\r\n vm.GetTicketByVendor(vm.vendorId,'VendorId',vm.vendorId);\r\n \r\n vm.dtOptionsticket = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [0, 'asc']);\r\n \r\n vm.dtColumnDefsticket = [\r\n //DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable()\r\n ];\r\n\r\n vm.dtOptionsTeam = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [0, 'asc']);\r\n \r\n vm.dtColumnTeamDefs = [\r\n //DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable()\r\n ];\r\n\r\n\r\n});\nangular.module('inspinia').service('PreferredVendorTalentPoolService', function (FreelancerURL, ApiURL, LocationURL, PublicApiURL, $log, $http) {\r\n\r\n this.GetAllUsers = function (loggedinUser, token) {\r\n\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllUsers'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n this.getUserInfo = function (userId, loggedinUser, token) {\r\n var url = FreelancerURL + \"/api/FreeLancerUser/\" + userId + \"/\" + loggedinUser + \"/byUserId\";\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n // https://perf.mymobiforce.com/freelancerapi/api/FreelancerVendor/U400000000001/getallvendors\r\n this.GetAllVendors = function(loggedInUser,token){\r\n var url = FreelancerURL + '/api/FreelancerVendor/' + loggedInUser + '/getallvendors';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.GetFreelancerVendorsByFilters = function(loggedInUser,token){\r\n var url = ApiURL + '/api/Vendor/' + loggedInUser + '/VendorStatus/Active' + '/getfreelancervendorsbyfilters';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n //https://login.mymobiforce.com/freelancerapi/api/FreelancerRecharge/F00000000121/getrechargehistorybyself?StartDate=&EndDate=\r\n \r\n this.getFreelancerHistory = function (userId, token) {\r\n var url = FreelancerURL + \"/api/FreelancerRecharge/\" + userId + \"/getrechargehistorybyself?StartDate=&EndDate=\";\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':userId\r\n }\r\n });\r\n }\r\n\r\n \r\n// https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/GetFavoriteFreelancersByAccount/U400000000001\r\n this.getPreferredUser = function (userId, token) {\r\n var url = FreelancerURL + \"/api/FreeLancerUser/GetFavoriteFreelancersByAccount/\" + userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':userId\r\n }\r\n });\r\n }\r\n // https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/GetFavoriteFreelancersByAccount/U400000000001\r\n\r\n this.getPreferredVendor = function (userId, token) {\r\n var url = FreelancerURL + \"/api/FreelancerVendor/GetFavoriteFreelancerVendorsByAccount/\" + userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':userId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.getAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {\r\n headers: {'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n\r\n this.GetAllCircles = function (loggedinUser) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllCircles'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n\r\n this.updateUser = function (userFormData, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/PutUser';\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.GetVendorById = function(loggedInUser,vendorId, token){\r\n\t var url = ApiURL + '/api/Vendor/' + loggedInUser + '/' + vendorId + '/getvendorbyid';\r\n\t return $http.get(url,{\r\n\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\r\n this.uploadProfilePic = function (loggedinUser, data, token, success, failure) {\r\n $http.post(ApiURL + '/api/User/PostUserPic?reqUserId=' + loggedinUser, data, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n\r\n //http://localhost:50144/api/FreelancerAccount/F00000000000/F00000000106/getaccountbyfreelancerid\r\n this.GetFreelancerBalance = function (loggedinUser, freelancerId, token) {\r\n var url = FreelancerURL + '/api/FreelancerAccount/' + loggedinUser + '/' + freelancerId + '/getaccountbyfreelancerid';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n\r\n //https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/Block/U400000000001/F00000000106/false\r\n\r\n // this.GetSingleBlockedUser = function (loggedinUser, freelancerId, token) {\r\n // var url = FreelancerURL + '/api/FreeLancerUser/Block/' + loggedinUser + '/' + freelancerId + '/false';\r\n // return $http.get(url, {\r\n // headers: { 'Content-Type': 'application/json', 'Token': token }\r\n // });\r\n // }\r\n\r\n // https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/Block/U400000000001/F00000000664/true\r\n this.BlockedSingleUser = function(loggedinUser, userId, status, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Block/' + loggedinUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n//https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/Favorite/U400000000001/F00000000657/true\r\n \r\nthis.PreferredSingleUser = function(loggedinUser, userId, status, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Favorite/' + loggedinUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n}\r\n\r\n//https://perf.mymobiforce.com/freelancerapi/api/FreelancerVendor/Favorite/U400000000001/V00000000006/false\r\nthis.PreferredSingleVendor = function(loggedinUser, vendorId, status, token){\r\n var url = FreelancerURL + '/api/FreelancerVendor/Favorite/' + loggedinUser + '/'+ vendorId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n}\r\n\r\n//https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/Favorite/U400000000001/F00000000657/true\r\n \r\n// this.UnPreferredSingleUser = function(loggedinUser, userId, status, token){\r\n// var url = FreelancerURL + '/api/FreeLancerUser/Favorite/' + loggedinUser + '/'+ userId +'/'+status;\r\n// return $http.put(url, null, {\r\n// headers: { 'Content-Type': 'application/json', 'Token':token }\r\n// });\r\n// }\r\n\r\n//https://perf.mymobiforce.com/freelancerapi/api/FreelancerVendor/Block/U400000000001/V00000000013/false\r\nthis.BlockedVendor = function(loggedinUser, vendorId, status, token){\r\n var url = FreelancerURL + '/api/FreelancerVendor/Block/' + loggedinUser + '/'+ vendorId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n}\r\n\r\n\r\nthis.getAllState = function (loggedinUser) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllStates';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n}\r\n//http://192.168.0.80:92/LocationAPI/api/Location/saurabhgupta3371%40gmail.com/UTTAR%20PRADESH/GetCitiesByState\r\n\r\nthis.getCityByState = function (loggedinUser, state) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/' + state + '/GetCitiesByState';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n}\r\n\r\nthis.getAllSkills = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers: {'Token': token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 200 && res.data){\r\n success(res.data);\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get skill list, server error.\")\r\n })\r\n}\r\nthis.GetAllCertificate = function(loggedinUser, token, success, failure){\r\n // var url = ApiURL + '/api/Cetrificate/GetAll?reqUserId=' + loggedinUser;\r\n var url = ApiURL + '/api/Cetrificate/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url,{headers:{'Token':token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 201 && res.data){\r\n success(res.data);\r\n }\r\n },function(err){\r\n failure(\"Failed\",\"Unable to get certificate list, server error.\");\r\n })\r\n}\r\n\r\nthis.GetAllToolSets = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/Tool/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url,{headers:{'Token':token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 201 && res.data){\r\n success(res.data);\r\n }\r\n },function(err){\r\n failure(\"Failed\",\"Unable to get certificate list, server error.\");\r\n })\r\n}\r\n \r\n//https://perf.mymobiforce.com/freelancerapi/api/FreelancerUser/FilterFrUsers?reqUserid=U400000000001\r\n\r\nthis.Filter = function ( loggedinUser, token,userFormData) {\r\n var url = FreelancerURL + \"/api/FreelancerUser/FilterFrUsers?reqUserid=\" + loggedinUser;\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n}\r\n})\r\n\nangular.module('inspinia').controller('PreferredVendorTalentPoolController', function(toaster, UIURL, NewTalentPoolService, \r\n\t$state ,$localStorage, $filter ,$compile, $scope, DTOptionsBuilder, DTColumnDefBuilder, DTColumnBuilder, PublicApiURL, $log, \r\n\tHelpDeskCustomerViewService,ReferService, $stateParams, $uibModal, JobTicketViewService,$rootScope, NgMap, $q, $timeout, ImageUrl) {\r\n\tvm = this;\r\n\tvm.showAdvanceFilter = false;\r\n\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar AccountID = $localStorage.accountConfig.AccountId;\r\n\tvar accountcreationDate = $localStorage.accountConfig.AccountCreationDate;\r\n\tvm.loggedInUser_Role=$localStorage.loggedInUser_Role;\r\n\tvm.Technicianstartingdate = '2017-01-01';\r\n\tvm.VendorStartingDate = '2017-01-01';\r\n\t\r\n\t\r\n\tvm.UserType=$stateParams.type;\r\n\tvar token = $localStorage.token;\r\n\tvm.dtInstanceUser={};\r\n\tvm.dtInstancePreferredUserTable={};\r\n\t// vm.dtInstancePreferredUser={};\r\n\tvm.adddaterange=false;\r\n\tvm.vendoradddaterange=false;\r\n\tvm.dtInstanceVendor={};\r\n\tvm.dtInstancePreferredVendor={};\r\n\tvm.PreferredvendorListdata=[];\r\n\tvm.Bluserlist=[];\r\n\tvm.blockvendorlist=[];\r\n\tvm.showtechnician=true;\r\n\tvm.showvendor=false;\r\n\tvm.technicianlistview=true;\r\n\tvm.vendorlistview=true;\r\n\tvm.selectedInvoice = '';\r\n\tvm.users=[];\r\n\tvm.searchText = '';\r\n\tvm.PermanentState='';\r\n\tvm.VendorPermanentState='';\r\n vm.UserName='';\r\n\tvm.ContactNumber='';\r\n\tvm.VendorUserName='';\r\n\tvm.VendorContactNumber='';\r\n\tvm.StateList=[];\r\n\tvm.VendorStateList=[];\r\n\tvm.PermanentCity='';\r\n\tvm.VendorPermanentCity='';\r\n\tvm.CityList=[];\r\n\tvm.VendorCityList=[];\r\n\tvm.addSkill='';\r\n\tvm.VendoraddSkill='';\r\n\tvm.AllCertificateSets=[];\r\n\tvm.VendorAllCertificateSets=[];\r\n\tvm.addTraningCertificateName='';\r\n\tvm.Asset_Tools='';\r\n\tvm.VendorAsset_Tools='';\r\n\tvm.Asset_Bike=false;\r\n\tvm.Asset_Mobile=false;\r\n\tvm.Asset_Laptop=false;\r\n\tvm.Student=false;\r\n\tvm.Intern=false;\r\n\tvm.VendorSource='';\r\n\tvm.Adharcard=false;\r\n\tvm.Pancard=false;\r\n\tvm.VendorAsset_Laptop=false;\r\n\tvm.VendorAsset_Mobile=false;\r\n\tvm.VendorAsset_Bike=false;\r\n\tvm.Prime=false;\r\n\tvm.pincode=[];\r\n\tvm.AlredayPreferred = [];\r\n\tvm.Vendorpincode=[];\r\n\r\n\tvar startDate = moment(vm.Technicianstartingdate).format(\"YYYY-MM-DD\");\r\n var endDate = moment();\r\n $scope.dates = { startDate: startDate, endDate:endDate};\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n\t 'Till now': [moment(startDate), moment(endDate)],\r\n\t// 'Till now': [startDate ='', startDate ='']\r\n\t};\r\n\r\n\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t};\r\n\t\r\n\t$scope.Vendordates = { startDate: startDate, endDate: endDate };\r\n $scope.Vendorranges = {\r\n 'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n\t 'Till now' :[moment(vm.VendorStartingDate), moment()]\r\n\t// 'Till now': [startDate ='01/01/01', moment(),]\r\n\t};\r\n\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t};\r\n\t\r\n\tvm.City='';\r\n\tvm.Pincode='';\r\n\tvm.Experience='';\r\n\tvm.VendorExperience='';\r\n\tvm.Ratings='';\r\n\tvm.VendorRatings='';\r\n\tvm.Assets_Tools='';\r\n\tvm.Jobscount='';\r\n\tvm.VendorJobscount='';\r\n\tvm.FilterAdhar='';\r\n\tvm.FilterPancard='';\r\n\t\r\n\t// vm.PreferredUser=true;\r\n\tvm.PreferredUsers=[];\r\n\tvm.vendorList=[];\r\n\tvm.PreferredVendors=[];\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\t\r\n\t\t\r\n\t\tif($localStorage.TechnicianDetailsView =='TechnicianDetails'){\r\n\t\t\tvm.currentPage = $localStorage.PageIndex?$localStorage.PageIndex:1;\r\n\t\t\t// $localStorage.PVendorFilterData\r\n\t\t}\r\n\t\telse{\r\n\t\t\tvm.currentPage = 1;\r\n\t\t}\r\n\r\n\t\tvm.currentPage = $localStorage.PageIndex?$localStorage.PageIndex:1;\r\n\t\tvm.pageSize = 20;\r\n\r\n\t\t$scope.totalUsers = 0;\r\n\t\t$scope.usersPerPage = 20; // this should match however many results your API puts on one page\r\n\t\t$scope.pagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\t$scope.pagination.current = $localStorage.PageIndex?$localStorage.PageIndex:1;\r\n\t\t$scope.totalTableUsers = 0;\r\n\t\t$scope.usersTablePerPage = 20; // this should match however many results your API puts on one page\r\n\t\t$scope.UserTablepagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\t$scope.UserTablepagination.current = $localStorage.PageIndex?$localStorage.PageIndex:1;\r\n\r\n\r\n\r\n\t\t$scope.totalvendor = 0;\r\n\t\t$scope.vendorPerPage = 20; // this should match however many results your API puts on one page\r\n\t\t$scope.vendorpagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\t\t$scope.vendorpagination.current = $localStorage.VendorPageIndex?$localStorage.VendorPageIndex:1;\r\n\r\n\t\t$scope.totalvendorTable = 0;\r\n\t\t$scope.vendorPerPageTable = 20; // this should match however many results your API puts on one page\r\n\t\t$scope.vendorpaginationTable = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\t\t$scope.vendorpaginationTable.current = $localStorage.VendorPageIndex?$localStorage.VendorPageIndex:1;\r\n\r\n\t\t\r\n\t\tif($localStorage.PreferredVendorDetailsView =='PreferredVendorDetails'){\r\n\t\t\tvm.VendorcurrentPage = $localStorage.VendorPageIndex?$localStorage.VendorPageIndex:1;\r\n\t\t\t\r\n\t\t}\r\n\t\telse{\r\n\t\t\tvm.VendorcurrentPage = 1;\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\tvm.VendorpageSize = 20;\r\n\t\t$scope.pageChanged = function(newPage) {\r\n\t\t\tvm.currentPage = newPage;\r\n\t\t\t// vm.GetAllUsers(newPage);\r\n\t\t\tvm.applyfilter(newPage);\r\n\r\n\t\t};\r\n\r\n\t\t$scope.UserTablepageChanged = function(newPage) {\r\n\t\t\tvm.currentPage = newPage;\r\n\t\t\t// vm.GetAllUsers(newPage);\r\n\t\t\tvm.applyfilter(newPage);\r\n //vm.Allapplyfilter(newPage);\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.PreferredUserTablepageChanged = function(newPage) {\r\n\t\t\t\r\n\t\t\t// vm.GetAllUsers(newPage);\r\n\t\t\tvm.applyfilter(newPage);\r\n\r\n\t\t};\r\n\r\n\t\t\r\n\t\t\r\n\r\n\r\n\t\t\r\n\t\t\r\n\t vm.availableSearchParams = [\r\n\t { key: \"TemplateName\", name: \"TemplateName\", placeholder: \"TemplateName...\" }\r\n\t // { key: \"city\", name: \"City\", placeholder: \"City...\" },\r\n\t // { key: \"country\", name: \"Country\", placeholder: \"Country...\" },\r\n\t // { key: \"emailAddress\", name: \"E-Mail\", placeholder: \"E-Mail...\", allowMultiple: true },\r\n\t // { key: \"job\", name: \"Job\", placeholder: \"Job...\" }\r\n\t\t];\r\n\r\n\t\tvm.getPicUrl = function (profilePicName) {\r\n\t\t\treturn profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n\t\t }\r\n\r\n\r\n\t\t \r\n\t\t\r\n\t\tvm.FreelancerUserRoles = [\r\n\t\t {\r\n\t\t\tname: 'Freelancer Technician',\r\n\t\t\tvalue: 'Technician'\r\n\t\t }, \r\n\t\t {\r\n\t\t\tname: 'Freelancer Vendor',\r\n\t\t\tvalue: 'Vendor'\r\n\t\t }];\r\n\r\n\t\t\r\n\r\n\t\tvm.userlayout = vm.selectedFreelancerUserRole;\r\n vm.Checkuserrole=\"\";\r\n\t\tvm.userroletype = function (userrole) {\r\n\t\t\tif(vm.globalsearch == 'List'){\r\n\t\t\t\t\r\n\t\t\t}else if(vm.globalsearch == 'List1'){\r\n\r\n\t\t\t}else{\r\n\t\t\t\tvm.globalsearch = '';\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(userrole == 'Technician'){\r\n\t\t\t\tvm.Checkuserrole=\"Technician\";\r\n\t\t\t\tvm.showtechnician=true;\r\n\t\t\t\tvm.showvendor = false;\t\r\n\t\t\t}else if(userrole == 'Vendor'){\r\n\t\t\t\tvm.Checkuserrole=\"Technician\";\r\n\t\t\t\tvm.showtechnician=false;\r\n\t\t\t\tvm.showvendor=true;\r\n\t\t\t}\r\n\r\n\t\t }\r\n\t\t \r\n\t\t if(vm.UserType){\r\n\t\t\tvm.userroletype(vm.UserType);\r\n\t\t }\r\n// Freelancer Technician Layout\r\n\t\t vm.Technicianviewtypes = [\r\n\t\t\t{\r\n\t\t\t\tname: 'List View',\r\n\t\t\t\tvalue: 'List'\r\n\t\t\t },\r\n\t\t\t{\r\n\t\t\t\tname: 'Card View',\r\n\t\t\t\tvalue: 'Card'\r\n\t\t\t},\r\n\t\t\t \r\n\t\t\t {\r\n\t\t\t name: 'Map View',\r\n\t\t\t value: 'Map'\r\n\t\t\t }\r\n\t\t\t\r\n\t\t\t];\r\n \r\n\t\t vm.technicianuserviewtype = vm.Technicianviewtypes[0].value;\r\n\t\t vm.userviewlayout = vm.technicianuserviewtype;\r\n\t\t vm.globalsearch='';\r\n\t\t vm.userviewtype = function (userview) {\r\n\t\t\tvm.globalsearch=userview;\r\n\t\t\tif(userview == 'Card'){\r\n\t\t\t\tif(checkTalentandPreferred=='Preferred')\r\n\t\t\t{\r\n\t\t\t\tvm.PreferredUser = true;\r\n\t\t\t\tvm.techniciancardview=false;\r\n\t\t\t\tvm.technicianlistview = false;\r\n\t\t\t\tvm.technicianmapview=false;\r\n\t\t\t\tvm.PreferredUserlist=false;\r\n\t\t\t\tvm.preferredtechnicianmapview=false;\t\r\n\t\t\t}\r\n\t\t\telse if(checkTalentandPreferred=='TalentPool')\r\n\t\t\t{\r\n\t\t\t\tvm.PreferredUser = false;\r\n\t\t\t\tvm.techniciancardview=true;\r\n\t\t\t\tvm.technicianlistview = false;\r\n\t\t\t\tvm.technicianmapview=false;\r\n\t\t\t\tvm.PreferredUserlist=false;\r\n\t\t\t\tvm.preferredtechnicianmapview=false;\r\n\t\t\t\t\t\r\n\t\t\t}\r\n\r\n\r\n\t\t\t}else if(userview == 'List'){\r\n\t\t\t\tif(checkTalentandPreferred=='Preferred')\r\n\t\t\t\t{\r\n\t\t\t\tvm.PreferredUser = false;\r\n\t\t\t\tvm.PreferredUserlist=true;\r\n\t\t\t\tvm.techniciancardview=false;\r\n\t\t\t\tvm.technicianlistview = false;\r\n\t\t\t\tvm.technicianmapview=false;\r\n\t\t\t\tvm.preferredtechnicianmapview=false;\t\r\n\t\t\t\t}\r\n\t\t\t\telse if(checkTalentandPreferred=='TalentPool')\r\n\t\t\t{\r\n\t\t\t\tvm.PreferredUser = false;\r\n\t\t\t\tvm.techniciancardview=false;\r\n\t\t\t\tvm.technicianlistview = true;\r\n\t\t\t\tvm.technicianmapview=false;\r\n\t\t\t\tvm.PreferredUserlist=false;\r\n\t\t\t\tvm.preferredtechnicianmapview=false;\t\r\n\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if(userview == 'Map'){\r\n\t\t\t\tif(checkTalentandPreferred=='Preferred')\r\n\t\t\t\t{\r\n\t\t\t\tvm.PreferredUser = false;\r\n\t\t\t\tvm.PreferredUserlist=false;\r\n\t\t\t\tvm.techniciancardview=false;\r\n\t\t\t\tvm.technicianlistview = false;\r\n\t\t\t\tvm.technicianmapview=false;\r\n\t\t\t\tvm.preferredtechnicianmapview=true;\t\r\n\t\t\t\t}\r\n\t\t\t\telse if(checkTalentandPreferred=='TalentPool')\r\n\t\t\t{\r\n\t\t\t\tvm.PreferredUser = false;\r\n\t\t\t\tvm.techniciancardview=false;\r\n\t\t\t\tvm.technicianlistview = false;\r\n\t\t\t\tvm.technicianmapview=true;\r\n\t\t\t\tvm.PreferredUserlist=false;\r\n\t\t\t\tvm.preferredtechnicianmapview=false;\t\r\n\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\r\n\t\t }\r\n\r\nvar checkTalentandPreferred=\"TalentPool\";\r\n vm.preferredtechnicianview = function (PreferredUser,PreferredTalentPool) {\r\n\t if(PreferredUser=='Preferred'){\r\n\t\tcheckTalentandPreferred='Preferred';\r\n\t\tvm.techniciancardview=false;\r\n\t\tvm.PreferredUser = true;\r\n\t\tvm.technicianlistview = false;\r\n\t\tvm.technicianmapview=false;\r\n\t\tvm.PreferredUserlist=false;\r\n\t\tvm.preferredtechnicianmapview=false;\r\n\r\n\t\tif(PreferredTalentPool=='Card'){\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.PreferredUser = true;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.preferredtechnicianmapview=false;\r\n\t\t}\r\n\r\n\t\telse if(PreferredTalentPool=='List'){\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.PreferredUserlist=true;\r\n\t\t\tvm.preferredtechnicianmapview=false;\r\n\t\t}\r\n\r\n\t\telse if(PreferredTalentPool=='Map'){\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.preferredtechnicianmapview=true;\r\n\t\t\t$(\"#Map\").hide();\r\n\t\t\t$(\"#Map2\").show();\r\n\t\t}\r\n\r\n\t }\r\n\r\n }\r\n\r\n\r\n vm.allTechnicianview= function(TalentPool,AllTalentPool){\r\n\t if(TalentPool=='TalentPool'){\r\n\t\tcheckTalentandPreferred='TalentPool';\r\n\t vm.techniciancardview=true;\r\n\t vm.PreferredUser = false;\r\n\t vm.technicianlistview = false;\r\n\t\tvm.technicianmapview=false;\r\n\t\tvm.PreferredUserlist=false;\r\n\t\tvm.preferredtechnicianmapview=false;\r\n\r\n\t\tif(AllTalentPool=='Card'){\r\n\t\t\tvm.techniciancardview=true;\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.preferredtechnicianmapview=false;\r\n\t\t}\r\n\t\telse if(AllTalentPool=='List'){\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.technicianlistview = true;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.preferredtechnicianmapview=false;\r\n\t\t}\r\n\t\telse if(AllTalentPool=='Map'){\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=true;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.PreferredUsermapview=false;\r\n\t\t\tvm.preferredtechnicianmapview=false;\r\n\t\t\t$(\"#Map\").show();\r\n\t\t\t$(\"#Map2\").hide();\r\n\t\t}\r\n\t }\r\n\t\t\r\n }\r\n\r\n\r\n \r\n// Vendor Layout\r\nvm.Vendorviewtypes = [\r\n\t{\r\n\t\tname: 'List View',\r\n\t\tvalue: 'List1'\r\n\t },\r\n\t{\r\n\t\tname: 'Card View',\r\n\t\tvalue: 'Card1'\r\n\t},\r\n\t \r\n\t {\r\n\t name: 'Map View',\r\n\t value: 'Map1'\r\n\t }\r\n\t\r\n\t];\r\n\r\n vm.vendoruserviewtype = vm.Vendorviewtypes[0].value;\r\n vm.vendorviewlayout = vm.vendoruserviewtype;\r\n vm.globalVendorsearch='';\r\n vm.vendorviewtype = function (vendorview) {\r\n\tvm.globalsearch=vendorview;\r\n\tif(vendorview == 'Card1'){\r\n\t\t\t\r\n\tif(checkTalentandPreferredVendor=='PreferredVendor')\r\n\t{\r\n\t vm.vendorcardview=false;\r\n\t vm.PreferredVendor = true;\r\n\t\tvm.vendorpreferredlistview = false;\r\n\t\t vm.vendorlistview=false;\r\n\t\t vm.vendormapview=false;\r\n\t\t vm.Preferredvendormapview=false;\r\n\t}\r\n\telse if(checkTalentandPreferredVendor=='TalentPoolVendor')\r\n\t\t{\r\n\t\tvm.vendorcardview=true;\r\n\t\tvm.PreferredVendor = false;\r\n\t\tvm.vendorpreferredlistview = false;\r\n\t\tvm.vendorlistview=false;\r\n\t\tvm.vendormapview=false;\r\n\t\tvm.Preferredvendormapview=false;\r\n\t\t\t}\r\n\t}else if(vendorview == 'List1'){\r\n\t\tvm.globalsearch=vendorview;\r\n\t\tif(checkTalentandPreferredVendor=='PreferredVendor')\r\n\t\t{\r\n\t\tvm.vendorcardview=false;\r\n\t\tvm.PreferredVendor = false;\r\n\t\tvm.vendorpreferredlistview = true;\r\n\t\t vm.vendorlistview=false;\r\n\t\t vm.vendormapview=false;\r\n\t\t vm.Preferredvendormapview=false;\r\n\t\t}\r\n\t\telse if(checkTalentandPreferredVendor=='TalentPoolVendor')\r\n\t\t{\r\n\t\tvm.vendorcardview=false;\r\n\t\tvm.PreferredVendor = false;\r\n\t\tvm.vendorpreferredlistview = false;\r\n\t\tvm.vendorlistview=true;\r\n\t\tvm.vendormapview=false;\r\n\t\tvm.Preferredvendormapview=false;\r\n\t\t}\r\n\t}\r\n\telse if(vendorview == 'Map1'){\r\n\t\tif(checkTalentandPreferredVendor=='PreferredVendor')\r\n\t\t{\r\n\t\tvm.vendorcardview=false;\r\n\t\tvm.PreferredVendor = false;\r\n\t\tvm.vendorpreferredlistview = false;\r\n\t\t vm.vendorlistview=false;\r\n\t\t vm.vendormapview=false;\r\n\t\t vm.Preferredvendormapview=true;\r\n\t\t}\r\n\t\telse if(checkTalentandPreferredVendor=='TalentPoolVendor')\r\n\t\t{\r\n\t\tvm.vendorcardview=false;\r\n\t\tvm.PreferredVendor = false;\r\n\t\tvm.vendorpreferredlistview = false;\r\n\t\tvm.vendorlistview=false;\r\n\t\tvm.vendormapview=true;\r\n\t\tvm.Preferredvendormapview=false;\r\n\t\t}\r\n\t}\r\n }\r\n\r\n var checkTalentandPreferredVendor=\"TalentPoolVendor\";\r\n vm.preferredvendorview = function (PreferredVendor,PreferredTalentPoolVendor) {\r\n\tif(PreferredVendor=='PreferredVendor'){\r\n\t\tcheckTalentandPreferredVendor='PreferredVendor';\r\n\t\tvm.vendorcardview=false;\r\n\t\tvm.PreferredVendor = true;\r\n\t\tvm.vendorpreferredlistview = false;\r\n\t\tvm.vendorlistview=false;\r\n\t\tvm.vendormapview=false;\r\n\t\tvm.Preferredvendormapview=false;\r\n\r\n\t\tif(PreferredTalentPoolVendor=='Card1'){\r\n\t\t\tvm.vendorcardview=false;\r\n\t\t\tvm.PreferredVendor = true;\r\n\t\t\tvm.vendorpreferredlistview = false;\r\n\t\t\tvm.vendorlistview=false;\r\n\t\t\tvm.vendormapview=false;\r\n\t\t\tvm.Preferredvendormapview=false;\r\n\t\t}\r\n\r\n\t\telse if(PreferredTalentPoolVendor=='List1'){\r\n\t\t\tvm.vendorcardview=false;\r\n\t\t\tvm.PreferredVendor = false;\r\n\t\t\tvm.vendorpreferredlistview = true;\r\n\t\t\tvm.vendorlistview=false;\r\n\t\t\tvm.vendormapview=false;\r\n\t\t\tvm.Preferredvendormapview=false;\r\n\t\t}\r\n\r\n\t\telse if(PreferredTalentPoolVendor=='Map1'){\r\n\t\t\tvm.vendorcardview=false;\r\n\t\t\tvm.PreferredVendor = false;\r\n\t\t\tvm.vendorpreferredlistview = false;\r\n\t\t\tvm.vendorlistview=false;\r\n\t\t\tvm.vendormapview=false;\r\n\t\t\tvm.Preferredvendormapview=true;\r\n\t\t}\r\n\r\n\t\t\r\n\t}\r\n\r\n\r\n}\r\nvm.preferredvendorview('PreferredVendor' , vm.vendoruserviewtype);\r\n\r\n\r\nvm.allVendorview= function(TalentPoolVendor,AllTalentPoolVendor){\r\n\tif(TalentPoolVendor=='TalentPoolVendor'){\r\n\t checkTalentandPreferred='TalentPoolVendor';\r\n\t vm.vendorcardview=true;\r\n\t\t vm.PreferredVendor = false;\r\n\t\t vm.vendorpreferredlistview = false;\r\n\t\t vm.vendorlistview=false;\r\n\t\t vm.vendormapview=false;\r\n\t\t vm.Preferredvendormapview=false;\r\n\r\n\t if(AllTalentPoolVendor=='Card1'){\r\n\t\t vm.vendorcardview=true;\r\n\t\t vm.PreferredVendor = false;\r\n\t\t vm.vendorpreferredlistview = false;\r\n\t\t vm.vendorlistview=false;\r\n\t\t vm.vendormapview=false;\r\n\t\t vm.Preferredvendormapview=false;\r\n\t }\r\n\t else if(AllTalentPoolVendor=='List1'){\r\n\t\t vm.vendorcardview=false;\r\n\t\t vm.PreferredVendor = false;\r\n\t\t vm.vendorpreferredlistview = false;\r\n\t\t vm.vendorlistview=true;\r\n\t\t vm.vendormapview=false;\r\n\t\t vm.Preferredvendormapview=false;\r\n\t }\r\n\t else if(AllTalentPoolVendor=='Map1'){\r\n\t\t vm.vendorcardview=false;\r\n\t\t\tvm.PreferredVendor = false;\r\n\t\t\tvm.vendorpreferredlistview = false;\r\n\t\t\tvm.vendorlistview=false;\r\n\t\t\tvm.vendormapview=true;\r\n\t\t\tvm.Preferredvendormapview=false;\r\n\t }\r\n\t}\r\n\r\n}\r\nif($localStorage.selectedFreelancerUserRole){\r\n\tvm.selectedFreelancerUserRole=$localStorage.selectedFreelancerUserRole;\r\n\tvm.userroletype(vm.selectedFreelancerUserRole);\r\n\t}\r\n\telse{\r\n\t\tvm.selectedFreelancerUserRole = vm.FreelancerUserRoles[0].value;\r\n\t}\r\n\t\t/*$scope.options = [\r\n\t\t\t{\r\n\t\t\t name: 'Freelancer Technician',\r\n\t\t\t value: 'Technicain'\r\n\t\t\t}, \r\n\t\t\t{\r\n\t\t\t name: 'Freelancer Vendor',\r\n\t\t\t value: 'Vendor'\r\n\t\t\t}\r\n\t\t ];\r\n\t\t $scope.selectedOption = $scope.options[0];*/\r\n\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\r\n\t\tvm.getPreferredUser = function(){\r\n\t\t\tNewTalentPoolService.getPreferredUser(loggedinUser,token).then(function(resp){\r\n\t\t\t\tvm.PreferredUsers = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\r\n\r\n\t\t// vm.getPreferredUser();\r\n\r\n\t\tvm.getPreferredVendor = function(){\r\n\t\t\tNewTalentPoolService.getPreferredVendor(loggedinUser,token).then(function(resp){\r\n\t\t\t\tvm.PreferredVendors = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//vm.getPreferredVendor();\r\n\r\n\t\t\r\n\t\t vm.PreferredVendorTechnicianProfile = function (PreferredVendor) {debugger\r\n\t\t\t$localStorage.VendorPageIndex = vm.VendorcurrentPage;\r\n\t\t\t$localStorage.PreferredVendorDetailsView ='PreferredVendorDetails';\r\n\t\t\tif(vm.vendoruserviewtype =='List1'){\r\n\t\t\t\t$localStorage.vendorviewtype ='List1'\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\t$localStorage.vendorviewtype ='Card1'\r\n\t\r\n\t\t\t\t}\r\n\t\t\t$localStorage.PVendorFilterData={};\r\n\t\t\tvar temp = [];\r\n\t\t\tfor(var i=0;i 0) {\r\n\t\t// \t\tvm.vendorList = resp.data;\r\n\t \r\n\t\t// \t }\r\n\t\t// \t})\r\n\t\t// }\r\n\r\n\t\t \r\n\t\t //vm.GetAllVendors();\r\n\r\n\t\t// vm.GetSingleBlockedUser = function () {\r\n\t\t// \tNewTalentPoolService.GetSingleBlockedUser(loggedinUser, token).then(function (resp) {\r\n\t\t// \t\tvm.BlokedSingleUser = resp.data;\r\n\t\t// \t})\r\n\t\t// }\r\n\t\t// vm.GetSingleBlockedUser();\r\n\r\n\r\n\t\t// vm.GetAllUsers();\r\n\t\tvm.getProfilePic = function (pic) {\r\n\t\t\treturn ImageUrl + \"/\" + pic;\r\n\t\t }\r\n\t\t vm.searchTable = function () {\r\n\t\t\tvm.dtInstance.DataTable.search(vm.searchText);\r\n\t\t\tvm.dtInstance.DataTable.search(vm.searchText).draw();\r\n\t\t };\r\n\r\n\t\t// start preferred vendor table\r\n\t\r\n\t\tvm.dtOptionsPreferredvendor = DTOptionsBuilder.newOptions()\r\n\t\t.withDOM('<\"html5buttons\"B>lTfgitp')\r\n\t\t.withButtons([{extend:'colvis'},{extend:'csv'}])\r\n\t\t.withOption('stateSave', true)\r\n \r\n\t\t.withPaginationType('full_numbers')\r\n\t\t.withOption('lengthChange', false)\r\n\t\t.withOption('paging', false)\r\n\t\t.withOption('bInfo',false)\r\n\t\t.withOption('order', [0, 'desc']);\r\n\r\n\t\tvm.dtColumnsPreferredvendor = [\r\n\t\tDTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(10).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(11).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(12).notSortable(),\r\n\t\t];\r\n\t\r\n\t\r\n\t\t vm.GetVendorDataById = function (vendorId) {\r\n\t\t\tNewTalentPoolService.GetVendorById(loggedinUser, vendorId, token).then(function (resp) {\r\n\t\t\t if (resp.data) {\r\n\t\t\t\t// if (!angular.equals(vm.vendorData,resp.data)) {\r\n\t\t\t\tvm.vendorData = resp.data;\r\n\t\t\t\tvm.preProcessData(vm.vendorData);\r\n\t\t\t\tvm.ActivationStatus = vm.vendorData.VendorStatus == \"Active\" ? true : false;\r\n\t\t\t\t// }\r\n\t\t\t }\r\n\t\t\t})\r\n\t\t }\r\n\t\t\r\n\r\n\t\t\r\n\r\n\r\n\r\n\r\n\r\n\t\t vm.getUserInfo = function (userId, loggedinUser) {\r\n\t\t\tNewTalentPoolService.getUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n\t\t\t vm.userInfo = resp.data;\r\n\t\t\t// vm.GetFreelancerBalance(vm.userInfo.UserId);\r\n\t\t\t vm.skill = vm.userInfo.SkillSet;\r\n\t\t\t vm.circle = vm.userInfo.Locations;\r\n\t\t\t}, function () {\r\n\t\t\t //$log.log('not working');\r\n\t\t\t});\r\n\t\t }\r\n\t\t// vm.getUserInfo();\r\n\t\t// vm.VendorProfileView = function(userid){\r\n\t\t// \t$state.go('index.NewVendorProfile', {\r\n\t\t// \t userId: userid\r\n\t\t// \t}, {\r\n\t\t// \t\treload: true\r\n\t\t// \t });\r\n\t\t// }\r\n\r\n\t\t// vm.ProfileView = function (userid) {\r\n\t\t// \t$state.go('index.VendorProfile1', {\r\n\t\t// \t userId: userid\r\n\t\t// \t}, {\r\n\t\t// \t\treload: true\r\n\t\t// \t });\r\n\t\t// }\r\n\t\t vm.ProfileData = function (userId) {\r\n\t\t\tvm.getUserInfo(userId, loggedinUser);\r\n\t\t\tvm.client = 3;\r\n\t\t }\r\n\r\n\t\r\n\t\r\n\t\r\n\t\r\n\r\n\t\tvm.preferreduser=[];\r\n\t\tvm.Preferred = function (UserId) {\r\n\t\t\tvar openpopup = true;\r\n\t\tfor(var i=0;i0)\r\n\t\t {\r\n\t\t\t for(var i=0; i 0){\r\n\t\t\t\t\t for(var j=0;j0)\r\n\t\t// {\r\n\t\t// \t for(var i=0; i 0){\r\n\t\t// \t\t\t for(var j=0;jlTfgitp')\r\n\t.withButtons([{extend:'colvis'},{extend:'csv'}])\r\n\t.withOption('stateSave', true)\r\n\t\r\n\t.withPaginationType('full_numbers')\r\n\t.withOption('lengthChange', false)\r\n\t.withOption('paging', false)\r\n\t.withOption('bInfo',false)\r\n\t.withOption('order', [0, 'desc']);\r\n\r\n\tvm.PreferreddtColumnDefs = [\r\n\tDTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n\tDTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n\tDTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n\tDTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n\tDTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n\tDTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n\tDTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n\tDTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n\tDTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n\tDTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n\tDTColumnDefBuilder.newColumnDef(10).notSortable(),\r\n\tDTColumnDefBuilder.newColumnDef(11).notSortable(),\r\n\tDTColumnDefBuilder.newColumnDef(12).notSortable(),\r\n\t];\r\n\t\t\r\n\r\n\t\t vm.getUserInfo = function (userId, loggedinUser) {\r\n\t\t\tNewTalentPoolService.getUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n\t\t\t vm.userInfo = resp.data;\r\n\t\t\t// vm.GetFreelancerBalance(vm.userInfo.UserId);\r\n\t\t\t vm.skill = vm.userInfo.SkillSet;\r\n\t\t\t vm.circle = vm.userInfo.Locations;\r\n\t\t\t}, function () {\r\n\t\t\t //$log.log('not working');\r\n\t\t\t});\r\n\t\t }\r\n\t\t// vm.getUserInfo();\r\n\t\t\r\n\t\t vm.ProfileData = function (userId) {\r\n\t\t\tvm.getUserInfo(userId, loggedinUser);\r\n\t\t\tvm.client = 3;\r\n\t\t }\r\n\r\n\t\r\n\t\r\n\t\r\n\t\r\n\r\n\t\tvm.preferreduser=[];\r\n\t\tvm.Preferred = function (UserId) {\r\n\t\t\tvar openpopup = true;\r\n\t\tfor(var i=0;i0)\r\n\t\t\t\t {\r\n\t\t\t\t\t for(var i=0; i 0){\r\n\t\t\t\t\t\t\t for(var j=0;j0)\r\n\t\t\t\t{\r\n\t\t\t\t\tfor(var i=0; i 0){\r\n\t\t\t\t\t\t\t\tfor(var j=0;j 0) {\r\n\t\t\t\tvm.vendorList = resp.data;\r\n\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\r\n// vm.GetAllUsers();\r\nvm.getProfilePic = function (pic) {\r\n\treturn ImageUrl + \"/\" + pic;\r\n}\r\nvm.searchTable = function () {\r\n\tvm.dtInstance.DataTable.search(vm.searchText);\r\n\tvm.dtInstance.DataTable.search(vm.searchText).draw();\r\n};\r\n// start all user\r\n// vm.Bluserlist = [];\r\nvm.applyfilter = function (index, data) {\r\n\tvar userFormData ={};\r\n\tif(data){\r\n\t\tuserFormData=data;\r\n\t}else{\r\n\t\tvar temp = [];\r\n\t\tfor(var i=0;i0)\r\n\t\t\t {\r\n\t\t\t \tfor(var i=0; i 0){\r\n\t\t\t \t\t\t\tfor(var j=0;j0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tfor(var i=0; i 0){\r\n\t\t\t\t\t\t\t\t\t\tfor(var j=0;j0)\r\n\t\t\t// {\r\n\t\t\t// \tfor(var i=0; i 0){\r\n\t\t\t// \t\t\t\tfor(var j=0;j0)\r\n\t\t\t{\r\n\t\t\t\tfor(var i=0; i 0){\r\n\t\t\t\t\t\t\tfor(var j=0;j\" + \"Decoded URI: \" + dec;\r\n $('#agreementview').contents().find('html').html(dec);\r\n // document.getElementById(\"demo\").html(dec);\r\n \r\n // vm.showSuccess('Success', \"User added in preferred talent pool\");\r\n // vm.PreferredUserModal.close();\r\n }else{\r\n var dec = decodeURIComponent(resp.data).replace(/\\+/g,\" \");\r\n $('#agreementview').contents().find('html').html(dec);\r\n }\r\n \r\n })\r\n }\r\n\r\n if(vm.loggedInUser_Role== 'SuperAdministrator'){\r\n vm.RechargeHistory = function(userid) {\r\n vm.userid=userid;\r\n RechargeModal = $uibModal.open({\r\n templateUrl: 'rechargeHistory.html',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlHistory,\r\n resolve : {\r\n items : function(){\r\n return {\r\n AccountName:vm.CompanyName,\r\n AccountId:vm.Email\r\n };\r\n }\r\n },\r\n size:'lg' \r\n }); \r\n }\r\n }\r\n vm.imageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function() {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n } \r\n vm.InsurenceimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.InsurenceImg = 'assets/images/patterns/pdf.png';\r\n }\r\n else{\r\n vm.InsurenceImg= resp.data;\r\n }\r\n \r\n }, function() {\r\n vm.InsurenceImg = 'assets/images/patterns/pdf.png';\r\n });\r\n \r\n }\r\n \r\n vm.CertimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.CertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.CertprofileImg[index] = resp.data;\r\n }\r\n \r\n }, function() {\r\n vm.CertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n \r\n }\r\n vm.CloseRechargeModal = function(){\r\n RechargeModal.close();\r\n }\r\n\r\n var ModalInstanceCtrlHistory = function($scope, $rootScope, $uibModalInstance, items) { \r\n PreferredFreelancerTechnicianProfileService.getFreelancerHistory(vm.userId, loggedinUser, token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.AccountHistoryData = resp.data;\r\n }\r\n }) \r\n }\r\n\r\n vm.dtOption = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('order', []);\r\n \r\n vm.dtColumnDefs = [\r\n //DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable().withClass('td-small-with-panel'),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable()];\r\n\r\n //if(vm.loggedInUser_Role== 'SuperAdministrator'){\r\n vm.TicketHistory = function(userid) {\r\n vm.userid=userid;\r\n TicketModal = $uibModal.open({\r\n templateUrl: 'TicketHistory.html',\r\n scope: $scope,\r\n controller: getJobsByUserId(userid, loggedinUser),\r\n size:'lg' \r\n }); \r\n \r\n }\r\n //}\r\n \r\n vm.CloseTicketModal = function(){\r\n TicketModal.close();\r\n }\r\n \r\n\r\n // var ModalInstanceCtrTicketlHistory = function($scope, $rootScope, $uibModalInstance, items) { \r\n // \r\n // FreelancerTechnicianProfileService.getJobsByUserId(vm.userId, loggedinUser, token).then(function (resp) {\r\n // vm.jobTickets = resp.data;\r\n // }) \r\n // }\r\n\r\n var getJobsByUserId= function(userid, loggedinUser) {\r\n PreferredFreelancerTechnicianProfileService.getJobsByUserId(vm.userId, loggedinUser, token).then(function (resp) {\r\n vm.jobTickets = resp.data;\r\n }, function () {\r\n });\r\n \r\n }\r\n\r\n\r\n\r\n vm.dtOptionsticket = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n // .withButtons(['colvis'])\r\n .withOption('stateSave', true)\r\n .withOption('stateSaveCallback', function (settings, data) {\r\n localStorage.setItem('DataTables_' + settings.sInstance, JSON.stringify(data))\r\n })\r\n .withOption('stateLoadCallback', function (settings) {\r\n var state = JSON.parse(localStorage.getItem('DataTables_' + settings.sInstance));\r\n if (state) {\r\n state.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n if(state.columns && state.columns.length>0){\r\n state.columns[7].visible=false;\r\n state.columns[8].visible=false;\r\n state.columns[10].visible=false;\r\n state.columns[11].visible=false; \r\n }\r\n }\r\n return state;\r\n })\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [1, 'desc']);\r\n \r\n vm.dtColumnDefsticket = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable()\r\n ];\r\n\r\n\r\n \r\n\r\n\r\n\r\n});\nangular.module('inspinia').service('PlanningUploadJobsService', function () {\r\n\r\n \r\n});\r\n\nangular.module('inspinia').controller('PlanningUploadJobsController', function ($scope, $log, $localStorage,PlanningUploadJobsService) {\r\n\r\n var vm = this;\r\n \r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n if (!loggedInUserId) {\r\n \r\n $state.go('Login', {\r\n reload: true\r\n });\r\n \r\n } else\r\n {\r\n \r\n }\r\n\r\n})\nangular.module('inspinia').service('TicketBasedPlanningService', function (ApiURL,SchedulingAPI, FreelancerURL,LocationURL,PublicApiURL, $log, $http,$localStorage,$window) {\r\n\r\nthis.getTicketBasedPlanning = function (startDate, endDate, reqUserId,token, itemNames,itemValues,DateField,PageIndex,PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/Invoice/GetInvoicesAccountsDateRangeWithDynaPaging?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + reqUserId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': reqUserId\r\n }\r\n });\r\n}\r\nthis.GetAddressBasedPlanningResult = function (userFormData, loggedInUserId,token) {\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetAddressBasedPlanningResultReport';\r\n return $http.post(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\n});\nangular.module('inspinia').controller('TicketBasedPlanningController', function (TicketBasedPlanningService,JobTicketViewService,MainService,ReferService,ActiveVendorUpdateService, $http,toaster, $filter,$rootScope, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder,DTColumnDefBuilder, DTColumnBuilder, $uibModal, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout,ngProgressFactory) {\r\n\tvm = this;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\tvm.CustomDateformat = $localStorage.CustomDateformat; \r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.CurrencySymbol = $localStorage.accountConfig.CurrencySymbol;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n var token = $localStorage.token;\r\n // $scope.$parent.$parent.main.implementSelectItems('ticketList', this);\r\n vm.searchText = \"\";\r\n vm.IsSearch = false;\r\n\tvm.DateField=\"CreatedOn\";\r\n\tvm.SearchByUserType=''; \r\n\tvm.searchJobTypeText = \"\";\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n\tvm.TotalLocation=0;\r\n\tvm.TotalMatch=0;\r\n\tvm.NotMatch=0;\r\n\tvm.Atleast3Match=0;\r\n\tvm.Atleast2Match=0;\r\n\tvm.Atleast1Match=0; \r\n\tvm.RunRateInDays=0;\r\n\tvm.RangeInKm=50;\r\n\tvm.JobSkill=\"\";\r\n\tvm.RegistrationStatus=\"\";\r\n\tvm.Asset=\"\";\r\n\tvm.Tools=\"\";\r\n\tvm.Certificate=\"\";\r\n\tvm.PermanentCity=\"\";\r\n vm.PermanentState=\"\"; \r\n\tvm.Pincode=\"\";\r\n\tvm.UserDetailVerification=\"\";\r\n\tvm.showErrors = false;\r\n\tvm.showSuccess = false;\r\n\tvm.errorList = [];\r\n\tvm.disableUploadButton = true;\r\n\tvm.LocationAddressList = [];\t\r\n\tvm.TicketBasedPlanningList ={};\r\n\tvm.bulkuploadType = \"Location\";\r\n\tvm.progressbar = ngProgressFactory.createInstance();\r\n\tvm.canceler = $q.defer();\r\n\tvm.successTitle = \"\";\r\n\tvm.successMsg = \"\";\r\n\tvm.noMsg = [];\r\n\tvm.noOfRecords = 0;\r\n\tvm.file = null;\r\n\tvm.dtInstance = {};\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n }; \r\n\r\n\tvm.searchTable = function () {\r\n\t\tvm.dtInstance.DataTable.search(vm.searchText);\r\n\t\tvm.dtInstance.DataTable.search(vm.searchText).draw();\r\n\t };\r\n \r\n\t vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n\t\t'<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n\t\t'full_numbers')\r\n\t\t.withButtons([])\r\n\t\t.withOption('lengthChange', false)\r\n\t\t.withOption('initComplete', function () {\r\n\t\t $('.dataTables_filter input').unbind();\r\n\t\t})\r\n\t\t.withOption('order', [1, 'desc']);\r\n \r\n\t vm.dtColumnDefs = [\r\n\t\tDTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n\t\t//DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(5).notSortable()];\r\n\t\r\n vm.ConverttoDecimal = function(value) {\r\n return (parseFloat(value).toFixed(2))\r\n }\r\n vm.getSkills = function () {\r\n\tJobTicketViewService.getSkills(loggedinUser, token, function (skills) {\r\n\t vm.skills = skills; \r\n\t}, vm.showFailure);\r\n }\r\n vm.getSkills();\r\n function getAllStates() {\r\n\tvar defered = $q.defer();\r\n\tReferService.getAllState(loggedinUser,token).then(function (resp) {\r\n\t\tdefered.resolve(resp);\r\n\t}, function (error) {\r\n\t\tdefered.reject(error);\r\n\t});\r\n\treturn defered.promise;\r\n}\r\n\r\nvar allStatePromise = getAllStates();\r\nallStatePromise.then(function (resp) {\r\n\tvm.StateList = resp.data;\r\n\t\r\n});\r\nfunction getallCities(state) {\r\n\tReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n\t\tvm.CityList = resp.data;\r\n\t});\r\n}\r\nvm.selectedState = function (state) {\r\n\tgetallCities(state);\r\n}\r\n \r\n vm.dateRangeChange = function (ev, picker) {\r\n vm.IsSearch = true;\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) { \r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n \r\n };\r\n\r\n vm.OpenUploadLocationModal = function () \r\n {\r\n\tuploadLocationModalInstance = $uibModal.open({\r\n\ttemplateUrl: 'bulk_upload_location_model.html',\r\n\tscope: $scope\r\n\t});\t\r\n }\r\n vm.RangeFunction= function(){\r\n $timeout(function(){\r\n $(\"#example_id\").ionRangeSlider({\r\n\tgrid: true,\r\n\tmin: 0,\r\n\tmax: 200,\r\n\tfrom: 50,\r\n\tstep : 1,\r\n\tskin: \"round\",\r\n\tpostfix: \" Kms\"\r\n});\r\n},100)\r\n }\r\nvm.CloseModal = function () {\r\n\tuploadLocationModalInstance.close();\r\n}\r\n \r\n/////////////////////////////////////////////////////////\r\nif (vm.bulkuploadType == 'cms') {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.zip',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n } else {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n }\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers').withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20]);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\nvm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.LocationAddressList = []; \r\n \r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showSuccess = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n var fd = new FormData();\r\n fd.append('file', file); \r\n $http.post(ApiURL + '/api/BulkUpload/MediaUpload?reqUserId=' + loggedinUser + '&action=Create', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'Token': token,'UserId': loggedinUser },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n if (vm.bulkuploadType == 'Location') {\r\n\t\t\t\tvm.LocationAddressList = data.AddressList;\t\t\t \r\n vm.noOfRecords = data.AddressList ? data.AddressList.length : 0;\r\n } \r\n $(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n if (data.Errors.length > 0) {\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.Errors, function (v, k) {\r\n\r\n if (v.ItemErrors.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.ItemErrors, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n });\r\n if (v.Row > 0 && data.AddressList && data.AddressList.length > 0 && data.AddressList.length >= v.Row) {\r\n e1.data = data.AddressList[v.Row - 1];\r\n } \r\n vm.errorList.push(e1);\r\n }\r\n });\r\n\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.ErrorCode == 103) {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Missing columns in excel file\";\r\n vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.Message && data.Message.length>0) {\r\n\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Validation failed\";\r\n vm.successMsg = data.Message\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\r\n } else {\r\n vm.showSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are validated successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found. Please click on start upload button to proceed.\";\r\n // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n $(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n });\r\n \r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.addFiles = function () {\r\n $(\"#dropzone1\").trigger(\"click\");\r\n }\r\n vm.GetAddressBasedPlanning = function () {\t\t\t\r\n\tvar userData = {\r\n\t\t\"AddressList\": vm.LocationAddressList,\r\n\t\t\"ActOnCurrentLocation\": true,\r\n\t\t\"RangeFromJob\": (vm.RangeInKm * 1000),\r\n\t\t\"Skill\": vm.JobSkill==\"\" ? \"\": vm.JobSkill.join(\"|\"),\r\n\t\t\"RegistrationStatus\": vm.RegistrationStatus==\"Both\" ? \"\": vm.RegistrationStatus,\r\n\t\t\"AssetList\": vm.Asset,\r\n\t\t\"CertificateList\": vm.Certificate,\r\n\t\t\"ToolList\": vm.Tools,\r\n\t\t\"UserDetailVerificationList\": vm.UserDetailVerification,\r\n\t\t\"OrderByUsers\": [\r\n\t\t {\"PriorityOrder\":1,\"OrderByField\":\"UserDistance\"},{\"PriorityOrder\":2,\"OrderByField\":\"UserRating\"}\r\n\t\t],\r\n\t\t\"UserConfigList\": [\r\n\t\t {\"UserRole\":\"Field Engineer\",\"UserType\":\"Freelancer\"},{\"UserRole\":\"Vendor Manager\",\"UserType\":\"Freelancer\"}\r\n\t\t]\r\n\t }\r\n \tvm.progressbar.reset();\r\n \tvm.progressbar.start();\r\n \tTicketBasedPlanningService.GetAddressBasedPlanningResult(userData, loggedinUser, token).then(function (resp) {\r\n\tif(resp.status==200){\t\t\r\n\t\tvm.TicketBasedPlanningList = resp.data;\t\r\n\t\tvm.TotalLocation = vm.TicketBasedPlanningList.TotalJobLocations;\r\n\t\tvm.TotalMatch = vm.TicketBasedPlanningList.TotalMatch;\r\n\t\tvm.NotMatch = vm.TicketBasedPlanningList.NotMatch;\r\n\t\tvm.Atleast3Match = vm.TicketBasedPlanningList.Atleast3Match;\r\n\t\tvm.Atleast2Match = vm.TicketBasedPlanningList.Atleast2Match;\r\n\t\tvm.Atleast1Match = vm.TicketBasedPlanningList.Atleast1Match;\r\n\t\tvm.RunRateInDays = vm.TicketBasedPlanningList;\r\n\t}\r\n\telse\r\n\t{\r\n\t\tvm.TicketBasedPlanningList=null;\r\n\t}\t\t\t\t\t\t\t\r\n});\r\n\r\n}\r\n vm.uploadFile = function () {\r\n if (vm.LocationAddressList && vm.LocationAddressList.length > 0) {\r\n\t\t\r\n\t\tvm.GetAddressBasedPlanning();\r\n\t\tuploadLocationModalInstance.close();\r\n }\r\n }\r\nvm.AssetList = [\"Laptop\",\"Mobile\", \"Bike\"];\r\nvm.RegistrationStatusList = [\"Active\",\"Registered\", \"Both\"];\r\nvm.UserDetailVerificationList = [\"BG Certified\",\"Address Verified\", \"ID Verified\",\"Criminal Verified\"];\r\nvm.getAllTools = function(){\r\n\tActiveVendorUpdateService.GetAllToolSets(loggedinUser,token,function(data){\r\n\t\tvm.Asset_ToolList = data;\r\n\t},vm.showFailure);\r\n}\r\nvm.getAllTools();\r\n\r\nvm.getAllCertificate = function(){\r\n\tActiveVendorUpdateService.GetAllCertificate(loggedinUser,token,function(data){\r\n\t\tvm.AllCertificateSets = data;\r\n\t},vm.showFailure);\r\n}\r\nvm.getAllCertificate();\r\nvm.Allapplyfilter = function(){ \r\n\t\r\n\tvm.GetAddressBasedPlanning();\r\n }\r\n vm.ResetFilter = function(){\r\n\tvm.RangeInKm=\"\";\r\n\tvm.JobSkill=\"\";\r\n\tvm.RegistrationStatus=\"\";\r\n\tvm.Asset=\"\";\r\n\tvm.Tools=\"\";\r\n\tvm.Certificate=\"\";\r\n\tvm.UserDetailVerification=\"\";\r\n\tvm.PermanentCity=\"\";\r\n vm.PermanentState=\"\"; \r\n\tvm.Pincode=\"\";\r\n }\r\n \r\n///////////////////////////////////////////////////\r\n \r\n}\r\n});\r\n// $(\"#example_id\").ionRangeSlider({\r\n// \tgrid: true,\r\n// \tmin: 0,\r\n// \tmax: 200,\r\n// \tfrom: 0,\r\n// \tstep : 1,\r\n// \tskin: \"round\",\r\n// \tpostfix: \" Kms\"\r\n// });\nangular.module('inspinia').service('PlanningToolService', function (ApiURL, SchedulingAPI,$log,FreelancerURL, $http, $localStorage, $window, PublicApiURL, ActivityURL) {\r\n\r\n \r\n});\r\n\nangular.module('inspinia').controller('PlanningToolController', function ($state, $localStorage) {\r\n var vm = this;\r\n \r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n if (!loggedInUserId) {\r\n \r\n $state.go('Login', {\r\n reload: true\r\n });\r\n \r\n } else {\r\n \r\n \r\n \r\n }\r\n })\r\n \r\n\r\n \r\n \nangular.module('inspinia').controller('PlanningTicketController', function ($scope, $uibModal) {\r\n\r\n $scope.openModal = function () {\r\n $uibModal.open({\r\n templateUrl: 'customModal.html',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n\r\n $scope.openSaveReport = function () {\r\n $uibModal.open({\r\n templateUrl: 'saveReport.html',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n $scope.openEmail = function () {\r\n $uibModal.open({\r\n templateUrl: 'emailReport.html',\r\n size:'lg',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n $scope.priceSlider = 10;\r\n $scope.myTrigger = \"outsideClick\";\r\n\r\n $scope.toggleSingleClass = function() {\r\n $scope.class_status = !$scope.class_status;\r\n };\r\n \r\n});\nangular.module('inspinia').service('PlanningTemplatesService', function () {\r\n\r\n \r\n});\r\n\nangular.module('inspinia').controller('PlanningTemplatesController', function ($scope, $log, $localStorage,PlanningTemplatesService) {\r\n\r\n var vm = this;\r\n \r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n if (!loggedInUserId) {\r\n \r\n $state.go('Login', {\r\n reload: true\r\n });\r\n \r\n } else\r\n {\r\n $scope.IsVisible = false;\r\n $scope.ShowHide = function () {\r\n //If DIV is visible it will be hidden and vice versa.\r\n $scope.IsVisible = true;\r\n }\r\n\r\n $scope.isNavCollapsed = true;\r\n $scope.isCollapsed = false;\r\n $scope.isNavCollapseds = true;\r\n $scope.isCollapseds = false;\r\n $scope.isNavCollapsedss = true;\r\n $scope.isCollapsedss = false;\r\n $scope.isNavCollapsedsss = true;\r\n $scope.isCollapsedsss = false;\r\n $scope.toggle = {};\r\n $scope.toggle.switch = true;\r\n $scope.toggle.switch1=true;\r\n $scope.toggle.switch2=true;\r\n $scope.toggle.switch3=true;\r\n $scope.toggle.switch6=true;\r\n $scope.toggle.switch7=true;\r\n $scope.toggle.switch8=true;\r\n $scope.toggle.switch9=true;\r\n $scope.toggle.switch10=true;\r\n $scope.toggle.switch12=true;\r\n }\r\n\r\n\r\n \r\n\r\n})\n\r\nangular.module('inspinia').service('PlanningResourseMapService', function (ApiURL, FreelancerURL, SchedulingAPI, $log, $http, $localStorage) {\r\n\r\n this.GetAllFreLancerProfile = function (loggedinUser, token, itemNames, itemValues, textItemNames, textItemValues) {\r\n var url = '';\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllFreLancerWithFiltersWithLightProfile?itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetTalentPoolForMapView = function (mapuserFormData, loggedinUser, token) {\r\n var url = FreelancerURL + \"/api/FreelancerUser/GetTalentPoolForMapView\";\r\n return $http.put(url, mapuserFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetJobTicket = function (ticketId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + loggedinUser + '/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAddressBasedPlanningResult = function (userFormData, loggedInUserId, token) {\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetAddressBasedPlanningResultReport';\r\n return $http.post(url, userFormData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n // https://login.mymobiforce.com/coreapi/api/accountConfig/GetAllAccountDetails \r\n\r\n\r\n this.GetAllAccountDetails = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/accountConfig/GetAllAccountDetails';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getSkills = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/SkillSets/' + loggedinUser + '/getmasterskillsB2C';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n this.GetAllCertificate = function (loggedinUser, token, success, failure) {\r\n var url = ApiURL + '/api/Cetrificate/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url, { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n success(res.data);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to get certificate list, server error.\");\r\n })\r\n }\r\n\r\n this.GetAllToolSets = function (loggedinUser, token, success, failure) {\r\n var url = ApiURL + '/api/Tool/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url, { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n success(res.data);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to get certificate list, server error.\");\r\n })\r\n }\r\n\r\n this.GetSchedulingEvaluationResult = function (data, reqUserId, token) {\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetSchedulingEvaluationResult?reqUserId=' + reqUserId;\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': reqUserId }\r\n });\r\n }\r\n\r\n this.GetTicketsOnFilterWithPaging = function (ticketFormData, loggedinUser, token) {\r\n var url = ApiURL + \"/api/CapacityPlanning/GetTicketsOnFilter\";\r\n return $http.post(url, ticketFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetCustomersOnFilterWithPaging = function (ticketFormData, loggedinUser, token) {\r\n var url = ApiURL + \"/api/CapacityPlanning/GetCustomersOnFilter\";\r\n return $http.post(url, ticketFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetCustomersOnFilterWithoutPaging = function (ticketFormData, loggedinUser, token) {\r\n var url = ApiURL + \"/api/CapacityPlanning/GetCustomersOnFilter\";\r\n return $http.post(url, ticketFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetTicketsOnFilterWithoutPaging = function (ticketFormData, loggedinUser, token) {\r\n var url = ApiURL + \"/api/CapacityPlanning/GetTicketsOnFilter\";\r\n return $http.post(url, ticketFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetUsersForPinpoint = function (ticketFormData, lat, long, pincode, loggedinUser, token) {\r\n var url = ApiURL + '/api/CapacityPlanning/GetUsersForPinpoint?Latitude=' + lat + '&Longitude=' + long + \"&Pincode=\" + pincode;\r\n return $http.post(url, ticketFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n this.GetUsersOnFilterForTickets = function (ticketFormData, loggedinUser, token) {\r\n var url = ApiURL + '/api/CapacityPlanning/GetUsersOnFilterForTickets';\r\n return $http.post(url, ticketFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetPincodeBasedUserAnalysis = function (PincodeUserFilters, loggedinUser, token) {\r\n var url = ApiURL + '/api/CapacityPlanning/GetPincodeBasedUserAnalysis';\r\n return $http.post(url, PincodeUserFilters, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.Filter = function (loggedinUser, token, userFormData) {\r\n var url = FreelancerURL + \"/api/FreelancerUser/FreelancerByPaging?reqUserid=\" + loggedinUser;\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.getAllState = function (loggedinUser) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllStates';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n this.GetAllUsers = function (loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllUsers'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.GetAllUsers = function (loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllUsers'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.GetAllCapacityUpload = function (loggedinUser, token) {\r\n var url = ApiURL + \"/api/CapacityPlanning/GetAllCapacityUpload\";\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetAllAnalysisForUpload = function (loggedinUser, token, UploadId) {\r\n var url = ApiURL + '/api/CapacityPlanning/GetAllAnalysisForUpload?UploadId=' + UploadId;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.CreateNewAnalysis = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/CapacityPlanning/CreateNewAnalysis';\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetAnalysisData = function (loggedinUser, token, UploadId, AnalysisId, Orderby, OrderSequence, PageIndex, PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/CapacityPlanning/GetAnalysisDataOnPaging?UploadId=' + UploadId + '&AnalysisId=' + AnalysisId + '&Orderby=' + Orderby + '&OrderSequence=' + OrderSequence + '&Index=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetExceptionAnalysisData = function (loggedinUser, token, UploadId, AnalysisId, Orderby, OrderSequence, PageIndex, PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/CapacityPlanning/GetAnalysisExceptionDataOnPaging?UploadId=' + UploadId + '&AnalysisId=' + AnalysisId + '&Orderby=' + Orderby + '&OrderSequence=' + OrderSequence + '&Index=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAnalysisDashboard = function (loggedinUser, token, UploadId, AnalysisId) {\r\n var url = ApiURL + '/api/CapacityPlanning/GetAnalysisDashboard?UploadId=' + UploadId + '&AnalysisId=' + AnalysisId;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetAllPendingJobsCount = function (loggedinUser, token, UploadId) {\r\n var url = ApiURL + '/api/CapacityPlanning/GetAllPendingJobsCount?UploadId=' + UploadId;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetAnalysisFilters = function (loggedinUser, token, UploadId, AnalysisId) {\r\n var url = ApiURL + '/api/CapacityPlanning/GetAnalysisFilters?UploadId=' + UploadId + '&AnalysisId=' + AnalysisId;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.VerifyAddress = function (updatedAddress, loggedinUser, token) {\r\n var url = ApiURL + '/api/CapacityPlanning/VerifyAddress?UpdatedAddress=' + updatedAddress;\r\n return $http.post(url, '', {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.GetAddressByGoogle = function (findAddress, loggedinUser, token) {\r\n var url = ApiURL + '/api/CapacityPlanning/GetAddressByGoogle?UpdatedAddress=' + findAddress;\r\n return $http.post(url, '', {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.UpdateAddress = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/CapacityPlanning/UpdateAddress';\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.CreateDynamicAnalysis = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/CapacityPlanning/CreateDynamicAnalysis';\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.GetUserListData = function (UploadId, AnalysisId, AddressId, ListType, SortBy, OrderSequence, ulPageIndex, ulPageSize, loggedinUser, token) {\r\n url = ApiURL + '/api/CapacityPlanning/GetUserListForAddressOnPaging?UploadId=' + UploadId + '&AnalysisId=' + AnalysisId + '&AddressId=' + AddressId + '&ListType=' + ListType + '&Orderby=' + SortBy + '&OrderSequence=' + OrderSequence + '&Index=' + ulPageIndex + '&PageSize=' + ulPageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.callToTechnicianApi = function (loggedinUser, userid, token) {\r\n url = ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId=' + userid;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetUserData = function (loggedinUser, token, UploadId, AnalysisId, Orderby, OrderSequence, uwPageIndex, uwPageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/CapacityPlanning/GetUserAnalysisDataOnPaging?UploadId=' + UploadId + '&AnalysisId=' + AnalysisId + '&Orderby=' + Orderby + '&OrderSequence=' + OrderSequence + '&Index=' + uwPageIndex + '&PageSize=' + uwPageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAddressListForUserOnPaging = function (UploadId, AnalysisId, UserId, ListType, SortBy, OrderSequence, uwtPageIndex, uwtPageSize, loggedinUser, token) {\r\n url = ApiURL + '/api/CapacityPlanning/GetAddressListForUserOnPaging?UploadId=' + UploadId + '&AnalysisId=' + AnalysisId + '&UserId=' + UserId + '&ListType=' + ListType + '&Orderby=' + SortBy + '&OrderSequence=' + OrderSequence + '&Index=' + uwtPageIndex + '&PageSize=' + uwtPageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllCampaignName = function (loggedinUser, token) {\r\n url = ApiURL + '/api/Campaign/GetAllCampaignName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllConsumerCampaignName = function (loggedinUser, token) {\r\n url = ApiURL + '/api/Campaign/GetAllConsumerCampaignName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.RunCampaignOnConsumer = function (consumnerFormData, loggedinUser, token) {\r\n var url = ApiURL + \"/api/CapacityPlanning/RunCampaignOnConsumer\";\r\n return $http.post(url, consumnerFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetAllGenericCampaignName = function (loggedinUser, token) {\r\n url = ApiURL + '/api/Campaign/GetAllGenericCampaignName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.RunCampaignOnUsers = function (userFormData, loggedinUser, token) {\r\n var url = ApiURL + \"/api/Campaign/RunCampaignOnUsers\";\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.CreateNoticeOnUsers = function (userFormData, files, FileName, loggedinUser, token) {\r\n var formdata = new FormData();\r\n formdata.append(FileName, files);\r\n var FiltersData = JSON.stringify(userFormData);\r\n formdata.append(\"FiltersData\", FiltersData);\r\n var url = ApiURL + '/api/Campaign/CreateNoticeOnUsers';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.RunCampaignOnFilteredUsers = function (userFormData, campaignName, loggedinUser, token) {\r\n var url = ApiURL + \"/api/Campaign/RunCampaignOnFilteredUsers?CampaignName=\" + campaignName;\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.CreateJobBundleAndBroadcast = function (loggedinUser, broadcastData, token) {\r\n var url = ApiURL + '/api/CapacityPlanning/CreateJobBundleAndBroadcast';\r\n return $http.post(url, broadcastData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CreateAndBroadcastPendingJobs = function (UploadId, loggedinUser, token) {\r\n var url = ApiURL + \"/api/CapacityPlanning/CreateAndBroadcastPendingJobs?UploadId=\" + UploadId;\r\n return $http.post(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('PlanningResourceMapController', function (DashboardService, $stateParams, DTColumnBuilder, $filter, $q, $compile, DTOptionsBuilder, ManualAssignationJobService, RegisteredAllUserService, PlanningResourseMapService, $scope, TicketBasedPlanningService, $uibModal, $timeout, $http, NgMap,\r\n ReferService, $rootScope, $q, DTColumnDefBuilder, $uibModal, $localStorage, $state, FreelancerURL, ApiURL, $timeout, ngProgressFactory, $interval) {\r\n var vm = this;\r\n vm.updateType = $stateParams.type;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm.accountid= $localStorage.accountConfig.AccountId;\r\n var token = $localStorage.token;\r\n vm.startDate = new Date(); // Set initial start date\r\n vm.endDate = new Date(); // Set initial end date\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n\r\n vm.FilterSwitch = false;\r\n vm.client = 1;\r\n vm.workArea = '';\r\n var ProjectModal = {};\r\n var circleArray;\r\n vm.filteredProperties = {};\r\n var customerIndex = 0;\r\n vm.disableBroadcastButton = false;\r\n vm.projectName = '';\r\n vm.dtInstance = {};\r\n vm.showticketSuccess = false;\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.broadcastSentUser = true;\r\n $scope.toggleForBroadcast = function () {\r\n $scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n $scope.myvalue = true;\r\n };\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n $scope.toggleMenu = function () {\r\n if ($scope.manualAssignationWrapper === \"hide-nav\") {\r\n $scope.manualAssignationWrapper = \"show-nav\";\r\n }\r\n else {\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n }\r\n };\r\n $scope.hideAllUser = true;\r\n\r\n $scope.showAllUser = function () {\r\n $scope.hideAllUser = true;\r\n };\r\n $scope.hideAllUserbutton = function () {\r\n $scope.hideAllUser = false;\r\n };\r\n $scope.userClass_status = true;\r\n $scope.toggleBottom = false;\r\n $scope.open360View = function () {\r\n $scope.userClass_status = false;\r\n $scope.myvalue = true;\r\n }\r\n $scope.close360View = function () {\r\n $scope.userClass_status = true;\r\n $scope.myvalue = false;\r\n }\r\n $scope.closeSlideBottom = function () {\r\n $scope.toggleNav = false;\r\n }\r\n $scope.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.userClass_status = true;\r\n $scope.broadcastSentUser = true;\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n vm.closeFeedbackoption();\r\n }\r\n $scope.close360ViewBroadcaste = function () {\r\n $scope.myvalue = false;\r\n angular.element('#div1').removeClass(\"alpha\");\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userSingle = function () {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.userFilter = true;\r\n $scope.assignJobFilter = function () {\r\n $scope.userFilter = !$scope.userFilter;\r\n $scope.myvalue = true;\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n // $scope.toggleMenu();\r\n };\r\n $scope.minatureSlide = true;\r\n $scope.minatureSlideBtn = function () {\r\n $scope.minatureSlide = !$scope.minatureSlide;\r\n $scope.myvalue = true;\r\n };\r\n\r\n\r\n $scope.hideFilter = function () {\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.CurrencySymbol = $localStorage.accountConfig.CurrencySymbol;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n var token = $localStorage.token;\r\n vm.searchText = \"\";\r\n vm.searchTicket = \"\";\r\n vm.IsSearch = false;\r\n vm.DateField = \"CreatedOn\";\r\n var fnitemNames = '';\r\n var fnitemValues = '';\r\n var witemNames = \"\";\r\n var witemValues = \"\";\r\n var wsSDate = '';\r\n var wsEDate = '';\r\n var fPageIndex = 1;\r\n var fPageSize = 10;\r\n vm.SearchByUserType = '';\r\n vm.searchJobTypeText = \"\";\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.TotalLocation = 0;\r\n vm.TotalMatch = 0;\r\n vm.NotMatch = 0;\r\n vm.Atleast3Match = 0;\r\n vm.Atleast2Match = 0;\r\n vm.Atleast1Match = 0;\r\n vm.RunRateInDays = 0;\r\n vm.RangeInKm = 0;\r\n vm.JobSkill = \"\";\r\n vm.RegistrationStatus = \"\";\r\n vm.UserRegistrationStatus = \"\";\r\n vm.TechRole = \"\";\r\n vm.Asset = \"\";\r\n vm.Tools = \"\";\r\n vm.Certificate = \"\";\r\n vm.PermanentCity = \"\";\r\n vm.techPincode = \"\";\r\n vm.PermanentState = \"\";\r\n vm.TicketState = \"\";\r\n vm.SearchByAccountName = \"\";\r\n vm.PreferredForAccounts = \"\";\r\n vm.TicketCity = \"\";\r\n vm.ticketStatus = \"\";\r\n vm.TicketSkill = \"\";\r\n vm.Pincode = \"\";\r\n vm.UserDetailVerification = \"\";\r\n vm.showErrors = false;\r\n vm.showPassed = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.LocationAddressList = [];\r\n vm.TicketBasedPlanningList = {};\r\n vm.bulkuploadType = \"\";\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n vm.fileName = '';\r\n vm.fileDescription = '';\r\n vm.techpageindexCount = 0;\r\n var TPPageIndex = 1;\r\n var TPPageSize = 10;\r\n var cuPageIndex = 1;\r\n var cuPageSize = 10;\r\n vm.ticketPoolPageListCount = 10;\r\n vm.customerPageListCount = 10;\r\n vm.userPoolPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n vm.ticketPoolListLenth = 0;\r\n vm.customerListLenth = 0;\r\n vm.userPoolListLength = 0;\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.pageindexCount = 0;\r\n vm.TPpageindexCount = 0;\r\n vm.cuPageindexCount = 0;\r\n var UPPageIndex = 1;\r\n var UPPageSize = 10;\r\n vm.UPpageindexCount = 0;\r\n vm.DateField = \"StatusChangedOn\";\r\n vm.searchStatusText = \"All\";\r\n var uPageIndex = 1;\r\n var uwPageIndex = 1;\r\n var uPageSize = 10;\r\n var uwPageSize = 10;\r\n var ulPageIndex = 1;\r\n var ulPageSize = 10;\r\n vm.AlListCount = 10;\r\n var uwtPageIndex = 1;\r\n var uwtPageSize = 10;\r\n var uwtPageSize = 10;\r\n vm.UWListCount = 10;\r\n var exuPageIndex = 1;\r\n var exuPageSize = 10;\r\n vm.EAlListCount = 10;\r\n vm.UsersType = \"\";\r\n vm.OrderSequence = \"asc\";\r\n vm.Orderby = \"City\";\r\n vm.SortBy = \"Distance\";\r\n var uitemNames = \"\";\r\n var uitemValues = \"\";\r\n vm.searchUsersText = \"\";\r\n vm.jobsCount = '';\r\n vm.userPageListCount = 10;\r\n vm.UWticketsListCount = 10;\r\n vm.pageListCountsuwt = [10, 20, 30, 50];\r\n\r\n var startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: startDate, endDate: endDate };\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment(vm.Technicianstartingdate), moment(endDate)],\r\n };\r\n\r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.getAllJobForExceptionList();\r\n vm.GetAnalysisDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uPageIndex, uPageSize);\r\n\r\n };\r\n\r\n\r\n vm.City = '';\r\n vm.Pincode = '';\r\n vm.Experience = '';\r\n vm.Ratings = '';\r\n vm.Assets_Tools = '';\r\n vm.Jobscount = '';\r\n vm.FilterAdhar = '';\r\n vm.FilterPancard = '';\r\n $localStorage.filteraddskill = '';\r\n $localStorage.filterPermanentstate = '';\r\n vm.currentPage = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n vm.pageSize = 20;\r\n\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = 20; // this should match however many results your API puts on one page\r\n $scope.pagination = {\r\n current: 1\r\n };\r\n\r\n $scope.pagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n $scope.totalTableUsers = 0;\r\n $scope.usersTablePerPage = 20; // this should match however many results your API puts on one page\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n $scope.UserTablepagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n\r\n $scope.pageChanged = function (newPage) {\r\n vm.currentPage = newPage;\r\n vm.applyfilter(newPage);\r\n\r\n };\r\n $scope.isOpen = false;\r\n $scope.isOpen1 = false;\r\n $scope.isCollapsed = true;\r\n $scope.isCollapsed0 = true;\r\n $scope.isCollapsed1 = true;\r\n $scope.isCollapsed2 = true;\r\n $scope.isCollapsed3 = true;\r\n $scope.isCollapsed4 = true;\r\n $scope.isCollapsed5 = true;\r\n $scope.isCollapsed6 = true;\r\n $scope.isCollapsed7 = true;\r\n $scope.isCollapsed8 = true;\r\n $scope.isCollapsed9 = true;\r\n $scope.isCollapsed10 = true;\r\n $scope.isCollapsed11 = true;\r\n $scope.isCollapsed12 = true;\r\n $scope.isCollapsed13 = true;\r\n $scope.isCollapsed14 = true;\r\n $scope.isCollapsed15 = true;\r\n $scope.isCollapsed16 = true;\r\n $scope.isCollapsed17 = true;\r\n $scope.isCollapsed18 = true;\r\n $scope.isCollapsed19 = true;\r\n $scope.isCollapsed20 = true;\r\n $scope.isCollapsed21 = true;\r\n $scope.isCollapsed22 = true;\r\n $scope.isCollapsed23 = true;\r\n $scope.isCollapsed24 = true;\r\n $scope.isCollapsed25 = true;\r\n $scope.isCollapsed26 = true;\r\n $scope.isCollapsed27 = true;\r\n $scope.isCollapsed28 = true;\r\n $scope.isCollapsed29 = true;\r\n $scope.isCollapsed30 = true;\r\n $scope.isCollapsed31 = true;\r\n $scope.isCollapsed32 = true;\r\n $scope.isCollapsed33 = true;\r\n $scope.isCollapsed34 = true;\r\n $scope.isCollapsed35 = true;\r\n $scope.isCollapsed36 = true;\r\n $scope.isCollapsed37 = true;\r\n $scope.isCollapsed38 = true;\r\n $scope.isCollapsed39 = true;\r\n $scope.isCollapsed40 = true;\r\n $scope.isCollapsed41 = true;\r\n $scope.isCollapsed42 = true;\r\n $scope.showAnalysisReport = false;\r\n $scope.analysisFilterView = false;\r\n $scope.ticketFilterView = false;\r\n $scope.exceptionView = false;\r\n\r\n $scope.openAnalysisReport = function (analysisDetails) {\r\n $localStorage.UploadId = analysisDetails.UploadId;\r\n $scope.showAnalysisReport = !$scope.showAnalysisReport;\r\n angular.element('#filter-visible-area').removeClass(\"filter-slider-visible\");\r\n }\r\n $scope.backScreen = function () {\r\n $scope.showAnalysisReport = false;\r\n angular.element('#filter-visible-area').addClass(\"filter-slider-visible\");\r\n }\r\n\r\n $scope.analysisFilter = function () {\r\n $scope.analysisFilterView = true;\r\n $scope.showAnalysisReport = false;\r\n $scope.ticketFilterView = false;\r\n $scope.pincodeBasedFilterView = false;\r\n $scope.customerFilterView = false;\r\n $scope.searchDisabled = true;\r\n $scope.Ticket = false;\r\n $scope.Finance = false;\r\n $scope.Skills = false;\r\n angular.element('#filterList').addClass(\"removefilter-list\");\r\n angular.element('#filter-visible-area').addClass(\"filter-slider-visible\");\r\n }\r\n\r\n $scope.ticketFilter = function () {\r\n $scope.pincodeBasedFilterView = false;\r\n $scope.ticketFilterView = true;\r\n $scope.analysisFilterView = false;\r\n $scope.customerFilterView = false;\r\n $scope.showAnalysisReport = false;\r\n $scope.searchDisabled = false;\r\n $scope.Ticket = false;\r\n $scope.Finance = false;\r\n $scope.Skills = false;\r\n angular.element('#filterList').addClass(\"removefilter-list\");\r\n angular.element('#filter-visible-area').addClass(\"filter-slider-visible\");\r\n }\r\n\r\n $scope.pincodeBasedFilter = function () {\r\n $scope.pincodeBasedFilterView = true;\r\n $scope.ticketFilterView = false;\r\n $scope.analysisFilterView = false;\r\n $scope.customerFilterView = false;\r\n $scope.showAnalysisReport = false;\r\n $scope.searchDisabled = false;\r\n $scope.Ticket = false;\r\n $scope.Finance = false;\r\n $scope.Skills = false;\r\n angular.element('#filterList').addClass(\"removefilter-list\");\r\n angular.element('#filter-visible-area').addClass(\"filter-slider-visible\");\r\n }\r\n\r\n $scope.customerFilter = function () {\r\n $scope.pincodeBasedFilterView = false;\r\n $scope.ticketFilterView = false;\r\n $scope.customerFilterView = true;\r\n $scope.analysisFilterView = false;\r\n $scope.showAnalysisReport = false;\r\n $scope.searchDisabled = false;\r\n $scope.Ticket = false;\r\n $scope.Finance = false;\r\n $scope.Skills = false;\r\n angular.element('#filterList').addClass(\"removefilter-list\");\r\n angular.element('#filter-visible-area').addClass(\"filter-slider-visible\");\r\n }\r\n\r\n vm.techToRunCampaignOn = [];\r\n vm.implementSelectTech = function (itemList, scope) {\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n scope.selectRowFL = function (i) {\r\n scope.selectCountFL = 0;\r\n scope.showMinusFL = false;\r\n scope.selectAllFL = false;\r\n angular.forEach(vm.users, function (d) {\r\n if (d.checked) {\r\n vm.techToRunCampaignOn.push(d.UserId);\r\n scope.showMinusFL = true;\r\n scope.selectCountFL++;\r\n }\r\n });\r\n }\r\n\r\n $scope.selectedOption = ''; // Initialize selectedOption with an empty string\r\n\r\n // Function to determine which div to show based on the selected option\r\n // vm.showDiv = function() {\r\n // if ($scope.selectedOption === 'Location') {\r\n // return true;\r\n // }\r\n // return false;\r\n // };\r\n\r\n scope.applyAllFLSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllFL;\r\n scope.selectCountFL++;\r\n if (d.checked) {\r\n vm.techToRunCampaignOn.push(d.UserId);\r\n }\r\n });\r\n }\r\n }\r\n\r\n vm.ResetUserSelection = function (scope) {\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n }\r\n vm.implementSelectTech('users', this);\r\n\r\n $scope.removeAnalysisFilter = function () {\r\n $scope.searchDisabled = true;\r\n angular.element('#filterList').removeClass(\"removefilter-list\");\r\n angular.element('#filter-visible-area').addClass(\"filter-slider-visible\");\r\n }\r\n\r\n $scope.cars = [\r\n { id: 1, name: 'CCNA' },\r\n { id: 2, name: 'Medical' },\r\n { id: 3, name: 'LO' },\r\n { id: 4, name: 'Computer' },\r\n { id: 5, name: 'OHS' },\r\n { id: 6, name: 'L1' },\r\n { id: 7, name: 'First-Aid Certification' },\r\n { id: 8, name: 'PT Id' },\r\n { id: 9, name: 'FARM TOC LI' },\r\n { id: 10, name: 'FLTV Installation' },\r\n ];\r\n\r\n $scope.tools = [\r\n { id: 1, name: 'Console Cable' },\r\n { id: 2, name: 'Drill Machine' },\r\n { id: 3, name: 'LAN Cable' },\r\n { id: 4, name: 'USB Converter' },\r\n { id: 5, name: 'Dongle ' },\r\n { id: 6, name: 'Toolkit' },\r\n { id: 7, name: 'Hearing Protection EN 352 2' },\r\n { id: 8, name: 'Safety Shoes CE marked' },\r\n { id: 9, name: 'Full Body Harness EN 361 2002' },\r\n { id: 10, name: 'Laptop' },\r\n\r\n ];\r\n $scope.selectedTools = [];\r\n\r\n\r\n vm.JobSkill = \"\";\r\n vm.ActiveInMonth = \"\";\r\n vm.NoOfJobDone = \"\";\r\n vm.Asset = \"\";\r\n vm.Tools = \"\";\r\n vm.UserRole = \"\";\r\n vm.MatchCriteria = \"\";\r\n vm.TraningCertificate = \"\";\r\n vm.ToolList = \"\";\r\n vm.OneJobDone = false;\r\n vm.MatchingSkill = false;\r\n vm.Asset_Bike = false;\r\n vm.Asset_Mobile = false;\r\n vm.Asset_Laptop = false;\r\n vm.IsBasedOnPincode = true;\r\n vm.disableCreateButton = false;\r\n\r\n vm.cities = {\r\n chicago: { population: 2714856, position: [41.878113, -87.629798] },\r\n newyork: { population: 8405837, position: [40.714352, -74.005973] },\r\n losangeles: { population: 3857799, position: [34.052234, -118.243684] },\r\n vancouver: { population: 603502, position: [49.25, -123.1] },\r\n }\r\n vm.getRadius = function (num) {\r\n return Math.sqrt(num) * 100;\r\n }\r\n\r\n\r\n NgMap.getMap().then(function (map) {\r\n vm.map = map;\r\n });\r\n\r\n\r\n // Cluster Map section start by simran\r\n\r\n vm.showMapWithFreelancers = function () {\r\n const warehouse = {\r\n url: \"../../assets/images/patterns/WH-1.png\"\r\n };\r\n const freelancer = {\r\n url: \"../../assets/images/patterns/FL.png\"\r\n };\r\n const vendor = {\r\n url: \"../../assets/images/patterns/FV.png\"\r\n };\r\n const masterwarehouse = {\r\n url: \"../../assets/images/patterns/WH.png\"\r\n }\r\n vm.dynMarkers = [];\r\n NgMap.getMap().then(function (map) {\r\n for (var i = 0; i < vm.freelancerlist.length; i++) {\r\n vm.techdetails = vm.freelancerlist[i];\r\n if (vm.freelancerlist[i].hasWareHouse == true) {\r\n icons = warehouse\r\n }\r\n else if (vm.freelancerlist[i].MasterWarehouse == true) {\r\n icons = masterwarehouse\r\n }\r\n else if (vm.freelancerlist[i].Role == 'Field Engineer') {\r\n icons = freelancer\r\n }\r\n else if (vm.freelancerlist[i].Role == 'Vendor Manager') {\r\n icons = vendor\r\n }\r\n var latLng = new google.maps.LatLng(vm.freelancerlist[i].CurrentLatitude, vm.freelancerlist[i].CurrentLongitude);\r\n const marker = new google.maps.Marker({ position: latLng, icon: icons });\r\n const contentString = \"

\" + vm.techdetails.Role + \"

\" + vm.techdetails.FirstName + \"\" + vm.techdetails.UserId + \"Skill: \" + vm.techdetails.SkillSet + \"Location: \" + vm.techdetails.Locations + \"Pincode:\" + vm.techdetails.CurrentPinCode + \"
\";\r\n var infowindow = new google.maps.InfoWindow();\r\n marker.addListener(\"click\", function () {\r\n infowindow.setContent(contentString);\r\n infowindow.open(map, marker);\r\n });\r\n vm.dynMarkers.push(marker);\r\n }\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.addMarkers(vm.dynMarkers);\r\n }\r\n else {\r\n const clusterOptions = {\r\n imagePath: \"https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m\",\r\n gridSize: 60,\r\n zoomOnClick: true,\r\n maxZoom: null,\r\n };\r\n vm.markerClusterer = new MarkerClusterer(map, vm.dynMarkers, clusterOptions);\r\n }\r\n });\r\n }\r\n vm.getRadius = function (num) {\r\n return Math.sqrt(num) * 100;\r\n }\r\n\r\n vm.GetTalentPoolForMap = function () {\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.clearMarkers();\r\n vm.dynTicketMarkers = [];\r\n }\r\n PlanningResourseMapService.GetTalentPoolForMapView(vm.mapuserFormData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.freelancerlist = resp.data;\r\n vm.showMapWithFreelancers();\r\n }\r\n });\r\n }\r\n\r\n //--ENd Of Map\r\n\r\n // TicketPool code start here by simran \r\n\r\n var ticketstartDate = moment().format(\"YYYY-MM-DD\");\r\n var ticketendDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n vm.ticketPooldates = { ticketstartDate: moment(), ticketendDate: moment() };\r\n\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n\r\n vm.ticketdateRangeChange = function (ev, picker) {\r\n ticketstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n ticketendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n };\r\n\r\n vm.statusList = [\"New\", \"Hold\", \"Broadcasted\", \"Assigned\", \"Completed\", \"Approved\", \"Rejected\", \"Cancelled\", \"ScheduleException\", \"AddressException\", \"PriceException\"];\r\n\r\n $scope.totalTableTicketPool = 0;\r\n $scope.ticketPoolTablePerPage = vm.ticketPoolPageListCount;\r\n $scope.TicketPoolTablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeTicketPoolPageListCount = function () {\r\n $scope.ticketPoolTablePerPage = vm.ticketPoolPageListCount;\r\n TPPageSize = $scope.ticketPoolTablePerPage;\r\n $scope.TicketPoolTablepageChanged($scope.TicketPoolTablepagination.current);\r\n vm.selectAll = false;\r\n }\r\n\r\n PageIndex = $scope.TicketPoolTablepagination.current;\r\n $scope.TicketPoolTablepageChanged = function (newPage) {\r\n TPPageIndex = newPage;\r\n vm.addFilterforTickets();\r\n };\r\n\r\n vm.ticketPoolList = [];\r\n vm.addFilterforTickets = function () {\r\n deleteMarkers();\r\n var ticketFormData = {\r\n \"ticketFilters\": {\r\n \"AccountId\": vm.SearchByAccountName == \"\" ? \"\" : vm.SearchByAccountName.join(\"|\"),\r\n \"State\": vm.TicketState,\r\n \"City\": vm.TicketCity == \"\" ? \"\" : vm.TicketCity.join(\"|\"),\r\n \"Pincode\": \"\",\r\n \"Status\": vm.ticketStatus == \"\" ? \"\" : vm.ticketStatus.join(\"|\"),\r\n \"Skills\": vm.TicketSkill == \"\" ? \"\" : vm.TicketSkill.join(\"|\"),\r\n \"FromDate\": ticketstartDate,\r\n \"ToDate\": ticketendDate,\r\n \"PageIndex\": TPPageIndex,\r\n \"PageSize\": TPPageSize\r\n },\r\n \"ticketUserFilters\": {\r\n \"AnalysisBasedOn\": vm.IsBasedOnPincode == true ? \"Pincode\" : \"Distance\",\r\n \"RangeFromJob\": (vm.RangeInKm * 1000),\r\n \"Skills\": vm.JobSkill == \"\" ? \"\" : vm.JobSkill.join(\"|\"),\r\n \"OneJobDoneForSkills\": vm.OneJobDone,\r\n \"MatchingSkill\": vm.MatchingSkill,\r\n \"FavoriteForAccounts\": vm.PreferredForAccounts == \"\" ? \"\" : vm.PreferredForAccounts.join(\"|\"),\r\n \"UserStatus\": vm.UserRegistrationStatus,\r\n \"UserRole\": vm.TechRole == \"\" ? \"\" : vm.TechRole.join(\"|\")\r\n }\r\n }\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.clearMarkers();\r\n vm.dynMarkers = [];\r\n }\r\n TPPageIndex = TPPageIndex ? TPPageIndex : 1;\r\n PlanningResourseMapService.GetTicketsOnFilterWithPaging(ticketFormData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ticketPoolList = resp.data;\r\n // $scope.totalTableTicketPool = resp.data.length;\t\r\n if (vm.ticketPoolList.length < vm.ticketPoolPageListCount)\r\n vm.ticketPoolListLenth = $scope.totalTableTicketPool;\r\n else\r\n vm.ticketPoolListLenth = TPPageIndex * vm.ticketPoolPageListCount;\r\n if (TPPageIndex == 1)\r\n vm.TPpageindexCount = 1;\r\n else\r\n vm.TPpageindexCount = (((TPPageIndex - 1) * vm.ticketPoolPageListCount) + 1);\r\n }\r\n\r\n }, function () {\r\n });\r\n }\r\n\r\n\r\n\r\n //customer list\r\n $scope.totalCustomers = 0;\r\n $scope.customerTablePerPage = vm.customerPageListCount;\r\n $scope.customerTablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeCustomerTablePerPage = function () {\r\n $scope.customerTablePerPage = vm.customerPageListCount;\r\n cuPageSize = $scope.customerTablePerPage;\r\n $scope.CustomerTablepageChanged($scope.customerTablepagination.current);\r\n vm.selectAll = false;\r\n }\r\n\r\n PageIndex = $scope.customerTablepagination.current;\r\n $scope.CustomerTablepageChanged = function (newPage) {\r\n cuPageIndex = newPage;\r\n vm.addFilterforCustomer();\r\n };\r\n vm.customerList = [];\r\n vm.addFilterforCustomer = function () {\r\n deleteMarkers();\r\n var ticketFormData = {\r\n \"ticketFilters\": {\r\n \"AccountId\": vm.SearchByAccountName == \"\" ? \"\" : vm.SearchByAccountName.join(\"|\"),\r\n \"State\": vm.TicketState,\r\n \"City\": vm.TicketCity == \"\" ? \"\" : vm.TicketCity.join(\"|\"),\r\n \"Pincode\": \"\",\r\n \"Status\": vm.ticketStatus == \"\" ? \"\" : vm.ticketStatus.join(\"|\"),\r\n \"Skills\": vm.TicketSkill == \"\" ? \"\" : vm.TicketSkill.join(\"|\"),\r\n \"FromDate\": ticketstartDate,\r\n \"ToDate\": ticketendDate,\r\n \"PageIndex\": cuPageIndex,\r\n \"PageSize\": cuPageSize\r\n },\r\n \"ticketUserFilters\": {\r\n \"AnalysisBasedOn\": vm.IsBasedOnPincode == true ? \"Pincode\" : \"Distance\",\r\n \"RangeFromJob\": (vm.RangeInKm * 1000),\r\n \"Skills\": vm.JobSkill == \"\" ? \"\" : vm.JobSkill.join(\"|\"),\r\n \"OneJobDoneForSkills\": vm.OneJobDone,\r\n \"MatchingSkill\": vm.MatchingSkill,\r\n \"FavoriteForAccounts\": vm.PreferredForAccounts == \"\" ? \"\" : vm.PreferredForAccounts.join(\"|\"),\r\n \"UserStatus\": vm.UserRegistrationStatus,\r\n \"UserRole\": vm.TechRole == \"\" ? \"\" : vm.TechRole.join(\"|\")\r\n }\r\n }\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.clearMarkers();\r\n vm.dynMarkers = [];\r\n }\r\n cuPageIndex = cuPageIndex ? cuPageIndex : 1;\r\n PlanningResourseMapService.GetCustomersOnFilterWithPaging(ticketFormData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.customerPoolList = resp.data;\r\n $scope.totalCustomers = resp.data.length;\r\n if (vm.customerPoolList.length < vm.customerPageListCount)\r\n vm.customerListLenth = $scope.totalCustomers;\r\n else\r\n vm.customerListLenth = cuPageIndex * vm.customerPageListCount;\r\n if (cuPageIndex == 1)\r\n vm.cuPageindexCount = 1;\r\n else\r\n vm.cuPageindexCount = (((cuPageIndex - 1) * vm.customerPageListCount) + 1);\r\n }\r\n\r\n }, function () {\r\n });\r\n }\r\n\r\n\r\n // $scope.totalTableUserPool = 0;\r\n // $scope.userPoolTablePerPage = vm.userPoolPageListCount ; \r\n // $scope.UserPoolTablepagination = {\r\n // current: 1\r\n // };\r\n\r\n // vm.changeUserPoolPageListCount = function() { \r\n // $scope.userPoolTablePerPage = vm.userPoolPageListCount;\r\n // UPPageSize = $scope.userPoolTablePerPage;\r\n // $scope.UserPoolTablepageChanged($scope.UserPoolTablepagination.current);\r\n // vm.selectAll = false;\r\n // }\r\n\r\n // PageIndex=$scope.UserPoolTablepagination.current;\r\n // $scope.UserPoolTablepageChanged = function(newPage) { \r\n // UPPageIndex = newPage; \r\n // vm.addFilterforPincodeAnalysis(); \r\n // };\r\n\r\n userPoolList = [];\r\n vm.addFilterforPincodeAnalysis = function () {\r\n deleteMarkers();\r\n var PincodeUserFilters = {\r\n \"AnalysisBasedOn\": \"Pincode\",\r\n \"RangeFromJob\": 9000,\r\n \"UserState\": vm.PermanentState,\r\n \"UserCity\": vm.PermanentCity,\r\n \"Locations\": vm.techPincode,\r\n \"Skills\": vm.JobSkill == \"\" ? \"\" : vm.JobSkill.join(\"|\"),\r\n \"OneJobDoneForSkills\": vm.OneJobDone,\r\n \"MatchingSkill\": false,\r\n \"FavoriteForAccounts\": vm.PreferredForAccounts == \"\" ? \"\" : vm.PreferredForAccounts.join(\"|\"),\r\n \"UserStatus\": vm.UserRegistrationStatus,\r\n \"UserRole\": vm.TechRole == \"\" ? \"\" : vm.TechRole.join(\"|\"),\r\n \"UploadId\": \"\",\r\n \"AnalysisId\": \"\",\r\n \"AnalysisName\": \"\",\r\n \"AnalysisDescription\": \"\",\r\n \"ActiveInMonth\": \"\",\r\n \"NoOfJobDone\": \"\",\r\n \"IsBikeAvailable\": false,\r\n \"IsMobileAvailable\": false,\r\n \"IsLaptopAvailable\": false,\r\n \"UserCertificates\": \"\",\r\n \"UserTools\": \"\"\r\n }\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.clearMarkers();\r\n vm.dynMarkers = [];\r\n }\r\n // UPPageIndex = UPPageIndex?UPPageIndex:1; \r\n PlanningResourseMapService.GetPincodeBasedUserAnalysis(PincodeUserFilters, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.userPoolList = resp.data;\r\n vm.showSuccess(\"Success\", resp.data);\r\n // if(vm.userPoolList.length < vm.userPoolPageListCount)\r\n // vm.userPoolListLength = $scope.totalTableUserPool;\r\n // else\r\n // vm.userPoolListLength = UPPageIndex * vm.userPoolPageListCount;\r\n // if(UPPageIndex==1)\r\n // vm.UPpageindexCount = 1;\r\n // else\r\n // vm.UPpageindexCount = (((UPPageIndex-1) * vm.userPoolPageListCount) + 1);\r\n }\r\n\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.userFilterEnable = false;\r\n\r\n vm.showUserFilter = function () {\r\n vm.IsBasedOnPincode = true;\r\n vm.chkselect = true;\r\n vm.RangeInKm = 0;\r\n vm.JobSkill = \"\";\r\n vm.OneJobDone = false;\r\n vm.MatchingSkill = false;\r\n vm.UserRegistrationStatus = \"\";\r\n vm.TechRole = \"\";\r\n }\r\n\r\n $scope.exceptionFilter = function () {\r\n $scope.pincodeBasedFilterView = false;\r\n $scope.ticketFilterView = false;\r\n $scope.exceptionView = true;\r\n $scope.analysisFilterView = false;\r\n $scope.showAnalysisReport = false;\r\n $scope.searchDisabled = true;\r\n $scope.Ticket = false;\r\n $scope.Finance = false;\r\n $scope.Skills = false;\r\n angular.element('#filterList').addClass(\"removefilter-list\");\r\n angular.element('#filter-visible-area').addClass(\"filter-slider-visible\");\r\n vm.ResetFilter();\r\n }\r\n\r\n vm.addFilterforExceptionTickets = function () {\r\n deleteMarkers();\r\n var ticketFormData = {\r\n \"ticketFilters\": {\r\n \"AccountId\": vm.SearchByAccountName == \"\" ? \"\" : vm.SearchByAccountName.join(\"|\"),\r\n \"State\": vm.TicketState,\r\n \"City\": vm.TicketCity == \"\" ? \"\" : vm.TicketCity.join(\"|\"),\r\n \"Pincode\": \"\",\r\n \"Status\": \"Cancelled|ScheduleException\",\r\n \"Skills\": vm.TicketSkill == \"\" ? \"\" : vm.TicketSkill.join(\"|\"),\r\n \"FromDate\": ticketstartDate,\r\n \"ToDate\": ticketendDate,\r\n \"PageIndex\": 0,\r\n \"PageSize\": 0\r\n },\r\n \"ticketUserFilters\": {\r\n \"AnalysisBasedOn\": vm.IsBasedOnPincode == true ? \"Pincode\" : \"Distance\",\r\n \"RangeFromJob\": (vm.RangeInKm * 1000),\r\n \"Skills\": vm.JobSkill == \"\" ? \"\" : vm.JobSkill.join(\"|\"),\r\n \"OneJobDoneForSkills\": vm.OneJobDone,\r\n \"MatchingSkill\": vm.MatchingSkill,\r\n \"FavoriteForAccounts\": vm.PreferredForAccounts == \"\" ? \"\" : vm.PreferredForAccounts.join(\"|\"),\r\n \"UserStatus\": vm.UserRegistrationStatus,\r\n \"UserRole\": vm.TechRole == \"\" ? \"\" : vm.TechRole.join(\"|\")\r\n }\r\n }\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.clearMarkers();\r\n vm.dynMarkers = [];\r\n }\r\n vm.UserIdsList = [];\r\n TPPageIndex = TPPageIndex ? TPPageIndex : 1;\r\n PlanningResourseMapService.GetUsersOnFilterForTickets(ticketFormData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.exceptionPoolList = resp.data;\r\n vm.exceptionPoolUserList = resp.data.UserLiteResponseModelList;\r\n for (i = 0; i <= vm.exceptionPoolUserList.length; i++) {\r\n vm.UserIdsList.push(vm.exceptionPoolUserList[i].UserId);\r\n }\r\n preprocessData(vm.exceptionPoolUserList);\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.addFilterforTicketMap = function () {\r\n deleteMarkers();\r\n vm.ticketFormData = {\r\n \"ticketFilters\": {\r\n \"AccountId\": vm.SearchByAccountName == \"\" ? \"\" : vm.SearchByAccountName.join(\"|\"),\r\n \"State\": vm.TicketState,\r\n \"City\": vm.TicketCity == \"\" ? \"\" : vm.TicketCity.join(\"|\"),\r\n \"Pincode\": \"\",\r\n \"Status\": vm.ticketStatus == \"\" ? \"\" : vm.ticketStatus.join(\"|\"),\r\n \"Skills\": vm.TicketSkill == \"\" ? \"\" : vm.TicketSkill.join(\"|\"),\r\n \"FromDate\": ticketstartDate,\r\n \"ToDate\": ticketendDate,\r\n \"PageIndex\": 0,\r\n \"PageSize\": 0\r\n },\r\n \"ticketUserFilters\": {\r\n \"AnalysisBasedOn\": vm.IsBasedOnPincode == true ? \"Pincode\" : \"Distance\",\r\n \"RangeFromJob\": (vm.RangeInKm * 1000),\r\n \"Skills\": vm.JobSkill == \"\" ? \"\" : vm.JobSkill.join(\"|\"),\r\n \"OneJobDoneForSkills\": vm.OneJobDone,\r\n \"MatchingSkill\": vm.MatchingSkill,\r\n \"FavoriteForAccounts\": vm.PreferredForAccounts == \"\" ? \"\" : vm.PreferredForAccounts.join(\"|\"),\r\n \"UserStatus\": vm.UserRegistrationStatus,\r\n \"UserRole\": vm.TechRole == \"\" ? \"\" : vm.TechRole.join(\"|\")\r\n }\r\n }\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.clearMarkers();\r\n vm.dynMarkers = [];\r\n }\r\n PlanningResourseMapService.GetTicketsOnFilterWithoutPaging(vm.ticketFormData, loggedinUser, token).then(function (resp) {\r\n vm.ticketPoolList = resp.data;\r\n $scope.totalTableTicketPool = resp.data.length;\r\n vm.showMapWithTicketPool();\r\n $scope.addRemoveRedClass();\r\n })\r\n }\r\n\r\n vm.addFilterforCustomerMap = function () {\r\n deleteMarkers();\r\n vm.ticketFormData = {\r\n \"ticketFilters\": {\r\n \"AccountId\": vm.SearchByAccountName == \"\" ? \"\" : vm.SearchByAccountName.join(\"|\"),\r\n \"State\": vm.TicketState,\r\n \"City\": vm.TicketCity == \"\" ? \"\" : vm.TicketCity.join(\"|\"),\r\n \"Pincode\": \"\",\r\n \"Status\": vm.ticketStatus == \"\" ? \"\" : vm.ticketStatus.join(\"|\"),\r\n \"Skills\": vm.TicketSkill == \"\" ? \"\" : vm.TicketSkill.join(\"|\"),\r\n \"FromDate\": ticketstartDate,\r\n \"ToDate\": ticketendDate,\r\n \"PageIndex\": 0,\r\n \"PageSize\": 0\r\n },\r\n \"ticketUserFilters\": {\r\n \"AnalysisBasedOn\": vm.IsBasedOnPincode == true ? \"Pincode\" : \"Distance\",\r\n \"RangeFromJob\": (vm.RangeInKm * 1000),\r\n \"Skills\": vm.JobSkill == \"\" ? \"\" : vm.JobSkill.join(\"|\"),\r\n \"OneJobDoneForSkills\": vm.OneJobDone,\r\n \"MatchingSkill\": vm.MatchingSkill,\r\n \"FavoriteForAccounts\": vm.PreferredForAccounts == \"\" ? \"\" : vm.PreferredForAccounts.join(\"|\"),\r\n \"UserStatus\": vm.UserRegistrationStatus,\r\n \"UserRole\": vm.TechRole == \"\" ? \"\" : vm.TechRole.join(\"|\")\r\n }\r\n }\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.clearMarkers();\r\n vm.dynMarkers = [];\r\n }\r\n PlanningResourseMapService.GetCustomersOnFilterWithoutPaging(vm.ticketFormData, loggedinUser, token).then(function (resp) {\r\n vm.ticketPoolList = resp.data;\r\n $scope.totalTableTicketPool = resp.data.length;\r\n vm.showMapWithTicketPool();\r\n $scope.addRemoveRedClass();\r\n })\r\n }\r\n var markers = [];\r\n vm.showMapWithTechBasedOnTicket = function () {\r\n const freelancer = {\r\n url: \"../../assets/images/patterns/FL.png\"\r\n };\r\n const vendor = {\r\n url: \"../../assets/images/patterns/FV.png\"\r\n };\r\n\r\n NgMap.getMap().then(function (map) {\r\n\r\n $scope.infoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n\r\n for (var i = 0; i < vm.userslistbyTkt.length; i++) {\r\n var data = vm.userslistbyTkt[i]\r\n if (data.UserRole == 'Field Engineer') {\r\n icons = freelancer\r\n }\r\n else if (data.UserRole == 'Vendor Manager') {\r\n icons = vendor\r\n }\r\n var myLatlng = new google.maps.LatLng(data.FixedLatitude, data.FixedLongitude);\r\n var marker = new google.maps.Marker({\r\n position: myLatlng,\r\n map: map,\r\n icon: icons\r\n });\r\n\r\n markers.push(marker);\r\n (function (marker, data) {\r\n google.maps.event.addListener(marker, \"click\", function (e) {\r\n $scope.infoWindow.setContent(\"

\" + data.UserRole + \"

\" + data.UserName + \"\" + data.UserId + \"SkillSet: \" + data.SkillSet + \"Location: \" + data.UserWorkLocations + \"TotalJobDone:\" + data.TotalJobDone + \"TotalJobRejected:\" + data.TotalJobRejeceted + \"Rating By MMF:\" + data.RatingByMMF.toFixed(1) + \"Distance(Km):\" + data.Distance + \"
\");\r\n $scope.infoWindow.open(map, marker);\r\n });\r\n })(marker, data);\r\n $scope.Latlngbounds.extend(marker.position);\r\n }\r\n\r\n });\r\n }\r\n // Removes the markers from the map, but keeps them in the array.\r\n function clearMarkers() {\r\n for (var i = 0; i < markers.length; i++) {\r\n markers[i].setMap(null); //markerToBeRemoved.setMap(null);\r\n }\r\n }\r\n\r\n // Deletes all markers in the array by removing references to them.\r\n function deleteMarkers() {\r\n clearMarkers();\r\n markers = [];\r\n }\r\n\r\n vm.GetUsersForPinpoint = function (lat, long, pincode) {\r\n deleteMarkers();\r\n vm.usersPinFormData = vm.ticketFormData.ticketUserFilters;\r\n vm.usersPinFormData.UploadId = \"\";\r\n vm.usersPinFormData.AnalysisId = \"\";\r\n vm.usersPinFormData.AnalysisName = \"\";\r\n vm.usersPinFormData.AnalysisDescription = \"\";\r\n vm.usersPinFormData.ActiveInMonth = \"\";\r\n vm.usersPinFormData.NoOfJobDone = \"\";\r\n vm.usersPinFormData.IsBikeAvailable = false;\r\n vm.usersPinFormData.IsMobileAvailable = false;\r\n vm.usersPinFormData.IsLaptopAvailable = false;\r\n vm.usersPinFormData.UserCertificates = \"\";\r\n vm.usersPinFormData.UserTools = \"\";\r\n PlanningResourseMapService.GetUsersForPinpoint(vm.usersPinFormData, lat, long, pincode, loggedinUser, token).then(function (resp) {\r\n vm.userslistbyTkt = resp.data;\r\n $timeout(function () {\r\n vm.showMapWithTechBasedOnTicket();\r\n }, 2000);\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n\r\n // vm.exportData = function () {\r\n // var blob = new Blob([document.getElementById('tab-resp').innerHTML], {\r\n // type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n // });\r\n // saveAs(blob, \"Report.xls\");\r\n // };\r\n\r\n // vm.searchTable = function () {\r\n // vm.dtInstance.DataTable.search(vm.searchText);\r\n // vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n // };\r\n\r\n // vm.dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n // var defer = $q.defer();\r\n\r\n // vm.ticketFormData = {\r\n // \"ticketFilters\": {\r\n // \"AccountId\": \"\",\r\n // \"State\": vm.TicketState,\r\n // \"City\": vm.TicketCity==\"\" ? \"\": vm.TicketCity.join(\"|\"),\r\n // \"Pincode\": \"\",\r\n // \"Status\": vm.ticketStatus == \"\" ? \"\": vm.ticketStatus.join(\"|\"),\r\n // \"Skills\": vm.TicketSkill == \"\" ? \"\": vm.TicketSkill.join(\"|\"),\r\n // \"FromDate\": ticketstartDate,\r\n // \"ToDate\": ticketendDate,\r\n // \"PageIndex\": 0,\r\n // \"PageSize\": 0\r\n // },\r\n // \"ticketUserFilters\": {\r\n // \"AnalysisBasedOn\": vm.IsBasedOnPincode == true ? \"Pincode\" : \"Distance\",\r\n // \"RangeFromJob\": (vm.RangeInKm * 1000),\r\n // \"Skills\": vm.JobSkill==\"\" ? \"\": vm.JobSkill.join(\"|\"),\r\n // \"OneJobDoneForSkills\": vm.OneJobDone,\r\n // \"MatchingSkill\" : vm.MatchingSkill,\r\n // \"UserStatus\": vm.RegistrationStatus,\r\n // \"UserRole\": vm.UserRole==\"\" ? \"\": vm.UserRole.join(\"|\")\r\n // }\r\n // }\r\n // if(vm.markerClusterer){\r\n // vm.markerClusterer.clearMarkers();\r\n // vm.dynMarkers = [];\r\n // }\r\n // PlanningResourseMapService.GetTicketsOnFilter(vm.ticketFormData,loggedinUser,token).then(function(resp){\r\n // vm.ticketPoolList = resp.data;\r\n // vm.showMapWithTicketPool();\r\n // defer.resolve(vm.ticketPoolList);\r\n // })\r\n // return defer.promise;\r\n\r\n // }).withDOM('<\"html5buttons\"B>lTfgitp').withPaginationType('full_numbers').withOption('order', [0,'desc']).withOption('createdRow', createdRow);\r\n\r\n // function createdRow(row, data, dataIndex) {\r\n // $compile(angular.element(row).contents())($scope);\r\n // }\r\n\r\n // vm.dtColumns = [\r\n // DTColumnBuilder.newColumn(null).withTitle('Ticket Id').renderWith(function(data, type, full, meta){\r\n // return ' ' + data.TicketId + '';\r\n // }),\r\n // DTColumnBuilder.newColumn('Status').withTitle('Status').notSortable(),\r\n // DTColumnBuilder.newColumn('AccountName').withTitle('AccountName').notSortable(),\r\n // DTColumnBuilder.newColumn('Skill').withTitle('Skill').notSortable(),\r\n // DTColumnBuilder.newColumn('Address').withTitle('Address').notSortable(),\r\n // DTColumnBuilder.newColumn('City').withTitle('City').notSortable(),\r\n // DTColumnBuilder.newColumn('State').withTitle('State').notSortable(),\r\n // DTColumnBuilder.newColumn('Pincode').withTitle('Pincode').notSortable(),\r\n // DTColumnBuilder.newColumn('Latitude').withTitle('Latitude').notSortable(),\r\n // DTColumnBuilder.newColumn('Longitude').withTitle('Longitude').notSortable(),\r\n\r\n\r\n // ];\r\n\r\n\r\n\r\n\r\n // ticketpool end\r\n\r\n\r\n // TicketPool Map section start by simran\r\n\r\n\r\n\r\n vm.showMapWithTicketPool = function () {\r\n const ticket = {\r\n url: \"../../assets/images/patterns/TC-1.png\"\r\n };\r\n const customer = {\r\n url: \"../../assets/images/patterns/customer-icon.png\"\r\n };\r\n vm.dynTicketMarkers = [];\r\n NgMap.getMap().then(function (map) {\r\n if ($scope.customerFilterView == false) {\r\n for (var i = 0; i < vm.ticketPoolList.length; i++) {\r\n vm.ticketdetails = vm.ticketPoolList[i];\r\n if (vm.ticketdetails) {\r\n icons = ticket\r\n }\r\n var latLng = new google.maps.LatLng(vm.ticketPoolList[i].Latitude, vm.ticketPoolList[i].Longitude);\r\n const marker = new google.maps.Marker({ position: latLng, icon: icons });\r\n const contentString = \"

\" + vm.ticketdetails.TicketId + \"

\" + vm.ticketdetails.AccountName + \"Skill:\" + vm.ticketdetails.Skill + \"Pincode:\" + vm.ticketdetails.Pincode + \"
\";\r\n const ticketlat = vm.ticketdetails.Latitude;\r\n const ticketlong = vm.ticketdetails.Longitude;\r\n const Pincode = vm.ticketdetails.Pincode;\r\n var infowindow = new google.maps.InfoWindow();\r\n marker.addListener(\"click\", function () {\r\n vm.GetUsersForPinpoint(ticketlat, ticketlong, Pincode);\r\n infowindow.setContent(contentString);\r\n infowindow.open(map, marker);\r\n });\r\n vm.dynTicketMarkers.push(marker);\r\n }\r\n }\r\n else if ($scope.customerFilterView == true) {\r\n for (var i = 0; i < vm.customerPoolList.length; i++) {\r\n vm.customerdetails = vm.customerPoolList[i];\r\n if (vm.customerdetails) {\r\n icons = customer\r\n }\r\n var latLng = new google.maps.LatLng(vm.customerPoolList[i].Latitude, vm.customerPoolList[i].Longitude);\r\n const marker = new google.maps.Marker({ position: latLng, icon: icons });\r\n const contentString = \"

\" + vm.customerdetails.CustomerName + \"

\" + vm.customerdetails.CustomerAddress + \"Service Type:\" + vm.customerdetails.ServiceType + \"Pincode:\" + vm.customerdetails.CustomerPincode + \"
\";\r\n var infowindow = new google.maps.InfoWindow();\r\n marker.addListener(\"click\", function () {\r\n infowindow.setContent(contentString);\r\n infowindow.open(map, marker);\r\n });\r\n vm.dynTicketMarkers.push(marker);\r\n }\r\n }\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.addMarkers(vm.dynTicketMarkers);\r\n }\r\n else {\r\n const clusterOptions = {\r\n imagePath: \"https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m\",\r\n gridSize: 60,\r\n zoomOnClick: true,\r\n maxZoom: null,\r\n };\r\n vm.markerClusterer = new MarkerClusterer(map, vm.dynTicketMarkers, clusterOptions);\r\n }\r\n });\r\n }\r\n\r\n\r\n $scope.isActive = false;\r\n $scope.isActive1 = true;\r\n $scope.HideText = function () {\r\n $scope.isActive = true;\r\n $scope.isActive1 = false;\r\n }\r\n $scope.ShowText = function () {\r\n $scope.isActive = false;\r\n $scope.isActive1 = true;\r\n };\r\n\r\n\r\n $scope.isClick = false;\r\n $scope.isClick1 = false;\r\n $scope.isClick2 = false;\r\n $scope.isClick3 = false;\r\n $scope.activeButton = function () {\r\n $scope.isClick = !$scope.isClick;\r\n }\r\n $scope.activeButton1 = function () {\r\n $scope.isClick1 = !$scope.isClick1;\r\n }\r\n $scope.activeButton2 = function () {\r\n $scope.isClick2 = !$scope.isClick2;\r\n }\r\n $scope.activeButton3 = function () {\r\n $scope.isClick3 = !$scope.isClick3;\r\n }\r\n\r\n vm.getFLprofile = function () {\r\n\r\n document.getElementById(\"freelancerProfile\").style.display = \"block \";\r\n }\r\n vm.HideFLprofile = function () {\r\n\r\n document.getElementById(\"freelancerProfile\").style.display = \"none\";\r\n }\r\n\r\n\r\n\r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.getAllJobForExceptionList();\r\n };\r\n\r\n\r\n $scope.class1 = false;\r\n $scope.addRemoveRedClass = function (UploadId) {\r\n $localStorage.UploadId = UploadId;\r\n if ($scope.class1) {\r\n $scope.class1 = false;\r\n } else {\r\n $scope.class1 = true;\r\n }\r\n }\r\n\r\n $scope.addFilterforAnalysis = function () {\r\n vm.ResetFilter();\r\n if ($scope.class1) {\r\n $scope.class1 = false;\r\n } else {\r\n $scope.class1 = true;\r\n }\r\n }\r\n\r\n\r\n $scope.slider = {\r\n value: 50,\r\n options: {\r\n floor: 0,\r\n ceil: 100,\r\n step: 1,\r\n minLimit: 10,\r\n maxLimit: 90\r\n }\r\n };\r\n\r\n $scope.myTrigger = \"outsideClick\";\r\n\r\n $scope.openModal = function () {\r\n $uibModal.open({\r\n templateUrl: 'customModal.html',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n\r\n function getAllStates() {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n\r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n\r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n vm.analysisModel = function () {\r\n vm.analysisDetails = vm.analysisDetails;\r\n vm.analysisModelOpen = $uibModal.open({\r\n templateUrl: 'analysisModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.campaignModel = function () {\r\n vm.analysisDetails = vm.analysisDetails;\r\n vm.campaignRunModelOpen = $uibModal.open({\r\n templateUrl: 'campaignRunModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseCampaignModel = function () {\r\n vm.campaignRunModelOpen.close();\r\n }\r\n\r\n vm.openConsumerCampaignModel = function () {\r\n vm.analysisDetails = vm.analysisDetails;\r\n vm.consumenCampaignModelOpen = $uibModal.open({\r\n templateUrl: 'consumerCampaignRunModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseConsumerCampaignModel = function () {\r\n vm.ConsumerCampaignName = \"\";\r\n vm.consumenCampaignModelOpen.close();\r\n }\r\n\r\n vm.RunCampaignOnConsumer = function () {\r\n vm.consumner_campaign_form.submitted = true;\r\n vm.ticketFormData.CampaignName = vm.ConsumerCampaignName;\r\n if (vm.consumner_campaign_form.$valid) {\r\n PlanningResourseMapService.RunCampaignOnConsumer(vm.ticketFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseConsumerCampaignModel();\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.CreateAndBroadcastPendingJobs = function () {\r\n vm.DisableBroadcastButtons(true);\r\n PlanningResourseMapService.CreateAndBroadcastPendingJobs($localStorage.UploadId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.broadcastCloseModal();\r\n vm.GetUserDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uwPageIndex, uwPageSize);\r\n }\r\n else{\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n\r\n vm.noticeModel = function () {\r\n // vm.analysisDetails = vm.analysisDetails;\r\n vm.noticeBroadcastModelOpen = $uibModal.open({\r\n templateUrl: 'noticeBroadcastModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseNoticeModel = function () {\r\n vm.noticename = \"\";\r\n vm.landingPage = \"\";\r\n vm.fileLink = \"\";\r\n vm.noticeType = \"\";\r\n vm.noticeDescription = \"\";\r\n vm.NoticeRole = [];\r\n vm.NoticeBrand = \"\";\r\n vm.FilesDoc = [];\r\n vm.FileName = \"\";\r\n vm.startDatenew = new Date();\r\n vm.endDatenew = pcdt;\r\n vm.showErrorMessage = false;\r\n vm.DisableCreateButton(false);\r\n vm.noticeBroadcastModelOpen.close();\r\n }\r\n\r\n\r\n vm.dynamicCampaignModel = function () {\r\n vm.analysisDetails = vm.analysisDetails;\r\n vm.dynamicCampaignModelOpen = $uibModal.open({\r\n templateUrl: 'campaignDynamicModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n vm.CloseDynamicCampaignModel = function () {\r\n vm.dynamicCampaignModelOpen.close();\r\n }\r\n\r\n vm.CloseAnalysisModel = function () {\r\n vm.analysisModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.AnalysisName = \"\";\r\n if (vm.confirmstatus != 'update') {\r\n vm.AnalysisDescription = \"\";\r\n vm.analysisDetails.AnalysisDescription = \"\";\r\n }\r\n $scope.showAnalysisReport = false;\r\n $timeout(function () {\r\n vm.GetAllCapacityUpload();\r\n }, 2000);\r\n }\r\n\r\n vm.ConfirmAnalysis = function (status, analysisData) {\r\n vm.confirmstatus = status;\r\n vm.analysisDetails = analysisData;\r\n vm.UploadId = vm.analysisDetails.UploadId;\r\n }\r\n $scope.openSaveReport = function () {\r\n $uibModal.open({\r\n templateUrl: 'saveReport.html',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.Toast = false;\r\n $scope.ShowToast = function () {\r\n $scope.Toast = true;\r\n $timeout(function () {\r\n $scope.Toast = false;\r\n }, 3000);\r\n }\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n $scope.openEmail = function () {\r\n $uibModal.open({\r\n templateUrl: 'emailReport.html',\r\n size: 'lg',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n $scope.openCapacity = function () {\r\n $uibModal.open({\r\n templateUrl: 'CapacityModal.html',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n $scope.verify = false;\r\n\r\n vm.EditAddressModel = function (ueradata) {\r\n vm.userDetails = ueradata;\r\n addressEditModel = $uibModal.open({\r\n templateUrl: 'editLocationTable.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseEditAddressModel = function () {\r\n addressEditModel.close();\r\n vm.addressData.partial_match = false;\r\n vm.addressData.formatted_address = \"\";\r\n }\r\n\r\n vm.pullBackTicketFromAssign = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n vm.AuditTicketId = vm.CurrentJob.TicketId;\r\n vm.TicketBreachValue = vm.CurrentJob.TicketBreachValue;\r\n if (vm.CurrentJob.TicketStatus == \"Assigned\" && vm.CurrentJob.SecondryStatus != \"InTransit\") {\r\n ManualAssignationJobService.GetPullBacknReasons(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.pullBackReasonsList = resp.data;\r\n pullBackReasonsModalInstance = $uibModal.open({\r\n templateUrl: 'pullBack_reasons_model.html',\r\n scope: $scope\r\n });\r\n }\r\n }, function () {\r\n });\r\n }\r\n }\r\n\r\n vm.GetUserFeedbackOption = function (toggleNav, userid) {\r\n $scope.toggleNav = !toggleNav;\r\n $scope.activeRow = userid;\r\n vm.userid = userid;\r\n ManualAssignationJobService.GetUserFeedbackOption(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.userfeedbackList = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.closeFeedbackoption = function () {\r\n $scope.toggleNav = true;\r\n vm.Comments = \"\";\r\n vm.MasterReason = \"\";\r\n\r\n }\r\n\r\n vm.GetFeedbackByUserId = function (userid) {\r\n ManualAssignationJobService.GetFeedbackByUserId(loggedinUser, token, userid).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.commentList = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.UserDataUpdateRequest = function (toggleNav, userid) {\r\n $scope.toggleNav = !toggleNav;\r\n vm.feedbackForm.submitted = true;\r\n if (vm.feedbackForm.$valid) {\r\n var data = {\r\n \"MasterReason\": vm.MasterReason,\r\n \"Comments\": vm.Comments,\r\n \"RequestForUserId\": userid,\r\n \"TicketId\": $localStorage.UploadId\r\n }\r\n ManualAssignationJobService.UserDataUpdateRequest(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.Comments = \"\";\r\n vm.MasterReason = \"\";\r\n }\r\n }, function () {\r\n });\r\n }\r\n }\r\n\r\n vm.callToTechnician = function (userid) {\r\n PlanningResourseMapService.callToTechnicianApi(loggedinUser, userid, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\");\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", resp.data.Message);\r\n }\r\n });\r\n\r\n }\r\n\r\n vm.VerifyAddress = function (UpdatedAddress, verify) {\r\n if (UpdatedAddress) {\r\n PlanningResourseMapService.VerifyAddress(UpdatedAddress, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data[0] == null) {\r\n vm.showFailure(\"Failed\", \"Address Not Found By Google\");\r\n }\r\n else {\r\n vm.addressData = resp.data[0];\r\n $scope.verify = !verify;\r\n vm.showSuccess(\"Success\", \"Address Verified by Google\");\r\n }\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n else {\r\n }\r\n }\r\n\r\n\r\n vm.PlotAddress = function (findAddress) {\r\n deleteMarkers();\r\n vm.freelancerlist = [];\r\n vm.userslistbyTkt = [];\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.clearMarkers();\r\n }\r\n if (findAddress) {\r\n PlanningResourseMapService.GetAddressByGoogle(findAddress, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data[0] == null) {\r\n vm.showFailure(\"Failed\", \"Address Not Found By Google\");\r\n }\r\n else {\r\n vm.ticketPoolList = resp.data;\r\n vm.showSuccess(\"Success\", \"Address Verified by Google\");\r\n vm.showMapWithTicketPool();\r\n }\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n else {\r\n }\r\n }\r\n\r\n vm.UpdateAddress = function (newAddress) {\r\n var addressform = {\r\n \"UploadId\": vm.userDetails.UploadId,\r\n \"AnalysisName\": vm.analysisDetails.AnalysisName,\r\n \"AnalysisDescription\": vm.analysisDetails.AnalysisDescription,\r\n \"AddressId\": vm.userDetails.AddressId,\r\n \"UpdatedAddress\": newAddress,\r\n \"Country\": vm.addressData.country,\r\n \"Formatted_Address\": vm.addressData.formatted_address,\r\n \"City\": vm.addressData.city,\r\n \"State\": vm.addressData.state,\r\n \"Pincode\": vm.addressData.pincode,\r\n \"District\": vm.addressData.district,\r\n \"Latitude\": vm.addressData.lat,\r\n \"Longitude\": vm.addressData.lng\r\n }\r\n PlanningResourseMapService.UpdateAddress(addressform, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.GetExceptionAnalysisDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uPageIndex, uPageSize); vm.CloseEditAddressModel();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n\r\n }\r\n\r\n vm.sortColumn = function (col) {\r\n vm.Orderby = col;\r\n if (vm.OrderSequence == 'desc') {\r\n vm.OrderSequence = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n } else {\r\n vm.OrderSequence = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.GetAnalysisDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uPageIndex, uPageSize);\r\n };\r\n\r\n vm.sortColumnUser = function (col) {\r\n vm.Orderby = col;\r\n if (vm.OrderSequence == 'desc') {\r\n vm.OrderSequence = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n } else {\r\n vm.OrderSequence = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.GetUserDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uwPageIndex, uwPageSize);\r\n\r\n };\r\n vm.sortClass = function (col) {\r\n if (vm.Orderby == col) {\r\n if (vm.OrderSequence == 'desc') {\r\n return 'fa fa-arrow-down';\r\n } else {\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n vm.applyLocationFilter = function (analysisDetails) {\r\n vm.UploadId = $localStorage.UploadId;\r\n vm.AnalysisId = analysisDetails.AnalysisId;\r\n $localStorage.AnalysisId = vm.AnalysisId;\r\n vm.analysisDetails = analysisDetails;\r\n vm.GetAnalysisDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uPageIndex, uPageSize);\r\n vm.GetAnalysisDashboard(vm.UploadId, vm.AnalysisId);\r\n vm.GetAnalysisFilters(vm.UploadId, vm.AnalysisId);\r\n }\r\n\r\n vm.applyExceptionLocationFilter = function (analysisDetails) {\r\n vm.UploadId = $localStorage.UploadId;\r\n vm.AnalysisId = analysisDetails.AnalysisId;\r\n $localStorage.AnalysisId = vm.AnalysisId;\r\n vm.analysisDetails = analysisDetails;\r\n vm.GetExceptionAnalysisDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uPageIndex, uPageSize);\r\n vm.GetAnalysisDashboard(vm.UploadId, vm.AnalysisId);\r\n }\r\n\r\n vm.applyUserFilter = function (analysisDetails) {\r\n vm.UploadId = $localStorage.UploadId;\r\n vm.AnalysisId = analysisDetails.AnalysisId;\r\n vm.GetAnalysisDashboard(vm.UploadId, vm.AnalysisId);\r\n vm.GetAllPendingJobsCount(vm.UploadId);\r\n vm.GetUserDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uwPageIndex, uwPageSize);\r\n }\r\n\r\n vm.UsersFilterArray = function () {\r\n uitemNames = \"\";\r\n uitemValues = \"\";\r\n textItemNames = \"\";\r\n textItemValues = \"\";\r\n\r\n if (vm.userskill) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',SkillSet';\r\n uitemValues = uitemValues + \",\" + vm.userskill.join('|');;\r\n }\r\n else {\r\n uitemNames = 'SkillSet';\r\n uitemValues = vm.userskill.join('|');;\r\n }\r\n }\r\n if (vm.TraningCertificate) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',Certificates';\r\n uitemValues = uitemValues + \",\" + vm.TraningCertificate.join('|');;\r\n }\r\n else {\r\n uitemNames = 'Certificates';\r\n uitemValues = vm.TraningCertificate.join('|');;\r\n }\r\n }\r\n if (vm.Source) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',Source';\r\n uitemValues = uitemValues + \",\" + vm.Source;\r\n }\r\n else {\r\n uitemNames = 'Source';\r\n uitemValues = vm.Source;\r\n }\r\n }\r\n if (vm.UserStatus) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',UserStatus';\r\n uitemValues = uitemValues + \",\" + vm.UserStatus;\r\n }\r\n else {\r\n uitemNames = 'UserStatus';\r\n uitemValues = vm.UserStatus;\r\n }\r\n }\r\n if (vm.freelancerRole) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + \",\" + vm.freelancerRole.join('|');\r\n }\r\n else {\r\n uitemNames = 'Role';\r\n uitemValues = vm.freelancerRole.join('|');\r\n }\r\n }\r\n\r\n if (vm.UserName) {\r\n if (textItemNames.length == 0 && textItemValues.length == 0) {\r\n textItemNames = 'UserName';\r\n textItemValues = vm.UserName;\r\n } else {\r\n textItemNames = textItemNames + ',UserName';\r\n textItemValues = textItemValues + ',' + vm.UserName;\r\n }\r\n }\r\n if (vm.ContactNumber) {\r\n if (textItemNames.length == 0 && textItemValues.length == 0) {\r\n textItemNames = 'ContactNumber';\r\n textItemValues = vm.ContactNumber;\r\n } else {\r\n textItemNames = textItemNames + ',ContactNumber';\r\n textItemValues = textItemValues + ',' + vm.ContactNumber;\r\n }\r\n }\r\n\r\n // if (vm.freelancerRole != 'Private Field Engineer' && vm.freelancerRole != 'Private Vendor Manager') { \r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',Role';\r\n // uitemValues = uitemValues + \",\" + vm.freelancerRole;\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'Role';\r\n // uitemValues = vm.freelancerRole;\r\n // } \r\n // }\r\n // if (vm.freelancerRole == 'Private Field Engineer' || vm.freelancerRole == 'Private Vendor Manager') { \r\n // if(vm.freelancerRole == 'Private Field Engineer'){\r\n // \tif(uitemNames && vm.freelancerRole == 'Private Field Engineer') \r\n // \t{\r\n // \t uitemNames = uitemNames + ',Role' + ',UserType';\r\n // \t uitemValues = uitemValues + \",\" + 'Field Engineer' + \",\" + 'Private';\r\n // \t}\r\n // \telse {\r\n // \t\tuitemNames = 'Role' + ',UserType';\r\n // \t\tuitemValues = 'Field Engineer' + \",\" + 'Private';\r\n // \t }\r\n // }\r\n\r\n // if(vm.freelancerRole == 'Private Vendor Manager'){\r\n // \tif(uitemNames && vm.freelancerRole == 'Private Vendor Manager')\r\n // \t{\r\n // \t\tuitemNames = uitemNames + ',Role' + ',UserType';\r\n // \t\tuitemValues = uitemValues + \",\" + 'Vendor Manager' + \",\" + 'Private';\r\n // \t} \r\n // \telse {\r\n // \t\tuitemNames = 'Role' + ',UserType';\r\n // \t\tuitemValues = 'Field Engineer' + \",\" + 'Private';\r\n // \t }\r\n // }\r\n\r\n // else(vm.freelancerRole=='All Private Users')\r\n // {\r\n // uitemNames = 'UserType';\r\n // uitemValues = 'Private';\r\n // } \r\n // }\r\n // if (vm.freelancerRole=='') { \r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',UserType';\r\n // uitemValues = uitemValues + \",\" + 'Private'\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'UserType';\r\n // uitemValues = 'Private'\r\n // } \r\n // }\r\n if (vm.ContactNumber) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',ContactNumber';\r\n uitemValues = uitemValues + \",\" + vm.ContactNumber;\r\n }\r\n else {\r\n uitemNames = 'ContactNumber';\r\n uitemValues = vm.ContactNumber;\r\n }\r\n }\r\n if (vm.Asset_Bike == true) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',IsBikeAvailable';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else {\r\n uitemNames = 'IsBikeAvailable';\r\n uitemValues = '\"true\"';\r\n }\r\n }\r\n if (vm.Asset_Laptop == true) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',IsLaptopAvailable';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else {\r\n uitemNames = 'IsLaptopAvailable';\r\n uitemValues = '\"true\"';\r\n }\r\n }\r\n if (vm.Asset_Mobile == true) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',IsMobileAvailable';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else {\r\n uitemNames = 'IsMobileAvailable';\r\n uitemValues = '\"true\"';\r\n }\r\n }\r\n\r\n if (vm.Criminal == true) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',IsCriminalVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else {\r\n uitemNames = 'IsCriminalVerified';\r\n uitemValues = '\"true\"';\r\n }\r\n }\r\n if (vm.Adharcard == true) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',IsAdharVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else {\r\n uitemNames = 'IsAdharVerified';\r\n uitemValues = '\"true\"';\r\n }\r\n }\r\n if (vm.IsBankVerified == true) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',IsBankVarified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else {\r\n uitemNames = 'IsBankVarified';\r\n uitemValues = '\"true\"';\r\n }\r\n }\r\n if (vm.OneJobDone == true) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',OneJobDoneForSkills';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else {\r\n uitemNames = 'OneJobDoneForSkills';\r\n uitemValues = '\"true\"';\r\n }\r\n }\r\n if (vm.PermanentState) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',CurrentState';\r\n uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n }\r\n else {\r\n uitemNames = 'CurrentState';\r\n uitemValues = vm.PermanentState;\r\n }\r\n }\r\n if (vm.PermanentState && vm.PermanentCity) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.PermanentCity.join('|');\r\n }\r\n else {\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.UsersType;\r\n }\r\n }\r\n // if (vm.UsersType) { \r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',Role';\r\n // uitemValues = uitemValues + \",\" + vm.UsersType;\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'Role';\r\n // uitemValues = vm.UsersType;\r\n // } \r\n // } \r\n\r\n // if(vm.UsersType==\"Freelancer\")\r\n // {\r\n // vm.uType=\"Freelancer\";\r\n // }\r\n // else if(vm.UsersType==\"Freelancer Vendor\")\r\n // {\r\n // vm.uType=\"Freelancer\";\r\n // } \r\n // else if(vm.UsersType==\"Freelancer Team\")\r\n // {\r\n // vm.uType=\"Fixed\";\r\n // }\r\n // else \r\n // {\r\n // vm.uType=\"\";\r\n // vm.UsersType = '';\r\n // } \r\n\r\n }\r\n\r\n // vm.applyUserMapFilter=function()\r\n // { \r\n // vm.UsersFilterArray(); \r\n // vm.GetAllFreLancerProfile(loggedinUser,token,vm.userFormData);\r\n // }\r\n\r\n\r\n vm.ResetFilter = function () {\r\n vm.RangeInKm = 0;\r\n vm.IsBasedOnPincode = true;\r\n vm.RegistrationStatus = \"\";\r\n vm.UserRegistrationStatus = \"\";\r\n vm.JobSkill = \"\";\r\n vm.UserDetailVerification = \"\";\r\n vm.PermanentCity = \"\";\r\n vm.techPincode = \"\";\r\n vm.PermanentState = \"\";\r\n vm.ActiveInMonth = \"\";\r\n vm.NoOfJobDone = \"\";\r\n vm.TicketState = \"\";\r\n vm.TicketCity = \"\";\r\n vm.TicketSkill = \"\";\r\n vm.ticketStatus = \"\";\r\n vm.chkselect = true;\r\n vm.TechRole = \"\";\r\n vm.MatchCriteria = \"\";\r\n vm.TraningCertificate = \"\";\r\n vm.SearchByAccountName = \"\";\r\n vm.PreferredForAccounts = \"\";\r\n vm.ToolList = \"\";\r\n vm.OneJobDone = false;\r\n vm.MatchingSkill = false;\r\n vm.Asset_Bike = false;\r\n vm.Asset_Mobile = false;\r\n vm.Asset_Laptop = false;\r\n }\r\n\r\n\r\n vm.getAllCertificate = function () {\r\n PlanningResourseMapService.GetAllCertificate(loggedinUser, token, function (data) {\r\n vm.AllCertificateSets = data;\r\n }, vm.showFailure);\r\n }\r\n vm.getAllCertificate();\r\n\r\n vm.getSkills = function () {\r\n PlanningResourseMapService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills;\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.getSkills();\r\n\r\n vm.GetAllAccounts = function () {\r\n PlanningResourseMapService.GetAllAccountDetails(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.accountsList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAllAccounts();\r\n\r\n $scope.searchDisabled = true;\r\n vm.GetAllCapacityUpload = function () {\r\n deleteMarkers();\r\n PlanningResourseMapService.GetAllCapacityUpload(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.capacityList = resp.data;\r\n $scope.isCollapsed = true;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAllAnalysisByUploadId = function (isCollapsed, UploadId, UploadType) {\r\n if (vm.UploadId == UploadId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.showRow = UploadId;\r\n $localStorage.UploadId = UploadId;\r\n $localStorage.UploadType = UploadType;\r\n vm.UploadId = $localStorage.UploadId;\r\n vm.UploadType = $localStorage.UploadType; \r\n PlanningResourseMapService.GetAllAnalysisForUpload(loggedinUser, token, $localStorage.UploadId).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.analysisList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAllAnalysisUsers = function (isCollapsed, addresId, UploadId) {\r\n // if(vm.UploadId == UploadId){\r\n $scope.isCollapsed = !isCollapsed;\r\n // } \r\n $scope.showUserRow = addresId;\r\n vm.UploadId = UploadId;\r\n PlanningResourseMapService.GetAllAnalysisForUpload(loggedinUser, token, UploadId).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.analysisList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAnalysisDashboard = function (UploadId, AnalysisId) {\r\n PlanningResourseMapService.GetAnalysisDashboard(loggedinUser, token, UploadId, AnalysisId).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.analysisCount = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAllPendingJobsCount = function (UploadId) {\r\n PlanningResourseMapService.GetAllPendingJobsCount(loggedinUser, token, UploadId).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.pendingJobsCount = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n\r\n vm.Skillset = [];\r\n vm.UserTools = [];\r\n vm.UserCertificates = [];\r\n vm.UserRole = [];\r\n vm.GetAnalysisFilters = function (UploadId, AnalysisId) {\r\n PlanningResourseMapService.GetAnalysisFilters(loggedinUser, token, UploadId, AnalysisId).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.filtersData = resp.data;\r\n vm.Skillset = vm.filtersData.Skills.split(\"|\");\r\n vm.UserTools = vm.filtersData.UserTools.split(\"|\");\r\n vm.UserRole = vm.filtersData.UserRole.split(\"|\");\r\n vm.UserCertificates = vm.filtersData.UserCertificates.split(\"|\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.getAllTools = function () {\r\n PlanningResourseMapService.GetAllToolSets(loggedinUser, token, function (data) {\r\n vm.Asset_ToolList = data;\r\n }, vm.showFailure);\r\n }\r\n vm.getAllTools();\r\n\r\n vm.chkselect = true;\r\n\r\n vm.pincodeCheck = function () {\r\n vm.chkselect = !vm.chkselect;\r\n }\r\n\r\n\r\n\r\n //upload xls \r\n vm.OpenUploadLocationModal = function () {\r\n uploadLocationModalInstance = $uibModal.open({\r\n templateUrl: 'bulk_upload_location_model.html',\r\n backdrop: 'static',\r\n // size:'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.CloseModal = function () {\r\n uploadLocationModalInstance.close();\r\n vm.fileName = '';\r\n vm.bulkuploadType = '';\r\n vm.description = '';\r\n vm.errorList = [];\r\n vm.showErrors = false;\r\n vm.showticketSuccess = false;\r\n $timeout(function () {\r\n vm.GetAllCapacityUpload();\r\n }, 2000);\r\n }\r\n\r\n vm.OpenExistingTicketModal = function () {\r\n analyzeExistingModalInstance = $uibModal.open({\r\n templateUrl: 'existing_Ticket_model.html',\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.CloseExistingModal = function () {\r\n analyzeExistingModalInstance.close();\r\n vm.DisableCreateButton(false);\r\n vm.fileName = '';\r\n vm.selectedAccounts = [];\r\n vm.fileDescription = '';\r\n vm.endDateForAnalysis = new Date();\r\n $timeout(function () {\r\n vm.GetAllCapacityUpload();\r\n }, 2000);\r\n }\r\n\r\n vm.RangeFunction = function () {\r\n $timeout(function () {\r\n $(\"#example_id\").ionRangeSlider({\r\n grid: true,\r\n min: 0,\r\n max: 200,\r\n from: 50,\r\n step: 1,\r\n skin: \"round\",\r\n postfix: \" Kms\"\r\n });\r\n }, 100)\r\n }\r\n\r\n if (vm.bulkuploadType == 'cms') {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.zip',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n } else {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n }\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers').withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20]);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.LocationAddressList = [];\r\n\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showticketSuccess = false;\r\n vm.showPassed = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n vm.MediaUploadReqModel = {\r\n \"action\": 'Create',\r\n \"UploadedFileName\": vm.fileName,\r\n \"FileDescription\": vm.fileDescription\r\n }\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n if (vm.bulkuploadType == 'ticket') {\r\n $http.post(ApiURL + '/api/BulkUpload/MediaUpload?reqUserId=' + loggedinUser + '&action=Create', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.tickets = data.Tickets;\r\n vm.noOfRecords = data.Tickets ? data.Tickets.length : 0;\r\n $(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n if (data.Errors.length > 0) {\r\n //console.log('data.Errors',data.Errors);\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.Errors, function (v, k) {\r\n\r\n if (v.ItemErrors.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.ItemErrors, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n });\r\n if (v.Row > 0 && data.Users && data.Users.length > 0 && data.Users.length >= v.Row) {\r\n e1.data = data.Users[v.Row - 1];\r\n } if (v.Row > 0 && data.Tickets && data.Tickets.length > 0 && data.Tickets.length >= v.Row) {\r\n e1.data = data.Tickets[v.Row - 1];\r\n } if (v.Row > 0 && data.Customers && data.Customers.length > 0 && data.Customers.length >= v.Row) {\r\n e1.data = data.Customers[v.Row - 1];\r\n }\r\n vm.errorList.push(e1);\r\n }\r\n });\r\n vm.showticketSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.ErrorCode == 103) {\r\n vm.showticketSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Missing columns in excel file\";\r\n vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.Message && data.Message.length > 0) {\r\n\r\n vm.showticketSuccess = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Validation failed\";\r\n vm.successMsg = data.Message\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\r\n } else {\r\n vm.showticketSuccess = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"Validation completed\";\r\n vm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are validated successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found. Please click on start upload button to proceed.\";\r\n // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n $(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n });\r\n }\r\n else {\r\n fd.append('MediaUploadReqModel', JSON.stringify(vm.MediaUploadReqModel))\r\n $http.post(ApiURL + '/api/CapacityPlanning/MediaUploadAndCreate', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n if (vm.bulkuploadType == 'Location') {\r\n vm.LocationAddressList = data.AddressList;\r\n vm.noOfRecords = data.AddressList ? data.AddressList.length : 0;\r\n }\r\n $(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n if (data.Errors.length > 0) {\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.Errors, function (v, k) {\r\n\r\n if (v.ItemErrors.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.ItemErrors, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n });\r\n if (v.Row > 0 && data.AddressList && data.AddressList.length > 0 && data.AddressList.length >= v.Row) {\r\n e1.data = data.AddressList[v.Row - 1];\r\n }\r\n vm.errorList.push(e1);\r\n }\r\n });\r\n\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.ErrorCode == 103) {\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Missing columns in excel file\";\r\n vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.Message && data.Message.length > 0) {\r\n\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Validation failed\";\r\n vm.successMsg = data.Message\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\r\n } else {\r\n vm.showPassed = false;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"File Uploaded\";\r\n vm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are uploaded successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found.\";\r\n $timeout(function () {\r\n vm.CloseModal();\r\n }, 2000);\r\n\r\n // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n $(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n });\r\n }\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.addFiles = function () {\r\n $(\"#dropzone1\").trigger(\"click\");\r\n }\r\n // vm.uploadFile = function () {\r\n // if (vm.LocationAddressList && vm.LocationAddressList.length > 0) {\r\n // \tuploadLocationModalInstance.close();\r\n // }\r\n // }\r\n\r\n\r\n vm.uploadFile = function () {\r\n if (vm.tickets && vm.tickets.length > 0) {\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.disableUploadButton = true;\r\n $http.post(ApiURL + '/api/CapacityPlanning/UploadTickets?UploadedFileName=' + vm.fileName + '&FileDescription=' + vm.fileDescription,\r\n vm.tickets, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n .success(function (data) {\r\n console.log(data);\r\n vm.showticketSuccess = false;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Upload completed\";\r\n vm.successMsg = \"Jobs are uploaded in bulk successfully\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n vm.CloseModal();\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n console.log(errorMessage)\r\n vm.disableUploadButton = false;\r\n vm.showticketSuccess = true;\r\n vm.successTitle = \"Upload Failed\";\r\n vm.successMsg = errorMessage;\r\n vm.noMsg = [];\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n vm.progressbar.complete();\r\n });\r\n\r\n }\r\n }\r\n\r\n\r\n //list of analysis\r\n $scope.totalAL = 0;\r\n $scope.ALPerPage = vm.AlListCount;\r\n $scope.aLpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeAlPageListCount = function () {\r\n $scope.ALPerPage = vm.AlListCount;\r\n uPageSize = $scope.ALPerPage;\r\n $scope.AlTablePageChanged($scope.aLpagination.current);\r\n vm.selectAll = false;\r\n uPageIndex = $scope.aLpagination.current;\r\n $scope.AlTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n vm.GetAnalysisDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uPageIndex, uPageSize);\r\n };\r\n }\r\n\r\n uPageIndex = $scope.aLpagination.current;\r\n $scope.AlTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n vm.GetAnalysisDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uPageIndex, uPageSize);\r\n };\r\n\r\n vm.analysisFiltersList = [];\r\n vm.GetAnalysisDataList = function (loggedinUser, token, UploadId, AnalysisId, userType, OrderSequence, uPageIndex, uPageSize) {\r\n PlanningResourseMapService.GetAnalysisData(loggedinUser, token, UploadId, AnalysisId, vm.Orderby, vm.OrderSequence, uPageIndex, uPageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.analysisFiltersList = resp.data.AddressAnalysisResModelList;\r\n $scope.totalAL = resp.data.TotalRecords;\r\n if (vm.analysisFiltersList.length < vm.AlListCount)\r\n vm.analysisListLength = $scope.totalAL;\r\n else\r\n vm.analysisListLength = uPageIndex * vm.AlListCount;\r\n if (uPageIndex == 1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex - 1) * vm.AlListCount) + 1);\r\n }\r\n }, function (error) {\r\n })\r\n }\r\n\r\n\r\n //list of exception location\r\n $scope.totalEAL = 0;\r\n $scope.EALPerPage = vm.EAlListCount;\r\n $scope.eaLpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeEAlPageListCount = function () {\r\n $scope.EALPerPage = vm.EAlListCount;\r\n exuPageSize = $scope.EALPerPage;\r\n $scope.EAlTablePageChanged($scope.eaLpagination.current);\r\n vm.selectAll = false;\r\n exuPageIndex = $scope.eaLpagination.current;\r\n $scope.EAlTablePageChanged = function (newPage) {\r\n exuPageIndex = newPage;\r\n vm.GetExceptionAnalysisDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, exuPageIndex, exuPageSize);\r\n };\r\n }\r\n\r\n exuPageIndex = $scope.eaLpagination.current;\r\n $scope.EAlTablePageChanged = function (newPage) {\r\n exuPageIndex = newPage;\r\n vm.GetExceptionAnalysisDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, exuPageIndex, exuPageSize);\r\n };\r\n\r\n vm.exceptionAnalysisFiltersList = [];\r\n vm.GetExceptionAnalysisDataList = function (loggedinUser, token, UploadId, AnalysisId, userType, OrderSequence, exuPageIndex, exuPageSize) {\r\n PlanningResourseMapService.GetExceptionAnalysisData(loggedinUser, token, UploadId, AnalysisId, vm.Orderby, vm.OrderSequence, exuPageIndex, exuPageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.exceptionAnalysisFiltersList = resp.data.AddressAnalysisResModelList;\r\n $scope.totalEAL = resp.data.TotalRecords;\r\n if (vm.exceptionAnalysisFiltersList.length < vm.EAlListCount)\r\n vm.exceptionAnalysisLength = $scope.totalEAL;\r\n else\r\n vm.exceptionAnalysisLength = exuPageIndex * vm.EAlListCount;\r\n if (exuPageIndex == 1)\r\n vm.exuPageIndexCount = 1;\r\n else\r\n vm.exuPageIndexCount = (((exuPageIndex - 1) * vm.EAlListCount) + 1);\r\n }\r\n }, function (error) {\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n //list of users\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.userchangePageListCount = function () {\r\n $scope.usersPerPage = vm.userPageListCount;\r\n ulPageSize = $scope.usersPerPage;\r\n $scope.UserTablePageChanged($scope.Userpagination.current);\r\n vm.selectAll = false;\r\n ulPageIndex = $scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function (newPage) {\r\n ulPageIndex = newPage;\r\n vm.GetUserDataPagingList(true, $localStorage.UploadId, vm.AnalysisId, vm.AddressId, vm.ListType, vm.SortBy, vm.OrderSequence, ulPageIndex, ulPageSize, loggedinUser, token);\r\n };\r\n }\r\n\r\n ulPageIndex = $scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function (newPage) {\r\n ulPageIndex = newPage;\r\n vm.GetUserDataPagingList(true, $localStorage.UploadId, vm.AnalysisId, vm.AddressId, vm.ListType, vm.SortBy, vm.OrderSequence, ulPageIndex, ulPageSize, loggedinUser, token)\r\n };\r\n\r\n\r\n vm.UWticketDataList = [];\r\n vm.GetUserDataPagingList = function (isCollapsed, UploadId, AnalysisId, AddressId, ListType) {\r\n if (vm.AddressId == AddressId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.showUserTable = AddressId;\r\n vm.UploadId = UploadId;\r\n vm.AnalysisId = AnalysisId;\r\n vm.AddressId = AddressId;\r\n vm.ListType = ListType;\r\n PlanningResourseMapService.GetUserListData(vm.UploadId, vm.AnalysisId, vm.AddressId, vm.ListType, vm.SortBy, vm.OrderSequence, ulPageIndex, ulPageSize, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UWticketDataList = resp.data.UserModelResList;\r\n $scope.totalUsers = resp.data.RecordCount;\r\n preprocessData(vm.UWticketDataList);\r\n if (vm.UWticketDataList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = ulPageIndex * vm.userPageListCount;\r\n if (ulPageIndex == 1)\r\n vm.ulpageindexCount = 1;\r\n else\r\n vm.ulpageindexCount = (((ulPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n\r\n $scope.TalentPoolTablepageChanged = function (newPage) {\r\n\r\n vm.currentPage = newPage;\r\n\r\n vm.applyfilter(newPage, '');\r\n };\r\n\r\n vm.UserRoleList = [\"Field Engineer\", \"Vendor Manager\", \"VendorTeam\", \"PrivateVendor\", \"PrivateFreelancer\", \"ServiceCenter\"];\r\n\r\n vm.applyfilter = function (index, data) {\r\n var userFormData = {};\r\n if (data) {\r\n userFormData = data;\r\n } else {\r\n var temp = [];\r\n var res = vm.Experience.split(\"-\");\r\n var jobscount = vm.Jobscount.split(\"-\");\r\n var ratings = vm.Ratings.split(\"-\");\r\n if (vm.freelancerRole) {\r\n vm.freelancerRoleList = vm.freelancerRole.join('|');\r\n }\r\n\r\n userFormData = {\r\n \"PageIndex\": index,\r\n \"PageSize\": 20,\r\n \"ActivationStartDate\": startDate,\r\n \"ActivationEnddate\": endDate,\r\n \"State\": vm.PermanentState,\r\n \"Cities\": vm.PermanentCity,\r\n \"Pincodes\": temp,\r\n \"Skill\": vm.addSkill,\r\n \"ExperienceStart\": res[0],\r\n \"ExperienceEnd\": res[1],\r\n \"Certificates\": vm.addTraningCertificateName,\r\n \"IsBikeAvailable\": vm.Asset_Bike,\r\n \"IsMobileAvailable\": vm.Asset_Mobile,\r\n \"IsLaptopAvailable\": vm.Asset_Laptop,\r\n \"Tools\": vm.Asset_Tools,\r\n \"JobCountStart\": jobscount[0],\r\n \"JobCountEnd\": jobscount[1],\r\n \"RatingStart\": Number(ratings[0]),\r\n \"RatingEnd\": Number(ratings[1]),\r\n \"PreferredTalentPool\": false,\r\n \"IsStudent\": vm.Student,\r\n \"IsCriminalVerified\": vm.Criminal,\r\n \"IsBankVarified\": vm.IsBankVerified,\r\n \"IsUPIVarified\": vm.IsUPIVarified,\r\n \"IsStudent\": vm.Student,\r\n \"MMFPrimeMember\": vm.Prime,\r\n \"IsOpenForInternship\": vm.Intern,\r\n \"IsAdharVerified\": vm.Adharcard,\r\n \"IsPanVerified\": vm.Pancard,\r\n \"Source\": vm.Source,\r\n \"FreelancerRole\": vm.freelancerRoleList,\r\n \"UserStatus\": vm.UserStatus\r\n }\r\n if (vm.adddaterange) {\r\n userFormData.ActivationStartDate = startDate;\r\n userFormData.ActivationEnddate = endDate;\r\n }\r\n }\r\n\r\n $localStorage.FilterData = userFormData;\r\n PlanningResourseMapService.Filter(loggedinUser, token, userFormData).then(function (resp) {\r\n if (resp.data) {\r\n vm.users = [];\r\n vm.Bluserlist = [];\r\n vm.usersCounts = resp.data;\r\n vm.users = resp.data.Users;\r\n\r\n for (var i = 0; i < vm.users.length; i++) {\r\n if (vm.users[i].CustomerRating) {\r\n vm.users[i].CustomerRating = Number(vm.users[i].CustomerRating).toFixed(1);\r\n }\r\n }\r\n\r\n vm.totalTalentPoolCount = resp.data.Count;\r\n $scope.totalUsers = resp.data.Count;\r\n $scope.totalTableUsers = resp.data.Count;\r\n\r\n if (vm.users.length < 20)\r\n vm.usersLength = $scope.totalUsers;\r\n else\r\n vm.usersLength = index * 20;\r\n if (index == 1)\r\n vm.techpageindexCount = 1;\r\n else\r\n vm.techpageindexCount = (((index - 1) * 20) + 1);\r\n\r\n if (vm.users.length > 0) {\r\n for (var i = 0; i < vm.users.length; i++) {\r\n if (vm.users[i].BlockedByAccounts) {\r\n if (vm.users[i].BlockedByAccounts.length > 0) {\r\n for (var j = 0; j < vm.users[i].BlockedByAccounts.length; j++) {\r\n if (vm.users[i].BlockedByAccounts[j] == AccountID) {\r\n vm.Bluserlist.push(vm.users[i]);\r\n break;\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 vm.TechnicianclearFilter = function () {\r\n vm.UserName = '';\r\n vm.ContactNumber = '';\r\n vm.Source = '';\r\n vm.Adharcard = '';\r\n vm.Pancard = '';\r\n vm.Prime = '';\r\n vm.IsBankVerified = '';\r\n vm.Criminal = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.Experience = '';\r\n vm.traningCertificateList = \"\";\r\n vm.freelancerRoleList = \"\";\r\n vm.freelancerRole = \"\";\r\n vm.Asset_Laptop = '';\r\n vm.Asset_Mobile = '';\r\n vm.Asset_Bike = '';\r\n vm.Asset_Tools = '';\r\n vm.Jobscount = '';\r\n vm.Ratings = '';\r\n vm.CurrentState = '';\r\n vm.UserStatus = '';\r\n vm.userskill = [];\r\n vm.userskill = '';\r\n vm.OneJobDone = false;\r\n vm.ServiceBrand = '';\r\n vm.ServiceProduct = '';\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n\r\n // // var first = 1;\r\n // if($localStorage.TechnicianDetailsView =='TechnicianDetails' ){\r\n // if($localStorage.backToTechnicianList==\"\" || $localStorage.backToTechnicianList===\"undefined\")\r\n // {\r\n // $localStorage.FilterData.State ='';\r\n // $localStorage.FilterData.Cities = '';\r\n // $localStorage.FilterData.Pincodes=[];\r\n // $localStorage.FilterData.Skill='';\r\n // $localStorage.FilterData.ExperienceStart='';\r\n // $localStorage.FilterData.ExperienceEnd ='';\r\n // $localStorage.FilterData.Certificates ='';\r\n // $localStorage.FilterData.IsBikeAvailable ='';\r\n // $localStorage.FilterData.IsMobileAvailable ='';\r\n // $localStorage.FilterData.IsLaptopAvailable ='';\r\n // $localStorage.FilterData.Tools ='';\r\n // $localStorage.FilterData.ContactNumber='';\r\n // $localStorage.FilterData.JobCountStart='';\r\n // $localStorage.FilterData.JobCountEnd='';\r\n // $localStorage.FilterData.UserName ='';\r\n // $localStorage.FilterData.Source ='';\r\n // $localStorage.FilterData.RatingStart ='';\r\n // $localStorage.FilterData.RatingEnd ='';\t\r\n // $localStorage.FilterData.IsStudent ='';\t\r\n // $localStorage.FilterData.MMFPrimeMember ='';\t\r\n // $localStorage.FilterData.IsOpenForInternship ='';\t\r\n // $localStorage.FilterData.IsAdharVerified ='';\t\r\n // $localStorage.FilterData.IsPanVerified ='';\t\r\n // $localStorage.FilterData.PageIndex=1;\r\n // $scope.UserTablepagination = {\r\n // current: 1\r\n // };\r\n // $scope.UserTablepagination.current=1;\r\n // }\r\n // var fdata = $localStorage.FilterData;\r\n // var rating = fdata.RatingStart+'-'+fdata.RatingEnd;\r\n // var jobcount = fdata.JobCountStart+'-'+fdata.JobCountEnd;\r\n // var exp = fdata.ExperienceStart+'-'+fdata.ExperienceEnd; \t\r\n // vm.PermanentState =\tfdata.State;\t\r\n // vm.PermanentCity = fdata.Cities;\r\n // temp = fdata.Pincodes;\r\n // vm.addSkill = fdata.Skill\r\n // vm.Experience = exp;\r\n // vm.addTraningCertificateName = fdata.Certificates;\r\n // vm.Asset_Bike = fdata.IsBikeAvailable;\r\n // vm.Asset_Mobile = fdata.IsMobileAvailable;\r\n // vm.Asset_Laptop = fdata.IsLaptopAvailable;\r\n // vm.Asset_Tools = fdata.Tools;\r\n // vm.Jobscount = jobcount;\r\n // vm.Ratings = rating;\r\n // vm.ContactNumber = fdata.ContactNumber;\r\n // vm.UserName = fdata.UserName;\r\n // vm.Student = fdata.IsStudent;\r\n // vm.Prime = fdata.MMFPrimeMember;\r\n // vm.Intern = fdata.IsOpenForInternship;\r\n // vm.Adharcard = fdata.IsAdharVerified;\r\n // vm.Pancard = fdata.IsPanVerified;\r\n // vm.Source = fdata.Source;\r\n // $scope.dates = {startDate : fdata.ActivationStartDate, endDate :fdata.ActivationEnddate};\r\n // if($localStorage.Technicianviewtype =='List'){\r\n // vm.PreferredUser = false;\r\n // vm.techniciancardview=false;\r\n // vm.technicianlistview = true;\r\n // vm.technicianmapview=false;\r\n // vm.PreferredUserlist=false;\r\n // vm.preferredtechnicianmapview=false;\r\n // vm.technicianuserviewtype ='List';\r\n // }\r\n // if($localStorage.backToTechnicianList==\"\" || $localStorage.backToTechnicianList===\"undefined\")\r\n // vm.applyfilter(1, fdata);\r\n // else\r\n // vm.applyfilter(vm.currentPage, fdata);\r\n // }\r\n // else{\r\n // vm.applyfilter(vm.currentPage);\r\n // $scope.dates = {startDate : startDate, endDate :endDate};\r\n // }\r\n\r\n var startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: moment().subtract(30, 'days'), endDate: moment() };\r\n // vm.ticketranges = {\r\n // 'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n // 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n // 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n // 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n // };\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n };\r\n\r\n vm.pfuserlist = [];\r\n\r\n vm.filterApplied = false;\r\n\r\n vm.AllapplyTalentPoolfilter = function (filterApplied) {\r\n vm.filterApplied = filterApplied;\r\n $scope.Ticket = 1;\r\n deleteMarkers();\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.clearMarkers();\r\n vm.dynTicketMarkers = [];\r\n }\r\n vm.ticketPoolList = [];\r\n $scope.dates = { startDate: startDate, endDate: endDate };\r\n vm.adddaterange = true;\r\n $scope.UserTablepagination.current = 1;\r\n var temp = [];\r\n var tuPageIndex = '';\r\n var res = vm.Experience.split(\"-\");\r\n var jobscount = vm.Jobscount.split(\"-\");\r\n var ratings = vm.Ratings.split(\"-\");\r\n // if(!index){\r\n // tuPageIndex = 1;\r\n // }else{\r\n tuPageIndex = 1;\r\n // }\r\n\r\n vm.freelancerRoleList = \"\";\r\n if (vm.freelancerRole) {\r\n vm.freelancerRoleList = vm.freelancerRole.join('|');\r\n }\r\n vm.traningCertificateList = \"\";\r\n if (vm.TraningCertificate) {\r\n vm.traningCertificateList = vm.TraningCertificate.join('|');\r\n }\r\n if (vm.UserStatus != \"Active\") {\r\n startDate = \"\";\r\n endDate = \"\";\r\n }\r\n else {\r\n startDate = startDate;\r\n endDate = endDate;\r\n }\r\n if (!ratings[1]) {\r\n ratings[1] = 0;\r\n }\r\n vm.userFormData = {\r\n \"PageIndex\": tuPageIndex,\r\n \"PageSize\": 20,\r\n \"ActivationStartDate\": startDate,\r\n \"ActivationEnddate\": endDate,\r\n \"State\": vm.PermanentState,\r\n \"Cities\": vm.PermanentCity,\r\n \"Pincodes\": temp,\r\n \"Skill\": vm.userskill,\r\n \"ExperienceStart\": res[0],\r\n \"ExperienceEnd\": res[1],\r\n \"Certificates\": vm.traningCertificateList,\r\n \"IsBikeAvailable\": vm.Asset_Bike,\r\n \"IsMobileAvailable\": vm.Asset_Mobile,\r\n \"IsLaptopAvailable\": vm.Asset_Laptop,\r\n \"Tools\": vm.Asset_Tools,\r\n \"JobCountStart\": jobscount[0],\r\n \"JobCountEnd\": jobscount[1],\r\n \"RatingStart\": Number(ratings[0]),\r\n \"RatingEnd\": Number(ratings[1]),\r\n \"PreferredTalentPool\": false,\r\n \"FreelancerRole\": vm.freelancerRoleList,\r\n \"UserStatus\": vm.UserStatus,\r\n \"ContactNumber\": vm.ContactNumber,\r\n \"UserName\": vm.UserName,\r\n \"IsStudent\": vm.Student,\r\n \"MMFPrimeMember\": vm.Prime,\r\n \"IsOpenForInternship\": vm.Intern,\r\n \"IsAdharVerified\": vm.Adharcard,\r\n \"BrandName\": vm.ServiceBrand,\r\n \"ProductServing\": vm.ServiceProduct,\r\n \"IsBankVarified\": vm.IsBankVerified,\r\n \"IsCriminalVerified\": vm.Criminal,\r\n \"Source\": vm.Source,\r\n \"OneJobDoneForSkills\": vm.OneJobDone,\r\n }\r\n\r\n vm.mapuserFormData = {\r\n \"PageIndex\": '',\r\n \"PageSize\": '',\r\n \"ActivationStartDate\": startDate,\r\n \"ActivationEnddate\": endDate,\r\n \"State\": vm.PermanentState,\r\n \"Cities\": vm.PermanentCity,\r\n \"Pincodes\": temp,\r\n \"Skill\": vm.userskill,\r\n \"ExperienceStart\": res[0],\r\n \"ExperienceEnd\": res[1],\r\n \"Certificates\": vm.traningCertificateList,\r\n \"IsBikeAvailable\": vm.Asset_Bike,\r\n \"IsMobileAvailable\": vm.Asset_Mobile,\r\n \"IsLaptopAvailable\": vm.Asset_Laptop,\r\n \"Tools\": vm.Asset_Tools,\r\n \"JobCountStart\": jobscount[0],\r\n \"JobCountEnd\": jobscount[1],\r\n \"RatingStart\": Number(ratings[0]),\r\n \"RatingEnd\": Number(ratings[1]),\r\n \"PreferredTalentPool\": false,\r\n \"FreelancerRole\": vm.freelancerRoleList,\r\n \"UserStatus\": vm.UserStatus,\r\n \"ContactNumber\": vm.ContactNumber,\r\n \"UserName\": vm.UserName,\r\n \"IsStudent\": vm.Student,\r\n \"MMFPrimeMember\": vm.Prime,\r\n \"IsOpenForInternship\": vm.Intern,\r\n \"IsAdharVerified\": vm.Adharcard,\r\n \"IsBankVarified\": vm.IsBankVerified,\r\n \"IsCriminalVerified\": vm.Criminal,\r\n \"BrandName\": vm.ServiceBrand,\r\n \"ProductServing\": vm.ServiceProduct,\r\n \"Source\": vm.Source,\r\n \"OneJobDoneForSkills\": vm.OneJobDone,\r\n }\r\n if (vm.filterApplied) {\r\n vm.GetTalentPoolForMap();\r\n }\r\n PlanningResourseMapService.Filter(loggedinUser, token, vm.userFormData).then(function (resp) {\r\n if (resp.data) {\r\n vm.pfuserlist = [];\r\n vm.users = [];\r\n vm.usersCounts = resp.data;\r\n vm.users = resp.data.Users;\r\n if (vm.users.length == 0) {\r\n vm.showFailure('Failed', 'No User Found');\r\n }\r\n for (var i = 0; i < vm.users.length; i++) {\r\n if (vm.users[i].CustomerRating) {\r\n vm.users[i].CustomerRating = Number(vm.users[i].CustomerRating).toFixed(1);\r\n }\r\n }\r\n vm.totalTalentPoolCount = resp.data.Count;\r\n $scope.totalTalentUsers = resp.data.Count;\r\n $scope.totalTableUsers = resp.data.Count;\r\n if (vm.users.length < 20)\r\n vm.usersLength = $scope.totalTalentUsers;\r\n else\r\n vm.usersLength = tuPageIndex * 20;\r\n if (tuPageIndex == 1)\r\n vm.techpageindexCount = 1;\r\n else\r\n vm.techpageindexCount = (((tuPageIndex - 1) * 20) + 1);\r\n if (vm.users.length < 20)\r\n vm.usersLength = $scope.totalTalentUsers;\r\n else\r\n vm.usersLength = tuPageIndex * 20;\r\n if (tuPageIndex == 1)\r\n vm.techpageindexCount = 1;\r\n else\r\n vm.techpageindexCount = (((tuPageIndex - 1) * 20) + 1);\r\n if (vm.users.length > 0) {\r\n for (var i = 0; i < vm.users.length; i++) {\r\n if (vm.users[i].FavoriteForAccounts) {\r\n if (vm.users[i].FavoriteForAccounts.length > 0) {\r\n for (var j = 0; j < vm.users[i].FavoriteForAccounts.length; j++) {\r\n if (vm.users[i].FavoriteForAccounts[j] == AccountID) {\r\n vm.pfuserlist.push(vm.users[i]);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n $timeout(function () {\r\n $scope.class1 = false;\r\n }, 250);\r\n }\r\n })\r\n }\r\n vm.AllapplyTalentPoolfilter();\r\n\r\n\r\n\r\n\r\n //apply filter for analysis\r\n vm.AllapplyfilterCopy = function () {\r\n vm.DisableCreateButton(true);\r\n var userFormData = {\r\n \"UploadId\": $localStorage.UploadId,\r\n \"AnalysisId\": vm.confirmstatus == \"update\" ? vm.analysisDetails.AnalysisId : \"\",\r\n \"AnalysisName\": vm.confirmstatus == \"update\" ? vm.analysisDetails.AnalysisName : vm.AnalysisName,\r\n \"AnalysisDescription\": vm.analysisDetails.AnalysisDescription,\r\n \"AnalysisBasedOn\": vm.IsBasedOnPincode == true ? \"Pincode\" : \"Distance\",\r\n \"RangeFromJob\": (vm.RangeInKm * 1000),\r\n \"OneJobDoneForSkills\": vm.OneJobDone,\r\n \"Skills\": vm.JobSkill == \"\" ? \"\" : vm.JobSkill.join(\"|\"),\r\n \"UserStatus\": vm.RegistrationStatus,\r\n \"UserRole\": vm.UserRole == \"\" ? \"\" : vm.UserRole.join(\"|\"),\r\n \"MatchCriteria\": vm.MatchCriteria == \"\" ? \"\" : vm.MatchCriteria.join(\"|\"),\r\n \"ActiveInMonth\": vm.ActiveInMonth,\r\n \"NoOfJobDone\": vm.NoOfJobDone,\r\n \"IsBikeAvailable\": vm.Asset_Bike,\r\n \"IsMobileAvailable\": vm.Asset_Mobile,\r\n \"IsLaptopAvailable\": vm.Asset_Laptop,\r\n \"UserCertificates\": vm.TraningCertificate == \"\" ? \"\" : vm.TraningCertificate.join(\"|\"),\r\n \"UserTools\": vm.ToolList == \"\" ? \"\" : vm.ToolList.join(\"|\"),\r\n // \"JobOrUser\": \"string\",\r\n // \"IsMMFPrimeMember\": true,\r\n // \"IsSecurityDeposited\": true,\r\n // \"IsCriminalVerified\": true,\r\n // \"IsIncomeAbove25\": true,\r\n // \"IsVaccinated\": true\r\n }\r\n PlanningResourseMapService.CreateNewAnalysis(userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Analysis Created Successfully\");\r\n $timeout(function () {\r\n $scope.addFilterforAnalysis();\r\n vm.CloseAnalysisModel();\r\n // $scope.addRemoveRedClass(); \r\n }, 2000);\r\n }\r\n })\r\n }\r\n\r\n vm.DisableCreateButton = function (disable) {\r\n if (disable) {\r\n vm.disableCreateButton = true;\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n }\r\n }\r\n\r\n //user wise with pagination\r\n $scope.totalUW = 0;\r\n $scope.UWPerPage = vm.UWListCount;\r\n $scope.UWpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUWPageListCount = function () {\r\n $scope.UWPerPage = vm.UWListCount;\r\n uwPageSize = $scope.UWPerPage;\r\n $scope.UWTablePageChanged($scope.UWpagination.current);\r\n vm.selectAll = false;\r\n uwPageIndex = $scope.UWpagination.current;\r\n $scope.UWTablePageChanged = function (newPage) {\r\n uwPageIndex = newPage;\r\n vm.GetUserDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uwPageIndex, uwPageSize);\r\n };\r\n }\r\n\r\n uwPageIndex = $scope.UWpagination.current;\r\n $scope.UWTablePageChanged = function (newPage) {\r\n uwPageIndex = newPage;\r\n vm.GetUserDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uwPageIndex, uwPageSize);\r\n };\r\n\r\n vm.analysisUserList = [];\r\n vm.GetUserDataList = function (loggedinUser, token, UploadId, AnalysisId, userType, OrderSequence, uwPageIndex, uwPageSize) {\r\n PlanningResourseMapService.GetUserData(loggedinUser, token, UploadId, AnalysisId, vm.Orderby, vm.OrderSequence, uwPageIndex, uwPageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.analysisUserList = resp.data.UserAnalysisResModelList;\r\n $scope.totalUW = resp.data.TotalRecords;\r\n preprocessData(vm.analysisUserList);\r\n if (vm.analysisUserList.length < vm.UWListCount)\r\n vm.analysisListUWLength = $scope.totalUW;\r\n else\r\n vm.analysisListUWLength = uwPageIndex * vm.UWListCount;\r\n if (uwPageIndex == 1)\r\n vm.uwpageindexCount = 1;\r\n else\r\n vm.uwpageindexCount = (((uwPageIndex - 1) * vm.UWListCount) + 1);\r\n }\r\n }, function (error) {\r\n })\r\n }\r\n\r\n\r\n //list of userwise\r\n $scope.totalUWtickets = 0;\r\n $scope.UWticketsPerPage = vm.UWticketsListCount;\r\n $scope.UWticketspagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.UWticketsPageListCount = function () {\r\n $scope.UWticketsPerPage = vm.UWticketsListCount;\r\n uwtPageSize = $scope.UWticketsPerPage;\r\n $scope.UWTicketTablePageChanged($scope.UWticketspagination.current);\r\n vm.selectAll = false;\r\n uwtPageIndex = $scope.UWticketspagination.current;\r\n $scope.UWTicketTablePageChanged = function (newPage) {\r\n uwtPageIndex = newPage;\r\n vm.GetUserUWDataPagingList(true, $localStorage.UploadId, vm.AnalysisId, vm.UserId, vm.ListType, vm.SortBy, vm.OrderSequence, uwtPageIndex, uwtPageSize, loggedinUser, token);\r\n };\r\n }\r\n\r\n uwtPageIndex = $scope.UWticketspagination.current;\r\n $scope.UWTicketTablePageChanged = function (newPage) {\r\n uwtPageIndex = newPage;\r\n vm.GetUserUWDataPagingList(true, $localStorage.UploadId, vm.AnalysisId, vm.UserId, vm.ListType, vm.SortBy, vm.OrderSequence, uwtPageIndex, uwtPageSize, loggedinUser, token)\r\n };\r\n\r\n vm.toBebundle = [];\r\n vm.bundlePrice = [];\r\n vm.bundleDistance = [];\r\n vm.implementSelectItemsNewJob = function (itemList, scope) {\r\n scope.selectAllNewJob = false;\r\n scope.showMinusNewJob = false;\r\n scope.CreateComboFlag = false;\r\n scope.selectRowNewJob = function (i) {\r\n scope.showMinusNewJob = false;\r\n scope.selectAllNewJob = false;\r\n scope.CreateComboFlag = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n vm.toBebundle.push(d.AddressId)\r\n vm.selctedTickets = vm.toBebundle.length;\r\n scope.showMinusNewJob = true;\r\n // if(d.TicketStatus == 'New' || d.TicketStatus == 'Broadcasted'){\r\n scope.CreateComboFlag = true;\r\n // }\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n scope.applyAllNewJobSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllNewJob;\r\n if (d.checked) {\r\n scope.CreateComboFlag = true;\r\n }\r\n });\r\n }\r\n\r\n scope.resetAllSelect = function () {\r\n scope.selectAllNewJob = false;\r\n scope.showMinusNewJob = false;\r\n scope.PlannedClosureDateFlag = false;\r\n scope.CreateComboFlag = false;\r\n }\r\n }\r\n\r\n vm.implementSelectItemsNewJob('UWTicketList', this);\r\n\r\n\r\n vm.UWTicketList = [];\r\n vm.GetUserUWDataPagingList = function (isCollapsed, UploadId, AnalysisId, UserId, ListType, UserName) {\r\n vm.UserName = UserName;\r\n if (vm.UserId == UserId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.showAddressTable = UserId;\r\n vm.UploadId = UploadId;\r\n vm.AnalysisId = AnalysisId;\r\n vm.UserId = UserId;\r\n vm.ListType = ListType;\r\n PlanningResourseMapService.GetAddressListForUserOnPaging($localStorage.UploadId, $localStorage.AnalysisId, vm.UserId, vm.ListType, vm.SortBy, vm.OrderSequence, uwtPageIndex, uwtPageSize, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UWTicketList = resp.data.AddressModelResList;\r\n $scope.totalUWtickets = resp.data.RecordCount;\r\n if (vm.UWTicketList.length < vm.UWticketsListCount)\r\n vm.UWTicketListLength = $scope.totalUWtickets;\r\n else\r\n vm.UWTicketListLength = uwtPageIndex * vm.UWticketsListCount;\r\n if (uwtPageIndex == 1)\r\n vm.uwtPageIndexCount = 1;\r\n else\r\n vm.uwtPageIndexCount = (((uwtPageIndex - 1) * vm.UWticketsListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n\r\n vm.CreateBJobs = function () {\r\n vm.bundleTicketArray = [];\r\n vm.bundleData = [];\r\n vm.bundlesum = 0;\r\n vm.totalDistance = 0;\r\n vm.bundleAvgDistance = 0;\r\n angular.forEach(vm.UWTicketList, function (d) {\r\n if (d.checked) {\r\n vm.bundleTicketArray.push(d.AddressId)\r\n vm.bundleData.push(d)\r\n vm.bundlePrice.push(d.FreelancerPrice)\r\n vm.bundlesum = vm.bundlePrice.reduce(function (total, price) {\r\n return total + price;\r\n }, 0);\r\n vm.bundleDistance.push(d.Distance)\r\n vm.totalDistance = vm.bundleDistance.reduce(function (total, distance) {\r\n return total + distance;\r\n }, 0);\r\n vm.bundleAvgDistance = vm.totalDistance / vm.bundleDistance.length;\r\n\r\n }\r\n })\r\n vm.confirmationMessage = 'Please confirm if you want to create bundle of mentioned addresses and broadcast to ' + vm.UserName + \" with user Id \" + vm.UserId;\r\n confirmationModalInstance = $uibModal.open({\r\n templateUrl: 'bundle_jobs_confirmation_model.html',\r\n scope: $scope,\r\n backdrop: 'static',\r\n size: 'lg'\r\n });\r\n }\r\n\r\n vm.confirmationCloseModal = function () {\r\n vm.DisableBroadcastButtons(false);\r\n vm.toBebundle = [];\r\n vm.bundlePrice = [];\r\n vm.bundlesum = 0; \r\n vm.totalDistance = 0;\r\n vm.bundleAvgDistance = 0;\r\n confirmationModalInstance.close();\r\n }\r\n\r\n vm.OpenPendingJobsBroadcastConfirmation = function(){\r\n broadcastconfirmationModal = $uibModal.open({\r\n templateUrl: 'pending_jobs_confirmation_model.html',\r\n scope: $scope,\r\n backdrop: 'static',\r\n size: 'md'\r\n });\r\n }\r\n\r\n vm.broadcastCloseModal = function () {\r\n vm.DisableBroadcastButtons(false);\r\n broadcastconfirmationModal.close();\r\n }\r\n\r\n\r\n vm.DisableBroadcastButtons = function (disable) {\r\n if (disable) {\r\n vm.disableBroadcastButton = true;\r\n vm.disableBroadcastCloseButton = true;\r\n }\r\n else {\r\n vm.disableBroadcastButton = false;\r\n vm.disableBroadcastCloseButton = false;\r\n }\r\n }\r\n\r\n\r\n vm.BundleJobsBroadcast = function () {\r\n var broadcastData = {\r\n \"AddressIdList\": vm.bundleTicketArray,\r\n \"UserId\": vm.UserId,\r\n \"UploadId\": $localStorage.UploadId\r\n }\r\n vm.DisableBroadcastButtons(true);\r\n PlanningResourseMapService.CreateJobBundleAndBroadcast(loggedinUser, broadcastData, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.GetUserUWDataPagingList(true, $localStorage.UploadId, vm.AnalysisId, vm.UserId, vm.ListType, vm.SortBy, vm.OrderSequence, uwtPageIndex, uwtPageSize, loggedinUser, token)\r\n vm.confirmationCloseModal();\r\n scope.CreateComboFlag = false;\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.confirmationCloseModal();\r\n scope.CreateComboFlag = false;\r\n }\r\n });\r\n }\r\n var today = new Date();\r\n var yesterday = new Date(today);\r\n yesterday.setDate(today.getDate() - 1);\r\n \r\n vm.startDateForAnalysis = yesterday;\r\n vm.endDateForAnalysis = new Date();\r\n\r\n\r\n vm.startDatenew = new Date();\r\n var pcdt = new Date();\r\n var year = pcdt.getFullYear();\r\n var month = ('0' + (pcdt.getMonth() + 1)).slice(-2);\r\n var day = ('0' + pcdt.getDate()).slice(-2);\r\n $scope.minDate = year + '-' + month + '-' + day;\r\n\r\n pcdt.setDate(pcdt.getDate() + 1);\r\n vm.endDatenew = pcdt;\r\n vm.showErrorMessage = false;\r\n vm.showAccountErrorMessage = false;\r\n\r\n $scope.getCurrentDate = function() {\r\n var currentDate = new Date();\r\n return currentDate.toISOString().split('T')[0];\r\n };\r\n\r\n vm.checkDateRange = function () {\r\n if (moment(vm.endDatenew) <= moment(vm.startDatenew)) {\r\n vm.showErrorMessage = true;\r\n } else {\r\n vm.showErrorMessage = false;\r\n }\r\n };\r\n\r\n vm.checkAnalysisDateRange = function () {\r\n if (moment(vm.endDateForAnalysis) < moment(vm.startDateForAnalysis)) {\r\n vm.showErrorMessage = true;\r\n } else {\r\n vm.showErrorMessage = false;\r\n }\r\n };\r\n\r\n vm.RunCampaignOnUsers = function () {\r\n vm.campaign_form.submitted = true;\r\n vm.userFormData.CampaignName = vm.CampaignName;\r\n if (vm.campaign_form.$valid) {\r\n PlanningResourseMapService.RunCampaignOnUsers(vm.userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseCampaignModel();\r\n }\r\n })\r\n }\r\n }\r\n\r\n $scope.uploadImageForNotice = function (files) {\r\n vm.FileName = \"\";\r\n vm.FilesDoc = files.files[0];\r\n vm.FileName = vm.FilesDoc.name;\r\n vm.FileSize = vm.FilesDoc.size;\r\n // var allowedFileSize = 1000000;\r\n var allowedExtensions = /(\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png|\\.JFIF|\\.jfif)$/i;\r\n if (!allowedExtensions.exec(vm.FileName)) {\r\n vm.FilesDoc = [];\r\n vm.clear();\r\n alert('Please upload file having extensions .jpg,.jpeg,.png only.');\r\n }\r\n // if(vm.FileSize > allowedFileSize){\r\n // vm.FilesDoc = [];\r\n // vm.clear(); \r\n // alert('File size cannot exceed 1MB');\r\n // }\r\n }\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n };\r\n\r\n vm.landingPageList = [\"Explorer\", \"Lead\", \"Wallet\", \"Job\", \"Customer\", \"Profile\", \"Skill\", \"Service Area\", \"Certificate\", \"Team\", \"My Website\", \"Link\"];\r\n // $scope.broadcastOptions = [\"SMS\", \"In-App Notification\", \"E-Mail\", \"WhatsApp Msg\"];\r\n\r\n vm.CreateNoticeOnUsers = function () {\r\n if (moment(vm.endDatenew) <= moment(vm.startDatenew)) {\r\n vm.showErrorMessage = true;\r\n }\r\n else {\r\n vm.Notice_BroadcastForm.submitted = true;\r\n vm.userFormData.ActivityName = vm.noticename;\r\n vm.userFormData.LandingPage = vm.landingPage;\r\n vm.userFormData.NoticeType = vm.noticeType;\r\n vm.userFormData.ActivityLink = vm.fileLink;\r\n vm.userFormData.ActivityDescription = vm.noticeDescription;\r\n vm.userFormData.NoticeStartDate = moment(vm.startDatenew).format(\"YYYY-MM-DD\");\r\n vm.userFormData.NoticeEnddate = moment(vm.endDatenew).format(\"YYYY-MM-DD\");\r\n if (vm.Notice_BroadcastForm.$valid) {\r\n vm.DisableCreateButton(true);\r\n PlanningResourseMapService.CreateNoticeOnUsers(vm.userFormData, vm.FilesDoc, vm.FileName, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.CloseNoticeModel();\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n }\r\n else if (resp.status == 500) {\r\n vm.showFailure(\"Failed\", \"Please select image to upload\");\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Please select image to upload\");\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n vm.campaignSkill = null;\r\n vm.campaignLocation = null;\r\n vm.campaignTools = null;\r\n vm.campaignLink = null;\r\n\r\n vm.DynamicRunCampaignOnUsers = function () {\r\n vm.campaign_form.submitted = true;\r\n vm.userFormData.CampaignName = vm.CampaignName;\r\n vm.userFormData.CampaignParameters = [];\r\n vm.userFormData.CampaignParameters.push(vm.campaignSkill);\r\n vm.userFormData.CampaignParameters.push(vm.campaignLocation);\r\n vm.userFormData.CampaignParameters.push(vm.campaignTools);\r\n vm.userFormData.CampaignParameters.push(vm.campaignLink);\r\n if (vm.campaign_form.$valid) {\r\n PlanningResourseMapService.RunCampaignOnUsers(vm.userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseDynamicCampaignModel();\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.RunExcepCampaignOnUsers = function () {\r\n vm.campaign_form.submitted = true;\r\n if (vm.campaign_form.$valid) {\r\n PlanningResourseMapService.RunCampaignOnFilteredUsers(vm.UserIdsList, vm.CampaignName, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseCampaignModel();\r\n }\r\n })\r\n }\r\n }\r\n\r\n // 360 profile\r\n vm.GetAllCampaignName = function () {\r\n PlanningResourseMapService.GetAllCampaignName(loggedinUser, token).then(function (resp) {\r\n vm.campaignNameList = resp.data;\r\n })\r\n }\r\n\r\n vm.GetAllConsumerCampaignName = function () {\r\n PlanningResourseMapService.GetAllConsumerCampaignName(loggedinUser, token).then(function (resp) {\r\n vm.consumerCampaignNameList = resp.data;\r\n })\r\n }\r\n\r\n vm.GetAllGenericCampaignName = function () {\r\n PlanningResourseMapService.GetAllGenericCampaignName(loggedinUser, token).then(function (resp) {\r\n vm.genericCampaignNameList = resp.data;\r\n })\r\n }\r\n\r\n\r\n vm.GetFinanceTicketDetail = function (paymentId, isCollapsed) {\r\n $scope.isCollapsed = !isCollapsed;\r\n DashboardService.GetFinanceTicketDetail(paymentId).then(function (resp) {\r\n vm.financedetails = resp.data;\r\n })\r\n }\r\n\r\n vm.GetLastFollowUpOnTicketId = function (teamid) {\r\n vm.userId = teamid;\r\n vm.FollowupListArr = [];\r\n DashboardService.GetLastFollowUpOnTicketId(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.followupdata = resp.data;\r\n angular.forEach(vm.followupdata, function (fdetail, i) {\r\n if (fdetail != null) {\r\n angular.forEach(vm.followupdata[i].FollowUpOnTicket, function (fdetail, i) {\r\n vm.FollowupList = fdetail.FollowUpOnTicket;\r\n vm.FollowupListArr.push(fdetail);\r\n })\r\n\r\n }\r\n })\r\n })\r\n }\r\n\r\n vm.Get360TeamProfileData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360ProfileData(loggedinUser, teamid, token).then(function (resp) {\r\n if (resp.data) {\r\n $scope.userSingle();\r\n }\r\n vm.teamdata = resp.data;\r\n vm.AvgRating = vm.teamdata.userProfile.AverageRating;\r\n vm.ReviewsList = vm.teamdata.userProfile.Reviews\r\n vm.teamdata.ratingStars = vm.getRatingStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.blankStars = vm.getBlankStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.avgratingStars = vm.getAvgRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.avgblankStars = vm.getAvgBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n if (vm.teamdata.userProfile.ContactNumber) {\r\n vm.teamdata.userProfile.ContactNumber = vm.teamdata.userProfile.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n\r\n if (vm.teamdata.userProfile.Reviews) {\r\n vm.teamdata.userProfile.Reviews.forEach(function (element, i) {\r\n vm.teamdata.userratingStars = vm.getUserRatingStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n vm.teamdata.userblankStars = vm.getUserBlankStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n element.arrayRating = vm.teamdata.userratingStars;\r\n element.blankRating = vm.teamdata.userblankStars;\r\n });\r\n }\r\n\r\n vm.TechnicianRating = Number(vm.teamdata.userProfile.Ratings.TechnicianRating).toFixed(1);\r\n $timeout(function () {\r\n displayTotals();\r\n }, 300);\r\n }, function () {\r\n })\r\n }\r\n\r\n vm.Get360AuthorizedDetail = function () {\r\n DashboardService.GetAuthorizedServicePartnerDetail(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.authorizeDetail = resp.data;\r\n })\r\n }\r\n\r\n vm.brandList = [\"LG\", \"Samsung\", \"Havells & lloyds\", \"Hitachi\", \"Panasonic\", \"O general\", \"Daikin\", \"Micromax\", \"Bluestar\", \"Toshiba\", \"Glen\", \"Lifelong\", \"Whirlpool\", \"IFB\", \"Philips\", \"Godrej\", \"Bajaj\"];\r\n\r\n vm.productList = [\"Aircon\", \"Air cooler\", \"Home Appliances\", \"IT\", \"AC\", \"Multi product\", \"RO\", \"Printer\"];\r\n\r\n vm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getAvgRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getAvgBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getUserRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getUserBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n $scope.totalWS = 0;\r\n $scope.wsPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function (userId) {\r\n $scope.wsPerPage = vm.userPageListCount;\r\n uPageSize = $scope.wsPerPage;\r\n $scope.WSTablePageChanged($scope.Userpagination.current);\r\n\r\n uPageIndex = $scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n vm.wsersFilterArray();\r\n vm.Get360WorkSummary(loggedinUser, token, userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n }\r\n\r\n uPageIndex = $scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n if (witemNames != 'Search') {\r\n vm.wsersFilterArray();\r\n }\r\n\r\n vm.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n\r\n\r\n vm.wsersFilterArray = function () {\r\n witemNames = \"\";\r\n witemValues = \"\";\r\n\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null) {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n } else {\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n }\r\n }\r\n if (vm.userNameSearch) {\r\n if (witemNames) {\r\n witemNames = witemNames + ',Search';\r\n witemValues = witemValues + \",\" + vm.userNameSearch;\r\n }\r\n else {\r\n witemNames = 'Search';\r\n witemValues = vm.userNameSearch;\r\n }\r\n }\r\n\r\n if (vm.JobcountbyStatus) {\r\n if (witemNames) {\r\n witemNames = witemNames + ',Status';\r\n witemValues = witemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else {\r\n witemNames = 'Status';\r\n witemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n // apply user rating to all displays\r\n // add star ratings to an array\r\n var starRating = document.querySelectorAll(\".fa-star\"),\r\n ratingTotal = document.querySelectorAll(\".rating-total\");\r\n\r\n // convert ratingTotal HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n // display initial rating totals\r\n // displayTotals();\r\n\r\n // use event listener to record changes to user rating\r\n starRating.forEach(function (star) {\r\n star.addEventListener(\"change\", recordRating);\r\n })\r\n\r\n function recordRating(event) {\r\n // use indexOf to identify selected user rating\r\n var userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n // define selected rating to adjust display totals\r\n var selectedIndex;\r\n\r\n starRating.forEach(function (item, index) {\r\n // add or remove .active class based upon selected user rating\r\n if (index < userRating + 1) {\r\n starRating[index].classList.add(\"active\");\r\n selectedIndex = index;\r\n } else {\r\n starRating[index].classList.remove(\"active\");\r\n }\r\n\r\n displayTotals(selectedIndex);\r\n });\r\n }\r\n vm.countForStatus = 50;\r\n // display star rating totals from html custom data-\r\n function displayTotals(selectedIndex) {\r\n var barChart = document.querySelectorAll(\".bar\"),\r\n displaySummary = document.querySelectorAll(\".summary\"),\r\n numRatings = 0,\r\n numRatingsValue = 0;\r\n\r\n // convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseBarChart = Array.from(barChart).reverse();\r\n\r\n reverseRatingTotal.forEach(function (total, index) {\r\n if (index == selectedIndex) {\r\n // add selected rating to display total\r\n total.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n // adjust selected bar width\r\n reverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n } else {\r\n // display unselected totals\r\n total.innerHTML = total.getAttribute(\"data-rating-count\");\r\n // adjust unselected bar widths\r\n reverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n }\r\n // count total number and value of ratings\r\n numRatings += parseInt(total.innerHTML);\r\n numRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n });\r\n\r\n // display rating average and total\r\n ratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n // displaySummary[0].innerHTML = ratingsAverage + \" average based on \" + numRatings + \" reviews.\";\r\n }\r\n\r\n vm.Get360VendorTeamData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedinUser, teamid, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n vm.GetUsersTicket = function (isCollapsed, status, id, type) {\r\n $scope.activeRow = id;\r\n $scope.isCollapsed = !isCollapsed;\r\n vm.userIdforStatus = id;\r\n vm.statusForTickets = status;\r\n vm.JobcountbyStatus = '';\r\n vm.filterType = type;\r\n vm.FilterArray();\r\n if (!vm.filterType) {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }\r\n vm.getAllJobTicketsCopyForUsers(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }\r\n\r\n vm.getAllJobTicketsCopyForUsers = function (loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize) {\r\n var templateCols = \"\";\r\n vm.resetAllSelect();\r\n var templateCols = \"\";\r\n vm.UserticketList = [];\r\n PageIndex = PageIndex ? PageIndex : 1;\r\n vm.DateField = vm.DateField ? vm.DateField : \"CreatedOn\";\r\n ManualAssignationJobService.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, vm.DateField, PageIndex, PageSize, vm.SortType, vm.SortField).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserticketList = resp.data.LightTicketModels;\r\n }\r\n\r\n }, function () {\r\n });\r\n\r\n }\r\n\r\n vm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.wsTicketList = resp.data.workSummaryData;\r\n $scope.totalWS = resp.data.WorkSummaryTotalCount;\r\n if (vm.wsTicketList.length < vm.userPageListCount)\r\n vm.wsListLength = $scope.totalWS;\r\n else\r\n vm.wsListLength = uPageIndex * vm.userPageListCount;\r\n if (uPageIndex == 1)\r\n vm.wspageindexCount = 1;\r\n else\r\n vm.wspageindexCount = (((uPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n vm.FinanceFiltersList = [];\r\n vm.GetFinancialSummary = function () {\r\n DashboardService.GetFinancialSummary(loggedinUser, token, vm.userId, fnitemNames, fnitemValues, fPageIndex, fPageSize, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.paymentCount = resp.data.paymentsSummary;\r\n vm.FinanceFiltersList = resp.data.financialSummary360.financialLPSummaryList;\r\n $scope.totalFinList = resp.data.financialSummary360.count;\r\n if (vm.FinanceFiltersList.length < vm.financePageListCount)\r\n vm.financeListLength = $scope.totalFinList;\r\n else\r\n vm.financeListLength = fPageIndex * vm.financePageListCount;\r\n if (fPageIndex == 1)\r\n vm.fpageindexCount = 1;\r\n else\r\n vm.fpageindexCount = (((fPageIndex - 1) * vm.financePageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n\r\n vm.Get360SkillSummary = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for (var i = 0; i < vm.skillsetData.CertificateDetails.length; i++) {\r\n vm.CertimageServices(vm.skillsetData.CertificateDetails[i].TrainingCertificate, i);\r\n }\r\n\r\n if (vm.skillsetData.PreviousCompanyDetailsList) {\r\n for (var i = 0; i < vm.skillsetData.PreviousCompanyDetailsList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter) == 'image')\r\n vm.PreviousCompnyExperienceLetterServices(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter, i);\r\n }\r\n }\r\n\r\n if (vm.skillsetData.UserTrainingList) {\r\n for (var i = 0; i < vm.skillsetData.UserTrainingList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingImage) == 'image')\r\n vm.TrainingImageServices(vm.skillsetData.UserTrainingList[i].TrainingImage, i);\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingAttendance) == 'image')\r\n vm.TrainingAttendanceServices(vm.skillsetData.UserTrainingList[i].TrainingAttendance, i);\r\n }\r\n\r\n }\r\n })\r\n }\r\n\r\n vm.GetReviewAndRatings = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.GetReviewAndRatings(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.reviewData = resp.data;\r\n vm.teamdata.InstallationratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.teamdata.InstallationblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.teamdata.SafetyratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.teamdata.SafetyblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.teamdata.VisitratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.teamdata.VisitblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.teamdata.CourteousratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.teamdata.CourteousblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.teamdata.ProratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.teamdata.ProblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.teamdata.ServiceratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n vm.teamdata.ServiceblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n })\r\n }\r\n\r\n\r\n vm.Get360VendorTeamData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n\r\n vm.GetToolsAndAssets = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.GetToolsAndAssets(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.assetData = resp.data;\r\n })\r\n }\r\n\r\n vm.selectedAccounts = [];\r\n vm.ChangeDetectinAccountSection = function () {\r\n if(vm.selectedAccounts.length <= 5){\r\n vm.showAccountErrorMessage = false;\r\n }\r\n }\r\n vm.CreateDynamicAnalysis = function () {\r\n if(!vm.endDateForAnalysis){\r\n vm.endDateForAnalysis = new Date();\r\n }\r\n if (moment(vm.endDateForAnalysis) < moment(vm.startDateForAnalysis)) {\r\n vm.showErrorMessage = true;\r\n }\r\n if(vm.selectedAccounts.length > 5){\r\n vm.showAccountErrorMessage = true;\r\n }\r\n else{\r\n vm.Dynamic_Analysis_Form.submitted = true;\r\n var existingDataform = {\r\n \"AccountIdList\": vm.selectedAccounts,\r\n \"UploadedFileName\": vm.fileName,\r\n \"FileDescription\": vm.fileDescription,\r\n \"FromDate\": moment(vm.startDateForAnalysis).format(\"YYYY-MM-DD\"),\r\n \"ToDate\": moment(vm.endDateForAnalysis).format(\"YYYY-MM-DD\")\r\n }\r\n if(vm.selectedAccounts && vm.fileName && vm.fileDescription) {\r\n vm.Dynamic_Analysis_Form.$valid = true;\r\n }\r\n if (vm.Dynamic_Analysis_Form.$valid) {\r\n vm.DisableCreateButton(true);\r\n PlanningResourseMapService.CreateDynamicAnalysis(existingDataform, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseExistingModal();\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.CloseExistingModal();\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n function preprocessData(users) {\r\n if (users && users.length > 0) {\r\n angular.forEach(users, function (user) {\r\n user.locationCount = user.Locations && user.Locations.length > 0 ? user.Locations.length : 0;\r\n user.locationToolTip = \"\";\r\n if (user.locationCount > 0) {\r\n angular.forEach(user.Locations, function (loc) {\r\n user.locationToolTip += loc + \",\";\r\n })\r\n user.locationToolTip = user.locationToolTip.substr(0, user.locationToolTip.length - 1);\r\n }\r\n\r\n user.worklocationCount = user.UserWorkLocations && user.UserWorkLocations.length > 0 ? user.UserWorkLocations.length : 0;\r\n user.worklocationToolTip = \"\";\r\n if (user.worklocationCount > 0) {\r\n angular.forEach(user.UserWorkLocations, function (loc) {\r\n user.worklocationToolTip += loc + \",\";\r\n })\r\n user.worklocationToolTip = user.worklocationToolTip.substr(0, user.worklocationToolTip.length - 1);\r\n }\r\n\r\n user.SkillSetCount = user.SkillSet && user.SkillSet.length > 0 ? user.SkillSet.length : 0;\r\n user.SkillSetToolTip = \"\";\r\n if (user.SkillSetCount > 0) {\r\n angular.forEach(user.SkillSet, function (s) {\r\n user.SkillSetToolTip += s + \",\";\r\n })\r\n user.SkillSetToolTip = user.SkillSetToolTip.substr(0, user.SkillSetToolTip.length - 1);\r\n }\r\n\r\n user.OneJobSkillSetCount = user.OneJobDoneSkills && user.OneJobDoneSkills.length > 0 ? user.OneJobDoneSkills.length : 0;\r\n user.OneJobSkillSetToolTip = \"\";\r\n if (user.OneJobSkillSetCount > 0) {\r\n angular.forEach(user.OneJobDoneSkills, function (s) {\r\n user.OneJobSkillSetToolTip += s + \",\";\r\n })\r\n user.OneJobSkillSetToolTip = user.OneJobSkillSetToolTip.substr(0, user.OneJobSkillSetToolTip.length - 1);\r\n }\r\n\r\n });\r\n }\r\n }\r\n // for arrow rotate \r\n\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n };\r\n $scope.activatedButton = function () {\r\n $scope.isactivated = !$scope.isactivated;\r\n }\r\n $scope.activatedButton1 = function () {\r\n $scope.isactivated1 = !$scope.isactivated1;\r\n }\r\n $scope.activatedButton2 = function () {\r\n $scope.isactivated2 = !$scope.isactivated2;\r\n }\r\n $scope.activatedButton3 = function () {\r\n $scope.isactivated3 = !$scope.isactivated3;\r\n }\r\n $scope.activatedButton4 = function () {\r\n $scope.isactivated4 = !$scope.isactivated4;\r\n }\r\n $scope.activatedButton5 = function () {\r\n $scope.isactivated5 = !$scope.isactivated5;\r\n }\r\n $scope.activatedButton6 = function () {\r\n $scope.isactivated6 = !$scope.isactivated6;\r\n }\r\n $scope.activatedButton7 = function () {\r\n $scope.isactivated7 = !$scope.isactivated7;\r\n }\r\n $scope.activatedButton8 = function () {\r\n $scope.isactivated8 = !$scope.isactivated8;\r\n }\r\n $scope.activatedButton9 = function () {\r\n $scope.isactivated9 = !$scope.isactivated9;\r\n }\r\n $scope.activatedButton10 = function () {\r\n $scope.isactivated10 = !$scope.isactivated10;\r\n }\r\n $scope.activatedButton11 = function () {\r\n $scope.isactivated11 = !$scope.isactivated11;\r\n }\r\n $scope.activatedButton12 = function () {\r\n $scope.isactivated12 = !$scope.isactivated12;\r\n }\r\n $scope.activatedButton13 = function () {\r\n $scope.isactivated13 = !$scope.isactivated13;\r\n }\r\n $scope.activatedButton14 = function () {\r\n $scope.isactivated14 = !$scope.isactivated14;\r\n }\r\n $scope.activatedButton15 = function () {\r\n $scope.isactivated15 = !$scope.isactivated15;\r\n }\r\n $scope.activatedButton16 = function () {\r\n $scope.isactivated16 = !$scope.isactivated16;\r\n }\r\n $scope.activatedButton17 = function () {\r\n $scope.isactivated17 = !$scope.isactivated17;\r\n }\r\n $scope.activatedButton18 = function () {\r\n $scope.isactivated18 = !$scope.isactivated18;\r\n }\r\n $scope.activatedButton19 = function () {\r\n $scope.isactivated19 = !$scope.isactivated19;\r\n }\r\n\r\n $scope.activatedButton20 = function () {\r\n $scope.isactivated20 = !$scope.isactivated20;\r\n }\r\n $scope.activatedButton21 = function () {\r\n $scope.isactivated21 = !$scope.isactivated21;\r\n }\r\n $scope.activatedButton22 = function () {\r\n $scope.isactivated22 = !$scope.isactivated22;\r\n }\r\n $scope.activatedButton23 = function () {\r\n $scope.isactivated23 = !$scope.isactivated23;\r\n }\r\n $scope.activatedButton24 = function () {\r\n $scope.isactivated24 = !$scope.isactivated24;\r\n }\r\n $scope.activatedButton25 = function () {\r\n $scope.isactivated25 = !$scope.isactivated25;\r\n }\r\n $scope.activatedButton26 = function () {\r\n $scope.isactivated26 = !$scope.isactivated26;\r\n }\r\n $scope.activatedButton27 = function () {\r\n $scope.isactivated27 = !$scope.isactivated27;\r\n }\r\n $scope.activatedButton28 = function () {\r\n $scope.isactivated28 = !$scope.isactivated28;\r\n }\r\n $scope.activatedButton29 = function () {\r\n $scope.isactivated29 = !$scope.isactivated29;\r\n }\r\n $scope.activatedButton30 = function () {\r\n $scope.isactivated30 = !$scope.isactivated30;\r\n }\r\n $scope.activatedButton31 = function () {\r\n $scope.isactivated31 = !$scope.isactivated31;\r\n }\r\n $scope.activatedButton32 = function () {\r\n $scope.isactivated32 = !$scope.isactivated32;\r\n }\r\n $scope.activatedButton33 = function () {\r\n $scope.isactivated33 = !$scope.isactivated33;\r\n }\r\n $scope.activatedButton34 = function () {\r\n $scope.isactivated34 = !$scope.isactivated34;\r\n }\r\n $scope.activatedButton35 = function () {\r\n $scope.isactivated35 = !$scope.isactivated35;\r\n }\r\n $scope.activatedButton36 = function () {\r\n $scope.isactivated36 = !$scope.isactivated36;\r\n }\r\n $scope.activatedButton37 = function () {\r\n $scope.isactivated37 = !$scope.isactivated37;\r\n }\r\n $scope.activatedButton38 = function () {\r\n $scope.isactivated38 = !$scope.isactivated38;\r\n }\r\n $scope.activatedButton39 = function () {\r\n $scope.isactivated39 = !$scope.isactivated39;\r\n }\r\n var $range = $(\".js-range-slider\"),\r\n $from = $(\".from\"),\r\n $to = $(\".to\"),\r\n range,\r\n min = $range.data('min'),\r\n max = $range.data('max'),\r\n from,\r\n to;\r\n\r\n var updateValues = function () {\r\n $from.prop(\"value\", from);\r\n $to.prop(\"value\", to);\r\n };\r\n\r\n $range.ionRangeSlider({\r\n onChange: function (data) {\r\n from = data.from;\r\n to = data.to;\r\n updateValues();\r\n }\r\n });\r\n\r\n range = $range.data(\"ionRangeSlider\");\r\n var updateRange = function () {\r\n range.update({\r\n from: from,\r\n to: to\r\n });\r\n };\r\n\r\n $from.on(\"input\", function () {\r\n from = +$(this).prop(\"value\");\r\n if (from < min) {\r\n from = min;\r\n }\r\n if (from > to) {\r\n from = to;\r\n }\r\n updateValues();\r\n updateRange();\r\n });\r\n\r\n $to.on(\"input\", function () {\r\n to = +$(this).prop(\"value\");\r\n if (to > max) {\r\n to = max;\r\n }\r\n if (to < from) {\r\n to = from;\r\n }\r\n updateValues();\r\n\r\n\r\n updateRange();\r\n });\r\n }\r\n});\nangular.module('inspinia').controller('PlanningResourceController', function ($scope, $uibModal) {\r\n\r\n $scope.openModal = function () {\r\n $uibModal.open({\r\n templateUrl: 'customModal.html',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n\r\n $scope.openSaveReport = function () {\r\n $uibModal.open({\r\n templateUrl: 'saveReport.html',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n $scope.openEmail = function () {\r\n $uibModal.open({\r\n templateUrl: 'emailReport.html',\r\n size:'lg',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n $scope.priceSlider = 10;\r\n $scope.myTrigger = \"outsideClick\";\r\n\r\n $scope.toggleSingleClass = function() {\r\n $scope.class_status = !$scope.class_status;\r\n };\r\n \r\n});\nangular.module('inspinia').service('PlanningReportService', function (FreelancerURL, ApiURL,SchedulingAPI, LocationURL, $log, $http) {\r\n\r\n \r\n // https://perf.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetSchedulingEvaluationResultReport?reqUserId=F00000000000\r\n this.GetSchedulingEvaluationResult = function(data,reqUserId,token){\r\n \tvar url = SchedulingAPI + '/api/AssistedScheduling/GetSchedulingEvaluationResultReport?reqUserId='+reqUserId;\r\n return $http.post(url,data,{\r\n \t\theaders:{'Content-Type':'application/json','Token':token, 'UserId':reqUserId}\r\n \t})\r\n\r\n }\r\n\r\n \r\n\r\n \r\n\r\n})\nangular.module('inspinia').controller('PlanningReportController', function ($scope, $uibModal) {\r\n\r\n $scope.openModal = function () {\r\n $uibModal.open({\r\n templateUrl: 'customModal.html',\r\n controller: function ($scope, $uibModalInstance) {\r\n $scope.ok = function () {\r\n $uibModalInstance.close();\r\n };\r\n \r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n }\r\n })\r\n };\r\n\r\n $scope.toggleSingleClass = function() {\r\n $scope.class_status = !$scope.class_status;\r\n };\r\n \r\n});\nangular.module('inspinia').service('PlanningBulkUploadService', function () {\r\n\r\n \r\n});\r\n\nangular.module('inspinia').controller('PlanningBulkUploadController', function ($scope, $log, $localStorage,PlanningBulkUploadService) {\r\n\r\n var vm = this;\r\n \r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n if (!loggedInUserId) {\r\n \r\n $state.go('Login', {\r\n reload: true\r\n });\r\n \r\n } else\r\n {\r\n \r\n }\r\n\r\n})\nangular.module('inspinia').service('PersistentReportService', function (PublicApiURL, ApiURL, $window, $http) {\r\n\r\n var vm = this;\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\nthis.ListPersistentReports = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/PersistentReport/GetPersistentReports';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId':loggedinUser }\r\n });\r\n}\r\n\r\n//https://perf.mymobiforce.com/publicapi/api/Report/DownloadPersistentReport?reportName=AllTicket21092312305953.csv\r\nthis.DownloadReport = function (reportName) { \r\n var url = PublicApiURL + \"/api/Report/DownloadPersistentReport?reportName=\" + reportName; \r\n $window.open(url, \"_blank\");\r\n}\r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('PersistentReportController', function (PersistentReportService,ApiURL, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder,$window, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tPersistentReportService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n\t\tPersistentReportService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\t$scope.$parent.$parent.main.implementSelectItems('ReportList', this);\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\t\r\n\t\tvm.GetListPersistentReports = function (loggedInUserId, reload) {\r\n\t\t\tPersistentReportService.ListPersistentReports(loggedInUserId, token).then(function (resp) {\r\n\t\t\t\tif (resp.data) {\r\n\t\t\t\t\tvm.ReportList = resp.data;\r\n\t\t\t\t\tvm.recteateTable();\r\n\t\t\t\t\tconsole.log(vm.ReportList);\r\n\t\t\t\t\tif(reload){\r\n\t\t\t\t\t\tvm.reloadData();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.GetListPersistentReports(loggedinUser, false);\r\n\t\tvm.recteateTable = function () {\r\n\t\t\tvm.headerCompiled = false;\t\t\t\r\n\t\t\tvm.selected = {};\r\n\t\t\tvm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tdefer.resolve(vm.ReportList);\r\n\t\t\t\treturn defer.promise;\r\n\t\t\t})\r\n\t\t\t\t.withDOM('<\"html5buttons\"B>lTfgitp')\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [1, 'desc'])\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompiled) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompiled = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.withBootstrap();\r\n\r\n\r\n\t\t\tvm.dtColumns = [\r\n\t\t\t\t//DTColumnBuilder.newColumn('DocId').withTitle('Doc Id').notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('Name').withTitle('Report Name').notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('CreatedOn').withTitle('Created On').withOption('type', 'date'),\t\r\n\t\t\t\tDTColumnBuilder.newColumn('Size').withTitle('Size').notSortable(),\t\r\n\t\t\t\tDTColumnBuilder.newColumn('DocId').withTitle('Download').notSortable().renderWith(function (data) {\t\t\t\t\t\r\n\t\t\t\t\treturn ' ' + '' + '';\r\n\t\t\t\t}),\t\r\n\r\n\t\t\t];\r\n\r\n\t\t\tvm.downloadPersistentReport = function (ReportNo) { \r\n\t\tPersistentReportService.DownloadReport(ReportNo).then(function(resp){ \r\n\t\t\tif (resp && resp.status == 200) { \r\n\t\t\t\tvm.showSuccess(\"Success\", \"Downloaded\");\r\n\t\t \t}\r\n\t\t \telse{\r\n\t\t \t\tvm.showFailure(\"Failure\", \"Unable to Downloaded due to server issue\");\r\n\t\t \t}\t\t\t\r\n\t\t })\r\n\t }\r\n\t}\r\n\r\n\t\r\n\r\n\tvm.reloadData = function(){\r\n\t\tvar resetPaging = true;\r\n\t vm.dtInstance.reloadData(resetPaging);\r\n\t }\r\n\r\n\t}\r\n});\n\r\nangular.module('inspinia').service('PincodeFinderService', function (ApiURL, FreelancerURL, SchedulingAPI, $log, $http, $localStorage) {\r\n\r\n this.GetFreelancerDataByUserId = function (userId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId + '/' + loggedinUser + \"/byUserId\";\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetPinCodesAndJobInfo = function (loggedinUser,token,data) {\r\n var url = ApiURL + '/api/AddressMaster/GetPinCodesAndJobInfo';\r\n return $http.post(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n } \r\n\r\n this.GetMaxJobServedDistance = function (loggedinUser,token,data) {\r\n var url = ApiURL + '/api/AddressMaster/GetOptimizedJobServedDistance';\r\n return $http.post(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n } \r\n\r\n});\r\n\nangular.module('inspinia').controller('PincodeFinderController', function (PincodeFinderService,DashboardService, $stateParams, $scope, $uibModal, $timeout, $http, NgMap,$location,$anchorScroll,\r\n $uibModal, $localStorage, $state, UIURL, $timeout) {\r\n var vm = this;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var userId = $stateParams.userId;\r\n vm.DistanceBetween = 10;\r\n $scope.selectedPincode = null;\r\n var uPageIndex = 0;\r\n var uPageSize = 0;\r\n // $scope.selectedFiltersString = \"\";\r\n var uitemNames = \"Status\";\r\n var uitemValues = \"Approved|Completed\";\r\n vm.OrderBy = \"CreatedOn\";\r\n vm.sorttype = \"desc\";\r\n var startDate = moment().subtract(5, 'years').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: moment().subtract(5, 'years'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n $scope.ticketFilters = {\r\n Approved: true,\r\n Cancelled: false,\r\n Completed: true,\r\n Assigned: false\r\n};\r\n\r\n$scope.pincodeFilters = {\r\n InProfileNoJobs: true,\r\n InProfileWithJobs: true,\r\n NotInProfileWithJobs: true,\r\n NotInProfileNoJobs: true\r\n};\r\n\r\n$scope.sortType = ''; // Default sorting column\r\n$scope.sortReverse = false; // Default sorting order\r\n\r\n$scope.sortBy = function (column) {\r\n if ($scope.sortType === column) {\r\n $scope.sortReverse = !$scope.sortReverse;\r\n } else {\r\n $scope.sortType = column;\r\n $scope.sortReverse = false;\r\n }\r\n};\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) { \r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.GetPinCodesAndJobInfo();\r\n };\r\n\r\n var token = $localStorage.token;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n\r\n NgMap.getMap().then(function (map) {\r\n vm.map = map;\r\n });\r\n\r\n vm.getRadius = function (num) {\r\n return Math.sqrt(num) * 100;\r\n }\r\n\r\n vm.backprvpage = function () {\r\n $state.go('index.AllUsersList', {\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n const freelancer = {\r\n url: \"../../assets/images/patterns/FL.png\"\r\n };\r\n const vendor = {\r\n url: \"../../assets/images/patterns/FV.png\"\r\n };\r\n const vendorTeam = {\r\n url: \"../../assets/images/patterns/FVT.png\"\r\n };\r\n\r\n vm.highlightRow = function (pincode) {\r\n $scope.selectedPincode = pincode;\r\n };\r\n\r\n\r\n vm.showMapWithUser = function () {\r\n NgMap.getMap().then(function (map) {\r\n if (vm.techData) {\r\n if (vm.techData.Role == 'Field Engineer') {\r\n icons = freelancer\r\n }\r\n else if (vm.techData.Role == 'Vendor Manager') {\r\n icons = vendor\r\n }\r\n else if (vm.techData.Role == 'Fixed Team') {\r\n icons = vendorTeam\r\n }\r\n var latLng = new google.maps.LatLng(vm.techData.FixedLatitude, vm.techData.FixedLongitude);\r\n const marker = new google.maps.Marker({ position: latLng, icon: icons });\r\n const contentString = \"

\" +vm.techData.Role + \"

Name: \" + vm.techData.FirstName + ' ' + vm.techData.LastName + \"SkillSet: \" + vm.techData.SkillSet + \"Address: \" + vm.techData.CurrentAdd1 + ' ' + vm.techData.CurrentAdd2 + \"City: \" + vm.techData.City + \"State: \" + vm.techData.CurrentState + \"Pincode: \" + vm.techData.CurrentPinCode + \"GeoLocation: \" + vm.techData.FixedGeoLocation + \"
\";\r\n var infowindow = new google.maps.InfoWindow({ content: contentString });\r\n marker.addListener(\"click\", function () {\r\n infowindow.open(map, marker);\r\n });\r\n marker.setMap(map);\r\n map.panTo(latLng);\r\n map.setZoom(12);\r\n if((vm.techData.FixedLatitude != 0) && (vm.techData.FixedLongitude != 0)){\r\n vm.GetMaxJobServedDistance();\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n $scope.onSliderMouseUp = function () {\r\n vm.GetPinCodesAndJobInfo();\r\n };\r\n\r\n function clearTicketMarkers() {\r\n for (var i = 0; i < ticketMarkers.length; i++) {\r\n ticketMarkers[i].setMap(null);\r\n }\r\n }\r\n\r\n function clearPinCodeMarkers() {\r\n for (var i = 0; i < pinCodeMarkers.length; i++) {\r\n pinCodeMarkers[i].setMap(null);\r\n }\r\n }\r\n\r\n function deleteTicketMarkers() {\r\n clearTicketMarkers();\r\n ticketMarkers = [];\r\n }\r\n\r\n function deletePinCodeMarkers() {\r\n clearPinCodeMarkers();\r\n pinCodeMarkers = [];\r\n }\r\n\r\n const pincodesWithJobsInProfile = {\r\n url: \"https://maps.google.com/mapfiles/ms/micons/green-dot.png\"\r\n };\r\n const pincodesWithoutJobsInProfile = {\r\n url: \"https://maps.google.com/mapfiles/ms/micons/orange-dot.png\"\r\n };\r\n const pincodesNotExist = {\r\n url: \"https://maps.google.com/mapfiles/ms/micons/red-dot.png\"\r\n }\r\n const pincodesWithJobsNotInProfile = {\r\n url: \"https://maps.google.com/mapfiles/ms/micons/blue-dot.png\" \r\n }\r\n\r\n\r\n var ticketMarkers = [];\r\n var pinCodeMarkers = [];\r\n var bouncingMarker = null; \r\n vm.showMapWithTechBasedOnPincodes = function () {\r\n NgMap.getMap().then(function (map) {\r\n $scope.infoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n var circleCenter = new google.maps.LatLng(vm.techData.FixedLatitude, vm.techData.FixedLongitude);\r\n var circleRadius = vm.DistanceBetween*1000;\r\n // Remove previous circle if it exists\r\n if (vm.circle) {\r\n vm.circle.setMap(null);\r\n }\r\n // Create a circle\r\n vm.circle = new google.maps.Circle({\r\n strokeColor: '#00FF00', // Green color\r\n strokeOpacity: 0.8,\r\n strokeWeight: 2,\r\n fillColor: '#00FF00',\r\n fillOpacity: 0.35,\r\n map: map,\r\n center: circleCenter,\r\n radius: circleRadius,\r\n });\r\n for (var i = 0; i < vm.userslistbyTkt.length; i++) {\r\n var data = vm.userslistbyTkt[i]\r\n var myLatlng = new google.maps.LatLng(data.Latitude, data.Longitude);\r\n // Check if data.PinCode is in vm.techData.Locations list\r\n // var pinCodeInLocations = vm.techData.Locations.includes(data.PinCode);\r\n // var icon = pinCodeInLocations ? iconsMap.start : iconsMap.end;\r\n // var marker = new google.maps.Marker({\r\n // position: myLatlng,\r\n // map: map,\r\n // icon: icon\r\n // });\r\n // }\r\n if($scope.pincodeFilters.InProfileNoJobs && data.InProfile && data.JobCount == 0){\r\n var icon = pincodesWithoutJobsInProfile;\r\n marker = new google.maps.Marker({\r\n position: myLatlng,\r\n map: map,\r\n icon: icon\r\n });\r\n }\r\n if($scope.pincodeFilters.InProfileWithJobs && data.InProfile && data.JobCount > 0){\r\n var icon = pincodesWithJobsInProfile;\r\n marker = new google.maps.Marker({\r\n position: myLatlng,\r\n map: map,\r\n icon: icon\r\n });\r\n }\r\n if($scope.pincodeFilters.NotInProfileWithJobs && data.JobCount > 0 && !data.InProfile){\r\n var icon = pincodesWithJobsNotInProfile;\r\n marker = new google.maps.Marker({\r\n position: myLatlng,\r\n map: map,\r\n icon: icon\r\n });\r\n }\r\n if($scope.pincodeFilters.NotInProfileNoJobs && data.JobCount == 0 && !data.InProfile){\r\n var icon = pincodesNotExist;\r\n marker = new google.maps.Marker({\r\n position: myLatlng,\r\n map: map,\r\n icon: icon\r\n });\r\n }\r\n // var marker = new google.maps.Marker({\r\n // position: myLatlng,\r\n // map: map,\r\n // icon: icon\r\n // });\r\n pinCodeMarkers.push(marker);\r\n (function (marker, data, index) {\r\n google.maps.event.addListener(marker, \"click\", function (e) {\r\n if (bouncingMarker && bouncingMarker !== marker) {\r\n bouncingMarker.setAnimation(null);\r\n }\r\n toggleBounce(marker); \r\n bouncingMarker = marker; \r\n // $scope.infoWindow.setContent(\"

Pincode Info

Distance: \" + data.Distance + 'KM' + \"PinCode: \" + data.PinCode + \"Locality: \" + data.Locality + \"Tehsil: \" + data.Tehsil + \"District: \" + data.District + \"City: \" + data.City + \"State: \" + data.State + \"Latitude: \" + data.Latitude + \"Longitude: \" + data.Longitude + \"
\");\r\n // $scope.infoWindow.open(map, marker);\r\n // Highlight the corresponding row in the table\r\n $scope.$apply(function () {\r\n $scope.selectedMarkerIndex = index;\r\n vm.scrollToRow(index);\r\n });\r\n });\r\n })(marker, data,i);\r\n $scope.Latlngbounds.extend(marker.position);\r\n map.fitBounds($scope.Latlngbounds);\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n $scope.openInfoWindow = function (index) {\r\n if (pinCodeMarkers[index] && vm.userslistbyTkt[index]) {\r\n var marker = pinCodeMarkers[index];\r\n var data = vm.userslistbyTkt[index];\r\n if (bouncingMarker && bouncingMarker !== marker) {\r\n bouncingMarker.setAnimation(null);\r\n }\r\n toggleBounce(marker); \r\n bouncingMarker = marker; \r\n // $scope.infoWindow.setContent(\"

Pincode Info

Distance: \" + data.Distance + 'KM' + \"Locality: \" + data.Locality + \"Tehsil: \" + data.Tehsil + \"District: \" + data.District + \"City: \" + data.City + \"State: \" + data.State + \"PinCode: \" + data.PinCode + \"Latitude: \" + data.Latitude + \"Longitude: \" + data.Longitude + \"
\");\r\n // $scope.infoWindow.open(map, marker);\r\n $scope.selectedMarkerIndex = index;\r\n }\r\n };\r\n\r\n // Function to toggle marker bounce\r\n function toggleBounce(marker) {\r\n marker.setAnimation(google.maps.Animation.BOUNCE);\r\n }\r\n\r\n vm.scrollToRow = function(index) {\r\n var rowId = 'pincodeRow_' + index;\r\n \r\n // Scroll to the element with the specified ID\r\n $location.hash(rowId);\r\n $anchorScroll();\r\n };\r\n\r\n vm.GetFreelancerDataByUserId = function () {\r\n PincodeFinderService.GetFreelancerDataByUserId(userId, loggedinUser, token).then(function (resp) {\r\n vm.techData = resp.data;\r\n vm.showMapWithUser();\r\n })\r\n }\r\n\r\n\r\n vm.GetFreelancerDataByUserId();\r\n\r\n vm.GetMaxJobServedDistance = function(){\r\n var fetchdataModel = {\r\n \"Range\": 10000,\r\n \"UserId\": userId,\r\n \"JobsFromDate\": \"2016-12-11\",\r\n \"JobsToDate\": endDate,\r\n \"ItemNames\": \"Status\",\r\n \"ItemValues\": uitemValues,\r\n \"DataFeild\": \"CreatedOn\",\r\n \"PageIndex\": 0,\r\n \"PageSize\": 0,\r\n \"OrderBy\": \"CreatedOn\",\r\n \"SortType\": \"desc\"\r\n }\r\n PincodeFinderService.GetMaxJobServedDistance(loggedinUser, token, fetchdataModel).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.DistanceBetween = resp.data;\r\n $timeout(function () {\r\n vm.GetPinCodesAndJobInfo();\r\n }, 1000);\r\n }\r\n })\r\n }\r\n\r\n vm.updatePincodesMapIcons = function () {\r\n deletePinCodeMarkers();\r\n vm.showMapWithTechBasedOnPincodes();\r\n };\r\n\r\n\r\n vm.GetPinCodesAndJobInfo = function(){\r\n deleteTicketMarkers();\r\n deletePinCodeMarkers();\r\n var fetchdataModel = {\r\n \"Range\": vm.DistanceBetween * 1000,\r\n \"UserId\": userId,\r\n \"JobsFromDate\": startDate,\r\n \"JobsToDate\": endDate,\r\n \"ItemNames\": \"Status\",\r\n \"ItemValues\": uitemValues,\r\n \"DataFeild\": \"CreatedOn\",\r\n \"PageIndex\": 0,\r\n \"PageSize\": 0,\r\n \"OrderBy\": \"CreatedOn\",\r\n \"SortType\": \"desc\"\r\n }\r\n PincodeFinderService.GetPinCodesAndJobInfo(loggedinUser, token, fetchdataModel).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.OverAllInfo = resp.data;\r\n vm.TicketListByFilter = resp.data.WorkSummary360Data.workSummaryData;\r\n vm.userslistbyTkt = resp.data.PinCodesInfoList;\r\n if($scope.mapType == 'showPincodes'){\r\n $timeout(function () {\r\n vm.showMapWithTechBasedOnPincodes();\r\n }, 1000);\r\n }\r\n // if(!$scope.showPincodes){\r\n // deletePinCodeMarkers();\r\n // }\r\n if($scope.mapType == 'showTickets'){\r\n $timeout(function () {\r\n vm.showMapBasedOnTickets();\r\n }, 1000);\r\n }\r\n // if (!$scope.showTickets){\r\n // deleteTicketMarkers();\r\n // }\r\n }\r\n })\r\n }\r\n\r\n vm.showMapBasedOnTickets = function () {\r\n NgMap.getMap().then(function (map) {\r\n $scope.infoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n const ticketPlot = {\r\n url: \"https://maps.google.com/mapfiles/ms/micons/green-dot.png\"\r\n };\r\n icons = ticketPlot;\r\n for (var i = 0; i < vm.TicketListByFilter.length; i++) {\r\n var data = vm.TicketListByFilter[i]\r\n var myLatlng = new google.maps.LatLng(data.Latitude, data.Longitude);\r\n var marker = new google.maps.Marker({\r\n position: myLatlng,\r\n map: map,\r\n icon: icons\r\n });\r\n ticketMarkers.push(marker);\r\n (function (marker, data, index) {\r\n google.maps.event.addListener(marker, \"click\", function (e) { \r\n $scope.infoWindow.setContent(\"

Ticket Info

TicketId : \" + data.TicketID + \"Skill: \" + data.TicketType + \"Pincode: \" + data.Pincode + \"Status: \" + data.JobsStatus + \"
\");\r\n $scope.infoWindow.open(map, marker);\r\n });\r\n })(marker, data,i);\r\n $scope.Latlngbounds.extend(marker.position);\r\n map.fitBounds($scope.Latlngbounds);\r\n }\r\n\r\n });\r\n }\r\n $scope.mapType = 'showPincodes'; \r\n $scope.showTickets = false;\r\n $scope.showPincodes = true;\r\n $scope.showAllTickets = false;\r\n\r\n vm.displayAllTickets = function(){\r\n if($scope.showAllTickets){\r\n startDate = moment().subtract(5, 'years').format(\"YYYY-MM-DD\");\r\n endDate = moment().format(\"YYYY-MM-DD\");\r\n $scope.ticketFilters = {\r\n Approved: true,\r\n Cancelled: true,\r\n Completed: true,\r\n Assigned: true\r\n };\r\n vm.updateMapIcons();\r\n }\r\n if (!$scope.showAllTickets){\r\n $scope.ticketFilters = {\r\n Approved: true,\r\n Cancelled: false,\r\n Completed: true,\r\n Assigned: false\r\n };\r\n vm.updateMapIcons();\r\n }\r\n \r\n }\r\n\r\n vm.updateOptionalMapIcons = function() {\r\n if ($scope.mapType === 'showPincodes') {\r\n deleteTicketMarkers();\r\n $scope.pincodeFilters = {\r\n InProfileNoJobs: true,\r\n InProfileWithJobs: true,\r\n NotInProfileWithJobs: true,\r\n NotInProfileNoJobs: true\r\n };\r\n vm.GetPinCodesAndJobInfo();\r\n } else if ($scope.mapType === 'showTickets') {\r\n deletePinCodeMarkers();\r\n vm.updateMapIcons();\r\n }\r\n };\r\n\r\n\r\n // vm.updateTicketMapIcons = function(){\r\n // if($scope.showTickets){\r\n // $scope.ticketFilters = {\r\n // Approved: true,\r\n // Cancelled: false,\r\n // Completed: true,\r\n // Assigned: false\r\n // };\r\n // vm.updateMapIcons();\r\n // }\r\n // if (!$scope.showTickets){\r\n // deleteTicketMarkers();\r\n // }\r\n \r\n // }\r\n // vm.updatePincodeMapIcons = function(){\r\n // if($scope.showPincodes){\r\n // $scope.pincodeFilters = {\r\n // InProfileNoJobs: true,\r\n // InProfileWithJobs: true,\r\n // NotInProfileWithJobs: true,\r\n // NotInProfileNoJobs: true\r\n // };\r\n // vm.GetPinCodesAndJobInfo();\r\n // }\r\n // if(!$scope.showPincodes){\r\n // deletePinCodeMarkers();\r\n // }\r\n // }\r\n vm.updateMapIcons = function(){\r\n uitemValues = Object.keys($scope.ticketFilters)\r\n .filter(function (key) {\r\n return $scope.ticketFilters[key];\r\n })\r\n .join(\"|\");\r\n vm.GetPinCodesAndJobInfo();\r\n }\r\n\r\n var $range = $(\".js-range-slider\"),\r\n $from = $(\".from\"),\r\n $to = $(\".to\"),\r\n range,\r\n min = $range.data('min'),\r\n max = $range.data('max'),\r\n from,\r\n to;\r\n\r\n var updateValues = function () {\r\n $from.prop(\"value\", from);\r\n $to.prop(\"value\", to);\r\n };\r\n\r\n $range.ionRangeSlider({\r\n onChange: function (data) {\r\n from = data.from;\r\n to = data.to;\r\n updateValues();\r\n }\r\n });\r\n\r\n range = $range.data(\"ionRangeSlider\");\r\n var updateRange = function () {\r\n range.update({\r\n from: from,\r\n to: to\r\n });\r\n };\r\n\r\n $from.on(\"input\", function () {\r\n from = +$(this).prop(\"value\");\r\n if (from < min) {\r\n from = min;\r\n }\r\n if (from > to) {\r\n from = to;\r\n }\r\n updateValues();\r\n updateRange();\r\n });\r\n\r\n $to.on(\"input\", function () {\r\n to = +$(this).prop(\"value\");\r\n if (to > max) {\r\n to = max;\r\n }\r\n if (to < from) {\r\n to = from;\r\n }\r\n updateValues();\r\n updateRange();\r\n });\r\n }\r\n});\nangular.module('inspinia').service('APermissionSetAssignedUserService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('PermissionSetAssignedUserController', function (PermissionSetAssignedUserService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount ; \r\n\t\t$scope.TicketTablepagination = {\r\n\t\t current: 1\r\n\t\t};\r\n\t\r\n\t\r\n\t\tvm.changeTicketPageListCount = function() { \r\n\t\t $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t PageSize = $scope.ticketTablePerPage;\r\n\t\t $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t}\r\n\r\n\t\tPageIndex=$scope.TicketTablepagination.current;\r\n\t\t$scope.TicketTablepageChanged = function(newPage) { \r\n\t\t PageIndex = newPage; \r\n\t\t vm.getAllJobForExceptionList();\r\n\t\t};\r\n\r\n\t\tvm.scheduleExceptionListNew=[];\r\n \r\n\t\tvm.AddNewProfileModalOpen = function () {\r\n\t\t\tvm.addnewprofile = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'AddNewProfile.html',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n \r\n\tvm.CloseNewProfileModal = function () {\r\n\tvm.addnewprofile.close();\r\n\t}\r\n\tvm.ExistingProfile = \"Dispatch Head\"; \r\n\r\n\tvm.profiles = [\r\n\t\t{ name: \"Sumant Kumar\", username: \"SumantKumar352\", role: \"Service Center Manager\", customChecked: true, profile: \"Dispatch Head\" },\r\n\t\t{ name: \"Amit Sharma\", username: \"AmitSharma123\", role: \"Technician Lead\", customChecked: true, profile: \"Dispatch Head\" },\r\n\t\t{ name: \"Neha Verma\", username: \"NehaVerma456\", role: \"Customer Service Executive\", customChecked: true, profile: \"Dispatch Head\" },\r\n\t\t{ name: \"Rahul Mehta\", username: \"RahulMehta789\", role: \"Parts & Inventory Manager\", customChecked: true, profile: \"Dispatch Head\" }\r\n\t];\r\n\t\r\n\r\n\t// Function to Save a New Profile\r\n\tvm.SaveProfile = function() {\r\n\t\tif (vm.ProfileName) {\r\n\t\t\tvm.profiles.push({\r\n\t\t\t\tname: vm.ProfileName,\r\n\t\t\t\tcustomChecked: false ,// Default unchecked\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t\tvm.showSuccess(\"Success\",\"Profile Created Successfully\");\r\n\t\t\t// Clear input field after saving\r\n\t\t\tvm.ProfileName = \"\";\r\n\t\t\tvm.CloseNewProfileModal();\r\n\t\t}\r\n\t};\r\n\tvm.SavecloneProfile = function() {\r\n\t\tif (vm.ProfileName) {\r\n\t\t\tvm.profiles.push({\r\n\t\t\t\tname: vm.ProfileName,\r\n\t\t\t\tcustomChecked: true, \r\n\t\t\t\tisCloned: true\r\n\t\t\t});\r\n\t\t\tvm.showSuccess(\"Success\",\"Profile Clone Successfully\");\r\n\t\t\t// Clear input field after saving\r\n\t\t\tvm.ProfileName = \"\";\r\n\t\t\t\r\n\t\t\tvm.CloseCloneModal();\r\n\t\t}\r\n\t};\r\n\t \r\n\tvm.CloneProfileModalOpen = function (selectedProfile) {\r\n\t\tvm.SelectedProfile = selectedProfile;\r\n\t\tvm.ProfileName = '';\r\n\t\t// vm.SelectedProfile.isCloned = true;\r\n\t\t// vm.SelectedProfile.customChecked = true; \t\t\r\n\t\tvm.cloneprofile = $uibModal.open({\r\n\t\t\ttemplateUrl: 'CloneProfile.html',\r\n\t\t\tsize: 'md',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\r\nvm.CloseCloneModal = function () {\r\nvm.cloneprofile.close();\r\n}\r\nvm.DeleteProfile = function(profile) {\r\n if (!vm.profiles || !profile) {\r\n console.error(\"Profiles list or profile is undefined\");\r\n return;\r\n }\r\n\r\n for (var i = 0; i < vm.profiles.length; i++) {\r\n if (vm.profiles[i].name === profile.name) {\r\n vm.profiles.splice(i, 1); // Remove the row from the list\r\n vm.showSuccess(\"Success\", \"Profile Deleted Successfully\");\r\n console.log(\"Profile deleted:\", profile);\r\n return; // Stop loop after deleting\r\n }\r\n }\r\n\r\n console.warn(\"Profile not found in list\");\r\n};\r\n\r\nvm.OpenProfileOverview = function(){\r\n\t$state.go('index.ProfileManagementDetail',{\r\n\t \r\n\t}, { reload: true });\r\n \r\n}\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('PermissionSetDetailViewService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('PermissionSetDetailViewController', function (PermissionSetDetailViewService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\tvm.OpenAssignedProfile = function(){\r\n\t\t\t$state.go('index.AssignedProfileToUser',{\r\n\t\t\t \r\n\t\t\t}, { reload: true });\r\n\t\t \r\n\t\t}\r\n\r\n\t\tvm.Objectdetailview = function(){\r\n\t\t\t$state.go('index.ProfileObjectDetail',{\r\n\t\t\t \r\n\t\t\t}, { reload: true });\r\n\t\t \r\n\t\t}\r\n\t\tvm.manageassignment = function(){\r\n\t\t\t$state.go('index.PermissionSetAssignedUser',{\r\n\t\t\t \r\n\t\t\t}, { reload: true });\r\n\t\t \r\n\t\t}\r\n\t\tvm.isAdding = false;\r\n\t\t vm.selectAll = false;\r\n\t\t // Function to cancel assignment adding\r\n\t\t vm.cancelAssignments = function() {\r\n\t\t\tvm.isAdding = false;\r\n\t\t };\r\n\t\t// vm.profiles = [];\r\n\t\t // Assigned profiles data\r\n\t\t vm.profiles = [\r\n\t\t\t{ name: \"Akshay singh\", username: \"akshaysingh44\", role: \"Service Center Manager\", customChecked: true, profile: \"Dispatch Head\" },\r\n\t\t\t{ name: \"Amit Sharma\", username: \"AmitSharma123\", role: \"Technician Lead\", customChecked: true, profile: \"Dispatch Head\" },\r\n\t\t\t{ name: \"Ajay kumar\", username: \"ajaykumar\", role: \"Customer Service Executive\", customChecked: true, profile: \"Dispatch Head\" },\r\n\t\t\t{ name: \"Sanjay Pal\", username: \"sanjaypal66\", role: \"Parts & Inventory Manager\", customChecked: true, profile: \"Dispatch Head\" }\r\n\t\t ];\r\n\t\t\r\n\t\t vm.Assignedprofile = [\r\n\t\t\t{ name: \"Akshay Singh\", username: \"akshaysingh44\", role: \"Service Center Manager\", customChecked: true, profile: \"Dispatch Head\", isSelected: false },\r\n\t\t\t{ name: \"Amit Sharma\", username: \"AmitSharma123\", role: \"Technician Lead\", customChecked: true, profile: \"Dispatch Head\", isSelected: false },\r\n\t\t\t{ name: \"Ajay Kumar\", username: \"ajaykumar\", role: \"Customer Service Executive\", customChecked: true, profile: \"Dispatch Head\", isSelected: false },\r\n\t\t\t{ name: \"Sanjay Pal\", username: \"sanjaypal66\", role: \"Parts & Inventory Manager\", customChecked: true, profile: \"Dispatch Head\", isSelected: false },\r\n\t\t\t{ name: \"Ravi Verma\", username: \"raviverma99\", role: \"Field Technician\", customChecked: false, profile: \"Maintenance Team\", isSelected: false },\r\n\t\t\t{ name: \"Pooja Mishra\", username: \"poojamishra11\", role: \"Customer Support Representative\", customChecked: true, profile: \"Support Team\", isSelected: false },\r\n\t\t\t{ name: \"Rohit Sharma\", username: \"rohitsharma23\", role: \"Warehouse Supervisor\", customChecked: false, profile: \"Inventory Control\", isSelected: false },\r\n\t\t\t{ name: \"Suresh Yadav\", username: \"sureshyadav77\", role: \"Logistics Coordinator\", customChecked: false, profile: \"Dispatch Team\", isSelected: false },\r\n\t\t\t{ name: \"Nitin Chawla\", username: \"nitinchawla55\", role: \"Technical Support Engineer\", customChecked: true, profile: \"Support Team\", isSelected: false },\r\n\t\t\t{ name: \"Anjali Kapoor\", username: \"anjalikapoor\", role: \"Quality Assurance Manager\", customChecked: true, profile: \"Product Inspection\", isSelected: false },\r\n\t\t\t{ name: \"Vikas Mehra\", username: \"vikasmehra88\", role: \"Procurement Specialist\", customChecked: false, profile: \"Supply Chain\", isSelected: false },\r\n\t\t\t{ name: \"Kiran Joshi\", username: \"kiranjoshi22\", role: \"Operations Manager\", customChecked: true, profile: \"Service Management\", isSelected: false },\r\n\t\t\t{ name: \"Deepak Thakur\", username: \"deepakthakur\", role: \"Fleet Manager\", customChecked: true, profile: \"Transport Management\", isSelected: false },\r\n\t\t\t{ name: \"Meera Nair\", username: \"meeranair55\", role: \"HR Executive\", customChecked: false, profile: \"Human Resources\", isSelected: false },\r\n\t\t\t{ name: \"Arjun Malhotra\", username: \"arjunmalhotra\", role: \"IT Administrator\", customChecked: true, profile: \"Infrastructure Team\", isSelected: false }\r\n\t\t ];\r\n\t\t \r\n\t\t vm.removeProfile = function(index) {\r\n\t\t\tvm.profiles.splice(index, 1);\r\n\t\t\tvm.showSuccess(\"Success\",\"Assigned User Remove Successfully\");\r\n\r\n\r\n\t\t};\r\n\t\tvm.toggleAssignments = function () {\r\n\t\t\tvm.isAdding = !vm.isAdding;\r\n\t\t\tif (vm.isAdding) {\r\n\t\t\t\tvm.resetSelections();\r\n\t\t\t }\r\n\t\t };\r\n\t\t vm.resetSelections = function () {\r\n\t\t\tfor (var i = 0; i < vm.Assignedprofile.length; i++) {\r\n\t\t\t vm.Assignedprofile[i].isSelected = false;\r\n\t\t\t}\r\n\t\t\tvm.selectAll = false; // Reset 'select all' checkbox\r\n\t\t };\r\n\t\t// Select All Profiles\r\nvm.toggleAll = function () {\r\n\tfor (var i = 0; i < vm.Assignedprofile.length; i++) {\r\n\t vm.Assignedprofile[i].isSelected = vm.selectAll;\r\n\t}\r\n };\r\n\t\t// Check if All Are Selected\r\nvm.checkIfAllSelected = function () {\r\n\tvar allChecked = true;\r\n\tfor (var i = 0; i < vm.Assignedprofile.length; i++) {\r\n\t if (!vm.Assignedprofile[i].isSelected) {\r\n\t\tallChecked = false;\r\n\t\tbreak;\r\n\t }\r\n\t}\r\n\tvm.selectAll = allChecked;\r\n };\r\n vm.saveAssignments = function () {\r\n\tvar selectedProfiles = [];\r\n\tfor (var i = 0; i < vm.Assignedprofile.length; i++) {\r\n\t if (vm.Assignedprofile[i].isSelected) {\r\n\t\tselectedProfiles.push(vm.Assignedprofile[i]);\r\n\t\tvm.showSuccess(\"Success\",\"Access Permission Assigned to user Successfully\");\r\n\r\n\t }\r\n\t}\r\n \r\n\tif (selectedProfiles.length > 0) {\r\n\t vm.profiles = vm.profiles.concat(selectedProfiles); // Add selected profiles\r\n\t}\r\n \r\n\tvm.isAdding = false; // Hide Assignment Section\r\n };\r\n\r\n\t\tvm.isPanelVisible = false;\r\n\r\n\t\tvm.togglePanel = function () {\r\n\t\t\tvm.isPanelVisible = !vm.isPanelVisible;\r\n\t\t };\r\n\r\n\t\t vm.Objectdetailview = function(){\r\n\t\t\t$state.go('index.ProfileObjectDetail',{\r\n\t\t\t \r\n\t\t\t}, { reload: true });\r\n\t\t \r\n\t\t}\r\n\t\tvm.confrigueappmenus = function(){\r\n\t\t\t$state.go('index.AppsMenusConfige',{\r\n\t\t\t \r\n\t\t\t}, { reload: true });\r\n\t\t \r\n\t\t}\r\n\t}\r\n});\nangular.module('inspinia').service('PermissionSetService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('PermissionSetController', function (PermissionSetService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount ; \r\n\t\t$scope.TicketTablepagination = {\r\n\t\t current: 1\r\n\t\t};\r\n\t\r\n\t\r\n\t\tvm.changeTicketPageListCount = function() { \r\n\t\t $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t PageSize = $scope.ticketTablePerPage;\r\n\t\t $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t}\r\n\r\n\t\tPageIndex=$scope.TicketTablepagination.current;\r\n\t\t$scope.TicketTablepageChanged = function(newPage) { \r\n\t\t PageIndex = newPage; \r\n\t\t vm.getAllJobForExceptionList();\r\n\t\t};\r\n\r\n\t\tvm.scheduleExceptionListNew=[];\r\n \r\n\t\tvm.AddNewProfileModalOpen = function () {\r\n\t\t\tvm.addnewprofile = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'AddNewProfile.html',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n \r\n\tvm.CloseNewProfileModal = function () {\r\n\tvm.addnewprofile.close();\r\n\t}\r\n\tvm.ExistingProfile = \"Dispatch Head\"; \r\n\r\n\tvm.profiles = [\r\n\t\t{ name: \"Transfer and Delete Leads\", description : \"Manage lead transfers between users and remove outdated leads to maintain a clean and efficient database.\" },\r\n\t\t{ name: \"Add Field\", description : \"Customize data entry by adding new fields to forms, enhancing flexibility and ensuring comprehensive information collection.\" },\r\n\t];\r\n\r\n\t// Function to Save a New Profile\r\n\tvm.SaveProfile = function() {\r\n\t\tif (!vm.Labelname || !vm.Description) {\r\n\t\t\tvm.dialertask_form.submitted = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\r\n\t\tvar newProfile = {\r\n\t\t\tname: vm.Labelname, \r\n\t\t\tdescription: vm.Description,\r\n\t\t\tisCloned: true // To show delete & clone actions\r\n\t\t};\r\n\t\r\n\t\tvm.profiles.push(newProfile);\r\n\t\tvm.showSuccess(\"Success\",\"Permission set Created Successfully\");\r\n\r\n\t\t// Clear form fields after saving\r\n\t\tvm.Labelname = \"\";\r\n\t\tvm.APIName = \"\";\r\n\t\tvm.Description = \"\";\r\n\t\tvm.CloseNewProfileModal();\r\n\t};\r\n\tvm.SavecloneProfile = function() {\r\n\t\tif (vm.ProfileName) {\r\n\t\t\tvm.profiles.push({\r\n\t\t\t\tname: vm.ProfileName,\r\n\t\t\t\tcustomChecked: true, \r\n\t\t\t\tisCloned: true\r\n\t\t\t});\r\n\t\t\tvm.showSuccess(\"Success\",\"Profile Clone Successfully\");\r\n\t\t\t// Clear input field after saving\r\n\t\t\tvm.ProfileName = \"\";\r\n\t\t\t\r\n\t\t\tvm.CloseCloneModal();\r\n\t\t}\r\n\t};\r\n\t \r\n\tvm.CloneProfileModalOpen = function (selectedProfile) {\r\n\t\tvm.SelectedProfile = selectedProfile;\r\n\t\tvm.ProfileName = '';\r\n\t\t// vm.SelectedProfile.isCloned = true;\r\n\t\t// vm.SelectedProfile.customChecked = true; \t\t\r\n\t\tvm.cloneprofile = $uibModal.open({\r\n\t\t\ttemplateUrl: 'CloneProfile.html',\r\n\t\t\tsize: 'md',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\r\nvm.CloseCloneModal = function () {\r\nvm.cloneprofile.close();\r\n}\r\nvm.DeleteProfile = function(profile) {\r\n var index = vm.profiles.indexOf(profile);\r\n if (index !== -1) {\r\n vm.profiles.splice(index, 1);\r\n }\r\n};\r\n\r\nvm.OpenProfileOverview = function(){\r\n\t$state.go('index.PermissionSetDetailView',{\r\n\t \r\n\t}, { reload: true });\r\n \r\n}\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('PaymentSectionService', function($http, ApiURL, $log, PublicApiURL){\r\n\t\r\n\tthis.getCustomerJobCard = function(accountId, jobCardId, success, failure){\r\n\t\t$http.get(PublicApiURL+\"/api/CustomerJobCard/\"+jobCardId+\"/\"+accountId+\"/GetCustomerJobCard\").then(function(res){\r\n\t\t\tif(res && res.data && success){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.getCustomerJobCardById = function(jobCardId, success, failure){\r\n\t\t$http.get(PublicApiURL+\"/api/CustomerJobCard/\"+jobCardId+\"/GetCustomerJobCard\").then(function(res){\r\n\t\t\tif(res && res.data && success){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.updatePaymentDetails = function(accountId, jobCardId, serviceCharge, serviceTax, accesoriesCharge, totalAmount, modeOfPayment, success, failure){\r\n\t\tvar data ={\r\n\t\t \"JobCardId\": jobCardId,\r\n\t\t \"accountId\": accountId,\r\n\t\t \"serviceCharge\": serviceCharge,\r\n\t\t \"serviceTax\": serviceTax,\r\n\t\t \"accesoriesCharge\": accesoriesCharge,\r\n\t\t \"totalAmount\": totalAmount,\r\n\t\t \"modeOfPayment\": modeOfPayment\r\n\t\t};\r\n\t\t$http.put(PublicApiURL+\"/api/CustomerJobCard/PutCustomerJobCardAmount\", data, \r\n\t\t\t{ headers: { 'Content-Type': 'application/json' } }).then(function(res){\r\n\t\t\tif(res && res.status==202 && success){\r\n\t\t\t\tsuccess();\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.rateCustomer = function(accountId, jobCardId, rating, feedback, success, failure){\r\n\t\tvar data = {\r\n\t\t \"JobCardId\": jobCardId,\r\n\t\t \"accountId\": accountId,\r\n\t\t \"rating\": rating,\r\n\t\t \"feedback\": feedback\r\n\t\t};\r\n\t\t$http.put(PublicApiURL+\"/api/CustomerJobCard/PutCustomerJobCardRating\", data, \r\n\t\t\t{ headers: { 'Content-Type': 'application/json' } }).then(function(res){\r\n\t\t\tif(res && res.status==202 && success){\r\n\t\t\t\tsuccess();\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.changeJobStatus = function(accountId, jobCardId, status, reason, success, failure){\r\n\t\tvar data = {\r\n\t\t\t\"JobCardId\":jobCardId,\r\n\t\t\t\"accountId\":accountId,\r\n\t\t\t\"requestStatus\":status,\r\n\t\t\t\"reason\":reason\r\n\t\t};\r\n\t\t$http.put(PublicApiURL+\"/api/CustomerJobCard/PutJobRequestByCustomer\", data, \r\n\t\t\t{ headers: { 'Content-Type': 'application/json' } }).then(function(res){\r\n\t\t\tif(res && res.status==202 && success){\r\n\t\t\t\tsuccess();\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.getAllReasonStatements = function(success, failure){\r\n\t\t$http.get(PublicApiURL+\"/api/ReasonStatement/getallreasonstatements\").then(function(res){\r\n\t\t\tif(res && res.data && success){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.createPaymentLink = function(data, success, failure){\r\n\t\t$http.post(PublicApiURL+\"/api/Payment/createpaymentlink\", data, \r\n\t\t\t{ headers: { 'Content-Type': 'application/json' } }).then(function(res){\r\n\t\t\tif(res && res.data && success){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n});\nangular.module('inspinia').controller('PaymentSectionController', function (UIURL, $uibModal, $state, $localStorage, $scope, $stateParams, $log, PaymentSectionService, ImageUrl, $window) {\r\n var vm = this;\r\n vm.accCheck = '';\r\n var accountId = $stateParams.accountId;\r\n var jobCardId = $stateParams.jobCardId;\r\n \r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n vm.round2Decimal = $scope.$parent.main.round2Decimal;\r\n\r\n vm.feedback = {};\r\n vm.customerJobCard = {};\r\n\r\n vm.payumoneyModel = {\r\n txnid:\"1\",\r\n hash:\"\",\r\n key:\"BcUfbhDR\",\r\n amount:120,\r\n productinfo:\"\",\r\n firstname:\"\",\r\n lastname:\"\",\r\n email:\"\",\r\n phone:\"\",\r\n surl:'http://www.google.com',\r\n furl:'http://www.google.com'\r\n };\r\n\r\n vm.getCustomerJobCard = function(){\r\n PaymentSectionService.getCustomerJobCard(accountId, jobCardId, function(data){\r\n $log.log(\"res of getCustomerJobCard=\"+data);\r\n vm.customerJobCard = data;\r\n if($localStorage.rateJobParams){\r\n vm.customerJobCard.JobStatus=$localStorage.rateJobParams.status;\r\n vm.customerJobCard.CustomerGivenRating=$localStorage.rateJobParams.rating;\r\n delete $localStorage.rateJobParams;\r\n }\r\n if(data && data.JobStatus == 'PaymentDone'){\r\n // vm.OpenApproveModal();\r\n\r\n $state.go('RateJob', {\r\n accountId: accountId,\r\n jobCardId: jobCardId,\r\n reload: true\r\n });\r\n }\r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n }); \r\n }\r\n vm.getCustomerJobCard();\r\n\r\n vm.getTotalAmount = function(){\r\n var totalAmouont = parseFloat(vm.customerJobCard.ServiceCharge) + parseFloat(vm.customerJobCard.ServiceTax);\r\n if(!isNaN(vm.customerJobCard.AccesoriesCharge) && vm.customerJobCard.AccesoriesCharge != \"\" && vm.customerJobCard.AccesoriesCharge != null && !vm.customerJobCard.AccesoriesCharge.includes('-')){\r\n totalAmouont = parseFloat(totalAmouont) + parseFloat(vm.customerJobCard.AccesoriesCharge);\r\n }\r\n totalAmouont = vm.round2Decimal(totalAmouont);\r\n return totalAmouont;\r\n }\r\n\r\n vm.getAccessoriesCharges = function(){\r\n return !isNaN(vm.customerJobCard.AccesoriesCharge)?parseFloat(vm.customerJobCard.AccesoriesCharge):0;\r\n }\r\n\r\n vm.approveModalInstance={};\r\n vm.OpenApproveModal = function () {\r\n vm.RatingOfTicket = '';\r\n vm.aproveMessage = 'Please Rate !';\r\n vm.isApproveModalOpened = true;\r\n \r\n vm.approveModalInstance = $uibModal.open({\r\n templateUrl: 'approve_model.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.confirmationModalObj={};\r\n vm.OpenConfirmModal = function (boxType) {\r\n vm.boxType = boxType;\r\n vm.openConfirmationBox = true;\r\n \r\n vm.confirmationModalObj = $uibModal.open({\r\n templateUrl: 'confirmation.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeConfirmBox = function(){\r\n vm.openConfirmationBox = false;\r\n vm.confirmationModalObj.close();\r\n }\r\n vm.checkAccessoriesValue = function(value){\r\n //var acceValue = parseFloat(value);\r\n if (value!=\"\") {\r\n if (parseFloat(value)<50000 && !value.includes('-')) {\r\n vm.accCheck = false;\r\n }else if(value.includes('-')){\r\n vm.accCheck = true;\r\n }\r\n else{\r\n vm.accCheck = true;\r\n }\r\n }\r\n \r\n \r\n }\r\n\r\n vm.proceedToPay = function(){debugger\r\n if(vm.customerJobCard.JobStatus=='RatingDone'){\r\n if(vm.payment_mode == 'COD'){ \r\n PaymentSectionService.updatePaymentDetails(accountId, jobCardId, parseFloat(vm.customerJobCard.ServiceCharge),\r\n parseFloat(vm.customerJobCard.ServiceTax), vm.getAccessoriesCharges(), vm.getTotalAmount(), vm.payment_mode,\r\n function(){\r\n vm.OpenApproveModal();\r\n vm.customerJobCard.JobStatus=\"PaymentDone\";\r\n vm.showSuccess(\"Success\", \"Payment done\");\r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n } else {\r\n var data = {\r\n \"name\": vm.customerJobCard.ConsumerName,\r\n \"phone\": vm.customerJobCard.ConsumerContact,\r\n \"amount\": vm.getTotalAmount(),\r\n \"redircet_url\": UIURL+\"/#/RedirectPaymentUrl/\"+vm.customerJobCard.ServiceCharge+\r\n \"/\"+vm.customerJobCard.ServiceTax+\"/\"+vm.getAccessoriesCharges()+\"/\"+vm.getTotalAmount()+\"/\"+accountId+\"/\"+jobCardId\r\n }\r\n PaymentSectionService.createPaymentLink(data, function(res){\r\n $window.location.href = res.Link;\r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to get payment link, server is not responding correctly.\");\r\n });\r\n }\r\n \r\n }\r\n \r\n \r\n }\r\n\r\n vm.rateCustomer = function(){\r\n\r\n if(vm.customerJobCard.JobStatus=='PaymentDone'){\r\n vm.feedbackStr = \"\";\r\n angular.forEach(vm.feedback, function(v, k){\r\n if(v){\r\n vm.feedbackStr+=k+\",\";\r\n }\r\n });\r\n if(vm.otherRatingFeedback && vm.otherRatingFeedback.length>0){\r\n vm.feedbackStr+=vm.otherRatingFeedback;\r\n } else {\r\n vm.feedbackStr=vm.feedbackStr.length>0?vm.feedbackStr.substr(0, vm.feedbackStr.length-1):null;\r\n }\r\n \r\n PaymentSectionService.rateCustomer(accountId, jobCardId, vm.rating, vm.feedbackStr, function(){\r\n vm.customerJobCard.JobStatus=\"RatingDone\";\r\n vm.customerJobCard.CustomerGivenRating=vm.rating;\r\n vm.isApproveModalOpened = false;\r\n vm.approveModalInstance.close();\r\n vm.showSuccess(\"Success\", \"Rated successfully\");\r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n }\r\n\r\n vm.getRatingMeaning = function(){\r\n switch(parseInt(vm.rating)){\r\n case 1: return \"Terrible\"; \r\n case 2: return \"Bad\";\r\n case 3: return \"Ok\";\r\n case 4: return \"Good\";\r\n case 5: return \"Excellent\";\r\n default: return \"\";\r\n }\r\n }\r\n\r\n vm.cancelTicket = function(){\r\n if(vm.customerJobCard.JobStatus=='Assigned'){\r\n PaymentSectionService.changeJobStatus(accountId, jobCardId, \"Cancelled\", vm.cancelReason=='others'?vm.cancelOtherReason:vm.cancelReason, function(){\r\n vm.customerJobCard.JobStatus=\"Canceled\";\r\n vm.showSuccess(\"Success\", \"Canceled successfully\");\r\n vm.closeConfirmBox();\r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n vm.closeConfirmBox();\r\n });\r\n } \r\n }\r\n\r\n vm.rescheduleTicket = function(){\r\n if(vm.customerJobCard.JobStatus=='Assigned'){\r\n PaymentSectionService.changeJobStatus(accountId, jobCardId, \"Rescheduled\", vm.rescheduleReason=='others'?vm.rescheduleOtherReason:vm.rescheduleReason, function(){\r\n vm.customerJobCard.JobStatus=\"Rescheduled\";\r\n vm.showSuccess(\"Success\", \"Rescheduled successfully\");\r\n vm.closeConfirmBox();\r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to reach server\"); \r\n vm.closeConfirmBox();\r\n });\r\n }\r\n }\r\n\r\n vm.getReadableDate = function(){\r\n var time = new moment(vm.customerJobCard.JobDateTime, \"YYYY-MM-DDThh:mm:ss\");\r\n return time.format(\"DD MMM YYYY\")+\" at \"+time.format(\"LTS\");\r\n }\r\n\r\n vm.isJobStarted = function(){\r\n return (new moment(vm.customerJobCard.JobDateTime, \"YYYY-MM-DDThh:mm:ss\")<=new moment());\r\n }\r\n\r\n vm.showCancelButton = function(){\r\n // return (new moment(\"2018-01-31T18:15:00\", \"YYYY-MM-DDThh:mm:ss\")>=new moment().add({ minutes: 30})) && (vm.customerJobCard.JobStatus=='Assigned'); \r\n return (new moment(vm.customerJobCard.JobDateTime, \"YYYY-MM-DDThh:mm:ss\")>=new moment().add({ minutes: 30})) && (vm.customerJobCard.JobStatus=='Assigned'); \r\n }\r\n\r\n vm.reasons = {\"CancelationList\":[], \"RescheduleList\":[], \"RatingList\":[]};\r\n vm.getAllReasonStatements = function(){\r\n PaymentSectionService.getAllReasonStatements(function(data){\r\n if(data && data.CancelationList){\r\n vm.reasons.CancelationList = data.CancelationList;\r\n vm.cancelReason = vm.reasons.CancelationList[0];\r\n }\r\n if(data && data.RescheduleList){\r\n vm.reasons.RescheduleList = data.RescheduleList;\r\n vm.rescheduleReason = vm.reasons.RescheduleList[0];\r\n }\r\n if(data && data.RatingList && data.RatingList.length>0){\r\n vm.reasons.RatingList = data.RatingList;\r\n }\r\n }, function(){\r\n\r\n });\r\n }\r\n vm.getAllReasonStatements();\r\n\r\n vm.getRatingFeedbackList = function(rating){\r\n var feedbackList = [];\r\n angular.forEach(vm.reasons.RatingList, function(d){\r\n if(d && d.Rating==rating){\r\n feedbackList=d.ReasonList;\r\n return;\r\n }\r\n });\r\n $log.log(\"getRatingFeedbackList result\", feedbackList);\r\n return feedbackList;\r\n }\r\n\r\n vm.getImageUrl = function(image){\r\n return ImageUrl + \"/\" +image;\r\n }\r\n\r\n $scope.$on('$locationChangeStart', function (scope, next, current) {\r\n if (current.indexOf(\"/PaymentSection/\")>=0) {\r\n if(vm.openConfirmationBox){\r\n vm.closeConfirmBox();\r\n scope.preventDefault(); \r\n } else if(vm.isApproveModalOpened){\r\n vm.approveModalInstance.close();\r\n scope.preventDefault();\r\n }\r\n }\r\n });\r\n})\nangular.module('inspinia').service('PepsicoCustomerProfileViewService', function (ApiURL, $http, FreelancerURL, LocationURL) {\r\n\r\n this.getUserInfo = function (userId,loggedInUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId +'/'+ loggedInUser+ '/'+ 'byUserIdWithJobCount' ;\r\n\t return $http.get(url,{\r\n\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\r\n}\r\n)\r\n\nangular.module('inspinia').controller('PepsicoCustomerProfileViewController', function ($scope, $state, $filter,MainService,TeamProfileService, OnBoardingFormService, $log, $stateParams, $localStorage, DTColumnDefBuilder, DTOptionsBuilder, ImageUrl) {\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n // if (!loggedinUser || !userId) {\r\n\r\n // $state.go('Login', {\r\n // reload: true\r\n // });\r\n\r\n // } else {\r\n // var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n \r\n // }\r\n});\r\n\nangular.module('inspinia').service('OrdersListService', function (ApiURL, AcessoriesURL, $window, $localStorage, $http) {\r\n\r\n this.GetAllOrdersByFilter = function (token, data) {\r\n var url = AcessoriesURL + '/api/MMFOrder/GetAllOrdersByFilter';\r\n return $http.post(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetOrdersDashboardByFilter = function (token, data) {\r\n var url = AcessoriesURL + '/api/MMFOrder/GetOrdersDashboardByFilter';\r\n return $http.post(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.UpdateOrderStatus = function (token, data) {\r\n var url = AcessoriesURL + '/api/MMFOrder/UpdateOrderStatus';\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetShipmentOrder = function (salesOrderNumber, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetShipmentOrder?salesOrderNumber=' + salesOrderNumber;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('OrdersListController', function (OrdersListService, $window, ApiURL,\r\n\t$state, $localStorage, $scope, $uibModal, $timeout, $stateParams) {\r\n\tvm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tvm.SearchTag = \"\";\r\n\tvm.showMapPermision = false;\r\n\tvm.superPower = false;\r\n\t$scope.isCollapsed = true;\r\n\tvm.UserId = \"\";\r\n\tvm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n\tvm.Role = $localStorage.loggedInUser_Role;\r\n\tvm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\tvm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n\tvar accountConfig = $localStorage.accountConfig;\r\n\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\tvm.ImageArray = [];\r\n\tvm.states = [];\r\n\tvm.cities = [];\r\n\tvm.isShow = true;\r\n\tvm.showEditList = false;\r\n\tvm.showAction = true;\r\n\tvm.dataFilters = [];\r\n\tvm.CancellationReasons = '';\r\n\tvm.IsCommissionDetect = false;\r\n\tvm.urlForNonFeasible = '';\r\n\tvm.currentStepModel = {};\r\n\tvm.dtInstanceNearBy = {};\r\n\tvm.dtInstanceFixed = {};\r\n\tvm.dtInstance = {};\r\n\tvm.dtInstancePre = {};\r\n\tvm.SparePartAddress = {};\r\n\tvm.disableBroadcastButton = false;\r\n\tvm.disableRouteButton = false;\r\n\tvm.IsChatEnabled = true;\r\n\tvm.showPrefer = '';\r\n\tvm.disabledDrop = false;\r\n\tvm.showloading = false\r\n\tvm.ComplianceDisable = true;\r\n\tvm.PincodeEnabled = true;\r\n\tvm.passSerialNum = false;\r\n\tvm.PrivateDisable = false;\r\n\tvm.messageText = \"\";\r\n\tvm.PriceLineItemList = [];\r\n\tvm.LineItemDataList = [];\r\n\tvm.lineItem = \"\";\r\n\tvm.serviceType = '';\r\n\tvm.AppointmentTime = '';\r\n\tvm.ticketPrice = \"\";\r\n\tvm.freelancerPrice = \"\";\r\n\tvm.edit = true;\r\n\tvm.BonusPenaltyList = [];\r\n\tvm.BonusList = [];\r\n\tvm.PenaltyList = [];\r\n\tvm.ShipmentDetails = \"\";\r\n\tvm.LineitemActivityList = [];\r\n\tvm.LineItemCategoryType = \"\";\r\n\tvm.projectId = \"\";\r\n\tvm.selectedprojectId = \"\";\r\n\tvm.dynamicpricing = \"\";\r\n\tvm.IsFinalApproval = false;\r\n\tvm.disableExceptionButton = false;\r\n\tvm.ZOHOWarehouseName = '';\r\n\tvm.customerJobCard = [];\r\n\tvm.PageIndex = 1;\r\n\tvm.PageSize = 10;\r\n\tstartDate = '';\r\n\tendDate = '';\r\n\tvm.sortType = \"\"\r\n\tvm.orderBy = \"\";\r\n\tvm.itemValue = '';\r\n\tvm.OrderStatus = \"\";\r\n\tvm.PaymentStatus = \"\";\r\n\tvm.SearchText = \"\";\r\n\tvar fPageIndex = 1;\r\n\tvar fPageSize = 10;\r\n\tvm.userPageListCount = 10;\r\n\tvm.financePageListCount = 10;\r\n\tvm.defectedPageListCount = 10;\r\n\tvm.brandName = \"\";\r\n\tvm.partName = \"\";\r\n\tvm.productGroup = \"\";\r\n\tvm.BrandListName = \"\";\r\n\tvm.allSalesOrderPageListCount = 10;\r\n\tvm.allHistoryOrderPageListCount = 10;\r\n\tvm.pageListCounts = [10, 20, 30, 50];\r\n\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\tvm.dateField = \"CreatedOn\";\r\n\tvm.ticketdates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\tvm.ticketranges = {\r\n\t\t'Today': [moment(), moment()],\r\n\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t'This month': [moment().startOf('month'), moment().endOf('month')],\r\n\t\t'Till now': [moment().subtract(5, 'years'), moment()]\r\n\t};\r\n\r\n\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\tvm.GetAllOrdersByFilter();\r\n\t\tvm.GetOrdersDashboardByFilter();\r\n\t};\r\n\tif (accountConfig && accountConfig.EnableRegion) {\r\n\t\tvm.EnableRegion = accountConfig.EnableRegion;\r\n\t} else {\r\n\t\tvm.EnableRegion = false;\r\n\t}\r\n\r\n\tvm.PartsList = [\"CCTV\", \"Fan\", \"Geyser\"];\r\n\tvm.TemplateData = [];\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\r\n\t\tvar token = $localStorage.token;\r\n\t\tvm.ticketType = $stateParams.type;\r\n\t\tvm.TicketId = $stateParams.ticketId;\r\n\r\n\t\tvm.getPicUrl = function (ItemImage) {\r\n\t\t\treturn ItemImage ? ApiURL + \"/api/ZohoInventoryController/GetItemImage?item=\" + ItemImage : null;\r\n\t\t}\r\n\r\n\t\tvm.showPartDetails = false;\r\n\r\n\t\tvm.OpenSidePanel = function (s) {\r\n\t\t\tvm.PartDetails = s;\r\n\t\t\tvm.showPartDetails = true;\r\n\t\t}\r\n\r\n\t\tvm.trackingStatus = false;\r\n\t\tvm.TrackingSidePanel = function (p) {\r\n\t\t\tvm.TrackDetails = p;\r\n\t\t\tvm.trackingStatus = true;\r\n\t\t}\r\n\t\tvm.getPic = function (LineItemAttachment) {\r\n\t\t\treturn LineItemAttachment ? ApiURL + \"/api/ZohoInventoryController/GetItemImage?item=\" + LineItemAttachment : null;\r\n\t\t}\r\n\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.totalFinList = 0;\r\n\t\t$scope.usersPerPage = vm.allSalesOrderPageListCount;\r\n\t\t$scope.SalesOrderPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllSalesOrderPageListCount = function () {\r\n\t\t\t$scope.usersPerPage = vm.allSalesOrderPageListCount;\r\n\t\t\tfPageSize = $scope.usersPerPage;\r\n\t\t\t$scope.AllSalesOrderTablePageChanged($scope.SalesOrderPagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tfPageIndex = $scope.SalesOrderPagination.current;\r\n\t\t\t$scope.AllSalesOrderTablePageChanged = function (newPage) {\r\n\t\t\t\tfPageIndex = newPage;\r\n\t\t\t\tvm.GetAllOrdersByFilter();\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfPageIndex = $scope.SalesOrderPagination.current;\r\n\t\t$scope.AllSalesOrderTablePageChanged = function (newPage) {\r\n\t\t\tfPageIndex = newPage;\r\n\t\t\tvm.GetAllOrdersByFilter();\r\n\r\n\t\t};\r\n\r\n\t\tvm.orderdetailsview = function (salesOrderDetail) {\r\n\t\t\t$state.go('index.OrderDetailView', {\r\n\t\t\t\torder_id: salesOrderDetail\r\n\t\t\t}, {\r\n\t\t\t\treload: true\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.AccessoriesPartOrderList = [];\r\n\t\tvm.GetAllOrdersByFilter = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"OrderStatus\": vm.OrderStatus,\r\n\t\t\t\t\"PaymentStatus\": vm.PaymentStatus,\r\n\t\t\t\t\"OrderStartDate\": startDate,\r\n\t\t\t\t\"OrderEndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": fPageIndex,\r\n\t\t\t\t\"PageSize\": fPageSize\r\n\t\t\t}\r\n\t\t\tOrdersListService.GetAllOrdersByFilter(token, data).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.AccessoriesPartOrderList = resp.data.OrderList;\r\n\t\t\t\t\t$scope.totalFinList = resp.data.Count;\r\n\t\t\t\t\tif (vm.AccessoriesPartOrderList.length < vm.allSalesOrderPageListCount)\r\n\t\t\t\t\t\tvm.financeListLength = $scope.totalFinList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.financeListLength = fPageIndex * vm.allSalesOrderPageListCount;\r\n\t\t\t\t\tif (fPageIndex == 1)\r\n\t\t\t\t\t\tvm.fpageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.fpageindexCount = (((fPageIndex - 1) * vm.allSalesOrderPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\t\tvm.GetAllOrdersByFilter();\r\n\r\n\t\tvm.GetOrdersDashboardByFilter = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"OrderStatus\": vm.OrderStatus,\r\n\t\t\t\t\"PaymentStatus\": vm.PaymentStatus,\r\n\t\t\t\t\"OrderStartDate\": startDate,\r\n\t\t\t\t\"OrderEndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": fPageIndex,\r\n\t\t\t\t\"PageSize\": fPageSize\r\n\t\t\t}\r\n\t\t\tOrdersListService.GetOrdersDashboardByFilter(token, data).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.OrderCountData = resp.data;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\t\tvm.GetOrdersDashboardByFilter();\r\n\r\n\t\tvm.getAllSlotsByStatus = function (status) {\r\n\t\t\tvm.OrderStatus = status;\r\n\t\t\tvm.PaymentStatus = \"\";\r\n\t\t\tfPageIndex = 1;\r\n\t\t\tvm.GetAllOrdersByFilter();\r\n\t\t\t// vm.GetOrdersDashboardByFilter();\r\n\t\t }\r\n\t\t\r\n\t\tvm.getAllByPaymentStatus = function (status) {\r\n\t\tvm.OrderStatus = \"\";\r\n\t\tvm.PaymentStatus = status;\r\n\t\tfPageIndex = 1;\r\n\t\tvm.GetAllOrdersByFilter();\r\n\t\t// vm.GetOrdersDashboardByFilter();\r\n\t\t}\r\n\r\n\r\n\t\tvm.changeCategoryFilter = function () {\r\n\t\tfPageIndex = 1;\r\n\t\tvm.GetAllOrdersByFilter();\r\n\t\tvm.GetOrdersDashboardByFilter();\r\n\t\t}\r\n\r\n\r\n\t\tvm.GetShipmentOrder = function (salesOrderNumber) {\r\n\t\t\tOrdersListService.GetShipmentOrder(salesOrderNumber, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.TrackingDetails = resp.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.Acceptancemodel = function (requestDetails) {\r\n\t\t\tvm.showPartDetails=false;\r\n\t\t\tvm.AllRequestDetail = requestDetails;\r\n\t\t\tvm.updateStatusModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'acceptancepopup.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseAcceptanceModel = function () {\r\n\t\t\tvm.updateStatusModelOpen.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.UpdateOrderStatus = \"\";\r\n\t\t\tvm.TrackingLink = \"\";\r\n\t\t\tvm.strPackageId = \"\";\r\n\t\t\tvm.strPackageStatus = \"\";\r\n\t\t\tvm.strPackageTrackingId = \"\";\r\n\t\t\tvm.strShipmentId = \"\";\r\n\t\t\tvm.PackageDetails = [];\r\n\t\t\tvm.datePackedOn = moment().format(\"YYYY-MM-DD\");\r\n\t\t}\r\n\r\n\t\tvm.UpdateCartOrderStatus = function () {\r\n\t\t\tvm.CartOrder_Form.submitted = true;\r\n\t\t\tif (vm.CartOrder_Form.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tif(vm.UpdateOrderStatus == \"Cancelled\"){\r\n\t\t\t\t\tvm.PackageDetails = [{\r\n\t\t\t\t\t\t\"strPackageId\": \"\",\r\n\t\t\t\t\t\t\"strPackageStatus\": \"\",\r\n\t\t\t\t\t\t\"strPackageTrackingId\": \"\",\r\n\t\t\t\t\t\t\"strShipmentId\": \"\",\r\n\t\t\t\t\t\t\"datePackedOn\": \"\",\r\n\t\t\t\t\t}]\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tvm.PackageDetails = [{\r\n\t\t\t\t\t\t\"strPackageId\": vm.strPackageId,\r\n\t\t\t\t\t\t\"strPackageStatus\": \"Shipped\",\r\n\t\t\t\t\t\t\"strPackageTrackingId\": vm.strPackageTrackingId,\r\n\t\t\t\t\t\t\"strShipmentId\": vm.strShipmentId,\r\n\t\t\t\t\t\t\"datePackedOn\": moment().format(\"YYYY-MM-DD\")\r\n\t\t\t\t\t}]\r\n\t\t\t\t}\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"OrderId\": vm.AllRequestDetail.OrderId,\r\n\t\t\t\t\t\"OrderStatus\": vm.UpdateOrderStatus,\r\n\t\t\t\t\t\"TrackingLink\": vm.TrackingLink,\r\n\t\t\t\t\t\"PackageDetails\": vm.PackageDetails\r\n\t\t\t\t}\r\n\t\t\t\tOrdersListService.UpdateOrderStatus(token, data).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.CloseAcceptanceModel();\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", 'Order Updated Successfully.');\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.GetAllOrdersByFilter();\r\n\t\t\t\t\t\t\tvm.GetOrdersDashboardByFilter();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\tvm.addFiles = function () {\r\n\t\t\t$(\"#dropzone1\").trigger(\"click\");\r\n\t\t}\r\n\t\r\n\t\tvm.toggleCollapsibleTable = function (isCollapsed, index) {\r\n\t\t\t$scope.isCollapsed = !isCollapsed;\r\n\t\t\t$scope.activeRow = index;\r\n\t\t}\r\n\t}\r\n})\r\n\nangular.module('inspinia').service('PayOnlineService', function($http, ApiURL, $log, PublicApiURL){\r\n\t\r\n\t//https://product.mymobiforce.com/publicapi/api/CustomerJobCard/V0000001011/GetCustomerJobCard\r\n\tthis.getCustomerJobCard = function(jobCardId, success, failure){\r\n\t\t$http.get(PublicApiURL+\"/api/CustomerJobCard/\"+jobCardId+\"/GetCustomerJobCard\").then(function(res){\r\n\t\t\tif(res && res.data && success){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.updatePaymentDetails = function(accountId, jobCardId, serviceCharge, serviceTax, accesoriesCharge, totalAmount, modeOfPayment, success, failure){\r\n\t\tvar data ={\r\n\t\t \"JobCardId\": jobCardId,\r\n\t\t \"accountId\": accountId,\r\n\t\t \"serviceCharge\": serviceCharge,\r\n\t\t \"serviceTax\": serviceTax,\r\n\t\t \"accesoriesCharge\": accesoriesCharge,\r\n\t\t \"totalAmount\": totalAmount,\r\n\t\t \"modeOfPayment\": modeOfPayment\r\n\t\t};\r\n\t\t$http.put(PublicApiURL+\"/api/CustomerJobCard/PutCustomerJobCardAmount\", data, \r\n\t\t\t{ headers: { 'Content-Type': 'application/json' } }).then(function(res){\r\n\t\t\tif(res && res.status==202 && success){\r\n\t\t\t\tsuccess();\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.rateCustomer = function(accountId, jobCardId, rating, feedback, success, failure){\r\n\t\tvar data = {\r\n\t\t \"JobCardId\": jobCardId,\r\n\t\t \"accountId\": accountId,\r\n\t\t \"rating\": rating,\r\n\t\t \"feedback\": feedback\r\n\t\t};\r\n\t\t$http.put(PublicApiURL+\"/api/CustomerJobCard/PutCustomerJobCardRating\", data, \r\n\t\t\t{ headers: { 'Content-Type': 'application/json' } }).then(function(res){\r\n\t\t\tif(res && res.status==202 && success){\r\n\t\t\t\tsuccess();\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.changeJobStatus = function(accountId, jobCardId, status, reason, success, failure){\r\n\t\tvar data = {\r\n\t\t\t\"JobCardId\":jobCardId,\r\n\t\t\t\"accountId\":accountId,\r\n\t\t\t\"requestStatus\":status,\r\n\t\t\t\"reason\":reason\r\n\t\t};\r\n\t\t$http.put(PublicApiURL+\"/api/CustomerJobCard/PutJobRequestByCustomer\", data, \r\n\t\t\t{ headers: { 'Content-Type': 'application/json' } }).then(function(res){\r\n\t\t\tif(res && res.status==202 && success){\r\n\t\t\t\tsuccess();\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.getAllReasonStatements = function(success, failure){\r\n\t\t$http.get(PublicApiURL+\"/api/ReasonStatement/getallreasonstatements\").then(function(res){\r\n\t\t\tif(res && res.data && success){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.createPaymentLink = function(data, success, failure){\r\n\t\t$http.post(PublicApiURL+\"/api/Payment/CreateConsumerPaymentLink\", data, \r\n\t\t\t{ headers: { 'Content-Type': 'application/json' } }).then(function(res){\r\n\t\t\tif(res && res.data && success){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n});\nangular.module('inspinia').controller('PayOnlineController', function (UIURL, $uibModal, $state, $localStorage, $scope, $stateParams, $log, PayOnlineService, ImageUrl, $window) {\r\n var vm = this;\r\n vm.accCheck = '';\r\n var jobCardId = $stateParams.jobCardId;\r\n var accountId = '';\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n vm.round2Decimal = $scope.$parent.main.round2Decimal;\r\n\r\n vm.feedback = {};\r\n vm.customerJobCard = {};\r\n\r\n vm.payumoneyModel = {\r\n txnid:\"1\",\r\n hash:\"\",\r\n key:\"BcUfbhDR\",\r\n amount:120,\r\n productinfo:\"\",\r\n firstname:\"\",\r\n lastname:\"\",\r\n email:\"\",\r\n phone:\"\",\r\n surl:'http://www.google.com',\r\n furl:'http://www.google.com'\r\n };\r\n\r\n vm.getCustomerJobCard = function(){\r\n PayOnlineService.getCustomerJobCard(jobCardId, function(data){\r\n $log.log(\"res of getCustomerJobCard=\"+data);\r\n vm.customerJobCard = data; \r\n \r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n }); \r\n }\r\n vm.getCustomerJobCard();\r\n\r\n vm.getTotalAmount = function(){\r\n return vm.customerJobCard.ServiceCharge;\r\n }\r\n\r\n vm.getAccessoriesCharges = function(){\r\n return !isNaN(vm.customerJobCard.AccesoriesCharge)?parseFloat(vm.customerJobCard.AccesoriesCharge):0;\r\n }\r\n\r\n vm.approveModalInstance={};\r\n vm.OpenApproveModal = function () {\r\n vm.RatingOfTicket = '';\r\n vm.aproveMessage = 'Please Rate !';\r\n vm.isApproveModalOpened = true;\r\n \r\n vm.approveModalInstance = $uibModal.open({\r\n templateUrl: 'approve_model.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.confirmationModalObj={};\r\n vm.OpenConfirmModal = function (boxType) {\r\n vm.boxType = boxType;\r\n vm.openConfirmationBox = true;\r\n \r\n vm.confirmationModalObj = $uibModal.open({\r\n templateUrl: 'confirmation.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeConfirmBox = function(){\r\n vm.openConfirmationBox = false;\r\n vm.confirmationModalObj.close();\r\n }\r\n vm.checkAccessoriesValue = function(value){\r\n //var acceValue = parseFloat(value);\r\n if (value!=\"\") {\r\n if (parseFloat(value)<50000 && !value.includes('-')) {\r\n vm.accCheck = false;\r\n }else if(value.includes('-')){\r\n vm.accCheck = true;\r\n }\r\n else{\r\n vm.accCheck = true;\r\n }\r\n }\r\n \r\n \r\n }\r\n\r\n vm.proceedToPay = function(){ \r\n var data = {\r\n \"name\": vm.customerJobCard.ConsumerName,\r\n \"phone\": vm.customerJobCard.ConsumerContact,\r\n \"jobCardId\":jobCardId,\r\n \"amount\": vm.getTotalAmount(),\r\n //\"redircet_url\": \"http://localhost:3000/#/RedirectPaymentUrl/\"\r\n \"redircet_url\": UIURL+\"/#/RedirectPaymentUrl/\"\r\n }\r\n PayOnlineService.createPaymentLink(data, function(res){\r\n $window.location.href = res.Link;\r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to get payment link, server is not responding correctly.\");\r\n }); \r\n }\r\n\r\n vm.rateCustomer = function(){\r\n\r\n if(vm.customerJobCard.JobStatus=='PaymentDone'){\r\n vm.feedbackStr = \"\";\r\n angular.forEach(vm.feedback, function(v, k){\r\n if(v){\r\n vm.feedbackStr+=k+\",\";\r\n }\r\n });\r\n if(vm.otherRatingFeedback && vm.otherRatingFeedback.length>0){\r\n vm.feedbackStr+=vm.otherRatingFeedback;\r\n } else {\r\n vm.feedbackStr=vm.feedbackStr.length>0?vm.feedbackStr.substr(0, vm.feedbackStr.length-1):null;\r\n }\r\n \r\n PayOnlineService.rateCustomer(accountId, jobCardId, vm.rating, vm.feedbackStr, function(){\r\n vm.customerJobCard.JobStatus=\"RatingDone\";\r\n vm.customerJobCard.CustomerGivenRating=vm.rating;\r\n vm.isApproveModalOpened = false;\r\n vm.approveModalInstance.close();\r\n vm.showSuccess(\"Success\", \"Rated successfully\");\r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n }\r\n\r\n vm.getRatingMeaning = function(){\r\n switch(parseInt(vm.rating)){\r\n case 1: return \"Terrible\"; \r\n case 2: return \"Bad\";\r\n case 3: return \"Ok\";\r\n case 4: return \"Good\";\r\n case 5: return \"Excellent\";\r\n default: return \"\";\r\n }\r\n }\r\n\r\n vm.cancelTicket = function(){\r\n if(vm.customerJobCard.JobStatus=='Assigned'){\r\n PayOnlineService.changeJobStatus(accountId, jobCardId, \"Cancelled\", vm.cancelReason=='others'?vm.cancelOtherReason:vm.cancelReason, function(){\r\n vm.customerJobCard.JobStatus=\"Canceled\";\r\n vm.showSuccess(\"Success\", \"Canceled successfully\");\r\n vm.closeConfirmBox();\r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n vm.closeConfirmBox();\r\n });\r\n } \r\n }\r\n\r\n vm.rescheduleTicket = function(){\r\n if(vm.customerJobCard.JobStatus=='Assigned'){\r\n PayOnlineService.changeJobStatus(accountId, jobCardId, \"Rescheduled\", vm.rescheduleReason=='others'?vm.rescheduleOtherReason:vm.rescheduleReason, function(){\r\n vm.customerJobCard.JobStatus=\"Rescheduled\";\r\n vm.showSuccess(\"Success\", \"Rescheduled successfully\");\r\n vm.closeConfirmBox();\r\n }, function(){\r\n vm.showFailure(\"Failed\", \"Unable to reach server\"); \r\n vm.closeConfirmBox();\r\n });\r\n }\r\n }\r\n\r\n vm.getReadableDate = function(){\r\n var time = new moment(vm.customerJobCard.JobDateTime, \"YYYY-MM-DDThh:mm:ss\");\r\n return time.format(\"DD MMM YYYY\")+\" at \"+time.format(\"LTS\");\r\n }\r\n\r\n vm.isJobStarted = function(){\r\n return (new moment(vm.customerJobCard.JobDateTime, \"YYYY-MM-DDThh:mm:ss\")<=new moment());\r\n }\r\n\r\n vm.showCancelButton = function(){\r\n // return (new moment(\"2018-01-31T18:15:00\", \"YYYY-MM-DDThh:mm:ss\")>=new moment().add({ minutes: 30})) && (vm.customerJobCard.JobStatus=='Assigned'); \r\n return (new moment(vm.customerJobCard.JobDateTime, \"YYYY-MM-DDThh:mm:ss\")>=new moment().add({ minutes: 30})) && (vm.customerJobCard.JobStatus=='Assigned'); \r\n }\r\n\r\n vm.reasons = {\"CancelationList\":[], \"RescheduleList\":[], \"RatingList\":[]};\r\n vm.getAllReasonStatements = function(){\r\n PayOnlineService.getAllReasonStatements(function(data){\r\n if(data && data.CancelationList){\r\n vm.reasons.CancelationList = data.CancelationList;\r\n vm.cancelReason = vm.reasons.CancelationList[0];\r\n }\r\n if(data && data.RescheduleList){\r\n vm.reasons.RescheduleList = data.RescheduleList;\r\n vm.rescheduleReason = vm.reasons.RescheduleList[0];\r\n }\r\n if(data && data.RatingList && data.RatingList.length>0){\r\n vm.reasons.RatingList = data.RatingList;\r\n }\r\n }, function(){\r\n\r\n });\r\n }\r\n vm.getAllReasonStatements();\r\n\r\n vm.getRatingFeedbackList = function(rating){\r\n var feedbackList = [];\r\n angular.forEach(vm.reasons.RatingList, function(d){\r\n if(d && d.Rating==rating){\r\n feedbackList=d.ReasonList;\r\n return;\r\n }\r\n });\r\n $log.log(\"getRatingFeedbackList result\", feedbackList);\r\n return feedbackList;\r\n }\r\n\r\n \r\n\r\n $scope.$on('$locationChangeStart', function (scope, next, current) {\r\n if (current.indexOf(\"/PaymentSection/\")>=0) {\r\n if(vm.openConfirmationBox){\r\n vm.closeConfirmBox();\r\n scope.preventDefault(); \r\n } else if(vm.isApproveModalOpened){\r\n vm.approveModalInstance.close();\r\n scope.preventDefault();\r\n }\r\n }\r\n });\r\n})\nangular.module('inspinia').service('orderdetailService', function (ApiURL, SchedulingAPI, $window, $localStorage, $http) {\r\n\r\n // var vm = this;\r\n // vm.setShowSuccess = function (success) {\r\n // vm.showSuccess = success;\r\n // }\r\n\r\n // vm.setShowFailure = function (failure) {\r\n // vm.showFailure = failure;\r\n // }\r\n\r\n // this.GetUserAllSalesOrderDetail = function (orderStatus, token) {\r\n // var url = ApiURL + '/api/ZohoInventoryController/GetUserAllSalesOrderDetail?OrderStatus=' + orderStatus;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n // }\r\n // });\r\n // }\r\n\r\n this.GetSalesOrdetailByTicketId = function (ticketId,token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetSalesOrdetailByTicketId?ZOHOSalesOrderId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetShipmentOrder = function (salesOrderNumber,token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetShipmentOrder?salesOrderNumber=' + salesOrderNumber;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('OrderDetailViewController', function (toaster, MainService, orderdetailService, ManualAssignationJobService, $window, PublicApiURL, ApiURL, \r\n\t$state, $localStorage, $scope, JobTicketViewService, DTOptionsBuilder, DTColumnBuilder,\r\n\t$uibModal, inventorynewService, jobCreationService, ReportService, $filter, $q, $timeout, $sce, $rootScope, $stateParams, $compile, UIURL, ImageUrl) {\r\n\tvm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvm.NokiaTableHeaderChange = $localStorage.accountConfig.NokiaTableHeaderChange;\r\n\tvar loggedinUserName = $localStorage.loggedInUser_FirstName + \" \" + $localStorage.loggedInUser_LastName;\r\n\tvar token = $localStorage.token;\r\n\tvar loggedinUserImage = $localStorage.picture;\r\n\tvar TicketOrderId = $stateParams.order_id;\r\n\tvm.SearchTag = \"\";\r\n\tvm.showMapPermision = false;\r\n\tvm.superPower = false;\r\n\t$scope.isCollapsed = true;\r\n\tvm.UserId = \"\";\r\n\tvm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n\tvm.CallPatchEnable = $localStorage.accountConfig.CallPatchEnable;\r\n\tvm.Role = $localStorage.loggedInUser_Role;\r\n\tvm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\tvm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n\tvar accountConfig = $localStorage.accountConfig;\r\n\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\tvm.isDefective = false;\r\n\tvm.ImageArray = [];\r\n\tvm.states = [];\r\n\tvm.cities = [];\r\n\tvm.isShow = true;\r\n\tvm.showEditList = false;\r\n\tvm.showAction = true;\r\n\tvm.dataFilters = [];\r\n\tvm.CancellationReasons = '';\r\n\tvm.IsCommissionDetect = false;\r\n\tvm.urlForNonFeasible = '';\r\n\tvm.currentStepModel = {};\r\n\tvm.dtInstanceNearBy = {};\r\n\tvm.dtInstanceFixed = {};\r\n\tvm.dtInstance = {};\r\n\tvm.dtInstancePre = {};\r\n\tvm.SparePartAddress = {};\r\n\tvm.disableBroadcastButton = false;\r\n\tvm.disableRouteButton = false;\r\n\tvm.IsChatEnabled = true;\r\n\tvm.showPrefer = '';\r\n\tvm.disabledDrop = false;\r\n\tvm.showloading = false\r\n\tvm.ComplianceDisable = true;\r\n\tvm.PincodeEnabled = true;\r\n\tvm.passSerialNum = false;\r\n\tvm.PrivateDisable = false;\r\n\tvm.messageText = \"\";\r\n\tvm.PriceLineItemList = [];\r\n\tvm.LineItemDataList = [];\r\n\tvm.serviceType = '';\r\n\tvm.AppointmentTime = '';\r\n\tvm.ticketPrice = \"\";\r\n\tvm.freelancerPrice = \"\";\r\n\tvm.tPrice = \"\";\r\n\tvm.commission = \"\";\r\n\tvm.tax = \"\";\r\n\tvm.freelancerPricetemp = \"\";\r\n\tvm.LineItemImage = null;\r\n\tvm.edit = true;\r\n\tvm.edit1 = false;\r\n\t// vm.myvalue = false;\r\n\tvm.BonusPenaltyList = [];\r\n\tvm.BonusList = [];\r\n\tvm.PenaltyList = [];\r\n\tvm.ShipmentDetails = \"\";\r\n\tvm.LineitemActivityList = [];\r\n\tvm.LineItemCategoryType = \"\";\r\n\tvm.projectId = \"\";\r\n\tvm.selectedprojectId = \"\";\r\n\tvm.dynamicpricing = \"\";\r\n\tvm.FreelancrPriceEnable = \"\";\r\n\tvm.PercentageEnable = \"\";\r\n\tvar price = 0;\r\n\tvar Quantity = 1;\r\n\tvar totalFPrice = 0.0;\r\n\tvm.BasePriceTotal = 0.0;\r\n\tvm.dFreelancerPriceTotal = 0.0;\r\n\tvm.PercentageTotal = 0.0;\r\n\tvm.FreelancerPriceTotal = 0.0;\r\n\tvm.MobiforceCommission = $localStorage.accountConfig.MobiforceCommissionPercentage;\r\n\tvm.IsFinalApproval = false;\r\n\tvm.disableExceptionButton = false;\r\n\t// vm.IsWithInDays = true;\r\n\tvm.StockCountToAssign = 0;\r\n\tvm.PartActionType = \"\";\r\n\tvm.feedbackremark = '';\r\n\tvm.PlannedClosureDateType = \"first\";\r\n\tvm.WithInDays = 1;\r\n\tvm.WithInDaysNumbers = [1, 2, 3, 4, 5];\r\n\tvm.IsSafetyAudit = 'Not Done';\r\n\tvm.ratingwarning = \"\";\r\n\tvm.approvalRemark = '';\r\n\tvm.MaterialStatusList = [\"Dispatched\", \"Delivered\", \"Partially Delivered\", \"Not Delivered\"];\r\n\tvm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n\tvm.SelectedMaterial = '';\r\n\tvm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n\tvm.ZOHOWarehouseName = '';\r\n\tvm.customerJobCard = [];\r\n\tvm.PageIndex = 1;\r\n\tvm.PageSize = 10;\r\n\tstartDate = '';\r\n\tendDate = '';\r\n\tvm.sortType = \"\"\r\n vm.orderBy = \"\";\r\n\tvm.itemValue = '';\r\n\tvm.OrderStatus = \"\";\r\n\tvm.SearchText = \"\";\r\n\tvar uPageIndex = 1;\r\n\tvar uPageSize = 10;\r\n\tvar dPageSize = 10;\r\n\tvar dPageIndex = 1;\r\n\tvar fPageIndex = 1;\r\n\tvar fPageSize = 10;\r\n\tvar ePageIndex = 1;\r\n\tvar ePageSize = 10;\r\n\tvm.userPageListCount = 10;\r\n\tvm.financePageListCount = 10;\r\n\tvm.defectedPageListCount = 10;\r\n\tvm.brandName = \"\";\r\n\tvm.partName = \"\";\r\n\tvm.productGroup = \"\";\r\n\tvm.BrandListName = \"\";\r\n\tvm.allSalesOrderPageListCount = 10;\r\n\tvm.allHistoryOrderPageListCount = 10;\r\n\tvm.pageListCounts = [10, 20, 30, 50];\r\n\tvar startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\tvm.dateField = \"CreatedOn\";\r\n\tvm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n\tvm.ticketranges = {\r\n\t\t'Today': [moment(), moment()],\r\n\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t};\r\n\t\r\n\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\tvm.ApplyFilter();\r\n\t};\r\n\tif (accountConfig && accountConfig.EnableRegion) {\r\n\t\tvm.EnableRegion = accountConfig.EnableRegion;\r\n\t} else {\r\n\t\tvm.EnableRegion = false;\r\n\t}\r\n\t\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\r\n\t\tvar token = $localStorage.token;\r\n\t\tvm.ticketType = $stateParams.type;\r\n\t\tvm.TicketId = $stateParams.ticketId;\r\n\r\n\t\tvm.activeTab = 'Details'; \r\n\r\n\t\tvm.activateTab = function(tab) {\r\n vm.activeTab = tab;\r\n };\r\n\r\n// \t\tvm.TicketPartOrderList = [];\r\n// \t\tvm.GetUserAllSalesOrderDetailforWeb = function () {\r\n// \t\t\torderdetailService.GetUserAllSalesOrderDetailforWeb(token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup,vm.orderBy,vm.sortType, fPageIndex, fPageSize, startDate, endDate, vm.dateField).then(function (resp) {\r\n// \t\t\t\tif (resp && resp.data) {\r\n// \t\t\t\t\tvm.TicketPartOrderList = resp.data.zohoItemRequestModels;\r\n// \t\t\t\t\t$scope.totalFinList = resp.data.Count;\r\n// \t\t\t\t\tif (vm.TicketPartOrderList.length < vm.allSalesOrderPageListCount)\r\n// \t\t\t\t\t\tvm.financeListLength = $scope.totalFinList;\r\n// \t\t\t\t\telse\r\n// \t\t\t\t\t\tvm.financeListLength = fPageIndex * vm.allSalesOrderPageListCount;\r\n// \t\t\t\t\tif (fPageIndex == 1)\r\n// \t\t\t\t\t\tvm.fpageindexCount = 1;\r\n// \t\t\t\t\telse\r\n// \t\t\t\t\t\tvm.fpageindexCount = (((fPageIndex - 1) * vm.allSalesOrderPageListCount) + 1);\r\n// \t\t\t\t}\r\n// \t\t\t}, function (error) {\r\n\r\n// \t\t\t})\r\n// \t\t}\r\n// vm.GetUserAllSalesOrderDetailforWeb();\r\n\r\nvm.Ticketdetailsview = function (ticketId) {\r\n\t$state.go('index.JobDetailView', {\r\n\t\tticketId : ticketId\r\n\t}, {\r\n\t reload: true\r\n\t});\r\n } \r\n\r\nvm.GetShipmentOrder = function () {\r\n\torderdetailService.GetShipmentOrder(TicketOrderId, token).then(function (resp) {\r\n\t\tif (resp && resp.data) {\r\n\t\t\tvm.TrackingDetails = resp.data;\r\n\t\t}\r\n\t});\r\n}\r\nvm.GetSalesOrdetailByTicketId = function () {\r\n\torderdetailService.GetSalesOrdetailByTicketId(TicketOrderId, token).then(function (resp) {\r\n\t\tif (resp && resp.data) {\r\n\t\t\tvm.Ticketdetails = resp.data;\r\n\t\t}\r\n\t});\r\n}\r\nvm.GetSalesOrdetailByTicketId();\r\n\t}\r\n\r\n\t\r\n\t})\nangular.module('inspinia').service('OpenBucketSettingsService', function (ApiURL, FreelancerURL,LocationURL,PublicApiURL, $log, $http,$localStorage,$window) {\r\n\r\n \r\n});\nangular.module('inspinia').controller('OpenBucketSettingsController', function (OpenBucketSettingsService, ReferService, toaster, $filter, $rootScope, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder, DTColumnDefBuilder, DTColumnBuilder, $uibModal, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n vm = this;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else { \r\n \r\n vm.showTimes=[];\r\n vm.Priority=[];\r\n vm.bucketTimeWindow=\"\";\r\n vm.timeslotDay =[];\r\n vm.bucketSkills=\"\";\r\n vm.showTickets=\"\";\r\n vm.bucketDistance=\"\";\r\n vm.autoTimeWindow=\"\";\r\n vm.assignationMode=[];\r\n vm.userWithSecurityPayment;\r\n vm.bucketState;\r\n vm.prefrence;\r\n\r\n vm.addTimes = function() {\r\n vm.timeslotDay;\r\n }\r\n vm.updateSetting = function(){ \r\n var data = {};\r\n data = {\r\n \"UserId\": loggedinUser,\r\n \"autoTimeWindow\":vm.autoTimeWindow,\r\n \"showTime\": vm.timeslotDay,\r\n \"timeWindow\":vm.bucketTimeWindow,\r\n \"Distance\":vm.bucketDistance,\r\n \"showTickets\":vm.showTickets,\r\n \"bucketSkills\": vm.bucketSkills,\r\n \"bucketState\":vm.bucketState,\r\n \"userWithSecurityPayment\": vm.userWithSecurityPayment,\r\n \"prefrence\": vm.prefrence,\r\n \"assignationMode\":vm.assignationMode,\r\n \"Priority\": vm.Priority\r\n } \r\n \r\n OpenBucketSettingsService.updateSetting(data, token, loggedinUser).then(function(res){\r\n if (res && res.status == 201) { \r\n } \r\n });\r\n }\r\n \r\n }\r\n});\nangular.module('inspinia').service('OperationTATBreachedService', function (ApiURL,FreelancerURL, $http) {\r\n\r\n this.CommittmentFollowUp = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/MMFServicePack/UpdateUserCommittmetStatus';\r\n return $http.put(url, data, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetAllActivitiesForUser = function (userId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Timeline/GetAllCallRecordingForUser?UserId=' + userId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.CloseOnBoardingTask = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/OnBoardingTask/CloseOnBoardingTask';\r\n return $http.post(url, data,{\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.callToTechnicianApi = function (loggedinUser, userid, token) {\r\n url = ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId=' + userid + '&CallFor=CommitmentCall';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetOnBoardingTaskByFilters = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/OnBoardingTask/GetOnBoardingTaskByFilters';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetTatTaskCountsByFilters = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/OnBoardingTask/GetTatTaskCountsByFilters';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('OperationTATBreachedController', function (OperationTATBreachedService, AllUsersListService, ReferService, CommittmentOpsService, $resource, SlotAllocationService, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvar Closuredatelimit = new Date();\r\n\t\tvm.ClosureDateTime = { date: '', datepickerOptions: { minDate: Closuredatelimit } };\r\n\t\tvar datelimit = new Date();\r\n\t\tdatelimit.setMinutes(datelimit.getMinutes() + 1)\r\n\t\t// vm.AppointmentsDate = { date: '', datepickerOptions: { minDate: datelimit }, dateFormat: \"yy/mm/dd\" };\r\n\t\tvm.userCommittmentDate = new Date();\r\n\t\tvm.AppointmentsDate = {\r\n\t\t\tdatepickerOptions: {\r\n\t\t\t\tminDate: new Date()\r\n\t\t\t}\r\n\t\t};\r\n\t\tvm.userComments = \"\";\r\n\t\tvm.userCommittmentStatus = \"\";\r\n\t\tvm.closeuserCommittmentStatus = \"Interested\";\r\n\t\tvm.userCommittmentId = \"\";\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.ExceptionType = 'PICKUP_TAT_BREACHED';\r\n\t\tvm.UserId = '';\r\n\t\tvm.OnBoardingList = [];\r\n\t\tvm.bGVerifyListLength = 0;\r\n\t\tvm.userPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.AssignedTo = '';\r\n\t\tvm.taskStatus = '';\r\n\t\tvm.DateField = 'CreatedOn';\r\n\t\tvm.State = '';\r\n\t\tvm.City = '';\r\n\t\tvm.taskPincode = '';\r\n\t\tvm.CreationSource = '';\r\n\t\tvm.taskskill = '';\r\n\t\tvm.accountId = '';\r\n\t\tvm.capacityCount = '';\r\n\t\tvm.cityOfTask = \"\";\r\n\t\tvm.accountIdOfTask = \"\";\r\n\t\tvm.stateOfTask = \"\";\r\n\t\tvm.skillOfTask = \"\";\r\n\t\tvm.descriptionOfTask = \"\";\r\n\t\tvm.Technicianstartingdate = '2017-01-01';\r\n\t\tvm.TaskId = \"\";\r\n\t\tvm.IsFreelancerBidCount = false;\r\n\t\tvm.IsFixedTeamCount = false;\r\n\t\tvm.Asset = \"\";\r\n\t\tvm.Tools = \"\";\r\n\t\tvm.Certificate = \"\";\r\n\t\tvm.PermanentCity = \"\";\r\n\t\tvm.techPincode = \"\";\r\n\t\tvm.PermanentState = \"\";\r\n\t\tvm.TicketState = \"\";\r\n\t\tvm.SearchByAccountName = \"\";\r\n\t\tvm.PreferredForAccounts = \"\";\r\n\t\tvm.TicketCity = \"\";\r\n\t\tvm.ticketStatus = \"\";\r\n\t\tvm.IsCommittedUser = false,\r\n\t\tvm.IsCommitmentInterestedUser = false,\r\n\t\t$scope.Prime = false;\r\n\t\t$scope.NonPrime = false;\r\n\t\tvm.PssStatus = \"\";\r\n\t\t$scope.selectedTools = [];\r\n\t\tvm.JobSkill = \"\";\r\n\t\tvm.ActiveInMonth = \"\";\r\n\t\tvm.NoOfJobDone = \"\";\r\n\t\tvm.Asset = \"\";\r\n\t\tvm.Tools = \"\";\r\n\t\tvm.UserRole = \"\";\r\n\t\tvm.MatchCriteria = \"\";\r\n\t\tvm.TraningCertificate = \"\";\r\n\t\tvm.ToolList = \"\";\r\n\t\tvm.OneJobDone = false;\r\n\t\tvm.SearchTag = \"\";\r\n\t\tvm.MatchingSkill = false;\r\n\t\tvm.Asset_Bike = false;\r\n\t\tvm.Asset_Mobile = false;\r\n\t\tvm.Asset_Laptop = false;\r\n\t\tvm.disableCreateButton = false;\r\n\t\tvm.Sort = \"desc\";\r\n\t\tvm.Pincode = \"\";\r\n\t\tvm.Experience = \"\";\r\n\t\tvm.Ratings = \"\";\r\n\t\tvm.Assets_Tools = \"\";\r\n\t\tvm.Jobscount = \"\";\r\n\t\tvm.FilterAdhar = \"\";\r\n\t\tvm.FilterPancard = \"\";\r\n\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t$localStorage.filteraddskill = \"\";\r\n\t\t$localStorage.filterPermanentstate = \"\";\r\n\t\tvm.currentPage = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n\t\t$scope.totalUsers = 0;\r\n\t\t$scope.pagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\t\t$scope.pagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n\t\t$scope.totalTableUsers = 0;\r\n\t\t$scope.usersTablePerPage = 10;\r\n\t\t$scope.UserTablepagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\t$scope.UserTablepagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n\t\t$scope.pageChanged = function (newPage) {\r\n\t\t\tvm.currentPage = newPage;\r\n\t\t\tvm.applyfilter(newPage);\r\n\r\n\t\t};\r\n\t\t$scope.dates = { startDate: moment().subtract(30, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\tvm.ticketdates = { startDate: moment().subtract(30, 'days'), endDate: moment() };\r\n\t\tvm.ticketranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')],\r\n\t\t\t'Till now': [moment(vm.Technicianstartingdate), moment(endDate)],\r\n\t\t};\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t};\r\n\t\t// vm.GetAllActiveTaskForFilter = function () {\r\n\t\t// \tAllUsersListService.GetAllActiveTaskForFilter(loggedinUser, token).then(function (resp) {\r\n\t\t// \t\tif (resp && resp.data) {\r\n\t\t// \t\t\tvm.ActiveTaskList = resp.data;\r\n\t\t// \t\t}\r\n\t\t// \t}, vm.showFailure);\r\n\t\t// }\r\n\t\t// vm.GetAllActiveTaskForFilter();\r\n\r\n\t\tvm.UserRoleList = [\"Field Engineer\", \"Vendor Manager\", \"VendorTeam\", \"ServiceCenter\"];\r\n\r\n\t\t// vm.getSkills = function () {\r\n\t\t// \tAllUsersListService.getSkills(loggedinUser, token, function (skills) {\r\n\t\t// \t\tvm.skills = skills;\r\n\t\t// \t}, vm.showFailure);\r\n\t\t// }\r\n\r\n\t\t// vm.getSkills();\r\n\r\n\t\t// vm.GetAllAccounts = function () {\r\n\t\t// \tAllUsersListService.GetAllAccountDetails(loggedinUser, token).then(function (resp) {\r\n\t\t// \t\tif (resp && resp.data) {\r\n\t\t// \t\t\tvm.accountsList = resp.data;\r\n\t\t// \t\t}\r\n\t\t// \t}, vm.showFailure);\r\n\t\t// }\r\n\r\n\t\t// vm.GetAllAccounts();\r\n\r\n\t\tvm.getAllSlotsByStatus = function (status) {\r\n\t\t\tvm.taskStatus = status;\r\n\t\t\tPageIndex = 1;\r\n\t\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\t}\r\n\t\t\r\n\t\tvm.activeTab = \"PICKUP_TAT_BREACHED\";\r\n\r\n\t\t$scope.changeBackgroundColor = function (event, activeTab) {\r\n\t\t\tvm.activeTab = activeTab;\r\n\t\t\tif ($scope.selectedElement) {\r\n\t\t\t\t$scope.selectedElement.style.backgroundColor = 'white';\r\n\t\t\t}\r\n\t\t\tvar targetElement = event.currentTarget;\r\n\t\t\ttargetElement.style.backgroundColor = '#b3b3b966';\r\n\t\t\t$scope.selectedElement = targetElement;\r\n\t\t\tvm.ExceptionType = vm.activeTab;\r\n\t\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\t\tvm.GetOnBoardingTaskCounts();\r\n\t\t};\r\n\r\n\t\t$timeout(function () {\r\n\t\t\t$scope.changeBackgroundColor({ currentTarget: document.getElementById('PICKUP_TAT_BREACHED') }, 'PICKUP_TAT_BREACHED');\r\n\t\t}, 0);\r\n\r\n\t\t// vm.callToTechnician = function (userid) {\r\n\t\t// \tCommittmentOpsService.callToTechnicianApi(loggedinUser, userid, token).then(function (resp) {\r\n\t\t// \t\tif (resp.status == 200) {\r\n\t\t// \t\t\tvm.showSuccess(\"Success\", \"Call Initiated\");\r\n\t\t// \t\t}\r\n\t\t// \t\telse {\r\n\t\t// \t\t\tvm.showFailure(\"Failure\", resp.data.Message);\r\n\t\t// \t\t}\r\n\t\t// \t});\r\n\r\n\t\t// }\r\n\r\n\t\tvm.ApplyTaskfilter = function () {\r\n\t\t\t// $scope.UserTablepagination = {};\r\n\t\t\t// $scope.UserTablepagination = {\r\n\t\t\t// current: 1\r\n\t\t\t// };\r\n\t\t\t// $scope.hideFilter();\r\n\t\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\t\tvm.GetOnBoardingTaskCounts();\r\n\t\t}\r\n\r\n\t\t// vm.editJobAppointment = function () {\r\n\t\t// \tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t// \t\ttemplateUrl: 'editJobAppointment.html',\r\n\t\t// \t\tscope: $scope\r\n\t\t// \t});\r\n\t\t// }\r\n\r\n\r\n\t\t// vm.closeJobAppointment = function () {\r\n\t\t// \tvm.jobAppointmentModal.close();\r\n\t\t// }\r\n\r\n\t\t$scope.userFilter = true;\r\n\t\t$scope.assignJobFilter = function () {\r\n\t\t\t$scope.userFilter = !$scope.userFilter;\r\n\t\t\t$scope.myvalue = false;\r\n\t\t\t$scope.manualAssignationWrapper = \"hide-nav\";\r\n\t\t};\r\n\t\t$scope.broadcastSentUser = true;\r\n\t\t$scope.toggleForBroadcast = function () {\r\n\t\t\t$scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n\t\t\t$scope.myvalue = false;\r\n\r\n\t\t};\r\n\r\n\t\t$scope.calltrack = function () {\r\n\t\t\t$scope.myvalue = false;\r\n\t\t\t$scope.class_status = true;\r\n\t\t\t$scope.broadcastSentUser = true;\r\n\r\n\t\t}\r\n\r\n\t\t$scope.hideoverlay = function () {\r\n\t\t\t$scope.myvalue = false;\r\n\t\t\t$scope.broadcastSentUser = true;\r\n\t\t\t\r\n\t\t }\r\n\r\n\r\n\t\t// $scope.customSearch = function (item) {\r\n\t\t// if (!vm.SearchTagNew) {\r\n\t\t// \treturn true;\r\n\t\t// }\r\n\t\t// var lowerCaseSearchText = vm.SearchTagNew.toLowerCase();\r\n\t\t// for (var prop in item) {\r\n\t\t// \tif (item.hasOwnProperty(prop) && angular.isString(item[prop])) {\r\n\t\t// \tvar lowerCaseProp = item[prop].toLowerCase();\r\n\t\t// \tif (lowerCaseProp.includes(lowerCaseSearchText)) {\r\n\t\t// \t\treturn true;\r\n\t\t// \t}\r\n\t\t// \t}\r\n\t\t// }\r\n\t\t// return false;\r\n\t\t// };\r\n\r\n\r\n\t\tvm.GetOnBoardingTaskByFilters = function () {\r\n\t\t\tdata = {\r\n\t\t\t\t\"Status\": vm.taskStatus,\r\n\t\t\t\t\"Skill\": vm.taskskill == \"\" ? \"\" : vm.taskskill.join(\"|\"),\r\n\t\t\t\t\"DateField\": vm.DateField,\r\n\t\t\t\t\"FromDate\": moment().subtract(5, 'years').format(\"YYYY-MM-DD\"),\r\n\t\t\t\t\"ToDate\": endDate,\r\n\t\t\t\t\"AccountId\": vm.accountId == \"\" ? \"\" : vm.accountId.join(\"|\"),\r\n\t\t\t\t\"PageIndex\": PageIndex,\r\n\t\t\t\t\"PageSize\": 500,\r\n\t\t\t\t\"State\": vm.State,\r\n\t\t\t\t\"City\": vm.City,\r\n\t\t\t\t\"Pincode\": vm.taskPincode,\r\n\t\t\t\t\"OrderBy\": vm.OrderBy,\r\n\t\t\t\t\"Sort\": vm.Sort,\r\n\t\t\t\t\"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n\t\t\t\t\"CreationSource\": vm.CreationSource,\r\n\t\t\t\t\"ExceptionType\": vm.ExceptionType,\r\n\t\t\t}\r\n\t\t\tOperationTATBreachedService.GetOnBoardingTaskByFilters(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.OnBoardingList = resp.data.OnBoardingResModelList;\r\n\t\t\t\t\t$scope.totalTableUsersBG = resp.data.RecordCount;\r\n\t\t\t\t\tif (vm.OnBoardingList.length < vm.userPageListCount)\r\n\t\t\t\t\t\tvm.bGVerifyListLength = $scope.totalTableUsersBG;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.bGVerifyListLength = PageIndex * vm.userPageListCount;\r\n\t\t\t\t\tif (PageIndex == 1)\r\n\t\t\t\t\t\tvm.pageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.pageindexCount = (((PageIndex - 1) * vm.userPageListCount) + 1);\r\n\t\t\t\t}\r\n\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.GetOnBoardingTaskCounts = function () {\r\n\t\t\tdata = {\r\n\t\t\t\t\"Status\": vm.taskStatus,\r\n\t\t\t\t\"Skill\": vm.taskskill == \"\" ? \"\" : vm.taskskill.join(\"|\"),\r\n\t\t\t\t\"DateField\": vm.DateField,\r\n\t\t\t\t\"FromDate\": moment().subtract(5, 'years').format(\"YYYY-MM-DD\"),\r\n\t\t\t\t\"ToDate\": endDate,\r\n\t\t\t\t\"AccountId\": vm.accountId == \"\" ? \"\" : vm.accountId.join(\"|\"),\r\n\t\t\t\t\"PageIndex\": PageIndex,\r\n\t\t\t\t\"PageSize\": 500,\r\n\t\t\t\t\"State\": vm.State,\r\n\t\t\t\t\"City\": vm.City,\r\n\t\t\t\t\"Pincode\": vm.taskPincode,\r\n\t\t\t\t\"OrderBy\": vm.OrderBy,\r\n\t\t\t\t\"Sort\": vm.Sort,\r\n\t\t\t\t\"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n\t\t\t\t\"CreationSource\": vm.CreationSource,\r\n\t\t\t\t\"ExceptionType\": vm.ExceptionType,\r\n\t\t\t}\r\n\t\t\tOperationTATBreachedService.GetTatTaskCountsByFilters(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.TotalTask = resp.data.TotalTask;\r\n\t\t\t\t\tvm.OpenTask = resp.data.OpenTask;\r\n\t\t\t\t\tvm.ClosedTask = resp.data.ClosedTask;\r\n\t\t\t\t\tvm.PickupTAT = resp.data.PickupTAT;\r\n\t\t\t\t\tvm.EstimateTAT = resp.data.EstimateTAT;\r\n\t\t\t\t\tvm.EstimateApprovalTAT = resp.data.EstimateApprovalTAT;\r\n\t\t\t\t\tvm.RepairTAT = resp.data.RepairTAT;\r\n\t\t\t\t\tvm.DeliveryTAT = resp.data.DeliveryTAT;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\tvm.GetOnBoardingTaskCounts();\r\n\r\n\t\t// vm.getAllCertificate = function () {\r\n\t\t// \tAllUsersListService.GetAllCertificate(loggedinUser, token, function (data) {\r\n\t\t// \t\tvm.AllCertificateSets = data;\r\n\t\t// \t}, vm.showFailure);\r\n\t\t// }\r\n\t\t// vm.getAllCertificate();\r\n\r\n\t\tvm.brandList = [\"LG\", \"Samsung\", \"Havells & lloyds\", \"Hitachi\", \"Panasonic\", \"O general\", \"Daikin\", \"Micromax\", \"Bluestar\", \"Toshiba\", \"Glen\", \"Lifelong\", \"Whirlpool\", \"IFB\", \"Philips\", \"Godrej\", \"Bajaj\"];\r\n\r\n\t\tvm.productList = [\"Aircon\", \"Air cooler\", \"Home Appliances\", \"IT\", \"AC\", \"Multi product\", \"RO\", \"Printer\"];\r\n\r\n\t\t// function getAllStates() {\r\n\t\t// \tvar defered = $q.defer();\r\n\t\t// \tReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n\t\t// \t\tdefered.resolve(resp);\r\n\t\t// \t}, function (error) {\r\n\t\t// \t\tdefered.reject(error);\r\n\t\t// \t});\r\n\t\t// \treturn defered.promise;\r\n\t\t// }\r\n\r\n\t\t// var allStatePromise = getAllStates(loggedinUser);\r\n\t\t// allStatePromise.then(function (resp) {\r\n\t\t// \tvm.StateList = resp.data;\r\n\r\n\t\t// });\r\n\t\t// function getallCities(state) {\r\n\t\t// \tReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t// \t\tvm.CityList = resp.data;\r\n\t\t// \t});\r\n\t\t// }\r\n\t\t// vm.selectedState = function (state) {\r\n\t\t// \tgetallCities(state);\r\n\t\t// }\r\n\r\n\t\t// vm.taskBasedFilter = function (task) {\r\n\t\t// \tvm.TaskId = task;\r\n\t\t// \tstartDate = moment().subtract(5, 'years').format(\"YYYY-MM-DD\");\r\n\t\t// \tendDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t// \tvm.AllapplyTalentPoolfilter();\r\n\t\t// }\r\n\r\n\t\t// vm.Open360ForActiveUsers = function (teamid) {\r\n\t\t// \tif (vm.loggedInUserRole != 'Dispatch Head' && vm.loggedInUserRole != 'Higher Management' && vm.loggedInUserRole != 'Community Manager') {\r\n\t\t// \t\t$state.go('index.Dashboard', {\r\n\t\t// \t\t\tUserId: teamid\r\n\t\t// \t\t}, { reload: true });\r\n\t\t// \t}\r\n\t\t// \telse if (vm.loggedInUserRole == 'Dispatch Head' || vm.loggedInUserRole == 'Higher Management' || vm.loggedInUserRole == 'Community Manager') {\r\n\t\t// \t\t$state.go('index.Technician360view', {\r\n\t\t// \t\t\tuserId: teamid\r\n\t\t// \t\t}, { reload: true });\r\n\t\t// \t}\r\n\t\t// }\r\n\r\n\r\n\t\t// $scope.TalentPoolTablepageChanged = function (newPage) {\r\n\r\n\t\t// \tvm.currentPage = newPage;\r\n\r\n\t\t// \tvm.applyfilter(newPage, '');\r\n\t\t// };\r\n\r\n\t\t// vm.applyfilter = function (index, data) {\r\n\t\t// \tvar userFormData = {};\r\n\t\t// \tif (data) {\r\n\t\t// \t\tuserFormData = data;\r\n\t\t// \t} else {\r\n\t\t// \t\tvar temp = [];\r\n\t\t// \t\tvar res = vm.Experience.split(\"-\");\r\n\t\t// \t\tvar jobscount = vm.Jobscount.split(\"-\");\r\n\t\t// \t\tvar ratings = vm.Ratings.split(\"-\");\r\n\t\t// \t\tuserFormData = {\r\n\t\t// \t\t\t\"PageIndex\": index,\r\n\t\t// \t\t\t\"PageSize\": 10,\r\n\t\t// \t\t\t\"ActivationStartDate\": startDate,\r\n\t\t// \t\t\t\"ActivationEnddate\": endDate,\r\n\t\t// \t\t\t\"State\": vm.PermanentState,\r\n\t\t// \t\t\t\"Cities\": vm.PermanentCity,\r\n\t\t// \t\t\t\"Pincodes\": temp,\r\n\t\t// \t\t\t\"Skill\": vm.addSkill,\r\n\t\t// \t\t\t\"ExperienceStart\": res[0],\r\n\t\t// \t\t\t\"ExperienceEnd\": res[1],\r\n\t\t// \t\t\t\"Certificates\": vm.addTraningCertificateName,\r\n\t\t// \t\t\t\"IsBikeAvailable\": vm.Asset_Bike,\r\n\t\t// \t\t\t\"IsMobileAvailable\": vm.Asset_Mobile,\r\n\t\t// \t\t\t\"IsLaptopAvailable\": vm.Asset_Laptop,\r\n\t\t// \t\t\t\"Tools\": vm.Asset_Tools,\r\n\t\t// \t\t\t\"JobCountStart\": jobscount[0],\r\n\t\t// \t\t\t\"JobCountEnd\": jobscount[1],\r\n\t\t// \t\t\t\"RatingStart\": Number(ratings[0]),\r\n\t\t// \t\t\t\"RatingEnd\": Number(ratings[1]),\r\n\t\t// \t\t\t\"PreferredTalentPool\": false,\r\n\t\t// \t\t\t\"IsStudent\": vm.Student,\r\n\t\t// \t\t\t\"IsCriminalVerified\": vm.Criminal,\r\n\t\t// \t\t\t\"IsBankVarified\": vm.IsBankVerified,\r\n\t\t// \t\t\t\"IsUPIVarified\": vm.IsUPIVarified,\r\n\t\t// \t\t\t\"MMFPrimeMember\": $scope.Prime,\r\n\t\t// \t\t\t\"IsCommittedUser\": vm.IsCommittedUser,\r\n\t\t// \t\t\t\"IsCommitmentInterestedUser\": vm.IsCommitmentInterestedUser,\r\n\t\t// \t\t\t\"MMFNonPrimeMember\": $scope.NonPrime,\r\n\t\t// \t\t\t\"IsOpenForInternship\": vm.Intern,\r\n\t\t// \t\t\t\"IsAdharVerified\": vm.Adharcard,\r\n\t\t// \t\t\t\"IsPanVerified\": vm.Pancard,\r\n\t\t// \t\t\t\"Source\": vm.Source,\r\n\t\t// \t\t\t\"FreelancerRole\": vm.freelancerRole,\r\n\t\t// \t\t\t\"UserStatus\": vm.UserStatus,\r\n\t\t// \t\t\t\"PssStatus\": vm.PssStatus,\r\n\t\t// \t\t\t\"OneJobDoneForSkills\": vm.OneJobDone,\r\n\t\t// \t\t\t\"ReportingTo\": vm.ReportingTo,\r\n\t\t// \t\t\t\"OrderBy\": vm.OrderBy,\r\n\t\t// \t\t\t\"SortType\": vm.SortType,\r\n\t\t// \t\t\t\"UserVerificationStatus\": vm.UserVerificationStatus,\r\n\t\t// \t\t\t\"IsFreelancerBidCount\": vm.IsFreelancerBidCount,\r\n\t\t// \t\t\t\"IsFixedTeamCount\": vm.IsFixedTeamCount,\r\n\t\t// \t\t\t\"ContactNumber\": vm.ContactNumber,\r\n\t\t// \t\t\t\"UserName\": vm.UserName,\r\n\t\t// \t\t\t\"UserId\": vm.UserId,\r\n\t\t// \t\t\t\"BrandName\": vm.ServiceBrand,\r\n\t\t// \t\t\t\"ProductServing\": vm.ServiceProduct,\r\n\t\t// \t\t\t\"SearchTag\": vm.SearchTag,\r\n\t\t// \t\t\t\"IsAuthorizedServiceCenterCount\": vm.IsAuthorizedServiceCenter,\r\n\t\t// \t\t\t\"TaskId\": vm.TaskId\r\n\t\t// \t\t}\r\n\t\t// \t\tif (vm.adddaterange) {\r\n\t\t// \t\t\tuserFormData.ActivationStartDate = startDate;\r\n\t\t// \t\t\tuserFormData.ActivationEnddate = endDate;\r\n\t\t// \t\t}\r\n\t\t// \t}\r\n\r\n\t\t// \t$localStorage.FilterData = userFormData;\r\n\t\t// \tAllUsersListService.Filter(loggedinUser, token, userFormData).then(function (resp) {\r\n\t\t// \t\tif (resp.data) {\r\n\t\t// \t\t\tvm.users = [];\r\n\t\t// \t\t\tvm.Bluserlist = [];\r\n\t\t// \t\t\tvm.usersCounts = resp.data;\r\n\t\t// \t\t\tvm.users = resp.data.Users;\r\n\r\n\t\t// \t\t\tfor (var i = 0; i < vm.users.length; i++) {\r\n\t\t// \t\t\t\tif (vm.users[i].CustomerRating) {\r\n\t\t// \t\t\t\t\tvm.users[i].CustomerRating = Number(vm.users[i].CustomerRating).toFixed(1);\r\n\t\t// \t\t\t\t}\r\n\t\t// \t\t\t}\r\n\r\n\t\t// \t\t\tvm.totalTalentPoolCount = resp.data.Count;\r\n\t\t// \t\t\t$scope.totalUsers = resp.data.Count;\r\n\t\t// \t\t\t$scope.totalTableUsers = resp.data.Count;\r\n\r\n\t\t// \t\t\tif (vm.users.length < 10)\r\n\t\t// \t\t\t\tvm.usersLength = $scope.totalUsers;\r\n\t\t// \t\t\telse\r\n\t\t// \t\t\t\tvm.usersLength = index * 10;\r\n\t\t// \t\t\tif (index == 1)\r\n\t\t// \t\t\t\tvm.techpageindexCount = 1;\r\n\t\t// \t\t\telse\r\n\t\t// \t\t\t\tvm.techpageindexCount = (((index - 1) * 10) + 1);\r\n\r\n\t\t// \t\t\tif (vm.users.length > 0) {\r\n\t\t// \t\t\t\tfor (var i = 0; i < vm.users.length; i++) {\r\n\t\t// \t\t\t\t\tif (vm.users[i].BlockedByAccounts) {\r\n\t\t// \t\t\t\t\t\tif (vm.users[i].BlockedByAccounts.length > 0) {\r\n\t\t// \t\t\t\t\t\t\tfor (var j = 0; j < vm.users[i].BlockedByAccounts.length; j++) {\r\n\t\t// \t\t\t\t\t\t\t\tif (vm.users[i].BlockedByAccounts[j] == AccountID) {\r\n\t\t// \t\t\t\t\t\t\t\t\tvm.Bluserlist.push(vm.users[i]);\r\n\t\t// \t\t\t\t\t\t\t\t\tbreak;\r\n\t\t// \t\t\t\t\t\t\t\t}\r\n\t\t// \t\t\t\t\t\t\t}\r\n\t\t// \t\t\t\t\t\t}\r\n\t\t// \t\t\t\t\t}\r\n\t\t// \t\t\t\t}\r\n\r\n\t\t// \t\t\t}\r\n\t\t// \t\t}\r\n\t\t// \t})\r\n\r\n\t\t// }\r\n\r\n\t\t// vm.GetReportingToMeUsers = function () {\r\n\t\t// \tSlotAllocationService.GetReportingToMeUsers(loggedinUser, token).then(function (resp) {\r\n\t\t// \t\tif (resp && resp.data) {\r\n\t\t// \t\t\tvm.UserByFiltersList = resp.data;\r\n\t\t// \t\t}\r\n\t\t// \t}, function () {\r\n\t\t// \t});\r\n\r\n\t\t// }\r\n\r\n\t\t// vm.GetReportingToMeUsers();\r\n\r\n\r\n\t\t// vm.TechnicianclearFilter = function () {\r\n\t\t// \tvm.UserName = \"\";\r\n\t\t// \tvm.UserId = \"\";\r\n\t\t// \tvm.ContactNumber = \"\";\r\n\t\t// \tvm.Source = \"\";\r\n\t\t// \tvm.Adharcard = \"\";\r\n\t\t// \tvm.Pancard = \"\";\r\n\t\t// \t$scope.Prime = false;\r\n\t\t// \t$scope.NonPrime = false;\r\n\t\t// \tvm.IsCommittedUser = false;\r\n\t\t// \tvm.IsCommitmentInterestedUser = false;\r\n\t\t// \tvm.PssStatus = \"\";\r\n\t\t// \tvm.IsBankVerified = \"\";\r\n\t\t// \tvm.PreferredForAccounts = \"\";\r\n\t\t// \tvm.PssStatus = \"\";\r\n\t\t// \tvm.Criminal = \"\";\r\n\t\t// \tvm.PermanentState = \"\";\r\n\t\t// \tvm.PermanentCity = \"\";\r\n\t\t// \tvm.Experience = \"\";\r\n\t\t// \tvm.traningCertificateList = \"\";\r\n\t\t// \tvm.freelancerRoleList = \"\";\r\n\t\t// \tvm.freelancerRole = \"\";\r\n\t\t// \tvm.Asset_Laptop = \"\";\r\n\t\t// \tvm.Asset_Mobile = \"\";\r\n\t\t// \tvm.Asset_Bike = \"\";\r\n\t\t// \tvm.Asset_Tools = \"\";\r\n\t\t// \tvm.Jobscount = \"\";\r\n\t\t// \tvm.Ratings = \"\";\r\n\t\t// \tvm.CurrentState = \"\";\r\n\t\t// \tvm.UserStatus = \"\";\r\n\t\t// \tvm.userskill = [];\r\n\t\t// \tvm.userskill = \"\";\r\n\t\t// \tvm.OneJobDone = false;\r\n\t\t// \tvm.SearchTag = \"\";\r\n\t\t// \tvm.ServiceBrand = \"\";\r\n\t\t// \tvm.ReportingTo = \"\";\r\n\t\t// \tvm.ServiceProduct = \"\";\r\n\t\t// \tvm.ReportingTo = \"\";\r\n\t\t// \tvm.TaskId = \"\";\r\n\t\t// \tstartDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\t// \tendDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t// \tvm.AllapplyTalentPoolfilter();\r\n\t\t// }\r\n\r\n\t\t// vm.getAllUsersByStage = function (stage) {\r\n\t\t// \tvm.UserVerificationStatus = stage;\r\n\t\t// \tvm.IsAuthorizedServiceCenter = false;\r\n\t\t// \tvm.freelancerRole = \"\";\r\n\t\t// \tvm.IsCommittedUser = false;\r\n\t\t// \tvm.IsCommitmentInterestedUser = false;\r\n\t\t// \tvm.UserStatus = \"\";\r\n\t\t// \tvm.PssStatus = \"\";\r\n\t\t// \t$scope.Prime = false;\r\n\t\t// \t$scope.NonPrime = false;\r\n\t\t// \tvm.OneJobDone = false;\r\n\t\t// \tvm.Criminal = false;\r\n\t\t// \tvm.IsFreelancerBidCount = false;\r\n\t\t// \tvm.IsFixedTeamCount = false;\r\n\t\t// \tvm.AllapplyTalentPoolfilter();\r\n\r\n\t\t// }\r\n\r\n\t\t// vm.getAllUsersByRole = function (role) {\r\n\t\t// \tvm.UserVerificationStatus = \"\";\r\n\t\t// \tvm.IsCommittedUser = false;\r\n\t\t// \tvm.IsCommitmentInterestedUser = false;\r\n\t\t// \tif (role == 'Active') {\r\n\t\t// \t\tvm.UserStatus = role;\r\n\t\t// \t\tvm.freelancerRole = \"\";\r\n\t\t// \t}\r\n\t\t// \telse if (role == 'Inactive') {\r\n\t\t// \t\tvm.UserStatus = role;\r\n\t\t// \t\tvm.freelancerRole = \"\";\r\n\t\t// \t}\r\n\t\t// \telse if (role == 'Invite') {\r\n\t\t// \t\tvm.UserStatus = role;\r\n\t\t// \t\tvm.freelancerRole = \"\";\r\n\t\t// \t}\r\n\t\t// \telse if (role == '') {\r\n\t\t// \t\tvm.UserStatus = role;\r\n\t\t// \t\tvm.freelancerRole = \"\";\r\n\t\t// \t}\r\n\t\t// \telse {\r\n\t\t// \t\tvm.freelancerRole = role;\r\n\t\t// \t\tvm.UserStatus = \"Active\";\r\n\t\t// \t}\r\n\t\t// \t$scope.Prime = false;\r\n\t\t// \t$scope.NonPrime = false;\r\n\t\t// \tvm.PssStatus = \"\";\r\n\t\t// \tvm.OneJobDone = false;\r\n\t\t// \tvm.Criminal = false;\r\n\t\t// \tvm.IsFreelancerBidCount = false;\r\n\t\t// \tvm.IsFixedTeamCount = false;\r\n\t\t// \tvm.IsAuthorizedServiceCenter = false;\r\n\t\t// \tvm.AllapplyTalentPoolfilter();\r\n\t\t// }\r\n\r\n\t\t// vm.getAllOneJobDone = function () {\r\n\t\t// \t$scope.Prime = false;\r\n\t\t// \t$scope.NonPrime = false;\r\n\t\t// \tvm.Criminal = false;\r\n\t\t// \tvm.IsFixedTeamCount = false;\r\n\t\t// \tvm.IsFreelancerBidCount = false;\r\n\t\t// \tvm.PssStatus = \"\";\r\n\t\t// \tvm.UserVerificationStatus = \"\";\r\n\t\t// \tvm.IsAuthorizedServiceCenter = false;\r\n\t\t// \tvm.IsCommittedUser = false;\r\n\t\t// \tvm.IsCommitmentInterestedUser = false;\r\n\t\t// \tvm.freelancerRole = \"\";\r\n\t\t// \tvm.UserStatus = \"\";\r\n\t\t// \tvm.OneJobDone = true;\r\n\t\t// \tvm.AllapplyTalentPoolfilter();\r\n\t\t// }\r\n\r\n\t\t// vm.getAllFixedTeam = function () {\r\n\t\t// \t$scope.Prime = false;\r\n\t\t// \t$scope.NonPrime = false;\r\n\t\t// \tvm.Criminal = false;\r\n\t\t// \tvm.IsFixedTeamCount = true;\r\n\t\t// \tvm.IsFreelancerBidCount = false;\r\n\t\t// \tvm.PssStatus = \"\";\r\n\t\t// \tvm.UserVerificationStatus = \"\";\r\n\t\t// \tvm.IsAuthorizedServiceCenter = false;\r\n\t\t// \tvm.IsCommittedUser = false;\r\n\t\t// \tvm.IsCommitmentInterestedUser = false;\r\n\t\t// \tvm.freelancerRole = \"\";\r\n\t\t// \tvm.UserStatus = \"\";\r\n\t\t// \tvm.OneJobDone = false;\r\n\t\t// \tvm.AllapplyTalentPoolfilter();\r\n\t\t// }\r\n\r\n\t\t// vm.getAllLeadStarted = function () {\r\n\t\t// \t$scope.Prime = false;\r\n\t\t// \t$scope.NonPrime = false;\r\n\t\t// \tvm.Criminal = false;\r\n\t\t// \tvm.IsFreelancerBidCount = true;\r\n\t\t// \tvm.IsFixedTeamCount = false;\r\n\t\t// \tvm.UserVerificationStatus = \"\";\r\n\t\t// \tvm.IsAuthorizedServiceCenter = false;\r\n\t\t// \tvm.IsCommittedUser = false;\r\n\t\t// \tvm.IsCommitmentInterestedUser = false;\r\n\t\t// \tvm.freelancerRole = \"\";\r\n\t\t// \tvm.PssStatus = \"\";\r\n\t\t// \tvm.UserStatus = \"\";\r\n\t\t// \tvm.OneJobDone = false;\r\n\t\t// \tvm.AllapplyTalentPoolfilter();\r\n\t\t// }\r\n\r\n\t\t// vm.getCountByPssValue = function (pss) {\r\n\t\t// \t$scope.Prime = false;\r\n\t\t// \t$scope.NonPrime = false;\r\n\t\t// \tvm.PssStatus = pss;\r\n\t\t// \tvm.Criminal = false;\r\n\t\t// \tvm.IsFreelancerBidCount = false;\r\n\t\t// \tvm.IsFixedTeamCount = false;\r\n\t\t// \tvm.UserVerificationStatus = \"\";\r\n\t\t// \tvm.IsCommittedUser = false;\r\n\t\t// \tvm.IsCommitmentInterestedUser = false;\r\n\t\t// \tvm.freelancerRole = \"\";\r\n\t\t// \tvm.UserStatus = \"\";\r\n\t\t// \tvm.OneJobDone = false;\r\n\t\t// \tvm.IsAuthorizedServiceCenter = false;\r\n\t\t// \tvm.AllapplyTalentPoolfilter();\r\n\t\t// }\r\n\t\t// vm.authorizeDetail = function (role) {\r\n\t\t// \tif (role == 'Active') {\r\n\t\t// \t\tvm.UserStatus = role;\r\n\r\n\t\t// \t}\r\n\t\t// \telse if (role == 'Inactive') {\r\n\t\t// \t\tvm.UserStatus = role;\r\n\r\n\t\t// \t}\r\n\t\t// \telse if (role == '') {\r\n\t\t// \t\tvm.UserStatus = role;\r\n\r\n\t\t// \t}\r\n\t\t// \t$scope.Prime = false;\r\n\t\t// \t$scope.NonPrime = false;\r\n\t\t// \tvm.Criminal = false;\r\n\t\t// \tvm.IsFreelancerBidCount = false;\r\n\t\t// \tvm.IsFixedTeamCount = false;\r\n\t\t// \tvm.UserVerificationStatus = \"\";\r\n\t\t// \tvm.IsCommittedUser = false;\r\n\t\t// \tvm.IsCommitmentInterestedUser = false;\r\n\t\t// \tvm.freelancerRole = \"\";\r\n\t\t// \tvm.OneJobDone = false;\r\n\t\t// \tvm.IsAuthorizedServiceCenter = true;\r\n\t\t// \tvm.AllapplyTalentPoolfilter();\r\n\t\t// }\r\n\r\n\t\t// vm.committedDetail = function (committedvalue) {\r\n\t\t// \tif (committedvalue == true) {\r\n\t\t// \t\tvm.IsCommittedUser = true;\r\n\t\t// \t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t// \t}\r\n\t\t// \telse if (committedvalue == false) {\r\n\t\t// \t\tvm.IsCommittedUser = false;\r\n\t\t// \t\tvm.IsCommitmentInterestedUser = true;\r\n\t\t// \t}\r\n\t\t// \tvm.PssStatus = \"\";\r\n\t\t// \t$scope.Prime = false;\r\n\t\t// \t$scope.NonPrime = false;\r\n\t\t// \tvm.OneJobDone = false;\r\n\t\t// \tvm.IsFreelancerBidCount = false;\r\n\t\t// \tvm.IsFixedTeamCount = false;\r\n\t\t// \tvm.Criminal = false;\r\n\t\t// \tvm.UserVerificationStatus = \"\";\r\n\t\t// \tvm.IsAuthorizedServiceCenter = false;\r\n\t\t// \tvm.freelancerRole = \"\";\r\n\t\t// \tvm.UserStatus = \"\";\r\n\t\t// \tvm.AllapplyTalentPoolfilter();\r\n\t\t// }\r\n\r\n\t\t// vm.getAllCriminalFlag = function (criminalValue) {\r\n\t\t// \tvm.PssStatus = \"\";\r\n\t\t// \t$scope.Prime = false;\r\n\t\t// \t$scope.NonPrime = false;\r\n\t\t// \tvm.OneJobDone = false;\r\n\t\t// \tvm.IsFreelancerBidCount = false;\r\n\t\t// \tvm.IsFixedTeamCount = false;\r\n\t\t// \tvm.Criminal = criminalValue;\r\n\t\t// \tvm.UserVerificationStatus = \"\";\r\n\t\t// \tvm.IsAuthorizedServiceCenter = false;\r\n\t\t// \tvm.IsCommittedUser = false;\r\n\t\t// \tvm.IsCommitmentInterestedUser = false;\r\n\t\t// \tvm.freelancerRole = \"\";\r\n\t\t// \tvm.UserStatus = \"\";\r\n\t\t// \tvm.AllapplyTalentPoolfilter();\r\n\r\n\t\t// }\r\n\t\t// vm.getAllPrimeFlag = function (primeValue) {\r\n\t\t// \tif (primeValue == true) {\r\n\t\t// \t\t$scope.Prime = true;\r\n\t\t// \t\t$scope.NonPrime = false;\r\n\t\t// \t} else if (primeValue == false) {\r\n\t\t// \t\t$scope.NonPrime = true;\r\n\t\t// \t\t$scope.Prime = false;\r\n\t\t// \t}\r\n\t\t// \tvm.Criminal = false;\r\n\t\t// \tvm.IsFreelancerBidCount = false;\r\n\t\t// \tvm.IsFixedTeamCount = false;\r\n\t\t// \tvm.UserVerificationStatus = \"\";\r\n\t\t// \tvm.IsCommittedUser = false;\r\n\t\t// \tvm.IsCommitmentInterestedUser = false;\r\n\t\t// \tvm.freelancerRole = \"\";\r\n\t\t// \tvm.UserStatus = \"\";\r\n\t\t// \tvm.PssStatus = \"\";\r\n\t\t// \tvm.IsAuthorizedServiceCenter = false;\r\n\t\t// \tvm.OneJobDone = false;\r\n\t\t// \tvm.AllapplyTalentPoolfilter();\r\n\r\n\t\t// }\r\n\r\n\r\n\t\t// vm.AllapplyTalentPoolfilter = function () {\r\n\t\t// \t$scope.Ticket = 1;\r\n\t\t// \t$scope.dates = { startDate: startDate, endDate: endDate };\r\n\t\t// \tvm.adddaterange = true;\r\n\t\t// \t$scope.UserTablepagination.current = 1;\r\n\t\t// \tvar temp = [];\r\n\t\t// \tvar tuPageIndex = \"\";\r\n\t\t// \tvar res = vm.Experience.split(\"-\");\r\n\t\t// \tvar jobscount = vm.Jobscount.split(\"-\");\r\n\t\t// \tvar ratings = vm.Ratings.split(\"-\");\r\n\t\t// \ttuPageIndex = 1;\r\n\t\t// \tvm.traningCertificateList = \"\";\r\n\t\t// \tif (vm.TraningCertificate) {\r\n\t\t// \t\tvm.traningCertificateList = vm.TraningCertificate.join('|');\r\n\t\t// \t}\r\n\t\t// \tif (vm.PreferredForAccounts) {\r\n\t\t// \t\tstartDate = \"\";\r\n\t\t// \t\tendDate = \"\";\r\n\t\t// \t}\r\n\t\t// \tvm.userFormData = {\r\n\t\t// \t\t\"PageIndex\": tuPageIndex,\r\n\t\t// \t\t\"PageSize\": 10,\r\n\t\t// \t\t\"ActivationStartDate\": startDate,\r\n\t\t// \t\t\"ActivationEnddate\": endDate,\r\n\t\t// \t\t\"State\": vm.PermanentState,\r\n\t\t// \t\t\"Cities\": vm.PermanentCity,\r\n\t\t// \t\t\"Pincodes\": temp,\r\n\t\t// \t\t\"Skill\": vm.userskill,\r\n\t\t// \t\t\"UserVerificationStatus\": vm.UserVerificationStatus,\r\n\t\t// \t\t\"ExperienceStart\": res[0],\r\n\t\t// \t\t\"ExperienceEnd\": res[1],\r\n\t\t// \t\t\"Certificates\": vm.traningCertificateList,\r\n\t\t// \t\t\"IsBikeAvailable\": vm.Asset_Bike,\r\n\t\t// \t\t\"IsMobileAvailable\": vm.Asset_Mobile,\r\n\t\t// \t\t\"IsLaptopAvailable\": vm.Asset_Laptop,\r\n\t\t// \t\t\"Tools\": vm.Asset_Tools,\r\n\t\t// \t\t\"JobCountStart\": jobscount[0],\r\n\t\t// \t\t\"JobCountEnd\": jobscount[1],\r\n\t\t// \t\t\"RatingStart\": Number(ratings[0]),\r\n\t\t// \t\t\"RatingEnd\": Number(ratings[1]),\r\n\t\t// \t\t\"PreferredTalentPool\": false,\r\n\t\t// \t\t\"IsFreelancerBidCount\": vm.IsFreelancerBidCount,\r\n\t\t// \t\t\"IsFixedTeamCount\": vm.IsFixedTeamCount,\r\n\t\t// \t\t\"FreelancerRole\": vm.freelancerRole,\r\n\t\t// \t\t\"UserStatus\": vm.UserStatus,\r\n\t\t// \t\t\"ContactNumber\": vm.ContactNumber,\r\n\t\t// \t\t\"UserName\": vm.UserName,\r\n\t\t// \t\t\"UserId\": vm.UserId,\r\n\t\t// \t\t\"IsStudent\": vm.Student,\r\n\t\t// \t\t\"MMFPrimeMember\": $scope.Prime,\r\n\t\t// \t\t\"MMFNonPrimeMember\": $scope.NonPrime,\r\n\t\t// \t\t\"IsOpenForInternship\": vm.Intern,\r\n\t\t// \t\t\"IsAdharVerified\": vm.Adharcard,\r\n\t\t// \t\t\"BrandName\": vm.ServiceBrand,\r\n\t\t// \t\t\"ProductServing\": vm.ServiceProduct,\r\n\t\t// \t\t\"IsBankVarified\": vm.IsBankVerified,\r\n\t\t// \t\t\"IsCriminalVerified\": vm.Criminal,\r\n\t\t// \t\t\"Source\": vm.Source,\r\n\t\t// \t\t\"OneJobDoneForSkills\": vm.OneJobDone,\r\n\t\t// \t\t\"PssStatus\": vm.PssStatus,\r\n\t\t// \t\t\"SearchTag\": vm.SearchTag,\r\n\t\t// \t\t\"ReportingTo\": vm.ReportingTo,\r\n\t\t// \t\t\"OrderBy\": vm.OrderBy,\r\n\t\t// \t\t\"SortType\": vm.SortType,\r\n\t\t// \t\t\"IsCommittedUser\": vm.IsCommittedUser,\r\n\t\t// \t\t\"IsCommitmentInterestedUser\": vm.IsCommitmentInterestedUser,\r\n\t\t// \t\t\"IsAuthorizedServiceCenterCount\": vm.IsAuthorizedServiceCenter,\r\n\t\t// \t\t\"PreferredForAccount\": vm.PreferredForAccounts,\r\n\t\t// \t\t\"TaskId\": vm.TaskId\r\n\t\t// \t}\r\n\t\t// \tAllUsersListService.Filter(loggedinUser, token, vm.userFormData).then(function (resp) {\r\n\t\t// \t\tif (resp.data) {\r\n\t\t// \t\t\tvm.pfuserlist = [];\r\n\t\t// \t\t\tvm.users = [];\r\n\t\t// \t\t\tvm.usersCounts = resp.data;\r\n\t\t// \t\t\tvm.users = resp.data.Users;\r\n\t\t// \t\t\tif (vm.users.length == 0) {\r\n\t\t// \t\t\t\tvm.showFailure('Failed', 'No User Found');\r\n\t\t// \t\t\t}\r\n\t\t// \t\t\tfor (var i = 0; i < vm.users.length; i++) {\r\n\t\t// \t\t\t\tif (vm.users[i].CustomerRating) {\r\n\t\t// \t\t\t\t\tvm.users[i].CustomerRating = Number(vm.users[i].CustomerRating).toFixed(1);\r\n\t\t// \t\t\t\t}\r\n\t\t// \t\t\t}\r\n\t\t// \t\t\tvm.totalTalentPoolCount = resp.data.Count;\r\n\t\t// \t\t\t$scope.totalTalentUsers = resp.data.Count;\r\n\t\t// \t\t\t$scope.totalTableUsers = resp.data.Count;\r\n\t\t// \t\t\tif (vm.users.length < 10)\r\n\t\t// \t\t\t\tvm.usersLength = $scope.totalTalentUsers;\r\n\t\t// \t\t\telse\r\n\t\t// \t\t\t\tvm.usersLength = tuPageIndex * 10;\r\n\t\t// \t\t\tif (tuPageIndex == 1)\r\n\t\t// \t\t\t\tvm.techpageindexCount = 1;\r\n\t\t// \t\t\telse\r\n\t\t// \t\t\t\tvm.techpageindexCount = (((tuPageIndex - 1) * 10) + 1);\r\n\t\t// \t\t\tif (vm.users.length < 10)\r\n\t\t// \t\t\t\tvm.usersLength = $scope.totalTalentUsers;\r\n\t\t// \t\t\telse\r\n\t\t// \t\t\t\tvm.usersLength = tuPageIndex * 10;\r\n\t\t// \t\t\tif (tuPageIndex == 1)\r\n\t\t// \t\t\t\tvm.techpageindexCount = 1;\r\n\t\t// \t\t\telse\r\n\t\t// \t\t\t\tvm.techpageindexCount = (((tuPageIndex - 1) * 10) + 1);\r\n\t\t// \t\t\tif (vm.users.length > 0) {\r\n\t\t// \t\t\t\tfor (var i = 0; i < vm.users.length; i++) {\r\n\t\t// \t\t\t\t\tif (vm.users[i].FavoriteForAccounts) {\r\n\t\t// \t\t\t\t\t\tif (vm.users[i].FavoriteForAccounts.length > 0) {\r\n\t\t// \t\t\t\t\t\t\tfor (var j = 0; j < vm.users[i].FavoriteForAccounts.length; j++) {\r\n\t\t// \t\t\t\t\t\t\t\tif (vm.users[i].FavoriteForAccounts[j] == AccountID) {\r\n\t\t// \t\t\t\t\t\t\t\t\tvm.pfuserlist.push(vm.users[i]);\r\n\t\t// \t\t\t\t\t\t\t\t\tbreak;\r\n\t\t// \t\t\t\t\t\t\t\t}\r\n\t\t// \t\t\t\t\t\t\t}\r\n\t\t// \t\t\t\t\t\t}\r\n\t\t// \t\t\t\t\t}\r\n\t\t// \t\t\t\t}\r\n\t\t// \t\t\t}\r\n\t\t// \t\t\t$timeout(function () {\r\n\t\t// \t\t\t\t$scope.class1 = false;\r\n\t\t// \t\t\t}, 250);\r\n\t\t// \t\t}\r\n\t\t// \t})\r\n\t\t// \tvm.UserCountbyFilter();\r\n\t\t// }\r\n\r\n\t\t// vm.UserCountbyFilter = function () {\r\n\t\t// \tAllUsersListService.UserCountbyFilter(loggedinUser, token, vm.userFormData).then(function (resp) {\r\n\t\t// \t\tif (resp.data) {\r\n\t\t// \t\t\tvm.TotalUsersCount = resp.data.Count;\r\n\t\t// \t\t\tvm.BasicInformation = resp.data.BasicInformation;\r\n\t\t// \t\t\tvm.TotalInvitedUserCount = resp.data.TotalInvitedUserCount;\r\n\t\t// \t\t\tvm.LocationAndSkill = resp.data.LocationAndSkill;\r\n\t\t// \t\t\tvm.Backgroundverified = resp.data.Backgroundverified;\r\n\t\t// \t\t\tvm.Paymentverified = resp.data.Paymentverified;\r\n\t\t// \t\t\tvm.PoliceVerified = resp.data.PoliceVerified;\r\n\t\t// \t\t\tvm.CriminalVerified = resp.data.CriminalVerified;\r\n\t\t// \t\t\tvm.TotalActiveFrUsersCount = resp.data.TotalActiveFrUsersCount;\r\n\t\t// \t\t\tvm.TotalActiveFVUsersCount = resp.data.TotalActiveFVUsersCount;\r\n\t\t// \t\t\tvm.TotalActiveFVTUsersCount = resp.data.TotalActiveFVTUsersCount;\r\n\t\t// \t\t\tvm.FixedTeamCount = resp.data.FixedTeamCount;\r\n\t\t// \t\t\tvm.PrimeMember = resp.data.PrimeMember;\r\n\t\t// \t\t\tvm.NonPrimeMember = resp.data.NonPrimeMember;\r\n\t\t// \t\t\tvm.TotalActiveUsersCount = resp.data.TotalActiveUsersCount;\r\n\t\t// \t\t\tvm.Count = resp.data.Count;\r\n\t\t// \t\t\tvm.TotalRegisterUser = resp.data.TotalRegisterUser;\r\n\t\t// \t\t\tvm.TotalFreelancerBidCount = resp.data.TotalFreelancerBidCount;\r\n\t\t// \t\t\tvm.OneJobDoneCount = resp.data.OneJobDoneCount;\r\n\t\t// \t\t\tvm.NonPrimeMoreThanTenCount = resp.data.NonPrimeMoreThanTenCount;\r\n\t\t// \t\t\tvm.LeadReceivedUserCount = resp.data.LeadReceivedUserCount;\r\n\t\t// \t\t\tvm.LeadNotReceivedUserCount = resp.data.LeadNotReceivedUserCount;\r\n\t\t// \t\t\tvm.LeadAcceptedUserCount = resp.data.LeadAcceptedUserCount;\r\n\t\t// \t\t\tvm.LeadNotAcceptedUserCount = resp.data.LeadNotAcceptedUserCount;\r\n\t\t// \t\t\tvm.JobRejectionBreachedCount = resp.data.JobRejectionBreachedCount;\r\n\t\t// \t\t\tvm.JobRejectionMetCount = resp.data.JobRejectionMetCount;\r\n\t\t// \t\t\tvm.SOPAdherenceBreachedCount = resp.data.SOPAdherenceBreachedCount;\r\n\t\t// \t\t\tvm.SOPAdherenceMetCount = resp.data.SOPAdherenceMetCount;\r\n\t\t// \t\t\tvm.AuthorizedServiceParnterDetailCount = resp.data.AuthorizedServiceParnterDetailCount;\r\n\t\t// \t\t\tvm.AuthorizedServiceParnterDetailCountActive = resp.data.AuthorizedServiceParnterDetailCountActive;\r\n\t\t// \t\t\tvm.AuthorizedServiceParnterDetailCountInActive = resp.data.AuthorizedServiceParnterDetailCountInActive;\r\n\t\t// \t\t\tvm.CommitmentInterestedUserCount = resp.data.CommitmentInterestedUserCount;\r\n\t\t// \t\t\tvm.CommittedUserCount = resp.data.CommittedUserCount\r\n\t\t// \t\t}\r\n\t\t// \t})\r\n\t\t// }\r\n\t\t// vm.AllapplyTalentPoolfilter();\r\n\r\n\t\t// $scope.isOpen = false;\r\n\t\t// $scope.isOpen1 = false;\r\n\t\t// $scope.isCollapsed = true;\r\n\t\t// $scope.isCollapsed0 = true;\r\n\t\t// $scope.isCollapsed1 = true;\r\n\t\t// $scope.isCollapsed2 = true;\r\n\t\t// $scope.isCollapsed3 = true;\r\n\t\t// $scope.isCollapsed4 = true;\r\n\t\t// $scope.isCollapsed19 = true;\r\n\t\t// $scope.isCollapsed21 = true;\r\n\t\t// $scope.isCollapsed23 = true;\r\n\t\t// $scope.isCollapsed24 = true;\r\n\t\t// $scope.isCollapsed26 = true;\r\n\t\t// $scope.isCollapsed35 = true;\r\n\t\t// $scope.isCollapsed36 = true;\r\n\t\t// $scope.isCollapsed40 = true;\r\n\t\t// $scope.isCollapsed41 = true;\r\n\t\t// $scope.isCollapsed42 = true;\r\n\t\t// $scope.isCollapsed43 = true;\r\n\t\t// $scope.isCollapsed49 = true;\r\n\r\n\t\t// $scope.activatedButton = function () {\r\n\t\t// \t$scope.isactivated = !$scope.isactivated;\r\n\t\t// }\r\n\t\t// $scope.activatedButton1 = function () {\r\n\t\t// \t$scope.isactivated1 = !$scope.isactivated1;\r\n\t\t// }\r\n\t\t// $scope.activatedButton2 = function () {\r\n\t\t// \t$scope.isactivated2 = !$scope.isactivated2;\r\n\t\t// }\r\n\t\t// $scope.activatedButton3 = function () {\r\n\t\t// \t$scope.isactivated3 = !$scope.isactivated3;\r\n\t\t// }\r\n\t\t// $scope.activatedButton4 = function () {\r\n\t\t// \t$scope.isactivated4 = !$scope.isactivated4;\r\n\t\t// }\r\n\t\t// $scope.activatedButton5 = function () {\r\n\t\t// \t$scope.isactivated5 = !$scope.isactivated5;\r\n\t\t// }\r\n\t\t// $scope.activatedButton6 = function () {\r\n\t\t// \t$scope.isactivated6 = !$scope.isactivated6;\r\n\t\t// }\r\n\t\t// $scope.activatedButton7 = function () {\r\n\t\t// \t$scope.isactivated7 = !$scope.isactivated7;\r\n\t\t// }\r\n\t\t// $scope.activatedButton8 = function () {\r\n\t\t// \t$scope.isactivated8 = !$scope.isactivated8;\r\n\t\t// }\r\n\t\t// $scope.activatedButton9 = function () {\r\n\t\t// \t$scope.isactivated9 = !$scope.isactivated9;\r\n\t\t// }\r\n\t\t// $scope.activatedButton10 = function () {\r\n\t\t// \t$scope.isactivated10 = !$scope.isactivated10;\r\n\t\t// }\r\n\t\t// $scope.activatedButton11 = function () {\r\n\t\t// \t$scope.isactivated11 = !$scope.isactivated11;\r\n\t\t// }\r\n\t\t// $scope.activatedButton12 = function () {\r\n\t\t// \t$scope.isactivated12 = !$scope.isactivated12;\r\n\t\t// }\r\n\t\t// $scope.activatedButton13 = function () {\r\n\t\t// \t$scope.isactivated13 = !$scope.isactivated13;\r\n\t\t// }\r\n\t\t// $scope.activatedButton14 = function () {\r\n\t\t// \t$scope.isactivated14 = !$scope.isactivated14;\r\n\t\t// }\r\n\t\t// $scope.activatedButton15 = function () {\r\n\t\t// \t$scope.isactivated15 = !$scope.isactivated15;\r\n\t\t// }\r\n\t\t// $scope.activatedButton16 = function () {\r\n\t\t// \t$scope.isactivated16 = !$scope.isactivated16;\r\n\t\t// }\r\n\t\t// $scope.activatedButton17 = function () {\r\n\t\t// \t$scope.isactivated17 = !$scope.isactivated17;\r\n\t\t// }\r\n\t\t// $scope.activatedButton18 = function () {\r\n\t\t// \t$scope.isactivated18 = !$scope.isactivated18;\r\n\t\t// }\r\n\t\t// $scope.activatedButton19 = function () {\r\n\t\t// \t$scope.isactivated19 = !$scope.isactivated19;\r\n\t\t// }\r\n\r\n\t\t// $scope.activatedButton20 = function () {\r\n\t\t// \t$scope.isactivated20 = !$scope.isactivated20;\r\n\t\t// }\r\n\t\t// $scope.activatedButton21 = function () {\r\n\t\t// \t$scope.isactivated21 = !$scope.isactivated21;\r\n\t\t// }\r\n\t\t// $scope.activatedButton22 = function () {\r\n\t\t// \t$scope.isactivated22 = !$scope.isactivated22;\r\n\t\t// }\r\n\t\t// $scope.activatedButton23 = function () {\r\n\t\t// \t$scope.isactivated23 = !$scope.isactivated23;\r\n\t\t// }\r\n\t\t// $scope.activatedButton24 = function () {\r\n\t\t// \t$scope.isactivated24 = !$scope.isactivated24;\r\n\t\t// }\r\n\t\t// $scope.activatedButton25 = function () {\r\n\t\t// \t$scope.isactivated25 = !$scope.isactivated25;\r\n\t\t// }\r\n\t\t// $scope.activatedButton26 = function () {\r\n\t\t// \t$scope.isactivated26 = !$scope.isactivated26;\r\n\t\t// }\r\n\t\t// $scope.activatedButton27 = function () {\r\n\t\t// \t$scope.isactivated27 = !$scope.isactivated27;\r\n\t\t// }\r\n\t\t// $scope.activatedButton28 = function () {\r\n\t\t// \t$scope.isactivated28 = !$scope.isactivated28;\r\n\t\t// }\r\n\t\t// $scope.activatedButton29 = function () {\r\n\t\t// \t$scope.isactivated29 = !$scope.isactivated29;\r\n\t\t// }\r\n\t\t// $scope.activatedButton30 = function () {\r\n\t\t// \t$scope.isactivated30 = !$scope.isactivated30;\r\n\t\t// }\r\n\t\t// $scope.activatedButton31 = function () {\r\n\t\t// \t$scope.isactivated31 = !$scope.isactivated31;\r\n\t\t// }\r\n\t\t// $scope.activatedButton32 = function () {\r\n\t\t// \t$scope.isactivated32 = !$scope.isactivated32;\r\n\t\t// }\r\n\t\t// $scope.activatedButton33 = function () {\r\n\t\t// \t$scope.isactivated33 = !$scope.isactivated33;\r\n\t\t// }\r\n\t\t// $scope.activatedButton34 = function () {\r\n\t\t// \t$scope.isactivated34 = !$scope.isactivated34;\r\n\t\t// }\r\n\t\t// $scope.activatedButton35 = function () {\r\n\t\t// \t$scope.isactivated35 = !$scope.isactivated35;\r\n\t\t// }\r\n\t\t// $scope.activatedButton36 = function () {\r\n\t\t// \t$scope.isactivated36 = !$scope.isactivated36;\r\n\t\t// }\r\n\t\t// $scope.activatedButton37 = function () {\r\n\t\t// \t$scope.isactivated37 = !$scope.isactivated37;\r\n\t\t// }\r\n\t\t// $scope.activatedButton38 = function () {\r\n\t\t// \t$scope.isactivated38 = !$scope.isactivated38;\r\n\t\t// }\r\n\t\t// $scope.activatedButton39 = function () {\r\n\t\t// \t$scope.isactivated39 = !$scope.isactivated39;\r\n\t\t// }\r\n\t\t// $scope.activatedButton40 = function () {\r\n\t\t// \t$scope.isactivated40 = !$scope.isactivated40;\r\n\t\t// }\r\n\r\n\t\t\r\n\t\tvm.sortColumn = function (col) {\r\n\t\t\tvm.OrderBy = col;\r\n\t\t\tif (vm.SortType == 'desc') {\r\n\t\t\t vm.SortType = 'asc';\r\n\t\t\t vm.reverseclass = 'fa fa-arrow-up';\r\n\t\t\t} else {\r\n\t\t\t vm.SortType = 'desc';\r\n\t\t\t vm.reverseclass = 'fa fa-arrow-down';\r\n\t\t\t}\r\n\t\t\t// vm.AllapplyTalentPoolfilter();\r\n\t\t };\r\n\t \r\n\t\t vm.sortClass = function (col) {\r\n\t\t\tif (vm.OrderBy == col) {\r\n\t\t\t if (vm.SortType == 'desc') {\r\n\t\t\t\treturn 'fa fa-arrow-down';\r\n\t\t\t } else {\r\n\t\t\t\treturn 'fa fa-arrow-up';\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t return \"\";\r\n\t\t\t}\r\n\t\t }\r\n\r\n\t\t// vm.GetAllActivitiesForUser = function (userId) {\r\n\t\t// \tvm.CallingUser = userId;\r\n\t\t// \tCommittmentOpsService.GetAllActivitiesForUser(userId, loggedinUser, token).then(function (resp) {\r\n\t\t// \t\tvm.UserActivityInfo = resp.data;\r\n\t\t// \t});\r\n\t\t// }\r\n\r\n// \t\tvm.CommittmentModelOpen = function (userid) {\r\n// \t\t\tvm.userCommittmentId = userid;\r\n// \t\t\tvm.CommittmentModel = $uibModal.open({\r\n// \t\t\t\ttemplateUrl: 'committmentmodel.html',\r\n// \t\t\t\tbackdrop: 'static',\r\n// \t\t\t\tsize: 'lg',\r\n// \t\t\t\tscope: $scope\r\n// \t\t\t});\r\n// \t\t}\r\n// \t\tvm.CloseCommittmentModel = function () {\r\n// \t\t\tvm.CommittmentModel.close();\r\n// \t\t\tvm.userCommittmentDate = new Date();\r\n// \t\t\tvm.userCommittmentStatus = \"Interested\";\r\n// \t\t\tvm.userCommittmentId = \"\";\r\n// \t\t\tvm.userComments = \"\";\r\n// \t\t\tvm.userCommittmentReason = \"\";\r\n// \t\t}\r\n\r\n// \t\tvm.CommittmentFollowUp = function () {\r\n// \t\t\tvm.committment_form.submitted = true;\r\n// \t\t\t// if (vm.userCommittmentStatus) {\r\n// \t\t\t\tif(vm.committment_form.$valid){\r\n// \t\t\t\tif (vm.userCommittmentStatus == 'NotInterested') {\r\n// \t\t\t\t\tvm.userCommittmentDate = \"\";\r\n// \t\t\t\t}\r\n// \t\t\t\telse {\r\n// \t\t\t\t\tvm.userCommittmentDate = moment(vm.userCommittmentDate).format(\"YYYY-MM-DD\");\r\n// \t\t\t\t}\r\n\t\t\t\t\r\n// \t\t\t\tvar data = {\r\n// \t\t\t\t\t\"CommittmentStatus\": vm.userCommittmentStatus,\r\n// \t\t\t\t\t\"CommittmentReason\": vm.userCommittmentReason,\r\n// \t\t\t\t\t\"UserComment\": vm.userComments,\r\n// \t\t\t\t\t\"Date\": vm.userCommittmentDate,\r\n// \t\t\t\t\t\"UserId\": vm.userCommittmentId,\r\n// \t\t\t\t}\r\n\t\t\t\t\r\n\r\n\r\n// \t\t\t\tCommittmentOpsService.CommittmentFollowUp(data, loggedinUser, token).then(function (resp) {\r\n// \t\t\t\t\tif (resp && resp.status == 200) {\r\n// \t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n// \t\t\t\t\t\tvm.CloseCommittmentModel();\r\n// \t\t\t\t\t\t$timeout(function () {\r\n// \t\t\t\t\t\t\tvm.AllapplyTalentPoolfilter();\r\n// \t\t\t\t\t\t}, 2000);\r\n// \t\t\t\t\t}\r\n// \t\t\t\t\telse {\r\n// \t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n// \t\t\t\t\t}\r\n// \t\t\t\t});\r\n\t\t\t\r\n// \t\t// }\r\n// \t\t\t// else {\r\n// \t\t\t// \tvm.showFailure(\"Failed\", \"Please select committment status.\");\r\n// \t\t\t// }\r\n// }\r\n// \t\t}\r\n\r\n\t\t// vm.OpenTracking = function (user) {\r\n\t\t// \t$state.go('index.PincodeFinder', {\r\n\t\t// \t\tuserId: user.UserId,\r\n\t\t// \t}, {\r\n\t\t// \t\treload: true\r\n\t\t// \t});\r\n\t\t// }\r\n\r\n\t\t// $scope.followupmodal = true;\r\n\t\t// $scope.toggleForBroadcastnew = function () {\r\n\t\t// \t$scope.followupmodal = !$scope.followupmodal;\r\n\t\t// \t$scope.myvalue = true;\r\n\r\n\t\t// };\r\n\r\n\t\t// vm.CloseingRemark = \"\";\r\n\t\t// vm.OnBoardingTaskModelOpen = function (taskid) {\r\n\t\t// \tvm.CommitmentTaskId = taskid;\r\n\t\t// \tvm.OnBoardingTaskmodel = $uibModal.open({\r\n\t\t// \t\ttemplateUrl: 'OnBoardingTaskmodel.html',\r\n\t\t// \t\tbackdrop: 'static',\r\n\t\t// \t\tsize: 'lg',\r\n\t\t// \t\tscope: $scope\r\n\t\t// \t});\r\n\t\t// }\r\n\r\n\t\t// vm.CloseOnBoardingTaskModel = function () {\r\n\t\t// \tvm.OnBoardingTaskmodel.close();\r\n\t\t// \tvm.CommitmentTaskId = \"\";\r\n\t\t// \tvm.CloseingRemark = \"\";\r\n\t\t// \tvm.closeuserCommittmentStatus = \"Interested\";\r\n\t\t// }\r\n\r\n\r\n\t\t// vm.CloseOnBoardingTask = function () {\r\n\t\t// \tif (vm.closeuserCommittmentStatus == 'NotInterested') {\r\n\t\t// \t\tvm.userCommittmentDate = \"\";\r\n\t\t// \t}\r\n\t\t// \telse {\r\n\t\t// \t\tvm.userCommittmentDate = moment(vm.userCommittmentDate).format(\"YYYY-MM-DD\");\r\n\t\t// \t}\r\n\t\t// \tvar data = {\r\n\t\t// \t\t\"TaskId\": vm.CommitmentTaskId,\r\n\t\t// \t\t\"CloseingRemark\": vm.CloseingRemark,\r\n\t\t// \t\t\"CommittmentStatus\": vm.closeuserCommittmentStatus,\r\n\t\t// \t\t\"Date\": vm.userCommittmentDate,\r\n\t\t// \t}\r\n\t\t// \tCommittmentOpsService.CloseOnBoardingTask(data, loggedinUser, token).then(function (resp) {\r\n\t\t// \t\tif (resp && resp.status == 200) {\r\n\t\t// \t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t// \t\t\tvm.CloseOnBoardingTaskModel();\r\n\t\t// \t\t}\r\n\t\t// \t\telse {\r\n\t\t// \t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t// \t\t}\r\n\t\t// \t});\r\n\t\t// }\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('OnBoardingFormService', function($http, FreelancerURL,ApiURL,PublicApiURL,IntegrationAPI){\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/FreeLancerRegistration/srachit46%40gmail.com/UR0000000002/GetUserByRegistrationNumber\r\n this.GetUserByRegistrationNo = function (loggedinUser, registrationNo, token) { \r\n var url = FreelancerURL + '/api/FreelancerRegistration/' + loggedinUser + '/' + registrationNo + '/GetUserByRegistrationNumber'\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n //save button for BG check\r\n // this.CreateInvoiceToBillToAndShipTo = function (loggedinUser,token,InoviceToBillToAndShipToData) {\r\n // var url = ApiURL + '/api/Upload/BackgroundDoc';\r\n // return $http.post(url, InoviceToBillToAndShipToData, {\r\n // headers: { \r\n // 'Content-Type': 'application/json',\r\n // 'Token':token , \r\n // 'UserId':loggedinUser\r\n // }\r\n // });\r\n // }\r\n\r\n\r\n // this.SaveBackgroundChecks = function(BGDocList, files, token, loggedinUser){ \r\n // var formdata = new FormData();\t\t\r\n // if(files)\r\n // {\r\n // formdata.append(\"files\", files[0]); \r\n // }\r\n \r\n \r\n // var followupdata = JSON.stringify(BGDocList);\r\n // formdata.append(\"BackgroundData\", followupdata);\r\n // // formdata.append(\"reqUserId\", loggedinUser);\r\n // var url = ApiURL + '/api/Upload/BackgroundDoc';\r\n // return $http.post(url,formdata,{\r\n // headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n // });\r\n // }\r\n\r\n this.SaveBackgroundChecks = function(BGDocList, files,files2,files3, token, loggedinUser){\r\n var formdata = new FormData();\t\t\r\n formdata.append(\"FrontDocFile\", files[0]);\r\n formdata.append(\"BackDocFile\", files2[0]);\r\n formdata.append(\"ThirdPartyDocFile\", files3[0]);\t\r\n var followupdata = JSON.stringify(BGDocList);\r\n formdata.append(\"BackgroundData\", followupdata);\r\n // formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/Upload/UpdateBackgroundDoc';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n this.getAllState = function (loggedinUser, token) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllStates';\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n //http://192.168.0.80:92/LocationAPI/api/Location/saurabhgupta3371%40gmail.com/UTTAR%20PRADESH/GetCitiesByState\r\n\r\n this.getCityByState = function (loggedinUser, state) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/' + state + '/GetCitiesByState';\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.updateuUser = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration?reqUserId=' + loggedinUser;\r\n return $http.put(url, data, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.uploadProfilePic = function (loggedinUser, data, token, success, failure) {\r\n $http.post(ApiURL + '/api/UploadDoc', data,{\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n// https://perf.mymobiforce.com/coreapi/api/Cetrificate/GetAll?reqUserId=F00000000000\r\n// https://perf.mymobiforce.com/coreapi/api/Cetrificate/GetAllMaster?reqUserId=F00000000000\r\n this.GetAllCertificate = function(loggedinUser, token, success, failure){\r\n // var url = ApiURL + '/api/Cetrificate/GetAll?reqUserId=' + loggedinUser;\r\n var url = ApiURL + '/api/Cetrificate/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url,{headers:{'Token':token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 201 && res.data){\r\n success(res.data);\r\n }\r\n },function(err){\r\n failure(\"Failed\",\"Unable to get certificate list, server error.\");\r\n })\r\n }\r\n\r\n// https://perf.mymobiforce.com/coreapi/api/Tool/GetAllMaster?reqUserId=F00000000000\r\n this.GetAllToolSets = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/Tool/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url,{headers:{'Token':token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 201 && res.data){\r\n success(res.data);\r\n }\r\n },function(err){\r\n failure(\"Failed\",\"Unable to get certificate list, server error.\");\r\n })\r\n }\r\n\r\n this.getAllSkills = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers: {'Token': token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 200 && res.data){\r\n success(res.data);\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get skill list, server error.\")\r\n })\r\n }\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetCountry?userId=U420000000001\r\nthis.getCountry = function (userId) {\r\n var url = PublicApiURL + '/api/Address/GetCountry?userId=' + userId;\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n}\r\n\r\n//https://db.mymobiforce.com/publicapi/api/Address/GetStates?userId=U420000000001&country=QATAR\r\nthis.getStates = function (userId, country) {\r\n var url = PublicApiURL + '/api/Address/GetStates?userId=' + userId + '&country=' + country;\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n}\r\n\r\n\r\n//https://db.mymobiforce.com/publicapi/api/Address/GetCities?userId=U420000000001&state=DOHA\r\nthis.getCities = function (userId, state) {\r\n var url = PublicApiURL + '/api/Address/GetCities?userId=' + userId + '&state=' + state;\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n}\r\n\r\n\r\n this.GetAllCircles = function (loggedinUser, success, failure) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllCircles'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json' }\r\n }).then(function(res){\r\n if(res && res.status ==200 && res.data){\r\n success(res.data);\r\n } \r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get locations, server is not responding correctly\");\r\n });\r\n }\r\n\r\n this.getAllAccounts = function (loggedinUser,token) { \r\n var url = FreelancerURL+ '/api/FreeLancerUser/Administrator/' + loggedinUser + '/Account';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/publicapi/api/TestSkill/SendSkillTestLink?reqUserId=F00000000000&ContactNumber=9711845000&skill=Water_Purifier_Service\r\n this.sendBoatLink = function(loggedinUser, mobileNo, skill, token, success, failure){\r\n var url = PublicApiURL + '/api/TestSkill/SendSkillTestLink?reqUserId=' +loggedinUser + '&ContactNumber=' + mobileNo + '&skill='+skill ;\r\n $http.post(url,null,{headers: { 'Content-Type': 'application/json','Token': token, 'UserId':loggedinUser }}).then(success, failure);\r\n }\r\n\r\n this.callToInitCverification = function(loggedinUser,UserId,token, success, failure){ \r\n var url = IntegrationAPI + '/api/VerficationIntegration/CreateCriminalVerificationRequest?UserId=' +UserId;\r\n return $http.get(url, {headers: {'Token': token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 200 && res.data){\r\n success(res.data);\r\n }\r\n }, function(err){\r\n failure(\"Failed\")\r\n }) }\r\n\r\n\r\n this.RejectUserProfile = function (userId,rejectRemark,loggedinUser,token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/RejectUserProfile?userId=' + userId + '&ProfileReviewComment=' + rejectRemark;\r\n return $http.put(url, null, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.VerifyUserProfile = function (userId,loggedinUser,token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/VerifyUserProfile?userId=' + userId;\r\n return $http.put(url, null, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n \r\n})\nangular.module('inspinia').controller('OnBoardingFormController', function (OnBoardingFormService,ActiveUserUpdateService, $q, MainService, $filter, ReferService, FreelancerURL, $window, $location, $rootScope, $stateParams, $uibModal, $scope, $log, ImageUrl, $sce, toaster, $localStorage, $timeout, $state) {\r\n\r\n var vm = this;\r\n var RegistrationNo = $stateParams.RegistrationNo;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.From = $localStorage.From;\r\n vm.ActiveFVT = $localStorage.ActiveFVT;\r\n if(vm.From == 'FVT'){\r\n vm.dissableBankDetails = true;\r\n }\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n vm.searchButtonText = 'Update';\r\n vm.dissbleUpdateButton = false;\r\n vm.rejectButtonStatus = 'Reject';\r\n vm.disableRejectButton = false;\r\n vm.dissableMobile = true;\r\n vm.editmode = false;\r\n vm.RegisteredUser = '';\r\n vm.FirstName = '';\r\n // vm.UpdatedOn = '';\r\n vm.BGVerificationStatus= '';\r\n vm.isnonindeximage = \"\";\r\n vm.LastName = '';\r\n vm.MobileNo = '';\r\n vm.Email = '';\r\n vm.pdfimage ='';\r\n vm.DOB = moment();\r\n vm.Gender = '';\r\n vm.Designation='';\r\n vm.Background='';\r\n vm.PAN = '';\r\n vm.Aadhar = '';\r\n vm.AddressLine1 = '';\r\n vm.AddressLine2 = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.PermanentPincode = '';\r\n vm.BaseAddressLine1 = '';\r\n vm.BaseAddressLine2 = '';\r\n vm.AccountList = [];\r\n vm.AllAccountNames = [];\r\n vm.BaseState = '';\r\n vm.BaseCity = '';\r\n vm.BasePincode = '';\r\n vm.UserId = '';\r\n vm.DocumentType = '';\r\n vm.DocumentName = '';\r\n vm.UserType = '';\r\n vm.Picture = '';\r\n vm.RegistrationStatus = '';\r\n vm.UserInfoCheck = false;\r\n vm.UserLocationCheck = false;\r\n vm.UserDocumentCheck = false;\r\n vm.UserTraningCheck = false;\r\n vm.UserBankDetailsCheck =false;\r\n vm.UserAvailableAssestCheck = false;\r\n vm.WorkPlaceFileName = \"\";\r\n vm.AuthFileName = \"\";\r\n vm.TrainingFileName = \"\";\r\n vm.BrandName= \"\";\r\n vm.BrandNameOther= \"\";\r\n vm.Tenure = 0;\r\n vm.ProductServing = \"\";\r\n vm.ProductServingOther = \"\";\r\n vm.ServiceCenterAddress= \"\";\r\n vm.TeamSize = 0;\r\n vm.FilesAuthDoc= [];\r\n vm.FilesTrainingDoc= [];\r\n vm.FilesWorkPlaceDoc = [];\r\n vm.ToolAuditFiles = [];\r\n vm.ThirdPartyDocs = [];\r\n vm.FilesBackDoc = [];\r\n vm.FilesFrontDoc = [];\r\n vm.BackFileName=\"\";\r\n vm.FrontFileName=\"\";\r\n vm.UserSkillCheck = false;\r\n vm.verifyAll = false;\r\n vm.Asset_Mobile = '';\r\n vm.Asset_Laptop = '';\r\n vm.Asset_Bike = '';\r\n vm.Asset_Tools = '';\r\n vm.Asset_ToolList = [];\r\n vm.Work_Location=[];\r\n vm.PreferredLocationList = [];\r\n vm.BGDocList = [];\r\n vm.AccountName = '';\r\n vm.AllCertificateSets = [];\r\n vm.experienceYearList = [];\r\n vm.AllSkillSets = [];\r\n vm.DocprofileImg =[];\r\n vm.CertprofileImg =[];\r\n vm.SkillList = [];\r\n vm.QualificationList = [];\r\n vm.TrainingList = [];\r\n vm.addTraningCertificateName = '';\r\n vm.tempTCertificateFile = '';\r\n vm.addSkill = '';\r\n vm.addExprence = '';\r\n vm.pathtcertificate = '';\r\n vm.error = {};\r\n vm.CoverageDistance = '';\r\n vm.IsStudent = '';\r\n vm.IsOpenForInternship = '';\r\n vm.IsPanVerified = '';\r\n vm.IsAdharVerified = '';\r\n vm.Source = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.BankAccountNo = '';\r\n vm.BankIFSC = '';\r\n vm.AccountHolderName = '';\r\n vm.FEBankDetails = {};\r\n var $container = $('.basicwizard1');\r\n var $p = $('.referalwizard');\r\n var currentIndex = 0;\r\n vm.InsuranceDetails = {};\r\n vm.ContractDocPath = '';\r\n vm.ContractSignDate = '';\r\n vm.ToolsDetailList=[];\r\n vm.PreviousCompanyDetailsList=[];\r\n vm.VerificationCertprofileImg = [];\r\n vm.Verificationpathtcertificate = '';\r\n vm.UserExperience='';\r\n vm.CompanyName = '';\r\n vm.FatherName = '';\r\n var today = new Date();\r\n var date = today.getFullYear() - 18;\r\n var age = (today.getMonth() + 1 + \"/\" + today.getDate() + \"/\" + date).toString();\r\n vm.maxDOB = new Date(age);\r\n vm.maxDOBStr = vm.maxDOB.toDateString();\r\n age = Date.parse(age);\r\n $scope.MaxDate = moment(age);\r\n vm.checkMaxDOB = function () {\r\n if (vm.DOB && !vm.DOB._isAMomentObject) {\r\n var splittedDOB = vm.DOB.split(\"/\");\r\n vm.DOB = moment(new Date((splittedDOB[1] + \"/\" + splittedDOB[0] + \"/\" + splittedDOB[2]).toString()));\r\n }\r\n return (vm.maxDOB - vm.DOB) < 0;\r\n }\r\n\r\n vm.qualificationList = [\"10th\", \"12th\", \"Graduation Degree/Deploma\", \"PG Degree/Deploma\"];\r\n vm.BGDocType = ['Aadhar Card', 'Address Proof', 'Pan Card','Court Information', 'Education Certificate','Police Verification','Resume','Cancelled Check','Experience Letter','GST_Certificate'];\r\n // vm.BGDocType = ['Aadhar Card', 'Address Proof', 'Pan Card', 'Court Information'];\r\n vm.BDDocSubType = {};\r\n vm.BDDocSubType['Aadhar Card'] = ['Aadhar Card', 'Voter Id Card', 'Driving License'];\r\n vm.BDDocSubType['Address Proof'] = [\"Aadhar Card\", \"Voter Id Card\", \"Driving License\", \"Passport\", \"Rent Agreement\", \"Telephone/Gas Bill\", \"Bank Passbook\"];\r\n vm.BDDocSubType['Pan Card'] = ['Pan Card'];\r\n vm.BDDocSubType['Education Certificate'] = vm.qualificationList;\r\n vm.BDDocSubType['Police Verification'] = [\"Police Verification\"];\r\n vm.BDDocSubType['Resume'] = [\"Resume\"];\r\n vm.BDDocSubType['Cancelled Check'] = [\"Cancelled Check\"];\r\n vm.BDDocSubType['Experience Letter'] = [\"Experience Letter\"];\r\n\r\n vm.GetUserByRegistrationNo = function () { \r\n OnBoardingFormService.GetUserByRegistrationNo(loggedinUser, RegistrationNo, token).then(function (resp) {\r\n var RegisteredUser = resp.data;\r\n vm.UserId = RegisteredUser.UserId;\r\n vm.FirstName = RegisteredUser.FirstName;\r\n // vm.BGDocList = RegisteredUser.BGVerificationDocPath;\r\n vm.BGVerificationStatus = RegisteredUser.BGVerificationStatus;\r\n vm.LastName = RegisteredUser.LastName;\r\n vm.ProfileRejectDate = RegisteredUser.ProfileRejectDate;\r\n vm.ProfileRejectedBy = RegisteredUser.ProfileRejectedBy;\r\n vm.ProfileResubmitDate = RegisteredUser.ProfileResubmitDate;\r\n vm.ProfileReviewComment = RegisteredUser.ProfileReviewComment;\r\n vm.DOB = moment(RegisteredUser.DOB);\r\n vm.Email = RegisteredUser.PersonalEmail;\r\n vm.Gender = RegisteredUser.Gender;\r\n vm.Designation = RegisteredUser.Designation;\r\n vm.Background =RegisteredUser.BGVerificationStatus;\r\n vm.PAN = RegisteredUser.PAN;\r\n vm.Aadhar = RegisteredUser.AdharNo;\r\n vm.MobileNo = RegisteredUser.ContactNumber;\r\n vm.AddressLine1 = RegisteredUser.PermanentAdd1;\r\n vm.AddressLine2 = RegisteredUser.PermanentAdd2;\r\n vm.PermanentState = RegisteredUser.PermanentState;\r\n vm.PermanentCity = RegisteredUser.PermanentCity?RegisteredUser.PermanentCity.toUpperCase():RegisteredUser.PermanentCity;\r\n vm.PermanentPincode = RegisteredUser.PermanentPinCode;\r\n vm.BaseAddressLine1 = RegisteredUser.CurrentAdd1;\r\n vm.BaseAddressLine2 = RegisteredUser.CurrentAdd2;\r\n vm.BaseState = RegisteredUser.CurrentState;\r\n vm.BaseCity = RegisteredUser.CurrentCity?RegisteredUser.CurrentCity.toUpperCase():RegisteredUser.CurrentCity;\r\n vm.BasePincode = RegisteredUser.CurrentPinCode;\r\n // vm.Picture = RegisteredUser.Picture;\r\n vm.RegistrationStatus = RegisteredUser.RegistrationStatus;\r\n vm.Asset_Mobile = RegisteredUser.IsMobileAvailable;\r\n vm.Asset_Bike = RegisteredUser.IsBikeAvailable;\r\n vm.Asset_Laptop = RegisteredUser.IsLaptopAvailable;\r\n vm.QualificationList = RegisteredUser.UserQualification;\r\n vm.FEBankDetails = RegisteredUser.FEBankDetails;// Added bank account details\r\n vm.UserInfoCheck = RegisteredUser.IsBasicVerified;\r\n vm.UserLocationCheck = RegisteredUser.IsLocVerified;\r\n vm.UserDocumentCheck = RegisteredUser.IsDocsVerified;\r\n vm.UserBankDetailsCheck = RegisteredUser.IsBankDetailsVerified;\r\n vm.UserTraningCheck = RegisteredUser.IsCertificationVerified;\r\n vm.UserAvailableAssestCheck = RegisteredUser.IsAssetsVerified;\r\n vm.UserSkillCheck = RegisteredUser.IsSkillsVerified;\r\n vm.CoverageDistance = RegisteredUser.CoverageDistance;\r\n vm.Asset_Tools = RegisteredUser.Tools;\r\n vm.UserType= RegisteredUser.UserType;\r\n vm.AccountList = RegisteredUser.AccountDetails;\r\n vm.InsuranceDetails = RegisteredUser.InsuranceDetails;\r\n vm.ContractDocPath = RegisteredUser.ContractDocPath;\r\n vm.ContractSignDate = RegisteredUser.ContractSignDate;\r\n vm.Work_Location =RegisteredUser.Locations;\r\n vm.IsStudent = RegisteredUser.IsStudent;\r\n vm.IsOpenForInternship = RegisteredUser.IsOpenForInternship;\r\n vm.IsPanVerified = RegisteredUser.IsPanVerified;\r\n vm.IsAdharVerified = RegisteredUser.IsAdharVerified;\r\n vm.Source = RegisteredUser.Source;\r\n vm.imageServices(RegisteredUser.Picture);\r\n vm.ToolsDetailList = RegisteredUser.ToolsDetailList;\r\n vm.ServicePartnerModel = RegisteredUser.ServicePartnerModel;\r\n vm.PreviousCompanyDetailsList = RegisteredUser.PreviousCompanyDetailsList;\r\n vm.UserExperience = RegisteredUser.Experience;\r\n vm.CompanyName = RegisteredUser.CompanyName;\r\n vm.FatherName = RegisteredUser.FatherName;\r\n $(\"#example_id\").ionRangeSlider({\r\n grid: true,\r\n min: 0,\r\n max: 400,\r\n from: vm.CoverageDistance,\r\n step : 1,\r\n skin: \"round\",\r\n postfix: \" Kms\"\r\n });\r\n\r\n if (RegisteredUser.BGVerificationDocPath) {\r\n angular.forEach(vm.BGDocType, function (d, i) {\r\n vm.BGDocList[i] = {\r\n // \"DocumentType\": e,\r\n \"DocumentName\": d,\r\n \"DocumentNo\":\"\",\r\n \"VerificationMode\":\"\",\r\n \"DocumentPath\": \"\",\r\n \"ThirdPartyDocumentPath\": \"\",\r\n \"DocumentPath\": \"\",\r\n \"ThirdPartyDocumentPath\": \"\"\r\n };\r\n \r\n for (var imageIndex = 0; imageIndex < RegisteredUser.BGVerificationDocPath.length; imageIndex++) {\r\n if (d == RegisteredUser.BGVerificationDocPath[imageIndex].DocumentName ) {\r\n vm.BGDocList[i] = RegisteredUser.BGVerificationDocPath[imageIndex];\r\n vm.BGDocList[i].DocumentNo = vm.BGDocList[i].DocumentNo;\r\n vm.BGDocList[i].DocumentPath = vm.BGDocList[i].DocumentPath;\r\n vm.BGDocList[i].ThirdPartyDocumentPath = vm.BGDocList[i].ThirdPartyDocumentPath;\r\n //vm.BGDocList[i].DocumentData = vm.DocumentimageServices(vm.BGDocList[i].DocumentPath,i);\r\n //vm.BGDocList[i].ThirdPartyDocumentData = vm.DocumentimageServices(vm.BGDocList[i].ThirdPartyDocumentPath,i);\r\n \r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n // $scope.attachThirdPartyReport = function(files){ \r\n // vm.ToolAuditFileName=\"\";\r\n // var file = files.files[0];\r\n // vm.ToolAuditFileName=file.name; \r\n // vm.ToolAuditFiles = files.files;\r\n // var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n // if(!allowedExtensions.exec(file.name)){\r\n // vm.ToolAuditFiles = [];\r\n // vm.clear(); \r\n // alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n // }\r\n // }\r\n $scope.attachThirdPartyReport = function(files){ \r\n vm.ToolAuditFileName=\"\";\r\n var file = files.files[0];\r\n vm.ToolAuditFileName=file.name; \r\n vm.ThirdPartyDocs = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.ThirdPartyDocs = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n $scope.attachBackDoc = function(files){ \r\n vm.BackFileName=\"\";\r\n var file = files.files[0];\r\n vm.BackFileName=file.name; \r\n vm.FilesBackDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesBackDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n $scope.uploadBGFilenew = function(files){ \r\n vm.FrontFileName=\"\";\r\n var file = files.files[0];\r\n vm.FrontFileName=file.name; \r\n vm.FilesFrontDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesFrontDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n\r\n vm.DocEdit = function(index){\r\n vm.ToolAuditFiles=null; \r\n }\r\n \r\n vm.SiteRescheduleAudit = function(index){ \r\n // vm.ToolAuditFiles=[];\r\n var data = {};\r\n data = { \r\n \"UserId\": vm.UserId, \r\n \"docName\": vm.BGDocList[index].DocumentName,\r\n \"docType\": \"\",\r\n \"DocumentNo\":vm.BGDocList[index].DocumentNo,\r\n \"VerificationMode\":vm.BGDocList[index].VerificationMode,\r\n \"VerificationAuthority\":vm.BGDocList[index].VerificationAuthority,\r\n \"VerificationStatus\":vm.BGDocList[index].VerificationStatus,\r\n \"ThirdPartyDocumentPath\":vm.BGDocList[index].ThirdPartyDocumentPathName\r\n } \r\n \r\n OnBoardingFormService.SaveBackgroundChecks(data,vm.FilesFrontDoc,vm.FilesBackDoc, vm.ThirdPartyDocs, token, loggedinUser).then(function(res){\r\n if (res && res.status == 201) { \r\n vm.data=\"\"; \r\n vm.showSuccess(\"Success\", \"Document verified successfully.\");\r\n \r\n $timeout(function () {\r\n // vm.ToolAuditFileName=\"\";\r\n vm.GetUserByRegistrationNo();\r\n \r\n }, 4000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\",\"not verified\");\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n },vm.showFailure(\"Failed\", \"Please Upload Document\"));\r\n }\r\n\r\n $scope.attachAuthCertiDoc = function(files){ \r\n vm.AuthFileName = \"\";\r\n var file = files.files[0];\r\n vm.AuthFileName = file.name; \r\n vm.FilesAuthDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesAuthDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n $scope.attachTrainingDoc = function(files){ \r\n vm.TrainingFileName = \"\";\r\n var file = files.files[0];\r\n vm.TrainingFileName = file.name; \r\n vm.FilesTrainingDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesTrainingDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n $scope.attachWorkPlaceDoc = function(files){ \r\n vm.WorkPlaceFileName = \"\";\r\n var file = files.files[0];\r\n vm.WorkPlaceFileName = file.name; \r\n vm.FilesWorkPlaceDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesWorkPlaceDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n vm.UpdateAuthorizedServiceDetails = function(index){\r\n var data = {};\r\n data = {\r\n \"ServicePartnerId\": vm.ServicePartnerModel[index].ServicePartnerId,\r\n \"BrandName\": vm.BrandName,\r\n \"BrandNameOther\": vm.BrandNameOther,\r\n \"Tenure\": vm.ServicePartnerModel[index].Tenure,\r\n \"ProductServing\": vm.ProductServing,\r\n \"ProductServingOther\": vm.ProductServingOther,\r\n \"TeamSize\": vm.ServicePartnerModel[index].TeamSize,\r\n \"ServiceCenterAddress\": vm.ServicePartnerModel[index].ServiceCenterAddress,\r\n \"CertificateOfAuthorization\": vm.AuthFileName,\r\n \"TrainingCertificate\": vm.TrainingFileName,\r\n \"PhotoOfWorkPlace\":vm.WorkPlaceFileName\r\n } \r\n ActiveUserUpdateService.SaveAuthorizationData(data,vm.UserId,vm.FilesAuthDoc,vm.FilesTrainingDoc,vm.FilesWorkPlaceDoc, token, loggedinUser).then(function(res){\r\n if (res && res.status == 201) { \r\n vm.data=\"\"; \r\n vm.showSuccess(\"Success\", \"Document verified successfully.\");\r\n $timeout(function () {\r\n vm.GetUserByRegistrationNo();\r\n vm.BrandName = '';\r\n vm.BrandNameOther = '';\r\n vm.ProductServing = '';\r\n vm.ProductServingOther = '';\r\n }, 2500);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\",\"not verified\");\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n },vm.showFailure);\r\n }\r\n if (RegisteredUser.TrainingAssessment) {\r\n for (var trainingIndex = 0; trainingIndex < RegisteredUser.TrainingAssessment.length; trainingIndex++) {\r\n vm.TrainingList[trainingIndex] = RegisteredUser.TrainingAssessment[trainingIndex];\r\n vm.CertificateimageServices(vm.TrainingList[trainingIndex].TrainingCertificate,trainingIndex);\r\n\r\n // if(vm.TrainingList[trainingIndex].VerificationReportPath !=null)\r\n vm.VerificationCertificateimageServices(vm.TrainingList[trainingIndex].VerificationReportPath,trainingIndex);\r\n \r\n }\r\n }\r\n\r\n // if(RegisteredUser.BGVerificationDocPath.length > 0){\r\n \r\n // for(var doc = 0; doc< RegisteredUser.BGVerificationDocPath.length;doc++){\r\n // vm.BGDocList[doc] = RegisteredUser.BGVerificationDocPath[doc];\r\n // }\r\n // console.log(vm.BGDocList);\r\n\r\n // for( var m = 0; m 0) {\r\n vm.countrylist = resp.data.values;\r\n vm.selectedCountry = vm.countrylist[0];\r\n vm.GetAllCircles();\r\n }\r\n }\r\n })\r\n }\r\n vm.getCountry();\r\n\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n\r\n function getallBaseCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.BaseCityList = resp.data;\r\n });\r\n }\r\n\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n vm.emptyPincode = function () {\r\n vm.PermanentPincode = '';\r\n }\r\n\r\n vm.selectedBaseState = function (bstate) {\r\n getallBaseCities(bstate);\r\n }\r\n vm.emptyBasePincode = function () {\r\n vm.BasePincode = '';\r\n }\r\n\r\n vm.getPicUrl = function (pic) {\r\n \r\n return ImageUrl + \"/\" + pic;\r\n }\r\n vm.PDFView = function (page) {\r\n MainService.GetImageBlob(loggedinUser, token, page).then(function(resp) {\r\n \r\n vm.pdfimage = resp.data;\r\n });\r\n $scope.selected = null;\r\n $timeout(function(){\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size :'lg',\r\n scope: $scope\r\n });\r\n },1000)\r\n \r\n }\r\n vm.PDFUserModal = function(){\r\n jobAppointmentModal.close();\r\n }\r\n\r\n vm.checkdateformat = function (_date) {\r\n \r\n var _date = _date.split(' ')[0];\r\n return vm.InsuranceDetails.IssueDate = $filter('date')(new Date(_date),'dd/MMM/yy');\r\n }\r\n $scope.checkPDF = function(path){\r\n \r\n var pt = path.substr(path.length - 4);\r\n if(pt == '.pdf'){\r\n vm.error = function(){\r\n $(\".pdf\").attr({\"target\" : \"_blank\"})\r\n }\r\n return true;\r\n }\r\n else\r\n {\r\n return false;\r\n }\r\n }\r\n \r\n vm.changeFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n\r\n vm.changeCertificateFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n vm.VerificationchangeCertificateFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n $scope.uploadImageFile = function (files, type) {\r\n var file = files.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId+\"_ProfilePic_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if (file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n OnBoardingFormService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm[type] = filename;\r\n vm.imageServices(filename);\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n }\r\n\r\n vm.imageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function() {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n } \r\n vm.DocumentimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n vm.DocprofileImg[index] = resp.data;\r\n \r\n });\r\n \r\n }\r\n vm.CertificateimageServices = function(cert,index){\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function(resp) {\r\n vm.CertprofileImg[index] = resp.data; \r\n }); \r\n }\r\n vm.UploadCertificateimageServices = function(cert){\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function(resp) {\r\n vm.UploadCertprofileImg = resp.data;\r\n vm.isnonindeximage = \"1\"; \r\n }); \r\n }\r\n vm.VerificationCertificateimageServices = function(cert,index){\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function(resp) {\r\n vm.VerificationCertprofileImg[index] = resp.data; \r\n }); \r\n }\r\n vm.Verificationisnonindeximage=\"0\";\r\n vm.VerificationUploadCertificateimageServices = function(cert){\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function(resp) {\r\n vm.VerificationUploadCertprofileImg = resp.data;\r\n vm.Verificationisnonindeximage = \"1\"; \r\n alert(vm.VerificationUploadCertprofileImg); \r\n }); \r\n }\r\n\r\n // $scope.uploadBGFile = function (elem) {\r\n // var index = (angular.element(elem).attr(\"data-index\"));\r\n // var doc = vm.BGDocList[index];\r\n // vm.error[doc.DocumentType] = '';\r\n // var file = elem.files[0];\r\n\r\n // var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n // filename = vm.UserId+\"_\"+doc.DocumentName.replace(/[^a-zA-Z0-9]/g, '') +\"_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n // var file = new File([file], filename, {type:file.type});\r\n\r\n // if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n // || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n // || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n // var data = new FormData();\r\n // data.append(\"files\", file);\r\n // OnBoardingFormService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n // if (res && res.status == 201 && res.data) {\r\n // doc.DocumentPath = doc.DocumentPath = filename;\r\n // doc.DocumentName = doc.DocumentName;\r\n // doc.DocumentNo = doc.DocumentNo;\r\n // vm.DocumentimageServices(doc.DocumentPath,index);\r\n // doc.edit = false;\r\n // }\r\n // }, function (err) {\r\n // vm.showFailure(\"Failed\", \"File name is invalid, unable to upload document\");\r\n // });\r\n // } else {\r\n // vm.error[doc.DocumentType] = \"You can upload image, pdf or word document only\";\r\n // }\r\n // }\r\n\r\n //background Checks\r\n // $scope.uploadBGFilenew = function (elem) {\r\n // var index = (angular.element(elem).attr(\"data-index\"));\r\n // var doc = vm.BGDocList[index];\r\n // vm.error[doc.DocumentType] = '';\r\n // var file = elem.files[0];\r\n\r\n // var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n // filename = vm.UserId+\"_\"+doc.DocumentName.replace(/[^a-zA-Z0-9]/g, '') +\"_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n // var file = new File([file], filename, {type:file.type});\r\n\r\n // if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n // || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n // || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n // var data = new FormData();\r\n // data.append(\"files\", file);\r\n // OnBoardingFormService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n // if (res && res.status == 201 && res.data) {\r\n // doc.DocumentPath = doc.DocumentPath = filename;\r\n // doc.ThirdPartyDocumentPath = doc.ThirdPartyDocumentPath = filename;\r\n // doc.DocumentName = doc.DocumentName;\r\n // doc.DocumentNo = doc.DocumentNo;\r\n // // doc.UpdatedOn = doc.UpdatedOn;\r\n // vm.DocumentimageServices(doc.DocumentPath,index);\r\n // vm.DocumentimageServices(doc.ThirdPartyDocumentPath,index);\r\n // doc.editnew = false;\r\n // }\r\n // }, function (err) {\r\n // vm.showFailure(\"Failed\", \"File name is invalid, unable to upload document\");\r\n // });\r\n // } else {\r\n // vm.error[doc.DocumentType] = \"You can upload image, pdf or word document only\";\r\n // }\r\n // }\r\n\r\n\r\n $scope.uploadCertificateFile = function (elem) {\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n // var doc = vm.BGDocList[index];\r\n var traning = vm.TrainingList[index];\r\n // vm.error[traning.CertificateName] = '';\r\n var file = elem.files[0];\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId+\"_TraningCertificate_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n OnBoardingFormService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.pathtcertificate = filename;\r\n vm.UploadCertificateimageServices(filename);\r\n if(vm.pathtcertificate){\r\n vm.tempCertificateAdd = false;\r\n }\r\n traning.TrainingCertificate = traning.TrainingCertificate = filename;\r\n traning.CertificateName = traning.CertificateName;\r\n \r\n traning.edit = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload certificate, server error\");\r\n });\r\n } else {\r\n vm.error[traning.CertificateName] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n \r\n $scope.uploadInsurenceFile = function (elem) {\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n var doc = vm.InsuranceDetails\r\n \r\n var file = elem.files[0];\r\n \r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId+\"_Insurence_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n OnBoardingFormService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.InsuranceDetails.InsuranceImageURL = vm.InsuranceDetails.InsuranceImageURL1 = filename;\r\n \r\n vm.edit = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload insurance document, server error\");\r\n });\r\n } else {\r\n vm.showFailure(\"Failed\", \"You can upload image, pdf or word document only\");\r\n }\r\n }\r\n vm.tempfilename=\"\";\r\n $scope.VerificationuploadCertificateFile = function (elem) { \r\n \r\n var index = (angular.element(elem).attr(\"data-index\")); \r\n var traning = vm.TrainingList[index]; \r\n var file = elem.files[0];\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId+\"_VerificationTraningCertificate_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n OnBoardingFormService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.Verificationpathtcertificate = filename;\r\n vm.VerificationUploadCertificateimageServices(filename);\r\n \r\n if(vm.Verificationpathtcertificate){\r\n vm.VerificationtempCertificateAdd = false;\r\n }\r\n vm.tempfilename =filename;\r\n traning.VerificationReportPath = traning.VerificationReportPath = filename;\r\n traning.CertificateName = traning.CertificateName;\r\n \r\n traning.edit = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload verification doc, server error\");\r\n });\r\n } else {\r\n vm.error[traning.CertificateName] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n var tempPLocation = {\r\n PreferredState: \"\",\r\n PreferredCity: \"\",\r\n PreferredPincode: \"\"\r\n }\r\n vm.PreferredLocationList.push(tempPLocation);\r\n vm.AddPreferredLocation = function () {\r\n var temp = {};\r\n vm.PreferredLocationList.push(temp);\r\n }\r\n vm.DeletePreferredLocation = function (i) {\r\n vm.PreferredLocationList.splice(i, 1);\r\n }\r\n\r\n for (var i = 0; i <= 30; i++) {\r\n vm.experienceYearList.push(i);\r\n }\r\n\r\n vm.getAllCertificate = function(){\r\n OnBoardingFormService.GetAllCertificate(loggedinUser,token,function(data){\r\n vm.AllCertificateSets = data;\r\n },vm.showFailure);\r\n }\r\n vm.getAllCertificate();\r\n\r\n vm.getAllTools = function(){\r\n OnBoardingFormService.GetAllToolSets(loggedinUser,token,function(data){\r\n vm.Asset_ToolList = data;\r\n },vm.showFailure);\r\n }\r\n vm.getAllTools();\r\n\r\n vm.addMoreTCertificate = function(){\r\n\r\n var CertificateIssueDate = $filter('date')(new Date(vm.CertificateIssueDate),'yyyy-MM-dd');\r\n var CertificateExpiryDate = $filter('date')(new Date(vm.CertificateExpiryDate),'yyyy-MM-dd');\r\n if(CertificateIssueDate >= CertificateExpiryDate ){\r\n vm.showFailure(\"Expiry date should be greater than Issue Date\");\r\n vm.showTCList = false;\r\n vm.pathtcertificate = '';\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.VerificationAgency ='';\r\n vm.Verificationpathtcertificate='';\r\n }else{\r\n var tData = {\r\n CertificateName: vm.addTraningCertificateName,\r\n TrainingCertificate: vm.pathtcertificate,\r\n CertificateNo : vm.CertificateNo,\r\n CertificateIssueDate: CertificateIssueDate,\r\n CertificateExpiryDate: CertificateExpiryDate,\r\n CertificationYear: '',\r\n AssessmentLevel: '',\r\n Description : '',\r\n VerificationAgency : vm.VerificationAgency, \r\n VerificationReportPath : vm.Verificationpathtcertificate\r\n }\r\n \r\n if(tData.CertificateName && tData.TrainingCertificate && tData.CertificateIssueDate && tData.CertificateExpiryDate){\r\n vm.TrainingList.push(tData);\r\n vm.showTCList = false;\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.pathtcertificate = '';\r\n vm.VerificationAgency ='';\r\n vm.Verificationpathtcertificate='';\r\n }else{\r\n vm.showTCList = false;\r\n vm.pathtcertificate = '';\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.VerificationAgency ='';\r\n vm.Verificationpathtcertificate='';\r\n vm.showFailure(\"Warning\", \"You must select Certificate Name,CertificateIssueDate,CertificateExpiryDate & Upload File \");\r\n }\r\n }\r\n }\r\n\r\n vm.removeCurrentCertificate = function () {\r\n vm.showTCList = false;\r\n vm.addTraningCertificateName = '';\r\n vm.pathtcertificate = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n }\r\n\r\n vm.removeCertificate = function(index){\r\n vm.TrainingList.splice(index,1);\r\n }\r\n\r\n vm.showTCList = false;\r\n vm.addMoreCertificateInTable = function(){\r\n vm.showTCList = true;\r\n vm.tempCertificateAdd = true;\r\n }\r\n\r\n vm.tempCertificateAdd = false;\r\n // vm.enableCertificateAddButton = function(){\r\n // vm.tempCertificateAdd = true;\r\n // }\r\n\r\n vm.getCertificateSets = function () {\r\n var RemoveCertificate = [];\r\n var remainingCertificate = Array.from(vm.AllCertificateSets);\r\n angular.forEach(remainingCertificate, function (d) {\r\n for (var i = 0; i < vm.TrainingList.length; i++) {\r\n if (d.Name == vm.TrainingList[i].CertificateName) {\r\n RemoveCertificate.push(d);\r\n return;\r\n }\r\n }\r\n });\r\n angular.forEach(RemoveCertificate, function (s) {\r\n remainingCertificate.splice(remainingCertificate.indexOf(s), 1);\r\n })\r\n return remainingCertificate;\r\n }\r\n\r\n\r\n vm.getAllSkills = function () {\r\n OnBoardingFormService.getAllSkills(loggedinUser, token, function (data) {\r\n vm.AllSkillSets = data;\r\n }, vm.showFailure);\r\n }\r\n vm.getAllSkills();\r\n\r\n vm.getSkillSets = function () {\r\n var RemoveSkills = [];\r\n var remainingSkills = Array.from(vm.AllSkillSets);\r\n angular.forEach(remainingSkills, function (d) {\r\n for (var i = 0; i < vm.SkillList.length; i++) {\r\n if (d.SkillName == vm.SkillList[i].Skill) {\r\n RemoveSkills.push(d);\r\n return;\r\n }\r\n }\r\n });\r\n angular.forEach(RemoveSkills, function (s) {\r\n remainingSkills.splice(remainingSkills.indexOf(s), 1);\r\n })\r\n return remainingSkills;\r\n }\r\n\r\n vm.showRow = false;\r\n vm.addMoreSkill = function () {\r\n var skillData = {\r\n Skill: vm.addSkill,\r\n Experience: vm.addExprence,\r\n PercentageScore :'0',\r\n Brand: [],\r\n SelfRatingOnSkill: ''\r\n }\r\n \r\n if(skillData.Skill){\r\n vm.SkillList.push(skillData);\r\n vm.showRow = false;\r\n vm.addExprence = '';\r\n vm.addSkill = '';\r\n }else{\r\n vm.showRow = false;\r\n vm.addExprence = '';\r\n vm.addSkill = '';\r\n vm.showFailure(\"Warning\", \"You must select SKILL & EXPERIENCE\");\r\n }\r\n\r\n }\r\n\r\n vm.removeCurrentSkill = function () {\r\n vm.showRow = false;\r\n vm.addSkill = '';\r\n vm.addExprence = '';\r\n }\r\n\r\n vm.removeSkill = function (index) {\r\n vm.SkillList.splice(index, 1);\r\n }\r\n\r\n vm.addMoreSkillInTable = function () {\r\n vm.showRow = true;\r\n }\r\n\r\n vm.tempSkillList = [];\r\n var skillData = {\r\n Skill: \"\",\r\n Experience: \"\",\r\n Brand: [],\r\n SelfRatingOnSkill: ''\r\n }\r\n vm.tempSkillList.push(skillData);\r\n\r\n vm.tempAddMoreSkill = function () {\r\n var blank = {}\r\n vm.tempSkillList.push(blank);\r\n }\r\n\r\n vm.tempDeleteMoreSkill = function (index) {\r\n vm.tempSkillList.splice(index, 1);\r\n }\r\n\r\n vm.pushTempTOOriginal = function () {\r\n vm.closeSkillModel()\r\n for (var i = 0; i < vm.tempSkillList.length; i++) {\r\n vm.SkillList.push(vm.tempSkillList[i]);\r\n }\r\n console.log(vm.SkillList);\r\n\r\n }\r\n\r\n// private a user for particular accounts\r\n\r\n vm.getAllAccounts = function () {\r\n OnBoardingFormService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data) { \r\n vm.AllAccounts = resp.data;\r\n } \r\n }, function () { \r\n });\r\n } \r\n vm.getAllAccounts();\r\n\r\n vm.AccountChange=function (){\r\n for (var i = 0; i < vm.AllAccounts.length; i++) {\r\n var Acc = vm.AllAccounts[i];\r\n if(Acc.CompanyName == vm.AccountName ) {\r\n vm.SelectedAccount = Acc;\r\n vm.AccountId = vm.SelectedAccount.AccountId;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n vm.getAccounts = function () {\r\n vm.AccountChange();\r\n var RemoveAccounts = [];\r\n var remainingAccounts = Array.from(vm.AllAccounts);\r\n angular.forEach(remainingAccounts, function (d) {\r\n for (var i = 0; i < vm.AccountList.length; i++) {\r\n if (d.CompanyName == vm.AccountList[i].Account) {\r\n RemoveAccounts.push(d);\r\n return;\r\n }\r\n }\r\n });\r\n angular.forEach(RemoveAccounts, function (s) {\r\n remainingAccounts.splice(remainingAccounts.indexOf(s), 1);\r\n })\r\n return remainingAccounts;\r\n }\r\n\r\n vm.showRow1 = false;\r\n vm.addMoreAccounts = function () { debugger\r\n var accountData = {\r\n Account: vm.AccountName,\r\n AccountId: vm.AccountId,\r\n }\r\n \r\n if(accountData.Account){\r\n vm.AccountList.push(accountData);\r\n vm.showRow1 = false;\r\n vm.AccountName = '';\r\n vm.AccountId = '';\r\n }else{\r\n vm.showRow1 = false;\r\n vm.AccountName = '';\r\n vm.AccountId = '';\r\n vm.showFailure(\"Warning\", \"You must select Account\");\r\n }\r\n\r\n }\r\n\r\n vm.removeCurrentAccount = function () {\r\n vm.showRow1 = false;\r\n vm.Account = '';\r\n }\r\n\r\n vm.removeAccount = function (index) {\r\n vm.AccountList.splice(index, 1);\r\n }\r\n\r\n vm.addMoreAccountsInTable = function () {\r\n vm.showRow1 = true;\r\n }\r\n\r\n\r\n vm.sendBoatLink = function(skill){\r\n console.log(skill);\r\n OnBoardingFormService.sendBoatLink(loggedinUser, vm.MobileNo, skill, token, function(res){\r\n if (res && res.status == 201){\r\n vm.showSuccess('Success', \"Successfully send link\");\r\n }\r\n },function(err){\r\n vm.showFailure(\"Failed\", \"Unable to send link, server error\");\r\n })\r\n }\r\n\r\n\r\n // vm.Addskill = function () {\r\n // vm.AllBookingList = '';\r\n // $scope.selected = null;\r\n // vm.addSkillModal = $uibModal.open({\r\n // templateUrl: 'Addskill.html',\r\n // size: 'lg',\r\n // scope: $scope\r\n // });\r\n\r\n // }\r\n\r\n // vm.closeSkillModel = function () {\r\n // vm.addSkillModal.close();\r\n // }\r\n\r\n // vm.ToolLists = function (tool) {\r\n // vm.UpdatedToolList.push(tool);\r\n // }\r\n\r\n $p.on('click', function (e) {\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n vm.changeStatus = function (status) {\r\n //$log.log(\"status\", status);\r\n if (status == 'Basic') {\r\n //$log.log(\"status\", status);\r\n // vm.RegistrationStatus = \"Basic Checked\";\r\n $('.referalwizard[id=\"2\"]').trigger('click', function (e) {\r\n vm.UserInfoCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Location') {\r\n // vm.RegistrationStatus = \"Location Checked\";\r\n $('.referalwizard[id=\"3\"]').trigger('click', function (e) {\r\n vm.UserLocationCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Document') {\r\n // vm.RegistrationStatus = \"Document Checked\";\r\n $('.referalwizard[id=\"4\"]').trigger('click', function (e) {\r\n vm.UserDocumentCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Bank') {\r\n // vm.RegistrationStatus = \"Document Checked\";\r\n $('.referalwizard[id=\"5\"]').trigger('click', function (e) {\r\n vm.UserDocumentCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Traning') {\r\n // vm.RegistrationStatus = \"Document Checked\";\r\n $('.referalwizard[id=\"6\"]').trigger('click', function (e) {\r\n vm.UserBankDetailsCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Assets') {\r\n // vm.RegistrationStatus = \"Assets Checked\";\r\n $('.referalwizard[id=\"7\"]').trigger('click', function (e) {\r\n vm.UserAvailableAssestCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Skill') {\r\n // vm.RegistrationStatus = \"Skill Checked\";\r\n $('.referalwizard[id=\"8\"]').trigger('click', function (e) {\r\n vm.UserSkillCheck = true;\r\n vm.verifyAll = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n }\r\n vm.outsidedateRangeChange = function () { \r\n \r\n vm.InsuranceDetails.IssueDate = vm.InsuranceDetails.IssueDate.format(\"YYYY-MM-DD\");\r\n vm.InsuranceDetails.ExpiryDate = vm.InsuranceDetails.ExpiryDate.format(\"YYYY-MM-DD\");\r\n };\r\n\r\n vm.VerifyAllUserInfo = function () {\r\n vm.verifyAll = true;\r\n vm.changeStatus('Basic');\r\n vm.changeStatus('Location');\r\n vm.changeStatus(\"Document\");\r\n vm.changeStatus(\"Bank\");\r\n vm.changeStatus(\"Traning\");\r\n vm.changeStatus(\"Assets\");\r\n vm.changeStatus(\"Skill\");\r\n vm.UserInfoCheck = true;\r\n vm.UserLocationCheck = true;\r\n vm.UserDocumentCheck = true;\r\n vm.UserBankDetailsCheck = true;\r\n vm.UserTraningCheck = true;\r\n vm.UserAvailableAssestCheck = true;\r\n vm.UserSkillCheck = true;\r\n\r\n // vm.UserInfoCheck == true ? vm.UserInfoCheck = false : vm.UserInfoCheck = true;\r\n // vm.UserLocationCheck == true ? vm.UserLocationCheck = false : vm.UserLocationCheck = true;\r\n // vm.UserDocumentCheck == true ? vm.UserDocumentCheck = false : vm.UserDocumentCheck = true;\r\n // vm.UserAvailableAssestCheck == true ? vm.UserAvailableAssestCheck = false : vm.UserAvailableAssestCheck = true;\r\n // vm.UserSkillCheck == true ? vm.UserSkillCheck = false : vm.UserSkillCheck = true;\r\n }\r\n vm.ApprovedAndRejectTool=function(IsApproved, index)\r\n { \r\n if(IsApproved==\"Approved\")\r\n vm.ApprovedRejectTool = \"Approved\";\r\n else\r\n vm.ApprovedRejectTool = \"Rejected\";\r\n \r\n vm.ToolsDetailList[index].VerificationStatus=vm.ApprovedRejectTool;\r\n }\r\n vm.ApprovedAndRejectCertificate=function(IsApproved, index)\r\n { \r\n if(IsApproved==\"Approved\")\r\n vm.ApprovedRejectCertificate = \"Approved\";\r\n else\r\n vm.ApprovedRejectCertificate = \"Rejected\";\r\n \r\n vm.TrainingList[index].VerificationStatus=vm.ApprovedRejectCertificate;\r\n }\r\n vm.updateUser = function () {\r\n \r\n vm.searchButtonText = 'Updating';\r\n vm.dissbleUpdateButton = true;\r\n \r\n if (vm.form1.$valid) {\r\n \r\n var SkillSetModel = [];\r\n for (var skillIndex = 0; skillIndex < vm.SkillList.length; skillIndex++) {\r\n SkillSetModel.push(vm.SkillList[skillIndex]);\r\n }\r\n\r\n var AccountSetModel = [];\r\n for (var accountIndex = 0; accountIndex < vm.AccountList.length; accountIndex++) {\r\n AccountSetModel.push(vm.AccountList[accountIndex]);\r\n }\r\n\r\n var TrainingAssessmentModel = [];\r\n for (var trainingIndex = 0; trainingIndex < vm.TrainingList.length; trainingIndex++) {\r\n vm.TrainingList[trainingIndex].Description = null;\r\n TrainingAssessmentModel.push(vm.TrainingList[trainingIndex]);\r\n }\r\n\r\n // console.log(vm.BGDocList);\r\n // for(var i = 0; i< vm.BGDocList.length; i++){\r\n // if(vm.BGDocList[i].DocumentType == 'Id Prof'){\r\n // vm.BGDocList[i].DocumentType = 'Aadhar Card';\r\n // vm.BGDocList[i].DocumentName = vm.BGDocList[i].DocumentName;\r\n // vm.BGDocList[i].DocumentPath = vm.BGDocList[i].DocumentPath; \r\n // }\r\n // }\r\n // console.log('After Update')\r\n // console.log(vm.BGDocList);\r\n\r\n var BGVerificationDocPathModel = [];\r\n angular.forEach(vm.BGDocList, function (d) {\r\n BGVerificationDocPathModel.push({\r\n \"DocumentType\": d.DocumentType,\r\n \"DocumentName\": d.DocumentName,\r\n \"DocumentNo\":d.DocumentNo,\r\n // \"UpdatedOn\":d.UpdatedOn,\r\n \"DocumentPath\": d.DocumentPathName,\r\n \"ThirdPartyDocumentPath\":d.ThirdPartyDocumentPathName\r\n });\r\n })\r\n \r\n if(vm.InsuranceDetails.PolicyNumber == null || vm.InsuranceDetails.PolicyNumber == \"\"){\r\n vm.InsuranceDetails = vm.InsuranceDetails;\r\n }\r\n else\r\n {\r\n var PolicyIssueDate = $filter('date')(new Date(vm.InsuranceDetails.IssueDate),'yyyy-MM-dd');\r\n var PolicyExpiryDate = $filter('date')(new Date(vm.InsuranceDetails.ExpiryDate),'yyyy-MM-dd');\r\n if(PolicyIssueDate >= PolicyExpiryDate ){\r\n vm.showFailure(\"Policy expiry date should be greater than Issue Date\");\r\n return;\r\n }\r\n var InsuranceDet = {\r\n \"PolicyNumber\": vm.InsuranceDetails.PolicyNumber,\r\n \"IssueDate\": vm.InsuranceDetails.IssueDate,\r\n \"ExpiryDate\": vm.InsuranceDetails.ExpiryDate,\r\n \"InsuranceImageURL\": vm.InsuranceDetails.InsuranceImageURL,\r\n }\r\n vm.InsuranceDetails = InsuranceDet;\r\n }\r\n \r\n \r\n // console.log(BGVerificationDocPathModel);\r\n var data = {\r\n \"UserId\": vm.UserId,\r\n \"DocumentName\" : vm.DocumentName,\r\n \"FirstName\": vm.FirstName,\r\n \"BGVerificationStatus\":vm.BGVerificationStatus,\r\n // \"UpdatedOn\":vm.UpdatedOn,\r\n \"LastName\": vm.LastName,\r\n \"Gender\": vm.Gender,\r\n \"PAN\" : vm.PAN,\r\n \"AdharNo\" : vm.Aadhar,\r\n \"DOB\": vm.DOB,\r\n \"RegistrationStatus\": vm.RegistrationStatus,\r\n \"FatherName\": vm.FatherName,\r\n \"PersonalEmail\": vm.Email,\r\n \"ContactNumber\": vm.MobileNo,\r\n \"AlternativeContactNumber\": \"\",\r\n \"CompanyName\": vm.CompanyName,\r\n \"AddressLine1\": '',\r\n \"AddressLine2\": '',\r\n \"State\": '',\r\n \"City\": '',\r\n \"PinCode\": '',\r\n \"CurAddressLine1\": vm.BaseAddressLine1,\r\n \"CurAddressLine2\": vm.BaseAddressLine2,\r\n \"CurState\": vm.BaseState,\r\n \"CurCity\": vm.BaseCity,\r\n \"CurPinCode\": vm.BasePincode,\r\n \"PerAddressLine1\": vm.AddressLine1,\r\n \"PerAddressLine2\": vm.AddressLine2,\r\n \"PerState\": vm.PermanentState,\r\n \"PerCity\": vm.PermanentCity,\r\n \"PerPinCode\": vm.PermanentPincode,\r\n \"Picture\": vm.Picture,\r\n \"UserQualification\": vm.QualificationList,\r\n \"SkillData\": SkillSetModel,\r\n \"accountData\": AccountSetModel,\r\n // \"Locations\": vm.PreferredLocation,\r\n // \"Expertise\": vm.Expertise,\r\n \"BGVerificationStatus\": vm.Background,\r\n \"FEBankDetails\": vm.FEBankDetails,// Added bank account details\r\n \"TrainingAssessment\": TrainingAssessmentModel,\r\n // \"BGVerificationDocPath\": BGVerificationDocPathModel,\r\n \"BGVerificationDocPath\": null,\r\n \"VerificationsRemarks\": null,\r\n \"IsBasicVerified\": vm.UserInfoCheck,\r\n \"IsLocVerified\": vm.UserLocationCheck,\r\n \"IsDocsVerified\": vm.UserDocumentCheck,\r\n \"IsBankDetailsVerified\": vm.UserBankDetailsCheck,\r\n \"IsCertificationVerified\" : vm.UserTraningCheck,\r\n \"IsAssetsVerified\": vm.UserAvailableAssestCheck,\r\n \"IsSkillsVerified\": vm.UserSkillCheck,\r\n \"IsMobileAvailable\": vm.Asset_Mobile,\r\n \"IsLaptopAvailable\": vm.Asset_Laptop,\r\n \"IsBikeAvailable\": vm.Asset_Bike,\r\n \"Tools\": vm.Asset_Tools,\r\n \"InsuranceDetails\": vm.InsuranceDetails,\r\n \"ContractDocPath\": vm.ContractDocPath,\r\n \"ContractSignDate\": vm.ContractSignDate,\r\n \"Locations\":vm.Work_Location,\r\n \"CoverageDistance\" : parseFloat(vm.CoverageDistance),\r\n \"IsStudent\": vm.IsStudent,\r\n \"IsOpenForInternship\": vm.IsOpenForInternship,\r\n \"IsPanVerified\" : vm.IsPanVerified,\r\n \"IsAdharVerified\" : vm.IsAdharVerified,\r\n \"Source\" : vm.Source,\r\n \"Designation\" : vm.Designation,\r\n \"ToolsDetailList\": vm.ToolsDetailList,\r\n \"Experience\" : vm.UserExperience,\r\n \"AccountDetails\":vm.AccountList\r\n }\r\n \r\n OnBoardingFormService.updateuUser(loggedinUser, data, token).then(function (resp) { \r\n if (resp.status == 202) {\r\n vm.showSuccess(\"Registration Status\", \"User Updated Successfully.\");\r\n $timeout(function () {\r\n if(vm.From == 'FVT'){\r\n $state.go('index.RegisteredVendorTeam', { reload: true });\r\n }else{\r\n $state.go('index.RegisteredAllUser', { reload: true });\r\n }\r\n \r\n }, 2000);\r\n } else if (resp.data && resp.data.Message) {\r\n vm.showFailure(\"Registration Status\", resp.data.Message);\r\n } else {\r\n vm.showFailure(\"Registration Status\", \"User could not be updated, server is not responding correctly.\");\r\n }\r\n }, function (error) {\r\n vm.showFailure(\"Registration Status\", \"User could not be updated, server is not responding correctly.\");\r\n });\r\n\r\n }\r\n else {\r\n vm.form1.submitted = true;\r\n vm.searchButtonText = 'Update';\r\n vm.showFailure(\"Failed\", \"Please enter correct details.\");\r\n vm.dissbleUpdateButton = false;\r\n }\r\n }\r\n\r\n vm.callforCriminalVerification = function(){\r\n OnBoardingFormService.callToInitCverification(loggedinUser,vm.UserId, token, function(res){\r\n if (res){\r\n $timeout(function () {\r\n vm.showSuccess('Success', res);\r\n vm.GetUserByRegistrationNo();\r\n }, 1000);\r\n }\r\n else\r\n {\r\n vm.showFailure(\"Failed\", res)\r\n }\r\n },function(){\r\n vm.showFailure(\"Failed\");\r\n })\r\n }\r\n\r\n vm.markActive = function () {\r\n if(vm.From != 'FVT'){\r\n //if( vm.FEBankDetails && vm.FEBankDetails.AccountNo && vm.FEBankDetails.IFSC && vm.FEBankDetails.AccountHolderName){\r\n if(vm.SkillList.length > 0 && vm.SkillList != null){\r\n if ((vm.BGDocList[1] && vm.BGDocList[1].DocumentPath!=null && vm.BGDocList[1].DocumentPath.length>0) && \r\n vm.BGDocList[0] && vm.BGDocList[0].DocumentPath!=null && vm.BGDocList[0].DocumentPath.length>0\r\n ) {\r\n vm.RegistrationStatus = 'Active';\r\n vm.updateUser();\r\n } else {\r\n if(vm.BGDocList[1].DocumentPath==''){\r\n vm.showFailure(\"Failed\", \"Please upload Address Proof details\");\r\n }\r\n else if(vm.BGDocList[0].DocumentPath==''){\r\n vm.showFailure(\"Failed\", \"Please Upload Aadhar Card\");\r\n }\r\n }\r\n }else{\r\n vm.showFailure(\"Failed\", \"Please enter at least one skill\");\r\n }\r\n // }else{\r\n // vm.showFailure(\"Failed\", \"Please enter AccountNo & IFSC & AccountHolderName\");\r\n // } \r\n }\r\n // && vm.BGDocList[2] && vm.BGDocList[2].DocumentPath!=null && vm.BGDocList[2].DocumentPath.length>0 \r\n if(vm.From == 'FVT'){\r\n if(vm.SkillList.length > 0 && vm.SkillList != null){\r\n if ((vm.BGDocList[1] && vm.BGDocList[1].DocumentPath!=null && vm.BGDocList[1].DocumentPath.length>0) \r\n && vm.BGDocList[0] && vm.BGDocList[0].DocumentPath!=null && vm.BGDocList[0].DocumentPath.length>0 ) {\r\n vm.RegistrationStatus = 'Active';\r\n vm.updateUser();\r\n } else {\r\n if(vm.BGDocList[1].DocumentPath==''){\r\n vm.showFailure(\"Failed\", \"Please upload Address Proof details\");\r\n }\r\n else if(vm.BGDocList[0].DocumentPath==''){\r\n vm.showFailure(\"Failed\", \"Please Upload Aadhar Card\");\r\n }\r\n }\r\n }else{\r\n vm.showFailure(\"Failed\", \"Please enter at least one skill\");\r\n }\r\n }\r\n \r\n }\r\n\r\n\r\n vm.CircleList = [];\r\n vm.GetAllCircles = function () {\r\n OnBoardingFormService.getStates(loggedinUser, vm.selectedCountry).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length > 0) {\r\n vm.CircleList = resp.data.values;\r\n }\r\n }\r\n });\r\n }\r\n\r\n vm.OpenRejectionPopUp = function(){\r\n vm.RejectModel = $uibModal.open({\r\n templateUrl: 'rejectUser_model.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n }, function () { \r\n });\r\n }\r\n \r\n vm.RejectUserProfile = function(){\r\n vm.rejectForm.submitted = true;\r\n if (vm.rejectForm.$valid) { \r\n vm.rejectButtonStatus = 'Rejecting';\r\n vm.disableRejectButton = true; \r\n OnBoardingFormService.RejectUserProfile(vm.UserId,vm.rejectRemark,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(\"Success\", resp.data); \r\n vm.closeRejectionPopup();\r\n $timeout(function () {\r\n vm.GetUserByRegistrationNo();\r\n }, 2000);\r\n }\r\n else{\r\n vm.showFailure(\"Failed\", resp.data); \r\n vm.closeRejectionPopup();\r\n }\r\n }); \r\n }\r\n }\r\n\r\n vm.closeRejectionPopup = function () {\r\n vm.RejectModel.close();\r\n vm.rejectRemark = \"\";\r\n vm.disableRejectButton = false; \r\n vm.rejectButtonStatus = 'Reject';\r\n }\r\n\r\n vm.VerifyUserProfile = function(){\r\n vm.disableRejectButton = true; \r\n OnBoardingFormService.VerifyUserProfile(vm.UserId,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(\"Success\", resp.data); \r\n }\r\n else{\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n }); \r\n }\r\n\r\n\r\n }\r\n})\r\n\r\nfunction CheckRegExOnKeyPress(e) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\,\\\\-\\\\/]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\r\nfunction CheckRegExOnKeyPressCertificate(e) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\-\\\\\\\\]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\r\n\r\n\nangular.module('inspinia').service('OpenBucketAssignationService', function (ApiURL, FreelancerURL,LocationURL,PublicApiURL, $log, $http,$localStorage,$window) {\r\n\r\n \r\n});\nangular.module('inspinia').controller('OpenBucketAssignationController', function (OpenBucketAssignationService, ReferService, toaster, $filter, $rootScope, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder, DTColumnDefBuilder, DTColumnBuilder, $uibModal, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n vm = this;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else { \r\n \r\n }\r\n});\r\n \nangular.module('inspinia').service('OnBoardingFlowService', function ($http, FreelancerURL,ActivityURL, ApiURL, PublicApiURL, IntegrationAPI) {\r\n\r\n\r\n this.SaveBackgroundChecks = function (data, files, files2, files3, token, loggedinUser) {\r\n var formdata = new FormData();\r\n formdata.append(\"FrontDocFile\", files[0]);\r\n formdata.append(\"BackDocFile\", files2[0]);\r\n formdata.append(\"ThirdPartyDocFile\", files3[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"BackgroundData\", followupdata);\r\n var url = ApiURL + '/api/Upload/UpdateBackgroundDoc';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.sendBoatLink = function (loggedinUser, mobileNo, skill, token, success, failure) {\r\n var url = PublicApiURL + '/api/TestSkill/SendSkillTestLink?reqUserId=' + loggedinUser + '&ContactNumber=' + mobileNo + '&skill=' + skill;\r\n $http.post(url, null, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(success, failure);\r\n }\r\n\r\n this.GetBasicDetailsWeb = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerRegistration/GetBasicDetailsWeb?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.UpdateUserProfileValidationData = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/UpdateUserProfileValidationData';\r\n return $http.put(url, data, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n this.GetBasicDetailsWebDynamic = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerRegistration/GetBasicDetailsWebDynamic?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.GetSkillDataAndLocationWeb = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerRegistration/GetSkillDataAndLocationWeb?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.GetInvitedTeamForRegistrationWeb = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerVendor/GetInvitedTeamForRegistrationWeb?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n } \r\n\r\n this.GetBankDetailsForUsers = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerVendor/GetBankDetailsForUsers?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n } \r\n\r\n this.GetBGverificationWeb = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetBGverificationWeb?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n } \r\n\r\n this.SendCommunicationInvite = function (UserId,type,step,loggedinUser, token) { \r\n var url = ApiURL + '/api/Ticket/SendCommunicationInviteOnBoarding?UserId=' + UserId +'&Type=' + type +'&Step=' + step ;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n \r\n // this.GetBasicDetails = function (UserId, loggedinUser, token) {\r\n // var url = FreelancerURL + '/api/FreelancerRegistration/GetBasicDetailsWeb?UserId=' + UserId;\r\n // return $http.get(url, {\r\n // headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n // })\r\n // }\r\n\r\n this.SetUserStatusInActiveMode = function (userId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/SetUserStatusInActiveMode?UserId=' + userId;\r\n return $http.put(url, null, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n ////External Video Uploaad List\r\n this.UploadExternalVideoList = function (newdata, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetVideoKycData' ;\r\n return $http.put(url,newdata,{\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetAllActivitiesForUser = function (userId, loggedinUser, token) {\r\n var url = ActivityURL + '/api/Activity/GetAllActivitiesForUser?UserId=' + userId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UploadBGInteractionVideo = function (UserId,Rating, Feedback,FrontFileName, files, token, loggedinUser) {\r\n var formdata = new FormData();\r\n formdata.append(FrontFileName, files[0]);\r\n formdata.append(\"UserId\", UserId);\r\n formdata.append(\"Feedback\", Feedback);\r\n formdata.append(\"Rating\", Rating);\r\n var url = ApiURL + '/api/Upload/UploadBGInteractionVideo';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n this.ReTestForSkill = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/UserSkillTest/ReTestForSkill' ;\r\n return $http.put(url,data,{\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n})\nangular.module('inspinia').controller('OnBoardingFlowController', function (OnBoardingFlowService,AllUsersListService, $q, MainService, $filter, ReferService, FreelancerURL, $window, $location, $rootScope, $stateParams, $uibModal, $scope, $log, ImageUrl, $sce, toaster, $localStorage, $timeout, $state) {\r\n\r\n var vm = this;\r\n var UserId = $stateParams.UserId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n var token = $localStorage.token;\r\n vm.From = $localStorage.From;\r\n vm.ActiveFVT = $localStorage.ActiveFVT;\r\n vm.IsProfileActivationRights = $localStorage.IsProfileActivationRights;\r\n if (vm.From == 'FVT') {\r\n vm.dissableBankDetails = true;\r\n }\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n \r\n vm.ItemComment = \"\";\r\n vm.SectionName = \"\";\r\n vm.ItemStatus = \"\";\r\n vm.searchButtonText = 'Update';\r\n vm.dissbleUpdateButton = false;\r\n vm.disableRejectButton = false;\r\n vm.editmode = false;\r\n vm.RegisteredUser = '';\r\n vm.FirstName = '';\r\n vm.BGVerificationStatus = '';\r\n vm.isnonindeximage = \"\";\r\n vm.LastName = '';\r\n vm.MobileNo = '';\r\n vm.Email = '';\r\n vm.pdfimage = '';\r\n vm.DOB = moment();\r\n vm.Gender = '';\r\n vm.Designation = '';\r\n vm.Background = '';\r\n vm.PAN = '';\r\n vm.Aadhar = '';\r\n vm.AddressLine1 = '';\r\n vm.AddressLine2 = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.PermanentPincode = '';\r\n vm.BaseAddressLine1 = '';\r\n vm.BaseAddressLine2 = '';\r\n vm.AccountList = [];\r\n vm.AllAccountNames = [];\r\n vm.BaseState = '';\r\n vm.BaseCity = '';\r\n vm.BasePincode = '';\r\n vm.UserId = '';\r\n vm.DocumentType = '';\r\n vm.DocumentName = '';\r\n vm.UserType = '';\r\n vm.Picture = '';\r\n vm.RegistrationStatus = '';\r\n vm.UserInfoCheck = false;\r\n vm.UserLocationCheck = false;\r\n vm.UserDocumentCheck = false;\r\n vm.UserTraningCheck = false;\r\n vm.UserBankDetailsCheck = false;\r\n vm.UserAvailableAssestCheck = false;\r\n vm.ToolAuditFiles = [];\r\n vm.ThirdPartyDocs = [];\r\n vm.FilesBackDoc = [];\r\n vm.FilesFrontDoc = [];\r\n vm.BackFileName = \"\";\r\n vm.FrontFileName = \"\";\r\n vm.UserSkillCheck = false;\r\n vm.verifyAll = false;\r\n vm.Asset_Mobile = '';\r\n vm.Asset_Laptop = '';\r\n vm.Asset_Bike = '';\r\n vm.Asset_Tools = '';\r\n vm.Asset_ToolList = [];\r\n vm.Work_Location = [];\r\n vm.PreferredLocationList = [];\r\n vm.BGDocList = [];\r\n vm.disableActivateButton = false;\r\n vm.AccountName = '';\r\n vm.AllCertificateSets = [];\r\n vm.experienceYearList = [];\r\n vm.AllSkillSets = [];\r\n vm.DocprofileImg = [];\r\n vm.CertprofileImg = [];\r\n vm.SkillList = [];\r\n vm.QualificationList = [];\r\n vm.TrainingList = [];\r\n vm.addTraningCertificateName = '';\r\n vm.tempTCertificateFile = '';\r\n vm.addSkill = '';\r\n vm.addExprence = '';\r\n vm.pathtcertificate = '';\r\n vm.error = {};\r\n vm.CoverageDistance = '';\r\n vm.IsStudent = '';\r\n vm.IsOpenForInternship = '';\r\n vm.IsPanVerified = '';\r\n vm.IsAdharVerified = '';\r\n vm.Source = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.BankAccountNo = '';\r\n vm.BankIFSC = '';\r\n vm.AccountHolderName = '';\r\n vm.FEBankDetails = {};\r\n var currentIndex = 0;\r\n vm.InsuranceDetails = {};\r\n vm.ContractDocPath = '';\r\n vm.ContractSignDate = '';\r\n vm.ToolsDetailList = [];\r\n vm.PreviousCompanyDetailsList = [];\r\n vm.VerificationCertprofileImg = [];\r\n vm.Verificationpathtcertificate = '';\r\n vm.UserExperience = '';\r\n vm.CompanyName = '';\r\n vm.FatherName = '';\r\n var today = new Date();\r\n var date = today.getFullYear() - 18;\r\n var age = (today.getMonth() + 1 + \"/\" + today.getDate() + \"/\" + date).toString();\r\n vm.maxDOB = new Date(age);\r\n vm.maxDOBStr = vm.maxDOB.toDateString();\r\n age = Date.parse(age);\r\n\r\n vm.getPicUrl = function (pic) {\r\n\r\n return ImageUrl + \"/\" + pic;\r\n }\r\n vm.PDFView = function (page) {\r\n MainService.GetImageBlob(loggedinUser, token, page).then(function (resp) {\r\n\r\n vm.pdfimage = resp.data;\r\n });\r\n $scope.selected = null;\r\n $timeout(function () {\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }, 1000)\r\n\r\n }\r\n vm.PDFUserModal = function () {\r\n jobAppointmentModal.close();\r\n }\r\n $scope.checkPDF = function (path) {\r\n\r\n var pt = path.substr(path.length - 4);\r\n if (pt == '.pdf') {\r\n vm.error = function () {\r\n $(\".pdf\").attr({ \"target\": \"_blank\" })\r\n }\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n \r\n $scope.attachBackDoc = function(files){ \r\n vm.BackFileName=\"\";\r\n var file = files.files[0];\r\n vm.BackFileName=file.name; \r\n vm.FilesBackDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesBackDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n $scope.uploadBGFilenew = function(files){ \r\n vm.FrontFileName=\"\";\r\n var file = files.files[0];\r\n vm.FrontFileName=file.name; \r\n vm.FilesFrontDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesFrontDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n\r\n vm.changeFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n\r\n vm.changeCertificateFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n vm.VerificationchangeCertificateFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n $scope.uploadImageFile = function (files, type) {\r\n var file = files.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId + \"_ProfilePic_\" + rendomnumber + \".\" + file.name.split(\".\")[1];\r\n var file = new File([file], filename, { type: file.type });\r\n\r\n if (file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n OnBoardingFlowService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm[type] = filename;\r\n vm.imageServices(filename);\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n }\r\n\r\n vm.imageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else {\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function () {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n\r\n }\r\n vm.DocumentimageServices = function (img, index) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n vm.DocprofileImg[index] = resp.data;\r\n\r\n });\r\n\r\n }\r\n vm.CertificateimageServices = function (cert, index) {\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function (resp) {\r\n vm.CertprofileImg[index] = resp.data;\r\n });\r\n }\r\n vm.UploadCertificateimageServices = function (cert) {\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function (resp) {\r\n vm.UploadCertprofileImg = resp.data;\r\n vm.isnonindeximage = \"1\";\r\n });\r\n }\r\n vm.VerificationCertificateimageServices = function (cert, index) {\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function (resp) {\r\n vm.VerificationCertprofileImg[index] = resp.data;\r\n });\r\n }\r\n vm.Verificationisnonindeximage = \"0\";\r\n vm.VerificationUploadCertificateimageServices = function (cert) {\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function (resp) {\r\n vm.VerificationUploadCertprofileImg = resp.data;\r\n vm.Verificationisnonindeximage = \"1\";\r\n alert(vm.VerificationUploadCertprofileImg);\r\n });\r\n }\r\n\r\n\r\n $scope.uploadCertificateFile = function (elem) {\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n // var doc = vm.BGDocList[index];\r\n var traning = vm.TrainingList[index];\r\n // vm.error[traning.CertificateName] = '';\r\n var file = elem.files[0];\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId + \"_TraningCertificate_\" + rendomnumber + \".\" + file.name.split(\".\")[1];\r\n var file = new File([file], filename, { type: file.type });\r\n\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n OnBoardingFlowService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.pathtcertificate = filename;\r\n vm.UploadCertificateimageServices(filename);\r\n if (vm.pathtcertificate) {\r\n vm.tempCertificateAdd = false;\r\n }\r\n traning.TrainingCertificate = traning.TrainingCertificate = filename;\r\n traning.CertificateName = traning.CertificateName;\r\n\r\n traning.edit = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload certificate, server error\");\r\n });\r\n } else {\r\n vm.error[traning.CertificateName] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n\r\n\r\n\r\n vm.sendBoatLink = function (skill) {\r\n console.log(skill);\r\n OnBoardingFlowService.sendBoatLink(loggedinUser, vm.MobileNo, skill, token, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess('Success', \"Successfully send link\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to send link, server error\");\r\n })\r\n }\r\n\r\n\r\n \r\n // New Onboarding Flow code start\r\n\r\n\r\n vm.UpdateValidationData = function () {\r\n var validationData = {\r\n \"UserId\": UserId,\r\n \"SectionName\": vm.SectionName,\r\n \"ItemName\": vm.fieldData.ItemName,\r\n \"ItemComment\": vm.ItemComment,\r\n \"ItemStatus\": vm.ItemStatus\r\n }\r\n vm.validationForm.submitted = true;\r\n if (vm.validationForm.$valid) {\r\n vm.disableRejectButton = true;\r\n OnBoardingFlowService.UpdateUserProfileValidationData(validationData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.GetBasicDetailsDynamic();\r\n vm.GetSkillDataAndLocation();\r\n vm.GetBasicDetails();\r\n vm.GetBGverificationWeb();\r\n vm.GetAllActivitiesForUser();\r\n }, 2000);\r\n if(vm.IsApprovedModelOpen == true){\r\n vm.closeApprovalPopUp();\r\n }\r\n else if (vm.IsRejectModelOpen == true){\r\n vm.closeRejectionPopUp();\r\n } \r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n if(vm.IsApprovedModelOpen == true){\r\n vm.closeApprovalPopUp();\r\n }\r\n else if (vm.IsRejectModelOpen == true){\r\n vm.closeRejectionPopUp();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n vm.OpenRejectionPopUp = function (fieldData, Section) {\r\n vm.fieldData = fieldData;\r\n vm.IsRejectModelOpen = true;\r\n vm.ItemStatus = 'Rejected';\r\n vm.SectionName = Section;\r\n RejectionModel = $uibModal.open({\r\n templateUrl: 'rejectField_model.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.OpenApprovalPopUp = function (fieldData, Section) {\r\n vm.IsApprovedModelOpen = true;\r\n vm.fieldData = fieldData;\r\n vm.ItemStatus = 'Approved';\r\n vm.SectionName = Section;\r\n ApprovalModel = $uibModal.open({\r\n templateUrl: 'approveField_model.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.closeApprovalPopUp = function () {\r\n ApprovalModel.close();\r\n vm.ItemComment = \"\";\r\n vm.disableRejectButton = false;\r\n vm.IsApprovedModelOpen = false;\r\n }\r\n\r\n vm.closeRejectionPopUp = function () {\r\n RejectionModel.close();\r\n vm.ItemComment = \"\";\r\n vm.disableRejectButton = false;\r\n vm.IsRejectModelOpen = false;\r\n }\r\n\r\n\r\n vm.callToTechnician = function () { \r\n AllUsersListService.callToTechnicianApi(loggedinUser,UserId, token).then(function (resp) {\r\n if(resp.status == 200) {\r\n vm.showSuccess(\"Success\",\"Call Initiated\");\r\n }\r\n else {\r\n vm.showFailure(\"Failure\",resp.data.Message);\r\n } \r\n });\r\n \r\n }\r\n\r\n vm.SiteRescheduleAudit = function (index) {\r\n var data = {};\r\n data = {\r\n \"UserId\": UserId,\r\n \"docName\": vm.UserBGInfo[index].DocumentName,\r\n \"docType\": \"\",\r\n \"DocumentNo\": vm.UserBGInfo[index].DocumentNo,\r\n \"VerificationMode\": \"\",\r\n \"VerificationAuthority\": \"\",\r\n \"VerificationStatus\": \"\",\r\n \"ThirdPartyDocumentPath\": \"\"\r\n }\r\n\r\n OnBoardingFlowService.SaveBackgroundChecks(data, vm.FilesFrontDoc, vm.FilesBackDoc, vm.ThirdPartyDocs, token, loggedinUser).then(function (res) {\r\n if (res && res.status == 201) {\r\n vm.data = \"\";\r\n vm.showSuccess(\"Success\", \"Document Uploaded Successfully.\");\r\n $timeout(function () {\r\n vm.GetBGverificationWeb();\r\n }, 2000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", \"Not Uploaded\");\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n });\r\n }\r\n\r\n\r\n vm.GetBasicDetails = function () {\r\n OnBoardingFlowService.GetBasicDetailsWeb(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserBasicInfo = resp.data;\r\n vm.userProfileValidationData = vm.UserBasicInfo.userProfileValidationData;\r\n });\r\n }\r\n\r\n vm.GetBasicDetails();\r\n\r\n // vm.GetBasicDetailsList = function () {\r\n // OnBoardingFlowService.GetBasicDetails(UserId, loggedinUser, token).then(function (resp) {\r\n // vm.UserBasicInfo = resp.data;\r\n // });\r\n // }\r\n vm.GetBasicDetailsDynamic = function () {\r\n OnBoardingFlowService.GetBasicDetailsWebDynamic(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserBasicInfoList = resp.data;\r\n });\r\n }\r\n\r\n vm.GetBasicDetailsDynamic();\r\n\r\n vm.GetSkillDataAndLocation = function () {\r\n OnBoardingFlowService.GetSkillDataAndLocationWeb(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserSkillandLocationInfo = resp.data;\r\n });\r\n }\r\n\r\n vm.GetInvitedTeamForRegistration = function () {\r\n OnBoardingFlowService.GetInvitedTeamForRegistrationWeb(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserInvitedTeamInfo = resp.data;\r\n });\r\n }\r\n\r\n vm.GetBankDetailsForUsers = function () {\r\n OnBoardingFlowService.GetBankDetailsForUsers(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserBankInfo = resp.data;\r\n });\r\n }\r\n\r\n vm.GetBGverificationWeb = function () {\r\n OnBoardingFlowService.GetBGverificationWeb(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserBGInfo = resp.data.userBGverificationValidationsData;\r\n });\r\n }\r\n \r\n\r\n\r\n vm.VideoUploadPopup = function () {\r\n VideoModel = $uibModal.open({\r\n templateUrl: 'videoupload_model.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n }, function () {\r\n });\r\n \r\n }\r\n\r\n vm.file = [];\r\n $scope.uploadVideoFile = function(files){\r\n \r\n vm.FrontFileName=\"\";\r\n vm.FilesFrontDoc = files.files;\r\n vm.FrontFileName = vm.FilesFrontDoc[0].name; \r\n vm.file.push(vm.FilesFrontDoc);\t\r\n var allowedExtensions = /(\\.mp4|\\.mov|\\.avi|\\.webm|\\.m4v|\\.mov|\\.qt)$/i; \r\n if(!allowedExtensions.exec(vm.FrontFileName)){\r\n vm.FilesFrontDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .mp4,.mov,.avi,.webm,.m4v,.mov,.qt only.');\r\n }\r\n }\r\n\r\n vm.VideoUploadPop = function () {\r\n VideoModel.close();\r\n $scope.skillrating = 0;\r\n vm.FeedbackRemarks = \"\";\r\n }\r\n\r\n $scope.stars = [1, 2, 3, 4, 5];\r\n $scope.skillrating = 0;\r\n \r\n $scope.setRating = function(rating) {\r\n $scope.skillrating = rating;\r\n };\r\n\r\n vm.UploadVideo = function () {\r\n var Feedback = vm.FeedbackRemarks;\r\n var Rating = $scope.skillrating;\r\n vm.disableuploadbutton = true;\r\n OnBoardingFlowService.UploadBGInteractionVideo(UserId,Rating, Feedback,vm.FrontFileName, vm.FilesFrontDoc, token, loggedinUser).then(function (res) { \r\n if (res && res.status == 201) {\r\n vm.VideoUploadPop();\r\n vm.showSuccess(\"Success\", \"Video Uploaded Successfully.\");\r\n vm.disableuploadbutton = false;\r\n $timeout (function(){\r\n vm.ExternalUpload();\r\n },2000)\r\n \r\n } else if (res && res.data && res.data.Message) {\r\n vm.VideoUploadPop();\r\n vm.showFailure(\"Failed\", \"Not Uploaded\");\r\n vm.disableuploadbutton = false;\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n });\r\n }\r\n ///External Video List\r\n vm.ExternalUpload = function () {\r\n var newdata = {};\r\n newdata = {\r\n \"UserId\": UserId,\r\n \"Type\": \"\",\r\n \"skillName\": \"\"\r\n }\r\n OnBoardingFlowService.UploadExternalVideoList(newdata, loggedinUser, token).then(function (resp) {\r\n vm.UploadVideoExternal = resp.data;\r\n });\r\n }\r\n\r\n \r\n\r\n\r\n vm.ReTestForSkill = function (skill) {\r\n var data = {};\r\n data = {\r\n \"UserId\": UserId,\r\n \"Skill\": skill \r\n }\r\n OnBoardingFlowService.ReTestForSkill(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n\r\n \r\n vm.SetUserStatusInActiveMode = function () {\r\n vm.disableActivateButton = true;\r\n OnBoardingFlowService.SetUserStatusInActiveMode(UserId,loggedinUser,token).then(function (res) {\r\n if (res && res.status == 200) {\r\n vm.showSuccess(\"Success\", res.data.Message);\r\n $timeout(function () {\r\n if(vm.loggedInUserRole == 'OnBoarding Manager' || vm.loggedInUserRole == 'SuperAdministrator' ){\r\n $state.go('index.AllUsersList', { reload: true });\r\n }\r\n else{\r\n $state.go('index.BGVerification', { reload: true });\r\n }\r\n \r\n }, 2000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n vm.disableActivateButton = false;\r\n });\r\n }\r\n\r\n vm.getImageDataFST = function (data) {\t\t\t\r\n\t\t\tif (data) {\r\n\t\t\t\treturn data;\r\n\t\t\t} else {\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n vm.videoCallEnabled = false;\r\n $scope.closeDiv = function() {\r\n vm.videoCallEnabled = false;\r\n };\r\n\r\n $scope.AudioCallInitiated = false;\r\n\t\t$scope.VideoCallInitiated = false;\r\n\t\t$scope.ChatInitiated = false;\r\n\r\n vm.SendCommunicationInvite = function (type,Step) {\t\r\n vm.videoCallEnabled = true;\t\t\r\n\t\t\tif($scope.AudioCallInitiated == false && type == 'Audio') {\r\n\t\t\t\tOnBoardingFlowService.SendCommunicationInvite(UserId,type,Step,loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif(resp.status==200){\t\t\t\t\t\t\r\n\t\t\t\t\t\t{\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tvm.connectionLink = resp.data;\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Audio call request initiated\");\r\n\t\t\t\t\t\t\t// vm.PollVideoCallFieldLocation();\t\r\n\t\t\t\t\t\t\t$scope.AudioCallInitiated = true;\t\t\t\t\r\n\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t}\t\r\n\t\t\telse if($scope.VideoCallInitiated == false && type == 'Video') {\r\n\t\t\t\tOnBoardingFlowService.SendCommunicationInvite(UserId,type,Step,loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif(resp.status==200){\t\t\t\t\t\t\r\n\t\t\t\t\t\t{\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tvm.connectionLink = resp.data;\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Video call request initiated\");\r\n\t\t\t\t\t\t\t// vm.PollVideoCallFieldLocation();\t\r\n\t\t\t\t\t\t\t$scope.VideoCallInitiated = true;\t\t\t\t\r\n\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\telse if($scope.ChatInitiated == false && type == 'Text') {\r\n\t\t\t\tOnBoardingFlowService.SendCommunicationInvite(UserId,type,Step, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif(resp.status==200){\t\t\t\t\t\t\r\n\t\t\t\t\t\t{\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tvm.connectionLink = resp.data;\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Communication Request Initiated\");\r\n\t\t\t\t\t\t\t// vm.PollVideoCallFieldLocation();\t\r\n\t\t\t\t\t\t\t$scope.ChatInitiated = true;\t\t\t\t\r\n\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t}\t\t\r\n\t\t\t}\r\n\r\n vm.GetAllActivitiesForUser = function () {\r\n OnBoardingFlowService.GetAllActivitiesForUser(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserActivityInfo = resp.data;\r\n });\r\n }\r\n vm.GetAllActivitiesForUser();\r\n\r\n }\r\n})\r\n\r\nfunction CheckRegExOnKeyPress(e) {\r\n\r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\,\\\\-\\\\/]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\r\nfunction CheckRegExOnKeyPressCertificate(e) {\r\n\r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\-\\\\\\\\]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\r\n\r\n\nangular.module('inspinia').service('NotificationSettingService', function (ApiURL,$log,$http) {\r\n\r\n //https://test.mymobiforce.com/coreapi/api/alertconfiguration/asdasd/CreateTransactionalAlert\r\n this.CreateTransactionalAlert = function(reqUserId,token,data){\r\n \tvar url = ApiURL+'/api/alertconfiguration/'+reqUserId+'/CreateTransactionalAlert';\r\n \treturn $http.post(url,data,{\r\n \t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n \t});\r\n }\r\n //https://test.mymobiforce.com/coreapi/api/alertconfiguration/U360000000001/GetAllAlertConfiguration\r\nthis.GetAllAlertConfiguration = function(reqUserId,token){\r\n\tvar url=ApiURL+'/api/alertconfiguration/'+reqUserId+'/GetAllAlertConfiguration';\r\n\treturn $http.get(url,{\r\n\t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n\t})\r\n}\r\n\r\n\r\n\r\n//https://test.mymobiforce.com/coreapi/api/alertconfiguration/U360000000001/JOB_ASSIGNED/TRANSACTIONAL/GetAlertConfiguration\r\nthis.GetAlertConfiguration = function(reqUserId,id,type,token){\r\n\tvar url=ApiURL+'/api/alertconfiguration/'+reqUserId+'/'+id+'/'+type+'/GetAlertConfiguration';\r\n\treturn $http.get(url,{\r\n\t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n\t})\r\n}\r\nthis.DeleteAlertConfiguration = function(reqUserId,token,data){\r\n\tvar url=ApiURL+'/api/alertconfiguration/'+reqUserId+'/GetAllAlertConfiguration';\r\n\treturn $http.delete(url,data,{\r\n\t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n\t})\r\n}\r\n//https://test.mymobiforce.com/coreapi/api/alertconfiguration/U360000000001/alertId/alertType/DeleteAlertConfiguration\r\n\r\nthis.DeleteAlertConfiguration = function(reqUserId,id,type,token){\r\n return $http({\r\n method: 'DELETE',\r\n url: ApiURL + \"/api/alertconfiguration/\"+reqUserId+ \"/\"+id+\"/\"+type+\"/DeleteAlertConfiguration\",\r\n data: { \r\n },\r\n headers: {\r\n 'Content-type': 'application/json', 'token':token, 'UserId':reqUserId\r\n }\r\n })\r\n }\r\n //https://test.mymobiforce.com/coreapi/api/escalationalertconfiguration/reqUserId/alertId/alertType/DeleteEscalationAlertConfiguration\r\nthis.DeleteEscalationAlertConfiguration = function(reqUserId,id,type,token){\r\n return $http({\r\n method: 'DELETE',\r\n url: ApiURL + \"/api/escalationalertconfiguration/\"+reqUserId+ \"/\"+id+\"/\"+type+\"/DeleteEscalationAlertConfiguration\",\r\n data: { \r\n },\r\n headers: {\r\n 'Content-type': 'application/json', 'token':token, 'UserId':reqUserId\r\n }\r\n })\r\n }\r\n\r\n //https://test.mymobiforce.com/coreapi/api/slaalertconfiguration/reqUserId/alertId/alertType/DeleteSLAAlertConfiguration\r\nthis.DeleteSLAAlertConfiguration = function(reqUserId,id,type,token){\r\n return $http({\r\n method: 'DELETE',\r\n url: ApiURL + \"/api/slaalertconfiguration/\"+reqUserId+ \"/\"+id+\"/\"+type+\"/DeleteSLAAlertConfiguration\",\r\n data: { \r\n },\r\n headers: {\r\n 'Content-type': 'application/json', 'token':token, 'UserId':reqUserId\r\n }\r\n })\r\n }\r\n\r\n});\nangular.module('inspinia').controller('NotificationSettingController', function (MailUrl,$state,toaster,$timeout,$window,$state,ReportService, $scope,$uibModal,$log, $localStorage,NotificationSettingService,$stateParams,DTOptionsBuilder, DTColumnDefBuilder) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.AlertType = $stateParams.alertType;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n if (vm.AlertType == 'main') {\r\n vm.eventType ='';\r\n }else if(vm.AlertType == 'transactional'){\r\n vm.eventType =$stateParams.eventType; \r\n }\r\n vm.mode = $stateParams.mode;\r\n vm.channelList = [\"SMS\",\"Email\",\"Notification\",\"WebNotification\",\"WhatsApp\"];\r\n vm.RoleList = [\"Project Manager\",\"Help Desk\",\"Supervisor\",\"Field Engineer\",\"Consumer\",\"Vendor Manager\"];\r\n vm.selectedRolesList = [];\r\n vm.channelList = [\"SMS\",\"Notifications\",\"Email\",\"WebNotification\",\"WhatsApp\"];\r\n vm.selectedChannelArray = '';\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.eventConfigurationArray = [];\r\n vm.dtInstance = {};\r\n vm.users=[];\r\n vm.toUsers=[];\r\n vm.toList=[];\r\n vm.mobileNo = '';\r\n vm.outsiderTransText = '';\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.showInfo =$scope.$parent.$parent.main.showInfo;\r\n vm.confirmTagModal =$scope.$parent.$parent.main.confirmTagModal;\r\n vm.outSidecheck1 = false;\r\n vm.AllConfigurayionList = '';\r\n //https://test.mymobiforce.com/assets/templates/36/JOB_ASSIGNED.html\r\n vm.mailMessagePath = MailUrl+'/assets/templates/'+'36'+'/';\r\n\r\n vm.GetAlertConfiguration = function(name,type){\r\n NotificationSettingService.GetAlertConfiguration(loggedinUser,name,type,token).then(function(resp){\r\n if (resp && resp.status == 200) {\r\n vm.singleNotificationAlert = resp.data;\r\n vm.eventConfigurationArray = [];\r\n angular.forEach(vm.singleNotificationAlert.ListAlertTemplate, function(d){\r\n var editObject = {};\r\n editObject.channel = [];\r\n if (d) {\r\n editObject.check=true;\r\n editObject.role = d.Role;\r\n if (d.Role!='Outsider') {\r\n if (d.SMSEnabled) {\r\n editObject.channel.push(\"SMS\");\r\n editObject.smsText = d.SMSText;\r\n\r\n }if (d.EmailEnabled) {\r\n editObject.channel.push(\"Email\")\r\n }if (d.NotificationEnabled) {\r\n editObject.channel.push(\"Notifications\");\r\n editObject.smsText = d.NotificationText;\r\n }\r\n if (d.WebNotificationEnabled) {\r\n editObject.channel.push(\"WebNotification\");\r\n editObject.smsText = d.WebNotificationText;\r\n }\r\n vm.eventConfigurationArray.push(editObject);\r\n }else if (d.Role == 'Outsider') {\r\n vm.outSidecheck1 = true;\r\n vm.outsiderTransText = d.SMSText\r\n vm.toList = [];\r\n angular.forEach(d.UserOutSideContact, function(d){\r\n var objOutsider = {};\r\n if (d) {\r\n objOutsider.PersonalEmail = d.UserOutSideEmail;\r\n objOutsider.ContactNumber = d.UserOutSidePhone;\r\n vm.toList.push(objOutsider);\r\n }\r\n })\r\n // var emailArray = d.UserOutsideSystemEmail.split(\",\");\r\n // var mobileArray = d.UserOutSideSystemPhone.split(\",\");\r\n // vm.toList = [];\r\n // angular.forEach(emailArray,function(d){\r\n // var emailObj = [];\r\n // if (d!=\"\") {\r\n // emailObj.PersonalEmail = d;\r\n // vm.toList.push(emailObj);\r\n // }\r\n // })\r\n }\r\n \r\n }\r\n \r\n //console.log('vm.eventConfigurationArray',vm.eventConfigurationArray);\r\n })\r\n }\r\n })\r\n }\r\n\r\n vm.EditAlerts = function(alertType,alertId){\r\n if (alertType == 'transactional') {\r\n $state.go('index.NotificationSettings',{\r\n alertType:alertType,\r\n eventType:alertId,\r\n mode:true\r\n },{\r\n reload:true\r\n })\r\n }else if (alertType == 'SLA') {\r\n $state.go('index.SLASettings',{\r\n mode:true\r\n },{\r\n reload:true\r\n })\r\n\r\n }else if (alertType == 'Escalation') {\r\n $state.go('index.EscalationSettings',{\r\n mode:true,\r\n alertId:alertId\r\n },{\r\n reload:true\r\n })\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n if (vm.mode == \"true\") {\r\n vm.mode = true;\r\n if(vm.AlertType == 'transactional'){\r\n vm.GetAlertConfiguration(vm.eventType,vm.AlertType);\r\n }\r\n \r\n }else{\r\n vm.mode = false;\r\n }\r\n vm.OpenTransactionalModal = function(){\r\n TransactionalModal = $uibModal.open({\r\n templateUrl: 'transactional-alert-modal',\r\n scope: $scope,\r\n size:'lg'\r\n })\r\n }\r\n vm.CloseTransactionalModal = function(){\r\n TransactionalModal.close();\r\n }\r\nvar confObject = {\r\n // check_1:'',\r\n // role_1:'',\r\n // channel_1:'',\r\n // emailP_1:'',\r\n // smsText_1:''\r\n}\r\n//vm.eventConfigurationArray.push(confObject);\r\n\r\nvm.AddEventsConfiguration = function(){\r\n var ele={};\r\n vm.eventConfigurationArray.push(ele);\r\n}\r\nvm.RemoveEventsConfiguration = function (index){\r\n vm.eventConfigurationArray.splice(index, 1);\r\n}\r\n\r\n\r\n \r\n\r\n // vm.GetEvent = function(event){\r\n // vm.eventType = event;\r\n // console.log('vm.eventType before',vm.eventType); \r\n // vm.CloseTransactionalModal();\r\n // console.log('vm.eventType after',vm.eventType); \r\n // }\r\n\r\n vm.OpenMailModal = function(){\r\n MailModal = $uibModal.open({\r\n templateUrl: 'mail-modal',\r\n scope: $scope,\r\n size:'lg'\r\n })\r\n }\r\n vm.CloseMailModal = function(){\r\n MailModal.close();\r\n }\r\n\r\nvar confObject = {\r\n \r\n}\r\nvm.eventConfigurationArray.push(confObject);\r\n\r\nvm.AddEventsConfiguration = function(){\r\n var ele={};\r\n vm.eventConfigurationArray.push(ele);\r\n}\r\nvm.RemoveEventsConfiguration = function (index){\r\n vm.eventConfigurationArray.splice(index, 1);\r\n}\r\n// vm.storeSelectedRoles = function(role){\r\n\r\n// vm.selectedRolesList.push(vm.RoleList[role]);\r\n// }\r\n\r\n// vm.removeSelectedRoles = function (element) {\r\n// var matched = false;\r\n// angular.forEach(vm.selectedRolesList, function (d) {\r\n// if (d == element) {\r\n// matched = true;\r\n// return;\r\n// }\r\n// });\r\n// if (!matched) {\r\n// return element;\r\n// }\r\n// }\r\nvm.getUserSuggestion = function (val) {\r\n\r\n // vm.scheduleModel.toListMendtryErr=false;\r\n\r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}].concat(vm.users):vm.users;\r\n }\r\n vm.getUsers();\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}]:[];\r\n }\r\n\r\n vm.getUsers = function () {\r\n vm.users = [];\r\n ReportService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n //$log.log(data);\r\n }]));\r\n }\r\n\r\n vm.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName !=null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n vm.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.toList, function (d) {\r\n if (d.PersonalEmail == element.PersonalEmail) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n vm.selectUserNameInToList = function (item,mobile) {\r\n if (item == '' && mobile == '') {\r\n vm.showInfo(\"Information\",\"Please enter email or mobile\");\r\n return;\r\n }\r\n var obj=[];\r\n if (item && item.length!=0) {\r\n obj.PersonalEmail = item;\r\n }\r\n \r\n if (mobile && mobile.length>0) {\r\n obj.ContactNumber = mobile; \r\n }else{\r\n angular.forEach(vm.users, function(d){\r\n if (d.PersonalEmail == item) {\r\n obj.ContactNumber = d.ContactNumber;\r\n }\r\n })\r\n }\r\n vm.toList.push(obj);\r\n vm.toUsers = [];\r\n vm.mobileNo = '';\r\n }\r\n vm.RemovefromList = function(index){\r\n vm.toList.splice(index,1);\r\n }\r\n\r\nvm.SaveEventConfiguration = function(){\r\n\r\nif (vm.config_form.$valid) {\r\n var obj = {};\r\n obj.AlertType = vm.AlertType;\r\n obj.AlertId = vm.eventType;\r\n var alertArray = [];\r\n angular.forEach(vm.eventConfigurationArray, function(d){\r\n var alertObject = {};\r\n if (d && d.check) {\r\n if (d.channel.indexOf('SMS')!=-1) {\r\n alertObject.SMSEnabled = true;\r\n alertObject.SMSText = d.smsText;\r\n }else{\r\n alertObject.SMSEnabled = false;\r\n alertObject.SMSText = \"\";\r\n }\r\n if (d.channel.indexOf('Email')!=-1) {\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailTemplateName =vm.eventType;\r\n alertObject.EmailSubject = vm.eventType;\r\n }else{\r\n alertObject.EmailEnabled = false;\r\n alertObject.EmailTemplateName =\"\";\r\n alertObject.EmailSubject = \"\";\r\n }if (d.channel.indexOf('Notifications')!=-1) {\r\n alertObject.NotificationEnabled = true;\r\n alertObject.NotificationText =d.smsText;\r\n }else{\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText =\"\";\r\n }if (d.channel.indexOf('WebNotification')!=-1) {\r\n alertObject.WebNotificationEnabled = true;\r\n alertObject.WebNotificationText =d.smsText;\r\n }else{\r\n alertObject.WebNotificationEnabled = false;\r\n alertObject.WebNotificationText =\"\";\r\n }if (d.channel.indexOf('WhatsApp')!=-1) {\r\n alertObject.WhatsAppEnabled = true;\r\n alertObject.WhatsAppText =d.smsText;\r\n }else{\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText =\"\";\r\n }\r\n alertObject.Role = d.role;\r\n alertObject.UserOutSideContact=[];\r\n alertObject.UserOutSideContact.UserOutSideEmail = \"\";\r\n alertObject.UserOutSideContact.UserOutSidePhone = \"\";\r\n alertArray.push(alertObject);\r\n }\r\n })\r\n\r\n if (vm.outSidecheck1) {\r\n if (vm.toList && vm.toList.length>0) {\r\n var alertObject = {}\r\n var outSiderModel = [];\r\n angular.forEach(vm.toList, function(d){\r\n var objModel = {};\r\n if (d) {\r\n objModel.UserOutSideEmail = d.PersonalEmail;\r\n objModel.UserOutSidePhone = d.ContactNumber;\r\n outSiderModel.push(objModel);\r\n }\r\n })\r\n \r\n alertObject.UserOutSideContact = outSiderModel;\r\n alertObject.Role = \"Outsider\";\r\n alertObject.SMSText = vm.outsiderTransText;\r\n alertObject.SMSEnabled = true;\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailSubject = vm.eventType;\r\n alertObject.EmailTemplateName = vm.eventType;\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText = \"\";\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText = \"\";\r\n alertArray.push(alertObject);\r\n }else{\r\n vm.showInfo(\"Information\",\"Please select outside users or uncheck the button\");\r\n return;\r\n }\r\n }\r\n obj.ListAlertTemplate = alertArray;\r\n //console.log('obj',obj);\r\n NotificationSettingService.CreateTransactionalAlert(loggedinUser,token,obj).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\",vm.eventType +\"-Transactional Alert has been created\");\r\n $timeout(function(){\r\n $state.go('index.NotificationSettings',{\r\n alertType:'main',\r\n eventType:'',\r\n mode:''\r\n },{\r\n reload:true\r\n });\r\n },2000)\r\n }else{\r\n vm.showFailure(\"Failure\",vm.eventType +\"-Transactional Alert creation failed due to some technical error\");\r\n }\r\n })\r\n}else{\r\n vm.config_form.submitted = true;\r\n}\r\n \r\n}\r\n\r\n\r\n vm.GetAllAlertConfiguration = function(){\r\n NotificationSettingService.GetAllAlertConfiguration(loggedinUser,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data && resp.data.length>0) {\r\n vm.AllConfigurationList = resp.data;\r\n //console.log('vm.AllConfigurayionList',vm.AllConfigurationList);\r\n }else{\r\n vm.showFailure(\"Error\",\"No Configuration found\")\r\n }\r\n })\r\n }\r\n \r\n vm.DeleteAlertConfiguration = function(name,type){\r\n vm.confirmTagModal(\"Do you want to delete selected configuration?\",function(){\r\n if (type=='transactional') {\r\n NotificationSettingService.DeleteAlertConfiguration(loggedinUser,name,type,token).then(function(resp){\r\n if (resp) {\r\n vm.showSuccess(\"Success\",\"Alert has been deleted successfully\");\r\n $timeout(function(){\r\n vm.GetAllAlertConfiguration();\r\n },2000)\r\n \r\n }else{\r\n vm.showFailure(\"Error\",\"Technical error occured\")\r\n }\r\n })\r\n }else if(type == 'Escalation'){\r\n NotificationSettingService.DeleteEscalationAlertConfiguration(loggedinUser,name,type,token).then(function(resp){\r\n if (resp) {\r\n vm.showSuccess(\"Success\",\"Alert has been deleted successfully\");\r\n $timeout(function(){\r\n vm.GetAllAlertConfiguration();\r\n },2000)\r\n \r\n }else{\r\n vm.showFailure(\"Error\",\"Technical error occured\")\r\n }\r\n })\r\n\r\n }else if(type == 'SLA'){\r\n NotificationSettingService.DeleteSLAAlertConfiguration(loggedinUser,name,type,token).then(function(resp){\r\n if (resp) {\r\n vm.showSuccess(\"Success\",\"Alert has been deleted successfully\");\r\n $timeout(function(){\r\n vm.GetAllAlertConfiguration();\r\n },2000)\r\n \r\n }else{\r\n vm.showFailure(\"Error\",\"Technical error occured\")\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n//Global Call functions\r\nif (vm.AlertType == 'main') {\r\n vm.GetAllAlertConfiguration();\r\n}\r\n\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfrgitp')\r\n .withButtons([]).withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('searching',true)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n });\r\n // .withOption('order', [1, 'asc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n\r\n});\nangular.module('inspinia').service('ObjectSettingsDetailsService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ObjectSettingsDetailsController', function (ObjectSettingsDetailsService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount ; \r\n\t\t$scope.TicketTablepagination = {\r\n\t\t current: 1\r\n\t\t};\r\n\t\r\n\t\r\n\t\tvm.changeTicketPageListCount = function() { \r\n\t\t $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t PageSize = $scope.ticketTablePerPage;\r\n\t\t $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t}\r\n\r\n\t\tPageIndex=$scope.TicketTablepagination.current;\r\n\t\t$scope.TicketTablepageChanged = function(newPage) { \r\n\t\t PageIndex = newPage; \r\n\t\t vm.getAllJobForExceptionList();\r\n\t\t};\r\n\r\n\t\tvm.isEditMode = false;\r\n\r\n\t\tvm.objectSettings = {\r\n\t\t\ttabDefault: 'Default On'\r\n\t\t};\r\n\t\tvm.permissions = [\r\n\t\t\t{ name: 'Read', enabled: true },\r\n\t\t\t{ name: 'Create', enabled: true },\r\n\t\t\t{ name: 'Edit', enabled: true },\r\n\t\t\t{ name: 'Delete', enabled: false },\r\n\t\t\t{ name: 'View All', enabled: false },\r\n\t\t\t{ name: 'Modify All', enabled: false }\r\n\t\t];\r\n\t\tvm.toggleEditMode = function() {\r\n\t\t\tif (vm.isEditMode) {\r\n\t\t\t\t// Save logic (You can send data to backend here)\r\n\t\t\t\tconsole.log('Saved:', vm.objectSettings, vm.permissions);\r\n\t\t\t\t\r\n\t\t\t\t// Delay the state transition by 2 seconds\r\n\t\t\t\t$timeout(function() {\r\n\t\t\t\t\t$state.go('index.ProfileObjectDetail', {}, { reload: true });\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t\tvm.isEditMode = !vm.isEditMode;\r\n\t\t};\r\n\t\tvm.cancelEditMode = function() {\r\n\t\r\n\t\t\tvm.isEditMode = false;\r\n\t\t};\r\nvm.OpenProfileOverview = function(){\r\n\t$state.go('index.ProfileManagementDetail',{\r\n\t \r\n\t}, { reload: true });\r\n \r\n}\r\nvm.tabdefault = \"Default On\"\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('NoticeCampaignDetailsService', function (ApiURL,SchedulingAPI,AcessoriesURL, $window, $http) {\r\n\r\n\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('NoticeCampaignDetailsController', function (NoticeCampaignDetailsService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.financePageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n vm.SearchText = '';\r\n\t\t $scope.dates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\t\t var startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\t var endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t\t};\r\n\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\t// vm.GetAllBillsWithFilter();\r\n\t\t};\r\n\r\n\t\t\r\n\t\t// $scope.totalInventory = 0;\r\n // $scope.usersStockPageRequest = vm.financePageListCount;\r\n // $scope.Requestpagination = {\r\n // current: 1,\r\n // };\r\n\r\n // vm.changeMyStockPageListCount = function () {\r\n // $scope.usersStockPageRequest = vm.financePageListCount;\r\n // PageSize = $scope.usersStockPageRequest;\r\n // // $scope.Requestpagination.current = 1;\r\n // $scope.MystockTablePageChanged($scope.Requestpagination.current);\r\n\t\t// vm.selectAll = false;\r\n\t\t// \tPageIndex = $scope.Requestpagination.current;\r\n\t\t// \t$scope.MystockTablePageChanged = function (newPage) {\r\n\t\t// \t\tPageIndex = newPage;\r\n\t\t// \t\tvm.GetAllBillsWithFilter();\r\n\t\t// \t };\r\n \r\n // };\r\n\t\t// PageIndex = $scope.Requestpagination.current;\r\n\r\n // $scope.MystockTablePageChanged = function (newPage) {\r\n // PageIndex = newPage;\r\n // vm.GetAllBillsWithFilter();\r\n // };\r\n \r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('NonReturnablePartConsumeListService', function (AcessoriesURL, ApiURL, $window, $http) {\r\n\r\n this.GetAllWareHouse = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllWareHouse';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n } \r\n\r\n this.GetNonRefundablePartlist = function (paymentstatus,DateField,startDate,endDate,oPageIndex,oPageSize,OrderBy,SortType, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/GetNonRefundablePartlist?StartDate=' + startDate + '&EndDate=' + endDate + '&DateField=' + DateField + '&PaidStatus=' + paymentstatus + '&OrderBy=' + OrderBy + '&SortType=' + SortType + '&PageSize=' + oPageSize + '&PageIndex=' + oPageIndex;\r\n return $http.get(url,{\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetNonRefundablePartlist_CSV = function (paymentstatus,DateField,startDate,endDate,oPageIndex,oPageSize,OrderBy,SortType, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/GetNonRefundablePartlist_CSV?StartDate=' + startDate + '&EndDate=' + endDate + '&DateField=' + DateField + '&PaidStatus=' + paymentstatus + '&OrderBy=' + OrderBy + '&SortType=' + SortType + '&PageSize=' + oPageSize + '&PageIndex=' + oPageIndex;\r\n return $http.get(url,{\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.MarkNonReturnPartDetails = function (parttId,loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/RequestedPartInventoryController/MarkNonReturnPartDetails?PartId=' + parttId;\r\n return $http.put(url,null, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.NonReturnTicketPartOrderPlace = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFNonReturnOrder/NonReturnTicketPartOrderPlace';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('NonReturnablePartConsumeListController', function (NonReturnablePartConsumeListService,ngProgressFactory, $resource,$rootScope,$http, $stateParams, toaster, $filter, $compile, $q,ApiURL, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\t// var warehouseId = $stateParams.warehouseId;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvar oPageIndex = 1;\r\n\t\tvar oPageSize = 10;\r\n\t\tvm.progressbar = ngProgressFactory.createInstance();\r\n\t\tvm.noMsg = [];\r\n\t\tvm.noOfRecords = 0;\r\n\t\tvm.file = null;\r\n\t\tvm.allOrdersPageListCount = 10;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.DateField = 'CreatedOn';\r\n\t\tvm.OrderBy = 'desc';\r\n \t\tvm.SortType = 'CreatedOn';\r\n\t\t vm.paymentstatus = 'All';\r\n\t\tvm.allInventoryPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.UserId = '';\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\t$scope.dates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t\t};\r\n\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.GetNonRefundablePartlist();\r\n\t\t};\r\n\r\n\t\t$scope.totalInvList = 0;\r\n\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t$scope.InventoryPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\r\n\t\tvm.changeAllInventoryPageListCount = function () {\r\n\t\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t\tPageSize = $scope.inventoryPerPage;\r\n\t\t\t$scope.AllInventoryTablePageChanged($scope.InventoryPagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\t\tPageIndex = newPage;\r\n\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\tPageIndex = newPage;\r\n\t\t\tvm.GetNonRefundablePartlist();\r\n\r\n\t\t};\r\n\t\tvm.SearchText = '';\r\n\t\tvm.warehouselist = \"\";\r\n\t\tvm.warehouseInvetoryList = [];\r\n\r\n\r\n\t\tvm.clearFilter = function () {\r\n\t\t\tvm.SearchText = '';\r\n\t\t\tvm.warehouselist = '';\r\n\r\n\t\t}\r\n vm.applyOrderFilter = function () {\r\n\t\t\tvm.GetDamgedPrdouctDetailList();\r\n\t\t\tvm.GetProductDetailDashboardByFilter();\r\n\t\t\t// vm.GetOrdersDashboardByFilter();\r\n\t\t}\r\n\t\r\n\t\tvm.OpenMarkPaymentConfirmation = function (markpayment) {\r\n\t\t\tvm.paymentmark = markpayment\r\n\t\t\tvm.markpayment = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'MarkpaymentAccept.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeMarkPaymentConfirmation = function () {\r\n\t\t\tvm.markpayment.close();\r\n\t\t}\r\n\r\n\r\n\t\t$scope.TotalRecord = 0;\r\n\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t$scope.OrdersPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllOrderPageListCount = function () {\r\n\t\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t\toPageSize = $scope.ordersPerPage;\r\n\t\t\t$scope.AllOrderTablePageChanged($scope.OrdersPagination.current);\r\n\t\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\t\toPageIndex = newPage;\r\n\t\t\t\tvm.GetNonRefundablePartlist();\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\toPageIndex = newPage;\r\n\t\t\tvm.GetNonRefundablePartlist();\r\n\r\n\t\t};\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.OpenTicketView = function (ticket) {\r\n\t\t\t$state.go('index.JobDetailView', {\r\n\t\t\t\tticketId: ticket\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\t\tvm.GetAllWareHouse = function () {\r\n\t\t\tNonReturnablePartConsumeListService.GetAllWareHouse(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.warehouseitemlist = resp.data;\r\n\t\t\t\t\tif (vm.warehouseitemlist.length > 0) {\r\n\t\t\t\t\t\tvm.warehouseid = vm.warehouseitemlist[0].strWareHouseId; \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllWareHouse();\r\n\r\n\t\tvm.selectedData = [];\r\n\r\n\t\tvm.handleCheckboxToggle = function (order) {\r\n\t\t\tif (order.isSelected) {\r\n\t\t\t\tvm.selectedData.push({\r\n\t\t\t\t\tTicketId: order.TicketId,\r\n\t\t\t\t\tMMFPartId: order.PartId,\r\n\t\t\t\t\tSKUId: order.SKUId,\r\n\t\t\t\t\tStockCount: order.StockCount\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.selectedData = vm.selectedData.filter(function (item) {\r\n\t\t\t\t\treturn item.MMFPartId !== order.PartId;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t\t\r\n\t\tvm.toggleSelectAll = function () {\r\n\t\t\tif (vm.selectAll) {\r\n\t\t\t\tvm.selectedData = vm.paymentstatusList\r\n\t\t\t\t\t.filter(function (order) {\r\n\t\t\t\t\t\treturn order.PartOrderStatus === 'Pending' || order.PartOrderStatus === 'Reject';\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.map(function (order) {\r\n\t\t\t\t\t\torder.isSelected = true;\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tTicketId: order.TicketId,\r\n\t\t\t\t\t\t\tMMFPartId: order.PartId,\r\n\t\t\t\t\t\t\tSKUId: order.SKUId,\r\n\t\t\t\t\t\t\tStockCount: order.StockCount\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.paymentstatusList = vm.paymentstatusList.map(function (order) {\r\n\t\t\t\t\torder.isSelected = false;\r\n\t\t\t\t\treturn order;\r\n\t\t\t\t});\r\n\t\t\t\tvm.selectedData = [];\r\n\t\t\t}\r\n\t\t};\r\n\t\t\r\n\t\tvm.NonReturnTicketPartOrderPlace = function () {\r\n\t\t\tvm.validationForm.submitted = true;\r\n\t\t\tif (vm.validationForm.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\tvar data ={\r\n\t\t\t\t\"WareHouseID\": vm.warehouseid,\r\n\t\t\t\t\"WarrantyType\": \"\",\r\n\t\t\t\t\"nonReturnTicketDefects\": vm.selectedData\r\n\t\t\t}\r\n\t\t\tNonReturnablePartConsumeListService.NonReturnTicketPartOrderPlace(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Return Challan has been created successfully\");\r\n\t\t\t\t\tvm.closeCreateChallanConfirmation();\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tvm.GetNonRefundablePartlist();\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\t}\r\n\t\t\r\n\r\nvm.OpenCreateChallanModel = function () {\r\n if (vm.selectedData.length === 0) {\r\n alert('Please select at least one item.');\r\n return;\r\n }\r\n vm.createchallan = $uibModal.open({\r\n templateUrl: 'CreateChallan.html',\r\n backdrop: 'static',\r\n scope: angular.extend($scope.$new(), { challanData: vm.selectedData })\r\n });\r\n};\r\n\r\n\r\n\t\tvm.closeCreateChallanConfirmation = function () {\r\n\t\t\tvm.createchallan.close();\r\n\t\t\tvm.selectedData = [];\r\n\t\t}\r\n\t\tvm.paymentstatusList = [];\r\n\t\tvm.GetNonRefundablePartlist = function () {\r\n\t\t\tNonReturnablePartConsumeListService.GetNonRefundablePartlist(vm.paymentstatus,vm.DateField,startDate,endDate,oPageIndex,oPageSize,vm.OrderBy,vm.SortType, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.paymentstatusList = resp.data.partResModels;\r\n\t\t\t\t\t$scope.TotalRecord = resp.data.count;\r\n\t\t\t\t\tif (vm.paymentstatusList.length < vm.allOrdersPageListCount)\r\n\t\t\t\t\t\tvm.orderListLength = $scope.TotalRecord;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.orderListLength = oPageIndex * vm.allOrdersPageListCount;\r\n\t\t\t\t\tif (oPageIndex == 1)\r\n\t\t\t\t\t\tvm.opageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.opageindexCount = (((oPageIndex - 1) * vm.allOrdersPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetNonRefundablePartlist();\r\n\r\n\t\tvm.MarkNonReturnPartDetails = function () {\r\n\t\t\tNonReturnablePartConsumeListService.MarkNonReturnPartDetails(vm.paymentmark, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Payment marked successfully.\");\r\n\t\t\t\t\tvm.closeMarkPaymentConfirmation();\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetNonRefundablePartlist();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.OpenNonReturnUploadModel = function () {\r\n\t\t\tvm.ReadyToRaiseModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ReadyToRaiseModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeReadyToRaiseModal = function () {\r\n\t\t\tvm.showPassed = false;\r\n\t\t\tvm.showErrors = false;\r\n\t\t\tvm.errorList = [];\r\n\t\t\tvm.ReadyToRaiseModal.close();\r\n\t\t}\r\n\t\tvm.GetNonRefundablePartlist_CSV = function () {\r\n\t\t\t// var data = {\r\n\t\t\t// \t\"Status\": vm.SelectedOrderStatus,\r\n\t\t\t// \t\"SearchText\": vm.searchTag,\r\n\t\t\t// \t\"StartDate\": startDate,\r\n\t\t\t// \t\"EndDate\": endDate,\r\n\t\t\t// \t\"PageIndex\": oPageIndex,\r\n\t\t\t// \t\"PageSize\": oPageSize\r\n\t\t\t// }\r\n\t\t\tNonReturnablePartConsumeListService.GetNonRefundablePartlist_CSV(vm.paymentstatus,vm.DateField,startDate,endDate,oPageIndex,oPageSize,vm.OrderBy,vm.SortType, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvar csvData = resp.data;\r\n\t\t\t\t\tvar blob = new Blob([csvData], { type: 'text/csv' });\r\n\t\t\t\t\tvar url = window.URL.createObjectURL(blob);\r\n\t\t\t\t\tvar a = document.createElement('a');\r\n\t\t\t\t\ta.href = url;\r\n\t\t\t\t\ta.download = 'All_Non_Returnable_Products_List.csv';\r\n\t\t\t\t\ta.click();\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.getProjects = function(customer){\r\n\t\t\tvm.projectList = customer.Projects;\r\n\t\t\tif(vm.projectList.length > 0){\r\n\t\t\t vm.selectedProject = vm.projectList[0];\r\n\t\t\t}\r\n\t\t }\r\n\t\t\r\n\t\t if (vm.bulkuploadType == 'cms') {\r\n\t\t\tvm.dzOptions = {\r\n\t\t\t paramName: 'photo',\r\n\t\t\t maxFilesize: '100',\r\n\t\t\t url: '/',\r\n\t\t\t acceptedFiles: '.zip',\r\n\t\t\t dictDefaultMessage: 'Click to add or drop files',\r\n\t\t\t dictRemoveFile: 'Remove'\r\n\t\t\t};\r\n\t\t } else {\r\n\t\t\tvm.dzOptions = {\r\n\t\t\t paramName: 'photo',\r\n\t\t\t maxFilesize: '100',\r\n\t\t\t url: '/',\r\n\t\t\t acceptedFiles: '.xlsx, .xls',\r\n\t\t\t dictDefaultMessage: 'Click to add or drop files',\r\n\t\t\t dictRemoveFile: 'Remove'\r\n\t\t\t};\r\n\t\t }\r\n\t\t\r\n\t\t vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n\t\t\t.withPaginationType('full_numbers').withDisplayLength(5).withOption('lengthMenu', [5, 10, 15, 20]);\r\n\t\t\r\n\t\t// vm.dtColumnDefs = [\r\n\t\t// \tDTColumnDefBuilder.newColumnDef(0).notSortable()\r\n\t\t// ];\r\n\t\t\r\n\t\t vm.loaderFlag = false;\r\n\t\t vm.hideLoader = function () {\r\n\t\t\tif (vm.loaderFlag) {\r\n\t\t\t $rootScope.$broadcast(\"loader_hide\");\r\n\t\t\t $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n\t\t\t $timeout(vm.hideLoader, 1);\r\n\t\t\t}\r\n\t\t }\r\n\t\t\r\n\t\t vm.scrollDwn = function () {\r\n\t\t\t$(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n\t\t\t// $location.hash('error_datatable');\r\n\t\t\t// $anchorScroll();\r\n\t\t }\r\n\t\t\r\n\t\t vm.dzCallbacks = {\r\n\t\t\t'addedfile': function (file) {\r\n\t\t\t vm.showErrors = false;\r\n\t\t\t vm.errorList = [];\r\n\t\t\t vm.UpdateErrorList = [];\r\n\t\t\t vm.disableUploadButton = true;\r\n\t\t\t vm.users = [];\r\n\t\t\r\n\t\t\t vm.customers = [];\r\n\t\t\t vm.tickets = [];\r\n\t\t\t vm.cms = [];\r\n\t\t\t $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n\t\t\t $(\".bulkupload-progress\").width(0);\r\n\t\t\t $(\".ajax-loader\").hide();\r\n\t\t\t vm.progressbar.reset();\r\n\t\t\t vm.progressbar.start();\r\n\t\t\t vm.showSuccess = false;\r\n\t\t\t vm.canceler = $q.defer();\r\n\t\t\t vm.successTitle = \"\";\r\n\t\t\t vm.successMsg = \"\";\r\n\t\t\t vm.noOfRecords = 0;\r\n\t\t\r\n\t\t\t var dropzoneChildren = $(\"#dropzone1\").children();\r\n\t\t\t $(\"#dropzone1\").empty();\r\n\t\t\t $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n\t\t\t $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\t\t\r\n\t\t\t vm.loaderFlag = true;\r\n\t\t\t vm.hideLoader();\r\n\t\t\t vm.file = file;\r\n\t\t\r\n\t\t\t var fd = new FormData();\r\n\t\t\t fd.append('file', file);\r\n\t\t\t if (vm.bulkuploadType != 'cms') {\r\n\t\t\t\tif (vm.updateType != 'UpdateS') {\r\n\t\t\t\t $http.post(ApiURL + '/api/BulkUpload/MediaUpload?reqUserId=' + loggedinUser + '&action=Create', fd, {\r\n\t\t\t\t transformRequest: angular.identity,\r\n\t\t\t\t headers: { 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser},\r\n\t\t\t\t timeout: vm.canceler.promise\r\n\t\t\t\t})\r\n\t\t\t\t .success(function (data) {\r\n\t\t\t\t\t$(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\tif (vm.bulkuploadType == 'user') {\r\n\t\t\t\t\t vm.users = data.Users;\r\n\t\t\t\t\t vm.noOfRecords = data.Users ? data.Users.length : 0;\r\n\t\t\t\t\t} else if (vm.bulkuploadType == 'customer') {\r\n\t\t\t\t\t vm.customers = data.Customers;\r\n\t\t\t\t\t vm.noOfRecords = data.Customers ? data.Customers.length : 0;\r\n\t\t\t\t\t} else if (vm.bulkuploadType == 'ticket') {\r\n\t\t\t\t\t vm.tickets = data.Tickets;\r\n\t\t\t\t\t vm.noOfRecords = data.Tickets ? data.Tickets.length : 0;\r\n\t\t\t\t\t}\r\n\t\t\r\n\t\t\t\t\t$(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n\t\t\t\t\tif (data.Errors.length > 0) {\r\n\t\t\t\t\t //console.log('data.Errors',data.Errors);\r\n\t\t\t\t\t vm.dtColumnDefs = [\r\n\t\t\t\t\t\tDTColumnDefBuilder.newColumnDef(0).notSortable()\r\n\t\t\t\t\t ];\r\n\t\t\t\t\t angular.forEach(data.Errors, function (v, k) {\r\n\t\t\r\n\t\t\t\t\t\tif (v.ItemErrors.length > 0) {\r\n\t\t\t\t\t\t var e1 = {};\r\n\t\t\t\t\t\t angular.forEach(v.ItemErrors, function (v1, k1) {\r\n\t\t\t\t\t\t\te1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n\t\t\t\t\t\t });\r\n\t\t\t\t\t\t if (v.Row > 0 && data.Users && data.Users.length > 0 && data.Users.length >= v.Row) {\r\n\t\t\t\t\t\t\te1.data = data.Users[v.Row - 1];\r\n\t\t\t\t\t\t } if (v.Row > 0 && data.Tickets && data.Tickets.length > 0 && data.Tickets.length >= v.Row) {\r\n\t\t\t\t\t\t\te1.data = data.Tickets[v.Row - 1];\r\n\t\t\t\t\t\t } if (v.Row > 0 && data.Customers && data.Customers.length > 0 && data.Customers.length >= v.Row) {\r\n\t\t\t\t\t\t\te1.data = data.Customers[v.Row - 1];\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t vm.errorList.push(e1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t });\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Invalid records!\";\r\n\t\t\t\t\t vm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t vm.showErrors = true;\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t} else if (data.ErrorCode == 103) {\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Missing columns in excel file\";\r\n\t\t\t\t\t vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t angular.forEach(data.MissingColumns, function (k, v) {\r\n\t\t\t\t\t\tvm.noMsg.push(k);\r\n\t\t\t\t\t });\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t} else if (data.Message && data.Message.length>0) {\r\n\t\t\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Validation failed\";\r\n\t\t\t\t\t vm.successMsg = data.Message\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t angular.forEach(data.MissingColumns, function (k, v) {\r\n\t\t\t\t\t\tvm.noMsg.push(k);\r\n\t\t\t\t\t });\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = false;\r\n\t\t\t\t\t vm.successTitle = \"Validation completed\";\r\n\t\t\t\t\t vm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are validated successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found. Please click on start upload button to proceed.\";\r\n\t\t\t\t\t // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t })\r\n\t\t\t\t .error(function (errorMessage) {\r\n\t\t\t\t\t$(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t\tvm.successTitle = \"Validation of records failed\";\r\n\t\t\t\t\tvm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t });\r\n\t\t\t\t}else if (vm.updateType == 'UpdateS'){\r\n\t\t\t\t //http://localhost:56749/api/BulkUpload/BulkUpdateLinkTickets?reqUserId=U310000000001\r\n\t\t\t\t $http.post(ApiURL + '/api/BulkUpload/BulkUpdateLinkTickets?reqUserId=' + loggedinUser, fd, {\r\n\t\t\t\t transformRequest: angular.identity,\r\n\t\t\t\t headers: { 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser },\r\n\t\t\t\t timeout: vm.canceler.promise\r\n\t\t\t\t})\r\n\t\t\t\t .success(function (data) {\r\n\t\t\t\t\t$(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\tif (vm.bulkuploadType == 'user') {\r\n\t\t\t\t\t vm.users = data.Users;\r\n\t\t\t\t\t vm.noOfRecords = data.Users ? data.Users.length : 0;\r\n\t\t\t\t\t} else if (vm.bulkuploadType == 'customer') {\r\n\t\t\t\t\t vm.customers = data.Customers;\r\n\t\t\t\t\t vm.noOfRecords = data.Customers ? data.Customers.length : 0;\r\n\t\t\t\t\t} else if (vm.bulkuploadType == 'ticket') {\r\n\t\t\t\t\t vm.tickets = data.Tickets;\r\n\t\t\t\t\t vm.noOfRecords = data.Tickets ? data.Tickets.length : 0;\r\n\t\t\t\t\t}\r\n\t\t\r\n\t\t\t\t\t$(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n\t\t\t\t\tif (data.Errors.length > 0) {\r\n\t\t\t\t\t vm.showErrors = true;\r\n\t\t\t\t\t // vm.dtColumnDefs = [];\r\n\t\t\t\t\t // for (var i = 0; i < data.Errors.length; i++) {\r\n\t\t\t\t\t // vm.dtColumnDefs.push(DTColumnDefBuilder.newColumnDef(i));\r\n\t\t\t\t\t // }\r\n\t\t\t\t\t vm.dtColumnDefs = [\r\n\t\t\t\t\t\tDTColumnDefBuilder.newColumnDef(0).notSortable()\r\n\t\t\t\t\t ];\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t angular.forEach(data.Errors, function (v, k) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//errObj.ItemErrors = [];\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif (v.ItemErrors.length>0) {\r\n\t\t\t\t\t\t angular.forEach(v.ItemErrors, function(d){\r\n\t\t\t\t\t\t\tvar errObj = {};\r\n\t\t\t\t\t\t\terrObj.TicketId = v.TicketId;\r\n\t\t\t\t\t\t\tif (d.ErrorMessage) {\r\n\t\t\t\t\t\t\t errObj.TestName = d.TemplateName;\r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t errObj.ParameterName = d.ItemName;\r\n\t\t\t\t\t\t\t errObj.Error = d.ErrorMessage;\r\n\t\t\t\t\t\t\t errObj.row = d.row;\r\n\t\t\t\t\t\t\t errObj.col = d.col;\r\n\t\t\t\t\t\t\t vm.UpdateErrorList.push(errObj);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t }) \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//vm.UpdateErrorList.push(errObj);\r\n\t\t\t\t\t\t//console.log('vm.UpdateErrorList',vm.UpdateErrorList);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t });\r\n\t\t\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Invalid records!\";\r\n\t\t\t\t\t vm.successMsg = \"There are \" + vm.UpdateErrorList.length + \" errors. To see them click here\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t vm.showErrors = true;\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t} else if (data.ErrorCode == 103) {\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Missing columns in excel file\";\r\n\t\t\t\t\t vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t angular.forEach(data.MissingColumns, function (k, v) {\r\n\t\t\t\t\t\tvm.noMsg.push(k);\r\n\t\t\t\t\t });\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t} else if (data.Message && data.Message.length>0) {\r\n\t\t\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Upload failed\";\r\n\t\t\t\t\t vm.successMsg = data.Message\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t angular.forEach(data.MissingColumns, function (k, v) {\r\n\t\t\t\t\t\tvm.noMsg.push(k);\r\n\t\t\t\t\t });\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = false;\r\n\t\t\t\t\t vm.successTitle = \"Upload completed\";\r\n\t\t\t\t\t vm.successMsg = \"All tickets have been uploaded successfully\";\r\n\t\t\t\t\t // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t })\r\n\t\t\t\t .error(function (errorMessage) {\r\n\t\t\t\t\t$(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t\tvm.showSuccess = true;\r\n\t\t\t\t\tvm.successTitle = \"Upload failed\";\r\n\t\t\t\t\tvm.successMsg = errorMessage.Message;\r\n\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t });\r\n\t\t\t\t}\r\n\t\t\t \r\n\t\t\t } else {\r\n\t\t\t\tvar url = verifyBulkPost.replace(\"{accountId}\", vm.userId);\r\n\t\t\t\t$http.post(url, fd, {\r\n\t\t\t\t transformRequest: angular.identity,\r\n\t\t\t\t headers: { 'Content-Type': undefined },\r\n\t\t\t\t timeout: vm.canceler.promise\r\n\t\t\t\t})\r\n\t\t\t\t .success(function (data) {\r\n\t\t\t\t\tif(data.errorCode==0 && data.result && data.result.success && data.result.success.length>0){\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = false;\r\n\t\t\t\t\t vm.successTitle = \"Validation completed\";\r\n\t\t\t\t\t vm.successMsg = \"CMS content is validated successfully. Please click on start upload button to proceed.\";\r\n\t\t\t\t\t // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\t\t\t vm.progressbar.complete();\r\n\t\t\r\n\t\t\t\t\t} else if(data.validationFlag==false && data.rowErrors){\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t vm.successTitle = \"Invalid records!\";\r\n\t\t\t\t\t vm.successMsg = \"There are \" + data.rowErrors.length + \" errors. To see them click here\";\r\n\t\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t\t vm.showErrors = true;\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t if (data.rowErrors.length > 0) {\r\n\t\t\t\t\t\tvm.dtColumnDefs = [\r\n\t\t\t\t\t\t DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n\t\t\t\t\t\t];\r\n\t\t\t\t\t\tangular.forEach(data.rowErrors, function (v, k) {\r\n\t\t\r\n\t\t\t\t\t\t if (v.error.length > 0) {\r\n\t\t\t\t\t\t\tvar e1 = {};\r\n\t\t\t\t\t\t\tangular.forEach(v.error, function (v1, k1) {\r\n\t\t\t\t\t\t\t e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1 : v1;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\te1.data=JSON.parse(v.content); \r\n\t\t\t\t\t\t\tvm.errorList.push(e1);\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t }\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t\t $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t\t vm.successTitle = \"Validation of records failed\";\r\n\t\t\t\t\t vm.successMsg = data.error+\". Please correct the data and re-upload file.\";\r\n\t\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t\t}\r\n\t\t\t\t })\r\n\t\t\t\t .error(function (errorMessage) {\r\n\t\t\t\t\tvm.showSuccess = true;\r\n\t\t\t\t\t$(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t\tvm.successTitle = \"Validation of records failed\";\r\n\t\t\t\t\tvm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t });\r\n\t\t\t }\r\n\t\t\t},\r\n\t\t\t'success': function (file, xhr) {\r\n\t\t\t},\r\n\t\t\t'error': function (file, errorMessage) {\r\n\t\t\t}\r\n\t\t };\r\n\t\t\r\n\t\t vm.addFiles = function () {\r\n\t\t\t$(\"#dropzone1\").trigger(\"click\");\r\n\t\t }\r\n\t\t\r\n\t\t vm.uploadFile = function () {\r\n\t\t\tif (vm.users && vm.users.length > 0) {\r\n\t\t\r\n\t\t\t vm.progressbar.reset();\r\n\t\t\t vm.progressbar.start();\r\n\t\t\r\n\t\t\t $http.post(ApiURL + '/api/User/' + loggedinUser + '/UploadUsers',\r\n\t\t\t\tvm.users, {\r\n\t\t\t\t headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser }\r\n\t\t\t\t})\r\n\t\t\t\t.success(function (data) {\r\n\t\t\t\t console.log(data);\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t vm.successTitle = \"Upload completed\";\r\n\t\t\t\t vm.successMsg = \"Users are created in bulk successfully\";\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t})\r\n\t\t\t\t.error(function (errorMessage) {\r\n\t\t\t\t console.log(errorMessage)\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.successTitle = \"Upload Failed\";\r\n\t\t\t\t vm.successMsg = errorMessage;\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t});\r\n\t\t\r\n\t\t\t} else if (vm.tickets && vm.tickets.length > 0) {\r\n\t\t\r\n\t\t\t vm.progressbar.reset();\r\n\t\t\t vm.progressbar.start();\r\n\t\t\t vm.disableUploadButton = true;\r\n\t\t\r\n\t\t\t $http.post(ApiURL + '/api/Ticket/{TicketRequestModels}/' + vm.userId + '/UploadTickets?action=Create',\r\n\t\t\t\tvm.tickets, {\r\n\t\t\t\t headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':vm.userId }\r\n\t\t\t\t})\r\n\t\t\t\t.success(function (data) {\r\n\t\t\t\t console.log(data);\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.disableUploadButton = true;\r\n\t\t\t\t vm.successTitle = \"Upload completed\";\r\n\t\t\t\t vm.successMsg = \"Jobs are created in bulk successfully\";\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t})\r\n\t\t\t\t.error(function (errorMessage) {\r\n\t\t\t\t console.log(errorMessage)\r\n\t\t\t\t vm.disableUploadButton = false;\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.successTitle = \"Upload Failed\";\r\n\t\t\t\t vm.successMsg = errorMessage;\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t});\r\n\t\t\r\n\t\t\t} else if (vm.customers && vm.customers.length > 0) {\r\n\t\t\r\n\t\t\t vm.progressbar.reset();\r\n\t\t\t vm.progressbar.start();\r\n\t\t\r\n\t\t\t $http.post(ApiURL + '/api/Customer/{objCustomerRequestModels}/' + vm.userId + '/UploadCustomers',\r\n\t\t\t\tvm.customers, {\r\n\t\t\t\t headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':vm.userId }\r\n\t\t\t\t})\r\n\t\t\t\t.success(function (data) {\r\n\t\t\t\t console.log(data);\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.successTitle = \"Upload completed\";\r\n\t\t\t\t vm.successMsg = \"Customers are created in bulk successfully\";\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t})\r\n\t\t\t\t.error(function (errorMessage) {\r\n\t\t\t\t console.log(errorMessage)\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.successTitle = \"Upload Failed\";\r\n\t\t\t\t vm.successMsg = errorMessage;\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t});\r\n\t\t\t} else if (vm.bulkuploadType == 'cms') {\r\n\t\t\t vm.progressbar.reset();\r\n\t\t\t vm.progressbar.start();\r\n\t\t\r\n\t\t\t var fd = new FormData();\r\n\t\t\t fd.append('file', vm.file);\r\n\t\t\t \r\n\t\t\t var url = addBulkPost.replace(\"{accountId}\", vm.userId).replace(\"{userId}\", vm.userId);\r\n\t\t\t $http.post(url, fd, {\r\n\t\t\t\ttransformRequest: angular.identity,\r\n\t\t\t\theaders: { 'Content-Type': undefined }\r\n\t\t\t })\r\n\t\t\t\t.success(function (data) {\r\n\t\t\t\t console.log(data);\r\n\t\t\t\t if (data.errorCode > 0) {\r\n\t\t\t\t\tvm.showSuccess = true;\r\n\t\t\t\t\tvm.successTitle = \"Upload Failed\";\r\n\t\t\t\t\tvm.successMsg = data.error;\r\n\t\t\t\t\tvm.noMsg = [];\r\n\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\r\n\t\t\t\t } else if (data.result && data.result.success) {\r\n\t\t\t\t\tvm.showSuccess = true;\r\n\t\t\t\t\tvm.successTitle = \"Upload completed\";\r\n\t\t\t\t\tvm.successMsg = \"Products are created in bulk successfully\";\r\n\t\t\t\t\tvm.noMsg = [];\r\n\t\t\t\t\t$(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t } else {\r\n\t\t\t\t\tvm.showSuccess = true;\r\n\t\t\t\t\tvm.successTitle = \"Upload Failed\";\r\n\t\t\t\t\tvm.successMsg = \"Technical problem\";\r\n\t\t\t\t\tvm.noMsg = [];\r\n\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t }\r\n\t\t\t\t})\r\n\t\t\t\t.error(function (errorMessage) {\r\n\t\t\t\t console.log(errorMessage)\r\n\t\t\t\t vm.showSuccess = true;\r\n\t\t\t\t vm.successTitle = \"Upload Failed\";\r\n\t\t\t\t vm.successMsg = errorMessage;\r\n\t\t\t\t vm.noMsg = [];\r\n\t\t\t\t $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t vm.progressbar.complete();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t }\r\n\t\t// vm.Acceptancemodel = function (requestDetails) {\r\n\t\t// \tvm.showPartDetails=false;\r\n\t\t// \tvm.AllRequestDetail = requestDetails;\r\n\t\t// \tvm.updateStatusModelOpen = $uibModal.open({\r\n\t\t// \t\ttemplateUrl: 'acceptancepopup.html',\r\n\t\t// \t\tbackdrop: 'static',\r\n\t\t// \t\tscope: $scope,\r\n\t\t// \t});\r\n\t\t// }\r\n\r\n\t\t// vm.CloseAcceptanceModel = function () {\r\n\t\t// \tvm.updateStatusModelOpen.close();\r\n\t\t// \tvm.DisableCreateButton(false);\r\n\t\t// \tvm.UpdateOrderStatus = \"\";\r\n\t\t// \tvm.TrackingLink = \"\";\r\n\t\t// \tvm.strPackageId = \"\";\r\n\t\t// \tvm.strPackageStatus = \"\";\r\n\t\t// \tvm.strPackageTrackingId = \"\";\r\n\t\t// \tvm.strShipmentId = \"\";\r\n\t\t// \tvm.PackageDetails = [];\r\n\t\t// \tvm.datePackedOn = moment().format(\"YYYY-MM-DD\");\r\n\t\t// }\r\n\r\n\t\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('NewOnboardingFlowService', function ($http, FreelancerURL,ActivityURL, ApiURL, PublicApiURL, IntegrationAPI) {\r\n\r\n\r\n this.SaveBackgroundChecks = function (data, files, files2, files3, token, loggedinUser) {\r\n var formdata = new FormData();\r\n formdata.append(\"FrontDocFile\", files[0]);\r\n formdata.append(\"BackDocFile\", files2[0]);\r\n formdata.append(\"ThirdPartyDocFile\", files3[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"BackgroundData\", followupdata);\r\n var url = ApiURL + '/api/Upload/UpdateBackgroundDoc';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.sendBoatLink = function (loggedinUser, mobileNo, skill, token, success, failure) {\r\n var url = PublicApiURL + '/api/TestSkill/SendSkillTestLink?reqUserId=' + loggedinUser + '&ContactNumber=' + mobileNo + '&skill=' + skill;\r\n $http.post(url, null, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(success, failure);\r\n }\r\n\r\n this.GetBasicDetailsWeb = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerRegistration/GetBasicDetailsWeb?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.UpdateUserProfileValidationData = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/UpdateUserProfileValidationData';\r\n return $http.put(url, data, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetWorkExperinceDataforGc = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetWorkExperinceDataforGc?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.GetBasicDetailsWebDynamic = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerRegistration/GetBasicDetailsWebDynamic?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.GetSkillDataAndLocationWeb = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerRegistration/GetSkillDataAndLocationWeb?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.GetInvitedTeamForRegistrationWeb = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerVendor/GetInvitedTeamForRegistrationWeb?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n } \r\n\r\n this.GetBankDetailsForUsers = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerVendor/GetBankDetailsForUsers?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n } \r\n\r\n this.GetBGverificationWeb = function (UserId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetBGverificationWeb?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n } \r\n\r\n this.SendCommunicationInvite = function (UserId,type,step,loggedinUser, token) { \r\n var url = ApiURL + '/api/Ticket/SendCommunicationInviteOnBoarding?UserId=' + UserId +'&Type=' + type +'&Step=' + step ;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n \r\n // this.GetBasicDetails = function (UserId, loggedinUser, token) {\r\n // var url = FreelancerURL + '/api/FreelancerRegistration/GetBasicDetailsWeb?UserId=' + UserId;\r\n // return $http.get(url, {\r\n // headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n // })\r\n // }\r\n\r\n this.SetUserStatusInActiveMode = function (userId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/SetUserStatusInActiveMode?UserId=' + userId;\r\n return $http.put(url, null, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n ////External Video Uploaad List\r\n this.UploadExternalVideoList = function (newdata, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetVideoKycData' ;\r\n return $http.put(url,newdata,{\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetAllActivitiesForUser = function (userId, loggedinUser, token) {\r\n var url = ActivityURL + '/api/Activity/GetAllActivitiesForUser?UserId=' + userId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UploadBGInteractionVideo = function (UserId,Rating, Feedback,FrontFileName, files, token, loggedinUser) {\r\n var formdata = new FormData();\r\n formdata.append(FrontFileName, files[0]);\r\n formdata.append(\"UserId\", UserId);\r\n formdata.append(\"Feedback\", Feedback);\r\n formdata.append(\"Rating\", Rating);\r\n var url = ApiURL + '/api/Upload/UploadBGInteractionVideo';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n this.ReTestForSkill = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/UserSkillTest/ReTestForSkill' ;\r\n return $http.put(url,data,{\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n})\nangular.module('inspinia').controller('NewOnboardingFlowController', function (NewOnboardingFlowService,AllUsersListService, $q, MainService, $filter, ReferService, FreelancerURL, $window, $location, $rootScope, $stateParams, $uibModal, $scope, $log, ImageUrl, $sce, toaster, $localStorage, $timeout, $state) {\r\n\r\n var vm = this;\r\n var UserId = $stateParams.UserId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n var token = $localStorage.token;\r\n vm.From = $localStorage.From;\r\n vm.ActiveFVT = $localStorage.ActiveFVT;\r\n vm.IsProfileActivationRights = $localStorage.IsProfileActivationRights;\r\n if (vm.From == 'FVT') {\r\n vm.dissableBankDetails = true;\r\n }\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n vm.ItemComment = \"\";\r\n vm.SectionName = \"\";\r\n vm.ItemStatus = \"\";\r\n vm.searchButtonText = 'Update';\r\n vm.dissbleUpdateButton = false;\r\n vm.disableRejectButton = false;\r\n vm.editmode = false;\r\n vm.RegisteredUser = '';\r\n vm.FirstName = '';\r\n vm.BGVerificationStatus = '';\r\n vm.isnonindeximage = \"\";\r\n vm.LastName = '';\r\n vm.MobileNo = '';\r\n vm.Email = '';\r\n vm.pdfimage = '';\r\n vm.DOB = moment();\r\n vm.Gender = '';\r\n vm.Designation = '';\r\n vm.Background = '';\r\n vm.PAN = '';\r\n vm.Aadhar = '';\r\n vm.AddressLine1 = '';\r\n vm.AddressLine2 = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.PermanentPincode = '';\r\n vm.BaseAddressLine1 = '';\r\n vm.BaseAddressLine2 = '';\r\n vm.AccountList = [];\r\n vm.AllAccountNames = [];\r\n vm.BaseState = '';\r\n vm.BaseCity = '';\r\n vm.BasePincode = '';\r\n vm.UserId = '';\r\n vm.DocumentType = '';\r\n vm.DocumentName = '';\r\n vm.UserType = '';\r\n vm.Picture = '';\r\n vm.RegistrationStatus = '';\r\n vm.UserInfoCheck = false;\r\n vm.UserLocationCheck = false;\r\n vm.UserDocumentCheck = false;\r\n vm.UserTraningCheck = false;\r\n vm.UserBankDetailsCheck = false;\r\n vm.UserAvailableAssestCheck = false;\r\n vm.ToolAuditFiles = [];\r\n vm.ThirdPartyDocs = [];\r\n vm.FilesBackDoc = [];\r\n vm.FilesFrontDoc = [];\r\n vm.BackFileName = \"\";\r\n vm.FrontFileName = \"\";\r\n vm.UserSkillCheck = false;\r\n vm.verifyAll = false;\r\n vm.Asset_Mobile = '';\r\n vm.Asset_Laptop = '';\r\n vm.Asset_Bike = '';\r\n vm.Asset_Tools = '';\r\n vm.Asset_ToolList = [];\r\n vm.Work_Location = [];\r\n vm.PreferredLocationList = [];\r\n vm.BGDocList = [];\r\n vm.disableActivateButton = false;\r\n vm.AccountName = '';\r\n vm.AllCertificateSets = [];\r\n vm.experienceYearList = [];\r\n vm.AllSkillSets = [];\r\n vm.DocprofileImg = [];\r\n vm.CertprofileImg = [];\r\n vm.SkillList = [];\r\n vm.QualificationList = [];\r\n vm.TrainingList = [];\r\n vm.addTraningCertificateName = '';\r\n vm.tempTCertificateFile = '';\r\n vm.addSkill = '';\r\n vm.addExprence = '';\r\n vm.pathtcertificate = '';\r\n vm.error = {};\r\n vm.CoverageDistance = '';\r\n vm.IsStudent = '';\r\n vm.IsOpenForInternship = '';\r\n vm.IsPanVerified = '';\r\n vm.IsAdharVerified = '';\r\n vm.Source = '';\r\n vm.CertificateNo = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.BankAccountNo = '';\r\n vm.BankIFSC = '';\r\n vm.AccountHolderName = '';\r\n vm.FEBankDetails = {};\r\n var currentIndex = 0;\r\n vm.InsuranceDetails = {};\r\n vm.ContractDocPath = '';\r\n vm.ContractSignDate = '';\r\n vm.ToolsDetailList = [];\r\n vm.PreviousCompanyDetailsList = [];\r\n vm.VerificationCertprofileImg = [];\r\n vm.Verificationpathtcertificate = '';\r\n vm.UserExperience = '';\r\n vm.CompanyName = '';\r\n vm.FatherName = '';\r\n var today = new Date();\r\n var date = today.getFullYear() - 18;\r\n var age = (today.getMonth() + 1 + \"/\" + today.getDate() + \"/\" + date).toString();\r\n vm.maxDOB = new Date(age);\r\n vm.maxDOBStr = vm.maxDOB.toDateString();\r\n age = Date.parse(age);\r\n\r\n vm.getPicUrl = function (pic) {\r\n\r\n return ImageUrl + \"/\" + pic;\r\n }\r\n vm.PDFView = function (page) {\r\n MainService.GetImageBlob(loggedinUser, token, page).then(function (resp) {\r\n\r\n vm.pdfimage = resp.data;\r\n });\r\n $scope.selected = null;\r\n $timeout(function () {\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }, 1000)\r\n\r\n }\r\n vm.PDFUserModal = function () {\r\n jobAppointmentModal.close();\r\n }\r\n $scope.checkPDF = function (path) {\r\n\r\n var pt = path.substr(path.length - 4);\r\n if (pt == '.pdf') {\r\n vm.error = function () {\r\n $(\".pdf\").attr({ \"target\": \"_blank\" })\r\n }\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n \r\n $scope.attachBackDoc = function(files){ \r\n vm.BackFileName=\"\";\r\n var file = files.files[0];\r\n vm.BackFileName=file.name; \r\n vm.FilesBackDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesBackDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n $scope.uploadBGFilenew = function(files){ \r\n vm.FrontFileName=\"\";\r\n var file = files.files[0];\r\n vm.FrontFileName=file.name; \r\n vm.FilesFrontDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesFrontDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n\r\n vm.changeFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n\r\n vm.changeCertificateFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n vm.VerificationchangeCertificateFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n $scope.uploadImageFile = function (files, type) {\r\n var file = files.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId + \"_ProfilePic_\" + rendomnumber + \".\" + file.name.split(\".\")[1];\r\n var file = new File([file], filename, { type: file.type });\r\n\r\n if (file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n NewOnboardingFlowService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm[type] = filename;\r\n vm.imageServices(filename);\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n }\r\n\r\n vm.imageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else {\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function () {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n\r\n }\r\n vm.DocumentimageServices = function (img, index) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n vm.DocprofileImg[index] = resp.data;\r\n\r\n });\r\n\r\n }\r\n vm.CertificateimageServices = function (cert, index) {\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function (resp) {\r\n vm.CertprofileImg[index] = resp.data;\r\n });\r\n }\r\n vm.UploadCertificateimageServices = function (cert) {\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function (resp) {\r\n vm.UploadCertprofileImg = resp.data;\r\n vm.isnonindeximage = \"1\";\r\n });\r\n }\r\n vm.VerificationCertificateimageServices = function (cert, index) {\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function (resp) {\r\n vm.VerificationCertprofileImg[index] = resp.data;\r\n });\r\n }\r\n vm.Verificationisnonindeximage = \"0\";\r\n vm.VerificationUploadCertificateimageServices = function (cert) {\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function (resp) {\r\n vm.VerificationUploadCertprofileImg = resp.data;\r\n vm.Verificationisnonindeximage = \"1\";\r\n alert(vm.VerificationUploadCertprofileImg);\r\n });\r\n }\r\n\r\n\r\n $scope.uploadCertificateFile = function (elem) {\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n // var doc = vm.BGDocList[index];\r\n var traning = vm.TrainingList[index];\r\n // vm.error[traning.CertificateName] = '';\r\n var file = elem.files[0];\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId + \"_TraningCertificate_\" + rendomnumber + \".\" + file.name.split(\".\")[1];\r\n var file = new File([file], filename, { type: file.type });\r\n\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n NewOnboardingFlowService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.pathtcertificate = filename;\r\n vm.UploadCertificateimageServices(filename);\r\n if (vm.pathtcertificate) {\r\n vm.tempCertificateAdd = false;\r\n }\r\n traning.TrainingCertificate = traning.TrainingCertificate = filename;\r\n traning.CertificateName = traning.CertificateName;\r\n\r\n traning.edit = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload certificate, server error\");\r\n });\r\n } else {\r\n vm.error[traning.CertificateName] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n\r\n\r\n\r\n vm.sendBoatLink = function (skill) {\r\n console.log(skill);\r\n NewOnboardingFlowService.sendBoatLink(loggedinUser, vm.MobileNo, skill, token, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess('Success', \"Successfully send link\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to send link, server error\");\r\n })\r\n }\r\n\r\n\r\n \r\n // New Onboarding Flow code start\r\n\r\n\r\n vm.UpdateValidationData = function () {\r\n var validationData = {\r\n \"UserId\": UserId,\r\n \"SectionName\": vm.SectionName,\r\n \"ItemName\": vm.fieldData.ItemName,\r\n \"ItemComment\": vm.ItemComment,\r\n \"ItemStatus\": vm.ItemStatus\r\n }\r\n vm.validationForm.submitted = true;\r\n if (vm.validationForm.$valid) {\r\n vm.disableRejectButton = true;\r\n NewOnboardingFlowService.UpdateUserProfileValidationData(validationData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.GetBasicDetailsDynamic();\r\n vm.GetSkillDataAndLocation();\r\n vm.GetBasicDetails();\r\n vm.GetBGverificationWeb();\r\n vm.GetAllActivitiesForUser();\r\n }, 2000);\r\n if(vm.IsApprovedModelOpen == true){\r\n vm.closeApprovalPopUp();\r\n }\r\n else if (vm.IsRejectModelOpen == true){\r\n vm.closeRejectionPopUp();\r\n } \r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n if(vm.IsApprovedModelOpen == true){\r\n vm.closeApprovalPopUp();\r\n }\r\n else if (vm.IsRejectModelOpen == true){\r\n vm.closeRejectionPopUp();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n vm.OpenRejectionPopUp = function (fieldData, Section) {\r\n vm.fieldData = fieldData;\r\n vm.IsRejectModelOpen = true;\r\n vm.ItemStatus = 'Rejected';\r\n vm.SectionName = Section;\r\n RejectionModel = $uibModal.open({\r\n templateUrl: 'rejectField_model.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.OpenApprovalPopUp = function (fieldData, Section) {\r\n vm.IsApprovedModelOpen = true;\r\n vm.fieldData = fieldData;\r\n vm.ItemStatus = 'Approved';\r\n vm.SectionName = Section;\r\n ApprovalModel = $uibModal.open({\r\n templateUrl: 'approveField_model.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.closeApprovalPopUp = function () {\r\n ApprovalModel.close();\r\n vm.ItemComment = \"\";\r\n vm.disableRejectButton = false;\r\n vm.IsApprovedModelOpen = false;\r\n }\r\n\r\n vm.closeRejectionPopUp = function () {\r\n RejectionModel.close();\r\n vm.ItemComment = \"\";\r\n vm.disableRejectButton = false;\r\n vm.IsRejectModelOpen = false;\r\n }\r\n\r\n\r\n vm.callToTechnician = function () { \r\n AllUsersListService.callToTechnicianApi(loggedinUser,UserId, token).then(function (resp) {\r\n if(resp.status == 200) {\r\n vm.showSuccess(\"Success\",\"Call Initiated\");\r\n }\r\n else {\r\n vm.showFailure(\"Failure\",resp.data.Message);\r\n } \r\n });\r\n \r\n }\r\n\r\n vm.SiteRescheduleAudit = function (index) {\r\n var data = {};\r\n data = {\r\n \"UserId\": UserId,\r\n \"docName\": vm.UserBGInfo[index].DocumentName,\r\n \"docType\": \"\",\r\n \"DocumentNo\": vm.UserBGInfo[index].DocumentNo,\r\n \"VerificationMode\": \"\",\r\n \"VerificationAuthority\": \"\",\r\n \"VerificationStatus\": \"\",\r\n \"ThirdPartyDocumentPath\": \"\"\r\n }\r\n\r\n NewOnboardingFlowService.SaveBackgroundChecks(data, vm.FilesFrontDoc, vm.FilesBackDoc, vm.ThirdPartyDocs, token, loggedinUser).then(function (res) {\r\n if (res && res.status == 201) {\r\n vm.data = \"\";\r\n vm.showSuccess(\"Success\", \"Document Uploaded Successfully.\");\r\n $timeout(function () {\r\n vm.GetBGverificationWeb();\r\n }, 2000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", \"Not Uploaded\");\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n });\r\n }\r\n\r\n\r\n vm.GetBasicDetails = function () {\r\n NewOnboardingFlowService.GetBasicDetailsWeb(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserBasicInfo = resp.data;\r\n vm.userProfileValidationData = vm.UserBasicInfo.userProfileValidationData;\r\n });\r\n }\r\n\r\n vm.GetBasicDetails();\r\n\r\n // vm.GetBasicDetailsList = function () {\r\n // OnBoardingFlowService.GetBasicDetails(UserId, loggedinUser, token).then(function (resp) {\r\n // vm.UserBasicInfo = resp.data;\r\n // });\r\n // }\r\n vm.GetBasicDetailsDynamic = function () {\r\n NewOnboardingFlowService.GetBasicDetailsWebDynamic(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserBasicInfoList = resp.data;\r\n });\r\n }\r\n\r\n vm.GetBasicDetailsDynamic();\r\n\r\n vm.GetWorkExperinceData = function () {\r\n NewOnboardingFlowService.GetWorkExperinceDataforGc(UserId, loggedinUser, token).then(function (resp) {\r\n vm.WorkExperienceInfo = resp.data;\r\n });\r\n }\r\n\r\n vm.GetSkillDataAndLocation = function () {\r\n NewOnboardingFlowService.GetSkillDataAndLocationWeb(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserSkillandLocationInfo = resp.data;\r\n });\r\n }\r\n\r\n vm.GetInvitedTeamForRegistration = function () {\r\n NewOnboardingFlowService.GetInvitedTeamForRegistrationWeb(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserInvitedTeamInfo = resp.data;\r\n });\r\n }\r\n\r\n vm.GetBankDetailsForUsers = function () {\r\n NewOnboardingFlowService.GetBankDetailsForUsers(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserBankInfo = resp.data;\r\n });\r\n }\r\n\r\n vm.GetBGverificationWeb = function () {\r\n NewOnboardingFlowService.GetBGverificationWeb(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserBGInfo = resp.data.userBGverificationValidationsData;\r\n });\r\n }\r\n \r\n\r\n\r\n vm.VideoUploadPopup = function () {\r\n VideoModel = $uibModal.open({\r\n templateUrl: 'videoupload_model.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n }, function () {\r\n });\r\n \r\n }\r\n\r\n vm.file = [];\r\n $scope.uploadVideoFile = function(files){\r\n \r\n vm.FrontFileName=\"\";\r\n vm.FilesFrontDoc = files.files;\r\n vm.FrontFileName = vm.FilesFrontDoc[0].name; \r\n vm.file.push(vm.FilesFrontDoc);\t\r\n var allowedExtensions = /(\\.mp4|\\.mov|\\.avi|\\.webm|\\.m4v|\\.mov|\\.qt)$/i; \r\n if(!allowedExtensions.exec(vm.FrontFileName)){\r\n vm.FilesFrontDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .mp4,.mov,.avi,.webm,.m4v,.mov,.qt only.');\r\n }\r\n }\r\n\r\n vm.VideoUploadPop = function () {\r\n VideoModel.close();\r\n $scope.skillrating = 0;\r\n vm.FeedbackRemarks = \"\";\r\n }\r\n\r\n $scope.stars = [1, 2, 3, 4, 5];\r\n $scope.skillrating = 0;\r\n \r\n $scope.setRating = function(rating) {\r\n $scope.skillrating = rating;\r\n };\r\n\r\n vm.UploadVideo = function () {\r\n var Feedback = vm.FeedbackRemarks;\r\n var Rating = $scope.skillrating;\r\n vm.disableuploadbutton = true;\r\n NewOnboardingFlowService.UploadBGInteractionVideo(UserId,Rating, Feedback,vm.FrontFileName, vm.FilesFrontDoc, token, loggedinUser).then(function (res) { \r\n if (res && res.status == 201) {\r\n vm.VideoUploadPop();\r\n vm.showSuccess(\"Success\", \"Video Uploaded Successfully.\");\r\n vm.disableuploadbutton = false;\r\n $timeout (function(){\r\n vm.ExternalUpload();\r\n },2000)\r\n \r\n } else if (res && res.data && res.data.Message) {\r\n vm.VideoUploadPop();\r\n vm.showFailure(\"Failed\", \"Not Uploaded\");\r\n vm.disableuploadbutton = false;\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n });\r\n }\r\n ///External Video List\r\n vm.ExternalUpload = function () {\r\n var newdata = {};\r\n newdata = {\r\n \"UserId\": UserId,\r\n \"Type\": \"\",\r\n \"skillName\": \"\"\r\n }\r\n NewOnboardingFlowService.UploadExternalVideoList(newdata, loggedinUser, token).then(function (resp) {\r\n vm.UploadVideoExternal = resp.data;\r\n });\r\n }\r\n\r\n \r\n\r\n\r\n vm.ReTestForSkill = function (skill) {\r\n var data = {};\r\n data = {\r\n \"UserId\": UserId,\r\n \"Skill\": skill \r\n }\r\n NewOnboardingFlowService.ReTestForSkill(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n\r\n \r\n vm.SetUserStatusInActiveMode = function () {\r\n vm.disableActivateButton = true;\r\n NewOnboardingFlowService.SetUserStatusInActiveMode(UserId,loggedinUser,token).then(function (res) {\r\n if (res && res.status == 200) {\r\n vm.showSuccess(\"Success\", res.data.Message);\r\n $timeout(function () {\r\n if(vm.loggedInUserRole == 'OnBoarding Manager' || vm.loggedInUserRole == 'SuperAdministrator' ){\r\n $state.go('index.AllUsersList', { reload: true });\r\n }\r\n else{\r\n $state.go('index.BGVerification', { reload: true });\r\n }\r\n \r\n }, 2000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n vm.disableActivateButton = false;\r\n });\r\n }\r\n\r\n vm.getImageDataFST = function (data) {\t\t\t\r\n\t\t\tif (data) {\r\n\t\t\t\treturn data;\r\n\t\t\t} else {\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n vm.videoCallEnabled = false;\r\n $scope.closeDiv = function() {\r\n vm.videoCallEnabled = false;\r\n };\r\n\r\n $scope.AudioCallInitiated = false;\r\n\t\t$scope.VideoCallInitiated = false;\r\n\t\t$scope.ChatInitiated = false;\r\n\r\n vm.SendCommunicationInvite = function (type,Step) {\t\r\n vm.videoCallEnabled = true;\t\t\r\n\t\t\tif($scope.AudioCallInitiated == false && type == 'Audio') {\r\n\t\t\t\tNewOnboardingFlowService.SendCommunicationInvite(UserId,type,Step,loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif(resp.status==200){\t\t\t\t\t\t\r\n\t\t\t\t\t\t{\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tvm.connectionLink = resp.data;\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Audio call request initiated\");\r\n\t\t\t\t\t\t\t// vm.PollVideoCallFieldLocation();\t\r\n\t\t\t\t\t\t\t$scope.AudioCallInitiated = true;\t\t\t\t\r\n\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t}\t\r\n\t\t\telse if($scope.VideoCallInitiated == false && type == 'Video') {\r\n\t\t\t\tNewOnboardingFlowService.SendCommunicationInvite(UserId,type,Step,loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif(resp.status==200){\t\t\t\t\t\t\r\n\t\t\t\t\t\t{\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tvm.connectionLink = resp.data;\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Video call request initiated\");\r\n\t\t\t\t\t\t\t// vm.PollVideoCallFieldLocation();\t\r\n\t\t\t\t\t\t\t$scope.VideoCallInitiated = true;\t\t\t\t\r\n\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\telse if($scope.ChatInitiated == false && type == 'Text') {\r\n\t\t\t\tNewOnboardingFlowService.SendCommunicationInvite(UserId,type,Step, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif(resp.status==200){\t\t\t\t\t\t\r\n\t\t\t\t\t\t{\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tvm.connectionLink = resp.data;\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Communication Request Initiated\");\r\n\t\t\t\t\t\t\t// vm.PollVideoCallFieldLocation();\t\r\n\t\t\t\t\t\t\t$scope.ChatInitiated = true;\t\t\t\t\r\n\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t}\t\t\r\n\t\t\t}\r\n\r\n vm.GetAllActivitiesForUser = function () {\r\n NewOnboardingFlowService.GetAllActivitiesForUser(UserId, loggedinUser, token).then(function (resp) {\r\n vm.UserActivityInfo = resp.data;\r\n });\r\n }\r\n vm.GetAllActivitiesForUser();\r\n\r\n }\r\n})\r\n\r\nfunction CheckRegExOnKeyPress(e) {\r\n\r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\,\\\\-\\\\/]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\r\nfunction CheckRegExOnKeyPressCertificate(e) {\r\n\r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\-\\\\\\\\]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\r\n\r\n\nangular.module('inspinia').service('NewTalentPoolService', function (FreelancerURL, ApiURL, LocationURL, PublicApiURL, $log, $http) {\r\n\r\n this.GetAllUsers = function (loggedinUser, token) {\r\n\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllUsers'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n this.getUserInfo = function (userId, loggedinUser, token) {\r\n var url = FreelancerURL + \"/api/FreeLancerUser/\" + userId + \"/\" + loggedinUser + \"/byUserId\";\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n // https://perf.mymobiforce.com/freelancerapi/api/FreelancerVendor/U400000000001/getallvendors\r\n this.GetAllVendors = function(loggedInUser,token){\r\n var url = FreelancerURL + '/api/FreelancerVendor/' + loggedInUser + '/getallvendors';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.GetFreelancerVendorsByFilters = function(loggedInUser,token){\r\n var url = ApiURL + '/api/Vendor/' + loggedInUser + '/VendorStatus/Active' + '/getfreelancervendorsbyfilters';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n //https://login.mymobiforce.com/freelancerapi/api/FreelancerRecharge/F00000000121/getrechargehistorybyself?StartDate=&EndDate=\r\n \r\n this.getFreelancerHistory = function (userId, token) {\r\n var url = FreelancerURL + \"/api/FreelancerRecharge/\" + userId + \"/getrechargehistorybyself?StartDate=&EndDate=\";\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':userId\r\n }\r\n });\r\n }\r\n\r\n \r\n// https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/GetFavoriteFreelancersByAccount/U400000000001\r\n this.getPreferredUser = function (userId, token) {\r\n var url = FreelancerURL + \"/api/FreeLancerUser/GetFavoriteFreelancersByAccount/\" + userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':userId\r\n }\r\n });\r\n }\r\n // https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/GetFavoriteFreelancersByAccount/U400000000001\r\n\r\n this.getPreferredVendor = function (userId, token) {\r\n var url = FreelancerURL + \"/api/FreelancerVendor/GetFavoriteFreelancerVendorsByAccount/\" + userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':userId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.getAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {\r\n headers: {'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n\r\n this.GetAllCircles = function (loggedinUser) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllCircles'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n\r\n this.updateUser = function (userFormData, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/PutUser';\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.GetVendorById = function(loggedInUser,vendorId, token){\r\n\t var url = ApiURL + '/api/Vendor/' + loggedInUser + '/' + vendorId + '/getvendorbyid';\r\n\t return $http.get(url,{\r\n\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\r\n this.uploadProfilePic = function (loggedinUser, data, token, success, failure) {\r\n $http.post(ApiURL + '/api/User/PostUserPic?reqUserId=' + loggedinUser, data, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n\r\n //http://localhost:50144/api/FreelancerAccount/F00000000000/F00000000106/getaccountbyfreelancerid\r\n this.GetFreelancerBalance = function (loggedinUser, freelancerId, token) {\r\n var url = FreelancerURL + '/api/FreelancerAccount/' + loggedinUser + '/' + freelancerId + '/getaccountbyfreelancerid';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n\r\n //https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/Block/U400000000001/F00000000106/false\r\n\r\n // this.GetSingleBlockedUser = function (loggedinUser, freelancerId, token) {\r\n // var url = FreelancerURL + '/api/FreeLancerUser/Block/' + loggedinUser + '/' + freelancerId + '/false';\r\n // return $http.get(url, {\r\n // headers: { 'Content-Type': 'application/json', 'Token': token }\r\n // });\r\n // }\r\n\r\n // https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/Block/U400000000001/F00000000664/true\r\n this.BlockedSingleUser = function(loggedinUser, userId, status, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Block/' + loggedinUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n//https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/Favorite/U400000000001/F00000000657/true\r\n \r\nthis.PreferredSingleUser = function(loggedinUser, userId, status, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Favorite/' + loggedinUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n}\r\n\r\n//https://perf.mymobiforce.com/freelancerapi/api/FreelancerVendor/Favorite/U400000000001/V00000000006/false\r\nthis.PreferredSingleVendor = function(loggedinUser, vendorId, status, token){\r\n var url = FreelancerURL + '/api/FreelancerVendor/Favorite/' + loggedinUser + '/'+ vendorId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n}\r\n\r\n//https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/Favorite/U400000000001/F00000000657/true\r\n \r\n// this.UnPreferredSingleUser = function(loggedinUser, userId, status, token){\r\n// var url = FreelancerURL + '/api/FreeLancerUser/Favorite/' + loggedinUser + '/'+ userId +'/'+status;\r\n// return $http.put(url, null, {\r\n// headers: { 'Content-Type': 'application/json', 'Token':token }\r\n// });\r\n// }\r\n\r\n//https://perf.mymobiforce.com/freelancerapi/api/FreelancerVendor/Block/U400000000001/V00000000013/false\r\nthis.BlockedVendor = function(loggedinUser, vendorId, status, token){\r\n var url = FreelancerURL + '/api/FreelancerVendor/Block/' + loggedinUser + '/'+ vendorId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n}\r\n\r\n\r\nthis.getAllState = function (userId,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':userId }\r\n });\r\n}\r\nthis.getCityByState = function (userId, state, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':userId }\r\n });\r\n}\r\n\r\nthis.getAllSkills = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers: {'Token': token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 200 && res.data){\r\n success(res.data);\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get skill list, server error.\")\r\n })\r\n}\r\nthis.GetAllCertificate = function(loggedinUser, token, success, failure){\r\n // var url = ApiURL + '/api/Cetrificate/GetAll?reqUserId=' + loggedinUser;\r\n var url = ApiURL + '/api/Cetrificate/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url,{headers:{'Token':token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 201 && res.data){\r\n success(res.data);\r\n }\r\n },function(err){\r\n failure(\"Failed\",\"Unable to get certificate list, server error.\");\r\n })\r\n}\r\n\r\nthis.GetAllToolSets = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/Tool/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url,{headers:{'Token':token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 201 && res.data){\r\n success(res.data);\r\n }\r\n },function(err){\r\n failure(\"Failed\",\"Unable to get certificate list, server error.\");\r\n })\r\n}\r\n \r\n//https://perf.mymobiforce.com/freelancerapi/api/FreelancerUser/FilterFrUsers?reqUserid=U400000000001\r\n\r\nthis.Filter = function ( loggedinUser, token,userFormData) {\r\n var url = FreelancerURL + \"/api/FreelancerUser/FilterFrUsers?reqUserid=\" + loggedinUser;\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n}\r\n})\r\n\nangular.module('inspinia').controller('NewTalentPoolController', function(toaster, UIURL, NewTalentPoolService, \r\n\t$state ,$localStorage, $filter ,$compile, $scope, DTOptionsBuilder, TeamFormCreationService, DTColumnDefBuilder, DTColumnBuilder, PublicApiURL, $log, \r\n\tHelpDeskCustomerViewService,ReferService, $stateParams, $uibModal, JobTicketViewService,$rootScope, NgMap, $q, $timeout, ImageUrl) {\r\n\tvm = this;\r\n\tvm.showAdvanceFilter = false;\r\n\tvm.CustomDateformat = $localStorage.CustomDateformat;\r\n\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar AccountID = $localStorage.accountConfig.AccountId;\r\n\tvar accountcreationDate = $localStorage.accountConfig.AccountCreationDate;\r\n\tvm.loggedInUser_Role=$localStorage.loggedInUser_Role;\r\n\tvm.Technicianstartingdate = '2017-01-01';\r\n\tvm.VendorStartingDate = '2017-01-01';\t\r\n\tvm.UserType=$stateParams.type?$stateParams.type:\"Technician\"; //$stateParams.type;\r\n\tvar token = $localStorage.token;\r\n\tvm.dtInstanceUser={};\r\n\tvm.dtInstancePreferredUserTable={};\r\n\t// vm.dtInstancePreferredUser={};\r\n\tvm.adddaterange=false;\r\n\tvm.vendoradddaterange=false;\r\n\tvm.dtInstanceVendor={};\r\n\tvm.dtInstancePreferredVendor={};\r\n\tvm.PreferredvendorListdata=[];\r\n\tvm.Bluserlist=[];\r\n\tvm.blockvendorlist=[];\r\n\tvm.showtechnician=true;\r\n\tvm.showvendor=false;\r\n\tvm.technicianlistview=true;\r\n\tvm.vendorlistview=true;\r\n\tvm.selectedInvoice = '';\r\n\tvm.users=[];\r\n\tvm.searchText = '';\r\n\tvm.PermanentState='';\r\n\tvm.VendorPermanentState='';\r\n\tvm.UserName='';\r\n\tvm.ContactNumber='';\r\n\tvm.VendorUserName='';\r\n\tvm.VendorContactNumber='';\r\n\tvm.StateList=[];\r\n\tvm.VendorStateList=[];\r\n\tvm.PermanentCity='';\r\n\tvm.VendorPermanentCity='';\r\n\tvm.CityList=[];\r\n\tvm.VendorCityList=[];\r\n\tvm.addSkill='';\r\n\tvm.VendoraddSkill='';\r\n\tvm.AllCertificateSets=[];\r\n\tvm.VendorAllCertificateSets=[];\r\n\tvm.addTraningCertificateName='';\r\n\tvm.Asset_Tools='';\r\n\tvm.VendorAsset_Tools='';\r\n\tvm.Asset_Bike=false;\r\n\tvm.Asset_Mobile=false;\r\n\tvm.Asset_Laptop=false;\r\n\tvm.Student=false;\r\n\tvm.Intern=false;\r\n\tvm.Prime=false;\r\n\tvm.VendorSource='';\r\n\tvm.Adharcard=false;\r\n\tvm.Pancard=false;\r\n\tvm.VendorAsset_Laptop=false;\r\n\tvm.VendorAsset_Mobile=false;\r\n\tvm.VendorAsset_Bike=false;\r\n\tvm.pincode=[];\r\n\tvm.AlredayPreferred = [];\r\n\tvm.Vendorpincode=[];\r\n\t\r\n\tvm.vendorListLength=0;\r\n\tvm.pageindexCount=0;\r\n\tvm.usersLength=0;\r\n\tvm.techpageindexCount=0;\r\n\tvm.selectedFreelancerUserRole=\"\";\r\n\tvar startDate = moment(vm.Technicianstartingdate).format(\"YYYY-MM-DD\");\r\n\tvar endDate = moment();\r\n\t$scope.dates = { startDate: startDate, endDate:endDate};\r\n\t$scope.ranges = {\r\n\t\t'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment(startDate), moment(endDate)],\r\n\t// 'Till now': [startDate ='', startDate ='']\r\n\t};\r\n\r\n\r\n\r\n\t\r\n\r\n$scope.dateRangeChange = function (ev, picker) {\r\n\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n};\r\n\r\n$scope.Vendordates = { startDate: startDate, endDate: endDate };\r\n$scope.Vendorranges = {\r\n\t'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now' :[moment(vm.VendorStartingDate), moment()]\r\n\t// 'Till now': [startDate ='01/01/01', moment(),]\r\n};\r\n$scope.dateRangeChange = function (ev, picker) {\r\n\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n};\r\n\r\nvm.City='';\r\nvm.Pincode='';\r\nvm.Experience='';\r\nvm.VendorExperience='';\r\nvm.Ratings='';\r\nvm.VendorRatings='';\r\nvm.Assets_Tools='';\r\nvm.Jobscount='';\r\nvm.VendorJobscount='';\r\nvm.FilterAdhar='';\r\nvm.FilterPancard='';\r\n$localStorage.filteraddskill ='';\r\n$localStorage.filterPermanentstate ='';\r\nvm.PreferredUsers=[];\r\nvm.vendorList=[];\r\nvm.PreferredVendors=[];\r\nif (!loggedinUser) {\r\n\t$state.go('Login', {\r\n\t\treload: true\r\n\t});\r\n} else {\r\n\r\n\tif($localStorage.TechnicianDetailsView =='TechnicianDetails'){\r\n\t\tvm.currentPage = $localStorage.PageIndex?$localStorage.PageIndex:1;\r\n\t}\r\n\telse{\r\n\t\tvm.currentPage = 1;\r\n\t}\r\n\r\n\tvm.currentPage = $localStorage.PageIndex?$localStorage.PageIndex:1;\r\n\tvm.pageSize = 20;\r\n\r\n\t$scope.totalUsers = 0;\r\n\t$scope.usersPerPage = 20; // this should match however many results your API puts on one page\r\n\t$scope.pagination = {\r\n\t\tcurrent: 1\r\n\t};\r\n\r\n\t$scope.pagination.current = $localStorage.PageIndex?$localStorage.PageIndex:1;\r\n\t$scope.totalTableUsers = 0;\r\n\t$scope.usersTablePerPage = 20; // this should match however many results your API puts on one page\r\n\t$scope.UserTablepagination = {\r\n\t\tcurrent: 1\r\n\t};\r\n\r\n\t$scope.UserTablepagination.current = $localStorage.PageIndex?$localStorage.PageIndex:1;\r\n\r\n\t$scope.totalvendor = 0;\r\n\t$scope.vendorPerPage = 20; // this should match however many results your API puts on one page\r\n\t$scope.vendorpagination = {\r\n\t\tcurrent: 1\r\n\t};\r\n\t$scope.vendorpagination.current = $localStorage.VendorPageIndex?$localStorage.VendorPageIndex:1;\r\n\r\n\t$scope.totalvendorTable = 0;\r\n\t$scope.vendorPerPageTable = 20; // this should match however many results your API puts on one page\r\n\t$scope.vendorpaginationTable = {\r\n\t\tcurrent: 1\r\n\t};\r\n\t$scope.vendorpaginationTable.current = $localStorage.VendorPageIndex?$localStorage.VendorPageIndex:1;\r\n\tif($localStorage.VendorDetailsView =='VendorDetails'){\r\n\t\tvm.VendorcurrentPage = $localStorage.VendorPageIndex?$localStorage.VendorPageIndex:1;\r\n\t\t\r\n\t}\r\n\telse{\r\n\t\tvm.VendorcurrentPage = 1;\r\n\t}\t\t\r\n\r\n\tvm.VendorpageSize = 20;\r\n\t$scope.pageChanged = function(newPage) {\r\n\t\tvm.currentPage = newPage;\r\n\t\tvm.applyfilter(newPage);\r\n\r\n\t};\r\n\r\n\t$scope.UserTablepageChanged = function(newPage) {\r\n\t\t\r\n\t\tvm.currentPage = newPage;\r\n\r\n\t\tvm.applyfilter(newPage,'');\r\n //vm.Allapplyfilter(newPage);\r\n };\r\n\r\n\r\n $scope.PreferredUserTablepageChanged = function(newPage) {\r\n\r\n\t\t// vm.GetAllUsers(newPage);\r\n\t\tvm.applyfilter(newPage);\r\n\r\n\t};\r\n\r\n\t$scope.vendorpageChanged = function(newPage) {\r\n\t\t// vm.GetAllUsers(newPage);\r\n\t\tvm.VendorcurrentPage = newPage;\r\n\t\tvm.Vendorapplyfilter(newPage);\r\n\r\n\t};\r\n\t$scope.VendorTablepageChanged = function(newPage) {\r\n\t\t// vm.GetAllUsers(newPage);\r\n\t\tvm.VendorcurrentPage = newPage;\r\n\t\tvm.Vendorapplyfilter(newPage);\r\n\r\n\t};\t\t\r\n\t\t\r\n\tvm.availableSearchParams = [\r\n\t{ key: \"TemplateName\", name: \"TemplateName\", placeholder: \"TemplateName...\" }\r\n // { key: \"city\", name: \"City\", placeholder: \"City...\" },\r\n // { key: \"country\", name: \"Country\", placeholder: \"Country...\" },\r\n // { key: \"emailAddress\", name: \"E-Mail\", placeholder: \"E-Mail...\", allowMultiple: true },\r\n // { key: \"job\", name: \"Job\", placeholder: \"Job...\" }\r\n ];\r\n\r\n vm.getPicUrl = function (profilePicName) {\r\n \treturn profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n\r\n vm.selectState = function (state) {\r\n \tvar Getstate = state;\r\n \tTeamFormCreationService.getCities(loggedinUser,Getstate,token).then(function (resp) {\r\n \t\tvm.cityList = resp.data;\r\n \t\tif (!resp.data) {\r\n \t\t\tvar cityArray = [];\r\n \t\t\tcityArray.push({\r\n \t\t\t\tcity: state\r\n \t\t\t});\r\n \t\t\tvm.cityList = cityArray;\r\n \t\t}\r\n \t}, function () {\r\n\r\n \t});\r\n }\r\n\r\n\r\n// vendor filter\r\n//vendor data form\r\nvm.AllVendorfilter = function (index) {\t\r\n\tif(index != undefined){\r\n\t\tif(index.includes(\":\"))\r\n\t\t{\r\n\t\t\tvar strKey = index.split(':')[0];\r\n\t\t\tif(strKey==\"Skill\")\r\n\t\t\t{ \r\n\t\t\t\tvm.VendoraddSkill='';\r\n\t\t\t\tvm.VendoraddSkill=[index.split(':')[1]];\r\n\t\t\t}\r\n\t\t\tif(strKey==\"State\")\r\n\t\t\t{\r\n\t\t\t\tvm.VendorPermanentState='';\r\n\t\t\t\tvm.VendorPermanentState=index.split(':')[1];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t$scope.Vendordates = { startDate: startDate, endDate: endDate };\r\n\tvm.vendoradddaterange=true;\r\n\t$scope.vendorpaginationTable.current=1;\r\n\tvm.pfvendorlist=[];\r\n\tvar temp = [];\r\n\tfor(var i=0;i0)\r\n\t\t\t\t{\r\n\t\t\t\t\tfor(var i=0; i 0){\r\n\t\t\t\t\t\t\t\tfor(var j=0;j 0) {\r\n\t\t\t\tvm.vendorList = resp.data;\r\n\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\r\n// vm.GetAllUsers();\r\nvm.getProfilePic = function (pic) {\r\n\treturn ImageUrl + \"/\" + pic;\r\n}\r\nvm.searchTable = function () {\r\n\tvm.dtInstance.DataTable.search(vm.searchText);\r\n\tvm.dtInstance.DataTable.search(vm.searchText).draw();\r\n};\r\n// start all user\r\n// vm.Bluserlist = [];\r\nvm.applyfilter = function (index, data) {\r\n\tvar userFormData ={};\r\n\tif(data){\r\n\t\tuserFormData=data;\r\n\t}else{\r\n\t\tvar temp = [];\r\n\t\tfor(var i=0;i0)\r\n\t\t\t {\r\n\t\t\t \tfor(var i=0; i 0){\r\n\t\t\t \t\t\t\tfor(var j=0;j0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tfor(var i=0; i 0){\r\n\t\t\t\t\t\t\t\t\t\tfor(var j=0;j0)\r\n\t\t\t{\r\n\t\t\t\tfor(var i=0; i 0){\r\n\t\t\t\t\t\t\tfor(var j=0;j0)\r\n\t\t\t{\r\n\t\t\t\tfor(var i=0; i 0){\r\n\t\t\t\t\t\t\tfor(var j=0;j (vm.TicketInfo.Courier[key] == null) && delete vm.TicketInfo.Courier[key]));\r\n\t\t\t\t\tif (vm.TicketInfo.Courier) {\r\n\t\t\t\t\t\tvm.SparePartAddress = (Object.values(vm.TicketInfo.Courier)).toString();\r\n\t\t\t\t\t\tvm.SpareTransportType = 'Courier';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else if (vm.TicketInfo.SpareTransportType == '1') {\r\n\t\t\t\t\t// var temp = Object.keys(vm.TicketInfo.PickUp).forEach((key) => (vm.TicketInfo.PickUp[key] == null) && delete vm.TicketInfo.PickUp[key]);\r\n\t\t\t\t\tclean(vm.TicketInfo.PickUp);\r\n\t\t\t\t\tvm.SparePartAddress = (Object.values(vm.TicketInfo.PickUp)).toString();\r\n\t\t\t\t\tvm.SpareTransportType = 'PickUp';\r\n\t\t\t\t} else if (vm.TicketInfo.SpareTransportType == '2') {\r\n\t\t\t\t\tclean(vm.TicketInfo.PickUpDrop.PickUp);\r\n\t\t\t\t\t// var temp = Object.keys(vm.TicketInfo.PickUpDrop.PickUp).forEach((key) => (vm.TicketInfo.PickUpDrop.PickUp[key] == null) && delete vm.TicketInfo.PickUpDrop.PickUp[key]);\r\n\t\t\t\t\tvm.SparePartAddress = (Object.values(vm.TicketInfo.PickUpDrop.PickUp)).toString();\r\n\t\t\t\t\tvm.SpareTransportType = 'PickUpDrop';\r\n\t\t\t\t\tvm.SparePartDropAddress = vm.TicketInfo.PickUpDrop.Address1 + ',' + vm.TicketInfo.PickUpDrop.Address2 + ',' + vm.TicketInfo.PickUpDrop.State + ',' + vm.TicketInfo.PickUpDrop.City + ',' + vm.TicketInfo.PickUpDrop.Pincode;\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.TicketInfo.Template == 'VSAT Troubleshooting' || vm.TicketInfo.Template == 'LeaseLine Troubleshooting') {\r\n\t\t\t\t\t// vm.GetStatusActivityInPie();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.TicketInfo.LinkId) {\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.getAllActivitiesForJob();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tangular.copy(vm.TicketInfo.TemplateModel, vm.TemplateData);\r\n\r\n\t\t\t\tfor (var index = 0; index < vm.TemplateData.SectionList.length; index++) {\t\t\t\t\t\r\n\t\t\t\t\tif (vm.TemplateData.SectionList[index].Action == 'Supervisor' && vm.TemplateData.SectionList[index].SectionName == 'Supervisor') {\r\n\t\t\t\t\t\tvm.SuperVisorData = vm.TemplateData.SectionList[index].ItemList;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//ListFieldSupportTeam \r\n\t\t\t\tfor (var index = 0; index < vm.TicketInfo.ListFieldSupportTeam.length; index++) {\t\t\t\t\t\r\n\t\t\t\t\tif (vm.TicketInfo.ListFieldSupportTeam.length >= 0 ) {\r\n\t\t\t\t\t\tvm.ListOfSupportTeam = vm.TicketInfo.ListFieldSupportTeam;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvm.getCallTypeList(vm.TicketInfo.JobType, vm.SuperVisorData);\r\n\t\t\t\tvm.ListActionWise = SeperateSectionAndItems(vm.TemplateData.SectionList, 'Action');\r\n\r\n\t\t\t\t\r\n\t\t\t\tvm.TicketInfoEdit = {\r\n\t\t\t\t\tConsumerName: vm.TicketInfo.ConsumerName,\r\n\t\t\t\t\tConsumerContact: vm.TicketInfo.ConsumerContact,\r\n\t\t\t\t\tAddress1: vm.TicketInfo.Address1,\r\n\t\t\t\t\tAddress2: vm.TicketInfo.Address2,\r\n\t\t\t\t\tPincode: vm.TicketInfo.Pincode,\r\n\t\t\t\t\tStartTime: vm.TicketInfo.StartTime,\r\n\t\t\t\t\tEndTime: vm.TicketInfo.EndTime\r\n\t\t\t\t}\r\n\t\t\t\tvm.getAllStates();\r\n\t\t\t\tif (vm.TicketInfo.State) {\r\n\t\t\t\t\tvm.getCities(vm.TicketInfo.State);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tjobDetailsService.getTemplateByName(vm.TicketInfo.Template, token, loggedinUser, function (data) {\r\n\t\t\t\t\tvm.templateData = data;\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t\tvm.TechnicianSource = vm.TicketInfo.TechnicianSource ? vm.TicketInfo.TechnicianSource : vm.TechnicianSource = '';\r\n\r\n\t\t\t\tvm.showPrefer = 'fixed';\r\n\t\t\t\t// \tvm.GetFixedUser(false);\r\n\t\t\t\t// \tvm.GetNearByUser(false);\r\n\t\t\t\t// vm.GetPreviousWorker(false);\r\n\t\t\t\t// vm.GetTalentPoolUser(false);\r\n\r\n\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.disabledDrop = true;\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.TicketInfo.MetrialDeliverStatus) {\r\n\t\t\t\t\tvm.SelectedMaterial = vm.TicketInfo.MetrialDeliverStatus;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.TechnicianSource == '0' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'fixed';\r\n\t\t\t\t\tvm.showF = true;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetFixedUser(false);\r\n\t\t\t\t} else if (vm.TechnicianSource == '1' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'nearBy';\r\n\t\t\t\t\tvm.showF = false;\r\n\t\t\t\t\tvm.showN = true;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetNearByUser(false);\r\n\t\t\t\t} else if (vm.TechnicianSource == '2' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'true';\r\n\t\t\t\t\tvm.showF = false;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = true;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetTalentPoolUser(true);\r\n\t\t\t\t} else if (vm.TechnicianSource == '3' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'previous';\r\n\t\t\t\t\tvm.showF = false;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = true;\r\n\t\t\t\t\tvm.GetPreviousWorker(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.showF = true;\r\n\t\t\t\t\tvm.showN = true;\r\n\t\t\t\t\tvm.showT = true;\r\n\t\t\t\t\tvm.showP = true;\r\n\t\t\t\t\tvm.GetFixedUser(false);\r\n\t\t\t\t\tvm.GetNearByUser(false);\r\n\t\t\t\t\tvm.GetPreviousWorker(false);\r\n\t\t\t\t\tvm.GetTalentPoolUser(false);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif($localStorage.loggedInUser_Role == 'Vendor Manager'){\r\n\t\t\t\t\tvm.showPrefer = 'fixed';\r\n\t\t\t\t\tvm.showF = true;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetFixedUser(true);\r\n\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t\r\n\t\tvm.getTicketByJobId();\r\n\r\n\t\tvm.addClassInButton = function () {\r\n\t\t\tif (vm.TechnicianSource && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$('#btnFixedTeam').addClass('activeButton');\r\n\t\t\t\t\t$('#btnNearBy').addClass('activeButton');\r\n\t\t\t\t\t$('#btnTalent').addClass('activeButton');\r\n\t\t\t\t\t$('#btnPrefer').addClass('activeButton');\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.planerDateModal = {};\r\n\t\tvm.editplanCloser = function () {\r\n\t\t\tvm.TicketInfoEdit['PlannedClosureDate'] = vm.TicketInfo.PlannedClosureDate;\r\n\t\t\tvm.planerDateModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editplanerDate.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeplanerDate = function () {\r\n\t\t\tvm.planerDateModal.close();\r\n\t\t}\r\n\r\n\t\tvm.updatePlannedClosure = function () {\r\n\t\t\t\tvm.PlannedClosureticketList = [];\r\n\t\t\t\tvm.PlannedClosureticketList.push(vm.TicketInfo.TicketId);\r\n\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"TicketIds\":vm.PlannedClosureticketList,\r\n\t\t\t\t\t \"TicketPlannedClosureDate\": moment(vm.TicketInfoEdit.PlannedClosureDate).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n\t\t\t\t\t \"IsWithInDays\":vm.IsWithInDays == 'first'?true:false,\r\n \t\t\t\t\t \"WithInDays\": vm.WithInDays,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tjobDetailsService.updatePlannedClosure(loggedinUser, data, token, function (res) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", res);\r\n\t\t\t\t\tvm.planerDateModal.close();\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.jobAddressModal = {};\r\n\t\tvm.editJobAddress = function () {\r\n\r\n\t\t\tvm.TicketInfoEdit['ConsumerName'] = vm.TicketInfo.ConsumerName;\r\n\t\t\tvm.TicketInfoEdit['ConsumerContact'] = vm.TicketInfo.ConsumerContact;\r\n\t\t\tvm.TicketInfoEdit['Address1'] = vm.TicketInfo.Address1;\r\n\t\t\tvm.TicketInfoEdit['Address2'] = vm.TicketInfo.Address2;\r\n\t\t\tvm.TicketInfoEdit['Pincode'] = vm.TicketInfo.Pincode;\r\n\t\t\tvm.TicketInfoEdit['StartTime'] = vm.TicketInfo.StartTime;\r\n\t\t\tvm.TicketInfoEdit['EndTime'] = vm.TicketInfo.EndTime;\r\n\t\t\tvm.TicketInfoEdit['Region'] = vm.TicketInfo.Region;\r\n\t\t\tvm.TicketInfoEdit['SubRegion'] = vm.TicketInfo.SubRegion;\r\n\r\n\t\t\tif (vm.states && !vm.TicketInfoEdit.State || vm.TicketInfoEdit.State != vm.TicketInfo.State) {\r\n\t\t\t\tangular.forEach(vm.states, function (s) {\r\n\t\t\t\t\tif (s == vm.TicketInfo.State) {\r\n\t\t\t\t\t\tvm.TicketInfoEdit.State = s;\r\n\t\t\t\t\t\tvm.getCities(vm.TicketInfo.State);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvm.jobAddressModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAddress.html',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\twindowClass: 'schedulerModal'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeJobAddress = function () {\r\n\t\t\tvm.jobAddressModal.close();\r\n\t\t}\r\n\r\n\t\tvm.updateJobAddress = function () {\r\n\t\t\tvm.jobAddressForm.submitted = true;\r\n\t\t\tif (vm.jobAddressForm.$valid) {\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"ConsumerContact\": vm.TicketInfoEdit.ConsumerContact,\r\n\t\t\t\t\t\"Address1\": vm.TicketInfoEdit.Address1,\r\n\t\t\t\t\t\"Address2\": vm.TicketInfoEdit.Address2,\r\n\t\t\t\t\t\"ConsumerName\": vm.TicketInfoEdit.ConsumerName,\r\n\t\t\t\t\t\"State\": vm.TicketInfoEdit.State,\r\n\t\t\t\t\t\"City\": vm.TicketInfoEdit.City,\r\n\t\t\t\t\t\"Pincode\": vm.TicketInfoEdit.Pincode,\r\n\t\t\t\t\t\"StartTime\": vm.TicketInfoEdit.StartTime,\r\n\t\t\t\t\t\"EndTime\": vm.TicketInfoEdit.EndTime,\r\n\t\t\t\t\t\"Region\": vm.TicketInfo.Region,\r\n\t\t\t\t\t\"SubRegion\": vm.TicketInfo.SubRegion,\r\n\r\n\t\t\t\t};\r\n\r\n\t\t\t\tjobDetailsService.saveTicket(loggedinUser, vm.TicketInfo.TicketId, data, token, function (res) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", res);\r\n\t\t\t\t\tvm.jobAddressModal.close();\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t//window.location.reload(true);\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log(\"invalid values\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//call customer or freelancer\r\n\t\tvm.callToCustomer = function (TicketId,ConnectTo) { \r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"ConnectTo\": ConnectTo,\r\n\t\t\t\t\t\"TicketId\": TicketId\r\n\t\t\t\t\t};\r\n\t\t\t\tjobDetailsService.callToCustomer(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t});\r\n\t\t\t\r\n\t\t}\r\n\t\tvm.jobPayment = {};\r\n\t\tvm.editJobPayment = function () {\t\t\r\n\t\t\tvm.TicketInfoEdit['FreelancerRate'] = vm.TicketInfo.FreelancerRate;\r\n\t\t\tvm.TicketInfoEdit['MobiforceCommission'] = vm.TicketInfo.MobiforceCommission;\r\n\t\t\tvm.TicketInfoEdit['BroadcastRate'] = vm.TicketInfo.BroadcastRate;\t\t\t\r\n\t\t\tvm.serviceType=vm.TicketInfo.PaymentType;\t\t\t\r\n\t\t\tvm.jobPaymentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobPayment.html',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\twindowClass: 'schedulerModal'\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tvm.calculatePrice();\r\n\t\t\tvm.calculateFreelancerPrice ();\r\n\t\t}\r\n\r\n\t\tvm.closeJobPayment = function () {\r\n\t\t\tvm.jobPaymentModal.close();\r\n\t\t}\r\n\t\tvm.updateJobPayment = function () {\r\n\t\t\t\r\n\t\t\tvm.jobPaymentForm.submitted = true;\r\n\t\t\tif (vm.jobPaymentForm.$valid) {\r\n\t\t\t\t// var data = {\r\n\t\t\t\t// \t\"FreelancerRate\": vm.TicketInfoEdit.FreelancerRate,\r\n\t\t\t\t// \t\"BroadcastRate\": vm.TicketInfoEdit.BroadcastRate,\r\n\t\t\t\t// \t\"BroadcastGrossRate\": (vm.TicketInfoEdit.BroadcastRate * ((vm.GSTPercentange+100)*.01))\t\t\t\r\n\t\t\t\t// };\r\n\t\t\t\tjobDetailsService.UpdateJobPayment(loggedinUser, vm.TicketInfo.TicketId, vm.TicketInfoEdit.BroadcastRate, token, function (res) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", res);\r\n\t\t\t\t\tvm.jobPaymentModal.close();\r\n\t\t\t\t\t//window.location.reload(true);\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t} else {\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.getAllStates = function () {\r\n\t\t\tjobDetailsService.getAllState(loggedinUser,token).then(function (resp) {\r\n\t\t\t\tvm.states = resp.data;\r\n\t\t\t\tangular.forEach(vm.states, function (s) {\r\n\t\t\t\t\tif (s == vm.TicketInfo.State) {\r\n\t\t\t\t\t\tvm.TicketInfoEdit.State = s;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.getCities = function (state) {\r\n\t\t\tif (state != \"\" && state.length > 0) {\r\n\t\t\t\tvm.cities = [];\r\n\t\t\t\tjobDetailsService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n\t\t\t\t\tvm.cities = resp.data;\r\n\t\t\t\t\tangular.forEach(vm.cities, function (c) {\r\n\t\t\t\t\t\tif (vm.TicketInfo.City) {\r\n\t\t\t\t\t\t\tvar city = vm.TicketInfo.City.toUpperCase();\r\n\t\t\t\t\t\t\tif (c == city) {\r\n\t\t\t\t\t\t\t\tvm.TicketInfoEdit.City = c;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.history = {};\r\n\t\tvm.getHistory = function () {\r\n\t\t\tjobDetailsService.getHistory(vm.TicketId, token).then(function (res) {\r\n\t\t\t\tvm.history = res.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.getHistory();\r\n\r\n\t\tvm.getAllActivitiesForJob = function () {\r\n\t\t\tjobDetailsService.getAllActivitiesForJob(vm.TicketId, loggedinUser, token, function (data) {\r\n\t\t\t\tvm.statusTracker = data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.jobAppointmentModal = {};\r\n\t\tvm.editJobAppointment = function () {\r\n\t\t\tvm.TicketInfoEdit['ConsumerName'] = vm.TicketInfo.ConsumerName;\r\n\t\t\tvm.TicketInfoEdit['ConsumerContact'] = vm.TicketInfo.ConsumerContact;\r\n\t\t\tvm.TicketInfoEdit['Address1'] = vm.TicketInfo.Address1;\r\n\t\t\tvm.TicketInfoEdit['Address2'] = vm.TicketInfo.Address2;\r\n\t\t\tvm.TicketInfoEdit['Pincode'] = vm.TicketInfo.Pincode;\r\n\t\t\tvm.TicketInfoEdit['StartTime'] = new Date(vm.TicketInfo.StartTime);\r\n\t\t\tvm.TicketInfoEdit['EndTime'] = new Date(vm.TicketInfo.EndTime);\r\n\r\n\t\t\tif (vm.states && !vm.TicketInfoEdit.State || vm.TicketInfoEdit.State != vm.TicketInfo.State) {\r\n\t\t\t\tangular.forEach(vm.states, function (s) {\r\n\t\t\t\t\tif (s == vm.TicketInfo.State) {\r\n\t\t\t\t\t\tvm.TicketInfoEdit.State = s;\r\n\t\t\t\t\t\tvm.getCities(vm.TicketInfo.State);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAppointment.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeJobAppointment = function () {\r\n\t\t\tvm.jobAppointmentModal.close();\r\n\t\t}\r\n\r\n\t\tvm.updateJobAppointment = function () {\r\n\t\t\t\r\n\t\t\tvm.jobAppointmentForm.submitted = true;\r\n\t\t\tif (vm.jobAppointmentForm.$valid) {\t\t\t\t\t\r\n\t\t\t\tif(moment(vm.TicketInfoEdit.StartTime)._i <= moment(vm.TicketInfoEdit.EndTime)._i){\r\n\t\t\t\t\tvar sDate = moment(vm.TicketInfoEdit.StartTime).format(\"DD-MM-YYYY HH:mm\");\r\n\t\t\t\t\tvar eDate = moment(vm.TicketInfoEdit.EndTime).format(\"DD-MM-YYYY HH:mm\");\r\n\t\t\t\t\tvm.Stdate = sDate;\r\n\t\t\t\t\tvm.Etdate = eDate;\r\n\r\n\t\t\t\t\tjobDetailsService.updateStartTime(vm.TicketInfo.TicketId, loggedinUser, vm.Stdate, vm.Etdate, token, function (res) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Start time updated successfully\");\r\n\t\t\t\t\t\tvm.jobAppointmentModal.close();\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t}, vm.showFailure);\r\n\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tvm.showFailure('Failed','End date should be greater than Start date or time!');\r\n\t\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tvm.showFailure('Failed', 'Start and End date should be greater than current date or time!');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.UpdateMatrialStatus = function(MetrialDeliveredStatus){\r\n\t\t\tif(MetrialDeliveredStatus){\r\n\t\t\t\tjobDetailsService.UpdateMetrialDeliveredStatus(vm.TicketInfo.TicketId,loggedinUser,MetrialDeliveredStatus,token,function(res){\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Matrial Delivered Status updated successfully\");\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t},vm.showFailure);\r\n\t\t\t}else{\r\n\t\t\t\tvm.showFailure(\"Failed\",\"Please select matrial delivred status\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.getReadableTime = function (time) {\r\n\t\t\tvm.timeDisplay = \"\";\r\n\t\t\tif (typeof time == \"string\") {\r\n\t\t\t\tvm.timeDisplay = $filter('date')(new Date(time), \"yyyy/MM/dd h:mm:ss a\");\r\n\t\t\t}\r\n\t\t\tif (typeof time == \"object\") {\r\n\t\t\t\tvm.timeDisplay = time.format(\"DD/MMM/YY LTS\");\r\n\t\t\t}\r\n\t\t\treturn vm.timeDisplay;\r\n\t\t}\r\n\r\n\t\tvm.isUpdatePermission = function () {\r\n\t\t\tif (vm.VerticalName == 'Spectro Labs') {\r\n\t\t\t\tif (accountConfig && accountConfig.MenuListModel) {\r\n\t\t\t\t\tfor (var i = 0; i < accountConfig.MenuListModel.length; i++) {\r\n\t\t\t\t\t\tif (accountConfig.MenuListModel[i].MenuName == \"Jobs\") {\r\n\t\t\t\t\t\t\tfor (var j = 0; j < accountConfig.MenuListModel[i].SubMenusList.length; j++) {\r\n\t\t\t\t\t\t\t\tif (accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == \"All Tickets\") {\r\n\t\t\t\t\t\t\t\t\treturn accountConfig.MenuListModel[i].SubMenusList[j].UpdatePermission.split(\",\").indexOf($localStorage.loggedInUser_Role) >= 0;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (accountConfig && accountConfig.MenuListModel) {\r\n\t\t\t\t\tfor (var i = 0; i < accountConfig.MenuListModel.length; i++) {\r\n\t\t\t\t\t\tif (accountConfig.MenuListModel[i].MenuName == \"Jobs\") {\r\n\t\t\t\t\t\t\tfor (var j = 0; j < accountConfig.MenuListModel[i].SubMenusList.length; j++) {\r\n\t\t\t\t\t\t\t\tif (accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == \"All Jobs\") {\r\n\t\t\t\t\t\t\t\t\treturn accountConfig.MenuListModel[i].SubMenusList[j].UpdatePermission.split(\",\").indexOf($localStorage.loggedInUser_Role) >= 0;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvm.getDropDownOptions = function (SectionName, ItemName) {\r\n\t\t\tvar options = [];\r\n\t\t\tif (vm.templateData && vm.templateData.SectionList) {\r\n\t\t\t\tangular.forEach(vm.templateData.SectionList, function (l) {\r\n\t\t\t\t\tif (l.SectionName == SectionName && l.ItemList && l.ItemList.length > 0) {\r\n\t\t\t\t\t\tangular.forEach(l.ItemList, function (item) {\r\n\t\t\t\t\t\t\tif (item.ItemName == ItemName && item.ItemType == \"Dropdown Type\" && item.field_options && item.field_options.options && item.field_options.options.length > 0) {\r\n\t\t\t\t\t\t\t\t//$log.log(\"item.field_options.options\", item.field_options.options);\r\n\t\t\t\t\t\t\t\toptions = item.field_options.options;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\treturn options;\r\n\t\t}\r\n\r\n\t\tvm.getDropDownOptionsForCheckboxList = function (SectionName, ItemName) {\r\n\t\t\tvar options = [];\r\n\t\t\tif (vm.templateData && vm.templateData.SectionList) {\r\n\t\t\t\tangular.forEach(vm.templateData.SectionList, function (l) {\r\n\t\t\t\t\tif (l.SectionName == SectionName && l.ItemList && l.ItemList.length > 0) {\r\n\t\t\t\t\t\tangular.forEach(l.ItemList, function (item) {\r\n\t\t\t\t\t\t\tif (item.ItemName == ItemName && item.ItemType == \"CheckBoxList DropDown Type\" && item.field_options && item.field_options.options && item.field_options.options.length > 0) {\r\n\t\t\t\t\t\t\t\t//$log.log(\"item.field_options.options\", item.field_options.options);\r\n\t\t\t\t\t\t\t\toptions = item.field_options.options;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\treturn options;\r\n\t\t}\r\n\r\n\t\t //download PDF \r\n\t\t vm.downloadReportPDF = function (ticketId) { \r\n\t\t\tif (vm.TicketInfo.OnSiteReport != null) { \r\n\t\t\t var urlWithFeasible = PublicApiURL + '/api/Report/GeneratePdfOnSiteReportForMultipleTickets?TicketIds=' + ticketId;\r\n\t\t\t $window.open(urlWithFeasible, '_blank')\r\n\t\t\t} else {\r\n\t\t\t// var urlForNonFeasible = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + ticketId;\r\n\t\t\t// $window.open(urlForNonFeasible, '_blank')\r\n\t\t\tvm.downloadOnSiteReport();\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t}\r\n\t\t }\r\n\r\n\t\t vm.pdfimage = \"\";\r\n\t\t\tvm.DocumentAvailableMessage=\"\";\t\r\n\t\t\tvm.downloadOnSiteReport = function (previewSelectedObj) { \r\n\t\t\t\tvm.PDFViewRport();\r\n\t\t\t\r\n\t\t\t\tvar PreviewConsolidatedInvoiceList = previewSelectedObj;\r\n\t\t\t\tjobDetailsService.downloadOnSiteReport(loggedinUser, token, vm.TicketInfo.TicketId).then(function (resp) {\r\n\t\t\t\t\t// var responseDataList=[];\r\n\t\t\t\t\tvm.responseDataList = resp.data;\r\n\t\t\t\t\t// for(var i=0; i';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Date Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t+ '';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Multiple Picture Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t+ '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Signature Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t+ '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'File Attachment Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t// + ''\r\n\t\t\t\t\t\t + '
'\r\n\t\t\t\t\t\t+ '
Click here to upload PDF
'\r\n\t\t\t\t\t\t+ '


Click here to upload PDF
'\r\n\t\t\t\t\t\t //+ '
Click here to upload pdf';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'CheckBoxList DropDown Type':\r\n\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Video Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t+''\r\n\t\t\t\t\t\t+'';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Character FilteredTextBoxField':\r\n\t\t\t\tcase 'Bigger Textbox':\r\n\t\t\t\tcase 'Edit Enabled':\r\n\t\t\t\tcase 'Phone Type':\r\n\t\t\t\tcase 'Decimal TextBox Type':\r\n\t\t\t\tcase 'Numeric FilteredTextBoxField':\r\n\t\t\t\tcase 'Instruction Type':\r\n\t\t\t\tcase 'Scan Barcode Type':\r\n\t\t\t\tcase 'Email':\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn vm.PlottedItem;\r\n\t\t}\r\n\r\n\r\n\t\tvm.UpdateStep = function () {\r\n\r\n\t\t\tvar formData = new FormData();\r\n\r\n\t\t\tfor (var ticketmodelIndex = 0; ticketmodelIndex < vm.TicketInfo.TemplateModel.SectionList.length; ticketmodelIndex++) {\r\n\t\t\t\tvar Action = vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].Action;\r\n\t\t\t\tvar section = vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].SectionName;\r\n\t\t\t\tif (Action == currentStepName) {\r\n\t\t\t\t\tfor (var currentModalIndex = 0; currentModalIndex < vm.ModalActionWithValuesList.SectionList.length; currentModalIndex++) {\r\n\t\t\t\t\t\tif (section == vm.ModalActionWithValuesList.SectionList[currentModalIndex].SectionName) {\r\n\r\n\t\t\t\t\t\t\tvm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].ItemList = vm.ModalActionWithValuesList.SectionList[currentModalIndex].ItemList;\r\n\t\t\t\t\t\t\tangular.forEach(vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].ItemList, function (item) {\r\n\t\t\t\t\t\t\t\tif (item.ItemType == 'Date Type') {\r\n\r\n\t\t\t\t\t\t\t\t\titem.ItemValue = moment(item.ItemValue).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\telse if (item.ItemType == 'CheckBoxList DropDown Type') {\r\n\t\t\t\t\t\t\t\t\titem.field_options.options = [];\r\n\t\t\t\t\t\t\t\t\tif (item.ItemValues && item.ItemValues.length > 0) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < item.ItemValues.length; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar obj = { \"label\": item.ItemValues[i] };\r\n\t\t\t\t\t\t\t\t\t\t\t// obj.push()\r\n\t\t\t\t\t\t\t\t\t\t\titem.field_options.options.push(obj);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t//item.field_options.options.push(item.ItemValue);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if (item.ItemType == 'Multiple Picture Type' || item.ItemType == 'Signature Type' || item.ItemType == 'File Attachment Type' || item.ItemType == 'Video Type') {\r\n\t\t\t\t\t\t\t\t\tif (vm.ImageArray[section + '_' + item.ItemName]) {\r\n\t\t\t\t\t\t\t\t\t\tvm.ImageArray[section + '_' + item.ItemName].name = vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t\t\titem.ItemValue = vm.TicketInfo.TicketId + '_' + Math.random().toString(36).substring(7) + new Date().getTime() + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t\t\titem.ImageName = item.ItemValue;\r\n\t\t\t\t\t\t\t\t\t\tformData.append(vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name, vm.ImageArray[section + '_' + item.ItemName], item.ImageName);\r\n\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// else if (item.ItemType == 'Video Type') { \r\n\t\t\t\t\t\t\t\t// \tif (vm.ImageArray[section + '_' + item.ItemName]) {\r\n\t\t\t\t\t\t\t\t// \t\tvm.ImageArray[section + '_' + item.ItemName].name = vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t// \t\titem.ItemValue = vm.TicketInfo.TicketId + '_' + Math.random().toString(36).substring(7) + new Date().getTime() + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t// \t\titem.ImageName = item.ItemValue;\r\n\t\t\t\t\t\t\t\t// \t\tformData.append(vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name, vm.ImageArray[section + '_' + item.ItemName], item.ImageName);\r\n\r\n\t\t\t\t\t\t\t\t// \t}\r\n\r\n\t\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tticketEditModalInstance.close();\r\n\t\t\tformData.append('reqUserId', loggedinUser)\r\n\t\t\t//var data = angular.toJson(vm.TicketInfo);\r\n\t\t\tvar data = JSON.stringify(vm.TicketInfo);\r\n\t\t\tformData.append(\"TicketRequestModel\", data);\r\n\t\t\tjobDetailsService.updateJobTicketwithImage(formData, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 202 || resp.status == 200) {\r\n\t\t\t\t\t$timeout(function(){\t\r\n\t\t\t\t\t\ttoaster.pop({\r\n\t\t\t\t\t\t\ttype: 'success',\r\n\t\t\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\t\t\tbody: 'Job has been successfully updated',\r\n\t\t\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\tvm.getTicketByJobId();\t\t\t\t\t\t\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t\tfor (var sectionIndex = 0; sectionIndex < vm.currentStepModel.SectionList.length; sectionIndex++) {\r\n\t\t\t\t\t\tfor (var itemIndex = 0; itemIndex < vm.currentStepModel.SectionList[sectionIndex].ItemList.length; itemIndex++) {\r\n\t\t\t\t\t\t\tvar beforeChangeItem = vm.currentStepModel.SectionList[sectionIndex].ItemList[itemIndex].ItemValue;\r\n\t\t\t\t\t\t\tvar afterChangeItem = vm.ModalActionWithValuesList.SectionList[sectionIndex].ItemList[itemIndex].ItemValue;\r\n\t\t\t\t\t\t\tif (beforeChangeItem != afterChangeItem) {\r\n\t\t\t\t\t\t\t\tvm.currentStepModel.SectionList[sectionIndex].ItemList[itemIndex].ItemValue = afterChangeItem;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\t\t\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttoaster.pop({\r\n\t\t\t\t\t\ttype: 'error',\r\n\t\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\t\tbody: 'Job has not been updated',\r\n\t\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\ttoaster.pop({\r\n\t\t\t\t\ttype: 'error',\r\n\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\tbody: 'server error',\r\n\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tvm.getImageData = function (data) {\t\t\t\r\n\t\t\tif (data) {\r\n\t\t\t\t// console.log(data);\r\n\t\t\t\treturn data;\r\n\t\t\t} else {\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//\r\n\t\tvm.getImageDataFST = function (data) {\t\t\t\r\n\t\t\tif (data) {\r\n\t\t\t\t// console.log(data);\r\n\t\t\t\treturn data;\r\n\t\t\t} else {\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.getPdfExist = function (name) {\t\t\t\r\n\t\t\tif(name==null)\t\t\t\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\telse\r\n\t\t\t\treturn name;\t\t\t\r\n\t\t// \telse{\r\n // var strPdf = name.includes(\".pdf\")\t\t\r\n\t\t// \tif (strPdf) {\t\t\t\t\r\n\t\t// \t\t//return \"../assets/images/patterns/pdf.png\";\r\n\t\t// \t} else {\r\n\t\t// \t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t// \t}\r\n\t\t// }\r\n\t\t}\r\n\t\tvm.PlotItemSectionAndActionWise = function (itemType) {\r\n\t\t\tvm.PlottedItem = '';\r\n\t\t\tswitch (itemType) {\r\n\t\t\t\tcase 'Multiple Picture Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t// '
' +\r\n\t\t\t\t\t\t// '
';\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'\"image-1\"' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// Added by Vikash on demand of salman sir after confirming by jitendra sir\r\n\t\t\t\tcase 'Draw Layout Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t// '
' +\r\n\t\t\t\t\t\t// '
';\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'\"image-1\"' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Signature Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'\"image-1\"' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// \r\n\t\t\t\t// \"image-1\"\r\n\t\t\t\t// \r\n\t\t\t\tcase 'File Attachment Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Video Type':\r\n\t\t\t\t\tvm.PlottedItem = '

{{plotItem.ItemName}}.*

' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'
';\r\n\r\n\t\t\t\t\t//vm.PlottedItem = '';\r\n\t\t\t\t\t\t// vm.PlottedItem = '';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'CheckBoxList DropDown Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'{{itemOption.label}}
';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Date Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'{{plotItem.ItemValue | date}}
';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Character FilteredTextBoxField':\r\n\t\t\t\tcase 'Bigger Textbox':\r\n\t\t\t\tcase 'Dropdown Type':\r\n\t\t\t\tcase 'Edit Enabled':\r\n\t\t\t\tcase 'Phone Type':\r\n\t\t\t\tcase 'Decimal TextBox Type':\r\n\t\t\t\tcase 'Numeric FilteredTextBoxField':\r\n\t\t\t\tcase 'Instruction Type':\r\n\t\t\t\tcase 'Scan Barcode Type':\r\n\t\t\t\tcase 'Email':\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'

'\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn vm.PlottedItem;\r\n\t\t}\r\n\r\n\r\n\t\tvm.getCallTypeList = function (jobType, callType) {\r\n\t\t\tvm.CallTypeItemList = [];\r\n\t\t\tif (jobType == 'VSAT') {\r\n\t\t\t\tif (callType[0].ItemValue == 'Maintenance') {\r\n\t\t\t\t\tvm.CallTypeList = [\"IDU replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"ODU replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"LNBC replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"IFL cable replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"LNA replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Feed replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Antenna replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Connector replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"After antenna alignment Vsat made up and working\",\r\n\t\t\t\t\t\t\"Power issue resolved at customer premises. Vsat has come up and working\",\r\n\t\t\t\t\t\t\"UPS issue has been resolved at customer end. Vsat has come up and working\",\r\n\t\t\t\t\t\t\"Earthing issue has been resolved at customer end. Vsat has come up and working\",\r\n\t\t\t\t\t\t\"After powering ON the equipments. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Hardware rebooted. Vsat made up\",\r\n\t\t\t\t\t\t\"Monkey cage issue resolved. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Installation') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Installation and activation has been done. Vsat is up and working\",\r\n\t\t\t\t\t\t\"Installation done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Shifting') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Shifting of Vsat completed from old premises to new premises\",\r\n\t\t\t\t\t\t\"Shifting of Vsat completed from existing floor to new floor in the same premises\",\r\n\t\t\t\t\t\t\"Shifting of IDU/ODU completed\",\r\n\t\t\t\t\t\t\"Shifting done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t} else if (jobType == 'LeaseLine') {\r\n\t\t\t\tif (callType[0].ItemValue == 'LLM') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Local lead issue has been resolved. Link is up and working\",\r\n\t\t\t\t\t\t\"UG Cable cut restored. Link is up and working\",\r\n\t\t\t\t\t\t\"OFC cut has been restored. Link came up and working\",\r\n\t\t\t\t\t\t\"Mux issue has been resolved. Link has come up and working\",\r\n\t\t\t\t\t\t\"MPLS trunk issue has been resolved. Link is up and working\",\r\n\t\t\t\t\t\t\"NIB routing issue has been resolved. Links are up and working\",\r\n\t\t\t\t\t\t\"Major media failure has been resolved. Links came up and working\",\r\n\t\t\t\t\t\t\"BSNL hardware issue has been resolved. Link is up and working\",\r\n\t\t\t\t\t\t\"Router replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"Switch replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"MLLN modem replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"conventional modem replaced. Link made up\",\r\n\t\t\t\t\t\t\"HWIC card replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"Serial cable replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"OFC media has been restored. Link is up and working\",\r\n\t\t\t\t\t\t\"BSNL wiring issue resolved in the exchange. Link is up and working\",\r\n\t\t\t\t\t\t\"Customer's modem has been replaced. Link is up\",\r\n\t\t\t\t\t\t\"Customer's router has been replaced. Link made up\",\r\n\t\t\t\t\t\t\"No issue found in the link. Customer saying up\",\r\n\t\t\t\t\t\t\"High utilization due to which getting slow connectivity\",\r\n\t\t\t\t\t\t\"LAN issue resolved. Customer is getting connectivity\",\r\n\t\t\t\t\t\t\"PCM issue resolved. Link has come up\",\r\n\t\t\t\t\t\t\"Mux channel issue resolved. Link has come up.\",\r\n\t\t\t\t\t\t\"Routing issue b/w MTNL & BSNL has been resolved. Link has come up\",\r\n\t\t\t\t\t\t\"Power issue resolved in the exchange. Link has come up and working\",\r\n\t\t\t\t\t\t\"UPS issue has been resolved at customer end. Link has come up and working\",\r\n\t\t\t\t\t\t\"Earthing issue has been resolved at customer end. Link has come up and working\",\r\n\t\t\t\t\t\t\"After powering ON the equipments Link made up and working\",\r\n\t\t\t\t\t\t\"Hardware rebooted. Link made up.\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'LLP') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Commissioning done after PCM/Channal wiring done\",\r\n\t\t\t\t\t\t\"Commissioning done after replacing MLLN modem\",\r\n\t\t\t\t\t\t\"Commissioning done after completion of MPLS end configuration\",\r\n\t\t\t\t\t\t\"Commissioning done after OFC media preparation\",\r\n\t\t\t\t\t\t\"Commissioning done after allocation of channel\",\r\n\t\t\t\t\t\t\"Commissioning done after replacing router/card\",\r\n\t\t\t\t\t\t\"Commissioning done after replacing serial cable\",\r\n\t\t\t\t\t\t\"Commissioning done after configuring the CE router\",\r\n\t\t\t\t\t\t\"Commissioning done after media preparation b/w MTNL & BSNL\",\r\n\t\t\t\t\t\t\"Commissioning done after installation of new local lead\",\r\n\t\t\t\t\t\t\"Commissioning done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Upgration') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Upgradation done after PCM/Channal wiring done\",\r\n\t\t\t\t\t\t\"Upgradation done after replacing MLLN modem\",\r\n\t\t\t\t\t\t\"Upgradation done after completion of MPLS end configuration\",\r\n\t\t\t\t\t\t\"Upgradation done after OFC media preparation\",\r\n\t\t\t\t\t\t\"Upgradation done after allocation of channel\",\r\n\t\t\t\t\t\t\"Upgradation done after replacing router/card\",\r\n\t\t\t\t\t\t\"Upgradation done after replacing serial cable\",\r\n\t\t\t\t\t\t\"Upgradation done after configuring the CE router\",\r\n\t\t\t\t\t\t\"Upgradation done after media preparation b/w MTNL & BSNL\",\r\n\t\t\t\t\t\t\"Upgradation done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Shifting') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Shifting of link completed from old premises to new premises\",\r\n\t\t\t\t\t\t\"Shifting of link completed from existing floor to new floor in the same premises\",\r\n\t\t\t\t\t\t\"Shifting of exchange completed\",\r\n\t\t\t\t\t\t\"Shifting done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Installation & Configuration of Device') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Router installed. Link made up and working\",\r\n\t\t\t\t\t\t\"Switch installed. Link made up and working\",\r\n\t\t\t\t\t\t\"HWIC card installed. Link made up and working\",\r\n\t\t\t\t\t\t\"Serial cable installed. Link made up and working\",\r\n\t\t\t\t\t\t\"MLLN modem installed. Link made up and working\",\r\n\t\t\t\t\t\t\"Router/MLLN modem/switch installed at customer end\",\r\n\t\t\t\t\t\t\"UPS installed at customer end. Link made up and working\",\r\n\t\t\t\t\t\t\"Installation done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// vm.showFixed = true;\r\n\t\tvm.DistanceFixed = '10';\r\n\t\tvm.starFixed = '5';\r\n\t\tvm.DistanceNearBy = '10';\r\n\t\tvm.starNearBy = '5';\r\n\t\tvm.Distance = '10';\r\n\t\tvm.DistancePre = '10';\r\n\t\tvm.star = '5';\r\n\t\tvm.showNearByTable = false;\r\n\t\tvm.model = {};\r\n\t\tvm.model = [{ \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\": \"Field Engineer\" },\r\n\t\t{ \"key\": 2, \"Role\": \"Field Engineer\", \"userType\": \"Freelancer\", \"Value\": \"Freelancer\" },\r\n\t\t{ \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Fixed Team\", \"Value\": \"Vendor\" },\r\n\t\t{ \"key\": 4, \"Role\": \"Vendor Manager\", \"userType\": \"Freelancer\", \"Value\": \"Freelancer\" }];\r\n\r\n\t\tvm.GetFixedUser = function (reload) {\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Fixed Team\" });\r\n\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 3, \"OrderByField\": \"UserDistance\" });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": parseInt(vm.DistanceFixed) * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\t\t\tjobDetailsService.GetSchedulingEvaluationResult(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.FixedUserList = resp.data.users;\r\n\t\t\t\tvm.FixedUserLength = vm.FixedUserList.length;\r\n\t\t\t\t\r\n\t\t\t\tvm.CreateFixedUserTable();\r\n\t\t\t\tif (reload) {\r\n\t\t\t\t\tvm.reloadDataFixed();\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\t\tvm.CreateFixedUserTable = function () {\r\n\t\t\tvm.headerCompiledFixed = false;\r\n\t\t\t// vm.dtInstanceFixed = {};\r\n\t\t\tvm.showFixedTable = 'Fixed';\r\n\t\t\tvm.showFixed = true;\r\n\t\t\tvm.selectedFixed = {};\r\n\t\t\tvm.toggleOneFixed = toggleOneFixed;\r\n\t\t\tvm.selectAllFixed = false;\r\n\t\t\tvm.toggleAllFixed = toggleAllFixed;\r\n\t\t\tvar temp = false;\r\n\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\ttemp = true;\r\n\t\t\t}\r\n\r\n\t\t\t// var titleHtmlFixed = '';\r\n\t\t\tvm.dtOptionsFixed = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tdefer.resolve(vm.FixedUserList);\r\n\t\t\t\treturn defer.promise;\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompiledFixed) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompiledFixed = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.withBootstrap();\r\n\r\n\r\n\t\t\tvm.dtColumnsFixed = [\r\n\t\t\t\t\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif($localStorage.loggedInUser_Role == 'Vendor Manager'){\r\n\t\t\t\t\t\t\ttemp = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(vm.TicketInfo.UserName != '' && vm.TicketInfo.UserName != null){\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus == 'Completed'){\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('userType').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t})\r\n\r\n\t\t\t];\r\n\r\n\t\t\tfunction toggleAllFixed(selectAll, selectedItems) {\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOneFixed(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\t\t\t// \t\t\t\tif(vm.selectSingleFixed){\r\n\t\t\t// \t\t\t\t\tvm.selectAllFixed = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSingleFixed = false;\r\n\t\t\t// \t\t\t\t\treturn;\r\n\t\t\t// \t\t\t\t}\r\n\r\n\t\t\t// \t\t\t\tvm.selectAllFixed = false;\r\n\t\t\t// \t\t\t\tvm.selectSingleFixed = true;\r\n\t\t\t// \t\t\t\treturn;\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t\tvm.selectSingleFixed = false;\r\n\t\t\t// \t\t}\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAllFixed = true;\r\n\t\t\t// }\r\n\r\n\t\t\tfunction toggleOneFixed(selectedItems) {\r\n\t\t\t\tvm.selectAllFixed = false;\r\n\t\t\t\tvm.selectSingleFixed = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSingleFixed = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\t\tvm.NearByUserList = [];\r\n\r\n\t\tvm.GetNearByUser = function (reload) {\r\n\r\n\t\t\tvm.headerCompiledNearBy = false;\r\n\t\t\t// vm.NearByUserList = [];\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 0, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserDistance\" });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"IsComplianceDisable\": vm.ComplianceDisable,\r\n\t\t\t\t\"RangeFromJob\": parseInt(vm.DistanceNearBy) * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser,\r\n\t\t\t};\r\n\t\t\tjobDetailsService.GetSchedulingEvaluationResult(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.NearByUserList = resp.data.users;\r\n\t\t\t\tvm.NearByUserLength = vm.NearByUserList.length;\r\n\t\t\t\t\r\n\t\t\t\tvm.CreateNearByTable();\r\n\t\t\t\tif (reload) {\r\n\t\t\t\t\tvm.reloadData();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.selectSingleNearBy = false;\r\n\t\tvm.CreateNearByTable = function () {\r\n\t\t\tvm.headerCompiledNearBy = false;\r\n\t\t\tvm.showNearByTable = 'showNear';\r\n\t\t\tvm.selectedNearBy = {};\r\n\t\t\tvm.toggleOneNearBy = toggleOneNearBy;\r\n\t\t\t// vm.dtInstanceNearBy = {};\r\n\t\t\tvm.selectAllNearBy = false;\r\n\t\t\tvm.toggleAllNearBy = toggleAllNearBy;\r\n\t\t\tvar temp = false;\r\n\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t// \ttemp = true;\r\n\t\t\t// }\r\n\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\tvar titleHtmlNearBy = '';\r\n\t\t\tvm.dtOptionsNearBy = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tdefer.resolve(vm.NearByUserList);\r\n\t\t\t\treturn defer.promise;\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompiledNearBy) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompiledNearBy = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.withBootstrap();\r\n\r\n\r\n\t\t\tvm.dtColumnsNearBy = [\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtmlNearBy).renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvm.selectedNearBy[meta.row] = false;\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t// \ttemp = true;\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.disableRouteButton = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\r\n\t\t\t\tDTColumnBuilder.newColumn('User_Type').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('IsPresentToday').withTitle('Attendance').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar attendance =\"\";\r\n\t\t\t\t\tif(full.User_Type==\"Freelancer Vendor\")\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tattendance = \"NA\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\tif(full.IsPresentToday){\r\n\t\t\t\t\t\tattendance = \"Present\";\r\n\t\t\t\t\t }else{\r\n\t\t\t\t\t\tattendance = \"Absent\";\r\n\t\t\t\t\t }\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn '' + attendance + '';\r\n\r\n\t\t\t\t})\r\n\t\t\t\t\r\n\t\t\t\t// return '
'+location+'
'\r\n\t\t\t\r\n\r\n\t\t\t];\r\n\r\n\t\t\tfunction toggleAllNearBy(selectAll, selectedItems) {\r\n\t\t\t\tvm.selectSingleNearBy = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOneNearBy(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\t\t\t// \t\t\t\tif(vm.selectSingleNearBy){\r\n\t\t\t// \t\t\t\t\tvm.selectAllNearBy = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSingleNearBy = false;\r\n\t\t\t// \t\t\t\t\treturn;\r\n\t\t\t// \t\t\t\t}\r\n\r\n\t\t\t// \t\t\t\tvm.selectAllNearBy = false;\r\n\t\t\t// \t\t\t\tvm.selectSingleNearBy = true;\r\n\t\t\t// \t\t\t\treturn;\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t\tvm.selectSingleNearBy = false;\r\n\t\t\t// \t\t}\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAllNearBy = true;\r\n\t\t\t// }\r\n\r\n\t\t\tfunction toggleOneNearBy(selectedItems) {\r\n\t\t\t\tvm.selectAllNearBy = false;\r\n\t\t\t\tvm.selectSingleNearBy = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSingleNearBy = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tvm.reloadDataFixed = function () {\r\n\t\t\tvar resetPagingFixed = true;\r\n\t\t\tvm.dtInstanceFixed.reloadData(resetPagingFixed);\r\n\t\t}\r\n\r\n\t\tvm.reloadData = function () {\r\n\t\t\tvar resetPaging = true;\r\n\t\t\tvm.dtInstanceNearBy.reloadData(resetPaging);\r\n\t\t\t\r\n\r\n\t\t}\r\n\r\n\t\tvm.reloadDataTalent = function () {\r\n\t\t\tvar resetPagingTalent = true;\r\n\t\t\tvm.dtInstance.reloadData(resetPagingTalent);\r\n\t\t}\r\n\r\n\t\tvm.reloadDataPre = function () {\r\n\t\t\tvar resetPagingPre = true;\r\n\t\t\tvm.dtInstancePre.reloadData(resetPagingPre);\r\n\t\t}\r\n\r\n\r\n\t\tvm.Preffered = function () {\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Preffered.html',\r\n\t\t\t\tsize: 'sm',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetTalentPoolUser = function (reload) {\r\n\t\t\tvm.headerCompiled = false;\r\n\t\t\tvar Distance = parseInt(vm.Distance)\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 0, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserDistance\" });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": Distance * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\t\t\tjobDetailsService.GetAllPrefereTalentPool(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.PrefreUserList = resp.data;\r\n\t\t\t\tvm.PrefreUserLength = vm.PrefreUserList.length;\r\n\t\t\t\t\r\n\t\t\t\tvm.CreatePrefreTable();\r\n\t\t\t\tif (reload) {\r\n\t\t\t\t\tvm.reloadDataTalent();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.CreatePrefreTable = function () {\r\n\t\t\t// vm.Invoice = {};\r\n\t\t\tvm.headerCompiled = false;\r\n\t\t\tvm.selected = {};\r\n\t\t\tvm.toggleOne = toggleOne;\r\n\t\t\t// vm.dtInstance = {};\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tvm.toggleAll = toggleAll;\r\n\t\t\tvar temp = false;\r\n\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t// \ttemp = true;\r\n\t\t\t// }\r\n\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\tvar titleHtml = '';\r\n\r\n\t\t\tvm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tvm.showTable = true;\r\n\t\t\t\tdefer.resolve(vm.PrefreUserList);\r\n\t\t\t\treturn defer.promise;\r\n\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', createdRow)\r\n\t\t\t\t.withOption('headerCallback', headerCallback)\r\n\t\t\t\t.withBootstrap();\r\n\r\n\t\t\tfunction createdRow(row, data, dataIndex) {\r\n\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t}\r\n\r\n\t\t\tfunction headerCallback(header) {\r\n\t\t\t\tif (!vm.headerCompiled) {\r\n\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\tvm.headerCompiled = true;\r\n\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvm.dtColumns = [\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtml).renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvm.selected[meta.row] = false;\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t// \ttemp = true;\r\n\t\t\t\t\t// }\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.disableRouteButton = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('User_Type').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('IsPresentToday').withTitle('Attendance').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar attendance =\"\";\r\n\t\t\t\t\tif(full.IsPresentToday){\r\n\t\t\t\t\t\tattendance = \"Present\";\r\n\t\t\t\t\t }else{\r\n\t\t\t\t\t\tattendance = \"Absent\";\r\n\t\t\t\t\t }\r\n\t\t\t\t\t \r\n\t\t\t\t\treturn '' + attendance + '';\r\n\r\n\t\t\t\t})\r\n\r\n\t\t\t];\r\n\r\n\t\t\tfunction toggleAll(selectAll, selectedItems) {\r\n\t\t\t\tvm.selectSingle = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOne(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\r\n\t\t\t// \t\t\t\tif(vm.selectSingle){\r\n\t\t\t// \t\t\t\t\tvm.selectAll = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSingle = false;\r\n\t\t\t// \t\t\t\t\treturn;\r\n\t\t\t// \t\t\t\t}\r\n\t\t\t// \t\t\t\tvm.selectAll = false;\r\n\t\t\t// \t\t\t\tvm.selectSingle = true;\r\n\t\t\t// \t\t\t\treturn;\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t\tvm.selectSingle = false;\r\n\t\t\t// \t\t}\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAll = true;\r\n\t\t\t// }\r\n\r\n\t\t\tfunction toggleOne(selectedItems) {\r\n\t\t\t\tvm.selectAll = false;\r\n\t\t\t\tvm.selectSingle = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSingle = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\t\tvm.showTablePre = false;\r\n\t\tvm.selectSinglePre = false;\r\n\t\tvm.GetPreviousWorker = function (reload) {\r\n\r\n\t\t\tvm.headerCompiledPre = false;\r\n\t\t\tvar Distance = parseInt(vm.DistancePre)\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 0, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserDistance\" });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": Distance * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\t\t\tjobDetailsService.GetAllPreviousUser(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.PreviousUserList = resp.data;\r\n\t\t\t\tvm.PreviousUserLength = vm.PreviousUserList.length;\r\n\t\t\t\t\r\n\t\t\t\tvm.CreatePreviousUserTable();\r\n\t\t\t\tif (reload) {\r\n\t\t\t\t\tvm.reloadDataPre();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CreatePreviousUserTable = function () {\r\n\t\t\tvm.headerCompiledPre = false;\r\n\t\t\tvm.selectedPre = {};\r\n\t\t\tvm.toggleOnePre = toggleOnePre;\r\n\t\t\t// vm.dtInstancePre = {};\r\n\t\t\tvm.selectAllPre = false;\r\n\t\t\tvm.toggleAllPre = toggleAllPre;\r\n\t\t\tvar temp = false;\r\n\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t// \ttemp = true;\r\n\t\t\t// }\r\n\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\tvar titleHtmlPre = '';\r\n\r\n\t\t\tvm.dtOptionsPre = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tvm.showTablePre = true;\r\n\t\t\t\tdefer.resolve(vm.PreviousUserList);\r\n\t\t\t\treturn defer.promise;\r\n\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompiledPre) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompiledPre = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.withBootstrap();\r\n\r\n\r\n\t\t\tvm.dtColumnsPre = [\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtmlPre).renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvm.selectedPre[meta.row] = false;\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t// \ttemp = true;\r\n\t\t\t\t\t// }\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.disableRouteButton = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('User_Type').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('IsPresentToday').withTitle('Attendance').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar attendance =\"\";\r\n\t\t\t\t\tif(full.IsPresentToday){\r\n\t\t\t\t\t\tattendance = \"Present\";\r\n\t\t\t\t\t }else{\r\n\t\t\t\t\t\tattendance = \"Absent\";\r\n\t\t\t\t\t }\r\n\t\t\t\t\t \r\n\t\t\t\t\treturn '' + attendance + '';\r\n\r\n\t\t\t\t})\r\n\r\n\t\t\t];\r\n\r\n\t\t\tfunction toggleAllPre(selectAll, selectedItems) {\r\n\t\t\t\tvm.selectSinglePre = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOnePre(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\r\n\t\t\t// \t\t\t\tif(vm.selectSinglePre){\r\n\t\t\t// \t\t\t\t\tvm.selectAllPre = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSinglePre = false;\r\n\t\t\t// \t\t\t\t\tcontinue;\r\n\t\t\t// \t\t\t\t}\r\n\t\t\t// \t\t\t\tvm.selectAllPre = false;\r\n\t\t\t// \t\t\t\tvm.selectSinglePre = true;\r\n\t\t\t// \t\t\t\tcontinue;\r\n\t\t\t// \t\t\t}\r\n\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\tvm.selectSinglePre = false;\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAllPre = true;\r\n\t\t\t// }\r\n\t\t\tfunction toggleOnePre(selectedItems) {\r\n\t\t\t\tvm.selectSinglePre = false;\r\n\t\t\t\tvm.selectAllPre = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSinglePre = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.BroadcastField = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.FixedUserList.length; i++) {\r\n\t\t\t\tif (vm.selectedFixed[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.FixedUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.FixedUserList[i].Price), \"Distance\": parseInt(vm.FixedUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 0,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tjobDetailsService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.BroadcastTicketNearBy = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.NearByUserList.length; i++) {\r\n\t\t\t\tif (vm.selectedNearBy[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.NearByUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.NearByUserList[i].Price), \"Distance\": parseInt(vm.NearByUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 1,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tjobDetailsService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.BroadcastTicketPool = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.PrefreUserList.length; i++) {\r\n\t\t\t\tif (vm.selected[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.PrefreUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.PrefreUserList[i].Price), \"Distance\": parseInt(vm.PrefreUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 2,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tjobDetailsService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.BroadcastTicketPrevious = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.PreviousUserList.length; i++) {\r\n\t\t\t\tif (vm.selectedPre[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.PreviousUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.PreviousUserList[i].Price), \"Distance\": parseInt(vm.PreviousUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 3,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tjobDetailsService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.routeFixed = function (index) {\r\n\t\t\tvar data = vm.FixedUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 0,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tjobDetailsService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"User Not Found.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.route = function (index) {\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar data = vm.NearByUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 1,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tvm.showloading = true;\r\n\t\t\t\tjobDetailsService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (resp.status == 206) {\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Users Not Found\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.showloading = false;\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.routePreTalent = function (index) {\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar data = vm.PrefreUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 2,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tjobDetailsService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"User Not Found.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.routePrevoius = function (index) {\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar data = vm.PreviousUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 3,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tjobDetailsService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Users Not Found.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.getReadyToAssign = function () {\r\n\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 3, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"UserDistance\" });\r\n\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"JobAccountId\": '',\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": 50 * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\r\n\t\t\tdata.JobAccountId = '';\r\n\t\t\tjobDetailsService.GetSchedulingEvaluationResult(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.ReadytoAssignUser = resp.data.users;\r\n\t\t\t\tvm.ReadyUserLength = vm.ReadytoAssignUser.length;\r\n\r\n\t\t\t});\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.AssignTicketsToFixedTeam = function (index) {\r\n\r\n\t\t\tvar temp = vm.FixedUserList[index];\r\n\t\t\tif($localStorage.loggedInUser_Role == 'Vendor Manager'){\r\n\t\t\t\tjobDetailsService.VendorManagerAssignJobTeam(temp.id,loggedinUser, uTicketId, vm.TicketInfo.JobAccountId, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == '200') {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t\r\n\t\t\t}\r\n\t\t\telse{\r\n\r\n\t\t\tvar AllUserList = [];\r\n\r\n\t\t\tvar data = {\r\n\t\t\t\t\"UserId\": temp.id ? temp.id : temp.LinkId,\r\n\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\"StartTime\": moment(vm.TicketInfo.StartTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"Endtime\": moment(vm.TicketInfo.EndTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"SuggestedPrice\": temp.Price,\r\n\t\t\t\t\"AssignPrice\": temp.Price,\r\n\t\t\t\t\"Distance\": temp.UserDistance\r\n\t\t\t}\r\n\t\t\tAllUserList.push(data);\r\n\t\t\tif (AllUserList == '') {\r\n\t\t\t\tvm.showFailure(\"Please select users.\")\r\n\t\t\t} else {\r\n\t\t\t\tjobDetailsService.AssignTicketsTimeline(loggedinUser, AllUserList, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == '200') {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t\t}\r\n\r\n\t\tvm.AssignTicketsTimeline = function (rUser, index) {\t\t\t\r\n\t\t\tvar AllUserList = [];\r\n\t\t\tvar data = {\r\n\t\t\t\t\"UserId\": rUser.id ? rUser.id : rUser.LinkId,\r\n\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\"StartTime\": moment(vm.TicketInfo.StartTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"Endtime\": moment(vm.TicketInfo.EndTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"SuggestedPrice\": rUser.BIDCounterRate,\r\n\t\t\t\t\"AssignPrice\": rUser.BIDCounterRate,\r\n\t\t\t\t\"Distance\": rUser.UserDistance\r\n\t\t\t}\r\n\t\t\tAllUserList.push(data);\r\n\t\t\tif (AllUserList == '') {\r\n\t\t\t\tvm.showFailure(\"Please select users.\")\r\n\t\t\t} else {\r\n\t\t\t\tjobDetailsService.AssignTicketsTimeline(loggedinUser, AllUserList, token).then(function (resp) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (resp && resp.status == '200') {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t\t// scheduler.clearAll();\r\n\r\n\t\t\t\t\t\t// $timeout(function () {\r\n\t\t\t\t\t\t// vm.mapMarkers=[];\r\n\t\t\t\t\t\t// vm.AssignModal.close();\r\n\t\t\t\t\t\t// GetSchedulingEventforToday(loggedinUser);\r\n\t\t\t\t\t\t// if(vm.TicketStatus==\"New\"){\r\n\t\t\t\t\t\t// \t vm.GetTicketsForAssignation();\r\n\t\t\t\t\t\t// }else if(vm.TicketStatus==\"ReadyToAssign\"){\r\n\t\t\t\t\t\t// \tvm.getReadyToAssign();\r\n\t\t\t\t\t\t// }\r\n\r\n\r\n\t\t\t\t\t\t// }, 1500);\r\n\t\t\t\t\t\t// if(vm.Mode=='Map') {\r\n\t\t\t\t\t\t// $timeout(function () {\r\n\t\t\t\t\t\t// \t vm.mapMarkers=[];\r\n\t\t\t\t\t\t// \t vm.AssignModal.close();\r\n\t\t\t\t\t\t// }, 1500);\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t} \r\n\t\t\t\t\telse if (resp.status == 206) {\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t\t }\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.getCustomerJobCard = function () {\r\n\t\t\tjobDetailsService.getCustomerJobCardbyJobId(loggedinUser, vm.TicketId, token, function (data) {\r\n\t\t\t\tvm.JobLatitude = data.JobLatitude;\r\n\t\t\t\tvm.JobLongitude = data.JobLongitude;\r\n\t\t\t\tvm.FELatitude = data.FELatitude;\r\n\t\t\t\tvm.FELongitude = data.FELongitude;\r\n\t\t\t\tvm.contactnumber = data.FEContactNumber;\r\n\t\t\t\tvm.jobtype = data.Description;\r\n\t\t\t\tvm.name = data.FEName;\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t// $log.log(\"res of getCustomerJobCard=\" + data);\r\n\t\t\t\tvm.customerJobCard = data;\r\n\t\t\t\tif ($localStorage.rateJobParams) {\r\n\t\t\t\t\tvm.customerJobCard.userRole = $localStorage.Role;\r\n\t\t\t\t\tvm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n\t\t\t\t\tvm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n\t\t\t\t\tdelete $localStorage.rateJobParams;\r\n\t\t\t\t}\r\n\t\t\t\tif (data && data.JobStatus == 'PaymentDone') {\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinitMap();\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Unable to reach server\");\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tvm.getTracking = function () {\r\n\r\n\t\t\tif (vm.TicketInfo.TicketStatus == 'New' || vm.TicketInfo.TicketStatus == 'Hold' || vm.TicketInfo.TicketStatus == 'Broadcasted' || vm.TicketInfo.TicketStatus == 'ReadyToAssign') {\r\n\t\t\t\tvm.superPower = true;\r\n\t\t\t\tdisplayJobOnMap();\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif( (vm.TicketInfo.TicketStatus == 'Assigned'|| vm.TicketInfo.TicketStatus == 'Rejected' || vm.TicketInfo.TicketStatus == 'Approved' || vm.TicketInfo.TicketStatus == 'Completed' ) && vm.TicketInfo.UserId){\r\n\t\t\t\t\tvm.showMapPermision = true;\r\n\t\t\t\t\tvm.superPower = true;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tvm.showMapPermision = false;\r\n\t\t\t\t}\r\n\t\t\t\tvm.getCustomerJobCard();\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\t// -------------------------------------------------------------------------------\r\n\t\t// Tracking code goes here\r\n\t\t\r\n\t\tvm.makeUserMarker = function (position, icon, map) {\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: position,\r\n\t\t\t\tmap: map,\r\n\t\t\t\ticon: icon\r\n\t\t\t});\r\n\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t(function (marker, customerJobCard) {\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.setContent(\"

\" + vm.name + \"

\");\r\n\t\t\t\t\t$scope.InfoWindow.open($scope.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.close(vm.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t})(marker, vm.customerJobCard);\r\n\r\n\t\t\t//Plotting the Marker on the Map.\r\n\t\t\t$scope.Latlngbounds.extend(marker.position);\r\n\r\n\t\t}\r\n\r\n\t\tvm.makeJobMarker = function (position, icon, map) {\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: position,\r\n\t\t\t\tmap: map,\r\n\t\t\t\ticon: icon\r\n\t\t\t});\r\n\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t(function (marker, customerJobCard) {\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.setContent(\"

\" + vm.customerJobCard.ConsumerName + \"

\" + ' ' + vm.customerJobCard.JobId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.customerJobCard.ConsumerContact);\r\n\t\t\t\t\t$scope.InfoWindow.open($scope.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.close(vm.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t})(marker, vm.customerJobCard);\r\n\r\n\t\t\t//Plotting the Marker on the Map.\r\n\t\t\t$scope.Latlngbounds.extend(marker.position);\r\n\t\t}\r\n\r\n\r\n\r\n\t\tfunction initMap() {\r\n\t\t\tvar pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n\t\t\t\tpointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n\t\t\t\t// center = new google.maps.LatLng(51.3, 0.8),\r\n\t\t\t\tmyOptions = {\r\n\t\t\t\t\tzoom: 8,\r\n\t\t\t\t\tzoomControl: false,\r\n\t\t\t\t\tscaleControl: true,\r\n\t\t\t\t\tmapTypeControl: false,\r\n\t\t\t\t\tstreetViewControl: false,\r\n\t\t\t\t\tgestureHandling: 'greedy',\r\n\t\t\t\t\t// center: center,\r\n\t\t\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP\r\n\t\t\t\t},\r\n\r\n\t\t\t\tmap = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n\t\t\t\t// Instantiate a directions service.\r\n\t\t\t\tdirectionsService = new google.maps.DirectionsService,\r\n\t\t\t\tdirectionsDisplay = new google.maps.DirectionsRenderer({\r\n\t\t\t\t\tmap: map\r\n\t\t\t\t}),\r\n\t\t\t\tduration = document.getElementById('duration');\r\n\t\t\tdistance = document.getElementById('distance');\r\n\t\t\tflightPath = new google.maps.Polyline({\r\n\t\t\t\tpath: [pointA, pointB],\r\n\t\t\t\t// geodesic: true,\r\n\t\t\t\tstrokeColor: 'red',\r\n\t\t\t});\r\n\t\t\t$scope.InfoWindow = new google.maps.InfoWindow();\r\n\t\t\t$scope.Latlngbounds = new google.maps.LatLngBounds();\r\n\t\t\t// click on marker B to get route from A to B\r\n\t\t\tcalculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n\t\t\tvar travelMode = \"DRIVING\";\r\n\t\t\tvar icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n\t\t}\r\n\r\n\r\n\t\tfunction calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map) {\r\n\t\t\tvar selectedMode = \"DRIVING\";\r\n\t\t\tdirectionsService.route({\r\n\t\t\t\torigin: pointA,\r\n\t\t\t\tdestination: pointB,\r\n\t\t\t\tunitSystem: google.maps.UnitSystem.METRIC,\r\n\t\t\t\ttravelMode: google.maps.TravelMode[selectedMode]\r\n\t\t\t}, function (response, status) {\r\n\t\t\t\tif (status == google.maps.DirectionsStatus.OK) {\r\n\t\t\t\t\tnew google.maps.DirectionsRenderer({\r\n\t\t\t\t\t\tmap: map,\r\n\t\t\t\t\t\tdirections: response,\r\n\t\t\t\t\t\tsuppressMarkers: true,\r\n\t\t\t\t\t\tpolylineOptions: {\r\n\t\t\t\t\t\t\tstrokeColor: \"#000000\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tvar leg = response.routes[0].legs[0];\r\n\t\t\t\t\t//outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n\t\t\t\t\tdistance.innerHTML = response.routes[0].legs[0].distance.text;\r\n\t\t\t\t\tduration.innerHTML = response.routes[0].legs[0].duration.text;\r\n\t\t\t\t\tvm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n\t\t\t\t\tvm.makeJobMarker(leg.start_location, icons.start, map);\r\n\t\t\t\t\tvm.makeUserMarker(leg.end_location, icons.end, map);\r\n\t\t\t\t} else {\r\n\t\t\t\t\twindow.alert('Directions request failed due to ' + status);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvar icons = {\r\n\t\t\tstart: new google.maps.MarkerImage(\r\n\t\t\t\t// URL\r\n\t\t\t\tUIURL + '/assets/images/patterns/JOb_icon.png',\r\n\t\t\t\t// (width,height)\r\n\t\t\t\tnew google.maps.Size(44, 32),\r\n\t\t\t\t// The origin point (x,y)\r\n\t\t\t\tnew google.maps.Point(0, 0),\r\n\t\t\t\t// The anchor point (x,y)\r\n\t\t\t\tnew google.maps.Point(22, 32)),\r\n\t\t\tend: new google.maps.MarkerImage(\r\n\t\t\t\t// URL\r\n\t\t\t\tUIURL + '/assets/images/patterns/delivery-man1.png',\r\n\t\t\t\t// (width,height)\r\n\t\t\t\tnew google.maps.Size(44, 32),\r\n\t\t\t\t// The origin point (x,y)\r\n\t\t\t\tnew google.maps.Point(0, 0),\r\n\t\t\t\t// The anchor point (x,y)\r\n\t\t\t\tnew google.maps.Point(22, 32))\r\n\t\t};\r\n\r\n\r\n\t\tdisplayJobOnMap = function () {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tShowJobOnMap();\r\n\t\t\t}, 500);\r\n\t\t};\r\n\r\n\r\n\t\tfunction ShowJobOnMap() {\r\n\t\t\tvar pointA = new google.maps.LatLng(vm.TicketInfo.Latitude, vm.TicketInfo.Longitude);\r\n\t\t\t//var myLatlng = new google.maps.LatLng(-25.363882,131.044922);\r\n\t\t\tvar mapOptions = {\r\n\t\t\t\tzoom: 15,\r\n\t\t\t\tscaleControl: true,\r\n\t\t\t\tgestureHandling: 'greedy',\r\n\t\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP,\r\n\t\t\t\tcenter: pointA\r\n\t\t\t}\r\n\t\t\tvar map = new google.maps.Map(document.getElementById(\"map-canvas\"), mapOptions);\r\n\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: pointA,\r\n\t\t\t\ticon: icons.start\r\n\t\t\t});\r\n\r\n\t\t\t$scope.InfoWindow = new google.maps.InfoWindow();\r\n\t\t\t$scope.Latlngbounds = new google.maps.LatLngBounds();\r\n\r\n\t\t\tvar ticketinformation = vm.TicketInfo;\r\n\r\n\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t(function (marker, ticketinformation) {\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.setContent(\"

\" + vm.TicketInfo.ConsumerName + \"

\" + ' ' + vm.TicketInfo.ConsumerContact);\r\n\t\t\t\t\t$scope.InfoWindow.open(map, marker);\r\n\t\t\t\t});\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.close(map, marker);\r\n\t\t\t\t});\r\n\t\t\t})(marker, ticketinformation);\r\n\r\n\t\t\t// To add the marker to the map, call setMap();\r\n\t\t\tmarker.setMap(map);\r\n\r\n\t\t}\r\n\r\n\r\n\t\t// Start chat section and developed by Satya\r\n\r\n\t\tvm.getPicUrl = function (pic) {\r\n\t\t\treturn ImageUrl + \"/\" + pic;\r\n\t\t}\r\n\t\tvar pageloadselecteduserid = \"\";\r\n\t\tvar pageloadselectedusername = \"\";\r\n\t\tvm.getTicketUserList = function (loggedinUser, ticketId, token) {\r\n\t\t\tjobDetailsService.GetUsersByTicketId(loggedinUser, ticketId, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.UserListByTicketId = resp.data;\r\n\t\t\t\t\tif (resp.data.length > 0) {\r\n\t\t\t\t\t\t//chatfooterrow.visible=true;\r\n\t\t\t\t\t\tpageloadselecteduserid = resp.data[0].UserId;\r\n\t\t\t\t\t\tpageloadselectedusername = resp.data[0].FirstName + \" \" + resp.data[0].LastName;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.getTicketUserList(loggedinUser, uTicketId, token);\r\n\t\tvm.PressEnter = function (event, chatReceiverId, messageText) {\r\n\t\t\tif (event.keyCode == '13') {\r\n\t\t\t\tvm.sendMessage(chatReceiverId, messageText);\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.LoadMessageToReadMessageStatus = function (TicketIdtoRead) {\r\n\t\t\tif (!TicketIdtoRead) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar query = firebase.firestore().collection('chats')\r\n\t\t\t\t.where(\"ReceiverId\", \"==\", loggedinUser);\r\n\t\t\tvar query1 = query.where(\"TicketId\", \"==\", TicketIdtoRead);\r\n\t\t\tquery1.get().then(function (querySnapshot) {\r\n\t\t\t\tif (querySnapshot.docs.length > 0) {\r\n\t\t\t\t\tquerySnapshot.forEach(function (doc) {\r\n\t\t\t\t\t\tvar message = doc.data();\r\n\t\t\t\t\t\tvar NotifyLength = message.Notify.length;\r\n\t\t\t\t\t\tvar MessageStatusLength = message.MessageStatus.length;\r\n\t\t\t\t\t\tvar messageLength = message.messages.length;\r\n\t\t\t\t\t\tvar TotalNewMessageNotify = messageLength - NotifyLength;\r\n\t\t\t\t\t\tvar TotalNewMessageStatus = messageLength - MessageStatusLength;\r\n\t\t\t\t\t\tvar docRef = firebase.firestore().collection('chats').doc(doc.id);\r\n\t\t\t\t\t\tvar newMessageStatusLength = 0;\r\n\t\t\t\t\t\tvar newNotifyLength = 0;\r\n\t\t\t\t\t\tfor (var i = 0; i < TotalNewMessageStatus; i++) {\r\n\t\t\t\t\t\t\tif (newMessageStatusLength == 0)\r\n\t\t\t\t\t\t\t\tnewMessageStatusLength = MessageStatusLength + 1;\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tnewMessageStatusLength = newMessageStatusLength + 1;\r\n\r\n\t\t\t\t\t\t\tdocRef.update({ MessageStatus: firebase.firestore.FieldValue.arrayUnion(newMessageStatusLength) });\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfor (var i = 0; i < TotalNewMessageNotify; i++) {\r\n\t\t\t\t\t\t\tif (newNotifyLength == 0)\r\n\t\t\t\t\t\t\t\tnewNotifyLength = NotifyLength + 1;\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tnewNotifyLength = newNotifyLength + 1;\r\n\r\n\t\t\t\t\t\t\tdocRef.update({ Notify: firebase.firestore.FieldValue.arrayUnion(newNotifyLength) });\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvar activeonchat = false;\r\n\t\tvm.getChatOnPageLoad = function () {\r\n\t\t\tactiveonchat = true;\r\n\t\t\tvm.getUserChat(pageloadselecteduserid, pageloadselectedusername, 0);\r\n\t\t}\r\n\r\n\t\tvm.getUserDetailstochat = function (ChatUserId) {\r\n\t\t\tvar username = \"\";\r\n\t\t\tvar upicture = \"\";\r\n\t\t\tfor (var i = 0; i < vm.UserListByTicketId.length; i++) {\r\n\t\t\t\tif (vm.UserListByTicketId[i].UserId == ChatUserId) {\r\n\t\t\t\t\tusername = vm.UserListByTicketId[i].FirstName + \" \" + vm.UserListByTicketId[i].LastName;\r\n\t\t\t\t\tupicture = vm.UserListByTicketId[i].Picture == '' || vm.UserListByTicketId[i].Picture == null ? 'assets/images/patterns/photo2.jpg' : vm.getPicUrl(vm.UserListByTicketId[i].Picture);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tUserName: username,\r\n\t\t\t\tuPicture: upicture\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tvm.PreviousIndex = 0;\r\n\t\tvar currentelementId = \"\";\r\n\t\tvar previouselementId = \"\";\r\n\t\tvm.chatReceiverId = \"\";\r\n\t\tvm.getUserChat = function (chatUserId, chatUserName, index) {\r\n\t\t\tvm.chatDisplayUserName = chatUserName;\r\n\t\t\tvm.chatReceiverId = chatUserId;\r\n\t\t\tvar ChatTicketId = \"\";\r\n\t\t\tif (loggedinUser < chatUserId)\r\n\t\t\t\tChatTicketId = uTicketId + \"_\" + loggedinUser + \"_\" + chatUserId;\r\n\t\t\telse\r\n\t\t\t\tChatTicketId = uTicketId + \"_\" + chatUserId + \"_\" + loggedinUser;\r\n\r\n\t\t\tvm.loadMessages(ChatTicketId);\r\n\r\n\t\t\tvm.LoadMessageToReadMessageStatus(ChatTicketId);\r\n\r\n\t\t\tif (vm.PreviousIndex == 0) {\r\n\t\t\t\tpreviouselementId = '#DivChatUserList' + vm.PreviousIndex;\r\n\t\t\t\t$(previouselementId).removeClass('chatuseractive');\r\n\t\t\t\tvm.PreviousIndex = index;\r\n\t\t\t\tcurrentelementId = '#DivChatUserList' + index;\r\n\t\t\t\t$(currentelementId).addClass('chatuseractive');\r\n\t\t\t}\r\n\t\t\telse if (vm.PreviousIndex != index) {\r\n\t\t\t\tcurrentelementId = '#DivChatUserList' + index;\r\n\t\t\t\tpreviouselementId = '#DivChatUserList' + vm.PreviousIndex;\r\n\t\t\t\t$(previouselementId).removeClass('chatuseractive');\r\n\t\t\t\t$(currentelementId).addClass('chatuseractive');\r\n\t\t\t\tvm.PreviousIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.createMessages = function (ticketId, subMessagedata, chatreceiverid) {\r\n\t\t\tvar data = {\r\n\t\t\t\tTicketId: ticketId,\r\n\t\t\t\tNotify: [],\r\n\t\t\t\tMessageStatus: [],\r\n\t\t\t\tReceiverId: chatreceiverid,\r\n\t\t\t\tCreateDate: firebase.firestore.FieldValue.serverTimestamp(),\r\n\t\t\t\tmessages: [subMessagedata]\r\n\t\t\t};\r\n\t\t\tvar docRef = firebase.firestore().collection('chats').add(data);\r\n\t\t}\r\n\r\n\t\tvm.sendMessage = function (chatreceiverid, content) {\r\n\t\t\tif (!content) {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please enter message to chat.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvar ChatTicketId = \"\";\r\n\t\t\t\tif (loggedinUser < chatreceiverid)\r\n\t\t\t\t\tChatTicketId = uTicketId + \"_\" + loggedinUser + \"_\" + chatreceiverid;\r\n\t\t\t\telse\r\n\t\t\t\t\tChatTicketId = uTicketId + \"_\" + chatreceiverid + \"_\" + loggedinUser;\r\n\r\n\t\t\t\t//var status = 'New';\r\n\t\t\t\tvar url = '';\r\n\t\t\t\tvar messagetype = 'Text';\r\n\r\n\t\t\t\tvar subMessagedata = {\r\n\t\t\t\t\tSenderId: loggedinUser,\r\n\t\t\t\t\tReceiverId: chatreceiverid,\r\n\t\t\t\t\tUrl: url,\r\n\t\t\t\t\tMessageType: messagetype,\r\n\t\t\t\t\tTimestamp: new Date(),\r\n\t\t\t\t\tContent: content\r\n\t\t\t\t};\r\n\r\n\t\t\t\tvar query = firebase.firestore().collection(\"chats\")\r\n\t\t\t\t\t.where(\"TicketId\", \"==\", ChatTicketId);\r\n\r\n\t\t\t\tquery.get().then(function (querySnapshot) {\r\n\t\t\t\t\tif (querySnapshot.docs.length > 0) {\r\n\t\t\t\t\t\tquerySnapshot.forEach(function (doc) {\r\n\r\n\t\t\t\t\t\t\tif (doc.data().TicketId == ChatTicketId) {\r\n\t\t\t\t\t\t\t\tvar docRef = firebase.firestore().collection('chats').doc(doc.id);\r\n\t\t\t\t\t\t\t\tdocRef.update({ ReceiverId: chatreceiverid });\r\n\t\t\t\t\t\t\t\tdocRef.update({ messages: firebase.firestore.FieldValue.arrayUnion(subMessagedata) });\r\n\t\t\t\t\t\t\t\t//vm.LoadMessageToReadMessageStatus(ChatTicketId);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tvm.createMessages(ChatTicketId, subMessagedata, chatreceiverid);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.createMessages(ChatTicketId, subMessagedata, chatreceiverid);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tcontent = \"\";\r\n\t\t\tvm.messageText = \"\";\r\n\t\t}\r\n\r\n\t\t// Loads chat messages history and listens for upcoming ones.\r\n\t\tvm.loadMessages = function (chatticketid) {\r\n\t\t\tvar query = firebase.firestore()\r\n\t\t\t\t.collection('chats')\r\n\t\t\t\t.where(\"TicketId\", \"==\", chatticketid)\r\n\t\t\t\t.limit(1);\r\n\t\t\t// Start listening to the query.\r\n\t\t\tvar unsubscribe = query.onSnapshot(function (snapshot) {\r\n\t\t\t\tvar allMessage = \"\";\r\n\t\t\t\tsnapshot.docChanges().forEach(function (change) {\r\n\r\n\t\t\t\t\tif (change.type === 'removed') {\r\n\t\t\t\t\t\t// deleteMessage(change.doc.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvar message = change.doc.data();\r\n\r\n\t\t\t\t\t\tallMessage = \"
\";\r\n\t\t\t\t\t\tfor (var i = 0; i < message.messages.length; i++) {\r\n\t\t\t\t\t\t\tif (message.messages.length > 0) {\r\n\t\t\t\t\t\t\t\tvar uPicture = loggedinUserImage == '' || loggedinUserImage == null ? 'assets/images/patterns/photo2.jpg' : vm.getPicUrl(loggedinUserImage);\r\n\t\t\t\t\t\t\t\tif (message.messages[i].SenderId == loggedinUser) {\r\n\t\t\t\t\t\t\t\t\tvar Rightcontent = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Text\")\r\n\t\t\t\t\t\t\t\t\t\tRightcontent = \"\" + message.messages[i].Content + \"\"\r\n\r\n\t\t\t\t\t\t\t\t\tvar RightuploadImage = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Image\") {\r\n\t\t\t\t\t\t\t\t\t\tRightuploadImage += \"\"\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tvar Rightuploadpdf = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"PDF\")\r\n\t\t\t\t\t\t\t\t\t\tRightuploadpdf = \"\"\r\n\t\t\t\t\t\t\t\t\tvar Rightuploadvideo = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Video\")\r\n\t\t\t\t\t\t\t\t\t\tRightuploadvideo = \"
\"\r\n\r\n\t\t\t\t\t\t\t\t\tallMessage += \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \" \" + loggedinUserName + \" \"\r\n\t\t\t\t\t\t\t\t\t\t+ \" \" + moment.unix(message.messages[i].Timestamp.seconds).format(\"ddd MMM DD YYYY - h:mm:ss\") + \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ Rightcontent\r\n\t\t\t\t\t\t\t\t\t\t+ RightuploadImage\r\n\t\t\t\t\t\t\t\t\t\t+ Rightuploadpdf\r\n\t\t\t\t\t\t\t\t\t\t+ Rightuploadvideo\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if (message.messages[i].ReceiverId == loggedinUser) {\r\n\t\t\t\t\t\t\t\t\tvar Leftcontent = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Text\")\r\n\t\t\t\t\t\t\t\t\t\tLeftcontent = \"\" + message.messages[i].Content + \"\"\r\n\r\n\t\t\t\t\t\t\t\t\tvar LeftuploadImage = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Image\") {\r\n\t\t\t\t\t\t\t\t\t\tLeftuploadImage += \"\"\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tvar Leftuploadpdf = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"PDF\")\r\n\t\t\t\t\t\t\t\t\t\tLeftuploadpdf = \"\"\r\n\t\t\t\t\t\t\t\t\tvar Leftuploadvideo = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Video\")\r\n\t\t\t\t\t\t\t\t\t\tLeftuploadvideo = \"
\"\r\n\r\n\t\t\t\t\t\t\t\t\tallMessage += \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \" \" + vm.getUserDetailstochat(message.messages[i].SenderId).UserName + \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ \" \" + moment.unix(message.messages[i].Timestamp.seconds).format(\"ddd MMM DD YYYY - h:mm:ss\") + \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ Leftcontent\r\n\t\t\t\t\t\t\t\t\t\t+ LeftuploadImage\r\n\t\t\t\t\t\t\t\t\t\t+ Leftuploadpdf\r\n\t\t\t\t\t\t\t\t\t\t+ Leftuploadvideo\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tallMessage += \"
\";\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$('#chatMessageBox').html(allMessage);\r\n\t\t\t\tallMessage = \"\";\r\n\t\t\t\tvar objDiv = document.getElementById(\"scrolldiv\");\r\n\t\t\t\tobjDiv.scrollTop = objDiv.scrollHeight;\r\n\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.saveImageMessage = function (file, chatreceiverid) {\r\n\t\t\t// TODO 9: Posts a new image as a message.\r\n\t\t\t// 1 - We add a message with a loading icon that will get updated with the shared image.\r\n\t\t\tvar ChatTicketId = \"\";\r\n\t\t\tif (loggedinUser < chatreceiverid)\r\n\t\t\t\tChatTicketId = uTicketId + \"_\" + loggedinUser + \"_\" + chatreceiverid;\r\n\t\t\telse\r\n\t\t\t\tChatTicketId = uTicketId + \"_\" + chatreceiverid + \"_\" + loggedinUser;\r\n\r\n\t\t\tvar query = firebase.firestore().collection(\"chats\")\r\n\t\t\t\t.where(\"TicketId\", \"==\", ChatTicketId)\r\n\r\n\t\t\tquery.get().then(function (querySnapshot) {\r\n\t\t\t\tif (querySnapshot.docs.length > 0) {\r\n\t\t\t\t\tquerySnapshot.forEach(function (doc) {\r\n\t\t\t\t\t\tif (doc.data().TicketId == ChatTicketId) {\r\n\t\t\t\t\t\t\t//var status = 'New';\r\n\t\t\t\t\t\t\tvar url = '';\r\n\t\t\t\t\t\t\tvar messagetype = '';\r\n\t\t\t\t\t\t\tif (file.type == \"application/pdf\")\r\n\t\t\t\t\t\t\t\tmessagetype = 'PDF';\r\n\t\t\t\t\t\t\telse if (file.type == \"image/jpg\" || file.type == \"image/png\" || file.type == \"image/jpeg\" || file.type == \"image/bmp\")\r\n\t\t\t\t\t\t\t\tmessagetype = 'Image';\r\n\t\t\t\t\t\t\telse if (file.type == \"video/mp4\")\r\n\t\t\t\t\t\t\t\tmessagetype = 'Video';\r\n\r\n\t\t\t\t\t\t\tvar filePath = loggedinUser + '/' + doc.id + '/' + file.name;\r\n\t\t\t\t\t\t\treturn firebase.storage().ref(filePath).put(file).then(function (fileSnapshot) {\r\n\t\t\t\t\t\t\t\t// 3 - Generate a public URL for the file.\r\n\t\t\t\t\t\t\t\treturn fileSnapshot.ref.getDownloadURL().then(function (url) {\r\n\t\t\t\t\t\t\t\t\t// 4 - Update the chat message placeholder with the image's URL.\r\n\t\t\t\t\t\t\t\t\tvar subMessagedata = {\r\n\t\t\t\t\t\t\t\t\t\tSenderId: loggedinUser,\r\n\t\t\t\t\t\t\t\t\t\tReceiverId: chatreceiverid,\r\n\t\t\t\t\t\t\t\t\t\tUrl: url,\r\n\t\t\t\t\t\t\t\t\t\tMessageType: messagetype,\r\n\t\t\t\t\t\t\t\t\t\tTimestamp: new Date(),\r\n\t\t\t\t\t\t\t\t\t\tContent: '',\r\n\t\t\t\t\t\t\t\t\t\tstorageUri: fileSnapshot.metadata.fullPath\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\tvar docRef = firebase.firestore().collection('chats').doc(doc.id);\r\n\t\t\t\t\t\t\t\t\tdocRef.update({ ReceiverId: chatreceiverid });\r\n\t\t\t\t\t\t\t\t\treturn docRef.update({ messages: firebase.firestore.FieldValue.arrayUnion(subMessagedata) });\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.changeChatFile = function (selector) {\r\n\t\t\tangular.element(selector).trigger(\"click\");\r\n\t\t}\r\n\t\t$scope.uploadChatImageFile = function (files) {\r\n\t\t\tvar file = files.files[0];\r\n\t\t\tif (file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0 || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0 || file.type.indexOf(\"application/pdf\") >= 0) {\r\n\t\t\t\tif (file.size > 2097152) {\r\n\t\t\t\t\talert(\"File size must under 2 MB\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t} else vm.saveImageMessage(file, vm.chatReceiverId);\r\n\t\t\t}\r\n\t\t\telse if (file.type.indexOf(\"video/mp4\") >= 0) {\r\n\t\t\t\tvm.saveImageMessage(file, vm.chatReceiverId);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t\r\n\t\t\t\talert(\"Please upload image, pdf and mp4 video only\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// End chat section\r\n\r\n\r\n\t\tvar scdt = new Date();\r\n\t\tscdt.setMinutes(scdt.getMinutes() + 30);\r\n\t\tvm.SourceCreationDate = scdt;\r\n\t\tvar pcdt = new Date();\r\n\t\tpcdt.setDate(pcdt.getDate() + 7);\r\n\t\tvm.PlannedClosureDate = pcdt;\r\n\r\n\t\tvm.openCalendar = function (e, picker) {\r\n\t\t\tvm.AppointmentsDate.open = true;\r\n\t\t\tvm.ClosureDateTime.open = true;\r\n\t\t};\r\n\r\n\t\tvar Closuredatelimit = new Date();\r\n\t\t// Closuredatelimit.setMinutes(Closuredatelimit.getMinutes() + 1)\r\n\t\tvm.ClosureDateTime = { date: '', datepickerOptions: { minDate: Closuredatelimit } };\r\n\r\n\t\tvar datelimit = new Date();\r\n\r\n\t\tdatelimit.setMinutes(datelimit.getMinutes() + 1)\r\n\t\tvm.AppointmentsDate = { date: '', datepickerOptions: { minDate: datelimit } };\r\n\r\n\r\n\t\tvm.openCalendarEndDate = function (e, picker) {\r\n\t\t\tvm.AppointmentsEndDate.open = true;\r\n\t\t};\r\n\r\n\t\tvar EndDatelimit = new Date();\r\n\t\tEndDatelimit.setMinutes(EndDatelimit.getMinutes() + 1)\r\n\t\tvm.AppointmentsEndDate = { date: '', datepickerOptions: { minDate: EndDatelimit } };\r\n\r\n\t\tvm.ViewProfile = function (UserId,UserType) {\r\n \r\n\t\t\tJobTicketViewService.getUserProfileData(loggedinUser,UserId, token).then(function(res){\r\n\t\t\t vm.UserProfileData = res.data;\r\n\t\t\t vm.customerrating = Number(vm.UserProfileData.CustomerRating).toFixed(1);\r\n\t\t\t if(vm.UserProfileData){\r\n\t\t\t\tvm.AddPreferredVendorModal = $uibModal.open({\r\n\t\t\t\t templateUrl: 'UserProfile.html',\r\n\t\t\t\t windowClass:'schedulerModal',\r\n\t\t\t\t scope: $scope,\r\n\t\t\t\t reload:true\r\n\t\t\t\t });\r\n\t\t\t }else{\r\n\t\t\t\tvm.showFailure('Failed','User Not found');\r\n\t\t\t }\r\n\t\t\t});\r\n\t\t\t \r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tvm.UserProfileClose = function(){\r\n\t\t\t\tvm.AddPreferredVendorModal.close();\r\n\t\t\t }\r\n\t\t\t \r\n\t\t\t vm.GetServiceTax = function(data)\r\n\t\t\t {\t\t\t\t \r\n\t\t\t\t vm.GSTPercentange =data;\r\n\t\t\t }\r\n\t\t\t vm.GetMobCommission = function(data)\r\n\t\t\t { \r\n\t\t\t\tvm.MobiforceCommission =data;\r\n\t\t\t }\r\n\t\t\t jobDetailsService.GetServiceTax(loggedinUser, token, vm.GetServiceTax);\r\n\t\t\t jobDetailsService.GetMobCommission(loggedinUser, token, vm.GetMobCommission);\r\n\t\t\t vm.calculatePrice = function () {\t\r\n\r\n\t\t\t\tif(vm.serviceType == 'Free'){\r\n\t\t\t\r\n\t\t\t\t\tif(vm.TicketInfoEdit.BroadcastRate > 0){\t\t\r\n\t\t\t\t // vm.TicketInfo.FreelancerRate = 0; \r\n\t\t\t\t \r\n\t\t\t\t\tvm.commission = vm.TicketInfoEdit.BroadcastRate * (vm.MobiforceCommission) / 100;\r\n\t\t\t\t\tvm.freelancerPricetemp = vm.TicketInfoEdit.BroadcastRate - vm.commission;\r\n\t\t\t\t\tvm.tPrice = vm.TicketInfoEdit.BroadcastRate;\r\n\t\t\t\t\tvm.tax = (Number(vm.tPrice) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n\t\t\t\t\tvm.TicketInfo.FreelancerRate = vm.freelancerPricetemp;\r\n\t\t\t\t }\r\n\t\t\t\t else{\r\n\t\t\t\t\tvm.tPrice = \"\";\r\n\t\t\t\t\t vm.commission = \"\";\r\n\t\t\t\t\t vm.tax = \"\";\r\n\t\t\t\t\t vm.freelancerPricetemp = '';\r\n\t\t\t\t\t vm.TicketInfo.FreelancerRate = \"\";\r\n\t\t\t\t}\r\n\t\t\t }else if(vm.serviceType =='Paid'){\r\n\t\t\t\r\n\t\t\t\tif(vm.TicketInfoEdit.BroadcastRate > 0){\t\t\r\n\t\t\t\t // vm.freelancerPrice = 0; \r\n\t\t\t\t\tvm.commission = vm.TicketInfoEdit.BroadcastRate * (vm.MobiforceCommission) / 100;\r\n\t\t\t\t\tvm.freelancerPricetemp = vm.TicketInfoEdit.BroadcastRate - vm.commission;\r\n\t\t\t\t\tvm.tax = (Number(vm.TicketInfoEdit.BroadcastRate) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n\t\t\t\t\tvm.tPrice = (Number(vm.TicketInfoEdit.BroadcastRate) + Number(vm.tax));\r\n\t\t\t\t\tvm.TicketInfo.FreelancerRate = vm.freelancerPricetemp;\r\n\t\t\t\t }else{\r\n\t\t\t\t\t\tvm.tPrice = \"\";\r\n\t\t\t\t\t\t vm.commission = \"\";\r\n\t\t\t\t\t\t vm.tax = \"\";\r\n\t\t\t\t\t\t vm.freelancerPricetemp = '';\r\n\t\t\t\t\t\t vm.TicketInfo.FreelancerRate = \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t }\r\n\t\t\t vm.ConverttoDecimal = function(value) {\r\n \t\t\t\t\treturn (parseFloat(value).toFixed(2))\r\n\t\t\t }\r\n\r\n\t\t\t vm.calculateFreelancerPrice = function () {\t\r\n\t\t\t\tif(vm.serviceType =='Free'){\r\n\t\t\t\t\tif(vm.TicketInfo.FreelancerRate > 0){\t\t\r\n\t\t\t\t vm.TicketInfoEdit.BroadcastRate = 0; \r\n\t\t\t\t vm.freelancerPricetemp = vm.TicketInfo.FreelancerRate;\r\n\t\t\t\t vm.commission = (vm.TicketInfo.FreelancerRate * vm.MobiforceCommission)/(100-20) ;\r\n\t\t\t\t vm.tPrice = Number(vm.TicketInfo.FreelancerRate) + Number(vm.commission);\r\n\t\t\t\t vm.tax = vm.tPrice * (vm.GSTPercentange) / 100;\r\n\t\t\t\t \r\n\t\t\t\t vm.TicketInfoEdit.BroadcastRate = vm.tPrice;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvm.tPrice = \"\";\r\n\t\t\t\t\t\tvm.freelancerPricetemp = \"\";\r\n\t\t\t\t vm.commission = \"\";\r\n\t\t\t\t vm.tax = \"\";\r\n\t\t\t\t vm.TicketInfoEdit.BroadcastRate = '';\r\n\t\t\t\t\t}\r\n\t\t\t\r\n\t\t\t\t}else if(vm.serviceType=='Paid'){\r\n\t\t\t\r\n\t\t\t\tif(vm.TicketInfo.FreelancerRate > 0){\t\t\r\n\t\t\t\t vm.TicketInfoEdit.BroadcastRate = 0; \r\n\t\t\t\t vm.freelancerPricetemp = vm.TicketInfo.FreelancerRate;\r\n\t\t\t\t vm.commission = (vm.TicketInfo.FreelancerRate * vm.MobiforceCommission)/(100-vm.MobiforceCommission) ;\r\n\t\t\t\t vm.tax = ((Number(vm.TicketInfo.FreelancerRate) + Number(vm.commission)) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n\t\t\t\t vm.tPrice = Number(Number(vm.TicketInfo.FreelancerRate) + Number(vm.commission)) + Number(vm.tax);\r\n\t\t\t \r\n\t\t\t\t vm.TicketInfoEdit.BroadcastRate = Number(Number(vm.TicketInfo.FreelancerRate) + Number(vm.commission));\r\n\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvm.tPrice = \"\";\r\n\t\t\t\t\t\tvm.freelancerPricetemp = \"\";\r\n\t\t\t\t vm.commission = \"\";\r\n\t\t\t\t vm.tax = \"\";\r\n\t\t\t\t vm.TicketInfoEdit.BroadcastRate = '';\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t }\r\n\t\t\t }\r\n\t\t\t vm.OnLoadLineItemDetails = function(LineItemTicketId){\r\n\t\t\t\t \r\n\t\t\t\tvm.showTotal = true;\r\n\t\t\t\t\r\n\t\t\t\tjobDetailsService.OnLoadLineItemDetails(loggedinUser, LineItemTicketId, token).then(function(resp){\r\n\t\t\t\t if (resp.status==200) {\r\n\t\t\t\t vm.LineItemList = resp.data.LineItemList;\r\n\t\t\t\t for (var i = 0; i < vm.LineItemList.length; i++) {\r\n\t\t\t\t\tvar tData = {\r\n\t\t\t\t\t\tLineItemDescription: vm.LineItemList[i].LineItemDescription,\r\n\t\t\t\t\t\tLineItemCategory: vm.LineItemList[i].LineItemCategory,\r\n\t\t\t\t\t\tLineItemPercentage : vm.LineItemList[i].LineItemPercentage,\r\n\t\t\t\t\t\tdLineItemWinPrice: vm.LineItemList[i].dLineItemWinPrice,\r\n\t\t\t\t\t\t// dFreelancerPrice: vm.LineItemList[i].dFreelancerPrice,\r\n\t\t\t\t\t\tLineItemQuantity: vm.LineItemList[i].LineItemQuantity,\r\n\t\t\t\t\t\tFreelancerPrice: vm.LineItemList[i].LineItemFreelancerPrice,\r\n\t\t\t\t\t\tRemarks: vm.LineItemList[i].LineItemRemark,\r\n\t\t\t\t\t\tLineItemCompanyProvided: vm.LineItemList[i].LineItemCompanyProvided,\r\n\t\t\t\t\t\tLineItemId: vm.LineItemList[i].LineItemId,\r\n\t\t\t\t\t\tLineItemCode: vm.LineItemList[i].LineItemCode,\t\t\t\r\n\t\t\t\t\t\tLineItemUnit: vm.LineItemList[i].LineItemUnit,\t\t\t\t\t\t\r\n\t\t\t\t\t\tLineItemAttachment: vm.LineItemList[i].LineItemAttachment,\r\n\t\t\t\t\t\tLineItemHSNCode: null,\r\n\t\t\t\t\t\tLineItemDisplayDescription: null,\r\n\t\t\t\t\t\tLineItemRemark: null,\r\n\t\t\t\t\t\tdLineItemFreelancerPrice: vm.LineItemList[i].dLineItemFreelancerPrice,\r\n\t\t\t\t\t\tLineItemRemark: vm.Remarks,\r\n\t\t\t\t\t\t// LineItemQuantity: \"1\",\r\n\t\t\t\t\t\tLineItemAction: null,\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t }\r\n\t\t\t\t\t vm.PriceLineItemList.push(tData);\r\n\t\t\t\t\t var _baseprice=0.0;\r\n\t\t\t\t\t var _dFprice=0.0;\r\n\t\t\t\t\t var _lineitemquantity = 0.0;\r\n\t\t\t\t\t var _lineitemfreelancerprice = 0.0;\r\n\t\t\t\t\t if(vm.LineItemList[i].dLineItemWinPrice==\"\" || vm.LineItemList[i].dLineItemWinPrice==null)\r\n\t\t\t\t\t\t\t_baseprice = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_baseprice = vm.LineItemList[i].dLineItemWinPrice;\r\n\r\n\t\t\t\t\t\tif(vm.LineItemList[i].dLineItemFreelancerPrice==\"\" || vm.LineItemList[i].dLineItemFreelancerPrice==null)\r\n\t\t\t\t\t\t\t_dFprice = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_dFprice = vm.LineItemList[i].dLineItemFreelancerPrice;\r\n\t\t\t\t\t\tif(vm.LineItemList[i].LineItemQuantity==\"\" || vm.LineItemList[i].LineItemQuantity==null)\r\n\t\t\t\t\t\t\t_lineitemquantity = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_lineitemquantity = vm.LineItemList[i].LineItemQuantity;\r\n\t\t\t\t\t\tif(vm.LineItemList[i].LineItemFreelancerPrice==\"\" || vm.LineItemList[i].LineItemFreelancerPrice==null)\r\n\t\t\t\t\t\t\t_lineitemfreelancerprice = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_lineitemfreelancerprice = vm.LineItemList[i].LineItemFreelancerPrice;\r\n\r\n\t\t\t\t\tif(vm.LineItemList[i].LineItemCategory !=\"Collection\" && vm.LineItemList[i].LineItemCategory !=\"Penalty\"){\r\n\r\n\t\t\t\t\t// if(vm.LineItemList[i].LineItemCategory !=\"General\"){\r\n\t\t\t\t\t vm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(_baseprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t vm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(_dFprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// else{\r\n\t\t\t\t\t\tif(vm.LineItemList[i].LineItemCompanyProvided==\"No\")\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t_baseprice=0.0;\r\n\t\t\t\t\t\t\t_dFprice=0.0;\r\n\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(_baseprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(_dFprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t// }\t\t\t \r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(vm.LineItemList[i].LineItemCategory ==\"Penalty\") {\r\n\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(_baseprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(_dFprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t \r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t }\r\n\t\t\t\t})\r\n\t\t\t }\r\n\t\t\t vm.OnLoadLineItemDetails(vm.TicketId);\r\n\t\t\t vm.GetAllJobLineItems = function(ticketId){\t\t\t\t \r\n\t\t\t\tjobDetailsService.GetJobLineItem(loggedinUser, ticketId, token).then(function(resp){\r\n\t\t\t\t if (resp.status==200) {\r\n\t\t\t\t vm.JobItemList = resp.data;\r\n\t\t\t\t }\r\n\t\t\t\t})\r\n\t\t\t }\r\n\t\t\t vm.ActivityDescription=[];\r\n\t\t\t \r\n\t\t\t vm.getLineItemAcitivityDesc = function(LineItemCategoryType){\r\n\t\t\t\tvm.LineItemDisc=\"\";\r\n\t\t\t\tvar LineItemAcitivityArray = [];\r\n\t\t\t\t for (var i = 0; i < vm.JobItemList.length; i++) {\r\n\t\t\t\t\t if (vm.JobItemList[i].LineItemCategory == LineItemCategoryType) {\r\n\t\t\t\t\t\tLineItemAcitivityArray.push(vm.JobItemList[i]);\r\n\t\t\t\t\t }\r\n\t\t\t\t }\r\n\t\t\t\t vm.LineitemActivityList=LineItemAcitivityArray;\r\n\t\t\t\tif(LineItemCategoryType==\"Service\"){\r\n\t\t\t\t\tvm.fileuploadShow=false;\t\r\n\t\t\t\t\t vm.qunatityEnable=false;\r\n\t\t\t\t\t vm.PercentageEnable=false;\t\r\n\t\t\t\t}\r\n\t\t\t\tif(LineItemCategoryType==\"HW\"){\t\r\n\t\t\t\t vm.qunatityEnable=false; \r\n\t\t\t\t vm.fileuploadShow=true;\r\n\t\t\t\t vm.PercentageEnable=false;\t\r\n\t\t\t\t vm.disableProvided=false;\r\n\t\t\t\t} \r\n\t\t\t\tif(LineItemCategoryType==\"General\")\r\n\t\t\t\t{\r\n\t\t\t\t\tvm.qunatityEnable=true; \r\n\t\t\t\t\tvm.PercentageEnable=true;\r\n\t\t\t\t}\r\n\t\t\t\t vm.ActivityDescription = vm.getRemainingLineItems();\r\n\t\t\t\t}\r\n\t\t\t\tvm.LineItemCompanyProvidedChange = function(LineItemCompanyProvided,index){\r\n\t\t\t\t\tif(typeof index === \"undefined\"){\r\n\t\t\t\t\t if(LineItemCompanyProvided==\"Yes\"){ \r\n\t\t\t\t\t\tif((vm.LineItemCategoryType==\"HW\" || vm.LineItemCategoryType==\"Service\" ) && vm.LineItemList.LineItemDescription==\"Others\"){\r\n\t\t\t\t\t\t vm.LineItemList.dLineItemFreelancerPrice = 0;\r\n\t\t\t\t\t\t vm.CompanyProvidedEnable=true;\r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t if(vm.LineItemCategoryType==\"HW\" && vm.LineItemList.LineItemDescription==\"Others\"){\r\n\t\t\t\t\t\t\tvm.LineItemList.dLineItemFreelancerPrice = 0;\r\n\t\t\t\t\t\t\tvm.CompanyProvidedEnable=true;\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled=false;\r\n\t\t\t\t\t\t } \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(vm.LineItemCategoryType==\"Bonus\" || vm.LineItemCategoryType==\"Penalty\" ){\r\n\t\t\t\t\t\t\tvm.CompanyProvidedEnable=true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable=true; \r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t vm.LineItemList.origdLineItemFreelancerPrice = vm.LineItemList.dLineItemFreelancerPrice;\t\t\t\t\t \r\n\t\t\t\t\t\t vm.LineItemList.dLineItemFreelancerPrice = 0; \r\n\t\t\t\t\t\t vm.CompanyProvidedEnable=true;\r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t }\r\n\t\t\t\t\t else{\r\n\t\t\t\t\t\tif((vm.LineItemCategoryType==\"HW\" || vm.LineItemCategoryType==\"Service\" )&& vm.LineItemList.LineItemDescription==\"Others\"){ \r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=false; \r\n\t\t\t\t\t\t vm.CompanyProvidedEnable=false; \r\n\t\t\t\t\t\t if(vm.LineItemCategoryType==\"HW\" && vm.LineItemList.LineItemDescription==\"Others\"){\r\n\t\t\t\t\t\t \tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t\tvm.LineItemList.dLineItemFreelancerPrice = vm.LineItemList.dLineItemWinPrice?vm.LineItemList.dLineItemWinPrice:0; \r\n\t\t\t\t\t\t } \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{ \r\n\t\t\t\t\t\t vm.CompanyProvidedEnable=false;\r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t vm.LineItemList.dLineItemFreelancerPrice = vm.LineItemList.origdLineItemFreelancerPrice; \r\n\t\t\t\t\t\t} \r\n\t\t\t\t\t } \r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t if(LineItemCompanyProvided==\"Yes\"){ \r\n\t\t\t\t\t \tvm.PriceLineItemList[index].origdLineItemFreelancerPrice = vm.PriceLineItemList[index].dLineItemFreelancerPrice; \r\n\t\t\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice = 0; \r\n\t\t\t\t\t\tvm.CompanyProvidedEnable=true;\r\n\t\t\t\t\t\tvm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"HW\" && vm.PriceLineItemList[index].LineItemDescription==\"Others\"){ \r\n\t\t\t\t\t\t vm.PriceLineItemList[index].dLineItemFreelancerPrice = 0; \r\n\t\t\t\t\t\t vm.CompanyProvidedEnable=true;\r\n\t\t\t\t\t\t vm.FreelancrPriceEnable=true; \r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=false; \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t }\r\n\t\t\t\t\t else{ \r\n\t\t\t\t\t\tvm.CompanyProvidedEnable=false; \r\n\t\t\t\t\t\tvm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"HW\" ){\r\n\t\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemDescription==\"Others\"){\r\n\t\t\t\t\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice = vm.PriceLineItemList[index].dLineItemWinPrice;\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t \t\tvm.CompanyProvidedEnable=false;\r\n\t\t\t\t\t\t \t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t \t\tvm.IsBasePriceDisabled=false; \r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice = vm.PriceLineItemList[index].origdLineItemFreelancerPrice;\r\n\t\t\t\t }\t\t\t\t\t\t \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t }\r\n\t\t\t\t\t} \r\n\t\t\t\t }\r\n\t\t\t vm.LineItemEdit = function(index){\r\n\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"Collection\")\r\n\t\t\t\t{\r\n\t\t\t\t vm.IsBasePriceDisabled=true; \r\n\t\t\t\t vm.PercentageEnable=true; \r\n\t\t\t\t vm.disableProvided=true; \r\n\t\t\t\t vm.qunatityEnable=true;\r\n\t\t\t\t vm.FreelancrPriceEnable=false;\r\n\t\t \r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"General\")\r\n\t\t\t\t{\t\t\t\t\r\n\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\tvm.qunatityEnable=true; \r\n\t\t\t\t\tvm.disableProvided=true;\r\n\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"Service\")\r\n\t\t\t\t{\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"Service\" && vm.PriceLineItemList[index].LineItemDescription==\"Others\") \r\n\t\t\t\t\t{ \r\n\t\t\t\t\t \r\n\t\t\t\t\t vm.CompanyProvidedEnable=false;\r\n\t\t\t\t\t vm.IsBasePriceDisabled=false; \r\n\t\t\t\t\t vm.PercentageEnable=true;\r\n\t\t\t\t\t vm.disableProvided=true;\r\n\t\t\t\t\t vm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t vm.qunatityEnable=false;\r\n\t\t\t\t\t vm.disableProvided=true;\r\n\t\t\t\t\t vm.PercentageEnable=false;\r\n\t\t\t\t\t vm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t vm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"Bonus\" || vm.PriceLineItemList[index].LineItemCategory==\"Penalty\"){\t\t\r\n\t\t\t\t\t vm.qunatityEnable=true;\r\n\t\t\t\t\t vm.disableProvided=true;\r\n\t\t\t\t\t vm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t vm.FreelancrPriceEnable=false;\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t if(vm.PriceLineItemList[index].LineItemCategory==\"HW\")\r\n\t\t\t {\r\n\r\n\t\t\t\t\t vm.qunatityEnable=false;\r\n\t\t\t\t\t vm.disableProvided=false;\r\n\t\t\t\t\t if(vm.PriceLineItemList[index].LineItemCompanyProvided==\"Yes\")\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"HW\" && vm.PriceLineItemList[index].LineItemDescription==\"Others\") \r\n\t\t\t\t\t\t{\t\t\t\t\t \r\n\t\t\t\t\t\t vm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=false;\r\n\t\t\t\t\t\t vm.disableProvided=false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled=false;\r\n\t\t\t\t\t\t\tvm.disableProvided=false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t }\r\n\t\t\t\t\t else\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"HW\" && vm.PriceLineItemList[index].LineItemDescription==\"Others\") \r\n\t\t\t\t\t\t{\t\t\t\t\t \r\n\t\t\t\t\t\t vm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=false;\r\n\t\t\t\t\t\t vm.disableProvided=false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t\tvm.disableProvided=false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t }\r\n\t\t\t\t\t\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\t\tvm.LineItemCompanyProvided=vm.PriceLineItemList[index].LineItemCompanyProvided;\r\n\r\n\t\t\t}\r\n\t\t\tvm.OnBasePriceChange = function()\r\n\t\t\t{\t\t\t \r\n\t\t\t //fl = bp-bp*(per/100)\r\n\t\t\t if(vm.LineItemList.LineItemPercentage==\"\" || parseFloat(vm.LineItemList.LineItemPercentage)<1)\r\n \t\tvm.LineItemList.LineItemPercentage=0.0;\r\n\t\t\t vm.FreelancerPrice = (parseFloat(vm.LineItemList.dLineItemWinPrice) - parseFloat(vm.LineItemList.dLineItemWinPrice) * (parseFloat(vm.LineItemList.LineItemPercentage) / 100)).toFixed(2);\r\n\t\t\t vm.FreelancerPrice = vm.FreelancerPrice * parseFloat(vm.LineItemList.LineItemQuantity);\r\n\t\t\t}\r\n\r\n\t\t\tvm.LineItemDetails = function(ObjLineItem){\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tvar LineItemId=ObjLineItem.LineItemId;\r\n\t\t\t\t\tjobCreationService.ItemLineDetails(loggedinUser, vm.projectId, LineItemId, token).then(function(resp){\r\n\t\t\t\t\tif (resp.status==200) {\r\n\t\t\t\t\t\tvm.LineItemList = resp.data;\r\n\t\t\t\t\t\tvm.LineItemList.LineItemQuantity=1;\r\n\t\t\t\t\t\tvm.LineItemCompanyProvided= vm.LineItemList.LineItemCompanyProvided;\r\n\t\t\t\t\t\tif(vm.LineItemCategoryType==\"Collection\"){\r\n\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t\t\tvm.disableProvided=true; \r\n\t\t\t\t\t\t\t\tvm.qunatityEnable=true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\tif(vm.LineItemCompanyProvided==\"Yes\"){\r\n\t\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType==\"General\"){\r\n\t\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType == \"Service\"){\r\n\t\t\t\t\t\t\t\t\t\t\tvm.disableProvided=true; \t\r\n\t\t\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t\t\t\tvm.disableProvided=false;\r\n\t\t\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if(vm.LineItemCategoryType==\"General\"){\r\n\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t\t\t\tvm.qunatityEnable=true; \r\n\t\t\t\t\t\t\t\t\tvm.disableProvided=true;\r\n\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType == \"Service\"){\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tvm.disableProvided=true; \t\r\n\t\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t\t\tvm.disableProvided=false;\r\n\t\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType==\"HW\" && ObjLineItem.LineItemDescription==\"Others\"){\r\n\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=false; \r\n\t\t\t\t\t\t\t\t\tvm.PercentageEnable=true; \r\n\t\t\t\t\t\t\t\t\tvm.disableProvided=false; \r\n\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false; \r\n\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType==\"Service\" && ObjLineItem.LineItemDescription==\"Others\"){\r\n\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=false; \r\n\t\t\t\t\t\t\t\t\tvm.PercentageEnable=true; \r\n\t\t\t\t\t\t\t\t\tvm.disableProvided=true; \r\n\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false; \r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType==\"Bonus\" || ObjLineItem.LineItemDescription==\"Penalty\"){\r\n\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t\t\t\tvm.PercentageEnable=true; \r\n\t\t\t\t\t\t\t\t\tvm.disableProvided=true; \r\n\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false; \r\n\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t//vm.calculateLineItemPrice();\t\r\n\t\t\t\t\t\t\t\t//vm.OnBasePriceChange();\r\n\t\t\t\t\t\t\t}\t\t\t \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\t\r\n\t\t\t vm.searchButtonText = \"Save\";\r\n\t\t\t vm.addPriceLineItem = function(){ \r\n\r\n\t\t\t\tif(!vm.LineItemCategoryType){\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"Please select category type\"); \r\n\t\t\t\t\treturn; \r\n\t\t\t\t} \r\n\t \r\n\t\t\t\tif(!vm.LineItemDisc){\r\n\t\t\t\t vm.showFailure(\"Warning\", \"Please select activity description\"); \r\n\t\t\t\t return; \r\n\t\t\t\t} \r\n\t \r\n\t\t\t\tif(vm.LineItemCategoryType!=\"Collection\" && vm.LineItemCategoryType!=\"General\" && vm.LineItemCategoryType!=\"Bonus\"&& vm.LineItemCategoryType!=\"Penalty\"){\r\n\t\t\t\t\tif(vm.LineItemList.dLineItemWinPrice==\"\" || vm.LineItemList.dLineItemWinPrice==\"0\" \r\n\t\t\t\t\t|| parseInt(vm.LineItemList.dLineItemWinPrice) < 1)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter base price\"); \r\n\t\t\t\t\t\treturn; \r\n\t\t\t\t\t} \r\n\t\t\r\n\t\t\t\t\tif(vm.LineItemCompanyProvided ==\"\"){\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please select company provided yes or no\"); \r\n\t\t\t\t\t\treturn; \r\n\t\t\t\t\t} \r\n\t\t\t\t\t\r\n\t\t\t\t\tif(vm.LineItemList.LineItemQuantity==\"\"){\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter quantity\"); \r\n\t\t\t\t\t\treturn; \r\n\t\t\t\t\t}\r\n\t\t\r\n\t\t\t\t\tif(vm.LineItemList.LineItemQuantity==0){\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"zero (0) quantity not allowed\"); \r\n\t\t\t\t\t\treturn; \r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(vm.LineItemList.LineItemDescription == \"Others\" && (parseFloat(vm.LineItemList.dLineItemFreelancerPrice) > parseFloat(vm.LineItemList.dLineItemWinPrice))){\r\n \t\t\tvm.showFailure(\"Warning\", \"Please enter freelancer price less or equal to win price\");\r\n \t\t\treturn;\r\n \t\t}\r\n\t\t\r\n\t\t\t\t\tif(vm.LineItemList.dLineItemFreelancerPrice==\"\" || vm.LineItemList.dLineItemFreelancerPrice==\"0\" \r\n\t\t\t\t\t|| parseInt(vm.LineItemList.dLineItemFreelancerPrice) < 1){\r\n\t\t\t\t\t\tif(vm.LineItemCategoryType==\"HW\" && vm.LineItemCompanyProvided==\"Yes\")\r\n\t\t\t\t\t\t{\r\n\t\t \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t vm.showFailure(\"Warning\", \"Please enter freelancer price\");\r\n\t\t\t\t\t\t return; \r\n\t\t\t\t\t\t} \r\n\t\t\t\t\t} \r\n\t\t\t \t} \r\n\t\t\t\tvar tData = {\r\n\t\t\t\t\tLineItemDescription: vm.LineItemList.LineItemDescription,\r\n\t\t\t\t\tLineItemCategory: vm.LineItemCategoryType, \r\n\t\t\t\t\tdLineItemWinPrice: vm.LineItemList.dLineItemWinPrice,\r\n\t\t\t\t\tLineItemId: vm.LineItemDisc.LineItemId,\r\n\t\t\t\t\tLineItemCode: vm.LineItemList.LineItemCode,\r\n\t\t\t\t\tLineItemQuantity: vm.LineItemList.LineItemQuantity, \r\n\t\t\t\t\tdLineItemFreelancerPrice: vm.LineItemList.dLineItemFreelancerPrice,\r\n\t\t\t\t\torigdLineItemFreelancerPrice: vm.LineItemList.origdLineItemFreelancerPrice,\r\n\t\t\t\t\tLineItemRemark: vm.Remarks,\r\n\t\t\t\t\tLineItemUnit: vm.LineItemList.LineItemUnit,\r\n\t\t\t\t\tLineItemCompanyProvided: vm.LineItemCompanyProvided,\r\n\t\t\t\t\tLineItemAction: \"Add\",\r\n\t\t\t\t\tLineItemAttachment: \"\", \r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar basePrice = vm.LineItemList.dLineItemWinPrice;\r\n\t\t\t\tvar dFprice = vm.LineItemList.dLineItemFreelancerPrice; \r\n\t\t\t\tvar LineItemQuantity = vm.LineItemList.LineItemQuantity; \r\n\t\t\t\t\t \r\n\t\t\t\tif(vm.LineItemCategoryType!=\"Collection\" && vm.LineItemCategoryType!=\"Penalty\"){\r\n\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(basePrice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\tif(vm.LineItemCategoryType==\"Bonus\"){\r\n\t\t\t\t\t\tvar FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\t\tif(parseInt(FLPriceTotal) <= parseInt(vm.BasePriceTotal)){\r\n\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tvar maxBonus = (parseFloat(vm.BasePriceTotal) - parseFloat(vm.dFreelancerPriceTotal)).toFixed(2);\r\n\t\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter bonus price less or equal to \" + maxBonus);\r\n\t \t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\tif(vm.LineItemCategoryType==\"Penalty\"){\r\n\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - (parseFloat(basePrice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\tvar FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\tif(parseInt(FLPriceTotal) >= 0 ){\r\n\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\t\t\t\t\t\t\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter penalty price less or equal to \" + vm.dFreelancerPriceTotal);\r\n \t\t\treturn true;\r\n\t\t\t\t\t}\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(tData.LineItemDescription){ \r\n\t\t\t\t\tvm.PriceLineItemList.push(tData); \r\n\t\t\t\t\tvm.showTCList = false; \r\n\t\t\t\t\tvm.EmptyLineItemDetails(); \r\n\t\t\t\t}else{\r\n\t\t\t\t\tvm.showTCList = false;\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"You must select activity description\");\r\n\t\t\t\t} \r\n\t\t\t\tvm.LineItemCategoryType=\"\";\r\n\t\t\t\tvm.LineItemDisc=\"\";\r\n\t\t\t }\r\n\r\n\t\t\t vm.getRemainingLineItems = function () { \r\n\t\t\t\tvar RemovePriceLineItems = [];\r\n\t\t\t\tvar remainingPriceLineItems = Array.from(vm.LineitemActivityList);\r\n\t\t\t\tangular.forEach(remainingPriceLineItems, function (d) {\r\n\t\t\t\t\tfor (var i = 0; i < vm.PriceLineItemList.length; i++) {\r\n\t\t\t\t\t\tif (d.LineItemDescription == vm.PriceLineItemList[i].LineItemDescription && d.LineItemCategory==vm.PriceLineItemList[i].LineItemCategory) {\r\n\t\t\t\t\t\t RemovePriceLineItems.push(d);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tangular.forEach(RemovePriceLineItems, function (s) {\r\n\t\t\t\t remainingPriceLineItems.splice(remainingPriceLineItems.indexOf(s), 1);\r\n\t\t\t\t}) \r\n\t\t\t\treturn remainingPriceLineItems;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t vm.showTCList = false;\r\n\t\t\t vm.showTotal = true;\t\t\t \r\n\t\t\t\tvm.addMoreCertificateInTable = function(){\r\n\t\t\t\t\tvm.showTCList = true;\r\n\t\t\t\t\tvm.showTotal = true;\r\n\t\t\t\t\tvm.tempCertificateAdd = true;\r\n\t\t\t\t}\t\t\r\n\t\t\t\tvm.tempCertificateAdd = false;\r\n\t\t\r\n\t\t\t\tvm.calculateLineItemPrice = function (index) { \r\n\t\t\t\t\t \r\n\t\t\t\t\tif(typeof index === \"undefined\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar basePrice = vm.LineItemList.dLineItemWinPrice;\t \r\n\t\t\t\t\t\tvar LineItemQuantity = vm.LineItemList.LineItemQuantity;\r\n\t\t\t\t\t\t// if(percentage==\"\")\r\n\t\t\t\t\t\t// \tprice=0;\r\n\t\t\t\t\t\t// else \r\n\t\t\t\t\t\t// \tprice = parseInt(LineItemQuantity) * parseFloat(basePrice) * parseFloat(percentage)/100;\r\n\t\t\t\t\t\tif(LineItemQuantity==\"\")\r\n\t\t\t\t\t\t\ttotalFPrice=0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\ttotalFPrice = parseInt(LineItemQuantity) * basePrice - price;\r\n\t\t\t\t\t\tif(vm.LineItemList.LineItemCategory==\"HW\" && vm.LineItemList.LineItemCompanyProvided==\"Yes\" && (percentage==0.0 || percentage==0)){\r\n\t\t\t\t\t\t\ttotalFPrice=0.0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvm.FreelancerPrice = totalFPrice.toFixed(2); \r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{ \r\n\t\t\t\t\t\tvar basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t\t\t\t\t// var percentage = vm.PriceLineItemList[index].LineItemPercentage;\r\n\t\t\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\t\t\t\t\t\t// var price = parseInt(Quantity) * parseFloat(basePrice) * parseFloat(percentage)/100;\r\n\t\t\t\t\t\t// var totalFPrice = parseInt(Quantity) * basePrice - price;\r\n\t\t\t\t\t\t// vm.PriceLineItemList[index].FreelancerPrice = totalFPrice.toFixed(2);\r\n\t\t\t\t\r\n\t\t\t\t\t\tif(percentage==\"\")\r\n\t\t\t\t\t\t\tprice=0;\r\n\t\t\t\t\t\telse \r\n\t\t\t\t\t\t\tprice = parseInt(LineItemQuantity) * parseFloat(basePrice) * parseFloat(percentage)/100;\r\n\t\t\t\t\t\tif(LineItemQuantity==\"\")\r\n\t\t\t\t\t\t\ttotalFPrice=0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\ttotalFPrice = parseInt(LineItemQuantity) * basePrice - price;\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"HW\" && vm.PriceLineItemList[index].LineItemCompanyProvided==\"Yes\" && (percentage==0.0 || percentage==0)){\r\n\t\t\t\t\t\t\ttotalFPrice=0.0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].FreelancerPrice = totalFPrice.toFixed(2);\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t }\r\n\t\t\t\t vm.FreelancerChangeCal=function(index)\r\n\t\t\t\t {\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tif(typeof index === \"undefined\")\r\n\t\t\t\t\t\t{ \r\n\t\t\t\t\t\t\tif(vm.LineItemCategoryType!=\"Collection\")\r\n \t\t\t\t\t\t{ \r\n\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType!=\"General\")\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(vm.FreelancerPrice==\"\")\r\n\t\t\t\t\t\t\t\tvm.LineItemList.LineItemPercentage=100;\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tif( parseFloat(vm.FreelancerPrice)> ( parseFloat(vm.LineItemList.dLineItemWinPrice) * parseFloat(vm.LineItemList.LineItemQuantity)))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tvm.showFailure(\"Warning\",\"Freelancer price should be less than or equal to base price\");\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tvm.LineItemList.LineItemPercentage = (((parseFloat(vm.LineItemList.dLineItemWinPrice)-(parseFloat(vm.FreelancerPrice)/parseFloat(vm.LineItemList.LineItemQuantity)))/parseFloat(vm.LineItemList.dLineItemWinPrice))*100).toFixed(2);\r\n\t\t\t\t\t\t\t\tif(vm.LineItemList.LineItemPercentage==\"NaN\")\r\n\t\t\t\t\t\t\t\t\tvm.LineItemList.LineItemPercentage=0.0;\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\")\r\n \t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory !=\"General\")\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemPercentage==\"\")\r\n\t\t\t\t\t\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage=0.0;\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tif( parseFloat(vm.PriceLineItemList[index].FreelancerPrice)> ( parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice) * parseFloat(vm.PriceLineItemList[index].LineItemQuantity)))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tvm.showFailure(\"Warning\",\"Freelancer price should be less than or equal to base price\");\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage = (((parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice)-(parseFloat(vm.PriceLineItemList[index].FreelancerPrice)/parseFloat(vm.PriceLineItemList[index].LineItemQuantity)))/parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice))*100).toFixed(2);\r\n\t\t\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemPercentage==\"NaN\")\r\n\t\t\t\t\t\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage=100.00;\r\n\t\t\t\t\t\t\t\t}\t\t\t\t\t \r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\tvm.EditUpdateCalculation = function(index)\r\n\t\t\t\t{\r\n\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemDescription == \"Others\" && (parseFloat(vm.PriceLineItemList[index].dLineItemFreelancerPrice) > parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice))){\r\n\t \t\tvm.showFailure(\"Warning\", \"Please enter freelancer price less or equal to win price\");\r\n\t \t\treturn true;\r\n\t \t}\r\n\r\n\t \tif(vm.PriceLineItemList[index].LineItemDescription==\"Bonus\"){\r\n var FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(vm.PriceLineItemList[index].dLineItemFreelancerPrice) * parseInt(vm.PriceLineItemList[index].LineItemQuantity))).toFixed(2);\r\n if(parseInt(FLPriceTotal) > parseInt(vm.BasePriceTotal)){ \r\n var maxBonus = (parseFloat(vm.BasePriceTotal) - parseFloat(vm.dFreelancerPriceTotal)).toFixed(2);\r\n vm.showFailure(\"Warning\", \"Please enter bonus price less or equal to \" + maxBonus);\r\n return true;\r\n }\r\n }\r\n else if(vm.PriceLineItemList[index].LineItemDescription==\"Penalty\"){\t \r\n\t var FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(vm.PriceLineItemList[index].dLineItemFreelancerPrice) * parseInt(vm.PriceLineItemList[index].LineItemQuantity))).toFixed(2);\r\n\t if(parseInt(FLPriceTotal) < 0 ){\t \r\n\t vm.showFailure(\"Warning\", \"Please enter penalty price less or equal to \" + vm.dFreelancerPriceTotal);\r\n\t return true;\r\n\t } \r\n\t }\r\n\r\n\r\n\t\t\t\t\tvm.BasePriceTotal=0.0;\r\n\t\t\t\t\tvm.dFreelancerPriceTotal=0.0;\t\t\t\t\t\r\n\t\t\t\t\tfor(var i = 0; i < vm.PriceLineItemList.length; i++)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[i].LineItemCategory!=\"Collection\"){\r\n\t\t\t\t\t\t\tvar basePrice = vm.PriceLineItemList[i].dLineItemWinPrice;\r\n\t\t\t\t\t\t\tvar dFprice = vm.PriceLineItemList[i].dLineItemFreelancerPrice;\r\n\t\t\t\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[i].LineItemQuantity;\r\n\t\t\t\t\t\t\tif(vm.PriceLineItemList[i].LineItemCategory == \"General\")\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(vm.PriceLineItemList[i].LineItemCompanyProvided==\"No\")\r\n\t\t\t\t\t\t\t\t\tbasePrice=0.0;\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(basePrice) * LineItemQuantity)).toFixed(2);\r\n\t\t\t\t\t \t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * LineItemQuantity)).toFixed(2);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} \r\n\t\t\t\t\tvm.PriceLineItemList[index].edit=false;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t//delete row non edit\r\n\tvm.removeLineItem = function(index){ \r\n\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\" && vm.PriceLineItemList[index].LineItemCategory!=\"Penalty\"){\r\n\t\t var basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t var dFprice = vm.PriceLineItemList[index].dLineItemFreelancerPrice;\r\n\t\t var LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\t\t vm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - parseFloat(basePrice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t vm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - parseFloat(dFprice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t}\r\n\t\telse if(vm.PriceLineItemList[index].LineItemCategory==\"Penalty\") {\r\n\t\t\tvar basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t\tvar dFprice = vm.PriceLineItemList[index].dLineItemFreelancerPrice;\r\n\t\t\tvar LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + parseFloat(basePrice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + parseFloat(dFprice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t \r\n\t\t}\r\n\t\tvm.PriceLineItemList.splice(index, 1);\r\n\t } \t\r\n\t\t\t\t\r\n\t\tvm.updateRomoveLineItem = function(index,action)\r\n\t\t{\t\t\r\n\t\t\t\r\n\t\t\tif(action==\"Update\"){\r\n\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\")\r\n\t\t\t\t{\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemQuantity==\"\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].edit=true;\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter quantity\"); \r\n\t\t\t\t\t\treturn; \r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemQuantity==0){\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].edit=true;\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"zero (0) quantity not allowed\"); \r\n\t\t\t\t\t\treturn; \r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"General\"){\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"HW\" && vm.LineItemCompanyProvided==\"Yes\"){}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].dLineItemWinPrice==\"\" || vm.PriceLineItemList[index].dLineItemWinPrice==\"0\" || parseInt(vm.PriceLineItemList[index].dLineItemWinPrice) < 1)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvm.PriceLineItemList[index].edit=true;\r\n\t\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter base price\"); \r\n\t\t\t\t\t\t\treturn; \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(parseFloat(vm.PriceLineItemList[index].LineItemPercentage)>100)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvm.PriceLineItemList[index].edit=true;\r\n\t\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter percentage 100 or less than 100\"); \r\n\t\t\t\t\t\t\treturn; \r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif( parseFloat(vm.PriceLineItemList[index].FreelancerPrice)> ( parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice) * parseFloat(vm.PriceLineItemList[index].LineItemQuantity)))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvm.PriceLineItemList[index].edit=true;\r\n\t\t\t\t\t\t\tvm.showFailure(\"Warning\",\"Freelancer price should be less than or equal to base price\");\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].FreelancerPrice==\"\" || typeof vm.PriceLineItemList[index].FreelancerPrice === \"undefined\")\r\n\t\t\t\t\tvm.PriceLineItemList[index].FreelancerPrice=\"0\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"General\")\r\n\t\t\t{ \r\n\t\t\t\tvm.PriceLineItemList[index].dLineItemWinPrice=0.0;\r\n\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice=0.0;\r\n\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage=0.0;\r\n\t\t\t}\r\n\t\t\tif(vm.PriceLineItemList[index].dLineItemWinPrice==\"\")\r\n\t\t\t\tvm.PriceLineItemList[index].dLineItemWinPrice=0.0;\r\n\t\t\tif(vm.PriceLineItemList[index].dLineItemFreelancerPrice==\"\")\r\n\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice=0.0;\r\n\t\t\tif(vm.PriceLineItemList[index].LineItemPercentage==\"\")\r\n\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage=0.0;\r\n\t\t\tif(vm.PriceLineItemList[index].LineItemQuantity==\"\")\r\n\t\t\t\tvm.PriceLineItemList[index].LineItemQuantity=1;\r\n\t\t\tif(vm.PriceLineItemList[index].FreelancerPrice==\"\")\r\n\t\t\t\tvm.PriceLineItemList[index].FreelancerPrice=0.0;\r\n\r\n\t\t\t\t\r\n\t\t\tvar Requestdata = {\t\t\t\t\t \r\n\t\t\t\tLineItemDescription: vm.PriceLineItemList[index].LineItemDescription,\r\n\t\t\t\tLineItemCategory: vm.PriceLineItemList[index].LineItemCategory,\r\n\t\t\t\tLineItemPercentage : vm.PriceLineItemList[index].LineItemPercentage,\r\n\t\t\t\tdLineItemWinPrice: vm.PriceLineItemList[index].dLineItemWinPrice,\r\n\t\t\t\tdLineItemFreelancerPrice: vm.PriceLineItemList[index].dLineItemFreelancerPrice,\r\n\t\t\t\tLineItemId: vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t\tLineItemCode: vm.PriceLineItemList[index].LineItemCode,\r\n\t\t\t\tLineItemQuantity: vm.PriceLineItemList[index].LineItemQuantity,\r\n\t\t\t\tLineItemFreelancerPrice: vm.ConverttoDecimal(vm.PriceLineItemList[index].FreelancerPrice),\r\n\t\t\t\tLineItemRemark: vm.PriceLineItemList[index].Remarks,\r\n\t\t\t\tLineItemUnit: vm.PriceLineItemList[index].LineItemUnit,\r\n\t\t\t\tLineItemAction: action,\r\n\t\t\t\tLineItemCompanyProvided: vm.LineItemCompanyProvided,\r\n\t\t\t\tLineItemAttachment: vm.LineItemImage\r\n\t\t }\r\n\t\t vm.PriceLineItemList[index].FreelancerPrice = vm.ConverttoDecimal(vm.PriceLineItemList[index].FreelancerPrice);\r\n\t\t vm.PriceLineItemList[index].LineItemPercentage = vm.ConverttoDecimal(vm.PriceLineItemList[index].LineItemPercentage);\r\n\t\t vm.LineItemDataList.push(Requestdata);\r\n\t\t userFormData = { \r\n\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\"LineItemRequestList\": vm.LineItemDataList\t\t\t \r\n\r\n\t\t}\r\n\t\t//vm.PriceLineItemList[index].LineItemCompanyProvided=vm.LineItemCompanyProvided;\r\n\r\n\t\t// vm.enable = \"false\";\r\n\t\t// if(action==\"Update\"){\t\t\t\t\r\n\t\t// vm.updateButtonText = \"Updating\";\r\n\t\t// vm.PriceLineItemList[index].edit=true;\r\n\t\t// }\r\n\t\t// else\r\n\t\t// vm.removeButtonText = \"Removing\";\r\n\t\r\n\t jobDetailsService.CreateUpdateRemoveLineItem(userFormData,loggedinUser,token).then(function(resp){\r\n\t\t\t//$timeout(function(){\r\n\t\t\t\t\r\n\t\t\tif (resp.status==201) { \r\n\t\t\t\tvar msg=\"\";\r\n\t\t\t\tif(action==\"Update\"){\t\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\"){\t\t\t\t\r\n\t\t\t\t\t\tvm.EditUpdateCalculation(index);\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tjobDetailsService.UpdateJobPaymentDynamicPrice(loggedinUser, vm.TicketId, vm.BasePriceTotal, vm.PercentageTotal, vm.FreelancerPriceTotal, vm.IsFinalApproval, token, function (res) {\r\n\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t//vm.showSuccess(\"Success\", res);\t\t\t\t\t\r\n\t\t\t\t\t\tmsg = \"LineItem has been updated successfully\";\r\n\t\t\t\t\t\tvm.LineItemDataList=[];\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\t\r\n\t\t\t\t\t\t// vm.enable = \"true\";\r\n\t\t\t\t\t\t// vm.updateButtonText = \"Update\";\r\n\t\t\t\t\t\t//vm.PriceLineItemList[index].edit=false;\r\n\t\t\t\t\t\t}, 1000);\t\t\t\t\t\t\r\n\t\t\t\t\t}, vm.showFailure);\t\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\tmsg = \"LineItem has been updated successfully\";\r\n\t\t\t\t\t\tvm.LineItemDataList=[];\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\t\r\n\t\t\t\t\t\t}, 1000);\t\t\t\t\t\t\r\n\t\t\t\t}\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\t\t\r\n\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\")\r\n\t\t\t\t{\r\n\t\t\t\t\tvar basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t\t\t\tvar dFprice = vm.PriceLineItemList[index].dLineItemFreelancerPrice;\r\n\t\t\t\t\tvar freelancerPrice = vm.PriceLineItemList[index].FreelancerPrice;\r\n\t\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\r\n\t\t\t\t\tif(basePrice==\"\")\r\n\t\t\t\t\t\tbasePrice=0.0;\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\tif(dFprice==\"\")\r\n\t\t\t\t\t\tdFprice=0.0;\r\n\t\t\t\t\tif(freelancerPrice==\"\")\r\n\t\t\t\t\t\tfreelancerPrice=0.0;\r\n\t\t\t\t\tif(LineItemQuantity==\"\")\r\n\t\t\t\t\tLineItemQuantity=1;\r\n\r\n\t\t\t\t\tvar lessBasePrice = parseFloat(basePrice) * parseInt(LineItemQuantity);\r\n\t\t\t\t\tvar lessdFprice = parseFloat(dFprice) * parseInt(LineItemQuantity);\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory != \"General\")\r\n\t\t\t\t\t\t{\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - parseFloat(lessBasePrice)).toFixed(2);\r\n\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - parseFloat(lessdFprice)).toFixed(2);\r\n\t\t\t\t\t\t\tvm.FreelancerPriceTotal = (parseFloat(vm.FreelancerPriceTotal) - parseFloat(freelancerPrice)).toFixed(2);\r\n\t\t\t\t\t\t\tvm.PercentageTotal = (100 - (vm.FreelancerPriceTotal * 100/vm.BasePriceTotal)).toFixed(2);\r\n\t\t\t\t\t\t\tif(vm.PercentageTotal==\"NaN\")\r\n\t\t\t\t\t\t\t\tvm.PercentageTotal=0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCompanyProvided==\"No\")\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlessBasePrice =0.0;\r\n\t\t\t\t\t\t\t\tlessdFprice =0.0;\r\n\t\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - parseFloat(lessBasePrice)).toFixed(2);\r\n\t\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - parseFloat(lessdFprice)).toFixed(2);\r\n\t\t\t\t\t\t\t\tvm.FreelancerPriceTotal = (parseFloat(vm.FreelancerPriceTotal) - parseFloat(freelancerPrice)).toFixed(2);\r\n\t\t\t\t\t\t\t\tvm.PercentageTotal = (100 - (vm.FreelancerPriceTotal * 100/vm.BasePriceTotal)).toFixed(2);\r\n\t\t\t\t\t\t\t\tif(vm.PercentageTotal==\"NaN\")\r\n\t\t\t\t\t\t\t\t\tvm.PercentageTotal=0;\t\t\r\n\t\t\t\t\t\t\t\tif(vm.BasePriceTotal==\"0.00\" || vm.BasePriceTotal==\"0\")\r\n\t\t\t\t\t\t\t\t\tvm.PercentageTotal=0.00;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\")\r\n\t\t\t\t\t{\t\t\t\t\r\n\t\t\t\t\t\tjobDetailsService.UpdateJobPaymentDynamicPrice(loggedinUser, vm.TicketId, vm.BasePriceTotal, vm.PercentageTotal, vm.FreelancerPriceTotal, vm.IsFinalApproval, token, function (res) {\r\n\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t//vm.showSuccess(\"Success\", res);\t\t\t\t\t\r\n\t\t\t\t\t\t\tmsg = \"LineItem has been removed successfully\";\r\n\t\t\t\t\t\t\tvm.LineItemDataList=[];\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\t\r\n\t\t\t\t\t\t\t// vm.enable = \"true\";\r\n\t\t\t\t\t\t\t// vm.removeButtonText = \"Remove\";\r\n\t\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}, vm.showFailure);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\tmsg = \"LineItem has been removed successfully\";\r\n\t\t\t\t\t\t\tvm.LineItemDataList=[];\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\t\r\n\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t}\r\n\t\t\t\tvm.PriceLineItemList.splice(index, 1);\r\n\t\t\t}\r\n\t\t\t\t\r\n\t\t\tvm.EmptyLineItemDetails();\r\n\t\t\t// vm.LineItemCategoryType=\"\";\r\n\t\t\tvm.LineItemDisc=\"\";\r\n\t\t\tvm.LineItemDataList=[];\r\n\t\t\t // window.location.reload(true);\r\n\t\t\t}\r\n\t\t//}, 1000);\r\n\r\n\t\t })\r\n\t\t}\r\n\r\n\t\t//\r\n\t\tvm.UpdateLineItems=\"Update Line Items\";\r\n\t\tvm.updateLineItem = function()\r\n\t\t{\r\n\t\t\tif(vm.PriceLineItemList.length>0)\r\n\t\t\t{\t\r\n\t\t\t\tvm.enable1 = \"false\";\r\n\t\t\t\tvm.UpdateLineItems=\"Update Line Items...\";\r\n\r\n\t\t\t\tvar data = { \r\n\t\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\t\"LineItemRequestList\": vm.PriceLineItemList\r\n\t\t\t\t \r\n\t\t\t\t };\r\n\t\t\t\tjobDetailsService.CreateUpdateRemoveLineItem(data,loggedinUser,token).then(function(resp){\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\",resp.data+ \" Line Item\");\r\n\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\tvm.enable1 = \"true\";\t\r\n\t\t\t\t\t\t\tvm.UpdateLineItems=\"Update Line Items\";\t\t\t\t\r\n\t\t\t\t\t\t}, 1500);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t}, vm.showFailure);\t\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvm.showFailure();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.ApprovePricingButtonText=\"Approve Pricing\";\r\n\t\tvm.ApprovePricing = function()\r\n\t\t{\r\n\t\t\tif(vm.PriceLineItemList.length>0)\r\n\t\t\t{\t\r\n\t\t\t\tvm.IsFinalApproval=true;\r\n\t\t\t\tvm.enable1 = \"false\";\r\n\t\t\t\tvm.ApprovePricingButtonText=\"Approve Pricing...\";\r\n\r\n\t\t\t\tvar data = { \r\n\t\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\t\"IsCollectionFlag\": true,\r\n\t\t\t\t\t\"CollectionPercentage\": 0,\r\n\t\t\t\t\t\"CollectionAmount\": 0,\r\n\t\t\t\t\t\"LineItemRequestList\": vm.PriceLineItemList\r\n\t\t\t\t \r\n\t\t\t\t };\r\n\t\t\t\tjobDetailsService.UpdateJobPaymentDynamicPrice(loggedinUser, vm.TicketId, vm.BasePriceTotal, vm.PercentageTotal, vm.FreelancerPriceTotal,vm.IsFinalApproval,data, token, function (res) {\r\n\t\t\t\t\t$timeout(function(){\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\tmsg = \"Price has been approved successfully\";\t\t\t\t\t\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\t\r\n\t\t\t\t\t\tvm.enable1 = \"true\";\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\tvm.ApprovePricingButtonText = \"Approve Pricing\";\t\t\t\t\t\r\n\t\t\t\t\t}, 1000);\t\t\t\t\t\t\r\n\t\t\t\t}, vm.showFailure);\t\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvm.showFailure(\"Faild\", \"Please enter atleast one Line Item to Approve this job.\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.removeCurrentActivityRow = function()\r\n\t\t{\r\n\t\t\tvm.showTCList = false;\t\r\n\t\t\tvm.EmptyLineItemDetails();\t\t\r\n\t\t}\r\n\t\tvm.EmptyLineItemDetails = function()\r\n\t\t{\r\n\t\t\tvm.LineItemCategoryType=\"\";\r\n\t\t\tvm.LineItemDisc=\"\";\r\n\t\t\tvm.LineItemList.LineItemDescription = '';\r\n\t\t\tvm.LineItemList.LineItemCategory = '';\r\n\t\t\tvm.LineItemList.LineItemPercentage = '';\r\n\t\t\tvm.LineItemList.dLineItemWinPrice = '';\r\n\t\t\tvm.LineItemList.dLineItemFreelancerPrice = '';\r\n\t\t\tvm.LineItemList.LineItemQuantity='';\r\n\t\t\tvm.FreelancerPrice='';\r\n\t\t\tvm.Remarks='';\r\n\t\t}\r\n\t\tvm.changeFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n\t\t}\r\n\t\t\r\n\t\t$scope.uploadLineItemFile = function (elem, index) {\r\n\t\t\t\r\n var index = (angular.element(elem).attr(\"data-index\")); \r\n var file = elem.files[0];\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n jobDetailsService.uploadLineItemPic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\t\r\n\t\t\t\t\t\tvm.edit=false;\t\t\t\t\t\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].LineItemAttachment= vm.LineItemImage = res.data; \r\n\t\t\t\t\t vm.LineItemImage=res.data; \r\n\t\t\t\t\t\tvm.edit1=false;\r\n\t\t\t\t\t\t\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload line item, server error\");\r\n });\r\n } else {\r\n vm.showFailure(\"Failed\", \"You can upload image, pdf or word document only\");\r\n }\r\n }\r\n\t}\r\n\r\n\tvm.DisableScheduledExceptionButtons = function (disable) {\r\n\t if(disable){\r\n\t \t\tvm.disableExceptionButton = true;\t\t\t\r\n\t }\r\n\t else{\r\n\t \tvm.disableExceptionButton = false;\r\n\t }\r\n\t}\r\n\r\n\r\n\tvm.resolveException = function(){\r\n\t\tvm.DisableScheduledExceptionButtons(true);\r\n\t\tvar ticketIdList = []; \t\t\r\n\t\tticketIdList.push(uTicketId);\t\t\t \r\n\t\t\r\n\t\tjobDetailsService.ResolveException(loggedinUser, ticketIdList,token).then(function(resp){\r\n\t\t\tif (resp.status==202) {\t\t\r\n\t\t\t\t$timeout(function(){\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tvm.showSuccess(\"Schedule Exception\", \"Exception Resolved Successfully\");\t\t\t\t\t\r\n\t\t\t\t\t// vm.getTicketByJobId();\t\r\n\t\t\t\t\twindow.location.reload(true);\r\n\t\t\t\t\tvm.DisableScheduledExceptionButtons(false);\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t}, 1000);\t\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t })\t\t\r\n\t }\r\n\r\n\tvm.Applycompletejob = function(){\r\n\r\n\t\tvar data ={\t\t\r\n\t\t\t\t\"ReqUserId\": loggedinUser,\r\n\t\t\t\t\"TicketId\": uTicketId,\r\n\t\t\t\t\"Status\": \"Completed\",\r\n\t\t\t\t\"TechnicianRating\": \"\",\r\n\t\t\t\t\"CompletionRemark\": \"\",\r\n\t\t\t\t\"ApprovalRemark\": \"\",\r\n\t\t\t\t\"SourceResolvedOn\": \"\",\r\n\t\t\t\t\"ClosureMode\": \"\",\r\n\t\t\t\t\"FieldJobClosureMode\": \"\",\r\n\t\t\t\t\"FieldJobVisitStatus\": \"\",\r\n\t\t\t\t\"JobWinRate\": 0,\r\n\t\t\t\t\"SelectedCompletionRemarkList\": [\r\n\t\t\t\t {\r\n\t\t\t\t\t\"remark\": \"\",\r\n\t\t\t\t\t\"description\": \"\",\r\n\t\t\t\t\t\"SelectedHWDetailList\": [\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\"Skill\": \"\",\r\n\t\t\t\t\t\t\"Code\": \"\",\r\n\t\t\t\t\t\t\"Name\": \"\",\r\n\t\t\t\t\t\t\"Description\": \"\",\r\n\t\t\t\t\t\t\"Category\": \"\",\r\n\t\t\t\t\t\t\"HardwareFrom\": \"\"\r\n\t\t\t\t\t }\r\n\t\t\t\t\t]\r\n\t\t\t\t }\r\n\t\t\t\t],\r\n\t\t\t\t\"RejectionRemark\": \"\"\r\n\t\t\t \r\n\t\t}\r\n\t\tjobDetailsService.completeJob(data, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp.status == 202) {\r\n\t\t\t\tvm.showSuccess(\"Complete Job\", \"Job Completed Successfully.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t$state.go('index.JobTickets', { reload: true });\r\n\t\t\t\t\r\n\t\t\t\t}, 1000);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t})\r\n\t}\r\n\r\n\tvm.OpenApproveModal = function (currentJOb) \r\n {\t\r\n\t\tif(vm.PriceLineItemList.length>0)\r\n\t\t{\r\n\t\t\tvm.CurrentJob = currentJOb;\r\n\t\t\tvm.RatingOfTicket = ''; \r\n\t\t\tvm.aproveMessage = 'Please Rate !';\r\n\t\t\tapproveModalInstance = $uibModal.open({\r\n\t\t\ttemplateUrl: 'approve_model.html',\r\n\t\t\tscope: $scope\r\n\t\t\t}); \r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tvm.showFailure(\"Faild\", \"Please enter atleast one Line Item to Approve this job.\");\r\n\t\t}\r\n } \r\n\tvm.CloseModal = function () {\r\n\tapproveModalInstance.close();\r\n\t}\r\n\tvm.starChanged = function () {\r\n switch (vm.RatingOfTicket) {\r\n case '5':\r\n vm.aproveMessage = 'Excellent';\r\n break;\r\n \r\n case '4':\r\n vm.aproveMessage = 'Very Good';\r\n break;\r\n \r\n case '3':\r\n vm.aproveMessage = 'Good';\r\n break;\r\n \r\n case '2':\r\n vm.aproveMessage = 'Bad';\r\n break;\r\n \r\n case '1':\r\n vm.aproveMessage = 'Very Bad';\r\n break;\r\n\t\t}\r\n\t\tvm.ratingwarning=\"\";\r\n\t }\r\n\t\r\n\tvm.ApproveJob = function () { \r\n if (vm.RatingOfTicket) {\r\n\t\t approveModalInstance.close();\r\n\t\t var jobwinrate = 0.0;\r\n\t\t if(vm.Winrate == null || vm.Winrate == 0 || vm.Winrate =='')\r\n\t\t\tjobwinrate = 0.0;\r\n\t\t else\r\n\t\t\tjobwinrate = vm.Winrate;\r\n\t\t vm.ratingwarning=\"\";\r\n var data = { \r\n\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\"BroadcastRate\": vm.BasePriceTotal,\r\n\t\t\t\"MobiforceCommission\": vm.MobiforceCommission,\r\n\t\t\t\"FreelancerRate\": vm.TicketInfo.FreelancerRate,\r\n\t\t\t\"IsFinalApproval\": true,\r\n\t\t\t\"JobWinRate\" : parseFloat(jobwinrate.toFixed(2)),\r\n\t\t\t\"TechnicianRating\": vm.RatingOfTicket.toString(),\r\n\t\t\t\"ApprovalRemark\": vm.approvalRemark,\r\n\t\t\t\"IsSafetyAudit\":vm.IsSafetyAudit,\r\n\t\t\t\"Status\": \"Approved\",\r\n\t\t\t\"LineItemRequestList\": vm.PriceLineItemList\r\n \r\n\t\t };\r\n\t\t \r\n\t\t jobDetailsService.UpdateJobPaymentDynamicPriceAndApprove(loggedinUser, data, token).then(function(res){\r\n\t\t\t\r\n\t\t\tif (res.status == 200){\t\t\t\t\r\n\t\t\t\t\t$timeout(function(){\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\tmsg = \"Ticket and Price has been approved successfully\";\t\t\t\t\t\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\t\r\n\t\t\t\t\t\tvm.getTicketByJobId();\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t}\t\t\t\t\r\n\t\t\telse {\r\n\t\t\t\t\r\n\t\t\t\tvm.showFailure(\"Failed\", res.data);\r\n\t\t\t }\t\t\r\n\r\n\t\t\t}, vm.showFailure);\t\r\n\t\t\t\r\n } else {\r\n\t\t\tvm.ratingwarning=\"Please rate the technician.\";\r\n // approveModalInstance.close();\r\n }\r\n\t }\r\n\t vm.isApprovalPermission = function (defaultValue) {\r\n if (vm.accountConfig && vm.accountConfig['ApprovalPermission'] != null) {\r\n return vm.accountConfig['ApprovalPermission'].split(\",\").indexOf($localStorage.loggedInUser_Role) > -1;\r\n }\r\n return defaultValue;\r\n\t }\r\n\t// vm.BackToTicketList = function()\r\n\t// {\t\t \r\n\t// \t $localStorage.backToTicketList=\"JobDetailView\";\r\n\t// }\r\n\r\n\t $scope.checkPDF = function(path){ \r\n \r\n\t\tvar pt = path.substr(path.length - 4);\r\n\t\tif(pt == '.pdf'){\r\n\t\t vm.error = function(){\r\n\t\t\t$(\".pdf\").attr({\"target\" : \"_blank\"})\r\n\t\t\t}\r\n\t\t return true;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\t\r\n\t \r\n\t vm.PDFView = function (page) {\r\n\t\tvm.pdfimage=page;\r\n\t\t $scope.selected = null;\r\n\t\t $timeout(function(){\r\n\t\t\tjobAppointmentModal = $uibModal.open({\r\n\t\t\ttemplateUrl: 'PDFView.html',\r\n\t\t\tsize :'lg',\r\n\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t},1000)\t \r\n\t }\r\n\t vm.PDFUserModal = function(){\r\n\t\tjobAppointmentModal.close();\r\n\t }\r\n\r\n\t // download pdf\r\n\t\r\n\r\n\t vm.OpenPdfModal= function(PdfPathName)\r\n\t\t{\r\n vm.IsLoadSucessfull=false;\t\r\n MainService.GetImageBlob(loggedinUser, token, PdfPathName).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data);\r\n vm.IsLoadSucessfull=true;\t\r\n });\r\n\t\t\tjobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'SiteAuditPDFView.html',\r\n\t\t\t\tsize :'lg',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\twindowClass: 'zindex'\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t}\r\n\t vm.SiteAuditPDFUserModal = function(){\r\n\t\tjobAppointmentModal.close();\r\n\t }\r\n\t\r\n\tvm.ConvertBase64ToBlob = function(response)\r\n\t{\r\n vm.Auditpdf=\"\";\r\n\t\tif(response !=null){\r\n\t\t\tvar arrrayBuffer = base64ToArrayBuffer(response); //data is the base64 encoded string\r\n\t\t\tvar blob = new Blob([arrrayBuffer], {type: \"application/pdf\"});\r\n\t\t\tvm.Auditpdf = URL.createObjectURL(blob);\t\t\t\t\r\n\t\t\tvm.IsLoadSucessfull=true;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tvm.DocumentAvailableMessage=\"Document is not available\";\r\n\t\t\tvm.IsLoadSucessfull=true;\r\n\t\t}\r\n\t}\r\n\tfunction base64ToArrayBuffer(base64) \r\n\t{\r\n\t\tvar ret = base64.replace('data:application/pdf;base64,','');\r\n\t\t\tvar binaryString = atob(ret);\r\n\t\t\tvar binaryLen = binaryString.length;\r\n\t\t\tvar bytes = new Uint8Array(binaryLen);\r\n\t\t\tfor (var i = 0; i < binaryLen; i++) {\r\n\t\t\tvar ascii = binaryString.charCodeAt(i);\r\n\t\t\tbytes[i] = ascii;\r\n\t\t\t}\r\n\t\t\treturn bytes;\r\n\t} \r\n \r\n\tvm.getFileType = function(url){\r\n\t\tif(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0 ||url.indexOf(\".JPG\")>=0 || url.indexOf(\".JPEG\")>=0 || url.indexOf(\".PNG\")>=0 || url.indexOf(\".BMP\")>=0){\r\n\t\t\treturn \"image\";\r\n\t\t} else if(url.indexOf(\".xls\")>=0 || url.indexOf(\".xlsx\")>=0 ||url.indexOf(\".XLS\")>=0 || url.indexOf(\".XLSX\")>=0){\r\n\t\t\treturn \"xls\";\r\n\t\t} else if(url.indexOf(\".pdf\")>=0 || url.indexOf(\".PDF\")>=0){\r\n\t\t\treturn \"pdf\";\r\n\t\t} else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0 || url.indexOf(\".DOC\")>=0 || url.indexOf(\".DOCX\")>=0){\r\n\t\t\treturn \"doc\";\r\n\t\t} else {\r\n\t\t\treturn \"others\";\r\n\t\t}\r\n\t\t}\r\n\t\tvm.WordDownloadtoView = function (page) { \r\n\t\t\t\r\n\t\tMainService.GetImageBlob(loggedinUser, token, page).then(function(resp) {\r\n\t\t\twindow.location.href = resp.data;\r\n\t\t}); \r\n\t\t\r\n\t}\r\n});\r\nfunction isNumberKey(evt,elemref, quantityvalue)\r\n{ \r\n var charCode = (evt.which) ? evt.which : evt.keyCode;\r\n if(quantityvalue==\"LineItemQuantity\"){\r\n if(charCode == 46 ){\r\n return false;\r\n }\r\n } \r\n if(charCode == 46 ){\r\n if ((elemref.value) && (elemref.value.indexOf('.') >= 0))\r\n return false;\r\n }\r\n if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57))\r\n { \r\n \r\n return false;\r\n } \r\n if(quantityvalue==\"Percentage\"){\r\n if(parseFloat(elemref.value + evt.key) > 100)\r\n {\r\n return false\r\n }\r\n }\r\n return true; \r\n}\r\nfunction CheckRegExOnKeyPress(e) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\,\\\\-\\\\/]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\r\n\nangular.module('inspinia').service('MilestoneDetailViewService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('MilestoneDetailViewController', function (MilestoneDetailViewService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\tvm.AddMilestoneModal = function () {\r\n\t\t\tvm.addmilestone = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Addmilestone.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n \r\n\tvm.CloseMilestone = function () {\r\n\tvm.addmilestone.close();\r\n\t}\r\n\r\n\t// vm.SaveMilestone = function(){\r\n\t// \tvm.showSuccess(\"Success\",\"Milestone Created Successfully\");\r\n\t// \tvm.CloseMilestone();\r\n\t// }\r\n\t$scope.milestones = [\r\n {\r\n order: 1,\r\n name: \"Initial Response\",\r\n criteria: \"Ticket Status-Equals-Assigned\",\r\n minutes: 120,\r\n startTime: \"Entity Process\",\r\n businessHours: \"\"\r\n },\r\n {\r\n order: 2,\r\n name: \"Final Resolution\",\r\n criteria: \"-\",\r\n minutes: 480,\r\n startTime: \"Entity Process\",\r\n businessHours: \"\"\r\n }\r\n ];\r\n\r\n // Function to delete a row\r\n $scope.deleteMilestone = function (index) {\r\n $scope.milestones.splice(index, 1);\r\n\t\tvm.showSuccess(\"Success\",\"Deleted Successfully\");\r\n\r\n };\r\n\r\n vm.WarningTimeTriggerMilestone = function () {\r\n\t\tvm.editmilestone = $uibModal.open({\r\n\t\t\ttemplateUrl: 'WarningTimeTrigger.html',\r\n\t\t\tsize: 'lg',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\t\r\n\tvm.closeEditMilestone = function () {\r\n\t\tvm.editmilestone.close();\r\n\t};\r\n\r\n\tvm.ViolationTimeTriggerMilestone = function () {\r\n\t\tvm.violatedmilestone = $uibModal.open({\r\n\t\t\ttemplateUrl: 'ViolationTimeTrigger.html',\r\n\t\t\tsize: 'lg',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\t\r\n\tvm.closeViolationMilestone = function () {\r\n\t\tvm.violatedmilestone.close();\r\n\t};\r\n\t\r\n\r\n\r\n\tvm.AlertMilestoneModal = function (milestone, index) {\r\n\t\tif (milestone) {\r\n\t\t\t// Editing existing milestone\r\n\t\t\tvm.selectedMilestoneIndex = index;\r\n\t\t\tvm.selectedWorkflow = milestone.type;\r\n\t\t\tvm.casename = milestone.caseName || ''; \r\n\t\t\tvm.channel = milestone.channelName ? milestone.channelName.split(', ') : [];\r\n\t\t\tvm.caseDescription = milestone.description.split(' - ')[0] || ''; \r\n\t\t\tvm.message = milestone.description.split(' - ')[1] || ''; \r\n\t\t\tvm.selectedAgents = milestone.selectedAgents || {};\r\n\t\t} else {\r\n\t\t\t// Adding a new milestone\r\n\t\t\tvm.selectedMilestoneIndex = null;\r\n\t\t}\r\n\t\tvm.alertmilestone = $uibModal.open({\r\n\t\t\ttemplateUrl: 'AlertMilestone.html',\r\n\t\t\tsize: 'lg',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\r\nvm.CloseAlertMilestone = function () {\r\n\tvm.casename = '';\r\n\tvm.channel = '';\r\n\tvm.caseDescription = '';\r\n\tvm.message = '';\r\nvm.alertmilestone.close();\r\n\r\n}\r\n\r\nvm.selectedWorkflow = '';\r\n // vm.channel = [];\r\n // vm.message = '';\r\n // vm.casename = '';\r\n // vm.casedescription = '';\r\n // vm.milestones = []; // Store saved milestone details\r\n\r\n\r\n\t\r\n\tvm.handleWorkflowChange = function (section) {\r\n\t\tvm.currentSection = section; // Store section\r\n\t\tvm.selectedMilestoneIndex = null; // Reset index for new entries\r\n\t\r\n\t\t// Reset fields based on workflow type\r\n\t\tif (vm.selectedWorkflow === 'sendMessage') {\r\n\t\t\tvm.casename = '';\r\n\t\t\tvm.caseDescription = '';\r\n\t\t\tvm.message = '';\r\n\t\t\tvm.channel = [];\r\n\t\t} else if (vm.selectedWorkflow === 'createCase') {\r\n\t\t\tvm.channel = [];\r\n\t\t\tvm.message = '';\r\n\t\t\tvm.casename = '';\r\n\t\t\tvm.caseDescription = '';\r\n\t\t} else if (vm.selectedWorkflow === 'triggerWorkflow') {\r\n\t\t\tvm.channel = [];\r\n\t\t\tvm.message = '';\r\n\t\t\tvm.casename = '';\r\n\t\t\tvm.caseDescription = '';\r\n\t\t\tvm.selectedAgents = {}; // Reset agent selections\r\n\t\t}\r\n\t\r\n\t\t// Open the modal automatically\r\n\t\tvm.AlertMilestoneModal();\r\n\t};\r\n\t\r\n\r\n\tvm.successMilestones = [];\r\nvm.warningMilestones = [];\r\nvm.violationMilestones = [];\r\nvm.saveMilestone = function () {\r\n var newMilestone = {\r\n type: vm.selectedWorkflow,\r\n caseName: vm.casename || 'No case name',\r\n caseDescription: vm.caseDescription || 'No description provided',\r\n\t\tchannelName: vm.channel ? vm.channel.join(', ') : 'No channel selected',\r\n description: (vm.caseDescription ? vm.caseDescription + ' - ' : '') + (vm.message),\r\n selectedAgents: angular.copy(vm.selectedAgents) || {} // Store selected checkboxes\r\n };\r\n\r\n if (vm.selectedMilestoneIndex !== null) {\r\n // Editing existing milestone\r\n if (vm.currentSection === 'success') {\r\n vm.successMilestones[vm.selectedMilestoneIndex] = newMilestone;\r\n } else if (vm.currentSection === 'warning') {\r\n vm.warningMilestones[vm.selectedMilestoneIndex] = newMilestone;\r\n } else if (vm.currentSection === 'violation') {\r\n vm.violationMilestones[vm.selectedMilestoneIndex] = newMilestone;\r\n }\r\n } else {\r\n // Adding new milestone\r\n if (vm.currentSection === 'success') {\r\n vm.successMilestones.push(newMilestone);\r\n } else if (vm.currentSection === 'warning') {\r\n vm.warningMilestones.push(newMilestone);\r\n } else if (vm.currentSection === 'violation') {\r\n vm.violationMilestones.push(newMilestone);\r\n }\r\n }\r\n\r\n // Reset fields\r\n vm.selectedWorkflow = '';\r\n vm.casename = '';\r\n vm.caseDescription = '';\r\n vm.message = '';\r\n vm.channel = [];\r\n vm.selectedAgents = {};\r\n vm.selectedMilestoneIndex = null;\r\n \r\n // Close modal\r\n vm.CloseAlertMilestone();\r\n};\r\n\r\n\r\nvm.deleteMilestone = function (index, section) {\r\n if (section === 'success') {\r\n vm.successMilestones.splice(index, 1);\r\n } else if (section === 'warning') {\r\n vm.warningMilestones.splice(index, 1);\r\n } else if (section === 'violation') {\r\n vm.violationMilestones.splice(index, 1);\r\n }\r\n};\r\n\r\n\t$scope.rows = [\r\n\t\t{ CaseEnters: '', Operator: '', Value: '', isEditable: false }\r\n\t];\r\n\t\r\n\t// Function to add a new row\r\n\t$scope.addRow = function () {\r\n\t\t$scope.rows.push({ CaseEnters: '', Operator: '', Value: '', isEditable: true });\r\n\t};\r\n\t\r\n\t// Function to remove a row\r\n\t$scope.removeRow = function (index) {\r\n\t\tif ($scope.rows.length > 1) {\r\n\t\t\t$scope.rows.splice(index, 1);\r\n\t\t}\r\n\t};\r\n\tvm.selectedWorkflow = \"\";\r\n\t\r\n\r\n\t\r\n\tvm.usersList = [\r\n { PersonalEmail: \"avneeshsingh@gmail.com\", ContactNumber: \"9876543210\" },\r\n { PersonalEmail: \"sandeepsharma@gmail.com\", ContactNumber: \"8765432109\" },\r\n { PersonalEmail: \"sanjayS@gmail.com\", ContactNumber: \"7654321098\" },\r\n\t\t{ PersonalEmail: \"Vikas@gmail.com\", ContactNumber: \"9383828220\" },\r\n\t\t{ PersonalEmail: \"Sumit74@gmail.com\", ContactNumber: \"8383082383\" },\r\n ];\r\n vm.userList = [];\r\n\r\n \r\n\r\n // Function to add user\r\n\tfunction generateUserId() {\r\n return \"UB10002025\" + Math.floor(1000 + Math.random() * 9000);\r\n }\r\n\r\n // Generate random username\r\n function generateUserName(email) {\r\n if (email) {\r\n return email.split(\"@\")[0]; // Extracts name before '@' in email\r\n }\r\n return \"User_\" + Math.floor(100 + Math.random() * 900);\r\n }\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t vm.addUser = function () {\r\n if (!vm.inputValue) {\r\n alert(\"Please enter an email or phone number.\");\r\n return;\r\n }\r\n\r\n var user = {\r\n UserID: generateUserId(),\r\n UserName: \"\",\r\n PersonalEmail: \"\",\r\n ContactNumber: \"\"\r\n };\r\n\r\n // If input is a number, store it as a phone number\r\n if (/^\\d+$/.test(vm.inputValue)) {\r\n user.PersonalEmail = \"\";\r\n user.ContactNumber = vm.inputValue;\r\n user.UserName = generateUserName(); // Generates a generic username\r\n } else {\r\n // Otherwise, treat it as an email\r\n user.PersonalEmail = vm.inputValue;\r\n user.ContactNumber = vm.inputPhone || \"\";\r\n user.UserName = generateUserName(vm.inputValue); // Extracts username from email\r\n\r\n // If phone is not provided, get it from users list\r\n if (!vm.inputPhone) {\r\n var matchedUser = vm.usersList.find(function (u) {\r\n return u.PersonalEmail === vm.inputValue;\r\n });\r\n if (matchedUser) {\r\n user.ContactNumber = matchedUser.ContactNumber;\r\n }\r\n }\r\n }\r\n\r\n // Add user to the list\r\n vm.userList.push(user);\r\n vm.inputValue = \"\";\r\n vm.inputPhone = \"\";\r\n };\r\n\t\r\n\t\r\n\t\r\n\r\n\r\n // Function to remove user\r\n vm.removeUser = function (index) {\r\n vm.userList.splice(index, 1);\r\n };\r\n // Function to remove user from list\r\n vm.removeUser = function (index) {\r\n vm.userList.splice(index, 1);\r\n };\r\n\r\n\r\n\tvm.timeTriggers = [];\r\n\r\n\t// Add Time Trigger\r\n\tvm.addTimeTrigger = function() {\r\n\t if (vm.timeValue && vm.timeUnit) {\r\n\t\tvm.timeTriggers.push({\r\n\t\t timeValue: vm.timeValue,\r\n\t\t timeUnit: vm.timeUnit\r\n\t\t});\r\n\t\tvm.closeViolationMilestone();\r\n\t\t// Clear Fields\r\n\t\tvm.timeValue = \"\";\r\n\t\tvm.timeUnit = \"\";\r\n\t }\r\n\t};\r\n \r\n\t// Delete Trigger\r\n\tvm.deleteTrigger = function(index) {\r\n\t vm.timeTriggers.splice(index, 1);\r\n\t};\r\n \r\n\t// Edit Trigger (Simple Example)\r\n\tvm.editTrigger = function(index) {\r\n\t var trigger = vm.timeTriggers[index];\r\n\t vm.timeValue = trigger.timeValue;\r\n\t vm.timeUnit = trigger.timeUnit;\r\n \r\n\t // Remove from list so that it can be updated\r\n\t vm.timeTriggers.splice(index, 1);\r\n\t};\r\n\r\n\r\n\tvm.warningTimeTriggers = [];\r\n\r\n\t// Add Warning Time Trigger\r\n\tvm.addWarningTimeTrigger = function() {\r\n\t if (vm.warningTimeValue && vm.warningTimeUnit) {\r\n\t\tvm.warningTimeTriggers.push({\r\n\t\t warningTimeValue: vm.warningTimeValue,\r\n\t\t warningTimeUnit: vm.warningTimeUnit\r\n\t\t});\r\n vm.closeEditMilestone();\r\n\t\t// Clear Fields\r\n\t\tvm.warningTimeValue = \"\";\r\n\t\tvm.warningTimeUnit = \"\";\r\n\t }\r\n\t};\r\n \r\n\t// Delete Warning Trigger\r\n\tvm.deleteWarningTrigger = function(index) {\r\n\t vm.warningTimeTriggers.splice(index, 1);\r\n\t};\r\n \r\n\t// Edit Warning Trigger (Simple Example)\r\n\tvm.editWarningTrigger = function(index) {\r\n\t var trigger = vm.warningTimeTriggers[index];\r\n\t vm.warningTimeValue = trigger.warningTimeValue;\r\n\t vm.warningTimeUnit = trigger.warningTimeUnit;\r\n \r\n\t // Remove from list so that it can be updated\r\n\t vm.warningTimeTriggers.splice(index, 1);\r\n\t};\r\n\r\n\t$scope.rows = [\r\n { TicketDetails: \"Ticket Status\", Operator: \"Equals\", Value: \"Completed\", isEditable: false }\r\n ];\r\n\r\n\t$scope.addCriteria = function() {\r\n $scope.rows.push({\r\n TicketDetails: '',\r\n Operator: '',\r\n Value: '',\r\n isEditable: true // New row starts in edit mode\r\n });\r\n };\r\n // Edit function\r\n $scope.editRow = function (row) {\r\n row.isEditable = true; // Enable editing\r\n };\r\n\r\n // Save function\r\n $scope.saveRow = function (row) {\r\n row.isEditable = false; // Disable editing\r\n };\r\n\r\n // Delete function\r\n $scope.deleteRow = function (index) {\r\n $scope.rows.splice(index, 1);\r\n };\r\n\r\n // Remove row function\r\n $scope.removeRow = function (index) {\r\n $scope.rows.splice(index, 1);\r\n };\r\n\t$scope.milestone = {\r\n TimeTrigger: 120,\r\n StartTime: \"Entity Process\",\r\n BusinessHours: \"Default\",\r\n Order: 1,\r\n Criteria: \"Ticket Status - Equals - Assigned\"\r\n };\r\n\r\n $scope.isEditing = false; // Track edit mode\r\n\r\n // Toggle Edit/Save\r\n $scope.toggleEdit = function () {\r\n $scope.isEditing = !$scope.isEditing;\r\n };\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('ManualAssignationJobService', function (ApiURL, $window, MMFCRMURL, PublicApiURL, ActivityURL, LocationURL, $http, FreelancerURL, SchedulingAPI) {\r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/new/byStatus?reqUserId=kanika.bansal%40innotiontech.com\r\n this.GetTicketsByStatus = function (status, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/' + status + '/byStatus?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.GetActiveUser = function (status, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/' + status + '/byStatus?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Get all freelancers\r\n //http://192.168.0.80:92/FreelancerAPI/api/FreeLancerUser/kanika.bansal%40innotiontech.com/GetAllUsers\r\n // https://login.mymobiforce.com/FreelancerAPI/api/FreelancerUser/GetUserDetailsforSupervisior\r\n this.GetListAllFreelancers = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/GetUserDetailsforSupervisior';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/FreeLancerUser/Kanika.bansal%40innotiontech.com/GetAllFreLancerWithFilters?itemNames=UserStatus%2CRole&itemValues=Active%2CField%20Engineer\r\n this.GetAllFreelancersWithFilters = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllFreLancerWithFilters?itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // url = https://product.mymobiforce.com/schedulingAPI/api/AutoJobBroadcast/BroadcastJobsManualMode\r\n this.AutoBroadcastAllNewJobsManualMode = function (loginUserId, ticketIds, token) {\r\n var url = SchedulingAPI + '/api/AutoJobBroadcast/BroadcastJobsManualMode';\r\n return $http.post(url, ticketIds, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId }\r\n });\r\n\r\n /*var url = SchedulingAPI + 'api/AutoJobBroadcast/BroadcastJobsManualMode'; \r\n return $http.post(url, ticketIds, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });*/\r\n }\r\n\r\n this.PullBackJob = function (loginUserId, ticketIds, token) {\r\n var url = ApiURL + '/api/Ticket/PullBackFromDispatchSupervisor';\r\n return $http.put(url, ticketIds, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId }\r\n });\r\n }\r\n\r\n this.callToTechnicianApi = function (loggedinUser, userid, token) {\r\n $http.get(ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId=' + userid,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\");\r\n }\r\n else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.callToTechnicianInBroadcastState = function (loggedinUser, userid, TicketId, token) {\r\n $http.get(ApiURL + '/api/CallPatching/ClickToCallFieldTeamInTicketBroadcastState?userId=' + userid + '&TicketId=' + TicketId,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\");\r\n }\r\n else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.GetAllWorkOrderJob = function (loggedinUser, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/GetAllWorkOrderJob?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.getAccounts = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get accounts\");\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/User/Kanika/byReportingToWithJobCount?reqUserId=kanika.bansal%40innotiontech.com\r\n this.GetTicketsById = function (ticketId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + loggedinUser + '/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/CoreAPI/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=FollowUp\r\n this.GetReasonsByStatus = function (loggedinUser, token, status) {\r\n var url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + status;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n //Get Tickets by filter\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/kanika.bansal%40innotiontech.com/TicketStatus/Broadcasted/GetTicketsByUser\r\n //https://test.mymobiforce.com/coreapi/api/Ticket/reqUserId/GetTicketsForAssignation?itemNames=itemNames&itemValues=itemValues\r\n\r\n this.GetTicketsByFilter = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedinUser + '/GetTicketsForAssignation?itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n //Get Users By Filter\r\n\r\n //\r\n // http://192.168.0.80:92/CoreAPI/api/User/kanika.bansal%40innotiontech.com/UserStatus/Active/getusersbyfilters\r\n this.GetUsersByFilter = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/User/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getusersbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n //Assign Tickets\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/ass/asd/asd/AssignTicket\r\n this.AssignTickets = function (userId, loggedinUser, ticketList, token) {\r\n // var TicketId = ticketList.split(',');\r\n var url = ApiURL + '/api/Ticket/' + userId + '/' + loggedinUser + '/AssignTicketToDispatchSupervisor'\r\n return $http.put(url, ticketList, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n\r\n // Bid Recieved Api\r\n // http://192.168.0.80:92/FreelancerAPI/api/BID/T0000000039/Received/kanika.bansal@innotiontech.com/byStatus\r\n this.GetBidReceivedByStatus = function (loggedinUser, ticketId, status, token) {\r\n var url = FreelancerURL + '/api/BID/GetLeadsByStatus?TicketId' + '=' + ticketId + '&' + 'leadStatus' + '=' + status\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n //bid deny https://product.mymobiforce.com/freelancerAPI/api/BID/GetLeadsByStatus?TicketId=T1140000016977&leadStatus=Deny\r\n this.GetBidDeny = function (loggedinUser, ticketId, status, token) {\r\n var url = FreelancerURL + '/api/BID/GetLeadsByStatus?TicketId' + '=' + ticketId + '&' + 'leadStatus' + '=' + status\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n //https://product.mymobiforce.com/FreelancerAPI/api/BID/GetLeadsByStatus?TicketId=T1140000091078&leadStatus=Sent&filter=Online\r\n //https://product.mymobiforce.com/freelancerAPI/api/BID/GetLeadsByStatus?TicketId=T1140000016977&leadStatus=Sent\r\n this.GetBidSentByStatus = function (loggedinUser, ticketId, status, token, userfilter) {\r\n var url = FreelancerURL + '/api/BID/GetLeadsByStatus?TicketId' + '=' + ticketId + '&' + 'leadStatus' + '=' + status + '&' + 'filter' + '=' + userfilter\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n this.GetFeedbackByUserId = function (loggedinUser, token, userid) {\r\n var url = FreelancerURL + '/api/BID/GetFeedbackByUserId?UserId=' + userid;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/akshit.chauhan%40innotiontech.com/TicketStatus/Broadcasted/getjobsbyfilter\r\n this.GetBroadcastedBids = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = FreelancerURL + '/api/BID/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getjobsbyfilter';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Assign Bids\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/kanika.bansal%40innotiontech.com/T0000000040/pri/acceptBIDAssignJob?jobAssignRate=100&jobAssignGrossRate=0\r\n this.AssignReceivedBid = function (loggedinUser, ticketId, userId, token) {\r\n var url = FreelancerURL + '/api/BID/' + loggedinUser + '/' + ticketId + '/' + userId + '/acceptBIDAssignJob';\r\n return $http.put(url, {}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //BroadCast Jobs/Bids\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/createbidforselectedteam?reqUserId=asdasd\r\n\r\n this.BroadCastJobs = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/createbidforselectedteam?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Get Users By Role\r\n //http://115.124.122.225/coreapi/api/User/Supervisor/byRole?reqUserId=satyendratiwari124%40gmail.com\r\n //http://192.168.0.80:92/CoreAPI/api/User/Supervisor/SkillSet/AC%20Repair/byRole?reqUserId=Kanika.bansal%40innotiontech.com\r\n this.GetUsersByRole = function (loggedinUser, role, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/User/' + role + '/' + itemNames + '/' + itemValues + '/byRole?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Get All Vendor\r\n //http://192.168.0.80:92/CoreAPI/api/Vendor/kanika.bansal%40innotiontech.com/getallvendors\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/Vendor/Kanika.bansal%40innotiontech.com/VendorLocations/Maharashtra/getvendorsbyfilters\r\n this.GetAllVendors = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getvendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetFreelancerVendorsByFilters = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getfreelancervendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n // https://perf.mymobiforce.com/coreapi/api/Vendor/U350000000001/VendorStatus/Active/getfixedvendorsbyfilters\r\n this.GetFixedVendorsByFilters = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getfixedvendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/ankur.sharma%40innotiontech.com/byUserId?reqUserId=akshit.chauhan%40innotiontech.com\r\n\r\n this.GetTicketsByUserId = function (loggedinUser, UserId, token) {\r\n var url = ApiURL + '/api/Ticket/' + UserId + '/byUserId?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/freelancerapi/api/BID/CreateRoutingBid?reqUserId=U350000000001\r\n this.RouteJobsforUser = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/CreateRoutingBid?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.getAllStateTech = function (loggedinUser, token) {\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId=' + loggedinUser + '®ion=INDIA';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.ProcessJobToBeAssignedManually = function (ticketIDs, loggedInUserId, token) {\r\n var url = ApiURL + '/api/BatchProcessing/ProcessJobToBeAssignedManually';\r\n return $http.post(url, ticketIDs,\r\n {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId }\r\n })\r\n }\r\n\r\n // https://product.mymobiforce.com/coreapi/api/Ticket/TicketRejectionHistory?TicketId=T1140000092053\r\n\r\n this.getRejectHistory = function (TicketId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/TicketRejectionHistory?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n\r\n });\r\n }\r\n\r\n //http://localhost:56749/api/User/GetUserByFiltersWithDynaPage?itemNames=SkillSet%2CLocations%2CRole&itemValues=EMF%20Survey%7CGeneral_Electrician%2CBIHAR%7CUTTAR%20PRADESH%2CField Engineer&userType=Freelancer&DateField=CreatedOn&PageIndex=0&PageSize=10\r\n this.GetUserByFiltersWithDynaPage = function (loggedinUser, token, itemNames, itemValues, userType, userAvailableStatus, DateField, PageIndex, PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/User/GetUserByFiltersWithDynaPageForCHDAccount?itemNames=' + itemNames + '&itemValues=' + itemValues + '&userType=' + userType + '&userAvailableStatus=' + userAvailableStatus + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Ticket/GetTicketsForAssignationByCHDAccount?fromDate=2021-06-01&toDate=2021-06-10&reqUserId=U00000000412&itemNames=Search&itemValues=J009&textItemNames=&textItemValues=&templateCols=&templateItemNames=&templateItemValues=&DateField=CreatedOn&PageIndex=1&PageSize=10\r\n this.getAllJobTickets = function (supervisorId, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, DateField, PageIndex, PageSize, SortType, SortField) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRangeWithDynaPagingForCHDDashboard?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&SortType=' + SortType + '&SortField=' + SortField;\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n\r\n this.getAllJobTicketsCopyForPagging = function (supervisorId, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, DateField, PageIndex, PageSize, SortType, SortField) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRangeWithDynaPagingForCHDListing?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&SortType=' + SortType + '&SortField=' + SortField;\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n\r\n //http://localhost:56749/api/Ticket/GetAssignedTicketforUser?UserId=U400000000395&reqUserId=U00000000079\r\n this.GetAssignedTicketforUser = function (UserId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/GetAssignedTicketforUser?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n this.GetJobTicket = function (ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + $localStorage.loggedInUserId + '/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetSchedulingEvaluationResult = function (data, reqUserId, token) {\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetFavoriteFR?reqUserId=' + reqUserId;\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': reqUserId }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetFavoriteFR?reqUserId=U400000000001\r\n this.GetAllPrefereTalentPool = function (data, reqUserId, token) {\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetPreWorkedWith?reqUserId=' + reqUserId;\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': reqUserId }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetPreWorkedWith?reqUserId=U400000000001\r\n this.GetAllTechnician = function (data, reqUserId, token) {\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetSchedulingEvaluationResult?reqUserId=' + reqUserId;\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': reqUserId }\r\n });\r\n }\r\n\r\n this.BroadCastJobsforUser = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/createBidFromAssistedScheduling?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.AcceptJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.getPdfReport = function (loggedinUser, ticketID, token) {\r\n var url = ApiURL + '/api/Report/GeneratePdfReportForApprovedJob?TicketId=' + ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GeneratePdfJobSheet = function (loggedinUser, ticketID, token) {\r\n var url = ApiURL + '/api/Report/GeneratePdfJobSheet?TicketId=' + ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.PullBackTicket = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/returnticket';\r\n return $http.put(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.RejectJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.ConvertToNewJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.UpdateHoldingStatus = function (loggedInUserId, ticketId, holdingStatus, reason, Remark, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/ticketholding?HoldingStatus=' + holdingStatus + '&Reason=' + reason + '&Remark=' + Remark;\r\n return $http.put(url, {}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.downloadOnSiteReport = function (loggedInUserId, token, TicketId) {\r\n var url = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n });\r\n }\r\n\r\n this.GetCancellationReasons = function (AuditTicketId, status, loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketCancelationReasonController/' + loggedInUserId + '/getCancellationReasons?AtStatus=' + status + '&TicketId=' + AuditTicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetPullBacknReasons = function (loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + 'PullBack';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetUserFeedbackOption = function (loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + 'userfeedback';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetUserByReportingTo = function (loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TerritoryMappingUser/GetUserByReportingTo';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.PullBackTicketFromTechnician = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/PullBackTicketFromTechnician';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n // https://testg2.mymobiforce.com/coreapi/api/UserCallInputs/UserDataUpdateRequest\r\n\r\n this.UserDataUpdateRequest = function (data, loggedInUserId, token) {\r\n var url = ApiURL + '/api/UserCallInputs/UserDataUpdateRequest';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.UserPenaltyUpdate = function (data, loggedInUserId, token) {\r\n var url = ApiURL + '/api/BonusPenalty/ApplyPaneltyForUser';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n this.UpdateJobServerCancel = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobServerCancel';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.SendCancelCodeToCustomer = function (SendCodeModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/SendCancelCodeToCustomer';\r\n return $http.put(url, SendCodeModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.CancelTicket = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/CancelTicket?reqUserId=' + loggedInUserId + '&TicketId=' + ticketId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n // this.TBCCancelationAudit = function(TBCCancelationModel,ticketId,loggedInUserId, token){\r\n // var url = ApiURL + '/api/Ticket/UpdateJobAudit?TicketId='+ticketId +'&AuditValue='+TBCCancelationModel;\r\n // return $http.put(url,null, {\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // 'Token': token,\r\n // 'UserId': loggedInUserId\r\n // }\r\n // });\r\n // }\r\n\r\n this.TBCCancelationAudit = function (data, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobAudit';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.updateTicketSettlement = function (data, token, loggedInUserId, success, failure) {\r\n\r\n var url = ApiURL + \"/api/Ticket/setsettlementstatus\"\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.UpdateFollowUpReason = function (data, files, token, loggedInUserId, success, failure) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"ActivityModel\", followupdata);\r\n\r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUserId }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n this.TicketFollowUpWithoutDoc = function (data, token, loggedInUserId, success, failure) {\r\n var formdata = new FormData();\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"ActivityModel\", followupdata);\r\n\r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUserId }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.getCustomerJobCardbyJobId = function (accountId, jobId, token, success, failure) {\r\n $http.get(ApiURL + \"/api/GetCustomerJobCardbyJobId/\" + jobId + \"/\" + accountId + \"/GetCustomerJobCardbyJobId\", {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': accountId\r\n }\r\n }).then(function (res) {\r\n if (res && res.data && success) {\r\n success(res.data);\r\n } else if (failure) {\r\n failure();\r\n }\r\n });\r\n }\r\n\r\n this.AddSiteAuditwithAttachment = function (data, files, token, loggedinUser) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"AuditRequestModel\", followupdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/Upload/PostMediaFileWithAuditObject';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.getFixedUserInfo = function (userId, loggedInUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId + '/' + loggedInUser + '/' + 'byUserIdWithJobCount';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUser }\r\n })\r\n }\r\n\r\n this.getJobsByUserId = function (status, userId, loggedinUser, token, PageIndex, PageSize, OrderBy, SortType) {\r\n var url = ApiURL + \"/api/CallPatching/\" + userId + \"/\" + status + \"/byUserIdStatusforCHDWithDynPaging?\" + 'PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&OrderBy=' + OrderBy + '&SortType=' + SortType;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.ResolveException = function (loggedinUser, ticketId, token) {\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/MarkResolveSchedulerExceptionForTicket?reqUserId=' + loggedinUser;\r\n return $http.put(url, { 'exceptionIdList': ticketId }, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n this.GetFreelancerJobs = function (userId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerTicket/' + userId + '/' + loggedinUser + '/ByUserId'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.ResolveException = function (loggedinUser, ticketId, token) {\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/MarkResolveSchedulerExceptionForTicket?reqUserId=' + loggedinUser;\r\n return $http.put(url, { 'exceptionIdList': ticketId }, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.ConvertJobIntoNew = function (MoveSPDbyTwoDays, IsCommissionDetect, PullBackReason, loggedinUser, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/ConvertToNewFromBroadcasted?PullBackReason=' + PullBackReason + '&MoveSPDbyTwoDays=' + MoveSPDbyTwoDays + '&IsCommissionDetect=' + IsCommissionDetect;\r\n return $http.post(url, ticketId, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetCustomersByAccount = function (loggedinUser, accountId, token) {\r\n var url = ApiURL + '/api/Customer/GetCustomerByAccountId?accountId=' + accountId\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.getAllAccounts = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/CentralHelpDesk/GetAllAccountHDConfig';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n\r\n }\r\n });\r\n }\r\n\r\n this.convertScheduleException = function (ticket, loggedinUser, token) {\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/MarkTicketToScheduleException';\r\n return $http.put(url, ticket, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CreateJobBundle = function (loggedinUser, data, IsSuggested, token) {\r\n var url = ApiURL + '/api/JobBundle/CreateJobBundle?IsSuggested=' + IsSuggested;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UnBundleJobs = function (loggedinUser, data, token) {\r\n var url = ApiURL + '/api/JobBundle/UnBundleJobs';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.RouteBundlesforUser = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/CreateRoutingBidForBundle?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.BroadcastJobBundle = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/BroadcastJobBundle?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.BroadCastBundlesforUser = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/ScheduleBundleWithAssistedScheduling?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllBundledJobs = function (loggedinUser, bundleJobId, token) {\r\n var url = ApiURL + '/api/JobBundle/GetAllBundledJobs?bundleJobId=' + bundleJobId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getJobsSuggestion = function (loggedinUser, token, startDate, endDate, itemNames, itemValues) {\r\n var url = ApiURL + \"/api/JobBundle/GetSuggestedJobByUser?\" + 'fromDate=' + startDate + '&toDate=' + endDate + '&itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getAllCustomers = function (loginUserId, token) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' + loginUserId;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId }\r\n });\r\n }\r\n\r\n this.GetAllProjects = function (loginUserId, token) {\r\n var url = ApiURL + '/api/Project/' + loginUserId + '/' + loginUserId + '/GetProjectsByUserId'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId }\r\n })\r\n }\r\n\r\n this.GetTicketDetailsBySuggestion = function (loggedinUser, token, startDate, endDate, itemNames, itemValues) {\r\n var url = ApiURL + \"/api/JobBundle/GetTicketDetailsBySuggestion?\" + 'fromDate=' + startDate + '&toDate=' + endDate + '&itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.updatePlannedClosure = function (loggedinUser, data, token, success, failure) {\r\n $http.put(ApiURL + '/api/Ticket/UpdatePlannedClosureDate', data,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (res && res.status == 200 && res) {\r\n success(res.data);\r\n } else {\r\n failure(\"Failed\", res.data.Message);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job, server is not responding correctly.\");\r\n });\r\n }\r\n\r\n\r\n this.DownloadAllTicketReportWithFilter = function (loggedinUser, fromDate, toDate, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, DateField) {\r\n var url = PublicApiURL + \"/api/Report/DownloadAllTicketReportWithFilter?fromDate=\" + fromDate + '&toDate=' + toDate + '&reqUserId=' + loggedinUser + \"&itemNames=\" + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n $window.open(url);\r\n }\r\n\r\n\r\n this.GetAllReprotingToUsersCRM = function (ticketId, loggedInUserId, token) {\r\n var url = MMFCRMURL + '/api/UserManagement/GetAllReprotingToUsersCRM?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.TransferCallToServiceCentre = function (ticketId, userId, loggedInUserId, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/TransferCallToServiceCentre?TicketId=' + ticketId + '&UserId=' + userId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.ReopenCancelCall = function (ticketId, loggedInUserId, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/ReopenCancelCall?TicketId=' + ticketId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.DonwloadPDFOnSiteReportForTickets = function (loggedInUserId, token,TicketId) {\r\n var url = ApiURL + '/api/Report/DonwloadPDFOnSiteReportForTickets?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n this.DownloadPAVReprotXls = function (TicketId, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Report/DownloadPAVReprotXls?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n });\r\n }\r\n\r\n this.OnSiteReprotUploadWeb = function (data, files, token, loggedinUser) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files);\r\n var url = ApiURL + '/api/Upload/OnSiteReprotUploadWeb?TicketId=' + data;\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n});\nangular.module('inspinia').controller('ManualAssignationJobController', function (ManualAssignationJobService,DashboardService,MainService,JobTicketViewService,CentralHelpdeskConfigService,AllUsersListService,ReferService, ScheduleAssignService,$q, $log, $state, $localStorage,UIURL, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, uiCalendarConfig, ImageUrl, PublicApiURL,$window) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserSkill = $localStorage.loggedInUser_SkillSet;\r\n var loggedinUserRegion = $localStorage.loggedInUser_Region;\r\n vm.accountid= $localStorage.accountConfig.AccountId;\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.CallPatchEnable = $localStorage.accountConfig.CallPatchEnable;\r\n vm.bIsMMFInventoryCRM = $localStorage.accountConfig.bIsMMFInventoryCRM;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.toggleSingleClass = function() {\r\n $scope.class_status = !$scope.class_status;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.broadcastSentUser = true;\r\n $scope.toggleForBroadcast = function() {\r\n $scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.timeLineDetail = true;\r\n $scope.openTimeLine = function() {\r\n $scope.timeLineDetail = !$scope.timeLineDetail;\r\n $scope.myvalue = true;\r\n };\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n $scope.toggleMenu = function(){\r\n if ($scope.manualAssignationWrapper === \"hide-nav\"){\r\n $scope.manualAssignationWrapper = \"show-nav\";\r\n }\r\n else{\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n }\r\n };\r\n\r\n vm.orderdetailsview = function (salesOrderDetail) {\r\n $state.go('index.WareHouseOrderDetailView', {\r\n order_id: salesOrderDetail\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n $scope.hideAllUser = true;\r\n \r\n $scope.showAllUser = function(){\r\n $scope.hideAllUser = true; \r\n };\r\n $scope.hideAllUserbutton = function(){\r\n $scope.hideAllUser = false; \r\n };\r\n $scope.userClass_status = true;\r\n $scope.hideoverlay = function(){\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.userClass_status = true;\r\n $scope.broadcastSentUser = true;\r\n $scope.timeLineDetail = true;\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n vm.closeFeedbackoption();\r\n }\r\n $scope.close360ViewBroadcaste = function(){\r\n $scope.myvalue = false;\r\n angular.element('#div1').removeClass(\"alpha\");\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userSingle = function() {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.userFilter = true;\r\n $scope.assignJobFilter = function() {\r\n $scope.userFilter = !$scope.userFilter;\r\n $scope.myvalue = true;\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n // $scope.toggleMenu();\r\n };\r\n $scope.minatureSlide = true;\r\n $scope.minatureSlideBtn = function() {\r\n $scope.minatureSlide = !$scope.minatureSlide;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.hideFilter = function(){\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n var token = $localStorage.token;\r\n vm.IsOpenBucketEnabled = $localStorage.IsOpenBucketEnabled;\r\n vm.IsAutoAssignToCHDteam = $localStorage.IsAutoAssignToCHDteam;\r\n vm.IsOpenBucketEnabled = $localStorage.IsOpenBucketEnabled;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.MobiforceCommission = vm.getAccountConfigSetting('MobiforceCommissionPercentage');\r\n vm.VendorAssignation = vm.getAccountConfigSetting('VendorAssignation');\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.FreelancerAccess = vm.getAccountConfigSetting('FreelancerAccess');\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n vm.TeamStatus = '';\r\n vm.NewJobs = [];\r\n vm.BroadcastedJobs = '';\r\n vm.Attendence = '';\r\n vm.CancellationReasons = \"\";\r\n vm.JobProfile = '';\r\n vm.GroupType = \"Individual|WorkOrderGroup\";\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.loggedinAs = $localStorage.loggedinAs;\r\n vm.skillsSearch = '';\r\n vm.locationSearch = '';\r\n vm.userlocation = '';\r\n vm.userskill = '';\r\n vm.UserAvailable='';\r\n vm.AttendenceForBid ='';\r\n vm.skillData = '';\r\n vm.applyUserFilter = '';\r\n vm.MoveSPDbyTwoDays = false;\r\n vm.IsCommissionDetect = false;\r\n vm.filter = '';\r\n vm.circleData = '';\r\n vm.checkAll = '';\r\n vm.fixedUsers = '';\r\n vm.isChecked = \"fixed\";\r\n vm.freelancerUsers = '';\r\n vm.ticketaccount = '';\r\n vm.PermanentState = '';\r\n $scope.isCollapsed = true;\r\n $scope.isOpened = true; \r\n vm.PermanentCity ='';\r\n vm.ticketskill = '';\r\n vm.ticketstatus = '';\r\n vm.FreelancerVendorUsers = [];\r\n vm.VendorUsers = '';\r\n vm.selectedJob = '';\r\n vm.newJobselectAny = '';\r\n vm.fixed_selectAll = '';\r\n vm.searchText = \"\";\r\n vm.tab = '';\r\n vm.freelancerCheckAny = '';\r\n vm.filteredProperties = {};\r\n vm.filteredFreelancer = {};\r\n var GrossRate = 1.18;\r\n vm.selectsinglebidJob = '';\r\n vm.jobselected = [];\r\n vm.freelancer_selectAll = '';\r\n vm.supervisorList = '';\r\n vm.vendorList = [];\r\n vm.eventSources = [];\r\n vm.uiConfig = {};\r\n vm.AvailableUserData = '';\r\n vm.events = [];\r\n vm.UserAvailabilityData = '';\r\n vm.routebuttonDisable=false;\r\n vm.brodcastButtonDisable=false;\r\n vm.assignButtonDisable=false;\r\n vm.CurrentState = '';\r\n vm.WorkState = '';\r\n vm.WorkCity = '';\r\n vm.UserAvailabilityList = [\"Active\",\"MMFPrimeMember\",\"NoLead\",\"Offline\",\"OneJobDone\",\"Online\"];\r\n var itemNames = '';\r\n var itemValues = '';\r\n var fnitemNames = '';\r\n var fnitemValues = '';\r\n var templateItemNames = '';\r\n var templateItemValues = '';\r\n var textItemNames = '';\r\n var textItemValues = '';\r\n var PageIndex = 1;\r\n var PageSize = 10; \r\n vm.OrderBy = \"CreatedOn\";\r\n vm.sorttype = \"desc\";\r\n vm.SortType = \"desc\";\r\n vm.SortField = 'CreatedOn';\r\n vm.IsSafetyAudit = 'Not Done'; \r\n vm.ratingwarning=\"\";\r\n vm.ticketListLength=0;\r\n vm.pageindexCount=0;\r\n vm.bpageindexCount=0;\r\n vm.wpageindexCount=0;\r\n // vm.DateField=\"StatusChangedOn\";\r\n vm.DateField= vm.accountConfig.AccountId == 0 ? 'StatusChangedOn' : 'CreatedOn';\r\n vm.searchStatusText=\"All\"; \r\n var uPageIndex = 1;\r\n var uPageSize = 10; \r\n var jPageIndex = 1;\r\n var jPageSize = 10; \r\n var fPageIndex = 1;\r\n var fPageSize = 10;\r\n var bPageIndex = 1;\r\n var bPageSize = 10; \r\n var wPageIndex = 1;\r\n var wPageSize = 10;\r\n $scope.expanded = true; \r\n vm.UsersType=\"\";\r\n vm.uType=\"\";\r\n var uitemNames=\"\";\r\n var witemNames=\"\";\r\n var witemValues=\"\";\r\n vm.ComplianceDisable = true;\r\n vm.PincodeEnabled = false;\r\n vm.OneJobDoneOnSkill = false;\r\n vm.IsMMFPrimeMember = false;\r\n var uitemValues=\"\";\r\n vm.searchUsersText=\"\";\r\n vm.TicketSelectedForAssistedSuggestion = \"\"\r\n vm.UserSuggestionList = [];\r\n vm.StoreUserSuggestionList = [];\r\n vm.UserSuggestionCount = '';\r\n vm.HDAllAccounts = [];\r\n vm.jobsCount='';\r\n vm.UserBIDCount = '';\r\n vm.showMode = 'nearBy';\r\n vm.ticketPageListCount = 10;\r\n vm.userPageListCount= 10;\r\n vm.suggestionPageListCount=10;\r\n vm.jobsPageListCount=10;\r\n vm.financePageListCount= 10;\r\n vm.disableBroadcastButton = false;\r\n vm.disableBroadcastCloseButton = false;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.reasonsForFU = '';\r\n vm.reasonsForHold = ''; \r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = ''; \r\n vm.primaryHoldReason='';\r\n vm.primaryHoldRemark=''; \r\n vm.convertNewReasons = '';\r\n vm.convertNewReasonsRemark ='';\r\n vm.disableExceptionButton = false;\r\n vm.bundleTicketArray = [];\r\n vm.unbundleTicketArray = [];\r\n vm.bundleJobId='';\r\n vm.bundleListLength=0;\r\n vm.workOrderListLength=0;\r\n vm.bundlePageListCount = 10;\r\n vm.workOrderPageListCount = 10;\r\n vm.pullBackReasons =''; \r\n vm.pullBackReasonsRemark= '';\r\n var wsSDate = ''; \r\n var wsEDate = '';\r\n $scope.IsSuggested = false;\r\n vm.closureCode = \"\";\r\n vm.IsClosuerCodeAvailable = false;\r\n vm.IsWithInDays = \"first\";\r\n vm.WithInDaysNumbers = [1,2,3,4,5];\r\n vm.PlannedClosureDate = \"\";\r\n vm.itemNamesSgtn = 'Pincode';\r\n vm.itemValuesSgtn = '';\r\n vm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n //'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n var scdt = new Date();\r\n scdt.setMinutes(scdt.getMinutes() + 30);\r\n vm.SourceCreationDate = scdt;\r\n var pcdt = new Date();\r\n pcdt.setDate(pcdt.getDate() + 7);\r\n vm.PlannedClosureDate = pcdt;\r\n\r\n vm.openCalendar = function (e, picker) {\r\n vm.ClosureDateTime.open = true;\r\n };\r\n var plannedclosuredatelimit = new Date();\t\r\n plannedclosuredatelimit.setMinutes(plannedclosuredatelimit.getMinutes() + 1)\r\n vm.ClosureDateTime = { date: '', datepickerOptions: { minDate: plannedclosuredatelimit } };\r\n\r\n var date = new Date();\r\n var d = date.getDate();\r\n var m = date.getMonth();\r\n var y = date.getFullYear(); \r\n vm.eventsF = function (start, end, timezone, callback) {\r\n var s = new Date(start).getTime() / 1000;\r\n var e = new Date(end).getTime() / 1000;\r\n var m = new Date(start).getMonth();\r\n var events = [{\r\n title: 'Feed Me ' + m,\r\n start: s + (50000),\r\n end: s + (100000),\r\n allDay: false,\r\n className: ['customFeed']\r\n }];\r\n callback(events);\r\n };\r\n if (vm.bIsMMFInventoryCRM) {\r\n vm.UserAvailabilityList = vm.UserAvailabilityList.filter(function(item) {\r\n return item !== \"MMFPrimeMember\";\r\n });\r\n}\r\n vm.getSkills = function () {\r\n JobTicketViewService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills;\r\n //vm.skills.unshift({ \"SkillName\": \"All Job Types\" }); \r\n if (vm.path == 'isTicketView') {\r\n vm.searchJobTypeText = $localStorage.AllJobType;\r\n // vm.searchStatusText = $localStorage.AllJobStatus;\r\n } \r\n }, vm.showFailure);\r\n }\r\n vm.getSkills();\r\n\r\n vm.GetFinanceTicketDetail = function (paymentId,isCollapsed) {\r\n $scope.isCollapsed = !isCollapsed; \r\n DashboardService.GetFinanceTicketDetail(paymentId).then(function (resp) {\r\n vm.financedetails = resp.data;\r\n })\r\n }\r\n\r\n vm.Allapplyfilter = function(){\r\n // vm.searchText='';\r\n $scope.userFilter = true;\r\n $scope.myvalue = false;\r\n vm.GroupType = 'Individual|WorkOrderGroup';\r\n startDate = moment(vm.ticketdates.startDate).format('YYYY-MM-DD');\r\n endDate = moment(vm.ticketdates.endDate).format('YYYY-MM-DD');\r\n $scope.$broadcast('update.daterangepicker', {date: vm.ticketdates}); \r\n $scope.UserTablepagination = {}; \r\n vm.FilterArray(); \r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n} \r\n\r\nvm.getAllAccounts = function ( ) {\r\n ManualAssignationJobService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data) { \r\n if(resp.status==200)\r\n {\r\n vm.HDAllAccounts = resp.data;\r\n\r\n }\r\n } \r\n }, function () { \r\n });\r\n}\r\nvm.getAllAccounts();\r\n\r\nvm.getAllCustomer = function(){ \r\n ManualAssignationJobService.getAllCustomers(loggedinUser,token).then(function(resp){\r\n vm.CustomerAcc = resp.data;\r\n })\r\n} \r\nvm.getAllProject= function(){ \r\n ManualAssignationJobService.GetAllProjects(loggedinUser,token).then(function(resp){\r\n vm.ProjectAcc = resp.data;\r\n })\r\n}\r\nvm.getAllCustomer();\r\nvm.getAllProject();\r\n\r\nvm.GetCustomerByAccount=function()\r\n{ var SelectedAccountId = ''; \r\n angular.forEach(vm.HDAllAccounts, function (account) {\r\n if (account.AccountName==vm.SearchByAccountName) {\r\n SelectedAccountId = account.AccountId; \r\n }\r\n })\r\n ManualAssignationJobService.GetCustomersByAccount(loggedinUser,SelectedAccountId,token).then(function(resp){\r\n vm.CustomerList = resp.data;\r\n })\r\n}\r\n\r\nvm.GetProjectByCustomer=function()\r\n{\r\n vm.ProjectListByCust=[];\r\n angular.forEach(vm.CustomerList, function (customer) {\r\n if (customer.CompanyName==vm.SearchByCName) {\r\n vm.ProjectListByCust = customer.Projects; \r\n }\r\n})\r\n}\r\n\r\nvm.GetProjectByCust=function()\r\n {\r\n vm.ProjectListByCustomer=[];\r\n angular.forEach(vm.ProjectList, function (prject) {\r\n if (prject.CustomerName==vm.SearchByCName) {\r\n vm.ProjectListByCustomer.push(prject);\r\n }\r\n })\r\n }\r\n\r\n vm.AutoBroadcastJobs = function(){\r\n vm.DisableBroadcastButtons(false); \r\n var ticketIds = ''; \r\n var count = 0; \r\n angular.forEach(vm.ticketList, function(d){\r\n if (d.checked) {\r\n count = count + 1;\r\n if(ticketIds == ''){\r\n ticketIds = d.TicketId;\r\n }\r\n else{\r\n ticketIds = ticketIds + \",\" + d.TicketId;\r\n } \r\n }\r\n })\r\n\r\n vm.confirmationMessage = 'Please confirm if you want to auto schedule ' + count + ' Jobs?';\r\n vm.autoBroadcastJobIds = ticketIds;\r\n confirmationModalInstance = $uibModal.open({\r\n templateUrl: 'auto_schedule_confirmation_model.html',\r\n scope: $scope,\r\n backdrop: 'static'\r\n });\r\n }\r\n\r\n vm.confirmationCloseModal = function () {\r\n vm.DisableBroadcastButtons(false); \r\n confirmationModalInstance.close();\r\n }\r\n\r\n\r\n vm.DisableBroadcastButtons = function (disable) {\r\n if(disable){\r\n vm.disableBroadcastButton = true;\r\n vm.disableBroadcastCloseButton = true;\r\n }\r\n else{\r\n vm.disableBroadcastButton = false;\r\n vm.disableBroadcastCloseButton = false;\r\n }\r\n }\r\n\r\n vm.AutoScheduleJobs = function () { \r\n vm.DisableBroadcastButtons(true);\r\n var data = {\r\n \"ticketIds\": vm.autoBroadcastJobIds\r\n } \r\n ManualAssignationJobService.AutoBroadcastAllNewJobsManualMode(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000); \r\n confirmationModalInstance.close(); \r\n vm.showSuccess(\"Success\", \"Jobs has been auto scheduled successfully\");\r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.DisableBroadcastButtons(false); \r\n confirmationModalInstance.close();\r\n }\r\n }, function () { \r\n });\r\n }\r\n\r\n ManualAssignationJobService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n ManualAssignationJobService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n \r\n vm.callToTechnician = function (userid) { \r\n ManualAssignationJobService.callToTechnicianApi(loggedinUser,userid, token).then(function (resp) {\r\n if(resp.status == 200) {\r\n vm.showSuccess(\"Success\",\"Call Initiated\") \r\n }\r\n else {\r\n vm.showFailure(\"Failure\",resp.data.Message)\r\n }\r\n \r\n });\r\n \r\n}\r\n\r\nvm.callToTechnicianInBroadcastState = function (userid,ticketId) { \r\n ManualAssignationJobService.callToTechnicianInBroadcastState(loggedinUser,userid,ticketId, token).then(function (resp) {\r\n if(resp.status == 200) {\r\n vm.showSuccess(\"Success\",\"Call Initiated\") \r\n }\r\n else {\r\n vm.showFailure(\"Failure\",resp.data.Message)\r\n }\r\n \r\n });\r\n\r\n}\r\n\r\nvm.GetAllWorkOrderJob = function (isCollapsed,workOrder) {\r\n if(vm.workOrder == workOrder){\r\n $scope.isCollapsed = !isCollapsed;\r\n } \r\n $scope.activeRow = workOrder;\r\n vm.workOrder = workOrder;\r\n vm.workOrdertList = [];\t\r\n if($scope.isCollapsed)\r\n return;\r\n ManualAssignationJobService.GetAllWorkOrderJob(loggedinUser,workOrder, token).then(function (resp) {\r\n if (resp && resp.data) {\t\t \r\n if(resp.status==200){\r\n vm.workOrdertList = resp.data;\r\n }\r\n }\r\n });\r\n}\r\n\r\nvm.getRejectHistory = function (ticketId) \r\n{ \r\n ManualAssignationJobService.getRejectHistory(ticketId,loggedinUser,token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.getDetailsList=resp.data;\r\n openHistoryModel = $uibModal.open({\r\n templateUrl: 'openHistoryModel.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n }, function () { \r\n });\r\n} \r\n\r\nvm.CloseHistoryModel = function () {\r\n openHistoryModel.close();\r\n}\r\n\r\n //pull back\r\n vm.PullBackJobs = function(){\r\n var ticketIds = ''; \r\n var count = 0; \r\n angular.forEach(vm.ticketList, function(d){\r\n if (d.checked) {\r\n count = count + 1;\r\n if(ticketIds == ''){\r\n ticketIds = d.TicketId;\r\n }\r\n else{\r\n ticketIds = ticketIds + \",\" + d.TicketId;\r\n } \r\n }\r\n })\r\n vm.pullBackJobIds = ticketIds;\r\n vm.DisableBroadcastButtons(true);\r\n var JobIdsforPull = [];\r\n JobIdsforPull.push(vm.pullBackJobIds); \r\n ManualAssignationJobService.PullBackJob(loggedinUser, JobIdsforPull, token).then(function (resp) {\r\n if (resp.status == 202) { \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize); \r\n vm.showSuccess(\"Success\", \"Jobs - \" + vm.pullBackJobIds + \" pulledback succesfully\"); \r\n }, 1000); \r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableBroadcastButtons(false); \r\n }\r\n }, function () { \r\n });\r\n}\r\n\r\n /* alert on dayClick */\r\n vm.ev = {};\r\n vm.alertOnDayClick = function (date) {\r\n vm.alertMessage = (date.toString());\r\n vm.ev = {\r\n from: date.format('YYYY-MM-DD'),\r\n to: date.format('YYYY-MM-DD'),\r\n title: '',\r\n allDay: true\r\n };\r\n };\r\n\r\n /* alert on eventClick */\r\n vm.alertOnEventClick = function (date, jsEvent, view) {\r\n vm.alertMessage = (date.title);\r\n };\r\n /* alert on Drop */\r\n vm.alertOnDrop = function (event, delta, revertFunc, jsEvent, ui, view) {\r\n vm.alertMessage = ('Event Dropped to make dayDelta ' + delta);\r\n };\r\n /* alert on Resize */\r\n vm.alertOnResize = function (event, delta, revertFunc, jsEvent, ui, view) {\r\n vm.alertMessage = ('Event Resized to make dayDelta ' + delta);\r\n };\r\n /* add and removes an event source of choice */\r\n vm.addRemoveEventSource = function (sources, source) {\r\n var canAdd = 0;\r\n angular.forEach(sources, function (value, key) {\r\n if (sources[key] === source) {\r\n sources.splice(key, 1);\r\n canAdd = 1;\r\n }\r\n });\r\n if (canAdd === 0) {\r\n sources.push(source);\r\n }\r\n };\r\n /* add custom event*/\r\n vm.addEvent = function () {\r\n vm.events.push({\r\n title: $scope.ev.title,\r\n start: moment($scope.ev.from),\r\n end: moment($scope.ev.to),\r\n allDay: true,\r\n className: ['openSesame']\r\n });\r\n };\r\n /* remove event */\r\n /*$scope.remove = function (index) {\r\n $scope.events.splice(index, 1);\r\n };*/\r\n /* Change View */\r\n vm.changeView = function (view, calendar) {\r\n vm.currentView = view;\r\n uiCalendarConfig.calendars[calendar].fullCalendar('changeView', view);\r\n\r\n };\r\n /* Change View */\r\n vm.renderCalender = function (calendar) {\r\n $timeout(function () {\r\n if (uiCalendarConfig.calendars[calendar]) {\r\n uiCalendarConfig.calendars[calendar].fullCalendar('render');\r\n }\r\n });\r\n };\r\n /* Render Tooltip */\r\n $scope.eventRender = function (event, element, view) {\r\n element.attr({\r\n 'tooltip': event.title,\r\n 'uib-tooltip-append-to-body': true\r\n });\r\n $compile(element)($scope);\r\n };\r\n\r\n vm.currentView = 'month';\r\n\r\n /* config object */\r\n vm.uiConfig = {\r\n calendar: {\r\n height: 450,\r\n editable: false,\r\n displayEventTime: false,\r\n header: {\r\n left: 'title',\r\n center: 'myCustomButton',\r\n right: 'prev,next'\r\n },\r\n dayClick: vm.alertOnDayClick,\r\n eventClick: vm.alertOnEventClick,\r\n eventResize: vm.alertOnResize,\r\n eventRender: function (event, element, view) {\r\n element.attr({\r\n 'uib-tooltip': event.title,\r\n 'uib-tooltip-append-to-body': true\r\n });\r\n $compile(element)($scope);\r\n },\r\n businessHours: {\r\n start: '10:00', // a start time (10am in this example)\r\n end: '18:00', // an end time (6pm in this example)\r\n\r\n dow: [1, 2, 3, 4]\r\n // days of week. an array of zero-based day of week integers (0=Sunday)\r\n // (Monday-Thursday in this example)\r\n }\r\n }\r\n };\r\n\r\n vm.events = [];\r\n\r\n /* event sources array*/\r\n vm.eventSources = [vm.events, vm.eventsF];\r\n // vm.eventSources2 = [vm.calEventsExt, vm.eventsF, vm.events];\r\n\r\n //Availablity\r\n vm.Availibility = function (data) {\r\n vm.showAvailability = true;\r\n vm.AvailableUserData = data;\r\n vm.GetAssignedTicketforUser(data.UserId, loggedinUser, token)\r\n }\r\n\r\n vm.AvailibilityUS = function (data) {\r\n vm.showAvailability = true;\r\n vm.AvailableUserData = data;\r\n }\r\n\r\n vm.getAccounts = function () {\r\n ManualAssignationJobService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data && resp.status==200) { \r\n vm.accounts = resp.data;\r\n } \r\n }, function () { \r\n });\r\n } \r\n vm.getAccounts();\r\n\r\n\r\n vm.DisableRouteBroadcastButtons = function (disable) {\r\n if(disable){\r\n vm.brodcastButtonDisable = true;\r\n vm.routebuttonDisable = true;\r\n }\r\n else{\r\n vm.brodcastButtonDisable = false;\r\n vm.routebuttonDisable = false;\r\n }\r\n }\r\n\r\n //Get new Jobs\r\n vm.GetNewJobs = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemName = \"Circle,SkillSet\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch;\r\n } else {\r\n var itemName = '';\r\n var itemValues = '';\r\n }\r\n\r\n if(loggedinUserSkill==\"VSAT\"){\r\n itemName+=\"Template\";\r\n itemValues+=\"VSAT CCR\";\r\n } else if(loggedinUserSkill==\"LeaseLine\"){\r\n itemName+=\"Template\";\r\n itemValues+=\"LeaseLine CCR\";\r\n }\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemName, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.NewJobs = resp.data;\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n var today = moment();\r\n //var date = moment(\"2015-05-13\", \"YYYY-MM-DD\");\r\n var date2 = vm.NewJobs[index].CreationDate;//moment(vm.NewJobs[index].CreationDate,'DD/MM/YYYY').format(\"YYYY-MM-DD\");\r\n // date2 = new Date(date2);\r\n var duration = today.diff(date2, 'days');\r\n // var hours = today.diff(date2,'hours');\r\n vm.NewJobs[index].Age = duration; \r\n }\r\n vm.selectAllNewJob = false;\r\n vm.showMinusNewJob = false;\r\n if(vm.IsMaterialDelivered){\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n if(vm.NewJobs[index].MetrialDeliverStatus =='Delivered'){\r\n vm.NewJobs[index].IsDissablePermision = false;\r\n }else{\r\n vm.NewJobs[index].IsDissablePermision = true;\r\n } \r\n }\r\n }\r\n } else {\r\n vm.NewJobs = '';\r\n //$log.log('vm.NewJobs', 'List Empty')\r\n }\r\n }\r\n })\r\n }\r\n vm.GetRejectedJobs = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemName = \"Ticket Status,Circle,SkillSet\";\r\n var itemValues = 'Rejected' + ',' + vm.locationSearch + ',' + vm.skillsSearch;\r\n } else {\r\n var itemName = 'Ticket Status';\r\n var itemValues = 'Rejected';\r\n }\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemName, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.NewJobs = resp.data;\r\n\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n var today = moment();\r\n //var date = moment(\"2015-05-13\", \"YYYY-MM-DD\");\r\n var date2 = vm.NewJobs[index].CreationDate;//moment(vm.NewJobs[index].CreationDate,'DD/MM/YYYY').format(\"YYYY-MM-DD\");\r\n // date2 = new Date(date2);\r\n\r\n var duration = today.diff(date2, 'days');\r\n // var hours = today.diff(date2,'hours');\r\n vm.NewJobs[index].Age = duration;\r\n }\r\n vm.selectAllNewJob = false;\r\n vm.showMinusNewJob = false;\r\n //$log.log('New TicketList',vm.NewJobs);\r\n\r\n } else {\r\n vm.NewJobs = '';\r\n //$log.log('vm.NewJobs', 'List Empty')\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n //Get all Active Fixed Users\r\n\r\n vm.GetAllActiveFixedUsers = function () {\r\n\r\n if (vm.loggedInUserRole == 'Administrator' || vm.loggedInUserRole == 'Project Manager' || vm.loggedinAs == 'Supervisor' || vm.loggedinAs == 'Vendor Supervisor' || vm.loggedInUserRole =='Help Desk') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n }\r\n if(vm.loggedInUserRole =='Help Desk') {\r\n itemNames+=\",SkillSet,SubRegion\";\r\n itemValues+=\",\"+loggedinUserSkill+\",\"+loggedinUserRegion;\r\n }\r\n\r\n ManualAssignationJobService.GetUsersByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('vm.fixedUsers', vm.fixedUsers);\r\n preprocessData(vm.fixedUsers);\r\n }\r\n })\r\n } else if (vm.loggedInUserRole == 'Vendor Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n }\r\n\r\n ManualAssignationJobService.GetUsersByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n preprocessData(vm.fixedUsers);\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.loadAllSkills = function(){\r\n ManualAssignationJobService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skillsWithPipe = '';\r\n if (resp && resp.data) {\r\n vm.skillData = resp.data;\r\n if(vm.skillData && vm.skillData.length>0){\r\n angular.forEach(vm.skillData, function(s){\r\n vm.skillsWithPipe += s.SkillName+\"|\";\r\n });\r\n vm.skillsWithPipe = vm.skillsWithPipe.length>0\r\n ? vm.skillsWithPipe.substring(0,vm.skillsWithPipe.length-1) : \"\";\r\n }\r\n }\r\n });\r\n }\r\n vm.loadAllSkills();\r\n\r\n\r\n vm.GetFollowupReasons = function(){\r\n ManualAssignationJobService.GetReasonsByStatus(loggedinUser, token, 'FollowUp').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForFU = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetFollowupReasons();\r\n\r\n vm.GetHoldReasons = function(){\r\n ManualAssignationJobService.GetReasonsByStatus(loggedinUser, token, 'Hold').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForHold = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetHoldReasons();\r\n vm.usersStatus = 'Assigned';\r\n vm.applyFilterForUser = function(status) {\r\n vm.usersStatus = status;\r\n vm.filterType = \"\";\r\n vm.GetListAllFreelancers();\r\n }\r\n vm.GetListAllFreelancers = function () {\r\n // if(vm.filterTktStatus){\r\n // vm.usersStatus = 'Broadcasted';\r\n // }\r\n // else if(!vm.filterTktStatus && vm.usersStatus == 'Broadcasted'){\r\n // vm.usersStatus = \"Assigned\";\r\n // }\r\n // else {\r\n // vm.usersStatus;\r\n // }\r\n vm.filterToggle = true;\r\n var data = {\r\n \"itemNames\": \"Status\", \r\n \"itemValues\": vm.usersStatus, \r\n \"Type\": vm.filterType,\r\n \"toDate\": endDate,\r\n \"fromDate\": startDate,\r\n \"OrderBy\":vm.OrderBy, \r\n \"OrderSeq\":vm.OrderSeq\r\n }\r\n ManualAssignationJobService.GetListAllFreelancers(data,loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.listofActiveUsers = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.sortColumnUser = function(OrderBy){\r\n vm.OrderBy = OrderBy;\r\n // vm.Orderby = col;\r\n if(vm.OrderSeq=='desc'){\r\n vm.OrderSeq = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n }else{\r\n vm.OrderSeq = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.GetListAllFreelancers();\r\n };\r\n\r\n vm.sortClassUser = function(col){\r\n if(vm.OrderBy == col ){\r\n if(vm.OrderSeq == 'desc'){\r\n return 'fa fa-arrow-down'; \r\n }else{\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else{\r\n return '';\r\n }\r\n }\r\n //Get all Freelancers\r\n vm.GetAllFreelancers = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"UserStatus,Locations,SkillSet,Role\";\r\n var itemValues = \"Active\" + ',' + vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Field Engineer';\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n if(vm.skillsWithPipe && vm.skillsWithPipe.length>0){\r\n itemNames+=\",SkillSet\";\r\n itemValues+=\",\"+vm.skillsWithPipe;\r\n }\r\n }\r\n ManualAssignationJobService.GetAllFreelancersWithFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n // for(var i=0;i 0) {\r\n vm.FreelancerVendorUsers = resp.data;\r\n // for(var i=0;i 0) {\r\n ManualAssignationJobService.AssignTickets(userId, loggedinUser, itemValues, token).then(function (resp) {\r\n\r\n if (resp && resp.data && resp.data.ErrorCode == 140 && resp.data.Message) {\r\n if (mode == 'fixed') {\r\n vm.showFailure(\"Failed\", resp.data.Message + \". Please recharge your account.\");\r\n vm.assignButtonDisable = false;\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data.Message + \".\");\r\n vm.assignButtonDisable = false;\r\n }\r\n } else if (resp && resp.data && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Ticket assigned successfully\"); \r\n $timeout(function () {\r\n if(vm.TicketType == 'Combo') {\r\n vm.applyComboTktFilter();\r\n }\r\n if(vm.TicketType == 'WorkOrderGroup') {\r\n vm.applyfilterWorkOrder();\r\n }\r\n else{\r\n vm.applyTicketFilter();\r\n } \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n }, 1000);\r\n vm.assignButtonDisable = false;\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data); \r\n $timeout(function () {\r\n if(vm.TicketType == 'Combo') {\r\n vm.applyComboTktFilter();\r\n }\r\n if(vm.TicketType == 'WorkOrderGroup') {\r\n vm.applyfilterWorkOrder();\r\n }\r\n else{\r\n vm.applyTicketFilter();\r\n }\r\n vm.applyUserFilter(); \r\n }, 1000);\r\n vm.assignButtonDisable = false;\r\n } else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n }\r\n\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select New, Broadcasted or Assigned tickets to assign\");\r\n vm.assignButtonDisable = false;\r\n }\r\n }\r\n\r\n vm.toggleAll = function () {\r\n //$log.log('checkAll', vm.checkAll);\r\n var bool = true;\r\n if (vm.checkAll) {\r\n bool = false;\r\n }\r\n angular.forEach(vm.NewJobs, function (v, k) {\r\n // //$log.log('v',v);\r\n // //$log.log('k',k);\r\n v.checked = !bool;\r\n // //$log.log('!bool', v.checked);\r\n vm.checkAll = !bool;\r\n });\r\n }\r\n\r\n vm.checkAny = function (i) {\r\n //$log.log('newJobselectAny', vm.newJobselectAny);\r\n vm.checkAll = true;\r\n angular.forEach(vm.NewJobs, function (v, k) {\r\n\r\n if (!v.checked) {\r\n vm.checkAll = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n vm.showCheckAny = function (i) {\r\n vm.showMinus = true;\r\n angular.forEach(vm.freelancerCheckAny, function (v, k) {\r\n if (v != true && k == vm.freelancerCheckAny[i]) {\r\n vm.showMinus = false;\r\n } else {\r\n vm.showMinus = true;\r\n }\r\n });\r\n }\r\n\r\n vm.GetTicketById = function (ticketId) {\r\n ManualAssignationJobService.GetTicketsById(ticketId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.JobProfile = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.removeFilters = function () {\r\n if (vm.isChecked == 'fixed') {\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationJobService.GetUsersByFilter(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('fixedUsers', resp.data);\r\n preprocessData(vm.fixedUsers);\r\n } else {\r\n vm.fixedUsers = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get users, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'freelancer') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n } else if(vm.skillsWithPipe && vm.skillsWithPipe.length>0){\r\n teamIteamNames+=\",SkillSet\";\r\n teamIteamValues+=vm.skillsWithPipe;\r\n }\r\n ManualAssignationJobService.GetAllFreelancersWithFilters(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n //$log.log('freelancers', vm.freelancerUsers);\r\n preprocessData(vm.freelancerUsers);\r\n } else {\r\n vm.freelancerUsers = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get freelancers, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get freelancers, server is not responding correctly.\");\r\n });\r\n\r\n var broadItemNames = 'Circle,SkillSet,TicketStatus';\r\n var broadItemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Broadcasted';\r\n\r\n ManualAssignationJobService.GetBroadcastedBids(loggedinUser, broadItemNames, broadItemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'vendor') {\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationJobService.GetAllVendors(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.vendorList = resp.data;\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get vendors, server is not responding correctly.\");\r\n })\r\n\r\n } else if (vm.isChecked == 'supervisor') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"UserStatus\";\r\n var teamIteamValues = 'Active';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationJobService.GetUsersByRole(loggedinUser, 'Supervisor', teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data.length > 0) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n } else {\r\n vm.supervisorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get supervisors, server is not responding correctly.\");\r\n });\r\n }\r\n }\r\n\r\n //To Search\r\n vm.search = function () {\r\n if (vm.searchform.$valid) {\r\n if (vm.isChecked == 'fixed') {\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n ManualAssignationJobService.GetUsersByFilter(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('fixedUsers', resp.data);\r\n preprocessData(vm.fixedUsers);\r\n } else {\r\n vm.fixedUsers = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n })\r\n } else if (vm.isChecked == 'freelancer') {\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n ManualAssignationJobService.GetAllFreelancersWithFilters(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n //$log.log('freelancers', vm.freelancerUsers);\r\n preprocessData(vm.freelancerUsers);\r\n } else {\r\n vm.freelancerUsers = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n });\r\n\r\n var broadItemNames = 'Circle,SkillSet,TicketStatus';\r\n var broadItemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Broadcasted';\r\n ManualAssignationJobService.GetBroadcastedBids(loggedinUser, broadItemNames, broadItemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'vendor') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n ManualAssignationJobService.GetAllVendors(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.vendorList = resp.data;\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get vendors, server is not responding correctly.\");\r\n });\r\n\r\n } else if (vm.isChecked == 'supervisor') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n ManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get supervisors, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n ManualAssignationJobService.GetUsersByRole(loggedinUser, 'Supervisor', teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data.length > 0) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n } else {\r\n vm.supervisorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get users, server is not responding correctly.\");\r\n })\r\n\r\n }\r\n vm.SearchModal.close();\r\n } else {\r\n vm.searchform.submitted = true;\r\n }\r\n\r\n\r\n }\r\n\r\n \r\n vm.tabNo = function (tab) {\r\n vm.tab = tab;\r\n //$log.log('TabNo', vm.tab);\r\n }\r\n\r\n vm.ChangeMode = function (mode) {\r\n vm.tabNo('1');\r\n if (mode == 'fixed') {\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties={\"SkillSet\":\"Water Sample Collection\"};\r\n } \r\n vm.GetAllActiveFixedUsers();\r\n\r\n } else if (mode == 'freelancer') {\r\n vm.GetAllFreelancers();\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n vm.freelancer_select_all = false;\r\n vm.freelancer_selectAll = false;\r\n vm.freelancer_SelectAllJob = false;\r\n vm.freelancer_Select_All_NewJobs = false;\r\n\r\n\r\n } else if (mode == 'FixedVendors') {\r\n vm.GetAllVendors();\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties={\"SkillSet\":\"Water Lab Test\"};\r\n }\r\n } else if (mode == 'vendor') {\r\n vm.GetAllFreelancerVendors();\r\n vm.Vendor_selectedItems = [];\r\n vm.Vendor_select_single = [];\r\n vm.Vendor_NewJobSelectedItems = [];\r\n vm.Vendor_select_single_NewJob = [];\r\n vm.Vendor_select_all = false;\r\n vm.Vendor_selectAll = false;\r\n vm.Vendor_SelectAllJob = false;\r\n vm.Vendor_Select_All_NewJobs = false;\r\n\r\n\r\n }\r\n else if (mode == 'supervisor') {\r\n vm.GetUsersByRole('Supervisor');\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties = {\"SkillSet\":\"Water Lab Test\"};\r\n }\r\n }\r\n }\r\n vm.ChangeMode('fixed');\r\n\r\n\r\n //Get Users By Role\r\n\r\n vm.GetUsersByRole = function (role) {\r\n\r\n if (vm.loggedInUserRole == 'Administrator' || vm.loggedInUserRole == 'Project Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active\";\r\n }\r\n } else if (vm.loggedinAs == 'Supervisor' || vm.loggedinAs == 'Vendor Supervisor') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus,ReportingTo\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + vm.loggedInUserReportingTo;\r\n } else {\r\n var itemNames = \"UserStatus,ReportingTo\";\r\n var itemValues = \"Active,\" + vm.loggedInUserReportingTo;\r\n }\r\n } else if (vm.loggedInUserRole == 'Vendor Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active,\";\r\n }\r\n }\r\n else if (vm.loggedInUserRole == 'Help Desk') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active,\";\r\n }\r\n }\r\n\r\n ManualAssignationJobService.GetUsersByRole(loggedinUser, role, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n }\r\n })\r\n\r\n }\r\n\r\n vm.processBroadcastRouteResponse= function(data){\r\n var SuccessCount = 0;\r\n var failuremsg = '';\r\n\r\n angular.forEach(data, function (res) {\r\n if (res.BroadcastStatus=='Job Assigned') {\r\n SuccessCount = SuccessCount + 1; \r\n }\r\n else\r\n {\r\n failuremsg = failuremsg + res.JobId + ' ' + res.BroadcastStatus + ' ';\r\n }\r\n });\r\n\r\n if(SuccessCount > 0 && failuremsg)\r\n {\r\n failuremsg = SuccessCount + ' Jobs routed Successfully ' + failuremsg;\r\n vm.showFailure('Failed',failuremsg);\r\n }\r\n else if(SuccessCount > 0)\r\n {\r\n failuremsg = SuccessCount + ' Jobs routed Successfully ';\r\n vm.showSuccess('Success',failuremsg);\r\n }\r\n else\r\n {\r\n vm.showFailure('Failed',failuremsg);\r\n }\r\n }\r\n\r\n //vm.tabNo('1');\r\n // Route Jobs\r\n vm.routeTicket = function(index){\r\n vm.DisableRouteBroadcastButtons(true);\r\n var data = {};\r\n for(var i=0; i< vm.ticketList.length;i++){\r\n if(vm.ticketList[i].TicketStatus==\"New\")\r\n {\r\n if(vm.ticketList[i].checked){\r\n if(i==0){\r\n data.JobIds = vm.ticketList[i].TicketId;\r\n }else{\r\n data.JobIds = data.JobIds + ',' + vm.ticketList[i].TicketId;\r\n }\r\n }\r\n }\r\n } \r\n if(vm.workorderTkt){\r\n data.JobIds = vm.tickIdForWoL;\r\n } \r\n for(var i=0; i< vm.UserByFiltersList.length;i++){\r\n if(vm.UserByFiltersList[i].checked){\r\n data.UserId = vm.UserByFiltersList[i].UserId;\r\n break;\r\n }\r\n }\r\n if(data.JobIds){\r\n ManualAssignationJobService.RouteJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.processBroadcastRouteResponse(resp.data);\t\t \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n else if(resp.status == 206){\r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n });\r\n }else{\r\n vm.showFailure(\"Failed\", \"Please select tickets.\");\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n \r\n }\r\n\r\n // Route Jobs for user Suggestion\r\n vm.routeTicketUS = function (user) { \r\n vm.DisableRouteBroadcastButtons(true);\r\n var data = user; //vm.UserSuggestionList[0];\r\n var temp = [];\r\n temp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n var data = {\r\n \"JobId\": vm.broadcastTicketId,\r\n \"BIDDuration\": vm.TicketSelectedForAssistedSuggestion.BidDuration,\r\n \"MobiforceCommissionPercentage\": vm.TicketSelectedForAssistedSuggestion.MobiforceCommission,\r\n \"BroadcastType\": \"Route\",\r\n \"TechnicianSource\": 1,\r\n \"Users\": temp\r\n };\r\n if (data.Users.length > 0) {\r\n vm.showloading = true;\r\n ManualAssignationJobService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n \r\n if (resp.status == 201) {\r\n vm.showSuccess('Success', \"Jobs Route Successfully\");\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure('Failed', resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Users Not Found\");\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n vm.showloading = false;\r\n });\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select users.\");\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n \r\n }\r\n\r\n //brodcast ticket nearBy\r\n vm.BroadcastTicketUserSuggestion = function (i) {\r\n //vm.dissbleBroadcastButton = true;\r\n vm.DisableRouteBroadcastButtons(true);\r\n var temp = [];\r\n angular.forEach(vm.UserSuggestionList, function(d){\r\n if (d.checked) {\r\n temp.push({ \"UserId\": d.id, \"SuggestedPrice\": null, \"Price\": parseInt(d.Price), \"Distance\": parseInt(d.UserDistance) });\r\n \r\n }\r\n })\r\n var data = {\r\n \"JobId\": vm.broadcastTicketId,\r\n \"BIDDuration\": vm.TicketSelectedForAssistedSuggestion.BidDuration,\r\n \"MobiforceCommissionPercentage\": vm.TicketSelectedForAssistedSuggestion.MobiforceCommission,\r\n \"TechnicianSource\": 1,\r\n \"Users\": temp\r\n };\r\n if (data.Users.length > 0) {\r\n ManualAssignationJobService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.BroadcastStatus);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n });\r\n } \r\n else {\r\n vm.showFailure(\"Failed\", resp.data.BroadcastStatus);\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n }\r\n\r\n\r\n // Route Jobs\r\n vm.routeTicketToFV = function(index){\r\n var data = {};\r\n for(var i=0; i< vm.NewJobs.length;i++){\r\n if(vm.NewJobs[i].checked){\r\n if(i==0){\r\n data.JobIds = vm.NewJobs[i].TicketId;\r\n }else{\r\n data.JobIds = data.JobIds + ',' + vm.NewJobs[i].TicketId;\r\n }\r\n }\r\n }\r\n for(var i=0; i< vm.FreelancerVendorUsers.length;i++){\r\n if(vm.FreelancerVendorUsers[i].checked){\r\n data.UserId = vm.FreelancerVendorUsers[i].UserId;\r\n break;\r\n }\r\n }\r\n\r\n if(data.JobIds){\r\n ManualAssignationJobService.RouteJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess('Success',\"Jobs Route Successfully\");\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Server error.\");\r\n }\r\n });\r\n }else{\r\n vm.showFailure(\"Failed\", \"Please select tickets.\");\r\n }\r\n \r\n }\r\n\r\n //Broadcast Bids/Jobs\r\n vm.BroadCastJobs = function () {\r\n vm.DisableRouteBroadcastButtons(true);\r\n var BidData = [];\r\n angular.forEach(vm.ticketList, function (d) {\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n if(d.TicketStatus==\"New\")\r\n {\r\n if (d.checked) {\r\n obj.JobID = d.TicketId;\r\n var time = d.BidDuration.split(':');\r\n var hrs = parseInt(time[0]);\r\n var min = parseInt(time[1]);\r\n obj.BIDDuration = hrs*60 + min;\r\n obj.BroadCastRate = d.BroadcastRate\r\n obj.BroadCastGrossRate = d.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = d.MobiforceCommission\r\n obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n }\r\n }\r\n })\r\n var UserData = [];\r\n\r\n for(var i=0; i< vm.UserByFiltersList.length;i++){\r\n if(vm.UserByFiltersList[i].checked){\r\n UserData.push(vm.UserByFiltersList[i].UserId); \r\n }\r\n }\r\n\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"Bids\": BidData,\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModal.close();\r\n\r\n ManualAssignationJobService.BroadCastJobs(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.processBroadcastRouteResponse(resp.data);\r\n //vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n //toaster.pop(vm.toaster_success);\r\n vm.free_NewJobSelectedItems = [];\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n }\r\n \r\n\r\n vm.BroadCastJobsFV = function () {\r\n\r\n var BidData = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n if (d.checked) {\r\n obj.JobID = d.TicketId;\r\n var time = d.BidDuration.split(':');\r\n var hrs = parseInt(time[0]);\r\n var min = parseInt(time[1]);\r\n obj.BIDDuration = hrs*60 + min;\r\n obj.BroadCastRate = d.BroadcastRate\r\n obj.BroadCastGrossRate = d.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = d.MobiforceCommission\r\n obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n }\r\n })\r\n var UserData = [];\r\n for(var i=0; i< vm.FreelancerVendorUsers.length;i++){\r\n if(vm.FreelancerVendorUsers[i].checked){\r\n UserData.push(vm.FreelancerVendorUsers[i].UserId); \r\n }\r\n }\r\n\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"Bids\": BidData,\r\n \"Users\": UserData\r\n };\r\n vm.BroadcastModalFV.close();\r\n ManualAssignationJobService.BroadCastJobs(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n toaster.pop(vm.toaster_success);\r\n vm.free_NewJobSelectedItems = [];\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n }\r\n }\r\n\r\nvm.AssignReceivedBid = function(user){ \r\nvm.AllDataList =[];\r\nvar data ={\r\n\"TicketId\": vm.broadcastTicketId,\r\n \"UserId\": user.UserId,\r\n \"StartTime\":vm.broadcaststartTime,\r\n \"Endtime\": vm.broadcastEndTime,\r\n \"SuggestedPrice\": 0,\r\n \"AssignPrice\": parseInt(vm.broadcastAssignRate),\r\n \"Distance\": 0,\r\n}\r\nvm.AllDataList.push(data)\r\n ScheduleAssignService.AssignTicketsTimeline(loggedinUser,vm.AllDataList,token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.ChangeMode('freelancer');\r\n vm.BidReceivedJobs = [];\r\n $timeout(function () {\r\n $scope.hideSentUser();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 500);\r\n }\r\n }, function (err) {\r\n if (err && err.data) {\r\n vm.showFailure(\"Failed\", err.data);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to assign job, server is not responding correctly.\");\r\n }\r\n })\r\n}\r\n\r\n //Get Bid Received\r\n\r\n vm.BidReceived = function (ticket) { \r\n var status = 'Received';\r\n vm.bidStatus = status;\r\n vm.ticketStatusCheck = ticket.TicketStatus;\r\n vm.broadcastTicketId = ticket.TicketId;\r\n vm.broadcastLinkId = ticket.LinkId;\r\n vm.broadcaststartTime = ticket.StartTimeD;\r\n vm.broadcastEndTime = ticket.EndTime;\r\n vm.broadcastTicketInfo = ticket;\r\n vm.isReceived = true;\r\n vm.BIDMaxcount = 10; \r\n vm.BIDStartIndex = 0;\r\n ManualAssignationJobService.GetBidReceivedByStatus(loggedinUser, vm.broadcastTicketId, status, token).then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.BidReceivedJobs = resp.data;\r\n vm.UserBIDCount = vm.BidReceivedJobs.length;\r\n $scope.totalUserBID = vm.UserBIDCount; \r\n $scope.UserBIDpagination = {\r\n current: 1\r\n };\r\n angular.forEach(vm.BidReceivedJobs, function (user) {\r\n\r\n user.ratingStars = vm.getRatingStars(user.UserRating);\r\n user.blankStars = vm.getBlankStars(user.UserRating);\r\n user.exp = user.Experience > 0 ? parseFloat(user.UserExperience / 365).toFixed(1) : 0;\r\n })\r\n for(var i=0;i 0 ) {\r\n $scope.toggleForBroadcast();\r\n }\r\n }\r\n })\r\n }\r\n\r\n //deny\r\n vm.BidDeny = function (ticket) { \r\n document.getElementById(\"SendAndRecieveBid\").style.width = \"42%\";\r\n var status = 'Deny';\r\n vm.bidStatus = status;\r\n vm.ticketStatusCheck = ticket.TicketStatus;\r\n vm.broadcastTicketId = ticket.TicketId;\r\n vm.broadcastLinkId = ticket.LinkId;\r\n vm.broadcaststartTime = ticket.StartTimeD;\r\n vm.broadcastEndTime = ticket.EndTime;\r\n vm.broadcastTicketInfo = ticket;\r\n vm.isReceived = true;\r\n ManualAssignationJobService.GetBidDeny(loggedinUser, vm.broadcastTicketId, status, token).then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.BidReceivedJobs = resp.data;\r\n vm.UserBIDCount = vm.BidReceivedJobs.length;\r\n $scope.totalUserBID = vm.UserBIDCount; \r\n $scope.UserBIDpagination = {\r\n current: 1\r\n };\r\n angular.forEach(vm.BidReceivedJobs, function (user) {\r\n user.ratingStars = vm.getRatingStars(user.UserRating);\r\n user.blankStars = vm.getBlankStars(user.UserRating);\r\n user.exp = user.Experience > 0 ? parseFloat(user.UserExperience / 365).toFixed(1) : 0;\r\n })\r\n // for(var i=0;i 0 ? parseFloat(user.UserExperience / 365).toFixed(1) : 0; \r\n })\r\n for(var i=0;ilTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [1, 'asc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n //DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable()\r\n ];\r\n\r\n //Global Calling\r\n //vm.GetNewJobs();\r\n vm.GetAllActiveFixedUsers();\r\n //$log.log('isChecked', vm.isChecked);\r\n\r\n vm.openBroadcastmodal = function (i) {\r\n vm.broadcastError = null; \r\n vm.jobselected = [];\r\n angular.forEach(vm.ticketList, function (d) {\r\n if(d.TicketStatus==\"New\")\r\n {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n \r\n vm.jobselected.push(d);\r\n $log.log(d)\r\n // angular.forEach(vm.jobselected, function (t) {\r\n // t.PincodeArray = t.Pincode.split(\"|\");\r\n // t.Pincode = Array.from(new Set(t.PincodeArray));\r\n // t.SkillSetArray = t.SkillSet.split(\"|\");\r\n // t.SkillSet = Array.from(new Set(t.SkillSetArray));\r\n // })\r\n }\r\n }\r\n });\r\n \r\n if (vm.jobselected.length > 0) {\r\n vm.BroadcastModal = $uibModal.open({\r\n templateUrl: 'Broadcast.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n else\r\n {\r\n vm.showFailure(\"Failed\", \"Please select jobs\"); \r\n vm.broadcastError = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n vm.closeModal = function () {\r\n vm.BroadcastModal.close();\r\n }\r\n\r\n vm.openBroadcastmodalforFV = function (i) {\r\n vm.broadcastErrorFV = null; \r\n vm.jobselectedFV = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n vm.jobselectedFV.push(d);\r\n $log.log(d)\r\n }\r\n });\r\n if (vm.jobselectedFV.length > 0) {\r\n vm.BroadcastModalFV = $uibModal.open({\r\n templateUrl: 'BroadcastFV.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n } else {\r\n vm.broadcastErrorFV = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n\r\n vm.OpenBroadcastModelToFV = function (i) {\r\n vm.broadcastErrorFV = null; \r\n vm.jobselectedFV = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n vm.jobselectedFV.push(d);\r\n $log.log(d)\r\n }\r\n });\r\n if (vm.jobselectedFV.length > 0) {\r\n vm.BroadcastModalFV = $uibModal.open({\r\n templateUrl: 'BroadcastFV.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n } else {\r\n vm.broadcastErrorFV = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n vm.closeModalFV = function () {\r\n vm.BroadcastModalFV.close();\r\n }\r\n\r\n vm.GetAllVendors = function () {\r\n vm.vendorList = [];\r\n var itemNames = \"\";\r\n var itemValues = \"\";\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n itemNames = \"VendorLocations,VendorSkillsets,VendorStatus\";\r\n itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n itemNames = \"VendorStatus\";\r\n itemValues = \"Active\";\r\n }\r\n if (vm.loggedInUserRole == 'Help Desk') {\r\n itemNames += \",VendorSkillsets\";\r\n itemValues += \",\"+ loggedinUserSkill; \r\n }\r\n\r\n // GetAllVendors\r\n ManualAssignationJobService.GetFixedVendorsByFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n angular.forEach(resp.data, function(vendor){\r\n if (vendor.UserId !=loggedinUser) {\r\n vm.vendorList.push(vendor);\r\n }\r\n })\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n })\r\n }\r\n\r\n //Implementation of Checkboxes for all tables\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n vm.selectAllCheckboxes = function (mode, table) {\r\n if (mode == 'fixed' && table == 'fixed_NewJob') {\r\n if (vm.fixed_selectAll) {\r\n angular.forEach(vm.NewJobs, function (item) {\r\n idx = vm.selectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.fixed_select_all = true;\r\n vm.selectedItems.push(item);\r\n vm.fixed_select_single.push(\"true\");\r\n }\r\n })\r\n\r\n } else {\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n }\r\n\r\n //$log.log('selectedItems', vm.selectedItems);\r\n } else if (mode == 'freelancer' && table == 'freelancer_users') {\r\n if (vm.freelancer_selectAll) {\r\n angular.forEach(vm.freelancerUsers, function (item) {\r\n idx = vm.free_selectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.freelancer_select_all = true;\r\n vm.free_selectedItems.push(item);\r\n vm.freelancer_select_single.push(\"true\");\r\n }\r\n })\r\n } else {\r\n vm.freelancer_select_all = false;\r\n vm.freelacer_selectAll = false;\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n }\r\n\r\n } else if (mode == 'freelancer' && table == 'freelancer_NewJob') {\r\n if (vm.freelancer_SelectAllJobs) {\r\n angular.forEach(vm.NewJobs, function (item) {\r\n idx = vm.free_NewJobSelectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.freelancer_Select_All_NewJobs = true;\r\n vm.free_NewJobSelectedItems.push(item);\r\n vm.freelancer_select_single_NewJob.push(\"true\");\r\n }\r\n })\r\n } else {\r\n vm.freelancer_Select_All_NewJobs = false;\r\n vm.freelancer_SelectAllJobs = false;\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n }\r\n }\r\n }\r\n\r\n function preprocessData(users) {\r\n if (users && users.length > 0) {\r\n angular.forEach(users, function (user) {\r\n user.locationCount = user.Locations && user.Locations.length > 0 ? user.Locations.length : 0;\r\n user.locationToolTip = \"\";\r\n if (user.locationCount > 0) {\r\n angular.forEach(user.Locations, function (loc) {\r\n user.locationToolTip += loc + \",\";\r\n })\r\n user.locationToolTip = user.locationToolTip.substr(0, user.locationToolTip.length - 1);\r\n }\r\n\r\n user.SkillSetCount = user.SkillSet && user.SkillSet.length > 0 ? user.SkillSet.length : 0;\r\n user.SkillSetToolTip = \"\";\r\n if (user.SkillSetCount > 0) {\r\n angular.forEach(user.SkillSet, function (s) {\r\n user.SkillSetToolTip += s + \",\";\r\n })\r\n user.SkillSetToolTip = user.SkillSetToolTip.substr(0, user.SkillSetToolTip.length - 1);\r\n }\r\n user.OneJobSkillSetCount = user.OneJobDoneSkillSet && user.OneJobDoneSkillSet.length > 0 ? user.OneJobDoneSkillSet.length : 0;\r\n user.OneJobSkillSetToolTip = \"\";\r\n if (user.OneJobSkillSetCount > 0) {\r\n angular.forEach(user.OneJobDoneSkillSet, function (s) {\r\n user.OneJobSkillSetToolTip += s + \",\";\r\n })\r\n user.OneJobSkillSetToolTip = user.OneJobSkillSetToolTip.substr(0, user.OneJobSkillSetToolTip.length - 1);\r\n }\r\n\r\n user.ToolsListCount = user.Tools && user.Tools.length > 0 ? user.Tools.length : 0;\r\n user.ToolsListToolTip = \"\";\r\n if (user.ToolsListCount > 0) {\r\n angular.forEach(user.Tools , function (s) {\r\n user.ToolsListToolTip += s + \",\";\r\n })\r\n user.ToolsListToolTip = user.ToolsListToolTip.substr(0, user.ToolsListToolTip.length - 1);\r\n }\r\n user.VendorLocationsCount = user.VendorLocations && user.VendorLocations.length > 0 ? user.VendorLocations.length : 0;\r\n user.VendorLocationsToolTip = \"\";\r\n if (user.VendorLocationsCount > 0) {\r\n angular.forEach(user.VendorLocations, function (loc) {\r\n user.VendorLocationsToolTip += loc + \",\";\r\n })\r\n user.VendorLocationsToolTip = user.VendorLocationsToolTip.substr(0, user.VendorLocationsToolTip.length - 1);\r\n }\r\n\r\n user.VendorSkillsetsCount = user.VendorSkillsets && user.VendorSkillsets.length > 0 ? user.VendorSkillsets.length : 0;\r\n user.VendorSkillsetsToolTip = \"\";\r\n if (user.VendorSkillsetsCount > 0) {\r\n angular.forEach(user.VendorSkillsets, function (s) {\r\n user.VendorSkillsetsToolTip += s + \",\";\r\n })\r\n user.VendorSkillsetsToolTip = user.VendorSkillsetsToolTip.substr(0, user.VendorSkillsetsToolTip.length - 1);\r\n }\r\n user.ratingStars = vm.getRatingStars(Math.round(user.Ratings));\r\n user.blankStars = vm.getBlankStars(Math.round(user.Ratings));\r\n user.exp = user.Experience > 0 ? parseFloat(user.Experience / 365).toFixed(1) : 0;\r\n user.checked = false;\r\n });\r\n }\r\n }\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n vm.implementSelectTickets = function (itemList, scope) {\r\n scope.selectRowTicket = function (i) {\r\n vm.bundleTicketArray = []; \r\n vm.bundlePrice = [];\r\n vm.bundlesum = 0; \r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n vm.bundleTicketArray.push(d.TicketId) \r\n vm.bundlePrice.push(d.FreelancerRate)\r\n vm.bundlesum = vm.bundlePrice.reduce(function (x, y) {\r\n return x + y;\r\n }, 0); \r\n } \r\n });\r\n if(vm.bundleTicketArray.length > 5) {\r\n vm.showFailure(\"Failed\", 'Please select 5 or less than 5 tickets to create combo');\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.implementSelectTickets('jobTickets', this);\r\n\r\n vm.toBebundle = [];\r\n vm.implementSelectItemsNewJob = function (itemList, scope) {\r\n scope.selectAllNewJob = false;\r\n scope.showMinusNewJob = false;\r\n scope.PlannedClosureDateFlag = false;\r\n scope.CreateComboFlag = false;\r\n scope.AutoBroadcastedOnce = true;\r\n scope.selectRowNewJob = function (i) {\r\n scope.showMinusNewJob = false;\r\n scope.selectAllNewJob = false;\r\n scope.PlannedClosureDateFlag = false;\r\n scope.CreateComboFlag = false;\r\n scope.AutoBroadcastedOnce = true;\r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n vm.toBebundle.push(d.TicketId)\r\n vm.selctedTickets = vm.toBebundle.length;\r\n scope.showMinusNewJob = true;\r\n if(!d.ShowManualBroadcast){\r\n scope.AutoBroadcastedOnce = d.ShowManualBroadcast;\r\n }\r\n if(d.TicketStatus == 'New'){\r\n scope.PlannedClosureDateFlag = true;\r\n }\r\n if((d.TicketStatus == 'New' || d.TicketStatus == 'Broadcasted') && (!vm.bIsMMFInventoryCRM)){\r\n scope.CreateComboFlag = true;\r\n }\r\n }\r\n \r\n });\r\n }\r\n scope.applyAllNewJobSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllNewJob;\r\n if(d.checked && d.TicketStatus == 'New' ){\r\n scope.PlannedClosureDateFlag = true;\r\n }\r\n });\r\n }\r\n\r\n scope.resetAllSelect = function () {\r\n scope.selectAllNewJob = false;\r\n scope.showMinusNewJob = false;\r\n scope.PlannedClosureDateFlag = false;\r\n scope.CreateComboFlag = false;\r\n }\r\n }\r\n\r\n vm.implementSelectItemsNewJob('ticketList', this);\r\n\r\n vm.implementSelectItemsFL = function (itemList, scope) {\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n scope.selectRowFL = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.selectCountFL = 0;\r\n scope.showMinusFL = false;\r\n scope.selectAllFL = false;\r\n angular.forEach(vm.UserByFiltersList, function (d) {\r\n // //$log.log(d);\r\n if (d.checked) {\r\n scope.showMinusFL = true;\r\n scope.selectCountFL++;\r\n }\r\n });\r\n }\r\n scope.applyAllFLSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllFL;\r\n scope.selectCountFL++;\r\n });\r\n }\r\n }\r\n \r\n //\r\n vm.ResetUserSelection = function (scope){\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n }\r\n vm.implementSelectItemsFL('UserByFiltersList', this);\r\n\r\n\r\n //userSuggestion list\r\n vm.implementSelectItemsUS = function (itemList, scope) {\r\n scope.selectAllUS = false;\r\n scope.showMinusUS = false;\r\n scope.selectCountUS = 0;\r\n scope.selectRowUS = function (i) {\r\n scope.selectCountUS = 0;\r\n scope.showMinusUS = false;\r\n scope.selectAllUS = false;\r\n angular.forEach(vm.UserSuggestionList, function (d) {\r\n if (d.checked) {\r\n scope.showMinusUS = true;\r\n scope.selectCountUS++;\r\n }\r\n });\r\n }\r\n scope.applyAllFLSelectUS = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllUS;\r\n scope.selectCountUS++;\r\n });\r\n }\r\n }\r\n //\r\n vm.ResetUserSelectionUS = function (scope){\r\n scope.selectAllUS = false;\r\n scope.showMinusUS = false;\r\n scope.selectCountUS = 0;\r\n }\r\n\r\n vm.workorderTkt = false;\r\n vm.selectRowNewWoL = function(tktId) {\r\n vm.tickIdForWoL = tktId;\r\n vm.workorderTkt = true\r\n\r\n }\r\n\r\nvm.implementSelectItemsUS('UserSuggestionList', this);\r\n\r\n\r\nif(vm.loggedInUserRole == \"Dispatch Supervisor\" || vm.loggedInUserRole == \"OnBoarding Supervisor\")\r\n{\r\n vm.statusList=[\"Broadcasted\",\"Completed\",\"Approved\",\"Assigned\", \"New\",\"Hold\", \"ReadyToAssign\", \"Rejected\",\"Cancelled\",\"AssignedNoAction\", \"ScheduleException\",\"AddressException\",\"PriceException\"];\r\n}\r\nelse\r\n{\r\n vm.statusList=[\"Broadcasted\",\"Completed\",\"Approved\",\"Assigned\", \"New\",\"Hold\", \"ReadyToAssign\", \"Rejected\",\"Cancelled\", \"ScheduleException\",\"AddressException\",\"PriceException\"];\r\n}\r\n\r\nif(vm.loggedInUserRole == \"Dispatch Supervisor\" || vm.loggedInUserRole == \"OnBoarding Supervisor\")\r\n{\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\",\"Private\"];\r\n}\r\nelse\r\n{\r\n if(vm.loggedInUserRole == \"Dispatch Manager\"){\r\n vm.UserTypeList = [\"Freelancer\", \"Private\", \"Freelancer Vendor\", \"Dispatch Supervisor\",\"Freelancer Dispatcher\",\"Dispatch Team Lead\"];\r\n }\r\n else if(vm.loggedInUserRole == \"OnBoarding Manager\"){\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"OnBoarding Supervisor\"];\r\n }\r\n else if(vm.loggedInUserRole == \"Dispatch Team Lead\"){\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\", \"Freelancer Dispatcher\", \"Dispatch Supervisor\"];\r\n }\r\n else if(vm.loggedInUserRole == \"Administrator\") {\r\n vm.UserTypeList = [\"Project Manager\", \"Supervisor\", \"Freelancer\", \"Freelancer Vendor\",\"Private\"];\r\n }\r\n else if(vm.loggedInUserRole == \"Project Manager\"){\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\", \"Supervisor\"];\r\n }\r\n else if(vm.loggedInUserRole == \"Supervisor\"){\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\",\"Private\"];\r\n }\r\n \r\n}\r\n \r\n vm.getJobAllStatus = function () {\r\n ManualAssignationJobService.getJobAllStatus(loggedinUser, token, function (data) { \r\n angular.forEach(data, function (status) {\r\n if (status.StatusName == 'On Hold') {\r\n status.StatusName = 'Hold'; \r\n }\r\n vm.statusList.push(status.StatusName); \r\n }) \r\n }, vm.showFailure);\r\n }\r\n \r\n $scope.slideAssistedSuggestion = function(){ \r\n document.getElementById(\"assistedSuggestion\").style.width = \"25%\";\r\n }\r\n vm.closeAssistedSuggestion = function(){ \r\n document.getElementById(\"assistedSuggestion\").style.width = \"0%\";\r\n }\r\n vm.closeFLprofile = function(){ \r\n document.getElementById(\"freelancerProfile\").style.width = \"0%\";\r\n }\r\n $scope.slideF = function(){ \r\n document.getElementById(\"myNav\").style.height = \"86%\";\r\n }\r\n vm.closeSlide = function(){ \r\n document.getElementById(\"myNav\").style.height = \"0%\";\r\n }\r\n vm.FilterArray = function () {\r\n itemNames = '';\r\n itemValues = '';\r\n templateItemNames = '';\r\n templateItemValues = '';\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null) {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText.join('|');\r\n } else {\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText.join('|');\r\n }\r\n }\r\n\r\n if (vm.ticketskill != \"\" && vm.ticketskill != null) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',Skill';\r\n itemValues = itemValues + \",\" + vm.ticketskill.join('|');;\r\n }\r\n else {\r\n itemNames = 'Skill';\r\n itemValues = vm.ticketskill.join('|');;\r\n }\r\n }\r\n\r\n if (vm.GroupType) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',GroupType';\r\n itemValues = itemValues + ',' + vm.GroupType;\r\n } else {\r\n itemNames = 'GroupType';\r\n itemValues = vm.GroupType;\r\n }\r\n }\r\n\r\n if (vm.Priority) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',Priority';\r\n itemValues = itemValues + ',' + vm.Priority;\r\n } else {\r\n itemNames = 'Priority';\r\n itemValues = vm.Priority;\r\n }\r\n }\r\n\r\n if (vm.SearchByAccountName != \"\" && vm.SearchByAccountName != null) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',AccountName';\r\n itemValues = itemValues + \",\" + vm.SearchByAccountName.join('|');\r\n }\r\n else {\r\n itemNames = 'AccountName';\r\n itemValues = vm.SearchByAccountName.join('|');\r\n }\r\n }\r\n\r\n if (vm.SearchByCName) {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',CustomerName';\r\n itemValues = itemValues + ',' + vm.SearchByCName;\r\n } else {\r\n itemNames = 'CustomerName';\r\n itemValues = vm.SearchByCName;\r\n }\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',ProjectName';\r\n itemValues = itemValues + ',' + vm.SearchByPName;\r\n } else {\r\n itemNames = 'ProjectName';\r\n itemValues = vm.SearchByPName;\r\n }\r\n }\r\n\r\n if (vm.JobcountbyStatus) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else {\r\n itemNames = 'Status';\r\n itemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n\r\n if (vm.userIdforStatus) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',UserId';\r\n itemValues = itemValues + \",\" + vm.userIdforStatus;\r\n }\r\n else {\r\n itemNames = 'UserId';\r\n itemValues = vm.userIdforStatus;\r\n }\r\n }\r\n\r\n if (vm.filterType) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',Type';\r\n itemValues = itemValues + \",\" + vm.filterType;\r\n }\r\n else {\r\n itemNames = 'Type';\r\n itemValues = vm.filterType;\r\n }\r\n }\r\n\r\n if (vm.statusForTickets) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + \",\" + vm.statusForTickets;\r\n }\r\n else {\r\n itemNames = 'Status';\r\n itemValues = vm.statusForTickets;\r\n }\r\n }\r\n\r\n if (vm.ticketstatus) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + \",\" + vm.ticketstatus;\r\n }\r\n else {\r\n itemNames = 'Status';\r\n itemValues = vm.ticketstatus;\r\n }\r\n }\r\n\r\n if (vm.SearchByDName) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',UserId';\r\n itemValues = itemValues + \",\" + vm.SearchByDName.UserId;\r\n }\r\n else {\r\n itemNames = 'UserId';\r\n itemValues = vm.SearchByDName;\r\n }\r\n }\r\n\r\n textItemNames = '';\r\n textItemValues = '';\r\n if (vm.SearchByIs) {\r\n if (textItemNames.length == 0 && textItemValues.length == 0) {\r\n textItemNames = 'CorelationValue';\r\n textItemValues = vm.SearchByIs;\r\n } else {\r\n textItemNames = textItemNames + ',CorelationValue';\r\n textItemValues = textItemValues + ',' + vm.SearchByIs;\r\n }\r\n\r\n }\r\n\r\n if (vm.SearchByDiscription) {\r\n if (textItemNames.length == 0 && textItemValues.length == 0) {\r\n textItemNames = 'JobDescription';\r\n textItemValues = vm.SearchByDiscription;\r\n } else {\r\n textItemNames = textItemNames + ',JobDescription';\r\n textItemValues = textItemValues + ',' + vm.SearchByDiscription;\r\n }\r\n }\r\n\r\n if (vm.SearchByTName) {\r\n if (textItemNames.length == 0 && textItemValues.length == 0) {\r\n textItemNames = 'UserName';\r\n textItemValues = vm.SearchByTName;\r\n } else {\r\n textItemNames = textItemNames + ',UserName';\r\n textItemValues = textItemValues + ',' + vm.SearchByTName;\r\n }\r\n }\r\n\r\n if (vm.SearchByConsumerName) {\r\n if (textItemNames.length == 0 && textItemValues.length == 0) {\r\n textItemNames = 'ConsumerName';\r\n textItemValues = vm.SearchByConsumerName;\r\n } else {\r\n textItemNames = textItemNames + ',ConsumerName';\r\n textItemValues = textItemValues + ',' + vm.SearchByConsumerName;\r\n }\r\n }\r\n \r\n if (vm.SearchByConsumerContact) {\r\n if (textItemNames.length == 0 && textItemValues.length == 0) {\r\n textItemNames = 'ConsumerContact';\r\n textItemValues = vm.SearchByConsumerContact;\r\n } else {\r\n textItemNames = textItemNames + ',ConsumerContact';\r\n textItemValues = textItemValues + ',' + vm.SearchByConsumerContact;\r\n }\r\n }\r\n\r\n if (vm.State) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',State';\r\n itemValues = itemValues + \",\" + vm.State;\r\n }\r\n else {\r\n itemNames = 'State';\r\n itemValues = vm.State;\r\n }\r\n }\r\n\r\n if (vm.State && vm.City) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',City';\r\n itemValues = itemValues + \",\" + vm.City;\r\n }\r\n else {\r\n itemNames = 'City';\r\n itemValues = vm.City;\r\n }\r\n }\r\n\r\n if (vm.searchText) {\r\n itemNames = 'Search';\r\n itemValues = vm.searchText;\r\n templateItemNames = '';\r\n templateItemValues = '';\r\n textItemNames = '';\r\n textItemValues = '';\r\n startDate = startDate;\r\n endDate = endDate;\r\n }\r\n\r\n var filters = {\r\n searchStatusText: vm.searchStatusText,\r\n ticketskill: vm.ticketskill,\r\n GroupType: vm.GroupType,\r\n Priority: vm.Priority,\r\n SearchByAccountName: vm.SearchByAccountName,\r\n SearchByCName: vm.SearchByCName,\r\n SearchByPName: vm.SearchByPName,\r\n JobcountbyStatus: vm.JobcountbyStatus,\r\n userIdforStatus: vm.userIdforStatus,\r\n filterType: vm.filterType,\r\n statusForTickets: vm.statusForTickets,\r\n ticketstatus: vm.ticketstatus,\r\n SearchByDName: vm.SearchByDName,\r\n SearchByIs: vm.SearchByIs,\r\n SearchByDiscription: vm.SearchByDiscription,\r\n SearchByTName: vm.SearchByTName,\r\n SearchByConsumerName: vm.SearchByConsumerName,\r\n SearchByConsumerContact: vm.SearchByConsumerContact,\r\n State: vm.State,\r\n City: vm.City,\r\n searchText: vm.searchText,\r\n DateField: vm.DateField,\r\n ticketdates: vm.ticketdates\r\n };\r\n startDate = moment(vm.ticketdates.startDate).format('YYYY-MM-DD');\r\n endDate = moment(vm.ticketdates.endDate).format('YYYY-MM-DD');\r\n localStorage.setItem('savedFilters', JSON.stringify(filters)); // Store in localStorage\r\n } \r\n\r\n vm.ResetTicketFilter = function () { \r\n vm.ticketaccount = '';\r\n vm.PermanentState = '';\r\n vm.ticketskill = '';\r\n vm.ticketstatus = '';\r\n vm.PermanentCity = '';\r\n vm.searchStatusText = '';\r\n }\r\n\r\n vm.ResetUserFilter = function () { \r\n vm.UsersType = '';\r\n vm.userlocation = '';\r\n vm.userskill = ''; \r\n vm.uType= ''; \r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByDName = '';\r\n vm.SearchByCName = ''; \r\n vm.SearchByConsumerName = '';\r\n vm.SearchByConsumerContact = '';\r\n vm.CurrentCity = '';\r\n vm.CurrentState = '';\r\n vm.WorkState = '';\r\n vm.WorkCity = '';\r\n vm.userIdforStatus = '';\r\n vm.statusForTickets = '';\r\n vm.filterType = '';\r\n }\r\n vm.PlannedClosureDateModelOpen= function()\r\n { \r\n var ticketIdList=[];\r\n vm.IsLoadSucessfull=false;\r\n for(var j=0;j 0) {\r\n vm.teamToBeAssignedList = resp.data;\r\n reallocateModalInstance = $uibModal.open({\r\n templateUrl: 'call_reallocate_model.html',\r\n scope: $scope\r\n }); \r\n } else {\r\n vm.showFailure(\"Failed\",resp.data);\r\n }\r\n }\r\n });\r\n }\r\n vm.disableCreateButton = false;\r\n vm.reallocateTicketCloseModal = function () {\r\n reallocateModalInstance.close();\r\n vm.disableCreateButton = false;\r\n vm.toBeAssignedTicketId = \"\";\r\n vm.teamToBeAssignedList = [];\r\n }\r\n\r\n vm.TransferCallToServiceCentre = function () {\r\n vm.reallocationForm.submitted = true;\r\n if (vm.reallocationForm.$valid){\r\n vm.disableCreateButton = true;\r\n ManualAssignationJobService.TransferCallToServiceCentre(vm.toBeAssignedTicketId, vm.selectTechnician, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Job has reallocated successfully.\");\r\n vm.reallocateTicketCloseModal();\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000)\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n\r\n vm.UserPenaltyUpdate = function(){\r\n vm.closePenaltyPopup();\r\n vm.penaltyForm.submitted = true;\r\n if (vm.penaltyForm.$valid) { \r\n var data = {\r\n \"PenaltyReason\": vm.penaltyReason,\r\n \"PenaltyRemark\": vm.penaltyRemark,\r\n \"UserId\": vm.userId,\r\n \"Amount\" : vm.penaltyAmount\r\n }\r\n ManualAssignationJobService.UserPenaltyUpdate(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(\"Success\",\"Penalty applied successfully\"); \r\n vm.penaltyReason = \"\";\r\n vm.penaltyRemark = \"\";\r\n vm.penaltyAmount = 0;\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Server not responding\");\r\n vm.penaltyReason = \"\";\r\n vm.penaltyRemark = \"\";\r\n vm.penaltyAmount = 0;\r\n }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n\r\n\r\n\r\n vm.UserDataUpdateRequest = function(isCollapsed,Ticket){\r\n $scope.isCollapsed = !isCollapsed;\r\n // vm.feedbackForm.submitted = true;\r\n // vm.feedbackFormBroadCasted.submitted = true;\r\n // if (vm.feedbackForm.$valid) { \r\n var data =\r\n {\r\n \"MasterReason\": vm.MasterReason,\r\n \"Comments\": vm.Comments,\r\n \"RequestForUserId\": vm.userid,\r\n \"TicketId\":Ticket\r\n }\r\n ManualAssignationJobService.UserDataUpdateRequest(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(resp.data); \r\n $scope.isCollapsed = true;\r\n vm.Comments =\"\";\r\n vm.MasterReason =\"\";\r\n $timeout(function () {\r\n vm.GetFreelancerSuggestions(false,vm.showMode)\r\n }, 2000);\r\n }\r\n }, function () {\r\n \r\n }); \r\n // }\r\n }\r\n\r\n vm.BrodUserDataUpdateRequest = function(isCollapsed,Ticket){\r\n $scope.isCollapsed = !isCollapsed;\r\n // vm.feedbackFormBroadCasted.submitted = true;\r\n // if (vm.feedbackFormBroadCasted.$valid) { \r\n var data =\r\n {\r\n \"MasterReason\": vm.MasterReason,\r\n \"Comments\": vm.Comments,\r\n \"RequestForUserId\": vm.userid,\r\n \"TicketId\":Ticket\r\n }\r\n ManualAssignationJobService.UserDataUpdateRequest(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(resp.data); \r\n $timeout(function () {\r\n vm.BidSent(vm.tempTicketInfo,\"feedbackFlag\");\r\n $scope.myvalue = false;\r\n }, 1000);\r\n $scope.isCollapsed = true;\r\n vm.Comments =\"\";\r\n vm.MasterReason =\"\";\r\n }\r\n }, function () { \r\n }); \r\n // }\r\n }\r\n\r\n\r\n\r\n vm.CancelTicket = function(ticketId, currentJOb){\r\n vm.CurrentJob = currentJOb;\r\n vm.TicketWarrantyStatus = currentJOb.WarrantyStatus;\r\n vm.RatingOfTicket = '';\r\n vm.AuditTicketId = vm.CurrentJob.TicketId;\r\n vm.IsClosureCodeNeeded = vm.CurrentJob.IsClosuerCodeNeeded;\r\n vm.TicketPaymentNeedToProcess = vm.CurrentJob.IsTicketPaymentNeedToProcess;\r\n vm.CollectionRequired = vm.CurrentJob.CollectionRequired;\r\n vm.IsApplicableForAutoPayment = vm.CurrentJob.IsApplicableForAutoPayment;\r\n if(vm.CurrentJob.TicketStatus==\"Completed\" && vm.CurrentJob.SubStatus ==\"TBC\"){ \r\n vm.PrimaryReason = vm.CurrentJob.PrimaryReason;\r\n ManualAssignationJobService.GetCancellationReasons(vm.AuditTicketId,vm.CurrentJob.TicketStatus, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.CancellationReasonsList=resp.data;\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'tbc_confirm_cancelation_model.html',\r\n scope: $scope\r\n });\r\n }\r\n }, function () { \r\n });\r\n \r\n }\r\n else\r\n {\r\n \r\n vm.IsCancelFromServer = vm.accountConfig.IsCancelFromServer;\r\n if(vm.IsCancelFromServer && (vm.CurrentJob.TicketStatus==\"Assigned\" || vm.CurrentJob.TicketStatus==\"New\" || vm.CurrentJob.TicketStatus==\"ScheduleException\")){\r\n ManualAssignationJobService.GetCancellationReasons(vm.AuditTicketId,vm.CurrentJob.TicketStatus, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.CancellationReasonsList=resp.data;\r\n cancellationReasonsModalInstance = $uibModal.open({\r\n templateUrl: 'cancellation_reasons_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n }, function () { \r\n });\r\n }\r\n else{\r\n ManualAssignationJobService.CancelTicket(loggedinUser,ticketId,token).then(function(res){\r\n if(res.status == 202 && res.statusText =='Accepted'){\r\n vm.showSuccess('Success',res.data);\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000);\r\n }\r\n }); \r\n }\r\n }\r\n }\r\n vm.JobRescheduleAudit = function()\r\n {\r\n rescheduleAuditModalInstance.close();\r\n ManualAssignationJobService.TBCCancelationAudit(vm.RescheduleAuditModel,vm.RescheduleAuditTicketId,loggedinUser,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000); \r\n }\r\n });\r\n }\r\n \r\n\r\n vm.TBCCancelationAudit = function()\r\n { \r\n vm.tbccancellationReasonsForm.submitted = true;\r\n if(vm.CancellationReasons == 'Customer not responding' || vm.CancellationReasons == 'Customer denied sharing code'){\r\n vm.tbccancellationReasonsForm.$valid = true\r\n if (vm.tbccancellationReasonsForm.$valid) { \r\n if(vm.closureCode){\r\n vm.IsClosuerCodeAvailable = true;\r\n }\r\n else{\r\n vm.IsClosuerCodeAvailable = false;\r\n }\r\n var data = {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"AuditValue\": vm.TBCCancelationModel,\r\n \"IsApplicableForAutoPayment\": vm.IsApplicableForAutoPayment,\r\n \"IsCommissionDetect\": vm.IsCommissionDetect,\r\n \"ClosuerCode\": vm.closureCode,\r\n \"IsClosuerCodeAvailable\" : vm.IsClosuerCodeAvailable,\r\n \"CancelReason\" : vm.CancellationReasons,\r\n }\r\n vm.IsInvoiceEnabled;\r\n approveModalInstance.close();\r\n ManualAssignationJobService.TBCCancelationAudit(data,loggedinUser,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n vm.closureCode = \"\";\r\n vm.IsClosureCodeNeeded = \"\";\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000); \r\n }\r\n });\r\n }\r\n }\r\n else{\r\n if (vm.tbccancellationReasonsForm.$valid) { \r\n if(vm.closureCode){\r\n vm.IsClosuerCodeAvailable = true;\r\n }\r\n else{\r\n vm.IsClosuerCodeAvailable = false;\r\n }\r\n var data = {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"AuditValue\": vm.TBCCancelationModel,\r\n \"IsApplicableForAutoPayment\": vm.IsApplicableForAutoPayment,\r\n \"IsCommissionDetect\": vm.IsCommissionDetect,\r\n \"ClosuerCode\": vm.closureCode,\r\n \"IsClosuerCodeAvailable\" : vm.IsClosuerCodeAvailable,\r\n \"CancelReason\" : vm.CancellationReasons,\r\n }\r\n vm.IsInvoiceEnabled;\r\n approveModalInstance.close();\r\n ManualAssignationJobService.TBCCancelationAudit(data,loggedinUser,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n vm.closureCode = \"\";\r\n vm.IsClosureCodeNeeded = \"\";\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000); \r\n }\r\n });\r\n }\r\n \r\n }\r\n }\r\n vm.updateFalseTBC = function (status) {\r\n if(status == 'Yes' ) {\r\n vm.IsApplicableForAutoPayment = false;\r\n }\r\n else {\r\n vm.IsApplicableForAutoPayment = true;\r\n }\r\n }\r\n\r\n vm.CloseModal = function () {\r\n approveModalInstance.close();\r\n }\r\n vm.CancellationReasonsCloseModal = function () {\r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons=\"\";\r\n vm.CancellationReasonsRemark=\"\";\r\n vm.HintDisplay=\"\";\r\n vm.closureCode = \"\";\r\n }\r\n\r\n vm.UpdateCancellationReasons = function()\r\n { \r\n vm.cancellationReasonsForm.submitted = true;\r\n if(vm.CancellationReasons == 'Customer not responding' || vm.CancellationReasons == 'Customer denied sharing code'){\r\n vm.cancellationReasonsForm.$valid = true;\r\n if (vm.cancellationReasonsForm.$valid) { \r\n if(vm.closureCode){\r\n vm.IsClosuerCodeAvailable = true;\r\n }\r\n else{\r\n vm.IsClosuerCodeAvailable = false;\r\n } \r\n var CancellationReasonsModel = {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"CancelReason\": vm.CancellationReasons,\r\n \"CancelRemark\": vm.CancellationReasonsRemark,\r\n \"ClosuerCode\": vm.closureCode,\r\n \"IsClosuerCodeAvailable\" : vm.IsClosuerCodeAvailable\r\n }\r\n ManualAssignationJobService.UpdateJobServerCancel(CancellationReasonsModel,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(\"Success\",resp.data); \r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n \r\n }, 2000); \r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons=\"\";\r\n vm.CancellationReasonsRemark=\"\";\r\n vm.closureCode = \"\";\r\n vm.HintDisplay=\"\";\r\n }\r\n else{\r\n vm.showFailure(\"Failed\",resp.data);\r\n }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n else {\r\n if (vm.cancellationReasonsForm.$valid) { \r\n if(vm.closureCode){\r\n vm.IsClosuerCodeAvailable = true;\r\n }\r\n else{\r\n vm.IsClosuerCodeAvailable = false;\r\n } \r\n var CancellationReasonsModel = {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"CancelReason\": vm.CancellationReasons,\r\n \"CancelRemark\": vm.CancellationReasonsRemark,\r\n \"ClosuerCode\": vm.closureCode,\r\n \"IsClosuerCodeAvailable\" : vm.IsClosuerCodeAvailable\r\n }\r\n ManualAssignationJobService.UpdateJobServerCancel(CancellationReasonsModel,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(\"Success\",resp.data); \r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n \r\n }, 2000); \r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons=\"\";\r\n vm.CancellationReasonsRemark=\"\";\r\n vm.closureCode = \"\";\r\n vm.HintDisplay=\"\";\r\n }\r\n else{\r\n vm.showFailure(\"Failed\",resp.data);\r\n }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n \r\n }\r\n \r\n vm.SendCancelCodeToCustomer = function()\r\n { \r\n if (vm.CancellationReasons != \"\") { \r\n var SendCodeModel =\r\n {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"CancelReason\": vm.CancellationReasons\r\n }\r\n ManualAssignationJobService.SendCancelCodeToCustomer(SendCodeModel,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(\"Success\", \"Code Sent to Customer\"); \r\n }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n\r\n //Cancel and clone ticket\r\n vm.CancleAndCloneTicket = function(ticket){\r\n var ticketData = ticket;\r\n $state.go('index.JobBidCreation', { cloneticketid:ticketData.TicketId },\r\n {reload: true,inherit: false,notify: true}); \r\n }\r\n\r\n vm.OpenSettlementModal = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n vm.PaymentStatus = '';\r\n vm.Remarks = '';\r\n\r\n settlementModalInstance = $uibModal.open({\r\n templateUrl: 'settlement_model.html',\r\n scope: $scope\r\n });\r\n\r\n }\r\n\r\n vm.SettlementCloseModal = function () {\r\n settlementModalInstance.close();\r\n }\r\n\r\n vm.settlemenTicket = function (status, ticketId, remarks, userId) {\r\n settlementModalInstance.close();\r\n var settlementData = {};\r\n settlementData.PaymentStatus = status;\r\n settlementData.ReqUserId = loggedinUser;\r\n settlementData.TicketId = ticketId;\r\n settlementData.Remarks = remarks;\r\n settlementData.FEId = userId;\r\n settlementData.Status = \"Done\";\r\n ManualAssignationJobService.updateTicketSettlement(settlementData, token, loggedinUser, function (res) {\r\n \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job settlement successfully done.\")\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to settlement payment. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n\r\n }\r\n vm.makeUserMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.name + \"

\" + ' ' + vm.contactnumber);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n\r\n }\r\n vm.makeJobMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.customerJobCard.ConsumerName + \"

\" + ' ' + vm.customerJobCard.JobId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.customerJobCard.ConsumerContact);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n }\r\n function initMap() {\r\n var pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n pointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n // center = new google.maps.LatLng(51.3, 0.8),\r\n myOptions = {\r\n zoom: 8,\r\n zoomControl: false,\r\n scaleControl: true,\r\n mapTypeControl: false,\r\n streetViewControl: false,\r\n gestureHandling: 'greedy',\r\n // center: center,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n },\r\n\r\n map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n // Instantiate a directions service.\r\n directionsService = new google.maps.DirectionsService,\r\n directionsDisplay = new google.maps.DirectionsRenderer({\r\n map: map\r\n }),\r\n duration = document.getElementById('duration');\r\n distance = document.getElementById('distance');\r\n flightPath = new google.maps.Polyline({\r\n path: [pointA, pointB],\r\n // geodesic: true,\r\n strokeColor: 'red',\r\n });\r\n $scope.InfoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n // click on marker B to get route from A to B\r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n var travelMode = \"DRIVING\";\r\n var icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n }\r\n function calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map) {\r\n var selectedMode = \"DRIVING\";\r\n directionsService.route({\r\n origin: pointA,\r\n destination: pointB,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n travelMode: google.maps.TravelMode[selectedMode]\r\n }, function (response, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n new google.maps.DirectionsRenderer({\r\n map: map,\r\n directions: response,\r\n suppressMarkers: true,\r\n polylineOptions: {\r\n strokeColor: \"#000000\"\r\n }\r\n });\r\n var leg = response.routes[0].legs[0];\r\n //outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n distance.innerHTML = response.routes[0].legs[0].distance.text;\r\n duration.innerHTML = response.routes[0].legs[0].duration.text;\r\n vm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n vm.makeJobMarker(leg.start_location, icons.start, map);\r\n vm.makeUserMarker(leg.end_location, icons.end, map);\r\n } else {\r\n window.alert('Directions request failed due to ' + status);\r\n }\r\n });\r\n }\r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/JOb_icon.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/delivery-man1.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n\r\n vm.OpenFilterModel = function () {\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FilterModel.html',\r\n size: 'lg',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n vm.OpenReOpenCallModel = function (ticketid) {\r\n vm.TicketId = ticketid\r\n\t\t\tReopencallopen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ReopenCancelCall.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeReOpenCallModel = function () {\r\n\t\t\tvm.disableCreateButton = false;\r\n\t\t\tReopencallopen.close();\r\n\t\t\t\r\n\t\t}\r\n\r\n vm.ReopenCancelCall = function () {\r\n vm.validationForm.submitted = true;\r\n vm.disableCreateButton = true;\r\n ManualAssignationJobService.ReopenCancelCall(vm.TicketId,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call has Reopened Successfully\");\r\n vm.closeReOpenCallModel();\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000)\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n });\r\n \r\n }\r\n\r\n vm.OpenFollowUpModel = function (ticketId) {\r\n vm.followup = '';\r\n vm.tickId = ticketId;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n }\r\n\r\n vm.CloseFollowUpModel = function () {\r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = '';\r\n vm.primaryHoldReason='';\r\n vm.primaryHoldRemark='';\r\n vm.followFiles = null; \r\n FollowUpModel.close();\r\n }\r\n\r\n //\r\n $scope.attachmentForFollowUp = function(files){\r\n var file = files.files[0]; \r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.msg|\\.pdf|\\.bmp|\\.xps)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.followFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png,.msg,.bmp,xps only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.DocEdit = function(index){\r\n vm.followFiles=null; \r\n }\r\n vm.ExternalUpload = function (teamid) {\r\n var newdata = {};\r\n newdata = {\r\n \"UserId\": teamid,\r\n \"Type\": \"\",\r\n \"skillName\": \"\"\r\n }\r\n AllUsersListService.UploadExternalVideoList(newdata, loggedinUser, token).then(function (resp) {\r\n vm.UploadVideoExternal = resp.data;\r\n });\r\n }\r\n var ModalInstanceCtrlFollowUp = function ($scope, $rootScope, $uibModalInstance) { \r\n vm.updateFollowUpStatus = function () {\r\n var data = {};\r\n data = {\r\n \"userId\": loggedinUser,\r\n \"dateTime\": \"\",\r\n \"activity\": \"\",\r\n \"action\": \"FOLLOW_UP\",\r\n \"userName\": \"\",\r\n \"ticketId\": vm.tickId,\r\n \"primaryReason\": vm.primaryFollowUpReason,\r\n \"SecondryReason\": \"\",\r\n \"ReasonComment\": vm.primaryFollowUpRemark\r\n }\r\n if(vm.followFiles != null) {\r\n ManualAssignationJobService.UpdateFollowUpReason(data,vm.followFiles, token, loggedinUser, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n vm.CloseFollowUpModel();\r\n $timeout(function () {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.filterStatusForJObs($scope.jobStatusForPaging, $scope.selectedUserId, $localStorage.loggedInUserId, token,jPageIndex,jPageSize)\r\n }, 1000); \r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n else{\r\n ManualAssignationJobService.TicketFollowUpWithoutDoc(data, token, loggedinUser, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000); \r\n } \r\n vm.CloseFollowUpModel();\r\n });\r\n }\r\n \r\n }\r\n }\r\n\r\n var ModelInstanceOfMap = function ($rootScope, $scope, $uibModal) {\r\n vm.getCustomerJobCard();\r\n }\r\n\r\n vm.getCustomerJobCard = function () {\r\n ManualAssignationJobService.getCustomerJobCardbyJobId(loggedinUser, vm.trackingTicketId, token, function (data) {\r\n vm.JobLatitude = data.JobLatitude;\r\n vm.JobLongitude = data.JobLongitude;\r\n vm.FELatitude = data.FELatitude;\r\n vm.FELongitude = data.FELongitude;\r\n vm.contactnumber = data.FEContactNumber;\r\n vm.jobtype = data.Description;\r\n vm.name = data.FEName;\r\n if(data.FEContactNumber){\r\n vm.contactnumber=data.FEContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n initMap();\r\n $log.log(\"res of getCustomerJobCard=\" + data);\r\n vm.customerJobCard = data;\r\n if(vm.customerJobCard.ConsumerContact){\r\n vm.customerJobCard.ConsumerContact=vm.customerJobCard.ConsumerContact.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n if ($localStorage.rateJobParams) {\r\n vm.customerJobCard.userRole = $localStorage.Role;\r\n vm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n vm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n delete $localStorage.rateJobParams;\r\n }\r\n if (data && data.JobStatus == 'PaymentDone') {\r\n\r\n }\r\n }, function () {\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n vm.TicketBreachValueconver = function(TicketBreachValue)\r\n {\r\n var TicketBreachValueInString=\"\"; \r\n if(TicketBreachValue==0)\r\n TicketBreachValueInString = \"Not Breached\";\r\n if(TicketBreachValue==1)\r\n TicketBreachValueInString = \"Breached\";\r\n \r\n return TicketBreachValueInString;\r\n }\r\n vm.OpenTracking = function (ticket) {\r\n vm.trackingTicketId = ticket;\r\n Tracking = $uibModal.open({\r\n templateUrl: 'Tracking.html',\r\n size: 'lg',\r\n scope: $scope,\r\n controller: ModelInstanceOfMap\r\n })\r\n }\r\n vm.CloseTracking = function () {\r\n Tracking.close();\r\n }\r\n\r\n vm.OpenRescheduleAuditModal = function (currentAuditJOb) \r\n { \r\n vm.CurrentAuditJob = currentAuditJOb;\r\n vm.RatingOfTicket = '';\r\n vm.RescheduleAuditTicketId = vm.CurrentAuditJob.TicketId;\r\n vm.AuditPrimaryReason = vm.CurrentAuditJob.PrimaryReason;\r\n rescheduleAuditModalInstance = $uibModal.open({\r\n templateUrl: 'reschedule_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n\r\n vm.RescheduleAuditCloseModal = function () {\r\n rescheduleAuditModalInstance.close();\r\n }\r\n\r\n vm.pavModelTicketId = \"\";\r\n vm.OpenPAVReportUploadModal = function (ticketId) {\r\n vm.pavModelTicketId = ticketId;\r\n pavModelInstance = $uibModal.open({\r\n templateUrl: 'PAV_report_upload.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closePAVModel = function () {\r\n if (pavModelInstance) {\r\n pavModelInstance.close();\r\n }\r\n vm.disableUploadButton = false;\r\n }\r\n\r\n $scope.attachPAVReport = function (files) {\r\n vm.PAVFileName = \"\";\r\n vm.PAVMessage = \"\";\r\n var selectedFile = files.files[0];\r\n if (!selectedFile) {\r\n vm.PAVMessage = \"No file selected.\";\r\n return;\r\n }\r\n vm.PAVFileName = selectedFile.name;\r\n if (vm.PAVFileName != \"\") {\r\n $timeout(function () {\r\n vm.PAVMessage = \"\";\r\n }, 100);\r\n }\r\n var allowedExtensions = /(\\.pdf|\\.PDF)$/i;\r\n if (!allowedExtensions.exec(selectedFile.name)) {\r\n vm.PAVMessage = \"Invalid file type. Please upload a PDF file only.\";\r\n vm.PAVFileName = \"\";\r\n vm.clear();\r\n return;\r\n }\r\n $timeout(function () {\r\n vm.PAVMessage = \"\";\r\n }, 100);\r\n\r\n vm.PAVReportFiles = selectedFile;\r\n }\r\n \r\n\r\n vm.UploadPAVReport = function () {\r\n ManualAssignationJobService.OnSiteReprotUploadWeb(vm.pavModelTicketId, vm.PAVReportFiles, token, loggedinUser).then(function (res) {\r\n vm.disableUploadButton = true;\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Report uploaded successfully.\");\r\n vm.closePAVModel();\r\n $timeout(function () {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000);\r\n } else {\r\n vm.disableUploadButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n\r\n vm.OpenSiteAuditModal = function (currentAuditJOb) \r\n { \r\n vm.CurrentAuditJob = currentAuditJOb; \r\n vm.SiteAuditTicketId = vm.CurrentAuditJob.TicketId; \r\n siteAuditModalInstance = $uibModal.open({\r\n templateUrl: 'site_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n vm.SiteAuditCloseModal = function () {\r\n siteAuditModalInstance.close();\r\n }\r\n\r\n $scope.attachSiteAudit = function(files){\r\n vm.SiteAuditFileName=\"\";\r\n var file = files.files[0];\r\n vm.SiteAuditFileName=file.name;\r\n if(vm.SiteAuditFileName!=\"\") \r\n { \r\n $timeout(function () {\r\n vm.SiteAuditMessage=\"\"; \r\n }, 100); \r\n } \r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.followFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.doc,.docx,.xls,.xlsx only.');\r\n }\r\n }\r\n \r\n vm.SiteRescheduleAudit = function(){ \r\n if(vm.SiteAuditFileName==\"\")\r\n { \r\n return vm.SiteAuditMessage=\"Please Select Audit Report\";\r\n }\r\n else\r\n vm.SiteAuditMessage=\"\";\r\n\r\n var data = {};\r\n data = { \r\n \"AuditResult\": vm.SiteAuditModel, \r\n \"AuditObjectId\": vm.SiteAuditTicketId,\r\n \"AuditAttachmentName\": vm.SiteAuditFileName,\r\n \"AuditFor\": \"Ticket\" \r\n } \r\n siteAuditModalInstance.close(); \r\n ManualAssignationJobService.AddSiteAuditwithAttachment(data, vm.followFiles, token, loggedinUser).then(function(res){\r\n if (res && res.status == 202) { \r\n vm.showSuccess(\"Success\", \"Site Audit Saved successfully.\");\r\n $timeout(function () { \r\n vm.SiteAuditFileName=\"\";\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to add site audit. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n \r\n // Combo Paging Start\r\n\r\n $scope.totalTableBundles = 0;\r\n $scope.bundleTablePerPage = vm.bundlePageListCount ; \r\n $scope.BundleTablepagination = {\r\n current: 1\r\n };\r\n \r\n vm.changeBundlePageListCount = function() { \r\n vm.GroupType = 'Combo';\r\n $scope.bundleTablePerPage = vm.bundlePageListCount;\r\n bPageSize = $scope.bundleTablePerPage;\r\n $scope.BundleTablepageChanged($scope.BundleTablepagination.current);\r\n vm.selectAll = false;\r\n }\r\n \r\n bPageIndex=$scope.BundleTablepagination.current;\r\n $scope.BundleTablepageChanged = function(newPage) { \r\n vm.GroupType = 'Combo'; \r\n bPageIndex = newPage;\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,bPageIndex,bPageSize); \r\n };\r\n\r\n // Combo Paging End\r\n\r\n // WorkOrder Paging Start\r\n\r\n $scope.totalTableWorkOrder = 0;\r\n $scope.workOrderTablePerPage = vm.workOrderPageListCount ;\r\n $scope.workOrderTablepagination = {\r\n current: 1\r\n };\r\n\r\n vm.changeWorkOrderListCount = function() { \r\n vm.GroupType = 'WorkOrder';\r\n $scope.workOrderTablePerPage = vm.workOrderPageListCount;\r\n wPageSize = $scope.workOrderTablePerPage;\r\n $scope.workOrderTablepageChanged($scope.workOrderTablepagination.current);\r\n vm.selectAll = false;\r\n }\r\n\r\n wPageIndex=$scope.workOrderTablepagination.current;\r\n $scope.workOrderTablepageChanged = function(newPage) { \r\n vm.GroupType = 'WorkOrder'; \r\n wPageIndex = newPage;\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,wPageIndex,wPageSize); \r\n };\r\n\r\n // WorkOrder Paging End\r\n\r\n // Ticket Paging Start\r\n\r\n $scope.totalTableTickets = 0;\r\n $scope.ticketTablePerPage = vm.ticketPageListCount ;\r\n $scope.TicketTablepagination = {\r\n current: 1\r\n }; \r\n\r\n vm.changeTicketPageListCount = function() { \r\n vm.GroupType = 'Individual|WorkOrderGroup';\r\n $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n PageSize = $scope.ticketTablePerPage;\r\n $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n vm.selectAll = false;\r\n }\r\n \r\n PageIndex=$scope.TicketTablepagination.current;\r\n $scope.TicketTablepageChanged = function(newPage) { \r\n vm.GroupType = 'Individual|WorkOrderGroup'; \r\n PageIndex = newPage;\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n };\r\n\r\n // Ticket Paging End\r\n\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeAllUserPageListCount = function() { \r\n $scope.usersPerPage = vm.userPageListCount;\r\n uPageSize = $scope.usersPerPage;\r\n $scope.UserTablePageChanged($scope.Userpagination.current);\r\n vm.selectAll = false;\r\n \r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n };\r\n}\r\n\r\n $scope.totalUserSuggestions = 0;\r\n $scope.userSuggestionsPerPage = vm.suggestionPageListCount;\r\n $scope.UserSuggestionspagination = {\r\n current: 1\r\n };\r\n\r\n vm.cangeSuggestionPageListCount = function() { \r\n $scope.userSuggestionsPerPage = vm.suggestionPageListCount;\r\n uPageSize = $scope.userSuggestionsPerPage;\r\n $scope.UserSuggestionTablepageChanged($scope.Userpagination.current);\r\n vm.selectAll = false;\r\n }\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserSuggestionTablepageChanged = function(newPage) { \r\n vm.SuggestionStarIndex = (newPage-1)*vm.SuggestionMaxcount; \r\n vm.SuggestionMaxcount = newPage*vm.suggestionPageListCount \r\n };\r\n\r\n // //jobs paging (freelancer profile)\r\n $scope.totalJobs = 0;\r\n // $scope.userSuggestionsPerPage = 10; // this should match however many results your API puts on one page\r\n $scope.JobsPerPage = vm.jobsPageListCount;\r\n $scope.jobspagination = {\r\n current: 1\r\n };\r\n\r\n vm.cangeJobsPageListCount = function() { \r\n $scope.JobsPerPage = vm.jobsPageListCount;\r\n uPageSize = $scope.JobsPerPage;\r\n $scope.jobsTablepageChanged($scope.jobspagination.current);\r\n vm.selectAll = false;\r\n }\r\n uPageIndex=$scope.jobspagination.current;\r\n $scope.jobsTablepageChanged = function(newPage) { \r\n jPageIndex = newPage;\r\n vm.jobsStarIndex = (newPage-1)*vm.jobsMaxcount; \r\n vm.jobsMaxcount = newPage*vm.jobsPageListCount;\r\n vm.filterStatusForJObs($scope.jobStatusForPaging);\r\n \r\n };\r\n\r\n //pagination for BID\r\n $scope.totalUserBID = 0;\r\n $scope.userBIDPerPage = 10; // this should match however many results your API puts on one page\r\n $scope.UserBIDpagination = {\r\n current: 1\r\n };\r\n\r\n $scope.UserBIDTablepageChanged = function(newPage) {\r\n vm.BIDStartIndex = (newPage-1)*10; \r\n vm.BIDMaxcount = newPage*10\r\n };\r\n \r\n // $scope.UserTablepagination.current= $localStorage.TicketFilterModel?$localStorage.TicketFilterModel.PageIndex:1;\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n if(uitemNames != 'Search')\r\n {\r\n vm.UsersFilterArray();\r\n }\r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n\r\n };\r\n\r\n vm.ticketList=[];\r\n vm.getAllJobTickets = function(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize) { \r\n var templateCols=\"\";\r\n vm.resetAllSelect();\r\n var templateCols=\"\";\r\n PageIndex = PageIndex?PageIndex:1;\r\n // vm.DateField = vm.DateField?vm.DateField:\"CreatedOn\";\r\n vm.DateField= vm.accountConfig.AccountId == 0 ? vm.DateField : 'CreatedOn';\r\n ManualAssignationJobService.getAllJobTickets(loggedinUser, startDate, endDate, token, itemNames, itemValues,textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues,vm.DateField,PageIndex,PageSize,vm.SortType,vm.SortField).then(function (resp) {\r\n if (resp && resp.data) {\r\n // vm.ticketList = resp.data.LightTicketModels;\r\n $scope.totalTableTickets = resp.data.Count;\r\n $scope.totalTableUsers = resp.data.Count;\r\n vm.ApprovedJobCount = resp.data.ApprovedJobCount;\r\n vm.AssignJobCount = resp.data.AssignJobCount;\r\n vm.AssignedNCallTakenButNoAppointment = resp.data.AssignedNCallTakenButNoAppointment;\r\n vm.AppointmentNotTakenInTime = resp.data.AppointmentNotTakenInTime;\r\n vm.AppointmentNotBooked = resp.data.AppointmentNotBooked;\r\n vm.AppointmentBookedThenCancelled = resp.data.AppointmentBookedThenCancelled;\r\n vm.BroadcastJobCount = resp.data.BroadcastJobCount;\r\n vm.CancelledSourceCount = resp.data.CancelledSourceCount;\r\n vm.CancelJobCount = resp.data.CancelJobCount;\r\n vm.CompleteJobCount = resp.data.CompleteJobCount;\r\n vm.TotalJobCount = resp.data.TotalJobCount;\r\n vm.HoldJobCount = resp.data.HoldJobCount;\r\n vm.CancelCustomerVerified = resp.data.CancelCustomerVerified;\r\n vm.ProductReplacementCount = resp.data.ProductReplacementCount;\r\n vm.GasChargingRequestCount = resp.data.GasChargingRequestCount;\r\n vm.InTransitJobCount = resp.data.InTransitJobCount; \r\n vm.ItemInventoryRaised = resp.data.ItemInventoryRaised;\r\n vm.ItemInventoryDelivered = resp.data.ItemInventoryDelivered; \r\n vm.ProductReplacementRaised = resp.data.ProductReplacementRaised;\r\n vm.AssignedThenCancelled = resp.data.AssignedThenCancelled;\r\n vm.AppointmentRescheduled = resp.data.AppointmentRescheduled; \r\n vm.OnSiteJobCount = resp.data.OnSiteJobCount; \r\n vm.InProgressJobCount = resp.data.InProgressJobCount; \r\n vm.NewJobCount = resp.data.NewJobCount;\r\n vm.PriorityCount = resp.data.PriorityCount;\r\n vm.ReadyToAssigJobCount = resp.data.ReadyToAssigJobCount;\r\n vm.RejectedJobCount = resp.data.RejectedJobCount;\r\n vm.ScheduleExceptionJobCount = resp.data.ScheduleExceptionJobCount;\r\n vm.ExceptionNoUserCount =resp.data.ExceptionNoUserCount;\r\n vm.AddressExceptionCount = resp.data.AddressExceptionCount;\r\n vm.PriceExceptionCount = resp.data.PriceExceptionCount;\r\n vm.AppointmentBookedForDay0 = resp.data.AppointmentBookedForDay0;\r\n vm.AppointmentBookedForDay1 = resp.data.AppointmentBookedForDay1;\r\n vm.AppointmentBookedForDay2Plus = resp.data.AppointmentBookedForDay2Plus;\r\n vm.AppointmentBreached = resp.data.AppointmentBreached;\r\n vm.NotAssignedForD0 = resp.data.NotAssignedForD0;\r\n vm.NotAssignedForD1 = resp.data.NotAssignedForD1;\r\n vm.CustomerCallInit = resp.data.CustomerCallInit;\r\n vm.AssignedNoActionCount = resp.data.AssignedNoActionCount;\r\n vm.BroadcastCountTickets = resp.data.BroadcastCountTickets;\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n }\r\n\r\n }, function () { \r\n });\r\n\r\n }\r\n\r\n vm.getAllJobTicketsCopyForPagging = function(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize) { \r\n var templateCols=\"\";\r\n vm.resetAllSelect();\r\n var templateCols=\"\";\r\n PageIndex = PageIndex?PageIndex:1;\r\n vm.DateField = vm.DateField?vm.DateField:\"CreatedOn\";\r\n ManualAssignationJobService.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, token, itemNames, itemValues,textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues,vm.DateField,PageIndex,PageSize,vm.SortType,vm.SortField).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ticketList = resp.data.LightTicketModels;\r\n angular.forEach(vm.ticketList, function (t) {\r\n t.PincodeArray = t.Pincode.split(\"|\");\r\n t.Pincode = Array.from(new Set(t.PincodeArray));\r\n t.SkillSetArray = t.SkillSet.split(\"|\");\r\n t.SkillSet = Array.from(new Set(t.SkillSetArray));\r\n })\r\n $scope.totalTableBundles = resp.data.Count;\r\n $scope.totalTableWorkOrder = resp.data.Count;\r\n $scope.totalTableTickets = resp.data.Count;\r\n $scope.totalTableUsers = resp.data.Count;\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n $localStorage.TList = vm.ticketList;\r\n $localStorage.AllJobType = vm.searchJobTypeText;\r\n $localStorage.AllJobStatus = vm.searchStatusText;\r\n angular.forEach(vm.ticketList, function (t) {\r\n t.StartTime = moment(t.StartTime, \"YYYY-MM-DDThh:mm:ssZ\"); \r\n t.StartTimeD = t.StartTime.format(\"YYYY-MM-DD hh:mm\");\r\n var today = moment();\r\n var date2 = t.CreationDate;\r\n var date3 = t.AssignationDate;\r\n var duration = today.diff(date2, 'days');\r\n var assignDuration = today.diff(date3, 'hour');\r\n var assignDurationMin = today.diff(date3, 'minutes');\r\n t.Age = duration;\r\n t.diffAssignation = assignDuration;\r\n t.diffAssignationMin = assignDurationMin%60;\r\n })\r\n \r\n if(vm.ticketList.length < vm.ticketPageListCount)\r\n vm.ticketListLength = $scope.totalTableTickets;\r\n else\r\n vm.ticketListLength = PageIndex * vm.ticketPageListCount;\r\n if(PageIndex==1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex-1) * vm.ticketPageListCount) + 1);\r\n\r\n if(vm.ticketList.length < vm.bundlePageListCount)\r\n vm.bundleListLength = $scope.totalTableBundles;\r\n else\r\n vm.bundleListLength = bPageIndex * vm.bundlePageListCount;\r\n if(bPageIndex==1)\r\n vm.bpageindexCount = 1;\r\n else\r\n vm.bpageindexCount = (((bPageIndex-1) * vm.bundlePageListCount) + 1);\r\n\r\n if(vm.ticketList.length < vm.workOrderPageListCount)\r\n vm.workOrderListLength = $scope.totalTableWorkOrder;\r\n else\r\n vm.workOrderListLength = wPageIndex * vm.workOrderPageListCount;\r\n if(wPageIndex==1)\r\n vm.wpageindexCount = 1;\r\n else\r\n vm.wpageindexCount = (((wPageIndex-1) * vm.workOrderPageListCount) + 1);\r\n }\r\n\r\n }, function () { \r\n });\r\n \r\n }\r\n vm.getAllTicketsByStatus = function(status)\r\n {\r\n\r\n if (status == 'P1') {\r\n vm.Priority = status;\r\n vm.JobcountbyStatus = '';\r\n }\r\n else {\r\n vm.Priority = '';\r\n vm.JobcountbyStatus = status;\r\n }\r\n\r\n if(vm.JobcountbyStatus == 'Broadcasted') {\r\n vm.SortField = 'BroadcastedOn';\r\n }\r\n else if(vm.JobcountbyStatus == 'Assigned'){\r\n vm.SortField = 'AssignationDateObj';\r\n }\r\n else if(vm.JobcountbyStatus == 'New'){\r\n vm.SortField = 'NewStatusDateObj';\r\n }\r\n else if(vm.JobcountbyStatus == 'Hold'){\r\n vm.SortField = 'HoldDateObj';\r\n }\r\n else if(vm.JobcountbyStatus == 'Completed'){\r\n vm.SortField = 'CompletionDateObj';\r\n }\r\n else if(vm.JobcountbyStatus == 'ScheduleException'){\r\n vm.SortField = 'ScheduleException';\r\n }\r\n else if(vm.JobcountbyStatus == 'Rejected'){\r\n vm.SortField = 'RejectionDateObj';\r\n }\r\n vm.GroupType = 'Individual|WorkOrderGroup'; \r\n vm.searchText='';\r\n vm.searchJobTypeText = \"\"; \r\n vm.searchStatusText=''; \r\n // vm.CustomerList = [];\r\n // vm.ProjectList = [];\r\n vm.ProjectListByCustomer=[];\r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n // vm.SearchByCName='';\r\n // vm.SearchByPName = '';\r\n vm.SearchByDName = '';\r\n vm.SearchByConsumerName = '';\r\n vm.SearchByConsumerContact = '';\r\n vm.SearchByState = '';\r\n vm.FilterArray(); \r\n // var startDate = moment(vm.ticketdates.startDate).format('YYYY-MM-DD');\r\n // var endDate = moment(vm.ticketdates.endDate).format('YYYY-MM-DD'); \r\n \r\n PageIndex=1;\r\n /*$scope.UserTablepagination = {\r\n current: 1\r\n };*/\r\n // vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }\r\n\r\n // vm.sortBroadcastAge = function(SortType) {\r\n // vm.SortField = \"BroadcastedOn\";\r\n // vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // }\r\n\r\n // vm.sortAge = function(SortType) {\r\n // vm.SortField = \"CreatedOn\";\r\n // vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // }\r\n\r\n var savedFilters = localStorage.getItem('savedFilters');\r\n if (savedFilters) {\r\n var filters = JSON.parse(savedFilters);\r\n vm.searchStatusText = filters.searchStatusText || \"\";\r\n vm.ticketskill = filters.ticketskill || \"\";\r\n vm.GroupType = filters.GroupType || \"\";\r\n vm.Priority = filters.Priority || \"\";\r\n vm.SearchByAccountName = filters.SearchByAccountName || \"\";\r\n vm.SearchByCName = filters.SearchByCName || \"\";\r\n vm.SearchByPName = filters.SearchByPName || \"\";\r\n vm.JobcountbyStatus = filters.JobcountbyStatus || \"\";\r\n vm.userIdforStatus = filters.userIdforStatus || \"\";\r\n vm.filterType = filters.filterType || \"\";\r\n vm.statusForTickets = filters.statusForTickets || \"\";\r\n vm.ticketstatus = filters.ticketstatus || \"\";\r\n vm.SearchByDName = filters.SearchByDName || \"\";\r\n vm.SearchByIs = filters.SearchByIs || \"\";\r\n vm.SearchByDiscription = filters.SearchByDiscription || \"\";\r\n vm.SearchByTName = filters.SearchByTName || \"\";\r\n vm.SearchByConsumerName = filters.SearchByConsumerName || \"\";\r\n vm.SearchByConsumerContact = filters.SearchByConsumerContact || \"\";\r\n vm.State = filters.State || \"\";\r\n vm.searchText = filters.searchText || \"\";\r\n vm.City = filters.City || \"\";\r\n vm.DateField = filters.DateField;\r\n vm.ticketdates = filters.ticketdates;\r\n if(vm.State){\r\n getallCities(vm.State);\r\n }\r\n vm.Allapplyfilter();\r\n }\r\n\r\n vm.sortColumn = function(col){\r\n vm.SortField = col;\r\n if(vm.SortType=='desc'){\r\n vm.SortType = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n }else{\r\n vm.SortType = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // vm.filterStatusForJObs($scope.jobStatusForPaging, $scope.selectedUserId, $localStorage.loggedInUserId, token,jPageIndex,jPageSize)\r\n\r\n };\r\n \r\n // remove and change class\r\n vm.sortClass = function(col){\r\n if(vm.SortField == col ){\r\n if(vm.SortType == 'desc'){\r\n return 'fa fa-arrow-down'; \r\n }else{\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else{\r\n return '';\r\n }\r\n }\r\n\r\n\r\n vm.UserByFiltersList=[];\r\n vm.GetUserByFiltersWithDynaPage = function(loggedinUser, token, uitemNames, uitemValues, userType, UserAvailable, uPageIndex, uPageSize) { \r\n ManualAssignationJobService.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, userType, vm.UserAvailable, vm.DateField, uPageIndex, uPageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserByFiltersList = resp.data.ListUserResponseModel;\r\n $scope.totalUsers = resp.data.Count;\r\n preprocessData(vm.UserByFiltersList);\r\n if(vm.UserByFiltersList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = uPageIndex * vm.userPageListCount;\r\n if(uPageIndex==1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex-1) * vm.userPageListCount) + 1);\r\n\r\n for(var i=0;i 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n}else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n} \r\n}\r\n\r\nif (vm.userskill) { \r\nif(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',SkillSet';\r\n uitemValues = uitemValues + \",\" + vm.userskill;\r\n}\r\nelse\r\n{\r\n uitemNames = 'SkillSet';\r\n uitemValues = vm.userskill;\r\n} \r\n}\r\n\r\nif(vm.SearchByAccount)\r\n{\r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',CustomerAccountName';\r\n uitemValues = uitemValues + \",\" + vm.SearchByAccount;\r\n }\r\n else\r\n {\r\n uitemNames = 'CustomerAccountName';\r\n uitemValues = vm.SearchByAccount;\r\n } \r\n}\r\n\r\nif (vm.userNameSearch) { \r\nif(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.userNameSearch;\r\n}\r\nelse\r\n{\r\n uitemNames = 'Search';\r\n uitemValues = vm.userNameSearch;\r\n} \r\n}\r\n\r\nif (vm.PermanentState) { \r\nif(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',State';\r\n uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n}\r\nelse\r\n{\r\n uitemNames = 'State';\r\n uitemValues = vm.PermanentState;\r\n} \r\n}\r\n\r\nif(vm.JobcountbyStatus)\r\n{\r\n if(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',Status';\r\n uitemValues = uitemValues + \",\" + vm.JobcountbyStatus;\r\n}\r\nelse\r\n{\r\n uitemNames = 'Status';\r\n uitemValues = vm.JobcountbyStatus;\r\n}\r\n}\r\n\r\nif (vm.WorkState) \r\n{ \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',State';\r\n uitemValues = uitemValues + \",\" + vm.WorkState;\r\n }\r\n else\r\n {\r\n uitemNames = 'State';\r\n uitemValues = vm.WorkState;\r\n } \r\n }\r\n if (vm.WorkState && vm.WorkCity) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',City';\r\n uitemValues = uitemValues + \",\" + vm.WorkCity;\r\n }\r\n else\r\n {\r\n uitemNames = 'City';\r\n uitemValues = vm.WorkCity;\r\n } \r\n }\r\n\r\nif (vm.CurrentState) { \r\nif(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',CurrentState';\r\n uitemValues = uitemValues + \",\" + vm.CurrentState;\r\n}\r\nelse\r\n{\r\n uitemNames = 'CurrentState';\r\n uitemValues = vm.CurrentState;\r\n} \r\n}\r\nif (vm.CurrentState && vm.CurrentCity) { \r\nif(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.CurrentCity;\r\n}\r\nelse\r\n{\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.CurrentCity;\r\n} \r\n}\r\n\r\nif (vm.UsersType) { \r\nif(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + \",\" + vm.UsersType;\r\n}\r\nelse\r\n{\r\n uitemNames = 'Role';\r\n uitemValues = vm.UsersType;\r\n} \r\n} \r\n\r\n\r\nif(vm.UsersType==\"Freelancer\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n vm.SearchByAccount = ''\r\n }\r\n else if(vm.UsersType==\"Freelancer Vendor\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n vm.SearchByAccount = ''\r\n } \r\n else if(vm.UsersType==\"Private\")\r\n {\r\n vm.uType=\"Private\";\r\n vm.SearchByAccount = ''\r\n } \r\n else if(vm.UsersType==\"Dispatch Supervisor\" || vm.UsersType==\"OnBoarding Supervisor\" || vm.UsersType==\"Dispatch Team Lead\" || vm.UsersType==\"Project Manager\" || vm.UsersType==\"Supervisor\")\r\n {\r\n vm.uType=\"Fixed\";\r\n }\r\n else if(vm.UsersType==\"Freelancer Dispatcher\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n }\r\n else \r\n {\r\n vm.uType=\"\";\r\n vm.UsersType = '';\r\n } \r\n}\r\n\r\nvm.wsersFilterArray = function()\r\n{\r\nwitemNames=\"\";\r\nwitemValues=\"\";\r\n\r\nif (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null){\r\nif(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n}else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n} \r\n}\r\nif (vm.userNameSearch) { \r\nif(witemNames) \r\n{\r\n witemNames = witemNames + ',Search';\r\n witemValues = witemValues + \",\" + vm.userNameSearch;\r\n}\r\nelse\r\n{\r\n witemNames = 'Search';\r\n witemValues = vm.userNameSearch;\r\n} \r\n}\r\n\r\nif(vm.JobcountbyStatus)\r\n{\r\n if(witemNames) \r\n{\r\n witemNames = witemNames + ',Status';\r\n witemValues = witemValues + \",\" + vm.JobcountbyStatus;\r\n}\r\nelse\r\n{\r\n witemNames = 'Status';\r\n witemValues = vm.JobcountbyStatus;\r\n}\r\n}\r\n\r\n}\r\n\r\n\r\n// apply user rating to all displays\r\n// add star ratings to an array\r\nvar starRating = document.querySelectorAll(\".fa-star\"),\r\nratingTotal = document.querySelectorAll(\".rating-total\");\r\n\r\n// convert ratingTotal HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\nvar reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n// display initial rating totals\r\n// displayTotals();\r\n\r\n// use event listener to record changes to user rating\r\nstarRating.forEach(function(star) {\r\nstar.addEventListener(\"change\", recordRating);\r\n})\r\n\r\nfunction recordRating(event) {\r\n// use indexOf to identify selected user rating\r\nvar userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n// define selected rating to adjust display totals\r\nvar selectedIndex;\r\n\r\nstarRating.forEach(function(item, index) {\r\n// add or remove .active class based upon selected user rating\r\nif (index < userRating + 1) {\r\nstarRating[index].classList.add(\"active\");\r\nselectedIndex = index;\r\n} else {\r\nstarRating[index].classList.remove(\"active\");\r\n}\r\n\r\ndisplayTotals(selectedIndex);\r\n});\r\n}\r\nvm.countForStatus = 50;\r\n// display star rating totals from html custom data-\r\nfunction displayTotals(selectedIndex) {\r\nvar barChart = document.querySelectorAll(\".bar\"),\r\ndisplaySummary = document.querySelectorAll(\".summary\"),\r\nnumRatings = 0,\r\nnumRatingsValue = 0;\r\n\r\n// convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\nvar reverseBarChart = Array.from(barChart).reverse();\r\n\r\nreverseRatingTotal.forEach(function(total, index) {\r\nif (index == selectedIndex) {\r\n// add selected rating to display total\r\ntotal.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n// adjust selected bar width\r\nreverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n} else {\r\n// display unselected totals\r\ntotal.innerHTML = total.getAttribute(\"data-rating-count\");\r\n// adjust unselected bar widths\r\nreverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n}\r\n// count total number and value of ratings\r\nnumRatings += parseInt(total.innerHTML);\r\nnumRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n});\r\n\r\n// display rating average and total\r\nratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n// displaySummary[0].innerHTML = ratingsAverage + \" average based on \" + numRatings + \" reviews.\";\r\n}\r\n\r\nvm.Get360VendorTeamData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedinUser, teamid, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n}\r\n\r\nvm.GetUsersTicket = function (isCollapsed,status,id,type) {\r\n $scope.activeRow = id;\r\n $scope.isCollapsed = !isCollapsed;\r\n vm.userIdforStatus = id;\r\n vm.statusForTickets = status;\r\n vm.JobcountbyStatus = ''; \r\n vm.filterType = type; \r\n vm.FilterArray(); \r\n // if(!vm.filterType){\r\n // vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // }\r\n vm.getAllJobTicketsCopyForUsers(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n}\r\n\r\nvm.getAllJobTicketsCopyForUsers = function(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize) { \r\n var templateCols=\"\";\r\n vm.resetAllSelect();\r\n var templateCols=\"\";\r\n vm.UserticketList = [];\r\n PageIndex = PageIndex?PageIndex:1;\r\n vm.DateField = vm.DateField?vm.DateField:\"CreatedOn\";\r\n ManualAssignationJobService.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, token, itemNames, itemValues,textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues,vm.DateField,PageIndex,PageSize,vm.SortType,vm.SortField).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserticketList = resp.data.LightTicketModels;\r\n }\r\n\r\n }, function () { \r\n });\r\n \r\n}\r\n\r\nvm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token,vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate,wsEDate,vm.OrderBy,vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.wsTicketList = resp.data.workSummaryData;\r\n $scope.totalWS = resp.data.WorkSummaryTotalCount;\r\n if(vm.wsTicketList.length < vm.userPageListCount)\r\n vm.wsListLength = $scope.totalWS;\r\n else\r\n vm.wsListLength = uPageIndex * vm.userPageListCount;\r\n if(uPageIndex==1)\r\n vm.wspageindexCount = 1;\r\n else\r\n vm.wspageindexCount = (((uPageIndex-1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n}\r\n\r\nvm.FinanceFiltersList=[];\r\nvm.GetFinancialSummary = function () { \r\n DashboardService.GetFinancialSummary(loggedinUser, token,vm.userId, fnitemNames, fnitemValues, fPageIndex, fPageSize, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.paymentCount = resp.data.paymentsSummary;\r\n vm.FinanceFiltersList = resp.data.financialSummary360.financialLPSummaryList;\r\n $scope.totalFinList = resp.data.financialSummary360.count;\r\n if(vm.FinanceFiltersList.length < vm.financePageListCount)\r\n vm.financeListLength = $scope.totalFinList;\r\n else\r\n vm.financeListLength = fPageIndex * vm.financePageListCount;\r\n if(fPageIndex==1)\r\n vm.fpageindexCount = 1;\r\n else\r\n vm.fpageindexCount = (((fPageIndex-1) * vm.financePageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n vm.ResetUserFilter();\r\n}\r\n\r\nvm.getFileType = function(url){\r\n if(url==null || url==\"\")\r\n {\r\n return \"others\";\r\n }\r\n else{\r\n if(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0 ||url.indexOf(\".JPG\")>=0 || url.indexOf(\".JPEG\")>=0 || url.indexOf(\".PNG\")>=0 || url.indexOf(\".BMP\")>=0){\r\n return \"image\";\r\n } else if(url.indexOf(\".pdf\")>=0 || url.indexOf(\".PDF\")>=0){\r\n return \"pdf\";\r\n } else if(url.indexOf(\".xls\")>=0 || url.indexOf(\".xlsx\")>=0 ||url.indexOf(\".XLS\")>=0 || url.indexOf(\".XLSX\")>=0){\r\n return \"xls\"; \r\n } else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0 || url.indexOf(\".DOC\")>=0 || url.indexOf(\".DOCX\")>=0){\r\n return \"doc\";\r\n } \r\n else {\r\n return \"others\";\r\n }\r\n }\r\n }\r\n\r\n\r\nvm.CreateBJobs = function(){\r\n vm.bundleTicketArray = []; \r\n vm.bundlePrice = [];\r\n vm.bundleData = [];\r\n vm.bundlesum = 0;\r\n angular.forEach(vm.ticketList, function(d){\r\n if (d.checked) {\r\n vm.bundleTicketArray.push(d.TicketId)\r\n vm.bundlePrice.push(d.FreelancerRate)\r\n vm.bundleData.push(d)\r\n vm.bundlesum = vm.bundlePrice.reduce(function (x, y) {\r\n return x + y;\r\n }, 0); \r\n }\r\n })\r\n if(vm.bundleTicketArray.length <= 1) {\r\n vm.showFailure(\"Failed\", 'Please choose atleast 2 tickets to create combo');\r\n }\r\n else if(vm.bundleTicketArray.length > 5) {\r\n vm.showFailure(\"Failed\", 'Please select 5 or less than 5 tickets to create combo');\r\n }\r\n else {\r\n vm.confirmationMessage = 'Please confirm if you want to create combo of mentioned tickets:';\r\n confirmationModalInstance = $uibModal.open({\r\n templateUrl: 'bundle_jobs_confirmation_model.html',\r\n scope: $scope,\r\n backdrop: 'static'\r\n });\r\n }\r\n \r\n}\r\n\r\nvm.BundleJobsCreate = function (IsSuggested) { \r\n $scope.IsSuggested = IsSuggested;\r\n if(vm.bundleTicketArray.length <= 1) {\r\n vm.showFailure(\"Failed\", 'Please choose atleast 2 tickets to create combo');\r\n }\r\n else if(vm.bundleTicketArray.length > 5) {\r\n vm.showFailure(\"Failed\", 'Please select 5 or less than 5 tickets to create combo');\r\n }\r\n else{\r\n ManualAssignationJobService.CreateJobBundle(loggedinUser, vm.bundleTicketArray,IsSuggested,token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.getJobsSuggestion(vm.itemNamesSgtn, vm.itemValuesSgtn);\r\n vm.FilterArray();\r\n // vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.CloseComboModel();\r\n vm.confirmationCloseModal();\r\n }, 2000); \r\n confirmationModalInstance.close(); \r\n }\r\n else { \r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.DisableBroadcastButtons(false); \r\n confirmationModalInstance.close();\r\n }\r\n });\r\n } \r\n}\r\n\r\n// Route Bundle\r\nvm.routeBundle = function(index){\r\n vm.DisableRouteBroadcastButtons(true);\r\n var data = {};\r\n for(var i=0; i< vm.ticketList.length;i++){\r\n if(vm.ticketList[i].TicketStatus==\"New\")\r\n {\r\n if(vm.ticketList[i].checked){\r\n if(i==0){\r\n data.JobIds = vm.ticketList[i].TicketId;\r\n }else{\r\n data.JobIds = data.JobIds + ',' + vm.ticketList[i].TicketId;\r\n }\r\n }\r\n }\r\n } \r\n for(var i=0; i< vm.UserByFiltersList.length;i++){\r\n if(vm.UserByFiltersList[i].checked){\r\n data.UserId = vm.UserByFiltersList[i].UserId;\r\n break;\r\n }\r\n }\r\n if(data.JobIds){\r\n ManualAssignationJobService.RouteBundlesforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.DisableRouteBroadcastButtons(true); \r\n vm.processBroadcastRouteResponse(resp.data); \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n });\r\n }else{\r\n vm.showFailure(\"Failed\", \"Please select tickets.\");\r\n vm.DisableRouteBroadcastButtons(false);\r\n } \r\n }\r\n\r\n vm.BroadCastBundles = function () {\r\n vm.DisableRouteBroadcastButtons(true);\r\n var BidData = [];\r\n angular.forEach(vm.ticketList, function (d) {\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n if(d.TicketStatus==\"New\")\r\n {\r\n if (d.checked) {\r\n obj.JobID = d.TicketId;\r\n var time = d.BidDuration.split(':');\r\n var hrs = parseInt(time[0]);\r\n var min = parseInt(time[1]);\r\n obj.BIDDuration = hrs*60 + min;\r\n obj.BroadCastRate = d.BroadcastRate\r\n obj.BroadCastGrossRate = d.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = d.MobiforceCommission\r\n obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n }\r\n }\r\n })\r\n var UserData = [];\r\n\r\n for(var i=0; i< vm.UserByFiltersList.length;i++){\r\n if(vm.UserByFiltersList[i].checked){\r\n UserData.push(vm.UserByFiltersList[i].UserId); \r\n }\r\n }\r\n\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"Bids\": BidData,\r\n \"Users\": UserData\r\n };\r\n vm.BroadcastBundleModal.close();\r\n ManualAssignationJobService.BroadcastJobBundle(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.DisableRouteBroadcastButtons(true);\r\n vm.processBroadcastRouteResponse(resp.data);\r\n vm.free_NewJobSelectedItems = [];\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n }\r\n\r\nvm.openBroadcastBundlemodal = function (i) {\r\n vm.DisableRouteBroadcastButtons(true);\r\n vm.broadcastError = null; \r\n vm.jobselected = [];\r\n angular.forEach(vm.ticketList, function (d) {\r\n if(d.TicketStatus)\r\n {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n vm.jobselected.push(d);\r\n $log.log(d)\r\n }\r\n }\r\n });\r\n if (vm.jobselected.length > 0) {\r\n vm.BroadcastBundleModal = $uibModal.open({\r\n templateUrl: 'BroadcastBundle.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n else\r\n {\r\n vm.showFailure(\"Failed\", \"Please select bundles\"); \r\n vm.broadcastError = \"Please select bundles for bradcast\";\r\n }\r\n}\r\n\r\nvm.closeBundleModal = function () {\r\n vm.BroadcastBundleModal.close();\r\n}\r\n\r\n\r\n//brodcast bundle to nearBy\r\n \r\nvm.BroadcastBundlesUS = function (i) {\r\n vm.DisableRouteBroadcastButtons(true);\r\n var temp = [];\r\n angular.forEach(vm.UserSuggestionList, function(d){\r\n if (d.checked) {\r\n temp.push({ \"UserId\": d.id, \"SuggestedPrice\": null, \"Price\": parseInt(d.Price), \"Distance\": parseInt(d.UserDistance) });\r\n \r\n }\r\n })\r\n var data = {\r\n \"JobId\": vm.broadcastTicketId,\r\n \"BIDDuration\": vm.TicketSelectedForAssistedSuggestion.BidDuration,\r\n \"MobiforceCommissionPercentage\": vm.TicketSelectedForAssistedSuggestion.MobiforceCommission,\r\n \"TechnicianSource\": 1,\r\n \"Users\": temp\r\n };\r\n if (data.Users.length > 0) {\r\n ManualAssignationJobService.BroadCastBundlesforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n $timeout(function () {\r\n vm.DisableRouteBroadcastButtons(false);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n $scope.hideoverlay();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.BroadcastStatus);\r\n vm.DisableRouteBroadcastButtons(false);\r\n $scope.hideoverlay();\r\n }\r\n });\r\n } \r\n else {\r\n vm.showFailure(\"Failed\", resp.data.BroadcastStatus);\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n}\r\n\r\n// Route Bundles for user Suggestion\r\nvm.routeBundlesUS = function (user) { \r\n vm.DisableRouteBroadcastButtons(true);\r\n var data = user; //vm.UserSuggestionList[0];\r\n var temp = [];\r\n temp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n var data = {\r\n \"JobId\": vm.broadcastTicketId,\r\n \"BIDDuration\": vm.TicketSelectedForAssistedSuggestion.BidDuration,\r\n \"MobiforceCommissionPercentage\": vm.TicketSelectedForAssistedSuggestion.MobiforceCommission,\r\n \"BroadcastType\": \"Route\",\r\n \"TechnicianSource\": 1,\r\n \"Users\": temp\r\n };\r\n if (data.Users.length > 0) {\r\n vm.showloading = true;\r\n ManualAssignationJobService.BroadCastBundlesforUser(loggedinUser, data, token).then(function (resp) { \r\n if (resp.status == 201) {\r\n vm.showSuccess('Success', \"Jobs Route Successfully\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.DisableRouteBroadcastButtons(false);\r\n $scope.hideoverlay();\r\n }, 2000);\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure('Failed', resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Users Not Found\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n vm.showloading = false;\r\n });\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select users.\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n\r\n}\r\n\r\nvm.UnbundleBJobs = function(bundleid){\r\n vm.unbundleTicketArray = [];\r\n if (bundleid) {\r\n vm.unbundleTicketArray.push(bundleid) \r\n }\r\n vm.confirmationMessage = 'Please confirm if you want to unbundle: ' + vm.unbundleTicketArray;\r\n confirmationModalInstance = $uibModal.open({\r\n templateUrl: 'unbundle.html',\r\n scope: $scope,\r\n backdrop: 'static'\r\n });\r\n}\r\n\r\nvm.UnBundleTkts = function () { \r\n ManualAssignationJobService.UnBundleJobs(loggedinUser, vm.unbundleTicketArray, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000); \r\n confirmationModalInstance.close(); \r\n vm.showSuccess(\"Success\", \"Job has been unbundled successfully\");\r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.DisableBroadcastButtons(false); \r\n confirmationModalInstance.close();\r\n }\r\n });\r\n}\r\n\r\nvm.closeUnbundleModal = function () {\r\n confirmationModalInstance.close();\r\n}\r\n\r\n\r\nvm.GetAllBundledJobs = function(isCollapsed,bundleId){\r\n $scope.isCollapsed = !isCollapsed;\r\n $scope.activeRow = bundleId;\r\n vm.bundleJobId = bundleId;\r\n if(vm.bundleJobId){\r\n ManualAssignationJobService.GetAllBundledJobs(loggedinUser, vm.bundleJobId ,token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BundleTicketList=resp.data;\r\n }\r\n }, function () { \r\n });\r\n }\r\n}\r\n\r\nvm.Get360SkillSummary = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for(var i=0;i0){\r\n angular.forEach(vm.skillData, function(s){\r\n vm.skillsWithPipe += s.SkillName+\"|\";\r\n });\r\n vm.skillsWithPipe = vm.skillsWithPipe.length>0\r\n ? vm.skillsWithPipe.substring(0,vm.skillsWithPipe.length-1) : \"\";\r\n }\r\n }\r\n });\r\n }\r\n vm.loadAllSkills();\r\n\r\n //Get all Freelancers\r\n vm.GetAllFreelancers = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"UserStatus,Locations,SkillSet,Role\";\r\n var itemValues = \"Active\" + ',' + vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Field Engineer';\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n if(vm.skillsWithPipe && vm.skillsWithPipe.length>0){\r\n itemNames+=\",SkillSet\";\r\n itemValues+=\",\"+vm.skillsWithPipe;\r\n }\r\n }\r\n ManualAssignationService.GetAllFreelancersWithFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n for(var i=0;i0){\r\n // itemNames+=\",SkillSet\";\r\n // itemValues+=\",\"+vm.skillsWithPipe;\r\n // }\r\n // }\r\n ManualAssignationService.GetFreelancerVendorsByFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.FreelancerVendorUsers = resp.data;\r\n for(var i=0;i 0) {\r\n ManualAssignationService.AssignTickets(userId, loggedinUser, itemValues, token).then(function (resp) {\r\n\r\n if (resp && resp.data && resp.data.ErrorCode == 140 && resp.data.Message) {\r\n if (mode == 'fixed') {\r\n vm.showFailure(\"Failed\", resp.data.Message + \". Please recharge your account.\");\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data.Message + \".\");\r\n }\r\n } else if (resp && resp.data) {\r\n\r\n vm.showSuccess(\"Success\", \"Ticket assigned successfully\");\r\n vm.selectedItems = [];\r\n\r\n if (mode == 'fixed') {\r\n var jobs = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (itemValues.split(\",\").indexOf(d.TicketId) >= 0) {\r\n //remove this job from display\r\n } else {\r\n jobs.push(d);\r\n }\r\n });\r\n vm.NewJobs = jobs;\r\n vm.selectAllNewJob = false;\r\n vm.showMinusNewJob = false;\r\n\r\n } else {\r\n $timeout(function () {\r\n vm.GetNewJobs();\r\n }, 500);\r\n }\r\n\r\n } else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs to assign\");\r\n }\r\n }\r\n\r\n //Get Broadcasted Jobs\r\n vm.GetBroadcastedJobs = function () {\r\n\r\n // ManualAssignationService.GetTicketsByFilter(loggedinUser,\"Ticket Status\",\"Broadcasted\").then(function(resp){\r\n\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemName = \"Ticket Status,Circle,SkillSet\";\r\n var itemValues = 'Broadcasted' + ',' + vm.locationSearch + ',' + vm.skillsSearch;\r\n } else {\r\n var itemName = 'Ticket Status';\r\n var itemValues = 'Broadcasted';\r\n }\r\n\r\n ManualAssignationService.GetBroadcastedBids(loggedinUser, itemName, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n for (var index = 0; index < vm.BroadcastedJobs.length; index++) {\r\n vm.time = vm.BroadcastedJobs[index].BIDDuration;\r\n //$log.log(\"BidDuration: \",vm.time);\r\n var hr = parseInt(vm.time / 60);\r\n var min = vm.time % 60;\r\n vm.BroadcastedJobs[index].BIDDuration = hr + \":\" + min;\r\n }\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n }\r\n\r\n \r\n\r\n vm.toggleAll = function () {\r\n //$log.log('checkAll', vm.checkAll);\r\n var bool = true;\r\n if (vm.checkAll) {\r\n bool = false;\r\n }\r\n angular.forEach(vm.NewJobs, function (v, k) {\r\n // //$log.log('v',v);\r\n // //$log.log('k',k);\r\n v.checked = !bool;\r\n // //$log.log('!bool', v.checked);\r\n vm.checkAll = !bool;\r\n });\r\n }\r\n\r\n vm.checkAny = function (i) {\r\n //$log.log('newJobselectAny', vm.newJobselectAny);\r\n vm.checkAll = true;\r\n angular.forEach(vm.NewJobs, function (v, k) {\r\n\r\n if (!v.checked) {\r\n vm.checkAll = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n vm.showCheckAny = function (i) {\r\n vm.showMinus = true;\r\n angular.forEach(vm.freelancerCheckAny, function (v, k) {\r\n if (v != true && k == vm.freelancerCheckAny[i]) {\r\n vm.showMinus = false;\r\n } else {\r\n vm.showMinus = true;\r\n }\r\n });\r\n }\r\n\r\n vm.GetTicketById = function (ticketId) {\r\n ManualAssignationService.GetTicketsById(ticketId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.JobProfile = resp.data;\r\n }\r\n })\r\n }\r\n\r\n //Advance Search\r\n vm.SearchModal = {};\r\n vm.AdvanceSearch = function () {\r\n vm.SearchModal = $uibModal.open({\r\n templateUrl: 'AssignFilter.html',\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n //Load All Skills\r\n if (vm.skillData.length==0) {\r\n ManualAssignationService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.skillData = resp.data;\r\n }\r\n })\r\n }\r\n //Load All Circles\r\n if (vm.circleData.length==0) {\r\n\r\n ManualAssignationService.GetAllCircles(loggedinUser,token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.circleData = resp.data;\r\n }\r\n })\r\n }\r\n \r\n \r\n }\r\n vm.LocationsList=function()\r\n {\r\n ManualAssignationService.getAllState(loggedinUser, token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.circleData = resp.data.values;\r\n \r\n }\r\n }\r\n }); \r\n }\r\n vm.LocationsList();\r\n vm.removeFilters = function () {\r\n if (vm.isChecked == 'fixed') {\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n\r\n ManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationService.GetUsersByFilter(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('fixedUsers', resp.data);\r\n preprocessData(vm.fixedUsers);\r\n } else {\r\n vm.fixedUsers = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get users, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'freelancer') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n } else if(vm.skillsWithPipe && vm.skillsWithPipe.length>0){\r\n teamIteamNames+=\",SkillSet\";\r\n teamIteamValues+=vm.skillsWithPipe;\r\n }\r\n ManualAssignationService.GetAllFreelancersWithFilters(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n //$log.log('freelancers', vm.freelancerUsers);\r\n preprocessData(vm.freelancerUsers);\r\n } else {\r\n vm.freelancerUsers = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get freelancers, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get freelancers, server is not responding correctly.\");\r\n });\r\n\r\n var broadItemNames = 'Circle,SkillSet,TicketStatus';\r\n var broadItemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Broadcasted';\r\n\r\n ManualAssignationService.GetBroadcastedBids(loggedinUser, broadItemNames, broadItemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'vendor') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n\r\n ManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationService.GetAllVendors(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.vendorList = resp.data;\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get vendors, server is not responding correctly.\");\r\n })\r\n\r\n } else if (vm.isChecked == 'supervisor') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"UserStatus\";\r\n var teamIteamValues = 'Active';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n ManualAssignationService.GetUsersByRole(loggedinUser, 'Supervisor', teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data.length > 0) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n } else {\r\n vm.supervisorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get supervisors, server is not responding correctly.\");\r\n });\r\n }\r\n }\r\n\r\n //To Search\r\n vm.search = function () {\r\n if (vm.searchform.$valid) {\r\n if (vm.isChecked == 'fixed') {\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n\r\n ManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n\r\n ManualAssignationService.GetUsersByFilter(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('fixedUsers', resp.data);\r\n preprocessData(vm.fixedUsers);\r\n } else {\r\n vm.fixedUsers = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'freelancer') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n\r\n ManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n\r\n ManualAssignationService.GetAllFreelancersWithFilters(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n //$log.log('freelancers', vm.freelancerUsers);\r\n preprocessData(vm.freelancerUsers);\r\n\r\n\r\n } else {\r\n vm.freelancerUsers = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n });\r\n\r\n var broadItemNames = 'Circle,SkillSet,TicketStatus';\r\n var broadItemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Broadcasted';\r\n\r\n ManualAssignationService.GetBroadcastedBids(loggedinUser, broadItemNames, broadItemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'vendor') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n\r\n ManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n\r\n ManualAssignationService.GetAllVendors(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.vendorList = resp.data;\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get vendors, server is not responding correctly.\");\r\n });\r\n\r\n } else if (vm.isChecked == 'supervisor') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n\r\n ManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get supervisors, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n\r\n ManualAssignationService.GetUsersByRole(loggedinUser, 'Supervisor', teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data.length > 0) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n } else {\r\n vm.supervisorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get users, server is not responding correctly.\");\r\n })\r\n\r\n }\r\n vm.SearchModal.close();\r\n } else {\r\n vm.searchform.submitted = true;\r\n }\r\n\r\n\r\n }\r\n\r\n \r\n vm.tabNo = function (tab) {\r\n vm.tab = tab;\r\n //$log.log('TabNo', vm.tab);\r\n }\r\n\r\n vm.CloseAdvanceSearchModal = function () {\r\n vm.locationSearch = '';\r\n vm.skillsSearch = '';\r\n vm.SearchModal.close();\r\n }\r\n\r\n vm.ChangeMode = function (mode) {\r\n vm.tabNo('1');\r\n if (mode == 'fixed') {\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties={\"SkillSet\":\"Water Sample Collection\"};\r\n } \r\n vm.GetAllActiveFixedUsers();\r\n\r\n } else if (mode == 'freelancer') {\r\n // vm.GetBroadcastedJobs();\r\n vm.GetAllFreelancers();\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n vm.freelancer_select_all = false;\r\n vm.freelancer_selectAll = false;\r\n vm.freelancer_SelectAllJob = false;\r\n vm.freelancer_Select_All_NewJobs = false;\r\n\r\n\r\n } else if (mode == 'FixedVendors') {\r\n vm.GetAllVendors();\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties={\"SkillSet\":\"Water Lab Test\"};\r\n }\r\n } else if (mode == 'vendor') {\r\n // vm.GetBroadcastedJobs();\r\n vm.GetAllFreelancerVendors();\r\n vm.Vendor_selectedItems = [];\r\n vm.Vendor_select_single = [];\r\n vm.Vendor_NewJobSelectedItems = [];\r\n vm.Vendor_select_single_NewJob = [];\r\n vm.Vendor_select_all = false;\r\n vm.Vendor_selectAll = false;\r\n vm.Vendor_SelectAllJob = false;\r\n vm.Vendor_Select_All_NewJobs = false;\r\n\r\n\r\n }\r\n else if (mode == 'supervisor') {\r\n vm.GetUsersByRole('Supervisor');\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties = {\"SkillSet\":\"Water Lab Test\"};\r\n }\r\n }\r\n }\r\n vm.ChangeMode('fixed');\r\n\r\n\r\n //Get Users By Role\r\n\r\n vm.GetUsersByRole = function (role) {\r\n\r\n if (vm.loggedInUserRole == 'Administrator' || vm.loggedInUserRole == 'Project Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active\";\r\n }\r\n } else if (vm.loggedinAs == 'Supervisor' || vm.loggedinAs == 'Vendor Supervisor') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus,ReportingTo\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + vm.loggedInUserReportingTo;\r\n } else {\r\n var itemNames = \"UserStatus,ReportingTo\";\r\n var itemValues = \"Active,\" + vm.loggedInUserReportingTo;\r\n }\r\n } else if (vm.loggedInUserRole == 'Vendor Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active,\";\r\n }\r\n }\r\n else if (vm.loggedInUserRole == 'Help Desk') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active,\";\r\n }\r\n }\r\n\r\n ManualAssignationService.GetUsersByRole(loggedinUser, role, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n\r\n\r\n //vm.tabNo('1');\r\n\r\n // Route Jobs\r\n\r\n vm.routeTicket = function(index){\r\n //vm.routbuttonDisable=true;\r\n vm.DisableRouteBroadcastButtons(true);\r\n var data = {};\r\n for(var i=0; i< vm.ticketList.length;i++){\r\n if(vm.ticketList[i].TicketStatus==\"New\")\r\n {\r\n if(vm.ticketList[i].checked){\r\n if(i==0){\r\n data.JobIds = vm.ticketList[i].TicketId;\r\n }else{\r\n data.JobIds = data.JobIds + ',' + vm.ticketList[i].TicketId;\r\n }\r\n }\r\n }\r\n } \r\n for(var i=0; i< vm.UserByFiltersList.length;i++){\r\n if(vm.UserByFiltersList[i].checked){\r\n data.UserId = vm.UserByFiltersList[i].UserId;\r\n break;\r\n }\r\n }\r\n\t\t\t if(data.JobIds){\r\n ManualAssignationService.RouteJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n vm.processBroadcastRouteResponse(resp.data); \r\n\t\t\t\t\t //vm.showSuccess('Success',\"Jobs Route Successfully\");\r\n\t\t\t\t\t $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, uPageIndex, uPageSize);\r\n vm.DisableRouteBroadcastButtons(false);\r\n \r\n\t\t\t\t\t }, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t });\r\n\t\t\t }else{\r\n\t\t\t\t vm.showFailure(\"Failed\", \"Please select tickets.\");\r\n vm.DisableRouteBroadcastButtons(false);\r\n\t\t\t }\r\n\t\t\t\r\n\t\t}\r\n\r\n\r\n vm.DisableRouteBroadcastButtons = function (disable) {\r\n if(disable){\r\n vm.brodcastButtonDisable = true;\r\n vm.routebuttonDisable = true;\r\n }\r\n else{\r\n vm.brodcastButtonDisable = false;\r\n vm.routebuttonDisable = false;\r\n }\r\n }\r\n\r\n // Route Jobs\r\n vm.routeTicketToFV = function(index){\r\n var data = {};\r\n for(var i=0; i< vm.NewJobs.length;i++){\r\n if(vm.NewJobs[i].checked){\r\n if(i==0){\r\n data.JobIds = vm.NewJobs[i].TicketId;\r\n }else{\r\n data.JobIds = data.JobIds + ',' + vm.NewJobs[i].TicketId;\r\n }\r\n }\r\n }\r\n for(var i=0; i< vm.FreelancerVendorUsers.length;i++){\r\n if(vm.FreelancerVendorUsers[i].checked){\r\n data.UserId = vm.FreelancerVendorUsers[i].UserId;\r\n break;\r\n }\r\n }\r\n\r\n if(data.JobIds){\r\n ManualAssignationService.RouteJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess('Success',\"Jobs Route Successfully\");\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Server error.\");\r\n }\r\n });\r\n }else{\r\n vm.showFailure(\"Failed\", \"Please select tickets.\");\r\n }\r\n \r\n }\r\n\r\n //Broadcast Bids/Jobs\r\n vm.BroadCastJobs = function () {\r\n vm.DisableRouteBroadcastButtons(true);\r\n var BidData = [];\r\n angular.forEach(vm.ticketList, function (d) {\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n if(d.TicketStatus==\"New\")\r\n {\r\n if (d.checked) {\r\n obj.JobID = d.TicketId;\r\n var time = d.BidDuration.split(':');\r\n var hrs = parseInt(time[0]);\r\n var min = parseInt(time[1]);\r\n obj.BIDDuration = hrs*60 + min;\r\n obj.BroadCastRate = d.BroadcastRate\r\n obj.BroadCastGrossRate = d.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = d.MobiforceCommission\r\n obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n }\r\n }\r\n })\r\n var UserData = [];\r\n /*angular.forEach(vm.freelancerUsers, function (d) {\r\n if (d.checked) {\r\n UserData.push(d.UserId);\r\n }\r\n });*/\r\n\r\n for(var i=0; i< vm.UserByFiltersList.length;i++){\r\n if(vm.UserByFiltersList[i].checked){\r\n UserData.push(vm.UserByFiltersList[i].UserId); \r\n }\r\n }\r\n\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"Bids\": BidData,\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModal.close();\r\n\r\n ManualAssignationService.BroadCastJobs(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.processBroadcastRouteResponse(resp.data); \r\n //vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n //toaster.pop(vm.toaster_success);\r\n vm.free_NewJobSelectedItems = [];\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, uPageIndex, uPageSize);\r\n vm.DisableRouteBroadcastButtons(false);\r\n \r\n }, 2000);\r\n }\r\n if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n }\r\n\r\n vm.BroadCastJobsFV = function () {\r\n\r\n var BidData = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n if (d.checked) {\r\n obj.JobID = d.TicketId;\r\n var time = d.BidDuration.split(':');\r\n var hrs = parseInt(time[0]);\r\n var min = parseInt(time[1]);\r\n obj.BIDDuration = hrs*60 + min;\r\n obj.BroadCastRate = d.BroadcastRate\r\n obj.BroadCastGrossRate = d.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = d.MobiforceCommission\r\n obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n }\r\n })\r\n var UserData = [];\r\n /*angular.forEach(vm.FreelancerVendorUsers, function (d) {\r\n if (d.checked) {\r\n UserData.push(d.UserId);\r\n }\r\n });*/\r\n\r\n for(var i=0; i< vm.FreelancerVendorUsers.length;i++){\r\n if(vm.FreelancerVendorUsers[i].checked){\r\n UserData.push(vm.FreelancerVendorUsers[i].UserId); \r\n }\r\n }\r\n\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"Bids\": BidData,\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModalFV.close();\r\n\r\n ManualAssignationService.BroadCastJobs(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n toaster.pop(vm.toaster_success);\r\n vm.free_NewJobSelectedItems = [];\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n }\r\n }\r\n\r\n\r\n // vm.AssignReceivedBid = function (userId, bidRate, bidGrossRate) {\r\n // bidGrossRate = bidGrossRate * GrossRate;\r\n \r\n // ManualAssignationService.AssignReceivedBid(loggedinUser, vm.broadcastTicketId, userId, token).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // vm.showSuccess(\"Success\", \"Assigned Successfully\");\r\n // vm.ChangeMode('freelancer');\r\n // vm.BidReceivedJobs = [];\r\n // }\r\n // }, function (err) {\r\n // if (err && err.data && err.data.Message) {\r\n // vm.showFailure(\"Failed\", err.data.Message);\r\n // } else {\r\n // vm.showFailure(\"Failed\", \"Unable to assign job, server is not responding correctly.\");\r\n // }\r\n // })\r\n // }\r\n\r\n\r\nvm.AssignReceivedBid = function(user){\r\n \r\n vm.AllDataList =[];\r\nvar data ={\r\n \"TicketId\": vm.broadcastTicketId,\r\n \"UserId\": user.UserId,\r\n \"StartTime\":vm.broadcaststartTime,\r\n \"Endtime\": vm.broadcastEndTime,\r\n \"SuggestedPrice\": 0,\r\n \"AssignPrice\": parseInt(vm.broadcastAssignRate),\r\n \"Distance\": 0,\r\n}\r\nvm.AllDataList.push(data)\r\n\r\n ScheduleAssignService.AssignTicketsTimeline(loggedinUser,vm.AllDataList,token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.ChangeMode('freelancer');\r\n vm.BidReceivedJobs = [];\r\n\r\n $timeout(function () {\r\n \r\n vm.GetBroadcastedJobs();\r\n vm.closeSendAndRecieveBid();\r\n }, 1500);\r\n }\r\n }, function (err) {\r\n if (err && err.data) {\r\n vm.showFailure(\"Failed\", err.data);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to assign job, server is not responding correctly.\");\r\n }\r\n })\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n //Get Bid Received\r\n\r\n vm.BidReceived = function (ticket) { \r\n document.getElementById(\"SendAndRecieveBid\").style.width = \"42%\";\r\n var status = 'Received';\r\n vm.broadcastTicketId = ticket.TicketId;\r\n vm.broadcastLinkId = ticket.LinkId;\r\n vm.broadcaststartTime = ticket.StartTimeD;\r\n vm.broadcastEndTime = ticket.EndTime;\r\n //vm.broadcastAssignRate = ticket.JobAssignRate;\r\n\r\n vm.isReceived = true;\r\n ManualAssignationService.GetBidReceivedByStatus(loggedinUser, vm.broadcastTicketId, status, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BidReceivedJobs = resp.data;\r\n angular.forEach(vm.BidReceivedJobs, function (user) {\r\n\r\n user.ratingStars = vm.getRatingStars(user.UserRating);\r\n user.blankStars = vm.getBlankStars(user.UserRating);\r\n user.exp = user.Experience > 0 ? parseFloat(user.UserExperience / 365).toFixed(1) : 0;\r\n })\r\n }\r\n //$log.log('Bids', resp.data);\r\n })\r\n }\r\n\r\n //Get bid sent\r\n vm.BidSent = function(ticket){\r\n document.getElementById(\"SendAndRecieveBid\").style.width = \"42%\";\r\n vm.broadcastTicketId = ticket.TicketId;\r\n vm.broadcastLinkId = ticket.LinkId;\r\n vm.isReceived = false;\r\n ManualAssignationService.GetBidSentByStatus(loggedinUser, ticket.TicketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BidReceivedJobs = resp.data;\r\n angular.forEach(vm.BidReceivedJobs, function (user) {\r\n user.ratingStars = vm.getRatingStars(user.UserRating);\r\n user.blankStars = vm.getBlankStars(user.UserRating);\r\n user.exp = user.Experience > 0 ? parseFloat(user.UserExperience / 365).toFixed(1) : 0;\r\n })\r\n }\r\n });\r\n }\r\n\r\n //Data Tables\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [1, 'asc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n //DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(7).notSortable()\r\n ];\r\n\r\n //Global Calling\r\n vm.GetNewJobs();\r\n vm.GetAllActiveFixedUsers();\r\n //$log.log('isChecked', vm.isChecked);\r\n\r\n vm.openBroadcastmodal = function (i) {\r\n vm.broadcastError = null; \r\n vm.jobselected = [];\r\n angular.forEach(vm.ticketList, function (d) {\r\n if(d.TicketStatus==\"New\")\r\n {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n \r\n vm.jobselected.push(d);\r\n $log.log(d)\r\n }\r\n }\r\n });\r\n \r\n if (vm.jobselected.length > 0) {\r\n vm.BroadcastModal = $uibModal.open({\r\n templateUrl: 'Broadcast.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n else\r\n {\r\n vm.showFailure(\"Failed\", \"Please select jobs\"); \r\n vm.broadcastError = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n vm.closeModal = function () {\r\n vm.BroadcastModal.close();\r\n }\r\n\r\n vm.openBroadcastmodalforFV = function (i) {\r\n vm.broadcastErrorFV = null; \r\n vm.jobselectedFV = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n vm.jobselectedFV.push(d);\r\n $log.log(d)\r\n }\r\n });\r\n if (vm.jobselectedFV.length > 0) {\r\n vm.BroadcastModalFV = $uibModal.open({\r\n templateUrl: 'BroadcastFV.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n } else {\r\n vm.broadcastErrorFV = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n\r\n vm.OpenBroadcastModelToFV = function (i) {\r\n vm.broadcastErrorFV = null; \r\n vm.jobselectedFV = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n vm.jobselectedFV.push(d);\r\n $log.log(d)\r\n }\r\n });\r\n if (vm.jobselectedFV.length > 0) {\r\n vm.BroadcastModalFV = $uibModal.open({\r\n templateUrl: 'BroadcastFV.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n } else {\r\n vm.broadcastErrorFV = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n vm.closeModalFV = function () {\r\n vm.BroadcastModalFV.close();\r\n }\r\n\r\n vm.GetAllVendors = function () {\r\n vm.vendorList = [];\r\n var itemNames = \"\";\r\n var itemValues = \"\";\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n itemNames = \"VendorLocations,VendorSkillsets,VendorStatus\";\r\n itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n itemNames = \"VendorStatus\";\r\n itemValues = \"Active\";\r\n }\r\n if (vm.loggedInUserRole == 'Help Desk') {\r\n itemNames += \",VendorSkillsets\";\r\n itemValues += \",\"+ loggedinUserSkill; \r\n }\r\n\r\n // GetAllVendors\r\n ManualAssignationService.GetFixedVendorsByFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n angular.forEach(resp.data, function(vendor){\r\n if (vendor.UserId !=loggedinUser) {\r\n vm.vendorList.push(vendor);\r\n }\r\n })\r\n //vm.vendorList = resp.data;\r\n\r\n preprocessData(vm.vendorList);\r\n // $log.log('vendors', vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n })\r\n }\r\n\r\n //Implementation of Checkboxes for all tables\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n\r\n vm.selectAllCheckboxes = function (mode, table) {\r\n if (mode == 'fixed' && table == 'fixed_NewJob') {\r\n if (vm.fixed_selectAll) {\r\n angular.forEach(vm.NewJobs, function (item) {\r\n idx = vm.selectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.fixed_select_all = true;\r\n vm.selectedItems.push(item);\r\n vm.fixed_select_single.push(\"true\");\r\n }\r\n })\r\n\r\n } else {\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n }\r\n\r\n //$log.log('selectedItems', vm.selectedItems);\r\n } else if (mode == 'freelancer' && table == 'freelancer_users') {\r\n if (vm.freelancer_selectAll) {\r\n angular.forEach(vm.freelancerUsers, function (item) {\r\n idx = vm.free_selectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.freelancer_select_all = true;\r\n vm.free_selectedItems.push(item);\r\n vm.freelancer_select_single.push(\"true\");\r\n }\r\n })\r\n } else {\r\n vm.freelancer_select_all = false;\r\n vm.freelacer_selectAll = false;\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n }\r\n\r\n } else if (mode == 'freelancer' && table == 'freelancer_NewJob') {\r\n if (vm.freelancer_SelectAllJobs) {\r\n angular.forEach(vm.NewJobs, function (item) {\r\n idx = vm.free_NewJobSelectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.freelancer_Select_All_NewJobs = true;\r\n vm.free_NewJobSelectedItems.push(item);\r\n vm.freelancer_select_single_NewJob.push(\"true\");\r\n }\r\n })\r\n } else {\r\n vm.freelancer_Select_All_NewJobs = false;\r\n vm.freelancer_SelectAllJobs = false;\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n }\r\n }\r\n //$log.log('freelancer_select_single_NewJob', vm.freelancer_select_single_NewJob);\r\n //$log.log('free_NewJobSelectedItems', vm.free_NewJobSelectedItems);\r\n }\r\n\r\n function preprocessData(users) {\r\n if (users && users.length > 0) {\r\n angular.forEach(users, function (user) {\r\n user.locationCount = user.Locations && user.Locations.length > 0 ? user.Locations.length : 0;\r\n user.locationToolTip = \"\";\r\n if (user.locationCount > 0) {\r\n angular.forEach(user.Locations, function (loc) {\r\n user.locationToolTip += loc + \",\";\r\n })\r\n user.locationToolTip = user.locationToolTip.substr(0, user.locationToolTip.length - 1);\r\n }\r\n\r\n user.SkillSetCount = user.SkillSet && user.SkillSet.length > 0 ? user.SkillSet.length : 0;\r\n user.SkillSetToolTip = \"\";\r\n if (user.SkillSetCount > 0) {\r\n angular.forEach(user.SkillSet, function (s) {\r\n user.SkillSetToolTip += s + \",\";\r\n })\r\n user.SkillSetToolTip = user.SkillSetToolTip.substr(0, user.SkillSetToolTip.length - 1);\r\n }\r\n\r\n user.VendorLocationsCount = user.VendorLocations && user.VendorLocations.length > 0 ? user.VendorLocations.length : 0;\r\n user.VendorLocationsToolTip = \"\";\r\n if (user.VendorLocationsCount > 0) {\r\n angular.forEach(user.VendorLocations, function (loc) {\r\n user.VendorLocationsToolTip += loc + \",\";\r\n })\r\n user.VendorLocationsToolTip = user.VendorLocationsToolTip.substr(0, user.VendorLocationsToolTip.length - 1);\r\n }\r\n\r\n user.VendorSkillsetsCount = user.VendorSkillsets && user.VendorSkillsets.length > 0 ? user.VendorSkillsets.length : 0;\r\n user.VendorSkillsetsToolTip = \"\";\r\n if (user.VendorSkillsetsCount > 0) {\r\n angular.forEach(user.VendorSkillsets, function (s) {\r\n user.VendorSkillsetsToolTip += s + \",\";\r\n })\r\n user.VendorSkillsetsToolTip = user.VendorSkillsetsToolTip.substr(0, user.VendorSkillsetsToolTip.length - 1);\r\n }\r\n\r\n // $log.log('ActualRating', user.FirstName + '' + Math.round(user.Ratings))\r\n user.ratingStars = vm.getRatingStars(Math.round(user.Ratings));\r\n user.blankStars = vm.getBlankStars(Math.round(user.Ratings));\r\n // $log.log('ratingStars', user.ratingStars);\r\n //$log.log('blankStars', user.getBlankStars);\r\n user.exp = user.Experience > 0 ? parseFloat(user.Experience / 365).toFixed(1) : 0;\r\n user.checked = false;\r\n });\r\n }\r\n }\r\n\r\n\r\n vm.processBroadcastRouteResponse= function(data){\r\n var SuccessCount = 0;\r\n var failuremsg = '';\r\n\r\n angular.forEach(data, function (res) {\r\n if (res.BroadcastStatus=='Success') {\r\n SuccessCount = SuccessCount + 1; \r\n }\r\n else\r\n {\r\n failuremsg = failuremsg + res.JobId + ' ' + res.BroadcastStatus + ' ';\r\n }\r\n });\r\n\r\n if(SuccessCount > 0 && failuremsg)\r\n {\r\n failuremsg = SuccessCount + ' Jobs routed Successfully ' + failuremsg;\r\n vm.showFailure('Failed',failuremsg);\r\n }\r\n else if(SuccessCount > 0)\r\n {\r\n failuremsg = SuccessCount + ' Jobs routed Successfully ';\r\n vm.showSuccess('Success',failuremsg);\r\n }\r\n else\r\n {\r\n vm.showFailure('Failed',failuremsg);\r\n }\r\n }\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n vm.implementSelectItemsNewJob = function (itemList, scope) {\r\n scope.selectAllNewJob = false;\r\n scope.showMinusNewJob = false;\r\n scope.AutoBroadcastedOnce = true;\r\n scope.selectRowNewJob = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.showMinusNewJob = false;\r\n scope.selectAllNewJob = false;\r\n scope.AutoBroadcastedOnce = true;\r\n angular.forEach(scope[itemList], function (d) {\r\n // //$log.log(d);\r\n if (d.checked) {\r\n scope.showMinusNewJob = true;\r\n if(!d.ShowManualBroadcast){\r\n scope.AutoBroadcastedOnce = d.ShowManualBroadcast;\r\n }\r\n }\r\n });\r\n }\r\n scope.applyAllNewJobSelect = function () {\r\n //$log.log(\"applyAllSelect called\");\r\n angular.forEach(scope[itemList], function (d) {\r\n // //$log.log(d);\r\n d.checked = scope.selectAllNewJob;\r\n });\r\n }\r\n }\r\n\r\n vm.implementSelectItemsNewJob('ticketList', this);\r\n\r\n vm.implementSelectItemsFV = function (itemList, scope) {\r\n scope.selectAllFV = false;\r\n scope.showMinusFV = false;\r\n scope.selectCountFV = 0;\r\n scope.selectRowFV = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.selectCountFV = 0;\r\n scope.showMinusFV = false;\r\n scope.selectAllFV = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n // //$log.log(d);\r\n if (d.checked) {\r\n scope.showMinusFV = true;\r\n scope.selectCountFV++;\r\n }\r\n });\r\n }\r\n scope.applyAllFVSelect = function () {\r\n //$log.log(\"applyAllSelect called\");\r\n angular.forEach(scope[itemList], function (d) {\r\n // //$log.log(d);\r\n d.checked = scope.selectAllFV;\r\n scope.selectCountFV++;\r\n });\r\n }\r\n }\r\n vm.implementSelectItemsFV('FreelancerVendorUsers', this);\r\n\r\n vm.implementSelectItemsFL = function (itemList, scope) {\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n scope.selectRowFL = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.selectCountFL = 0;\r\n scope.showMinusFL = false;\r\n scope.selectAllFL = false;\r\n angular.forEach(vm.UserByFiltersList, function (d) {\r\n // //$log.log(d);\r\n if (d.checked) {\r\n scope.showMinusFL = true;\r\n scope.selectCountFL++;\r\n }\r\n });\r\n }\r\n scope.applyAllFLSelect = function () {\r\n //$log.log(\"applyAllSelect called\");\r\n angular.forEach(scope[itemList], function (d) {\r\n // //$log.log(d);\r\n d.checked = scope.selectAllFL;\r\n scope.selectCountFL++;\r\n });\r\n }\r\n }\r\n vm.implementSelectItemsFL('freelancerUsers', this);\r\n\r\n vm.statusList=[];\r\n vm.UserTypeList = [\"Field Engineer\", \"Freelancer\", \"Vendor\", \"Freelancer Vendor\",\"Supervisor\", \"Private\"];\r\n vm.getJobAllStatus = function () {\r\n JobTicketViewService.getJobAllStatus(loggedinUser, token, function (data) { \r\n angular.forEach(data, function (status) {\r\n if (status.StatusName == 'On Hold') {\r\n status.StatusName = 'Hold'; \r\n }\r\n vm.statusList.push(status.StatusName); \r\n }) \r\n }, vm.showFailure);\r\n }\r\n vm.getJobAllStatus();\r\n $scope.slideF = function(){ \r\n document.getElementById(\"myNav\").style.height = \"86%\";\r\n }\r\n $scope.slideSendAndRecieveBid = function(){ \r\n document.getElementById(\"SendAndRecieveBid\").style.width = \"25%\";\r\n }\r\n vm.closeSendAndRecieveBid = function(){ \r\n document.getElementById(\"SendAndRecieveBid\").style.width = \"0%\";\r\n }\r\n vm.closeSlide = function(){ \r\n document.getElementById(\"myNav\").style.height = \"0%\";\r\n }\r\n vm.FilterArray = function () { \r\n itemNames = '';\r\n itemValues = '';\r\n templateItemNames = '';\r\n templateItemValues = '';\r\n if (vm.skillsSearch != \"\") { \r\n itemNames = 'Skill';\r\n itemValues = vm.skillsSearch.join(\"|\"); \r\n } \r\n if (vm.locationSearch != \"\")\r\n {\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Circle';\r\n itemValues = itemValues + ',' + vm.locationSearch.join(\"|\");\r\n }else{\r\n itemNames = 'Circle';\r\n itemValues = vm.locationSearch.join(\"|\");\r\n } \r\n }\r\n // if (vm.locationSearch != \"\")\r\n // { \r\n // itemNames = 'Circle';\r\n // itemValues = vm.locationSearch;\r\n // } \r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } \r\n }\r\n \r\n \r\n textItemNames = '';\r\n textItemValues = ''; \r\n if(vm.searchText.length>0)\r\n {\r\n itemNames = 'Search';\r\n itemValues = vm.searchText;\r\n templateItemNames = '';\r\n templateItemValues = ''; \r\n textItemNames = '';\r\n textItemValues = '';\r\n } \r\n }\r\n\r\n vm.UsersFilterArray = function()\r\n {\r\n uitemNames=\"\";\r\n uitemValues=\"\";\r\n if (vm.skillsSearch != \"\") { \r\n uitemNames = 'SkillSet';\r\n uitemValues = vm.skillsSearch.join(\"|\"); \r\n } \r\n if (vm.locationSearch != \"\")\r\n {\r\n if(uitemNames.length > 0 && uitemValues.length > 0){\r\n uitemNames = uitemNames + ',Locations';\r\n uitemValues = uitemValues + ',' + vm.locationSearch.join(\"|\");\r\n }else{\r\n uitemNames = 'Locations';\r\n uitemValues = vm.locationSearch.join(\"|\");\r\n } \r\n }\r\n if(vm.UsersType==\"Field Engineer\")\r\n {\r\n if(uitemNames.length > 0 && uitemValues.length > 0){\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + ',' + \"Field Engineer\";\r\n }else{\r\n uitemNames = 'Role';\r\n uitemValues = \"Field Engineer\";\r\n } \r\n vm.uType=\"Fixed\";\r\n }\r\n if(vm.UsersType==\"Freelancer\")\r\n {\r\n if(uitemNames.length > 0 && uitemValues.length > 0){\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + ',' + \"Field Engineer\";\r\n }else{\r\n uitemNames = 'Role';\r\n uitemValues = \"Field Engineer\";\r\n } \r\n vm.uType=\"Freelancer\";\r\n }\r\n if(vm.UsersType==\"Vendor\")\r\n {\r\n if(uitemNames.length > 0 && uitemValues.length > 0){\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + ',' + \"Vendor Manager\";\r\n }else{\r\n uitemNames = 'Role';\r\n uitemValues = \"Vendor Manager\";\r\n } \r\n vm.uType=\"Fixed\";\r\n }\r\n if(vm.UsersType==\"Freelancer Vendor\")\r\n {\r\n if(uitemNames.length > 0 && uitemValues.length > 0){\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + ',' + \"Vendor Manager\";\r\n }else{\r\n uitemNames = 'Role';\r\n uitemValues = \"Vendor Manager\";\r\n } \r\n vm.uType=\"Freelancer\";\r\n }\r\n if(vm.UsersType==\"Private\")\r\n {\r\n if(uitemNames.length > 0 && uitemValues.length > 0){\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + ',' + \"Private\";\r\n }else{\r\n uitemNames = 'Role';\r\n uitemValues = \"Private\";\r\n } \r\n vm.uType=\"Private\";\r\n }\r\n if(vm.UsersType==\"Supervisor\")\r\n {\r\n if(uitemNames.length > 0 && uitemValues.length > 0){\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + ',' + \"Supervisor\";\r\n }else{\r\n uitemNames = 'Role';\r\n uitemValues = \"Supervisor\";\r\n } \r\n vm.uType=\"Fixed\";\r\n } \r\n if(vm.searchUsersText.length>0)\r\n {\r\n if(uitemNames.length > 0 && uitemValues.length > 0){\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + ',' + vm.searchUsersText;\r\n }else{\r\n uitemNames = 'Search';\r\n uitemValues = vm.searchUsersText;\r\n } \r\n } \r\n }\r\n $scope.totalTableUsers = 0;\r\n $scope.usersTablePerPage = 10; // this should match however many results your API puts on one page\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n \r\n // $scope.UserTablepagination.current= $localStorage.TicketFilterModel?$localStorage.TicketFilterModel.PageIndex:1;\r\n PageIndex=$scope.UserTablepagination.current;\r\n $scope.UserTablepageChanged = function(newPage) { \r\n PageIndex = newPage;\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,newPage,PageSize);\r\n };\r\n\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = 10; // this should match however many results your API puts on one page\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n \r\n // $scope.UserTablepagination.current= $localStorage.TicketFilterModel?$localStorage.TicketFilterModel.PageIndex:1;\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserpageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, uPageIndex, uPageSize);\r\n\r\n };\r\n\r\n //vm.ticketList=[];\r\n \r\n vm.getAllJobTickets = function(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize) { \r\n var templateCols=\"\";\r\n JobTicketViewService.getAllJobTicketsCopy(loggedinUser, startDate, endDate, token, itemNames, itemValues,textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues,vm.DateField,PageIndex,PageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ticketList = resp.data.LightTicketModels;\r\n $scope.totalTableUsers = resp.data.Count;\r\n \r\n\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n $localStorage.TList = vm.ticketList;\r\n $localStorage.AllJobType = vm.searchJobTypeText;\r\n $localStorage.AllJobStatus = vm.searchStatusText;\r\n angular.forEach(vm.ticketList, function (t) {\r\n t.StartTime = moment(t.StartTime, \"YYYY-MM-DDThh:mm:ssZ\");\r\n t.StartTimeD = t.StartTime.format(\"YYYY-MM-DDThh:mm\");\r\n\r\n var today = moment();\r\n var date2 = t.CreationDate;\r\n var duration = today.diff(date2, 'days');\r\n t.Age = duration;\r\n })\r\n \r\n if(vm.ticketList.length < 10)\r\n vm.ticketListLength = $scope.totalTableUsers;\r\n else\r\n vm.ticketListLength = PageIndex * 10;\r\n if(PageIndex==1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex-1) * 10) + 1);\r\n }\r\n\r\n }, function () { \r\n });\r\n \r\n }\r\n vm.UserByFiltersList=[];\r\n vm.GetUserByFiltersWithDynaPage = function(loggedinUser, token, uitemNames, uitemValues, userType, uPageIndex, uPageSize) { \r\n ManualAssignationService.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, userType, vm.DateField, uPageIndex, uPageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserByFiltersList = resp.data.ListUserResponseModel;\r\n $scope.totalUsers = resp.data.Count;\r\n preprocessData(vm.UserByFiltersList);\r\n if(vm.UserByFiltersList.length < 10)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = uPageIndex * 10;\r\n if(uPageIndex==1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex-1) * 10) + 1);\r\n\r\n for(var i=0;ilTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('order', [1, 'desc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n //DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n //DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n //DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable()\r\n ];\r\n\r\n/*\r\n vm.buildTable = function (data) {\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle('')\r\n .notSortable()\r\n .withClass('select-checkbox')\r\n // Need to define the mRender function, otherwise we get a [Object Object]\r\n .renderWith(function() {return '';}),\r\n\r\n DTColumnBuilder.newColumn('UserId').withTitle('ID'),\r\n DTColumnBuilder.newColumn('UserName').withTitle('User Name'),\r\n DTColumnBuilder.newColumn('LeaveDate').withTitle('Leave Date'),\r\n DTColumnBuilder.newColumn('ApplyDate').withTitle('Apply Date'),\r\n DTColumnBuilder.newColumn('Status').withTitle('Status'),\r\n DTColumnBuilder.newColumn('ApproveDate').withTitle('ApproveDate'),\r\n DTColumnBuilder.newColumn('CancelDate').withTitle('CancelDate').notVisible(),\r\n DTColumnBuilder.newColumn('RejectDate').withTitle('RejectDate').notVisible(),\r\n DTColumnBuilder.newColumn('LeaveId').withTitle('LeaveId').notVisible()\r\n ];\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function() { \r\n var defer = $q.defer();\r\n defer.resolve(data);\r\n return defer.promise; \r\n }).withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withButtons([])\r\n .withOption('order', [])\r\n .withSelect({\r\n style: 'os',\r\n selector: 'td:first-child'}); \r\n }\r\n\r\n\r\n \r\n\r\n*/\r\n\r\n\r\n \r\n }\r\n});\nangular.module('inspinia').service('LoadBalancerService', function (ApiURL, DashboardURL, $window, $http) {\r\n\r\n // this.GetKPITargetsForMonth = function (month, year, loggedInUserId, token) {\r\n // var url = DashboardURL + '/api/AccountKPI/GetKPITargetsAsDepartmentTypeForMonth?TargetMonth=' + month + '&TargetYear=' + year;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n // }\r\n // });\r\n // }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('LoadBalancerController', function (LoadBalancerService, ManualAssignationJobService, $resource, UIURL, $log, $q, $state, $localStorage, $scope, ReferService, $uibModal, $timeout) {\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\t$scope.isCollapsed = true;\r\n\r\n\t\tvm.GetKPITargetsForMonth = function () {\r\n\t\t\tLoadBalancerService.GetKPITargetsForMonth($scope.selectedMonth, $scope.selectedYear, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.AllKPIData = resp.data.accountVerticalKPITargets;\r\n\t\t\t\t\tvm.AllRestKPIData = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.loadbalancer = function () {\r\n\t\t\tvm.loadBalancer = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'loadbalancer.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeloadbalancer = function() {\r\n\t\t\tvm.loadBalancer.close();\r\n\t\t}\r\n\t\tvm.OpenUploadKPIModel = function () {\r\n\t\t\tvm.ReadyToRaiseModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ReadyToRaiseModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeReadyToRaiseModal = function () {\r\n\t\t\tvm.showPassed = false;\r\n\t\t\tvm.showErrors = false;\r\n\t\t\tvm.errorList = [];\r\n\t\t\tvm.ReadyToRaiseModal.close();\r\n\t\t}\r\n\r\n\t\tfunction getAllStates() {\r\n\t\t\tvar defered = $q.defer();\r\n\t\t\tReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tdefered.resolve(resp);\r\n\t\t\t}, function (error) {\r\n\t\t\t\tdefered.reject(error);\r\n\t\t\t});\r\n\t\t\treturn defered.promise;\r\n\t\t}\r\n\r\n\t\tvar allStatePromise = getAllStates(loggedinUser);\r\n\t\tallStatePromise.then(function (resp) {\r\n\t\t\tvm.StateList = resp.data;\r\n\r\n\t\t});\r\n\t\tfunction getallCities(state) {\r\n\t\t\tReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t\t\tvm.CityList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.selectedState = function (state) {\r\n\t\t\tgetallCities(state);\r\n\t\t}\r\n\t\tvm.getAllAccounts = function () {\r\n\t\t\tManualAssignationJobService.getAllAccounts(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.HDAllAccounts = resp.data;\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.getAllAccounts();\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('LeaderBoardService', function (DashboardURL, SchedulingAPI, $window,$localStorage, $http) {\r\n\r\n this.GetLeaderboardDetails = function (month,year,token) {\r\n var url = DashboardURL + '/api/Dashboard/GetLeaderboardDetails?month='+ month +'&year=' + year;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('LeaderBoardController', function (LeaderBoardService, $state, $localStorage, $scope, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.showInfo = $scope.$parent.$parent.main.showInfo;\r\n\t\tvar today = new Date();\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t$scope.months = [\r\n\t\t\t{ name: 'January', value: 1 },\r\n\t\t\t{ name: 'February', value: 2 },\r\n\t\t\t{ name: 'March', value: 3 },\r\n\t\t\t{ name: 'April', value: 4 },\r\n\t\t\t{ name: 'May', value: 5 },\r\n\t\t\t{ name: 'June', value: 6 },\r\n\t\t\t{ name: 'July', value: 7 },\r\n\t\t\t{ name: 'August', value: 8 },\r\n\t\t\t{ name: 'September', value: 9 },\r\n\t\t\t{ name: 'October', value: 10 },\r\n\t\t\t{ name: 'November', value: 11 },\r\n\t\t\t{ name: 'December', value: 12 }\r\n\t\t];\r\n\t\t$scope.years = Array.from({ length: 10 }, function (_, i) {\r\n\t\t\treturn today.getFullYear() - i;\r\n\t\t});\r\n\r\n\t\t$scope.selectedYear = today.getFullYear();\r\n\t\t$scope.selectedMonth = $scope.months[today.getMonth()].value;\r\n\r\n\t\t$scope.$watchGroup(['selectedYear', 'selectedMonth'], function (newValues, oldValues) {\r\n\t\t\tif (!angular.equals(newValues, oldValues)) {\r\n\t\t\t\tvm.GetLeaderboardDetails(newValues[1], newValues[0]);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\tvm.GetLeaderboardDetails = function (month, year) {\r\n\t\t\tLeaderBoardService.GetLeaderboardDetails(month, year, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.LeadersData = resp.data;\r\n\t\t\t\t\tvm.listTopPerformer = resp.data.listTopPerformer;\r\n\t\t\t\t\tvm.listHighestTakeRate = resp.data.listHighestTakeRate;\r\n\t\t\t\t\tvm.listHighestProfit = resp.data.listHighestProfit;\r\n\t\t\t\t\tvm.listBestTeam = resp.data.listBestTeam;\r\n\t\t\t\t\tvm.listHighestJobs = resp.data.listHighestJobs;\r\n\t\t\t\t\tvm.listHighestMMFRevenue = resp.data.listHighestMMFRevenue;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetLeaderboardDetails($scope.selectedMonth, $scope.selectedYear);\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('KPIconfigurationService', function (ApiURL, DashboardURL, $window, $http) {\r\n\r\n this.GetKPITargetsForMonth = function (month, year, loggedInUserId, token) {\r\n var url = DashboardURL + '/api/AccountKPI/GetKPITargetsAsDepartmentTypeForMonth?TargetMonth=' + month + '&TargetYear=' + year;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('KPIconfigurationController', function (KPIconfigurationService, $resource, UIURL, $log, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\t$scope.months = [\r\n\t\t\t'January', 'February', 'March', 'April',\r\n\t\t\t'May', 'June', 'July', 'August',\r\n\t\t\t'September', 'October', 'November', 'December'\r\n\t\t];\r\n\r\n\t\tvar currentYear = new Date().getFullYear();\r\n\t\tvar startYear = 2017;\r\n\r\n\t\t$scope.years = [];\r\n\t\tfor (var i = currentYear; i >= startYear; i--) {\r\n\t\t\t$scope.years.push(i);\r\n\t\t}\r\n\r\n\t\tvar currentDate = new Date();\r\n\t\t$scope.selectedMonth = $scope.months[currentDate.getMonth()];\r\n\t\t$scope.selectedYear = currentYear;\r\n\r\n\t\tvm.GetKPITargetsForMonth = function () {\r\n\t\t\tKPIconfigurationService.GetKPITargetsForMonth($scope.selectedMonth, $scope.selectedYear, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.AllKPIData = resp.data.accountVerticalKPITargets;\r\n\t\t\t\t\tvm.AllRestKPIData = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t$scope.serialNumber = 1;\r\n\r\n\t\t$scope.updateDate = function () {\r\n\t\t\tif ($scope.selectedYear === currentYear) {\r\n\t\t\t\t$scope.months = $scope.months.slice(0, currentDate.getMonth() + 1);\r\n\t\t\t\tif ($scope.months.indexOf($scope.selectedMonth) === -1) {\r\n\t\t\t\t\t$scope.selectedMonth = $scope.months[0];\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t$scope.months = [\r\n\t\t\t\t\t'January', 'February', 'March', 'April',\r\n\t\t\t\t\t'May', 'June', 'July', 'August',\r\n\t\t\t\t\t'September', 'October', 'November', 'December'\r\n\t\t\t\t];\r\n\t\t\t\t$scope.selectedMonth = $scope.months[0];\r\n\t\t\t}\r\n\t\t\tvm.GetKPITargetsForMonth();\r\n\t\t};\r\n\r\n\t\t$scope.updateDate();\r\n\r\n\t\tvm.dzOptions = {\r\n\t\t\tparamName: 'photo',\r\n\t\t\tmaxFilesize: '100',\r\n\t\t\turl: '/',\r\n\t\t\tacceptedFiles: '.xlsx, .xls',\r\n\t\t\tdictDefaultMessage: 'Click to add or drop files',\r\n\t\t\tdictRemoveFile: 'Remove'\r\n\t\t};\r\n\r\n\t\tvm.OpenUploadKPIModel = function () {\r\n\t\t\tvm.ReadyToRaiseModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ReadyToRaiseModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeReadyToRaiseModal = function () {\r\n\t\t\tvm.showPassed = false;\r\n\t\t\tvm.showErrors = false;\r\n\t\t\tvm.errorList = [];\r\n\t\t\tvm.ReadyToRaiseModal.close();\r\n\t\t}\r\n\t\tvm.scrollDwn = function () {\r\n\t\t\t$(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n\t\t}\r\n\t\tvm.dzCallbacks = {\r\n\t\t\t'addedfile': function (file) {\r\n\t\t\t\tvm.showErrors = false;\r\n\t\t\t\tvm.errorList = [];\r\n\t\t\t\tvm.disableUploadButton = true;\r\n\t\t\t\tvm.InvoiceList = [];\r\n\r\n\t\t\t\t$(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n\t\t\t\t$(\".bulkupload-progress\").width(0);\r\n\t\t\t\t$(\".ajax-loader\").hide();\r\n\t\t\t\tvm.progressbar.reset();\r\n\t\t\t\tvm.progressbar.start();\r\n\t\t\t\tvm.showPassed = false;\r\n\t\t\t\tvm.canceler = $q.defer();\r\n\t\t\t\tvm.successTitle = \"\";\r\n\t\t\t\tvm.successMsg = \"\";\r\n\t\t\t\tvm.noOfRecords = 0;\r\n\r\n\t\t\t\tvar dropzoneChildren = $(\"#dropzone1\").children();\r\n\t\t\t\t$(\"#dropzone1\").empty();\r\n\t\t\t\t$(\"#dropzone1\").append(dropzoneChildren[0]);\r\n\t\t\t\t$(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n\t\t\t\tvm.loaderFlag = true;\r\n\t\t\t\tvm.hideLoader();\r\n\t\t\t\tvm.tickedfile = file;\r\n\t\t\t\tvar fd = new FormData();\r\n\t\t\t\tfd.append('file', file);\r\n\t\t\t\t$http.post(ApiURL + '/api/BulkUpload/MediaUpload?reqUserId=' + loggedInUserId + '&action=Create', fd, {\r\n\t\t\t\t\ttransformRequest: angular.identity,\r\n\t\t\t\t\theaders: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUserId },\r\n\t\t\t\t\ttimeout: vm.canceler.promise\r\n\t\t\t\t})\r\n\t\t\t\t\t.success(function (data) {\r\n\t\t\t\t\t\t$(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\t\tif (vm.bulkuploadType == 'Ticket') {\r\n\t\t\t\t\t\t\tvm.InvoiceList = data.BulkInvoiceGenerateModel;\r\n\t\t\t\t\t\t\tvm.noOfRecords = data.BulkInvoiceGenerateModel ? data.BulkInvoiceGenerateModel.length : 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t$(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n\t\t\t\t\t\tif (data.Errors.length > 0) {\r\n\t\t\t\t\t\t\tvm.dtColumnDefs = [\r\n\t\t\t\t\t\t\t\tDTColumnDefBuilder.newColumnDef(0).notSortable()\r\n\t\t\t\t\t\t\t];\r\n\t\t\t\t\t\t\tangular.forEach(data.Errors, function (v, k) {\r\n\r\n\t\t\t\t\t\t\t\tif (v.ItemErrors.length > 0) {\r\n\t\t\t\t\t\t\t\t\tvar e1 = {};\r\n\t\t\t\t\t\t\t\t\tangular.forEach(v.ItemErrors, function (v1, k1) {\r\n\t\t\t\t\t\t\t\t\t\te1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tif (v.Row > 0 && data.BulkInvoiceGenerateModel && data.BulkInvoiceGenerateModel.length > 0 && data.BulkInvoiceGenerateModel.length >= v.Row) {\r\n\t\t\t\t\t\t\t\t\t\te1.data = data.BulkInvoiceGenerateModel[v.Row - 1];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tvm.errorList.push(e1);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tvm.showPassed = true;\r\n\t\t\t\t\t\t\tvm.disableUploadButton = true;\r\n\t\t\t\t\t\t\tvm.successTitle = \"Invalid records!\";\r\n\t\t\t\t\t\t\tvm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n\t\t\t\t\t\t\tvm.noMsg = [];\r\n\t\t\t\t\t\t\tvm.showErrors = true;\r\n\t\t\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t\t} else if (data.ErrorCode == 103) {\r\n\t\t\t\t\t\t\tvm.showPassed = true;\r\n\t\t\t\t\t\t\tvm.disableUploadButton = true;\r\n\t\t\t\t\t\t\tvm.successTitle = \"Missing columns in excel file\";\r\n\t\t\t\t\t\t\tvm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n\t\t\t\t\t\t\tvm.noMsg = [];\r\n\t\t\t\t\t\t\tangular.forEach(data.MissingColumns, function (k, v) {\r\n\t\t\t\t\t\t\t\tvm.noMsg.push(k);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t\t} else if (data.Message && data.Message.length > 0) {\r\n\r\n\t\t\t\t\t\t\tvm.showPassed = true;\r\n\t\t\t\t\t\t\tvm.disableUploadButton = true;\r\n\t\t\t\t\t\t\tvm.successTitle = \"Validation failed\";\r\n\t\t\t\t\t\t\tvm.successMsg = data.Message\r\n\t\t\t\t\t\t\tvm.noMsg = [];\r\n\t\t\t\t\t\t\tangular.forEach(data.MissingColumns, function (k, v) {\r\n\t\t\t\t\t\t\t\tvm.noMsg.push(k);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvm.showPassed = true;\r\n\t\t\t\t\t\t\tvm.disableUploadButton = false;\r\n\t\t\t\t\t\t\tvm.successTitle = \"File Validated\";\r\n\t\t\t\t\t\t\tvm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are validated successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found.\";\r\n\t\t\t\t\t\t\tvm.noMsg = [];\r\n\t\t\t\t\t\t\t$(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t$(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n\t\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.error(function (errorMessage) {\r\n\t\t\t\t\t\t$(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n\t\t\t\t\t\tvm.progressbar.complete();\r\n\t\t\t\t\t\tvm.successTitle = \"Validation of records failed\";\r\n\t\t\t\t\t\tvm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n\t\t\t\t\t\t$(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\t\t\t\t\t});\r\n\r\n\t\t\t},\r\n\t\t\t'success': function (file, xhr) {\r\n\t\t\t},\r\n\t\t\t'error': function (file, errorMessage) {\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvm.addFiles = function () {\r\n\t\t\t$(\"#dropzone1\").trigger(\"click\");\r\n\t\t}\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('KPIAdvancedDashboardService', function (ApiURL, PublicApiURL, $log, $http, DashboardURL, ActivityURL) {\r\n \r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n \r\n vm.getDashboard = function (loggedinUser, dashbardName, token, callback) {\r\n $http.get(DashboardURL+'/api/Dashboard/'+loggedinUser+'/'+ dashbardName + '/GetDashboardByName', {\r\n headers: {'Token': token, 'UserId': loggedinUser}\r\n }).then(function(res){\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.getChart = function (loggedinUser, chartType, metrics, dimensions, token, callback) {\r\n $http.get(DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP=null', {\r\n headers: {'Token': token, 'UserId': loggedinUser}\r\n }).then(function (res) {\r\n if (callback && (res.status == 200)) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n this.getSkills = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n\r\n this.getAccounts = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get accounts\");\r\n });\r\n }\r\n\r\n this.GetKPIAccounts = function (businessunit,vertical,month,year,loggedinUser, token, callback, failure) {\r\n var url = DashboardURL + '/api/AccountKPI/GetAccounts?BusinessUnit=' + businessunit + '&Vertical=' + vertical + '&TargetMonth=' + month +'&TargetYear=' + year;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get accounts\");\r\n });\r\n }\r\n\r\n this.getBusinessUnits = function (vertical,loggedinUser, token, callback, failure) {\r\n // var url = ApiURL + '/api/accountConfig/GetAllEnterpriseType';\r\n var url = DashboardURL + '/api/AccountKPI/GetBusinessUnits?BusinessUnit=' +vertical;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get business units\");\r\n });\r\n }\r\n\r\n this.GetVerticals = function (loggedinUser, token, callback, failure) {\r\n var url = DashboardURL + '/api/AccountKPI/GetVerticals';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get verticals\");\r\n });\r\n }\r\n\r\n\r\n this.getAllState = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n } \r\n });\r\n }\r\n\r\n this.getDistrictsByState = function (loggedinUser, token, state, callback, failure) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser }}).then(function (res) {\r\n callback(res.data.values);\r\n }, function () {\r\n failure(\"states\", \"Unable to get district\");\r\n });\r\n }\r\n\r\n this.getCitiesByState = function (loggedinUser, token, state) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n });\r\n }\r\n\r\n vm.getChart1 = function (loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData,total, callback) {\r\n //$log.log(\"in service\", DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP='+rollUp+\"&FilterKeys=\"+filterKeys+\"&FilterValues=\"+filterValues);\r\n $http.get(DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP='+encodeURI(rollUp)+\"&FilterKeys=\"+filterKeys+\"&FilterValues=\"+filterValues+\"&isData=\"+isData+\"&total=\"+total, {headers:{'Token': token, 'UserId': loggedinUser}}).then(function (res) {\r\n if (callback) {\r\n res.data['chartName'] = chartName;\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n});\nangular.module('inspinia').controller('KPIAdvancedDashboardController', function ($state, $stateParams, DTColumnBuilder, $q,$compile, $scope,AdvancedDashboardService, KPIAdvancedDashboardService, CentralHelpdeskConfigService, $stateParams, $q, $log, $localStorage, DTOptionsBuilder, DTColumnDefBuilder, ReportService, $timeout) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n vm.matrixName = '';\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n var token = $localStorage.token;\r\n\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n KPIAdvancedDashboardService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n KPIAdvancedDashboardService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n vm.dashboard_data = {};\r\n vm.metricsCharts = {};\r\n vm.tableCharts = {};\r\n vm.lineCharts = {};\r\n vm.pieCharts = {};\r\n vm.barCharts = {};\r\n vm.stackedCharts ={};\r\n vm.gaugeCharts ={};\r\n vm.deepLink = {};\r\n vm.selectDimension = {};\r\n vm.states = [];\r\n var start_date = '';\r\n vm.BusinessUnit = '';\r\n vm.SelectedVertical = '';\r\n vm.State = '';\r\n vm.Skill = '';\r\n vm.Account = '';\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n var thisFiscalStart = '';\r\n var thisFiscalEnd = '';\r\n var intialLoad = true;\r\n vm.districts = [];\r\n vm.District = '';\r\n //vm.enableFilter = false;\r\n vm.filters = [];\r\n var total = '';\r\n vm.accountListForFilter = \"\";\r\n\r\n if (moment().quarter() === 2) {\r\n thisFiscalStart = moment().month('April').startOf('month');\r\n thisFiscalEnd = moment().add(1, 'year').month('March').endOf('month');\r\n } else {\r\n thisFiscalStart = moment().subtract(1, 'year').month('April').startOf('month');\r\n thisFiscalEnd = moment().month('March').endOf('month');\r\n };\r\n\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()], \r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], \r\n 'Payment week': [moment().startOf('week').isoWeekday(1), moment().endOf('week').isoWeekday(0)], \r\n // 'Last week': [moment().subtract(1, 'weeks').startOf('week').isoWeekday(1), moment().subtract(1, 'weeks').endOf('week').isoWeekday(0)], \r\n // 'This week': [moment().startOf('week'), moment().endOf('week')], \r\n 'This week': [moment().startOf('isoWeek'), moment().endOf('isoWeek')], \r\n 'Last week': [moment().subtract(1, 'weeks').startOf('week'), moment().subtract(1, 'weeks').endOf('week')], \r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n // 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This quater': [moment().startOf('quarter'), moment().endOf('quarter')],\r\n 'Last quater': [moment().subtract(1, 'quarters').startOf('quarter'), moment().subtract(1, 'quarters').endOf('quarter')], \r\n 'This year': [thisFiscalStart, thisFiscalEnd], \r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n vm.navigateToAdvanceDashboard = function (DashboardName) {\r\n $state.go('index.AdvancedDashboard', {\r\n name: DashboardName\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.IsDashboardFilterCheckRun = false;\r\n vm.DateRangeSelectedKey = \"Yesterday\";\r\n vm.ActualSelectedKey = 'Today';\r\n $scope.dateRangeChange = function(ev, picker){\r\n if (picker.chosenLabel == 'Today') {\r\n vm.DateRangeSelectedKey = 'Yesterday';\r\n vm.ActualSelectedKey = 'Today';\r\n } else if (picker.chosenLabel == 'This week') {\r\n vm.DateRangeSelectedKey = 'Last Week';\r\n vm.ActualSelectedKey = 'This Week';\r\n } else if (picker.chosenLabel == 'This month') {\r\n vm.DateRangeSelectedKey = 'Last Month';\r\n vm.ActualSelectedKey = 'This Month';\r\n } else {\r\n vm.DateRangeSelectedKey = picker.chosenLabel;\r\n vm.ActualSelectedKey = 'Custom Range';\r\n }\r\n var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n month = moment(startDate).format('MMMM');\r\n year =moment(startDate).format('YYYY');\r\n var endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n vm.tableCharts = {};\r\n vm.loadSpecificDashboard($stateParams.name);\r\n intialLoad = false;\r\n };\r\n\r\n// $scope.dateRangeChange = function(ev, picker){\r\n// var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n// var endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n \r\n// var duration = picker.endDate.diff(picker.startDate, 'days');\r\n// vm.Age = duration;\r\n// vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n// vm.tableCharts = {};\r\n// if(vm.Age <= 31) {\r\n// vm.loadSpecificDashboard($stateParams.name);\r\n// intialLoad = false;\r\n// }\r\n// else {\r\n// // vm.showFailure(\"Please Select date range within 30 days\");\r\n// alert(\"Please Select date range within 30 days\");\r\n// }\r\n\r\n// };\r\n \r\n $scope.dates = { startDate: thisFiscalStart, endDate: thisFiscalEnd};\r\n vm.rollup = \"Range(\"+thisFiscalStart.format(\"YYYY-MM-DD\")+\"|\"+thisFiscalEnd.format(\"YYYY-MM-DD\")+\")\";\r\n\r\n vm.getSkills = function () {\r\n KPIAdvancedDashboardService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills; \r\n }, vm.showFailure);\r\n } \r\n vm.getSkills();\r\n\r\n\r\n var month = moment().format(\"MMMM\");\r\n var year = moment().format(\"YYYY\");\r\n\r\n\r\n vm.getAccounts = function () {\r\n KPIAdvancedDashboardService.GetKPIAccounts(vm.BusinessUnit,vm.SelectedVertical,month,year,loggedinUser, token, function (accounts) {\r\n vm.accounts = accounts.ActiveAccounts; \r\n var accountIds = []; \r\n angular.forEach(vm.accounts, function(d){\r\n accountIds.push(d.AccountId);\r\n }) \r\n vm.accountListForFilter = accountIds.join('|'); \r\n }, vm.showFailure); \r\n } \r\n vm.getAccounts();\r\n\r\n vm.updateDefaultDateFilter = function( dasahboardFilter){ \r\n if(intialLoad){ \r\n var startDate = '';\r\n var endDate = '';\r\n if(dasahboardFilter && dasahboardFilter.DefaultDateFilter)\r\n { \r\n startDate = $scope.ranges[dasahboardFilter.DefaultDateFilter][0];\r\n endDate = $scope.ranges[dasahboardFilter.DefaultDateFilter][1]; \r\n $scope.dates = { startDate: startDate, endDate: endDate};\r\n month = startDate.format(\"MMMM\");\r\n year = startDate.format(\"YYYY\");\r\n $scope.$broadcast('update.daterangepicker', {date: $scope.dates});\r\n vm.rollup = \"Range(\"+startDate.format(\"YYYY-MM-DD\")+\"|\"+endDate.format(\"YYYY-MM-DD\")+\")\"; \r\n }\r\n }\r\n }\r\n\r\n vm.getBusinessUnits = function () {\r\n vm.BusinessUnit = '';\r\n KPIAdvancedDashboardService.getBusinessUnits(vm.SelectedVertical,loggedinUser, token, function (businessUnits) {\r\n vm.businessUnits = businessUnits;\r\n vm.getAccounts();\r\n }, vm.showFailure);\r\n } \r\n vm.getBusinessUnits();\r\n\r\n vm.GetVerticals = function () {\r\n KPIAdvancedDashboardService.GetVerticals(loggedinUser, token, function (verticals) {\r\n vm.verticalsList = verticals; \r\n }, vm.showFailure);\r\n } \r\n vm.GetVerticals();\r\n\r\n vm.getStates = function () {\r\n KPIAdvancedDashboardService.getAllState(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.states = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n vm.getStates();\r\n\r\n vm.getDistrictByState = function () {\r\n KPIAdvancedDashboardService.getDistrictsByState(loggedinUser, token, vm.State, function (districts) {\r\n vm.districts = districts; \r\n }, vm.showFailure);\r\n }\r\n\r\n vm.getCitiesByState = function () {\r\n KPIAdvancedDashboardService.getCitiesByState(loggedinUser, token, vm.State).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.districts = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n // vm.getCitiesByState();\r\n vm.IsFilterApplied = false;\r\n\r\n vm.Allapplyfilter = function(){\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n if(vm.SelectedVertical != '' && vm.Account == ''){\r\n vm.Account = vm.accountListForFilter;\r\n }\r\n if(vm.BusinessUnit != '' && vm.Account == ''){\r\n vm.Account = vm.accountListForFilter;\r\n }\r\n if(vm.SelectedVertical != '' || vm.Account != '' || vm.BusinessUnit != ''){\r\n vm.IsFilterApplied = true;\r\n }\r\n // prepareFilters('BusinessUnit', vm.BusinessUnit);\r\n // prepareFilters('AccountName', vm.Account);\r\n prepareFilters('AccountId', vm.Account);\r\n // prepareFilters('Skill', vm.Skill);\r\n // prepareFilters('State', vm.State);\r\n // prepareFilters('City', vm.District);\r\n vm.tableCharts = {};\r\n vm.loadSpecificDashboard($stateParams.name); \r\n }\r\n\r\n var prepareFilters = function(filterkey, filervalue){ \r\n if(filervalue)\r\n {\r\n if(vm.filterKeys)\r\n {\r\n vm.filterKeys = vm.filterKeys + ',' + filterkey;\r\n vm.filterValues = vm.filterValues + ',' + filervalue;\r\n }\r\n else\r\n {\r\n vm.filterKeys = filterkey;\r\n vm.filterValues = filervalue;\r\n\r\n }\r\n }\r\n }\r\n\r\n vm.ResetFilter = function(){\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n vm.BusinessUnit = '';\r\n vm.SelectedVertical = '';\r\n vm.Account = '';\r\n vm.Skill = '';\r\n vm.State = '';\r\n vm.District = '';\r\n vm.tableCharts = {};\r\n vm.IsFilterApplied = false;\r\n vm.loadSpecificDashboard($stateParams.name);\r\n }\r\n\r\n\r\n\r\n vm.getChart = function (chartId, chartType, metrics, dimensions, subtitle, YAxis, rollup) {\r\n vm.selectDimension[chartId] = {};\r\n KPIAdvancedDashboardService.getChart1(loggedinUser, token, chartType, metrics, dimensions, rollup, vm.filterKeys, vm.filterValues,\"\",false, total, vm.createCallback(null, [function (data) {\r\n if (chartType == 'Metrics' || chartType == 'OneServMetrics' || chartType == 'metricscompare') {\r\n vm.metricsCharts[chartId] = {};\r\n vm.metricsCharts[chartId].value = data;\r\n vm.metricsCharts[chartId].subtitles = subtitle.split(\",\");\r\n vm.metricsCharts[chartId].ChartId = chartId;\r\n } else if (chartType == 'Table') {\r\n vm.tableCharts[chartId] = {};\r\n vm.tableCharts[chartId].value = data;\r\n vm.tableCharts[chartId].ChartId = chartId;\r\n vm.createTableChart(chartId, data.Categories.length , data); \r\n\r\n //vm.buildColumnBuilder(chartId, data.Categories.length);\r\n } else if (chartType == 'Line') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n } else if (chartType == 'Bar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n }else if (chartType == 'StackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n } else if (chartType == 'Pie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomPie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.pieCharts[chartId].selectedDimension=dimensions;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomLine') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n }else if (chartType == 'CustomBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n }else if (chartType == 'DrillDownBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createDrilledDownBarChart(chartId, YAxis);\r\n }else if (chartType == 'CustomStackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n }\r\n else if (chartType == 'metricskpi') {\r\n vm.gaugeCharts[chartId] = {};\r\n vm.gaugeCharts[chartId].value = data;\r\n vm.gaugeCharts[chartId].selectedRollup = rollup;\r\n vm.createGaugeChart(chartId);\r\n }\r\n }]));\r\n }\r\n\r\n vm.dashboardCallback = vm.createCallback(null, [function (data) {\r\n vm.dashboard_data = data;\r\n\r\n if(data && data.DashboardFilters){\r\n vm.enableFilter = true; \r\n vm.updateDefaultDateFilter(data.DashboardFilters); \r\n //vm.getFilerValues(data.DashboardFilters.FilterList); \r\n }\r\n else\r\n {\r\n vm.enableFilter = false;\r\n vm.updateDefaultDateFilter(null);\r\n } \r\n if (data && data.DashboardFilters && (data.DashboardFilters.DateFilterList == null|| data.DashboardFilters.DateFilterList.length == 0)) {\r\n vm.IsDashboardFilterCheckRun = true;\r\n } \r\n else if (data && data.DashboardFilters && data.DashboardFilters.DateFilterList.length > 0) {\r\n var dateFilterList = data.DashboardFilters.DateFilterList;\r\n var filteredRanges = {};\r\n Object.keys($scope.ranges).forEach(function(key) {\r\n if (dateFilterList.includes(key)) {\r\n filteredRanges[key] = $scope.ranges[key];\r\n }\r\n });\r\n $scope.ranges = filteredRanges;\r\n vm.IsDashboardFilterCheckRun = true;\r\n }\r\n\r\n angular.forEach(data.ChartModel, function (d) {\r\n\r\n if (d.ClickableColumns != null && d.ClickableColumns.length > 0) {\r\n angular.forEach(d.ClickableColumns, function(cl){\r\n if (cl.Link==\"ProjectSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function () { \r\n return \"index.Report({report_name:'ProjectSummary', key:'\"+cl.KeyName+\"'})\";\r\n }\r\n }else if (cl.Link==\"CustomerSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function () { \r\n \r\n return \"index.Report({report_name:'CustomerSummary', key:'\"+cl.KeyName+\"'})\";\r\n }\r\n }else if (cl.Link==\"DashboardReport\") {\r\n \r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function (filterValue,filterName) {\r\n var Keyfilter = cl.KeyName; \r\n \r\n // else\r\n // {\r\n // start_date = vm.rollup;\r\n // }\r\n if (cl.KeyName.indexOf(\"|\")>=0) {\r\n var stringArray = cl.KeyName.split('|');\r\n filterName = stringArray[1];\r\n Keyfilter = stringArray[0];\r\n }\r\n if (filterValue == undefined && filterName ==undefined) {\r\n filterValue = '';\r\n filterName = '';\r\n }\r\n if (d.ChartType == 'Metrics' || d.chartType == 'OneServMetrics' || d.chartType == 'metricscompare') {\r\n //console.log('start_date',start_date);\r\n if (d.Rollups && d.Rollups.length>0) {\r\n angular.forEach(d.Rollups, function(d){\r\n if (d == 'Today') {\r\n var sDate = moment().format(\"YYYY-MM-DD\");\r\n var eDate = moment().format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n }\r\n else if (d == 'Yesterday') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\"; }\r\n else if (d == 'Monthly') {\r\n var sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n var eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n }else if (d == 'Week1') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week1');\r\n }else if (d == 'Week2') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week2');\r\n }else if (d == 'Week3') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week3');\r\n }else if (d == 'Week4') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week4');\r\n }\r\n })\r\n }else{\r\n start_date = vm.rollup;\r\n }\r\n var obj = {\r\n \"report_name\":'LinkTicketReport',\r\n \"key\":Keyfilter,\r\n \"filter_key\":filterName,\r\n \"filter_name\":filterValue,\r\n \"start_date\":start_date,\r\n \"isData\":true\r\n } \r\n return obj;\r\n }else{\r\n return \"index.DashboardReport({report_name:'LinkTicketReport', key:'\"+Keyfilter+\"',filter_key:'\"+filterName+\"', filter_name:'\"+filterValue+\"', start_date:'\"+vm.rollup+\"', isData:'\"+true+\"'})\";\r\n } \r\n }\r\n }else{\r\n \t\t\t\t\t\tif (cl.Link){ \r\n \t\t\t\t\t\t\tvm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function (filterValue,filterName) {\r\n \t\t\t\t\t\t\t\tvar Keyfilter = cl.KeyName; \r\n \t\t\t\t\t\t\t if (cl.KeyName.indexOf(\"|\")>=0) {\r\n \t\t\t\t\t\t\t\t\tvar stringArray = cl.KeyName.split('|');\r\n \t\t\t\t\t\t\t\t\tfilterName = stringArray[1];\r\n \t\t\t\t\t\t\t\t\tKeyfilter = stringArray[0];\r\n \t\t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t\t\tif (filterValue == undefined && filterName ==undefined) {\r\n \t\t\t\t\t\t\t\t\tfilterValue = '';\r\n \t\t\t\t\t\t\t\t\tfilterName = '';\r\n \t\t\t\t\t\t\t\t}\r\n\r\n filterName = filterName + ',' + vm.filterKeys;\r\n filterValue = filterValue + ',' + vm.filterValues;\r\n\r\n\r\n \t\t\t\t\t\t\t\tif (d.ChartType == 'Metrics' || d.chartType == 'OneServMetrics' || d.chartType == 'metricscompare') {\r\n \t\t\t\t\t\t\t\t\t//console.log('start_date',start_date);\r\n \t\t\t\t\t\t\t\t\tif (d.Rollups && d.Rollups.length>0) {\r\n \t\t\t\t\t\t\t\tangular.forEach(d.Rollups, function(d){\r\n \t\t\t\t\t\t\t\t\tif (d == 'Today') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n \t\t\t\t\t\t\t\t\t}\r\n else if (d == 'Yesterday') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Monthly') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week1') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week1');\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week2') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week2');\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week3') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week3');\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week4') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week4');\r\n \t\t\t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t\t\t})\r\n \t\t\t\t\t\t\t\t}else{\r\n \t\t\t\t\t\t\t\t\tstart_date = vm.rollup;\r\n \t\t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t\t\t var obj = { \r\n \t\t\t\t\t\t\t\t\t\t\"report_name\":cl.Link,\r\n \t\t\t\t\t\t\t\t\t\t\"key\":Keyfilter,\r\n \t\t\t\t\t\t\t\t\t\t\"filter_key\":filterName,\r\n \t\t\t\t\t\t\t\t\t\t\"filter_name\":filterValue,\r\n \t\t\t\t\t\t\t\t\t\t\"start_date\":start_date,\r\n \t\t\t\t\t\t\t\t\t\t\"isData\":true\r\n \t\t\t\t\t\t\t\t\t} \r\n \t\t\t\t\t\t\t\t\treturn obj;\r\n \t\t\t\t\t\t\t\t}else{\r\n \t\t\t\t\t\t\t\t\treturn \"index.DashboardReport({report_name:'\" + cl.Link + \"', key:'\"+Keyfilter+\"',filter_key:'\"+filterName+\"', filter_name:'\"+filterValue+\"', start_date:'\"+vm.rollup+\"', isData:'\"+true+\"'})\";\r\n \t\t\t\t\t\t\t\t} \r\n \t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t} \r\n })\r\n }\r\n if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Today\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Yesterday\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week1\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week1\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week2\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week2\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week3\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week3\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week4\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week4\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly-6\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly-6\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Quarterly\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Quarterly\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Monthly\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Today\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Yesterday\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if(d.ChartType == 'CustomBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'DrillDownBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'CustomStackedBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'CustomPie' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }\r\n else {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, vm.rollup);\r\n }\r\n\r\n });\r\n // console.log('vm.deepLink',vm.deepLink);\r\n }])\r\n\r\n vm.GetDateRange = function(month,year,week){\r\n var weeks=[],\r\n firstDate=new Date(year, month, 1),\r\n lastDate=new Date(year, month+1, 0), \r\n numDays= lastDate.getDate();\r\n if (week == 'week1') {\r\n var start=1;\r\n var end=7;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }else if (week == 'week2') {\r\n var start = 8;\r\n var end = 14;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }else if (week == 'week3') {\r\n var start = 15;\r\n var end = 21;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }else if (week == 'week4') {\r\n var start = 22;\r\n var end = numDays;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }\r\n }\r\n\r\n vm.getDashboard = function (name) {\r\n KPIAdvancedDashboardService.getDashboard(loggedinUser, name, token, vm.dashboardCallback);\r\n }\r\n\r\n\r\n vm.loadDefaultDashboard = function(){\r\n if ($stateParams.name == 'account') {\r\n vm.getDashboard('Account Dashboard');\r\n } else if ($stateParams.name == 'accountDetails') {\r\n vm.getDashboard('Account Dashboard');\r\n }else if ($stateParams.name == 'admin') {\r\n vm.getDashboard('Admin Dashboard');\r\n }else if ($stateParams.name == 'manager') {\r\n vm.getDashboard('Manager Dashboard');\r\n }else if ($stateParams.name == 'supervisor') {\r\n vm.getDashboard('Supervisor Dashboard');\r\n }else if ($stateParams.name == 'vendor') {\r\n vm.getDashboard('Vendor Dashboard');\r\n } else {\r\n vm.getDashboard($stateParams.name);\r\n }\r\n }\r\n\r\n vm.loadSpecificDashboard = function(name){\r\n var DashboardListModel = vm.getAccountConfigSetting('DashboardListModel');\r\n var isLoaded = false;\r\n if(DashboardListModel && DashboardListModel.length>0){\r\n angular.forEach(DashboardListModel, function(d){\r\n if(d.DashboardType == name){\r\n vm.getDashboard(d.DashboardName);\r\n isLoaded = true;\r\n }\r\n })\r\n }\r\n if(isLoaded==false){\r\n vm.loadDefaultDashboard(name);\r\n }\r\n }\r\n\r\n vm.loadSpecificDashboard($stateParams.name);\r\n\r\n vm.LinkClick = function(url){\r\n // console.log(url);\r\n var i = vm.deepLink[url]('','');\r\n // console.log('i',i);\r\n var key ='';\r\n var filter_key='';\r\n var filter_name = '';\r\n var start_date='';\r\n var report_name = '';\r\n key = i.key;\r\n report_name = i.report_name;\r\n filter_key = i.filter_key;\r\n filter_name = i.filter_name;\r\n start_date = i.start_date;\r\n // console.log('params',key,report_name,filter_key,filter_name,start_date);\r\n $state.go('index.DashboardReport', {\r\n report_name: report_name,\r\n key: key,\r\n filter_key: filter_key,\r\n filter_name: filter_name,\r\n start_date: start_date,\r\n isData: true\r\n }, \r\n {\r\n reload: true\r\n });\r\n }\r\n \r\n //$log.log(\"$stateParams.name\",$stateParams.name);\r\n\r\n vm.saveRollup = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n if (chartType == 'Line') {\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis); \r\n }else if(chartType == 'Bar'){\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createBarChart(chartId, yAxis); \r\n }else if(chartType == 'CustomLine'){\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n dimensions = vm.lineCharts[chartId].selectedDimension;\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis); \r\n }else if(chartType == 'CustomBar'){\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n //$log.log(\"rollup\", rollup);\r\n if (vm.selectDimension && vm.selectDimension[chartId].dimension.length>0) {\r\n dimensions = vm.selectDimension[chartId].dimension; \r\n }else{\r\n dimensions = vm.lineCharts[chartId].selectedDimension;\r\n } \r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis); \r\n } \r\n }\r\n\r\n vm.ChangeDimensions = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.lineCharts[chartId].selectedDimension = dimensions;\r\n rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n $timeout(function(){\r\n vm.createLineChart(chartId, yAxis);\r\n },1000) \r\n }\r\n\r\n //For CustomPieChart\r\n vm.ChangeDimensionsPie = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.pieCharts[chartId].selectedDimension = dimensions;\r\n // vm.selectDimension[chartId].dimension = dimensions;\r\n //console.log('selectDimension',vm.selectDimension);\r\n // vm.lineCharts[chartId].selectedRollup = rollup;\r\n //rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, \"\");\r\n $timeout(function(){\r\n vm.createPieChart(chartId, yAxis);\r\n },1000)\r\n \r\n }\r\n\r\n //For CustomBarChart\r\n vm.ChangeDimensionsBar = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n // vm.selectDimension[chartId].dimension = dimensions;\r\n //console.log('selectDimension',vm.selectDimension);\r\n // vm.lineCharts[chartId].selectedRollup = rollup;\r\n //rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, \"\");\r\n $timeout(function(){\r\n vm.createBarChart(chartId, yAxis);\r\n },1000)\r\n \r\n }\r\n\r\n //For CustomStackedChart\r\n vm.ChangeDimensionsCustomStackedBar = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.stackedCharts[chartId].selectedDimension = dimensions;\r\n // vm.selectDimension = dimensions;\r\n // console.log('selectDimension',vm.selectDimension);\r\n // vm.lineCharts[chartId].selectedRollup = rollup;\r\n //rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, \"\");\r\n $timeout(function(){\r\n vm.createStackedChart(chartId, yAxis);\r\n },1000)\r\n \r\n }\r\n\r\n vm.isActiveRollbackCustomPie = function(chartId, dimension){\r\n if(vm.pieCharts[chartId] && vm.pieCharts[chartId].selectedDimension){\r\n return vm.pieCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackCustomBar = function(chartId, dimension){\r\n if(vm.barCharts[chartId] && vm.barCharts[chartId].selectedDimension){\r\n return vm.barCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackCustomStackedBar = function(chartId, dimension){\r\n if(vm.stackedCharts[chartId] && vm.stackedCharts[chartId].selectedDimension){\r\n return vm.stackedCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n\r\n vm.isActiveRollbackBar = function(chartId, rollup){\r\n if(vm.barCharts[chartId] && vm.barCharts[chartId].selectedRollup){\r\n return vm.barCharts[chartId].selectedRollup == rollup;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackStackedBar = function(chartId, rollup){\r\n if(vm.stackedCharts[chartId] && vm.stackedCharts[chartId].selectedRollup){\r\n return vm.stackedCharts[chartId].selectedRollup == rollup;\r\n }\r\n return false;\r\n }\r\n\r\n vm.isActiveRollback = function(chartId, rollup){\r\n if(vm.lineCharts[chartId] && vm.lineCharts[chartId].selectedRollup){\r\n return vm.lineCharts[chartId].selectedRollup == rollup;\r\n }\r\n return false;\r\n }\r\n // vm.isActiveRollbackCustome = function(chartId, dimension){\r\n // if(vm.lineCharts[chartId] && vm.lineCharts[chartId].selectedDimension){\r\n // return vm.lineCharts[chartId].selectedDimension == dimension;\r\n // }\r\n // return false;\r\n // }\r\n\r\n vm.createLineChart = function (chartId, yAxis) {\r\n vm.chartOptions = vm.chartOptions ? vm.chartOptions : {};\r\n $timeout(function () {\r\n if (vm.lineCharts[chartId] && vm.lineCharts[chartId].value) {\r\n vm.chartOptions[chartId] = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'line'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n categories: vm.lineCharts[chartId].value.Categories\r\n },\r\n // legend: {\r\n // layout: 'horizontal',\r\n // align: 'left',\r\n // itemWidth: 100,\r\n // verticalAlign: 'bottom',\r\n // //y: 30,\r\n // navigation: {\r\n // activeColor: '#3E576F',\r\n // animation: true,\r\n // arrowSize: 12,\r\n // inactiveColor: '#CCC',\r\n // style: {\r\n // fontWeight: 'bold',\r\n // color: '#333',\r\n // fontSize: '12px'\r\n // }\r\n // }\r\n // },\r\n // legend: {\r\n // align: 'right',\r\n // verticalAlign: 'top',\r\n // layout: 'vertical',\r\n // x: 0,\r\n // y: 100\r\n // },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n },\r\n scrollbar: {\r\n enabled: true\r\n }\r\n },\r\n plotOptions: {\r\n line: {\r\n dataLabels: {\r\n enabled: true\r\n },\r\n enableMouseTracking: true\r\n }\r\n },\r\n series: GetSeries()\r\n\r\n };\r\n function GetSeries(){\r\n\r\n if (vm.lineCharts[chartId].value.Series.length>10) {\r\n \r\n for(var i=0; i10) {\r\n var legend = {\r\n layout: 'horizontal',\r\n align: 'left',\r\n itemWidth: 100,\r\n verticalAlign: 'bottom',\r\n //y: 30,\r\n navigation: {\r\n activeColor: '#3E576F',\r\n animation: true,\r\n arrowSize: 12,\r\n inactiveColor: '#CCC',\r\n style: {\r\n fontWeight: 'bold',\r\n color: '#333',\r\n fontSize: '12px'\r\n }\r\n }\r\n }\r\n vm.chartOptions[chartId].legend = legend;\r\n }\r\n\r\n var chart = new Highcharts.chart(chartId, vm.chartOptions[chartId]);\r\n \r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n }\r\n }, 1000);\r\n }\r\n vm.createBarChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.barCharts[chartId] && vm.barCharts[chartId].value) {\r\n var chartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n // type : 'category',\r\n categories: vm.barCharts[chartId].value.Categories \r\n },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n \r\n }\r\n }\r\n },\r\n \r\n series: vm.barCharts[chartId].value.Series\r\n // drilldown:vm.barCharts[chartId].value.drilldown\r\n \r\n };\r\n \r\n if (chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]) {\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true;\r\n }\r\n \r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 2000);\r\n }\r\n\r\n //Create DrillDown Bar Chart\r\n vm.createDrilledDownBarChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.barCharts[chartId] && vm.barCharts[chartId].value) {\r\n var chartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n type : 'category'\r\n \r\n },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n \r\n }\r\n }\r\n },\r\n \r\n series: vm.barCharts[chartId].value.Series,\r\n drilldown:vm.barCharts[chartId].value.drilldown\r\n \r\n };\r\n \r\n if (chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]) {\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true;\r\n }\r\n \r\n \r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 2000);\r\n }\r\n\r\n //Stacked Chart\r\n vm.createStackedChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.stackedCharts[chartId] && vm.stackedCharts[chartId].value) {\r\n var stackedchartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n categories: vm.stackedCharts[chartId].value.Categories \r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n legend: {\r\n\r\n reversed: true\r\n },\r\n tooltip: {\r\n formatter: function () {\r\n return '' + this.x + '
' +\r\n this.series.name + ': ' + this.y + '
' +\r\n 'Total: ' + this.point.stackTotal;\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n align: 'right',\r\n color: 'black',\r\n x: -10\r\n },\r\n enableMouseTracking: true\r\n },\r\n series: {\r\n\r\n stacking: 'normal'\r\n }\r\n },\r\n series: vm.stackedCharts[chartId].value.Series\r\n };\r\n if (stackedchartData && stackedchartData.series && stackedchartData.series.length>0 && stackedchartData.series[0].data \r\n && stackedchartData.series[0].data.length>0 && stackedchartData.series[0].data[0]) {\r\n stackedchartData.series[0].data[0].sliced=true;\r\n stackedchartData.series[0].data[0].selected=true;\r\n }\r\n \r\n var chart = new Highcharts.chart(chartId, stackedchartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 2000);\r\n }\r\n\r\n vm.createPieChart = function (chartId, title) {\r\n vm.showPieChart = vm.showPieChart || {};\r\n vm.tempShowPieChart = vm.tempShowPieChart || {};\r\n vm.showPieChart[chartId] = true;\r\n $timeout(function () {\r\n vm.tempShowPieChart[chartId] = false;\r\n if (vm.pieCharts[chartId] && vm.pieCharts[chartId].value) {\r\n\r\n for(var i=0; i0){\r\n vm.tempShowPieChart[chartId]=true;\r\n }\r\n }\r\n vm.showPieChart[chartId]=vm.tempShowPieChart[chartId];\r\n var chartData = {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie'\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n title: {\r\n text: ''\r\n },\r\n tooltip: {\r\n headerFormat: ' {series.name} : {point.name}
',\r\n pointFormat: ' {point.name}: {point.y:,.0f}
',\r\n footerFormat: ' Percentage : {point.percentage:,.1f}% ', shared: true, useHTML: true\r\n //pointFormat: '{series.name}: {point.y:.1f}%'\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n dataLabels: {\r\n enabled: false\r\n },\r\n showInLegend: true\r\n }\r\n },\r\n series: [{\r\n name: title,\r\n colorByPoint: true,\r\n data: vm.pieCharts[chartId].value\r\n }]\r\n };\r\n if(chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]){\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true; \r\n }\r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 1000);\r\n }\r\n\r\n var gaugeInstances = {};\r\n vm.createGaugeChart = function (chartId) {\r\n if (gaugeInstances[chartId]) {\r\n gaugeInstances[chartId].destroy();\r\n }\r\n vm.showGaugeChart = vm.showGaugeChart || {};\r\n vm.tempshowGaugeChart = vm.tempshowGaugeChart || {};\r\n vm.showGaugeChart[chartId] = true;\r\n vm.tempshowGaugeChart[chartId] = false;\r\n \r\n if (vm.gaugeCharts[chartId] && vm.gaugeCharts[chartId].value) {\r\n vm.tempshowGaugeChart[chartId] = true;\r\n vm.showGaugeChart[chartId] = vm.tempshowGaugeChart[chartId];\r\n var label = \"(\" + vm.gaugeCharts[chartId].value[0].AcheivedPercentage + \"% of the target)\";\r\n\r\n // var label = \"Achieved (\" + vm.gaugeCharts[chartId].value[0].AcheivedPercentage + \"% of the target)\";\r\n var chartData = {\r\n id: chartId,\r\n value: vm.gaugeCharts[chartId].value[0].Value,\r\n min: 0,\r\n max: vm.gaugeCharts[chartId].value[0].TargetValue,\r\n decimals: 0,\r\n gaugeWidthScale: 0.6,\r\n pointer: true,\r\n pointerOptions: {\r\n toplength: -15,\r\n bottomlength: 10,\r\n bottomwidth: 12,\r\n color: '#333333',\r\n stroke: '#ffffff',\r\n stroke_width: 3,\r\n stroke_linecap: 'round'\r\n },\r\n customSectors: {\r\n ranges: [{\r\n color: \"#ff3b30\",\r\n lo: 0,\r\n hi: vm.gaugeCharts[chartId].value[0].TargetValue * 0.25\r\n }, {\r\n color: \"#FFA500\",\r\n lo: vm.gaugeCharts[chartId].value[0].TargetValue * 0.25,\r\n hi: vm.gaugeCharts[chartId].value[0].TargetValue * 0.50\r\n }, {\r\n color: \"#eccd28\",\r\n lo: vm.gaugeCharts[chartId].value[0].TargetValue * 0.50,\r\n hi: vm.gaugeCharts[chartId].value[0].TargetValue * 0.75\r\n }, {\r\n color: \"#43bf58\",\r\n lo: vm.gaugeCharts[chartId].value[0].TargetValue * 0.75,\r\n hi: vm.gaugeCharts[chartId].value[0].TargetValue\r\n }]\r\n },\r\n label: label,\r\n labelFontColor: \"#333333\",\r\n labelFontFamily: \"Arial\",\r\n labelFontSize: \"20px\",\r\n textRenderer: function (val) {\r\n return (vm.gaugeCharts[chartId].value[0].ValueType == 'INR'?(vm.gaugeCharts[chartId].value[0].strValue): vm.gaugeCharts[chartId].value[0].Value);\r\n },\r\n };\r\n gaugeInstances[chartId] = new JustGage(chartData);\r\n }\r\n };\r\n\r\n// var intervalId = setInterval(function() {\r\n// gauge.refresh(Math.random() * 1000);\r\n// }, 5000);\r\n\r\n\r\n\r\n $scope.changeFunction = function() {\r\n alert('change');\r\n }\r\n\r\n var makeDynamicTable = function(chartId, dataSet){\r\n\r\n if(dataSet.Values.length >= 10)\r\n {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n }\r\n else\r\n {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('Tfgt')\r\n //.withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n\r\n }\r\n \r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n vm.tableCharts[chartId].dtInstance = {};\r\n vm.tableCharts[chartId].dtColumns = [];\r\n var columnList = Object.keys(dataSet.Categories);\r\n for(var index = 0; index < columnList.length; index++ ){\r\n\r\n var temp = '';\r\n var colunId = columnList[index];\r\n temp = DTColumnBuilder.newColumn(colunId).withTitle(dataSet.Categories[colunId]).renderWith(function(data,type,full,meta){\r\n var colKey = '';\r\n function getKeyByIndex(object, col) {\r\n var colList = Object.keys(object);\r\n colKey = colList[col]; \r\n }\r\n\r\n getKeyByIndex(full,meta.col)\r\n var firstColumntKey = Object.values(full)[0];\r\n var fixedCatogries = Object.values(vm.tableCharts[chartId].value.Categories)[0];\r\n var t = vm.tableCharts[chartId].value.Categories;\r\n var n = t[colKey]; \r\n if(data > 0 && vm.deepLink[n +' '+ vm.tableCharts[chartId].ChartId]){\r\n return \"' + data + \" \";\r\n // return \"\" + data + \" \";\r\n }else{\r\n return \"\"+data+\"\";\r\n }\r\n });\r\n vm.tableCharts[chartId].dtColumns.push(temp);\r\n } \r\n }\r\n \r\n vm.createTableChart = function (chartId, lenth , data) {\r\n makeDynamicTable(chartId, data);\r\n }\r\n\r\n $scope.$on('fullscreen', function () {\r\n setTimeout(function () {\r\n $(element).highcharts().reflow();\r\n }, 0);\r\n }); \r\n\r\n}\r\n});\r\n\nangular.module('inspinia').service('JobListService', function (ApiURL, SchedulingAPI,$log,FreelancerURL, $http, $localStorage, $window, PublicApiURL, ActivityURL) {\r\n\r\n //https://test.mymobiforce.com/coreapi/api/Ticket/GetTicketsbyDateRange?fromDate=asd&toDate=asd&reqUserId=asd&itemNames=asd&itemValues=asd\r\n\r\n/* this.getAllJobTickets = function (supervisorId, startDate, endDate, token, itemNames,itemValues,templateCols) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n*/\r\n//Generate Invoice Preview Via Model \r\nthis.downloadOnSiteReport = function ( loggedInUserId, token,TicketId) { \r\n var url = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n }\r\n \r\n });\r\n}\r\n\r\n this.getAllJobTickets = function (supervisorId, startDate, endDate, token, itemNames,itemValues,templateCols,templateItemNames,templateItemValues, DateField) {\r\n var url = '';\r\n // itemNames = '';\r\n // itemValues = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n\r\n this.getAllJobTicketsCopy = function (supervisorId, startDate, endDate, token, itemNames,itemValues,textItemNames,textItemValues,templateCols,templateItemNames,templateItemValues,DateField,PageIndex,PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRangeWithDynaPaging?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues +'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues+ '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n\r\n // url = https://product.mymobiforce.com/schedulingAPI/api/AutoJobBroadcast/AutoBroadcastAllNewJobsManualMode\r\n this.AutoBroadcastAllNewJobsManualMode = function (loginUserId, token) {\r\n var url = '';\r\n url = SchedulingAPI + '/api/AutoJobBroadcast/AutoBroadcastAllNewJobsManualMode'; \r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n // https://perf.mymobiforce.com/publicapi/api/Report/DownloadAllTicketReport?fromDate=2019-11-28&toDate=2019-11-29&reqUserId=U400000000001&itemNames=SkillSet&itemValues=All%20Job%20Status&templateCols=All%20Source%20Types\r\n this.downloadTicketsReports = function (loggedInUserId, fromDate, toDate,itemNames,itemValues,templateCols) {\r\n var url = PublicApiURL + \"/api/Report/DownloadAllTicketReport?fromDate=\"+fromDate +'&toDate='+toDate + '&reqUserId='+loggedInUserId+ \"&itemNames=\" + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols ;\r\n $window.open(url);\r\n }\r\n this.sendReportToMail = function (loggedInUserId,token, fromDate, toDate,itemNames,itemValues,templateCols) { \r\n var url = ApiURL + \"/api/Report/SendViaMailAllTicketWithTemplateReport?fromDate=\"+fromDate +'&toDate='+toDate + '&reqUserId='+loggedInUserId+ \"&itemNames=\" + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols ;\r\n return $http.get(url,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.getCustomerJobCardbyJobId = function(accountId, jobId, token ,success, failure){\r\n\t\t$http.get(ApiURL+\"/api/GetCustomerJobCardbyJobId/\"+jobId+\"/\"+accountId+\"/GetCustomerJobCardbyJobId\", {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': accountId\r\n }\r\n }).then(function(res){\r\n\t\t\tif(res && res.data && success){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n //http://localhost:56749/api/Ticket/DeleteTicket?UserId=asd&TicketId=asdasd\r\n this.DeleteTickets = function(userId,ticketId,token){\r\n // var url = ApiURL + \"/api/Ticket/DeleteTicket?UserId=\"+userId+ \"&TicketId=\"+ticketId;\r\n // return $http.delete(url,{\r\n // headers:{'Content-Type':'application/json','Token':token}\r\n // })\r\n\r\n return $http({\r\n method: 'DELETE',\r\n url: ApiURL + \"/api/Ticket/DeleteTicket?UserId=\"+userId+ \"&TicketId=\"+ticketId,\r\n data: {\r\n \r\n },\r\n headers: {\r\n 'Content-type': 'application/json', 'Token':token,'UserId': userId\r\n }\r\n })\r\n }\r\n\r\n this.SetTicketExecutionMode = function(reqUserId,mode,ticektIds,token){\r\n var url = ApiURL + \"/api/Ticket/SetTicketExecutionMode?ReqUserId=\" + reqUserId + \"&mode=\" + mode;\r\n return $http.put(url, {\r\n \"tickets\":ticektIds\r\n }, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': reqUserId\r\n }\r\n })\r\n }\r\n\r\n\r\n this.updateStartTime = function (ticketId, userId, startTime, token, success, failure) {\r\n var url = ApiURL + \"/api/Ticket/updatestartdate?requserid=\" + userId + \"&ticketid=\" + ticketId + \"&starttime=\" + encodeURI(startTime.format(\"YYYY-MM-DDThh:mm:ss.SSSZ\"));\r\n $http.put(url, {\r\n \"requserid\": userId,\r\n \"ticketid\": ticketId,\r\n \"starttime\": startTime.format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\")\r\n }, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': userId\r\n }\r\n }).then(function (res) {\r\n if (res) {\r\n success(res);\r\n } else {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n }\r\n }, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n //http://115.124.122.225/coreapi/api/Ticket/setsettlementstatus\r\n // this.updateTicketSettlement = function(data, token, success, failure){\r\n // var url = ApiURL + \"/api/Ticket/setsettlementstatus\"\r\n // $http.put(url, data,{\r\n // headers:{'Content-Type': 'application/json', 'Token': token}\r\n // }).then(success, function(error){\r\n // failure(\"Failed\", \"Job Settlement not updated. Server is not responding correctly.\")\r\n // });\r\n // }\r\n\r\n\r\n this.updateTicketSettlement = function (data, token, loggedInUserId, success, failure) {\r\n \r\n var url = ApiURL + \"/api/Ticket/setsettlementstatus\"\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.ApproveJob = function (data, token, loggedInUserId, success, failure) { \r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.AcceptJob = function (data, token, loggedInUserId, success, failure) { \r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.RejectJob = function (data, token, loggedInUserId, success, failure) { \r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.ConvertToNewJob = function (data, token, loggedInUserId, success, failure) { \r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n ///http://192.168.0.80:92/CoreAPI/api/Ticket/akshit.chauhan%40innotiontech.com/T0000000102/returnticket\r\n this.PullBackTicket = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/returnticket';\r\n return $http.put(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n\r\n //https://test.mymobiforce.com/coreapi/api/Ticket/F00000000000/asdas/ActionByVendor?Action=asdasd\r\n this.ActionByVendor = function(loggedInUserId,ticketIds,action,token){\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/'+ticketIds+'/ActionByVendor?Action='+action;\r\n return $http.put(url,{},{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token':token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n\r\n //http://192.168.0.80:92/Coreapi/api/Ticket/reqUserId/TicketId/HoldingStatus/ticketholding\r\n this.UpdateHoldingStatus = function (loggedInUserId, ticketId, holdingStatus,reason,Remark, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/ticketholding?HoldingStatus=' + holdingStatus +'&Reason=' + reason+ '&Remark='+ Remark;\r\n return $http.put(url,{}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.updateTicket = function (ticket, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket?reqUserId=' + loggedInUserId;\r\n return $http.put(url, ticket, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.getJobAllStatus = function (loggedInUserId, token, success, failure) {\r\n var url = ApiURL + '/api/TicketStatus/' + loggedInUserId + '/GetAllTicketStatus';\r\n $http.get(url, { headers: { 'Token': token, 'UserId': loggedInUserId } }).then(function (res) {\r\n if (res && res.status == 200 && res.data) {\r\n if (success) {\r\n success(res.data);\r\n }\r\n } else if (res && res.data) {\r\n if (failure) {\r\n failure(\"Failed\", res.data);\r\n }\r\n } else {\r\n if (failure) {\r\n failure(\"Failed\", \"Unable to get status list, server is not responding correctly\");\r\n }\r\n }\r\n }, function (err) {\r\n if (failure) {\r\n failure(\"Failed\", \"Unable to get status list, server is not responding correctly\");\r\n }\r\n });\r\n }\r\n\r\n this.downloadMultipleReports = function (loggedInUserId, ticketId, reportMapperId, correlated) {\r\n var url = PublicApiURL + \"/api/Report/\" + ticketId + \"/DownloadReportByTemplateName?reqUserId=\" + loggedInUserId + \"&correlated=\" + (correlated?\"True\":\"False\")\r\n\r\n $window.open(url);\r\n }\r\n\r\n //https://product.mymobiforce.com/publicapi/api/Report/GeneratePdfOnSiteReportForMultipleTickets?TicketIds=T1140000016464_1\r\n this.downloadMultipleReports = function (loggedInUserId, ticketId, reportMapperId, correlated) {\r\n var url = PublicApiURL + \"/api/Report/\" + ticketId + \"/DownloadReportByTemplateName?reqUserId=\" + loggedInUserId + \"&correlated=\" + (correlated?\"True\":\"False\")\r\n\r\n $window.open(url);\r\n }\r\n\r\n\r\n //http://localhost:55238/api/Report/456/DownloadInvoice?reqUserId=123&correlated=True\r\n this.downloadInvoice = function (loggedInUserId, ticketId, correlated) {\r\n var url = PublicApiURL + \"/api/Report/\" + ticketId + \"/DownloadInvoice?reqUserId=\" + loggedInUserId + \"&correlated=\" + (correlated?\"True\":\"False\")\r\n\r\n $window.open(url);\r\n }\r\n\r\n this.getSkills = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n // vm.showSuccess(\"skills\", \"Got skills list\");\r\n }, function () {\r\n failure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n this.TicketFollowUp = function(data,files, token, loggedInUserId, success, failure){ \r\n var formdata = new FormData();\t\t\r\n formdata.append(\"files\", files[0]);\t\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"ActivityModel\", followupdata);\r\n \r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token,'UserId': loggedInUserId }\r\n }).then(success, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n this.TicketFollowUpWithoutDoc = function(data, token, loggedInUserId, success, failure){ \r\n var formdata = new FormData();\t\t\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"ActivityModel\", followupdata);\r\n \r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token,'UserId': loggedInUserId }\r\n }).then(success, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n \r\n this.getBillExpenseByTicketID = function(loggedinUser, ticketID, token){\r\n var url = ApiURL + '/api/Expense/GetByTicketId?ReqUserId=' + loggedinUser + '&TicketId=' +ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.getPdfReport = function(loggedinUser, ticketID, token){\r\n var url = ApiURL + '/api/Report/GeneratePdfReportForApprovedJob?TicketId=' +ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/Ticket/T0000000715%2CT0000000713/F00000000000/GetDataCaptureImagebyTicketId\r\n this.downloadImage = function(loggedInUserId,ticketIDs,token){ \r\n var url = PublicApiURL + \"/api/Report/DownloadDataCaptureInFieldPicture?reqUserId=\" + loggedInUserId + \"&TicketIds=\" + ticketIDs;\r\n $window.open(url);\r\n \r\n }\r\n\r\n this.getAllCustomers = function(loggedInUser,token) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' +loggedInUser;\r\n return $http.get(url,{\r\n headers:{ 'Content-Type' : 'application/json','Token':token,'UserId': loggedInUser }\r\n });\r\n }\r\n\r\n//https://product.mymobiforce.com/coreapi/api/Customer/GetCustomerByAccountId?accountId=114\r\nthis.GetCustomersByAccount = function (loggedinUser, accountId, token) {\r\n var url = ApiURL + '/api/Customer/GetCustomerByAccountId?accountId=' + accountId\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token,'UserId': loggedinUser }\r\n })\r\n}\r\n\r\n this.GetAllProjects = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + loggedinUser + '/GetProjectsByUserId'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token,'UserId': loggedinUser }\r\n })\r\n}\r\n\r\n// https://product.mymobiforce.com/FreelancerAPI/api/FreeLancerUser/F00000001230/U400000000001/byUserIdWithJobCount\r\nthis.getUserProfileData = function (loggedinUser,userid, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userid + '/' + loggedinUser + '/byUserIdWithJobCount'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token,'UserId': loggedinUser }\r\n })\r\n}\r\n\r\n// https://perf.mymobiforce.com/coreapi/api/User/235432432/byUserIdWithJobCount?reqUserId=34234\r\nthis.getFixedUserProfileData = function (loggedinUser,userid, token) {\r\n var url = ApiURL + '/api/User/' + userid + '/byUserIdWithJobCount?reqUserId=' + loggedinUser\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token,'UserId': loggedinUser }\r\n })\r\n}\r\n//https://product.mymobiforce.com/coreapi/api/Ticket/CancelTicket?reqUserId=dfgdfs&TicketId=dfgfdg\r\nthis.CancelTicket = function(loggedInUserId,ticketId, token){\r\n var url = ApiURL + '/api/Ticket/CancelTicket?reqUserId='+loggedInUserId +'&TicketId='+ticketId;\r\n return $http.put(url,null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\nthis.TBCCancelationAudit = function(TBCCancelationModel,ticketId,loggedInUserId, token){\r\n var url = ApiURL + '/api/Ticket/UpdateJobAudit?TicketId='+ticketId +'&AuditValue='+TBCCancelationModel;\r\n return $http.put(url,null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\nthis.GetCSATRatingByTicketID = function (loggedInUserId, ticketId,token) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/'+loggedInUserId+'/'+ticketId+'/GetCSATRatingByTicketID';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\n this.GetCancellationReasons = function (status, loggedInUserId,token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketCancelationReasonController/'+loggedInUserId+'/getCancellationReasons?AtStatus=' + status;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\nthis.UpdateJobServerCancel = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobServerCancel';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\nthis.GetTicketByGeneralSearch = function (SearchText, PageIndex, PageSize,loggedInUserId,token) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketByGeneralSearch?searchText=' + SearchText + '&PageIndex=' + PageIndex+ '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\nthis.AddSiteAuditwithAttachment = function(data, files, token, loggedinUser){ \r\n var formdata = new FormData();\t\t\r\n formdata.append(\"files\", files[0]);\t\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"AuditRequestModel\", followupdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/Upload/PostMediaFileWithAuditObject';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n}\r\n//https://product.mymobiforce.com/coreapi/api/Invoice/GetTicketDataToRaiseInvoice\r\nthis.GetTicketDataToRaiseInvoice = function (loggedinUser, ticketIdList,token) {\r\n var url = ApiURL + '/api/Invoice/GetTicketDataToRaiseInvoice'\r\n return $http.put(url, ticketIdList,{\r\n headers: { 'Content-Type': 'application/json','Token':token,'UserId': loggedinUser }\r\n })\r\n}\r\n\r\n//https://product.mymobiforce.com/coreapi/api/Invoice/MarkTicketsReadyToRaiseInvoice\r\nthis.MarkTicketsReadyToRaiseInvoice = function (loggedinUser, ticketwithLineitemList,token) {\r\n var url = ApiURL + '/api/Invoice/MarkTicketsReadyToRaiseInvoice'\r\n return $http.put(url, ticketwithLineitemList,{\r\n headers: { 'Content-Type': 'application/json','Token':token,'UserId': loggedinUser }\r\n })\r\n}\r\n\r\n //https://product.mymobiforce.com/CoreAPI/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=FollowUp\r\n this.GetReasonsByStatus = function (loggedinUser, token, status) {\r\n var url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus='+status;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n this.ConvertJobIntoNew = function (loggedinUser,ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/ConvertToNewFromBroadcasted'; \r\n return $http.post(url,ticketId, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n});\r\n\nangular.module('inspinia').controller('JobListController', function ($state, PaymentSectionService, $scope,JobListService, CentralHelpdeskConfigService, $rootScope,JobTicketViewService, $stateParams, UIURL, $log, $localStorage, DTOptionsBuilder, ApiURL, DTColumnBuilder, $uibModal, $scope, toaster, $filter, DTColumnDefBuilder, $window, $timeout, PublicApiURL, jobBidCreationService, ImageUrl) {\r\n var vm = this;\r\n\r\n \r\n $scope.toggle = false;\r\n\r\n\r\n\r\n $scope.IsVisible = false;\r\n $scope.ShowHide = function () {\r\n \r\n $scope.IsVisible = $scope.IsVisible ? false : true;\r\n }\r\n\r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n if (!loggedInUserId) {\r\n \r\n $state.go('Login', {\r\n reload: true\r\n });\r\n \r\n } else {\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n var token = $localStorage.token;\r\n vm.Remarks = '';\r\n vm.selectedTemplates = '';\r\n vm.PaymentStatus = '';\r\n vm.SettlementStatus = '';\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n vm.editPermission = false;\r\n vm.ticketList = [];\r\n vm.statusList = [];\r\n vm.reasonsForFU = '';\r\n vm.reasonsForHold = ''; \r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = ''; \r\n vm.primaryHoldReason='';\r\n vm.primaryHoldRemark=''; \r\n // $scope.$parent.$parent.main.implementSelectItems('ticketList', this);\r\n vm.approvalRemark = '';\r\n vm.RejectionRemark = '';\r\n vm.searchText = \"\";\r\n vm.IsSearch = false;\r\n vm.searchStatusText = \"\";\r\n //vm.searchLabText = \"\";\r\n vm.HDAllAccounts = [];\r\n vm.searchJobTypeText = \"\";\r\n vm.SearchByAccountName = \"\";\r\n vm.DateField=\"StatusChangedOn\";\r\n vm.CustomerList = [];\r\n vm.ProjectList = [];\r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByCName = '';\r\n vm.JobcountbyStatus=\"\";\r\n vm.previousPage = $localStorage.previousPage;\r\n vm.autoScheduleOn = $localStorage.accountConfig.IsAutoSchedulerOn;\r\n var approveModalInstance = {};\r\n var supervisorId = $localStorage.loggedInUserId;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.loggedInAs = $localStorage.loggedinAs;\r\n //$log.log(\"role\", vm.Role);\r\n vm.aproveMessage = 'Please Rate !';\r\n var itemNames = '';\r\n var itemValues = '';\r\n var templateItemNames = '';\r\n var templateItemValues = '';\r\n var textItemNames = '';\r\n var textItemValues = '';\r\n var PageIndex = 1;\r\n var PageSize = 10; \r\n vm.IsSafetyAudit = 'Not Done'; \r\n vm.ratingwarning=\"\";\r\n vm.ticketListLength=0;\r\n vm.pageindexCount=0;\r\n vm.SiteAuditFileName=\"\";\r\n vm.TicketDataToRaiseInvoiceList = []; \r\n vm.IsLoadSucessfull=false;\r\n \r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n vm.path = \"\";\r\n vm.path = $rootScope.rootScopeMessage;\r\n \r\n if (vm.path == 'NewJobDetailsCopy') {\r\n \r\n vm.searchJobTypeText = $localStorage.AllJobType;\r\n vm.searchStatusText = $localStorage.AllJobStatus;\r\n var data = $localStorage.TicketFilterModel;\r\n \r\n if(data){\r\n vm.SearchByPName = data.JobProject;\r\n vm.SearchByTName = data.JobTName;\r\n vm.SearchByDiscription = data.JobDesc;\r\n vm.SearchByIs = data.JobId;\r\n vm.searchJobTypeText = data.JobType;\r\n vm.searchStatusText = data.JobStatus;\r\n vm.DateField = data.JobDType;\r\n PageIndex = data.PageIndex;\r\n vm.ticketdates = { startDate: data.JobSDate, endDate: data.JobEDate };\r\n \r\n }\r\n \r\n \r\n }\r\n \r\n if (vm.path == 'isTicketView') {\r\n var startDate = $localStorage.SDate;\r\n var endDate = $localStorage.EDate;\r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n } else {\r\n var startDate = $localStorage.SDate?$localStorage.SDate: moment().subtract(1, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = $localStorage.EDate? $localStorage.EDate: moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n // $scope.dates = { startDate: moment().subtract(1, 'day'), endDate: moment() };\r\n }\r\n\r\n $scope.totalTableUsers = 0;\r\n $scope.usersTablePerPage = 10; // this should match however many results your API puts on one page\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n \r\n $scope.UserTablepagination.current= $localStorage.TicketFilterModel?$localStorage.TicketFilterModel.PageIndex:1;\r\n PageIndex=$scope.UserTablepagination.current;\r\n $scope.UserTablepageChanged = function(newPage) { \r\n PageIndex = newPage;\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,newPage,PageSize);\r\n };\r\n\r\n \r\n vm.ResetFilter = function(){\r\n vm.searchStatusText = \"\";\r\n vm.searchLabText = \"\";\r\n vm.searchJobTypeText = \"\";\r\n vm.DateField=\"StatusChangedOn\"; \r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByCName = ''; \r\n vm.SearchByAccountName = ''; \r\n //vm.CustomerList = [];\r\n //vm.ProjectList = [];\r\n vm.ProjectListByCustomer=[];\r\n PageIndex=1;\r\n PageSize=10;\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\r\n }\r\n vm.FilterArray = function () {\r\n \r\n itemNames = '';\r\n itemValues = '';\r\n templateItemNames = '';\r\n templateItemValues = '';\r\n if (vm.searchJobTypeText) { \r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText.join(\"|\"); \r\n } \r\n if (vm.searchStatusText && vm.searchStatusText != \"\")\r\n { \r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText.join(\"|\");\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText.join(\"|\");\r\n }\r\n } \r\n if(vm.JobcountbyStatus)\r\n {\r\n itemNames = 'Status';\r\n itemValues = vm.JobcountbyStatus;\r\n }\r\n\r\n if(vm.SearchByAccountName)\r\n {\r\n if(itemNames){\r\n itemNames = itemNames + ',AccountName';\r\n itemValues = itemValues + ',' + vm.SearchByAccountName;\r\n }else{\r\n itemNames = 'AccountName';\r\n itemValues = vm.SearchByAccountName;\r\n }\r\n }\r\n\r\n if(vm.SearchByCName){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',CustomerName';\r\n itemValues = itemValues + ',' + vm.SearchByCName;\r\n }else{\r\n itemNames = 'CustomerName';\r\n itemValues = vm.SearchByCName;\r\n }\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',ProjectName';\r\n itemValues = itemValues + ',' + vm.SearchByPName;\r\n }else{\r\n itemNames = 'ProjectName';\r\n itemValues = vm.SearchByPName;\r\n }\r\n }\r\n textItemNames = '';\r\n textItemValues = '';\r\n if(vm.SearchByIs){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'CorelationValue';\r\n textItemValues = vm.SearchByIs;\r\n }else{\r\n textItemNames = textItemNames + ',CorelationValue';\r\n textItemValues = textItemValues + ',' + vm.SearchByIs;\r\n }\r\n \r\n }\r\n if(vm.SearchByDiscription){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'JobDescription';\r\n textItemValues = vm.SearchByDiscription;\r\n }else{\r\n textItemNames = textItemNames + ',JobDescription';\r\n textItemValues = textItemValues + ',' + vm.SearchByDiscription;\r\n }\r\n }\r\n if(vm.SearchByTName){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'UserName';\r\n textItemValues = vm.SearchByTName;\r\n }else{\r\n textItemNames = textItemNames + ',UserName';\r\n textItemValues = textItemValues + ',' + vm.SearchByTName;\r\n }\r\n }\r\n if(vm.searchText)\r\n {\r\n itemNames = 'Search';\r\n itemValues = vm.searchText;\r\n templateItemNames = '';\r\n templateItemValues = ''; \r\n textItemNames = '';\r\n textItemValues = '';\r\n } \r\n }\r\n // No Need to change\r\n vm.CommonFunToGetAllJob = function(){\r\n vm.FilterArray(); \r\n var templateCols=\"\"; \r\n JobTicketViewService.downloadTicketsReports(supervisorId, startDate, endDate, itemNames, itemValues,templateCols);\r\n }\r\n vm.MailReport = function(){\r\n vm.FilterArray(); \r\n var templateCols=\"\"; \r\n JobListService.sendReportToMail(loggedInUserId, token,startDate, endDate, itemNames, itemValues,templateCols).then(function (resp) { \r\n if (resp && resp.data) { \r\n if(resp.status==200)\r\n {\r\n vm.showSuccess(\"Success\", resp.data);\r\n }\r\n } \r\n else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n } \r\n }, function () { \r\n });;\r\n }\r\n\r\n vm.getAllAccounts = function ( ) {\r\n CentralHelpdeskConfigService.getAllAccounts(loggedInUserId, token).then(function (resp) { \r\n if (resp && resp.data) { \r\n if(resp.status==200)\r\n {\r\n vm.HDAllAccounts = resp.data;\r\n\r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n\r\n vm.getAllAccounts(); \r\n\r\n vm.Allapplyfilter = function(){\r\n vm.searchText='';\r\n $scope.$broadcast('update.daterangepicker', {date: vm.ticketdates}); \r\n $scope.UserTablepagination = {}; \r\n vm.FilterArray(); \r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues,templateItemNames, templateItemValues,PageIndex,PageSize);\r\n \r\n } \r\n vm.getAllCustomer = function(){ \r\n JobTicketViewService.getAllCustomers(supervisorId,token).then(function(resp){\r\n vm.CustomerList = resp.data;\r\n })\r\n } \r\n vm.getAllProject= function(){ \r\n JobTicketViewService.GetAllProjects(supervisorId,token).then(function(resp){\r\n vm.ProjectList = resp.data;\r\n })\r\n }\r\n //vm.getAllCustomer();\r\n //vm.getAllProject();\r\n\r\n vm.GetCustomerByAccount=function()\r\n { var SelectedAccountId = ''; \r\n angular.forEach(vm.HDAllAccounts, function (account) {\r\n if (account.AccountName==vm.SearchByAccountName) {\r\n SelectedAccountId = account.AccountId; \r\n }\r\n })\r\n JobListService.GetCustomersByAccount(loggedInUserId,SelectedAccountId,token).then(function(resp){\r\n vm.CustomerList = resp.data;\r\n })\r\n }\r\n\r\n \r\n vm.GetProjectByCustomer=function()\r\n {\r\n vm.ProjectListByCustomer=[];\r\n angular.forEach(vm.CustomerList, function (customer) {\r\n if (customer.CompanyName==vm.SearchByCName) {\r\n vm.ProjectListByCustomer = customer.Projects;\r\n }\r\n })\r\n }\r\n vm.OpenAutoScheduleConfirmationModal = function () \r\n { \r\n vm.confirmationMessage = 'Do you want to auto schedule the jobs?';\r\n confirmationModalInstance = $uibModal.open({\r\n templateUrl: 'auto_schedule_confirmation_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n \r\n vm.confirmationCloseModal = function () {\r\n confirmationModalInstance.close();\r\n }\r\n vm.AutoScheduleJobs = function () { \r\n JobTicketViewService.AutoBroadcastAllNewJobsManualMode(supervisorId,token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000); \r\n confirmationModalInstance.close(); \r\n vm.showSuccess(\"Success\", \"Jobs has been auto scheduled successfully\");\r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n }, function () { \r\n });\r\n }\r\n vm.SubmitFilter = function () { \r\n $scope.UserTablepagination={}; \r\n vm.searchText='';\r\n var startDate = moment(vm.ticketdates.startDate).format('YYYY-MM-DD');\r\n var endDate = moment(vm.ticketdates.endDate).format('YYYY-MM-DD');\r\n vm.FilterArray(); \r\n PageIndex=1;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n \r\n }\r\n vm.dateRangeChange = function (ev, picker) { \r\n vm.IsSearch = true;\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n vm.ticketdates = { startDate: startDate, endDate: endDate }; \r\n };\r\n \r\n vm.outsidedateRangeChange = function (ev, picker) { \r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.DateField=\"StatusChangedOn\"; \r\n vm.JobcountbyStatus = '';\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\r\n };\r\n vm.getAllJobTicketsCopy = function (supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize) {\r\n vm.FilterArray();\r\n var templateCols=\"\";\r\n PageIndex = PageIndex?PageIndex:1;\r\n vm.DateField = vm.DateField?vm.DateField:\"CreatedOn\";\r\n JobTicketViewService.getAllJobTicketsCopy(supervisorId, startDate, endDate, token, itemNames, itemValues,textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues,vm.DateField,PageIndex,PageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ticketList = resp.data.LightTicketModels;\r\n $scope.totalTableUsers = resp.data.Count;\r\n vm.ApprovedJobCount = resp.data.ApprovedJobCount;\r\n vm.AssignJobCount = resp.data.AssignJobCount;\r\n vm.BroadcastJobCount = resp.data.BroadcastJobCount;\r\n vm.CancelJobCount = resp.data.CancelJobCount;\r\n vm.CompleteJobCount = resp.data.CompleteJobCount;\r\n vm.TotalJobCount = resp.data.TotalJobCount;\r\n vm.HoldJobCount = resp.data.HoldJobCount;\r\n vm.InTransitJobCount = resp.data.InTransitJobCount; \r\n vm.OnSiteJobCount = resp.data.OnSiteJobCount; \r\n vm.InProgressJobCount = resp.data.InProgressJobCount; \r\n vm.NewJobCount = resp.data.NewJobCount;\r\n vm.ReadyToAssigJobCount = resp.data.ReadyToAssigJobCount;\r\n vm.RejectedJobCount = resp.data.RejectedJobCount;\r\n vm.ScheduleExceptionJobCount = resp.data.ScheduleExceptionJobCount;\r\n vm.AddressExceptionCount = resp.data.AddressExceptionCount;\r\n vm.PriceExceptionCount = resp.data.PriceExceptionCount;\r\n vm.BroadcastCountTickets = resp.data.BroadcastCountTickets;\r\n\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n $localStorage.TList = vm.ticketList;\r\n $localStorage.AllJobType = vm.searchJobTypeText;\r\n $localStorage.AllJobStatus = vm.searchStatusText;\r\n angular.forEach(vm.ticketList, function (t) {\r\n t.StartTime = moment(t.StartTime, \"YYYY-MM-DDThh:mm:ssZ\");\r\n t.StartTimeD = t.StartTime.format(\"DD/MM/YYYY LTS\");\r\n })\r\n\r\n if(vm.ticketList.length < 10)\r\n vm.ticketListLength = $scope.totalTableUsers;\r\n else\r\n vm.ticketListLength = PageIndex * 10;\r\n if(PageIndex==1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex-1) * 10) + 1);\r\n }\r\n \r\n }, function () { \r\n });\r\n }\r\n vm.getAllTicketsByStatus = function(status)\r\n {\r\n vm.JobcountbyStatus=status;\r\n //$scope.UserTablepagination={}; \r\n vm.searchText='';\r\n vm.searchJobTypeText = \"\"; \r\n vm.searchStatusText=''; \r\n vm.CustomerList = [];\r\n vm.ProjectList = [];\r\n vm.ProjectListByCustomer=[];\r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByCName = '';\r\n // var startDate = moment(vm.ticketdates.startDate).format('YYYY-MM-DD');\r\n // var endDate = moment(vm.ticketdates.endDate).format('YYYY-MM-DD'); \r\n \r\n vm.FilterArray(); \r\n \r\n PageIndex=1;\r\n /*$scope.UserTablepagination = {\r\n current: 1\r\n };*/\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n \r\n }\r\n vm.Action = function (action) {\r\n \r\n var ticketId = '';\r\n \r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId += t.TicketId + \",\";\r\n }\r\n })\r\n ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n \r\n if (action == 'Accepted') {\r\n vm.editPermission = true;\r\n vm.confirmTagModal(\"Do you want to accept selected ticket's?\", function () {\r\n $log.log('Accept CallBack Call');\r\n JobTicketViewService.ActionByVendor(loggedInUserId, ticketId, action, token).then(function (resp) {\r\n if (resp.status == 202) { \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n vm.actionFlag = false;\r\n vm.showSuccess(\"Success\", \"Selected Jobs has been accepted successfully\");\r\n \r\n } else {\r\n vm.showFailure(\"Failed\", \"Server facing some technical issue, please try again later\");\r\n }\r\n })\r\n })\r\n } else {\r\n vm.editPermission = false;\r\n vm.confirmTagModal(\"Do you want to reject selected ticket's?\", function () {\r\n $log.log('Accept CallBack Call');\r\n JobTicketViewService.ActionByVendor(loggedInUserId, ticketId, action, token).then(function (resp) {\r\n if (resp.status == 202) { \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.actionFlag = false;\r\n }, 1000);\r\n vm.showSuccess(\"Success\", \"Selected Jobs has been rejected successfully\");\r\n \r\n } else {\r\n vm.showFailure(\"Failed\", \"Server facing some technical issue, please try again later\");\r\n }\r\n })\r\n })\r\n }\r\n }\r\n vm.enableFilters = true;\r\n \r\n vm.dtInstance = {}; \r\n vm.searchTable = function () { \r\n vm.FilterArray(); \r\n vm.ResetFilter(); \r\n // vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n \r\n };\r\n \r\n if($localStorage.backToTicketList==\"JobDetailView\")\r\n { \r\n $localStorage.backToTicketList=\"\"; \r\n vm.searchStatusText=$localStorage.TicketFilterModel.JobStatus;\r\n vm.searchJobTypeText=$localStorage.TicketFilterModel.JobType;\r\n vm.SearchByIs=$localStorage.TicketFilterModel.JobId;\r\n vm.SearchByDiscription=$localStorage.TicketFilterModel.JobDesc;\r\n vm.SearchByTName=$localStorage.TicketFilterModel.JobTName;\r\n vm.SearchByCName=$localStorage.TicketFilterModel.JobCustomer;\r\n vm.SearchByPName=$localStorage.TicketFilterModel.JobProject;\r\n vm.DateField=$localStorage.TicketFilterModel.JobDType;\r\n PageIndex=$localStorage.TicketFilterModel.PageIndex;\r\n vm.JobcountbyStatus=$localStorage.TicketFilterModel.JobcountbyStatus;\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n $localStorage.backToTicketList=\"\"; \r\n $localStorage.TicketFilterModel.PageIndex = 1;\r\n \r\n }\r\n else\r\n { \r\n if( typeof $localStorage.TicketFilterModel === \"undefined\" || $localStorage.TicketFilterModel==\"\" || typeof $localStorage.TicketFilterModel.PageIndex === \"undefined\")\r\n PageIndex=1;\r\n\r\n $localStorage.TicketFilterModel = {};\r\n $localStorage.TicketFilterModel.PageIndex = 1;\r\n \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n $localStorage.TicketFilterModel = {};\r\n }\r\n vm.closeSearchText = function()\r\n { \r\n if(vm.searchText!=\"\")\r\n {\r\n vm.searchText=\"\";\r\n vm.ResetFilter();\r\n }\r\n }\r\n vm.ViewJob = function (ticket) { \r\n $localStorage.backToOldJobList = '';\r\n $localStorage.SDate = startDate;\r\n $localStorage.EDate = endDate;\r\n $localStorage.previousPage = 'jobticketcopy';\r\n $localStorage.TicketFilterModel ={\r\n \"JobType\" : vm.searchJobTypeText,\r\n \"JobStatus\" : vm.searchStatusText,\r\n \"JobDType\" : vm.DateField,\r\n \"JobSDate\" : startDate,\r\n \"JobEDate\" : endDate,\r\n \"JobId\" : vm.SearchByIs,\r\n \"JobDesc\" : vm.SearchByDiscription,\r\n \"JobTName\" : vm.SearchByTName, \r\n \"JobCustomer\" : vm.SearchByCName,\r\n \"JobProject\" : vm.SearchByPName,\r\n \"PageIndex\" : PageIndex,\r\n \"JobcountbyStatus\" : vm.JobcountbyStatus\r\n \r\n } ;\r\n // vm.VerticalName == 'Telecom' || vm.VerticalName == 'IMS'\r\n if(vm.VerticalName == 'IMS'){\r\n $state.go('index.JobView', {\r\n ticketId: ticket\r\n }, {\r\n reload: true\r\n });\r\n }else{\r\n $state.go('index.JobDetailView', {\r\n ticketId: ticket\r\n }, {\r\n reload: true\r\n }); \r\n }\r\n \r\n }\r\n\r\n vm.state = {};\r\n var columns = [\r\n {'name': 'field1', 'visible':true},//0\r\n {'name': 'field1', 'visible':true},//1\r\n {'name': 'field1', 'visible':true},//2\r\n {'name': 'field1', 'visible':true},//3\r\n {'name': 'field1', 'visible':true},//4\r\n {'name': 'field1', 'visible':true},//5\r\n {'name': 'field1', 'visible':true},//6\r\n {'name': 'field1', 'visible':true},//7\r\n {'name': 'field1', 'visible':true},//8\r\n {'name': 'field1', 'visible':true},//9\r\n {'name': 'field1', 'visible':true},//10\r\n {'name': 'field1', 'visible':true},//11\r\n {'name': 'field1', 'visible':true},//12\r\n {'name': 'field1', 'visible':true},//13\r\n {'name': 'field1', 'visible':true},//14\r\n {'name': 'field1', 'visible':true},//15\r\n {'name': 'field1', 'visible':true},//16\r\n {'name': 'field1', 'visible':true},//17\r\n {'name': 'field1', 'visible':true},//18\r\n {'name': 'field1', 'visible':true},//19\r\n {'name': 'field1', 'visible':true},//20\r\n {'name': 'field1', 'visible':true},//21\r\n {'name': 'field1', 'visible':true},//22\r\n {'name': 'field1', 'visible':true},//23\r\n {'name': 'field1', 'visible':true},//24\r\n {'name': 'field1', 'visible':true},//25\r\n {'name': 'field1', 'visible':true},//26\r\n {'name': 'field1', 'visible':true},//27\r\n {'name': 'field1', 'visible':true},//28\r\n {'name': 'field1', 'visible':true},//29\r\n {'name': 'field1', 'visible':true},//30\r\n {'name': 'field1', 'visible':true},//31\r\n {'name': 'field1', 'visible':true},//32\r\n {'name': 'field1', 'visible':true},//33\r\n {'name': 'field1', 'visible':true},//34\r\n {'name': 'field1', 'visible':true},//35\r\n {'name': 'field1', 'visible':true},//36\r\n {'name': 'field1', 'visible':true},//37\r\n {'name': 'field1', 'visible':true},//38\r\n {'name': 'field1', 'visible':true},//39\r\n {'name': 'field1', 'visible':true},//40\r\n {'name': 'field1', 'visible':true},//41\r\n {'name': 'field1', 'visible':true},//42\r\n {'name': 'field1', 'visible':true},//43\r\n {'name': 'field1', 'visible':true},//44\r\n {'name': 'field1', 'visible':true},//45\r\n {'name': 'field1', 'visible':true},//46\r\n {'name': 'field1', 'visible':true},//47\r\n {'name': 'field1', 'visible':true},//48\r\n {'name': 'field1', 'visible':true},//49\r\n {'name': 'field1', 'visible':true},//50\r\n {'name': 'field1', 'visible':true},//51\r\n {'name': 'field1', 'visible':true},//52\r\n {'name': 'field1', 'visible':true},//53\r\n {'name': 'field1', 'visible':true},//54\r\n {'name': 'field1', 'visible':true},//55\r\n {'name': 'field1', 'visible':true},//56\r\n {'name': 'field1', 'visible':true},//57\r\n {'name': 'field1', 'visible':true},//58\r\n {'name': 'field1', 'visible':true}//59\r\n ]\r\n\r\n vm.state.columns = columns;\r\n \r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n .withPaginationType('full_numbers').withOption('lengthChange', false)\r\n .withOption('paging', false)\r\n .withOption('bInfo',false)\r\n .withOption('order', []);\r\n\r\n\r\n vm.dtColumnDefs = []; \r\n\r\n vm.buildColumnBuilder = function (){\r\n var tablecolumns = [];\r\n for(var index = 0; index < vm.state.columns.length; index++)\r\n {\r\n if( vm.state.columns[index].visible)\r\n {\r\n tablecolumns.push(DTColumnDefBuilder.newColumnDef(index).notSortable());\r\n }\r\n else\r\n {\r\n tablecolumns.push(DTColumnDefBuilder.newColumnDef(index).notSortable().notVisible())\r\n }\r\n }\r\n vm.dtColumnDefs = tablecolumns;\r\n }\r\n\r\n vm.buildColumnBuilder(); \r\n \r\n \r\n // Copied from main controller\r\n vm.implementSelectItems = function (itemList, scope) {\r\n scope.selectAll = false;\r\n scope.showMinus = false;\r\n scope.showAutoSchduleBtn = false;\r\n scope.downloadFlag = false;\r\n scope.downloadReportBtn = false;\r\n scope.deleteFlag = false;\r\n scope.ReadyToRaiseInvoiceFlag = false;\r\n scope.selectRow = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.showMinus = false;\r\n scope.selectAll = false;\r\n scope.showAutoSchduleBtn = false;\r\n scope.downloadFlag = false;\r\n scope.downloadReportBtn = false;\r\n scope.deleteFlag = false;\r\n scope.ReadyToRaiseInvoiceFlag = false;\r\n \r\n for(var j=0;j

\" + vm.name + \"

\" + ' ' + vm.contactnumber);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n \r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n \r\n }\r\n vm.makeJobMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n \r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.customerJobCard.ConsumerName + \"

\" + ' ' + vm.customerJobCard.JobId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.customerJobCard.ConsumerContact);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n \r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n }\r\n //It is used for the distance also \r\n function initMap() {\r\n var pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n pointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n // center = new google.maps.LatLng(51.3, 0.8),\r\n myOptions = {\r\n zoom: 8,\r\n zoomControl: false,\r\n scaleControl: true,\r\n mapTypeControl: false,\r\n streetViewControl: false,\r\n gestureHandling: 'greedy',\r\n // center: center,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n },\r\n \r\n map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n // Instantiate a directions service.\r\n directionsService = new google.maps.DirectionsService,\r\n directionsDisplay = new google.maps.DirectionsRenderer({\r\n map: map\r\n }),\r\n duration = document.getElementById('duration');\r\n distance = document.getElementById('distance');\r\n flightPath = new google.maps.Polyline({\r\n path: [pointA, pointB],\r\n // geodesic: true,\r\n strokeColor: 'red',\r\n });\r\n $scope.InfoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n // click on marker B to get route from A to B\r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n var travelMode = \"DRIVING\";\r\n var icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n }\r\n function calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map) {\r\n var selectedMode = \"DRIVING\";\r\n directionsService.route({\r\n origin: pointA,\r\n destination: pointB,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n travelMode: google.maps.TravelMode[selectedMode]\r\n }, function (response, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n new google.maps.DirectionsRenderer({\r\n map: map,\r\n directions: response,\r\n suppressMarkers: true,\r\n polylineOptions: {\r\n strokeColor: \"#000000\"\r\n }\r\n });\r\n var leg = response.routes[0].legs[0];\r\n //outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n distance.innerHTML = response.routes[0].legs[0].distance.text;\r\n duration.innerHTML = response.routes[0].legs[0].duration.text;\r\n vm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n vm.makeJobMarker(leg.start_location, icons.start, map);\r\n vm.makeUserMarker(leg.end_location, icons.end, map);\r\n } else {\r\n window.alert('Directions request failed due to ' + status);\r\n }\r\n });\r\n }\r\n \r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/JOb_icon.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/delivery-man1.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n /* vm.getReadableDate = function(){\r\n var time = new moment(vm.customerJobCard.JobDateTime, \"YYYY-MM-DDThh:mm:ss\");\r\n return time.format(\"DD MMM YYYY\")+\" at \"+time.format(\"LTS\"); \r\n } */\r\n vm.getCustomerJobCard = function () {\r\n JobTicketViewService.getCustomerJobCardbyJobId(loggedInUserId, vm.trackingTicketId, token, function (data) {\r\n vm.JobLatitude = data.JobLatitude;\r\n vm.JobLongitude = data.JobLongitude;\r\n vm.FELatitude = data.FELatitude;\r\n vm.FELongitude = data.FELongitude;\r\n vm.contactnumber = data.FEContactNumber;\r\n vm.jobtype = data.Description;\r\n vm.name = data.FEName;\r\n // vm.mapMarkers=[];\r\n initMap();\r\n $log.log(\"res of getCustomerJobCard=\" + data);\r\n vm.customerJobCard = data;\r\n if ($localStorage.rateJobParams) {\r\n vm.customerJobCard.userRole = $localStorage.Role;\r\n vm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n vm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n delete $localStorage.rateJobParams;\r\n }\r\n if (data && data.JobStatus == 'PaymentDone') {\r\n \r\n }\r\n }, function () {\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n //}\r\n vm.TicketBreachValueconver = function(TicketBreachValue)\r\n {\r\n var TicketBreachValueInString=\"\"; \r\n if(TicketBreachValue==0)\r\n TicketBreachValueInString = \"Not Breached\";\r\n if(TicketBreachValue==1)\r\n TicketBreachValueInString = \"Breached\";\r\n \r\n return TicketBreachValueInString;\r\n }\r\n vm.OpenTracking = function (ticket) {\r\n vm.trackingTicketId = ticket;\r\n Tracking = $uibModal.open({\r\n templateUrl: 'Tracking.html',\r\n size: 'lg',\r\n scope: $scope,\r\n controller: ModelInstanceOfMap\r\n })\r\n }\r\n vm.CloseTracking = function () {\r\n Tracking.close();\r\n }\r\n \r\n vm.getTemplateCallback = function (templates) {\r\n vm.templateListData = templates;\r\n vm.templateList = [];\r\n angular.forEach(vm.templateListData, function (d) {\r\n if (d.Skill != 'Water Sample Collection') {\r\n vm.templateList.push(d);\r\n }\r\n })\r\n }\r\n vm.OpenApproveModal = function (currentJOb) \r\n { \r\n vm.CurrentJob = currentJOb;\r\n vm.RatingOfTicket = ''; \r\n if(vm.CurrentJob.IsLineItemAvailable==true && vm.CurrentJob.IsDynamicPriceApproved==false){\r\n vm.aproveMessage = 'Please approve dynamic pricing line item under the ticket details section!';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'dynamic_price_approved_model.html',\r\n scope: $scope\r\n });\r\n }\r\n else{\r\n vm.aproveMessage = 'Please Rate !';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'approve_model.html',\r\n scope: $scope\r\n });\r\n } \r\n }\r\n \r\n vm.CloseModal = function () {\r\n approveModalInstance.close();\r\n }\r\n \r\n vm.OpenRescheduleAuditModal = function (currentAuditJOb) \r\n { \r\n vm.CurrentAuditJob = currentAuditJOb;\r\n vm.RatingOfTicket = '';\r\n vm.RescheduleAuditTicketId = vm.CurrentAuditJob.TicketId;\r\n vm.AuditPrimaryReason = vm.CurrentAuditJob.PrimaryReason;\r\n rescheduleAuditModalInstance = $uibModal.open({\r\n templateUrl: 'reschedule_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n \r\n vm.RescheduleAuditCloseModal = function () {\r\n rescheduleAuditModalInstance.close();\r\n }\r\n \r\n vm.JobRescheduleAudit = function()\r\n {\r\n rescheduleAuditModalInstance.close();\r\n JobTicketViewService.TBCCancelationAudit(vm.RescheduleAuditModel,vm.RescheduleAuditTicketId,loggedInUserId,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000); \r\n }\r\n });\r\n }\r\n \r\n\r\n vm.OpenSettlementModal = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n vm.PaymentStatus = '';\r\n vm.Remarks = '';\r\n \r\n settlementModalInstance = $uibModal.open({\r\n templateUrl: 'settlement_model.html',\r\n scope: $scope\r\n });\r\n \r\n }\r\n \r\n vm.SettlementCloseModal = function () {\r\n settlementModalInstance.close();\r\n }\r\n \r\n vm.settlemenTicket = function (status, ticketId, remarks, userId) {\r\n settlementModalInstance.close();\r\n var settlementData = {};\r\n settlementData.PaymentStatus = status;\r\n settlementData.ReqUserId = loggedInUserId;\r\n settlementData.TicketId = ticketId;\r\n settlementData.Remarks = remarks;\r\n settlementData.FEId = userId;\r\n settlementData.Status = \"Done\";\r\n // $log.log('settlementData', settlementData);\r\n JobTicketViewService.updateTicketSettlement(settlementData, token, loggedInUserId, function (res) {\r\n \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job settlement successfully done.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to settlement payment. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n \r\n \r\n vm.DeleteTicket = function () {\r\n var ticketId = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId.push(t.TicketId);\r\n }\r\n })\r\n // ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n \r\n if (ticketId != null && ticketId.length == 1) {\r\n JobTicketViewService.DeleteTickets(loggedInUserId, ticketId, token).then(function (resp) {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n \r\n if (resp && resp.status == 202) {\r\n vm.showSuccess(\"Deleted\", resp.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n \r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"You can delete only one ticket at a time.\");\r\n }\r\n }\r\n \r\n \r\n vm.AutoSchedule = function () {\r\n var ticketId = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId.push(t.TicketId);\r\n }\r\n })\r\n \r\n if (ticketId != null) {\r\n JobTicketViewService.SetTicketExecutionMode(loggedInUserId, \"Auto\", ticketId, token).then(function (resp) {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false; \r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Scheduled Tickets\", resp.data.toString());\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else {\r\n vm.showFailure(\"Failed to schedule tickets\", resp.data.toString());\r\n }\r\n })\r\n } \r\n }\r\n\r\n\r\n \r\n \r\n vm.OpenFollowUpModel = function (ticketId) {\r\n vm.followup = '';\r\n vm.tickId = ticketId;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n }\r\n \r\n vm.CloseFollowUpModel = function () {\r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = '';\r\n vm.primaryHoldReason='';\r\n vm.primaryHoldRemark='';\r\n vm.followFiles = null; \r\n FollowUpModel.close();\r\n }\r\n \r\n vm.RejectJobModel = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n RejectJobModel = $uibModal.open({\r\n templateUrl: 'Rejectjob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n \r\n vm.ConvertToNewJob = function(currentJOb){\r\n \r\n vm.CurrentJob = currentJOb; \r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"New\" \r\n };\r\n JobTicketViewService.ConvertToNewJob(data, token, loggedInUserId, function (res) { \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job converted successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to convert job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n \r\n vm.CloseRejectModel = function () {\r\n RejectJobModel.close();\r\n }\r\n\r\n\r\n //\r\n $scope.attachmentForFollowUp = function(files){\r\n var file = files.files[0]; \r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.msg|\\.pdf|\\.bmp|\\.xps)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.followFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png,.msg,.bmp,xps only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.DocEdit = function(index){\r\n vm.followFiles=null; \r\n }\r\n\r\n vm.GetFollowupReasons = function(){\r\n JobListService.GetReasonsByStatus(loggedInUserId, token, 'FollowUp').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForFU = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetFollowupReasons();\r\n\r\n vm.GetHoldReasons = function(){\r\n JobListService.GetReasonsByStatus(loggedInUserId, token, 'Hold').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForHold = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetHoldReasons();\r\n\r\n\r\n var ModalInstanceCtrlFollowUp = function ($scope, $rootScope, $uibModalInstance) {\r\n vm.updateFollowUpStatus = function () {\r\n var data = {};\r\n data = {\r\n \"userId\": loggedInUserId,\r\n \"dateTime\": \"\",\r\n \"activity\": \"\",\r\n \"action\": \"FOLLOW_UP\",\r\n \"userName\": \"\",\r\n \"ticketId\": vm.tickId,\r\n \"primaryReason\": vm.primaryFollowUpReason,\r\n \"SecondryReason\": \"\",\r\n \"ReasonComment\": vm.primaryFollowUpRemark\r\n }\r\n if(vm.followFiles != null) {\r\n JobListService.TicketFollowUp(data,vm.followFiles, token, loggedInUserId, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.CloseFollowUpModel();\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n else {\r\n JobListService.TicketFollowUpWithoutDoc(data, token, loggedInUserId, function (res) {\r\n if (res) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n }\r\n vm.CloseFollowUpModel();\r\n });\r\n }\r\n }\r\n }\r\n\r\n vm.OpenHoldUpModel = function (ticketId, holdstatus) {\r\n if(holdstatus == 'Unhold')\r\n {\r\n vm.UpdateHoldingStatus(ticketId, holdstatus);\r\n } \r\n else{\r\n vm.tickId = ticketId;\r\n $scope.holdstatus =holdstatus;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'HoldJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n } \r\n }\r\n\r\n vm.UpdateHoldingStatus = function (ticketId, holdingStatus) {\r\n JobListService.UpdateHoldingStatus(loggedInUserId, ticketId, holdingStatus,vm.primaryHoldReason,vm.primaryHoldRemark, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n vm.showSuccess('Job Hold/Unhold Status', 'Job has been updated successfully');\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 2000);\r\n vm.CloseFollowUpModel();\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure('Failed', resp.data.Message);\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000); \r\n } else {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n }\r\n }, function (err) {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n })\r\n }\r\n vm.ApproveJob = function () { \r\n if (vm.RatingOfTicket) {\r\n var jobwinrate = 0.0;\r\n if(vm.Winrate == null || vm.Winrate == 0 || vm.Winrate =='')\r\n jobwinrate = 0.0;\r\n else\r\n jobwinrate = vm.Winrate; \r\n \r\n approveModalInstance.close();\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Approved\",\r\n \"JobWinRate\" : parseFloat(jobwinrate.toFixed(2)),\r\n \"TechnicianRating\": vm.RatingOfTicket.toString(),\r\n \"ApprovalRemark\": vm.approvalRemark.toString(),\r\n \"IsSafetyAudit\":vm.IsSafetyAudit\r\n };\r\n JobTicketViewService.ApproveJob(data, token, loggedInUserId, function (res) { \r\n if(res && res.data==\"Please enter atleast one Line Item to Approve this job \")\r\n {\r\n vm.showFailure(\"Success\", \"Please enter atleast one Line Item to Approve this job.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n }\r\n else if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job approved successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n \r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n } else {\r\n vm.ratingwarning=\"Please rate the technician.\";\r\n //approveModalInstance.close();\r\n }\r\n }\r\n vm.AcceptJob = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Accepted\" \r\n };\r\n JobTicketViewService.AcceptJob(data, token, loggedInUserId, function (res) { \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job accepted successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to accept job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n \r\n vm.reAssignJob = function (currentJOb) {\r\n \r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Assigned\" \r\n };\r\n JobTicketViewService.AcceptJob(data, token, loggedInUserId,function (res) {\r\n \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job reassigned successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to reassign job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n \r\n vm.cloneTicket = function (currentJOb) {\r\n \r\n vm.CurrentJob = currentJOb;\r\n if(vm.VerticalName == 'Telecom')\r\n {\r\n $state.go('index.JobBidCreation', { \r\n cloneticketid:vm.CurrentJob.TicketId \r\n },\r\n {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n }); \r\n }\r\n else\r\n {\r\n $state.go('index.NewJobCreation', { \r\n },\r\n {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n });\r\n \r\n }\r\n \r\n \r\n }\r\n \r\n vm.RejectJob = function () {\r\n if(!vm.RejectionRemark)\r\n {\r\n vm.showFailure(\"Failed\", \"Please comment on rejection.\");\r\n return;\r\n }\r\n RejectJobModel.close(); \r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Rejected\", \r\n \"RejectionRemark\": vm.RejectionRemark.toString()\r\n };\r\n JobTicketViewService.RejectJob(data, token, loggedInUserId, function (res) { \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job rejected successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n \r\n vm.PullBackTicket = function (ticketId) {\r\n JobTicketViewService.PullBackTicket(loggedInUserId, ticketId, token).then(function (resp) {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n })\r\n }\r\n\r\n \r\n vm.downloadReport = function (ticketId, templateName) {\r\n if (templateName == 'Water Testing') {\r\n var urlWithFeasible = PublicApiURL + '/api/Report/' + ticketId + '/DownloadReportByTemplateName?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlWithFeasible, '_blank')\r\n } else {\r\n var urlForNonFeasible = PublicApiURL + '/api/Report/' + ticketId + '/Report?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlForNonFeasible, '_blank')\r\n }\r\n }\r\n\r\n //download PDF \r\n vm.downloadReportPDF = function (ticketId,OnSiteReport) { debugger\r\n if (OnSiteReport != null) { \r\n var urlWithFeasible = PublicApiURL + '/api/Report/GeneratePdfOnSiteReportForMultipleTickets?TicketIds=' + ticketId;\r\n $window.open(urlWithFeasible, '_blank')\r\n } else {\r\n // var urlForNonFeasible = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketIds=' + ticketId;\r\n // $window.open(urlForNonFeasible, '_blank')\r\n vm.downloadOnSiteReport(ticketId);\r\n }\r\n }\r\n\r\n \r\n\t\tvm.pdfimage = \"\";\r\n\t\tvm.DocumentAvailableMessage=\"\";\t\r\n\t\tvm.downloadOnSiteReport = function (ticketId) { debugger\r\n\t\t\tvm.PDFView();\r\n\t\t\t\r\n\t\t\t// var PreviewConsolidatedInvoiceList = previewSelectedObj;\r\n\t\t\tJobTicketViewService.downloadOnSiteReport(loggedInUserId, token, ticketId).then(function (resp) {\r\n\t\t\t\t// var responseDataList=[];\r\n\t\t\t\tvm.responseDataList = resp.data;\r\n\t\t\t\t// for(var i=0; i 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n JobTicketViewService.downloadMultipleReports(loggedInUserId, ticketId, reportMapperId, correlated);\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }\r\n \r\n vm.downloadInvoiceReport = function () {\r\n var ticketId = \"\";\r\n var correlated = $localStorage.accountConfig.CorrelatedReports;\r\n // var reportMapperId = $localStorage.accountConfig.ReportMapperId;\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId += t.TicketId + \",\";\r\n }\r\n })\r\n ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n JobTicketViewService.downloadInvoice(loggedInUserId, ticketId, correlated);\r\n }\r\n \r\n vm.showMultipleDownloadButton = function () {\r\n var ticketSelected = false;\r\n var IsReportMapper = false; \r\n vm.invoiceFlag = false;\r\n vm.deleteFlag = false;\r\n vm.actionFlag = false;\r\n var actionFlagList = [];\r\n var deleteFlagList = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n ticketSelected = ticketSelected || t.checked;\r\n if(t.checked){\r\n if(t.reportMapperId)\r\n {\r\n IsReportMapper = true;\r\n }\r\n else\r\n {\r\n IsReportMapper = false; \r\n }\r\n }\r\n if (vm.Role == 'Vendor Manager') {\r\n if (t.checked && t.SkillSet == 'Water Lab Test' && t.TicketStatus == 'Completed') {\r\n vm.invoiceFlag = true;\r\n } else if (t.checked && t.AcceptDate != null) {\r\n actionFlagList.push(false);\r\n } else if (t.checked && t.AcceptDate == null && t.TicketStatus == 'Rejected') {\r\n actionFlagList.push(false);\r\n } else if (t.checked && t.AcceptDate == null && t.TicketStatus == 'Assigned') {\r\n actionFlagList.push(true);\r\n }\r\n } else {\r\n if (t.checked && t.SkillSet == 'Water Lab Test' && t.TicketStatus == 'Completed') {\r\n vm.invoiceFlag = true;\r\n } else if (t.checked && t.TicketStatus == 'New') {\r\n deleteFlagList.push(true);\r\n // vm.deleteFlag = true;\r\n } else if (t.checked && t.TicketStatus != 'New') {\r\n // vm.deleteFlag = false;\r\n deleteFlagList.push(false);\r\n }\r\n }\r\n \r\n \r\n })\r\n if (deleteFlagList.includes(false)) {\r\n vm.deleteFlag = false;\r\n } else if (deleteFlagList.includes(true)) {\r\n vm.deleteFlag = true;\r\n } if (actionFlagList.includes(false)) {\r\n vm.actionFlag = false\r\n } else {\r\n vm.actionFlag = true;\r\n }\r\n return IsReportMapper && ticketSelected && $localStorage.accountConfig != null && $localStorage.accountConfig.CorrelatedReports != null && $localStorage.accountConfig.ReportMapperId != null;\r\n }\r\n // vm.showInvoiceButton = function () {\r\n // var invoiceFlag = false;\r\n // angular.forEach(vm.ticketList, function (t) {\r\n // if (t.checked && t.SkillSet == 'Water Lab Test' && t.TicketStatus == 'Completed') {\r\n // var invoiceFlag = true;\r\n // return invoiceFlag;\r\n // } \r\n // })\r\n // return invoiceFlag;\r\n // }\r\n \r\n vm.hideSingleDownloadButton = function () {\r\n return $localStorage.accountConfig != null && $localStorage.accountConfig.CorrelatedReports != null && $localStorage.accountConfig.ReportMapperId != null;\r\n }\r\n \r\n vm.getSkills = function () {\r\n JobTicketViewService.getSkills(loggedInUserId, token, function (skills) {\r\n vm.skills = skills;\r\n //vm.skills.unshift({ \"SkillName\": \"All Job Types\" }); \r\n if (vm.path == 'isTicketView') {\r\n vm.searchJobTypeText = $localStorage.AllJobType;\r\n // vm.searchStatusText = $localStorage.AllJobStatus;\r\n } \r\n }, vm.showFailure);\r\n \r\n \r\n \r\n }\r\n vm.getSkills();\r\n \r\n vm.isApprovalPermission = function (defaultValue) {\r\n if (vm.accountConfig && vm.accountConfig['ApprovalPermission'] != null) {\r\n return vm.accountConfig['ApprovalPermission'].split(\",\").indexOf($localStorage.loggedInUser_Role) > -1;\r\n }\r\n return defaultValue;\r\n }\r\n \r\n vm.OpenBillModal = function (ticketId) {\r\n vm.BillDetails = [];\r\n vm.TotalExpense = '';\r\n JobTicketViewService.getBillExpenseByTicketID(loggedInUserId, ticketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n angular.forEach(resp.data, function (d) {\r\n vm.BillDetails = d.Bills;\r\n vm.TotalExpense = d.ExpenseAmount;\r\n })\r\n }\r\n if (vm.TotalExpense != 0) {\r\n BillModal = $uibModal.open({\r\n templateUrl: 'bill_model.html',\r\n scope: $scope\r\n })\r\n }\r\n })\r\n }\r\n \r\n vm.CloseBillModal = function () {\r\n BillModal.close();\r\n }\r\n \r\n vm.getPicUrl = function (pic) {\r\n return ImageUrl + '/' + pic;\r\n }\r\n\r\n vm.ReportpdfUrl = function (ticketId) {\r\n JobTicketViewService.getPdfReport(loggedInUserId, ticketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n const linkSource = resp.data.Base64Data;\r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = resp.data.ReportName;\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n } \r\n })\r\n }\r\n\r\n \r\n vm.reloadData = function(){\r\n var resetPaging = true;\r\n vm.dtInstance.reloadData(resetPaging);\r\n }\r\n //Cancel and clone ticket\r\n vm.CancleAndCloneTicket = function(ticket){\r\n var ticketData = ticket;\r\n $state.go('index.JobBidCreation', { cloneticketid:ticketData.TicketId },\r\n {reload: true,inherit: false,notify: true}); \r\n }\r\n vm.CancelTicket = function(ticketId, currentJOb){\r\n vm.CurrentJob = currentJOb;\r\n vm.RatingOfTicket = '';\r\n vm.AuditTicketId = vm.CurrentJob.TicketId;\r\n if(vm.CurrentJob.TicketStatus==\"Completed\" && vm.CurrentJob.SubStatus ==\"TBC\"){ \r\n vm.PrimaryReason = vm.CurrentJob.PrimaryReason;\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'tbc_confirm_cancelation_model.html',\r\n scope: $scope\r\n });\r\n }\r\n else\r\n {\r\n \r\n vm.IsCancelFromServer = vm.accountConfig.IsCancelFromServer;\r\n if(vm.IsCancelFromServer && (vm.CurrentJob.TicketStatus==\"Assigned\" || vm.CurrentJob.TicketStatus==\"New\")){\r\n JobListService.GetCancellationReasons(vm.CurrentJob.TicketStatus, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.CancellationReasonsList=resp.data;\r\n cancellationReasonsModalInstance = $uibModal.open({\r\n templateUrl: 'cancellation_reasons_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n }, function () { \r\n });\r\n }\r\n else{\r\n JobListService.CancelTicket(loggedinUser,ticketId,token).then(function(res){\r\n if(res.status == 202 && res.statusText =='Accepted'){\r\n vm.showSuccess('Success',res.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000);\r\n }\r\n else if(res.status == 206)\r\n {\r\n vm.showFailure('Failed',res.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000);\r\n }\r\n }); \r\n }\r\n }\r\n }\r\n vm.OpenTicketRatingModal = function (currentTicketJob) \r\n { \r\n \r\n JobTicketViewService.GetCSATRatingByTicketID(loggedInUserId, currentTicketJob.TicketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TicketRatingList=resp.data;\r\n ticketRatingModalInstance = $uibModal.open({\r\n templateUrl: 'ticket_rating_model.html',\r\n scope: $scope\r\n });\r\n }\r\n \r\n }, function () {\r\n \r\n });\r\n } \r\n \r\n \r\n vm.TicketRatingCloseModal = function () {\r\n ticketRatingModalInstance.close();\r\n }\r\n vm.TBCCancelationAudit = function()\r\n {\r\n approveModalInstance.close();\r\n JobTicketViewService.TBCCancelationAudit(vm.TBCCancelationModel,vm.AuditTicketId,loggedInUserId,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000); \r\n }\r\n });\r\n }\r\n vm.CancellationReasonsCloseModal = function () {\r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons=\"\";\r\n vm.CancellationReasonsRemark=\"\";\r\n vm.HintDisplay=\"\";\r\n }\r\n vm.UpdateCancellationReasons = function()\r\n {\r\n \r\n vm.cancellationReasonsForm.submitted = true;\r\n if (vm.cancellationReasonsForm.$valid) {\r\n \r\n var CancellationReasonsModel =\r\n {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"CancelReason\": vm.CancellationReasons,\r\n \"CancelRemark\": vm.CancellationReasonsRemark\r\n }\r\n JobTicketViewService.UpdateJobServerCancel(CancellationReasonsModel,loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(resp.data.Message); \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\r\n // vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n \r\n }, 2000); \r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons=\"\";\r\n vm.CancellationReasonsRemark=\"\";\r\n vm.HintDisplay=\"\";\r\n }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n \r\n vm.ViewProfile = function (UserId,UserType) {\r\n var IsUser = false;\r\n if(UserType && UserType == 'Freelancer'){\r\n JobTicketViewService.getUserProfileData(supervisorId,UserId, token).then(function(res){\r\n if(res.data && res.status == 200){\r\n vm.UserProfileData = res.data;\r\n vm.customerrating = Number(vm.UserProfileData.CustomerRating).toFixed(1);\r\n vm.AddPreferredVendorModal = $uibModal.open({\r\n templateUrl: 'UserProfile.html',\r\n scope: $scope,\r\n windowClass:'schedulerModal',\r\n reload:true\r\n });\r\n }else{\r\n vm.showFailure('Failed',res.data.Message);\r\n }\r\n \r\n });\r\n }else if(UserType && UserType == 'Fixed Team'){\r\n JobTicketViewService.getFixedUserProfileData(supervisorId,UserId, token).then(function(res){\r\n if(res.data && res.status == 200){\r\n vm.UserProfileData = res.data;\r\n vm.AddPreferredVendorModal = $uibModal.open({\r\n templateUrl: 'UserProfile.html',\r\n scope: $scope,\r\n windowClass:'schedulerModal',\r\n reload:true\r\n });\r\n }else{\r\n vm.showFailure('Failed',res.data.Message);\r\n }\r\n \r\n });\r\n }else{\r\n JobTicketViewService.getUserProfileData(supervisorId,UserId, token).then(function(res){\r\n if(res.data && res.status == 200){\r\n vm.UserProfileData = res.data;\r\n if(vm.UserProfileData){\r\n vm.AddPreferredVendorModal = $uibModal.open({\r\n templateUrl: 'UserProfile.html',\r\n scope: $scope,\r\n windowClass:'schedulerModal',\r\n reload:true\r\n });\r\n }else{\r\n vm.showFailure('Failed','User Not found');\r\n }\r\n }else{\r\n vm.showFailure('Failed',res.data.Message);\r\n }\r\n \r\n });\r\n }\r\n \r\n \r\n }\r\n \r\n vm.UserProfileClose = function(){\r\n vm.AddPreferredVendorModal.close();\r\n }\r\n vm.downloadDataCaptureImage = function(){\r\n var ticket = '';\r\n for(var i=0;i (vm.TicketInfo.Courier[key] == null) && delete vm.TicketInfo.Courier[key]));\r\n\t\t\t\t\tif (vm.TicketInfo.Courier) {\r\n\t\t\t\t\t\tvm.SparePartAddress = (Object.values(vm.TicketInfo.Courier)).toString();\r\n\t\t\t\t\t\tvm.SpareTransportType = 'Courier';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else if (vm.TicketInfo.SpareTransportType == '1') {\r\n\t\t\t\t\t// var temp = Object.keys(vm.TicketInfo.PickUp).forEach((key) => (vm.TicketInfo.PickUp[key] == null) && delete vm.TicketInfo.PickUp[key]);\r\n\t\t\t\t\tclean(vm.TicketInfo.PickUp);\r\n\t\t\t\t\tvm.SparePartAddress = (Object.values(vm.TicketInfo.PickUp)).toString();\r\n\t\t\t\t\tvm.SpareTransportType = 'PickUp';\r\n\t\t\t\t} else if (vm.TicketInfo.SpareTransportType == '2') {\r\n\t\t\t\t\tclean(vm.TicketInfo.PickUpDrop.PickUp);\r\n\t\t\t\t\t// var temp = Object.keys(vm.TicketInfo.PickUpDrop.PickUp).forEach((key) => (vm.TicketInfo.PickUpDrop.PickUp[key] == null) && delete vm.TicketInfo.PickUpDrop.PickUp[key]);\r\n\t\t\t\t\tvm.SparePartAddress = (Object.values(vm.TicketInfo.PickUpDrop.PickUp)).toString();\r\n\t\t\t\t\tvm.SpareTransportType = 'PickUpDrop';\r\n\t\t\t\t\tvm.SparePartDropAddress = vm.TicketInfo.PickUpDrop.Address1 + ',' + vm.TicketInfo.PickUpDrop.Address2 + ',' + vm.TicketInfo.PickUpDrop.State + ',' + vm.TicketInfo.PickUpDrop.City + ',' + vm.TicketInfo.PickUpDrop.Pincode;\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.TicketInfo.Template == 'VSAT Troubleshooting' || vm.TicketInfo.Template == 'LeaseLine Troubleshooting') {\r\n\t\t\t\t\t// vm.GetStatusActivityInPie();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.TicketInfo.LinkId) {\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.getAllActivitiesForJob();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tangular.copy(vm.TicketInfo.TemplateModel, vm.TemplateData);\r\n\r\n\t\t\t\tfor (var index = 0; index < vm.TemplateData.SectionList.length; index++) {\t\t\t\t\t\r\n\t\t\t\t\tif (vm.TemplateData.SectionList[index].Action == 'Supervisor' && vm.TemplateData.SectionList[index].SectionName == 'Supervisor') {\r\n\t\t\t\t\t\tvm.SuperVisorData = vm.TemplateData.SectionList[index].ItemList;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//ListFieldSupportTeam \r\n\t\t\t\tfor (var index = 0; index < vm.TicketInfo.ListFieldSupportTeam.length; index++) {\t\t\t\t\t\r\n\t\t\t\t\tif (vm.TicketInfo.ListFieldSupportTeam.length >= 0 ) {\r\n\t\t\t\t\t\tvm.ListOfSupportTeam = vm.TicketInfo.ListFieldSupportTeam;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvm.getCallTypeList(vm.TicketInfo.JobType, vm.SuperVisorData);\r\n\t\t\t\tvm.ListActionWise = SeperateSectionAndItems(vm.TemplateData.SectionList, 'Action');\r\n\r\n\t\t\t\t\r\n\t\t\t\tvm.TicketInfoEdit = {\r\n\t\t\t\t\tConsumerName: vm.TicketInfo.ConsumerName,\r\n\t\t\t\t\tConsumerContact: vm.TicketInfo.ConsumerContact,\r\n\t\t\t\t\tAddress1: vm.TicketInfo.Address1,\r\n\t\t\t\t\tAddress2: vm.TicketInfo.Address2,\r\n\t\t\t\t\tPincode: vm.TicketInfo.Pincode,\r\n\t\t\t\t\t// StartTime: vm.TicketInfo.StartTime,\r\n\t\t\t\t\tPlannedStartDate: vm.TicketInfo.PlannedStartDate,\r\n\t\t\t\t\t// EndTime: vm.TicketInfo.EndTime,\r\n\t\t\t\t\tEndTime: ''\r\n\t\t\t\t}\r\n\t\t\t\tvm.TicketDescEdit = {\r\n\t\t\t\t\tSkillSet: vm.TicketInfo.SkillSet,\r\n\t\t\t\t\tPaymentType: vm.TicketInfo.PaymentType,\r\n\t\t\t\t\tTemplate: vm.TicketInfo.Template,\r\n\t\t\t\t\tJobDescription: vm.TicketInfo.JobDescription,\r\n\t\t\t\t\tPriority: vm.TicketInfo.Priority,\r\n\t\t\t\t\tSiteId: vm.TicketInfo.SiteId,\r\n\t\t\t\t\tSiteName: vm.TicketInfo.SiteName,\r\n\t\t\t\t\tRegion: vm.TicketInfo.Region,\r\n\t\t\t\t\tBidDuration: vm.TicketInfo.BidDuration\r\n\t\t\t\t}\r\n\t\t\t\tvm.getAllStates();\r\n\t\t\t\tif (vm.TicketInfo.State) {\r\n\t\t\t\t\tvm.getCities(vm.TicketInfo.State);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tJobDetailViewNewService.getTemplateByName(vm.TicketInfo.Template, token, loggedinUser,vm.TicketInfo.TicketId, function (data) {\r\n\t\t\t\t\tvm.templateData = data;\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t\tvm.TechnicianSource = vm.TicketInfo.TechnicianSource ? vm.TicketInfo.TechnicianSource : vm.TechnicianSource = '';\r\n\r\n\t\t\t\tvm.showPrefer = 'fixed';\r\n\t\t\t\t// \tvm.GetFixedUser(false);\r\n\t\t\t\t// \tvm.GetNearByUser(false);\r\n\t\t\t\t// vm.GetPreviousWorker(false);\r\n\t\t\t\t// vm.GetTalentPoolUser(false);\r\n\r\n\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.disabledDrop = true;\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.TicketInfo.MetrialDeliverStatus) {\r\n\t\t\t\t\tvm.SelectedMaterial = vm.TicketInfo.MetrialDeliverStatus;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.TechnicianSource == '0' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'fixed';\r\n\t\t\t\t\tvm.showF = true;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetFixedUser(false);\r\n\t\t\t\t} else if (vm.TechnicianSource == '1' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'nearBy';\r\n\t\t\t\t\tvm.showF = false;\r\n\t\t\t\t\tvm.showN = true;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetNearByUser(false);\r\n\t\t\t\t} else if (vm.TechnicianSource == '2' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'true';\r\n\t\t\t\t\tvm.showF = false;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = true;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetTalentPoolUser(true);\r\n\t\t\t\t} else if (vm.TechnicianSource == '3' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'previous';\r\n\t\t\t\t\tvm.showF = false;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = true;\r\n\t\t\t\t\tvm.GetPreviousWorker(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.showF = true;\r\n\t\t\t\t\tvm.showN = true;\r\n\t\t\t\t\tvm.showT = true;\r\n\t\t\t\t\tvm.showP = true;\r\n\t\t\t\t\tvm.GetFixedUser(false);\r\n\t\t\t\t\tvm.GetNearByUser(false);\r\n\t\t\t\t\tvm.GetPreviousWorker(false);\r\n\t\t\t\t\tvm.GetTalentPoolUser(false);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif($localStorage.loggedInUser_Role == 'Vendor Manager'){\r\n\t\t\t\t\tvm.showPrefer = 'fixed';\r\n\t\t\t\t\tvm.showF = true;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetFixedUser(true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// vm.customergetTracking();\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t\r\n\t\tvm.getTicketByJobId();\r\n\r\n\t\tvm.addClassInButton = function () {\r\n\t\t\tif (vm.TechnicianSource && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$('#btnFixedTeam').addClass('activeButton');\r\n\t\t\t\t\t$('#btnNearBy').addClass('activeButton');\r\n\t\t\t\t\t$('#btnTalent').addClass('activeButton');\r\n\t\t\t\t\t$('#btnPrefer').addClass('activeButton');\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.planerDateModal = {};\r\n\t\tvm.editplanCloser = function () {\r\n\t\t\tvm.TicketInfoEdit['PlannedClosureDate'] = vm.TicketInfo.PlannedClosureDate;\r\n\t\t\tvm.planerDateModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editplanerDate.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeplanerDate = function () {\r\n\t\t\tvm.planerDateModal.close();\r\n\t\t}\r\n\r\n\t\tvm.updatePlannedClosure = function () {\r\n\t\t\t\tvm.PlannedClosureticketList = [];\r\n\t\t\t\tvm.PlannedClosureticketList.push(vm.TicketInfo.TicketId);\r\n\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"TicketIds\":vm.PlannedClosureticketList,\r\n\t\t\t\t\t \"TicketPlannedClosureDate\": moment(vm.TicketInfoEdit.PlannedClosureDate).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n\t\t\t\t\t \"IsWithInDays\":vm.IsWithInDays == 'first'?true:false,\r\n \t\t\t\t\t \"WithInDays\": vm.WithInDays,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tJobDetailViewNewService.updatePlannedClosure(loggedinUser, data, token, function (res) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", res);\r\n\t\t\t\t\tvm.planerDateModal.close();\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.jobDescription = {};\r\n\t\tvm.editJobDesc = function () {\r\n\r\n\t\t\tvm.TicketDescEdit['SkillSet'] = vm.TicketInfo.SkillSet;\r\n\t\t\tvm.TicketDescEdit['PaymentType'] = vm.TicketInfo.PaymentType;\r\n\t\t\tvm.TicketDescEdit['Template'] = vm.TicketInfo.Template;\r\n\t\t\tvm.TicketDescEdit['JobDescription'] = vm.TicketInfo.JobDescription;\r\n\t\t\tvm.TicketDescEdit['Priority'] = vm.TicketInfo.Priority;\r\n\t\t\tvm.TicketDescEdit['SiteId'] = vm.TicketInfo.SiteId;\r\n\t\t\tvm.TicketDescEdit['SiteName'] = vm.TicketInfo.SiteName;\r\n\t\t\tvm.TicketDescEdit['Region'] = vm.TicketInfo.Region;\r\n\t\t\tvm.TicketDescEdit['BidDuration'] = vm.TicketInfo.BidDuration;\r\n\r\n\t\t\tvm.jobDescription = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobDescription.html',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\twindowClass: 'schedulerModal'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeJobDesc = function () {\r\n\t\t\tvm.jobDescription.close();\r\n\t\t}\r\n\r\n\t\tvm.updateJobDesc = function () {\r\n\t\t\tvm.jobDescForm.submitted = true;\r\n\t\t\tif (vm.jobDescForm.$valid) {\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t// \"SkillSet\": vm.TicketDescEdit.SkillSet,\r\n\t\t\t\t\t// \"PaymentType\": vm.TicketDescEdit.PaymentType,\r\n\t\t\t\t\t// \"Template\": vm.TicketDescEdit.Template,\r\n\t\t\t\t\t\"JobDescription\": vm.TicketDescEdit.JobDescription,\r\n\t\t\t\t\t\"Priority\": vm.TicketDescEdit.Priority,\r\n\t\t\t\t\t\"SiteId\": vm.TicketDescEdit.SiteId,\r\n\t\t\t\t\t\"SiteName\": vm.TicketDescEdit.SiteName,\r\n\t\t\t\t\t\"TicketId\": vm.TicketInfo.TicketId\r\n\t\t\t\t\t// \"Region\": vm.TicketDescEdit.Region,\r\n\t\t\t\t\t// \"BidDuration\": vm.TicketInfoEdit.BidDuration\r\n\t\t\t\t};\r\n\r\n\t\t\t\tJobDetailViewNewService.updateJobDescription(loggedinUser, data, token, function (res) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", res);\r\n\t\t\t\t\tvm.jobDescription.close();\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t//window.location.reload(true);\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log(\"invalid values\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.jobAddressModal = {};\r\n\t\tvm.editJobAddress = function () {\r\n\r\n\t\t\tvm.TicketInfoEdit['ConsumerName'] = vm.TicketInfo.ConsumerName;\r\n\t\t\tvm.TicketInfoEdit['ConsumerContact'] = vm.TicketInfo.ConsumerContact;\r\n\t\t\tvm.TicketInfoEdit['Address1'] = vm.TicketInfo.Address1;\r\n\t\t\tvm.TicketInfoEdit['Address2'] = vm.TicketInfo.Address2;\r\n\t\t\tvm.TicketInfoEdit['Pincode'] = vm.TicketInfo.Pincode;\r\n\t\t\tvm.TicketInfoEdit['StartTime'] = vm.TicketInfo.StartTime;\r\n\t\t\tvm.TicketInfoEdit['EndTime'] = vm.TicketInfo.EndTime;\r\n\t\t\tvm.TicketInfoEdit['Region'] = vm.TicketInfo.Region;\r\n\t\t\tvm.TicketInfoEdit['SubRegion'] = vm.TicketInfo.SubRegion;\r\n\r\n\t\t\tif (vm.states && !vm.TicketInfoEdit.State || vm.TicketInfoEdit.State != vm.TicketInfo.State) {\r\n\t\t\t\tangular.forEach(vm.states, function (s) {\r\n\t\t\t\t\tif (s == vm.TicketInfo.State) {\r\n\t\t\t\t\t\tvm.TicketInfoEdit.State = s;\r\n\t\t\t\t\t\tvm.getCities(vm.TicketInfo.State);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvm.jobAddressModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAddress.html',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\twindowClass: 'schedulerModal'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeJobAddress = function () {\r\n\t\t\tvm.jobAddressModal.close();\r\n\t\t}\r\n\r\n\t\tvm.updateJobAddress = function () {\r\n\t\t\tvm.jobAddressForm.submitted = true;\r\n\t\t\tif (vm.jobAddressForm.$valid) {\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"ConsumerContact\": vm.TicketInfoEdit.ConsumerContact,\r\n\t\t\t\t\t\"Address1\": vm.TicketInfoEdit.Address1,\r\n\t\t\t\t\t\"Address2\": vm.TicketInfoEdit.Address2,\r\n\t\t\t\t\t\"ConsumerName\": vm.TicketInfoEdit.ConsumerName,\r\n\t\t\t\t\t\"State\": vm.TicketInfoEdit.State,\r\n\t\t\t\t\t\"City\": vm.TicketInfoEdit.City,\r\n\t\t\t\t\t\"Pincode\": vm.TicketInfoEdit.Pincode,\r\n\t\t\t\t\t\"StartTime\": vm.TicketInfoEdit.StartTime,\r\n\t\t\t\t\t\"EndTime\": vm.TicketInfoEdit.EndTime,\r\n\t\t\t\t\t\"Region\": vm.TicketInfo.Region,\r\n\t\t\t\t\t\"SubRegion\": vm.TicketInfo.SubRegion,\r\n\r\n\t\t\t\t};\r\n\r\n\t\t\t\tJobDetailViewNewService.saveTicket(loggedinUser, vm.TicketInfo.TicketId, data, token, function (res) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", res);\r\n\t\t\t\t\tvm.jobAddressModal.close();\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t//window.location.reload(true);\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log(\"invalid values\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//call customer or freelancer\r\n\t\tvm.callToCustomer = function (TicketId,ConnectTo) { \r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"ConnectTo\": ConnectTo,\r\n\t\t\t\t\t\"TicketId\": TicketId\r\n\t\t\t\t\t};\r\n\t\t\t\tJobDetailViewNewService.callToCustomer(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t});\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\tvm.ClickToCallAlternate = function (TicketId,ConnectTo) { \r\n\t\t\tvar data = {\r\n\t\t\t\t\"ConnectTo\": ConnectTo,\r\n\t\t\t\t\"TicketId\": TicketId\r\n\t\t\t\t};\r\n\t\t\t\tJobDetailViewNewService.ClickToCallAlternate(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t});\r\n\t\t\r\n\t}\r\n\r\n\t\tvm.jobPayment = {};\r\n\t\tvm.editJobPayment = function () {\t\t\r\n\t\t\tvm.TicketInfoEdit['FreelancerRate'] = vm.TicketInfo.FreelancerRate;\r\n\t\t\tvm.TicketInfoEdit['MobiforceCommission'] = vm.TicketInfo.MobiforceCommission;\r\n\t\t\tvm.TicketInfoEdit['BroadcastRate'] = vm.TicketInfo.BroadcastRate;\t\t\t\r\n\t\t\tvm.serviceType=vm.TicketInfo.PaymentType;\t\t\t\r\n\t\t\tvm.jobPaymentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobPayment.html',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\twindowClass: 'schedulerModal'\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tvm.calculatePrice();\r\n\t\t\tvm.calculateFreelancerPrice ();\r\n\t\t}\r\n\r\n\t\tvm.closeJobPayment = function () {\r\n\t\t\tvm.jobPaymentModal.close();\r\n\t\t}\r\n\t\tvm.updateJobPayment = function () {\r\n\t\t\t\r\n\t\t\tvm.jobPaymentForm.submitted = true;\r\n\t\t\tif (vm.jobPaymentForm.$valid) {\r\n\t\t\t\t// var data = {\r\n\t\t\t\t// \t\"FreelancerRate\": vm.TicketInfoEdit.FreelancerRate,\r\n\t\t\t\t// \t\"BroadcastRate\": vm.TicketInfoEdit.BroadcastRate,\r\n\t\t\t\t// \t\"BroadcastGrossRate\": (vm.TicketInfoEdit.BroadcastRate * ((vm.GSTPercentange+100)*.01))\t\t\t\r\n\t\t\t\t// };\r\n\t\t\t\tJobDetailViewNewService.UpdateJobPayment(loggedinUser, vm.TicketInfo.TicketId, vm.TicketInfoEdit.BroadcastRate, token, function (res) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", res);\r\n\t\t\t\t\tvm.jobPaymentModal.close();\r\n\t\t\t\t\t//window.location.reload(true);\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t} else {\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.getAllStates = function () {\r\n\t\t\tJobDetailViewNewService.getAllState(loggedinUser,token).then(function (resp) {\r\n\t\t\t\tvm.states = resp.data;\r\n\t\t\t\tangular.forEach(vm.states, function (s) {\r\n\t\t\t\t\tif (s == vm.TicketInfo.State) {\r\n\t\t\t\t\t\tvm.TicketInfoEdit.State = s;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.getCities = function (state) {\r\n\t\t\tif (state != \"\" && state.length > 0) {\r\n\t\t\t\tvm.cities = [];\r\n\t\t\t\tJobDetailViewNewService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n\t\t\t\t\tvm.cities = resp.data;\r\n\t\t\t\t\tangular.forEach(vm.cities, function (c) {\r\n\t\t\t\t\t\tif (vm.TicketInfo.City) {\r\n\t\t\t\t\t\t\tvar city = vm.TicketInfo.City.toUpperCase();\r\n\t\t\t\t\t\t\tif (c == city) {\r\n\t\t\t\t\t\t\t\tvm.TicketInfoEdit.City = c;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.history = {};\r\n\t\tvm.getHistory = function () {\r\n\t\t\tJobDetailViewNewService.getHistory(vm.TicketId, token).then(function (res) {\r\n\t\t\t\tvm.history = res.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.getHistory();\r\n\r\n\t\tvm.getAllActivitiesForJob = function () {\r\n\t\t\tJobDetailViewNewService.getAllActivitiesForJob(vm.TicketId, loggedinUser, token, function (data) {\r\n\t\t\t\tvm.statusTracker = data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.jobAppointmentModal = {};\r\n\t\tvm.editJobAppointment = function () {\r\n\t\t\tvm.TicketInfoEdit['ConsumerName'] = vm.TicketInfo.ConsumerName;\r\n\t\t\tvm.TicketInfoEdit['ConsumerContact'] = vm.TicketInfo.ConsumerContact;\r\n\t\t\tvm.TicketInfoEdit['Address1'] = vm.TicketInfo.Address1;\r\n\t\t\tvm.TicketInfoEdit['Address2'] = vm.TicketInfo.Address2;\r\n\t\t\tvm.TicketInfoEdit['Pincode'] = vm.TicketInfo.Pincode;\r\n\t\t\tvm.TicketInfoEdit['StartTime'] = new Date(vm.TicketInfo.StartTime);\r\n\t\t\tvm.TicketInfoEdit['EndTime'] = new Date(vm.TicketInfo.EndTime);\r\n\r\n\t\t\tif (vm.states && !vm.TicketInfoEdit.State || vm.TicketInfoEdit.State != vm.TicketInfo.State) {\r\n\t\t\t\tangular.forEach(vm.states, function (s) {\r\n\t\t\t\t\tif (s == vm.TicketInfo.State) {\r\n\t\t\t\t\t\tvm.TicketInfoEdit.State = s;\r\n\t\t\t\t\t\tvm.getCities(vm.TicketInfo.State);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAppointment.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeJobAppointment = function () {\r\n\t\t\tvm.jobAppointmentModal.close();\r\n\t\t}\r\n\r\n\t\tvm.updateJobAppointment = function () {\r\n\t\t\t\r\n\t\t\tvm.jobAppointmentForm.submitted = true;\r\n\t\t\tif (vm.jobAppointmentForm.$valid) {\t\t\t\t\t\r\n\t\t\t\t// if(moment(vm.TicketInfoEdit.PlannedStartDate)._i <= moment(vm.TicketInfoEdit.EndTime)._i){\r\n\t\t\t\t\tvar sDate = moment(vm.TicketInfoEdit.PlannedStartDate).format(\"YYYY-MM-DD\");\r\n\t\t\t\t\t// var eDate = moment(vm.TicketInfoEdit.EndTime).format(\"DD-MM-YYYY HH:mm\");\r\n\t\t\t\t\tvm.Stdate = sDate;\r\n\t\t\t\t\tvm.Stime = vm.AppointmentTime;\r\n\t\t\t\t\tvm.CurrentDate = moment().format('YYYY-MM-DDTHH:mm:ss.SSSZ');\r\n\t\t\t\t\tvm.dateTime = moment (vm.Stdate + ' ' + vm.Stime).format('YYYY-MM-DDTHH:mm:ss.SSSZ');\r\n\t\t\t\t\tif(moment(vm.dateTime)._i >= moment(vm.CurrentDate)._i){\r\n\t\t\t\t\t// vm.Etdate = eDate;\r\n\r\n\t\t\t\t\tJobDetailViewNewService.updateStartTime(vm.TicketInfo.TicketId, loggedinUser, vm.dateTime, token, function (res) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Appointment Date updated successfully\");\r\n\t\t\t\t\t\tvm.jobAppointmentModal.close();\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t}, vm.showFailure);\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tvm.showFailure('Failed','Start time should be greater than current time!');\r\n\t\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tvm.showFailure('Failed', 'Appointment date is not valid');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.UpdateMatrialStatus = function(MetrialDeliveredStatus){\r\n\t\t\tif(MetrialDeliveredStatus){\r\n\t\t\t\tJobDetailViewNewService.UpdateMetrialDeliveredStatus(vm.TicketInfo.TicketId,loggedinUser,MetrialDeliveredStatus,token,function(res){\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Matrial Delivered Status updated successfully\");\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t},vm.showFailure);\r\n\t\t\t}else{\r\n\t\t\t\tvm.showFailure(\"Failed\",\"Please select matrial delivred status\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.getReadableTime = function (time) {\r\n\t\t\tvm.timeDisplay = \"\";\r\n\t\t\tif (typeof time == \"string\") {\r\n\t\t\t\tvm.timeDisplay = $filter('date')(new Date(time), \"yyyy/MM/dd h:mm:ss a\");\r\n\t\t\t}\r\n\t\t\tif (typeof time == \"object\") {\r\n\t\t\t\tvm.timeDisplay = time.format(\"DD/MMM/YY LTS\");\r\n\t\t\t}\r\n\t\t\treturn vm.timeDisplay;\r\n\t\t}\r\n\r\n\t\tvm.isUpdatePermission = function () {\r\n\t\t\tif (vm.VerticalName == 'Spectro Labs') {\r\n\t\t\t\tif (accountConfig && accountConfig.MenuListModel) {\r\n\t\t\t\t\tfor (var i = 0; i < accountConfig.MenuListModel.length; i++) {\r\n\t\t\t\t\t\tif (accountConfig.MenuListModel[i].MenuName == \"Jobs\") {\r\n\t\t\t\t\t\t\tfor (var j = 0; j < accountConfig.MenuListModel[i].SubMenusList.length; j++) {\r\n\t\t\t\t\t\t\t\tif (accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == \"All Tickets\") {\r\n\t\t\t\t\t\t\t\t\treturn accountConfig.MenuListModel[i].SubMenusList[j].UpdatePermission.split(\",\").indexOf($localStorage.loggedInUser_Role) >= 0;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (accountConfig && accountConfig.MenuListModel) {\r\n\t\t\t\t\tfor (var i = 0; i < accountConfig.MenuListModel.length; i++) {\r\n\t\t\t\t\t\tif (accountConfig.MenuListModel[i].MenuName == \"Jobs\") {\r\n\t\t\t\t\t\t\tfor (var j = 0; j < accountConfig.MenuListModel[i].SubMenusList.length; j++) {\r\n\t\t\t\t\t\t\t\tif (accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == \"All Jobs\") {\r\n\t\t\t\t\t\t\t\t\treturn accountConfig.MenuListModel[i].SubMenusList[j].UpdatePermission.split(\",\").indexOf($localStorage.loggedInUser_Role) >= 0;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvm.getDropDownOptions = function (SectionName, ItemName) {\r\n\t\t\tvar options = [];\r\n\t\t\tif (vm.templateData && vm.templateData.SectionList) {\r\n\t\t\t\tangular.forEach(vm.templateData.SectionList, function (l) {\r\n\t\t\t\t\tif (l.SectionName == SectionName && l.ItemList && l.ItemList.length > 0) {\r\n\t\t\t\t\t\tangular.forEach(l.ItemList, function (item) {\r\n\t\t\t\t\t\t\tif (item.ItemName == ItemName && item.ItemType == \"Dropdown Type\" && item.field_options && item.field_options.options && item.field_options.options.length > 0) {\r\n\t\t\t\t\t\t\t\t//$log.log(\"item.field_options.options\", item.field_options.options);\r\n\t\t\t\t\t\t\t\toptions = item.field_options.options;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\treturn options;\r\n\t\t}\r\n\r\n\t\tvm.getDropDownOptionsForCheckboxList = function (SectionName, ItemName) {\r\n\t\t\tvar options = [];\r\n\t\t\tif (vm.templateData && vm.templateData.SectionList) {\r\n\t\t\t\tangular.forEach(vm.templateData.SectionList, function (l) {\r\n\t\t\t\t\tif (l.SectionName == SectionName && l.ItemList && l.ItemList.length > 0) {\r\n\t\t\t\t\t\tangular.forEach(l.ItemList, function (item) {\r\n\t\t\t\t\t\t\tif (item.ItemName == ItemName && item.ItemType == \"CheckBoxList DropDown Type\" && item.field_options && item.field_options.options && item.field_options.options.length > 0) {\r\n\t\t\t\t\t\t\t\t//$log.log(\"item.field_options.options\", item.field_options.options);\r\n\t\t\t\t\t\t\t\toptions = item.field_options.options;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\treturn options;\r\n\t\t}\r\n\r\n\t\t //download PDF \r\n\t\t vm.downloadReportPDF = function (ticketId) { \r\n\t\t\tif (vm.TicketInfo.OnSiteReport != null) { \r\n\t\t\t var urlWithFeasible = PublicApiURL + '/api/Report/GeneratePdfOnSiteReportForMultipleTickets?TicketIds=' + ticketId;\r\n\t\t\t $window.open(urlWithFeasible, '_blank')\r\n\t\t\t} else {\r\n\t\t\t// var urlForNonFeasible = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + ticketId;\r\n\t\t\t// $window.open(urlForNonFeasible, '_blank')\r\n\t\t\tvm.downloadOnSiteReport();\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t}\r\n\t\t }\r\n\r\n\t\t vm.pdfimage = \"\";\r\n\t\t\tvm.DocumentAvailableMessage=\"\";\t\r\n\t\t\tvm.downloadOnSiteReport = function (previewSelectedObj) { \r\n\t\t\t\tvm.PDFViewRport();\r\n\t\t\t\r\n\t\t\t\tvar PreviewConsolidatedInvoiceList = previewSelectedObj;\r\n\t\t\t\tJobDetailViewNewService.downloadOnSiteReport(loggedinUser, token, vm.TicketInfo.TicketId).then(function (resp) {\r\n\t\t\t\t\t// var responseDataList=[];\r\n\t\t\t\t\tvm.responseDataList = resp.data;\r\n\t\t\t\t\t// for(var i=0; i';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// vm.PlottedItem = '';\r\n\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\tcase 'Date Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t+ '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'Multiple Picture Type':\r\n\t\t\t\t\t\t// if(vm.TicketInfo.JobAccountId == '266') {\r\n\t\t\t\t\t\t\tvm.PlottedItem =\r\n\t\t\t\t\t\t\t'
'\r\n\t\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t\t+ '
'\r\n\r\n\t\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t\t+ '';\r\n\t\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t// else {\r\n\t\t\t\t\t\t// \tvm.PlottedItem = ''\r\n\t\t\t\t\t\t// \t+ ''\r\n\t\t\t\t\t\t// \t+ '';\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t// \t+ '
'\r\n\t\t\t\t\t\t// \t+ ''\r\n\t\t\t\t\t\t// \t+ '
'\r\n\t\t\t\t\t\t// \t+ '
'\r\n\t\t\t\t\t\t// \t+ ''\r\n\t\t\t\t\t\t// \t+ '
'\r\n\t\t\t\t\t\t// \t+ '
'\r\n\t\t\t\t\t\t// \t+ ''\r\n\t\t\t\t\t\t// \t+ '
'\r\n\t\t\t\t\t\t// break;\r\n\t\t\t\tcase 'Signature Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t+ '';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase 'File Attachment Type':\r\n\t\t\t\t\tvm.PlottedItem = '
'\r\n\t\t\t\t\t\t+''\r\n\t\t\t\t\t\t// + ''\r\n\t\t\t\t\t\t + '
'\r\n\t\t\t\t\t\t+ '
Click here to upload File
'\r\n\t\t\t\t\t\t+ '


Click here to upload File
'\r\n\t\t\t\t\t\t //+ '
Click here to upload pdf';\r\n\t\t\t\t\t\t + '
'\r\n\r\n\t\t\t\t\t\t+'
'\r\n\t\t\t\t\t\t+''\r\n\t\t\t\t\t\t// + ''\r\n\t\t\t\t\t\t + '
'\r\n\t\t\t\t\t\t+ '
Click here to upload file
'\r\n\t\t\t\t\t\t// + '
{{item.ImageName}}
'\r\n\t\t\t\t\t\t+ '


Click here to upload file
'\r\n\t\t\t\t\t\t //+ '
Click here to upload pdf';\r\n\t\t\t\t\t\t + '
'\r\n\t\t\t\t\t\t break;\r\n\t\t\t\tcase 'CheckBoxList DropDown Type':\r\n\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Video Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t+''\r\n\t\t\t\t\t\t+'';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Character FilteredTextBoxField':\r\n\t\t\t\tcase 'Bigger Textbox':\r\n\t\t\t\tcase 'Edit Enabled':\r\n\t\t\t\tcase 'Phone Type':\r\n\t\t\t\tcase 'Decimal TextBox Type':\r\n\t\t\t\tcase 'Numeric FilteredTextBoxField':\r\n\t\t\t\tcase 'Instruction Type':\r\n\t\t\t\tcase 'Scan Barcode Type':\r\n\t\t\t\tcase 'Email':\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn vm.PlottedItem;\r\n\t\t}\r\n\r\n\r\n\t\tvm.UpdateStep = function () {\r\n\r\n\t\t\tvar formData = new FormData();\r\n\r\n\t\t\tfor (var ticketmodelIndex = 0; ticketmodelIndex < vm.TicketInfo.TemplateModel.SectionList.length; ticketmodelIndex++) {\r\n\t\t\t\tvar Action = vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].Action;\r\n\t\t\t\tvar section = vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].SectionName;\r\n\t\t\t\tif (Action == currentStepName) {\r\n\t\t\t\t\tfor (var currentModalIndex = 0; currentModalIndex < vm.ModalActionWithValuesList.SectionList.length; currentModalIndex++) {\r\n\t\t\t\t\t\tif (section == vm.ModalActionWithValuesList.SectionList[currentModalIndex].SectionName) {\r\n\r\n\t\t\t\t\t\t\tvm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].ItemList = vm.ModalActionWithValuesList.SectionList[currentModalIndex].ItemList;\r\n\t\t\t\t\t\t\tangular.forEach(vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].ItemList, function (item) {\r\n\t\t\t\t\t\t\t\tif (item.ItemType == 'Date Type') {\r\n\r\n\t\t\t\t\t\t\t\t\titem.ItemValue = moment(item.ItemValue).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\telse if (item.ItemType == 'CheckBoxList DropDown Type') {\r\n\t\t\t\t\t\t\t\t\titem.field_options.options = [];\r\n\t\t\t\t\t\t\t\t\tif (item.ItemValues && item.ItemValues.length > 0) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < item.ItemValues.length; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar obj = { \"label\": item.ItemValues[i] };\r\n\t\t\t\t\t\t\t\t\t\t\t// obj.push()\r\n\t\t\t\t\t\t\t\t\t\t\titem.field_options.options.push(obj);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t//item.field_options.options.push(item.ItemValue);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if (item.ItemType == 'Multiple Picture Type' || item.ItemType == 'Signature Type' || item.ItemType == 'File Attachment Type' || item.ItemType == 'Video Type') {\r\n\t\t\t\t\t\t\t\t\tif (vm.ImageArray[section + '_' + item.ItemName] && item.ItemValues == null) {\r\n\t\t\t\t\t\t\t\t\t\tvm.ImageArray[section + '_' + item.ItemName].name = vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t\t\titem.ItemValue = vm.TicketInfo.TicketId + '_' + Math.random().toString(36).substring(7) + new Date().getTime() + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t\t\titem.ImageName = item.ItemValue;\r\n\t\t\t\t\t\t\t\t\t\tformData.append(vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name, vm.ImageArray[section + '_' + item.ItemName], item.ImageName);\r\n\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif(item.ImageItemName != null) {\r\n\t\t\t\t\t\t\t\t\t\titem.ImageItemName.forEach(function(imgNameI, ind, theArray) {\r\n\t\t\t\t\t\t\t\t\tif (vm.ImageArray[section + '_' + item.ItemName+ '_' +ind]) {\r\n\t\t\t\t\t\t\t\t\t\tvm.imgType = vm.ImageArray[section + '_' + item.ItemName+ '_' +ind].name.slice(-4);\r\n\t\t\t\t\t\t\t\t\t\titem.ItemValue = vm.TicketInfo.TicketId + '_' + Action + '_' +section + '_' + item.ItemName + '_' + ind + vm.imgType;\r\n\t\t\t\t\t\t\t\t\t\titem.ItemValue = (item.ItemValue).replace(/ /g,\"_\");\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t// if(imgNameI.slice(0, -4) == item.ItemValue.slice(0, -4)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem.ImageItemName[ind] = imgNameI;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tformData.append(imgNameI, vm.ImageArray[section + '_' + item.ItemName+ '_' +ind],imgNameI);\r\n\t\t\t\t\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// else if (item.ItemType == 'Video Type') { \r\n\t\t\t\t\t\t\t\t// \tif (vm.ImageArray[section + '_' + item.ItemName]) {\r\n\t\t\t\t\t\t\t\t// \t\tvm.ImageArray[section + '_' + item.ItemName].name = vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t// \t\titem.ItemValue = vm.TicketInfo.TicketId + '_' + Math.random().toString(36).substring(7) + new Date().getTime() + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t// \t\titem.ImageName = item.ItemValue;\r\n\t\t\t\t\t\t\t\t// \t\tformData.append(vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name, vm.ImageArray[section + '_' + item.ItemName], item.ImageName);\r\n\r\n\t\t\t\t\t\t\t\t// \t}\r\n\r\n\t\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tticketEditModalInstance.close();\r\n\t\t\tformData.append('reqUserId', loggedinUser)\r\n\t\t\t//var data = angular.toJson(vm.TicketInfo);\r\n\t\t\tvm.TicketInfo.TemplateModel.SectionList.forEach(function (element,i) {\r\n\t\t\t\tvm.TicketInfo.TemplateModel.SectionList[i].ItemList.forEach(function (element,i) {\r\n\t\t\t\t\tif( element.ItemType == 'Multiple Picture Type' || element.ItemType == 'Signature Type' || element.ItemType == 'File Attachment Type' || element.ItemType == 'Video Type') {\r\n\t\t\t\t\t\telement.ItemValue = '';\r\n\t\t\t\t\t\telement.imageData =[];\r\n\t\t\t\t\t\telement.ItemValues = [];\r\n\t\t\t\t\t\telement.PdfData = [];\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t });\r\n\r\n\t\t if(vm.TicketInfo) {\r\n\t\t\tvm.TicketInfo.Address1 = '';\r\n\t\t\tvm.TicketInfo.Address2 = '';\r\n\r\n\t\t }\r\n\t\t\tvar data = JSON.stringify(vm.TicketInfo);\r\n\t\t\tformData.append(\"TicketRequestModel\", data);\r\n\t\t\tJobDetailViewNewService.updateJobTicketwithImage(formData, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 202 || resp.status == 200) {\r\n\t\t\t\t\t$timeout(function(){\t\r\n\t\t\t\t\t\ttoaster.pop({\r\n\t\t\t\t\t\t\ttype: 'success',\r\n\t\t\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\t\t\tbody: 'Job has been successfully updated',\r\n\t\t\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\tvm.getTicketByJobId();\t\t\t\t\t\t\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t\tfor (var sectionIndex = 0; sectionIndex < vm.currentStepModel.SectionList.length; sectionIndex++) {\r\n\t\t\t\t\t\tfor (var itemIndex = 0; itemIndex < vm.currentStepModel.SectionList[sectionIndex].ItemList.length; itemIndex++) {\r\n\t\t\t\t\t\t\tvar beforeChangeItem = vm.currentStepModel.SectionList[sectionIndex].ItemList[itemIndex].ItemValue;\r\n\t\t\t\t\t\t\tvar afterChangeItem = vm.ModalActionWithValuesList.SectionList[sectionIndex].ItemList[itemIndex].ItemValue;\r\n\t\t\t\t\t\t\tif (beforeChangeItem != afterChangeItem) {\r\n\t\t\t\t\t\t\t\tvm.currentStepModel.SectionList[sectionIndex].ItemList[itemIndex].ItemValue = afterChangeItem;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\t\t\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttoaster.pop({\r\n\t\t\t\t\t\ttype: 'error',\r\n\t\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\t\tbody: 'Job has not been updated',\r\n\t\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\ttoaster.pop({\r\n\t\t\t\t\ttype: 'error',\r\n\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\tbody: 'server error',\r\n\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tvm.getImageData = function (data) {\t\t\t\r\n\t\t\tif (data) {\r\n\t\t\t\t// console.log(data);\r\n\t\t\t\treturn data;\r\n\t\t\t} else {\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//\r\n\t\tvm.getImageDataFST = function (data) {\t\t\t\r\n\t\t\tif (data) {\r\n\t\t\t\t// console.log(data);\r\n\t\t\t\treturn data;\r\n\t\t\t} else {\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.getPdfExist = function (name) {\t\t\t\r\n\t\t\tif(name==null)\t\t\t\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\telse\r\n\t\t\t\treturn name;\t\t\t\r\n\t\t// \telse{\r\n // var strPdf = name.includes(\".pdf\")\t\t\r\n\t\t// \tif (strPdf) {\t\t\t\t\r\n\t\t// \t\t//return \"../assets/images/patterns/pdf.png\";\r\n\t\t// \t} else {\r\n\t\t// \t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t// \t}\r\n\t\t// }\r\n\t\t}\r\n\r\n\r\n\t\tvm.isPdfExist = function (name) {\t\t\t\t\t\t\r\n\t\t\tif(name!=null)\t{\r\n\t\t\t\tif(name.includes(\".pdf\"))\r\n\t\t\t\t{\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse \r\n\t\t\t\t{\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\t\t\t\t\r\n\t\t\t}\t\t\r\n\t\t\telse{\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.PlotItemSectionAndActionWise = function (itemType) {\r\n\t\t\tvm.PlottedItem = '';\r\n\t\t\tswitch (itemType) {\r\n\t\t\t\tcase 'Multiple Picture Type':\r\n\t\t\t\t\t// if(vm.TicketInfo.JobAccountId == '266') {\r\n\t\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t// '
' +\r\n\t\t\t\t\t\t// '
';\r\n\t\t\t\t\t\t'
0\">'+\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'\"image-1\"' +\r\n\t\t\t\t\t\t''+\r\n\t\t\t\t\t\t'
'+\r\n\t\t\t\t\t\t'
'+\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'\"image-1\"' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
';\t\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// else {\r\n\t\t\t\t\t// \tvm.PlottedItem = '
' +\r\n\t\t\t\t\t// \t'
' +\r\n\t\t\t\t\t// \t// '
' +\r\n\t\t\t\t\t// \t// '
';\r\n\t\t\t\t\t// \t'
' +\r\n\t\t\t\t\t// \t'' +\r\n\t\t\t\t\t// \t'\"image-1\"' +\r\n\t\t\t\t\t// \t'' +\r\n\t\t\t\t\t// \t'
';\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// Added by Vikash on demand of salman sir after confirming by jitendra sir\r\n\t\t\t\tcase 'Draw Layout Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t// '
' +\r\n\t\t\t\t\t\t// '
';\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'\"image-1\"' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Signature Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'\"image-1\"' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// \r\n\t\t\t\t// \"image-1\"\r\n\t\t\t\t// \r\n\t\t\t\tcase 'File Attachment Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t''+\r\n\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t// '\"image-1\"' +\r\n\t\t\t\t\t\t'{{plotItem.ImageName}}'+\r\n\t\t\t\t\t\t''+\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Video Type':\r\n\t\t\t\t\tvm.PlottedItem = '

{{plotItem.ItemName}}.*

' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'
';\r\n\r\n\t\t\t\t\t//vm.PlottedItem = '';\r\n\t\t\t\t\t\t// vm.PlottedItem = '';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'CheckBoxList DropDown Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'{{itemOption.label}}
';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Date Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'{{plotItem.ItemValue | date}}
';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Character FilteredTextBoxField':\r\n\t\t\t\tcase 'Bigger Textbox':\r\n\t\t\t\tcase 'Dropdown Type':\r\n\t\t\t\tcase 'Edit Enabled':\r\n\t\t\t\tcase 'Phone Type':\r\n\t\t\t\tcase 'Decimal TextBox Type':\r\n\t\t\t\tcase 'Numeric FilteredTextBoxField':\r\n\t\t\t\tcase 'Instruction Type':\r\n\t\t\t\tcase 'Scan Barcode Type':\r\n\t\t\t\tcase 'Email':\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'

'\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn vm.PlottedItem;\r\n\t\t}\r\n\r\n\r\n\t\tvm.getCallTypeList = function (jobType, callType) {\r\n\t\t\tvm.CallTypeItemList = [];\r\n\t\t\tif (jobType == 'VSAT') {\r\n\t\t\t\tif (callType[0].ItemValue == 'Maintenance') {\r\n\t\t\t\t\tvm.CallTypeList = [\"IDU replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"ODU replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"LNBC replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"IFL cable replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"LNA replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Feed replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Antenna replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Connector replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"After antenna alignment Vsat made up and working\",\r\n\t\t\t\t\t\t\"Power issue resolved at customer premises. Vsat has come up and working\",\r\n\t\t\t\t\t\t\"UPS issue has been resolved at customer end. Vsat has come up and working\",\r\n\t\t\t\t\t\t\"Earthing issue has been resolved at customer end. Vsat has come up and working\",\r\n\t\t\t\t\t\t\"After powering ON the equipments. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Hardware rebooted. Vsat made up\",\r\n\t\t\t\t\t\t\"Monkey cage issue resolved. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Installation') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Installation and activation has been done. Vsat is up and working\",\r\n\t\t\t\t\t\t\"Installation done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Shifting') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Shifting of Vsat completed from old premises to new premises\",\r\n\t\t\t\t\t\t\"Shifting of Vsat completed from existing floor to new floor in the same premises\",\r\n\t\t\t\t\t\t\"Shifting of IDU/ODU completed\",\r\n\t\t\t\t\t\t\"Shifting done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t} else if (jobType == 'LeaseLine') {\r\n\t\t\t\tif (callType[0].ItemValue == 'LLM') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Local lead issue has been resolved. Link is up and working\",\r\n\t\t\t\t\t\t\"UG Cable cut restored. Link is up and working\",\r\n\t\t\t\t\t\t\"OFC cut has been restored. Link came up and working\",\r\n\t\t\t\t\t\t\"Mux issue has been resolved. Link has come up and working\",\r\n\t\t\t\t\t\t\"MPLS trunk issue has been resolved. Link is up and working\",\r\n\t\t\t\t\t\t\"NIB routing issue has been resolved. Links are up and working\",\r\n\t\t\t\t\t\t\"Major media failure has been resolved. Links came up and working\",\r\n\t\t\t\t\t\t\"BSNL hardware issue has been resolved. Link is up and working\",\r\n\t\t\t\t\t\t\"Router replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"Switch replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"MLLN modem replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"conventional modem replaced. Link made up\",\r\n\t\t\t\t\t\t\"HWIC card replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"Serial cable replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"OFC media has been restored. Link is up and working\",\r\n\t\t\t\t\t\t\"BSNL wiring issue resolved in the exchange. Link is up and working\",\r\n\t\t\t\t\t\t\"Customer's modem has been replaced. Link is up\",\r\n\t\t\t\t\t\t\"Customer's router has been replaced. Link made up\",\r\n\t\t\t\t\t\t\"No issue found in the link. Customer saying up\",\r\n\t\t\t\t\t\t\"High utilization due to which getting slow connectivity\",\r\n\t\t\t\t\t\t\"LAN issue resolved. Customer is getting connectivity\",\r\n\t\t\t\t\t\t\"PCM issue resolved. Link has come up\",\r\n\t\t\t\t\t\t\"Mux channel issue resolved. Link has come up.\",\r\n\t\t\t\t\t\t\"Routing issue b/w MTNL & BSNL has been resolved. Link has come up\",\r\n\t\t\t\t\t\t\"Power issue resolved in the exchange. Link has come up and working\",\r\n\t\t\t\t\t\t\"UPS issue has been resolved at customer end. Link has come up and working\",\r\n\t\t\t\t\t\t\"Earthing issue has been resolved at customer end. Link has come up and working\",\r\n\t\t\t\t\t\t\"After powering ON the equipments Link made up and working\",\r\n\t\t\t\t\t\t\"Hardware rebooted. Link made up.\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'LLP') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Commissioning done after PCM/Channal wiring done\",\r\n\t\t\t\t\t\t\"Commissioning done after replacing MLLN modem\",\r\n\t\t\t\t\t\t\"Commissioning done after completion of MPLS end configuration\",\r\n\t\t\t\t\t\t\"Commissioning done after OFC media preparation\",\r\n\t\t\t\t\t\t\"Commissioning done after allocation of channel\",\r\n\t\t\t\t\t\t\"Commissioning done after replacing router/card\",\r\n\t\t\t\t\t\t\"Commissioning done after replacing serial cable\",\r\n\t\t\t\t\t\t\"Commissioning done after configuring the CE router\",\r\n\t\t\t\t\t\t\"Commissioning done after media preparation b/w MTNL & BSNL\",\r\n\t\t\t\t\t\t\"Commissioning done after installation of new local lead\",\r\n\t\t\t\t\t\t\"Commissioning done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Upgration') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Upgradation done after PCM/Channal wiring done\",\r\n\t\t\t\t\t\t\"Upgradation done after replacing MLLN modem\",\r\n\t\t\t\t\t\t\"Upgradation done after completion of MPLS end configuration\",\r\n\t\t\t\t\t\t\"Upgradation done after OFC media preparation\",\r\n\t\t\t\t\t\t\"Upgradation done after allocation of channel\",\r\n\t\t\t\t\t\t\"Upgradation done after replacing router/card\",\r\n\t\t\t\t\t\t\"Upgradation done after replacing serial cable\",\r\n\t\t\t\t\t\t\"Upgradation done after configuring the CE router\",\r\n\t\t\t\t\t\t\"Upgradation done after media preparation b/w MTNL & BSNL\",\r\n\t\t\t\t\t\t\"Upgradation done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Shifting') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Shifting of link completed from old premises to new premises\",\r\n\t\t\t\t\t\t\"Shifting of link completed from existing floor to new floor in the same premises\",\r\n\t\t\t\t\t\t\"Shifting of exchange completed\",\r\n\t\t\t\t\t\t\"Shifting done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Installation & Configuration of Device') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Router installed. Link made up and working\",\r\n\t\t\t\t\t\t\"Switch installed. Link made up and working\",\r\n\t\t\t\t\t\t\"HWIC card installed. Link made up and working\",\r\n\t\t\t\t\t\t\"Serial cable installed. Link made up and working\",\r\n\t\t\t\t\t\t\"MLLN modem installed. Link made up and working\",\r\n\t\t\t\t\t\t\"Router/MLLN modem/switch installed at customer end\",\r\n\t\t\t\t\t\t\"UPS installed at customer end. Link made up and working\",\r\n\t\t\t\t\t\t\"Installation done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// vm.showFixed = true;\r\n\t\tvm.DistanceFixed = '10';\r\n\t\tvm.starFixed = '5';\r\n\t\tvm.DistanceNearBy = '10';\r\n\t\tvm.starNearBy = '5';\r\n\t\tvm.Distance = '10';\r\n\t\tvm.DistancePre = '10';\r\n\t\tvm.star = '5';\r\n\t\tvm.showNearByTable = false;\r\n\t\tvm.model = {};\r\n\t\tvm.model = [{ \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\": \"Field Engineer\" },\r\n\t\t{ \"key\": 2, \"Role\": \"Field Engineer\", \"userType\": \"Freelancer\", \"Value\": \"Freelancer\" },\r\n\t\t{ \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Fixed Team\", \"Value\": \"Vendor\" },\r\n\t\t{ \"key\": 4, \"Role\": \"Vendor Manager\", \"userType\": \"Freelancer\", \"Value\": \"Freelancer\" }];\r\n\r\n\t\tvm.GetFixedUser = function (reload) {\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Fixed Team\" });\r\n\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 3, \"OrderByField\": \"UserDistance\" });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": parseInt(vm.DistanceFixed) * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\t\t\tJobDetailViewNewService.GetSchedulingEvaluationResult(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.FixedUserList = resp.data.users;\r\n\t\t\t\tvm.FixedUserLength = vm.FixedUserList.length;\r\n\t\t\t\t\r\n\t\t\t\tvm.CreateFixedUserTable();\r\n\t\t\t\tif (reload) {\r\n\t\t\t\t\tvm.reloadDataFixed();\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\t\tvm.CreateFixedUserTable = function () {\r\n\t\t\tvm.headerCompiledFixed = false;\r\n\t\t\t// vm.dtInstanceFixed = {};\r\n\t\t\tvm.showFixedTable = 'Fixed';\r\n\t\t\tvm.showFixed = true;\r\n\t\t\tvm.selectedFixed = {};\r\n\t\t\tvm.toggleOneFixed = toggleOneFixed;\r\n\t\t\tvm.selectAllFixed = false;\r\n\t\t\tvm.toggleAllFixed = toggleAllFixed;\r\n\t\t\tvar temp = false;\r\n\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\ttemp = true;\r\n\t\t\t}\r\n\r\n\t\t\t// var titleHtmlFixed = '';\r\n\t\t\tvm.dtOptionsFixed = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tdefer.resolve(vm.FixedUserList);\r\n\t\t\t\treturn defer.promise;\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompiledFixed) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompiledFixed = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.withBootstrap();\r\n\r\n\r\n\t\t\tvm.dtColumnsFixed = [\r\n\t\t\t\t\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif($localStorage.loggedInUser_Role == 'Vendor Manager'){\r\n\t\t\t\t\t\t\ttemp = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(vm.TicketInfo.UserName != '' && vm.TicketInfo.UserName != null){\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus == 'Completed'){\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('userType').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\t// DTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\t// \treturn '' + data + '';\r\n\r\n\t\t\t\t\t// })\r\n\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tif(full.IsPincodeBasedScheduling == true){\r\n\t\t\t\t\t\treturn 'Matching Pincode';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}}),\r\n\r\n\t\t\t];\r\n\r\n\t\t\tfunction toggleAllFixed(selectAll, selectedItems) {\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOneFixed(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\t\t\t// \t\t\t\tif(vm.selectSingleFixed){\r\n\t\t\t// \t\t\t\t\tvm.selectAllFixed = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSingleFixed = false;\r\n\t\t\t// \t\t\t\t\treturn;\r\n\t\t\t// \t\t\t\t}\r\n\r\n\t\t\t// \t\t\t\tvm.selectAllFixed = false;\r\n\t\t\t// \t\t\t\tvm.selectSingleFixed = true;\r\n\t\t\t// \t\t\t\treturn;\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t\tvm.selectSingleFixed = false;\r\n\t\t\t// \t\t}\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAllFixed = true;\r\n\t\t\t// }\r\n\r\n\t\t\tfunction toggleOneFixed(selectedItems) {\r\n\t\t\t\tvm.selectAllFixed = false;\r\n\t\t\t\tvm.selectSingleFixed = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSingleFixed = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\t\tvm.NearByUserList = [];\r\n\r\n\t\tvm.GetNearByUser = function (reload) {\r\n\r\n\t\t\tvm.headerCompiledNearBy = false;\r\n\t\t\t// vm.NearByUserList = [];\r\n\t\t\tvar roleList = [];\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 0, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserDistance\" });\r\n\t\t\tif(vm.PrivateDisable) {\r\n\t\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Private\" });\r\n\t\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Private\" });\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"IsComplianceDisable\": vm.ComplianceDisable,\r\n\t\t\t\t\"IsPincodeEnabled\": vm.PincodeEnabled,\r\n\t\t\t\t\"IsPrivateDisable\": vm.PrivateDisable,\r\n\t\t\t\t\"RangeFromJob\": parseInt(vm.DistanceNearBy) * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser,\r\n\t\t\t};\r\n\t\t\tJobDetailViewNewService.GetSchedulingEvaluationResult(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.NearByUserList = resp.data.users;\r\n\t\t\t\tvm.NearByUserLength = vm.NearByUserList.length;\r\n\t\t\t\t\r\n\t\t\t\tvm.CreateNearByTable();\r\n\t\t\t\tif (reload) {\r\n\t\t\t\t\tvm.reloadData();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\t// $scope.addNewType = function () {\r\n\t\t// \troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Private\" });\r\n\t\t// \troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Private\" });\r\n\t\t// };\r\n\r\n\t\tvm.selectSingleNearBy = false;\r\n\t\tvm.CreateNearByTable = function () {\r\n\t\t\tvm.headerCompiledNearBy = false;\r\n\t\t\tvm.showNearByTable = 'showNear';\r\n\t\t\tvm.selectedNearBy = {};\r\n\t\t\tvm.toggleOneNearBy = toggleOneNearBy;\r\n\t\t\t// vm.dtInstanceNearBy = {};\r\n\t\t\tvm.selectAllNearBy = false;\r\n\t\t\tvm.toggleAllNearBy = toggleAllNearBy;\r\n\t\t\tvar temp = false;\r\n\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t// \ttemp = true;\r\n\t\t\t// }\r\n\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\tvar titleHtmlNearBy = '';\r\n\t\t\tvm.dtOptionsNearBy = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tdefer.resolve(vm.NearByUserList);\r\n\t\t\t\treturn defer.promise;\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompiledNearBy) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompiledNearBy = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.withBootstrap();\r\n\r\n\r\n\t\t\tvm.dtColumnsNearBy = [\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtmlNearBy).renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvm.selectedNearBy[meta.row] = false;\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t// \ttemp = true;\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.disableRouteButton = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\r\n\t\t\t\tDTColumnBuilder.newColumn('User_Type').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('IsPresentToday').withTitle('Attendance').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar attendance =\"\";\r\n\t\t\t\t\tif(full.User_Type==\"Freelancer Vendor\")\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tattendance = \"NA\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\tif(full.IsPresentToday){\r\n\t\t\t\t\t\tattendance = \"Present\";\r\n\t\t\t\t\t }else{\r\n\t\t\t\t\t\tattendance = \"Absent\";\r\n\t\t\t\t\t }\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn '' + attendance + '';\r\n\r\n\t\t\t\t})\r\n\t\t\t\t\r\n\t\t\t\t// return '
'+location+'
'\r\n\t\t\t\r\n\r\n\t\t\t];\r\n\r\n\t\t\tfunction toggleAllNearBy(selectAll, selectedItems) {\r\n\t\t\t\tvm.selectSingleNearBy = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOneNearBy(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\t\t\t// \t\t\t\tif(vm.selectSingleNearBy){\r\n\t\t\t// \t\t\t\t\tvm.selectAllNearBy = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSingleNearBy = false;\r\n\t\t\t// \t\t\t\t\treturn;\r\n\t\t\t// \t\t\t\t}\r\n\r\n\t\t\t// \t\t\t\tvm.selectAllNearBy = false;\r\n\t\t\t// \t\t\t\tvm.selectSingleNearBy = true;\r\n\t\t\t// \t\t\t\treturn;\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t\tvm.selectSingleNearBy = false;\r\n\t\t\t// \t\t}\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAllNearBy = true;\r\n\t\t\t// }\r\n\r\n\t\t\tfunction toggleOneNearBy(selectedItems) {\r\n\t\t\t\tvm.selectAllNearBy = false;\r\n\t\t\t\tvm.selectSingleNearBy = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSingleNearBy = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tvm.reloadDataFixed = function () {\r\n\t\t\tvar resetPagingFixed = true;\r\n\t\t\tvm.dtInstanceFixed.reloadData(resetPagingFixed);\r\n\t\t}\r\n\r\n\t\tvm.reloadData = function () {\r\n\t\t\tvar resetPaging = true;\r\n\t\t\tvm.dtInstanceNearBy.reloadData(resetPaging);\r\n\t\t\t\r\n\r\n\t\t}\r\n\r\n\t\tvm.reloadDataTalent = function () {\r\n\t\t\tvar resetPagingTalent = true;\r\n\t\t\tvm.dtInstance.reloadData(resetPagingTalent);\r\n\t\t}\r\n\r\n\t\tvm.reloadDataPre = function () {\r\n\t\t\tvar resetPagingPre = true;\r\n\t\t\tvm.dtInstancePre.reloadData(resetPagingPre);\r\n\t\t}\r\n\r\n\r\n\t\tvm.Preffered = function () {\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Preffered.html',\r\n\t\t\t\tsize: 'sm',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetTalentPoolUser = function (reload) {\r\n\t\t\tvm.headerCompiled = false;\r\n\t\t\tvar Distance = parseInt(vm.Distance)\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 0, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserDistance\" });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": Distance * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\t\t\tJobDetailViewNewService.GetAllPrefereTalentPool(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.PrefreUserList = resp.data;\r\n\t\t\t\tvm.PrefreUserLength = vm.PrefreUserList.length;\r\n\t\t\t\t\r\n\t\t\t\tvm.CreatePrefreTable();\r\n\t\t\t\tif (reload) {\r\n\t\t\t\t\tvm.reloadDataTalent();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.CreatePrefreTable = function () {\r\n\t\t\t// vm.Invoice = {};\r\n\t\t\tvm.headerCompiled = false;\r\n\t\t\tvm.selected = {};\r\n\t\t\tvm.toggleOne = toggleOne;\r\n\t\t\t// vm.dtInstance = {};\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tvm.toggleAll = toggleAll;\r\n\t\t\tvar temp = false;\r\n\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t// \ttemp = true;\r\n\t\t\t// }\r\n\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\tvar titleHtml = '';\r\n\r\n\t\t\tvm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tvm.showTable = true;\r\n\t\t\t\tdefer.resolve(vm.PrefreUserList);\r\n\t\t\t\treturn defer.promise;\r\n\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', createdRow)\r\n\t\t\t\t.withOption('headerCallback', headerCallback)\r\n\t\t\t\t.withBootstrap();\r\n\r\n\t\t\tfunction createdRow(row, data, dataIndex) {\r\n\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t}\r\n\r\n\t\t\tfunction headerCallback(header) {\r\n\t\t\t\tif (!vm.headerCompiled) {\r\n\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\tvm.headerCompiled = true;\r\n\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvm.dtColumns = [\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtml).renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvm.selected[meta.row] = false;\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t// \ttemp = true;\r\n\t\t\t\t\t// }\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.disableRouteButton = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('User_Type').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('IsPresentToday').withTitle('Attendance').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar attendance =\"\";\r\n\t\t\t\t\tif(full.IsPresentToday){\r\n\t\t\t\t\t\tattendance = \"Present\";\r\n\t\t\t\t\t }else{\r\n\t\t\t\t\t\tattendance = \"Absent\";\r\n\t\t\t\t\t }\r\n\t\t\t\t\t \r\n\t\t\t\t\treturn '' + attendance + '';\r\n\r\n\t\t\t\t})\r\n\r\n\t\t\t];\r\n\r\n\t\t\tfunction toggleAll(selectAll, selectedItems) {\r\n\t\t\t\tvm.selectSingle = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOne(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\r\n\t\t\t// \t\t\t\tif(vm.selectSingle){\r\n\t\t\t// \t\t\t\t\tvm.selectAll = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSingle = false;\r\n\t\t\t// \t\t\t\t\treturn;\r\n\t\t\t// \t\t\t\t}\r\n\t\t\t// \t\t\t\tvm.selectAll = false;\r\n\t\t\t// \t\t\t\tvm.selectSingle = true;\r\n\t\t\t// \t\t\t\treturn;\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t\tvm.selectSingle = false;\r\n\t\t\t// \t\t}\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAll = true;\r\n\t\t\t// }\r\n\r\n\t\t\tfunction toggleOne(selectedItems) {\r\n\t\t\t\tvm.selectAll = false;\r\n\t\t\t\tvm.selectSingle = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSingle = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\t\tvm.showTablePre = false;\r\n\t\tvm.selectSinglePre = false;\r\n\t\tvm.GetPreviousWorker = function (reload) {\r\n\r\n\t\t\tvm.headerCompiledPre = false;\r\n\t\t\tvar Distance = parseInt(vm.DistancePre)\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 0, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserDistance\" });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": Distance * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\t\t\tJobDetailViewNewService.GetAllPreviousUser(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.PreviousUserList = resp.data;\r\n\t\t\t\tvm.PreviousUserLength = vm.PreviousUserList.length;\r\n\t\t\t\t\r\n\t\t\t\tvm.CreatePreviousUserTable();\r\n\t\t\t\tif (reload) {\r\n\t\t\t\t\tvm.reloadDataPre();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CreatePreviousUserTable = function () {\r\n\t\t\tvm.headerCompiledPre = false;\r\n\t\t\tvm.selectedPre = {};\r\n\t\t\tvm.toggleOnePre = toggleOnePre;\r\n\t\t\t// vm.dtInstancePre = {};\r\n\t\t\tvm.selectAllPre = false;\r\n\t\t\tvm.toggleAllPre = toggleAllPre;\r\n\t\t\tvar temp = false;\r\n\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t// \ttemp = true;\r\n\t\t\t// }\r\n\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\tvar titleHtmlPre = '';\r\n\r\n\t\t\tvm.dtOptionsPre = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tvm.showTablePre = true;\r\n\t\t\t\tdefer.resolve(vm.PreviousUserList);\r\n\t\t\t\treturn defer.promise;\r\n\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompiledPre) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompiledPre = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.withBootstrap();\r\n\r\n\r\n\t\t\tvm.dtColumnsPre = [\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtmlPre).renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvm.selectedPre[meta.row] = false;\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t// \ttemp = true;\r\n\t\t\t\t\t// }\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.disableRouteButton = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('User_Type').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('IsPresentToday').withTitle('Attendance').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar attendance =\"\";\r\n\t\t\t\t\tif(full.IsPresentToday){\r\n\t\t\t\t\t\tattendance = \"Present\";\r\n\t\t\t\t\t }else{\r\n\t\t\t\t\t\tattendance = \"Absent\";\r\n\t\t\t\t\t }\r\n\t\t\t\t\t \r\n\t\t\t\t\treturn '' + attendance + '';\r\n\r\n\t\t\t\t})\r\n\r\n\t\t\t];\r\n\r\n\t\t\tfunction toggleAllPre(selectAll, selectedItems) {\r\n\t\t\t\tvm.selectSinglePre = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOnePre(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\r\n\t\t\t// \t\t\t\tif(vm.selectSinglePre){\r\n\t\t\t// \t\t\t\t\tvm.selectAllPre = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSinglePre = false;\r\n\t\t\t// \t\t\t\t\tcontinue;\r\n\t\t\t// \t\t\t\t}\r\n\t\t\t// \t\t\t\tvm.selectAllPre = false;\r\n\t\t\t// \t\t\t\tvm.selectSinglePre = true;\r\n\t\t\t// \t\t\t\tcontinue;\r\n\t\t\t// \t\t\t}\r\n\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\tvm.selectSinglePre = false;\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAllPre = true;\r\n\t\t\t// }\r\n\t\t\tfunction toggleOnePre(selectedItems) {\r\n\t\t\t\tvm.selectSinglePre = false;\r\n\t\t\t\tvm.selectAllPre = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSinglePre = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.BroadcastField = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.FixedUserList.length; i++) {\r\n\t\t\t\tif (vm.selectedFixed[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.FixedUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.FixedUserList[i].Price), \"Distance\": parseInt(vm.FixedUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 0,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewNewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.BroadcastTicketNearBy = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.NearByUserList.length; i++) {\r\n\t\t\t\tif (vm.selectedNearBy[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.NearByUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.NearByUserList[i].Price), \"Distance\": parseInt(vm.NearByUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 1,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewNewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.BroadcastTicketPool = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.PrefreUserList.length; i++) {\r\n\t\t\t\tif (vm.selected[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.PrefreUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.PrefreUserList[i].Price), \"Distance\": parseInt(vm.PrefreUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 2,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewNewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.BroadcastTicketPrevious = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.PreviousUserList.length; i++) {\r\n\t\t\t\tif (vm.selectedPre[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.PreviousUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.PreviousUserList[i].Price), \"Distance\": parseInt(vm.PreviousUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 3,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewNewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.routeFixed = function (index) {\r\n\t\t\tvar data = vm.FixedUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 0,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewNewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"User Not Found.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.route = function (index) {\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar data = vm.NearByUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 1,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tvm.showloading = true;\r\n\t\t\t\tJobDetailViewNewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (resp.status == 206) {\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Users Not Found\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.showloading = false;\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.routePreTalent = function (index) {\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar data = vm.PrefreUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 2,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewNewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"User Not Found.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.routePrevoius = function (index) {\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar data = vm.PreviousUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 3,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewNewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Users Not Found.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.getReadyToAssign = function () {\r\n\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 3, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"UserDistance\" });\r\n\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"JobAccountId\": '',\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": 50 * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\r\n\t\t\tdata.JobAccountId = '';\r\n\t\t\tJobDetailViewNewService.GetSchedulingEvaluationResult(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.ReadytoAssignUser = resp.data.users;\r\n\t\t\t\tvm.ReadyUserLength = vm.ReadytoAssignUser.length;\r\n\r\n\t\t\t});\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.AssignTicketsToFixedTeam = function (index) {\r\n\r\n\t\t\tvar temp = vm.FixedUserList[index];\r\n\t\t\tif($localStorage.loggedInUser_Role == 'Vendor Manager'){\r\n\t\t\t\tJobDetailViewNewService.VendorManagerAssignJobTeam(temp.id,loggedinUser, uTicketId, vm.TicketInfo.JobAccountId, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == '200') {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t\r\n\t\t\t}\r\n\t\t\telse{\r\n\r\n\t\t\tvar AllUserList = [];\r\n\r\n\t\t\tvar data = {\r\n\t\t\t\t\"UserId\": temp.id ? temp.id : temp.LinkId,\r\n\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\"StartTime\": moment(vm.TicketInfo.StartTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"Endtime\": moment(vm.TicketInfo.EndTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"SuggestedPrice\": temp.Price,\r\n\t\t\t\t\"AssignPrice\": temp.Price,\r\n\t\t\t\t\"Distance\": temp.UserDistance\r\n\t\t\t}\r\n\t\t\tAllUserList.push(data);\r\n\t\t\tif (AllUserList == '') {\r\n\t\t\t\tvm.showFailure(\"Please select users.\")\r\n\t\t\t} else {\r\n\t\t\t\tJobDetailViewNewService.AssignTicketsTimeline(loggedinUser, AllUserList, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == '200') {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t\t}\r\n\r\n\t\tvm.AssignTicketsTimeline = function (rUser, index) {\t\t\t\r\n\t\t\tvar AllUserList = [];\r\n\t\t\tvar data = {\r\n\t\t\t\t\"UserId\": rUser.id ? rUser.id : rUser.LinkId,\r\n\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\"StartTime\": moment(vm.TicketInfo.StartTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"Endtime\": moment(vm.TicketInfo.EndTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"SuggestedPrice\": rUser.BIDCounterRate,\r\n\t\t\t\t\"AssignPrice\": rUser.BIDCounterRate,\r\n\t\t\t\t\"Distance\": rUser.UserDistance\r\n\t\t\t}\r\n\t\t\tAllUserList.push(data);\r\n\t\t\tif (AllUserList == '') {\r\n\t\t\t\tvm.showFailure(\"Please select users.\")\r\n\t\t\t} else {\r\n\t\t\t\tJobDetailViewNewService.AssignTicketsTimeline(loggedinUser, AllUserList, token).then(function (resp) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (resp && resp.status == '200') {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t\t// scheduler.clearAll();\r\n\r\n\t\t\t\t\t\t// $timeout(function () {\r\n\t\t\t\t\t\t// vm.mapMarkers=[];\r\n\t\t\t\t\t\t// vm.AssignModal.close();\r\n\t\t\t\t\t\t// GetSchedulingEventforToday(loggedinUser);\r\n\t\t\t\t\t\t// if(vm.TicketStatus==\"New\"){\r\n\t\t\t\t\t\t// \t vm.GetTicketsForAssignation();\r\n\t\t\t\t\t\t// }else if(vm.TicketStatus==\"ReadyToAssign\"){\r\n\t\t\t\t\t\t// \tvm.getReadyToAssign();\r\n\t\t\t\t\t\t// }\r\n\r\n\r\n\t\t\t\t\t\t// }, 1500);\r\n\t\t\t\t\t\t// if(vm.Mode=='Map') {\r\n\t\t\t\t\t\t// $timeout(function () {\r\n\t\t\t\t\t\t// \t vm.mapMarkers=[];\r\n\t\t\t\t\t\t// \t vm.AssignModal.close();\r\n\t\t\t\t\t\t// }, 1500);\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t} \r\n\t\t\t\t\telse if (resp.status == 206) {\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t\t }\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.getCustomerJobCard = function () {\r\n\t\t\tJobDetailViewNewService.getCustomerJobCardbyJobId(loggedinUser, vm.TicketId, token, function (data) {\r\n\t\t\t\tvm.JobLatitude = data.JobLatitude;\r\n\t\t\t\tvm.JobLongitude = data.JobLongitude;\r\n\t\t\t\tvm.FELatitude = data.FELatitude;\r\n\t\t\t\tvm.FELongitude = data.FELongitude;\r\n\t\t\t\tvm.contactnumber = data.FEContactNumber;\r\n\t\t\t\tvm.jobtype = data.Description;\r\n\t\t\t\tvm.name = data.FEName;\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t// $log.log(\"res of getCustomerJobCard=\" + data);\r\n\t\t\t\tvm.customerJobCard = data;\r\n\t\t\t\tif ($localStorage.rateJobParams) {\r\n\t\t\t\t\tvm.customerJobCard.userRole = $localStorage.Role;\r\n\t\t\t\t\tvm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n\t\t\t\t\tvm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n\t\t\t\t\tdelete $localStorage.rateJobParams;\r\n\t\t\t\t}\r\n\t\t\t\tif (data && data.JobStatus == 'PaymentDone') {\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinitMap();\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Unable to reach server\");\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.getTracking = function () {\r\n\r\n\t\t\tif ((vm.TicketInfo.TicketStatus == 'New' || vm.TicketInfo.TicketStatus == 'Hold' || vm.TicketInfo.TicketStatus == 'Broadcasted' || vm.TicketInfo.TicketStatus == 'ReadyToAssign') && vm.TicketInfo.IsTrackingAllowed == true) {\r\n\t\t\t\tvm.superPower = true;\r\n\t\t\t\tdisplayJobOnMap();\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif( (vm.TicketInfo.TicketStatus == 'Assigned'|| vm.TicketInfo.TicketStatus == 'Rejected' || vm.TicketInfo.TicketStatus == 'Approved' || vm.TicketInfo.TicketStatus == 'Completed' ) && vm.TicketInfo.UserId && vm.TicketInfo.IsTrackingAllowed == true){\r\n\t\t\t\t\tvm.showMapPermision = true;\r\n\t\t\t\t\tvm.superPower = true;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tvm.showMapPermision = false;\r\n\t\t\t\t}\r\n\t\t\t\tvm.getCustomerJobCard();\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t$scope.slide = false;\r\n\t\tvm.customergetTracking = function () { \r\n\t\t\tcustomerinitMap();\r\n\t\t\tif($scope.slide == false) {\r\n\t\t\t\t$scope.slide = true;\r\n\t\t\t} else {\r\n\t\t\t\t$scope.slide = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// -------------------------------------------------------------------------------\r\n\t\t// Tracking code goes here\r\n\t\t\r\n\t\tvm.makeUserMarker = function (position, icon, map) {\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: position,\r\n\t\t\t\tmap: map,\r\n\t\t\t\ticon: icon\r\n\t\t\t});\r\n\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t(function (marker, customerJobCard) {\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.setContent(\"

\" + vm.name + \"

\");\r\n\t\t\t\t\t$scope.InfoWindow.open($scope.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.close(vm.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t})(marker, vm.customerJobCard);\r\n\r\n\t\t\t//Plotting the Marker on the Map.\r\n\t\t\t$scope.Latlngbounds.extend(marker.position);\r\n\r\n\t\t}\r\n\r\n\t\tvm.makeJobMarker = function (position, icon, map) {\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: position,\r\n\t\t\t\tmap: map,\r\n\t\t\t\ticon: icon\r\n\t\t\t});\r\n\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t(function (marker, customerJobCard) {\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.setContent(\"

\" + vm.TicketInfo.ConsumerName + \"

\" + ' ' + vm.TicketInfo.TicketId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.TicketInfo.ConsumerContact);\r\n\t\t\t\t\t$scope.InfoWindow.open($scope.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.close(vm.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t})(marker, vm.customerJobCard);\r\n\r\n\t\t\t//Plotting the Marker on the Map.\r\n\t\t\t$scope.Latlngbounds.extend(marker.position);\r\n\t\t}\r\n\r\n\r\n\t\tvm.customermakeUserMarker = function (position, icon, map) {\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: position,\r\n\t\t\t\tmap: map,\r\n\t\t\t\ticon: icons.custstart\r\n\t\t\t});\r\n\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t(function (marker, customerJobCard) {\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.setContent(\"

Address updated by customer

\" + ' ' + vm.TicketInfo.OrignalLatitude + \"\" + ' ' + vm.TicketInfo.OrignalLongitude);\t\t\t\t\t$scope.InfoWindow.open($scope.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.close(vm.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t})(marker, vm.customerJobCard);\r\n\r\n\t\t\t//Plotting the Marker on the Map.\r\n\t\t\t$scope.Latlngbounds.extend(marker.position);\r\n\r\n\t\t}\r\n\r\n\t\tvm.customermakeJobMarker = function (position, icon, map) {\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: position,\r\n\t\t\t\tmap: map,\r\n\t\t\t\ticon: icon\r\n\t\t\t});\r\n\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t(function (marker, customerJobCard) {\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.setContent(\"

\" + vm.TicketInfo.ConsumerName + \"

\" + ' ' + vm.TicketInfo.Latitude + \" \" + ' ' + vm.TicketInfo.Longitude);\t\t\t\t\t$scope.InfoWindow.open($scope.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.close(vm.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t})(marker, vm.customerJobCard);\r\n\r\n\t\t\t//Plotting the Marker on the Map.\r\n\t\t\t$scope.Latlngbounds.extend(marker.position);\r\n\t\t}\r\n\r\n\t\tfunction initMap() {\r\n\t\t\tvar pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n\t\t\t\tpointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n\t\t\t\t// center = new google.maps.LatLng(51.3, 0.8),\r\n\t\t\t\tmyOptions = {\r\n\t\t\t\t\tzoom: 8,\r\n\t\t\t\t\tzoomControl: false,\r\n\t\t\t\t\tscaleControl: true,\r\n\t\t\t\t\tmapTypeControl: false,\r\n\t\t\t\t\tstreetViewControl: false,\r\n\t\t\t\t\tgestureHandling: 'greedy',\r\n\t\t\t\t\t// center: center,\r\n\t\t\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP\r\n\t\t\t\t},\r\n\r\n\t\t\t\tmap = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n\t\t\t\t// Instantiate a directions service.\r\n\t\t\t\tdirectionsService = new google.maps.DirectionsService,\r\n\t\t\t\tdirectionsDisplay = new google.maps.DirectionsRenderer({\r\n\t\t\t\t\tmap: map\r\n\t\t\t\t}),\r\n\t\t\t\tduration = document.getElementById('duration');\r\n\t\t\tdistance = document.getElementById('distance');\r\n\t\t\tflightPath = new google.maps.Polyline({\r\n\t\t\t\tpath: [pointA, pointB],\r\n\t\t\t\t// geodesic: true,\r\n\t\t\t\tstrokeColor: 'red',\r\n\t\t\t});\r\n\t\t\t$scope.InfoWindow = new google.maps.InfoWindow();\r\n\t\t\t$scope.Latlngbounds = new google.maps.LatLngBounds();\r\n\t\t\t// click on marker B to get route from A to B\r\n\t\t\tcalculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n\t\t\tvar travelMode = \"DRIVING\";\r\n\t\t\tvar icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n\t\t}\r\n\r\n\r\n\t\tfunction customerinitMap() {\r\n\t\t\tvar orgLat = vm.TicketInfo.OrignalLatitude;\r\n\t\t\tvar orgLong = vm.TicketInfo.OrignalLongitude;\r\n\t\t\tvar origLatLong = new google.maps.LatLng(vm.TicketInfo.Latitude, vm.TicketInfo.Longitude);\r\n\t\t\tvar custUpdatedLatLong = new google.maps.LatLng(vm.TicketInfo.OrignalLatitude, vm.TicketInfo.OrignalLongitude);\r\n\t\t\t// function custUpdatedLatLong(orgLat) {\r\n\t\t\t// \treturn isFinite(orgLat) && Math.abs(orgLat) <= 90;\r\n\t\t\t// }\r\n\t\t\t \r\n\t\t\t// function custUpdatedLatLong(orgLong) {\r\n\t\t\t// \treturn isFinite(orgLong) && Math.abs(orgLong) <= 180;\r\n\t\t\t// }\r\n\t\t\t// const regexExp = /^((\\-?|\\+?)?\\d+(\\.\\d+)?),\\s*((\\-?|\\+?)?\\d+(\\.\\d+)?)$/gi;\r\n\t\t\tif((orgLat > 0 && orgLat <= 90) && (orgLong > 0 && orgLong <= 180)) {\r\n\t\t\t\tvar myOptions = {\r\n\t\t\t\t\tzoom: 8,\r\n\t\t\t\t\tzoomControl: false,\r\n\t\t\t\t\tscaleControl: true,\r\n\t\t\t\t\tmapTypeControl: false,\r\n\t\t\t\t\tstreetViewControl: false,\r\n\t\t\t\t\tgestureHandling: 'greedy',\r\n\t\t\t\t\t// center: center,\r\n\t\t\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP\r\n\t\t\t\t},\r\n\r\n\t\t\t\tmap = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n\t\t\t\t// Instantiate a directions service.\r\n\t\t\t\tdirectionsService = new google.maps.DirectionsService,\r\n\t\t\t\tdirectionsDisplay = new google.maps.DirectionsRenderer({\r\n\t\t\t\t\tmap: map\r\n\t\t\t\t}),\r\n\t\t\t\tduration = document.getElementById('duration');\r\n\t\t\t\tdistance = document.getElementById('distance');\r\n\t\t\t\tflightPath = new google.maps.Polyline({\r\n\t\t\t\t\tpath: [origLatLong, custUpdatedLatLong],\r\n\t\t\t\t\tstrokeColor: 'red',\r\n\t\t\t\t});\r\n\t\t\t\t$scope.InfoWindow = new google.maps.InfoWindow();\r\n\t\t\t\t$scope.Latlngbounds = new google.maps.LatLngBounds();\r\n\t\t\t\tcustcalculateAndDisplayRoute(directionsService, directionsDisplay, origLatLong, custUpdatedLatLong, distance, duration, map);\r\n\t\t\t\tvar travelMode = \"DRIVING\";\r\n\t\t\t\tvar icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n\t\t\t} else {\r\n\t\t\t\tvar mapOptions = {\r\n\t\t\t\t\tzoom: 15,\r\n\t\t\t\t\tscaleControl: true,\r\n\t\t\t\t\tgestureHandling: 'greedy',\r\n\t\t\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP,\r\n\t\t\t\t\tcenter: origLatLong\r\n\t\t\t\t}\r\n\t\t\t\tvar map = new google.maps.Map(document.getElementById(\"map-canvas\"), mapOptions);\r\n\t\r\n\t\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\t\tposition: origLatLong,\r\n\t\t\t\t\ticon: icons.start\r\n\t\t\t\t});\r\n\t\r\n\t\t\t\t$scope.InfoWindow = new google.maps.InfoWindow();\r\n\t\t\t\t$scope.Latlngbounds = new google.maps.LatLngBounds();\r\n\t\r\n\t\t\t\tvar ticketinformation = vm.TicketInfo;\r\n\t\r\n\t\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t\t(function (marker, ticketinformation) {\r\n\t\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t\t$scope.InfoWindow.setContent(\"

Original Address

\" + ' ' + vm.TicketInfo.Latitude + ' ' + \" \"+ ' ' + vm.TicketInfo.Longitude);\r\n\t\t\t\t\t\t$scope.InfoWindow.open(map, marker);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t\t$scope.InfoWindow.close(map, marker);\r\n\t\t\t\t\t});\r\n\t\t\t\t})(marker, ticketinformation);\r\n\t\r\n\t\t\t\t// To add the marker to the map, call setMap();\r\n\t\t\t\tmarker.setMap(map);\t\t\t\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map) {\r\n\t\t\tvar selectedMode = \"DRIVING\";\r\n\t\t\tdirectionsService.route({\r\n\t\t\t\torigin: pointA,\r\n\t\t\t\tdestination: pointB,\r\n\t\t\t\tunitSystem: google.maps.UnitSystem.METRIC,\r\n\t\t\t\ttravelMode: google.maps.TravelMode[selectedMode]\r\n\t\t\t}, function (response, status) {\r\n\t\t\t\tif (status == google.maps.DirectionsStatus.OK) {\r\n\t\t\t\t\tnew google.maps.DirectionsRenderer({\r\n\t\t\t\t\t\tmap: map,\r\n\t\t\t\t\t\tdirections: response,\r\n\t\t\t\t\t\tsuppressMarkers: true,\r\n\t\t\t\t\t\tpolylineOptions: {\r\n\t\t\t\t\t\t\tstrokeColor: \"#000000\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tvar leg = response.routes[0].legs[0];\r\n\t\t\t\t\t//outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n\t\t\t\t\tdistance.innerHTML = response.routes[0].legs[0].distance.text;\r\n\t\t\t\t\tduration.innerHTML = response.routes[0].legs[0].duration.text;\r\n\t\t\t\t\tvm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n\t\t\t\t\tvm.makeJobMarker(leg.start_location, icons.start, map);\r\n\t\t\t\t\tvm.makeUserMarker(leg.end_location, icons.end, map);\r\n\t\t\t\t} else {\r\n\t\t\t\t\twindow.alert('Directions request failed due to ' + status);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tfunction custcalculateAndDisplayRoute(directionsService, directionsDisplay, origLatLong, custUpdatedLatLong, distance, duration, map) {\r\n\t\t\tvar selectedMode = \"DRIVING\";\r\n\t\t\tdirectionsService.route({\r\n\t\t\t\torigin: origLatLong,\r\n\t\t\t\tdestination: custUpdatedLatLong,\r\n\t\t\t\tunitSystem: google.maps.UnitSystem.METRIC,\r\n\t\t\t\ttravelMode: google.maps.TravelMode[selectedMode]\r\n\t\t\t}, function (response, status) {\r\n\t\t\t\tif (status == google.maps.DirectionsStatus.OK) {\r\n\t\t\t\t\tnew google.maps.DirectionsRenderer({\r\n\t\t\t\t\t\tmap: map,\r\n\t\t\t\t\t\tdirections: response,\r\n\t\t\t\t\t\tsuppressMarkers: true,\r\n\t\t\t\t\t\tpolylineOptions: {\r\n\t\t\t\t\t\t\tstrokeColor: \"#000000\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tvar leg = response.routes[0].legs[0];\r\n\t\t\t\t\t//outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n\t\t\t\t\tdistance.innerHTML = response.routes[0].legs[0].distance.text;\r\n\t\t\t\t\tduration.innerHTML = response.routes[0].legs[0].duration.text;\r\n\t\t\t\t\tvm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n\t\t\t\t\tvm.customermakeJobMarker(leg.start_location\t, icons.start, map);\r\n\t\t\t\t\tvm.customermakeUserMarker(leg.start_location, icons.custstart, map);\r\n\r\n\t\t\t\tvm.customermakeJobMarker = function (position, icon, map) {\r\n\t\t\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\t\t\tposition: position,\r\n\t\t\t\t\t\tmap: map,\r\n\t\t\t\t\t\ticon: icons.start\r\n\t\t\t\t\t});\r\n\t\t\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t\t\t(function (marker, customerJobCard) {\r\n\t\t\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t\t$scope.InfoWindow.setContent(\"

Original Address

\" + ' ' + vm.TicketInfo.Latitude + \"\" + ' ' + vm.TicketInfo.Longitude);\t\t\t\t\t$scope.InfoWindow.open($scope.Map, marker);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t\t\t$scope.InfoWindow.close(vm.Map, marker);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t})(marker, vm.customerJobCard);\r\n\r\n\t\t\t\t\t//Plotting the Marker on the Map.\r\n\t\t\t\t\t$scope.Latlngbounds.extend(marker.position);\r\n\t\t\t\t}\r\n\t\t\t\t(leg.end_location, icons.end, map);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\twindow.alert('Directions request failed due to ' + status);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\tvar icons = {\r\n\t\t\tstart: new google.maps.MarkerImage(\r\n\t\t\t\t// URL\r\n\t\t\t\tUIURL + '/assets/images/patterns/JOb_icon.png',\r\n\t\t\t\t// (width,height)\r\n\t\t\t\tnew google.maps.Size(44, 32),\r\n\t\t\t\t// The origin point (x,y)\r\n\t\t\t\tnew google.maps.Point(0, 0),\r\n\t\t\t\t// The anchor point (x,y)\r\n\t\t\t\tnew google.maps.Point(22, 32)),\r\n\t\t\tcuststart: new google.maps.MarkerImage(\r\n\t\t\t\t\t// URL\r\n\t\t\t\t\tUIURL + '/assets/images/patterns/about.png',\r\n\t\t\t\t\t// (width,height)\r\n\t\t\t\t\tnew google.maps.Size(44, 32),\r\n\t\t\t\t\t// The origin point (x,y)\r\n\t\t\t\t\tnew google.maps.Point(0, 0),\r\n\t\t\t\t\t// The anchor point (x,y)\r\n\t\t\t\t\tnew google.maps.Point(22, 32)),\r\n\t\t\tend: new google.maps.MarkerImage(\r\n\t\t\t\t// URL\r\n\t\t\t\tUIURL + '/assets/images/patterns/delivery-man1.png',\r\n\t\t\t\t// (width,height)\r\n\t\t\t\tnew google.maps.Size(44, 32),\r\n\t\t\t\t// The origin point (x,y)\r\n\t\t\t\tnew google.maps.Point(0, 0),\r\n\t\t\t\t// The anchor point (x,y)\r\n\t\t\t\tnew google.maps.Point(22, 32))\r\n\t\t};\r\n\r\n\r\n\t\tdisplayJobOnMap = function () {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tShowJobOnMap();\r\n\t\t\t}, 500);\r\n\t\t};\r\n\r\n\t\tfunction ShowJobOnMap() {\r\n\t\t\tvar pointA = new google.maps.LatLng(vm.TicketInfo.Latitude, vm.TicketInfo.Longitude);\r\n\t\t\t//var myLatlng = new google.maps.LatLng(-25.363882,131.044922);\r\n\t\t\tvar mapOptions = {\r\n\t\t\t\tzoom: 15,\r\n\t\t\t\tscaleControl: true,\r\n\t\t\t\tgestureHandling: 'greedy',\r\n\t\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP,\r\n\t\t\t\tcenter: pointA\r\n\t\t\t}\r\n\t\t\tvar map = new google.maps.Map(document.getElementById(\"map-canvas\"), mapOptions);\r\n\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: pointA,\r\n\t\t\t\ticon: icons.start\r\n\t\t\t});\r\n\r\n\t\t\t$scope.InfoWindow = new google.maps.InfoWindow();\r\n\t\t\t$scope.Latlngbounds = new google.maps.LatLngBounds();\r\n\r\n\t\t\tvar ticketinformation = vm.TicketInfo;\r\n\r\n\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t(function (marker, ticketinformation) {\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.setContent(\"

\" + vm.TicketInfo.ConsumerName + \"

\" + ' ' + vm.TicketInfo.ConsumerContact);\r\n\t\t\t\t\t$scope.InfoWindow.open(map, marker);\r\n\t\t\t\t});\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.close(map, marker);\r\n\t\t\t\t});\r\n\t\t\t})(marker, ticketinformation);\r\n\r\n\t\t\t// To add the marker to the map, call setMap();\r\n\t\t\tmarker.setMap(map);\r\n\r\n\t\t}\r\n\r\n\t\t// Start chat section and developed by Satya\r\n\r\n\t\tvm.getPicUrl = function (pic) {\r\n\t\t\treturn ImageUrl + \"/\" + pic;\r\n\t\t}\r\n\t\tvar pageloadselecteduserid = \"\";\r\n\t\tvar pageloadselectedusername = \"\";\r\n\t\tvm.getTicketUserList = function (loggedinUser, ticketId, token) {\r\n\t\t\tJobDetailViewNewService.GetUsersByTicketId(loggedinUser, ticketId, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.UserListByTicketId = resp.data;\r\n\t\t\t\t\tif (resp.data.length > 0) {\r\n\t\t\t\t\t\t//chatfooterrow.visible=true;\r\n\t\t\t\t\t\tpageloadselecteduserid = resp.data[0].UserId;\r\n\t\t\t\t\t\tpageloadselectedusername = resp.data[0].FirstName + \" \" + resp.data[0].LastName;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.getTicketUserList(loggedinUser, uTicketId, token);\r\n\t\tvm.PressEnter = function (event, chatReceiverId, messageText) {\r\n\t\t\tif (event.keyCode == '13') {\r\n\t\t\t\tvm.sendMessage(chatReceiverId, messageText);\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.LoadMessageToReadMessageStatus = function (TicketIdtoRead) {\r\n\t\t\tif (!TicketIdtoRead) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar query = firebase.firestore().collection('chats')\r\n\t\t\t\t.where(\"ReceiverId\", \"==\", loggedinUser);\r\n\t\t\tvar query1 = query.where(\"TicketId\", \"==\", TicketIdtoRead);\r\n\t\t\tquery1.get().then(function (querySnapshot) {\r\n\t\t\t\tif (querySnapshot.docs.length > 0) {\r\n\t\t\t\t\tquerySnapshot.forEach(function (doc) {\r\n\t\t\t\t\t\tvar message = doc.data();\r\n\t\t\t\t\t\tvar NotifyLength = message.Notify.length;\r\n\t\t\t\t\t\tvar MessageStatusLength = message.MessageStatus.length;\r\n\t\t\t\t\t\tvar messageLength = message.messages.length;\r\n\t\t\t\t\t\tvar TotalNewMessageNotify = messageLength - NotifyLength;\r\n\t\t\t\t\t\tvar TotalNewMessageStatus = messageLength - MessageStatusLength;\r\n\t\t\t\t\t\tvar docRef = firebase.firestore().collection('chats').doc(doc.id);\r\n\t\t\t\t\t\tvar newMessageStatusLength = 0;\r\n\t\t\t\t\t\tvar newNotifyLength = 0;\r\n\t\t\t\t\t\tfor (var i = 0; i < TotalNewMessageStatus; i++) {\r\n\t\t\t\t\t\t\tif (newMessageStatusLength == 0)\r\n\t\t\t\t\t\t\t\tnewMessageStatusLength = MessageStatusLength + 1;\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tnewMessageStatusLength = newMessageStatusLength + 1;\r\n\r\n\t\t\t\t\t\t\tdocRef.update({ MessageStatus: firebase.firestore.FieldValue.arrayUnion(newMessageStatusLength) });\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfor (var i = 0; i < TotalNewMessageNotify; i++) {\r\n\t\t\t\t\t\t\tif (newNotifyLength == 0)\r\n\t\t\t\t\t\t\t\tnewNotifyLength = NotifyLength + 1;\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tnewNotifyLength = newNotifyLength + 1;\r\n\r\n\t\t\t\t\t\t\tdocRef.update({ Notify: firebase.firestore.FieldValue.arrayUnion(newNotifyLength) });\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvar activeonchat = false;\r\n\t\tvm.getChatOnPageLoad = function () {\r\n\t\t\tactiveonchat = true;\r\n\t\t\tvm.getUserChat(pageloadselecteduserid, pageloadselectedusername, 0);\r\n\t\t}\r\n\r\n\t\tvm.getUserDetailstochat = function (ChatUserId) {\r\n\t\t\tvar username = \"\";\r\n\t\t\tvar upicture = \"\";\r\n\t\t\tfor (var i = 0; i < vm.UserListByTicketId.length; i++) {\r\n\t\t\t\tif (vm.UserListByTicketId[i].UserId == ChatUserId) {\r\n\t\t\t\t\tusername = vm.UserListByTicketId[i].FirstName + \" \" + vm.UserListByTicketId[i].LastName;\r\n\t\t\t\t\tupicture = vm.UserListByTicketId[i].Picture == '' || vm.UserListByTicketId[i].Picture == null ? 'assets/images/patterns/photo2.jpg' : vm.getPicUrl(vm.UserListByTicketId[i].Picture);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tUserName: username,\r\n\t\t\t\tuPicture: upicture\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tvm.PreviousIndex = 0;\r\n\t\tvar currentelementId = \"\";\r\n\t\tvar previouselementId = \"\";\r\n\t\tvm.chatReceiverId = \"\";\r\n\t\tvm.getUserChat = function (chatUserId, chatUserName, index) {\r\n\t\t\tvm.chatDisplayUserName = chatUserName;\r\n\t\t\tvm.chatReceiverId = chatUserId;\r\n\t\t\tvar ChatTicketId = \"\";\r\n\t\t\tif (loggedinUser < chatUserId)\r\n\t\t\t\tChatTicketId = uTicketId + \"_\" + loggedinUser + \"_\" + chatUserId;\r\n\t\t\telse\r\n\t\t\t\tChatTicketId = uTicketId + \"_\" + chatUserId + \"_\" + loggedinUser;\r\n\r\n\t\t\tvm.loadMessages(ChatTicketId);\r\n\r\n\t\t\tvm.LoadMessageToReadMessageStatus(ChatTicketId);\r\n\r\n\t\t\tif (vm.PreviousIndex == 0) {\r\n\t\t\t\tpreviouselementId = '#DivChatUserList' + vm.PreviousIndex;\r\n\t\t\t\t$(previouselementId).removeClass('chatuseractive');\r\n\t\t\t\tvm.PreviousIndex = index;\r\n\t\t\t\tcurrentelementId = '#DivChatUserList' + index;\r\n\t\t\t\t$(currentelementId).addClass('chatuseractive');\r\n\t\t\t}\r\n\t\t\telse if (vm.PreviousIndex != index) {\r\n\t\t\t\tcurrentelementId = '#DivChatUserList' + index;\r\n\t\t\t\tpreviouselementId = '#DivChatUserList' + vm.PreviousIndex;\r\n\t\t\t\t$(previouselementId).removeClass('chatuseractive');\r\n\t\t\t\t$(currentelementId).addClass('chatuseractive');\r\n\t\t\t\tvm.PreviousIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.getFileType = function(url){\r\n\t\t\tif(url==null || url==\"\")\r\n\t\t\t{\r\n\t\t\t return \"others\";\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tif(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0 ||url.indexOf(\".JPG\")>=0 || url.indexOf(\".JPEG\")>=0 || url.indexOf(\".PNG\")>=0 || url.indexOf(\".BMP\")>=0){\r\n\t\t\t\t\treturn \"image\";\r\n\t\t\t\t} else if(url.indexOf(\".pdf\")>=0 || url.indexOf(\".PDF\")>=0){\r\n\t\t\t\t\treturn \"pdf\";\r\n\t\t\t\t} else if(url.indexOf(\".xls\")>=0 || url.indexOf(\".xlsx\")>=0 ||url.indexOf(\".XLS\")>=0 || url.indexOf(\".XLSX\")>=0){\r\n\t\t\t\t return \"xls\"; \r\n\t\t\t\t} else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0 || url.indexOf(\".DOC\")>=0 || url.indexOf(\".DOCX\")>=0){\r\n\t\t\t\t\treturn \"doc\";\r\n\t\t\t\t} \r\n\t\t\t\telse {\r\n\t\t\t\t\treturn \"others\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t }\r\n\r\n\t\t vm.ViewJobCombo = function (ticket){ \r\n\t\t\t\t$localStorage.backToOldJobList = '';\r\n\t\t\t\t$localStorage.previousPage = 'jobticketcopy';\r\n\t\t\t\t$state.go('index.JobDetailViewCombo', {\r\n\t\t\t\t\tticketId: ticket\r\n\t\t\t\t}); \r\n\t\t\t}\r\n\r\n\r\n\t\tvm.createMessages = function (ticketId, subMessagedata, chatreceiverid) {\r\n\t\t\tvar data = {\r\n\t\t\t\tTicketId: ticketId,\r\n\t\t\t\tNotify: [],\r\n\t\t\t\tMessageStatus: [],\r\n\t\t\t\tReceiverId: chatreceiverid,\r\n\t\t\t\tCreateDate: firebase.firestore.FieldValue.serverTimestamp(),\r\n\t\t\t\tmessages: [subMessagedata]\r\n\t\t\t};\r\n\t\t\tvar docRef = firebase.firestore().collection('chats').add(data);\r\n\t\t}\r\n\r\n\t\tvm.sendMessage = function (chatreceiverid, content) {\r\n\t\t\tif (!content) {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please enter message to chat.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvar ChatTicketId = \"\";\r\n\t\t\t\tif (loggedinUser < chatreceiverid)\r\n\t\t\t\t\tChatTicketId = uTicketId + \"_\" + loggedinUser + \"_\" + chatreceiverid;\r\n\t\t\t\telse\r\n\t\t\t\t\tChatTicketId = uTicketId + \"_\" + chatreceiverid + \"_\" + loggedinUser;\r\n\r\n\t\t\t\t//var status = 'New';\r\n\t\t\t\tvar url = '';\r\n\t\t\t\tvar messagetype = 'Text';\r\n\r\n\t\t\t\tvar subMessagedata = {\r\n\t\t\t\t\tSenderId: loggedinUser,\r\n\t\t\t\t\tReceiverId: chatreceiverid,\r\n\t\t\t\t\tUrl: url,\r\n\t\t\t\t\tMessageType: messagetype,\r\n\t\t\t\t\tTimestamp: new Date(),\r\n\t\t\t\t\tContent: content\r\n\t\t\t\t};\r\n\r\n\t\t\t\tvar query = firebase.firestore().collection(\"chats\")\r\n\t\t\t\t\t.where(\"TicketId\", \"==\", ChatTicketId);\r\n\r\n\t\t\t\tquery.get().then(function (querySnapshot) {\r\n\t\t\t\t\tif (querySnapshot.docs.length > 0) {\r\n\t\t\t\t\t\tquerySnapshot.forEach(function (doc) {\r\n\r\n\t\t\t\t\t\t\tif (doc.data().TicketId == ChatTicketId) {\r\n\t\t\t\t\t\t\t\tvar docRef = firebase.firestore().collection('chats').doc(doc.id);\r\n\t\t\t\t\t\t\t\tdocRef.update({ ReceiverId: chatreceiverid });\r\n\t\t\t\t\t\t\t\tdocRef.update({ messages: firebase.firestore.FieldValue.arrayUnion(subMessagedata) });\r\n\t\t\t\t\t\t\t\t//vm.LoadMessageToReadMessageStatus(ChatTicketId);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tvm.createMessages(ChatTicketId, subMessagedata, chatreceiverid);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.createMessages(ChatTicketId, subMessagedata, chatreceiverid);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tcontent = \"\";\r\n\t\t\tvm.messageText = \"\";\r\n\t\t}\r\n\r\n\t\t// Loads chat messages history and listens for upcoming ones.\r\n\t\tvm.loadMessages = function (chatticketid) {\r\n\t\t\tvar query = firebase.firestore()\r\n\t\t\t\t.collection('chats')\r\n\t\t\t\t.where(\"TicketId\", \"==\", chatticketid)\r\n\t\t\t\t.limit(1);\r\n\t\t\t// Start listening to the query.\r\n\t\t\tvar unsubscribe = query.onSnapshot(function (snapshot) {\r\n\t\t\t\tvar allMessage = \"\";\r\n\t\t\t\tsnapshot.docChanges().forEach(function (change) {\r\n\r\n\t\t\t\t\tif (change.type === 'removed') {\r\n\t\t\t\t\t\t// deleteMessage(change.doc.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvar message = change.doc.data();\r\n\r\n\t\t\t\t\t\tallMessage = \"
\";\r\n\t\t\t\t\t\tfor (var i = 0; i < message.messages.length; i++) {\r\n\t\t\t\t\t\t\tif (message.messages.length > 0) {\r\n\t\t\t\t\t\t\t\tvar uPicture = loggedinUserImage == '' || loggedinUserImage == null ? 'assets/images/patterns/photo2.jpg' : vm.getPicUrl(loggedinUserImage);\r\n\t\t\t\t\t\t\t\tif (message.messages[i].SenderId == loggedinUser) {\r\n\t\t\t\t\t\t\t\t\tvar Rightcontent = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Text\")\r\n\t\t\t\t\t\t\t\t\t\tRightcontent = \"\" + message.messages[i].Content + \"\"\r\n\r\n\t\t\t\t\t\t\t\t\tvar RightuploadImage = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Image\") {\r\n\t\t\t\t\t\t\t\t\t\tRightuploadImage += \"\"\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tvar Rightuploadpdf = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"PDF\")\r\n\t\t\t\t\t\t\t\t\t\tRightuploadpdf = \"\"\r\n\t\t\t\t\t\t\t\t\tvar Rightuploadvideo = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Video\")\r\n\t\t\t\t\t\t\t\t\t\tRightuploadvideo = \"
\"\r\n\r\n\t\t\t\t\t\t\t\t\tallMessage += \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \" \" + loggedinUserName + \" \"\r\n\t\t\t\t\t\t\t\t\t\t+ \" \" + moment.unix(message.messages[i].Timestamp.seconds).format(\"ddd MMM DD YYYY - h:mm:ss\") + \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ Rightcontent\r\n\t\t\t\t\t\t\t\t\t\t+ RightuploadImage\r\n\t\t\t\t\t\t\t\t\t\t+ Rightuploadpdf\r\n\t\t\t\t\t\t\t\t\t\t+ Rightuploadvideo\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if (message.messages[i].ReceiverId == loggedinUser) {\r\n\t\t\t\t\t\t\t\t\tvar Leftcontent = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Text\")\r\n\t\t\t\t\t\t\t\t\t\tLeftcontent = \"\" + message.messages[i].Content + \"\"\r\n\r\n\t\t\t\t\t\t\t\t\tvar LeftuploadImage = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Image\") {\r\n\t\t\t\t\t\t\t\t\t\tLeftuploadImage += \"\"\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tvar Leftuploadpdf = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"PDF\")\r\n\t\t\t\t\t\t\t\t\t\tLeftuploadpdf = \"\"\r\n\t\t\t\t\t\t\t\t\tvar Leftuploadvideo = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Video\")\r\n\t\t\t\t\t\t\t\t\t\tLeftuploadvideo = \"
\"\r\n\r\n\t\t\t\t\t\t\t\t\tallMessage += \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \" \" + vm.getUserDetailstochat(message.messages[i].SenderId).UserName + \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ \" \" + moment.unix(message.messages[i].Timestamp.seconds).format(\"ddd MMM DD YYYY - h:mm:ss\") + \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ Leftcontent\r\n\t\t\t\t\t\t\t\t\t\t+ LeftuploadImage\r\n\t\t\t\t\t\t\t\t\t\t+ Leftuploadpdf\r\n\t\t\t\t\t\t\t\t\t\t+ Leftuploadvideo\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tallMessage += \"
\";\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$('#chatMessageBox').html(allMessage);\r\n\t\t\t\tallMessage = \"\";\r\n\t\t\t\tvar objDiv = document.getElementById(\"scrolldiv\");\r\n\t\t\t\tobjDiv.scrollTop = objDiv.scrollHeight;\r\n\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.saveImageMessage = function (file, chatreceiverid) {\r\n\t\t\t// TODO 9: Posts a new image as a message.\r\n\t\t\t// 1 - We add a message with a loading icon that will get updated with the shared image.\r\n\t\t\tvar ChatTicketId = \"\";\r\n\t\t\tif (loggedinUser < chatreceiverid)\r\n\t\t\t\tChatTicketId = uTicketId + \"_\" + loggedinUser + \"_\" + chatreceiverid;\r\n\t\t\telse\r\n\t\t\t\tChatTicketId = uTicketId + \"_\" + chatreceiverid + \"_\" + loggedinUser;\r\n\r\n\t\t\tvar query = firebase.firestore().collection(\"chats\")\r\n\t\t\t\t.where(\"TicketId\", \"==\", ChatTicketId)\r\n\r\n\t\t\tquery.get().then(function (querySnapshot) {\r\n\t\t\t\tif (querySnapshot.docs.length > 0) {\r\n\t\t\t\t\tquerySnapshot.forEach(function (doc) {\r\n\t\t\t\t\t\tif (doc.data().TicketId == ChatTicketId) {\r\n\t\t\t\t\t\t\t//var status = 'New';\r\n\t\t\t\t\t\t\tvar url = '';\r\n\t\t\t\t\t\t\tvar messagetype = '';\r\n\t\t\t\t\t\t\tif (file.type == \"application/pdf\")\r\n\t\t\t\t\t\t\t\tmessagetype = 'PDF';\r\n\t\t\t\t\t\t\telse if (file.type == \"image/jpg\" || file.type == \"image/png\" || file.type == \"image/jpeg\" || file.type == \"image/bmp\")\r\n\t\t\t\t\t\t\t\tmessagetype = 'Image';\r\n\t\t\t\t\t\t\telse if (file.type == \"video/mp4\")\r\n\t\t\t\t\t\t\t\tmessagetype = 'Video';\r\n\r\n\t\t\t\t\t\t\tvar filePath = loggedinUser + '/' + doc.id + '/' + file.name;\r\n\t\t\t\t\t\t\treturn firebase.storage().ref(filePath).put(file).then(function (fileSnapshot) {\r\n\t\t\t\t\t\t\t\t// 3 - Generate a public URL for the file.\r\n\t\t\t\t\t\t\t\treturn fileSnapshot.ref.getDownloadURL().then(function (url) {\r\n\t\t\t\t\t\t\t\t\t// 4 - Update the chat message placeholder with the image's URL.\r\n\t\t\t\t\t\t\t\t\tvar subMessagedata = {\r\n\t\t\t\t\t\t\t\t\t\tSenderId: loggedinUser,\r\n\t\t\t\t\t\t\t\t\t\tReceiverId: chatreceiverid,\r\n\t\t\t\t\t\t\t\t\t\tUrl: url,\r\n\t\t\t\t\t\t\t\t\t\tMessageType: messagetype,\r\n\t\t\t\t\t\t\t\t\t\tTimestamp: new Date(),\r\n\t\t\t\t\t\t\t\t\t\tContent: '',\r\n\t\t\t\t\t\t\t\t\t\tstorageUri: fileSnapshot.metadata.fullPath\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\tvar docRef = firebase.firestore().collection('chats').doc(doc.id);\r\n\t\t\t\t\t\t\t\t\tdocRef.update({ ReceiverId: chatreceiverid });\r\n\t\t\t\t\t\t\t\t\treturn docRef.update({ messages: firebase.firestore.FieldValue.arrayUnion(subMessagedata) });\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.changeChatFile = function (selector) {\r\n\t\t\tangular.element(selector).trigger(\"click\");\r\n\t\t}\r\n\t\t$scope.uploadChatImageFile = function (files) {\r\n\t\t\tvar file = files.files[0];\r\n\t\t\tif (file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0 || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0 || file.type.indexOf(\"application/pdf\") >= 0) {\r\n\t\t\t\tif (file.size > 2097152) {\r\n\t\t\t\t\talert(\"File size must under 2 MB\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t} else vm.saveImageMessage(file, vm.chatReceiverId);\r\n\t\t\t}\r\n\t\t\telse if (file.type.indexOf(\"video/mp4\") >= 0) {\r\n\t\t\t\tvm.saveImageMessage(file, vm.chatReceiverId);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t\r\n\t\t\t\talert(\"Please upload image, pdf and mp4 video only\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// End chat section\r\n\r\n\r\n\t\tvar scdt = new Date();\r\n\t\tscdt.setMinutes(scdt.getMinutes() + 30);\r\n\t\tvm.SourceCreationDate = scdt;\r\n\t\tvar pcdt = new Date();\r\n\t\tpcdt.setDate(pcdt.getDate() + 7);\r\n\t\tvm.PlannedClosureDate = pcdt;\r\n\r\n\t\tvm.openCalendar = function (e, picker) {\r\n\t\t\tvm.AppointmentsDate.open = true;\r\n\t\t\tvm.ClosureDateTime.open = true;\r\n\t\t};\r\n\r\n\t\tvar Closuredatelimit = new Date();\r\n\t\t// Closuredatelimit.setMinutes(Closuredatelimit.getMinutes() + 1)\r\n\t\tvm.ClosureDateTime = { date: '', datepickerOptions: { minDate: Closuredatelimit } };\r\n\r\n\t\tvar datelimit = new Date();\r\n\r\n\t\tdatelimit.setMinutes(datelimit.getMinutes() + 1)\r\n\t\tvm.AppointmentsDate = { date: '', datepickerOptions: { minDate: datelimit }, dateFormat: \"yy/mm/dd\" };\r\n\r\n\r\n\t\tvm.openCalendarEndDate = function (e, picker) {\r\n\t\t\tvm.AppointmentsEndDate.open = true;\r\n\t\t};\r\n\r\n\t\tvar EndDatelimit = new Date();\r\n\t\tEndDatelimit.setMinutes(EndDatelimit.getMinutes() + 1)\r\n\t\tvm.AppointmentsEndDate = { date: '', datepickerOptions: { minDate: EndDatelimit } };\r\n\r\n\t\tvm.ViewProfile = function (UserId,UserType) {\r\n \r\n\t\t\tJobDetailViewNewService.getUserProfileData(loggedinUser,UserId, token).then(function(res){\r\n\t\t\t vm.UserProfileData = res.data;\r\n\t\t\t vm.customerrating = Number(vm.UserProfileData.CustomerRating).toFixed(1);\r\n\t\t\t if(vm.UserProfileData){\r\n\t\t\t\tvm.AddPreferredVendorModal = $uibModal.open({\r\n\t\t\t\t templateUrl: 'UserProfile.html',\r\n\t\t\t\t windowClass:'schedulerModal',\r\n\t\t\t\t scope: $scope,\r\n\t\t\t\t reload:true\r\n\t\t\t\t });\r\n\t\t\t }else{\r\n\t\t\t\tvm.showFailure('Failed','User Not found');\r\n\t\t\t }\r\n\t\t\t});\r\n\t\t\t \r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tvm.UserProfileClose = function(){\r\n\t\t\t\tvm.AddPreferredVendorModal.close();\r\n\t\t\t }\r\n\t\t\t \r\n\t\t\t vm.GetServiceTax = function(data)\r\n\t\t\t {\t\t\t\t \r\n\t\t\t\t vm.GSTPercentange =data;\r\n\t\t\t }\r\n\t\t\t vm.GetMobCommission = function(data)\r\n\t\t\t { \r\n\t\t\t\tvm.MobiforceCommission =data;\r\n\t\t\t }\r\n\t\t\t JobDetailViewNewService.GetServiceTax(loggedinUser, token, vm.GetServiceTax);\r\n\t\t\t JobDetailViewNewService.GetMobCommission(loggedinUser, token, vm.GetMobCommission);\r\n\t\t\t vm.calculatePrice = function () {\t\r\n\r\n\t\t\t\tif(vm.serviceType == 'Free'){\r\n\t\t\t\r\n\t\t\t\t\tif(vm.TicketInfoEdit.BroadcastRate > 0){\t\t\r\n\t\t\t\t // vm.TicketInfo.FreelancerRate = 0; \r\n\t\t\t\t \r\n\t\t\t\t\tvm.commission = vm.TicketInfoEdit.BroadcastRate * (vm.MobiforceCommission) / 100;\r\n\t\t\t\t\tvm.freelancerPricetemp = vm.TicketInfoEdit.BroadcastRate - vm.commission;\r\n\t\t\t\t\tvm.tPrice = vm.TicketInfoEdit.BroadcastRate;\r\n\t\t\t\t\tvm.tax = (Number(vm.tPrice) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n\t\t\t\t\tvm.TicketInfo.FreelancerRate = vm.freelancerPricetemp;\r\n\t\t\t\t }\r\n\t\t\t\t else{\r\n\t\t\t\t\tvm.tPrice = \"\";\r\n\t\t\t\t\t vm.commission = \"\";\r\n\t\t\t\t\t vm.tax = \"\";\r\n\t\t\t\t\t vm.freelancerPricetemp = '';\r\n\t\t\t\t\t vm.TicketInfo.FreelancerRate = \"\";\r\n\t\t\t\t}\r\n\t\t\t }else if(vm.serviceType =='Paid'){\r\n\t\t\t\r\n\t\t\t\tif(vm.TicketInfoEdit.BroadcastRate > 0){\t\t\r\n\t\t\t\t // vm.freelancerPrice = 0; \r\n\t\t\t\t\tvm.commission = vm.TicketInfoEdit.BroadcastRate * (vm.MobiforceCommission) / 100;\r\n\t\t\t\t\tvm.freelancerPricetemp = vm.TicketInfoEdit.BroadcastRate - vm.commission;\r\n\t\t\t\t\tvm.tax = (Number(vm.TicketInfoEdit.BroadcastRate) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n\t\t\t\t\tvm.tPrice = (Number(vm.TicketInfoEdit.BroadcastRate) + Number(vm.tax));\r\n\t\t\t\t\tvm.TicketInfo.FreelancerRate = vm.freelancerPricetemp;\r\n\t\t\t\t }else{\r\n\t\t\t\t\t\tvm.tPrice = \"\";\r\n\t\t\t\t\t\t vm.commission = \"\";\r\n\t\t\t\t\t\t vm.tax = \"\";\r\n\t\t\t\t\t\t vm.freelancerPricetemp = '';\r\n\t\t\t\t\t\t vm.TicketInfo.FreelancerRate = \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t }\r\n\t\t\t vm.ConverttoDecimal = function(value) {\r\n \t\t\t\t\treturn (parseFloat(value).toFixed(2))\r\n\t\t\t }\r\n\r\n\t\t\t vm.calculateFreelancerPrice = function () {\t\r\n\t\t\t\tif(vm.serviceType =='Free'){\r\n\t\t\t\t\tif(vm.TicketInfo.FreelancerRate > 0){\t\t\r\n\t\t\t\t vm.TicketInfoEdit.BroadcastRate = 0; \r\n\t\t\t\t vm.freelancerPricetemp = vm.TicketInfo.FreelancerRate;\r\n\t\t\t\t vm.commission = (vm.TicketInfo.FreelancerRate * vm.MobiforceCommission)/(100-20) ;\r\n\t\t\t\t vm.tPrice = Number(vm.TicketInfo.FreelancerRate) + Number(vm.commission);\r\n\t\t\t\t vm.tax = vm.tPrice * (vm.GSTPercentange) / 100;\r\n\t\t\t\t \r\n\t\t\t\t vm.TicketInfoEdit.BroadcastRate = vm.tPrice;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvm.tPrice = \"\";\r\n\t\t\t\t\t\tvm.freelancerPricetemp = \"\";\r\n\t\t\t\t vm.commission = \"\";\r\n\t\t\t\t vm.tax = \"\";\r\n\t\t\t\t vm.TicketInfoEdit.BroadcastRate = '';\r\n\t\t\t\t\t}\r\n\t\t\t\r\n\t\t\t\t}else if(vm.serviceType=='Paid'){\r\n\t\t\t\r\n\t\t\t\tif(vm.TicketInfo.FreelancerRate > 0){\t\t\r\n\t\t\t\t vm.TicketInfoEdit.BroadcastRate = 0; \r\n\t\t\t\t vm.freelancerPricetemp = vm.TicketInfo.FreelancerRate;\r\n\t\t\t\t vm.commission = (vm.TicketInfo.FreelancerRate * vm.MobiforceCommission)/(100-vm.MobiforceCommission) ;\r\n\t\t\t\t vm.tax = ((Number(vm.TicketInfo.FreelancerRate) + Number(vm.commission)) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n\t\t\t\t vm.tPrice = Number(Number(vm.TicketInfo.FreelancerRate) + Number(vm.commission)) + Number(vm.tax);\r\n\t\t\t \r\n\t\t\t\t vm.TicketInfoEdit.BroadcastRate = Number(Number(vm.TicketInfo.FreelancerRate) + Number(vm.commission));\r\n\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvm.tPrice = \"\";\r\n\t\t\t\t\t\tvm.freelancerPricetemp = \"\";\r\n\t\t\t\t vm.commission = \"\";\r\n\t\t\t\t vm.tax = \"\";\r\n\t\t\t\t vm.TicketInfoEdit.BroadcastRate = '';\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t }\r\n\t\t\t }\r\n\t\t\t vm.OnLoadLineItemDetails = function(LineItemTicketId){\r\n\t\t\t\t \r\n\t\t\t\tvm.showTotal = true;\r\n\t\t\t\t\r\n\t\t\t\tJobDetailViewNewService.OnLoadLineItemDetails(loggedinUser, LineItemTicketId, token).then(function(resp){\r\n\t\t\t\t if (resp.status==200) {\r\n\t\t\t\t vm.LineItemList = resp.data.LineItemList;\r\n\t\t\t\t for (var i = 0; i < vm.LineItemList.length; i++) {\r\n\t\t\t\t\tvar tData = {\r\n\t\t\t\t\t\tLineItemDescription: vm.LineItemList[i].LineItemDescription,\r\n\t\t\t\t\t\tLineItemCategory: vm.LineItemList[i].LineItemCategory,\r\n\t\t\t\t\t\tLineItemPercentage : vm.LineItemList[i].LineItemPercentage,\r\n\t\t\t\t\t\tdLineItemWinPrice: vm.LineItemList[i].dLineItemWinPrice,\r\n\t\t\t\t\t\t// dFreelancerPrice: vm.LineItemList[i].dFreelancerPrice,\r\n\t\t\t\t\t\tLineItemQuantity: vm.LineItemList[i].LineItemQuantity,\r\n\t\t\t\t\t\tFreelancerPrice: vm.LineItemList[i].LineItemFreelancerPrice,\r\n\t\t\t\t\t\tLineItemRemark: vm.LineItemList[i].LineItemRemark,\r\n\t\t\t\t\t\tAddedFromField: vm.LineItemList[i].AddedFromField,\r\n\t\t\t\t\t\tLineItemCompanyProvided: vm.LineItemList[i].LineItemCompanyProvided,\r\n\t\t\t\t\t\tLineItemId: vm.LineItemList[i].LineItemId,\r\n\t\t\t\t\t\tLineItemCode: vm.LineItemList[i].LineItemCode,\t\t\t\r\n\t\t\t\t\t\tLineItemUnit: vm.LineItemList[i].LineItemUnit,\t\t\t\t\t\t\r\n\t\t\t\t\t\tLineItemAttachment: vm.LineItemList[i].LineItemAttachment,\r\n\t\t\t\t\t\tLineItemHSNCode: null,\r\n\t\t\t\t\t\tLineItemDisplayDescription: null,\r\n\t\t\t\t\t\t// LineItemRemark: null,\r\n\t\t\t\t\t\tdLineItemFreelancerPrice: vm.LineItemList[i].dLineItemFreelancerPrice,\r\n\t\t\t\t\t\tLineItemRemark: vm.LineItemList[i].LineItemRemark,\r\n\t\t\t\t\t\t// LineItemQuantity: \"1\",\r\n\t\t\t\t\t\tZOHOWarehouseName: vm.LineItemList[i].ZOHOWarehouseName,\r\n\t\t\t\t\t\tZOHOSalesOrderStatus: vm.LineItemList[i].ZOHOSalesOrderStatus,\r\n\t\t\t\t\t\tLineItemAction: null,\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t }\r\n\t\t\t\t\t vm.PriceLineItemList.push(tData);\r\n\t\t\t\t\t var _baseprice=0.0;\r\n\t\t\t\t\t var _dFprice=0.0;\r\n\t\t\t\t\t var _lineitemquantity = 0.0;\r\n\t\t\t\t\t var _lineitemfreelancerprice = 0.0;\r\n\t\t\t\t\t if(vm.LineItemList[i].dLineItemWinPrice==\"\" || vm.LineItemList[i].dLineItemWinPrice==null)\r\n\t\t\t\t\t\t\t_baseprice = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_baseprice = vm.LineItemList[i].dLineItemWinPrice;\r\n\r\n\t\t\t\t\t\tif(vm.LineItemList[i].dLineItemFreelancerPrice==\"\" || vm.LineItemList[i].dLineItemFreelancerPrice==null)\r\n\t\t\t\t\t\t\t_dFprice = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_dFprice = vm.LineItemList[i].dLineItemFreelancerPrice;\r\n\t\t\t\t\t\tif(vm.LineItemList[i].LineItemQuantity==\"\" || vm.LineItemList[i].LineItemQuantity==null)\r\n\t\t\t\t\t\t\t_lineitemquantity = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_lineitemquantity = vm.LineItemList[i].LineItemQuantity;\r\n\t\t\t\t\t\tif(vm.LineItemList[i].LineItemFreelancerPrice==\"\" || vm.LineItemList[i].LineItemFreelancerPrice==null)\r\n\t\t\t\t\t\t\t_lineitemfreelancerprice = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_lineitemfreelancerprice = vm.LineItemList[i].LineItemFreelancerPrice;\r\n\r\n\t\t\t\t\tif(vm.LineItemList[i].LineItemCategory !=\"Collection\" && vm.LineItemList[i].LineItemCategory !=\"Penalty\"&& vm.LineItemList[i].LineItemCategory !=\"AdvancedPayment\"){\r\n\r\n\t\t\t\t\t// if(vm.LineItemList[i].LineItemCategory !=\"General\"){\r\n\t\t\t\t\t vm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(_baseprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t vm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(_dFprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// else{\r\n\t\t\t\t\t\tif(vm.LineItemList[i].LineItemCompanyProvided==\"No\")\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t_baseprice=0.0;\r\n\t\t\t\t\t\t\t_dFprice=0.0;\r\n\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(_baseprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(_dFprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t// }\t\t\t \r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(vm.LineItemList[i].LineItemCategory ==\"Penalty\") {\r\n\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(_baseprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(_dFprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t \r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(vm.LineItemList[i].LineItemCategory ==\"AdvancedPayment\") {\r\n\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(_baseprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(_dFprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t \r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t }\r\n\t\t\t\t})\r\n\t\t\t }\r\n\t\t\t vm.OnLoadLineItemDetails(vm.TicketId);\r\n\t\t\t vm.GetAllJobLineItems = function(ticketId){\t\t\t\t \r\n\t\t\t\tJobDetailViewNewService.GetJobLineItem(loggedinUser, ticketId, token).then(function(resp){\r\n\t\t\t\t if (resp.status==200) {\r\n\t\t\t\t vm.JobItemList = resp.data;\r\n\t\t\t\t }\r\n\t\t\t\t})\r\n\t\t\t }\r\n\t\t\t vm.ActivityDescription=[];\r\n\t\t\t \r\n\t\t\t vm.getLineItemAcitivityDesc = function(LineItemCategoryType){\r\n\t\t\t\tvm.LineItemDisc=\"\";\r\n\t\t\t\tvar LineItemAcitivityArray = [];\r\n\t\t\t\t for (var i = 0; i < vm.JobItemList.length; i++) {\r\n\t\t\t\t\t if (vm.JobItemList[i].LineItemCategory == LineItemCategoryType) {\r\n\t\t\t\t\t\tLineItemAcitivityArray.push(vm.JobItemList[i]);\r\n\t\t\t\t\t }\r\n\t\t\t\t }\r\n\t\t\t\t vm.LineitemActivityList=LineItemAcitivityArray;\r\n\t\t\t\tif(LineItemCategoryType==\"Service\"){\r\n\t\t\t\t\tvm.fileuploadShow=false;\t\r\n\t\t\t\t\t vm.qunatityEnable=false;\r\n\t\t\t\t\t vm.PercentageEnable=false;\t\r\n\t\t\t\t}\r\n\t\t\t\tif(LineItemCategoryType==\"HW\"){\t\r\n\t\t\t\t vm.qunatityEnable=false; \r\n\t\t\t\t vm.fileuploadShow=true;\r\n\t\t\t\t vm.PercentageEnable=false;\t\r\n\t\t\t\t vm.disableProvided=false;\r\n\t\t\t\t} \r\n\t\t\t\tif(LineItemCategoryType==\"HWCollection\"){\t\r\n\t\t\t\t\tvm.IsBasePriceDisabled=false;\r\n\t\t\t\t\tvm.qunatityEnable=false; \r\n\t\t\t\t\tvm.fileuploadShow=true;\r\n\t\t\t\t\tvm.PercentageEnable=false;\t\r\n\t\t\t\t\tvm.disableProvided=false;\r\n\t\t\t\t }\r\n\t\t\t\tif(LineItemCategoryType==\"General\")\r\n\t\t\t\t{\r\n\t\t\t\t\tvm.qunatityEnable=true; \r\n\t\t\t\t\tvm.PercentageEnable=true;\r\n\t\t\t\t}\r\n\t\t\t\t vm.ActivityDescription = vm.getRemainingLineItems();\r\n\t\t\t\t}\r\n\t\t\t\tvm.LineItemCompanyProvidedChange = function(LineItemCompanyProvided,index){\r\n\t\t\t\t\tif(typeof index === \"undefined\"){\r\n\t\t\t\t\t if(LineItemCompanyProvided==\"Yes\"){ \r\n\t\t\t\t\t\tif((vm.LineItemCategoryType==\"HW\" || vm.LineItemCategoryType==\"Service\" ) && vm.LineItemList.LineItemDescription==\"Others\"){\r\n\t\t\t\t\t\t vm.LineItemList.dLineItemFreelancerPrice = 0;\r\n\t\t\t\t\t\t vm.CompanyProvidedEnable=true;\r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t if(vm.LineItemCategoryType==\"HW\" && vm.LineItemList.LineItemDescription==\"Others\"){\r\n\t\t\t\t\t\t\tvm.LineItemList.dLineItemFreelancerPrice = 0;\r\n\t\t\t\t\t\t\tvm.CompanyProvidedEnable=true;\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled=false;\r\n\t\t\t\t\t\t } \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(vm.LineItemCategoryType==\"Bonus\" || vm.LineItemCategoryType==\"Penalty\" ){\r\n\t\t\t\t\t\t\tvm.CompanyProvidedEnable=true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable=true; \r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t vm.LineItemList.origdLineItemFreelancerPrice = vm.LineItemList.dLineItemFreelancerPrice;\t\t\t\t\t \r\n\t\t\t\t\t\t vm.LineItemList.dLineItemFreelancerPrice = 0; \r\n\t\t\t\t\t\t vm.CompanyProvidedEnable=true;\r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t }\r\n\t\t\t\t\t else{\r\n\t\t\t\t\t\tif((vm.LineItemCategoryType==\"HW\" || vm.LineItemCategoryType==\"Service\" )&& vm.LineItemList.LineItemDescription==\"Others\"){ \r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=false; \r\n\t\t\t\t\t\t vm.CompanyProvidedEnable=false; \r\n\t\t\t\t\t\t if(vm.LineItemCategoryType==\"HW\" && vm.LineItemList.LineItemDescription==\"Others\"){\r\n\t\t\t\t\t\t \tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t\tvm.LineItemList.dLineItemFreelancerPrice = vm.LineItemList.dLineItemWinPrice?vm.LineItemList.dLineItemWinPrice:0; \r\n\t\t\t\t\t\t } \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{ \r\n\t\t\t\t\t\t vm.CompanyProvidedEnable=false;\r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t vm.LineItemList.dLineItemFreelancerPrice = vm.LineItemList.origdLineItemFreelancerPrice; \r\n\t\t\t\t\t\t} \r\n\t\t\t\t\t } \r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t if(LineItemCompanyProvided==\"Yes\"){ \r\n\t\t\t\t\t \tvm.PriceLineItemList[index].origdLineItemFreelancerPrice = vm.PriceLineItemList[index].dLineItemFreelancerPrice; \r\n\t\t\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice = 0; \r\n\t\t\t\t\t\tvm.CompanyProvidedEnable=true;\r\n\t\t\t\t\t\tvm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"HW\" && vm.PriceLineItemList[index].LineItemDescription==\"Others\"){ \r\n\t\t\t\t\t\t vm.PriceLineItemList[index].dLineItemFreelancerPrice = 0; \r\n\t\t\t\t\t\t vm.CompanyProvidedEnable=true;\r\n\t\t\t\t\t\t vm.FreelancrPriceEnable=true; \r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=false; \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t }\r\n\t\t\t\t\t else{ \r\n\t\t\t\t\t\tvm.CompanyProvidedEnable=false; \r\n\t\t\t\t\t\tvm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"HW\" ){\r\n\t\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemDescription==\"Others\"){\r\n\t\t\t\t\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice = vm.PriceLineItemList[index].dLineItemWinPrice;\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t \t\tvm.CompanyProvidedEnable=false;\r\n\t\t\t\t\t\t \t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t \t\tvm.IsBasePriceDisabled=false; \r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice = vm.PriceLineItemList[index].origdLineItemFreelancerPrice;\r\n\t\t\t\t }\t\t\t\t\t\t \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t }\r\n\t\t\t\t\t} \r\n\t\t\t\t }\r\n\t\t\t vm.LineItemEdit = function(index){\r\n\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"Collection\")\r\n\t\t\t\t{\r\n\t\t\t\t vm.IsBasePriceDisabled=true; \r\n\t\t\t\t vm.PercentageEnable=true; \r\n\t\t\t\t vm.disableProvided=true; \r\n\t\t\t\t vm.qunatityEnable=true;\r\n\t\t\t\t vm.FreelancrPriceEnable=false;\r\n\t\t \r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"General\")\r\n\t\t\t\t{\t\t\t\t\r\n\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\tvm.qunatityEnable=true; \r\n\t\t\t\t\tvm.disableProvided=true;\r\n\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"Service\")\r\n\t\t\t\t{\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"Service\" && vm.PriceLineItemList[index].LineItemDescription==\"Others\") \r\n\t\t\t\t\t{ \r\n\t\t\t\t\t \r\n\t\t\t\t\t vm.CompanyProvidedEnable=false;\r\n\t\t\t\t\t vm.IsBasePriceDisabled=false; \r\n\t\t\t\t\t vm.PercentageEnable=true;\r\n\t\t\t\t\t vm.disableProvided=true;\r\n\t\t\t\t\t vm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t vm.qunatityEnable=false;\r\n\t\t\t\t\t vm.disableProvided=true;\r\n\t\t\t\t\t vm.PercentageEnable=false;\r\n\t\t\t\t\t vm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t vm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"Bonus\" || vm.PriceLineItemList[index].LineItemCategory==\"Penalty\"){\t\t\r\n\t\t\t\t\t vm.qunatityEnable=true;\r\n\t\t\t\t\t vm.disableProvided=true;\r\n\t\t\t\t\t vm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t vm.FreelancrPriceEnable=false;\r\n\t\t\t\t}\r\n\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"AdvancedPayment\"){\t\t\r\n\t\t\t\t\tvm.qunatityEnable=false;\r\n\t\t\t\t\tvm.disableProvided=true;\r\n\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t }\r\n\r\n\t\t\t if(vm.PriceLineItemList[index].LineItemCategory==\"HW\")\r\n\t\t\t {\r\n\r\n\t\t\t\t\t vm.qunatityEnable=false;\r\n\t\t\t\t\t vm.disableProvided=false;\r\n\t\t\t\t\t if(vm.PriceLineItemList[index].LineItemCompanyProvided==\"Yes\")\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"HW\" && vm.PriceLineItemList[index].LineItemDescription==\"Others\") \r\n\t\t\t\t\t\t{\t\t\t\t\t \r\n\t\t\t\t\t\t vm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=false;\r\n\t\t\t\t\t\t vm.disableProvided=false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\t\tvm.disableProvided=true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t }\r\n\t\t\t\t\t else\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"HW\" && vm.PriceLineItemList[index].LineItemDescription==\"Others\") \r\n\t\t\t\t\t\t{\t\t\t\t\t \r\n\t\t\t\t\t\t vm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t vm.IsBasePriceDisabled=false;\r\n\t\t\t\t\t\t vm.disableProvided=false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t\tvm.disableProvided=false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t }\r\n\t\t\t\t\t\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\t\tvm.LineItemCompanyProvided=vm.PriceLineItemList[index].LineItemCompanyProvided;\r\n\r\n\t\t\t}\r\n\t\t\tvm.OnBasePriceChange = function()\r\n\t\t\t{\t\t\t \r\n\t\t\t //fl = bp-bp*(per/100)\r\n\t\t\t if(vm.LineItemList.LineItemPercentage==\"\" || parseFloat(vm.LineItemList.LineItemPercentage)<1)\r\n \t\tvm.LineItemList.LineItemPercentage=0.0;\r\n\t\t\t vm.FreelancerPrice = (parseFloat(vm.LineItemList.dLineItemWinPrice) - parseFloat(vm.LineItemList.dLineItemWinPrice) * (parseFloat(vm.LineItemList.LineItemPercentage) / 100)).toFixed(2);\r\n\t\t\t vm.FreelancerPrice = vm.FreelancerPrice * parseFloat(vm.LineItemList.LineItemQuantity);\r\n\t\t\t}\r\n\r\n\t\t\tvm.LineItemDetails = function(ObjLineItem){\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tvar LineItemId=ObjLineItem.LineItemId;\r\n\t\t\t\t\tjobCreationService.ItemLineDetails(loggedinUser, vm.projectId, LineItemId, token).then(function(resp){\r\n\t\t\t\t\tif (resp.status==200) {\r\n\t\t\t\t\t\tvm.LineItemList = resp.data;\r\n\t\t\t\t\t\tvm.LineItemList.LineItemQuantity=1;\r\n\t\t\t\t\t\tvm.LineItemCompanyProvided= vm.LineItemList.LineItemCompanyProvided;\r\n\t\t\t\t\t\tif(vm.LineItemCategoryType==\"Collection\"){\r\n\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t\t\tvm.disableProvided=true; \r\n\t\t\t\t\t\t\t\tvm.qunatityEnable=true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\tif(vm.LineItemCompanyProvided==\"Yes\"){\r\n\t\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType==\"General\"){\r\n\t\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType == \"Service\"){\r\n\t\t\t\t\t\t\t\t\t\t\tvm.disableProvided=true; \t\r\n\t\t\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t\t\t\tvm.disableProvided=false;\r\n\t\t\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if(vm.LineItemCategoryType==\"General\"){\r\n\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t\t\t\tvm.qunatityEnable=true; \r\n\t\t\t\t\t\t\t\t\tvm.disableProvided=true;\r\n\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType == \"Service\"){\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tvm.disableProvided=true; \t\r\n\t\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t\t\tvm.disableProvided=false;\r\n\t\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=true;\r\n\t\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType==\"AdvancedPayment\"){\r\n\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t\t\t\tvm.PercentageEnable=true; \r\n\t\t\t\t\t\t\t\t\tvm.disableProvided=true; \r\n\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false;\r\n\t\t\t\t\t\t\t\t\tvm.qunatityEnable=true; \r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType==\"HW\" && ObjLineItem.LineItemDescription==\"Others\"){\r\n\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=false; \r\n\t\t\t\t\t\t\t\t\tvm.PercentageEnable=true; \r\n\t\t\t\t\t\t\t\t\tvm.disableProvided=false; \r\n\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false; \r\n\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType==\"Service\" && ObjLineItem.LineItemDescription==\"Others\"){\r\n\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=false; \r\n\t\t\t\t\t\t\t\t\tvm.PercentageEnable=true; \r\n\t\t\t\t\t\t\t\t\tvm.disableProvided=true; \r\n\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false; \r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType==\"Bonus\" || ObjLineItem.LineItemDescription==\"Penalty\"){\r\n\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled=true; \r\n\t\t\t\t\t\t\t\t\tvm.PercentageEnable=true; \r\n\t\t\t\t\t\t\t\t\tvm.disableProvided=true; \r\n\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable=false; \r\n\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t//vm.calculateLineItemPrice();\t\r\n\t\t\t\t\t\t\t\t//vm.OnBasePriceChange();\r\n\t\t\t\t\t\t\t}\t\t\t \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\t\r\n\t\t\t vm.searchButtonText = \"Save\";\r\n\t\t\t vm.addPriceLineItem = function(){ \r\n\r\n\t\t\t\tif(!vm.LineItemCategoryType){\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"Please select category type\"); \r\n\t\t\t\t\treturn; \r\n\t\t\t\t} \r\n\t \r\n\t\t\t\tif(!vm.LineItemDisc){\r\n\t\t\t\t vm.showFailure(\"Warning\", \"Please select activity description\"); \r\n\t\t\t\t return; \r\n\t\t\t\t} \r\n\r\n\t\t\t\tif(vm.LineItemCategoryType == \"HW\" && !vm.ZOHOWarehouseName && vm.TicketInfo.IsSpareShipmentEnabled == true){\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"Please select warehouse\"); \r\n\t\t\t\t\treturn; \r\n\t\t\t\t } \r\n\t \r\n\t\t\t\tif(vm.LineItemCategoryType!=\"Collection\" && vm.LineItemCategoryType!=\"General\" && vm.LineItemCategoryType!=\"Bonus\"&& vm.LineItemCategoryType!=\"Penalty\"&& vm.LineItemCategoryType!=\"AdvancedPayment\"){\r\n\t\t\t\t\tif(vm.LineItemList.dLineItemWinPrice==\"\" || vm.LineItemList.dLineItemWinPrice==\"0\" \r\n\t\t\t\t\t|| parseInt(vm.LineItemList.dLineItemWinPrice) < 1)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter base price\"); \r\n\t\t\t\t\t\treturn; \r\n\t\t\t\t\t} \r\n\t\t\r\n\t\t\t\t\tif(vm.LineItemCompanyProvided ==\"\"){\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please select company provided yes or no\"); \r\n\t\t\t\t\t\treturn; \r\n\t\t\t\t\t} \r\n\t\t\t\t\t\r\n\t\t\t\t\tif(vm.LineItemList.LineItemQuantity==\"\"){\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter quantity\"); \r\n\t\t\t\t\t\treturn; \r\n\t\t\t\t\t}\r\n\t\t\r\n\t\t\t\t\tif(vm.LineItemList.LineItemQuantity==0){\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"zero (0) quantity not allowed\"); \r\n\t\t\t\t\t\treturn; \r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(vm.LineItemList.LineItemDescription == \"Others\" && (parseFloat(vm.LineItemList.dLineItemFreelancerPrice) > parseFloat(vm.LineItemList.dLineItemWinPrice))){\r\n \t\t\tvm.showFailure(\"Warning\", \"Please enter freelancer price less or equal to win price\");\r\n \t\t\treturn;\r\n \t\t}\r\n\t\t\r\n\t\t\t\t\tif(vm.LineItemList.dLineItemFreelancerPrice==\"\" || vm.LineItemList.dLineItemFreelancerPrice==\"0\" \r\n\t\t\t\t\t|| parseInt(vm.LineItemList.dLineItemFreelancerPrice) < 1){\r\n\t\t\t\t\t\tif(vm.LineItemCategoryType==\"HW\" && vm.LineItemCompanyProvided==\"Yes\")\r\n\t\t\t\t\t\t{\r\n\t\t \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t vm.showFailure(\"Warning\", \"Please enter freelancer price\");\r\n\t\t\t\t\t\t return; \r\n\t\t\t\t\t\t} \r\n\t\t\t\t\t} \r\n\t\t\t \t} \r\n\t\t\t\tvar tData = {\r\n\t\t\t\t\tLineItemDescription: vm.LineItemList.LineItemDescription,\r\n\t\t\t\t\tLineItemCategory: vm.LineItemCategoryType, \r\n\t\t\t\t\tdLineItemWinPrice: vm.LineItemList.dLineItemWinPrice,\r\n\t\t\t\t\tLineItemId: vm.LineItemDisc.LineItemId,\r\n\t\t\t\t\tLineItemCode: vm.LineItemList.LineItemCode,\r\n\t\t\t\t\tLineItemQuantity: vm.LineItemList.LineItemQuantity, \r\n\t\t\t\t\tdLineItemFreelancerPrice: vm.LineItemList.dLineItemFreelancerPrice,\r\n\t\t\t\t\torigdLineItemFreelancerPrice: vm.LineItemList.origdLineItemFreelancerPrice,\r\n\t\t\t\t\tLineItemRemark: vm.LineItemRemark,\r\n\t\t\t\t\tLineItemUnit: vm.LineItemList.LineItemUnit,\r\n\t\t\t\t\tLineItemCompanyProvided: vm.LineItemCompanyProvided,\r\n\t\t\t\t\tLineItemAction: \"Add\",\r\n\t\t\t\t\tLineItemAttachment: \"\", \r\n\t\t\t\t\tZOHOWarehouseName: vm.ZOHOWarehouseName \r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar basePrice = vm.LineItemList.dLineItemWinPrice;\r\n\t\t\t\tvar dFprice = vm.LineItemList.dLineItemFreelancerPrice; \r\n\t\t\t\tvar LineItemQuantity = vm.LineItemList.LineItemQuantity; \r\n\t\t\t\t\t \r\n\t\t\t\tif(vm.LineItemCategoryType!=\"Collection\" && vm.LineItemCategoryType!=\"Penalty\"){\r\n\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(basePrice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\tif(vm.LineItemCategoryType==\"Bonus\"){\r\n\t\t\t\t\t\tvar FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\t\tif(parseInt(FLPriceTotal) <= parseInt(vm.BasePriceTotal)){\r\n\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tvar maxBonus = (parseFloat(vm.BasePriceTotal) - parseFloat(vm.dFreelancerPriceTotal)).toFixed(2);\r\n\t\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter bonus price less or equal to \" + maxBonus);\r\n\t \t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\tif(vm.LineItemCategoryType==\"Penalty\"){\r\n\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - (parseFloat(basePrice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\tvar FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\tif(parseInt(FLPriceTotal) >= 0 ){\r\n\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\t\t\t\t\t\t\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter penalty price less or equal to \" + vm.dFreelancerPriceTotal);\r\n \t\t\treturn true;\r\n\t\t\t\t\t}\t\t\r\n\t\t\t\t}\r\n\t\t\t\tif(vm.LineItemCategoryType==\"AdvancedPayment\"){\r\n\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - (parseFloat(basePrice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\tvar FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\tif(parseInt(FLPriceTotal) >= 0 ){\r\n\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\t\t\t\t\t\t\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter AdvancedPayment price less or equal to \" + vm.dFreelancerPriceTotal);\r\n \t\t\treturn true;\r\n\t\t\t\t\t}\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(tData.LineItemDescription){ \r\n\t\t\t\t\tvm.PriceLineItemList.push(tData); \r\n\t\t\t\t\tvm.showTCList = false; \r\n\t\t\t\t\tvm.EmptyLineItemDetails(); \r\n\t\t\t\t}else{\r\n\t\t\t\t\tvm.showTCList = false;\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"You must select activity description\");\r\n\t\t\t\t} \r\n\t\t\t\tvm.LineItemCategoryType=\"\";\r\n\t\t\t\tvm.LineItemDisc=\"\";\r\n\t\t\t }\r\n\r\n\t\t\t vm.getRemainingLineItems = function () { \r\n\t\t\t\tvar RemovePriceLineItems = [];\r\n\t\t\t\tvar remainingPriceLineItems = Array.from(vm.LineitemActivityList);\r\n\t\t\t\tangular.forEach(remainingPriceLineItems, function (d) {\r\n\t\t\t\t\tfor (var i = 0; i < vm.PriceLineItemList.length; i++) {\r\n\t\t\t\t\t\tif (d.LineItemDescription == vm.PriceLineItemList[i].LineItemDescription && d.LineItemCategory==vm.PriceLineItemList[i].LineItemCategory) {\r\n\t\t\t\t\t\t RemovePriceLineItems.push(d);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tangular.forEach(RemovePriceLineItems, function (s) {\r\n\t\t\t\t remainingPriceLineItems.splice(remainingPriceLineItems.indexOf(s), 1);\r\n\t\t\t\t}) \r\n\t\t\t\treturn remainingPriceLineItems;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t vm.showTCList = false;\r\n\t\t\t vm.showTotal = true;\t\t\t \r\n\t\t\t\tvm.addMoreCertificateInTable = function(){\r\n\t\t\t\t\tvm.showTCList = true;\r\n\t\t\t\t\tvm.showTotal = true;\r\n\t\t\t\t\tvm.tempCertificateAdd = true;\r\n\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\tvm.tempCertificateAdd = false;\r\n\t\t\t\tvm.IsVisible = false;\r\n\t\t\t\tvar wareHouseItemList=[];\r\n\t\t\t\tvar createOrderData = [];\r\n\t\t\t\tvm.ShowHide = function (index) {\r\n\t\t\t\t\t if(vm.PriceLineItemList[index].ShowPassport == true) {\r\n\t\t\t\t\t\tvar hwData = {\r\n\t\t\t\t\t\t\twarehouseLineItemId : vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t\t\t\t\twarehouseCategory : vm.PriceLineItemList[index].LineItemCategory,\r\n\t\t\t\t\t\t\twarehouseDescription : vm.PriceLineItemList[index].LineItemDescription,\r\n\t\t\t\t\t\t\twarehouseQuantity : vm.PriceLineItemList[index].LineItemQuantity,\r\n\t\t\t\t\t\t\twarehouseCompanyProvided : vm.PriceLineItemList[index].LineItemCompanyProvided,\r\n\t\t\t\t\t\t\tWarehouseNameSelected : vm.PriceLineItemList[index].ZOHOWarehouseName,\r\n\t\t\t\t\t\t\twarehouseBaseprice : vm.PriceLineItemList[index].dLineItemWinPrice,\r\n\t\t\t\t\t\t\twarehouseFreelancerPrice : vm.PriceLineItemList[index].dLineItemFreelancerPrice\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar sendWdata = {\r\n\t\t\t\t\t\t\tJobLineItemId : vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t\t\t\t\tselectedWarehouse : vm.PriceLineItemList[index].ZOHOWarehouseName\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcreateOrderData.push(sendWdata);\r\n\t\t\t\t\t\twareHouseItemList.push(hwData);\r\n\t\t\t\t\t\tvm.IsVisible = vm.PriceLineItemList[index].ShowPassport;\r\n\t\t\t\t\t\tvm.warehouseModal = function () {\r\n\t\t\t\t\t\t\tvm.listWdata = wareHouseItemList;\r\n\t\t\t\t\t\t\tvm.ShareModal = $uibModal.open({\r\n\t\t\t\t\t\t\t templateUrl: 'warehouseModal.html',\r\n\t\t\t\t\t\t\t backdrop: 'static',\r\n\t\t\t\t\t\t\t size: 'lg',\r\n\t\t\t\t\t\t\t scope: $scope\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t \r\n\t\t\t\t\t\t vm.closeWarehouseModal = function () {\r\n\t\t\t\t\t\t\tvm.IsVisible = false;\r\n\t\t\t\t\t\t\twareHouseItemList=[];\r\n\t\t\t\t\t\t\tcreateOrderData = [];\r\n\t\t\t\t\t\t\tvm.ShareModal.close();\r\n\t\t\t\t\t\t\tvm.OnLoadLineItemDetails(vm.TicketId);\r\n\t\t\t\t\t\t\tvm.PriceLineItemList = [];\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t }\r\n\t\t\t\t\t else {\r\n\t\t\t\t\t\twareHouseItemList=[];\r\n\t\t\t\t\t\tcreateOrderData = [];\r\n\t\t\t\t\t\tvm.IsVisible = vm.PriceLineItemList[index].ShowPassport;\r\n\t\t\t\t\t }\r\n\t\t\t\t\t// var hwData = {\r\n\t\t\t\t\t// \twarehouseLineItemId : vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t\t\t// \twarehouseCategory : vm.PriceLineItemList[index].LineItemCategory,\r\n\t\t\t\t\t// \twarehouseDescription : vm.PriceLineItemList[index].LineItemDescription,\r\n\t\t\t\t\t// \twarehouseQuantity : vm.PriceLineItemList[index].LineItemQuantity,\r\n\t\t\t\t\t// \twarehouseCompanyProvided : vm.PriceLineItemList[index].LineItemCompanyProvided,\r\n\t\t\t\t\t// \tWarehouseNameSelected : vm.PriceLineItemList[index].ZOHOWarehouseName,\r\n\t\t\t\t\t// \twarehouseBaseprice : vm.PriceLineItemList[index].dLineItemWinPrice,\r\n\t\t\t\t\t// \twarehouseFreelancerPrice : vm.PriceLineItemList[index].dLineItemFreelancerPrice\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// var sendWdata = {\r\n\t\t\t\t\t// \tJobLineItemId : vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t\t\t// \tselectedWarehouse : vm.PriceLineItemList[index].ZOHOWarehouseName\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// createOrderData.push(sendWdata);\r\n\t\t\t\t\t// wareHouseItemList.push(hwData);\r\n\t\t\t\t\t// vm.IsVisible = vm.PriceLineItemList[index].ShowPassport;\r\n\t\t\t\t\t\r\n\t\t\t\t\t// vm.warehouseModal = function () {\r\n\t\t\t\t\t// \tvm.listWdata = wareHouseItemList;\r\n\t\t\t\t\t// \tvm.ShareModal = $uibModal.open({\r\n\t\t\t\t\t// \t templateUrl: 'warehouseModal.html',\r\n\t\t\t\t\t// \t backdrop: 'static',\r\n\t\t\t\t\t// \t size: 'lg',\r\n\t\t\t\t\t// \t scope: $scope\r\n\t\t\t\t\t// \t});\r\n\t\t\t\t\t// }\r\n\t\t\t\t \r\n\t\t\t\t\t// vm.closeWarehouseModal = function () {\r\n\t\t\t\t\t// \tvm.ShareModal.close();\r\n\t\t\t\t\t// }\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvm.GetWarehouse = function (warehouseLineItemId) {\t\r\n\t\t\t\t\tvar gData = {\r\n\t\t\t\t\t\t\"Id\":warehouseLineItemId,\r\n\t\t\t\t\t\t\"TicketId\":vm.TicketId\r\n\t\t\t\t\t}\t\t\r\n\t\t\t\t\tJobDetailViewNewService.GetWarehouse(token,gData).then(function (resp) {\r\n\t\t\t\t\t\tvm.warehouseList = resp.data; \r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t// vm.GetWarehouse();\r\n\r\n\t\t\t\tvm.createSales=\"Send\";\r\n\t\t\t\tvm.createSalesOrder = function () {\r\n\t\t\t\t\tif(vm.TicketId!= null)\r\n\t\t\t\t\t{\t\r\n\t\t\t\t\t\tvm.enable1 = \"false\";\r\n\t\t\t\t\t\tvm.createSales=\"Sending...\";\r\n\t\t\t\t\t};\r\n\t\t\t\t\tdata ={\r\n\t\t\t\t\t\t\"itemIdWithWarehouseModels\":createOrderData,\r\n\t\t\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\t }\t\t\r\n\t\t\t\t\tJobDetailViewNewService.createSalesOrder(token,data).then(function (resp) {\r\n\t\t\t\t\t\tif(resp.status == 200) {\r\n\t\t\t\t\t\t\t// vm.warehouseList = resp.data;\r\n\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\tvm.showSuccess(\"Success\",resp.data );\r\n\t\t\t\t\t\t\t\tvm.IsVisible = false;\r\n\t\t\t\t\t\t\t\twareHouseItemList=[];\r\n\t\t\t\t\t\t\t\tcreateOrderData = [];\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tvm.ShareModal.close();\t\r\n\t\t\t\t\t\t\t\tvm.OnLoadLineItemDetails(vm.TicketId);\r\n\t\t\t\t\t\t\t\tvm.PriceLineItemList = [];\r\n\t\t\t\t\t\t\t\tvm.enable1 = \"true\";\t\r\n \t\t\t\t\tvm.createSales=\"Send\";\t\r\n\t\t\t\t\t\t\t}, 500);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tvm.ShareModal.close();\r\n\t\t\t\t\t\t\tvm.showFailure('Failed', \"not able to create order \");\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tvm.calculateLineItemPrice = function (index) { \r\n\t\t\t\t\t \r\n\t\t\t\t\tif(typeof index === \"undefined\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar basePrice = vm.LineItemList.dLineItemWinPrice;\t \r\n\t\t\t\t\t\tvar LineItemQuantity = vm.LineItemList.LineItemQuantity;\r\n\t\t\t\t\t\t// if(percentage==\"\")\r\n\t\t\t\t\t\t// \tprice=0;\r\n\t\t\t\t\t\t// else \r\n\t\t\t\t\t\t// \tprice = parseInt(LineItemQuantity) * parseFloat(basePrice) * parseFloat(percentage)/100;\r\n\t\t\t\t\t\tif(LineItemQuantity==\"\")\r\n\t\t\t\t\t\t\ttotalFPrice=0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\ttotalFPrice = parseInt(LineItemQuantity) * basePrice - price;\r\n\t\t\t\t\t\tif(vm.LineItemList.LineItemCategory==\"HW\" && vm.LineItemList.LineItemCompanyProvided==\"Yes\" && (percentage==0.0 || percentage==0)){\r\n\t\t\t\t\t\t\ttotalFPrice=0.0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvm.FreelancerPrice = totalFPrice.toFixed(2); \r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{ \r\n\t\t\t\t\t\tvar basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t\t\t\t\t// var percentage = vm.PriceLineItemList[index].LineItemPercentage;\r\n\t\t\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\t\t\t\t\t\t// var price = parseInt(Quantity) * parseFloat(basePrice) * parseFloat(percentage)/100;\r\n\t\t\t\t\t\t// var totalFPrice = parseInt(Quantity) * basePrice - price;\r\n\t\t\t\t\t\t// vm.PriceLineItemList[index].FreelancerPrice = totalFPrice.toFixed(2);\r\n\t\t\t\t\r\n\t\t\t\t\t\tif(percentage==\"\")\r\n\t\t\t\t\t\t\tprice=0;\r\n\t\t\t\t\t\telse \r\n\t\t\t\t\t\t\tprice = parseInt(LineItemQuantity) * parseFloat(basePrice) * parseFloat(percentage)/100;\r\n\t\t\t\t\t\tif(LineItemQuantity==\"\")\r\n\t\t\t\t\t\t\ttotalFPrice=0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\ttotalFPrice = parseInt(LineItemQuantity) * basePrice - price;\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"HW\" && vm.PriceLineItemList[index].LineItemCompanyProvided==\"Yes\" && (percentage==0.0 || percentage==0)){\r\n\t\t\t\t\t\t\ttotalFPrice=0.0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].FreelancerPrice = totalFPrice.toFixed(2);\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t }\r\n\t\t\t\t vm.FreelancerChangeCal=function(index)\r\n\t\t\t\t {\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tif(typeof index === \"undefined\")\r\n\t\t\t\t\t\t{ \r\n\t\t\t\t\t\t\tif(vm.LineItemCategoryType!=\"Collection\")\r\n \t\t\t\t\t\t{ \r\n\t\t\t\t\t\t\t\tif(vm.LineItemCategoryType!=\"General\")\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(vm.FreelancerPrice==\"\")\r\n\t\t\t\t\t\t\t\tvm.LineItemList.LineItemPercentage=100;\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tif( parseFloat(vm.FreelancerPrice)> ( parseFloat(vm.LineItemList.dLineItemWinPrice) * parseFloat(vm.LineItemList.LineItemQuantity)))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tvm.showFailure(\"Warning\",\"Freelancer price should be less than or equal to base price\");\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tvm.LineItemList.LineItemPercentage = (((parseFloat(vm.LineItemList.dLineItemWinPrice)-(parseFloat(vm.FreelancerPrice)/parseFloat(vm.LineItemList.LineItemQuantity)))/parseFloat(vm.LineItemList.dLineItemWinPrice))*100).toFixed(2);\r\n\t\t\t\t\t\t\t\tif(vm.LineItemList.LineItemPercentage==\"NaN\")\r\n\t\t\t\t\t\t\t\t\tvm.LineItemList.LineItemPercentage=0.0;\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\")\r\n \t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory !=\"General\")\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemPercentage==\"\")\r\n\t\t\t\t\t\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage=0.0;\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tif( parseFloat(vm.PriceLineItemList[index].FreelancerPrice)> ( parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice) * parseFloat(vm.PriceLineItemList[index].LineItemQuantity)))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tvm.showFailure(\"Warning\",\"Freelancer price should be less than or equal to base price\");\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage = (((parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice)-(parseFloat(vm.PriceLineItemList[index].FreelancerPrice)/parseFloat(vm.PriceLineItemList[index].LineItemQuantity)))/parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice))*100).toFixed(2);\r\n\t\t\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemPercentage==\"NaN\")\r\n\t\t\t\t\t\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage=100.00;\r\n\t\t\t\t\t\t\t\t}\t\t\t\t\t \r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\tvm.EditUpdateCalculation = function(index)\r\n\t\t\t\t{\r\n\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemDescription == \"Others\" && vm.PriceLineItemList[index].LineItemCategory != \"AdvancedPayment\" && (parseFloat(vm.PriceLineItemList[index].dLineItemFreelancerPrice) > parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice))){\r\n\t \t\tvm.showFailure(\"Warning\", \"Please enter freelancer price less or equal to win price\");\r\n\t \t\treturn true;\r\n\t \t}\r\n\r\n\t \tif(vm.PriceLineItemList[index].LineItemDescription==\"Bonus\"){\r\n var FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(vm.PriceLineItemList[index].dLineItemFreelancerPrice) * parseInt(vm.PriceLineItemList[index].LineItemQuantity))).toFixed(2);\r\n if(parseInt(FLPriceTotal) > parseInt(vm.BasePriceTotal)){ \r\n var maxBonus = (parseFloat(vm.BasePriceTotal) - parseFloat(vm.dFreelancerPriceTotal)).toFixed(2);\r\n vm.showFailure(\"Warning\", \"Please enter bonus price less or equal to \" + maxBonus);\r\n return true;\r\n }\r\n }\r\n\t\t\t\t\telse if(vm.PriceLineItemList[index].LineItemCategory==\"AdvancedPayment\"){\t \r\n\t var FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(vm.PriceLineItemList[index].dLineItemFreelancerPrice) * parseInt(vm.PriceLineItemList[index].LineItemQuantity))).toFixed(2);\r\n\t if(parseInt(FLPriceTotal) < 0 ){\t \r\n\t vm.showFailure(\"Warning\", \"Please enter Advanced payment less or equal to \" + vm.dFreelancerPriceTotal);\r\n\t return true;\r\n\t } \r\n\t }\r\n else if(vm.PriceLineItemList[index].LineItemDescription==\"Penalty\"){\t \r\n\t var FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(vm.PriceLineItemList[index].dLineItemFreelancerPrice) * parseInt(vm.PriceLineItemList[index].LineItemQuantity))).toFixed(2);\r\n\t if(parseInt(FLPriceTotal) < 0 ){\t \r\n\t vm.showFailure(\"Warning\", \"Please enter penalty price less or equal to \" + vm.dFreelancerPriceTotal);\r\n\t return true;\r\n\t } \r\n\t }\r\n\t\t\t\t\telse if(vm.TicketInfo.IsSpareShipmentEnabled == true && vm.PriceLineItemList[index].ZOHOWarehouseName == null && vm.PriceLineItemList[index].LineItemCategory=='HW'){ \r\n\t vm.showFailure(\"Warning\", \"Please Select Warehouse\");\r\n\t\t\t\t\t\t\treturn true;\r\n\t }\r\n\r\n\r\n\t\t\t\t\tvm.BasePriceTotal=0.0;\r\n\t\t\t\t\tvm.dFreelancerPriceTotal=0.0;\t\t\t\t\t\r\n\t\t\t\t\tfor(var i = 0; i < vm.PriceLineItemList.length; i++)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[i].LineItemCategory!=\"Collection\" && vm.PriceLineItemList[i].LineItemCategory !=\"AdvancedPayment\"){\r\n\t\t\t\t\t\t\tvar basePrice = vm.PriceLineItemList[i].dLineItemWinPrice;\r\n\t\t\t\t\t\t\tvar dFprice = vm.PriceLineItemList[i].dLineItemFreelancerPrice;\r\n\t\t\t\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[i].LineItemQuantity;\r\n\t\t\t\t\t\t\tif(vm.PriceLineItemList[i].LineItemCategory == \"General\")\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(vm.PriceLineItemList[i].LineItemCompanyProvided==\"No\")\r\n\t\t\t\t\t\t\t\t\tbasePrice=0.0;\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(basePrice) * LineItemQuantity)).toFixed(2);\r\n\t\t\t\t\t \t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * LineItemQuantity)).toFixed(2);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if(vm.PriceLineItemList[i].LineItemCategory ==\"AdvancedPayment\"){\r\n\t\t\t\t\t\t\tvar basePrice = vm.PriceLineItemList[i].dLineItemWinPrice;\r\n\t\t\t\t\t\t\tvar dFprice = vm.PriceLineItemList[i].dLineItemFreelancerPrice;\r\n\t\t\t\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[i].LineItemQuantity;\r\n\t\t\t\t\t\t\tif(vm.PriceLineItemList[i].LineItemCategory == \"General\")\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tif(vm.PriceLineItemList[i].LineItemCompanyProvided==\"No\")\r\n\t\t\t\t\t\t\t\t\tbasePrice=0.0;\r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - (parseFloat(basePrice) * LineItemQuantity)).toFixed(2);\r\n\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(dFprice) * LineItemQuantity)).toFixed(2);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} \r\n\t\t\t\t\tvm.PriceLineItemList[index].edit=false;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t//delete row non edit\r\n\tvm.removeLineItem = function(index){ \r\n\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\" && vm.PriceLineItemList[index].LineItemCategory!=\"Penalty\" && vm.PriceLineItemList[index].LineItemCategory!=\"AdvancedPayment\"){\r\n\t\t var basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t var dFprice = vm.PriceLineItemList[index].dLineItemFreelancerPrice;\r\n\t\t var LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\t\t vm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - parseFloat(basePrice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t vm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - parseFloat(dFprice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t}\r\n\t\telse if(vm.PriceLineItemList[index].LineItemCategory==\"Penalty\") {\r\n\t\t\tvar basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t\tvar dFprice = vm.PriceLineItemList[index].dLineItemFreelancerPrice;\r\n\t\t\tvar LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + parseFloat(basePrice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + parseFloat(dFprice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t \r\n\t\t}\r\n\t\telse if(vm.PriceLineItemList[index].LineItemCategory==\"AdvancedPayment\") {\r\n\t\t\tvar basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t\tvar dFprice = vm.PriceLineItemList[index].dLineItemFreelancerPrice;\r\n\t\t\tvar LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + parseFloat(basePrice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + parseFloat(dFprice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t \r\n\t\t}\r\n\t\tvm.PriceLineItemList.splice(index, 1);\r\n\t } \t\r\n\t\t\t\t\r\n\t\tvm.updateRomoveLineItem = function(index,action)\r\n\t\t{\t\t\r\n\t\t\t\r\n\t\t\tif(action==\"Update\"){\r\n\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\")\r\n\t\t\t\t{\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemQuantity==\"\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].edit=true;\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter quantity\"); \r\n\t\t\t\t\t\treturn; \r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemQuantity==0){\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].edit=true;\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"zero (0) quantity not allowed\"); \r\n\t\t\t\t\t\treturn; \r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"General\"){\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"HW\" && vm.LineItemCompanyProvided==\"Yes\"){}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].dLineItemWinPrice==\"\" || vm.PriceLineItemList[index].dLineItemWinPrice==\"0\" || parseInt(vm.PriceLineItemList[index].dLineItemWinPrice) < 1)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvm.PriceLineItemList[index].edit=true;\r\n\t\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter base price\"); \r\n\t\t\t\t\t\t\treturn; \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(parseFloat(vm.PriceLineItemList[index].LineItemPercentage)>100)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvm.PriceLineItemList[index].edit=true;\r\n\t\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter percentage 100 or less than 100\"); \r\n\t\t\t\t\t\t\treturn; \r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif( parseFloat(vm.PriceLineItemList[index].FreelancerPrice)> ( parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice) * parseFloat(vm.PriceLineItemList[index].LineItemQuantity)))\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvm.PriceLineItemList[index].edit=true;\r\n\t\t\t\t\t\t\tvm.showFailure(\"Warning\",\"Freelancer price should be less than or equal to base price\");\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].FreelancerPrice==\"\" || typeof vm.PriceLineItemList[index].FreelancerPrice === \"undefined\")\r\n\t\t\t\t\tvm.PriceLineItemList[index].FreelancerPrice=\"0\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(vm.PriceLineItemList[index].LineItemCategory==\"General\")\r\n\t\t\t{ \r\n\t\t\t\tvm.PriceLineItemList[index].dLineItemWinPrice=0.0;\r\n\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice=0.0;\r\n\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage=0.0;\r\n\t\t\t}\r\n\t\t\tif(vm.PriceLineItemList[index].dLineItemWinPrice==\"\")\r\n\t\t\t\tvm.PriceLineItemList[index].dLineItemWinPrice=0.0;\r\n\t\t\tif(vm.PriceLineItemList[index].dLineItemFreelancerPrice==\"\")\r\n\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice=0.0;\r\n\t\t\tif(vm.PriceLineItemList[index].LineItemPercentage==\"\")\r\n\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage=0.0;\r\n\t\t\tif(vm.PriceLineItemList[index].LineItemQuantity==\"\")\r\n\t\t\t\tvm.PriceLineItemList[index].LineItemQuantity=1;\r\n\t\t\tif(vm.PriceLineItemList[index].FreelancerPrice==\"\")\r\n\t\t\t\tvm.PriceLineItemList[index].FreelancerPrice=0.0;\r\n\r\n\t\t\t\t\r\n\t\t\tvar Requestdata = {\t\t\t\t\t \r\n\t\t\t\tLineItemDescription: vm.PriceLineItemList[index].LineItemDescription,\r\n\t\t\t\tLineItemCategory: vm.PriceLineItemList[index].LineItemCategory,\r\n\t\t\t\tLineItemPercentage : vm.PriceLineItemList[index].LineItemPercentage,\r\n\t\t\t\tdLineItemWinPrice: vm.PriceLineItemList[index].dLineItemWinPrice,\r\n\t\t\t\tdLineItemFreelancerPrice: vm.PriceLineItemList[index].dLineItemFreelancerPrice,\r\n\t\t\t\tLineItemId: vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t\tLineItemCode: vm.PriceLineItemList[index].LineItemCode,\r\n\t\t\t\tLineItemQuantity: vm.PriceLineItemList[index].LineItemQuantity,\r\n\t\t\t\tLineItemFreelancerPrice: vm.ConverttoDecimal(vm.PriceLineItemList[index].FreelancerPrice),\r\n\t\t\t\tLineItemRemark: vm.PriceLineItemList[index].LineItemRemark,\r\n\t\t\t\tZOHOWarehouseName: vm.PriceLineItemList[index].ZOHOWarehouseName,\r\n\t\t\t\tLineItemUnit: vm.PriceLineItemList[index].LineItemUnit,\r\n\t\t\t\tLineItemAction: action,\r\n\t\t\t\tLineItemCompanyProvided: vm.LineItemCompanyProvided,\r\n\t\t\t\tLineItemAttachment: vm.LineItemImage\r\n\t\t }\r\n\t\t vm.PriceLineItemList[index].FreelancerPrice = vm.ConverttoDecimal(vm.PriceLineItemList[index].FreelancerPrice);\r\n\t\t vm.PriceLineItemList[index].LineItemPercentage = vm.ConverttoDecimal(vm.PriceLineItemList[index].LineItemPercentage);\r\n\t\t vm.LineItemDataList.push(Requestdata);\r\n\t\t userFormData = { \r\n\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\"LineItemRequestList\": vm.LineItemDataList\t\t\t \r\n\r\n\t\t}\r\n\t\t//vm.PriceLineItemList[index].LineItemCompanyProvided=vm.LineItemCompanyProvided;\r\n\r\n\t\t// vm.enable = \"false\";\r\n\t\t// if(action==\"Update\"){\t\t\t\t\r\n\t\t// vm.updateButtonText = \"Updating\";\r\n\t\t// vm.PriceLineItemList[index].edit=true;\r\n\t\t// }\r\n\t\t// else\r\n\t\t// vm.removeButtonText = \"Removing\";\r\n\t\r\n\t JobDetailViewNewService.CreateUpdateRemoveLineItem(userFormData,loggedinUser,token).then(function(resp){\r\n\t\t\t//$timeout(function(){\r\n\t\t\t\t\r\n\t\t\tif (resp.status==201) { \r\n\t\t\t\tvar msg=\"\";\r\n\t\t\t\tif(action==\"Update\"){\t\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\"){\t\t\t\t\r\n\t\t\t\t\t\tvm.EditUpdateCalculation(index);\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tJobDetailViewNewService.UpdateJobPaymentDynamicPrice(loggedinUser, vm.TicketId, vm.BasePriceTotal, vm.PercentageTotal, vm.FreelancerPriceTotal, vm.IsFinalApproval, token, function (res) {\r\n\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t//vm.showSuccess(\"Success\", res);\t\t\t\t\t\r\n\t\t\t\t\t\tmsg = \"LineItem has been updated successfully\";\r\n\t\t\t\t\t\tvm.LineItemDataList=[];\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\t\r\n\t\t\t\t\t\t// vm.enable = \"true\";\r\n\t\t\t\t\t\t// vm.updateButtonText = \"Update\";\r\n\t\t\t\t\t\t//vm.PriceLineItemList[index].edit=false;\r\n\t\t\t\t\t\t}, 1000);\t\t\t\t\t\t\r\n\t\t\t\t\t}, vm.showFailure);\t\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\tmsg = \"LineItem has been updated successfully\";\r\n\t\t\t\t\t\tvm.LineItemDataList=[];\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\t\r\n\t\t\t\t\t\t}, 1000);\t\t\t\t\t\t\r\n\t\t\t\t}\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\t\t\t\r\n\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\")\r\n\t\t\t\t{\r\n\t\t\t\t\tvar basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t\t\t\tvar dFprice = vm.PriceLineItemList[index].dLineItemFreelancerPrice;\r\n\t\t\t\t\tvar freelancerPrice = vm.PriceLineItemList[index].FreelancerPrice;\r\n\t\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\r\n\t\t\t\t\tif(basePrice==\"\")\r\n\t\t\t\t\t\tbasePrice=0.0;\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\tif(dFprice==\"\")\r\n\t\t\t\t\t\tdFprice=0.0;\r\n\t\t\t\t\tif(freelancerPrice==\"\")\r\n\t\t\t\t\t\tfreelancerPrice=0.0;\r\n\t\t\t\t\tif(LineItemQuantity==\"\")\r\n\t\t\t\t\tLineItemQuantity=1;\r\n\r\n\t\t\t\t\tvar lessBasePrice = parseFloat(basePrice) * parseInt(LineItemQuantity);\r\n\t\t\t\t\tvar lessdFprice = parseFloat(dFprice) * parseInt(LineItemQuantity);\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\")\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory != \"General\")\r\n\t\t\t\t\t\t{\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - parseFloat(lessBasePrice)).toFixed(2);\r\n\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - parseFloat(lessdFprice)).toFixed(2);\r\n\t\t\t\t\t\t\tvm.FreelancerPriceTotal = (parseFloat(vm.FreelancerPriceTotal) - parseFloat(freelancerPrice)).toFixed(2);\r\n\t\t\t\t\t\t\tvm.PercentageTotal = (100 - (vm.FreelancerPriceTotal * 100/vm.BasePriceTotal)).toFixed(2);\r\n\t\t\t\t\t\t\tif(vm.PercentageTotal==\"NaN\")\r\n\t\t\t\t\t\t\t\tvm.PercentageTotal=0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCompanyProvided==\"No\")\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tlessBasePrice =0.0;\r\n\t\t\t\t\t\t\t\tlessdFprice =0.0;\r\n\t\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - parseFloat(lessBasePrice)).toFixed(2);\r\n\t\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - parseFloat(lessdFprice)).toFixed(2);\r\n\t\t\t\t\t\t\t\tvm.FreelancerPriceTotal = (parseFloat(vm.FreelancerPriceTotal) - parseFloat(freelancerPrice)).toFixed(2);\r\n\t\t\t\t\t\t\t\tvm.PercentageTotal = (100 - (vm.FreelancerPriceTotal * 100/vm.BasePriceTotal)).toFixed(2);\r\n\t\t\t\t\t\t\t\tif(vm.PercentageTotal==\"NaN\")\r\n\t\t\t\t\t\t\t\t\tvm.PercentageTotal=0;\t\t\r\n\t\t\t\t\t\t\t\tif(vm.BasePriceTotal==\"0.00\" || vm.BasePriceTotal==\"0\")\r\n\t\t\t\t\t\t\t\t\tvm.PercentageTotal=0.00;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(vm.PriceLineItemList[index].LineItemCategory!=\"Collection\")\r\n\t\t\t\t\t{\t\t\t\t\r\n\t\t\t\t\t\tJobDetailViewNewService.UpdateJobPaymentDynamicPrice(loggedinUser, vm.TicketId, vm.BasePriceTotal, vm.PercentageTotal, vm.FreelancerPriceTotal, vm.IsFinalApproval, token, function (res) {\r\n\t\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\t//vm.showSuccess(\"Success\", res);\t\t\t\t\t\r\n\t\t\t\t\t\t\tmsg = \"LineItem has been removed successfully\";\r\n\t\t\t\t\t\t\tvm.LineItemDataList=[];\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\t\r\n\t\t\t\t\t\t\t// vm.enable = \"true\";\r\n\t\t\t\t\t\t\t// vm.removeButtonText = \"Remove\";\r\n\t\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}, vm.showFailure);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\tmsg = \"LineItem has been removed successfully\";\r\n\t\t\t\t\t\t\tvm.LineItemDataList=[];\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\t\r\n\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t}\r\n\t\t\t\tvm.PriceLineItemList.splice(index, 1);\r\n\t\t\t}\r\n\t\t\t\t\r\n\t\t\tvm.EmptyLineItemDetails();\r\n\t\t\t// vm.LineItemCategoryType=\"\";\r\n\t\t\tvm.LineItemDisc=\"\";\r\n\t\t\tvm.LineItemDataList=[];\r\n\t\t\t // window.location.reload(true);\r\n\t\t\t}\r\n\t\t//}, 1000);\r\n\r\n\t\t })\r\n\t\t}\r\n\r\n\t\t//advanced payment \r\n\t\tvm.initiateAdvancedPayment =function (action,index) {\r\n\t\t\t// vm.removeLineItem(index);\r\n\t\t\tvm.sendAdvanceDetails ={\r\n\t\t\t\t\"TicketId\":vm.TicketId,\r\n\t\t\t\t\"Action\":action\r\n\t\t\t}\r\n\t\t\tJobDetailViewNewService.initiateAdvancedPayment(vm.sendAdvanceDetails,token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t vm.showSuccess(\"Success\", \"Initiated advanc payment\");\r\n\t\t\t\t\t vm.getTicketByJobId();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{ \r\n\t\t\t\t\t vm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t vm.getTicketByJobId();\r\n\t\t\t\t\t}\r\n\t\t\t\t });\r\n\t\t}\r\n\t\t//\r\n\t\tvm.UpdateLineItems=\"Update Line Items\";\r\n\t\tvm.updateLineItem = function()\r\n\t\t{\r\n\t\t\tif(vm.PriceLineItemList.length>0)\r\n\t\t\t{\t\r\n\t\t\t\tvm.enable1 = \"false\";\r\n\t\t\t\tvm.UpdateLineItems=\"Update Line Items...\";\r\n\r\n\t\t\t\tvar data = { \r\n\t\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\t\"LineItemRequestList\": vm.PriceLineItemList\r\n\t\t\t\t \r\n\t\t\t\t };\r\n\t\t\t\tJobDetailViewNewService.CreateUpdateRemoveLineItem(data,loggedinUser,token).then(function(resp){\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\",resp.data+ \" Line Item\");\r\n\t\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\tvm.enable1 = \"true\";\t\r\n\t\t\t\t\t\t\tvm.UpdateLineItems=\"Update Line Items\";\t\t\t\t\r\n\t\t\t\t\t\t}, 1500);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t}, vm.showFailure);\t\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvm.showFailure();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.ApprovePricingButtonText=\"Approve Pricing\";\r\n\t\tvm.ApprovePricing = function()\r\n\t\t{\r\n\t\t\tif(vm.PriceLineItemList.length>0)\r\n\t\t\t{\t\r\n\t\t\t\tvm.IsFinalApproval=true;\r\n\t\t\t\tvm.enable1 = \"false\";\r\n\t\t\t\tvm.ApprovePricingButtonText=\"Approve Pricing...\";\r\n\r\n\t\t\t\tvar data = { \r\n\t\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\t\"IsCollectionFlag\": true,\r\n\t\t\t\t\t\"CollectionPercentage\": 0,\r\n\t\t\t\t\t\"CollectionAmount\": 0,\r\n\t\t\t\t\t\"LineItemRequestList\": vm.PriceLineItemList\r\n\t\t\t\t \r\n\t\t\t\t };\r\n\t\t\t\tJobDetailViewNewService.UpdateJobPaymentDynamicPrice(loggedinUser, vm.TicketId, vm.BasePriceTotal, vm.PercentageTotal, vm.FreelancerPriceTotal,vm.IsFinalApproval,data, token, function (res) {\r\n\t\t\t\t\t$timeout(function(){\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\tmsg = \"Price has been approved successfully\";\t\t\t\t\t\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\t\r\n\t\t\t\t\t\tvm.enable1 = \"true\";\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\tvm.BonusList =[];\r\n\t\t\t\t\t\tvm.PenaltyList=[];\r\n\t\t\t\t\t\tvm.ApprovePricingButtonText = \"Approve Pricing\";\t\t\t\t\t\r\n\t\t\t\t\t}, 1000);\t\t\t\t\t\t\r\n\t\t\t\t}, vm.showFailure);\t\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvm.showFailure(\"Faild\", \"Please enter atleast one Line Item to Approve this job.\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.removeCurrentActivityRow = function()\r\n\t\t{\r\n\t\t\tvm.showTCList = false;\t\r\n\t\t\tvm.EmptyLineItemDetails();\t\t\r\n\t\t}\r\n\t\tvm.EmptyLineItemDetails = function()\r\n\t\t{\r\n\t\t\tvm.LineItemCategoryType=\"\";\r\n\t\t\tvm.LineItemDisc=\"\";\r\n\t\t\tvm.LineItemList.LineItemDescription = '';\r\n\t\t\tvm.LineItemList.LineItemCategory = '';\r\n\t\t\tvm.LineItemList.LineItemPercentage = '';\r\n\t\t\tvm.LineItemList.dLineItemWinPrice = '';\r\n\t\t\tvm.LineItemList.dLineItemFreelancerPrice = '';\r\n\t\t\tvm.LineItemList.LineItemQuantity='';\r\n\t\t\tvm.FreelancerPrice='';\r\n\t\t\tvm.LineItemRemark='';\r\n\t\t\tvm.ZOHOWarehouseName='';\r\n\t\t}\r\n\t\tvm.changeFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n\t\t}\r\n\t\t\r\n\t\t$scope.uploadLineItemFile = function (elem, index) {\r\n\t\t\t\r\n var index = (angular.element(elem).attr(\"data-index\")); \r\n var file = elem.files[0];\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n JobDetailViewNewService.uploadLineItemPic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\t\r\n\t\t\t\t\t\tvm.edit=false;\t\t\t\t\t\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].LineItemAttachment= vm.LineItemImage = res.data; \r\n\t\t\t\t\t vm.LineItemImage=res.data; \r\n\t\t\t\t\t\tvm.edit1=false;\r\n\t\t\t\t\t\t\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload line item, server error\");\r\n });\r\n } else {\r\n vm.showFailure(\"Failed\", \"You can upload image, pdf or word document only\");\r\n }\r\n }\r\n\t}\r\n\r\n\tvm.DisableScheduledExceptionButtons = function (disable) {\r\n\t if(disable){\r\n\t \t\tvm.disableExceptionButton = true;\t\t\t\r\n\t }\r\n\t else{\r\n\t \tvm.disableExceptionButton = false;\r\n\t }\r\n\t}\r\n\r\n\r\n\tvm.resolveException = function(){\r\n\t\tvm.DisableScheduledExceptionButtons(true);\r\n\t\tvar ticketIdList = []; \t\t\r\n\t\tticketIdList.push(uTicketId);\t\t\t \r\n\t\t\r\n\t\tJobDetailViewNewService.ResolveException(loggedinUser, ticketIdList,token).then(function(resp){\r\n\t\t\tif (resp.status==202) {\t\t\r\n\t\t\t\t$timeout(function(){\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tvm.showSuccess(\"Schedule Exception\", \"Exception Resolved Successfully\");\t\t\t\t\t\r\n\t\t\t\t\tvm.getTicketByJobId();\t\r\n\t\t\t\t\t// window.location.reload(true);\r\n\t\t\t\t\tvm.DisableScheduledExceptionButtons(false);\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t}, 1000);\t\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t })\t\t\r\n\t }\r\n\r\n\tvm.Applycompletejob = function(){\r\n\r\n\t\tvar data ={\t\t\r\n\t\t\t\t\"ReqUserId\": loggedinUser,\r\n\t\t\t\t\"TicketId\": uTicketId,\r\n\t\t\t\t\"Status\": \"Completed\",\r\n\t\t\t\t\"TechnicianRating\": \"\",\r\n\t\t\t\t\"CompletionRemark\": \"\",\r\n\t\t\t\t\"ApprovalRemark\": \"\",\r\n\t\t\t\t\"SourceResolvedOn\": \"\",\r\n\t\t\t\t\"ClosureMode\": \"\",\r\n\t\t\t\t\"FieldJobClosureMode\": \"\",\r\n\t\t\t\t\"FieldJobVisitStatus\": \"\",\r\n\t\t\t\t\"JobWinRate\": 0,\r\n\t\t\t\t\"SelectedCompletionRemarkList\": [\r\n\t\t\t\t {\r\n\t\t\t\t\t\"remark\": \"\",\r\n\t\t\t\t\t\"description\": \"\",\r\n\t\t\t\t\t\"SelectedHWDetailList\": [\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\"Skill\": \"\",\r\n\t\t\t\t\t\t\"Code\": \"\",\r\n\t\t\t\t\t\t\"Name\": \"\",\r\n\t\t\t\t\t\t\"Description\": \"\",\r\n\t\t\t\t\t\t\"Category\": \"\",\r\n\t\t\t\t\t\t\"HardwareFrom\": \"\"\r\n\t\t\t\t\t }\r\n\t\t\t\t\t]\r\n\t\t\t\t }\r\n\t\t\t\t],\r\n\t\t\t\t\"RejectionRemark\": \"\"\r\n\t\t\t \r\n\t\t}\r\n\t\tJobDetailViewNewService.completeJob(data, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp.status == 202) {\r\n\t\t\t\tvm.showSuccess(\"Complete Job\", \"Job Completed Successfully.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t$state.go('index.JobTickets', { reload: true });\r\n\t\t\t\t\r\n\t\t\t\t}, 1000);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t})\r\n\t}\r\n\r\n\tvm.OpenApproveModal = function (currentJOb) \r\n {\t\r\n\t\tif(vm.PriceLineItemList.length>0)\r\n\t\t{\r\n\t\t\tvm.CurrentJob = currentJOb;\r\n\t\t\tvm.RatingOfTicket = ''; \r\n\t\t\tvm.aproveMessage = 'Please Rate !';\r\n\t\t\tapproveModalInstance = $uibModal.open({\r\n\t\t\ttemplateUrl: 'approve_model.html',\r\n\t\t\tscope: $scope\r\n\t\t\t}); \r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tvm.showFailure(\"Faild\", \"Please enter atleast one Line Item to Approve this job.\");\r\n\t\t}\r\n } \r\n\tvm.CloseModal = function () {\r\n\tapproveModalInstance.close();\r\n\t}\r\n\tvm.starChanged = function () {\r\n switch (vm.RatingOfTicket) {\r\n case '5':\r\n vm.aproveMessage = 'Excellent';\r\n break;\r\n \r\n case '4':\r\n vm.aproveMessage = 'Very Good';\r\n break;\r\n \r\n case '3':\r\n vm.aproveMessage = 'Good';\r\n break;\r\n \r\n case '2':\r\n vm.aproveMessage = 'Bad';\r\n break;\r\n \r\n case '1':\r\n vm.aproveMessage = 'Very Bad';\r\n break;\r\n\t\t}\r\n\t\tvm.ratingwarning=\"\";\r\n\t }\r\n\r\n\t vm.completeTkt = function (ticketid) { \r\n\r\n\t\tdata = {\r\n\t\t\t\"TicketId\": ticketid,\r\n\t\t\t\"TicketStatus\": \"Completed\",\r\n\t\t\t\"TicketCompletionRemark\": \"\"\r\n\t\t \t }\r\n\t\r\n\t\tJobDetailViewNewService.completeTkt(data,token).then(function (resp) {\r\n\t\t\tif (resp.status == 200) {\r\n\t\t\t vm.showSuccess(\"Success\", \"Ticket Completed Successfully\");\r\n\t\t\t $timeout(function () {\r\n\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t\telse { \r\n\t\t\t vm.showFailure(\"Failed\", resp.data);\r\n\t\t\t}\r\n\t\t });\r\n\t }\r\n\t\r\n\tvm.ApproveJob = function () { \r\n if (vm.RatingOfTicket) {\r\n\t\t approveModalInstance.close();\r\n\t\t var jobwinrate = 0.0;\r\n\t\t if(vm.Winrate == null || vm.Winrate == 0 || vm.Winrate =='')\r\n\t\t\tjobwinrate = 0.0;\r\n\t\t else\r\n\t\t\tjobwinrate = vm.Winrate;\r\n\t\t vm.ratingwarning=\"\";\r\n var data = { \r\n\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\"BroadcastRate\": vm.BasePriceTotal,\r\n\t\t\t\"MobiforceCommission\": vm.MobiforceCommission,\r\n\t\t\t\"FreelancerRate\": vm.TicketInfo.FreelancerRate,\r\n\t\t\t\"IsFinalApproval\": true,\r\n\t\t\t\"JobWinRate\" : parseFloat(jobwinrate.toFixed(2)),\r\n\t\t\t\"TechnicianRating\": vm.RatingOfTicket.toString(),\r\n\t\t\t\"ApprovalRemark\": vm.approvalRemark,\r\n\t\t\t\"IsSafetyAudit\":vm.IsSafetyAudit,\r\n\t\t\t\"Status\": \"Approved\",\r\n\t\t\t\"LineItemRequestList\": vm.PriceLineItemList\r\n \r\n\t\t };\r\n\t\t \r\n\t\t JobDetailViewNewService.UpdateJobPaymentDynamicPriceAndApprove(loggedinUser, data, token).then(function(res){\r\n\t\t\t\r\n\t\t\tif (res.status == 200){\t\t\t\t\r\n\t\t\t\t\t$timeout(function(){\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\tmsg = \"Ticket and Price has been approved successfully\";\t\t\t\t\t\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\t\r\n\t\t\t\t\t\tvm.getTicketByJobId();\t\r\n\t\t\t\t\t\tvm.BonusList =[];\r\n\t\t\t\t\t\tvm.PenaltyList=[];\t\t\t\t\t\t\t\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t}\t\t\t\t\r\n\t\t\telse {\r\n\t\t\t\t\r\n\t\t\t\tvm.showFailure(\"Failed\", res.data);\r\n\t\t\t }\t\t\r\n\r\n\t\t\t}, vm.showFailure);\t\r\n\t\t\t\r\n } else {\r\n\t\t\tvm.ratingwarning=\"Please rate the technician.\";\r\n // approveModalInstance.close();\r\n }\r\n\t }\r\n\t vm.isApprovalPermission = function (defaultValue) {\r\n if (vm.accountConfig && vm.accountConfig['ApprovalPermission'] != null) {\r\n return vm.accountConfig['ApprovalPermission'].split(\",\").indexOf($localStorage.loggedInUser_Role) > -1;\r\n }\r\n return defaultValue;\r\n\t }\r\n\t// vm.BackToTicketList = function()\r\n\t// {\t\t \r\n\t// \t $localStorage.backToTicketList=\"JobDetailView1\";\r\n\t// }\r\n\r\n\t$scope.checkPDF = function(path){ \r\n\t\t// var pt = path.substr(path.length - 4);\r\n\t\tif(path.startsWith(\"http\")){\r\n\t\t vm.error = function(){\r\n\t\t\t$(\"http\").attr({\"target\" : \"_blank\"})\r\n\t\t\t}\r\n\t\t return true;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\t\r\n\t \r\n\t vm.PDFView = function (page) {\r\n\t\tvm.pdfimage=page;\r\n\t\t $scope.selected = null;\r\n\t\t $timeout(function(){\r\n\t\t\tjobAppointmentModal = $uibModal.open({\r\n\t\t\ttemplateUrl: 'PDFView.html',\r\n\t\t\tsize :'lg',\r\n\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t},1000)\t \r\n\t }\r\n\t vm.PDFUserModal = function(){\r\n\t\tjobAppointmentModal.close();\r\n\t }\r\n\r\n\t // download pdf\r\n\t\r\n\r\n\t vm.OpenPdfModal= function(PdfPathName)\r\n\t\t{\r\n vm.IsLoadSucessfull=false;\t\r\n MainService.GetImageBlob(loggedinUser, token, PdfPathName).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data);\r\n vm.IsLoadSucessfull=true;\t\r\n });\r\n\t\t\tjobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'SiteAuditPDFView.html',\r\n\t\t\t\tsize :'lg',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\twindowClass: 'zindex'\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t}\r\n\t vm.SiteAuditPDFUserModal = function(){\r\n\t\tjobAppointmentModal.close();\r\n\t }\r\n\t\r\n\tvm.ConvertBase64ToBlob = function(response)\r\n\t{\r\n vm.Auditpdf=\"\";\r\n\t\tif(response !=null){\r\n\t\t\tvar arrrayBuffer = base64ToArrayBuffer(response); //data is the base64 encoded string\r\n\t\t\tvar blob = new Blob([arrrayBuffer], {type: \"application/pdf\"});\r\n\t\t\tvm.Auditpdf = URL.createObjectURL(blob);\t\t\t\t\r\n\t\t\tvm.IsLoadSucessfull=true;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tvm.DocumentAvailableMessage=\"Document is not available\";\r\n\t\t\tvm.IsLoadSucessfull=true;\r\n\t\t}\r\n\t}\r\n\tfunction base64ToArrayBuffer(base64) \r\n\t{\r\n\t\tvar ret = base64.replace('data:application/pdf;base64,','');\r\n\t\t\tvar binaryString = atob(ret);\r\n\t\t\tvar binaryLen = binaryString.length;\r\n\t\t\tvar bytes = new Uint8Array(binaryLen);\r\n\t\t\tfor (var i = 0; i < binaryLen; i++) {\r\n\t\t\tvar ascii = binaryString.charCodeAt(i);\r\n\t\t\tbytes[i] = ascii;\r\n\t\t\t}\r\n\t\t\treturn bytes;\r\n\t} \r\n\r\n\tvm.file= [];\r\n\r\n\tvm.getImageIndex = function(index) {\r\n\t\tvm.indexImgg = index;\r\n\t}\r\n\t$scope.uploadBGFilenew = function(files){\r\n\t\t$scope.stepsModel = []; \r\n\t\tvm.FrontFileName=\"\";\r\n\t\tvm.FilesFrontDoc = files.files;\r\n\t\tvm.FrontFileName = vm.FilesFrontDoc[0].name; \r\n\t\tvm.file.push(vm.FilesFrontDoc);\t\r\n\t\t$scope.imageIsLoaded = function(e){\r\n\t\t\t$scope.$apply(function() {\r\n\t\t\t\t$scope.stepsModel.push(e.target.result);\r\n\t\t\t});\r\n\t\t}\r\n\t\tfor (var i = 0; i < vm.FilesFrontDoc.length; i++) {\r\n\t\t\tvar file = vm.FilesFrontDoc[i];\r\n\t\t\t\tvar reader = new FileReader();\r\n\t\t\t\treader.onload = $scope.imageIsLoaded; \r\n\t\t\t\treader.readAsDataURL(file);\r\n\t\t}\t\r\n\t\tvar allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png|\\.JFIF|\\.jfif)$/i; \r\n\t\t if(!allowedExtensions.exec(vm.FrontFileName)){\r\n\t\t vm.FilesFrontDoc = [];\r\n\t\t vm.clear(); \r\n\t\t alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n\t\t}\r\n\t }\r\n\t vm.getImgIndex= function(index,selectedSectionName) {\r\n\t\tvm.imgIndex = index;\r\n\r\n\r\n\r\n\t\tvm.isEditDisabled = false;\r\n\t\tvm.stepsDocLists.forEach(function(data) {\r\n\t\t\tvm.FieldDataDetails = data.ticketResponseList;\r\n\t\t\tif(data.SectionName == selectedSectionName){\r\n\t\t\t\tupdateSection.SectionName = selectedSectionName;\r\n\t\t\t\tvm.FieldDataDetails.forEach(function(updateData) {\r\n\t\t\t\t\tif(updateData.ItemName == data.ticketResponseList[vm.imgIndex].ItemName) {\r\n\t\t\t\t\t\tvm.ticketResp = updateData;\r\n\t\t\t\t\t\tif(vm.ticketResp.edit == true) {\r\n\t\t\t\t\t\tvm.isEditDisabled = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t});\t\r\n\t\t\t\t}\t\t\t\r\n\t\t\t});\r\n\t }\r\n\t vm.clear = function () {\r\n\t\tangular.element(\"input[type='file']\").val(null);\r\n\t }; \r\n\r\n\tvm.DataItemDetailList = [];\r\n\tvar updateSection = {};\r\n\tvm.UpdateDataModel = function(index,selectedSectionName)\r\n\t{ vm.isEditDisabled = false;\r\n\t\tvm.formdataForEdit = new FormData();\r\n\t\tvm.stepsDocLists.forEach(function(data) {\r\n\t\t\tvm.FieldDataDetails = data.ticketResponseList;\r\n\t\t\tif(data.SectionName == selectedSectionName){\r\n\t\t\t\tupdateSection.SectionName = selectedSectionName;\r\n\t\t\t\tvm.FieldDataDetails.forEach(function(updateData) {\r\n\t\t\t\t\tif(updateData.ItemName == data.ticketResponseList[vm.imgIndex].ItemName) {\r\n\t\t\t\t\t\tvm.ticketResp = updateData;\r\n\t\t\t\t\t\tif(vm.ticketResp.ImageItemName != null) {\r\n\t\t\t\t\t\t\tvm.ticketResp.ImageItemName.forEach(function(imgNameI, ind) {\t\r\n\t\t\t\t\t\t\t\tif(vm.file.length == 1) {\r\n\t\t\t\t\t\t\t\t\tif(vm.ticketResp.ImageItemName[vm.indexImgg] == imgNameI) {\r\n\t\t\t\t\t\t\t\t\t\t\tvm.formdataForEdit.append(vm.ticketResp.ImageItemName[vm.indexImgg], vm.file[0][0],vm.ticketResp.ImageItemName[vm.indexImgg]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if(vm.file.length > 1) {\r\n\t\t\t\t\t\t\t\t\t\tvm.formdataForEdit.append(imgNameI, vm.file[ind][0],imgNameI);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t });\r\n\t\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\t\tif(vm.ticketResp.ImageItemName == null && vm.file.length != 0) {\r\n\t\t\t\t\t\t\t\tvm.ticketResp.ImageItemName = [];\r\n\t\t\t\t\t\t\t\t\tif (vm.file[0][0]) {\r\n\t\t\t\t\t\t\t\t\t\t\tvm.imgType = vm.file[0][0].type.substr(vm.file[0][0].type.indexOf('/')+ 1);\r\n\t\t\t\t\t\t\t\t\t\t\tvm.ItemImageName = vm.TicketInfo.TicketId + '_' + vm.StepName + '_' + selectedSectionName + '_' + vm.ticketResp.ItemName + '_' + 0 +\".\"+ vm.imgType;\r\n\t\t\t\t\t\t\t\t\t\t\tvm.ItemImageName = (vm.ItemImageName).replace(/ /g,\"_\");\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tvm.ticketResp.ImageItemName.push(vm.ItemImageName);\r\n\t\t\t\t\t\t\t\t\t\t\t\tvm.formdataForEdit.append(vm.ItemImageName, vm.file[0][0],vm.ItemImageName);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\t\tif((vm.ticketResp.ImageItemName == null && vm.ticketResp.ImageName != null) && (vm.ticketResp.ItemType == 'Multiple Picture Type' || vm.ticketResp.ItemType == 'Signature Type' || vm.ticketResp.ItemType == 'File Attachment Type' || vm.ticketResp.ItemType == 'Video Type')) {\t\r\n\t\t\t\t\t\t\t\t\t\tvm.imgType = vm.file[0][0].type.substr(vm.file[0][0].type.indexOf('/')+ 1);\r\n\t\t\t\t\t\t\t\t\t\tvm.ImageName = vm.TicketInfo.TicketId + '_' + vm.StepName + '_' + selectedSectionName + '_' + vm.ticketResp.ItemName + \".\" + vm.imgType;\r\n\t\t\t\t\t\t\t\t\t\tvm.ImageName = (vm.ImageName).replace(/ /g,\"_\");\r\n\t\t\t\t\t\t\t\t\t\tvm.formdataForEdit.append(vm.ticketResp.ImageName, vm.file[0][0],vm.ticketResp.ImageName);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (vm.ticketResp.ItemType == 'Date Type') {\r\n\r\n\t\t\t\t\t\t\t\tvm.ticketResp.ItemValue = moment(vm.ticketResp.ItemValue).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvm.DataItemDetail= {\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\"ItemName\": vm.ticketResp.ItemName,\r\n\t\t\t\t\t\t\t\t\"ImageItemName\":vm.ticketResp.ImageItemName,\r\n\t\t\t\t\t\t\t\t\"ItemComment\": vm.ticketResp.ItemComment,\r\n\t\t\t\t\t\t\t\t\"ItemStatus\": vm.ticketResp.ItemStatus,\r\n\t\t\t\t\t\t\t\t\"ItemType\": vm.ticketResp.ItemType,\r\n\t\t\t\t\t\t\t\t\"ItemUpdateDate\": vm.ticketResp.ItemUpdateDate,\r\n\t\t\t\t\t\t\t\t\"ItemValue\" : vm.ticketResp.ItemType != 'Multiple Picture Type'?vm.ticketResp.ItemValue:'',\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t// \"ItemValue\": vm.ticketResp.ItemValue\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tvm.DataItemDetailList.push(vm.DataItemDetail)\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tupdateSection.dataUpdateRequestModelList = vm.DataItemDetailList;\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t});\t\r\n\t\t\t\t}\t\t\t\r\n\t\t\t});\r\n\t\t\tvar DataItemDetails = JSON.stringify(updateSection);\r\n\t\t\tvm.formdataForEdit.append(\"UpdateJobFieldDataModel\", DataItemDetails);\r\n\t\t\t$scope.stepsModel = []; \r\n\t}\r\n \r\n\tvm.UpdateFinalDataModel = function(){\t\r\n\t\t// vm.formdataForEdit = new FormData();\t\t\r\n\t\t\tJobDetailViewNewService.UpdateJobData(vm.formdataForEdit,token,loggedinUser,vm.TicketInfo.TicketId).then(function (resp) {\r\n\t\t\tif(resp.status == 202)\r\n\t\t\t{\t\r\n\t\t\t\tvm.showSuccess(\"Success\", \"Data has been successfully updated\");\r\n\t\t\t\tvm.DataItemDetailList = [];\r\n\t\t\t\tvm.file= [];\r\n\t\t\t\t$scope.stepsModel = []; \r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tvm.GetSectionDataByStepName(vm.StepName);\r\n\t\t\t\t},1000);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Data not updated\");\r\n\t\t\t\tvm.DataItemDetailList = [];\r\n\t\t\t\tvm.file= [];\r\n\t\t\t\t$scope.stepsModel = []; \r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\tvm.getFileType = function(url){\r\n\t\tvar extension = fileName.split('.').pop(); \r\n\t\t}\r\n\t\tvm.WordDownloadtoView = function (page) { \r\n\t\t\t\r\n\t\tMainService.GetImageBlob(loggedinUser, token, page).then(function(resp) {\r\n\t\t\twindow.location.href = resp.data;\r\n\t\t}); \r\n\t\t\r\n\t}\r\n});\r\nfunction isNumberKey(evt,elemref, quantityvalue)\r\n{ \r\n var charCode = (evt.which) ? evt.which : evt.keyCode;\r\n if(quantityvalue==\"LineItemQuantity\"){\r\n if(charCode == 46 ){\r\n return false;\r\n }\r\n } \r\n if(charCode == 46 ){\r\n if ((elemref.value) && (elemref.value.indexOf('.') >= 0))\r\n return false;\r\n }\r\n if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57))\r\n { \r\n \r\n return false;\r\n } \r\n if(quantityvalue==\"Percentage\"){\r\n if(parseFloat(elemref.value + evt.key) > 100)\r\n {\r\n return false\r\n }\r\n }\r\n return true; \r\n}\r\nfunction CheckRegExOnKeyPress(e) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\,\\\\-\\\\/]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\r\n\nangular.module('inspinia').service('JobDetailViewComboService', function (ApiURL, $log, $http, SchedulingAPI, FreelancerURL, $localStorage, ActivityURL, LocationURL, PublicApiURL,$timeout){\r\n\r\n this.GetJobTicket = function (ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + $localStorage.loggedInUserId + '/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n } \r\n\r\n\r\n this.getAllActivitiesForJob = function (jobId, accountId, token, callback) {\r\n var url = ActivityURL + '/api/Activity/' + accountId + '/GetAllActivitiesForJob?jobId=' + jobId;\r\n $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token':token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n }).then(function (res) {\r\n if (res && res.data)\r\n callback(res.data);\r\n });\r\n }\r\n\r\n this.updateStartTime = function(ticketId, userId, startTime, token, success, failure){\r\n var url = ApiURL+\"/api/Ticket/updatestartdate\"; \r\n \r\n $http.put(url, {\r\n \"requserid\": userId,\r\n \"ticketid\": ticketId,\r\n \"starttime\": startTime,\r\n // \"endtime\": EndTime\r\n // \"endtime\": EndTime.format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\")\r\n }, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId } }).then(function(res){\r\n if(res){\r\n success(res);\r\n } else {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\") \r\n }\r\n }, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n //https://perf.mymobiforce.com/coreapi/api/Ticket/UpdateMetrialDeliverStatus?requserid=122&ticketid=2222&MetrialDeliverStatus=2xvfxcv\r\n this.UpdateMetrialDeliveredStatus = function(ticketId, userId, matrialStatus, token, success, failure){\r\n var url = ApiURL+\"/api/Ticket/UpdateMetrialDeliverStatus?requserid=\"+userId+'&ticketid='+ticketId+'&MetrialDeliverStatus='+matrialStatus; \r\n $http.put(url, null, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId } }).then(function(res){\r\n if(res){\r\n success(res);\r\n } else {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\") \r\n }\r\n }, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.updateJobTicketwithImage = function (ticketModel, token) {\r\n\r\n\r\n var request = {\r\n method: 'POST',\r\n url: ApiURL + '/api/Upload/PostMediaFileWithObject',\r\n data: ticketModel,\r\n headers: {\r\n 'Token': token,\r\n 'UserId':$localStorage.loggedInUserId,\r\n 'Content-Type': undefined\r\n \r\n }\r\n };\r\n \r\n // SEND THE FILES.\r\n return $http(request)\r\n .success(function (d) {\r\n // alert(d);\r\n })\r\n .error(function () {\r\n });\r\n \r\n }\r\n \r\n\r\n this.getTemplateByName = function(name, token, userId, success, failure){\r\n var url = ApiURL + '/api/Template/'+name+'/'+userId+'/'+ticketId+'/byNameNew';\r\n $http.get(url, {\r\n headers:{'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId}\r\n }).then(function(res){\r\n if(res && res.data){\r\n success(res.data);\r\n }\r\n }, function(error){\r\n failure(\"Failed\", \"Failed to get template \"+name+\", server is not responding correctly.\");\r\n });\r\n }\r\n \r\n this.getAllState = function (userId,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':userId }\r\n });\r\n }\r\n \r\n this.getAllCity = function (userId, state, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':userId }\r\n });\r\n }\r\n\r\n //call to customer https://product.mymobiforce.com/coreapi/api/CallPatching/ClickToCall\r\n this.callToCustomer = function (loggedinUser,data, token) {\r\n $http.post(ApiURL + '/api/CallPatching/ClickToCall',data,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser } }).then(function (resp) {\r\n if (resp && resp.data) {\t \r\n if(resp.status==200)\r\n {\r\n vm.showSuccess(resp.data.Message); \r\n }\r\n else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.saveTicket = function (loggedinUser, ticketId, data, token, success, failure) {\r\n $http.put(ApiURL + '/api/Ticket/' + loggedinUser + '/' + ticketId + '/byTicketId', data, \r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser } }).then(function (res) {\r\n if (res && res.status == 200 && res) {\r\n success(res.data);\r\n } else{\r\n failure(\"Failed\", res.data.Message);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job, server is not responding correctly.\");\r\n });\r\n }\r\n //https://product.mymobiforce.com/coreapi/api/Ticket/UpdatePlannedClosureDate\r\n this.updatePlannedClosure = function (loggedinUser, data, token, success, failure) {\r\n $http.put(ApiURL + '/api/Ticket/UpdatePlannedClosureDate', data, \r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser } }).then(function (res) {\r\n if (res && res.status == 200 && res) {\r\n success(res.data);\r\n } else{\r\n failure(\"Failed\", res.data.Message);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job, server is not responding correctly.\");\r\n });\r\n }\r\n this.UpdateJobPayment = function (loggedinUser, ticketId, BroadcastRate, token, success, failure) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobPayment?reqUserId=' + loggedinUser + '&TicketId=' + ticketId + '&BroadcastRate='+BroadcastRate;\r\n $http.put(url,null, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId':loggedinUser } }).then(function (res) {\r\n if (res && res.status == 200 && res) {\r\n success(res.data);\r\n } else{\r\n failure(\"Failed\", \"Unable to update job payment, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job payment, server is not responding correctly.\");\r\n });\r\n }\r\n // https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/GetFavoriteFreelancersByAccount/U400000000001\r\n // this.GetAllPrefereTalentPool = function(loggedinUser,token){\r\n // var url = FreelancerURL + '/api/FreeLancerUser/GetFavoriteFreelancersByAccount/'+loggedinUser;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json', 'Token': token\r\n // }\r\n // });\r\n // }\r\n\r\n this.GetSchedulingEvaluationResult = function(data,reqUserId,token){\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetSchedulingEvaluationResult?reqUserId='+reqUserId;\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':reqUserId}\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetFavoriteFR?reqUserId=U400000000001\r\n this.GetAllPrefereTalentPool = function(data,reqUserId,token){\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetFavoriteFR?reqUserId='+reqUserId;\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':reqUserId}\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetPreWorkedWith?reqUserId=U400000000001\r\n this.GetAllPreviousUser = function(data,reqUserId,token){\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetPreWorkedWith?reqUserId='+reqUserId;\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':reqUserId}\r\n });\r\n }\r\n\r\n\r\n this.BroadCastJobsforUser = function(loggedinUser,data, token){\r\n var url = FreelancerURL + '/api/BID/createBidFromAssistedScheduling?reqUserId=' + loggedinUser;\r\n return $http.post(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getCustomerJobCardbyJobId = function(accountId, jobId, token ,success, failure){\r\n $http.get(ApiURL+\"/api/GetCustomerJobCardbyJobId/\"+jobId+\"/\"+accountId+\"/GetCustomerJobCardbyJobId\", {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n }).then(function(res){\r\n if(res && res.data && success){\r\n success(res.data);\r\n } else if(failure){\r\n failure();\r\n }\r\n });\r\n }\r\n\r\n this.GetTicketsByStatus = function (loggedinUser, itemNames,itemValues, token) {\r\n var url = FreelancerURL + '/api/BID/'+loggedinUser+'/' + itemNames + '/'+ itemValues + '/getjobsbyfilter';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //https://test.mymobiforce.com/coreapi/api/Ticket/test/AssignTicketForAssistedScheduling\r\n this.AssignTicketsTimeline = function(reqUserId,list, token){\r\n var url = ApiURL + '/api/Ticket/' + reqUserId + '/AssignTicketForAssistedScheduling'\r\n return $http.put(url,list,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':reqUserId}\r\n })\r\n }\r\n\r\n //https://perf.mymobiforce.com/coreapi/api/User/GetUsersByTicketId/U400000000001/T0000000605\r\n // var ApiURL='https://perf.mymobiforce.com/coreapi';\r\n this.GetUsersByTicketId = function(loggedinUser,ticketId,token){\r\n var url = ApiURL + '/api/User/GetUsersByTicketId/'+loggedinUser+'/'+ticketId;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','token':token, 'UserId':loggedinUser}\r\n })\r\n }\r\n//https://test.mymobiforce.com/coreapi/api/ServiceGST/GetGST?reqUserId=U3600000000001&skill=AC%20Installation\r\nthis.GetServiceTax = function(loggedInUserId,token, callback){\r\n var url = ApiURL + '/api/ServiceGST?reqUserId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token,'UserId':loggedInUserId}\r\n }).then(function(res){\r\n callback(res.data)\r\n },function(){\r\n\r\n });\r\n}\r\nthis.GetMobCommission = function(loggedInUserId,token, callback){\r\n var url = ApiURL + '/api/ServiceGST/GetMobiforceCommission?reqUserId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n }).then(function(res){\r\n callback(res.data)\r\n },function(){\r\n\r\n });\r\n}\r\n\r\nthis.OnLoadLineItemDetails = function(loggedinUser,LineItemTicketId,token){\r\n var url = ApiURL + '/api/JobLineItem/GetJobLineItemByTicketId?reqUserId='+loggedinUser+'&ticketId='+LineItemTicketId;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','token':token, 'UserId':loggedinUser}\r\n })\r\n}\r\nthis.CreateUpdateRemoveLineItem = function (userFormData, loggedInUserId,token) {\r\n var url = ApiURL + '/api/JobLineItem/UpdateJobLineItemForNewPricing?reqUserId='+ loggedInUserId;\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedInUserId\r\n }\r\n });\r\n}\r\nthis.completeJob = function (data, loggedinUser, token, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n}\r\n//https://product.mymobiforce.com/coreapi/api/Ticket/FVT0000000000066/FV0000000000103/T350000012267/35/AssignTicketByVendorFromMobile\r\n\r\nthis.VendorManagerAssignJobTeam = function (UserID, loggedInUserId,TicketId,jobAccountId,token) {\r\n var url = ApiURL + '/api/Ticket/'+ UserID +'/'+ loggedInUserId +'/'+ TicketId +'/'+ jobAccountId +'/AssignTicketByVendorFromMobile';\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.uploadLineItemPic = function (loggedInUserId, data, token, success, failure) {\r\n $http.post(ApiURL + '/api/User/PostUserPic?reqUserId=' + loggedInUserId, data, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedInUserId\r\n }\r\n }).then(success, failure);\r\n}\r\n\r\nthis.UpdateJobPaymentDynamicPrice = function (loggedinUser, ticketId, BroadcastRate,MobiforceCommission,FreelancerRate, IsFinalApproval,data,token, success, failure) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobPaymentDynamicPrice?reqUserId=' + loggedinUser + '&TicketId=' + ticketId + '&BroadcastRate='+BroadcastRate + '&MobiforceCommission='+MobiforceCommission + '&FreelancerRate='+FreelancerRate + '&IsFinalApproval='+IsFinalApproval;\r\n $http.put(url,data,{ headers: { 'Content-Type': 'application/json', 'Token': token , 'UserId':loggedinUser} }).then(function (res) {\r\n if (res.status == 201) {\r\n success(res.data);\r\n } else{\r\n\r\n $timeout(function(){\t\r\n failure(\"Failed\", res.data.Message);\r\n vm.enable1 = \"true\";\r\n vm.ApprovePricingButtonText = \"Approve Pricing\";\t\t\t\t\r\n }, 1000);\r\n\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job payment, server is not responding correctly.\");\r\n });\r\n}\r\n\r\nthis.UpdateJobPaymentDynamicPriceAndApprove = function (loggedInUserId, data,token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobPaymentDynamicPriceAndApprove';\r\n return $http.put(url, data, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n//https://product.mymobiforce.com/coreapi/api/JobLineItem/GetAllJobLineItemMasterByTicketId?ticketId=T1140000016805_1\r\nthis.GetJobLineItem = function(loggedInUserId,ticketId,token){\r\n var url = ApiURL + '/api/JobLineItem/GetAllJobLineItemMasterByTicketId?ticketId='+ticketId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n}\r\n\r\n\r\nthis.ResolveException = function (loggedinUser,ticketIdList, token) {\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/MarkResolveSchedulerExceptionForTicket?reqUserId=' + loggedinUser; \r\n return $http.put(url, {'exceptionIdList':ticketIdList}, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.GetCallDetails = function (ticketId, token) { \r\n var url = ApiURL + '/api/CallPatching/GetCallDetailsforTicket?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n// https://product.mymobiforce.com/coreapi/api/ItemsInventory/GetTrackingDtailsOfItems\r\n\r\n// this.GetTrackingDetails = function (data, token) { \r\n// var url = ApiURL + '/api/ItemsInventory/GetTrackingDtailsOfItems';\r\n// return $http.put(url, data,{\r\n// headers: {\r\n// 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n// }\r\n// });\r\n// }\r\n\r\n// https://product.mymobiforce.com/coreapi/api/ItemsInventory/ShowAllStateTrackingDtailsOfItems\r\n\r\nthis.GetAllTrackingDetails = function (data, token) { \r\n var url = ApiURL + '/api/ItemsInventory/ShowAllStateTrackingDtailsOfItems';\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n// https://product.mymobiforce.com/coreapi/api/ItemsInventory/GetTrackingDetailsByTrackinNumber\r\n\r\nthis.GetTrackingDetailsByTrackinNumber = function (data, token) { \r\n var url = ApiURL + '/api/ItemsInventory/GetTrackingDetailsByTrackinNumber';\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n// https://product.mymobiforce.com/coreapi/api/ItemsInventory/GetShipmentDetails\r\nthis.GetShipmentDetails = function (data, token) { \r\n var url = ApiURL + '/api/ItemsInventory/GetShipmentDetails';\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n// https://product.mymobiforce.com/coreapi/api/ItemsInventory/GetNearbyWarehouseList\r\nthis.GetWarehouse = function (token,data) {\r\n var url = ApiURL + '/api/ItemsInventory/GetNearbyWarehouseList';\r\n return $http.put(url,data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n// https://product.mymobiforce.com/coreapi/api/ItemsInventory/CreateSalesOrderForLineitem\r\nthis.createSalesOrder = function (token,data) {\r\n var url = ApiURL + '/api/ItemsInventory/CreateSalesOrderForLineitem';\r\n return $http.post(url,data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n// https://test.mymobiforce.com/coreAPI/api/JobBundle/GetAllBundledJobs?bundleJobId=T1850000000554\r\n\r\nthis.GetAllBundledJobs = function(loggedinUser, bundleJobId, token){\r\n var url = ApiURL + '/api/JobBundle/GetAllBundledJobs?bundleJobId=' + bundleJobId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.GetAllWorkOrderJob = function (ticketId, token) { \r\n var url = ApiURL + '/api/Ticket/GetAllWorkOrderJob?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.GetPreApprovalDocList = function (ticketId, token) { \r\n var url = ApiURL + '/api/Ticket/GetPreApprovalStep?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.approvePPw = function(data, token,ticketId){\r\n var url = ApiURL + '/api/Ticket/UpdatePreApprovalStep?TicketId=' + ticketId;\r\n return $http.put(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, \r\n 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\nthis.RejectJobPPw = function(data, token,ticketId){\r\n var url = ApiURL + '/api/Ticket/UpdatePreApprovalStep?TicketId=' + ticketId;\r\n return $http.put(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, \r\n 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.callToTechnicianApi = function (loggedinUser,userid,token) {\r\n $http.get(ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId='+userid,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser } }).then(function (resp) {\r\n if (resp && resp.data) {\t \r\n if(resp.status==200)\r\n {\r\n vm.showSuccess(\"Success\",\"Call Initiated\"); \r\n }\r\n else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n }\r\n });\r\n}\r\n\r\n});\nangular.module('inspinia').controller('JobDetailViewComboController', function (toaster,MainService,$window,PublicApiURL, ApiURL,\r\n\t$state, $localStorage, $scope,JobTicketViewService,ManualAssignationJobService, DTOptionsBuilder, DTColumnBuilder, \r\n\t$uibModal, JobDetailViewComboService,jobCreationService, $filter, $q, $timeout, $sce, $rootScope, $stateParams, $compile, UIURL, ImageUrl) {\r\n\tvm = this;\r\n\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvm.accountConfig = $localStorage.accountConfig;\r\n\tvm.NokiaTableHeaderChange = $localStorage.accountConfig.NokiaTableHeaderChange;\r\n\tvar loggedinUserName = $localStorage.loggedInUser_FirstName + \" \" + $localStorage.loggedInUser_LastName;\r\n\tvar token = $localStorage.token;\r\n\tvar loggedinUserImage = $localStorage.picture;\r\n\tvar uTicketId = $stateParams.ticketId;\r\n\tvm.showMapPermision = false;\r\n\tvm.superPower = false;\r\n\tvm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n\tvm.CallPatchEnable = $localStorage.accountConfig.CallPatchEnable;\r\n\tvm.Role = $localStorage.loggedInUser_Role;\r\n\tvm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\tvm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n\tvar accountConfig = $localStorage.accountConfig;\r\n\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\tvar currentStepName = '';\r\n\tvar ticketEditModalInstance = {};\r\n\tvm.ImageArray = [];\r\n\tvm.states = [];\r\n\tvm.cities = [];\r\n\tvm.urlForNonFeasible='';\r\n\tvm.currentStepModel = {};\r\n\tvm.dtInstanceNearBy = {};\r\n\tvm.dtInstanceFixed = {};\r\n\tvm.dtInstance = {};\r\n\tvm.dtInstancePre = {};\r\n\tvm.SparePartAddress = {};\r\n\tvm.disableBroadcastButton = false;\r\n\tvm.disableRouteButton = false;\r\n\tvm.showPrefer = '';\r\n\tvm.disabledDrop = false;\r\n\tvm.showloading = false\r\n\tvm.ComplianceDisable = true;\r\n\tvm.PincodeEnabled = true;\t\r\n\tvm.PrivateDisable = false;\t\r\n\tvm.messageText = \"\";\r\n\tvm.LineItemDataList = [];\r\n\tvm.serviceType = '';\r\n\tvm.AppointmentTime = '';\r\n vm.commission = \"\";\r\n vm.tax = \"\";\r\n\tvm.LineItemImage=null;\r\n\tvm.edit=true;\r\n\tvm.edit1=false;\r\n\tvm.BonusPenaltyList =[];\r\n\tvm.BonusList =[];\r\n\tvm.PenaltyList=[];\r\n\tvm.ShipmentDetails =\"\";\r\n\tvm.LineitemActivityList=[];\r\n vm.LineItemCategoryType=\"\";\r\n\tvm.projectId=\"\";\r\n\t \r\n vm.selectedprojectId=\"\";\r\n vm.dynamicpricing=\"\";\r\n\tvm.PercentageEnable=\"\";\r\n\tvm.MobiforceCommission = $localStorage.accountConfig.MobiforceCommissionPercentage;\r\n\tvm.IsFinalApproval=false;\r\n\tvm.disableExceptionButton = false;\r\n\t// vm.IsWithInDays = true;\r\n\tvm.PlannedClosureDateType = \"first\";\r\n\tvm.WithInDays = 1;\r\n\tvm.WithInDaysNumbers = [1,2,3,4,5];\r\n\tvm.IsSafetyAudit = 'Not Done';\r\n\tvm.ratingwarning=\"\";\r\n\tvm.approvalRemark = '';\r\n\tvm.MaterialStatusList = [\"Dispatched\",\"Delivered\",\"Partially Delivered\",\"Not Delivered\"];\r\n\tvm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n\tvm.SelectedMaterial = '';\r\n\tvm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n\tvm.ZOHOWarehouseName = '';\r\n\tvm.customerJobCard = [];\r\n\tif (accountConfig && accountConfig.EnableRegion) {\r\n\t\tvm.EnableRegion = accountConfig.EnableRegion;\r\n\t} else {\r\n\t\tvm.EnableRegion = false;\r\n\t}\r\n\r\n\tvm.TemplateData = [];\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\r\n\t\tvar token = $localStorage.token;\r\n\t\tvm.ticketType = $stateParams.type;\r\n\t\tvm.TicketId = $stateParams.ticketId;\r\n\r\n\t\tvm.BackToTicketList = function () {\r\n\t\t\tif($localStorage.backToOldJobList == 'go'){\r\n\t\t\t\t$rootScope.rootScopeMessage = 'JobDetailView';\r\n\t\t\t\t$state.go('index.JobTickets', {}, { reload: true });\r\n\t\t\t}else if($localStorage.backToOldJobList == 'FreelancerFixedTeamAssign'){\r\n\t\t\t\t// $rootScope.rootScopeMessage = 'FreelancerFixedTeamAssign';\r\n\t\t\t\t$state.go('index.Freelancer_Fixed_Team', {}, { reload: true });\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\t$rootScope.rootScopeMessage = 'JobDetailViewCopy';\r\n\t\t\t\t$state.go('index.JobTicketsCopy', {}, { reload: true });\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\tfunction clean(obj) {\r\n\t\t\tfor (var propName in obj) {\r\n\t\t\t\tif (obj[propName] === null || obj[propName] === undefined) {\r\n\t\t\t\t\tdelete obj[propName];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\t\t\r\n\r\n\t\tvm.GetPreApprovalDocList = function () {\t\t\t\r\n\t\t\tJobDetailViewComboService.GetPreApprovalDocList(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\t\t \r\n\t\t\t\t\tif(resp.status==200){\r\n\t\t\t\t\t\tvm.pAdocList = resp.data;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.GetPreApprovalDocList();\r\n\r\n\t\tvm.implementSelectTickets = function (itemList, scope) {\r\n\t\t\tscope.selectDocRow = function (i) {\r\n\t\t\t vm.docListArray = []; \r\n\t\t\t angular.forEach(scope[itemList], function (d) {\r\n\t\t\t\tif (d.checked) {\r\n\t\t\t\t vm.docListArray.push(d) \r\n\t\t\t\t} \r\n\t\t\t });\r\n\t\t\t}\r\n\t\t }\r\n\t\t vm.implementSelectTickets('pAdocList', this);\r\n\r\n\t\t vm.approvePPw = function () { \r\n\t\t\tangular.forEach(vm.docListArray, function (d) {\r\n\t\t\t\t// if(d.ItemValue) {\r\n\t\t\t\t\tdelete d.ItemValue;\r\n\t\t\t\t\tdelete d.ImageName;\r\n\t\t\t\t\tdelete d.ItemUpdateDate;\r\n\t\t\t\t\tdelete d.checked;\r\n\t\t\t\t\tdelete d.ItemValues;\r\n\t\t\t\t\tdelete d.ItemType;\r\n\t\t\t\t\tdelete d.Value;\r\n\t\t\t\t\tdelete d.VideoName;\r\n\t\t\t\t\td.ItemStatus = 'Approved';\r\n\t\t\t\t\t// d.ItemComment = vm.ppwComment;\r\n\t\t\t\t// }\r\n\t\t\t });\r\n\t\t\tJobDetailViewComboService.approvePPw(vm.docListArray,token,vm.TicketId).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t vm.showSuccess(\"Success\", \"approved\");\r\n\t\t\t\t $timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.GetPreApprovalDocList();\r\n\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse { \r\n\t\t\t\t vm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t });\r\n\t\t }\r\n\t\t vm.RejectJobPPw = function () { \r\n\t\t\tangular.forEach(vm.docListArray, function (d) {\r\n\t\t\t\t// if(d.ItemValue) {\r\n\t\t\t\t\tdelete d.ItemValue;\r\n\t\t\t\t\tdelete d.ImageName;\r\n\t\t\t\t\tdelete d.ItemUpdateDate;\r\n\t\t\t\t\tdelete d.checked;\r\n\t\t\t\t\tdelete d.ItemValues;\r\n\t\t\t\t\tdelete d.ItemType;\r\n\t\t\t\t\tdelete d.Value;\r\n\t\t\t\t\tdelete d.VideoName;\r\n\t\t\t\t\td.ItemStatus = 'Rejected';\r\n\t\t\t\t// }\r\n\t\t\t });\r\n\t\t\tJobDetailViewComboService.RejectJobPPw(vm.docListArray,token,vm.TicketId).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t vm.showSuccess(\"Success\", \"Rejected\");\r\n\t\t\t\t $timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.GetPreApprovalDocList();\r\n\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse{ \r\n\t\t\t\t vm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t });\r\n\t\t }\r\n\t\t vm.ViewJob = function (ticketId) {\r\n\t\t\t$localStorage.backToOldJobList = '';\r\n\t\t\t// $localStorage.SDate = startDate;\r\n\t\t\t// $localStorage.EDate = endDate;\r\n\t\t\t \r\n\t\t\t// $localStorage.TicketFilterModel ={\r\n\t\t\t// \t\"JobLocation\" : vm.locationSearch,\r\n\t\t\t// \t\"JobStatus\" : vm.searchStatusText,\r\n\t\t\t// \t\"JobDType\" : vm.DateField,\r\n\t\t\t// \t\"JobSDate\" : startDate,\r\n\t\t\t// \t\"JobEDate\" : endDate, \r\n\t\t\t// \t\"JobSkill\" : vm.skillsSearch,\r\n\t\t\t// \t\"UserType\" : vm.UsersType,\r\n\t\t\t// \t\"PageIndex\" : PageIndex,\r\n\t\t\t// \t\"uPageIndex\" : uPageIndex \r\n\t\t\t// } ;\r\n\t\t\t$localStorage.backToOldJobList = 'ManualAssignationTeamAssign';\r\n\t\t\tif(GroupType==\"WorkOrder\")\r\n\t\t\t {\r\n\t\t\t $state.go('index.JobDetailViewCombo', {\r\n\t\t\t\tticketId: ticketId\r\n\t\t\t })\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t $state.go('index.JobDetailView', {\r\n\t\t\t\tticketId: ticketId\r\n\t\t\t })\r\n\t\t\t}\r\n\t\t }\r\n\r\n\r\n\r\n\t\tvm.getTicketByJobId = function () { \t\t\r\n\t\t\tJobDetailViewComboService.GetJobTicket(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\tvm.TicketInfo = resp.data;\r\n\t\t\t\tvm.WorkOrderJobList = resp.data.WorkOrderJobList;\r\n\t\t\t\tvm.sowLink = \"https://www.youtube.com/embed/\" + vm.TicketInfo.ScopeWorkPath;\r\n\t\t\t\tvm.PlannedClosureDateType = vm.TicketInfo.SPDUpdateWithInDays == 0?'first':'other';\r\n\t\t\t\tvm.FreelancerBidForLightTicketList = vm.TicketInfo.FreelancerBidForLightTicketModel;\r\n\t\t\t\t// vm.FreelancerBidCount=vm.TicketInfo.FreelancerBidForLightTicketModel.length;\r\n\t\t\t\tvm.BonusPenaltyList = vm.TicketInfo.ListBonusPenalty;\r\n\t\t\t\tvm.ShipmentDetails = vm.TicketInfo.ShipmentDetails;\r\n\t\t\t\tif(vm.TicketInfo.GroupType == 'Combo') {\r\n\t\t\t\t\tvm.GetAllBundledJobs(vm.TicketInfo.TicketId);\r\n\t\t\t\t }\r\n\t\t\t\t// if(vm.TicketInfo.GroupType == 'WorkOrder') {\r\n\t\t\t\t// \tvm.GetAllWorkOrderJob(vm.TicketInfo.TicketId);\r\n\t\t\t\t// }\r\n\t\t\t\tif(vm.TicketInfo.ConsumerContact){\r\n\t\t\t\t\tvm.TicketInfo.ConsumerContact=vm.TicketInfo.ConsumerContact.replace(/\\d(?=\\d{4})/g, '*');\r\n\t\t\t\t }\r\n\t\t\t\tfor(var i = 0; i < vm.BonusPenaltyList.length; i++)\r\n\t\t\t {\r\n\t\t\t\tif(vm.BonusPenaltyList[i].RuleType == \"Bonus\")\t\t\t\t\r\n\t\t\t\t\tvm.BonusList.push(vm.BonusPenaltyList[i]);\t\t\t\t\r\n\t\t\t\telse\r\n\t\t\t\t\tvm.PenaltyList.push(vm.BonusPenaltyList[i]);\r\n\t\t\t }\t\r\n\t\t\t\tvm.projectId=vm.TicketInfo.ProjectId;\r\n\r\n\t\t\t\t//vm.TicketInfo.IsLineItemAvailable=true;\r\n\t\t\t\tif (vm.TicketInfo.TicketStatus == 'New') \r\n\t\t\t\t\tvm.fileuploadShow=false;\t\t\t\t\r\n\t\t\t\telse\r\n\t\t\t\t \tvm.fileuploadShow=true;\r\n\t\t\t\tif (vm.TicketInfo.SpareTransportType == '0') {\r\n\t\t\t\t\tclean(vm.TicketInfo.Courier);\r\n\t\t\t\t\t// var temp = (Object.keys(vm.TicketInfo.Courier).forEach((key) => (vm.TicketInfo.Courier[key] == null) && delete vm.TicketInfo.Courier[key]));\r\n\t\t\t\t\tif (vm.TicketInfo.Courier) {\r\n\t\t\t\t\t\tvm.SparePartAddress = (Object.values(vm.TicketInfo.Courier)).toString();\r\n\t\t\t\t\t\tvm.SpareTransportType = 'Courier';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else if (vm.TicketInfo.SpareTransportType == '1') {\r\n\t\t\t\t\t// var temp = Object.keys(vm.TicketInfo.PickUp).forEach((key) => (vm.TicketInfo.PickUp[key] == null) && delete vm.TicketInfo.PickUp[key]);\r\n\t\t\t\t\tclean(vm.TicketInfo.PickUp);\r\n\t\t\t\t\tvm.SparePartAddress = (Object.values(vm.TicketInfo.PickUp)).toString();\r\n\t\t\t\t\tvm.SpareTransportType = 'PickUp';\r\n\t\t\t\t} else if (vm.TicketInfo.SpareTransportType == '2') {\r\n\t\t\t\t\tclean(vm.TicketInfo.PickUpDrop.PickUp);\r\n\t\t\t\t\t// var temp = Object.keys(vm.TicketInfo.PickUpDrop.PickUp).forEach((key) => (vm.TicketInfo.PickUpDrop.PickUp[key] == null) && delete vm.TicketInfo.PickUpDrop.PickUp[key]);\r\n\t\t\t\t\tvm.SparePartAddress = (Object.values(vm.TicketInfo.PickUpDrop.PickUp)).toString();\r\n\t\t\t\t\tvm.SpareTransportType = 'PickUpDrop';\r\n\t\t\t\t\tvm.SparePartDropAddress = vm.TicketInfo.PickUpDrop.Address1 + ',' + vm.TicketInfo.PickUpDrop.Address2 + ',' + vm.TicketInfo.PickUpDrop.State + ',' + vm.TicketInfo.PickUpDrop.City + ',' + vm.TicketInfo.PickUpDrop.Pincode;\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.TicketInfo.Template == 'VSAT Troubleshooting' || vm.TicketInfo.Template == 'LeaseLine Troubleshooting') {\r\n\t\t\t\t\t// vm.GetStatusActivityInPie();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.TicketInfo.LinkId) {\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.getAllActivitiesForJob();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tangular.copy(vm.TicketInfo.TemplateModel, vm.TemplateData);\r\n\r\n\t\t\t\tfor (var index = 0; index < vm.TemplateData.SectionList.length; index++) {\t\t\t\t\t\r\n\t\t\t\t\tif (vm.TemplateData.SectionList[index].Action == 'Supervisor' && vm.TemplateData.SectionList[index].SectionName == 'Supervisor') {\r\n\t\t\t\t\t\tvm.SuperVisorData = vm.TemplateData.SectionList[index].ItemList;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//ListFieldSupportTeam \r\n\t\t\t\tfor (var index = 0; index < vm.TicketInfo.ListFieldSupportTeam.length; index++) {\t\t\t\t\t\r\n\t\t\t\t\tif (vm.TicketInfo.ListFieldSupportTeam.length >= 0 ) {\r\n\t\t\t\t\t\tvm.ListOfSupportTeam = vm.TicketInfo.ListFieldSupportTeam;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvm.ListActionWise = SeperateSectionAndItems(vm.TemplateData.SectionList, 'Action');\r\n\r\n\t\t\t\t\r\n\t\t\t\tvm.TicketInfoEdit = {\r\n\t\t\t\t\tConsumerName: vm.TicketInfo.ConsumerName,\r\n\t\t\t\t\tConsumerContact: vm.TicketInfo.ConsumerContact,\r\n\t\t\t\t\tAddress1: vm.TicketInfo.Address1,\r\n\t\t\t\t\tAddress2: vm.TicketInfo.Address2,\r\n\t\t\t\t\tPincode: vm.TicketInfo.Pincode,\r\n\t\t\t\t\t// StartTime: vm.TicketInfo.StartTime,\r\n\t\t\t\t\tPlannedStartDate: vm.TicketInfo.PlannedStartDate,\r\n\t\t\t\t\t// EndTime: vm.TicketInfo.EndTime,\r\n\t\t\t\t\tEndTime: ''\r\n\t\t\t\t}\r\n\t\t\t\tvm.getAllStates();\r\n\t\t\t\tif (vm.TicketInfo.State) {\r\n\t\t\t\t\tvm.getCities(vm.TicketInfo.State);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tJobDetailViewComboService.getTemplateByName(vm.TicketInfo.Template, token, loggedinUser,vm.TicketInfo.TicketId, function (data) {\r\n\t\t\t\t\tvm.templateData = data;\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t\tvm.TechnicianSource = vm.TicketInfo.TechnicianSource ? vm.TicketInfo.TechnicianSource : vm.TechnicianSource = '';\r\n\r\n\t\t\t\tvm.showPrefer = 'fixed';\r\n\t\t\t\t// \tvm.GetFixedUser(false);\r\n\t\t\t\t// \tvm.GetNearByUser(false);\r\n\t\t\t\t// vm.GetPreviousWorker(false);\r\n\t\t\t\t// vm.GetTalentPoolUser(false);\r\n\r\n\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.disabledDrop = true;\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.TicketInfo.MetrialDeliverStatus) {\r\n\t\t\t\t\tvm.SelectedMaterial = vm.TicketInfo.MetrialDeliverStatus;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.TechnicianSource == '0' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'fixed';\r\n\t\t\t\t\tvm.showF = true;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetFixedUser(false);\r\n\t\t\t\t} else if (vm.TechnicianSource == '1' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'nearBy';\r\n\t\t\t\t\tvm.showF = false;\r\n\t\t\t\t\tvm.showN = true;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetNearByUser(false);\r\n\t\t\t\t} else if (vm.TechnicianSource == '2' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'true';\r\n\t\t\t\t\tvm.showF = false;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = true;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetTalentPoolUser(true);\r\n\t\t\t\t} else if (vm.TechnicianSource == '3' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'previous';\r\n\t\t\t\t\tvm.showF = false;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = true;\r\n\t\t\t\t\tvm.GetPreviousWorker(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.showF = true;\r\n\t\t\t\t\tvm.showN = true;\r\n\t\t\t\t\tvm.showT = true;\r\n\t\t\t\t\tvm.showP = true;\r\n\t\t\t\t\tvm.GetFixedUser(false);\r\n\t\t\t\t\tvm.GetNearByUser(false);\r\n\t\t\t\t\tvm.GetPreviousWorker(false);\r\n\t\t\t\t\tvm.GetTalentPoolUser(false);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif($localStorage.loggedInUser_Role == 'Vendor Manager'){\r\n\t\t\t\t\tvm.showPrefer = 'fixed';\r\n\t\t\t\t\tvm.showF = true;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetFixedUser(true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t\r\n\t\tvm.getTicketByJobId();\r\n\r\n\t\tvm.GetAllBundledJobs = function(bundleId){\r\n\t\t\tvm.bundleJobId = bundleId;\r\n\t\t\t\tif(vm.bundleJobId){\r\n\t\t\t\t\tJobDetailViewComboService.GetAllBundledJobs(loggedinUser, vm.bundleJobId ,token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\t\tvm.BundleTicketList=resp.data;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}, function () { \r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// if(vm.TicketInfo.GroupType == 'WorkOrder') {\r\n\t\t\t\tvm.GetAllWorkOrderJob = function () {\t\t\t\r\n\t\t\t\t\tJobDetailViewComboService.GetAllWorkOrderJob(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\t\t\tif (resp && resp.data) {\t\t \r\n\t\t\t\t\t\t\tif(resp.status==200){\r\n\t\t\t\t\t\t\t\tvm.workOrderList = resp.data;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t// }\r\n\t\t\tvm.GetAllWorkOrderJob();\r\n\r\n\t\tvm.addClassInButton = function () {\r\n\t\t\tif (vm.TechnicianSource && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$('#btnFixedTeam').addClass('activeButton');\r\n\t\t\t\t\t$('#btnNearBy').addClass('activeButton');\r\n\t\t\t\t\t$('#btnTalent').addClass('activeButton');\r\n\t\t\t\t\t$('#btnPrefer').addClass('activeButton');\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.planerDateModal = {};\r\n\t\tvm.editplanCloser = function () {\r\n\t\t\tvm.TicketInfoEdit['PlannedClosureDate'] = vm.TicketInfo.PlannedClosureDate;\r\n\t\t\tvm.planerDateModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editplanerDate.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeplanerDate = function () {\r\n\t\t\tvm.planerDateModal.close();\r\n\t\t}\r\n\r\n\t\tvm.updatePlannedClosure = function () {\r\n\t\t\t\tvm.PlannedClosureticketList = [];\r\n\t\t\t\tvm.PlannedClosureticketList.push(vm.TicketInfo.TicketId);\r\n\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"TicketIds\":vm.PlannedClosureticketList,\r\n\t\t\t\t\t \"TicketPlannedClosureDate\": moment(vm.TicketInfoEdit.PlannedClosureDate).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n\t\t\t\t\t \"IsWithInDays\":vm.IsWithInDays == 'first'?true:false,\r\n \t\t\t\t\t \"WithInDays\": vm.WithInDays,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tJobDetailViewComboService.updatePlannedClosure(loggedinUser, data, token, function (res) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", res);\r\n\t\t\t\t\tvm.planerDateModal.close();\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.jobAddressModal = {};\r\n\t\tvm.editJobAddress = function () {\r\n\r\n\t\t\tvm.TicketInfoEdit['ConsumerName'] = vm.TicketInfo.ConsumerName;\r\n\t\t\tvm.TicketInfoEdit['ConsumerContact'] = vm.TicketInfo.ConsumerContact;\r\n\t\t\tvm.TicketInfoEdit['Address1'] = vm.TicketInfo.Address1;\r\n\t\t\tvm.TicketInfoEdit['Address2'] = vm.TicketInfo.Address2;\r\n\t\t\tvm.TicketInfoEdit['Pincode'] = vm.TicketInfo.Pincode;\r\n\t\t\tvm.TicketInfoEdit['StartTime'] = vm.TicketInfo.StartTime;\r\n\t\t\tvm.TicketInfoEdit['EndTime'] = vm.TicketInfo.EndTime;\r\n\t\t\tvm.TicketInfoEdit['Region'] = vm.TicketInfo.Region;\r\n\t\t\tvm.TicketInfoEdit['SubRegion'] = vm.TicketInfo.SubRegion;\r\n\r\n\t\t\tif (vm.states && !vm.TicketInfoEdit.State || vm.TicketInfoEdit.State != vm.TicketInfo.State) {\r\n\t\t\t\tangular.forEach(vm.states, function (s) {\r\n\t\t\t\t\tif (s == vm.TicketInfo.State) {\r\n\t\t\t\t\t\tvm.TicketInfoEdit.State = s;\r\n\t\t\t\t\t\tvm.getCities(vm.TicketInfo.State);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvm.jobAddressModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAddress.html',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\twindowClass: 'schedulerModal'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeJobAddress = function () {\r\n\t\t\tvm.jobAddressModal.close();\r\n\t\t}\r\n\r\n\t\tvm.updateJobAddress = function () {\r\n\t\t\tvm.jobAddressForm.submitted = true;\r\n\t\t\tif (vm.jobAddressForm.$valid) {\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"ConsumerContact\": vm.TicketInfoEdit.ConsumerContact,\r\n\t\t\t\t\t\"Address1\": vm.TicketInfoEdit.Address1,\r\n\t\t\t\t\t\"Address2\": vm.TicketInfoEdit.Address2,\r\n\t\t\t\t\t\"ConsumerName\": vm.TicketInfoEdit.ConsumerName,\r\n\t\t\t\t\t\"State\": vm.TicketInfoEdit.State,\r\n\t\t\t\t\t\"City\": vm.TicketInfoEdit.City,\r\n\t\t\t\t\t\"Pincode\": vm.TicketInfoEdit.Pincode,\r\n\t\t\t\t\t\"StartTime\": vm.TicketInfoEdit.StartTime,\r\n\t\t\t\t\t\"EndTime\": vm.TicketInfoEdit.EndTime,\r\n\t\t\t\t\t\"Region\": vm.TicketInfo.Region,\r\n\t\t\t\t\t\"SubRegion\": vm.TicketInfo.SubRegion,\r\n\r\n\t\t\t\t};\r\n\r\n\t\t\t\tJobDetailViewComboService.saveTicket(loggedinUser, vm.TicketInfo.TicketId, data, token, function (res) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", res);\r\n\t\t\t\t\tvm.jobAddressModal.close();\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t//window.location.reload(true);\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log(\"invalid values\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//call customer or freelancer\r\n\t\tvm.callToCustomer = function (TicketId,ConnectTo) { \r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"ConnectTo\": ConnectTo,\r\n\t\t\t\t\t\"TicketId\": TicketId\r\n\t\t\t\t\t};\r\n\t\t\t\tJobDetailViewComboService.callToCustomer(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t});\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\tvm.getAllStates = function () {\r\n\t\t\tJobDetailViewComboService.getAllState(loggedinUser,token).then(function (resp) {\r\n\t\t\t\tvm.states = resp.data;\r\n\t\t\t\tangular.forEach(vm.states, function (s) {\r\n\t\t\t\t\tif (s == vm.TicketInfo.State) {\r\n\t\t\t\t\t\tvm.TicketInfoEdit.State = s;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.getCities = function (state) {\r\n\t\t\tif (state != \"\" && state.length > 0) {\r\n\t\t\t\tvm.cities = [];\r\n\t\t\t\tJobDetailViewComboService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n\t\t\t\t\tvm.cities = resp.data;\r\n\t\t\t\t\tangular.forEach(vm.cities, function (c) {\r\n\t\t\t\t\t\tif (vm.TicketInfo.City) {\r\n\t\t\t\t\t\t\tvar city = vm.TicketInfo.City.toUpperCase();\r\n\t\t\t\t\t\t\tif (c == city) {\r\n\t\t\t\t\t\t\t\tvm.TicketInfoEdit.City = c;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.getAllActivitiesForJob = function () {\r\n\t\t\tJobDetailViewComboService.getAllActivitiesForJob(vm.TicketId, loggedinUser, token, function (data) {\r\n\t\t\t\tvm.statusTracker = data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.jobAppointmentModal = {};\r\n\t\tvm.editJobAppointment = function () {\r\n\t\t\tvm.TicketInfoEdit['ConsumerName'] = vm.TicketInfo.ConsumerName;\r\n\t\t\tvm.TicketInfoEdit['ConsumerContact'] = vm.TicketInfo.ConsumerContact;\r\n\t\t\tvm.TicketInfoEdit['Address1'] = vm.TicketInfo.Address1;\r\n\t\t\tvm.TicketInfoEdit['Address2'] = vm.TicketInfo.Address2;\r\n\t\t\tvm.TicketInfoEdit['Pincode'] = vm.TicketInfo.Pincode;\r\n\t\t\tvm.TicketInfoEdit['StartTime'] = new Date(vm.TicketInfo.StartTime);\r\n\t\t\tvm.TicketInfoEdit['EndTime'] = new Date(vm.TicketInfo.EndTime);\r\n\r\n\t\t\tif (vm.states && !vm.TicketInfoEdit.State || vm.TicketInfoEdit.State != vm.TicketInfo.State) {\r\n\t\t\t\tangular.forEach(vm.states, function (s) {\r\n\t\t\t\t\tif (s == vm.TicketInfo.State) {\r\n\t\t\t\t\t\tvm.TicketInfoEdit.State = s;\r\n\t\t\t\t\t\tvm.getCities(vm.TicketInfo.State);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAppointment.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeJobAppointment = function () {\r\n\t\t\tvm.jobAppointmentModal.close();\r\n\t\t}\r\n\r\n\t\tvm.updateJobAppointment = function () {\r\n\t\t\t\r\n\t\t\tvm.jobAppointmentForm.submitted = true;\r\n\t\t\tif (vm.jobAppointmentForm.$valid) {\t\t\t\t\t\r\n\t\t\t\t// if(moment(vm.TicketInfoEdit.PlannedStartDate)._i <= moment(vm.TicketInfoEdit.EndTime)._i){\r\n\t\t\t\t\tvar sDate = moment(vm.TicketInfoEdit.PlannedStartDate).format(\"YYYY-MM-DD\");\r\n\t\t\t\t\t// var eDate = moment(vm.TicketInfoEdit.EndTime).format(\"DD-MM-YYYY HH:mm\");\r\n\t\t\t\t\tvm.Stdate = sDate;\r\n\t\t\t\t\tvm.Stime = vm.AppointmentTime;\r\n\t\t\t\t\tvm.CurrentDate = moment().format('YYYY-MM-DDTHH:mm:ss.SSSZ');\r\n\t\t\t\t\tvm.dateTime = moment (vm.Stdate + ' ' + vm.Stime).format('YYYY-MM-DDTHH:mm:ss.SSSZ');\r\n\t\t\t\t\tif(moment(vm.dateTime)._i >= moment(vm.CurrentDate)._i){\r\n\t\t\t\t\t// vm.Etdate = eDate;\r\n\r\n\t\t\t\t\tJobDetailViewComboService.updateStartTime(vm.TicketInfo.TicketId, loggedinUser, vm.dateTime, token, function (res) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Appointment Date updated successfully\");\r\n\t\t\t\t\t\tvm.jobAppointmentModal.close();\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t}, vm.showFailure);\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tvm.showFailure('Failed','Start time should be greater than current time!');\r\n\t\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tvm.showFailure('Failed', 'Appointment date is not valid');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.UpdateMatrialStatus = function(MetrialDeliveredStatus){\r\n\t\t\tif(MetrialDeliveredStatus){\r\n\t\t\t\tJobDetailViewComboService.UpdateMetrialDeliveredStatus(vm.TicketInfo.TicketId,loggedinUser,MetrialDeliveredStatus,token,function(res){\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Matrial Delivered Status updated successfully\");\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t},vm.showFailure);\r\n\t\t\t}else{\r\n\t\t\t\tvm.showFailure(\"Failed\",\"Please select matrial delivred status\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.getReadableTime = function (time) {\r\n\t\t\tvm.timeDisplay = \"\";\r\n\t\t\tif (typeof time == \"string\") {\r\n\t\t\t\tvm.timeDisplay = $filter('date')(new Date(time), \"yyyy/MM/dd h:mm:ss a\");\r\n\t\t\t}\r\n\t\t\tif (typeof time == \"object\") {\r\n\t\t\t\tvm.timeDisplay = time.format(\"DD/MMM/YY LTS\");\r\n\t\t\t}\r\n\t\t\treturn vm.timeDisplay;\r\n\t\t}\r\n\r\n\t\tvm.isUpdatePermission = function () {\r\n\t\t\tif (vm.VerticalName == 'Spectro Labs') {\r\n\t\t\t\tif (accountConfig && accountConfig.MenuListModel) {\r\n\t\t\t\t\tfor (var i = 0; i < accountConfig.MenuListModel.length; i++) {\r\n\t\t\t\t\t\tif (accountConfig.MenuListModel[i].MenuName == \"Jobs\") {\r\n\t\t\t\t\t\t\tfor (var j = 0; j < accountConfig.MenuListModel[i].SubMenusList.length; j++) {\r\n\t\t\t\t\t\t\t\tif (accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == \"All Tickets\") {\r\n\t\t\t\t\t\t\t\t\treturn accountConfig.MenuListModel[i].SubMenusList[j].UpdatePermission.split(\",\").indexOf($localStorage.loggedInUser_Role) >= 0;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (accountConfig && accountConfig.MenuListModel) {\r\n\t\t\t\t\tfor (var i = 0; i < accountConfig.MenuListModel.length; i++) {\r\n\t\t\t\t\t\tif (accountConfig.MenuListModel[i].MenuName == \"Jobs\") {\r\n\t\t\t\t\t\t\tfor (var j = 0; j < accountConfig.MenuListModel[i].SubMenusList.length; j++) {\r\n\t\t\t\t\t\t\t\tif (accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == \"All Jobs\") {\r\n\t\t\t\t\t\t\t\t\treturn accountConfig.MenuListModel[i].SubMenusList[j].UpdatePermission.split(\",\").indexOf($localStorage.loggedInUser_Role) >= 0;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvm.getDropDownOptions = function (SectionName, ItemName) {\r\n\t\t\tvar options = [];\r\n\t\t\tif (vm.templateData && vm.templateData.SectionList) {\r\n\t\t\t\tangular.forEach(vm.templateData.SectionList, function (l) {\r\n\t\t\t\t\tif (l.SectionName == SectionName && l.ItemList && l.ItemList.length > 0) {\r\n\t\t\t\t\t\tangular.forEach(l.ItemList, function (item) {\r\n\t\t\t\t\t\t\tif (item.ItemName == ItemName && item.ItemType == \"Dropdown Type\" && item.field_options && item.field_options.options && item.field_options.options.length > 0) {\r\n\t\t\t\t\t\t\t\t//$log.log(\"item.field_options.options\", item.field_options.options);\r\n\t\t\t\t\t\t\t\toptions = item.field_options.options;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\treturn options;\r\n\t\t}\r\n\r\n\t\tvm.getDropDownOptionsForCheckboxList = function (SectionName, ItemName) {\r\n\t\t\tvar options = [];\r\n\t\t\tif (vm.templateData && vm.templateData.SectionList) {\r\n\t\t\t\tangular.forEach(vm.templateData.SectionList, function (l) {\r\n\t\t\t\t\tif (l.SectionName == SectionName && l.ItemList && l.ItemList.length > 0) {\r\n\t\t\t\t\t\tangular.forEach(l.ItemList, function (item) {\r\n\t\t\t\t\t\t\tif (item.ItemName == ItemName && item.ItemType == \"CheckBoxList DropDown Type\" && item.field_options && item.field_options.options && item.field_options.options.length > 0) {\r\n\t\t\t\t\t\t\t\t//$log.log(\"item.field_options.options\", item.field_options.options);\r\n\t\t\t\t\t\t\t\toptions = item.field_options.options;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\treturn options;\r\n\t\t}\r\n\r\n\r\n\t\t\r\n\t\t\tvm.PDFViewRport = function (page) {\r\n\t\t\t\tvm.pdfimage =\"\";\r\n\t\t\t\tvm.IsLoadSucessfull=false;\r\n\t\t\t\t$scope.selected = null;\r\n\t\t\t\t// $timeout(function () {\r\n\t\t\t\t\tjobAppointmentModalReport = $uibModal.open({\r\n\t\t\t\t\t\ttemplateUrl: 'PDFViewDownload.html',\r\n\t\t\t\t\t\tsize: 'lg',\r\n\t\t\t\t\t\tscope: $scope\r\n\t\t\t\t\t});\r\n\t\t\t\t// }, 1000)\r\n\t\r\n\t\t\t}\r\n\t\t\tvm.PDFUserModalReport = function () {\r\n\t\t\t\tjobAppointmentModalReport.close();\r\n\t\t\t}\r\n\r\n\t\t\tvm.PDFViewEstimate = function (img) {\r\n\t\t\t\tvm.pdfimage = \"\";\r\n\t\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\t\t vm.pdfimage = resp.data;\r\n\t\t\t\t vm.IsLoadSucessfull = true;\r\n\t\t\t\t});\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t jobAppointmentModal = $uibModal.open({\r\n\t\t\t\t\ttemplateUrl: 'PDFView.html',\r\n\t\t\t\t\tsize: 'lg',\r\n\t\t\t\t\tscope: $scope\r\n\t\t\t\t });\r\n\t\t\t\t}, 1000)\r\n\t\t\t }\r\n\t\r\n\t\t\tfunction base64ToArrayBuffer(base64) {\r\n\t\t\t\tvar ret = base64.replace('data:application/pdf;base64,', '');\r\n\t\t\t\tvar binaryString = atob(ret);\r\n\t\t\t\tvar binaryLen = binaryString.length;\r\n\t\t\t\tvar bytes = new Uint8Array(binaryLen);\r\n\t\t\t\tfor (var i = 0; i < binaryLen; i++) {\r\n\t\t\t\t\tvar ascii = binaryString.charCodeAt(i);\r\n\t\t\t\t\tbytes[i] = ascii;\r\n\t\t\t\t}\r\n\t\t\t\treturn bytes;\r\n\t\t\t}\r\n\r\n\r\n\t\tvm.clickOnFileControl = function (controlName) {\t\t\t\r\n\t\t\t//angular.element(\"#image\").trigger(\"click\");\r\n\t\t\tangular.element(\"input[type='file'][name='\" + controlName + \"']\").trigger(\"click\");\r\n\t\t}\r\n\r\n\t\t$scope.upload = function (obj, $index) {\t\t\t\r\n\t\t\tvar elem = obj.target || obj.srcElement;\r\n\t\t\tvm.ImageArray = [];\t\t\t\r\n\t\t\tfor (i = 0; i < item.ItemValue.length; i++) {\t\t\t\t\r\n\t\t\t\tvar file = item.ItemValue[i];\r\n\t\t\t\tvm.ImageArray.push(elem.files[i]);\r\n\t\t\t\tvar reader = new FileReader();\r\n\t\t\t\treader.onload = function (e) {\r\n\t\t\t\t\t$scope.display = e.target.result;\r\n\t\t\t\t\tvm.tempImg = e.target.result;\r\n\t\t\t\t\t$scope.$apply();\r\n\t\t\t\t}\r\n\t\t\t\treader.readAsDataURL(file);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.OpenTicketEditModal = function (action) {\r\n\t\t\tvm.ModalActionWithValuesList = {}\r\n\t\t\tvm.currentStepModel = action.action;\r\n\t\t\tcurrentStepName = vm.currentStepModel.Action;\r\n\t\t\tticketEditModalInstance = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ticketEdit_modal.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\tangular.copy(action.action, vm.ModalActionWithValuesList);\r\n\r\n\t\t}\r\n\r\n\t\tvm.CloseEditModal = function () {\r\n\t\t\tticketEditModalInstance.close();\r\n\t\t}\r\n\r\n\t\tvm.getVideoUrl = function (url) {\r\n\t\t\tif (url) {\r\n\t\t\t\treturn $sce.trustAsResourceUrl(ImageUrl + '/' + url);\r\n\t\t\t} else {\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction SeperateSectionAndItems(itemlist, property) {\r\n\t\t\t\r\n\t\t\tvar hash = {};\r\n\t\t\tvar second_property = 'Section';\r\n\t\t\tvar sectionList = [];\r\n\t\t\tfor (var itemNum = 0; itemNum < itemlist.length; itemNum++) {\r\n\t\t\t\tif (itemlist[itemNum].Action == 'Supervisor' || itemlist[itemNum].Action == 'systemInfo') {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tif (itemlist[itemNum].Action == 'Payment Collection' && vm.TicketInfo.CollectionRequired=='No') {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tif (!hash[itemlist[itemNum][property]])\r\n\t\t\t\t\thash[itemlist[itemNum][property]] = [];\r\n\t\t\t\thash[itemlist[itemNum][property]].push(itemlist[itemNum]);\r\n\t\t\t}\r\n\r\n\t\t\tfor (var action in hash) {\r\n\t\t\t\tvar sechash = {};\r\n\t\t\t\tvar nestedSectionList = hash[action];\r\n\t\t\t\tfor (var itemIndex = 0; itemIndex < nestedSectionList.length; itemIndex++) {\r\n\t\t\t\t\tif (!sechash[nestedSectionList[itemIndex][second_property]])\r\n\t\t\t\t\t\tsechash[nestedSectionList[itemIndex][second_property]] = [];\r\n\t\t\t\t\tsechash[nestedSectionList[itemIndex][second_property]].push(nestedSectionList[itemIndex]);\r\n\t\t\t\t}\r\n\t\t\t\thash[action] = sechash;\r\n\t\t\t}\r\n\r\n\t\t\tfor (var actionName in hash) {\r\n\t\t\t\tfor (var secName in hash[actionName]) {\r\n\t\t\t\t\tvar section = {};\r\n\t\t\t\t\tsection.SectionList = [];\r\n\t\t\t\t\tsection.Section = secName;\r\n\t\t\t\t\tfor (var i = 0; i < hash[actionName][secName].length; i++) {\r\n\t\t\t\t\t\tsection.SectionList.push(hash[actionName][secName][i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsection.Action = actionName;\r\n\t\t\t\t\tsectionList.push(section);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn sectionList;\r\n\t\t}\r\n\r\n\r\n\t\tvm.EditItemSectionAndActionWise = function (itemType) {\r\n\t\t\tvm.PlottedItem = '';\r\n\r\n\t\t\tswitch (itemType) {\r\n\r\n\t\t\t\tcase 'Dropdown Type':\r\n\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Date Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t+ '';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Multiple Picture Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t+ '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Signature Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t+ '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'File Attachment Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t// + ''\r\n\t\t\t\t\t\t + '
'\r\n\t\t\t\t\t\t+ '
Click here to upload PDF
'\r\n\t\t\t\t\t\t+ '


Click here to upload PDF
'\r\n\t\t\t\t\t\t //+ '
Click here to upload pdf
';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'CheckBoxList DropDown Type':\r\n\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Video Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t+''\r\n\t\t\t\t\t\t+'';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Character FilteredTextBoxField':\r\n\t\t\t\tcase 'Bigger Textbox':\r\n\t\t\t\tcase 'Edit Enabled':\r\n\t\t\t\tcase 'Phone Type':\r\n\t\t\t\tcase 'Decimal TextBox Type':\r\n\t\t\t\tcase 'Numeric FilteredTextBoxField':\r\n\t\t\t\tcase 'Instruction Type':\r\n\t\t\t\tcase 'Scan Barcode Type':\r\n\t\t\t\tcase 'Email':\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn vm.PlottedItem;\r\n\t\t}\r\n\r\n\t\t\r\n\tvm.callToTechnician = function (userid) {\r\n\t\tJobDetailViewComboService.callToTechnicianApi(loggedinUser, userid, token).then(function (resp) {\r\n\t\tif(resp.status == 200) {\r\n\t\tvm.showSuccess(\"Success\",\"Call Initiated\")\r\n\t\t}\r\n\t\telse {\r\n\t\tvm.showFailure(\"Failure\",resp.data.Message)\r\n\t\t}\r\n\t\r\n\t\t}, function () {\r\n\t\t})\r\n\t}\r\n\r\n\t\tvm.UpdateStep = function () {\r\n\r\n\t\t\tvar formData = new FormData();\r\n\r\n\t\t\tfor (var ticketmodelIndex = 0; ticketmodelIndex < vm.TicketInfo.TemplateModel.SectionList.length; ticketmodelIndex++) {\r\n\t\t\t\tvar Action = vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].Action;\r\n\t\t\t\tvar section = vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].SectionName;\r\n\t\t\t\tif (Action == currentStepName) {\r\n\t\t\t\t\tfor (var currentModalIndex = 0; currentModalIndex < vm.ModalActionWithValuesList.SectionList.length; currentModalIndex++) {\r\n\t\t\t\t\t\tif (section == vm.ModalActionWithValuesList.SectionList[currentModalIndex].SectionName) {\r\n\r\n\t\t\t\t\t\t\tvm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].ItemList = vm.ModalActionWithValuesList.SectionList[currentModalIndex].ItemList;\r\n\t\t\t\t\t\t\tangular.forEach(vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].ItemList, function (item) {\r\n\t\t\t\t\t\t\t\tif (item.ItemType == 'Date Type') {\r\n\r\n\t\t\t\t\t\t\t\t\titem.ItemValue = moment(item.ItemValue).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\telse if (item.ItemType == 'CheckBoxList DropDown Type') {\r\n\t\t\t\t\t\t\t\t\titem.field_options.options = [];\r\n\t\t\t\t\t\t\t\t\tif (item.ItemValues && item.ItemValues.length > 0) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < item.ItemValues.length; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar obj = { \"label\": item.ItemValues[i] };\r\n\t\t\t\t\t\t\t\t\t\t\t// obj.push()\r\n\t\t\t\t\t\t\t\t\t\t\titem.field_options.options.push(obj);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t//item.field_options.options.push(item.ItemValue);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if (item.ItemType == 'Multiple Picture Type' || item.ItemType == 'Signature Type' || item.ItemType == 'File Attachment Type' || item.ItemType == 'Video Type') {\r\n\t\t\t\t\t\t\t\t\tif (vm.ImageArray[section + '_' + item.ItemName]) {\r\n\t\t\t\t\t\t\t\t\t\tvm.ImageArray[section + '_' + item.ItemName].name = vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t\t\titem.ItemValue = vm.TicketInfo.TicketId + '_' + Math.random().toString(36).substring(7) + new Date().getTime() + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t\t\titem.ImageName = item.ItemValue;\r\n\t\t\t\t\t\t\t\t\t\tformData.append(vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name, vm.ImageArray[section + '_' + item.ItemName], item.ImageName);\r\n\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// else if (item.ItemType == 'Video Type') { \r\n\t\t\t\t\t\t\t\t// \tif (vm.ImageArray[section + '_' + item.ItemName]) {\r\n\t\t\t\t\t\t\t\t// \t\tvm.ImageArray[section + '_' + item.ItemName].name = vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t// \t\titem.ItemValue = vm.TicketInfo.TicketId + '_' + Math.random().toString(36).substring(7) + new Date().getTime() + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t// \t\titem.ImageName = item.ItemValue;\r\n\t\t\t\t\t\t\t\t// \t\tformData.append(vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name, vm.ImageArray[section + '_' + item.ItemName], item.ImageName);\r\n\r\n\t\t\t\t\t\t\t\t// \t}\r\n\r\n\t\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tticketEditModalInstance.close();\r\n\t\t\tformData.append('reqUserId', loggedinUser)\r\n\t\t\t//var data = angular.toJson(vm.TicketInfo);\r\n\t\t\tvm.TicketInfo.TemplateModel.SectionList.forEach(function (element,i) {\r\n\t\t\t\tvm.TicketInfo.TemplateModel.SectionList[i].ItemList.forEach(function (element,i) {\r\n\t\t\t\t\tif( element.ItemType == 'Multiple Picture Type' || element.ItemType == 'Signature Type' || element.ItemType == 'File Attachment Type' || element.ItemType == 'Video Type') {\r\n\t\t\t\t\t\telement.ItemValue = '';\r\n\t\t\t\t\t\telement.imageData =[];\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t });\r\n\t\t\tvar data = JSON.stringify(vm.TicketInfo);\r\n\t\t\tformData.append(\"TicketRequestModel\", data);\r\n\t\t\tJobDetailViewComboService.updateJobTicketwithImage(formData, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 202 || resp.status == 200) {\r\n\t\t\t\t\t$timeout(function(){\t\r\n\t\t\t\t\t\ttoaster.pop({\r\n\t\t\t\t\t\t\ttype: 'success',\r\n\t\t\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\t\t\tbody: 'Job has been successfully updated',\r\n\t\t\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\tvm.getTicketByJobId();\t\t\t\t\t\t\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t\tfor (var sectionIndex = 0; sectionIndex < vm.currentStepModel.SectionList.length; sectionIndex++) {\r\n\t\t\t\t\t\tfor (var itemIndex = 0; itemIndex < vm.currentStepModel.SectionList[sectionIndex].ItemList.length; itemIndex++) {\r\n\t\t\t\t\t\t\tvar beforeChangeItem = vm.currentStepModel.SectionList[sectionIndex].ItemList[itemIndex].ItemValue;\r\n\t\t\t\t\t\t\tvar afterChangeItem = vm.ModalActionWithValuesList.SectionList[sectionIndex].ItemList[itemIndex].ItemValue;\r\n\t\t\t\t\t\t\tif (beforeChangeItem != afterChangeItem) {\r\n\t\t\t\t\t\t\t\tvm.currentStepModel.SectionList[sectionIndex].ItemList[itemIndex].ItemValue = afterChangeItem;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\t\t\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttoaster.pop({\r\n\t\t\t\t\t\ttype: 'error',\r\n\t\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\t\tbody: 'Job has not been updated',\r\n\t\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\ttoaster.pop({\r\n\t\t\t\t\ttype: 'error',\r\n\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\tbody: 'server error',\r\n\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tvm.getImageData = function (data) {\t\t\t\r\n\t\t\tif (data) {\r\n\t\t\t\t// console.log(data);\r\n\t\t\t\treturn data;\r\n\t\t\t} else {\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//\r\n\t\tvm.getImageDataFST = function (data) {\t\t\t\r\n\t\t\tif (data) {\r\n\t\t\t\t// console.log(data);\r\n\t\t\t\treturn data;\r\n\t\t\t} else {\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.getPdfExist = function (name) {\t\t\t\r\n\t\t\tif(name==null)\t\t\t\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\telse\r\n\t\t\t\treturn name;\t\t\t\r\n\t\t\r\n\t\t}\r\n\r\n\r\n\t\tvm.reloadData = function () {\r\n\t\t\tvar resetPaging = true;\r\n\t\t\tvm.dtInstanceNearBy.reloadData(resetPaging);\r\n\t\t\t\r\n\r\n\t\t}\r\n\r\n\t\tvm.reloadDataTalent = function () {\r\n\t\t\tvar resetPagingTalent = true;\r\n\t\t\tvm.dtInstance.reloadData(resetPagingTalent);\r\n\t\t}\r\n\r\n\t\tvm.reloadDataPre = function () {\r\n\t\t\tvar resetPagingPre = true;\r\n\t\t\tvm.dtInstancePre.reloadData(resetPagingPre);\r\n\t\t}\r\n\r\n\r\n\t\tvm.Preffered = function () {\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Preffered.html',\r\n\t\t\t\tsize: 'sm',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n //Action \r\n vm.GetFollowupReasons = function(){\r\n ManualAssignationJobService.GetReasonsByStatus(loggedinUser, token, 'FollowUp').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForFU = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetFollowupReasons();\r\n\r\n vm.GetHoldReasons = function(){\r\n ManualAssignationJobService.GetReasonsByStatus(loggedinUser, token, 'Hold').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForHold = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetHoldReasons();\r\n vm.OpenFollowUpModel = function (ticketId) {\r\n vm.followup = '';\r\n vm.tickId = ticketId;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n }\r\n\r\n vm.CloseFollowUpModel = function () {\r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = '';\r\n vm.primaryHoldReason='';\r\n vm.primaryHoldRemark='';\r\n vm.followFiles = null; \r\n FollowUpModel.close();\r\n }\r\n\r\n //\r\n $scope.attachmentForFollowUp = function(files){\r\n var file = files.files[0]; \r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.msg|\\.pdf|\\.bmp|\\.xps)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.followFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png,.msg,.bmp,xps only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.DocEdit = function(index){\r\n vm.followFiles=null; \r\n }\r\n\r\n var ModalInstanceCtrlFollowUp = function ($scope, $rootScope, $uibModalInstance) { \r\n vm.updateFollowUpStatus = function () {\r\n var data = {};\r\n data = {\r\n \"userId\": loggedinUser,\r\n \"dateTime\": \"\",\r\n \"activity\": \"\",\r\n \"action\": \"FOLLOW_UP\",\r\n \"userName\": \"\",\r\n \"ticketId\": vm.tickId,\r\n \"primaryReason\": vm.primaryFollowUpReason,\r\n \"SecondryReason\": \"\",\r\n \"ReasonComment\": vm.primaryFollowUpRemark\r\n }\r\n if(vm.followFiles != null) {\r\n ManualAssignationJobService.UpdateFollowUpReason(data,vm.followFiles, token, loggedinUser, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n vm.CloseFollowUpModel();\r\n $timeout(function () {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.filterStatusForJObs($scope.jobStatusForPaging, $scope.selectedUserId, $localStorage.loggedInUserId, token,jPageIndex,jPageSize)\r\n }, 1000); \r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n else{\r\n ManualAssignationJobService.TicketFollowUpWithoutDoc(data, token, loggedinUser, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000); \r\n } \r\n vm.CloseFollowUpModel();\r\n });\r\n }\r\n \r\n }\r\n }\r\n\t\tvm.OpenApproveModal = function (currentJOb) \r\n\t\t{ \r\n\t\t\tvm.CurrentJob = currentJOb;\r\n\t\t\tvm.RatingOfTicket = ''; \r\n\t\t\tif(vm.CurrentJob.IsLineItemAvailable==true && vm.CurrentJob.IsDynamicPriceApproved==false){\r\n\t\t\tvm.aproveMessage = 'Please approve dynamic pricing line item under the ticket details section!';\r\n\t\t\tapproveModalInstance = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'dynamic_price_approved_model.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tvm.aproveMessage = 'Please Rate !';\r\n\t\t\t\tapproveModalInstance = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'approve_model.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t\t});\r\n\t\t\t} \r\n\t\t}\r\n\t\tvm.isApprovalPermission = function (defaultValue) {\r\n\t\t\tif (vm.accountConfig && vm.accountConfig['ApprovalPermission'] != null) {\r\n\t\t\t return vm.accountConfig['ApprovalPermission'].split(\",\").indexOf($localStorage.loggedInUser_Role) > -1;\r\n\t\t\t}\r\n\t\t\treturn defaultValue;\r\n\t\t }\r\n\t\t vm.AcceptJob = function (currentJOb) {\r\n\t\t\tvm.CurrentJob = currentJOb;\r\n\t\t\tvar data = {\r\n\t\t\t \"ReqUserId\": loggedinUser,\r\n\t\t\t \"TicketId\": vm.CurrentJob.TicketId,\r\n\t\t\t \"Status\": \"Accepted\" \r\n\t\t\t};\r\n\t\t\tManualAssignationJobService.AcceptJob(data, token, loggedinUser, function (res) { \r\n\t\t\t if (res && res.status == 202) {\r\n\t\t\t\tvm.showSuccess(\"Success\", \"Job accepted successfully.\")\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t vm.FilterArray(); \r\n\t\t\t\t vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\t\t\t\t vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\t\t\t }, 1000);\r\n\t\t\t } else if (res && res.data && res.data.Message) {\r\n\t\t\t\tvm.showFailure(\"Failed\", res.data.Message);\r\n\t\t\t } else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Unable to accept job. Server is not responding correctly.\");\r\n\t\t\t }\r\n\t\t\t}, vm.showFailure);\r\n\t\t \r\n\t\t}\r\n\r\n\t\tvm.downloadReport = function (ticketId, templateName) {\r\n\t\t\tif (templateName == 'Water Testing') {\r\n\t\t\t var urlWithFeasible = PublicApiURL + '/api/Report/' + ticketId + '/DownloadReportByTemplateName?reqUserId=' + $localStorage.loggedInUserId;\r\n\t\t\t $window.open(urlWithFeasible, '_blank')\r\n\t\t\t} else {\r\n\t\t\t var urlForNonFeasible = PublicApiURL + '/api/Report/' + ticketId + '/Report?reqUserId=' + $localStorage.loggedInUserId;\r\n\t\t\t $window.open(urlForNonFeasible, '_blank')\r\n\t\t\t}\r\n\t\t }\r\n\r\n\t\t vm.ReportpdfUrl = function (ticketId) {\r\n\t\t\tManualAssignationJobService.getPdfReport(loggedinUser, ticketId, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data) {\r\n\t\t\t const linkSource = resp.data.Base64Data;\r\n\t\t\t const downloadLink = document.createElement(\"a\");\r\n\t\t\t const fileName = resp.data.ReportName;\r\n\t\t\t downloadLink.href = linkSource;\r\n\t\t\t downloadLink.download = fileName;\r\n\t\t\t downloadLink.click();\r\n\t\t\t} \r\n\t\t })\r\n\t\t}\r\n\t\t\r\n\r\n\r\n\t\t\r\nvm.PullBackTicket = function (ticketId) {\r\n\tManualAssignationJobService.PullBackTicket(loggedinUser, ticketId, token).then(function (resp) {\r\n\t vm.FilterArray(); \r\n\t vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\t vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n })\r\n }\r\n \r\n vm.RejectJobModel = function (currentJOb) {\r\n\tvm.CurrentJob = currentJOb;\r\n\tRejectJobModel = $uibModal.open({\r\n\t templateUrl: 'Rejectjob.html',\r\n\t backdrop: 'static',\r\n\t scope: $scope,\r\n\t});\r\n }\r\n \r\n vm.CloseRejectModel = function () {\r\n\tRejectJobModel.close();\r\n }\r\n \r\n vm.RejectJob = function () {\r\n\tif(!vm.RejectionRemark)\r\n\t {\r\n\t\tvm.showFailure(\"Failed\", \"Please comment on rejection.\");\r\n\t\treturn;\r\n\t }\r\n\t RejectJobModel.close(); \r\n\t var data = {\r\n\t\t\"ReqUserId\": loggedinUser,\r\n\t\t\"TicketId\": vm.CurrentJob.TicketId,\r\n\t\t\"Status\": \"Rejected\", \r\n\t\t\"RejectionRemark\": vm.RejectionRemark.toString()\r\n\t };\r\n\t ManualAssignationJobService.RejectJob(data, token, loggedinUser, function (res) { \r\n\t\tif (res && res.status == 202) {\r\n\t\t vm.showSuccess(\"Success\", \"Job rejected successfully.\")\r\n\t\t $timeout(function () {\r\n\t\t\tvm.FilterArray(); \r\n\t\t\tvm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\t\t\tvm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\t\t }, 1000);\r\n\t\t} else if (res && res.data && res.data.Message) {\r\n\t\t vm.showFailure(\"Failed\", res.data.Message);\r\n\t\t} else {\r\n\t\t vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n\t\t}\r\n\t }, vm.showFailure);\r\n\t \r\n }\r\n \r\n vm.ConvertToNewJob = function(currentJOb){\r\n \r\n\tvm.CurrentJob = currentJOb; \r\n\tvar data = {\r\n\t \"ReqUserId\": loggedinUser,\r\n\t \"TicketId\": vm.CurrentJob.TicketId,\r\n\t \"Status\": \"New\" \r\n\t};\r\n\tManualAssignationJobService.ConvertToNewJob(data, token, loggedinUser, function (res) { \r\n\t if (res && res.status == 202) {\r\n\t\tvm.showSuccess(\"Success\", \"Job converted successfully.\")\r\n\t\t$timeout(function () {\r\n\t\t vm.FilterArray(); \r\n\t\t vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\t\t vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\t }, 1000);\r\n\t } else if (res && res.data && res.data.Message) {\r\n\t\tvm.showFailure(\"Failed\", res.data.Message);\r\n\t } else {\r\n\t\tvm.showFailure(\"Failed\", \"Unable to convert job. Server is not responding correctly.\");\r\n\t }\r\n\t}, vm.showFailure);\r\n }\r\n \r\n\t vm.OpenHoldUpModel = function (ticketId, holdstatus) {\r\n\t\t if(holdstatus == 'Unhold')\r\n\t\t {\r\n\t\t\tvm.UpdateHoldingStatus(ticketId, holdstatus);\r\n\t\t } \r\n\t\t else{\r\n\t\t\t vm.tickId = ticketId;\r\n\t\t\t $scope.holdstatus =holdstatus;\r\n\t\t\t FollowUpModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'HoldJob.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\tcontroller: ModalInstanceCtrlFollowUp,\r\n\t\t\t });\r\n\t\t } \r\n\t }\r\n \r\n\t vm.CloseHoldUpModel = function () {\r\n\t\tFollowUpModel.close();\r\n\t }\r\n \r\n\t vm.UpdateHoldReason=\"Update\";\r\n\t vm.UpdateHoldingStatus = function (ticketId, holdingStatus) { \r\n\t\tif(vm.primaryHoldReason!= null)\r\n\t {\t\r\n\t\tvm.enable1 = \"false\";\r\n\t\tvm.UpdateHoldReason=\"Updating...\";\r\n\t };\r\n\t\tManualAssignationJobService.UpdateHoldingStatus(loggedinUser, ticketId, holdingStatus,vm.primaryHoldReason,vm.primaryHoldRemark, token).then(function (resp) {\r\n\t\t if (resp.status == 202) {\r\n\t\t\tvm.showSuccess('Job Hold/Unhold Status', 'Job has been updated successfully');\r\n\t\t\t$timeout(function () {\r\n\t\t\t vm.FilterArray(); \r\n\t\t\t vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\t\t\t vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\t\t\t vm.enable1 = \"true\";\t\r\n\t\t\t vm.UpdateHoldReason=\"Update\";\t\r\n\t\t }, 2000);\r\n\t\t vm.CloseFollowUpModel();\r\n\t\t }\r\n\t\t else if (resp.status == 206) {\r\n\t\t\t vm.showFailure('Failed', resp.data.Message);\r\n\t\t\t $timeout(function () {\r\n\t\t\t\tvm.FilterArray(); \r\n\t\t\t\tvm.enable1 = \"true\";\t\r\n\t\t\t\tvm.UpdateHoldReason=\"Update\";\t\r\n\t\t\t\tvm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\t\t\t\tvm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\t\t\t}, 1000); \r\n\t\t } else {\r\n\t\t\tvm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n\t\t }\r\n\t\t}, function (err) {\r\n\t\t vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n\t\t})\r\n\t }\r\n \r\n\t vm.DisableScheduledExceptionButtons = function (disable) {\r\n\t\tif(disable){\r\n\t\t\tvm.disableExceptionButton = true;\t\t\t\r\n\t\t}\r\n\t\telse{\r\n\t\t vm.disableExceptionButton = false;\r\n\t\t}\r\n\t }\r\n\t\r\n\t\r\n\t vm.resolveException = function(TicketId){\r\n\t\tvm.DisableScheduledExceptionButtons(true);\r\n\t\tvar ticketIdList = []; \t\t\r\n\t\tticketIdList.push(TicketId);\t\t\t \r\n\t\t\r\n\t\tManualAssignationJobService.ResolveException(loggedinUser, ticketIdList,token).then(function(resp){\r\n\t\t if (resp.status==202) {\t\t\r\n\t\t\t$timeout(function(){\t\t\t\t\t\t\t\t\r\n\t\t\t vm.showSuccess(\"Schedule Exception\", \"Exception Resolved Successfully\");\t\t\t\t\t\r\n\t\t\t vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\t\t\t vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\t\t\t vm.DisableScheduledExceptionButtons(false);\t\t\t\t\t\t\r\n\t\t\t}, 1000);\t\r\n\t\t\t\r\n\t\t }\r\n\t\t })\t\t\r\n\t\t}\r\n\t\t\t//download PDF \r\n\t vm.downloadReportPDF = function (ticketId,OnSiteReport) { \r\n\t\tif (OnSiteReport != null) { \r\n\t\t var urlWithFeasible = PublicApiURL + '/api/Report/GeneratePdfOnSiteReportForMultipleTickets?TicketIds=' + ticketId;\r\n\t\t $window.open(urlWithFeasible, '_blank')\r\n\t\t} else {\r\n\t\t // var urlForNonFeasible = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketIds=' + ticketId;\r\n\t\t // $window.open(urlForNonFeasible, '_blank')\r\n\t\t vm.downloadOnSiteReport(ticketId);\r\n\t\t}\r\n\t }\r\n \r\n\t vm.pdfimage = \"\";\r\n\t vm.DocumentAvailableMessage=\"\";\t\r\n\t vm.downloadOnSiteReport = function (ticketId) { \r\n\t\tvm.PDFView();\r\n\t\t\r\n\t\t// var PreviewConsolidatedInvoiceList = previewSelectedObj;\r\n\t\tManualAssignationJobService.downloadOnSiteReport(loggedinUser, token, ticketId).then(function (resp) {\r\n\t\t // var responseDataList=[];\r\n\t\t vm.responseDataList = resp.data;\r\n\t\t // for(var i=0; i';\r\n\r\n\t\t\tvm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tvm.showTable = true;\r\n\t\t\t\tdefer.resolve(vm.PrefreUserList);\r\n\t\t\t\treturn defer.promise;\r\n\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', createdRow)\r\n\t\t\t\t.withOption('headerCallback', headerCallback)\r\n\t\t\t\t.withBootstrap();\r\n\r\n\t\t\tfunction createdRow(row, data, dataIndex) {\r\n\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t}\r\n\r\n\t\t\tfunction headerCallback(header) {\r\n\t\t\t\tif (!vm.headerCompiled) {\r\n\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\tvm.headerCompiled = true;\r\n\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvm.dtColumns = [\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtml).renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvm.selected[meta.row] = false;\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t// \ttemp = true;\r\n\t\t\t\t\t// }\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.disableRouteButton = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\t\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('User_Type').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('IsPresentToday').withTitle('Attendance').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar attendance =\"\";\r\n\t\t\t\t\tif(full.IsPresentToday){\r\n\t\t\t\t\t\tattendance = \"Present\";\r\n\t\t\t\t\t }else{\r\n\t\t\t\t\t\tattendance = \"Absent\";\r\n\t\t\t\t\t }\r\n\t\t\t\t\t \r\n\t\t\t\t\treturn '' + attendance + '';\r\n\r\n\t\t\t\t})\r\n\r\n\t\t\t];\r\n\r\n\t\t\tfunction toggleAll(selectAll, selectedItems) {\r\n\t\t\t\tvm.selectSingle = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOne(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\r\n\t\t\t// \t\t\t\tif(vm.selectSingle){\r\n\t\t\t// \t\t\t\t\tvm.selectAll = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSingle = false;\r\n\t\t\t// \t\t\t\t\treturn;\r\n\t\t\t// \t\t\t\t}\r\n\t\t\t// \t\t\t\tvm.selectAll = false;\r\n\t\t\t// \t\t\t\tvm.selectSingle = true;\r\n\t\t\t// \t\t\t\treturn;\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t\tvm.selectSingle = false;\r\n\t\t\t// \t\t}\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAll = true;\r\n\t\t\t// }\r\n\r\n\t\t\tfunction toggleOne(selectedItems) {\r\n\t\t\t\tvm.selectAll = false;\r\n\t\t\t\tvm.selectSingle = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSingle = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\t\tvm.showTablePre = false;\r\n\t\tvm.selectSinglePre = false;\r\n\t\tvm.GetPreviousWorker = function (reload) {\r\n\r\n\t\t\tvm.headerCompiledPre = false;\r\n\t\t\tvar Distance = parseInt(vm.DistancePre)\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 0, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserDistance\" });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": Distance * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\t\t\tJobDetailViewComboService.GetAllPreviousUser(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.PreviousUserList = resp.data;\r\n\t\t\t\tvm.PreviousUserLength = vm.PreviousUserList.length;\r\n\t\t\t\t\r\n\t\t\t\tvm.CreatePreviousUserTable();\r\n\t\t\t\tif (reload) {\r\n\t\t\t\t\tvm.reloadDataPre();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CreatePreviousUserTable = function () {\r\n\t\t\tvm.headerCompiledPre = false;\r\n\t\t\tvm.selectedPre = {};\r\n\t\t\tvm.toggleOnePre = toggleOnePre;\r\n\t\t\t// vm.dtInstancePre = {};\r\n\t\t\tvm.selectAllPre = false;\r\n\t\t\tvm.toggleAllPre = toggleAllPre;\r\n\t\t\tvar temp = false;\r\n\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t// \ttemp = true;\r\n\t\t\t// }\r\n\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\tvar titleHtmlPre = '';\r\n\r\n\t\t\tvm.dtOptionsPre = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tvm.showTablePre = true;\r\n\t\t\t\tdefer.resolve(vm.PreviousUserList);\r\n\t\t\t\treturn defer.promise;\r\n\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompiledPre) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompiledPre = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.withBootstrap();\r\n\r\n\r\n\t\t\tvm.dtColumnsPre = [\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtmlPre).renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvm.selectedPre[meta.row] = false;\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t// \ttemp = true;\r\n\t\t\t\t\t// }\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif(vm.IsMaterialDelivered){\r\n\t\t\t\t\t\tif( vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus !='Delivered'){\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tif(vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.disableRouteButton = vm.TicketInfo.ShowManualBroadcast?temp:true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('User_Type').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('IsPresentToday').withTitle('Attendance').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar attendance =\"\";\r\n\t\t\t\t\tif(full.IsPresentToday){\r\n\t\t\t\t\t\tattendance = \"Present\";\r\n\t\t\t\t\t }else{\r\n\t\t\t\t\t\tattendance = \"Absent\";\r\n\t\t\t\t\t }\r\n\t\t\t\t\t \r\n\t\t\t\t\treturn '' + attendance + '';\r\n\r\n\t\t\t\t})\r\n\r\n\t\t\t];\r\n\r\n\t\t\tfunction toggleAllPre(selectAll, selectedItems) {\r\n\t\t\t\tvm.selectSinglePre = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOnePre(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\r\n\t\t\t// \t\t\t\tif(vm.selectSinglePre){\r\n\t\t\t// \t\t\t\t\tvm.selectAllPre = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSinglePre = false;\r\n\t\t\t// \t\t\t\t\tcontinue;\r\n\t\t\t// \t\t\t\t}\r\n\t\t\t// \t\t\t\tvm.selectAllPre = false;\r\n\t\t\t// \t\t\t\tvm.selectSinglePre = true;\r\n\t\t\t// \t\t\t\tcontinue;\r\n\t\t\t// \t\t\t}\r\n\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\tvm.selectSinglePre = false;\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAllPre = true;\r\n\t\t\t// }\r\n\t\t\tfunction toggleOnePre(selectedItems) {\r\n\t\t\t\tvm.selectSinglePre = false;\r\n\t\t\t\tvm.selectAllPre = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSinglePre = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.BroadcastField = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.FixedUserList.length; i++) {\r\n\t\t\t\tif (vm.selectedFixed[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.FixedUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.FixedUserList[i].Price), \"Distance\": parseInt(vm.FixedUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 0,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewComboService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.BroadcastTicketNearBy = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.NearByUserList.length; i++) {\r\n\t\t\t\tif (vm.selectedNearBy[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.NearByUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.NearByUserList[i].Price), \"Distance\": parseInt(vm.NearByUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 1,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewComboService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.BroadcastTicketPool = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.PrefreUserList.length; i++) {\r\n\t\t\t\tif (vm.selected[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.PrefreUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.PrefreUserList[i].Price), \"Distance\": parseInt(vm.PrefreUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 2,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewComboService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.BroadcastTicketPrevious = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.PreviousUserList.length; i++) {\r\n\t\t\t\tif (vm.selectedPre[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.PreviousUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.PreviousUserList[i].Price), \"Distance\": parseInt(vm.PreviousUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 3,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewComboService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.routeFixed = function (index) {\r\n\t\t\tvar data = vm.FixedUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 0,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewComboService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"User Not Found.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.route = function (index) {\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar data = vm.NearByUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 1,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tvm.showloading = true;\r\n\t\t\t\tJobDetailViewComboService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (resp.status == 206) {\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Users Not Found\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.showloading = false;\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.routePreTalent = function (index) {\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar data = vm.PrefreUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 2,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewComboService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"User Not Found.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.routePrevoius = function (index) {\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar data = vm.PreviousUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 3,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewComboService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Users Not Found.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.getReadyToAssign = function () {\r\n\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 3, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"UserDistance\" });\r\n\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"JobAccountId\": '',\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": 50 * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\r\n\t\t\tdata.JobAccountId = '';\r\n\t\t\tJobDetailViewComboService.GetSchedulingEvaluationResult(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.ReadytoAssignUser = resp.data.users;\r\n\t\t\t\tvm.ReadyUserLength = vm.ReadytoAssignUser.length;\r\n\r\n\t\t\t});\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.AssignTicketsToFixedTeam = function (index) {\r\n\r\n\t\t\tvar temp = vm.FixedUserList[index];\r\n\t\t\tif($localStorage.loggedInUser_Role == 'Vendor Manager'){\r\n\t\t\t\tJobDetailViewComboService.VendorManagerAssignJobTeam(temp.id,loggedinUser, uTicketId, vm.TicketInfo.JobAccountId, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == '200') {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t\r\n\t\t\t}\r\n\t\t\telse{\r\n\r\n\t\t\tvar AllUserList = [];\r\n\r\n\t\t\tvar data = {\r\n\t\t\t\t\"UserId\": temp.id ? temp.id : temp.LinkId,\r\n\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\"StartTime\": moment(vm.TicketInfo.StartTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"Endtime\": moment(vm.TicketInfo.EndTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"SuggestedPrice\": temp.Price,\r\n\t\t\t\t\"AssignPrice\": temp.Price,\r\n\t\t\t\t\"Distance\": temp.UserDistance\r\n\t\t\t}\r\n\t\t\tAllUserList.push(data);\r\n\t\t\tif (AllUserList == '') {\r\n\t\t\t\tvm.showFailure(\"Please select users.\")\r\n\t\t\t} else {\r\n\t\t\t\tJobDetailViewComboService.AssignTicketsTimeline(loggedinUser, AllUserList, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == '200') {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t\t}\r\n\r\n\t\tvm.AssignTicketsTimeline = function (rUser, index) {\t\t\t\r\n\t\t\tvar AllUserList = [];\r\n\t\t\tvar data = {\r\n\t\t\t\t\"UserId\": rUser.id ? rUser.id : rUser.LinkId,\r\n\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\"StartTime\": moment(vm.TicketInfo.StartTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"Endtime\": moment(vm.TicketInfo.EndTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"SuggestedPrice\": rUser.BIDCounterRate,\r\n\t\t\t\t\"AssignPrice\": rUser.BIDCounterRate,\r\n\t\t\t\t\"Distance\": rUser.UserDistance\r\n\t\t\t}\r\n\t\t\tAllUserList.push(data);\r\n\t\t\tif (AllUserList == '') {\r\n\t\t\t\tvm.showFailure(\"Please select users.\")\r\n\t\t\t} else {\r\n\t\t\t\tJobDetailViewComboService.AssignTicketsTimeline(loggedinUser, AllUserList, token).then(function (resp) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (resp && resp.status == '200') {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t} \r\n\t\t\t\t\telse if (resp.status == 206) {\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t\t }\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.getCustomerJobCard = function () {\r\n\t\t\tJobDetailViewComboService.getCustomerJobCardbyJobId(loggedinUser, vm.trackingTicketId, token, function (data) {\r\n\t\t\t\tvm.JobLatitude = data.JobLatitude;\r\n\t\t\t\tvm.JobLongitude = data.JobLongitude;\r\n\t\t\t\tvm.FELatitude = data.FELatitude;\r\n\t\t\t\tvm.FELongitude = data.FELongitude;\r\n\t\t\t\tvm.contactnumber = data.FEContactNumber;\r\n\t\t\t\tvm.jobtype = data.Description;\r\n\t\t\t\tvm.name = data.FEName;\r\n\t\t\t\tvm.IsTrackingAllowed = data.IsTrackingAllowed;\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t// $log.log(\"res of getCustomerJobCard=\" + data);\r\n\t\t\t\tvm.customerJobCard = data;\r\n\t\t\t\tif ($localStorage.rateJobParams) {\r\n\t\t\t\t\tvm.customerJobCard.userRole = $localStorage.Role;\r\n\t\t\t\t\tvm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n\t\t\t\t\tvm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n\t\t\t\t\tdelete $localStorage.rateJobParams;\r\n\t\t\t\t}\r\n\t\t\t\tif (data && data.JobStatus == 'PaymentDone') {\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinitMap();\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Unable to reach server\");\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.getTracking = function () {\r\n\r\n\t\t\tif (vm.TicketInfo.TicketStatus == 'New' || vm.TicketInfo.TicketStatus == 'Hold' || vm.TicketInfo.TicketStatus == 'Broadcasted' || vm.TicketInfo.TicketStatus == 'ReadyToAssign') {\r\n\t\t\t\tvm.superPower = true;\r\n\t\t\t\tdisplayJobOnMap();\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif( (vm.TicketInfo.TicketStatus == 'Assigned'|| vm.TicketInfo.TicketStatus == 'Rejected' || vm.TicketInfo.TicketStatus == 'Approved' || vm.TicketInfo.TicketStatus == 'Completed' ) && vm.TicketInfo.UserId){\r\n\t\t\t\t\tvm.showMapPermision = true;\r\n\t\t\t\t\tvm.superPower = true;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tvm.showMapPermision = false;\r\n\t\t\t\t}\r\n\t\t\t\tvm.getCustomerJobCard();\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.getPicUrl = function (pic) {\r\n\t\t\treturn ImageUrl + \"/\" + pic;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tvm.DisableScheduledExceptionButtons = function (disable) {\r\n\t if(disable){\r\n\t \t\tvm.disableExceptionButton = true;\t\t\t\r\n\t }\r\n\t else{\r\n\t \tvm.disableExceptionButton = false;\r\n\t }\r\n\t}\r\n\r\n\t\r\n\r\n\t vm.OpenPdfModal= function(PdfPathName)\r\n\t\t{\r\n vm.IsLoadSucessfull=false;\t\r\n MainService.GetImageBlob(loggedinUser, token, PdfPathName).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data);\r\n vm.IsLoadSucessfull=true;\t\r\n });\r\n\t\t\tjobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'SiteAuditPDFView.html',\r\n\t\t\t\tsize :'lg',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\twindowClass: 'zindex'\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t}\r\n\t vm.SiteAuditPDFUserModal = function(){\r\n\t\tjobAppointmentModal.close();\r\n\t }\r\n\t\r\n\tvm.ConvertBase64ToBlob = function(response)\r\n\t{\r\n vm.Auditpdf=\"\";\r\n\t\tif(response !=null){\r\n\t\t\tvar arrrayBuffer = base64ToArrayBuffer(response); //data is the base64 encoded string\r\n\t\t\tvar blob = new Blob([arrrayBuffer], {type: \"application/pdf\"});\r\n\t\t\tvm.Auditpdf = URL.createObjectURL(blob);\t\t\t\t\r\n\t\t\tvm.IsLoadSucessfull=true;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tvm.DocumentAvailableMessage=\"Document is not available\";\r\n\t\t\tvm.IsLoadSucessfull=true;\r\n\t\t}\r\n\t}\r\n\tfunction base64ToArrayBuffer(base64) \r\n\t{\r\n\t\tvar ret = base64.replace('data:application/pdf;base64,','');\r\n\t\t\tvar binaryString = atob(ret);\r\n\t\t\tvar binaryLen = binaryString.length;\r\n\t\t\tvar bytes = new Uint8Array(binaryLen);\r\n\t\t\tfor (var i = 0; i < binaryLen; i++) {\r\n\t\t\tvar ascii = binaryString.charCodeAt(i);\r\n\t\t\tbytes[i] = ascii;\r\n\t\t\t}\r\n\t\t\treturn bytes;\r\n\t} \r\n \r\n\tvm.getFileType = function(url){\r\n\t\tif(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0 ||url.indexOf(\".JPG\")>=0 || url.indexOf(\".JPEG\")>=0 || url.indexOf(\".PNG\")>=0 || url.indexOf(\".BMP\")>=0){\r\n\t\t\treturn \"image\";\r\n\t\t} else if(url.indexOf(\".xls\")>=0 || url.indexOf(\".xlsx\")>=0 ||url.indexOf(\".XLS\")>=0 || url.indexOf(\".XLSX\")>=0){\r\n\t\t\treturn \"xls\";\r\n\t\t} else if(url.indexOf(\".pdf\")>=0 || url.indexOf(\".PDF\")>=0){\r\n\t\t\treturn \"pdf\";\r\n\t\t} else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0 || url.indexOf(\".DOC\")>=0 || url.indexOf(\".DOCX\")>=0){\r\n\t\t\treturn \"doc\";\r\n\t\t} else {\r\n\t\t\treturn \"others\";\r\n\t\t}\r\n\t\t}\r\n\t\tvm.WordDownloadtoView = function (page) { \r\n\t\t\t\r\n\t\tMainService.GetImageBlob(loggedinUser, token, page).then(function(resp) {\r\n\t\t\twindow.location.href = resp.data;\r\n\t\t}); \r\n\t\t\r\n\t}\r\n});\r\nfunction isNumberKey(evt,elemref, quantityvalue)\r\n{ \r\n var charCode = (evt.which) ? evt.which : evt.keyCode;\r\n if(quantityvalue==\"LineItemQuantity\"){\r\n if(charCode == 46 ){\r\n return false;\r\n }\r\n } \r\n if(charCode == 46 ){\r\n if ((elemref.value) && (elemref.value.indexOf('.') >= 0))\r\n return false;\r\n }\r\n if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57))\r\n { \r\n \r\n return false;\r\n } \r\n if(quantityvalue==\"Percentage\"){\r\n if(parseFloat(elemref.value + evt.key) > 100)\r\n {\r\n return false\r\n }\r\n }\r\n return true; \r\n}\r\nfunction CheckRegExOnKeyPress(e) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\,\\\\-\\\\/]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\r\n\nangular.module('inspinia').service('JobTicketViewService', function (ApiURL,AcessoriesURL,MMFCRMURL, SchedulingAPI,$log,FreelancerURL, $http, $localStorage, $window, PublicApiURL, ActivityURL, LocationURL) {\r\n\r\n //https://test.mymobiforce.com/coreapi/api/Ticket/GetTicketsbyDateRange?fromDate=asd&toDate=asd&reqUserId=asd&itemNames=asd&itemValues=asd\r\n\r\n/* this.getAllJobTickets = function (supervisorId, startDate, endDate, token, itemNames,itemValues,templateCols) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n*/\r\n//Generate Invoice Preview Via Model \r\nthis.downloadOnSiteReport = function ( loggedInUserId, token,TicketId) { \r\n var url = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n }\r\n \r\n });\r\n}\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Ticket/UpdatePlannedClosureDate\r\n this.updatePlannedClosure = function (loggedinUser, data, token, success, failure) {\r\n $http.put(ApiURL + '/api/Ticket/UpdatePlannedClosureDate', data, \r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser } }).then(function (res) {\r\n if (res && res.status == 200 && res) {\r\n success(res.data);\r\n } else{\r\n failure(\"Failed\", res.data.Message);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job, server is not responding correctly.\");\r\n });\r\n}\r\n\r\n//https://db.mymobiforce.com/publicapi/api/Address/GetStates?userId=U420000000001&country=QATAR\r\nthis.getStates = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n } \r\n });\r\n}\r\n// https://product.mymobiforce.com/coreapi/api/Report/GetAttachmentsByTicketIdWithSignoffReport?TicketId=T2040000000004\r\nthis.getAttachment = function (loggedInUserId, token, TicketId) {\r\n var url = ApiURL + '/api/Report/GetAttachmentsByTicketIdWithSignoffReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n } \r\n});\r\n}\r\n\r\n// https://product.mymobiforce.com/coreapi/api/Image?fileName=Completion Sign Off Report_8299.pdf\r\nthis.viewReportPdf = function (loggedInUserId, token, fileName) { debugger\r\n var url = ApiURL + '/api/Image?fileName=' + fileName;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n } \r\n});\r\n}\r\n\r\n this.getAllJobTickets = function (supervisorId, startDate, endDate, token, itemNames,itemValues,templateCols,templateItemNames,templateItemValues, DateField) {\r\n var url = '';\r\n // itemNames = '';\r\n // itemValues = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n\r\n // https://product.mymobiforce.com/coreapi/api/Ticket/TicketRejectionHistory?TicketId=T1140000092053\r\n\r\nthis.getRejectHistory = function (TicketId, loggedinUser, token) { \r\n var url = ApiURL + '/api/Ticket/TicketRejectionHistory?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\n this.getAllJobTicketsCopy = function (supervisorId, startDate, endDate, token, itemNames,itemValues,textItemNames,textItemValues,templateCols,templateItemNames,templateItemValues,DateField,PageIndex,PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRangeWithDynaPaging?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues +'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues+ '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n\r\n // url = https://product.mymobiforce.com/schedulingAPI/api/AutoJobBroadcast/AutoBroadcastAllNewJobsManualMode\r\n this.AutoBroadcastAllNewJobsManualMode = function (loginUserId,ticketId, token) {\r\n var url = '';\r\n url = SchedulingAPI + '/api/AutoJobBroadcast/BroadcastJobsManualMode'; \r\n return $http.post(url,ticketId, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n // https://perf.mymobiforce.com/publicapi/api/Report/DownloadAllTicketReport?fromDate=2019-11-28&toDate=2019-11-29&reqUserId=U400000000001&itemNames=SkillSet&itemValues=All%20Job%20Status&templateCols=All%20Source%20Types\r\n this.downloadTicketsReports = function (loggedInUserId, fromDate, toDate,itemNames,itemValues,templateCols) {\r\n var url = PublicApiURL + \"/api/Report/DownloadAllTicketReport?fromDate=\"+fromDate +'&toDate='+toDate + '&reqUserId='+loggedInUserId+ \"&itemNames=\" + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols ;\r\n $window.open(url);\r\n }\r\n\r\n this.getCustomerJobCardbyJobId = function(accountId, jobId, token ,success, failure){\r\n\t\t$http.get(ApiURL+\"/api/GetCustomerJobCardbyJobId/\"+jobId+\"/\"+accountId+\"/GetCustomerJobCardbyJobId\", {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': accountId\r\n }\r\n }).then(function(res){\r\n\t\t\tif(res && res.data && success){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else if(failure){\r\n\t\t\t\tfailure();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n //http://localhost:56749/api/Ticket/DeleteTicket?UserId=asd&TicketId=asdasd\r\n this.DeleteTickets = function(userId,ticketId,token){\r\n // var url = ApiURL + \"/api/Ticket/DeleteTicket?UserId=\"+userId+ \"&TicketId=\"+ticketId;\r\n // return $http.delete(url,{\r\n // headers:{'Content-Type':'application/json','Token':token}\r\n // })\r\n\r\n return $http({\r\n method: 'DELETE',\r\n url: ApiURL + \"/api/Ticket/DeleteTicket?UserId=\"+userId+ \"&TicketId=\"+ticketId,\r\n data: {\r\n \r\n },\r\n headers: {\r\n 'Content-type': 'application/json', 'Token':token,'UserId': userId\r\n }\r\n })\r\n }\r\n\r\n this.SetTicketExecutionMode = function(reqUserId,mode,ticektIds,token){\r\n var url = ApiURL + \"/api/Ticket/SetTicketExecutionMode?ReqUserId=\" + reqUserId + \"&mode=\" + mode;\r\n return $http.put(url, {\r\n \"tickets\":ticektIds\r\n }, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': reqUserId\r\n }\r\n })\r\n }\r\n\r\n\r\n this.updateStartTime = function (ticketId, userId, startTime, token, success, failure) {\r\n var url = ApiURL + \"/api/Ticket/updatestartdate?requserid=\" + userId + \"&ticketid=\" + ticketId + \"&starttime=\" + encodeURI(startTime.format(\"YYYY-MM-DDThh:mm:ss.SSSZ\"));\r\n $http.put(url, {\r\n \"requserid\": userId,\r\n \"ticketid\": ticketId,\r\n \"starttime\": startTime.format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\")\r\n }, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': userId\r\n }\r\n }).then(function (res) {\r\n if (res) {\r\n success(res);\r\n } else {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n }\r\n }, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n //http://115.124.122.225/coreapi/api/Ticket/setsettlementstatus\r\n // this.updateTicketSettlement = function(data, token, success, failure){\r\n // var url = ApiURL + \"/api/Ticket/setsettlementstatus\"\r\n // $http.put(url, data,{\r\n // headers:{'Content-Type': 'application/json', 'Token': token}\r\n // }).then(success, function(error){\r\n // failure(\"Failed\", \"Job Settlement not updated. Server is not responding correctly.\")\r\n // });\r\n // }\r\n\r\n\r\n this.updateTicketSettlement = function (data, token, loggedInUserId, success, failure) {\r\n \r\n var url = ApiURL + \"/api/Ticket/setsettlementstatus\"\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.ApproveJob = function (data, token, loggedInUserId, success, failure) { \r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.AcceptJob = function (data, token, loggedInUserId, success, failure) { \r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.RejectJob = function (data, token, loggedInUserId, success, failure) { \r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.ConvertToNewJob = function (data, token, loggedInUserId, success, failure) { \r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n ///http://192.168.0.80:92/CoreAPI/api/Ticket/akshit.chauhan%40innotiontech.com/T0000000102/returnticket\r\n this.PullBackTicket = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/returnticket';\r\n return $http.put(url, null,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n\r\n //https://test.mymobiforce.com/coreapi/api/Ticket/F00000000000/asdas/ActionByVendor?Action=asdasd\r\n this.ActionByVendor = function(loggedInUserId,ticketIds,action,token){\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/'+ticketIds+'/ActionByVendor?Action='+action;\r\n return $http.put(url,{},{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token':token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n\r\n //http://192.168.0.80:92/Coreapi/api/Ticket/reqUserId/TicketId/HoldingStatus/ticketholding\r\n this.UpdateHoldingStatus = function (loggedInUserId, ticketId, holdingStatus,reason,Remark, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/ticketholding?HoldingStatus=' + holdingStatus +'&Reason=' + reason+ '&Remark='+ Remark;\r\n return $http.put(url,{}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.updateTicket = function (ticket, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket?reqUserId=' + loggedInUserId;\r\n return $http.put(url, ticket, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.getJobAllStatus = function (loggedInUserId, token, success, failure) {\r\n var url = ApiURL + '/api/TicketStatus/' + loggedInUserId + '/GetAllTicketStatus';\r\n $http.get(url, { headers: { 'Token': token, 'UserId': loggedInUserId } }).then(function (res) {\r\n if (res && res.status == 200 && res.data) {\r\n if (success) {\r\n success(res.data);\r\n }\r\n } else if (res && res.data) {\r\n if (failure) {\r\n failure(\"Failed\", res.data);\r\n }\r\n } else {\r\n if (failure) {\r\n failure(\"Failed\", \"Unable to get status list, server is not responding correctly\");\r\n }\r\n }\r\n }, function (err) {\r\n if (failure) {\r\n failure(\"Failed\", \"Unable to get status list, server is not responding correctly\");\r\n }\r\n });\r\n }\r\n\r\n this.downloadMultipleReports = function (loggedInUserId, ticketId, reportMapperId, correlated) {\r\n var url = PublicApiURL + \"/api/Report/\" + ticketId + \"/DownloadReportByTemplateName?reqUserId=\" + loggedInUserId + \"&correlated=\" + (correlated?\"True\":\"False\")\r\n\r\n $window.open(url);\r\n }\r\n\r\n //https://product.mymobiforce.com/publicapi/api/Report/GeneratePdfOnSiteReportForMultipleTickets?TicketIds=T1140000016464_1\r\n this.downloadMultipleReports = function (loggedInUserId, ticketId, reportMapperId, correlated) {\r\n var url = PublicApiURL + \"/api/Report/\" + ticketId + \"/DownloadReportByTemplateName?reqUserId=\" + loggedInUserId + \"&correlated=\" + (correlated?\"True\":\"False\")\r\n\r\n $window.open(url);\r\n }\r\n\r\n\r\n //http://localhost:55238/api/Report/456/DownloadInvoice?reqUserId=123&correlated=True\r\n this.downloadInvoice = function (loggedInUserId, ticketId, correlated) {\r\n var url = PublicApiURL + \"/api/Report/\" + ticketId + \"/DownloadInvoice?reqUserId=\" + loggedInUserId + \"&correlated=\" + (correlated?\"True\":\"False\")\r\n\r\n $window.open(url);\r\n }\r\n\r\n this.getSkills = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n // vm.showSuccess(\"skills\", \"Got skills list\");\r\n }, function () {\r\n failure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n this.TicketFollowUp = function(data,files, token, loggedInUserId, success, failure){ \r\n var formdata = new FormData();\t\t\r\n\t\tformdata.append(\"files\", files[0]);\t\r\n\t\tvar followupdata = JSON.stringify(data);\r\n\t\tformdata.append(\"ActivityModel\", followupdata);\r\n \r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token,'UserId': loggedInUserId }\r\n }).then(success, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n this.CreateProductReplacementRequest = function (data,loggedInUserId, token) { \r\n var url = AcessoriesURL + '/api/MMFProductReplacement/CreateProductReplacementRequest'\r\n return $http.post(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.ResubmitProductReplacementRequest = function (data,loggedInUserId, token) { \r\n var url = AcessoriesURL + '/api/MMFProductReplacement/ResubmitProductReplacementRequest'\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.TicketFollowUpWithoutDoc = function(data, token, loggedInUserId, success, failure){ \r\n var formdata = new FormData();\t\t\r\n\t\tvar followupdata = JSON.stringify(data);\r\n\t\tformdata.append(\"ActivityModel\", followupdata);\r\n \r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token,'UserId': loggedInUserId }\r\n }).then(success, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n this.getBillExpenseByTicketID = function(loggedinUser, ticketID, token){\r\n var url = ApiURL + '/api/Expense/GetByTicketId?ReqUserId=' + loggedinUser + '&TicketId=' +ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.getPdfReport = function(loggedinUser, ticketID, token){\r\n var url = ApiURL + '/api/Report/GeneratePdfReportForApprovedJob?TicketId=' +ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/Ticket/T0000000715%2CT0000000713/F00000000000/GetDataCaptureImagebyTicketId\r\n this.downloadImage = function(loggedInUserId,ticketIDs,token){ \r\n var url = PublicApiURL + \"/api/Report/DownloadDataCaptureInFieldPicture?reqUserId=\" + loggedInUserId + \"&TicketIds=\" + ticketIDs;\r\n $window.open(url);\r\n \r\n }\r\n\r\n // https://product.mymobiforce.com/publicapi/api/Report/DownloadDataCaptureInFileAttachment?reqUserId=U820000000001&TicketIds=T2040000000004\r\n this.downloadMultipleReport = function(loggedInUserId,ticketIDs){ \r\n var url = PublicApiURL + \"/api/Report/DownloadDataCaptureInFileAttachment?reqUserId=\" + loggedInUserId + \"&TicketIds=\" + ticketIDs;\r\n $window.open(url);\r\n \r\n }\r\n\r\n this.getAllCustomers = function(loggedInUser,token) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' +loggedInUser;\r\n return $http.get(url,{\r\n headers:{ 'Content-Type' : 'application/json','Token':token,'UserId': loggedInUser }\r\n });\r\n }\r\n\r\n this.GetAllProjects = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + loggedinUser + '/GetProjectsByUserId'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token,'UserId': loggedinUser }\r\n })\r\n}\r\n\r\n// https://product.mymobiforce.com/FreelancerAPI/api/FreeLancerUser/F00000001230/U400000000001/byUserIdWithJobCount\r\nthis.getUserProfileData = function (loggedinUser,userid, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userid + '/' + loggedinUser + '/byUserIdWithJobCount'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token,'UserId': loggedinUser }\r\n })\r\n}\r\n\r\n// https://perf.mymobiforce.com/coreapi/api/User/235432432/byUserIdWithJobCount?reqUserId=34234\r\nthis.getFixedUserProfileData = function (loggedinUser,userid, token) {\r\n var url = ApiURL + '/api/User/' + userid + '/byUserIdWithJobCount?reqUserId=' + loggedinUser\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token,'UserId': loggedinUser }\r\n })\r\n}\r\n//https://product.mymobiforce.com/coreapi/api/Ticket/CancelTicket?reqUserId=dfgdfs&TicketId=dfgfdg\r\nthis.CancelTicket = function(loggedInUserId,ticketId, token){\r\n var url = ApiURL + '/api/Ticket/CancelTicket?reqUserId='+loggedInUserId +'&TicketId='+ticketId;\r\n return $http.put(url,null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\nthis.TBCCancelationAudit = function(data,loggedInUserId, token){\r\n var url = ApiURL + '/api/Ticket/UpdateJobAudit';\r\n return $http.put(url,data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\nthis.GetCSATRatingByTicketID = function (loggedInUserId, ticketId,token) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/'+loggedInUserId+'/'+ticketId+'/GetCSATRatingByTicketID';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\nthis.GetCancellationReasons = function (status, loggedInUserId,token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketCancelationReasonController/'+loggedInUserId+'/getCancellationReasons?AtStatus=' + status;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.UpdateJobServerCancel = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobServerCancel';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\nthis.GetTicketByGeneralSearch = function (SearchText, PageIndex, PageSize,loggedInUserId,token) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketByGeneralSearch?searchText=' + SearchText + '&PageIndex=' + PageIndex+ '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\nthis.AddSiteAuditwithAttachment = function(data, files, token, loggedinUser){ \r\n var formdata = new FormData();\t\t\r\n formdata.append(\"files\", files[0]);\t\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"AuditRequestModel\", followupdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/Upload/PostMediaFileWithAuditObject';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n}\r\n//https://product.mymobiforce.com/coreapi/api/Invoice/GetTicketDataToRaiseInvoice\r\nthis.GetTicketDataToRaiseInvoice = function (loggedinUser, ticketIdList,token) {\r\n var url = ApiURL + '/api/Invoice/GetTicketDataToRaiseInvoice'\r\n return $http.put(url, ticketIdList,{\r\n headers: { 'Content-Type': 'application/json','Token':token,'UserId': loggedinUser }\r\n })\r\n}\r\n\r\n//https://product.mymobiforce.com/coreapi/api/Invoice/MarkTicketsReadyToRaiseInvoice\r\nthis.MarkTicketsReadyToRaiseInvoice = function (loggedinUser, ticketwithLineitemList,token) {\r\n var url = ApiURL + '/api/Invoice/MarkTicketsReadyToRaiseInvoice'\r\n return $http.put(url, ticketwithLineitemList,{\r\n headers: { 'Content-Type': 'application/json','Token':token,'UserId': loggedinUser }\r\n })\r\n}\r\n //https://product.mymobiforce.com/CoreAPI/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=FollowUp\r\n this.GetReasonsByStatus = function (loggedinUser, token, status) {\r\n var url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus='+status;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n });\r\n }\r\n this.GetPullBacknReasons = function (loggedInUserId,token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + 'PullBack';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.ReopenCancelCall = function (ticketId, loggedInUserId, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/ReopenCancelCall?TicketId=' + ticketId;\r\n return $http.put(url,null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.PullBackTicketFromTechnician = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/PullBackTicketFromTechnician';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n});\r\n\nangular.module('inspinia').controller('JobTicketViewControllerCopy', function ($state,DashboardService,$http, PaymentSectionService, $rootScope,JobTicketViewService, $stateParams, UIURL, $log, $localStorage, DTOptionsBuilder, ApiURL, DTColumnBuilder, $uibModal, $scope, toaster, $filter, DTColumnDefBuilder, $window, $timeout, PublicApiURL, jobBidCreationService, ImageUrl) {\r\n var vm = this;\r\n \r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n if (!loggedInUserId) {\r\n \r\n $state.go('Login', {\r\n reload: true\r\n });\r\n \r\n } else {\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n var token = $localStorage.token;\r\n vm.Remarks = ''; \r\n vm.selectedTemplates = '';\r\n vm.PaymentStatus = '';\r\n vm.SettlementStatus = '';\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n vm.editPermission = false;\r\n vm.reasonsForFU = '';\r\n vm.reasonsForHold = ''; \r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = '';\r\n vm.primaryHoldReason = '';\r\n vm.primaryHoldRemark = '';\r\n vm.pullBackReasons = '';\r\n vm.pullBackReasonsRemark ='';\r\n vm.MoveSPDbyTwoDays = false;\r\n vm.ticketList = [];\r\n vm.statusList = [];\r\n // $scope.$parent.$parent.main.implementSelectItems('ticketList', this);\r\n vm.approvalRemark = '';\r\n vm.RejectionRemark = '';\r\n vm.searchText = \"\";\r\n vm.IsSearch = false;\r\n vm.searchStatusText = \"\";\r\n //vm.searchLabText = \"\";\r\n vm.searchJobTypeText = \"\";\r\n vm.DateField=\"CreatedOn\";\r\n vm.CustomerList = [];\r\n vm.ProjectList = [];\r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByCName = '';\r\n vm.SearchByConsumerName = '';\r\n vm.SearchByConsumerContact = '';\r\n vm.SearchByState = '';\r\n vm.JobcountbyStatus=\"\";\r\n vm.states= [];\r\n vm.previousPage = $localStorage.previousPage;\r\n vm.autoScheduleOn = $localStorage.accountConfig.IsAutoSchedulerOn;\r\n var approveModalInstance = {};\r\n var supervisorId = $localStorage.loggedInUserId;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.loggedInAs = $localStorage.loggedinAs;\r\n //$log.log(\"role\", vm.Role);\r\n vm.aproveMessage = 'Please Rate !';\r\n var itemNames = '';\r\n var itemValues = '';\r\n var templateItemNames = '';\r\n var templateItemValues = '';\r\n var textItemNames = '';\r\n var textItemValues = '';\r\n var PageIndex = 1;\r\n var PageSize = 10; \r\n vm.IsSafetyAudit = 'Not Done'; \r\n vm.ratingwarning=\"\";\r\n vm.ticketListLength=0;\r\n vm.pageindexCount=0;\r\n vm.SiteAuditFileName=\"\";\r\n vm.IsWithInDays = \"first\";\r\n vm.WithInDaysNumbers = [1,2,3,4,5];\r\n vm.TicketDataToRaiseInvoiceList = []; \r\n vm.IsLoadSucessfull=false;\r\n vm.readyRaisedI = false;\r\n var uPageIndex = 1;\r\n var uPageSize = 10; \r\n var fPageIndex = 1;\r\n var fPageSize = 10; \r\n $scope.isCollapsed = true; \r\n $localStorage.AllJobStatus = vm.searchStatusText;\r\n vm.UsersType=\"\";\r\n vm.uType=\"\";\r\n var uitemNames=\"\";\r\n var uitemValues=\"\";\r\n vm.searchUsersText=\"\";\r\n vm.jobsCount='';\r\n vm.userPageListCount= 10;\r\n vm.financePageListCount= 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n vm.OrderBy = \"CreatedOn\";\r\n vm.sorttype = \"desc\";\r\n \r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n vm.path = \"\";\r\n vm.path = $rootScope.rootScopeMessage;\r\n var scdt = new Date();\r\n scdt.setMinutes(scdt.getMinutes() + 30);\r\n vm.SourceCreationDate = scdt;\r\n var pcdt = new Date();\r\n pcdt.setDate(pcdt.getDate() + 7);\r\n vm.PlannedClosureDate = pcdt;\r\n\r\n vm.openCalendar = function (e, picker) {\r\n vm.ClosureDateTime.open = true;\r\n };\r\n var plannedclosuredatelimit = new Date();\t\r\n plannedclosuredatelimit.setMinutes(plannedclosuredatelimit.getMinutes() + 1)\r\n vm.ClosureDateTime = { date: '', datepickerOptions: { minDate: plannedclosuredatelimit } };\r\n if (vm.path == 'NewJobDetailsCopy') {\r\n \r\n vm.searchJobTypeText = $localStorage.AllJobType;\r\n vm.searchStatusText = $localStorage.AllJobStatus;\r\n var data = $localStorage.TicketFilterModel;\r\n \r\n if(data){\r\n vm.SearchByPName = data.JobProject;\r\n vm.SearchByTName = data.JobTName;\r\n vm.SearchByDiscription = data.JobDesc;\r\n vm.SearchByIs = data.JobId;\r\n vm.searchJobTypeText = data.JobType;\r\n vm.searchStatusText = data.JobStatus;\r\n vm.DateField = data.JobDType;\r\n PageIndex = data.PageIndex;\r\n vm.ticketdates = { startDate: data.JobSDate, endDate: data.JobEDate };\r\n \r\n }\r\n \r\n \r\n }\r\n \r\n if (vm.path == 'isTicketView') {\r\n var startDate = $localStorage.SDate;\r\n var endDate = $localStorage.EDate;\r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n } else {\r\n var startDate = $localStorage.SDate?$localStorage.SDate: moment().subtract(1, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = $localStorage.EDate? $localStorage.EDate: moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n $scope.dates = { startDate: moment().subtract(1, 'day'), endDate: moment() };\r\n }\r\n\r\n $scope.totalTableUsers = 0;\r\n $scope.usersTablePerPage = 10; // this should match however many results your API puts on one page\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n \r\n $scope.UserTablepagination.current= $localStorage.TicketFilterModel?$localStorage.TicketFilterModel.PageIndex:1;\r\n PageIndex=$scope.UserTablepagination.current;\r\n $scope.UserTablepageChanged = function(newPage) { \r\n PageIndex = newPage;\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,newPage,PageSize);\r\n };\r\n\r\n \r\n vm.ResetFilter = function(){\r\n vm.searchStatusText = \"\";\r\n vm.searchLabText = \"\";\r\n vm.searchJobTypeText = \"\";\r\n vm.DateField=\"CreatedOn\"; \r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByCName = ''; \r\n vm.SearchByConsumerName = '';\r\n vm.SearchByConsumerContact = '';\r\n vm.SearchByState = '';\r\n //vm.CustomerList = [];\r\n //vm.ProjectList = [];\r\n vm.ProjectListByCustomer=[];\r\n PageIndex=1;\r\n PageSize=10;\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\r\n }\r\n vm.FilterArray = function () {\r\n \r\n itemNames = '';\r\n itemValues = '';\r\n templateItemNames = '';\r\n templateItemValues = '';\r\n if (vm.searchJobTypeText) { \r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText.join(\"|\"); \r\n } \r\n if (vm.searchStatusText && vm.searchStatusText != \"\")\r\n { \r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText.join(\"|\");\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText.join(\"|\");\r\n }\r\n } \r\n if(vm.JobcountbyStatus)\r\n {\r\n itemNames = 'Status';\r\n itemValues = vm.JobcountbyStatus;\r\n }\r\n if(vm.SearchByCName){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',CustomerName';\r\n itemValues = itemValues + ',' + vm.SearchByCName;\r\n }else{\r\n itemNames = 'CustomerName';\r\n itemValues = vm.SearchByCName;\r\n }\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',ProjectName';\r\n itemValues = itemValues + ',' + vm.SearchByPName;\r\n }else{\r\n itemNames = 'ProjectName';\r\n itemValues = vm.SearchByPName;\r\n }\r\n }\r\n textItemNames = '';\r\n textItemValues = '';\r\n if(vm.SearchByIs){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'CorelationValue';\r\n textItemValues = vm.SearchByIs;\r\n }else{\r\n textItemNames = textItemNames + ',CorelationValue';\r\n textItemValues = textItemValues + ',' + vm.SearchByIs;\r\n }\r\n \r\n }\r\n if(vm.SearchByDiscription){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'JobDescription';\r\n textItemValues = vm.SearchByDiscription;\r\n }else{\r\n textItemNames = textItemNames + ',JobDescription';\r\n textItemValues = textItemValues + ',' + vm.SearchByDiscription;\r\n }\r\n }\r\n if(vm.SearchByTName){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'UserName';\r\n textItemValues = vm.SearchByTName;\r\n }else{\r\n textItemNames = textItemNames + ',UserName';\r\n textItemValues = textItemValues + ',' + vm.SearchByTName;\r\n }\r\n }\r\n if(vm.SearchByConsumerName){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'ConsumerName';\r\n textItemValues = vm.SearchByConsumerName;\r\n }else{\r\n textItemNames = textItemNames + ',ConsumerName';\r\n textItemValues = textItemValues + ',' + vm.SearchByConsumerName;\r\n }\r\n }\r\n if(vm.SearchByConsumerContact){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'ConsumerContact';\r\n textItemValues = vm.SearchByConsumerContact;\r\n }else{\r\n textItemNames = textItemNames + ',ConsumerContact';\r\n textItemValues = textItemValues + ',' + vm.SearchByConsumerContact;\r\n }\r\n }\r\n if(vm.SearchByState){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'State';\r\n textItemValues = vm.SearchByState;\r\n }else{\r\n textItemNames = textItemNames + ',State';\r\n textItemValues = textItemValues + ',' + vm.SearchByState;\r\n }\r\n }\r\n if(vm.searchText)\r\n {\r\n itemNames = 'Search';\r\n itemValues = vm.searchText;\r\n templateItemNames = '';\r\n templateItemValues = ''; \r\n textItemNames = '';\r\n textItemValues = '';\r\n } \r\n }\r\n\r\n vm.GetAllStates = function () {\r\n JobTicketViewService.getStates(supervisorId, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.states = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n vm.GetAllStates();\r\n\r\n vm.PlannedClosureDateModelOpen= function()\r\n {\r\n var ticketIdList=[];\r\n vm.IsLoadSucessfull=false;\r\n for(var j=0;j 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n \r\n if (action == 'Accepted') {\r\n vm.editPermission = true;\r\n vm.confirmTagModal(\"Do you want to accept selected ticket's?\", function () {\r\n $log.log('Accept CallBack Call');\r\n JobTicketViewService.ActionByVendor(loggedInUserId, ticketId, action, token).then(function (resp) {\r\n if (resp.status == 202) { \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n vm.actionFlag = false;\r\n vm.showSuccess(\"Success\", \"Selected Jobs has been accepted successfully\");\r\n \r\n } else {\r\n vm.showFailure(\"Failed\", \"Server facing some technical issue, please try again later\");\r\n }\r\n })\r\n })\r\n } else {\r\n vm.editPermission = false;\r\n vm.confirmTagModal(\"Do you want to reject selected ticket's?\", function () {\r\n $log.log('Accept CallBack Call');\r\n JobTicketViewService.ActionByVendor(loggedInUserId, ticketId, action, token).then(function (resp) {\r\n if (resp.status == 202) { \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.actionFlag = false;\r\n }, 1000);\r\n vm.showSuccess(\"Success\", \"Selected Jobs has been rejected successfully\");\r\n \r\n } else {\r\n vm.showFailure(\"Failed\", \"Server facing some technical issue, please try again later\");\r\n }\r\n })\r\n })\r\n }\r\n }\r\n vm.enableFilters = true;\r\n \r\n vm.dtInstance = {}; \r\n vm.searchTable = function () { \r\n vm.FilterArray(); \r\n vm.ResetFilter(); \r\n // vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n \r\n };\r\n \r\n if($localStorage.backToTicketList==\"JobDetailView\")\r\n { \r\n $localStorage.backToTicketList=\"\"; \r\n vm.searchStatusText=$localStorage.TicketFilterModel.JobStatus;\r\n vm.searchJobTypeText=$localStorage.TicketFilterModel.JobType;\r\n vm.SearchByIs=$localStorage.TicketFilterModel.JobId;\r\n vm.SearchByDiscription=$localStorage.TicketFilterModel.JobDesc;\r\n vm.SearchByTName=$localStorage.TicketFilterModel.JobTName;\r\n vm.SearchByCName=$localStorage.TicketFilterModel.JobCustomer;\r\n vm.SearchByPName=$localStorage.TicketFilterModel.JobProject;\r\n vm.DateField=$localStorage.TicketFilterModel.JobDType;\r\n PageIndex=$localStorage.TicketFilterModel.PageIndex;\r\n vm.JobcountbyStatus=$localStorage.TicketFilterModel.JobcountbyStatus;\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n $localStorage.backToTicketList=\"\"; \r\n $localStorage.TicketFilterModel.PageIndex = 1;\r\n \r\n }\r\n else\r\n { \r\n if( typeof $localStorage.TicketFilterModel === \"undefined\" || $localStorage.TicketFilterModel==\"\" || typeof $localStorage.TicketFilterModel.PageIndex === \"undefined\")\r\n PageIndex=1;\r\n\r\n $localStorage.TicketFilterModel = {};\r\n $localStorage.TicketFilterModel.PageIndex = 1;\r\n \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n $localStorage.TicketFilterModel = {};\r\n }\r\n vm.closeSearchText = function()\r\n { \r\n if(vm.searchText!=\"\")\r\n {\r\n vm.searchText=\"\";\r\n vm.ResetFilter();\r\n }\r\n }\r\n vm.ViewJob = function (ticket) { \r\n $localStorage.backToOldJobList = '';\r\n $localStorage.SDate = startDate;\r\n $localStorage.EDate = endDate;\r\n $localStorage.previousPage = 'jobticketcopy';\r\n $localStorage.TicketFilterModel ={\r\n \"JobType\" : vm.searchJobTypeText,\r\n \"JobStatus\" : vm.searchStatusText,\r\n \"JobDType\" : vm.DateField,\r\n \"JobSDate\" : startDate,\r\n \"JobEDate\" : endDate,\r\n \"JobId\" : vm.SearchByIs,\r\n \"JobDesc\" : vm.SearchByDiscription,\r\n \"JobTName\" : vm.SearchByTName, \r\n \"JobCustomer\" : vm.SearchByCName,\r\n \"JobProject\" : vm.SearchByPName,\r\n \"PageIndex\" : PageIndex,\r\n \"JobcountbyStatus\" : vm.JobcountbyStatus\r\n \r\n } ;\r\n // vm.VerticalName == 'Telecom' || vm.VerticalName == 'IMS'\r\n if(vm.VerticalName == 'IMS'){\r\n $state.go('index.JobView', {\r\n ticketId: ticket\r\n }, {\r\n reload: true\r\n });\r\n }else{\r\n $state.go('index.JobDetailView', {\r\n ticketId: ticket\r\n }, {\r\n reload: true\r\n }); \r\n }\r\n \r\n }\r\n\r\n vm.state = {};\r\n var columns = [\r\n {'name': 'field1', 'visible':true},//0\r\n {'name': 'field1', 'visible':true},//1\r\n {'name': 'field1', 'visible':true},//2\r\n {'name': 'field1', 'visible':true},//3\r\n {'name': 'field1', 'visible':true},//4\r\n {'name': 'field1', 'visible':true},//5\r\n {'name': 'field1', 'visible':true},//6\r\n {'name': 'field1', 'visible':true},//7\r\n {'name': 'field1', 'visible':true},//8\r\n {'name': 'field1', 'visible':true},//9\r\n {'name': 'field1', 'visible':true},//10\r\n {'name': 'field1', 'visible':true},//11\r\n {'name': 'field1', 'visible':true},//12\r\n {'name': 'field1', 'visible':true},//13\r\n {'name': 'field1', 'visible':true},//14\r\n {'name': 'field1', 'visible':true},//15\r\n {'name': 'field1', 'visible':true},//16\r\n {'name': 'field1', 'visible':true},//17\r\n {'name': 'field1', 'visible':true},//18\r\n {'name': 'field1', 'visible':true},//19\r\n {'name': 'field1', 'visible':true},//20\r\n {'name': 'field1', 'visible':true},//21\r\n {'name': 'field1', 'visible':true},//22\r\n {'name': 'field1', 'visible':true},//23\r\n {'name': 'field1', 'visible':true},//24\r\n {'name': 'field1', 'visible':true},//25\r\n {'name': 'field1', 'visible':true},//26\r\n {'name': 'field1', 'visible':true},//27\r\n {'name': 'field1', 'visible':true},//28\r\n {'name': 'field1', 'visible':true},//29\r\n {'name': 'field1', 'visible':true},//30\r\n {'name': 'field1', 'visible':true},//31\r\n {'name': 'field1', 'visible':true},//32\r\n {'name': 'field1', 'visible':true},//33\r\n {'name': 'field1', 'visible':true},//34\r\n {'name': 'field1', 'visible':true},//35\r\n {'name': 'field1', 'visible':true},//36\r\n {'name': 'field1', 'visible':true},//37\r\n {'name': 'field1', 'visible':true},//38\r\n {'name': 'field1', 'visible':true},//39\r\n {'name': 'field1', 'visible':true},//40\r\n {'name': 'field1', 'visible':true},//41\r\n {'name': 'field1', 'visible':true},//42\r\n {'name': 'field1', 'visible':true},//43\r\n {'name': 'field1', 'visible':true},//44\r\n {'name': 'field1', 'visible':true},//45\r\n {'name': 'field1', 'visible':true},//46\r\n {'name': 'field1', 'visible':true},//47\r\n {'name': 'field1', 'visible':true},//48\r\n {'name': 'field1', 'visible':true},//49\r\n {'name': 'field1', 'visible':true},//50\r\n {'name': 'field1', 'visible':true},//51\r\n {'name': 'field1', 'visible':true},//52\r\n {'name': 'field1', 'visible':true},//53\r\n {'name': 'field1', 'visible':true},//54\r\n {'name': 'field1', 'visible':true},//55\r\n {'name': 'field1', 'visible':true},//56\r\n {'name': 'field1', 'visible':true},//57\r\n {'name': 'field1', 'visible':true},//58\r\n {'name': 'field1', 'visible':true},//59\r\n {'name': 'field1', 'visible':true},//60\r\n {'name': 'field1', 'visible':true},//61\r\n {'name': 'field1', 'visible':true},//62\r\n {'name': 'field1', 'visible':true}//63\r\n ]\r\n\r\n vm.state.columns = columns;\r\n \r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n .withPaginationType('full_numbers').withOption('lengthChange', false)\r\n .withOption('paging', false)\r\n .withOption('bInfo',false)\r\n .withOption('order', []);\r\n\r\n\r\n vm.dtColumnDefs = []; \r\n\r\n vm.buildColumnBuilder = function (){\r\n var tablecolumns = [];\r\n for(var index = 0; index < vm.state.columns.length; index++)\r\n {\r\n if( vm.state.columns[index].visible)\r\n {\r\n tablecolumns.push(DTColumnDefBuilder.newColumnDef(index).notSortable());\r\n }\r\n else\r\n {\r\n tablecolumns.push(DTColumnDefBuilder.newColumnDef(index).notSortable().notVisible())\r\n }\r\n }\r\n vm.dtColumnDefs = tablecolumns;\r\n }\r\n\r\n vm.buildColumnBuilder(); \r\n \r\n \r\n // Copied from main controller\r\n vm.implementSelectItems = function (itemList, scope) {\r\n scope.selectAll = false;\r\n scope.showMinus = false;\r\n scope.showAutoSchduleBtn = false;\r\n scope.downloadFlag = false;\r\n scope.downloadReportBtn = false;\r\n scope.deleteFlag = false;\r\n scope.ReadyToRaiseInvoiceFlag = false;\r\n scope.PlannedClosureDateFlag = false;\r\n scope.selectRow = function (i) { \r\n //$log.log(\"selectRow called\");\r\n scope.showMinus = false;\r\n scope.selectAll = false;\r\n scope.showAutoSchduleBtn = false;\r\n scope.downloadFlag = false;\r\n scope.downloadReportBtn = false;\r\n scope.deleteFlag = false;\r\n scope.ReadyToRaiseInvoiceFlag = false;\r\n scope.PlannedClosureDateFlag = false;\r\n \r\n for(var j=0;j

\" + vm.name + \"

\" + ' ' + vm.contactnumber);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n \r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n \r\n }\r\n vm.makeJobMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n \r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.customerJobCard.ConsumerName + \"

\" + ' ' + vm.customerJobCard.JobId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.customerJobCard.ConsumerContact);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n \r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n }\r\n //It is used for the distance also \r\n function initMap() {\r\n var pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n pointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n // center = new google.maps.LatLng(51.3, 0.8),\r\n myOptions = {\r\n zoom: 8,\r\n zoomControl: false,\r\n scaleControl: true,\r\n mapTypeControl: false,\r\n streetViewControl: false,\r\n gestureHandling: 'greedy',\r\n // center: center,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n },\r\n \r\n map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n // Instantiate a directions service.\r\n directionsService = new google.maps.DirectionsService,\r\n directionsDisplay = new google.maps.DirectionsRenderer({\r\n map: map\r\n }),\r\n duration = document.getElementById('duration');\r\n distance = document.getElementById('distance');\r\n flightPath = new google.maps.Polyline({\r\n path: [pointA, pointB],\r\n // geodesic: true,\r\n strokeColor: 'red',\r\n });\r\n $scope.InfoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n // click on marker B to get route from A to B\r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n var travelMode = \"DRIVING\";\r\n var icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n }\r\n function calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map) {\r\n var selectedMode = \"DRIVING\";\r\n directionsService.route({\r\n origin: pointA,\r\n destination: pointB,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n travelMode: google.maps.TravelMode[selectedMode]\r\n }, function (response, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n new google.maps.DirectionsRenderer({\r\n map: map,\r\n directions: response,\r\n suppressMarkers: true,\r\n polylineOptions: {\r\n strokeColor: \"#000000\"\r\n }\r\n });\r\n var leg = response.routes[0].legs[0];\r\n //outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n distance.innerHTML = response.routes[0].legs[0].distance.text;\r\n duration.innerHTML = response.routes[0].legs[0].duration.text;\r\n vm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n vm.makeJobMarker(leg.start_location, icons.start, map);\r\n vm.makeUserMarker(leg.end_location, icons.end, map);\r\n } else {\r\n window.alert('Directions request failed due to ' + status);\r\n }\r\n });\r\n }\r\n \r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/JOb_icon.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/delivery-man1.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n /* vm.getReadableDate = function(){\r\n var time = new moment(vm.customerJobCard.JobDateTime, \"YYYY-MM-DDThh:mm:ss\");\r\n return time.format(\"DD MMM YYYY\")+\" at \"+time.format(\"LTS\"); \r\n } */\r\n vm.getCustomerJobCard = function () {\r\n JobTicketViewService.getCustomerJobCardbyJobId(loggedInUserId, vm.trackingTicketId, token, function (data) {\r\n vm.JobLatitude = data.JobLatitude;\r\n vm.JobLongitude = data.JobLongitude;\r\n vm.FELatitude = data.FELatitude;\r\n vm.FELongitude = data.FELongitude;\r\n vm.contactnumber = data.FEContactNumber;\r\n vm.jobtype = data.Description;\r\n vm.name = data.FEName;\r\n \r\n if(data.FEContactNumber){\r\n vm.contactnumber=data.FEContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n // vm.mapMarkers=[];\r\n initMap();\r\n $log.log(\"res of getCustomerJobCard=\" + data);\r\n vm.customerJobCard = data;\r\n if(vm.customerJobCard.ConsumerContact){\r\n vm.customerJobCard.ConsumerContact=vm.customerJobCard.ConsumerContact.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n if ($localStorage.rateJobParams) {\r\n vm.customerJobCard.userRole = $localStorage.Role;\r\n vm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n vm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n delete $localStorage.rateJobParams;\r\n }\r\n if (data && data.JobStatus == 'PaymentDone') {\r\n \r\n }\r\n }, function () {\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n //}\r\n vm.TicketBreachValueconver = function(TicketBreachValue)\r\n {\r\n var TicketBreachValueInString=\"\"; \r\n if(TicketBreachValue==0)\r\n TicketBreachValueInString = \"Not Breached\";\r\n if(TicketBreachValue==1)\r\n TicketBreachValueInString = \"Breached\";\r\n \r\n return TicketBreachValueInString;\r\n }\r\n vm.OpenTracking = function (ticket) {\r\n vm.trackingTicketId = ticket;\r\n Tracking = $uibModal.open({\r\n templateUrl: 'Tracking.html',\r\n size: 'lg',\r\n scope: $scope,\r\n controller: ModelInstanceOfMap\r\n })\r\n }\r\n vm.CloseTracking = function () {\r\n Tracking.close();\r\n }\r\n \r\n vm.getTemplateCallback = function (templates) {\r\n vm.templateListData = templates;\r\n vm.templateList = [];\r\n angular.forEach(vm.templateListData, function (d) {\r\n if (d.Skill != 'Water Sample Collection') {\r\n vm.templateList.push(d);\r\n }\r\n })\r\n }\r\n vm.OpenApproveModal = function (currentJOb) \r\n { \r\n vm.CurrentJob = currentJOb;\r\n vm.RatingOfTicket = ''; \r\n if(vm.CurrentJob.IsLineItemAvailable==true && vm.CurrentJob.IsDynamicPriceApproved==false){\r\n vm.aproveMessage = 'Please approve dynamic pricing line item under the ticket details section!';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'dynamic_price_approved_model.html',\r\n scope: $scope\r\n });\r\n }\r\n else{\r\n vm.aproveMessage = 'Please Rate !';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'approve_model.html',\r\n scope: $scope\r\n });\r\n } \r\n }\r\n \r\n vm.CloseModal = function () {\r\n approveModalInstance.close();\r\n }\r\n \r\n vm.OpenRescheduleAuditModal = function (currentAuditJOb) \r\n { \r\n vm.CurrentAuditJob = currentAuditJOb;\r\n vm.RatingOfTicket = '';\r\n vm.RescheduleAuditTicketId = vm.CurrentAuditJob.TicketId;\r\n vm.AuditPrimaryReason = vm.CurrentAuditJob.PrimaryReason;\r\n rescheduleAuditModalInstance = $uibModal.open({\r\n templateUrl: 'reschedule_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n \r\n vm.RescheduleAuditCloseModal = function () {\r\n rescheduleAuditModalInstance.close();\r\n }\r\n \r\n vm.JobRescheduleAudit = function()\r\n {\r\n\r\n var data = {\r\n \"TicketId\": vm.RescheduleAuditTicketId,\r\n \"AuditValue\": vm.RescheduleAuditModel,\r\n \"IsApplicableForAutoPayment\": vm.IsApplicableForAutoPayment\r\n }\r\n rescheduleAuditModalInstance.close();\r\n // JobTicketViewService.TBCCancelationAudit(vm.RescheduleAuditModel,vm.RescheduleAuditTicketId,loggedInUserId,token).then(function(res){\r\n JobTicketViewService.TBCCancelationAudit(data,loggedInUserId,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000); \r\n }\r\n });\r\n }\r\n \r\n\r\n vm.OpenSettlementModal = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n vm.PaymentStatus = '';\r\n vm.Remarks = '';\r\n \r\n settlementModalInstance = $uibModal.open({\r\n templateUrl: 'settlement_model.html',\r\n scope: $scope\r\n });\r\n \r\n }\r\n \r\n vm.SettlementCloseModal = function () {\r\n settlementModalInstance.close();\r\n }\r\n \r\n vm.settlemenTicket = function (status, ticketId, remarks, userId) {\r\n settlementModalInstance.close();\r\n var settlementData = {};\r\n settlementData.PaymentStatus = status;\r\n settlementData.ReqUserId = loggedInUserId;\r\n settlementData.TicketId = ticketId;\r\n settlementData.Remarks = remarks;\r\n settlementData.FEId = userId;\r\n settlementData.Status = \"Done\";\r\n // $log.log('settlementData', settlementData);\r\n JobTicketViewService.updateTicketSettlement(settlementData, token, loggedInUserId, function (res) {\r\n \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job settlement successfully done.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to settlement payment. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n \r\n \r\n vm.DeleteTicket = function () {\r\n var ticketId = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId.push(t.TicketId);\r\n }\r\n })\r\n // ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n \r\n if (ticketId != null && ticketId.length == 1) {\r\n JobTicketViewService.DeleteTickets(loggedInUserId, ticketId, token).then(function (resp) {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n \r\n if (resp && resp.status == 202) {\r\n vm.showSuccess(\"Deleted\", resp.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n \r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"You can delete only one ticket at a time.\");\r\n }\r\n }\r\n \r\n \r\n vm.AutoSchedule = function () {\r\n var ticketId = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId.push(t.TicketId);\r\n }\r\n })\r\n \r\n if (ticketId != null) {\r\n JobTicketViewService.SetTicketExecutionMode(loggedInUserId, \"Auto\", ticketId, token).then(function (resp) {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false; \r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Scheduled Tickets\", resp.data.toString());\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else {\r\n vm.showFailure(\"Failed to schedule tickets\", resp.data.toString());\r\n }\r\n })\r\n } \r\n }\r\n \r\n \r\n vm.OpenFollowUpModel = function (ticketId) {\r\n vm.followup = '';\r\n vm.tickId = ticketId;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n }\r\n \r\n vm.CloseFollowUpModel = function () {\r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = '';\r\n vm.primaryHoldReason='';\r\n vm.primaryHoldRemark='';\r\n vm.followFiles = null; \r\n FollowUpModel.close();\r\n }\r\n \r\n vm.RejectJobModel = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n RejectJobModel = $uibModal.open({\r\n templateUrl: 'Rejectjob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n \r\n\r\n \r\n vm.getRejectHistory = function (ticketId) \r\n { \r\n JobTicketViewService.getRejectHistory(ticketId,loggedInUserId,token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.getDetailsList=resp.data;\r\n openHistoryModel = $uibModal.open({\r\n templateUrl: 'openHistoryModel.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n }, function () {\r\n \r\n });\r\n } \r\n \r\n\r\n vm.CloseHistoryModel = function () {\r\n openHistoryModel.close();\r\n }\r\n\r\n vm.ConvertToNewJob = function(currentJOb){\r\n \r\n vm.CurrentJob = currentJOb; \r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"New\" \r\n };\r\n JobTicketViewService.ConvertToNewJob(data, token, loggedInUserId, function (res) { \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job converted successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to convert job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n \r\n vm.CloseRejectModel = function () {\r\n RejectJobModel.close();\r\n }\r\n\r\n //\r\n $scope.attachmentForFollowUp = function(files){\r\n var file = files.files[0]; \r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.msg|\\.pdf|\\.bmp|\\.xps)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.followFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png,.msg,.bmp,xps only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n\r\n vm.DocEdit = function(index){\r\n vm.followFiles=null; \r\n }\r\n\r\n vm.GetFollowupReasons = function(){\r\n JobTicketViewService.GetReasonsByStatus(loggedInUserId, token, 'FollowUp').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForFU = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetFollowupReasons();\r\n \r\n var ModalInstanceCtrlFollowUp = function ($scope, $rootScope, $uibModalInstance) { \r\n vm.updateFollowUpStatus = function () {\r\n var data = {};\r\n data = {\r\n \"userId\": loggedInUserId,\r\n \"dateTime\": \"\",\r\n \"activity\": \"\",\r\n \"action\": \"FOLLOW_UP\",\r\n \"userName\": \"\",\r\n \"ticketId\": vm.tickId,\r\n \"primaryReason\": vm.primaryFollowUpReason,\r\n \"SecondryReason\": \"\",\r\n \"ReasonComment\": vm.primaryFollowUpRemark\r\n }\r\n if(vm.followFiles != null) {\r\n JobTicketViewService.TicketFollowUp(data,vm.followFiles, token, loggedInUserId, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.CloseFollowUpModel();\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n else {\r\n JobTicketViewService.TicketFollowUpWithoutDoc(data, token, loggedInUserId, function (res) {\r\n if (res) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n }\r\n vm.CloseFollowUpModel();\r\n });\r\n }\r\n \r\n \r\n }\r\n }\r\n vm.ApproveJob = function () { \r\n if (vm.RatingOfTicket) {\r\n var jobwinrate = 0.0;\r\n if(vm.Winrate == null || vm.Winrate == 0 || vm.Winrate =='')\r\n jobwinrate = 0.0;\r\n else\r\n jobwinrate = vm.Winrate; \r\n \r\n approveModalInstance.close();\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Approved\",\r\n \"JobWinRate\" : parseFloat(jobwinrate.toFixed(2)),\r\n \"TechnicianRating\": vm.RatingOfTicket.toString(),\r\n \"ApprovalRemark\": vm.approvalRemark.toString(),\r\n \"IsSafetyAudit\":vm.IsSafetyAudit\r\n };\r\n JobTicketViewService.ApproveJob(data, token, loggedInUserId, function (res) { \r\n if(res && res.data==\"Please enter atleast one Line Item to Approve this job \")\r\n {\r\n vm.showFailure(\"Success\", \"Please enter atleast one Line Item to Approve this job.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n }\r\n else if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job approved successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n \r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n } else {\r\n vm.ratingwarning=\"Please rate the technician.\";\r\n //approveModalInstance.close();\r\n }\r\n }\r\n vm.AcceptJob = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Accepted\" \r\n };\r\n JobTicketViewService.AcceptJob(data, token, loggedInUserId, function (res) { \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job accepted successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to accept job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n \r\n vm.reAssignJob = function (currentJOb) {\r\n \r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Assigned\" \r\n };\r\n JobTicketViewService.AcceptJob(data, token, loggedInUserId,function (res) {\r\n \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job reassigned successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to reassign job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n\r\n vm.cloneTicket = function (currentJOb) {\r\n \r\n vm.CurrentJob = currentJOb;\r\n if(vm.VerticalName == 'Telecom')\r\n {\r\n $state.go('index.JobBidCreation', { \r\n cloneticketid:vm.CurrentJob.TicketId \r\n },\r\n {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n }); \r\n }\r\n else\r\n {\r\n $state.go('index.NewJobCreation', { \r\n },\r\n {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n });\r\n \r\n }\r\n \r\n \r\n }\r\n \r\n vm.RejectJob = function () {\r\n if(!vm.RejectionRemark)\r\n {\r\n vm.showFailure(\"Failed\", \"Please comment on rejection.\");\r\n return;\r\n }\r\n RejectJobModel.close(); \r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Rejected\", \r\n \"RejectionRemark\": vm.RejectionRemark.toString()\r\n };\r\n JobTicketViewService.RejectJob(data, token, loggedInUserId, function (res) { \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job rejected successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n \r\n vm.PullBackTicket = function (ticketId) {\r\n JobTicketViewService.PullBackTicket(loggedInUserId, ticketId, token).then(function (resp) {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n })\r\n }\r\n\r\n vm.OpenHoldUpModel = function (ticketId, holdstatus) {\r\n if(holdstatus == 'Unhold')\r\n {\r\n vm.UpdateHoldingStatus(ticketId, holdstatus);\r\n } \r\n else{\r\n vm.tickId = ticketId;\r\n $scope.holdstatus =holdstatus;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'HoldJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n } \r\n }\r\n \r\n vm.UpdateHoldReason=\"Update\";\r\n vm.UpdateHoldingStatus = function (ticketId, holdingStatus) {\r\n if(vm.primaryHoldReason!= null)\r\n\t\t\t{\t\r\n\t\t\t\tvm.enable1 = \"false\";\r\n\t\t\t\tvm.UpdateHoldReason=\"Updating...\";\r\n };\r\n JobTicketViewService.UpdateHoldingStatus(loggedInUserId, ticketId, holdingStatus,vm.primaryHoldReason,vm.primaryHoldRemark, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n vm.showSuccess('Job Hold/Unhold Status', 'Job has been updated successfully');\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.enable1 = \"true\";\t\r\n vm.UpdateHoldReason=\"Update\";\t\r\n }, 1000);\r\n vm.CloseFollowUpModel();\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure('Failed', resp.data.Message);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.enable1 = \"true\";\t\r\n\t\t\t\t\t\t vm.UpdateHoldReason=\"Update\";\t \r\n vm.getAllJobTicketsCopy(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000); \r\n vm.CloseFollowUpModel();\r\n } else {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n }\r\n }, function (err) {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n })\r\n }\r\n \r\n vm.downloadReport = function (ticketId, templateName) {\r\n if (templateName == 'Water Testing') {\r\n var urlWithFeasible = PublicApiURL + '/api/Report/' + ticketId + '/DownloadReportByTemplateName?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlWithFeasible, '_blank')\r\n } else {\r\n var urlForNonFeasible = PublicApiURL + '/api/Report/' + ticketId + '/Report?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlForNonFeasible, '_blank')\r\n }\r\n }\r\n\r\n //download PDF \r\n vm.downloadReportPDF = function (ticketId,OnSiteReport) { \r\n if (OnSiteReport != null) { \r\n var urlWithFeasible = PublicApiURL + '/api/Report/GeneratePdfOnSiteReportForMultipleTickets?TicketIds=' + ticketId;\r\n $window.open(urlWithFeasible, '_blank')\r\n } else {\r\n // var urlForNonFeasible = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketIds=' + ticketId;\r\n // $window.open(urlForNonFeasible, '_blank')\r\n vm.downloadOnSiteReport(ticketId);\r\n }\r\n }\r\n\r\n \r\n\t\tvm.pdfimage = \"\";\r\n\t\tvm.DocumentAvailableMessage=\"\";\t\r\n\t\tvm.downloadOnSiteReport = function (ticketId) { \r\n\t\t\tvm.PDFView();\r\n\t\t\t\r\n\t\t\t// var PreviewConsolidatedInvoiceList = previewSelectedObj;\r\n\t\t\tJobTicketViewService.downloadOnSiteReport(loggedInUserId, token, ticketId).then(function (resp) {\r\n\t\t\t\t// var responseDataList=[];\r\n\t\t\t\tvm.responseDataList = resp.data;\r\n\t\t\t\t// for(var i=0; i 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n JobTicketViewService.downloadMultipleReports(loggedInUserId, ticketId, reportMapperId, correlated);\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }\r\n \r\n vm.downloadInvoiceReport = function () {\r\n var ticketId = \"\";\r\n var correlated = $localStorage.accountConfig.CorrelatedReports;\r\n // var reportMapperId = $localStorage.accountConfig.ReportMapperId;\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId += t.TicketId + \",\";\r\n }\r\n })\r\n ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n JobTicketViewService.downloadInvoice(loggedInUserId, ticketId, correlated);\r\n }\r\n \r\n vm.showMultipleDownloadButton = function () {\r\n var ticketSelected = false;\r\n var IsReportMapper = false; \r\n vm.invoiceFlag = false;\r\n vm.deleteFlag = false;\r\n vm.actionFlag = false;\r\n var actionFlagList = [];\r\n var deleteFlagList = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n ticketSelected = ticketSelected || t.checked;\r\n if(t.checked){\r\n if(t.reportMapperId)\r\n {\r\n IsReportMapper = true;\r\n }\r\n else\r\n {\r\n IsReportMapper = false; \r\n }\r\n }\r\n if (vm.Role == 'Vendor Manager') {\r\n if (t.checked && t.SkillSet == 'Water Lab Test' && t.TicketStatus == 'Completed') {\r\n vm.invoiceFlag = true;\r\n } else if (t.checked && t.AcceptDate != null) {\r\n actionFlagList.push(false);\r\n } else if (t.checked && t.AcceptDate == null && t.TicketStatus == 'Rejected') {\r\n actionFlagList.push(false);\r\n } else if (t.checked && t.AcceptDate == null && t.TicketStatus == 'Assigned') {\r\n actionFlagList.push(true);\r\n }\r\n } else {\r\n if (t.checked && t.SkillSet == 'Water Lab Test' && t.TicketStatus == 'Completed') {\r\n vm.invoiceFlag = true;\r\n } else if (t.checked && t.TicketStatus == 'New') {\r\n deleteFlagList.push(true);\r\n // vm.deleteFlag = true;\r\n } else if (t.checked && t.TicketStatus != 'New') {\r\n // vm.deleteFlag = false;\r\n deleteFlagList.push(false);\r\n }\r\n }\r\n \r\n \r\n })\r\n if (deleteFlagList.includes(false)) {\r\n vm.deleteFlag = false;\r\n } else if (deleteFlagList.includes(true)) {\r\n vm.deleteFlag = true;\r\n } if (actionFlagList.includes(false)) {\r\n vm.actionFlag = false\r\n } else {\r\n vm.actionFlag = true;\r\n }\r\n return IsReportMapper && ticketSelected && $localStorage.accountConfig != null && $localStorage.accountConfig.CorrelatedReports != null && $localStorage.accountConfig.ReportMapperId != null;\r\n }\r\n // vm.showInvoiceButton = function () {\r\n // var invoiceFlag = false;\r\n // angular.forEach(vm.ticketList, function (t) {\r\n // if (t.checked && t.SkillSet == 'Water Lab Test' && t.TicketStatus == 'Completed') {\r\n // var invoiceFlag = true;\r\n // return invoiceFlag;\r\n // } \r\n // })\r\n // return invoiceFlag;\r\n // }\r\n \r\n vm.hideSingleDownloadButton = function () {\r\n return $localStorage.accountConfig != null && $localStorage.accountConfig.CorrelatedReports != null && $localStorage.accountConfig.ReportMapperId != null;\r\n }\r\n\r\n // vm.getReason = function() {\r\n // $http.get(\"https://product.mymobiforce.com/ActivityAPI/api/Activity/GetReasonsForFollowUp\").then(\r\n // function successCallback(response) {\r\n // $scope.response = response;\r\n // },\r\n // function errorCallback(response) {\r\n // console.log(\"Unable to perform get request\");\r\n // }\r\n // );\r\n // };\r\n \r\n vm.getSkills = function () {\r\n JobTicketViewService.getSkills(loggedInUserId, token, function (skills) {\r\n vm.skills = skills;\r\n //vm.skills.unshift({ \"SkillName\": \"All Job Types\" }); \r\n if (vm.path == 'isTicketView') {\r\n vm.searchJobTypeText = $localStorage.AllJobType;\r\n // vm.searchStatusText = $localStorage.AllJobStatus;\r\n } \r\n }, vm.showFailure);\r\n \r\n \r\n \r\n }\r\n vm.getSkills();\r\n \r\n vm.isApprovalPermission = function (defaultValue) {\r\n if (vm.accountConfig && vm.accountConfig['ApprovalPermission'] != null) {\r\n return vm.accountConfig['ApprovalPermission'].split(\",\").indexOf($localStorage.loggedInUser_Role) > -1;\r\n }\r\n return defaultValue;\r\n }\r\n \r\n vm.OpenBillModal = function (ticketId) {\r\n vm.BillDetails = [];\r\n vm.TotalExpense = '';\r\n JobTicketViewService.getBillExpenseByTicketID(loggedInUserId, ticketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n angular.forEach(resp.data, function (d) {\r\n vm.BillDetails = d.Bills;\r\n vm.TotalExpense = d.ExpenseAmount;\r\n })\r\n }\r\n if (vm.TotalExpense != 0) {\r\n BillModal = $uibModal.open({\r\n templateUrl: 'bill_model.html',\r\n scope: $scope\r\n })\r\n }\r\n })\r\n }\r\n \r\n vm.CloseBillModal = function () {\r\n BillModal.close();\r\n }\r\n \r\n vm.getPicUrl = function (pic) {\r\n return ImageUrl + '/' + pic;\r\n }\r\n\r\n vm.ReportpdfUrl = function (ticketId) {\r\n JobTicketViewService.getPdfReport(loggedInUserId, ticketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n const linkSource = resp.data.Base64Data;\r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = resp.data.ReportName;\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n } \r\n })\r\n }\r\n\r\n vm.pullBackTicketFromAssign = function(currentJOb){\r\n vm.CurrentJob = currentJOb;\r\n vm.AuditTicketId = vm.CurrentJob.TicketId;\r\n vm.TicketBreachValue = vm.CurrentJob.TicketBreachValue;\r\n if(vm.CurrentJob.TicketStatus==\"Assigned\" && vm.CurrentJob.SecondryStatus != \"InTransit\"){\r\n JobTicketViewService.GetPullBacknReasons(loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.pullBackReasonsList=resp.data;\r\n pullBackReasonsModalInstance = $uibModal.open({\r\n templateUrl: 'pullBack_reasons_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n }, function () { \r\n });\r\n }\r\n }\r\n vm.UpdatePullBackReasons = function()\r\n {\r\n \r\n vm.pullBackReasonsForm.submitted = true;\r\n if (vm.pullBackReasonsForm.$valid) {\r\n \r\n var PullBackReasonsModel =\r\n {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"PullBackReason\": vm.pullBackReasons+ ' ' + vm.pullBackReasonsRemark,\r\n \"MoveSPDbyTwoDays\": vm.MoveSPDbyTwoDays\r\n }\r\n JobTicketViewService.PullBackTicketFromTechnician(PullBackReasonsModel,loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(\"Success\",vm.AuditTicketId+\" Pull back from Technician\" ); \r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 2000); \r\n pullBackReasonsModalInstance.close();\r\n vm.pullBackReasons=\"\";\r\n vm.pullBackReasonsRemark=\"\";\r\n vm.MoveSPDbyTwoDays = false;\r\n }\r\n if (resp && resp.status == 206) { \r\n vm.showFailure('Failure',resp.data); \r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 2000); \r\n pullBackReasonsModalInstance.close();\r\n vm.pullBackReasons=\"\";\r\n vm.pullBackReasonsRemark=\"\";\r\n vm.MoveSPDbyTwoDays = false;\r\n }\r\n // else {\r\n // vm.showFailure('Failure',resp.data);\r\n // pullBackReasonsModalInstance.close();\r\n // }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n vm.pullBackReasonsCloseModal = function () {\r\n pullBackReasonsModalInstance.close();\r\n vm.pullBackReasons=\"\";\r\n vm.pullBackReasonsRemark=\"\";\r\n \r\n vm.HintDisplay=\"\";\r\n }\r\n\r\n \r\n vm.reloadData = function(){\r\n var resetPaging = true;\r\n vm.dtInstance.reloadData(resetPaging);\r\n }\r\n //Cancel and clone ticket\r\n vm.CancleAndCloneTicket = function(ticket){\r\n var ticketData = ticket;\r\n $state.go('index.JobBidCreation', { cloneticketid:ticketData.TicketId },\r\n {reload: true,inherit: false,notify: true}); \r\n }\r\n vm.CancelTicket = function(ticketId, currentJOb){\r\n vm.CurrentJob = currentJOb;\r\n vm.RatingOfTicket = '';\r\n vm.AuditTicketId = vm.CurrentJob.TicketId;\r\n vm.TicketPaymentNeedToProcess = vm.CurrentJob.IsTicketPaymentNeedToProcess;\r\n vm.IsApplicableForAutoPayment = vm.CurrentJob.IsApplicableForAutoPayment;\r\n if(vm.CurrentJob.TicketStatus==\"Completed\" && vm.CurrentJob.SubStatus ==\"TBC\"){ \r\n vm.PrimaryReason = vm.CurrentJob.PrimaryReason;\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'tbc_confirm_cancelation_model.html',\r\n scope: $scope\r\n });\r\n }\r\n else\r\n {\r\n \r\n vm.IsCancelFromServer = vm.accountConfig.IsCancelFromServer;\r\n if(vm.IsCancelFromServer && (vm.CurrentJob.TicketStatus==\"Assigned\" || vm.CurrentJob.TicketStatus==\"New\")){\r\n JobTicketViewService.GetCancellationReasons(vm.CurrentJob.TicketStatus, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.CancellationReasonsList=resp.data;\r\n cancellationReasonsModalInstance = $uibModal.open({\r\n templateUrl: 'cancellation_reasons_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n }, function () { \r\n });\r\n }\r\n else{\r\n JobTicketViewService.CancelTicket(loggedInUserId,ticketId,token).then(function(res){\r\n if(res.status == 202 && res.statusText =='Accepted'){\r\n vm.showSuccess('Success',res.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000);\r\n }\r\n }); \r\n }\r\n }\r\n }\r\n vm.OpenTicketRatingModal = function (currentTicketJob) \r\n { \r\n \r\n JobTicketViewService.GetCSATRatingByTicketID(loggedInUserId, currentTicketJob.TicketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TicketRatingList=resp.data;\r\n ticketRatingModalInstance = $uibModal.open({\r\n templateUrl: 'ticket_rating_model.html',\r\n scope: $scope\r\n });\r\n }\r\n \r\n }, function () {\r\n \r\n });\r\n } \r\n \r\n \r\n vm.TicketRatingCloseModal = function () {\r\n ticketRatingModalInstance.close();\r\n }\r\n vm.TBCCancelationAudit = function()\r\n {\r\n var data = {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"AuditValue\": vm.TBCCancelationModel,\r\n // \"IsTicketPaymentNeedToProcess\": vm.TicketPaymentNeedToProcess\\\r\n \"IsApplicableForAutoPayment\": vm.IsApplicableForAutoPayment\r\n }\r\n vm.IsInvoiceEnabled;\r\n approveModalInstance.close();\r\n JobTicketViewService.TBCCancelationAudit(data,loggedInUserId,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000); \r\n }\r\n });\r\n }\r\n\r\n vm.updateFalseTBC = function (status) {\r\n if(status == 'Yes' ) {\r\n vm.IsApplicableForAutoPayment = false;\r\n }\r\n else {\r\n vm.IsApplicableForAutoPayment = true;\r\n }\r\n }\r\n\r\n vm.CancellationReasonsCloseModal = function () {\r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons=\"\";\r\n vm.CancellationReasonsRemark=\"\";\r\n vm.HintDisplay=\"\";\r\n }\r\n vm.UpdateCancellationReasons = function()\r\n {\r\n \r\n vm.cancellationReasonsForm.submitted = true;\r\n if (vm.cancellationReasonsForm.$valid) {\r\n \r\n var CancellationReasonsModel =\r\n {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"CancelReason\": vm.CancellationReasons,\r\n \"CancelRemark\": vm.CancellationReasonsRemark\r\n }\r\n JobTicketViewService.UpdateJobServerCancel(CancellationReasonsModel,loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(resp.data.Message); \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\r\n // vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n \r\n }, 2000); \r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons=\"\";\r\n vm.CancellationReasonsRemark=\"\";\r\n vm.HintDisplay=\"\";\r\n }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n \r\n vm.ViewProfile = function (UserId,UserType) {\r\n var IsUser = false;\r\n if(UserType && UserType == 'Freelancer'){\r\n JobTicketViewService.getUserProfileData(supervisorId,UserId, token).then(function(res){\r\n if(res.data && res.status == 200){\r\n vm.UserProfileData = res.data;\r\n vm.customerrating = Number(vm.UserProfileData.CustomerRating).toFixed(1);\r\n vm.AddPreferredVendorModal = $uibModal.open({\r\n templateUrl: 'UserProfile.html',\r\n scope: $scope,\r\n windowClass:'schedulerModal',\r\n reload:true\r\n });\r\n }else{\r\n vm.showFailure('Failed',res.data.Message);\r\n }\r\n \r\n });\r\n }else if(UserType && UserType == 'Fixed Team'){\r\n JobTicketViewService.getFixedUserProfileData(supervisorId,UserId, token).then(function(res){\r\n if(res.data && res.status == 200){\r\n vm.UserProfileData = res.data;\r\n vm.AddPreferredVendorModal = $uibModal.open({\r\n templateUrl: 'UserProfile.html',\r\n scope: $scope,\r\n windowClass:'schedulerModal',\r\n reload:true\r\n });\r\n }else{\r\n vm.showFailure('Failed',res.data.Message);\r\n }\r\n \r\n });\r\n }else{\r\n JobTicketViewService.getUserProfileData(supervisorId,UserId, token).then(function(res){\r\n if(res.data && res.status == 200){\r\n vm.UserProfileData = res.data;\r\n if(vm.UserProfileData){\r\n vm.AddPreferredVendorModal = $uibModal.open({\r\n templateUrl: 'UserProfile.html',\r\n scope: $scope,\r\n windowClass:'schedulerModal',\r\n reload:true\r\n });\r\n }else{\r\n vm.showFailure('Failed','User Not found');\r\n }\r\n }else{\r\n vm.showFailure('Failed',res.data.Message);\r\n }\r\n \r\n });\r\n }\r\n \r\n \r\n }\r\n \r\n vm.UserProfileClose = function(){\r\n vm.AddPreferredVendorModal.close();\r\n }\r\n vm.downloadDataCaptureImage = function(){\r\n var ticket = '';\r\n for(var i=0;i 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } \r\n }\r\n\r\n if (vm.userskill) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Skill';\r\n uitemValues = uitemValues + \",\" + vm.userskill;\r\n }\r\n else\r\n {\r\n uitemNames = 'Skill';\r\n uitemValues = vm.userskill;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.userNameSearch;\r\n } \r\n }\r\n \r\n if (vm.PermanentState) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',State';\r\n uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n }\r\n else\r\n {\r\n uitemNames = 'State';\r\n uitemValues = vm.PermanentState;\r\n } \r\n }\r\n \r\n if(vm.JobcountbyStatus)\r\n {\r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Status';\r\n uitemValues = uitemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else\r\n {\r\n uitemNames = 'Status';\r\n uitemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n if (vm.PermanentState && vm.PermanentCity) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.PermanentCity;\r\n }\r\n else\r\n {\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.UsersType;\r\n } \r\n }\r\n \r\n\r\n if(vm.UsersType==\"Freelancer\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n }\r\n else if(vm.UsersType==\"Freelancer Vendor\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n } \r\n else if(vm.UsersType==\"Freelancer Team\")\r\n {\r\n vm.uType=\"Fixed\";\r\n }\r\n else \r\n {\r\n vm.uType=\"\";\r\n vm.UsersType = '';\r\n } \r\n\r\n }\r\n\r\n \r\n// apply user rating to all displays\r\n// add star ratings to an array\r\nvar starRating = document.querySelectorAll(\".fa-star\"),\r\nratingTotal = document.querySelectorAll(\".rating-total\");\r\n\r\n// convert ratingTotal HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\nvar reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n// display initial rating totals\r\n// displayTotals();\r\n\r\n// use event listener to record changes to user rating\r\nstarRating.forEach(function(star) {\r\nstar.addEventListener(\"change\", recordRating);\r\n})\r\n\r\nfunction recordRating(event) {\r\n// use indexOf to identify selected user rating\r\nvar userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n// define selected rating to adjust display totals\r\nvar selectedIndex;\r\n\r\nstarRating.forEach(function(item, index) {\r\n // add or remove .active class based upon selected user rating\r\n if (index < userRating + 1) {\r\n starRating[index].classList.add(\"active\");\r\n selectedIndex = index;\r\n } else {\r\n starRating[index].classList.remove(\"active\");\r\n }\r\n\r\n displayTotals(selectedIndex);\r\n});\r\n}\r\nvm.countForStatus = 50;\r\n// display star rating totals from html custom data-\r\nfunction displayTotals(selectedIndex) {\r\nvar barChart = document.querySelectorAll(\".bar\"),\r\n displaySummary = document.querySelectorAll(\".summary\"),\r\n numRatings = 0,\r\n numRatingsValue = 0;\r\n\r\n// convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\nvar reverseBarChart = Array.from(barChart).reverse();\r\n\r\nreverseRatingTotal.forEach(function(total, index) {\r\n if (index == selectedIndex) {\r\n // add selected rating to display total\r\n total.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n // adjust selected bar width\r\n reverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n } else {\r\n // display unselected totals\r\n total.innerHTML = total.getAttribute(\"data-rating-count\");\r\n // adjust unselected bar widths\r\n reverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n }\r\n // count total number and value of ratings\r\n numRatings += parseInt(total.innerHTML);\r\n numRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n});\r\n\r\n// display rating average and total\r\nratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n// displaySummary[0].innerHTML = ratingsAverage + \" average based on \" + numRatings + \" reviews.\";\r\n}\r\n\r\n\r\n \r\n\r\n vm.Get360VendorTeamData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedInUserId, teamid, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n vm.Get360WorkSummary = function () {\r\n // vm.userId = teamid;\r\n DashboardService.Get360WorkSummary(loggedInUserId, token,vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy,vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.UserByFiltersList = resp.data.workSummaryData;\r\n $scope.totalUsers = resp.data.WorkSummaryTotalCount;\r\n // preprocessData(vm.UserByFiltersList);\r\n if(vm.UserByFiltersList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = uPageIndex * vm.userPageListCount;\r\n if(uPageIndex==1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex-1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n \r\n })\r\n }\r\n\r\n vm.FinanceFiltersList=[];\r\nvm.GetFinancialSummary = function () { \r\n DashboardService.GetFinancialSummary(loggedInUserId, token,vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.paymentCount = resp.data.paymentsSummary;\r\n vm.FinanceFiltersList = resp.data.financialSummary360.financialLPSummaryList;\r\n $scope.totalFinList = resp.data.financialSummary360.count;\r\n if(vm.FinanceFiltersList.length < vm.financePageListCount)\r\n vm.financeListLength = $scope.totalFinList;\r\n else\r\n vm.financeListLength = fPageIndex * vm.financePageListCount;\r\n if(fPageIndex==1)\r\n vm.fpageindexCount = 1;\r\n else\r\n vm.fpageindexCount = (((fPageIndex-1) * vm.financePageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n vm.ResetUserFilter();\r\n}\r\n\r\nvm.getFileType = function(url){\r\n if(url==null || url==\"\")\r\n {\r\n return \"others\";\r\n }\r\n else{\r\n if(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0 ||url.indexOf(\".JPG\")>=0 || url.indexOf(\".JPEG\")>=0 || url.indexOf(\".PNG\")>=0 || url.indexOf(\".BMP\")>=0){\r\n return \"image\";\r\n } else if(url.indexOf(\".pdf\")>=0 || url.indexOf(\".PDF\")>=0){\r\n return \"pdf\";\r\n } else if(url.indexOf(\".xls\")>=0 || url.indexOf(\".xlsx\")>=0 ||url.indexOf(\".XLS\")>=0 || url.indexOf(\".XLSX\")>=0){\r\n return \"xls\"; \r\n } else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0 || url.indexOf(\".DOC\")>=0 || url.indexOf(\".DOCX\")>=0){\r\n return \"doc\";\r\n } \r\n else {\r\n return \"others\";\r\n }\r\n }\r\n}\r\n\r\nvm.Get360SkillSummary = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360SkillSummary(loggedInUserId, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for(var i=0;i 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n\r\n if (action == 'Accepted') {\r\n vm.editPermission = true;\r\n vm.confirmTagModal(\"Do you want to accept selected ticket's?\", function () {\r\n $log.log('Accept CallBack Call');\r\n JobTicketViewService.ActionByVendor(loggedInUserId, ticketId, action, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n\r\n $timeout(function () {\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }, 1000);\r\n vm.actionFlag = false;\r\n vm.showSuccess(\"Success\", \"Selected Jobs has been accepted successfully\");\r\n\r\n } else {\r\n vm.showFailure(\"Failed\", \"Server facing some technical issue, please try again later\");\r\n }\r\n })\r\n })\r\n } else {\r\n vm.editPermission = false;\r\n vm.confirmTagModal(\"Do you want to reject selected ticket's?\", function () {\r\n $log.log('Accept CallBack Call');\r\n JobTicketViewService.ActionByVendor(loggedInUserId, ticketId, action, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n\r\n $timeout(function () {\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n vm.actionFlag = false;\r\n }, 1000);\r\n vm.showSuccess(\"Success\", \"Selected Jobs has been rejected successfully\");\r\n\r\n } else {\r\n vm.showFailure(\"Failed\", \"Server facing some technical issue, please try again later\");\r\n }\r\n })\r\n })\r\n }\r\n }\r\n vm.enableFilters = true;\r\n\r\n vm.dtInstance = {};\r\n\r\n // vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues,templateItemNames,templateItemValues);\r\n\r\n vm.searchTable = function () {\r\n var s = \"\";\r\n s += vm.searchText.length > 0 ? \" \" + vm.searchText : \"\";\r\n s += (vm.searchStatusText.length > 0 && vm.searchStatusText!='All Job Status') ? \" \" + vm.searchStatusText : \"\";\r\n s += (vm.searchJobTypeText.length > 0 && vm.searchJobTypeText!='All Job Types') ? \" \" + vm.searchJobTypeText : \"\";\r\n vm.dtInstance.DataTable.search(s).draw();\r\n };\r\n\r\n\r\n vm.getFileNameExport = function () {\r\n return 'Report' + \" \" + vm.searchStatusText + \" \" + vm.searchJobTypeText + \" \" + startDate + \"To\" + endDate;\r\n }\r\n \r\n if (($localStorage.TList && vm.path == 'NewJobDetails')||($localStorage.TList && vm.path == 'NewJobDetailsCopy')) {\r\n // vm.ticketList =JSON.parse(localStorage.Ticket);\r\n vm.ticketList = $localStorage.TList;\r\n } else {\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n\r\n }\r\n\r\n vm.ViewJob = function (ticket) {\r\n $localStorage.backToOldJobList = 'go';\r\n $localStorage.SDate = startDate;\r\n $localStorage.EDate = endDate;\r\n $localStorage.previousPage = 'jobticket';\r\n $localStorage.AllJobType = vm.searchJobTypeText;\r\n $localStorage.AllJobStatus = vm.searchStatusText;\r\n // if(vm.VerticalName == 'Telecom' || vm.VerticalName == 'IMS')\r\n if(vm.VerticalName == 'IMS'){\r\n $state.go('index.JobView', {\r\n ticketId: ticket\r\n }, {\r\n reload: true\r\n });\r\n }else{\r\n $state.go('index.JobDetailView', {\r\n ticketId: ticket\r\n }, {\r\n reload: true\r\n }); \r\n }\r\n \r\n }\r\n var prev=0;\r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfrgitp')\r\n .withButtons([{ extend: 'colvis' }, { extend: 'csv', filename: function () { return vm.getFileNameExport() } }])\r\n // .withButtons([{extend:'csv'}])\r\n .withOption('stateSave', true)\r\n .withOption('deferRender', true)\r\n .withOption('stateSaveCallback', function (settings, data) {\r\n localStorage.setItem('JoblistTableProp', JSON.stringify(data));\r\n })\r\n .withOption('stateLoadCallback', function (settings) {\r\n\r\n if (vm.IsSearch == true) {\r\n var state = JSON.parse(localStorage.getItem('JoblistTableProp'));\r\n state.start = 0;\r\n } else {\r\n var state = JSON.parse(localStorage.getItem('JoblistTableProp'));\r\n }\r\n \r\n if (state && vm.VerticalName == 'Telecom') {\r\n state.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n if (state.columns && state.columns.length > 0) {\r\n if (state.columns[10])\r\n state.columns[10].visible = true;\r\n \r\n if (state.columns[9])\r\n state.columns[9].visible = true;\r\n if (state.columns[11])\r\n state.columns[11].visible = true;\r\n if (state.columns[12])\r\n state.columns[12].visible = true;\r\n if (state.columns[13])\r\n state.columns[13].visible = true;\r\n if (state.columns[14])\r\n state.columns[14].visible = true;\r\n if (state.columns[15])\r\n state.columns[15].visible = false;\r\n if (state.columns[16])\r\n state.columns[16].visible = false;\r\n if (state.columns[17])\r\n state.columns[17].visible = false;\r\n if (state.columns[18])\r\n state.columns[18].visible = false;\r\n if (state.columns[19])\r\n state.columns[19].visible = false;\r\n if (state.columns[20])\r\n state.columns[20].visible = true;\r\n if (state.columns[21])\r\n state.columns[21].visible = true;\r\n if (state.columns[22])\r\n state.columns[22].visible = true;\r\n if (state.columns[23])\r\n state.columns[23].visible = true;\r\n if (state.columns[24])\r\n state.columns[24].visible = true;\r\n if (state.columns[25])\r\n state.columns[25].visible = false;\r\n if (state.columns[26])\r\n state.columns[26].visible = true;\r\n if (state.columns[27])\r\n state.columns[27].visible = true;\r\n if (state.columns[28])\r\n state.columns[28].visible = true;\r\n if (state.columns[29])\r\n state.columns[29].visible = true;\r\n if (state.columns[30])\r\n state.columns[30].visible = true;\r\n if (state.columns[31])\r\n state.columns[31].visible = true;\r\n if (state.columns[32])\r\n state.columns[32].visible = true;\r\n if (state.columns[33])\r\n state.columns[33].visible = true;\r\n if (state.columns[34])\r\n state.columns[34].visible = true;\r\n if (state.columns[35])\r\n state.columns[35].visible = true;\r\n if (state.columns[36])\r\n state.columns[36].visible = true;\r\n if (state.columns[37])\r\n state.columns[37].visible = true;\r\n if (state.columns[38])\r\n state.columns[38].visible = true;\r\n }\r\n }\r\n else if(state)\r\n {\r\n state.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n if (state.columns && state.columns.length > 0) {\r\n // if (state.columns[8])\r\n // state.columns[8].visible = true;\r\n // if (state.columns[9])\r\n // state.columns[9].visible = true;\r\n // // if (state.columns[10])\r\n // // state.columns[10].visible = false;\r\n // if (state.columns[11])\r\n // state.columns[11].visible = true;\r\n // if (state.columns[12])\r\n // state.columns[12].visible = false;\r\n // if (state.columns[13])\r\n // state.columns[13].visible = false;\r\n // if (state.columns[14])\r\n // state.columns[14].visible = false;\r\n // if (state.columns[15])\r\n // state.columns[15].visible = false;\r\n // if (state.columns[16])\r\n // state.columns[16].visible = false;\r\n // if (state.columns[17])\r\n // state.columns[17].visible = false;\r\n // if (state.columns[18])\r\n // state.columns[18].visible = false;\r\n // if (state.columns[19])\r\n // state.columns[19].visible = true;\r\n // if (state.columns[20])\r\n // state.columns[20].visible = false;\r\n // if (state.columns[21])\r\n // state.columns[21].visible = false;\r\n // if (state.columns[22])\r\n // state.columns[22].visible = false;\r\n // if (state.columns[23])\r\n // state.columns[23].visible = false;\r\n // if (state.columns[24])\r\n // state.columns[24].visible = false;\r\n // if (state.columns.length > 24) {\r\n // state.columns[24].visible = false;\r\n // }\r\n\r\n if (state.columns[10])\r\n state.columns[10].visible = true;\r\n if (state.columns[9])\r\n state.columns[9].visible = true;\r\n if (state.columns[11])\r\n state.columns[11].visible = true;\r\n if (state.columns[12])\r\n state.columns[12].visible = true;\r\n if (state.columns[13])\r\n state.columns[13].visible = true;\r\n if (state.columns[14])\r\n state.columns[14].visible = true;\r\n if (state.columns[15])\r\n state.columns[15].visible = true;\r\n if (state.columns[16])\r\n state.columns[16].visible = true;\r\n if (state.columns[17])\r\n state.columns[17].visible = true;\r\n if (state.columns[18])\r\n state.columns[18].visible = true;\r\n if (state.columns[19])\r\n state.columns[19].visible = true;\r\n if (state.columns[20])\r\n state.columns[20].visible = true;\r\n if (state.columns[21])\r\n state.columns[21].visible = true;\r\n if (state.columns[22])\r\n state.columns[22].visible = true;\r\n if (state.columns[23])\r\n state.columns[23].visible = true;\r\n if (state.columns[24])\r\n state.columns[24].visible = true;\r\n if (state.columns[25])\r\n state.columns[25].visible = true;\r\n if (state.columns[26])\r\n state.columns[26].visible = true;\r\n if (state.columns[27])\r\n state.columns[27].visible = true;\r\n if (state.columns[28])\r\n state.columns[28].visible = true;\r\n if (state.columns[29])\r\n state.columns[29].visible = true;\r\n if (state.columns[30])\r\n state.columns[30].visible = true;\r\n if (state.columns[31])\r\n state.columns[31].visible = true;\r\n if (state.columns[32])\r\n state.columns[32].visible = true;\r\n if (state.columns[33])\r\n state.columns[33].visible = true;\r\n if (state.columns[34])\r\n state.columns[34].visible = true;\r\n if (state.columns[35])\r\n state.columns[35].visible = true;\r\n if (state.columns[36])\r\n state.columns[36].visible = true;\r\n if (state.columns[37])\r\n state.columns[37].visible = true;\r\n if (state.columns[38])\r\n state.columns[38].visible = true;\r\n if (state.columns[38])\r\n state.columns[38].visible = true;\r\n }\r\n\r\n }\r\n \r\n return state;\r\n })\r\n .withPaginationType('full_numbers').withOption('lengthChange', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1),\r\n DTColumnDefBuilder.newColumnDef(2),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(11).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(12).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(13).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(14).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(15).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(16).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(17).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(18).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(19).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(20).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(21).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(22).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(23).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(24).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(25).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(26).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(36).notSortable() \r\n ];\r\n\r\n // Copied from main controller\r\n vm.implementSelectItems = function (itemList, scope) {\r\n scope.selectAll = false;\r\n scope.showMinus = false;\r\n scope.showAutoSchduleBtn = false;\r\n scope.downloadFlag = false;\r\n scope.downloadReportBtn = false;\r\n scope.deleteFlag = false;\r\n scope.selectRow = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.showMinus = false;\r\n scope.selectAll = false;\r\n scope.showAutoSchduleBtn = false;\r\n scope.downloadFlag = false;\r\n scope.downloadReportBtn = false;\r\n scope.deleteFlag = false;\r\n for(var j=0;j

\" + vm.name + \"

\" + ' ' + vm.contactnumber);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n\r\n }\r\n vm.makeJobMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.customerJobCard.ConsumerName + \"

\" + ' ' + vm.customerJobCard.JobId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.customerJobCard.ConsumerContact);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n }\r\n //It is used for the distance also \r\n function initMap() {\r\n var pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n pointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n pointC = new google.maps.LatLng(vm.JobStartLatitude,vm.JobStartLongitude),\r\n // center = new google.maps.LatLng(51.3, 0.8),\r\n myOptions = {\r\n zoom: 8,\r\n zoomControl: false,\r\n scaleControl: true,\r\n mapTypeControl: false,\r\n streetViewControl: false,\r\n gestureHandling: 'greedy',\r\n // center: center,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n },\r\n\r\n map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n // Instantiate a directions service.\r\n directionsService = new google.maps.DirectionsService,\r\n directionsDisplay = new google.maps.DirectionsRenderer({\r\n map: map\r\n }),\r\n duration = document.getElementById('duration');\r\n distance = document.getElementById('distance');\r\n flightPath = new google.maps.Polyline({\r\n path: [pointA, pointB, pointC],\r\n // geodesic: true,\r\n strokeColor: 'red',\r\n });\r\n $scope.InfoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n // click on marker B to get route from A to B\r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, icons.start, icons.end, distance, duration, map);\r\n \r\n if(vm.JobStartLatitude !=\"0\" && vm.JobStartLongitude !=\"0\"){\r\n \r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointB, pointC, icons.end, icons.StartTravel, distance, duration, map);\r\n }\r\n \r\n var travelMode = \"DRIVING\";\r\n var icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n }\r\n function calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, iconsStartA, iconsStartB, distance, duration, map) {\r\n var selectedMode = \"DRIVING\";\r\n directionsService.route({\r\n origin: pointA,\r\n destination: pointB,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n travelMode: google.maps.TravelMode[selectedMode]\r\n }, function (response, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n new google.maps.DirectionsRenderer({\r\n map: map,\r\n directions: response,\r\n suppressMarkers: true,\r\n polylineOptions: {\r\n strokeColor: \"#000000\"\r\n }\r\n });\r\n var leg = response.routes[0].legs[0];\r\n //outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n distance.innerHTML = response.routes[0].legs[0].distance.text;\r\n duration.innerHTML = response.routes[0].legs[0].duration.text;\r\n vm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n vm.makeJobMarker(leg.start_location, iconsStartA, map);\r\n vm.makeUserMarker(leg.end_location, iconsStartB, map);\r\n // vm.StartJobMarker(leg.startjob_location, icons.start, map);\r\n } else {\r\n window.alert('Directions request failed due to ' + status);\r\n }\r\n });\r\n }\r\n\r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/JOb_icon.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/delivery-man1.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n StartTravel: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/Delivery_pre.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n /* vm.getReadableDate = function(){\r\n var time = new moment(vm.customerJobCard.JobDateTime, \"YYYY-MM-DDThh:mm:ss\");\r\n return time.format(\"DD MMM YYYY\")+\" at \"+time.format(\"LTS\"); \r\n } */\r\n vm.getCustomerJobCard = function () {\r\n JobTicketViewService.getCustomerJobCardbyJobId(loggedInUserId, vm.trackingTicketId, token, function (data) {\r\n vm.JobLatitude = data.JobLatitude;\r\n vm.JobLongitude = data.JobLongitude;\r\n vm.FELatitude = data.FELatitude;\r\n vm.FELongitude = data.FELongitude;\r\n vm.JobStartLatitude = data.JobStartLatitude;\r\n vm.JobStartLongitude = data.JobStartLongitude;\r\n vm.contactnumber = data.FEContactNumber;\r\n vm.jobtype = data.Description;\r\n vm.name = data.FEName;\r\n // vm.mapMarkers=[];\r\n initMap();\r\n $log.log(\"res of getCustomerJobCard=\" + data);\r\n vm.customerJobCard = data;\r\n if ($localStorage.rateJobParams) {\r\n vm.customerJobCard.userRole = $localStorage.Role;\r\n vm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n vm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n delete $localStorage.rateJobParams;\r\n }\r\n if (data && data.JobStatus == 'PaymentDone') {\r\n\r\n }\r\n }, function () {\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n //}\r\n vm.disableCreateButton = false;\r\n\r\n vm.DisableCreateButton = function (disable) {\r\n if (disable) {\r\n vm.disableCreateButton = true;\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n }\r\n }\r\n vm.OpenReplaceModel = function (replacedetails) {\r\n vm.replaceticketid = replacedetails\r\n\t\t\tReplaceModel = $uibModal.open({\r\n\t\t\t templateUrl: 'ReplacementStatus.html',\r\n\t\t\t backdrop: 'static',\r\n\t\t\t scope: $scope,\r\n\t\t\t});\r\n\t\t }\r\n\t \r\n\t\t vm.closeRequestUpdateModel = function () {\r\n vm.DisableCreateButton(false);\r\n ReplaceModel.close();\r\n vm.strReplacementComment = '';\r\n vm.relacementoption = '';\r\n\t\t }\r\n\r\n \r\n vm.CreateProductReplacementRequest = function () {\r\n vm.Replacereason_Form.submitted = true;\r\n if (vm.Replacereason_Form.$valid) {\r\n // $scope.uploadFiles();\r\n vm.DisableCreateButton(true);\r\n var replacementreasondata = {\r\n \"strTicketId\": vm.replaceticketid,\r\n \"strReplacementComment\": vm.strReplacementComment,\r\n \"strReplacementReason\": vm.relacementoption,\r\n }\r\n JobTicketViewService.CreateProductReplacementRequest(replacementreasondata, loggedInUserId, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Product replacement request raised.\");\r\n vm.closeRequestUpdateModel();\r\n $timeout(function () {\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }, 2000);\r\n }\r\n else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n \r\n }\r\n }\r\n\r\n vm.OpenResubmitReplaceModel = function (resubmitreplacedetails) {\r\n vm.resubmitReplacementId = resubmitreplacedetails;\r\n ResubmitReplaceModel = $uibModal.open({\r\n templateUrl: 'Resubmit.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n \r\n vm.closeResubmitRequestUpdateModel = function () {\r\n vm.DisableCreateButton(false);\r\n ResubmitReplaceModel.close();\r\n vm.resubmitstrReplacementComment = '';\r\n vm.resubmitReplacementId = '';\r\n }\r\n\r\n vm.ResubmitProductReplacementRequest = function () {\r\n vm.Resubmit_Form.submitted = true;\r\n if (vm.Resubmit_Form.$valid) {\r\n vm.DisableCreateButton(true);\r\n var resubmitreplacementreasondata = {\r\n \"strProductReplacementId\": vm.resubmitReplacementId,\r\n \"strReplacementComment\": vm.resubmitstrReplacementComment,\r\n \"strReplacementReason\": vm.resubmitrelacementoption,\r\n }\r\n JobTicketViewService.ResubmitProductReplacementRequest(resubmitreplacementreasondata, loggedInUserId, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Product replacement request raised.\");\r\n vm.closeResubmitRequestUpdateModel();\r\n $timeout(function () {\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }, 2000);\r\n }\r\n else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n \r\n }\r\n }\r\n \r\n\r\n vm.OpenTracking = function (ticket,tickets) {\r\n \r\n if(tickets && tickets.UserId){\r\n vm.mappermission =true;\r\n }\r\n else{\r\n vm.mappermission =false;\r\n\r\n }\r\n vm.trackingTicketId = ticket;\r\n Tracking = $uibModal.open({\r\n templateUrl: 'Tracking.html',\r\n size: 'lg',\r\n scope: $scope,\r\n controller: ModelInstanceOfMap\r\n })\r\n }\r\n vm.CloseTracking = function () {\r\n Tracking.close();\r\n }\r\n \r\n vm.OpenReOpenCallModel = function (ticketid) {\r\n vm.TicketId = ticketid\r\n\t\t\tReopencallopen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ReopenCancelCall.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeReOpenCallModel = function () {\r\n\t\t\tvm.disableCreateButton = false;\r\n\t\t\tReopencallopen.close();\r\n\t\t\t\r\n\t\t}\r\n\r\n vm.ReopenCancelCall = function () {\r\n vm.validationForm.submitted = true;\r\n vm.disableCreateButton = true;\r\n JobTicketViewService.ReopenCancelCall(vm.TicketId,loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call has Reopened Successfully\");\r\n vm.closeReOpenCallModel();\r\n $timeout(function () {\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }, 2000)\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n });\r\n \r\n }\r\n\r\n vm.getTemplateCallback = function (templates) {\r\n vm.templateListData = templates;\r\n vm.templateList = [];\r\n angular.forEach(vm.templateListData, function (d) {\r\n if (d.Skill != 'Water Sample Collection') {\r\n vm.templateList.push(d);\r\n }\r\n })\r\n }\r\n vm.TicketBreachValueconver = function(TicketBreachValue)\r\n {\r\n var TicketBreachValueInString=\"\"; \r\n if(TicketBreachValue==0)\r\n TicketBreachValueInString = \"Not Breached\";\r\n if(TicketBreachValue==1)\r\n TicketBreachValueInString = \"Breached\";\r\n \r\n return TicketBreachValueInString;\r\n }\r\n vm.CreateLabBooking = function () {\r\n vm.ticketData.Template = vm.selectedTemplates;\r\n console.log('vm.ticketData', vm.ticketData);\r\n }\r\n\r\n vm.OpenApproveModal = function (currentJOb) \r\n {\r\n \r\n vm.CurrentJob = currentJOb;\r\n vm.RatingOfTicket = ''; \r\n if(vm.CurrentJob.IsLineItemAvailable==true && vm.CurrentJob.IsDynamicPriceApproved==false){\r\n vm.aproveMessage = 'Please approve dynamic pricing line item under the ticket details section!';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'dynamic_price_approved_model.html',\r\n scope: $scope\r\n });\r\n }\r\n else{\r\n vm.aproveMessage = 'Please Rate !';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'approve_model.html',\r\n scope: $scope\r\n });\r\n }\r\n \r\n }\r\n\r\n vm.CloseModal = function () {\r\n approveModalInstance.close();\r\n }\r\n\r\n vm.TBCCancelationAudit = function()\r\n {\r\n approveModalInstance.close();\r\n JobTicketViewService.TBCCancelationAudit(vm.TBCCancelationModel,vm.AuditTicketId,loggedInUserId,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n }\r\n });\r\n }\r\n\r\n vm.OpenRescheduleAuditModal = function (currentAuditJOb) \r\n { \r\n vm.CurrentAuditJob = currentAuditJOb;\r\n vm.RatingOfTicket = '';\r\n vm.RescheduleAuditTicketId = vm.CurrentAuditJob.TicketId;\r\n vm.AuditPrimaryReason = vm.CurrentAuditJob.PrimaryReason;\r\n rescheduleAuditModalInstance = $uibModal.open({\r\n templateUrl: 'reschedule_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n\r\n vm.RescheduleAuditCloseModal = function () {\r\n rescheduleAuditModalInstance.close();\r\n }\r\n \r\n vm.JobRescheduleAudit = function()\r\n {\r\n rescheduleAuditModalInstance.close();\r\n JobTicketViewService.TBCCancelationAudit(vm.RescheduleAuditModel,vm.RescheduleAuditTicketId,loggedInUserId,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n }\r\n });\r\n }\r\n vm.OpenTicketRatingModal = function (currentTicketJob) \r\n { \r\n JobTicketViewService.GetCSATRatingByTicketID(loggedInUserId, currentTicketJob.TicketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TicketRatingList=resp.data;\r\n ticketRatingModalInstance = $uibModal.open({\r\n templateUrl: 'ticket_rating_model.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n }, function () {\r\n \r\n });\r\n } \r\n \r\n\r\n vm.TicketRatingCloseModal = function () {\r\n ticketRatingModalInstance.close();\r\n }\r\n\r\n \r\n\r\n vm.NoLatLongModal = function () {\r\n NoLatLongModalInstance = $uibModal.open({\r\n templateUrl: 'latLong.html',\r\n scope: $scope\r\n });\r\n\r\n }\r\n\r\n vm.NoLatLongModalModal = function () {\r\n NoLatLongModalInstance.close();\r\n }\r\n\r\n\r\n vm.OpenSettlementModal = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n vm.PaymentStatus = '';\r\n vm.Remarks = '';\r\n\r\n settlementModalInstance = $uibModal.open({\r\n templateUrl: 'settlement_model.html',\r\n scope: $scope\r\n });\r\n\r\n }\r\n\r\n vm.SettlementCloseModal = function () {\r\n settlementModalInstance.close();\r\n }\r\n\r\n vm.settlemenTicket = function (status, ticketId, remarks, userId) {\r\n settlementModalInstance.close();\r\n var settlementData = {};\r\n settlementData.PaymentStatus = status;\r\n settlementData.ReqUserId = loggedInUserId;\r\n settlementData.TicketId = ticketId;\r\n settlementData.Remarks = remarks;\r\n settlementData.FEId = userId;\r\n settlementData.Status = \"Done\";\r\n // $log.log('settlementData', settlementData);\r\n JobTicketViewService.updateTicketSettlement(settlementData, token, loggedInUserId, function (res) {\r\n var itemNames = '';\r\n var itemValues = '';\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job settlement successfully done.\")\r\n $timeout(function () {\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to settlement payment. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n\r\n }\r\n\r\n\r\n vm.DeleteTicket = function () {\r\n var ticketId = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId.push(t.TicketId);\r\n }\r\n })\r\n // ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n\r\n if (ticketId != null && ticketId.length == 1) {\r\n JobTicketViewService.DeleteTickets(loggedInUserId, ticketId, token).then(function (resp) {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n var itemNames = '';\r\n var itemValues = '';\r\n if (resp && resp.status == 202) {\r\n vm.showSuccess(\"Deleted\", resp.data);\r\n $timeout(function () {\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }, 1000);\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"You can delete only one ticket at a time.\");\r\n }\r\n }\r\n\r\nvm.NoLatLongTickits=\"\";\r\n vm.AutoSchedule = function () {\r\n var ticketId = [];\r\n var notlatlongticketId = \"\";\r\n angular.forEach(vm.ticketList, function (t) { \r\n if (t.checked) {\r\n if(t.Latitude==\"\" || t.Latitude==\"0.0\" || t.Latitude==\"0\" || t.Longitude==\"\" || t.Longitude==\"0.0\" || t.Longitude==\"0\")\r\n {\r\n notlatlongticketId = t.TicketId + \", \";\r\n }\r\n else\r\n { \r\n ticketId.push(t.TicketId); \r\n }\r\n \r\n }\r\n })\r\n\r\n if (ticketId != null) {\r\n JobTicketViewService.SetTicketExecutionMode(loggedInUserId, \"Auto\", ticketId, token).then(function (resp) {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n var itemNames = '';\r\n var itemValues = '';\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Scheduled Tickets\", resp.data.toString());\r\n $timeout(function () {\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }, 1000);\r\n } else {\r\n vm.showFailure(\"Failed to schedule tickets\", resp.data.toString());\r\n }\r\n })\r\n }\r\n if(notlatlongticketId !=\"\")\r\n {\r\n vm.NoLatLongTickits = notlatlongticketId;\r\n vm.NoLatLongModal();\r\n \r\n \r\n } \r\n }\r\n\r\n\r\n vm.OpenFollowUpModel = function (ticketId) {\r\n vm.followup = '';\r\n vm.tickId = ticketId;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n }\r\n\r\n vm.CloseFollowUpModel = function () {\r\n vm.primaryHoldReason='';\r\n vm.primaryHoldRemark='';\r\n vm.followFiles = null; \r\n FollowUpModel.close();\r\n }\r\n\r\n vm.RejectJobModel = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n RejectJobModel = $uibModal.open({\r\n templateUrl: 'Rejectjob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.ConvertToNewJob = function(currentJOb){\r\n\r\n vm.CurrentJob = currentJOb; \r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"New\" \r\n };\r\n JobTicketViewService.ConvertToNewJob(data, token, loggedInUserId, function (res) {\r\n var itemNames = '';\r\n var itemValues = '';\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job converted successfully.\")\r\n $timeout(function () {\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to convert job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.CloseRejectModel = function () {\r\n RejectJobModel.close();\r\n }\r\n\r\n var ModalInstanceCtrlFollowUp = function ($scope, $rootScope, $uibModalInstance) {\r\n vm.updateFollowUpStatus = function () {\r\n var data = {};\r\n data = {\r\n \"userId\": loggedInUserId,\r\n \"dateTime\": \"\",\r\n \"activity\": vm.followup,\r\n \"action\": \"FOLLOW_UP\",\r\n \"userName\": \"\",\r\n \"ticketId\": vm.tickId,\r\n \"primaryReason\": \"\",\r\n \"SecondryReason\": \"\",\r\n \"ReasonComment\": \"\"\r\n }\r\n vm.CloseFollowUpModel();\r\n JobTicketViewService.TicketFollowUp(data, token, loggedInUserId).then(function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n $state.go(\"index.JobTickets\", {\r\n reload: true\r\n })\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n }\r\n\r\n vm.ApproveJob = function () {\r\n \r\n if (vm.RatingOfTicket) {\r\n var jobwinrate = 0.0;\r\n if(vm.Winrate == null || vm.Winrate == 0 || vm.Winrate =='')\r\n jobwinrate = 0.0;\r\n else\r\n jobwinrate = vm.Winrate; \r\n\r\n \r\n\r\n approveModalInstance.close();\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Approved\",\r\n \"JobWinRate\" :parseFloat(jobwinrate.toFixed(2)),\r\n \"TechnicianRating\": vm.RatingOfTicket.toString(),\r\n \"ApprovalRemark\": vm.approvalRemark.toString(),\r\n \"IsSafetyAudit\":vm.IsSafetyAudit\r\n };\r\n JobTicketViewService.ApproveJob(data, token, loggedInUserId).then(function (res) {\r\n var itemNames = '';\r\n var itemValues = '';\r\n if(res && res.data==\"Please enter atleast one Line Item to Approve this job \")\r\n {\r\n vm.showFailure(\"Success\", \"Please enter atleast one Line Item to Approve this job.\")\r\n $timeout(function () {\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }, 1000);\r\n }\r\n else if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job approved successfully.\")\r\n $timeout(function () {\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n } else {\r\n vm.ratingwarning=\"Please rate the technician.\";\r\n //approveModalInstance.close();\r\n }\r\n }\r\n\r\n vm.AcceptJob = function (currentJOb) {\r\n \r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Accepted\" \r\n };\r\n JobTicketViewService.AcceptJob(data, token, loggedInUserId, function (res) {\r\n var itemNames = '';\r\n var itemValues = '';\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job accepted successfully.\")\r\n $timeout(function () {\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to accept job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n\r\n vm.reAssignJob = function (currentJOb) {\r\n \r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Assigned\" \r\n };\r\n JobTicketViewService.AcceptJob(data, token, loggedInUserId, function (res) {\r\n var itemNames = '';\r\n var itemValues = '';\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job reassigned successfully.\")\r\n $timeout(function () {\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to reassign job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n\r\n vm.cloneTicket = function (currentJOb) {\r\n \r\n vm.CurrentJob = currentJOb;\r\n $state.go('index.JobBidCreation', { \r\n cloneticketid:vm.CurrentJob.TicketId \r\n },\r\n {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n }); \r\n\r\n // if(vm.VerticalName == 'Telecom')\r\n // {\r\n // $state.go('index.JobBidCreation', { \r\n // cloneticketid:vm.CurrentJob.TicketId \r\n // },\r\n // {\r\n // reload: true,\r\n // inherit: false,\r\n // notify: true\r\n // }); \r\n // }\r\n // else\r\n // {\r\n // $state.go('index.NewJobCreation', { \r\n // },\r\n // {\r\n // reload: true,\r\n // inherit: false,\r\n // notify: true\r\n // });\r\n\r\n // }\r\n \r\n \r\n }\r\n\r\n vm.RejectJob = function () {\r\n if(!vm.RejectionRemark)\r\n {\r\n vm.showFailure(\"Failed\", \"Please comment on rejection.\");\r\n return;\r\n }\r\n RejectJobModel.close(); \r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Rejected\", \r\n \"RejectionRemark\": vm.RejectionRemark.toString()\r\n };\r\n JobTicketViewService.RejectJob(data, token, loggedInUserId, function (res) {\r\n var itemNames = '';\r\n var itemValues = '';\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job rejected successfully.\")\r\n $timeout(function () {\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n\r\n vm.PullBackTicket = function (ticketId) {\r\n JobTicketViewService.PullBackTicket(loggedInUserId, ticketId, token).then(function (resp) {\r\n //$log.log(\"result: \", resp.data);\r\n var itemNames = '';\r\n var itemValues = '';\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n })\r\n }\r\n\r\n\r\n vm.GetHoldReasons = function(){\r\n JobTicketViewService.GetReasonsByStatus(supervisorId, token, 'Hold').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForHold = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetHoldReasons();\r\n\r\n vm.OpenHoldUpModel = function (ticketId, holdstatus) {\r\n if(holdstatus == 'Unhold')\r\n {\r\n vm.UpdateHoldingStatus(ticketId, holdstatus);\r\n } \r\n else{\r\n vm.tickId = ticketId;\r\n $scope.holdstatus =holdstatus;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'HoldJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n } \r\n }\r\n vm.UpdateHoldReason=\"Update\";\r\n\r\n vm.UpdateHoldingStatus = function (ticketId, holdingStatus) {\r\n if(vm.primaryHoldReason!= null)\r\n {\t\r\n vm.enable1 = \"false\";\r\n vm.UpdateHoldReason=\"Updating...\";\r\n };\r\n var itemNames = '';\r\n var itemValues = '';\r\n JobTicketViewService.UpdateHoldingStatus(loggedInUserId, ticketId, holdingStatus,vm.primaryHoldReason,vm.primaryHoldRemark, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n vm.showSuccess('Job Hold/Unhold Status', 'Job has been updated successfully');\r\n $timeout(function () {\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n vm.enable1 = \"true\";\t\r\n vm.UpdateHoldReason=\"Update\";\t\r\n }, 2000);\r\n vm.CloseFollowUpModel();\r\n } else {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n }\r\n }, function (err) {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n })\r\n }\r\n\r\n vm.downloadReport = function (ticketId, templateName) {\r\n if (templateName == 'Water Testing') {\r\n var urlWithFeasible = PublicApiURL + '/api/Report/' + ticketId + '/DownloadReportByTemplateName?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlWithFeasible, '_blank')\r\n } else {\r\n var urlForNonFeasible = PublicApiURL + '/api/Report/' + ticketId + '/Report?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlForNonFeasible, '_blank')\r\n }\r\n }\r\n\r\n vm.starChanged = function () {\r\n switch (vm.RatingOfTicket) {\r\n case '5':\r\n vm.aproveMessage = 'Excellent';\r\n break;\r\n\r\n case '4':\r\n vm.aproveMessage = 'Very Good';\r\n break;\r\n\r\n case '3':\r\n vm.aproveMessage = 'Good';\r\n break;\r\n\r\n case '2':\r\n vm.aproveMessage = 'Bad';\r\n break;\r\n\r\n case '1':\r\n vm.aproveMessage = 'Very Bad';\r\n break;\r\n }\r\n vm.ratingwarning=\"\";\r\n }\r\n vm.updateStartTime = function (ticket) {\r\n if (moment(ticket.StartTimeD, \"DD/MM/YYYY LTS\").format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\") != ticket.StartTime.format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\")) {\r\n JobTicketViewService.updateStartTime(ticket.TicketId, loggedInUserId, ticket.StartTime, token, function () {\r\n vm.showSuccess(\"Success\", \"Start time updated successfully.\");\r\n }, vm.showFailure);\r\n ticket.StartTimeD = ticket.StartTime.format(\"DD/MM/YYYY LTS\");\r\n }\r\n\r\n }\r\n\r\n vm.setDefaultValTocal = function (ticket) {\r\n if (ticket.StartTime) {\r\n ticket.StartTimeObj = moment(ticket.StartTime, \"YYYY-MM-DDThh:mm:ss.SSSZ\");\r\n }\r\n }\r\n\r\n vm.showStartTimeCal = function (ticket) {\r\n if (ticket) {\r\n angular.forEach(vm.ticketList, function (d) {\r\n d.calStartTime = false;\r\n });\r\n ticket.calStartTime = true;\r\n }\r\n }\r\n\r\n vm.getJobAllStatus = function () {\r\n JobTicketViewService.getJobAllStatus(loggedInUserId, token, function (data) {\r\n //vm.statusList = data;\r\n angular.forEach(data, function (status) {\r\n if (status.StatusName == 'On Hold') {\r\n status.StatusName = 'Hold'; \r\n }\r\n vm.statusList.push(status);\r\n \r\n })\r\n\r\n //vm.statusList.push(\"All Job Status\");\r\n vm.statusList.unshift({ \"StatusName\": \"All Job Status\" });\r\n if (vm.path == 'isTicketView') {\r\n // vm.searchJobTypeText = $localStorage.AllJobType;\r\n vm.searchStatusText = $localStorage.AllJobStatus;\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.getJobAllStatus();\r\n\r\n vm.downloadMultipleReports = function () {\r\n var ticketId = \"\";\r\n var correlated = $localStorage.accountConfig.CorrelatedReports;\r\n var reportMapperId = $localStorage.accountConfig.ReportMapperId;\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId += t.TicketId + \",\";\r\n }\r\n })\r\n ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n JobTicketViewService.downloadMultipleReports(loggedInUserId, ticketId, reportMapperId, correlated);\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n }\r\n\r\n vm.downloadInvoiceReport = function () {\r\n var ticketId = \"\";\r\n var correlated = $localStorage.accountConfig.CorrelatedReports;\r\n // var reportMapperId = $localStorage.accountConfig.ReportMapperId;\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId += t.TicketId + \",\";\r\n }\r\n })\r\n ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n JobTicketViewService.downloadInvoice(loggedInUserId, ticketId, correlated);\r\n }\r\n\r\n vm.showMultipleDownloadButton = function () {\r\n var ticketSelected = false;\r\n var IsReportMapper = false; \r\n vm.invoiceFlag = false;\r\n vm.deleteFlag = false;\r\n vm.actionFlag = false;\r\n var actionFlagList = [];\r\n var deleteFlagList = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n ticketSelected = ticketSelected || t.checked;\r\n if(t.checked){\r\n if(t.reportMapperId)\r\n {\r\n IsReportMapper = true;\r\n }\r\n else\r\n {\r\n IsReportMapper = false; \r\n }\r\n }\r\n if (vm.Role == 'Vendor Manager') {\r\n if (t.checked && t.Skill == 'Water Lab Test' && t.Status == 'Completed') {\r\n vm.invoiceFlag = true;\r\n } else if (t.checked && t.AcceptDate != null) {\r\n actionFlagList.push(false);\r\n } else if (t.checked && t.AcceptDate == null && t.Status == 'Rejected') {\r\n actionFlagList.push(false);\r\n } else if (t.checked && t.AcceptDate == null && t.Status == 'Assigned') {\r\n actionFlagList.push(true);\r\n }\r\n } else {\r\n if (t.checked && t.Skill == 'Water Lab Test' && t.Status == 'Completed') {\r\n vm.invoiceFlag = true;\r\n } else if (t.checked && t.Status == 'New') {\r\n deleteFlagList.push(true);\r\n // vm.deleteFlag = true;\r\n } else if (t.checked && t.Status != 'New') {\r\n // vm.deleteFlag = false;\r\n deleteFlagList.push(false);\r\n }\r\n }\r\n\r\n\r\n })\r\n if (deleteFlagList.includes(false)) {\r\n vm.deleteFlag = false;\r\n } else if (deleteFlagList.includes(true)) {\r\n vm.deleteFlag = true;\r\n } if (actionFlagList.includes(false)) {\r\n vm.actionFlag = false\r\n } else {\r\n vm.actionFlag = true;\r\n }\r\n return IsReportMapper && ticketSelected && $localStorage.accountConfig != null && $localStorage.accountConfig.CorrelatedReports != null && $localStorage.accountConfig.ReportMapperId != null;\r\n }\r\n // vm.showInvoiceButton = function () {\r\n // var invoiceFlag = false;\r\n // angular.forEach(vm.ticketList, function (t) {\r\n // if (t.checked && t.Skill == 'Water Lab Test' && t.Status == 'Completed') {\r\n // var invoiceFlag = true;\r\n // return invoiceFlag;\r\n // } \r\n // })\r\n // return invoiceFlag;\r\n // }\r\n\r\n vm.hideSingleDownloadButton = function () {\r\n return $localStorage.accountConfig != null && $localStorage.accountConfig.CorrelatedReports != null && $localStorage.accountConfig.ReportMapperId != null || $localStorage.loggedInUser_Role == 'Vendor Manager';\r\n }\r\n\r\n vm.getSkills = function () {\r\n JobTicketViewService.getSkills(loggedInUserId, token, function (skills) {\r\n vm.skills = skills;\r\n vm.skills.unshift({ \"SkillName\": \"All Job Types\" }); \r\n if (vm.path == 'isTicketView') {\r\n vm.searchJobTypeText = $localStorage.AllJobType;\r\n // vm.searchStatusText = $localStorage.AllJobStatus;\r\n } \r\n }, vm.showFailure);\r\n\r\n \r\n\r\n }\r\n vm.getSkills();\r\n\r\n vm.isApprovalPermission = function (defaultValue) {\r\n if (vm.accountConfig && vm.accountConfig['ApprovalPermission'] != null) {\r\n return vm.accountConfig['ApprovalPermission'].split(\",\").indexOf($localStorage.loggedInUser_Role) > -1;\r\n }\r\n return defaultValue;\r\n }\r\n\r\n vm.OpenBillModal = function (ticketId) {\r\n vm.BillDetails = [];\r\n vm.TotalExpense = '';\r\n JobTicketViewService.getBillExpenseByTicketID(loggedInUserId, ticketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n angular.forEach(resp.data, function (d) {\r\n vm.BillDetails = d.Bills;\r\n vm.TotalExpense = d.ExpenseAmount;\r\n })\r\n }\r\n if (vm.TotalExpense != 0) {\r\n BillModal = $uibModal.open({\r\n templateUrl: 'bill_model.html',\r\n scope: $scope\r\n })\r\n }\r\n })\r\n }\r\n\r\n vm.CloseBillModal = function () {\r\n BillModal.close();\r\n }\r\n\r\n vm.getPicUrl = function (pic) {\r\n return ImageUrl + '/' + pic;\r\n }\r\n vm.ReportpdfUrl = function (pic) {\r\n // alert('hello');\r\n return InvoiceUrl + '/' + pic;\r\n }\r\n\r\n vm.reloadData = function(){\r\n var resetPaging = true;\r\n vm.dtInstance.reloadData(resetPaging);\r\n }\r\n\r\n vm.downloadDataCaptureImage = function(){\r\n var ticket = '';\r\n for(var i=0;i 31 \r\n && (charCode < 48 || charCode > 57))\r\n return false;\r\n\r\n return true;\r\n }\r\n \r\n });\r\n\r\nangular.module('inspinia').filter('changeTime', function () {\r\n\r\n return function (s) {\r\n var ms = s % 1000;\r\n s = (s - ms) / 1000;\r\n var secs = s % 60;\r\n s = (s - secs) / 60;\r\n var mins = s % 60;\r\n var hrs = (s - mins) / 60;\r\n\r\n return hrs + ':' + mins + ' hr';\r\n }\r\n});\r\nfunction CheckRegExOnKeyPressDesc(e) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s.,/-]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\nangular.module('inspinia').service('JobDetailViewService', function (ApiURL, IntegrationHubTestURL,AckoURL, $http,MMFCRMURL, SchedulingAPI, FreelancerURL, $localStorage, ActivityURL, AcessoriesURL, PublicApiURL,$timeout){\r\n\r\n this.GetJobTicket = function (ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + $localStorage.loggedInUserId + '/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.UpdateDeviceRepairDone = function(TicketId, token){\r\n var url = ApiURL + '/api/Ticket/UpdateDeviceRepairDone?ticketId=' + TicketId;\r\n return $http.put(url,null,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, \r\n 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n \r\n this.GeneratePdfEstimateReport = function (loggedinUser, TicketId, token) {\r\n var url = ApiURL + '/api/Report/GeneratePdfEstimateReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n //https://product.mymobiforce.com/coreapi/api/Ticket/ApproveJobStart?TicketId= T560000012781\r\n\r\n this.GetJobApprove = function (ticketId, token) { \r\n var url = ApiURL + '/api/Ticket/ApproveJobStart?TicketId=' + ticketId;\r\n return $http.put(url,ticketId, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.reqVideoCall = function (ticketId, token) { \r\n var url = ApiURL + '/api/Ticket/SendVideoCallInvite?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.SendCommunicationInvite = function (ticketId,type, token) { \r\n var url = ApiURL + '/api/Ticket/SendCommunicationInvite?TicketId=' + ticketId +'&Type=' + type ;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.SendChatInviteForExternal = function (data, token) { \r\n var url = ApiURL + '/api/Ticket/SendCommunicationInviteIncludingOutsiders'\r\n return $http.post(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n \r\n\r\n this.GetLatestVideoSessionLocation = function (UserId,token) {\r\n var url = ActivityURL + '/api/Activity/GetLatestVideoSessionLocation?userId='+ UserId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Ticket/RejectJobStart?TicketId=T560000012784\r\n this.RejectJob = function (ticketId, token) { \r\n var url = ApiURL + '/api/Ticket/RejectJobStart?TicketId=' + ticketId;\r\n return $http.put(url,ticketId, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.initiateAdvancedPayment = function (advancedDetails, token) { \r\n var url = ApiURL + '/api/JobLineItem/UpdateAdvancePaymentLineItem';\r\n return $http.put(url,advancedDetails, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n \r\n this.downloadOnSiteReport = function ( loggedInUserId, token,TicketId) { \r\n var url = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n }\r\n \r\n });\r\n }\r\n\r\n \r\n\r\n this.getHistory = function (ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + $localStorage.loggedInUserId + '/TicketHistorybyTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.getAllActivitiesForJob = function (jobId, accountId, token, callback) {\r\n var url = ActivityURL + '/api/Activity/' + accountId + '/GetAllActivitiesForJob?jobId=' + jobId;\r\n $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token':token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n }).then(function (res) {\r\n if (res && res.data)\r\n callback(res.data);\r\n });\r\n }\r\n\r\n this.GetChatRecords = function (ReferenceDoc,loggedInUserId, token, callback) {\r\n var url = ApiURL + '/api/Ticket/GetChatRecords?docId=' + ReferenceDoc;\r\n $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedInUserId\r\n }\r\n }).then(function(res){\r\n callback(res.data)\r\n },function(){\r\n\r\n });\r\n }\r\n\r\n this.updateStartTime = function (ticketId, userId, startTime,appointmentotp, token) {\r\n var url = ApiURL + '/api/Ticket/updatestartdate';\r\n return $http.put(url,{\r\n \"requserid\": userId,\r\n \"ticketid\": ticketId,\r\n \"starttime\": startTime,\r\n \"AppointmentOTP\" : appointmentotp\r\n },{\r\n headers: { 'Token': token, 'UserId': $localStorage.loggedInUserId }\r\n });\r\n }\r\n \r\n //https://perf.mymobiforce.com/coreapi/api/Ticket/UpdateMetrialDeliverStatus?requserid=122&ticketid=2222&MetrialDeliverStatus=2xvfxcv\r\n this.UpdateMetrialDeliveredStatus = function(ticketId, userId, matrialStatus, token, success, failure){\r\n var url = ApiURL+\"/api/Ticket/UpdateMetrialDeliverStatus?requserid=\"+userId+'&ticketid='+ticketId+'&MetrialDeliverStatus='+matrialStatus; \r\n $http.put(url, null, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId } }).then(function(res){\r\n if(res){\r\n success(res);\r\n } else {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\") \r\n }\r\n }, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.updateJobTicketwithImage = function (ticketModel, token) {\r\n\r\n\r\n var request = {\r\n method: 'POST',\r\n url: ApiURL + '/api/Upload/PostMediaFileWithObject',\r\n data: ticketModel,\r\n headers: {\r\n 'Token': token,\r\n 'UserId':$localStorage.loggedInUserId,\r\n 'Content-Type': undefined\r\n \r\n }\r\n };\r\n \r\n // SEND THE FILES.\r\n return $http(request)\r\n .success(function (d) {\r\n // alert(d);\r\n })\r\n .error(function () {\r\n });\r\n \r\n // var url = ApiURL + '/api/Upload/PostMediaFileWithObject';\r\n // return $http.post(url, ticketModel, {\r\n // headers: {\r\n // 'Content-Type': 'undefined', 'Token': token\r\n // }\r\n // });\r\n }\r\n \r\n this.getTemplateByName = function(name, token, userId,ticketId, success, failure){\r\n var url = ApiURL + '/api/Template/'+name+'/'+userId+'/'+ticketId+'/byNameNew';\r\n $http.get(url, {\r\n headers:{'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId}\r\n }).then(function(res){\r\n if(res && res.data){\r\n success(res.data);\r\n }\r\n }, function(error){\r\n failure(\"Failed\", \"Failed to get template \"+name+\", server is not responding correctly.\");\r\n });\r\n }\r\n \r\n this.getAllState = function (userId,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':userId }\r\n });\r\n }\r\n \r\n this.getAllCity = function (userId, state, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':userId }\r\n });\r\n }\r\n\r\n //call to customer https://product.mymobiforce.com/coreapi/api/CallPatching/ClickToCall\r\n this.callToCustomer = function (loggedinUser,data, token) {\r\n $http.post(ApiURL + '/api/CallPatching/ClickToCall',data,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser } }).then(function (resp) {\r\n if (resp && resp.data) {\t \r\n if(resp.status==200)\r\n {\r\n vm.showSuccess(resp.data.Message); \r\n }\r\n else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.UpdateSDRForTicket = function (SDRData, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateSDRForTicket';\r\n return $http.put(url,SDRData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId }\r\n });\r\n }\r\n\r\n this.ClickToCallAlternate = function (loggedinUser,data, token) {\r\n $http.post(ApiURL + '/api/CallPatching/ClickToCallAlternate',data,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser } }).then(function (resp) {\r\n if (resp && resp.data) {\t \r\n if(resp.status==200)\r\n {\r\n vm.showSuccess(resp.data.Message); \r\n }\r\n else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n this.UpdateContactInTicket = function (loggedinUser,data, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/UpdateContactInTicket';\r\n return $http.put(url,data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.saveTicket = function (loggedinUser, ticketId, data, token, success, failure) {\r\n $http.put(ApiURL + '/api/Ticket/' + loggedinUser + '/' + ticketId + '/byTicketId', data, \r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser } }).then(function (res) {\r\n if (res && res.status == 200 && res) {\r\n success(res.data);\r\n } else{\r\n failure(\"Failed\", res.data.Message);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job, server is not responding correctly.\");\r\n });\r\n }\r\n this.updateJobDescription = function (loggedinUser, data, token, success, failure) {\r\n $http.put(ApiURL + '/api/Ticket/updateJobDescription', data, \r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser } }).then(function (res) {\r\n if (res && res.status == 200 && res) {\r\n success(res.data);\r\n } else{\r\n failure(\"Failed\", res.data.Message);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job, server is not responding correctly.\");\r\n });\r\n }\r\n //https://product.mymobiforce.com/coreapi/api/Ticket/UpdatePlannedClosureDate\r\n this.updatePlannedClosure = function (loggedinUser, data, token, success, failure) {\r\n $http.put(ApiURL + '/api/Ticket/UpdatePlannedClosureDate', data, \r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser } }).then(function (res) {\r\n if (res && res.status == 200 && res) {\r\n success(res.data);\r\n } else{\r\n failure(\"Failed\", res.data.Message);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job, server is not responding correctly.\");\r\n });\r\n }\r\n this.UpdateJobPayment = function (loggedinUser, ticketId, BroadcastRate, token, success, failure) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobPayment?reqUserId=' + loggedinUser + '&TicketId=' + ticketId + '&BroadcastRate='+BroadcastRate;\r\n $http.put(url,null, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId':loggedinUser } }).then(function (res) {\r\n if (res && res.status == 200 && res) {\r\n success(res.data);\r\n } else{\r\n failure(\"Failed\", \"Unable to update job payment, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job payment, server is not responding correctly.\");\r\n });\r\n }\r\n // https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/GetFavoriteFreelancersByAccount/U400000000001\r\n // this.GetAllPrefereTalentPool = function(loggedinUser,token){\r\n // var url = FreelancerURL + '/api/FreeLancerUser/GetFavoriteFreelancersByAccount/'+loggedinUser;\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json', 'Token': token\r\n // }\r\n // });\r\n // }\r\n\r\n this.GetSchedulingEvaluationResult = function(data,reqUserId,token){\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetSchedulingEvaluationResult?reqUserId='+reqUserId;\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':reqUserId}\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetFavoriteFR?reqUserId=U400000000001\r\n this.GetAllPrefereTalentPool = function(data,reqUserId,token){\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetFavoriteFR?reqUserId='+reqUserId;\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':reqUserId}\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetPreWorkedWith?reqUserId=U400000000001\r\n this.GetAllPreviousUser = function(data,reqUserId,token){\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetPreWorkedWith?reqUserId='+reqUserId;\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':reqUserId}\r\n });\r\n }\r\n\r\n\r\n this.BroadCastJobsforUser = function(loggedinUser,data, token){\r\n var url = FreelancerURL + '/api/BID/createBidFromAssistedScheduling?reqUserId=' + loggedinUser;\r\n return $http.post(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getCustomerJobCardbyJobId = function(accountId, jobId, token ,success, failure){\r\n $http.get(ApiURL+\"/api/GetCustomerJobCardbyJobId/\"+jobId+\"/\"+accountId+\"/GetCustomerJobCardbyJobId\", {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n }).then(function(res){\r\n if(res && res.data && success){\r\n success(res.data);\r\n } else if(failure){\r\n failure();\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetTicketsByStatus = function (loggedinUser, itemNames,itemValues, token) {\r\n var url = FreelancerURL + '/api/BID/'+loggedinUser+'/' + itemNames + '/'+ itemValues + '/getjobsbyfilter';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //https://test.mymobiforce.com/coreapi/api/Ticket/test/AssignTicketForAssistedScheduling\r\n this.AssignTicketsTimeline = function(reqUserId,list, token){\r\n var url = ApiURL + '/api/Ticket/' + reqUserId + '/AssignTicketForAssistedScheduling'\r\n return $http.put(url,list,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':reqUserId}\r\n })\r\n }\r\n\r\n //https://perf.mymobiforce.com/coreapi/api/User/GetUsersByTicketId/U400000000001/T0000000605\r\n // var ApiURL='https://perf.mymobiforce.com/coreapi';\r\n this.GetUsersByTicketId = function(loggedinUser,ticketId,token){\r\n var url = ApiURL + '/api/User/GetUsersByTicketId/'+loggedinUser+'/'+ticketId;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','token':token, 'UserId':loggedinUser}\r\n })\r\n }\r\n//https://test.mymobiforce.com/coreapi/api/ServiceGST/GetGST?reqUserId=U3600000000001&skill=AC%20Installation\r\nthis.GetServiceTax = function(loggedInUserId,token, callback){\r\n var url = ApiURL + '/api/ServiceGST?reqUserId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token,'UserId':loggedInUserId}\r\n }).then(function(res){\r\n callback(res.data)\r\n },function(){\r\n\r\n });\r\n}\r\nthis.GetMobCommission = function(loggedInUserId,token, callback){\r\n var url = ApiURL + '/api/ServiceGST/GetMobiforceCommission?reqUserId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n }).then(function(res){\r\n callback(res.data)\r\n },function(){\r\n\r\n });\r\n}\r\n\r\nthis.OnLoadLineItemDetails = function(loggedinUser,LineItemTicketId,token){\r\n var url = ApiURL + '/api/JobLineItem/GetJobLineItemByTicketId?reqUserId='+loggedinUser+'&ticketId='+LineItemTicketId;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','token':token, 'UserId':loggedinUser}\r\n })\r\n}\r\nthis.CreateUpdateRemoveLineItem = function (userFormData, loggedInUserId,token) {\r\n var url = ApiURL + '/api/JobLineItem/UpdateJobLineItemForNewPricing?reqUserId='+ loggedInUserId;\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedInUserId\r\n }\r\n });\r\n}\r\nthis.completeJob = function (data, loggedinUser, token, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n}\r\n//https://product.mymobiforce.com/coreapi/api/Ticket/FVT0000000000066/FV0000000000103/T350000012267/35/AssignTicketByVendorFromMobile\r\n\r\nthis.VendorManagerAssignJobTeam = function (UserID, loggedInUserId,TicketId,jobAccountId,token) {\r\n var url = ApiURL + '/api/Ticket/'+ UserID +'/'+ loggedInUserId +'/'+ TicketId +'/'+ jobAccountId +'/AssignTicketByVendorFromMobile';\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.uploadLineItemPic = function (loggedInUserId, data, token, success, failure) {\r\n $http.post(ApiURL + '/api/User/PostUserPic?reqUserId=' + loggedInUserId, data, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedInUserId\r\n }\r\n }).then(success, failure);\r\n}\r\n\r\n\r\nthis.UpdateStatusJobLineItem = function (ticketId,status,lineitemId,updateStatusRemark,token) {\r\n var url = ApiURL + '/api/JobLineItem/UpdateStatusJobLineItem?TicketId=' + ticketId + '&Status=' + status + '&LineItemId=' + lineitemId + '&Remark=' + updateStatusRemark;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.UpdateRequestInventoryJobLineItemStatus = function (ticketId,status,lineitemId,updateStatusRemark,token) {\r\n var url = ApiURL + '/api/JobLineItem/UpdateRequestInventoryJobLineItemStatus?TicketId=' + ticketId + '&Status=' + status + '&LineItemId=' + lineitemId + '&Remark=' + updateStatusRemark;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.GetCancellationReasons = function (AuditTicketId, status, loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketCancelationReasonController/' + loggedInUserId + '/getCancellationReasons?AtStatus=' + status + '&TicketId=' + AuditTicketId;;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.UpdateJobPaymentDynamicPrice = function (loggedinUser, ticketId, BroadcastRate,MobiforceCommission,FreelancerRate, IsFinalApproval,data,token, success, failure) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobPaymentDynamicPrice?reqUserId=' + loggedinUser + '&TicketId=' + ticketId + '&BroadcastRate='+BroadcastRate + '&MobiforceCommission='+MobiforceCommission + '&FreelancerRate='+FreelancerRate + '&IsFinalApproval='+IsFinalApproval;\r\n $http.put(url,data,{ headers: { 'Content-Type': 'application/json', 'Token': token , 'UserId':loggedinUser} }).then(function (res) {\r\n if (res.status == 201) {\r\n success(res.data);\r\n } else{\r\n\r\n $timeout(function(){\t\r\n failure(\"Failed\", res.data.Message);\r\n vm.enable1 = \"true\";\r\n vm.ApprovePricingButtonText = \"Approve Pricing\";\t\t\t\t\r\n }, 1000);\r\n\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job payment, server is not responding correctly.\");\r\n });\r\n}\r\n\r\nthis.UpdateJobPaymentDynamicPriceAndApprove = function (loggedInUserId, data,token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobPaymentDynamicPriceAndApprove';\r\n return $http.put(url, data, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n//https://product.mymobiforce.com/coreapi/api/JobLineItem/GetAllJobLineItemMasterByTicketId?ticketId=T1140000016805_1\r\nthis.GetJobLineItem = function(loggedInUserId,ticketId,token){\r\n var url = ApiURL + '/api/JobLineItem/GetAllJobLineItemMasterByTicketId?ticketId='+ticketId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n}\r\n\r\n\r\nthis.ResolveException = function (loggedinUser,ticketIdList, token) {\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/MarkResolveSchedulerExceptionForTicket?reqUserId=' + loggedinUser; \r\n return $http.put(url, {'exceptionIdList':ticketIdList}, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.GetCallDetails = function (ticketId, token) { \r\n var url = ApiURL + '/api/CallPatching/GetCallDetailsforTicket?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n// Actvity Timeline\r\nthis.GetAllActivityTimeline = function (ticketId,filter, token) { \r\n var url = ApiURL + '/api/Timeline/GetAllActivityTimelineForJob?ticketId=' + ticketId+ '&filter='+ filter\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n\r\n//https://login.mymobiforce.com/coreapi/api/VoltasMaster/GetMasterDataLiteByTicketId?TicketId=T2670000009096&PurchaseType=Online\r\nthis.purchaseFromList = function (ticketId, token) { \r\n var url = ApiURL + '/api/VoltasMaster/GetMasterDataLiteByTicketIdForPortal?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n//https://login.mymobiforce.com/coreapi/api/VoltasMaster/GetMasterDataLiteByTicketId?TicketId=T2670000009096&PurchaseType=Online\r\nthis.purchaseFromList = function (ticketId, purchaseType, token) { \r\n var url = ApiURL + '/api/VoltasMaster/GetMasterDataLiteByTicketIdForPortal?TicketId=' + ticketId +'&PurchaseType=' + purchaseType;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n\r\n// https://product.mymobiforce.com/coreapi/api/ItemsInventory/GetTrackingDtailsOfItems\r\n\r\n// this.GetTrackingDetails = function (data, token) { \r\n// var url = ApiURL + '/api/ItemsInventory/GetTrackingDtailsOfItems';\r\n// return $http.put(url, data,{\r\n// headers: {\r\n// 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n// }\r\n// });\r\n// }\r\n\r\n// https://product.mymobiforce.com/coreapi/api/ItemsInventory/ShowAllStateTrackingDtailsOfItems\r\n\r\nthis.GetAllTrackingDetails = function (data, token) { \r\n var url = ApiURL + '/api/ItemsInventory/ShowAllStateTrackingDtailsOfItems';\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n// https://product.mymobiforce.com/coreapi/api/ItemsInventory/GetTrackingDetailsByTrackinNumber\r\n\r\nthis.GetTrackingDetailsByTrackinNumber = function (data, token) { \r\n var url = ApiURL + '/api/ItemsInventory/GetTrackingDetailsByTrackinNumber';\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\nthis.byPassSerialNumber = function (TicketId,bypassvalidation,token) { \r\n var url = ApiURL + '/api/VoltasMaster/ByPassValidation?TicketId='+TicketId+'&bypassvalidation='+bypassvalidation;\r\n return $http.put(url,null,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n// https://product.mymobiforce.com/coreapi/api/ItemsInventory/GetShipmentDetails\r\nthis.GetShipmentDetails = function (data, token) { \r\n var url = ApiURL + '/api/ItemsInventory/GetShipmentDetails';\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n// https://product.mymobiforce.com/coreapi/api/ItemsInventory/GetNearbyWarehouseList\r\nthis.GetWarehouse = function (token,data) {\r\n var url = ApiURL + '/api/ItemsInventory/GetNearbyWarehouseList';\r\n return $http.put(url,data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n// https://product.mymobiforce.com/coreapi/api/ItemsInventory/CreateSalesOrderForLineitem\r\nthis.createSalesOrder = function (token,data) {\r\n var url = ApiURL + '/api/ItemsInventory/CreateSalesOrderForLineitem';\r\n return $http.post(url,data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.GetPreApprovalDocList = function (ticketId, token) { \r\n var url = ApiURL + '/api/Ticket/GetPreApprovalStep?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n// https://test.mymobiforce.com/coreapi/api/Ticket/GetPreApprovalStepByMMF?TicketId=T1140000069037\r\n\r\nthis.GetPreApprovalStepEric = function (ticketId, token) { \r\n var url = ApiURL + '/api/Ticket/GetPreApprovalStepByMMF?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.ResendFeedbackforCustomerRating = function(ticketId,token){\r\n var url = ApiURL + '/api/Ticket/ResendFeedbackforCustomerRating?TicketId=' + ticketId;\r\n return $http.get(url,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, \r\n 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.MarkInspectionPassed = function(ticketId,token){\r\n var Ackourl = 'https://voltasqa.mymobiforce.com/acko/'\r\n var url = Ackourl + '/api/ACKOServiceIntegration/InspectionPassed?MMFTicketId=' + ticketId;\r\n return $http.post(url,null,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, \r\n 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.ClaimEstimationGenerated = function(ticketId,token){\r\n var Ackourl = 'https://voltasqa.mymobiforce.com/acko/'\r\n var url = Ackourl + '/api/ACKOServiceIntegration/ClaimEstimationGenerated?MMFTicketId=' + ticketId;\r\n return $http.post(url,null,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, \r\n 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n\r\nthis.GetModelNumberByTicketId = function (ticketId,loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMBrandProductMaster/GetModelNumberByTicketId?TicketId=' + ticketId;\r\n return $http.get(url,{\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n}\r\n\r\nthis.GetCRMCallTypeList = function (data,loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMBrandProductMaster/GetCallTypeList';\r\n return $http.put(url, data,{\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n}\r\n\r\nthis.completeTkt = function(data,token){\r\n var url = ApiURL + '/api/Ticket/MarkTicketInCompleteStatus';\r\n return $http.put(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, \r\n 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.ValidateTicketCanMarkComplete = function(data,token){\r\n var url = ApiURL + '/api/Ticket/ValidateTicketCanMarkComplete';\r\n return $http.put(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, \r\n 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.UpDateEstimateStatus = function(ticketId,status,token){\r\n var url = ApiURL + '/api/Ticket/UpDateEstimateStatus?TicketId=' + ticketId +'&Status=' + status;\r\n return $http.put(url,null,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, \r\n 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.SendHappyCodeSMS = function (TicketId,accountId,loggedinUser, token) { \r\n var url = ApiURL + '/api/Ticket/SendHappyCodeSMS?TicketId=' + TicketId + '&accountId=' + accountId + '&CodeType=AppointmentCode';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\n\r\nthis.SendHappyCodeSMSNew = function (TicketId,accountId,appointmentTime,loggedinUser, token) { \r\n var url = ApiURL + '/api/Ticket/SendHappyCodeSMSNew?ticketId=' + TicketId + '&accountId=' + accountId + '&AppointmentTime=' + appointmentTime + '&CodeType=AppointmentCode';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\nthis.GetProductInfobySerialNumber = function (serialNumber,accountId,loggedinUser, token) { \r\n var url = MMFCRMURL + '/api/CRMConsumer/GetProductInfobySerialNumber?serialNumber=' + serialNumber + '&AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\nthis.GetAllSymptomDocByProductGroup = function (ProductGroup,loggedinUser, token) { \r\n var url = MMFCRMURL + '/api/SDRReport/GetAllSymptomDocByProductGroup?ProductGroup=' + ProductGroup;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\n\r\nthis.GetDefectsValuesBySymptomValue = function (SymptomValue,loggedinUser, token) { \r\n var url = MMFCRMURL + '/api/SDRReport/GetAllDefectsDocBySymptomValue?SymptomValue=' + SymptomValue;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\n\r\nthis.GetAllRepairDocsByDefectValue = function (DefectValue,loggedinUser, token) { \r\n var url = MMFCRMURL + '/api/SDRReport/GetAllRepairDocsByDefectValue?DefectValue=' + DefectValue;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\nthis.EnableOrDisableFaceRecognation = function(data,token){\r\n var url = ApiURL + '/api/Ticket/EnableOrDisableFaceRecognation';\r\n return $http.put(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, \r\n 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n// https://test.mymobiforce.com/coreapi/api/Ticket/UpdateMMFFromDataPreApprovalStepByPortal?TicketId=T2660000000899\r\n\r\nthis.updateapproval = function(data, token,ticketId){\r\n var url = ApiURL + '/api/Ticket/UpdateMMFFromDataPreApprovalStepByPortal?TicketId=' + ticketId;\r\n return $http.put(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, \r\n 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.approvePPw = function(data, token,ticketId){\r\n var url = ApiURL + '/api/Ticket/UpdatePreApprovalStep?TicketId=' + ticketId;\r\n return $http.put(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, \r\n 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\nthis.RejectJobPPw = function(data, token,ticketId){\r\n var url = ApiURL + '/api/Ticket/UpdatePreApprovalStep?TicketId=' + ticketId;\r\n return $http.put(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, \r\n 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\nthis.GenerateConsumerInvoice = function (ticketId, token) { \r\n var url = ApiURL + '/api/PDFReportMapper/GenerateConsumerInvoiceFromMobile?ticketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\nthis.GetTemplateData = function (ticketId, token) { \r\n var url = ApiURL + '/api/Ticket/GetTemplateData?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\nthis.GetInventoryPartsDetails = function (ticketId, token) { \r\n var url = ApiURL + '/api/ItemsInventory/GetInventoryPartsDetails?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.GetSectionDataByStepName = function (ticketId,sectioninfo,token) { \r\n var url = ApiURL + '/api/Ticket/GetSectionDataByStepName?TicketId=' + ticketId + '§ionInfo=' + sectioninfo;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\nthis.UpdateJobData = function(formdata, token, loggedinUser,TicketId){\r\n var url = ApiURL + '/api/Upload/UpdateJobFieldData?ticketId='+TicketId;\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n}\r\n\r\nthis.GetJobCompletionOption = function (loggedInUserId,token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + 'New';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.mailReport = function(token, toList, ccList, subject, content,listLineItemData, userID, callback){\r\n var data = {\r\n \"tolist\": toList,\r\n \"cclist\": ccList,\r\n \"BCCList\": [],\r\n \"Body\": content,\r\n \"Subject\": subject,\r\n \"LineItemList\": listLineItemData\r\n };\r\n $http.post(ApiURL + '/api/Mail', data, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': userID } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n}\r\n\r\nthis.GetAllOrderDetailTicketId = function (ticketId, loggedInUserId, token) {\r\n url = AcessoriesURL + '/api/MMFOrder/GetAllOrderDetailTicketId?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n this.UpdateEstimateShareByCust = function (data, files, token, loggedInUserId) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files);\r\n var estimatedata = JSON.stringify(data);\r\n formdata.append(\"EstimationModel\", estimatedata);\r\n var url = ApiURL + '/api/Upload/UploadEstimationWithFile';\r\n return $http.post(url, formdata, {\r\n headers: {\r\n 'Content-Type': undefined,\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.UploadInvoice = function (ticketId, attachedFiles, token, loggedInUserId) {\r\n var formData = new FormData();\r\n angular.forEach(attachedFiles, function (file) {\r\n formData.append(\"file\", file);\r\n });\r\n\r\n var url = IntegrationHubTestURL + '/api/ACKOServiceIntegration/UploadInvoice?MMFTicketId=' + ticketId;\r\n return $http.post(url, formData, {\r\n headers: {\r\n 'Content-Type': undefined,\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.RemoveInvoice = function (ticketId,fileName, loggedInUserId, token) {\r\n var url = IntegrationHubTestURL + '/api/ACKOServiceIntegration/RemoveInvoice?MMFTicketId=' + ticketId + '&fileName=' + fileName;\r\n return $http.put(url,null, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId }\r\n });\r\n }\r\n\r\n this.ReplyToQuery = function (queryModel, loggedInUserId, token) {\r\n var url = ApiURL + \"/api/Ticket/ReplyToQuery\";\r\n return $http.put(url, queryModel, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId }\r\n });\r\n }\r\n this.UpdateTicketForFieldData = function (data, loggedInUserId, token) {\r\n var url = MMFCRMURL + \"/api/CRMConsumer/UpdateTicketForFieldData\";\r\n return $http.put(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId }\r\n });\r\n }\r\n\r\n \r\n this.AddTicketDefectStockToServiceCenter = function (DeadStokReqModel, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFPart/AddTicketDefectStockToServiceCenter';\r\n return $http.post(url,DeadStokReqModel, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n}\r\n\r\n});\nangular.module('inspinia').controller('JobDetailViewController', function (MainService, ManualAssignationJobService, $window, PublicApiURL, ApiURL,\r\n\t$state, $localStorage, $scope, JobTicketViewService, DTOptionsBuilder, DTColumnBuilder,ConsumerQueryService,toaster,\r\n\t$uibModal, JobDetailViewService, jobCreationService,CustomerCRMListService,InventoryCartService,CentralHDTicketsViewService, ReportService, $filter, $q, $timeout, $sce, $rootScope, $stateParams, $compile, UIURL, ImageUrl) {\r\n\tvm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvm.NokiaTableHeaderChange = $localStorage.accountConfig.NokiaTableHeaderChange;\r\n\tvm.IsAppointmentOTPNeeded = $localStorage.accountConfig.IsAppointmentOTPNeeded;\r\n\tvar loggedinUserName = $localStorage.loggedInUser_FirstName + \" \" + $localStorage.loggedInUser_LastName;\r\n\tvar token = $localStorage.token;\r\n\tvar loggedinUserImage = $localStorage.picture;\r\n\tvar uTicketId = $stateParams.ticketId;\r\n\tvm.showMapPermision = false;\r\n\tvm.superPower = false;\r\n\tvm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n\tvm.CallPatchEnable = $localStorage.accountConfig.CallPatchEnable;\r\n\tvm.bIsMMFInventoryCRM = $localStorage.accountConfig.bIsMMFInventoryCRM;\r\n\tvm.Role = $localStorage.loggedInUser_Role;\r\n\tvm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\tvm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n\tvar accountConfig = $localStorage.accountConfig;\r\n\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\tvar currentStepName = '';\r\n\tvar ticketEditModalInstance = {};\r\n\tvm.ImageArray = [];\r\n\tvm.states = [];\r\n\tvm.cities = [];\r\n\tvm.CancellationReasons = '';\r\n\tvm.IsCommissionDetect = false;\r\n\tvm.urlForNonFeasible = '';\r\n\tvm.currentStepModel = {};\r\n\tvm.dtInstanceNearBy = {};\r\n\tvm.dtInstanceFixed = {};\r\n\tvm.dtInstance = {};\r\n\tvm.dtInstancePre = {};\r\n\tvm.SparePartAddress = {};\r\n\tvm.disableBroadcastButton = false;\r\n\tvm.disableRouteButton = false;\r\n\tvm.disableCreateButton = false;\r\n\tvm.IsChatEnabled = true;\r\n\tvm.showPrefer = '';\r\n\tvm.disabledDrop = false;\r\n\tvm.showloading = false\r\n\tvm.ComplianceDisable = true;\r\n\tvm.PincodeEnabled = true;\r\n\tvm.passSerialNum = false;\r\n\tvm.PrivateDisable = false;\r\n\tvm.messageText = \"\";\r\n\tvm.PriceLineItemList = [];\r\n\tvm.LineItemDataList = [];\r\n\tvm.serviceType = '';\r\n\tvm.AppointmentTime = '';\r\n\tvm.ticketPrice = \"\";\r\n\tvm.freelancerPrice = \"\";\r\n\tvm.tPrice = \"\";\r\n\tvm.commission = \"\";\r\n\tvm.tax = \"\";\r\n\tvm.freelancerPricetemp = \"\";\r\n\tvm.IsQueriesFound = false;\r\n\tvm.LineItemImage = null;\r\n\tvm.edit = true;\r\n\tvm.edit1 = false;\r\n\tvm.BonusPenaltyList = [];\r\n\tvm.BonusList = [];\r\n\tvm.PenaltyList = [];\r\n\tvm.ShipmentDetails = \"\";\r\n\tvm.LineitemActivityList = [];\r\n\tvm.CertprofileImg = [];\r\n\tvm.LineItemCategoryType = \"\";\r\n\tvm.projectId = \"\";\r\n\tvm.selectedprojectId = \"\";\r\n\tvm.dynamicpricing = \"\";\r\n\tvm.FreelancrPriceEnable = \"\";\r\n\tvm.PercentageEnable = \"\";\r\n\tvar price = 0;\r\n\tvar Quantity = 1;\r\n\tvar totalFPrice = 0.0;\r\n\tvm.BasePriceTotal = 0.0;\r\n\tvm.dFreelancerPriceTotal = 0.0;\r\n\tvm.PercentageTotal = 0.0;\r\n\tvm.FreelancerPriceTotal = 0.0;\r\n\tvm.MobiforceCommission = $localStorage.accountConfig.MobiforceCommissionPercentage;\r\n\tvm.IsFinalApproval = false;\r\n\tvm.disableExceptionButton = false;\r\n\t// vm.IsWithInDays = true;\r\n\tvm.feedbackremark = '';\r\n\tvm.HappyCode = \"\";\r\n\tvm.SymptomCode = \"\";\r\n\tvm.SymptomValue = \"\";\r\n\tvm.DefectCode = \"\";\r\n\tvm.DefectValue = \"\";\r\n\tvm.ResolutionCode = \"\";\r\n\tvm.ResolutionValue = \"\";\r\n\tvm.strSymptomValue = \"\";\r\n vm.strSymptomDescription = \"\";\r\n\tvm.strDefectValue = \"\";\r\n\tvm.strDefectDescription = \"\";\r\n\tvm.strRepairValue = \"\";\r\n\tvm.strRepairDescription = \"\";\r\n\tvm.PlannedClosureDateType = \"first\";\r\n\tvm.PlannedClosureReason = \"\";\r\n\tvm.WithInDays = 1;\r\n\tvm.WithInDaysNumbers = [1, 2, 3, 4, 5];\r\n\tvm.IsSafetyAudit = 'Not Done';\r\n\tvm.ratingwarning = \"\";\r\n\tvm.approvalRemark = '';\r\n\tvm.MaterialStatusList = [\"Dispatched\", \"Delivered\", \"Partially Delivered\", \"Not Delivered\"];\r\n\tvm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n\tvm.SelectedMaterial = '';\r\n\tvm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n\tvm.ZOHOWarehouseName = '';\r\n\tvm.customerJobCard = [];\r\n\tif (accountConfig && accountConfig.EnableRegion) {\r\n\t\tvm.EnableRegion = accountConfig.EnableRegion;\r\n\t} else {\r\n\t\tvm.EnableRegion = false;\r\n\t}\r\n\r\n\tvm.TemplateData = [];\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\r\n\t\tvar token = $localStorage.token;\r\n\t\tvm.ticketType = $stateParams.type;\r\n\t\tvm.TicketId = $stateParams.ticketId;\r\n\r\n\t\tvm.BackToTicketList = function () {\r\n\t\t\tif ($localStorage.backToOldJobList == 'go') {\r\n\t\t\t\t$rootScope.rootScopeMessage = 'JobDetailView';\r\n\t\t\t\t$state.go('index.JobTickets', {}, { reload: true });\r\n\t\t\t} else if ($localStorage.backToOldJobList == 'FreelancerFixedTeamAssign') {\r\n\t\t\t\t// $rootScope.rootScopeMessage = 'FreelancerFixedTeamAssign';\r\n\t\t\t\t$state.go('index.Freelancer_Fixed_Team', {}, { reload: true });\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t$rootScope.rootScopeMessage = 'JobDetailViewCopy';\r\n\t\t\t\t$state.go('index.JobTicketsCopy', {}, { reload: true });\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tfunction clean(obj) {\r\n\t\t\tfor (var propName in obj) {\r\n\t\t\t\tif (obj[propName] === null || obj[propName] === undefined) {\r\n\t\t\t\t\tdelete obj[propName];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.byPassSerialNumber = function () {\r\n\t\t\tJobDetailViewService.byPassSerialNumber(vm.TicketId, vm.TicketInfo.Isbypassvalidation, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.DisableRouteBroadcastButtons = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableBroadcastButton = true;\r\n\t\t\t\tvm.disableRouteButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableBroadcastButton = false;\r\n\t\t\t\tvm.disableRouteButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.timeSlots = [\r\n\t\t\t{ value: \"08:00\", label: \"08:00 AM to 10:00 AM\" },\r\n\t\t\t{ value: \"09:00\", label: \"09:00 AM to 11:00 AM\" },\r\n\t\t\t{ value: \"10:00\", label: \"10:00 AM to 12:00 PM\" },\r\n\t\t\t{ value: \"11:00\", label: \"11:00 AM to 01:00 PM\" },\r\n\t\t\t{ value: \"12:00\", label: \"12:00 PM to 02:00 PM\" },\r\n\t\t\t{ value: \"13:00\", label: \"01:00 PM to 03:00 PM\" },\r\n\t\t\t{ value: \"14:00\", label: \"02:00 PM to 04:00 PM\" },\r\n\t\t\t{ value: \"15:00\", label: \"03:00 PM to 05:00 PM\" },\r\n\t\t\t{ value: \"16:00\", label: \"04:00 PM to 06:00 PM\" },\r\n\t\t\t{ value: \"17:00\", label: \"05:00 PM to 07:00 PM\" },\r\n\t\t\t{ value: \"18:00\", label: \"06:00 PM to 08:00 PM\" },\r\n\t\t\t{ value: \"19:00\", label: \"07:00 PM to 09:00 PM\" }\r\n\t\t];\r\n\r\n\t\t\r\n\r\n\t\t//getJobapprove\r\n\t\tvm.GetJobApprovebtn = function () {\r\n\t\t\tJobDetailViewService.GetJobApprove(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t}, 500);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetCallDetails = function () {\r\n\t\t\tJobDetailViewService.GetCallDetails(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.getCallDetailsList = resp.data;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t// Activitt Timeline\r\n\r\n\t\tvm.filter = '';\r\n\t\tvm.GetAllActivityTimeline = function (filter) {\r\n\t\t\tvm.getAllActivityTimelineList = \"\";\r\n\t\t\tvm.filter = filter\r\n\t\t\tJobDetailViewService.GetAllActivityTimeline(vm.TicketId, vm.filter, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.getAllActivityTimelineList = resp.data;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t// vm.GetAllActivityTimeline('');\r\n\r\n\t\tvm.OpenRevisitConfirmationModel = function () {\r\n\t\t\tvm.openrevisitModel = $uibModal.open({\r\n\t\t\t templateUrl: 'revisitModel.html',\r\n\t\t\t backdrop: 'static',\r\n\t\t\t size: 'md',\r\n\t\t\t scope: $scope\r\n\t\t\t});\r\n\t\t }\r\n\t\t vm.closeRevisitModel = function () {\r\n\t\t\t// vm.disableRejectButton = false;\r\n\t\t\tvm.openrevisitModel.close();\r\n\t\t }\r\n\r\n\r\n\r\n\t\tvm.GetUserFeedbackOption = function (userid) {\r\n\t\t\tvm.userid = userid;\r\n\t\t\tManualAssignationJobService.GetUserFeedbackOption(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.userfeedbackList = resp.data;\r\n\t\t\t\t\tvm.FeedbackModel = $uibModal.open({\r\n\t\t\t\t\t\ttemplateUrl: 'feedback_model.html',\r\n\t\t\t\t\t\tbackdrop: 'static',\r\n\t\t\t\t\t\tscope: $scope,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeFeedbackPopup = function () {\r\n\t\t\tvm.FeedbackModel.close();\r\n\t\t}\r\n\r\n\t\tvm.GetJobCompletionOption = function (ticket) {\r\n\t\t\tvm.TicketToComplete = ticket;\r\n\t\t\tJobDetailViewService.GetJobCompletionOption(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.completionReasonList = resp.data;\r\n\t\t\t\t\tvm.JobCompletionModel = $uibModal.open({\r\n\t\t\t\t\t\ttemplateUrl: 'jobComplete_model.html',\r\n\t\t\t\t\t\tbackdrop: 'static',\r\n\t\t\t\t\t\tscope: $scope,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeJobCompletionPopup = function () {\r\n\t\t\tvm.JobCompletionModel.close();\r\n\t\t}\r\n\r\n\t\tvm.UpdateJobStatusToCompleted = function () {\r\n\t\t\tvm.jobCompletionForm.submitted = true;\r\n\t\t\tif (vm.jobCompletionForm.$valid) {\r\n\t\t\t\tdata = {\r\n\t\t\t\t\t\"TicketId\": vm.TicketInfo.TicketId,\r\n\t\t\t\t\t\"TicketStatus\": \"Completed\",\r\n\t\t\t\t\t\"CompletionReason\": vm.ticketCompletionReason,\r\n\t\t\t\t\t\"TicketCompletionRemark\": vm.ticketCompletionRemark\r\n\t\t\t\t}\r\n\t\t\t\tJobDetailViewService.completeTkt(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Ticket Completed Successfully\");\r\n\t\t\t\t\t\tvm.closeJobCompletionPopup();\r\n\t\t\t\t\t\tvm.ticketCompletionReason = \"\";\r\n\t\t\t\t\t\tvm.ticketCompletionRemark = \"\";\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, function () {\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.OpenRepairCompletionModel = function (ticket) {\r\n\t\t\tvm.TicketToBeComplete = ticket;\r\n\t\t\tvm.RepairCompletionModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'jobCompleteRepair_model.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeRepairCompletionModel = function () {\r\n\t\t\tvm.RepairCompletionModel.close();\r\n\t\t}\r\n\r\n\r\n\t\tvm.MarkRepairJobComplete = function () {\r\n\t\t\tvm.repairCompletionForm.submitted = true;\r\n\t\t\tif (vm.repairCompletionForm.$valid) {\r\n\t\t\t\tdata = {\r\n\t\t\t\t\t\"TicketId\": vm.TicketInfo.TicketId,\r\n\t\t\t\t\t\"TicketStatus\": \"Completed\",\r\n\t\t\t\t\t\"CompletionReason\": \"\",\r\n\t\t\t\t\t\"TicketCompletionRemark\": vm.ticketCompletionRemarks\r\n\t\t\t\t}\r\n\t\t\t\tJobDetailViewService.completeTkt(data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Ticket Completed Successfully\");\r\n\t\t\t\t\t\tvm.closeRepairCompletionModel();\r\n\t\t\t\t\t\tvm.ticketCompletionRemarks = \"\";\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, function () {\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.UserDataUpdateRequest = function () {\r\n\t\t\tvm.feedbackForm.submitted = true;\r\n\t\t\tif (vm.feedbackForm.$valid) {\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"MasterReason\": vm.MasterReason,\r\n\t\t\t\t\t\"Comments\": vm.Comments,\r\n\t\t\t\t\t\"RequestForUserId\": vm.userid\r\n\t\t\t\t}\r\n\t\t\t\tManualAssignationJobService.UserDataUpdateRequest(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(resp.data);\r\n\t\t\t\t\t\tvm.closeFeedbackPopup();\r\n\t\t\t\t\t\tvm.Comments = \"\";\r\n\t\t\t\t\t\tvm.MasterReason = \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}, function () {\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.openVideoPopup = function () {\r\n\t\t\tvm.videoModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'video_modal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\tvm.SendCommunicationInvite();\r\n\t\t}\r\n\r\n\t\tvm.closeVideoPopup = function () {\r\n\t\t\tvm.videoModal.close();\r\n\t\t}\r\n\t\t$scope.CallInitiated = false;\r\n\t\tvm.reqVideoCall = function () {\r\n\t\t\tif ($scope.CallInitiated == false) {\r\n\t\t\t\tJobDetailViewService.reqVideoCall(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvm.videoLink = resp.data;\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t\t\tvm.PollVideoCallFieldLocation();\r\n\t\t\t\t\t\t\t$scope.CallInitiated = true;\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.AudioCallInitiated = false;\r\n\t\t$scope.VideoCallInitiated = false;\r\n\t\t// $scope.ChatInitiated = false;\r\n\r\n\t\tvm.SendCommunicationInvite = function (type) {\r\n\t\t\tif ($scope.AudioCallInitiated == false && type == 'Audio') {\r\n\t\t\t\tJobDetailViewService.SendCommunicationInvite(vm.TicketId, type, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvm.connectionLink = resp.data;\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Audio call request initiated\");\r\n\t\t\t\t\t\t\tvm.PollVideoCallFieldLocation();\r\n\t\t\t\t\t\t\t$scope.AudioCallInitiated = true;\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse if ($scope.VideoCallInitiated == false && type == 'Video') {\r\n\t\t\t\tJobDetailViewService.SendCommunicationInvite(vm.TicketId, type, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tvm.connectionLink = resp.data;\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Video call request initiated\");\r\n\t\t\t\t\t\t\tvm.PollVideoCallFieldLocation();\r\n\t\t\t\t\t\t\t$scope.VideoCallInitiated = true;\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t// else if($scope.ChatInitiated == false && type == 'Text') {\r\n\t\t\t// \tJobDetailViewService.SendCommunicationInvite(vm.TicketId,type, token).then(function (resp) {\r\n\t\t\t// \t\tif(resp.status==200){\t\t\t\t\t\t\r\n\t\t\t// \t\t\t{\t\t\t\t\t\t\r\n\t\t\t// \t\t\t\tvm.connectionLink = resp.data;\r\n\t\t\t// \t\t\t\tvm.showSuccess(\"Success\", \"Communication Request Initiated\");\r\n\t\t\t// \t\t\t\tvm.PollVideoCallFieldLocation();\t\r\n\t\t\t// \t\t\t\t$scope.ChatInitiated = true;\t\t\t\t\r\n\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t}\r\n\t\t\t// \t});\r\n\t\t\t// \t}\t\t\r\n\t\t}\r\n\r\n\r\n\t\t// vm.reqAudioCall = function () {\t\t\t\r\n\t\t// \tif($scope.AudioCallInitiated == false) {\t\r\n\t\t// \t\tvm.audioLink = 'https://mymobiforce.com/oneserv/#/audio/' + vm.TicketId;\r\n\t\t// \t\tvm.showSuccess(\"Success\", \"Call Initiated\");\r\n\t\t// \t\tvm.PollVideoCallFieldLocation();\t\r\n\t\t// \t\t$scope.AudioCallInitiated = true;\t\t\t\t\t\r\n\t\t// \t\t}\t\t\t\r\n\t\t// \t}\t\t\r\n\r\n\t\tvm.ShowLocationOfFieldTeamOnMap = function () {\r\n\t\t\tif (!vm.liveLatLong) {\r\n\t\t\t\tShowJobOnMap();\r\n\t\t\t}\r\n\t\t\tif (vm.liveLatLong) {\r\n\t\t\t\tinitMap();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.PollVideoCallFieldLocation = function () {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tvm.GetLatestVideoSessionLocation();\r\n\t\t\t}, 5000);\r\n\t\t\tconsole.log(\"retry for video location...\");\r\n\t\t}\r\n\r\n\t\tvm.GetLatestVideoSessionLocation = function () {\r\n\t\t\tJobDetailViewService.GetLatestVideoSessionLocation(vm.TicketInfo.UserId, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.liveLatLong = resp.data;\r\n\t\t\t\t\tif (vm.liveLatLong == \"\") {\r\n\t\t\t\t\t\tvm.PollVideoCallFieldLocation();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.liveLocation = vm.liveLatLong.split(',');\r\n\t\t\t\t\t\tvm.FELatitude = vm.liveLocation[0];\r\n\t\t\t\t\t\tvm.FELongitude = vm.liveLocation[1];\r\n\t\t\t\t\t\tvm.showMapPermision = true;\r\n\t\t\t\t\t\tvm.superPower = true;\r\n\t\t\t\t\t\tconsole.log(\"video location received from field ...\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetTrackingDetailsByTrackinNumber = function (trackingNo) {\r\n\t\t\tvm.trackNo = trackingNo;\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Id\": vm.TicketId,\r\n\t\t\t\t\"trackingNumber\": trackingNo\r\n\t\t\t};\r\n\t\t\tJobDetailViewService.GetTrackingDetailsByTrackinNumber(data, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.getTrackingDetailsList = resp.data;\r\n\t\t\t\t\t\tvm.lastTag = vm.getTrackingDetailsList[vm.getTrackingDetailsList.length - 1].tag;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetPreApprovalDocList = function () {\r\n\t\t\tJobDetailViewService.GetPreApprovalDocList(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.pAdocList = resp.data;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.GetPreApprovalDocList();\r\n\r\n\t\tvm.GenerateConsumerInvoice = function () {\r\n\t\t\tJobDetailViewService.GenerateConsumerInvoice(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Customer Invoice Generated\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.implementSelectTicketsP = function (itemList, scope) {\r\n\t\t\tscope.selectAllColumnsP = false;\r\n\t\t\tscope.showMinusColumnsP = false;\r\n\t\t\tscope.selectDocRow = function (i) {\r\n\t\t\t\tscope.selectAllColumnsP = true;\r\n\t\t\t\tscope.showMinusColumnsP = false;\r\n\t\t\t\tvm.docListArray = [];\r\n\t\t\t\tangular.forEach(scope[itemList], function (d) {\r\n\t\t\t\t\tif (d.checked) {\r\n\t\t\t\t\t\tvm.docListArray.push(d)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tscope.applyAllValuesSelectP = function () {\r\n\t\t\t\tvm.docListArray = [];\r\n\t\t\t\tangular.forEach(scope[itemList], function (d) {\r\n\t\t\t\t\tif (d.ItemStatus == \"\" || d.ItemStatus == null || d.ItemStatus == 'ApprovedByVendor') {\r\n\t\t\t\t\t\td.checked = scope.selectAllColumnsP;\r\n\t\t\t\t\t\tif (d.checked) {\r\n\t\t\t\t\t\t\tvm.docListArray.push(d);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.implementSelectTicketsP('pAdocList', this);\r\n\r\n\t\tvm.approvePPw = function () {\r\n\t\t\tif (!vm.docListArray) {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Select some fields to approve\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tangular.forEach(vm.docListArray, function (d) {\r\n\t\t\t\t\t// if(d.ItemValue) {\r\n\t\t\t\t\tdelete d.ItemValue;\r\n\t\t\t\t\tdelete d.ImageName;\r\n\t\t\t\t\tdelete d.ItemUpdateDate;\r\n\t\t\t\t\tdelete d.checked;\r\n\t\t\t\t\tdelete d.ItemValues;\r\n\t\t\t\t\tdelete d.ItemType;\r\n\t\t\t\t\tdelete d.Value;\r\n\t\t\t\t\tdelete d.VideoName;\r\n\t\t\t\t\td.ItemStatus = 'Approved';\r\n\t\t\t\t\t// d.ItemComment = vm.ppwComment;\r\n\t\t\t\t\t// }\r\n\t\t\t\t});\r\n\t\t\t\tJobDetailViewService.approvePPw(vm.docListArray, token, vm.TicketId).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"approved\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.GetPreApprovalDocList();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.RejectJobPPw = function () {\r\n\t\t\tif (!vm.docListArray) {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Select some fields to reject\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tangular.forEach(vm.docListArray, function (d) {\r\n\t\t\t\t\t// if(d.ItemValue) {\r\n\t\t\t\t\tdelete d.ItemValue;\r\n\t\t\t\t\tdelete d.ImageName;\r\n\t\t\t\t\tdelete d.ItemUpdateDate;\r\n\t\t\t\t\tdelete d.checked;\r\n\t\t\t\t\tdelete d.ItemValues;\r\n\t\t\t\t\tdelete d.ItemType;\r\n\t\t\t\t\tdelete d.Value;\r\n\t\t\t\t\tdelete d.VideoName;\r\n\t\t\t\t\td.ItemStatus = 'Rejected';\r\n\t\t\t\t\t// }\r\n\t\t\t\t});\r\n\t\t\t\tJobDetailViewService.RejectJobPPw(vm.docListArray, token, vm.TicketId).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Rejected\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.GetPreApprovalDocList();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t//data capture new\r\n\r\n\t\tvm.sectionDocList = []\r\n\t\tvm.GetSectionDataByStepName = function (sectioninfo) {\r\n\t\t\tvm.StepName = sectioninfo;\r\n\t\t\tJobDetailViewService.GetSectionDataByStepName(vm.TicketId, vm.StepName, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.sectionDocList[0] = resp.data;\r\n\t\t\t\t\t\tvm.stepsDocLists = vm.sectionDocList[0]\r\n\t\t\t\t\t\tvm.isEditDisabled = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.stepsDocList = []\r\n\t\tvm.GetTemplateData = function () {\r\n\t\t\tJobDetailViewService.GetTemplateData(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.stepsDocList[0] = resp.data;\r\n\t\t\t\t\t\tvm.stepsDocLists = vm.stepsDocList[0];\r\n\t\t\t\t\t\tvm.StepsName = vm.stepsDocLists[0].StepsName;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tvm.GetTemplateData();\r\n\r\n\r\n\t\tvm.GetInventoryPartsDetails = function () {\r\n\t\t\tJobDetailViewService.GetInventoryPartsDetails(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.reportlist = resp.data;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t\r\n\t\tvm.implementSelectData = function (itemList, scope) {\r\n\t\t\tscope.selectAllColumns = false;\r\n\t\t\tscope.showMinusColumns = false;\r\n\t\t\tscope.selectDataRow = function (i) {\r\n\t\t\t\tscope.selectAllColumns = false;\r\n\t\t\t\tscope.showMinusColumns = true;\r\n\t\t\t\tvm.finalData = [];\r\n\t\t\t\tangular.forEach(scope[itemList], function (d) {\r\n\t\t\t\t\tscope.selectAllColumns = false;\r\n\t\t\t\t\tscope.showMinusColumns = true;\r\n\t\t\t\t\tvm.tktList = d.ticketResponseList;\r\n\t\t\t\t\tvar SectionName = d.SectionName;\r\n\t\t\t\t\tangular.forEach(vm.tktList, function (ticketResponseList) {\r\n\t\t\t\t\t\tif (ticketResponseList.enabled) {\r\n\t\t\t\t\t\t\tscope.selectAllColumns = false;\r\n\t\t\t\t\t\t\tscope.showMinusColumns = true;\r\n\t\t\t\t\t\t\tvar templateSection = {};\r\n\t\t\t\t\t\t\ttemplateSection.SectionName = SectionName;\r\n\t\t\t\t\t\t\ttemplateSection.ticketResponseList = ticketResponseList;\r\n\t\t\t\t\t\t\tvm.finalData.push(templateSection);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tvm.stepsDocListsTempArray = [];\r\n\t\t\tscope.applyAllColumnsSelect = function () {\r\n\t\t\t\tvm.finalData = [];\r\n\t\t\t\tangular.forEach(scope[itemList], function (d) {\r\n\t\t\t\t\td.enabled = scope.selectAllColumns;\r\n\t\t\t\t\tvm.tktList = d.ticketResponseList;\r\n\t\t\t\t\tvar SectionName = d.SectionName;\r\n\t\t\t\t\tangular.forEach(vm.tktList, function (ticketResponseList) {\r\n\t\t\t\t\t\tticketResponseList.enabled = scope.selectAllColumns;\r\n\t\t\t\t\t\tvar templateSection = {};\r\n\t\t\t\t\t\ttemplateSection.SectionName = SectionName;\r\n\t\t\t\t\t\ttemplateSection.ticketResponseList = ticketResponseList;\r\n\t\t\t\t\t\tif (ticketResponseList.enabled && (ticketResponseList.ItemStatus == \"\" || ticketResponseList.ItemStatus == null || ticketResponseList.ItemStatus == 'ApprovedByVendor')) {\r\n\t\t\t\t\t\t\tvm.finalData.push(templateSection);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tscope.applyAllSelectSection = function (stepName) {\r\n\t\t\t\tvm.finalData = [];\r\n\t\t\t\tangular.forEach(scope[itemList], function (d, i) {\r\n\t\t\t\t\td.enabled = scope.selectAllColumns;\r\n\t\t\t\t\tvm.tktList = d.ticketResponseList;\r\n\t\t\t\t\tvar SectionName = d.SectionName;\r\n\t\t\t\t\tif (stepName == d.SectionName) {\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tangular.forEach(vm.tktList, function (ticketResponseList) {\r\n\t\t\t\t\t\t\t\tticketResponseList.enabled = scope.selectAllColumns;\r\n\t\t\t\t\t\t\t\tvar templateSection = {};\r\n\t\t\t\t\t\t\t\ttemplateSection.SectionName = SectionName;\r\n\t\t\t\t\t\t\t\ttemplateSection.ticketResponseList = ticketResponseList;\r\n\t\t\t\t\t\t\t\tif (ticketResponseList.enabled && (ticketResponseList.ItemStatus == \"\" || ticketResponseList.ItemStatus == null || ticketResponseList.ItemStatus == 'ApprovedByVendor')) {\r\n\t\t\t\t\t\t\t\t\tvm.finalData.push(templateSection);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.implementSelectData('stepsDocLists', this);\r\n\r\n\t\tvm.approveJobDataCap = function () {\r\n\t\t\tif (vm.finalData) {\r\n\t\t\t\tangular.forEach(vm.finalData, function (q) {\r\n\t\t\t\t\tvm.ticketResp = q.ticketResponseList\r\n\t\t\t\t\tif (vm.ticketResp.ItemName) {\r\n\t\t\t\t\t\tdelete vm.ticketResp.ItemValue;\r\n\t\t\t\t\t\tdelete vm.ticketResp.ImageName;\r\n\t\t\t\t\t\tdelete vm.ticketResp.ItemUpdateDate;\r\n\t\t\t\t\t\tdelete vm.ticketResp.checked;\r\n\t\t\t\t\t\tdelete vm.ticketResp.ItemValues;\r\n\t\t\t\t\t\tdelete vm.ticketResp.ItemType;\r\n\t\t\t\t\t\tdelete vm.ticketResp.Value;\r\n\t\t\t\t\t\tdelete vm.ticketResp.VideoName;\r\n\t\t\t\t\t\tdelete vm.ticketResp.enabled;\r\n\t\t\t\t\t\tvm.ticketResp.ItemStatus = 'Approved';\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tJobDetailViewService.updateapproval(vm.finalData, token, vm.TicketId).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"approved\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\tvm.GetPreApprovalStepEric();\r\n\t\t\t\t\t\t\tvm.GetSectionDataByStepName(vm.StepName);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select field data.\");\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tvm.GetBrandProductGroup = function () {\r\n\t\t\tvm.PartGroupList = [];\r\n\t\t\tvm.ProductList = [];\r\n\t\t\tvm.AllActiveProductModelNoList = [];\r\n\t\t\tvar data = {\r\n\t\t\t\t\"strBrandName\": vm.BrandNameTicket\r\n\t\t\t}\r\n\t\t\tCustomerCRMListService.GetBrandProductGroup(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.PartGroupList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.GetAllProductsForBrand = function () {\r\n\t\t\tvm.ProductList = [];\r\n\t\t\tvm.AllActiveProductModelNoList = [];\r\n\t\t\tvar data = {\r\n\t\t\t\t\"strBrandName\": vm.BrandNameTicket,\r\n\t\t\t\t\"strProductGroup\": vm.productGroup\r\n\t\t\t}\r\n\t\t\tCustomerCRMListService.GetAllProductsForBrand(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.ProductList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\t\r\n\t\tvm.GetAllActiveProductModelMaster = function (product) {\r\n\t\t\tif(!product){\r\n\t\t\t\tvm.AllActiveProductModelNoList = [];\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tCustomerCRMListService.GetAllActiveProductModelMaster(product,vm.BrandNameTicket,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.AllActiveProductModelNoList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t\r\n\t\t\tvm.UpdateProctDeatils = function (InfoList) {\r\n\t\t\t\tvm.TicketListInfo = InfoList\r\n\t\t\t\tvm.BrandNameTicket = vm.TicketListInfo.BrandName\r\n\t\t\t\tvm.productGroup = vm.TicketListInfo.ProductGroup\r\n\t\t\t\tvm.product = vm.TicketListInfo.ProductType\r\n\t\t\t\tvm.modelNumber = vm.TicketListInfo.ModelNumber\r\n\t\t\t\tvm.GetAllProductsForBrand();\r\n\t\t\t\tvm.GetAllActiveProductModelMaster();\r\n\r\n\t\t\t\t vm.updateProductModelOpen = $uibModal.open({\r\n\t\t\t\t\t templateUrl: 'UpdateProductDetails.html',\r\n\t\t\t\t\t size: 'lg',\r\n\t\t\t\t\t backdrop: 'static',\r\n\t\t\t\t\t scope: $scope,\r\n\t\t\t\t });\r\n\t\t\t }\r\n\t\t vm.closeUpdateProductDetails = function(){\r\n\t\t\t vm.updateProductModelOpen.close();\r\n\t\t\t vm.DisableCreateButton = false;\r\n\t\t }\r\n\t\t vm.DisableCreateButton = false ;\r\n\r\n\r\n\r\n\r\n\t\tvm.UpdateTicketForFieldData = function () {\r\n\t\t\tvm.dialertask_form.submitted = true;\r\n\t\t\tif (vm.dialertask_form.$valid) {\r\n\t\t\t\tvm.DisableCreateButton = true;\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\t\"ProductGroup\": vm.productGroup,\r\n\t\t\t\t\t\"ProductType\": vm.product,\r\n\t\t\t\t\t\"ModelNumber\" : vm.modelNumber\r\n\t\t\t\t}\r\n\t\t\t\tJobDetailViewService.UpdateTicketForFieldData(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Product Details Updated Successfully.\");\r\n\t\t\t\t\t\tvm.closeUpdateProductDetails();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton = false;\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\t}\r\n\r\n\t\tvm.attachedFiles = [];\r\n\t\tvm.DisableAttachbutton = false;\r\n\t\tvm.Invoicebase64 = [];\r\n\t\tvm.selectedInvoiceIndex = 0;\r\n\r\n\t\tvm.AttachInvoiceMutiple = function () {\r\n\t\t\tvm.attchmutipleinvoice = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Attachmutipleinvoice.html',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseInvoiceMutiple = function () {\r\n\t\t\tvm.attchmutipleinvoice.close();\r\n\t\t\tvm.DisableAttachbutton = false;\r\n\t\t}\r\n\r\n\t\tvm.ClearInvoiceMutiple = function () {\r\n\t\t\tif(vm.attchmutipleinvoice){\r\n\t\t\t vm.attchmutipleinvoice.close();\r\n\t\t\t}\r\n\t\t\tvm.DisableAttachbutton = false;\r\n\t\t\tvm.attachedFiles = [];\r\n\t\t}\r\n\r\n\t\tvm.handleFileSelect = function (event) {\r\n\t\t\tvar files = event.target.files;\r\n\t\t\tif (files.length + vm.attachedFiles.length > 4) {\r\n\t\t\t\talert(\"You can upload a maximum of 4 files.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tfor (var i = 0; i < files.length; i++) {\r\n\t\t\t\tif (files[i].size > 1 * 1024 * 1024) {\r\n\t\t\t\t\talert(\"File size must be less than 1 MB.\");\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tvm.attachedFiles.push(files[i]);\r\n\t\t\t}\r\n\t\t\t$scope.$apply();\r\n\t\t};\r\n\t \r\n\t\tvm.removeFile = function (index) {\r\n\t\t\tvm.attachedFiles.splice(index, 1);\r\n\t\t};\r\n\r\n\t\tvm.UploadInvoice = function () {\r\n\t\t\tif (vm.attachedFiles.length == 0) {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"No files selected for upload.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvm.DisableAttachbutton = true;\r\n\t\t\tvm.CloseInvoiceMutiple();\r\n\t\t\tJobDetailViewService.UploadInvoice(vm.TicketInfo.TicketId, vm.attachedFiles, token, loggedinUser).then(function (res) {\r\n\t\t\t\tif (res && res.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Invoice Uploaded Successfully.\");\r\n\t\t\t\t\tvm.attachedFiles = [];\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t} else if (res && res.data) {\r\n\t\t\t\t\tvm.attachedFiles = [];\r\n\t\t\t\t\tvm.showFailure(\"Failed\", res.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.deleteInvoice = function (fileName) {\r\n\t\t\tJobDetailViewService.RemoveInvoice(vm.TicketInfo.TicketId,fileName,loggedinUser, token).then(function (res) {\r\n\t\t\t\tif (res && res.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Invoice Deleted Successfully.\");\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t} else if (res && res.data) {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", res.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.initializeInvoices = function () {\r\n\t\t\tif (vm.TicketInfo.InvoiceList && vm.TicketInfo.InvoiceList.length > 0) {\r\n\t\t\t\tvm.selectedInvoiceIndex = 0;\r\n\t\t\t\tvm.CustomerInvoiceServices(vm.TicketInfo.InvoiceList[0], 0);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvm.CustomerInvoiceServices = function (img, index) {\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\t\tif (resp.data == null || resp.data == '') {\r\n\t\t\t\t\tvm.Invoicebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.Invoicebase64[index] = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.Invoicebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.getTrustedUrl = function (index) {\r\n\t\t\treturn $sce.trustAsResourceUrl(vm.Invoicebase64[index]);\r\n\t\t};\r\n\r\n\t\tvm.RejectJobDataCap = function () {\r\n\t\t\tif (vm.finalData) {\r\n\t\t\t\tangular.forEach(vm.finalData, function (q) {\r\n\t\t\t\t\tvm.ticketResp = q.ticketResponseList\r\n\t\t\t\t\tif (vm.ticketResp.ItemName) {\r\n\t\t\t\t\t\tdelete vm.ticketResp.ItemValue;\r\n\t\t\t\t\t\tdelete vm.ticketResp.ImageName;\r\n\t\t\t\t\t\tdelete vm.ticketResp.ItemUpdateDate;\r\n\t\t\t\t\t\tdelete vm.ticketResp.checked;\r\n\t\t\t\t\t\tdelete vm.ticketResp.ItemValues;\r\n\t\t\t\t\t\tdelete vm.ticketResp.ItemType;\r\n\t\t\t\t\t\tdelete vm.ticketResp.Value;\r\n\t\t\t\t\t\tdelete vm.ticketResp.VideoName;\r\n\t\t\t\t\t\tdelete vm.ticketResp.enabled;\r\n\t\t\t\t\t\tvm.ticketResp.ItemStatus = 'Rejected';\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tJobDetailViewService.updateapproval(vm.finalData, token, vm.TicketId).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Rejected\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetPreApprovalStepEric();\r\n\t\t\t\t\t\t\tvm.GetSectionDataByStepName(vm.StepName);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select field data.\");\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tvm.file = [];\r\n\r\n\t\tvm.getImageIndex = function (index) {\r\n\t\t\tvm.indexImgg = index;\r\n\t\t}\r\n\t\tvm.clearImageBlob = function () {\r\n\t\t\t$scope.stepsModel = [];\r\n\t\t}\r\n\t\t$scope.stepsModel = [];\r\n\t\t$scope.uploadBGFilenew = function (files) {\r\n\r\n\t\t\tvm.FrontFileName = \"\";\r\n\t\t\tvm.FilesFrontDoc = files.files;\r\n\t\t\tvm.FrontFileName = vm.FilesFrontDoc[0].name;\r\n\t\t\tvm.file.push(vm.FilesFrontDoc);\r\n\t\t\t$scope.imageIsLoaded = function (e) {\r\n\t\t\t\t$scope.$apply(function () {\r\n\t\t\t\t\t$scope.stepsModel.push(e.target.result);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tfor (var i = 0; i < vm.FilesFrontDoc.length; i++) {\r\n\t\t\t\tvar file = vm.FilesFrontDoc[i];\r\n\t\t\t\tvar reader = new FileReader();\r\n\t\t\t\treader.onload = $scope.imageIsLoaded;\r\n\t\t\t\treader.readAsDataURL(file);\r\n\t\t\t}\r\n\t\t\tvar allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png|\\.JFIF|\\.jfif)$/i;\r\n\t\t\tif (!allowedExtensions.exec(vm.FrontFileName)) {\r\n\t\t\t\tvm.FilesFrontDoc = [];\r\n\t\t\t\tvm.clear();\r\n\t\t\t\talert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.getImgIndex = function (index, selectedSectionName) {\r\n\t\t\tvm.imgIndex = index;\r\n\t\t\tvm.isEditDisabled = false;\r\n\t\t\tvm.stepsDocLists.forEach(function (data) {\r\n\t\t\t\tvm.FieldDataDetails = data.ticketResponseList;\r\n\t\t\t\tif (data.SectionName == selectedSectionName) {\r\n\t\t\t\t\tupdateSection.SectionName = selectedSectionName;\r\n\t\t\t\t\tvm.FieldDataDetails.forEach(function (updateData) {\r\n\t\t\t\t\t\tif (updateData.ItemName == data.ticketResponseList[vm.imgIndex].ItemName) {\r\n\t\t\t\t\t\t\tvm.ticketResp = updateData;\r\n\t\t\t\t\t\t\tif (vm.ticketResp.edit == true) {\r\n\t\t\t\t\t\t\t\tvm.isEditDisabled = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.clear = function () {\r\n\t\t\tangular.element(\"input[type='file']\").val(null);\r\n\t\t};\r\n\r\n\t\tvm.DataItemDetailList = [];\r\n\t\tvar updateSection = {};\r\n\t\tvm.isEditDisabled = false;\r\n\t\tvm.UpdateDataModel = function (index, selectedSectionName) {\r\n\t\t\tvm.isEditDisabled = true;\r\n\t\t\tvm.formdataForEdit = new FormData();\r\n\t\t\tvm.stepsDocLists.forEach(function (data) {\r\n\t\t\t\tvm.FieldDataDetails = data.ticketResponseList;\r\n\t\t\t\tif (data.SectionName == selectedSectionName) {\r\n\t\t\t\t\tupdateSection.SectionName = selectedSectionName;\r\n\t\t\t\t\tvm.FieldDataDetails.forEach(function (updateData) {\r\n\t\t\t\t\t\tif (updateData.ItemName == data.ticketResponseList[vm.imgIndex].ItemName) {\r\n\t\t\t\t\t\t\tvm.ticketResp = updateData;\r\n\t\t\t\t\t\t\tif (vm.ticketResp.ImageItemName != null) {\r\n\t\t\t\t\t\t\t\tvm.ticketResp.ImageItemName.forEach(function (imgNameI, ind) {\r\n\t\t\t\t\t\t\t\t\tif (vm.file.length == 1) {\r\n\t\t\t\t\t\t\t\t\t\tif (vm.ticketResp.ImageItemName[vm.indexImgg] == imgNameI) {\r\n\t\t\t\t\t\t\t\t\t\t\tvm.formdataForEdit.append(vm.ticketResp.ImageItemName[vm.indexImgg], vm.file[0][0], vm.ticketResp.ImageItemName[vm.indexImgg]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse if (vm.file.length > 1) {\r\n\t\t\t\t\t\t\t\t\t\tvm.formdataForEdit.append(imgNameI, vm.file[ind][0], imgNameI);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\r\n\t\t\t\t\t\t\t\t// vm.file.forEach(function(blobFile, i) {\r\n\t\t\t\t\t\t\t\t// \tif(i == ind) {\r\n\t\t\t\t\t\t\t\t// \t\tvm.formdataForEdit.append(imgNameI, vm.file[ind][0],imgNameI);\r\n\t\t\t\t\t\t\t\t// \t}\r\n\t\t\t\t\t\t\t\t// });\r\n\t\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\t\tif (vm.ticketResp.ImageItemName == null && vm.file.length != 0) {\r\n\t\t\t\t\t\t\t\tvm.ticketResp.ImageItemName = [];\r\n\t\t\t\t\t\t\t\t// if (vm.file[0][0]) {\r\n\t\t\t\t\t\t\t\t// for(var i=0; i<= vm.file.length; i++) {\r\n\t\t\t\t\t\t\t\tvm.file.forEach(function (imgNameI, i) {\r\n\t\t\t\t\t\t\t\t\tvm.imgType = vm.file[i][0].type.substr(vm.file[i][0].type.indexOf('/') + 1);\r\n\t\t\t\t\t\t\t\t\tvm.ItemImageName = vm.TicketInfo.TicketId + '_' + vm.StepName + '_' + selectedSectionName + '_' + vm.ticketResp.ItemName + '_' + i + \".\" + vm.imgType;\r\n\t\t\t\t\t\t\t\t\tvm.ItemImageName = (vm.ItemImageName).replace(/ /g, \"_\");\r\n\t\t\t\t\t\t\t\t\tvm.ticketResp.ImageItemName.push(vm.ItemImageName);\r\n\t\t\t\t\t\t\t\t\tvm.formdataForEdit.append(vm.ItemImageName, vm.file[i][0], vm.ItemImageName);\r\n\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\t\t// }\r\n\r\n\t\t\t\t\t\t\t\t// if (vm.file[0][0]) {\r\n\t\t\t\t\t\t\t\t// \t\tvm.imgType = vm.file[0][0].type.substr(vm.file[0][0].type.indexOf('/')+ 1);\r\n\t\t\t\t\t\t\t\t// \t\tvm.ItemImageName = vm.TicketInfo.TicketId + '_' + vm.StepName + '_' + selectedSectionName + '_' + vm.ticketResp.ItemName + '_' + 0 +\".\"+ vm.imgType;\r\n\t\t\t\t\t\t\t\t// \t\tvm.ItemImageName = (vm.ItemImageName).replace(/ /g,\"_\");\t\r\n\t\t\t\t\t\t\t\t// \t\t\tvm.ticketResp.ImageItemName.push(vm.ItemImageName);\r\n\t\t\t\t\t\t\t\t// \t\t\tvm.formdataForEdit.append(vm.ItemImageName, vm.file[0][0],vm.ItemImageName);\r\n\t\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\t\tif ((vm.ticketResp.ImageItemName == null && vm.ticketResp.ImageName != null) && (vm.ticketResp.ItemType == 'Multiple Picture Type' || vm.ticketResp.ItemType == 'Signature Type' || vm.ticketResp.ItemType == 'File Attachment Type' || vm.ticketResp.ItemType == 'Video Type')) {\r\n\t\t\t\t\t\t\t\tvm.imgType = vm.file[0][0].type.substr(vm.file[0][0].type.indexOf('/') + 1);\r\n\t\t\t\t\t\t\t\tvm.ImageName = vm.TicketInfo.TicketId + '_' + vm.StepName + '_' + selectedSectionName + '_' + vm.ticketResp.ItemName + \".\" + vm.imgType;\r\n\t\t\t\t\t\t\t\tvm.ImageName = (vm.ImageName).replace(/ /g, \"_\");\r\n\t\t\t\t\t\t\t\tvm.formdataForEdit.append(vm.ticketResp.ImageName, vm.file[0][0], vm.ticketResp.ImageName);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (vm.ticketResp.ItemType == 'Date Type') {\r\n\r\n\t\t\t\t\t\t\t\tvm.ticketResp.ItemValue = moment(vm.ticketResp.ItemValue).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvm.DataItemDetail = {\r\n\t\t\t\t\t\t\t\t\"ItemName\": vm.ticketResp.ItemName,\r\n\t\t\t\t\t\t\t\t\"ImageItemName\": vm.ticketResp.ImageItemName,\r\n\t\t\t\t\t\t\t\t\"ItemComment\": vm.ticketResp.ItemComment,\r\n\t\t\t\t\t\t\t\t\"ItemStatus\": vm.ticketResp.ItemStatus,\r\n\t\t\t\t\t\t\t\t\"ItemType\": vm.ticketResp.ItemType,\r\n\t\t\t\t\t\t\t\t\"ItemUpdateDate\": vm.ticketResp.ItemUpdateDate,\r\n\t\t\t\t\t\t\t\t\"ItemValue\": vm.ticketResp.ItemType != 'Multiple Picture Type' ? vm.ticketResp.ItemValue : '',\r\n\r\n\t\t\t\t\t\t\t\t// \"ItemValue\": vm.ticketResp.ItemValue\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvm.DataItemDetailList.push(vm.DataItemDetail)\r\n\t\t\t\t\t\t\tupdateSection.dataUpdateRequestModelList = vm.DataItemDetailList;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tvar DataItemDetails = JSON.stringify(updateSection);\r\n\t\t\tvm.formdataForEdit.append(\"UpdateJobFieldDataModel\", DataItemDetails);\r\n\t\t\t$scope.stepsModel = [];\r\n\t\t\t// vm.file= []; \r\n\t\t\tvm.UpdateFinalDataModel();\r\n\t\t}\r\n\r\n\r\n\t\tvm.UpdateFinalDataModel = function () {\r\n\t\t\t// vm.formdataForEdit = new FormData(); \r\n\t\t\tvm.isEditDisabled = true;\r\n\t\t\tif (!vm.formdataForEdit) {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"You have not edited anything\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tJobDetailViewService.UpdateJobData(vm.formdataForEdit, token, loggedinUser, vm.TicketInfo.TicketId).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 202) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Data has been successfully updated\");\r\n\t\t\t\t\t\tvm.DataItemDetailList = [];\r\n\t\t\t\t\t\tvm.file = [];\r\n\t\t\t\t\t\t$scope.stepsModel = [];\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.GetSectionDataByStepName(vm.StepName);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Data not updated\");\r\n\t\t\t\t\t\tvm.DataItemDetailList = [];\r\n\t\t\t\t\t\tvm.file = [];\r\n\t\t\t\t\t\t$scope.stepsModel = [];\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t\t//end data capture\r\n\r\n\t\tvm.GetPreApprovalStepEric = function () {\r\n\t\t\tJobDetailViewService.GetPreApprovalStepEric(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.dataDocList = resp.data;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetPreApprovalStepEric();\r\n\t\tvm.implementSelectDataF = function (itemList, scope) {\r\n\t\t\tscope.selectAllColumnsF = false;\r\n\t\t\tscope.showMinusColumnsF = false;\r\n\t\t\tscope.selectDataRowF = function (i) {\r\n\t\t\t\tscope.selectAllColumnsF = false;\r\n\t\t\t\tscope.showMinusColumnsF = true;\r\n\t\t\t\tvm.finalData = [];\r\n\t\t\t\tangular.forEach(scope[itemList], function (d) {\r\n\t\t\t\t\tscope.selectAllColumnsF = false;\r\n\t\t\t\t\tscope.showMinusColumnsF = true;\r\n\t\t\t\t\tvm.tktList = d.ticketResponseList;\r\n\t\t\t\t\tvar SectionName = d.SectionName;\r\n\t\t\t\t\tangular.forEach(vm.tktList, function (ticketResponseList) {\r\n\t\t\t\t\t\tif (ticketResponseList.enabled) {\r\n\t\t\t\t\t\t\tscope.selectAllColumnsF = false;\r\n\t\t\t\t\t\t\tscope.showMinusColumnsF = true;\r\n\t\t\t\t\t\t\tvar templateSection = {};\r\n\t\t\t\t\t\t\ttemplateSection.SectionName = SectionName;\r\n\t\t\t\t\t\t\ttemplateSection.ticketResponseList = ticketResponseList;\r\n\t\t\t\t\t\t\tvm.finalData.push(templateSection);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tscope.applyAllColumnsSelectF = function () {\r\n\t\t\t\tvm.finalData = [];\r\n\t\t\t\tangular.forEach(scope[itemList], function (d) {\r\n\t\t\t\t\td.enabled = scope.selectAllColumnsF;\r\n\t\t\t\t\tvm.tktList = d.ticketResponseList;\r\n\t\t\t\t\tvar SectionName = d.SectionName;\r\n\r\n\t\t\t\t\t// if (d.enabled) {\r\n\t\t\t\t\tangular.forEach(vm.tktList, function (ticketResponseList) {\r\n\t\t\t\t\t\tif (ticketResponseList.ItemStatus != 'Rejected') {\r\n\t\t\t\t\t\t\tticketResponseList.enabled = scope.selectAllColumnsF;\r\n\t\t\t\t\t\t\tvar templateSection = {};\r\n\t\t\t\t\t\t\ttemplateSection.SectionName = SectionName;\r\n\t\t\t\t\t\t\ttemplateSection.ticketResponseList = ticketResponseList;\r\n\t\t\t\t\t\t\tif (ticketResponseList.enabled) {\r\n\t\t\t\t\t\t\t\tvm.finalData.push(templateSection);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// angular.forEach(vm.tktList, function (ticketResponseList) {\t\t\t\t\t\r\n\t\t\t\t\t// \tif (ticketResponseList.enabled) {\r\n\r\n\t\t\t\t\t// \t\tvar templateSection = {};\r\n\t\t\t\t\t// \t\ttemplateSection.SectionName = SectionName;\r\n\t\t\t\t\t// \t\ttemplateSection.ticketResponseList = ticketResponseList;\r\n\t\t\t\t\t// \t\tvm.finalData.push(templateSection);\t\t\r\n\t\t\t\t\t// \t }\r\n\t\t\t\t\t// });\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.implementSelectDataF('dataDocList', this);\r\n\t\t// vm.approveJobDataCap = function () { \r\n\t\t// \tangular.forEach(vm.finalData, function (q) {\r\n\t\t// \t\tvm.ticketResp = q.ticketResponseList\r\n\t\t// \t\t\tif(vm.ticketResp.ItemName) {\r\n\t\t// \t\t\t\tdelete vm.ticketResp.ItemValue;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.ImageName;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.ItemUpdateDate;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.checked;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.ItemValues;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.ItemType;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.Value;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.VideoName;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.enabled;\r\n\t\t// \t\t\t\tvm.ticketResp.ItemStatus = 'Approved';\r\n\t\t// \t\t\t}\r\n\t\t// \t});\r\n\t\t// \tJobDetailViewService.updateapproval(vm.finalData,token,vm.TicketId).then(function (resp) {\r\n\t\t// \t\tif (resp.status == 200) {\r\n\t\t// \t\tvm.showSuccess(\"Success\", \"approved\");\r\n\t\t// \t\t$timeout(function () {\r\n\t\t// \t\t\tvm.getTicketByJobId();\r\n\t\t// \t\t\tvm.GetPreApprovalStepEric();\r\n\t\t// \t\t\t$state.reload();\r\n\t\t// \t\t}, 2000);\r\n\t\t// \t\t}\r\n\t\t// \t\telse { \r\n\t\t// \t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t// \t\t}\r\n\t\t// \t});\r\n\t\t// }\r\n\r\n\t\t// vm.RejectJobDataCap = function () { \r\n\t\t// \tangular.forEach(vm.finalData, function (q) {\r\n\t\t// \t\tvm.ticketResp = q.ticketResponseList\r\n\t\t// \t\t\tif(vm.ticketResp.ItemName) {\r\n\t\t// \t\t\t\tdelete vm.ticketResp.ItemValue;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.ImageName;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.ItemUpdateDate;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.checked;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.ItemValues;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.ItemType;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.Value;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.VideoName;\r\n\t\t// \t\t\t\tdelete vm.ticketResp.enabled;\r\n\t\t// \t\t\t\tvm.ticketResp.ItemStatus = 'Rejected';\r\n\t\t// \t\t\t}\r\n\t\t// \t});\r\n\t\t// \tJobDetailViewService.updateapproval(vm.finalData,token,vm.TicketId).then(function (resp) {\r\n\t\t// \t\tif (resp.status == 200) {\r\n\t\t// \t\tvm.showSuccess(\"Success\", \"Rejected\");\r\n\t\t// \t\t$timeout(function () {\r\n\t\t// \t\t\t$state.reload();\r\n\t\t// \t\t\tvm.GetPreApprovalStepEric();\r\n\t\t// \t\t}, 2000);\r\n\t\t// \t\t}\r\n\t\t// \t\telse{ \r\n\t\t// \t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t// \t\t}\r\n\t\t// \t});\r\n\t\t// }\r\n\r\n\t\t// Shipment Tracking Details\r\n\t\tvm.GetShipmentDetails = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"ID\": vm.TicketId\r\n\t\t\t};\r\n\t\t\tJobDetailViewService.GetShipmentDetails(data, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.getShipmentDetailsList = resp.data;\r\n\t\t\t\t\t\t// vm.lineItemShip = vm.getShipmentDetailsList[0].JobLineItemList;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//Reject job\r\n\t\tvm.RejectJobBtn = function () {\r\n\t\t\tJobDetailViewService.RejectJob(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t}, 500);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CertimageServices = function(img,index){\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n\t\t\t if(resp.data == null || resp.data == '' ){\r\n\t\t\t vm.CertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t }\r\n\t\t else{\r\n\t\t\t vm.CertprofileImg[index] = resp.data;\r\n\t\t\t } \r\n\t\t\t }, function() {\r\n\t\t\t\tvm.CertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t }); \r\n\t\t }\r\n\r\n\t\tvm.getTicketByJobId = function () {\r\n\t\t\tJobDetailViewService.GetJobTicket(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\tvm.TicketInfo = resp.data;\r\n\t\t\t\tvm.sowLink = \"https://www.youtube.com/embed/\" + vm.TicketInfo.ScopeWorkPath;\r\n\t\t\t\tvm.PlannedClosureDateType = vm.TicketInfo.SPDUpdateWithInDays == 0 ? 'first' : 'other';\r\n\t\t\t\tvm.FreelancerBidForLightTicketList = vm.TicketInfo.FreelancerBidForLightTicketModel;\r\n\t\t\t\t// vm.FreelancerBidCount=vm.TicketInfo.FreelancerBidForLightTicketModel.length;\r\n\t\t\t\tvm.BonusPenaltyList = vm.TicketInfo.ListBonusPenalty;\r\n\t\t\t\tvm.ShipmentDetails = vm.TicketInfo.ShipmentDetails;\r\n\t\t\t\tvm.JobLatitude = vm.TicketInfo.Latitude;\r\n\t\t\t\tvm.JobLongitude = vm.TicketInfo.Longitude;\r\n\t\t\t\tvm.IsFaceRecognationOn = vm.TicketInfo.IsFaceRecognationOn;\r\n\t\t\t\tvm.name = vm.TicketInfo.UserName;\r\n\t\t\t\t// if (vm.TicketInfo.ConsumerContact) {\r\n\t\t\t\t// \tvm.TicketInfo.ConsumerContact = vm.TicketInfo.ConsumerContact.replace(/\\d(?=\\d{4})/g, '*');\r\n\t\t\t\t// }\r\n\t\t\t\t// if (vm.TicketInfo.AlternateConsumerContact) {\r\n\t\t\t\t// \tvm.TicketInfo.AlternateConsumerContact = vm.TicketInfo.AlternateConsumerContact.replace(/\\d(?=\\d{4})/g, '*');\r\n\t\t\t\t// }\r\n\t\t\t\tfor (var i = 0; i < vm.BonusPenaltyList.length; i++) {\r\n\t\t\t\t\tif (vm.BonusPenaltyList[i].RuleType == \"Bonus\")\r\n\t\t\t\t\t\tvm.BonusList.push(vm.BonusPenaltyList[i]);\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.PenaltyList.push(vm.BonusPenaltyList[i]);\r\n\t\t\t\t}\r\n\t\t\t\tvm.projectId = vm.TicketInfo.ProjectId;\r\n\r\n\t\t\t\t//vm.TicketInfo.IsLineItemAvailable=true;\r\n\t\t\t\tif (vm.TicketInfo.TicketStatus == 'New')\r\n\t\t\t\t\tvm.fileuploadShow = false;\r\n\t\t\t\telse\r\n\t\t\t\t\tvm.fileuploadShow = true;\r\n\t\t\t\t// vm.GetAllJobLineItems(vm.TicketId);\r\n\t\t\t\tif (vm.TicketInfo.SpareTransportType == '0') {\r\n\t\t\t\t\tclean(vm.TicketInfo.Courier);\r\n\t\t\t\t\t// var temp = (Object.keys(vm.TicketInfo.Courier).forEach((key) => (vm.TicketInfo.Courier[key] == null) && delete vm.TicketInfo.Courier[key]));\r\n\t\t\t\t\tif (vm.TicketInfo.Courier) {\r\n\t\t\t\t\t\tvm.SparePartAddress = (Object.values(vm.TicketInfo.Courier)).toString();\r\n\t\t\t\t\t\tvm.SpareTransportType = 'Courier';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else if (vm.TicketInfo.SpareTransportType == '1') {\r\n\t\t\t\t\t// var temp = Object.keys(vm.TicketInfo.PickUp).forEach((key) => (vm.TicketInfo.PickUp[key] == null) && delete vm.TicketInfo.PickUp[key]);\r\n\t\t\t\t\tclean(vm.TicketInfo.PickUp);\r\n\t\t\t\t\tvm.SparePartAddress = (Object.values(vm.TicketInfo.PickUp)).toString();\r\n\t\t\t\t\tvm.SpareTransportType = 'PickUp';\r\n\t\t\t\t} else if (vm.TicketInfo.SpareTransportType == '2') {\r\n\t\t\t\t\tclean(vm.TicketInfo.PickUpDrop.PickUp);\r\n\t\t\t\t\t// var temp = Object.keys(vm.TicketInfo.PickUpDrop.PickUp).forEach((key) => (vm.TicketInfo.PickUpDrop.PickUp[key] == null) && delete vm.TicketInfo.PickUpDrop.PickUp[key]);\r\n\t\t\t\t\tvm.SparePartAddress = (Object.values(vm.TicketInfo.PickUpDrop.PickUp)).toString();\r\n\t\t\t\t\tvm.SpareTransportType = 'PickUpDrop';\r\n\t\t\t\t\tvm.SparePartDropAddress = vm.TicketInfo.PickUpDrop.Address1 + ',' + vm.TicketInfo.PickUpDrop.Address2 + ',' + vm.TicketInfo.PickUpDrop.State + ',' + vm.TicketInfo.PickUpDrop.City + ',' + vm.TicketInfo.PickUpDrop.Pincode;\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.TicketInfo.Template == 'VSAT Troubleshooting' || vm.TicketInfo.Template == 'LeaseLine Troubleshooting') {\r\n\t\t\t\t\t// vm.GetStatusActivityInPie();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// if (vm.TicketInfo.LinkId) {\r\n\t\t\t\t// } else {\r\n\t\t\t\t// \tvm.getAllActivitiesForJob();\r\n\t\t\t\t// }\r\n\r\n\t\t\t\tangular.copy(vm.TicketInfo.TemplateModel, vm.TemplateData);\r\n\r\n\t\t\t\tfor (var index = 0; index < vm.TemplateData.SectionList.length; index++) {\r\n\t\t\t\t\tif (vm.TemplateData.SectionList[index].Action == 'Supervisor' && vm.TemplateData.SectionList[index].SectionName == 'Supervisor') {\r\n\t\t\t\t\t\tvm.SuperVisorData = vm.TemplateData.SectionList[index].ItemList;\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//ListFieldSupportTeam \r\n\t\t\t\tif (vm.TicketInfo.ListFieldSupportTeam) {\r\n\t\t\t\t\tfor (var index = 0; index < vm.TicketInfo.ListFieldSupportTeam.length; index++) {\r\n\t\t\t\t\t\tif (vm.TicketInfo.ListFieldSupportTeam.length >= 0) {\r\n\t\t\t\t\t\t\tvm.ListOfSupportTeam = vm.TicketInfo.ListFieldSupportTeam;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.TicketInfo.CompareFaceAttemptList) {\r\n\t\t\t\t\tvm.CompareFaceAttemptList = vm.TicketInfo.CompareFaceAttemptList;\r\n\t\t\t\t\t// for (var index = 0; index < vm.TicketInfo.CompareFaceAttemptList.length; index++) {\r\n\t\t\t\t\t// \tvm.CertimageServices(vm.CompareFaceAttemptList[index].Image,index);\r\n\t\t\t\t\t// }\r\n\t\t\t\t}\r\n\t\t\t\tif(vm.TicketInfo.InvoiceList){\r\n\t\t\t\t\tvm.initializeInvoices()\r\n\t\t\t\t}\r\n\t\t\t\tvm.getCallTypeList(vm.TicketInfo.JobType, vm.SuperVisorData);\r\n\t\t\t\tvm.ListActionWise = SeperateSectionAndItems(vm.TemplateData.SectionList, 'Action');\r\n\r\n\r\n\t\t\t\tvm.TicketInfoEdit = {\r\n\t\t\t\t\tConsumerName: vm.TicketInfo.ConsumerName,\r\n\t\t\t\t\tConsumerContact: vm.TicketInfo.ConsumerContact,\r\n\t\t\t\t\tAddress1: vm.TicketInfo.Address1,\r\n\t\t\t\t\tAddress2: vm.TicketInfo.Address2,\r\n\t\t\t\t\tPincode: vm.TicketInfo.Pincode,\r\n\t\t\t\t\t// StartTime: vm.TicketInfo.StartTime,\r\n\t\t\t\t\tPlannedStartDate: vm.TicketInfo.PlannedStartDate,\r\n\t\t\t\t\t// EndTime: vm.TicketInfo.EndTime,\r\n\t\t\t\t\tEndTime: ''\r\n\t\t\t\t}\r\n\t\t\t\tvm.TicketDescEdit = {\r\n\t\t\t\t\tSkillSet: vm.TicketInfo.SkillSet,\r\n\t\t\t\t\tPaymentType: vm.TicketInfo.PaymentType,\r\n\t\t\t\t\tTemplate: vm.TicketInfo.Template,\r\n\t\t\t\t\tJobDescription: vm.TicketInfo.JobDescription,\r\n\t\t\t\t\tPriority: vm.TicketInfo.Priority,\r\n\t\t\t\t\tSiteId: vm.TicketInfo.SiteId,\r\n\t\t\t\t\tSiteName: vm.TicketInfo.SiteName,\r\n\t\t\t\t\tRegion: vm.TicketInfo.Region,\r\n\t\t\t\t\tBidDuration: vm.TicketInfo.BidDuration\r\n\t\t\t\t}\r\n\t\t\t\t// vm.getAllStates();\r\n\t\t\t\t// if (vm.TicketInfo.State) {\r\n\t\t\t\t// \tvm.getCities(vm.TicketInfo.State);\r\n\t\t\t\t// }\r\n\r\n\t\t\t\tJobDetailViewService.getTemplateByName(vm.TicketInfo.Template, token, loggedinUser, vm.TicketInfo.TicketId, function (data) {\r\n\t\t\t\t\tvm.templateData = data;\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t\tvm.TechnicianSource = vm.TicketInfo.TechnicianSource ? vm.TicketInfo.TechnicianSource : vm.TechnicianSource = '';\r\n\r\n\t\t\t\tvm.showPrefer = 'fixed';\r\n\t\t\t\t// \tvm.GetFixedUser(false);\r\n\t\t\t\t// \tvm.GetNearByUser(false);\r\n\t\t\t\t// vm.GetPreviousWorker(false);\r\n\t\t\t\t// vm.GetTalentPoolUser(false);\r\n\r\n\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.disabledDrop = true;\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.TicketInfo.MetrialDeliverStatus) {\r\n\t\t\t\t\tvm.SelectedMaterial = vm.TicketInfo.MetrialDeliverStatus;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t// if (vm.TechnicianSource == '0' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t// \tvm.showPrefer = 'fixed';\r\n\t\t\t\t// \tvm.showF = true;\r\n\t\t\t\t// \tvm.showN = false;\r\n\t\t\t\t// \tvm.showT = false;\r\n\t\t\t\t// \tvm.showP = false;\r\n\t\t\t\t// \tvm.GetFixedUser(false);\r\n\t\t\t\t// } else if (vm.TechnicianSource == '1' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t// \tvm.showPrefer = 'nearBy';\r\n\t\t\t\t// \tvm.showF = false;\r\n\t\t\t\t// \tvm.showN = true;\r\n\t\t\t\t// \tvm.showT = false;\r\n\t\t\t\t// \tvm.showP = false;\r\n\t\t\t\t// \tvm.GetNearByUser(false);\r\n\t\t\t\t// } else if (vm.TechnicianSource == '2' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t// \tvm.showPrefer = 'true';\r\n\t\t\t\t// \tvm.showF = false;\r\n\t\t\t\t// \tvm.showN = false;\r\n\t\t\t\t// \tvm.showT = true;\r\n\t\t\t\t// \tvm.showP = false;\r\n\t\t\t\t// \tvm.GetTalentPoolUser(true);\r\n\t\t\t\t// } else if (vm.TechnicianSource == '3' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t// \tvm.showPrefer = 'previous';\r\n\t\t\t\t// \tvm.showF = false;\r\n\t\t\t\t// \tvm.showN = false;\r\n\t\t\t\t// \tvm.showT = false;\r\n\t\t\t\t// \tvm.showP = true;\r\n\t\t\t\t// \tvm.GetPreviousWorker(true);\r\n\t\t\t\t// } else {\r\n\t\t\t\t// \tvm.showF = true;\r\n\t\t\t\t// \tvm.showN = true;\r\n\t\t\t\t// \tvm.showT = true;\r\n\t\t\t\t// \tvm.showP = true;\r\n\t\t\t\t// \tvm.GetFixedUser(false);\r\n\t\t\t\t// \tvm.GetNearByUser(false);\r\n\t\t\t\t// \tvm.GetPreviousWorker(false);\r\n\t\t\t\t// \tvm.GetTalentPoolUser(false);\r\n\t\t\t\t// }\r\n\r\n\t\t\t\tif ($localStorage.loggedInUser_Role == 'Vendor Manager' || $localStorage.loggedInUser_Role == 'Service Center') {\r\n\t\t\t\t\tvm.showPrefer = 'fixed';\r\n\t\t\t\t\tvm.showF = true;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetFixedUser(true);\r\n\t\t\t\t}\r\n vm.GetAllSymptomDocByProductGroup();\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\tif(vm.TicketInfo.SymptomName){\r\n\t\t\t\t\t\tvm.SymptomName = vm.TicketInfo.SymptomName;\r\n\t\t\t\t\t\tvm.SymptomCode = vm.TicketInfo.SymptomCode;\r\n\t\t\t\t\t\tvm.GetDefectsValuesBySymptomValue(vm.SymptomCode)\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 2000);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\tif(vm.TicketInfo.DefectName){\r\n\t\t\t\t\t\tvm.DefectName = vm.TicketInfo.DefectName;\r\n\t\t\t\t\t\tvm.DefectCode = vm.TicketInfo.DefectCode;\r\n\t\t\t\t\t\tvm.GetAllRepairDocsByDefectValue(vm.DefectCode)\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 4000);\r\n\r\n\t\t\t\tvm.ResolutionName = vm.TicketInfo.ResolutionName;\r\n\t\t\t\tvm.ResolutionCode = vm.TicketInfo.ResolutionCode;\r\n\t\t\t\tvm.BrandNameTicket = vm.TicketInfo.BrandName\r\n\t\t\t\tvm.productGroup = vm.TicketInfo.ProductGroup\r\n\t\t\t\tvm.product = vm.TicketInfo.ProductType\r\n\t\t\t\tvm.modelNumber = vm.TicketInfo.ModelNumber\r\n\r\n\t\t\t\t// vm.GetAllProductsForBrand();\r\n\t\t\t\tif(vm.TicketInfo.JobAccountId == '361' || vm.TicketInfo.JobAccountId == '364'){\r\n\t\t\t\t\tvm.GetModelNumberByTicketId();\r\n\t\t\t\t}\r\n\t\t\t\tvm.GetCRMCallTypeList(vm.product);\r\n\t\t\t\t// if(vm.product){\r\n\t\t\t\t// \tvm.GetAllActiveProductModelMaster(vm.product);\r\n\t\t\t\t// }\r\n\t\t\t\tvm.createHalfDonutChart();\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.getTicketByJobId();\r\n\r\n\r\n\r\n\t\tvm.GetSchedulingEvaluationresult = function(){\r\n\t\t\tif (vm.TechnicianSource == '0' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'fixed';\r\n\t\t\t\t\tvm.showF = true;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetFixedUser(false);\r\n\t\t\t\t} else if (vm.TechnicianSource == '1' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'nearBy';\r\n\t\t\t\t\tvm.showF = false;\r\n\t\t\t\t\tvm.showN = true;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetNearByUser(false);\r\n\t\t\t\t} else if (vm.TechnicianSource == '2' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'true';\r\n\t\t\t\t\tvm.showF = false;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = true;\r\n\t\t\t\t\tvm.showP = false;\r\n\t\t\t\t\tvm.GetTalentPoolUser(true);\r\n\t\t\t\t} else if (vm.TechnicianSource == '3' && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\tvm.showPrefer = 'previous';\r\n\t\t\t\t\tvm.showF = false;\r\n\t\t\t\t\tvm.showN = false;\r\n\t\t\t\t\tvm.showT = false;\r\n\t\t\t\t\tvm.showP = true;\r\n\t\t\t\t\tvm.GetPreviousWorker(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.showF = true;\r\n\t\t\t\t\tvm.showN = true;\r\n\t\t\t\t\tvm.showT = true;\r\n\t\t\t\t\tvm.showP = true;\r\n\t\t\t\t\tvm.GetFixedUser(false);\r\n\t\t\t\t\tvm.GetNearByUser(false);\r\n\t\t\t\t\tvm.GetPreviousWorker(false);\r\n\t\t\t\t\tvm.GetTalentPoolUser(false);\r\n\t\t\t\t}\r\n\t\t\t\tJobDetailViewService.GetSchedulingEvaluationResult(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tvm.FixedUserList = resp.data.users;\r\n\t\t\t\t\tvm.FixedUserLength = vm.FixedUserList.length;\r\n\r\n\t\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.addClassInButton = function () {\r\n\t\t\tif (vm.TechnicianSource && vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$('#btnFixedTeam').addClass('activeButton');\r\n\t\t\t\t\t$('#btnNearBy').addClass('activeButton');\r\n\t\t\t\t\t$('#btnTalent').addClass('activeButton');\r\n\t\t\t\t\t$('#btnPrefer').addClass('activeButton');\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.planerDateModal = {};\r\n\t\tvm.editplanCloser = function () {\r\n\t\t\tvm.TicketInfoEdit['PlannedClosureDate'] = vm.TicketInfo.PlannedClosureDate;\r\n\t\t\tvm.getPlannedClosureUpdateReasons();\r\n\t\t}\r\n\r\n\t\tvm.GetAllOrderDetailTicketId = function (){\r\n\t\t\tJobDetailViewService.GetAllOrderDetailTicketId(vm.TicketInfo.TicketId,loggedinUser, token).then(function(resp){\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.OrderDetailList = resp.data;\r\n\t\t\t\t }\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.disableRejectButton = false;\r\n\t\tvm.ReplacedPartId = \"\";\r\n\t\tvm.OpenAllocateModal = function (partId) {\r\n\t\t\tvm.ReplacedPartId = partId;\r\n\t\t\tvm.AllocateModal = $uibModal.open({\r\n\t\t\t templateUrl: \"allocationModal.html\",\r\n\t\t\t backdrop: \"static\",\r\n\t\t\t size: \"md\",\r\n\t\t\t scope: $scope,\r\n\t\t\t});\r\n\t\t };\r\n \r\n\t\t vm.closeAllocateModal = function () {\r\n\t\t\tvm.AllocateModal.close();\r\n\t\t\tvm.ReplacedPartId = \"\";\r\n\t\t\tvm.disableRejectButton = false;\r\n\t\t };\r\n\t\t\r\n\t\tvm.AddTicketDefectStockToServiceCenter = function () {\r\n\t\t\tvm.disableRejectButton = true;\r\n\t\t\tvar DeadStokReqModel = {\r\n\t\t\t\t\"TicketId\" : vm.TicketInfo.TicketId,\r\n\t\t\t\t\"PartId\" : vm.ReplacedPartId\r\n\t\t\t}\r\n\t\t\tJobDetailViewService.AddTicketDefectStockToServiceCenter(DeadStokReqModel,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.closeAllocateModal();\r\n\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetInventoryPartsDetails();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\tvm.disableRejectButton = false;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.orderdetailsview = function (salesOrderDetail) {\r\n\t\t\t$state.go('index.WareHouseOrderDetailView', {\r\n\t\t\t\torder_id: salesOrderDetail\r\n\t\t\t}, {\r\n\t\t\t\treload: true\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetAllFollowUpForJob = function () {\r\n\t\t\tCentralHDTicketsViewService.GetAllFollowUpForJob(vm.TicketInfo.TicketId, loggedinUser, token).then(function (resp) {\r\n\t\t\t if (resp && resp.data) {\r\n\t\t\t\tvm.getfollowUpList = resp.data;\r\n\t\t\t }\r\n\t \r\n\t\t\t}, function () {\r\n\t\t\t});\r\n\t\t }\r\n\r\n\t\tvm.getPlannedClosureUpdateReasons = function () {\r\n\t\t\tJobDetailViewService.GetCancellationReasons(vm.TicketInfo.TicketId, 'PlannedClosure', loggedinUser, token).then(function (resp) {\r\n\t\t\t if (resp && resp.data) {\r\n\t\t\t\tvm.PlannedUpdateReasonsList = resp.data;\r\n\t\t\t\tvm.planerDateModal = $uibModal.open({\r\n\t\t\t\t\ttemplateUrl: 'editplanerDate.html',\r\n\t\t\t\t\tscope: $scope\r\n\t\t\t\t});\r\n\t\t\t }\r\n\t\t\t});\r\n\t\t }\r\n\r\n\t\tvm.closeplanerDate = function () {\r\n\t\t\tvm.planerDateModal.close();\r\n\t\t\tvm.PlannedClosureReason = \"\";\r\n\t\t}\r\n\r\n\t\tvm.updatePlannedClosure = function () {\r\n\t\t\tvm.PlannedClosureticketList = [];\r\n\t\t\tvm.PlannedClosureticketList.push(vm.TicketInfo.TicketId);\r\n\r\n\t\t\tvar data = {\r\n\t\t\t\t\"TicketIds\": vm.PlannedClosureticketList,\r\n\t\t\t\t\"TicketPlannedClosureDate\": moment(vm.TicketInfoEdit.PlannedClosureDate).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n\t\t\t\t\"IsWithInDays\": vm.IsWithInDays == 'first' ? true : false,\r\n\t\t\t\t\"WithInDays\": vm.WithInDays,\r\n\t\t\t\t\"PlannedDateChangeReason\": vm.PlannedClosureReason\r\n\t\t\t};\r\n\r\n\t\t\tJobDetailViewService.updatePlannedClosure(loggedinUser, data, token, function (res) {\r\n\t\t\t\tvm.showSuccess(\"Success\", res);\r\n\t\t\t\tvm.planerDateModal.close();\r\n\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.jobDescription = {};\r\n\t\tvm.editJobDesc = function () {\r\n\r\n\t\t\tvm.TicketDescEdit['SkillSet'] = vm.TicketInfo.SkillSet;\r\n\t\t\tvm.TicketDescEdit['PaymentType'] = vm.TicketInfo.PaymentType;\r\n\t\t\tvm.TicketDescEdit['Template'] = vm.TicketInfo.Template;\r\n\t\t\tvm.TicketDescEdit['JobDescription'] = vm.TicketInfo.JobDescription;\r\n\t\t\tvm.TicketDescEdit['Priority'] = vm.TicketInfo.Priority;\r\n\t\t\tvm.TicketDescEdit['SiteId'] = vm.TicketInfo.SiteId;\r\n\t\t\tvm.TicketDescEdit['SiteName'] = vm.TicketInfo.SiteName;\r\n\t\t\tvm.TicketDescEdit['Region'] = vm.TicketInfo.Region;\r\n\t\t\tvm.TicketDescEdit['BidDuration'] = vm.TicketInfo.BidDuration;\r\n\r\n\t\t\tvm.jobDescription = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobDescription.html',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\twindowClass: 'schedulerModal'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeJobDesc = function () {\r\n\t\t\tvm.jobDescription.close();\r\n\t\t}\r\n\r\n\t\tvm.updateJobDesc = function () {\r\n\t\t\tvm.jobDescForm.submitted = true;\r\n\t\t\tif (vm.jobDescForm.$valid) {\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t// \"SkillSet\": vm.TicketDescEdit.SkillSet,\r\n\t\t\t\t\t// \"PaymentType\": vm.TicketDescEdit.PaymentType,\r\n\t\t\t\t\t// \"Template\": vm.TicketDescEdit.Template,\r\n\t\t\t\t\t\"JobDescription\": vm.TicketDescEdit.JobDescription,\r\n\t\t\t\t\t\"Priority\": vm.TicketDescEdit.Priority,\r\n\t\t\t\t\t\"SiteId\": vm.TicketDescEdit.SiteId,\r\n\t\t\t\t\t\"SiteName\": vm.TicketDescEdit.SiteName,\r\n\t\t\t\t\t\"TicketId\": vm.TicketInfo.TicketId\r\n\t\t\t\t\t// \"Region\": vm.TicketDescEdit.Region,\r\n\t\t\t\t\t// \"BidDuration\": vm.TicketInfoEdit.BidDuration\r\n\t\t\t\t};\r\n\r\n\t\t\t\tJobDetailViewService.updateJobDescription(loggedinUser, data, token, function (res) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", res);\r\n\t\t\t\t\tvm.jobDescription.close();\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t//window.location.reload(true);\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log(\"invalid values\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.editAlternateNumber = function () {\r\n\t\t\tvm.TicketInfoEdit['AlternateConsumerContact'] = vm.TicketInfo.AlternateConsumerContact;\r\n\t\t\tvm.TicketInfoEdit['SecondAlternateContactNumber'] = vm.TicketInfo.SecondAlternateContactNumber;\r\n\t\t\tvm.AltNumberModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editAlternateNumber.html',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\tsize: 'md',\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeAlternateNumber = function () {\r\n\t\t\tvm.AltNumberModal.close();\r\n\t\t\tvm.disableCreateButton = false;\r\n\t\t}\r\n\r\n\t\tvm.UpdateContactInTicket = function () {\r\n\t\t\tvm.AlternateNumberForm.submitted = true;\r\n\t\t\tif (vm.AlternateNumberForm.$valid) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"TicketId\": vm.TicketInfo.TicketId,\r\n\t\t\t\t\t\"AlternateConsumerContact\": vm.TicketInfoEdit.AlternateConsumerContact,\r\n\t\t\t\t\t\"SecondAlternateContactNumber\": vm.TicketInfoEdit.SecondAlternateContactNumber\r\n\t\t\t\t};\r\n\t\t\t\tJobDetailViewService.UpdateContactInTicket(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Alternate number updated successfully.\");\r\n\t\t\t\t\t\tvm.closeAlternateNumber();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\r\n\t\tvm.jobAddressModal = {};\r\n\t\tvm.editJobAddress = function () {\r\n\t\t\tvm.getAllStates();\r\n\t\t\tif (vm.TicketInfo.State) {\r\n\t\t\t\t\tvm.getCities(vm.TicketInfo.State);\r\n\t\t\t\t}\r\n\r\n\t\t\tvm.TicketInfoEdit['ConsumerName'] = vm.TicketInfo.ConsumerName;\r\n\t\t\tvm.TicketInfoEdit['ConsumerContact'] = vm.TicketInfo.ConsumerContact;\r\n\t\t\tvm.TicketInfoEdit['Address1'] = vm.TicketInfo.Address1;\r\n\t\t\tvm.TicketInfoEdit['Address2'] = vm.TicketInfo.Address2;\r\n\t\t\tvm.TicketInfoEdit['Pincode'] = vm.TicketInfo.Pincode;\r\n\t\t\tvm.TicketInfoEdit['StartTime'] = vm.TicketInfo.StartTime;\r\n\t\t\tvm.TicketInfoEdit['EndTime'] = vm.TicketInfo.EndTime;\r\n\t\t\tvm.TicketInfoEdit['Region'] = vm.TicketInfo.Region;\r\n\t\t\tvm.TicketInfoEdit['SubRegion'] = vm.TicketInfo.SubRegion;\r\n\r\n\t\t\tif (vm.states && !vm.TicketInfoEdit.State || vm.TicketInfoEdit.State != vm.TicketInfo.State) {\r\n\t\t\t\tangular.forEach(vm.states, function (s) {\r\n\t\t\t\t\tif (s == vm.TicketInfo.State) {\r\n\t\t\t\t\t\tvm.TicketInfoEdit.State = s;\r\n\t\t\t\t\t\tvm.getCities(vm.TicketInfo.State);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvm.jobAddressModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAddress.html',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\twindowClass: 'schedulerModal'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeJobAddress = function () {\r\n\t\t\tvm.jobAddressModal.close();\r\n\t\t}\r\n\r\n\t\tvm.updateJobAddress = function () {\r\n\t\t\tvm.jobAddressForm.submitted = true;\r\n\t\t\tif (vm.jobAddressForm.$valid) {\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"ConsumerContact\": vm.TicketInfoEdit.ConsumerContact,\r\n\t\t\t\t\t\"Address1\": vm.TicketInfoEdit.Address1,\r\n\t\t\t\t\t\"Address2\": vm.TicketInfoEdit.Address2,\r\n\t\t\t\t\t\"ConsumerName\": vm.TicketInfoEdit.ConsumerName,\r\n\t\t\t\t\t\"State\": vm.TicketInfoEdit.State,\r\n\t\t\t\t\t\"City\": vm.TicketInfoEdit.City,\r\n\t\t\t\t\t\"Pincode\": vm.TicketInfoEdit.Pincode,\r\n\t\t\t\t\t\"StartTime\": vm.TicketInfoEdit.StartTime,\r\n\t\t\t\t\t\"EndTime\": vm.TicketInfoEdit.EndTime,\r\n\t\t\t\t\t\"Region\": vm.TicketInfo.Region,\r\n\t\t\t\t\t\"SubRegion\": vm.TicketInfo.SubRegion,\r\n\r\n\t\t\t\t};\r\n\r\n\t\t\t\tJobDetailViewService.saveTicket(loggedinUser, vm.TicketInfo.TicketId, data, token, function (res) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", res);\r\n\t\t\t\t\tvm.jobAddressModal.close();\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t//window.location.reload(true);\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log(\"invalid values\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//call customer or freelancer\r\n\t\tvm.callToCustomer = function (TicketId, ConnectTo) {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"ConnectTo\": ConnectTo,\r\n\t\t\t\t\"TicketId\": TicketId\r\n\t\t\t};\r\n\t\t\tJobDetailViewService.callToCustomer(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.ClickToCallAlternate = function (TicketId, ConnectTo) {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"ConnectTo\": ConnectTo,\r\n\t\t\t\t\"TicketId\": TicketId\r\n\t\t\t};\r\n\t\t\tJobDetailViewService.ClickToCallAlternate(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.jobPayment = {};\r\n\t\tvm.editJobPayment = function () {\r\n\t\t\tvm.TicketInfoEdit['FreelancerRate'] = vm.TicketInfo.FreelancerRate;\r\n\t\t\tvm.TicketInfoEdit['MobiforceCommission'] = vm.TicketInfo.MobiforceCommission;\r\n\t\t\tvm.TicketInfoEdit['BroadcastRate'] = vm.TicketInfo.BroadcastRate;\r\n\t\t\tvm.serviceType = vm.TicketInfo.PaymentType;\r\n\t\t\tvm.jobPaymentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobPayment.html',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\twindowClass: 'schedulerModal'\r\n\t\t\t});\r\n\r\n\t\t\tvm.calculatePrice();\r\n\t\t\tvm.calculateFreelancerPrice();\r\n\t\t}\r\n\r\n\t\tvm.closeJobPayment = function () {\r\n\t\t\tvm.jobPaymentModal.close();\r\n\t\t}\r\n\t\tvm.updateJobPayment = function () {\r\n\r\n\t\t\tvm.jobPaymentForm.submitted = true;\r\n\t\t\tif (vm.jobPaymentForm.$valid) {\r\n\t\t\t\t// var data = {\r\n\t\t\t\t// \t\"FreelancerRate\": vm.TicketInfoEdit.FreelancerRate,\r\n\t\t\t\t// \t\"BroadcastRate\": vm.TicketInfoEdit.BroadcastRate,\r\n\t\t\t\t// \t\"BroadcastGrossRate\": (vm.TicketInfoEdit.BroadcastRate * ((vm.GSTPercentange+100)*.01))\t\t\t\r\n\t\t\t\t// };\r\n\t\t\t\tJobDetailViewService.UpdateJobPayment(loggedinUser, vm.TicketInfo.TicketId, vm.TicketInfoEdit.BroadcastRate, token, function (res) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", res);\r\n\t\t\t\t\tvm.jobPaymentModal.close();\r\n\t\t\t\t\t//window.location.reload(true);\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t} else {\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.getAllStates = function () {\r\n\t\t\tJobDetailViewService.getAllState(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.states = resp.data;\r\n\t\t\t\tangular.forEach(vm.states, function (s) {\r\n\t\t\t\t\tif (s == vm.TicketInfo.State) {\r\n\t\t\t\t\t\tvm.TicketInfoEdit.State = s;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.getCities = function (state) {\r\n\t\t\tif (state != \"\" && state.length > 0) {\r\n\t\t\t\tvm.cities = [];\r\n\t\t\t\tJobDetailViewService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t\t\t\tvm.cities = resp.data;\r\n\t\t\t\t\tangular.forEach(vm.cities, function (c) {\r\n\t\t\t\t\t\tif (vm.TicketInfo.City) {\r\n\t\t\t\t\t\t\tvar city = vm.TicketInfo.City.toUpperCase();\r\n\t\t\t\t\t\t\tif (c == city) {\r\n\t\t\t\t\t\t\t\tvm.TicketInfoEdit.City = c;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.history = {};\r\n\t\tvm.getHistory = function () {\r\n\t\t\tJobDetailViewService.getHistory(vm.TicketId, token).then(function (res) {\r\n\t\t\t\tvm.history = res.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.getHistory();\r\n\r\n\t\tvm.getAllActivitiesForJob = function () {\r\n\t\t\tJobDetailViewService.getAllActivitiesForJob(vm.TicketId, loggedinUser, token, function (data) {\r\n\t\t\t\tvm.statusTracker = data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.jobAppointmentModal = {};\r\n\t\tvm.availableTimeSlots = [];\r\n\t\tvm.editJobAppointment = function () {\r\n\t\t\tvm.TicketInfoEdit['ConsumerName'] = vm.TicketInfo.ConsumerName;\r\n\t\t\tvm.TicketInfoEdit['ConsumerContact'] = vm.TicketInfo.ConsumerContact;\r\n\t\t\tvm.TicketInfoEdit['Address1'] = vm.TicketInfo.Address1;\r\n\t\t\tvm.TicketInfoEdit['Address2'] = vm.TicketInfo.Address2;\r\n\t\t\tvm.TicketInfoEdit['Pincode'] = vm.TicketInfo.Pincode;\r\n\t\t\tvm.TicketInfoEdit['StartTime'] = new Date(vm.TicketInfo.StartTime);\r\n\t\t\tvm.TicketInfoEdit['EndTime'] = new Date(vm.TicketInfo.EndTime);\r\n\t\t\tvm.TicketInfoEdit['PlannedStartDate'] = vm.TicketInfo.PlannedStartDate ? new Date(vm.TicketInfo.PlannedStartDate) : new Date();\r\n\t\t\tif (vm.states && !vm.TicketInfoEdit.State || vm.TicketInfoEdit.State != vm.TicketInfo.State) {\r\n\t\t\t\tangular.forEach(vm.states, function (s) {\r\n\t\t\t\t\tif (s == vm.TicketInfo.State) {\r\n\t\t\t\t\t\tvm.TicketInfoEdit.State = s;\r\n\t\t\t\t\t\tvm.getCities(vm.TicketInfo.State);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tvm.checkAppointmentOtpRequirement();\r\n\t\t\tupdateAvailableTimeSlots();\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAppointment.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeJobAppointment = function () {\r\n\t\t\tvm.jobAppointmentModal.close();\r\n\t\t\tvm.appointmentCode = '';\r\n\t\t\tvm.AppointmentTime = '';\r\n\t\t\tvm.disableAppointmentOption = false;\r\n\t\t\tvm.TicketInfoEdit.PlannedStartDate = '';\r\n\t\t}\r\n\r\n\r\n\t\tfunction isTimeSlotValid(slot) {\r\n\t\t\tvar currentDate = new Date();\r\n\t\t\tvar selectedDate = new Date(vm.TicketInfoEdit.PlannedStartDate);\r\n\t\t\tvar timeParts = slot.value.split(':');\r\n\t\t\tvar slotHours = parseInt(timeParts[0], 10);\r\n\t\t\tvar slotMinutes = parseInt(timeParts[1], 10);\r\n\t\t\tvar slotTime = new Date(selectedDate);\r\n\t\t\tslotTime.setHours(slotHours, slotMinutes, 0);\r\n\t\t\tif (\r\n\t\t\t\tselectedDate.toDateString() === currentDate.toDateString() &&\r\n\t\t\t\tslotTime <= currentDate\r\n\t\t\t) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\r\n\t\tfunction updateAvailableTimeSlots() {\r\n\t\t\t$timeout(function () {\r\n\t\t\t\tvm.availableTimeSlots = vm.timeSlots.filter(isTimeSlotValid);\r\n\t\t\t\tif (vm.availableTimeSlots.length > 0) {\r\n\t\t\t\t\tselectDefaultTimeSlot();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.AppointmentTime = '';\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction selectDefaultTimeSlot() {\r\n\t\t\tif (vm.availableTimeSlots.length > 0) {\r\n\t\t\t\tvm.AppointmentTime = vm.availableTimeSlots[0].value;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.$watch('JobDetailViewCtrl.TicketInfoEdit.PlannedStartDate', function (newValue, oldValue) {\r\n\t\t\tif (newValue !== oldValue) {\r\n\t\t\t\tupdateAvailableTimeSlots();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\tvm.isOtpRequired = true;\r\n\r\n\t\tvm.checkAppointmentOtpRequirement = function() {\r\n\t\t\tvar plannedStartDate = moment(vm.TicketInfoEdit.PlannedStartDate).format(\"YYYY-MM-DD\");\r\n\t\t\tvar assignedDate = moment(vm.TicketInfo.AssignationDate).format(\"YYYY-MM-DD\") ;\r\n\r\n\t\t\tif (plannedStartDate == assignedDate) {\r\n\t\t\t\tvm.isOtpRequired = false;\r\n\t\t\t} else {\r\n\t\t\t\tvm.isOtpRequired = true;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tvm.updateJobAppointment = function () {\r\n\r\n\t\t\tvm.jobAppointmentForm.submitted = true;\r\n\t\t\tif (vm.jobAppointmentForm.$valid) {\r\n\t\t\t\tvar sDate = moment(vm.TicketInfoEdit.PlannedStartDate).format(\"YYYY-MM-DD\");\r\n\t\t\t\tvm.Stdate = sDate;\r\n\t\t\t\tvm.Stime = vm.AppointmentTime;\r\n\t\t\t\tvm.CurrentDate = moment().format('YYYY-MM-DDTHH:mm:ss.SSS');\r\n\t\t\t\tvm.dateTime = moment(vm.Stdate + ' ' + vm.Stime).format('YYYY-MM-DDTHH:mm:ss.SSS');\r\n\t\t\t\tif (moment(vm.dateTime)._i >= moment(vm.CurrentDate)._i) {\r\n\t\t\t\t\tJobDetailViewService.updateStartTime(vm.TicketInfo.TicketId, loggedinUser, vm.dateTime, vm.appointmentCode, token).then(function (resp) {\r\n\t\t\t\t\t\tif(resp && resp.status == 202){\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Appointment Date updated successfully\");\r\n\t\t\t\t\t\t\tvm.closeJobAppointment();\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", \"Start time should be greater than current time!\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.UpdateMatrialStatus = function (MetrialDeliveredStatus) {\r\n\t\t\tif (MetrialDeliveredStatus) {\r\n\t\t\t\tJobDetailViewService.UpdateMetrialDeliveredStatus(vm.TicketInfo.TicketId, loggedinUser, MetrialDeliveredStatus, token, function (res) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Matrial Delivered Status updated successfully\");\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select matrial delivred status\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.getReadableTime = function (time) {\r\n\t\t\tvm.timeDisplay = \"\";\r\n\t\t\tif (typeof time == \"string\") {\r\n\t\t\t\tvm.timeDisplay = $filter('date')(new Date(time), \"yyyy/MM/dd h:mm:ss a\");\r\n\t\t\t}\r\n\t\t\tif (typeof time == \"object\") {\r\n\t\t\t\tvm.timeDisplay = time.format(\"DD/MMM/YY LTS\");\r\n\t\t\t}\r\n\t\t\treturn vm.timeDisplay;\r\n\t\t}\r\n\r\n\t\tvm.isUpdatePermission = function () {\r\n\t\t\tif (vm.VerticalName == 'Spectro Labs') {\r\n\t\t\t\tif (accountConfig && accountConfig.MenuListModel) {\r\n\t\t\t\t\tfor (var i = 0; i < accountConfig.MenuListModel.length; i++) {\r\n\t\t\t\t\t\tif (accountConfig.MenuListModel[i].MenuName == \"Jobs\") {\r\n\t\t\t\t\t\t\tfor (var j = 0; j < accountConfig.MenuListModel[i].SubMenusList.length; j++) {\r\n\t\t\t\t\t\t\t\tif (accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == \"All Tickets\") {\r\n\t\t\t\t\t\t\t\t\treturn accountConfig.MenuListModel[i].SubMenusList[j].UpdatePermission.split(\",\").indexOf($localStorage.loggedInUser_Role) >= 0;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (accountConfig && accountConfig.MenuListModel) {\r\n\t\t\t\t\tfor (var i = 0; i < accountConfig.MenuListModel.length; i++) {\r\n\t\t\t\t\t\tif (accountConfig.MenuListModel[i].MenuName == \"Jobs\") {\r\n\t\t\t\t\t\t\tfor (var j = 0; j < accountConfig.MenuListModel[i].SubMenusList.length; j++) {\r\n\t\t\t\t\t\t\t\tif (accountConfig.MenuListModel[i].SubMenusList[j].SubMenuName == \"All Jobs\") {\r\n\t\t\t\t\t\t\t\t\treturn accountConfig.MenuListModel[i].SubMenusList[j].UpdatePermission.split(\",\").indexOf($localStorage.loggedInUser_Role) >= 0;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvm.getDropDownOptions = function (SectionName, ItemName) {\r\n\t\t\tvar options = [];\r\n\t\t\tif (vm.templateData && vm.templateData.SectionList) {\r\n\t\t\t\tangular.forEach(vm.templateData.SectionList, function (l) {\r\n\t\t\t\t\tif (l.SectionName == SectionName && l.ItemList && l.ItemList.length > 0) {\r\n\t\t\t\t\t\tangular.forEach(l.ItemList, function (item) {\r\n\t\t\t\t\t\t\tif (item.ItemName == ItemName && item.ItemType == \"Dropdown Type\" && item.field_options && item.field_options.options && item.field_options.options.length > 0) {\r\n\t\t\t\t\t\t\t\t//$log.log(\"item.field_options.options\", item.field_options.options);\r\n\t\t\t\t\t\t\t\toptions = item.field_options.options;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\treturn options;\r\n\t\t}\r\n\r\n\t\tvm.getDropDownOptionsForCheckboxList = function (SectionName, ItemName) {\r\n\t\t\tvar options = [];\r\n\t\t\tif (vm.templateData && vm.templateData.SectionList) {\r\n\t\t\t\tangular.forEach(vm.templateData.SectionList, function (l) {\r\n\t\t\t\t\tif (l.SectionName == SectionName && l.ItemList && l.ItemList.length > 0) {\r\n\t\t\t\t\t\tangular.forEach(l.ItemList, function (item) {\r\n\t\t\t\t\t\t\tif (item.ItemName == ItemName && item.ItemType == \"CheckBoxList DropDown Type\" && item.field_options && item.field_options.options && item.field_options.options.length > 0) {\r\n\t\t\t\t\t\t\t\t//$log.log(\"item.field_options.options\", item.field_options.options);\r\n\t\t\t\t\t\t\t\toptions = item.field_options.options;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\treturn options;\r\n\t\t}\r\n\r\n\t\t//download PDF \r\n\t\tvm.downloadReportPDF = function (ticketId) {\r\n\t\t\tif (vm.TicketInfo.OnSiteReport != null) {\r\n\t\t\t\tvar urlWithFeasible = PublicApiURL + '/api/Report/GeneratePdfOnSiteReportForMultipleTickets?TicketIds=' + ticketId;\r\n\t\t\t\t$window.open(urlWithFeasible, '_blank')\r\n\t\t\t} else {\r\n\t\t\t\t// var urlForNonFeasible = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + ticketId;\r\n\t\t\t\t// $window.open(urlForNonFeasible, '_blank')\r\n\t\t\t\tvm.downloadOnSiteReport();\r\n\r\n\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.pdfimage = \"\";\r\n\t\tvm.DocumentAvailableMessage = \"\";\r\n\t\tvm.downloadOnSiteReport = function (previewSelectedObj) {\r\n\t\t\tvm.PDFViewRport();\r\n\r\n\t\t\tvar PreviewConsolidatedInvoiceList = previewSelectedObj;\r\n\t\t\tJobDetailViewService.downloadOnSiteReport(loggedinUser, token, vm.TicketInfo.TicketId).then(function (resp) {\r\n\t\t\t\t// var responseDataList=[];\r\n\t\t\t\tvm.responseDataList = resp.data;\r\n\t\t\t\t// for(var i=0; i';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// vm.PlottedItem = '';\r\n\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\tcase 'Date Type':\r\n\r\n\t\t\t\tif (itemss.ItemName != 'Date Of Purchase') {\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar today = new Date();\r\n\t\t\t\t\tvar todayFormatted = moment(today).format('YYYY-MM-DD');\r\n\t\t\t\t\tvar defaultValue = itemss.ItemValue ? moment(itemss.ItemValue).format('YYYY-MM-DD') : todayFormatted;\t\t\t\r\n\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcase 'Multiple Picture Type':\r\n\t\t\t\t\t// if(vm.TicketInfo.JobAccountId == '266') {\r\n\t\t\t\t\tvm.PlottedItem =\r\n\t\t\t\t\t\t'
'\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t+ '
'\r\n\r\n\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t+ '';\r\n\t\t\t\t\t+ '
'\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// else {\r\n\t\t\t\t\t// \tvm.PlottedItem = ''\r\n\t\t\t\t\t// \t+ ''\r\n\t\t\t\t\t// \t+ '';\t\t\t\t\t\t\t\r\n\t\t\t\t\t// }\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// \t+ '
'\r\n\t\t\t\t// \t+ ''\r\n\t\t\t\t// \t+ '
'\r\n\t\t\t\t// \t+ '
'\r\n\t\t\t\t// \t+ ''\r\n\t\t\t\t// \t+ '
'\r\n\t\t\t\t// \t+ '
'\r\n\t\t\t\t// \t+ ''\r\n\t\t\t\t// \t+ '
'\r\n\t\t\t\t// break;\r\n\t\t\t\tcase 'Signature Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t+ '';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'File Attachment Type':\r\n\t\t\t\t\tvm.PlottedItem = '
'\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t// + ''\r\n\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t+ '
Click here to upload File
'\r\n\t\t\t\t\t\t+ '


Click here to upload File
'\r\n\t\t\t\t\t\t//+ '
Click here to upload pdf';\r\n\t\t\t\t\t\t+ '
'\r\n\r\n\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t// + ''\r\n\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\t\t+ '
Click here to upload file
'\r\n\t\t\t\t\t\t// + '
{{item.ImageName}}
'\r\n\t\t\t\t\t\t+ '


Click here to upload file
'\r\n\t\t\t\t\t\t//+ '
Click here to upload pdf';\r\n\t\t\t\t\t\t+ '
'\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'CheckBoxList DropDown Type':\r\n\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Video Type':\r\n\t\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t\t\t+ ''\r\n\t\t\t\t\t\t+ '';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Character FilteredTextBoxField':\r\n\t\t\t\tcase 'Bigger Textbox':\r\n\t\t\t\tcase 'Edit Enabled':\r\n\t\t\t\tcase 'Phone Type':\r\n\t\t\t\tcase 'Decimal TextBox Type':\r\n\t\t\t\tcase 'Numeric FilteredTextBoxField':\r\n\t\t\t\tcase 'Instruction Type':\r\n\t\t\t\tcase 'Scan Barcode Type':\r\n\t\t\t\tcase 'Email':\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tif (vm.TicketInfo.JobAccountId == '375') {\r\n\t\t\t\t\t\tif (itemss.ItemName == 'Product Serial Number' || itemss.ItemName == 'Product Serial Number ODU') {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t} else if (itemss.ItemName == 'Symptom') {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t} else if (itemss.ItemName == 'Defect') {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t} else if (itemss.ItemName == 'Resolution') {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t} else if (itemss.ItemName == 'Product Name') {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t} else if (itemss.ItemName == 'Product Model Number') {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t} else if (itemss.ItemName == 'Call Type') {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (itemss.ItemName == 'Product Serial Number' || itemss.ItemName == 'Product Serial Number ODU') {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (itemss.ItemName == 'Symptom') {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (itemss.ItemName == 'Defect') {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (itemss.ItemName == 'Resolution') {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (itemss.ItemName == 'Product Name' && (vm.TicketInfo.JobAccountId == '380' || vm.TicketInfo.JobAccountId == '383' || vm.TicketInfo.JobAccountId == '390')) {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (itemss.ItemName == 'Product Model Number' && (vm.TicketInfo.JobAccountId == '380' || vm.TicketInfo.JobAccountId == '383' || vm.TicketInfo.JobAccountId == '390')) {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (itemss.ItemName == 'Product Model Number' && (vm.TicketInfo.JobAccountId == '361' || vm.TicketInfo.JobAccountId == '364')) {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (itemss.ItemName == 'Call Type') {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// vm.PlottedItem = '';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\treturn vm.PlottedItem;\r\n\t\t}\r\n\r\n\t\tvm.isValid = true;\r\n\t\tvm.UpdateStep = function () {\r\n\r\n\t\t\tvar formData = new FormData();\r\n\r\n\t\t\tfor (var ticketmodelIndex = 0; ticketmodelIndex < vm.TicketInfo.TemplateModel.SectionList.length; ticketmodelIndex++) {\r\n\t\t\t\tvar Action = vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].Action;\r\n\t\t\t\tvar section = vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].SectionName;\r\n\t\t\t\tif (Action == currentStepName) {\r\n\t\t\t\t\tfor (var currentModalIndex = 0; currentModalIndex < vm.ModalActionWithValuesList.SectionList.length; currentModalIndex++) {\r\n\t\t\t\t\t\tif (section == vm.ModalActionWithValuesList.SectionList[currentModalIndex].SectionName) {\r\n\r\n\t\t\t\t\t\t\tvm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].ItemList = vm.ModalActionWithValuesList.SectionList[currentModalIndex].ItemList;\r\n\t\t\t\t\t\t\tangular.forEach(vm.TicketInfo.TemplateModel.SectionList[ticketmodelIndex].ItemList, function (item) {\r\n\t\t\t\t\t\t\t\tif (item.ItemType == 'Date Type') {\r\n\r\n\t\t\t\t\t\t\t\t\titem.ItemValue = moment(item.ItemValue).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif ((item.ItemName == 'Product Serial Number' || item.ItemName == 'Product Serial Number ODU') && item.Required) {\r\n\t\t\t\t\t\t\t\t\tif (!item.ItemValue || item.ItemValue.length !== 18) {\r\n\t\t\t\t\t\t\t\t\t\tvm.isValid = false;\r\n\t\t\t\t\t\t\t\t\t\ttoaster.pop({\r\n\t\t\t\t\t\t\t\t\t\t\ttype: 'error',\r\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Validation Error',\r\n\t\t\t\t\t\t\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\t\t\t\t\t\t\tbody: 'Please enter a valid 18-character alphanumeric value for' + item.ItemName,\r\n\t\t\t\t\t\t\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\t\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\t\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\t\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\t\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\t\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\t\t\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t\t\tvm.isValid = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} \r\n\r\n\t\t\t\t\t\t\t\tif ((item.ItemName == 'Product Name' || item.ItemName == 'Product Model Number') && item.Required) {\r\n\t\t\t\t\t\t\t\t\tif (!item.ItemValue) {\r\n\t\t\t\t\t\t\t\t\t\tvm.isValid = false;\r\n\t\t\t\t\t\t\t\t\t\ttoaster.pop({\r\n\t\t\t\t\t\t\t\t\t\t\ttype: 'error',\r\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Validation Error',\r\n\t\t\t\t\t\t\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\t\t\t\t\t\t\tbody: 'Please select ' + item.ItemName,\r\n\t\t\t\t\t\t\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\t\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\t\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\t\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\t\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\t\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\t\t\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t} \r\n\r\n\t\t\t\t\t\t\t\telse if (item.ItemType == 'CheckBoxList DropDown Type') {\r\n\t\t\t\t\t\t\t\t\titem.field_options.options = [];\r\n\t\t\t\t\t\t\t\t\tif (item.ItemValues && item.ItemValues.length > 0) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < item.ItemValues.length; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\tvar obj = { \"label\": item.ItemValues[i] };\r\n\t\t\t\t\t\t\t\t\t\t\t// obj.push()\r\n\t\t\t\t\t\t\t\t\t\t\titem.field_options.options.push(obj);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t//item.field_options.options.push(item.ItemValue);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if (item.ItemType == 'Multiple Picture Type' || item.ItemType == 'Signature Type' || item.ItemType == 'File Attachment Type' || item.ItemType == 'Video Type') {\r\n\t\t\t\t\t\t\t\t\tif (vm.ImageArray[section + '_' + item.ItemName] && item.ItemValues == null) {\r\n\t\t\t\t\t\t\t\t\t\tvm.ImageArray[section + '_' + item.ItemName].name = vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t\t\titem.ItemValue = vm.TicketInfo.TicketId + '_' + Math.random().toString(36).substring(7) + new Date().getTime() + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t\t\titem.ImageName = item.ItemValue;\r\n\t\t\t\t\t\t\t\t\t\tformData.append(vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name, vm.ImageArray[section + '_' + item.ItemName], item.ImageName);\r\n\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif (item.ImageItemName != null) {\r\n\t\t\t\t\t\t\t\t\t\titem.ImageItemName.forEach(function (imgNameI, ind, theArray) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (vm.ImageArray[section + '_' + item.ItemName + '_' + ind]) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvm.imgType = vm.ImageArray[section + '_' + item.ItemName + '_' + ind].name.slice(-4);\r\n\t\t\t\t\t\t\t\t\t\t\t\titem.ItemValue = vm.TicketInfo.TicketId + '_' + Action + '_' + section + '_' + item.ItemName + '_' + ind + vm.imgType;\r\n\t\t\t\t\t\t\t\t\t\t\t\titem.ItemValue = (item.ItemValue).replace(/ /g, \"_\");\r\n\t\t\t\t\t\t\t\t\t\t\t\t// if(imgNameI.slice(0, -4) == item.ItemValue.slice(0, -4)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\titem.ImageItemName[ind] = imgNameI;\r\n\t\t\t\t\t\t\t\t\t\t\t\tformData.append(imgNameI, vm.ImageArray[section + '_' + item.ItemName + '_' + ind], imgNameI);\r\n\t\t\t\t\t\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// else if (item.ItemType == 'Video Type') { \r\n\t\t\t\t\t\t\t\t// \tif (vm.ImageArray[section + '_' + item.ItemName]) {\r\n\t\t\t\t\t\t\t\t// \t\tvm.ImageArray[section + '_' + item.ItemName].name = vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t// \t\titem.ItemValue = vm.TicketInfo.TicketId + '_' + Math.random().toString(36).substring(7) + new Date().getTime() + vm.ImageArray[section + '_' + item.ItemName].name;\r\n\t\t\t\t\t\t\t\t// \t\titem.ImageName = item.ItemValue;\r\n\t\t\t\t\t\t\t\t// \t\tformData.append(vm.TicketInfo.TicketId + '_' + vm.ImageArray[section + '_' + item.ItemName].name, vm.ImageArray[section + '_' + item.ItemName], item.ImageName);\r\n\r\n\t\t\t\t\t\t\t\t// \t}\r\n\r\n\t\t\t\t\t\t\t\t// }\r\n\r\n\t\t\t\t\t\t\t\tif (vm.TicketInfo.JobAccountId == '375') {\r\n\t\t\t\t\t\t\t\t\tif (item.ItemValue && typeof item.ItemValue === 'string') {\r\n\t\t\t\t\t\t\t\t\t\titem.ItemValue = item.ItemValue.toUpperCase();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (vm.isValid == false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tticketEditModalInstance.close();\r\n\t\t\tformData.append('reqUserId', loggedinUser)\r\n\t\t\t//var data = angular.toJson(vm.TicketInfo);\r\n\t\t\tvm.TicketInfo.TemplateModel.SectionList.forEach(function (element, i) {\r\n\t\t\t\tvm.TicketInfo.TemplateModel.SectionList[i].ItemList.forEach(function (element, i) {\r\n\t\t\t\t\tif (element.ItemType == 'Multiple Picture Type' || element.ItemType == 'Signature Type' || element.ItemType == 'File Attachment Type' || element.ItemType == 'Video Type') {\r\n\t\t\t\t\t\telement.ItemValue = '';\r\n\t\t\t\t\t\telement.imageData = [];\r\n\t\t\t\t\t\telement.ItemValues = [];\r\n\t\t\t\t\t\telement.PdfData = [];\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tif (vm.TicketInfo) {\r\n\t\t\t\tvm.TicketInfo.Address1 = '';\r\n\t\t\t\tvm.TicketInfo.Address2 = '';\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvm.TicketInfo.SymptomCode = vm.SymptomCode,\r\n\t\t\tvm.TicketInfo.SymptomValue = vm.SymptomName,\r\n\t\t\tvm.TicketInfo.DefectCode = vm.DefectCode,\r\n\t\t\tvm.TicketInfo.DefectValue = vm.DefectName,\r\n\t\t\tvm.TicketInfo.ResolutionCode = vm.ResolutionCode,\r\n\t\t\tvm.TicketInfo.ResolutionValue = vm.ResolutionName\r\n\t\t\t\r\n\t\t\tvar data = JSON.stringify(vm.TicketInfo);\r\n\t\t\tformData.append(\"TicketRequestModel\", data);\r\n\t\t\tJobDetailViewService.updateJobTicketwithImage(formData, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 202 || resp.status == 200) {\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\ttoaster.pop({\r\n\t\t\t\t\t\t\ttype: 'success',\r\n\t\t\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\t\t\tbody: 'Job has been successfully updated',\r\n\t\t\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\tvm.GetPreApprovalStepEric();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t\tfor (var sectionIndex = 0; sectionIndex < vm.currentStepModel.SectionList.length; sectionIndex++) {\r\n\t\t\t\t\t\tfor (var itemIndex = 0; itemIndex < vm.currentStepModel.SectionList[sectionIndex].ItemList.length; itemIndex++) {\r\n\t\t\t\t\t\t\tvar beforeChangeItem = vm.currentStepModel.SectionList[sectionIndex].ItemList[itemIndex].ItemValue;\r\n\t\t\t\t\t\t\tvar afterChangeItem = vm.ModalActionWithValuesList.SectionList[sectionIndex].ItemList[itemIndex].ItemValue;\r\n\t\t\t\t\t\t\tif (beforeChangeItem != afterChangeItem) {\r\n\t\t\t\t\t\t\t\tvm.currentStepModel.SectionList[sectionIndex].ItemList[itemIndex].ItemValue = afterChangeItem;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttoaster.pop({\r\n\t\t\t\t\t\ttype: 'error',\r\n\t\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\t\tbody: 'Job has not been updated',\r\n\t\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\ttoaster.pop({\r\n\t\t\t\t\ttype: 'error',\r\n\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\tbody: 'server error',\r\n\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.UpdateSDRForTicket = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"TicketId\": vm.TicketInfo.TicketId,\r\n\t\t\t\t\"SymptomCode\": vm.SymptomCode,\r\n\t\t\t\t\"SymptomValue\": vm.SymptomName,\r\n\t\t\t\t\"DefectCode\": vm.DefectCode,\r\n\t\t\t\t\"DefectValue\": vm.DefectName,\r\n\t\t\t\t\"ResolutionCode\": vm.ResolutionCode,\r\n\t\t\t\t\"ResolutionValue\": vm.ResolutionName\r\n\t\t\t}\r\n\r\n\t\t\tJobDetailViewService.UpdateSDRForTicket(data, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 202 || resp.status == 200) {\r\n\t\t\t\t\ttoaster.pop({\r\n\t\t\t\t\t\ttype: 'success',\r\n\t\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\t\tbody: 'SDR has been successfully updated',\r\n\t\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t\t});\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttoaster.pop({\r\n\t\t\t\t\t\ttype: 'error',\r\n\t\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\t\tbody: 'SDR has not been updated',\r\n\t\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\ttoaster.pop({\r\n\t\t\t\t\ttype: 'error',\r\n\t\t\t\t\ttitle: 'job update Status',\r\n\t\t\t\t\tshowCloseButton: true,\r\n\t\t\t\t\tbody: 'server error',\r\n\t\t\t\t\t\"progressBar\": true,\r\n\t\t\t\t\t\"preventDuplicates\": false,\r\n\t\t\t\t\t\"showDuration\": \"400\",\r\n\t\t\t\t\t\"hideDuration\": \"1000\",\r\n\t\t\t\t\t\"tapToDismiss\": true,\r\n\t\t\t\t\t\"timeout\": 2000,\r\n\t\t\t\t\tpositionClass: 'toast-top-full-width'\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.getImageData = function (data) {\r\n\t\t\tif (data) {\r\n\t\t\t\t// console.log(data);\r\n\t\t\t\treturn data;\r\n\t\t\t} else {\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//\r\n\t\tvm.getImageDataFST = function (data) {\r\n\t\t\tif (data) {\r\n\t\t\t\t// console.log(data);\r\n\t\t\t\treturn data;\r\n\t\t\t} else {\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.getPdfExist = function (name) {\r\n\t\t\tif (name == null)\r\n\t\t\t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\telse\r\n\t\t\t\treturn name;\r\n\t\t\t// \telse{\r\n\t\t\t// var strPdf = name.includes(\".pdf\")\t\t\r\n\t\t\t// \tif (strPdf) {\t\t\t\t\r\n\t\t\t// \t\t//return \"../assets/images/patterns/pdf.png\";\r\n\t\t\t// \t} else {\r\n\t\t\t// \t\treturn \"assets/images/patterns/no-image.png\";\r\n\t\t\t// \t}\r\n\t\t\t// }\r\n\t\t}\r\n\r\n\r\n\t\tvm.isPdfExist = function (name) {\r\n\t\t\tif (name != null) {\r\n\t\t\t\tif (name.includes(\".pdf\")) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.PlotItemSectionAndActionWise = function (itemType) {\r\n\t\t\tvm.PlottedItem = '';\r\n\t\t\tswitch (itemType) {\r\n\t\t\t\tcase 'Multiple Picture Type':\r\n\t\t\t\t\t// if(vm.TicketInfo.JobAccountId == '266') {\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t// '
' +\r\n\t\t\t\t\t\t// '
';\r\n\t\t\t\t\t\t'
0\">' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'\"image-1\"' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'\"image-1\"' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
';\r\n\t\t\t\t\t// }\r\n\t\t\t\t\t// else {\r\n\t\t\t\t\t// \tvm.PlottedItem = '
' +\r\n\t\t\t\t\t// \t'
' +\r\n\t\t\t\t\t// \t// '
' +\r\n\t\t\t\t\t// \t// '
';\r\n\t\t\t\t\t// \t'
' +\r\n\t\t\t\t\t// \t'' +\r\n\t\t\t\t\t// \t'\"image-1\"' +\r\n\t\t\t\t\t// \t'' +\r\n\t\t\t\t\t// \t'
';\r\n\t\t\t\t\t// }\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// Added by Vikash on demand of salman sir after confirming by jitendra sir\r\n\t\t\t\tcase 'Draw Layout Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t// '
' +\r\n\t\t\t\t\t\t// '
';\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'\"image-1\"' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Signature Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'\"image-1\"' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// \r\n\t\t\t\t// \"image-1\"\r\n\t\t\t\t// \r\n\t\t\t\tcase 'File Attachment Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'' +\r\n\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t// '\"image-1\"' +\r\n\t\t\t\t\t\t'{{plotItem.ImageName}}' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Video Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t\t'' +\r\n\t\t\t\t\t\t'
';\r\n\r\n\t\t\t\t\t//vm.PlottedItem = '';\r\n\t\t\t\t\t// vm.PlottedItem = '';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'CheckBoxList DropDown Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'{{itemOption.label}}
';\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'Date Type':\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'{{plotItem.ItemValue | date}}
';\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Character FilteredTextBoxField':\r\n\t\t\t\tcase 'Bigger Textbox':\r\n\t\t\t\tcase 'Dropdown Type':\r\n\t\t\t\tcase 'Edit Enabled':\r\n\t\t\t\tcase 'Phone Type':\r\n\t\t\t\tcase 'Decimal TextBox Type':\r\n\t\t\t\tcase 'Numeric FilteredTextBoxField':\r\n\t\t\t\tcase 'Instruction Type':\r\n\t\t\t\tcase 'Scan Barcode Type':\r\n\t\t\t\tcase 'Email':\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tvm.PlottedItem = '
' +\r\n\t\t\t\t\t\t'
' +\r\n\t\t\t\t\t\t'

'\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn vm.PlottedItem;\r\n\t\t}\r\n\r\n\r\n\t\tvm.getCallTypeList = function (jobType, callType) {\r\n\t\t\tvm.CallTypeItemList = [];\r\n\t\t\tif (jobType == 'VSAT') {\r\n\t\t\t\tif (callType[0].ItemValue == 'Maintenance') {\r\n\t\t\t\t\tvm.CallTypeList = [\"IDU replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"ODU replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"LNBC replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"IFL cable replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"LNA replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Feed replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Antenna replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Connector replaced. Vsat made up and working\",\r\n\t\t\t\t\t\t\"After antenna alignment Vsat made up and working\",\r\n\t\t\t\t\t\t\"Power issue resolved at customer premises. Vsat has come up and working\",\r\n\t\t\t\t\t\t\"UPS issue has been resolved at customer end. Vsat has come up and working\",\r\n\t\t\t\t\t\t\"Earthing issue has been resolved at customer end. Vsat has come up and working\",\r\n\t\t\t\t\t\t\"After powering ON the equipments. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Hardware rebooted. Vsat made up\",\r\n\t\t\t\t\t\t\"Monkey cage issue resolved. Vsat made up and working\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Installation') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Installation and activation has been done. Vsat is up and working\",\r\n\t\t\t\t\t\t\"Installation done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Shifting') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Shifting of Vsat completed from old premises to new premises\",\r\n\t\t\t\t\t\t\"Shifting of Vsat completed from existing floor to new floor in the same premises\",\r\n\t\t\t\t\t\t\"Shifting of IDU/ODU completed\",\r\n\t\t\t\t\t\t\"Shifting done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t} else if (jobType == 'LeaseLine') {\r\n\t\t\t\tif (callType[0].ItemValue == 'LLM') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Local lead issue has been resolved. Link is up and working\",\r\n\t\t\t\t\t\t\"UG Cable cut restored. Link is up and working\",\r\n\t\t\t\t\t\t\"OFC cut has been restored. Link came up and working\",\r\n\t\t\t\t\t\t\"Mux issue has been resolved. Link has come up and working\",\r\n\t\t\t\t\t\t\"MPLS trunk issue has been resolved. Link is up and working\",\r\n\t\t\t\t\t\t\"NIB routing issue has been resolved. Links are up and working\",\r\n\t\t\t\t\t\t\"Major media failure has been resolved. Links came up and working\",\r\n\t\t\t\t\t\t\"BSNL hardware issue has been resolved. Link is up and working\",\r\n\t\t\t\t\t\t\"Router replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"Switch replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"MLLN modem replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"conventional modem replaced. Link made up\",\r\n\t\t\t\t\t\t\"HWIC card replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"Serial cable replaced. Link is up and working\",\r\n\t\t\t\t\t\t\"OFC media has been restored. Link is up and working\",\r\n\t\t\t\t\t\t\"BSNL wiring issue resolved in the exchange. Link is up and working\",\r\n\t\t\t\t\t\t\"Customer's modem has been replaced. Link is up\",\r\n\t\t\t\t\t\t\"Customer's router has been replaced. Link made up\",\r\n\t\t\t\t\t\t\"No issue found in the link. Customer saying up\",\r\n\t\t\t\t\t\t\"High utilization due to which getting slow connectivity\",\r\n\t\t\t\t\t\t\"LAN issue resolved. Customer is getting connectivity\",\r\n\t\t\t\t\t\t\"PCM issue resolved. Link has come up\",\r\n\t\t\t\t\t\t\"Mux channel issue resolved. Link has come up.\",\r\n\t\t\t\t\t\t\"Routing issue b/w MTNL & BSNL has been resolved. Link has come up\",\r\n\t\t\t\t\t\t\"Power issue resolved in the exchange. Link has come up and working\",\r\n\t\t\t\t\t\t\"UPS issue has been resolved at customer end. Link has come up and working\",\r\n\t\t\t\t\t\t\"Earthing issue has been resolved at customer end. Link has come up and working\",\r\n\t\t\t\t\t\t\"After powering ON the equipments Link made up and working\",\r\n\t\t\t\t\t\t\"Hardware rebooted. Link made up.\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'LLP') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Commissioning done after PCM/Channal wiring done\",\r\n\t\t\t\t\t\t\"Commissioning done after replacing MLLN modem\",\r\n\t\t\t\t\t\t\"Commissioning done after completion of MPLS end configuration\",\r\n\t\t\t\t\t\t\"Commissioning done after OFC media preparation\",\r\n\t\t\t\t\t\t\"Commissioning done after allocation of channel\",\r\n\t\t\t\t\t\t\"Commissioning done after replacing router/card\",\r\n\t\t\t\t\t\t\"Commissioning done after replacing serial cable\",\r\n\t\t\t\t\t\t\"Commissioning done after configuring the CE router\",\r\n\t\t\t\t\t\t\"Commissioning done after media preparation b/w MTNL & BSNL\",\r\n\t\t\t\t\t\t\"Commissioning done after installation of new local lead\",\r\n\t\t\t\t\t\t\"Commissioning done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Upgration') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Upgradation done after PCM/Channal wiring done\",\r\n\t\t\t\t\t\t\"Upgradation done after replacing MLLN modem\",\r\n\t\t\t\t\t\t\"Upgradation done after completion of MPLS end configuration\",\r\n\t\t\t\t\t\t\"Upgradation done after OFC media preparation\",\r\n\t\t\t\t\t\t\"Upgradation done after allocation of channel\",\r\n\t\t\t\t\t\t\"Upgradation done after replacing router/card\",\r\n\t\t\t\t\t\t\"Upgradation done after replacing serial cable\",\r\n\t\t\t\t\t\t\"Upgradation done after configuring the CE router\",\r\n\t\t\t\t\t\t\"Upgradation done after media preparation b/w MTNL & BSNL\",\r\n\t\t\t\t\t\t\"Upgradation done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Shifting') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Shifting of link completed from old premises to new premises\",\r\n\t\t\t\t\t\t\"Shifting of link completed from existing floor to new floor in the same premises\",\r\n\t\t\t\t\t\t\"Shifting of exchange completed\",\r\n\t\t\t\t\t\t\"Shifting done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t} else if (callType[0].ItemValue == 'Installation & Configuration of Device') {\r\n\t\t\t\t\tvm.CallTypeList = [\"Router installed. Link made up and working\",\r\n\t\t\t\t\t\t\"Switch installed. Link made up and working\",\r\n\t\t\t\t\t\t\"HWIC card installed. Link made up and working\",\r\n\t\t\t\t\t\t\"Serial cable installed. Link made up and working\",\r\n\t\t\t\t\t\t\"MLLN modem installed. Link made up and working\",\r\n\t\t\t\t\t\t\"Router/MLLN modem/switch installed at customer end\",\r\n\t\t\t\t\t\t\"UPS installed at customer end. Link made up and working\",\r\n\t\t\t\t\t\t\"Installation done after rectification of power/earthing parameter at customer end\",\r\n\t\t\t\t\t\t\"Others\"\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// vm.showFixed = true;\r\n\t\tvm.DistanceFixed = '10';\r\n\t\tvm.starFixed = '5';\r\n\t\tvm.DistanceNearBy = '10';\r\n\t\tvm.starNearBy = '5';\r\n\t\tvm.Distance = '10';\r\n\t\tvm.DistancePre = '10';\r\n\t\tvm.star = '5';\r\n\t\tvm.showNearByTable = false;\r\n\t\tvm.model = {};\r\n\t\tvm.model = [{ \"key\": 1, \"Role\": \"Field Engineer\", \"userType\": \"Fixed Team\", \"Value\": \"Field Engineer\" },\r\n\t\t{ \"key\": 2, \"Role\": \"Field Engineer\", \"userType\": \"Freelancer\", \"Value\": \"Freelancer\" },\r\n\t\t{ \"key\": 3, \"Role\": \"Vendor Manager\", \"userType\": \"Fixed Team\", \"Value\": \"Vendor\" },\r\n\t\t{ \"key\": 4, \"Role\": \"Vendor Manager\", \"userType\": \"Freelancer\", \"Value\": \"Freelancer\" }];\r\n\r\n\t\tvm.GetFixedUser = function (reload) {\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Fixed Team\" }, { \"UserRole\": 'Vendor Manager', \"UserType\": \"Fixed Team\" });\r\n\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 3, \"OrderByField\": \"UserDistance\" });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": parseInt(vm.DistanceFixed) * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\t\t\tJobDetailViewService.GetSchedulingEvaluationResult(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.FixedUserList = resp.data.users;\r\n\t\t\t\tvm.FixedUserLength = vm.FixedUserList.length;\r\n\r\n\t\t\t\tvm.CreateFixedUserTable();\r\n\t\t\t\tif (reload) {\r\n\t\t\t\t\tvm.reloadDataFixed();\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\t\tvm.CreateFixedUserTable = function () {\r\n\t\t\tvm.headerCompiledFixed = false;\r\n\t\t\t// vm.dtInstanceFixed = {};\r\n\t\t\tvm.showFixedTable = 'Fixed';\r\n\t\t\tvm.showFixed = true;\r\n\t\t\tvm.selectedFixed = {};\r\n\t\t\tvm.toggleOneFixed = toggleOneFixed;\r\n\t\t\tvm.selectAllFixed = false;\r\n\t\t\tvm.toggleAllFixed = toggleAllFixed;\r\n\t\t\tvar temp = false;\r\n\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\ttemp = true;\r\n\t\t\t}\r\n\r\n\t\t\t// var titleHtmlFixed = '';\r\n\t\t\tvm.dtOptionsFixed = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tdefer.resolve(vm.FixedUserList);\r\n\t\t\t\treturn defer.promise;\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompiledFixed) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompiledFixed = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.withBootstrap();\r\n\r\n\r\n\t\t\tvm.dtColumnsFixed = [\r\n\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif (vm.IsMaterialDelivered) {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus != 'Delivered') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ($localStorage.loggedInUser_Role == 'Vendor Manager' || $localStorage.loggedInUser_Role == 'Service Center') {\r\n\t\t\t\t\t\t\ttemp = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (vm.TicketInfo.UserName != '' && vm.TicketInfo.UserName != null) {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus == 'Completed') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('userType').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable()\r\n\r\n\t\t\t];\r\n\r\n\t\t\tif (vm.AccountId != '380' && vm.AccountId != '383' && vm.AccountId != '390') {\r\n\t\t\t\tvm.dtColumnsFixed.push(\r\n\t\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\t\treturn '' + data + '';\r\n\t\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\t\treturn '' + data + '';\r\n\t\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\t\tif (full.IsPincodeBasedScheduling == true) {\r\n\t\t\t\t\t\t\treturn 'Matching Pincode';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tfunction toggleAllFixed(selectAll, selectedItems) {\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOneFixed(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\t\t\t// \t\t\t\tif(vm.selectSingleFixed){\r\n\t\t\t// \t\t\t\t\tvm.selectAllFixed = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSingleFixed = false;\r\n\t\t\t// \t\t\t\t\treturn;\r\n\t\t\t// \t\t\t\t}\r\n\r\n\t\t\t// \t\t\t\tvm.selectAllFixed = false;\r\n\t\t\t// \t\t\t\tvm.selectSingleFixed = true;\r\n\t\t\t// \t\t\t\treturn;\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t\tvm.selectSingleFixed = false;\r\n\t\t\t// \t\t}\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAllFixed = true;\r\n\t\t\t// }\r\n\r\n\t\t\tfunction toggleOneFixed(selectedItems) {\r\n\t\t\t\tvm.selectAllFixed = false;\r\n\t\t\t\tvm.selectSingleFixed = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSingleFixed = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\t\tvm.NearByUserList = [];\r\n\r\n\t\tvm.GetNearByUser = function (reload) {\r\n\r\n\t\t\tvm.headerCompiledNearBy = false;\r\n\t\t\t// vm.NearByUserList = [];\r\n\t\t\tvar roleList = [];\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 0, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserDistance\" });\r\n\t\t\tif (vm.PrivateDisable) {\r\n\t\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Private\" });\r\n\t\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Private\" });\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"IsComplianceDisable\": vm.ComplianceDisable,\r\n\t\t\t\t\"IsPincodeEnabled\": vm.PincodeEnabled,\r\n\t\t\t\t\"IsPrivateDisable\": vm.PrivateDisable,\r\n\t\t\t\t\"RangeFromJob\": parseInt(vm.DistanceNearBy) * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser,\r\n\t\t\t};\r\n\t\t\tJobDetailViewService.GetSchedulingEvaluationResult(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.NearByUserList = resp.data.users;\r\n\t\t\t\tvm.NearByUserLength = vm.NearByUserList.length;\r\n\r\n\t\t\t\tvm.CreateNearByTable();\r\n\t\t\t\tif (reload) {\r\n\t\t\t\t\tvm.reloadData();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\t// $scope.addNewType = function () {\r\n\t\t// \troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Private\" });\r\n\t\t// \troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Private\" });\r\n\t\t// };\r\n\r\n\t\tvm.selectSingleNearBy = false;\r\n\t\tvm.CreateNearByTable = function () {\r\n\t\t\tvm.headerCompiledNearBy = false;\r\n\t\t\tvm.showNearByTable = 'showNear';\r\n\t\t\tvm.selectedNearBy = {};\r\n\t\t\tvm.toggleOneNearBy = toggleOneNearBy;\r\n\t\t\t// vm.dtInstanceNearBy = {};\r\n\t\t\tvm.selectAllNearBy = false;\r\n\t\t\tvm.toggleAllNearBy = toggleAllNearBy;\r\n\t\t\tvar temp = false;\r\n\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t// \ttemp = true;\r\n\t\t\t// }\r\n\t\t\tif (vm.IsMaterialDelivered) {\r\n\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus != 'Delivered') {\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast ? temp : true;\r\n\t\t\tvar titleHtmlNearBy = '';\r\n\t\t\tvm.dtOptionsNearBy = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tdefer.resolve(vm.NearByUserList);\r\n\t\t\t\treturn defer.promise;\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompiledNearBy) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompiledNearBy = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.withBootstrap();\r\n\r\n\r\n\t\t\tvm.dtColumnsNearBy = [\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtmlNearBy).renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvm.selectedNearBy[meta.row] = false;\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t// \ttemp = true;\r\n\t\t\t\t\t// }\r\n\t\t\t\t\tif (vm.IsMaterialDelivered) {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus != 'Delivered') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast ? temp : true;\r\n\t\t\t\t\treturn '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif (vm.IsMaterialDelivered) {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus != 'Delivered') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.disableRouteButton = vm.TicketInfo.ShowManualBroadcast ? temp : true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\r\n\t\t\t\tDTColumnBuilder.newColumn('User_Type').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('IsPresentToday').withTitle('Attendance').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar attendance = \"\";\r\n\t\t\t\t\tif (full.User_Type == \"Freelancer Vendor\") {\r\n\t\t\t\t\t\tattendance = \"NA\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (full.IsPresentToday) {\r\n\t\t\t\t\t\t\tattendance = \"Present\";\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tattendance = \"Absent\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn '' + attendance + '';\r\n\r\n\t\t\t\t})\r\n\r\n\t\t\t\t// return '
'+location+'
'\r\n\r\n\r\n\t\t\t];\r\n\r\n\t\t\tfunction toggleAllNearBy(selectAll, selectedItems) {\r\n\t\t\t\tvm.selectSingleNearBy = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOneNearBy(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\t\t\t// \t\t\t\tif(vm.selectSingleNearBy){\r\n\t\t\t// \t\t\t\t\tvm.selectAllNearBy = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSingleNearBy = false;\r\n\t\t\t// \t\t\t\t\treturn;\r\n\t\t\t// \t\t\t\t}\r\n\r\n\t\t\t// \t\t\t\tvm.selectAllNearBy = false;\r\n\t\t\t// \t\t\t\tvm.selectSingleNearBy = true;\r\n\t\t\t// \t\t\t\treturn;\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t\tvm.selectSingleNearBy = false;\r\n\t\t\t// \t\t}\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAllNearBy = true;\r\n\t\t\t// }\r\n\r\n\t\t\tfunction toggleOneNearBy(selectedItems) {\r\n\t\t\t\tvm.selectAllNearBy = false;\r\n\t\t\t\tvm.selectSingleNearBy = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSingleNearBy = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tvm.reloadDataFixed = function () {\r\n\t\t\tvar resetPagingFixed = true;\r\n\t\t\tvm.dtInstanceFixed.reloadData(resetPagingFixed);\r\n\t\t}\r\n\r\n\t\tvm.reloadData = function () {\r\n\t\t\tvar resetPaging = true;\r\n\t\t\tvm.dtInstanceNearBy.reloadData(resetPaging);\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.reloadDataTalent = function () {\r\n\t\t\tvar resetPagingTalent = true;\r\n\t\t\tvm.dtInstance.reloadData(resetPagingTalent);\r\n\t\t}\r\n\r\n\t\tvm.reloadDataPre = function () {\r\n\t\t\tvar resetPagingPre = true;\r\n\t\t\tvm.dtInstancePre.reloadData(resetPagingPre);\r\n\t\t}\r\n\r\n\r\n\t\tvm.Preffered = function () {\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Preffered.html',\r\n\t\t\t\tsize: 'sm',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetTalentPoolUser = function (reload) {\r\n\t\t\tvm.headerCompiled = false;\r\n\t\t\tvar Distance = parseInt(vm.Distance)\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 0, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserDistance\" });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": Distance * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\t\t\tJobDetailViewService.GetAllPrefereTalentPool(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.PrefreUserList = resp.data;\r\n\t\t\t\tvm.PrefreUserLength = vm.PrefreUserList.length;\r\n\r\n\t\t\t\tvm.CreatePrefreTable();\r\n\t\t\t\tif (reload) {\r\n\t\t\t\t\tvm.reloadDataTalent();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.CreatePrefreTable = function () {\r\n\t\t\t// vm.Invoice = {};\r\n\t\t\tvm.headerCompiled = false;\r\n\t\t\tvm.selected = {};\r\n\t\t\tvm.toggleOne = toggleOne;\r\n\t\t\t// vm.dtInstance = {};\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tvm.toggleAll = toggleAll;\r\n\t\t\tvar temp = false;\r\n\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t// \ttemp = true;\r\n\t\t\t// }\r\n\t\t\tif (vm.IsMaterialDelivered) {\r\n\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus != 'Delivered') {\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast ? temp : true;\r\n\t\t\tvar titleHtml = '';\r\n\r\n\t\t\tvm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tvm.showTable = true;\r\n\t\t\t\tdefer.resolve(vm.PrefreUserList);\r\n\t\t\t\treturn defer.promise;\r\n\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', createdRow)\r\n\t\t\t\t.withOption('headerCallback', headerCallback)\r\n\t\t\t\t.withBootstrap();\r\n\r\n\t\t\tfunction createdRow(row, data, dataIndex) {\r\n\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t}\r\n\r\n\t\t\tfunction headerCallback(header) {\r\n\t\t\t\tif (!vm.headerCompiled) {\r\n\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\tvm.headerCompiled = true;\r\n\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvm.dtColumns = [\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtml).renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvm.selected[meta.row] = false;\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t// \ttemp = true;\r\n\t\t\t\t\t// }\r\n\t\t\t\t\tif (vm.IsMaterialDelivered) {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus != 'Delivered') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast ? temp : true;\r\n\t\t\t\t\treturn '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif (vm.IsMaterialDelivered) {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus != 'Delivered') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.disableRouteButton = vm.TicketInfo.ShowManualBroadcast ? temp : true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('User_Type').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('IsPresentToday').withTitle('Attendance').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar attendance = \"\";\r\n\t\t\t\t\tif (full.IsPresentToday) {\r\n\t\t\t\t\t\tattendance = \"Present\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tattendance = \"Absent\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn '' + attendance + '';\r\n\r\n\t\t\t\t})\r\n\r\n\t\t\t];\r\n\r\n\t\t\tfunction toggleAll(selectAll, selectedItems) {\r\n\t\t\t\tvm.selectSingle = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOne(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\r\n\t\t\t// \t\t\t\tif(vm.selectSingle){\r\n\t\t\t// \t\t\t\t\tvm.selectAll = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSingle = false;\r\n\t\t\t// \t\t\t\t\treturn;\r\n\t\t\t// \t\t\t\t}\r\n\t\t\t// \t\t\t\tvm.selectAll = false;\r\n\t\t\t// \t\t\t\tvm.selectSingle = true;\r\n\t\t\t// \t\t\t\treturn;\r\n\t\t\t// \t\t\t}\r\n\t\t\t// \t\t\tvm.selectSingle = false;\r\n\t\t\t// \t\t}\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAll = true;\r\n\t\t\t// }\r\n\r\n\t\t\tfunction toggleOne(selectedItems) {\r\n\t\t\t\tvm.selectAll = false;\r\n\t\t\t\tvm.selectSingle = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSingle = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\t\tvm.showTablePre = false;\r\n\t\tvm.selectSinglePre = false;\r\n\t\tvm.GetPreviousWorker = function (reload) {\r\n\r\n\t\t\tvm.headerCompiledPre = false;\r\n\t\t\tvar Distance = parseInt(vm.DistancePre)\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 0, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserDistance\" });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": Distance * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\t\t\tJobDetailViewService.GetAllPreviousUser(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.PreviousUserList = resp.data;\r\n\t\t\t\tvm.PreviousUserLength = vm.PreviousUserList.length;\r\n\r\n\t\t\t\tvm.CreatePreviousUserTable();\r\n\t\t\t\tif (reload) {\r\n\t\t\t\t\tvm.reloadDataPre();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CreatePreviousUserTable = function () {\r\n\t\t\tvm.headerCompiledPre = false;\r\n\t\t\tvm.selectedPre = {};\r\n\t\t\tvm.toggleOnePre = toggleOnePre;\r\n\t\t\t// vm.dtInstancePre = {};\r\n\t\t\tvm.selectAllPre = false;\r\n\t\t\tvm.toggleAllPre = toggleAllPre;\r\n\t\t\tvar temp = false;\r\n\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t// \ttemp = true;\r\n\t\t\t// }\r\n\t\t\tif (vm.IsMaterialDelivered) {\r\n\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus != 'Delivered') {\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\ttemp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast ? temp : true;\r\n\t\t\tvar titleHtmlPre = '';\r\n\r\n\t\t\tvm.dtOptionsPre = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tvm.showTablePre = true;\r\n\t\t\t\tdefer.resolve(vm.PreviousUserList);\r\n\t\t\t\treturn defer.promise;\r\n\r\n\t\t\t})\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [])\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompiledPre) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompiledPre = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.withBootstrap();\r\n\r\n\r\n\t\t\tvm.dtColumnsPre = [\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtmlPre).renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvm.selectedPre[meta.row] = false;\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\t// if (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t// \ttemp = true;\r\n\t\t\t\t\t// }\r\n\t\t\t\t\tif (vm.IsMaterialDelivered) {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus != 'Delivered') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttemp = vm.TicketInfo.ShowManualBroadcast ? temp : true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar temp = false;\r\n\t\t\t\t\tif (vm.IsMaterialDelivered) {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New' || vm.TicketInfo.MetrialDeliverStatus != 'Delivered') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (vm.TicketInfo.TicketStatus != 'New') {\r\n\t\t\t\t\t\t\ttemp = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.disableRouteButton = vm.TicketInfo.ShowManualBroadcast ? temp : true;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('id').withTitle('Id').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('name').withTitle('Name').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('User_Type').withTitle('User Type').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserRating').withTitle('Rating').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('JobTotal').withTitle('Jobs').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserDistance').withTitle('Distance(In KM.)').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('IsPresentToday').withTitle('Attendance').renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvar attendance = \"\";\r\n\t\t\t\t\tif (full.IsPresentToday) {\r\n\t\t\t\t\t\tattendance = \"Present\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tattendance = \"Absent\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn '' + attendance + '';\r\n\r\n\t\t\t\t})\r\n\r\n\t\t\t];\r\n\r\n\t\t\tfunction toggleAllPre(selectAll, selectedItems) {\r\n\t\t\t\tvm.selectSinglePre = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// function toggleOnePre(selectedItems) {\r\n\t\t\t// \tfor (var id in selectedItems) {\r\n\t\t\t// \t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t// \t\t\tif (!selectedItems[id]) {\r\n\r\n\t\t\t// \t\t\t\tif(vm.selectSinglePre){\r\n\t\t\t// \t\t\t\t\tvm.selectAllPre = false;\r\n\t\t\t// \t\t\t\t\tvm.selectSinglePre = false;\r\n\t\t\t// \t\t\t\t\tcontinue;\r\n\t\t\t// \t\t\t\t}\r\n\t\t\t// \t\t\t\tvm.selectAllPre = false;\r\n\t\t\t// \t\t\t\tvm.selectSinglePre = true;\r\n\t\t\t// \t\t\t\tcontinue;\r\n\t\t\t// \t\t\t}\r\n\r\n\t\t\t// \t\t}\r\n\t\t\t// \t\tvm.selectSinglePre = false;\r\n\t\t\t// \t}\r\n\t\t\t// \tvm.selectAllPre = true;\r\n\t\t\t// }\r\n\t\t\tfunction toggleOnePre(selectedItems) {\r\n\t\t\t\tvm.selectSinglePre = false;\r\n\t\t\t\tvm.selectAllPre = false;\r\n\t\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\t\tif (selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectSinglePre = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.BroadcastField = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.FixedUserList.length; i++) {\r\n\t\t\t\tif (vm.selectedFixed[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.FixedUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.FixedUserList[i].Price), \"Distance\": parseInt(vm.FixedUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 0,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.BroadcastTicketNearBy = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.NearByUserList.length; i++) {\r\n\t\t\t\tif (vm.selectedNearBy[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.NearByUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.NearByUserList[i].Price), \"Distance\": parseInt(vm.NearByUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 1,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.BroadcastTicketPool = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.PrefreUserList.length; i++) {\r\n\t\t\t\tif (vm.selected[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.PrefreUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.PrefreUserList[i].Price), \"Distance\": parseInt(vm.PrefreUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 2,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.BroadcastTicketPrevious = function () {\r\n\t\t\t//vm.dissbleBroadcastButton = true;\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.PreviousUserList.length; i++) {\r\n\t\t\t\tif (vm.selectedPre[i] == true) {\r\n\t\t\t\t\ttemp.push({ \"UserId\": vm.PreviousUserList[i].id, \"SuggestedPrice\": null, \"Price\": parseInt(vm.PreviousUserList[i].Price), \"Distance\": parseInt(vm.PreviousUserList[i].UserDistance) });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"TechnicianSource\": 3,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.routeFixed = function (index) {\r\n\t\t\tvar data = vm.FixedUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 0,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"User Not Found.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.route = function (index) {\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar data = vm.NearByUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 1,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tvm.showloading = true;\r\n\t\t\t\tJobDetailViewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (resp.status == 206) {\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Users Not Found\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.showloading = false;\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.routePreTalent = function (index) {\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar data = vm.PrefreUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 2,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"User Not Found.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.routePrevoius = function (index) {\r\n\t\t\tvm.DisableRouteBroadcastButtons(true);\r\n\t\t\tvar data = vm.PreviousUserList[index];\r\n\t\t\tvar temp = [];\r\n\t\t\ttemp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"BIDDuration\": vm.TicketInfo.BidDuration,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": vm.TicketInfo.MobiforceCommission,\r\n\t\t\t\t\"BroadcastType\": \"Route\",\r\n\t\t\t\t\"TechnicianSource\": 3,\r\n\t\t\t\t\"Users\": temp\r\n\t\t\t};\r\n\t\t\tif (data.Users.length > 0) {\r\n\t\t\t\tJobDetailViewService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess('Success', \"Jobs Route Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Users Not Found.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select users.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.reload();\r\n\t\t\t\t\tvm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tvm.getReadyToAssign = function () {\r\n\r\n\t\t\tvar roleList = [];\r\n\t\t\troleList.push({ \"UserRole\": 'Field Engineer', \"UserType\": \"Freelancer\" });\r\n\t\t\troleList.push({ \"UserRole\": 'Vendor Manager', \"UserType\": \"Freelancer\" });\r\n\t\t\tvar orderbyUser = [];\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 2, \"OrderByField\": \"UserRating\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 3, \"OrderByField\": \"BIDCounterRate\" });\r\n\t\t\torderbyUser.push({ \"PriorityOrder\": 1, \"OrderByField\": \"UserDistance\" });\r\n\r\n\t\t\tvar data = {\r\n\t\t\t\t\"JobId\": vm.TicketId,\r\n\t\t\t\t\"JobAccountId\": '',\r\n\t\t\t\t\"ActOnCurrentLocation\": false,\r\n\t\t\t\t\"RangeFromJob\": 50 * 1000,\r\n\t\t\t\t\"UserConfigList\": roleList,\r\n\t\t\t\t\"FETravelChargePerKM\": 10,\r\n\t\t\t\t\"FromDate\": vm.TicketInfo.StartTime,\r\n\t\t\t\t\"ToDate\": vm.TicketInfo.EndTime,\r\n\t\t\t\t\"TransportMode\": \"driving\",\r\n\t\t\t\t\"OrderByUsers\": orderbyUser\r\n\t\t\t};\r\n\r\n\t\t\tdata.JobAccountId = '';\r\n\t\t\tJobDetailViewService.GetSchedulingEvaluationResult(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.ReadytoAssignUser = resp.data.users;\r\n\t\t\t\tvm.ReadyUserLength = vm.ReadytoAssignUser.length;\r\n\r\n\t\t\t});\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.AssignTicketsToFixedTeam = function (index) {\r\n \r\n\t\t\tvar temp = vm.FixedUserList[index];\r\n\t\t\tif ($localStorage.loggedInUser_Role == 'Vendor Manager' || $localStorage.loggedInUser_Role == 'Service Center') {\r\n\t\t\t\tJobDetailViewService.VendorManagerAssignJobTeam(temp.id, loggedinUser, uTicketId, vm.TicketInfo.JobAccountId, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == '200') {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\r\n\t\t\t\tvar AllUserList = [];\r\n\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"UserId\": temp.id ? temp.id : temp.LinkId,\r\n\t\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\t\"StartTime\": moment(vm.TicketInfo.StartTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\t\"Endtime\": moment(vm.TicketInfo.EndTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\t\"SuggestedPrice\": temp.Price,\r\n\t\t\t\t\t\"AssignPrice\": temp.Price,\r\n\t\t\t\t\t\"Distance\": temp.UserDistance\r\n\t\t\t\t}\r\n\t\t\t\tAllUserList.push(data);\r\n\t\t\t\tif (AllUserList == '') {\r\n\t\t\t\t\tvm.showFailure(\"Please select users.\")\r\n\t\t\t\t} else {\r\n\t\t\t\t\tJobDetailViewService.AssignTicketsTimeline(loggedinUser, AllUserList, token).then(function (resp) {\r\n\t\t\t\t\t\tif (resp && resp.status == '200') {\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t\t}, 2000);\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.AssignTicketsTimeline = function (rUser, index) {\r\n\t\t\tvar AllUserList = [];\r\n\t\t\tvar data = {\r\n\t\t\t\t\"UserId\": rUser.id ? rUser.id : rUser.LinkId,\r\n\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\"StartTime\": moment(vm.TicketInfo.StartTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"Endtime\": moment(vm.TicketInfo.EndTime).format('YYYY-MM-DD HH:mm'),\r\n\t\t\t\t\"SuggestedPrice\": rUser.BIDCounterRate,\r\n\t\t\t\t\"AssignPrice\": rUser.BIDCounterRate,\r\n\t\t\t\t\"Distance\": rUser.UserDistance\r\n\t\t\t}\r\n\t\t\tAllUserList.push(data);\r\n\t\t\tif (AllUserList == '') {\r\n\t\t\t\tvm.showFailure(\"Please select users.\")\r\n\t\t\t} else {\r\n\t\t\t\tJobDetailViewService.AssignTicketsTimeline(loggedinUser, AllUserList, token).then(function (resp) {\r\n\r\n\t\t\t\t\tif (resp && resp.status == '200') {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job Assigned Successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t\t// scheduler.clearAll();\r\n\r\n\t\t\t\t\t\t// $timeout(function () {\r\n\t\t\t\t\t\t// vm.mapMarkers=[];\r\n\t\t\t\t\t\t// vm.AssignModal.close();\r\n\t\t\t\t\t\t// GetSchedulingEventforToday(loggedinUser);\r\n\t\t\t\t\t\t// if(vm.TicketStatus==\"New\"){\r\n\t\t\t\t\t\t// \t vm.GetTicketsForAssignation();\r\n\t\t\t\t\t\t// }else if(vm.TicketStatus==\"ReadyToAssign\"){\r\n\t\t\t\t\t\t// \tvm.getReadyToAssign();\r\n\t\t\t\t\t\t// }\r\n\r\n\r\n\t\t\t\t\t\t// }, 1500);\r\n\t\t\t\t\t\t// if(vm.Mode=='Map') {\r\n\t\t\t\t\t\t// $timeout(function () {\r\n\t\t\t\t\t\t// \t vm.mapMarkers=[];\r\n\t\t\t\t\t\t// \t vm.AssignModal.close();\r\n\t\t\t\t\t\t// }, 1500);\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (resp.status == 206) {\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t\r\n\t\tvm.GetAllQueryForTicket = function () {\r\n\t\t\tConsumerQueryService.GetAllQueryForTicket(loggedinUser, token, vm.TicketId).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.AllQueryData = resp.data;\r\n\t\t\t\t\tvm.IsQueriesFound = true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\tvm.IsQueriesFound = false;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.ReplyToQuery = function (query) {\r\n\t\t\tif (query.teamReply) {\r\n\t\t\t\tvar queryModel = {\r\n\t\t\t\t\t\"MMFTicketId\": vm.TicketId,\r\n\t\t\t\t\t\"Query\": query.strQuery,\r\n\t\t\t\t\t\"Response\": query.teamReply\r\n\t\t\t\t}\r\n\t\t\t\tJobDetailViewService.ReplyToQuery(queryModel, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Reply sent successfully.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetAllQueryForTicket();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.getCustomerJobCard = function () {\r\n\t\t\tJobDetailViewService.getCustomerJobCardbyJobId(loggedinUser, vm.TicketId, token, function (data) {\r\n\t\t\t\tvm.JobLatitude = data.JobLatitude;\r\n\t\t\t\tvm.JobLongitude = data.JobLongitude;\r\n\t\t\t\tvm.FELatitude = data.FELatitude;\r\n\t\t\t\tvm.FELongitude = data.FELongitude;\r\n\t\t\t\tvm.contactnumber = data.FEContactNumber;\r\n\t\t\t\tvm.jobtype = data.Description;\r\n\t\t\t\tvm.name = data.FEName;\r\n\r\n\r\n\t\t\t\t// $log.log(\"res of getCustomerJobCard=\" + data);\r\n\t\t\t\tvm.customerJobCard = data;\r\n\t\t\t\tif ($localStorage.rateJobParams) {\r\n\t\t\t\t\tvm.customerJobCard.userRole = $localStorage.Role;\r\n\t\t\t\t\tvm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n\t\t\t\t\tvm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n\t\t\t\t\tdelete $localStorage.rateJobParams;\r\n\t\t\t\t}\r\n\t\t\t\tif (data && data.JobStatus == 'PaymentDone') {\r\n\r\n\t\t\t\t}\r\n\t\t\t\tif(vm.FELatitude == '0' || vm.FELongitude == '0'){\r\n\t\t\t\t\tdisplayJobOnMap();\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"Unable to fetch Lat Long for this address. Please check and update the technician's address and try again.\");\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tinitMap();\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Unable to reach server\");\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.getTracking = function () {\r\n\r\n\t\t\tif ((vm.TicketInfo.TicketStatus == 'New' || vm.TicketInfo.TicketStatus == 'Hold' || vm.TicketInfo.TicketStatus == 'Broadcasted' || vm.TicketInfo.TicketStatus == 'ReadyToAssign') && vm.TicketInfo.IsTrackingAllowed == true) {\r\n\t\t\t\tvm.superPower = true;\r\n\t\t\t\tdisplayJobOnMap();\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif ((vm.TicketInfo.TicketStatus == 'Assigned' || vm.TicketInfo.TicketStatus == 'Rejected' || vm.TicketInfo.TicketStatus == 'Approved' || vm.TicketInfo.TicketStatus == 'Completed') && vm.TicketInfo.UserId && vm.TicketInfo.IsTrackingAllowed == true) {\r\n\t\t\t\t\tvm.showMapPermision = true;\r\n\t\t\t\t\tvm.superPower = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.showMapPermision = false;\r\n\t\t\t\t}\r\n\t\t\t\tvm.getCustomerJobCard();\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t$scope.slide = false;\r\n\t\tvm.customergetTracking = function () {\r\n\t\t\tcustomerinitMap();\r\n\t\t\tif ($scope.slide == false) {\r\n\t\t\t\t$scope.slide = true;\r\n\t\t\t} else {\r\n\t\t\t\t$scope.slide = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// -------------------------------------------------------------------------------\r\n\t\t// Tracking code goes here\r\n\r\n\t\tvm.makeUserMarker = function (position, icon, map) {\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: position,\r\n\t\t\t\tmap: map,\r\n\t\t\t\ticon: icon\r\n\t\t\t});\r\n\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t(function (marker, customerJobCard) {\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.setContent(\"

\" + vm.name + \"

\");\r\n\t\t\t\t\t$scope.InfoWindow.open($scope.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.close(vm.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t})(marker, vm.customerJobCard);\r\n\r\n\t\t\t//Plotting the Marker on the Map.\r\n\t\t\t$scope.Latlngbounds.extend(marker.position);\r\n\r\n\t\t}\r\n\r\n\t\tvm.makeJobMarker = function (position, icon, map) {\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: position,\r\n\t\t\t\tmap: map,\r\n\t\t\t\ticon: icon\r\n\t\t\t});\r\n\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t(function (marker, customerJobCard) {\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.setContent(\"

\" + vm.TicketInfo.ConsumerName + \"

\" + ' ' + vm.TicketInfo.TicketId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.TicketInfo.ConsumerContact);\r\n\t\t\t\t\t$scope.InfoWindow.open($scope.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.close(vm.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t})(marker, vm.customerJobCard);\r\n\r\n\t\t\t//Plotting the Marker on the Map.\r\n\t\t\t$scope.Latlngbounds.extend(marker.position);\r\n\t\t}\r\n\r\n\r\n\t\tvm.customermakeUserMarker = function (position, icon, map) {\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: position,\r\n\t\t\t\tmap: map,\r\n\t\t\t\ticon: icons.custstart\r\n\t\t\t});\r\n\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t(function (marker, customerJobCard) {\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.setContent(\"

Address updated by customer

\" + ' ' + vm.TicketInfo.OrignalLatitude + \"\" + ' ' + vm.TicketInfo.OrignalLongitude); $scope.InfoWindow.open($scope.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.close(vm.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t})(marker, vm.customerJobCard);\r\n\r\n\t\t\t//Plotting the Marker on the Map.\r\n\t\t\t$scope.Latlngbounds.extend(marker.position);\r\n\r\n\t\t}\r\n\r\n\t\tvm.customermakeJobMarker = function (position, icon, map) {\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: position,\r\n\t\t\t\tmap: map,\r\n\t\t\t\ticon: icon\r\n\t\t\t});\r\n\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t(function (marker, customerJobCard) {\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.setContent(\"

\" + vm.TicketInfo.ConsumerName + \"

\" + ' ' + vm.TicketInfo.Latitude + \" \" + ' ' + vm.TicketInfo.Longitude); $scope.InfoWindow.open($scope.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.close(vm.Map, marker);\r\n\t\t\t\t});\r\n\t\t\t})(marker, vm.customerJobCard);\r\n\r\n\t\t\t//Plotting the Marker on the Map.\r\n\t\t\t$scope.Latlngbounds.extend(marker.position);\r\n\t\t}\r\n\r\n\t\tfunction initMap() {\r\n\t\t\tvar isJobLocationValid = !(vm.JobLatitude == '0' && vm.JobLongitude == '0');\r\n // var isFeLocationValid = !(vm.FELatitude == '0' && vm.FELongitude == '0');\r\n\t\t\tvar pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n\t\t\t\tpointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n\t\t\t\t// center = new google.maps.LatLng(51.3, 0.8),\r\n\t\t\t\tmyOptions = {\r\n\t\t\t\t\tzoom: 8,\r\n\t\t\t\t\tzoomControl: false,\r\n\t\t\t\t\tscaleControl: true,\r\n\t\t\t\t\tmapTypeControl: false,\r\n\t\t\t\t\tstreetViewControl: false,\r\n\t\t\t\t\tgestureHandling: 'greedy',\r\n\t\t\t\t\t// center: center,\r\n\t\t\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP\r\n\t\t\t\t},\r\n\r\n\t\t\t\tmap = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n\t\t\t\t// Instantiate a directions service.\r\n\t\t\t\tdirectionsService = new google.maps.DirectionsService,\r\n\t\t\t\tdirectionsDisplay = new google.maps.DirectionsRenderer({\r\n\t\t\t\t\tmap: map\r\n\t\t\t\t}),\r\n\t\t\t\tduration = document.getElementById('duration');\r\n\t\t\tdistance = document.getElementById('distance');\r\n\t\t\tflightPath = new google.maps.Polyline({\r\n\t\t\t\tpath: [pointA, pointB],\r\n\t\t\t\t// geodesic: true,\r\n\t\t\t\tstrokeColor: 'red',\r\n\t\t\t});\r\n\t\t\t$scope.InfoWindow = new google.maps.InfoWindow();\r\n\t\t\t$scope.Latlngbounds = new google.maps.LatLngBounds();\r\n\t\t\t// click on marker B to get route from A to B\r\n\t\t\tif (isJobLocationValid) {\r\n\t\t\t\tcalculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n\t\t\t} \r\n\t\t\telse{\r\n\t\t\t\tvm.showFailure(\"Error\", \"Unable to fetch Lat Long for this address. Please check and update the consumer address and try again.\");\r\n\t\t\t\tvar defaultCenter = new google.maps.LatLng(20.5937, 78.9629);\r\n\t\t\t\tmap.setCenter(defaultCenter);\r\n\t\t\t\tmap.setZoom(5);\r\n\t\t\t}\r\n\t\t\tvar travelMode = \"DRIVING\";\r\n\t\t\tvar icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n\t\t}\r\n\r\n\r\n\t\tfunction customerinitMap() {\r\n\t\t\tvar orgLat = vm.TicketInfo.OrignalLatitude;\r\n\t\t\tvar orgLong = vm.TicketInfo.OrignalLongitude;\r\n\t\t\tvar origLatLong = new google.maps.LatLng(vm.TicketInfo.Latitude, vm.TicketInfo.Longitude);\r\n\t\t\tvar custUpdatedLatLong = new google.maps.LatLng(vm.TicketInfo.OrignalLatitude, vm.TicketInfo.OrignalLongitude);\r\n\t\t\t// function custUpdatedLatLong(orgLat) {\r\n\t\t\t// \treturn isFinite(orgLat) && Math.abs(orgLat) <= 90;\r\n\t\t\t// }\r\n\r\n\t\t\t// function custUpdatedLatLong(orgLong) {\r\n\t\t\t// \treturn isFinite(orgLong) && Math.abs(orgLong) <= 180;\r\n\t\t\t// }\r\n\t\t\t// const regexExp = /^((\\-?|\\+?)?\\d+(\\.\\d+)?),\\s*((\\-?|\\+?)?\\d+(\\.\\d+)?)$/gi;\r\n\t\t\tif ((orgLat > 0 && orgLat <= 90) && (orgLong > 0 && orgLong <= 180)) {\r\n\t\t\t\tvar myOptions = {\r\n\t\t\t\t\tzoom: 8,\r\n\t\t\t\t\tzoomControl: false,\r\n\t\t\t\t\tscaleControl: true,\r\n\t\t\t\t\tmapTypeControl: false,\r\n\t\t\t\t\tstreetViewControl: false,\r\n\t\t\t\t\tgestureHandling: 'greedy',\r\n\t\t\t\t\t// center: center,\r\n\t\t\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP\r\n\t\t\t\t},\r\n\r\n\t\t\t\t\tmap = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n\t\t\t\t\t// Instantiate a directions service.\r\n\t\t\t\t\tdirectionsService = new google.maps.DirectionsService,\r\n\t\t\t\t\tdirectionsDisplay = new google.maps.DirectionsRenderer({\r\n\t\t\t\t\t\tmap: map\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tduration = document.getElementById('duration');\r\n\t\t\t\tdistance = document.getElementById('distance');\r\n\t\t\t\tflightPath = new google.maps.Polyline({\r\n\t\t\t\t\tpath: [origLatLong, custUpdatedLatLong],\r\n\t\t\t\t\tstrokeColor: 'red',\r\n\t\t\t\t});\r\n\t\t\t\t$scope.InfoWindow = new google.maps.InfoWindow();\r\n\t\t\t\t$scope.Latlngbounds = new google.maps.LatLngBounds();\r\n\t\t\t\tcustcalculateAndDisplayRoute(directionsService, directionsDisplay, origLatLong, custUpdatedLatLong, distance, duration, map);\r\n\t\t\t\tvar travelMode = \"DRIVING\";\r\n\t\t\t\tvar icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n\t\t\t} else {\r\n\t\t\t\tvar mapOptions = {\r\n\t\t\t\t\tzoom: 15,\r\n\t\t\t\t\tscaleControl: true,\r\n\t\t\t\t\tgestureHandling: 'greedy',\r\n\t\t\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP,\r\n\t\t\t\t\tcenter: origLatLong\r\n\t\t\t\t}\r\n\t\t\t\tvar map = new google.maps.Map(document.getElementById(\"map-canvas\"), mapOptions);\r\n\r\n\t\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\t\tposition: origLatLong,\r\n\t\t\t\t\ticon: icons.start\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$scope.InfoWindow = new google.maps.InfoWindow();\r\n\t\t\t\t$scope.Latlngbounds = new google.maps.LatLngBounds();\r\n\r\n\t\t\t\tvar ticketinformation = vm.TicketInfo;\r\n\r\n\t\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t\t(function (marker, ticketinformation) {\r\n\t\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t\t$scope.InfoWindow.setContent(\"

Original Address

\" + ' ' + vm.TicketInfo.Latitude + ' ' + \" \" + ' ' + vm.TicketInfo.Longitude);\r\n\t\t\t\t\t\t$scope.InfoWindow.open(map, marker);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t\t$scope.InfoWindow.close(map, marker);\r\n\t\t\t\t\t});\r\n\t\t\t\t})(marker, ticketinformation);\r\n\r\n\t\t\t\t// To add the marker to the map, call setMap();\r\n\t\t\t\tmarker.setMap(map);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map) {\r\n\t\t\tvar selectedMode = \"DRIVING\";\r\n\t\t\tdirectionsService.route({\r\n\t\t\t\torigin: pointA,\r\n\t\t\t\tdestination: pointB,\r\n\t\t\t\tunitSystem: google.maps.UnitSystem.METRIC,\r\n\t\t\t\ttravelMode: google.maps.TravelMode[selectedMode]\r\n\t\t\t}, function (response, status) {\r\n\t\t\t\tif (status == google.maps.DirectionsStatus.OK) {\r\n\t\t\t\t\tnew google.maps.DirectionsRenderer({\r\n\t\t\t\t\t\tmap: map,\r\n\t\t\t\t\t\tdirections: response,\r\n\t\t\t\t\t\tsuppressMarkers: true,\r\n\t\t\t\t\t\tpolylineOptions: {\r\n\t\t\t\t\t\t\tstrokeColor: \"#000000\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tvar leg = response.routes[0].legs[0];\r\n\t\t\t\t\t//outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n\t\t\t\t\tdistance.innerHTML = response.routes[0].legs[0].distance.text;\r\n\t\t\t\t\tduration.innerHTML = response.routes[0].legs[0].duration.text;\r\n\t\t\t\t\tvm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n\t\t\t\t\tvm.makeJobMarker(leg.start_location, icons.start, map);\r\n\t\t\t\t\tvm.makeUserMarker(leg.end_location, icons.end, map);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log(\"Directions request failed due to: \" + status);\r\n\t\t\t\t\t// window.alert('Directions request failed due to ' + status);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tfunction custcalculateAndDisplayRoute(directionsService, directionsDisplay, origLatLong, custUpdatedLatLong, distance, duration, map) {\r\n\t\t\tvar selectedMode = \"DRIVING\";\r\n\t\t\tdirectionsService.route({\r\n\t\t\t\torigin: origLatLong,\r\n\t\t\t\tdestination: custUpdatedLatLong,\r\n\t\t\t\tunitSystem: google.maps.UnitSystem.METRIC,\r\n\t\t\t\ttravelMode: google.maps.TravelMode[selectedMode]\r\n\t\t\t}, function (response, status) {\r\n\t\t\t\tif (status == google.maps.DirectionsStatus.OK) {\r\n\t\t\t\t\tnew google.maps.DirectionsRenderer({\r\n\t\t\t\t\t\tmap: map,\r\n\t\t\t\t\t\tdirections: response,\r\n\t\t\t\t\t\tsuppressMarkers: true,\r\n\t\t\t\t\t\tpolylineOptions: {\r\n\t\t\t\t\t\t\tstrokeColor: \"#000000\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tvar leg = response.routes[0].legs[0];\r\n\t\t\t\t\t//outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n\t\t\t\t\tdistance.innerHTML = response.routes[0].legs[0].distance.text;\r\n\t\t\t\t\tduration.innerHTML = response.routes[0].legs[0].duration.text;\r\n\t\t\t\t\tvm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n\t\t\t\t\tvm.customermakeJobMarker(leg.start_location, icons.start, map);\r\n\t\t\t\t\tvm.customermakeUserMarker(leg.start_location, icons.custstart, map);\r\n\r\n\t\t\t\t\tvm.customermakeJobMarker = function (position, icon, map) {\r\n\t\t\t\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\t\t\t\tposition: position,\r\n\t\t\t\t\t\t\tmap: map,\r\n\t\t\t\t\t\t\ticon: icons.start\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t\t\t\t(function (marker, customerJobCard) {\r\n\t\t\t\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t\t\t\t$scope.InfoWindow.setContent(\"

Original Address

\" + ' ' + vm.TicketInfo.Latitude + \"\" + ' ' + vm.TicketInfo.Longitude); $scope.InfoWindow.open($scope.Map, marker);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t\t\t\t$scope.InfoWindow.close(vm.Map, marker);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t})(marker, vm.customerJobCard);\r\n\r\n\t\t\t\t\t\t//Plotting the Marker on the Map.\r\n\t\t\t\t\t\t$scope.Latlngbounds.extend(marker.position);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\t(leg.end_location, icons.end, map);\r\n\t\t\t\t} else {\r\n\t\t\t\t\twindow.alert('Directions request failed due to ' + status);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvar icons = {\r\n\t\t\tstart: new google.maps.MarkerImage(\r\n\t\t\t\t// URL\r\n\t\t\t\tUIURL + '/assets/images/patterns/JOb_icon.png',\r\n\t\t\t\t// (width,height)\r\n\t\t\t\tnew google.maps.Size(44, 32),\r\n\t\t\t\t// The origin point (x,y)\r\n\t\t\t\tnew google.maps.Point(0, 0),\r\n\t\t\t\t// The anchor point (x,y)\r\n\t\t\t\tnew google.maps.Point(22, 32)),\r\n\t\t\tcuststart: new google.maps.MarkerImage(\r\n\t\t\t\t// URL\r\n\t\t\t\tUIURL + '/assets/images/patterns/about.png',\r\n\t\t\t\t// (width,height)\r\n\t\t\t\tnew google.maps.Size(44, 32),\r\n\t\t\t\t// The origin point (x,y)\r\n\t\t\t\tnew google.maps.Point(0, 0),\r\n\t\t\t\t// The anchor point (x,y)\r\n\t\t\t\tnew google.maps.Point(22, 32)),\r\n\t\t\tend: new google.maps.MarkerImage(\r\n\t\t\t\t// URL\r\n\t\t\t\tUIURL + '/assets/images/patterns/delivery-man1.png',\r\n\t\t\t\t// (width,height)\r\n\t\t\t\tnew google.maps.Size(44, 32),\r\n\t\t\t\t// The origin point (x,y)\r\n\t\t\t\tnew google.maps.Point(0, 0),\r\n\t\t\t\t// The anchor point (x,y)\r\n\t\t\t\tnew google.maps.Point(22, 32))\r\n\t\t};\r\n\r\n\r\n\t\tdisplayJobOnMap = function () {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tShowJobOnMap();\r\n\t\t\t}, 500);\r\n\t\t};\r\n\r\n\t\tfunction ShowJobOnMap() {\r\n\t\t\tvar pointA = new google.maps.LatLng(vm.TicketInfo.Latitude, vm.TicketInfo.Longitude);\r\n\t\t\t//var myLatlng = new google.maps.LatLng(-25.363882,131.044922);\r\n\t\t\tvar mapOptions = {\r\n\t\t\t\tzoom: 15,\r\n\t\t\t\tscaleControl: true,\r\n\t\t\t\tgestureHandling: 'greedy',\r\n\t\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP,\r\n\t\t\t\tcenter: pointA\r\n\t\t\t}\r\n\t\t\tvar map = new google.maps.Map(document.getElementById(\"map-canvas\"), mapOptions);\r\n\r\n\t\t\tvar marker = new google.maps.Marker({\r\n\t\t\t\tposition: pointA,\r\n\t\t\t\ticon: icons.start\r\n\t\t\t});\r\n\r\n\t\t\t$scope.InfoWindow = new google.maps.InfoWindow();\r\n\t\t\t$scope.Latlngbounds = new google.maps.LatLngBounds();\r\n\r\n\t\t\tvar ticketinformation = vm.TicketInfo;\r\n\r\n\t\t\t//Adding InfoWindow to the Marker.\r\n\t\t\t(function (marker, ticketinformation) {\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.setContent(\"

\" + vm.TicketInfo.ConsumerName + \"

\" + ' ' + vm.TicketInfo.ConsumerContact);\r\n\t\t\t\t\t$scope.InfoWindow.open(map, marker);\r\n\t\t\t\t});\r\n\t\t\t\tgoogle.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n\t\t\t\t\t$scope.InfoWindow.close(map, marker);\r\n\t\t\t\t});\r\n\t\t\t})(marker, ticketinformation);\r\n\r\n\t\t\t// To add the marker to the map, call setMap();\r\n\t\t\tmarker.setMap(map);\r\n\r\n\t\t}\r\n\r\n\t\t// Start chat section and developed by Satya\r\n\r\n\t\tvm.getPicUrl = function (pic) {\r\n\t\t\treturn ImageUrl + \"/\" + pic;\r\n\t\t}\r\n\t\tvar pageloadselecteduserid = \"\";\r\n\t\tvar pageloadselectedusername = \"\";\r\n\t\tvm.getTicketUserList = function (loggedinUser, ticketId, token) {\r\n\t\t\tJobDetailViewService.GetUsersByTicketId(loggedinUser, ticketId, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.UserListByTicketId = resp.data;\r\n\t\t\t\t\tif (resp.data.length > 0) {\r\n\t\t\t\t\t\t//chatfooterrow.visible=true;\r\n\t\t\t\t\t\tpageloadselecteduserid = resp.data[0].UserId;\r\n\t\t\t\t\t\tpageloadselectedusername = resp.data[0].FirstName + \" \" + resp.data[0].LastName;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.getTicketUserList(loggedinUser, uTicketId, token);\r\n\t\tvm.PressEnter = function (event, chatReceiverId, messageText) {\r\n\t\t\tif (event.keyCode == '13') {\r\n\t\t\t\tvm.sendMessage(chatReceiverId, messageText);\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.LoadMessageToReadMessageStatus = function (TicketIdtoRead) {\r\n\t\t\tif (!TicketIdtoRead) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar query = firebase.firestore().collection('chats')\r\n\t\t\t\t.where(\"ReceiverId\", \"==\", loggedinUser);\r\n\t\t\tvar query1 = query.where(\"TicketId\", \"==\", TicketIdtoRead);\r\n\t\t\tquery1.get().then(function (querySnapshot) {\r\n\t\t\t\tif (querySnapshot.docs.length > 0) {\r\n\t\t\t\t\tquerySnapshot.forEach(function (doc) {\r\n\t\t\t\t\t\tvar message = doc.data();\r\n\t\t\t\t\t\tvar NotifyLength = message.Notify.length;\r\n\t\t\t\t\t\tvar MessageStatusLength = message.MessageStatus.length;\r\n\t\t\t\t\t\tvar messageLength = message.messages.length;\r\n\t\t\t\t\t\tvar TotalNewMessageNotify = messageLength - NotifyLength;\r\n\t\t\t\t\t\tvar TotalNewMessageStatus = messageLength - MessageStatusLength;\r\n\t\t\t\t\t\tvar docRef = firebase.firestore().collection('chats').doc(doc.id);\r\n\t\t\t\t\t\tvar newMessageStatusLength = 0;\r\n\t\t\t\t\t\tvar newNotifyLength = 0;\r\n\t\t\t\t\t\tfor (var i = 0; i < TotalNewMessageStatus; i++) {\r\n\t\t\t\t\t\t\tif (newMessageStatusLength == 0)\r\n\t\t\t\t\t\t\t\tnewMessageStatusLength = MessageStatusLength + 1;\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tnewMessageStatusLength = newMessageStatusLength + 1;\r\n\r\n\t\t\t\t\t\t\tdocRef.update({ MessageStatus: firebase.firestore.FieldValue.arrayUnion(newMessageStatusLength) });\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfor (var i = 0; i < TotalNewMessageNotify; i++) {\r\n\t\t\t\t\t\t\tif (newNotifyLength == 0)\r\n\t\t\t\t\t\t\t\tnewNotifyLength = NotifyLength + 1;\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\tnewNotifyLength = newNotifyLength + 1;\r\n\r\n\t\t\t\t\t\t\tdocRef.update({ Notify: firebase.firestore.FieldValue.arrayUnion(newNotifyLength) });\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvar activeonchat = false;\r\n\t\tvm.getChatOnPageLoad = function () {\r\n\t\t\tactiveonchat = true;\r\n\t\t\tvm.getUserChat(pageloadselecteduserid, pageloadselectedusername, 0);\r\n\t\t}\r\n\r\n\t\tvm.getUserDetailstochat = function (ChatUserId) {\r\n\t\t\tvar username = \"\";\r\n\t\t\tvar upicture = \"\";\r\n\t\t\tfor (var i = 0; i < vm.UserListByTicketId.length; i++) {\r\n\t\t\t\tif (vm.UserListByTicketId[i].UserId == ChatUserId) {\r\n\t\t\t\t\tusername = vm.UserListByTicketId[i].FirstName + \" \" + vm.UserListByTicketId[i].LastName;\r\n\t\t\t\t\tupicture = vm.UserListByTicketId[i].Picture == '' || vm.UserListByTicketId[i].Picture == null ? 'assets/images/patterns/photo2.jpg' : vm.getPicUrl(vm.UserListByTicketId[i].Picture);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tUserName: username,\r\n\t\t\t\tuPicture: upicture\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tvm.PreviousIndex = 0;\r\n\t\tvar currentelementId = \"\";\r\n\t\tvar previouselementId = \"\";\r\n\t\tvm.chatReceiverId = \"\";\r\n\t\tvm.getUserChat = function (chatUserId, chatUserName, index) {\r\n\t\t\tvm.chatDisplayUserName = chatUserName;\r\n\t\t\tvm.chatReceiverId = chatUserId;\r\n\t\t\tvar ChatTicketId = \"\";\r\n\t\t\tif (loggedinUser < chatUserId)\r\n\t\t\t\tChatTicketId = uTicketId + \"_\" + loggedinUser + \"_\" + chatUserId;\r\n\t\t\telse\r\n\t\t\t\tChatTicketId = uTicketId + \"_\" + chatUserId + \"_\" + loggedinUser;\r\n\r\n\t\t\tvm.loadMessages(ChatTicketId);\r\n\r\n\t\t\tvm.LoadMessageToReadMessageStatus(ChatTicketId);\r\n\r\n\t\t\tif (vm.PreviousIndex == 0) {\r\n\t\t\t\tpreviouselementId = '#DivChatUserList' + vm.PreviousIndex;\r\n\t\t\t\t$(previouselementId).removeClass('chatuseractive');\r\n\t\t\t\tvm.PreviousIndex = index;\r\n\t\t\t\tcurrentelementId = '#DivChatUserList' + index;\r\n\t\t\t\t$(currentelementId).addClass('chatuseractive');\r\n\t\t\t}\r\n\t\t\telse if (vm.PreviousIndex != index) {\r\n\t\t\t\tcurrentelementId = '#DivChatUserList' + index;\r\n\t\t\t\tpreviouselementId = '#DivChatUserList' + vm.PreviousIndex;\r\n\t\t\t\t$(previouselementId).removeClass('chatuseractive');\r\n\t\t\t\t$(currentelementId).addClass('chatuseractive');\r\n\t\t\t\tvm.PreviousIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.getFileType = function (url) {\r\n\t\t\tif (url == null || url == \"\") {\r\n\t\t\t\treturn \"others\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (url.indexOf(\".jpg\") >= 0 || url.indexOf(\".jpeg\") >= 0 || url.indexOf(\".png\") >= 0 || url.indexOf(\".bmp\") >= 0 || url.indexOf(\".JPG\") >= 0 || url.indexOf(\".JPEG\") >= 0 || url.indexOf(\".PNG\") >= 0 || url.indexOf(\".BMP\") >= 0) {\r\n\t\t\t\t\treturn \"image\";\r\n\t\t\t\t} else if (url.indexOf(\".pdf\") >= 0 || url.indexOf(\".PDF\") >= 0) {\r\n\t\t\t\t\treturn \"pdf\";\r\n\t\t\t\t} else if (url.indexOf(\".xls\") >= 0 || url.indexOf(\".xlsx\") >= 0 || url.indexOf(\".XLS\") >= 0 || url.indexOf(\".XLSX\") >= 0) {\r\n\t\t\t\t\treturn \"xls\";\r\n\t\t\t\t} else if (url.indexOf(\".doc\") >= 0 || url.indexOf(\".docx\") >= 0 || url.indexOf(\".DOC\") >= 0 || url.indexOf(\".DOCX\") >= 0) {\r\n\t\t\t\t\treturn \"doc\";\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn \"others\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.ViewJobCombo = function (ticket) {\r\n\t\t\t$localStorage.backToOldJobList = '';\r\n\t\t\t$localStorage.previousPage = 'jobticketcopy';\r\n\t\t\t$state.go('index.JobDetailViewCombo', {\r\n\t\t\t\tticketId: ticket\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tvm.createMessages = function (ticketId, subMessagedata, chatreceiverid) {\r\n\t\t\tvar data = {\r\n\t\t\t\tTicketId: ticketId,\r\n\t\t\t\tNotify: [],\r\n\t\t\t\tMessageStatus: [],\r\n\t\t\t\tReceiverId: chatreceiverid,\r\n\t\t\t\tCreateDate: firebase.firestore.FieldValue.serverTimestamp(),\r\n\t\t\t\tmessages: [subMessagedata]\r\n\t\t\t};\r\n\t\t\tvar docRef = firebase.firestore().collection('chats').add(data);\r\n\t\t}\r\n\r\n\t\tvm.sendMessage = function (chatreceiverid, content) {\r\n\t\t\tif (!content) {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please enter message to chat.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvar ChatTicketId = \"\";\r\n\t\t\t\tif (loggedinUser < chatreceiverid)\r\n\t\t\t\t\tChatTicketId = uTicketId + \"_\" + loggedinUser + \"_\" + chatreceiverid;\r\n\t\t\t\telse\r\n\t\t\t\t\tChatTicketId = uTicketId + \"_\" + chatreceiverid + \"_\" + loggedinUser;\r\n\r\n\t\t\t\t//var status = 'New';\r\n\t\t\t\tvar url = '';\r\n\t\t\t\tvar messagetype = 'Text';\r\n\r\n\t\t\t\tvar subMessagedata = {\r\n\t\t\t\t\tSenderId: loggedinUser,\r\n\t\t\t\t\tReceiverId: chatreceiverid,\r\n\t\t\t\t\tUrl: url,\r\n\t\t\t\t\tMessageType: messagetype,\r\n\t\t\t\t\tTimestamp: new Date(),\r\n\t\t\t\t\tContent: content\r\n\t\t\t\t};\r\n\r\n\t\t\t\tvar query = firebase.firestore().collection(\"chats\")\r\n\t\t\t\t\t.where(\"TicketId\", \"==\", ChatTicketId);\r\n\r\n\t\t\t\tquery.get().then(function (querySnapshot) {\r\n\t\t\t\t\tif (querySnapshot.docs.length > 0) {\r\n\t\t\t\t\t\tquerySnapshot.forEach(function (doc) {\r\n\r\n\t\t\t\t\t\t\tif (doc.data().TicketId == ChatTicketId) {\r\n\t\t\t\t\t\t\t\tvar docRef = firebase.firestore().collection('chats').doc(doc.id);\r\n\t\t\t\t\t\t\t\tdocRef.update({ ReceiverId: chatreceiverid });\r\n\t\t\t\t\t\t\t\tdocRef.update({ messages: firebase.firestore.FieldValue.arrayUnion(subMessagedata) });\r\n\t\t\t\t\t\t\t\t//vm.LoadMessageToReadMessageStatus(ChatTicketId);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tvm.createMessages(ChatTicketId, subMessagedata, chatreceiverid);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.createMessages(ChatTicketId, subMessagedata, chatreceiverid);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tcontent = \"\";\r\n\t\t\tvm.messageText = \"\";\r\n\t\t}\r\n\r\n\t\t// Loads chat messages history and listens for upcoming ones.\r\n\t\tvm.loadMessages = function (chatticketid) {\r\n\t\t\tvar query = firebase.firestore()\r\n\t\t\t\t.collection('chats')\r\n\t\t\t\t.where(\"TicketId\", \"==\", chatticketid)\r\n\t\t\t\t.limit(1);\r\n\t\t\t// Start listening to the query.\r\n\t\t\tvar unsubscribe = query.onSnapshot(function (snapshot) {\r\n\t\t\t\tvar allMessage = \"\";\r\n\t\t\t\tsnapshot.docChanges().forEach(function (change) {\r\n\r\n\t\t\t\t\tif (change.type === 'removed') {\r\n\t\t\t\t\t\t// deleteMessage(change.doc.id);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvar message = change.doc.data();\r\n\r\n\t\t\t\t\t\tallMessage = \"
\";\r\n\t\t\t\t\t\tfor (var i = 0; i < message.messages.length; i++) {\r\n\t\t\t\t\t\t\tif (message.messages.length > 0) {\r\n\t\t\t\t\t\t\t\tvar uPicture = loggedinUserImage == '' || loggedinUserImage == null ? 'assets/images/patterns/photo2.jpg' : vm.getPicUrl(loggedinUserImage);\r\n\t\t\t\t\t\t\t\tif (message.messages[i].SenderId == loggedinUser) {\r\n\t\t\t\t\t\t\t\t\tvar Rightcontent = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Text\")\r\n\t\t\t\t\t\t\t\t\t\tRightcontent = \"\" + message.messages[i].Content + \"\"\r\n\r\n\t\t\t\t\t\t\t\t\tvar RightuploadImage = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Image\") {\r\n\t\t\t\t\t\t\t\t\t\tRightuploadImage += \"\"\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tvar Rightuploadpdf = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"PDF\")\r\n\t\t\t\t\t\t\t\t\t\tRightuploadpdf = \"\"\r\n\t\t\t\t\t\t\t\t\tvar Rightuploadvideo = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Video\")\r\n\t\t\t\t\t\t\t\t\t\tRightuploadvideo = \"
\"\r\n\r\n\t\t\t\t\t\t\t\t\tallMessage += \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \" \" + loggedinUserName + \" \"\r\n\t\t\t\t\t\t\t\t\t\t+ \" \" + moment.unix(message.messages[i].Timestamp.seconds).format(\"ddd MMM DD YYYY - h:mm:ss\") + \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ Rightcontent\r\n\t\t\t\t\t\t\t\t\t\t+ RightuploadImage\r\n\t\t\t\t\t\t\t\t\t\t+ Rightuploadpdf\r\n\t\t\t\t\t\t\t\t\t\t+ Rightuploadvideo\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if (message.messages[i].ReceiverId == loggedinUser) {\r\n\t\t\t\t\t\t\t\t\tvar Leftcontent = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Text\")\r\n\t\t\t\t\t\t\t\t\t\tLeftcontent = \"\" + message.messages[i].Content + \"\"\r\n\r\n\t\t\t\t\t\t\t\t\tvar LeftuploadImage = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Image\") {\r\n\t\t\t\t\t\t\t\t\t\tLeftuploadImage += \"\"\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tvar Leftuploadpdf = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"PDF\")\r\n\t\t\t\t\t\t\t\t\t\tLeftuploadpdf = \"\"\r\n\t\t\t\t\t\t\t\t\tvar Leftuploadvideo = \"\";\r\n\t\t\t\t\t\t\t\t\tif (message.messages[i].MessageType == \"Video\")\r\n\t\t\t\t\t\t\t\t\t\tLeftuploadvideo = \"
\"\r\n\r\n\t\t\t\t\t\t\t\t\tallMessage += \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \" \" + vm.getUserDetailstochat(message.messages[i].SenderId).UserName + \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ \" \" + moment.unix(message.messages[i].Timestamp.seconds).format(\"ddd MMM DD YYYY - h:mm:ss\") + \"\"\r\n\t\t\t\t\t\t\t\t\t\t+ Leftcontent\r\n\t\t\t\t\t\t\t\t\t\t+ LeftuploadImage\r\n\t\t\t\t\t\t\t\t\t\t+ Leftuploadpdf\r\n\t\t\t\t\t\t\t\t\t\t+ Leftuploadvideo\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\t\t\t\t\t\t\t\t\t\t+ \"
\"\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tallMessage += \"
\";\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$('#chatMessageBox').html(allMessage);\r\n\t\t\t\tallMessage = \"\";\r\n\t\t\t\tvar objDiv = document.getElementById(\"scrolldiv\");\r\n\t\t\t\tobjDiv.scrollTop = objDiv.scrollHeight;\r\n\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.saveImageMessage = function (file, chatreceiverid) {\r\n\t\t\t// TODO 9: Posts a new image as a message.\r\n\t\t\t// 1 - We add a message with a loading icon that will get updated with the shared image.\r\n\t\t\tvar ChatTicketId = \"\";\r\n\t\t\tif (loggedinUser < chatreceiverid)\r\n\t\t\t\tChatTicketId = uTicketId + \"_\" + loggedinUser + \"_\" + chatreceiverid;\r\n\t\t\telse\r\n\t\t\t\tChatTicketId = uTicketId + \"_\" + chatreceiverid + \"_\" + loggedinUser;\r\n\r\n\t\t\tvar query = firebase.firestore().collection(\"chats\")\r\n\t\t\t\t.where(\"TicketId\", \"==\", ChatTicketId)\r\n\r\n\t\t\tquery.get().then(function (querySnapshot) {\r\n\t\t\t\tif (querySnapshot.docs.length > 0) {\r\n\t\t\t\t\tquerySnapshot.forEach(function (doc) {\r\n\t\t\t\t\t\tif (doc.data().TicketId == ChatTicketId) {\r\n\t\t\t\t\t\t\t//var status = 'New';\r\n\t\t\t\t\t\t\tvar url = '';\r\n\t\t\t\t\t\t\tvar messagetype = '';\r\n\t\t\t\t\t\t\tif (file.type == \"application/pdf\")\r\n\t\t\t\t\t\t\t\tmessagetype = 'PDF';\r\n\t\t\t\t\t\t\telse if (file.type == \"image/jpg\" || file.type == \"image/png\" || file.type == \"image/jpeg\" || file.type == \"image/bmp\")\r\n\t\t\t\t\t\t\t\tmessagetype = 'Image';\r\n\t\t\t\t\t\t\telse if (file.type == \"video/mp4\")\r\n\t\t\t\t\t\t\t\tmessagetype = 'Video';\r\n\r\n\t\t\t\t\t\t\tvar filePath = loggedinUser + '/' + doc.id + '/' + file.name;\r\n\t\t\t\t\t\t\treturn firebase.storage().ref(filePath).put(file).then(function (fileSnapshot) {\r\n\t\t\t\t\t\t\t\t// 3 - Generate a public URL for the file.\r\n\t\t\t\t\t\t\t\treturn fileSnapshot.ref.getDownloadURL().then(function (url) {\r\n\t\t\t\t\t\t\t\t\t// 4 - Update the chat message placeholder with the image's URL.\r\n\t\t\t\t\t\t\t\t\tvar subMessagedata = {\r\n\t\t\t\t\t\t\t\t\t\tSenderId: loggedinUser,\r\n\t\t\t\t\t\t\t\t\t\tReceiverId: chatreceiverid,\r\n\t\t\t\t\t\t\t\t\t\tUrl: url,\r\n\t\t\t\t\t\t\t\t\t\tMessageType: messagetype,\r\n\t\t\t\t\t\t\t\t\t\tTimestamp: new Date(),\r\n\t\t\t\t\t\t\t\t\t\tContent: '',\r\n\t\t\t\t\t\t\t\t\t\tstorageUri: fileSnapshot.metadata.fullPath\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\tvar docRef = firebase.firestore().collection('chats').doc(doc.id);\r\n\t\t\t\t\t\t\t\t\tdocRef.update({ ReceiverId: chatreceiverid });\r\n\t\t\t\t\t\t\t\t\treturn docRef.update({ messages: firebase.firestore.FieldValue.arrayUnion(subMessagedata) });\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.changeChatFile = function (selector) {\r\n\t\t\tangular.element(selector).trigger(\"click\");\r\n\t\t}\r\n\t\t$scope.uploadChatImageFile = function (files) {\r\n\t\t\tvar file = files.files[0];\r\n\t\t\tif (file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0 || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0 || file.type.indexOf(\"application/pdf\") >= 0) {\r\n\t\t\t\tif (file.size > 2097152) {\r\n\t\t\t\t\talert(\"File size must under 2 MB\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t} else vm.saveImageMessage(file, vm.chatReceiverId);\r\n\t\t\t}\r\n\t\t\telse if (file.type.indexOf(\"video/mp4\") >= 0) {\r\n\t\t\t\tvm.saveImageMessage(file, vm.chatReceiverId);\r\n\t\t\t}\r\n\t\t\telse {\r\n\r\n\t\t\t\talert(\"Please upload image, pdf and mp4 video only\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// End chat section\r\n\t\tvm.minDate = new Date(); \r\n\t\tvar scdt = new Date();\r\n\t\tscdt.setMinutes(scdt.getMinutes() + 30);\r\n\t\tvm.SourceCreationDate = scdt;\r\n\t\tvar pcdt = new Date();\r\n\t\tpcdt.setDate(pcdt.getDate() + 7);\r\n\t\tvm.PlannedClosureDate = pcdt;\r\n\r\n\t\tvm.openCalendar = function (e, picker) {\r\n\t\t\tvm.AppointmentsDate.open = true;\r\n\t\t\tvm.ClosureDateTime.open = true;\r\n\t\t};\r\n\r\n\t\tvar Closuredatelimit = new Date();\r\n\t\t// Closuredatelimit.setMinutes(Closuredatelimit.getMinutes() + 1)\r\n\t\tvm.ClosureDateTime = { date: '', datepickerOptions: { minDate: Closuredatelimit } };\r\n\r\n\t\tvar datelimit = new Date();\r\n\r\n\t\tdatelimit.setMinutes(datelimit.getMinutes() + 1)\r\n\t\t// vm.AppointmentsDate = { date: '', datepickerOptions: { minDate: datelimit }, dateFormat: \"yy/mm/dd\" };\r\n\t\tvm.AppointmentsDate = {\r\n\t\t\tminDate: new Date(), // Today\r\n\t\t\tmaxDate: new Date(new Date().setDate(new Date().getDate() + 3)), // 3 days from today\r\n\t\t\tdatepickerOptions: {\r\n\t\t\t\tminDate: new Date(),\r\n\t\t\t\tmaxDate: new Date(new Date().setDate(new Date().getDate() + 3))\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvm.openCalendarEndDate = function (e, picker) {\r\n\t\t\tvm.AppointmentsEndDate.open = true;\r\n\t\t};\r\n\r\n\t\tvar EndDatelimit = new Date();\r\n\t\tEndDatelimit.setMinutes(EndDatelimit.getMinutes() + 1)\r\n\t\tvm.AppointmentsEndDate = { date: '', datepickerOptions: { minDate: EndDatelimit } };\r\n\r\n\t\tvm.ViewProfile = function (UserId, UserType) {\r\n\r\n\t\t\tJobTicketViewService.getUserProfileData(loggedinUser, UserId, token).then(function (res) {\r\n\t\t\t\tvm.UserProfileData = res.data;\r\n\t\t\t\tvm.customerrating = Number(vm.UserProfileData.CustomerRating).toFixed(1);\r\n\t\t\t\tif (vm.UserProfileData) {\r\n\t\t\t\t\tvm.AddPreferredVendorModal = $uibModal.open({\r\n\t\t\t\t\t\ttemplateUrl: 'UserProfile.html',\r\n\t\t\t\t\t\twindowClass: 'schedulerModal',\r\n\t\t\t\t\t\tscope: $scope,\r\n\t\t\t\t\t\treload: true\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.showFailure('Failed', 'User Not found');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.UserProfileClose = function () {\r\n\t\t\tvm.AddPreferredVendorModal.close();\r\n\t\t}\r\n\r\n\t\tvm.GetServiceTax = function (data) {\r\n\t\t\tvm.GSTPercentange = data;\r\n\t\t}\r\n\t\tvm.GetMobCommission = function (data) {\r\n\t\t\tvm.MobiforceCommission = data;\r\n\t\t}\r\n\t\tJobDetailViewService.GetServiceTax(loggedinUser, token, vm.GetServiceTax);\r\n\t\tJobDetailViewService.GetMobCommission(loggedinUser, token, vm.GetMobCommission);\r\n\t\tvm.calculatePrice = function () {\r\n\r\n\t\t\tif (vm.serviceType == 'Free') {\r\n\r\n\t\t\t\tif (vm.TicketInfoEdit.BroadcastRate > 0) {\r\n\t\t\t\t\t// vm.TicketInfo.FreelancerRate = 0; \r\n\r\n\t\t\t\t\tvm.commission = vm.TicketInfoEdit.BroadcastRate * (vm.MobiforceCommission) / 100;\r\n\t\t\t\t\tvm.freelancerPricetemp = vm.TicketInfoEdit.BroadcastRate - vm.commission;\r\n\t\t\t\t\tvm.tPrice = vm.TicketInfoEdit.BroadcastRate;\r\n\t\t\t\t\tvm.tax = (Number(vm.tPrice) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n\t\t\t\t\tvm.TicketInfo.FreelancerRate = vm.freelancerPricetemp;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.tPrice = \"\";\r\n\t\t\t\t\tvm.commission = \"\";\r\n\t\t\t\t\tvm.tax = \"\";\r\n\t\t\t\t\tvm.freelancerPricetemp = '';\r\n\t\t\t\t\tvm.TicketInfo.FreelancerRate = \"\";\r\n\t\t\t\t}\r\n\t\t\t} else if (vm.serviceType == 'Paid') {\r\n\r\n\t\t\t\tif (vm.TicketInfoEdit.BroadcastRate > 0) {\r\n\t\t\t\t\t// vm.freelancerPrice = 0; \r\n\t\t\t\t\tvm.commission = vm.TicketInfoEdit.BroadcastRate * (vm.MobiforceCommission) / 100;\r\n\t\t\t\t\tvm.freelancerPricetemp = vm.TicketInfoEdit.BroadcastRate - vm.commission;\r\n\t\t\t\t\tvm.tax = (Number(vm.TicketInfoEdit.BroadcastRate) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n\t\t\t\t\tvm.tPrice = (Number(vm.TicketInfoEdit.BroadcastRate) + Number(vm.tax));\r\n\t\t\t\t\tvm.TicketInfo.FreelancerRate = vm.freelancerPricetemp;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.tPrice = \"\";\r\n\t\t\t\t\tvm.commission = \"\";\r\n\t\t\t\t\tvm.tax = \"\";\r\n\t\t\t\t\tvm.freelancerPricetemp = '';\r\n\t\t\t\t\tvm.TicketInfo.FreelancerRate = \"\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tvm.ConverttoDecimal = function (value) {\r\n\t\t\treturn (parseFloat(value).toFixed(2))\r\n\t\t}\r\n\r\n\t\tvm.calculateFreelancerPrice = function () {\r\n\t\t\tif (vm.serviceType == 'Free') {\r\n\t\t\t\tif (vm.TicketInfo.FreelancerRate > 0) {\r\n\t\t\t\t\tvm.TicketInfoEdit.BroadcastRate = 0;\r\n\t\t\t\t\tvm.freelancerPricetemp = vm.TicketInfo.FreelancerRate;\r\n\t\t\t\t\tvm.commission = (vm.TicketInfo.FreelancerRate * vm.MobiforceCommission) / (100 - 20);\r\n\t\t\t\t\tvm.tPrice = Number(vm.TicketInfo.FreelancerRate) + Number(vm.commission);\r\n\t\t\t\t\tvm.tax = vm.tPrice * (vm.GSTPercentange) / 100;\r\n\r\n\t\t\t\t\tvm.TicketInfoEdit.BroadcastRate = vm.tPrice;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.tPrice = \"\";\r\n\t\t\t\t\tvm.freelancerPricetemp = \"\";\r\n\t\t\t\t\tvm.commission = \"\";\r\n\t\t\t\t\tvm.tax = \"\";\r\n\t\t\t\t\tvm.TicketInfoEdit.BroadcastRate = '';\r\n\t\t\t\t}\r\n\r\n\t\t\t} else if (vm.serviceType == 'Paid') {\r\n\r\n\t\t\t\tif (vm.TicketInfo.FreelancerRate > 0) {\r\n\t\t\t\t\tvm.TicketInfoEdit.BroadcastRate = 0;\r\n\t\t\t\t\tvm.freelancerPricetemp = vm.TicketInfo.FreelancerRate;\r\n\t\t\t\t\tvm.commission = (vm.TicketInfo.FreelancerRate * vm.MobiforceCommission) / (100 - vm.MobiforceCommission);\r\n\t\t\t\t\tvm.tax = ((Number(vm.TicketInfo.FreelancerRate) + Number(vm.commission)) * Number(vm.GSTPercentange) / 100).toFixed(2);\r\n\t\t\t\t\tvm.tPrice = Number(Number(vm.TicketInfo.FreelancerRate) + Number(vm.commission)) + Number(vm.tax);\r\n\r\n\t\t\t\t\tvm.TicketInfoEdit.BroadcastRate = Number(Number(vm.TicketInfo.FreelancerRate) + Number(vm.commission));\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.tPrice = \"\";\r\n\t\t\t\t\tvm.freelancerPricetemp = \"\";\r\n\t\t\t\t\tvm.commission = \"\";\r\n\t\t\t\t\tvm.tax = \"\";\r\n\t\t\t\t\tvm.TicketInfoEdit.BroadcastRate = '';\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.OnLoadLineItemDetails = function (LineItemTicketId) {\r\n\r\n\t\t\tvm.showTotal = true;\r\n\t\t\tvm.showGenerateEstimatebutton = false;\r\n\t\t\tJobDetailViewService.OnLoadLineItemDetails(loggedinUser, LineItemTicketId, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.LineItemList = resp.data.LineItemList;\r\n\t\t\t\t\tfor (var i = 0; i < vm.LineItemList.length; i++) {\r\n\t\t\t\t\t\tvar lineItem = vm.LineItemList[i];\r\n\t\t\t\t\t\tvar tData = {\r\n\t\t\t\t\t\t\tLineItemDescription: vm.LineItemList[i].LineItemDescription,\r\n\t\t\t\t\t\t\tLineItemCategory: vm.LineItemList[i].LineItemCategory,\r\n\t\t\t\t\t\t\tLineItemPercentage: vm.LineItemList[i].LineItemPercentage,\r\n\t\t\t\t\t\t\tdLineItemWinPrice: vm.LineItemList[i].dLineItemWinPrice,\r\n\t\t\t\t\t\t\t// dFreelancerPrice: vm.LineItemList[i].dFreelancerPrice,\r\n\t\t\t\t\t\t\tLineItemQuantity: vm.LineItemList[i].LineItemQuantity,\r\n\t\t\t\t\t\t\tFreelancerPrice: vm.LineItemList[i].LineItemFreelancerPrice,\r\n\t\t\t\t\t\t\tLineItemRemark: vm.LineItemList[i].LineItemRemark,\r\n\t\t\t\t\t\t\tAddedFromField: vm.LineItemList[i].AddedFromField,\r\n\t\t\t\t\t\t\tLineItemCompanyProvided: vm.LineItemList[i].LineItemCompanyProvided,\r\n\t\t\t\t\t\t\tLineItemId: vm.LineItemList[i].LineItemId,\r\n\t\t\t\t\t\t\tLineItemCode: vm.LineItemList[i].LineItemCode,\r\n\t\t\t\t\t\t\tLineItemUnit: vm.LineItemList[i].LineItemUnit,\r\n\t\t\t\t\t\t\tUserId: vm.LineItemList[i].UserId,\r\n\t\t\t\t\t\t\tLineItemType: vm.LineItemList[i].LineItemType,\r\n\t\t\t\t\t\t\tIsStockItem: vm.LineItemList[i].IsStockItem,\r\n\t\t\t\t\t\t\tLineItemAttachment: vm.LineItemList[i].LineItemAttachment,\r\n\t\t\t\t\t\t\tLineItemApprovalRemark: vm.LineItemList[i].LineItemApprovalRemark,\r\n\t\t\t\t\t\t\tIsCustomerApprovalNeeded: vm.LineItemList[i].IsCustomerApprovalNeeded,\r\n\t\t\t\t\t\t\tCustomerApprovalStatus: vm.LineItemList[i].CustomerApprovalStatus,\r\n\t\t\t\t\t\t\tBackendApprovalStatus : vm.LineItemList[i].BackendApprovalStatus,\r\n\t\t\t\t\t\t\tIsBackendApprovalNeeded : vm.LineItemList[i].IsBackendApprovalNeeded,\r\n\t\t\t\t\t\t\tLineItemHSNCode: null,\r\n\t\t\t\t\t\t\tLineItemDisplayDescription: null,\r\n\t\t\t\t\t\t\t// LineItemRemark: null,\r\n\t\t\t\t\t\t\tdLineItemFreelancerPrice: vm.LineItemList[i].dLineItemFreelancerPrice,\r\n\t\t\t\t\t\t\tLineItemRemark: vm.LineItemList[i].LineItemRemark,\r\n\t\t\t\t\t\t\t// LineItemQuantity: \"1\",\r\n\t\t\t\t\t\t\tZOHOWarehouseName: vm.LineItemList[i].ZOHOWarehouseName,\r\n\t\t\t\t\t\t\tZOHOSalesOrderId : vm.LineItemList[i].ZOHOSalesOrderId,\r\n\t\t\t\t\t\t\tZOHOSalesOrderStatus: vm.LineItemList[i].ZOHOSalesOrderStatus,\r\n\t\t\t\t\t\t\tLineItemAction: null,\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvm.PriceLineItemList.push(tData);\r\n\t\t\t\t\t\t// If any line item category is \"HW\", set showGenerateEstimatebutton to true\r\n\t\t\t\t\t\tif (lineItem.LineItemCategory == \"HW\") {\r\n\t\t\t\t\t\t\tvm.showGenerateEstimatebutton = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar _baseprice = 0.0;\r\n\t\t\t\t\t\tvar _dFprice = 0.0;\r\n\t\t\t\t\t\tvar _lineitemquantity = 0.0;\r\n\t\t\t\t\t\tvar _lineitemfreelancerprice = 0.0;\r\n\t\t\t\t\t\tif (vm.LineItemList[i].dLineItemWinPrice == \"\" || vm.LineItemList[i].dLineItemWinPrice == null)\r\n\t\t\t\t\t\t\t_baseprice = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_baseprice = vm.LineItemList[i].dLineItemWinPrice;\r\n\r\n\t\t\t\t\t\tif (vm.LineItemList[i].dLineItemFreelancerPrice == \"\" || vm.LineItemList[i].dLineItemFreelancerPrice == null)\r\n\t\t\t\t\t\t\t_dFprice = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_dFprice = vm.LineItemList[i].dLineItemFreelancerPrice;\r\n\t\t\t\t\t\tif (vm.LineItemList[i].LineItemQuantity == \"\" || vm.LineItemList[i].LineItemQuantity == null)\r\n\t\t\t\t\t\t\t_lineitemquantity = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_lineitemquantity = vm.LineItemList[i].LineItemQuantity;\r\n\t\t\t\t\t\tif (vm.LineItemList[i].LineItemFreelancerPrice == \"\" || vm.LineItemList[i].LineItemFreelancerPrice == null)\r\n\t\t\t\t\t\t\t_lineitemfreelancerprice = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t_lineitemfreelancerprice = vm.LineItemList[i].LineItemFreelancerPrice;\r\n\r\n\t\t\t\t\t\tif (vm.LineItemList[i].LineItemCategory != \"Collection\" && vm.LineItemList[i].LineItemCategory != \"Penalty\" && vm.LineItemList[i].LineItemCategory != \"AdvancedPayment\") {\r\n\r\n\t\t\t\t\t\t\t// if(vm.LineItemList[i].LineItemCategory !=\"General\"){\r\n\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(_baseprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(_dFprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t\t// else{\r\n\t\t\t\t\t\t\tif (vm.LineItemList[i].LineItemCompanyProvided == \"No\") {\r\n\t\t\t\t\t\t\t\t_baseprice = 0.0;\r\n\t\t\t\t\t\t\t\t_dFprice = 0.0;\r\n\t\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(_baseprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(_dFprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// }\t\t\t \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (vm.LineItemList[i].LineItemCategory == \"Penalty\") {\r\n\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(_baseprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(_dFprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (vm.LineItemList[i].LineItemCategory == \"AdvancedPayment\") {\r\n\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(_baseprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(_dFprice) * parseInt(_lineitemquantity))).toFixed(2);\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.OnLoadLineItemDetails(vm.TicketId);\r\n\t\tvm.GetAllJobLineItems = function (ticketId) {\r\n\t\t\tJobDetailViewService.GetJobLineItem(loggedinUser, ticketId, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.JobItemList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.ActivityDescription = [];\r\n\r\n\t\tvm.getLineItemAcitivityDesc = function (LineItemCategoryType) {\r\n\t\t\tvm.LineItemDisc = \"\";\r\n\t\t\tvar LineItemAcitivityArray = [];\r\n\t\t\tfor (var i = 0; i < vm.JobItemList.length; i++) {\r\n\t\t\t\tif (vm.JobItemList[i].LineItemCategory == LineItemCategoryType) {\r\n\t\t\t\t\tLineItemAcitivityArray.push(vm.JobItemList[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvm.LineitemActivityList = LineItemAcitivityArray;\r\n\t\t\tif (LineItemCategoryType == \"Service\") {\r\n\t\t\t\tvm.fileuploadShow = false;\r\n\t\t\t\tvm.qunatityEnable = false;\r\n\t\t\t\tvm.PercentageEnable = false;\r\n\t\t\t}\r\n\t\t\tif (LineItemCategoryType == \"HW\") {\r\n\t\t\t\tvm.qunatityEnable = false;\r\n\t\t\t\tvm.fileuploadShow = true;\r\n\t\t\t\tvm.PercentageEnable = false;\r\n\t\t\t\tvm.disableProvided = false;\r\n\t\t\t}\r\n\t\t\tif (LineItemCategoryType == \"HWCollection\") {\r\n\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\tvm.qunatityEnable = false;\r\n\t\t\t\tvm.fileuploadShow = true;\r\n\t\t\t\tvm.PercentageEnable = false;\r\n\t\t\t\tvm.disableProvided = false;\r\n\t\t\t}\r\n\t\t\tif (LineItemCategoryType == \"UserInventory\") {\r\n\t\t\t\tvm.qunatityEnable = false;\r\n\t\t\t\tvm.fileuploadShow = false;\r\n\t\t\t\tvm.PercentageEnable = false;\r\n\t\t\t\tvm.disableProvided = true;\r\n\t\t\t}\r\n\t\t\tif (LineItemCategoryType == \"General\") {\r\n\t\t\t\tvm.qunatityEnable = true;\r\n\t\t\t\tvm.PercentageEnable = true;\r\n\t\t\t}\r\n\t\t\tvm.ActivityDescription = vm.getRemainingLineItems();\r\n\t\t}\r\n\t\tvm.LineItemCompanyProvidedChange = function (LineItemCompanyProvided, index) {\r\n\t\t\tif (typeof index === \"undefined\") {\r\n\t\t\t\tif (LineItemCompanyProvided == \"Yes\") {\r\n\t\t\t\t\tif ((vm.LineItemCategoryType == \"HW\" || vm.LineItemCategoryType == \"Service\") && vm.LineItemList.LineItemDescription == \"Others\") {\r\n\t\t\t\t\t\tvm.LineItemList.dLineItemFreelancerPrice = 0;\r\n\t\t\t\t\t\tvm.CompanyProvidedEnable = true;\r\n\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\tif (vm.LineItemCategoryType == \"HW\" && vm.LineItemList.LineItemDescription == \"Others\") {\r\n\t\t\t\t\t\t\tvm.LineItemList.dLineItemFreelancerPrice = 0;\r\n\t\t\t\t\t\t\tvm.CompanyProvidedEnable = true;\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (vm.LineItemCategoryType == \"Bonus\" || vm.LineItemCategoryType == \"Penalty\") {\r\n\t\t\t\t\t\tvm.CompanyProvidedEnable = true;\r\n\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.LineItemList.origdLineItemFreelancerPrice = vm.LineItemList.dLineItemFreelancerPrice;\r\n\t\t\t\t\t\tvm.LineItemList.dLineItemFreelancerPrice = 0;\r\n\t\t\t\t\t\tvm.CompanyProvidedEnable = true;\r\n\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif ((vm.LineItemCategoryType == \"HW\" || vm.LineItemCategoryType == \"Service\") && vm.LineItemList.LineItemDescription == \"Others\") {\r\n\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\tvm.CompanyProvidedEnable = false;\r\n\t\t\t\t\t\tif (vm.LineItemCategoryType == \"HW\" && vm.LineItemList.LineItemDescription == \"Others\") {\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t\tvm.LineItemList.dLineItemFreelancerPrice = vm.LineItemList.dLineItemWinPrice ? vm.LineItemList.dLineItemWinPrice : 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.CompanyProvidedEnable = false;\r\n\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\tvm.LineItemList.dLineItemFreelancerPrice = vm.LineItemList.origdLineItemFreelancerPrice;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (LineItemCompanyProvided == \"Yes\") {\r\n\t\t\t\t\tvm.PriceLineItemList[index].origdLineItemFreelancerPrice = vm.PriceLineItemList[index].dLineItemFreelancerPrice;\r\n\t\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice = 0;\r\n\t\t\t\t\tvm.CompanyProvidedEnable = true;\r\n\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"HW\" && vm.PriceLineItemList[index].LineItemDescription == \"Others\") {\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice = 0;\r\n\t\t\t\t\t\tvm.CompanyProvidedEnable = true;\r\n\t\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.CompanyProvidedEnable = false;\r\n\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"HW\") {\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemDescription == \"Others\") {\r\n\t\t\t\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t\t\t\t\t\tvm.CompanyProvidedEnable = false;\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice = vm.PriceLineItemList[index].origdLineItemFreelancerPrice;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.LineItemEdit = function (index) {\r\n\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"Collection\") {\r\n\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\tvm.PercentageEnable = true;\r\n\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\tvm.qunatityEnable = true;\r\n\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"General\") {\r\n\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\tvm.qunatityEnable = true;\r\n\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"Service\") {\r\n\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"Service\" && (vm.PriceLineItemList[index].LineItemDescription == \"Others\" || vm.PriceLineItemList[index].LineItemDescription == \"Service Charge\" || vm.PriceLineItemList[index].LineItemDescription == 'PAV Activity')) {\r\n\t\t\t\t\t\tvm.CompanyProvidedEnable = false;\r\n\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\tvm.PercentageEnable = true;\r\n\t\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.qunatityEnable = false;\r\n\t\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\t\tvm.PercentageEnable = false;\r\n\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"Bonus\" || vm.PriceLineItemList[index].LineItemCategory == \"Penalty\") {\r\n\t\t\t\t\tvm.qunatityEnable = true;\r\n\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"AdvancedPayment\") {\r\n\t\t\t\t\tvm.qunatityEnable = false;\r\n\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"HW\" && vm.PriceLineItemList[index].BackendApprovalStatus != \"Estimate shared\") {\r\n\t\t\t\t\tvm.qunatityEnable = false;\r\n\t\t\t\t\tvm.disableProvided = false;\r\n\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCompanyProvided == \"Yes\") {\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"HW\" && vm.PriceLineItemList[index].LineItemDescription == \"Others\") {\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\t\tvm.disableProvided = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"HW\" && vm.PriceLineItemList[index].LineItemDescription == \"Others\") {\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\t\tvm.disableProvided = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif(vm.TicketInfo.JobAccountId == '158' || vm.TicketInfo.JobAccountId == '286' || vm.TicketInfo.JobAccountId == '371'){\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\t\tvm.disableProvided = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\t\t\tvm.disableProvided = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"HW\" && vm.PriceLineItemList[index].BackendApprovalStatus == \"Estimate shared\") {\r\n\t\t\t\t\tvm.qunatityEnable = false;\r\n\t\t\t\t\tvm.disableProvided = false;\r\n\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCompanyProvided == \"Yes\") {\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"HW\" && vm.PriceLineItemList[index].LineItemDescription == \"Others\") {\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\t\tvm.disableProvided = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"HW\" && vm.PriceLineItemList[index].LineItemDescription == \"Others\") {\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\t\tvm.disableProvided = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif(vm.TicketInfo.JobAccountId == '158' || vm.TicketInfo.JobAccountId == '286' || vm.TicketInfo.JobAccountId == '371'){\r\n\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\t\t\tvm.disableProvided = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"Revisit\") {\r\n\t\t\t\t\tvm.qunatityEnable = false;\r\n\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"UserInventory\") {\r\n\t\t\t\t\tvm.qunatityEnable = false;\r\n\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvm.LineItemCompanyProvided = vm.PriceLineItemList[index].LineItemCompanyProvided;\r\n\r\n\t\t}\r\n\t\tvm.OnBasePriceChange = function () {\r\n\t\t\t//fl = bp-bp*(per/100)\r\n\t\t\tif (vm.LineItemList.LineItemPercentage == \"\" || parseFloat(vm.LineItemList.LineItemPercentage) < 1)\r\n\t\t\t\tvm.LineItemList.LineItemPercentage = 0.0;\r\n\t\t\tvm.FreelancerPrice = (parseFloat(vm.LineItemList.dLineItemWinPrice) - parseFloat(vm.LineItemList.dLineItemWinPrice) * (parseFloat(vm.LineItemList.LineItemPercentage) / 100)).toFixed(2);\r\n\t\t\tvm.FreelancerPrice = vm.FreelancerPrice * parseFloat(vm.LineItemList.LineItemQuantity);\r\n\t\t}\r\n\r\n\t\tvm.Get360TeamView = function (teamid) {\r\n\t\t\t$state.go('index.Technician360view', {\r\n\t\t\t\tuserId: teamid\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\r\n\r\n\t\tvm.Dashboard = function (user) {\r\n\t\t\tif (vm.AccountId == '361' || vm.AccountId == '364') {\r\n\t\t\t\tvm.Get360TeamView(user);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\t$state.go('index.Dashboard', {\r\n\t\t\t\t\tUserId: user\r\n\t\t\t\t }, {\r\n\t\t\t\t\treload: true\r\n\t\t\t\t });\r\n\r\n\t\t\t}\r\n\t\t }\r\n\r\n\t\tvm.LineItemDetails = function (ObjLineItem) {\r\n\t\t\tvar LineItemId = ObjLineItem.LineItemId;\r\n\t\t\tjobCreationService.ItemLineDetails(loggedinUser, vm.projectId, LineItemId, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.LineItemList = resp.data;\r\n\t\t\t\t\tvm.LineItemList.LineItemQuantity = 1;\r\n\t\t\t\t\tvm.LineItemCompanyProvided = vm.LineItemList.LineItemCompanyProvided;\r\n\t\t\t\t\tif (vm.LineItemCategoryType == \"Collection\") {\r\n\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\t\tvm.qunatityEnable = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (vm.LineItemCompanyProvided == \"Yes\") {\r\n\t\t\t\t\t\t\tif (vm.LineItemCategoryType == \"General\") {\r\n\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (vm.LineItemCategoryType == \"UserInventory\") {\r\n\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tif (vm.LineItemCategoryType == \"Service\") {\r\n\t\t\t\t\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tvm.disableProvided = false;\r\n\t\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (vm.LineItemCategoryType == \"General\") {\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t\tvm.qunatityEnable = true;\r\n\t\t\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif (vm.LineItemCategoryType == \"Service\") {\r\n\t\t\t\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tvm.disableProvided = false;\r\n\t\t\t\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (vm.LineItemCategoryType == \"AdvancedPayment\") {\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\t\tvm.PercentageEnable = true;\r\n\t\t\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t\tvm.qunatityEnable = true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (vm.LineItemCategoryType == \"HW\" && ObjLineItem.LineItemDescription == \"Others\") {\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\t\tvm.PercentageEnable = true;\r\n\t\t\t\t\t\t\tvm.disableProvided = false;\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ((vm.LineItemCategoryType == \"HW\" && vm.TicketInfo.JobAccountId == '158') || (vm.LineItemCategoryType == \"HW\" && vm.TicketInfo.JobAccountId == '286') || (vm.LineItemCategoryType == \"HW\" && vm.TicketInfo.JobAccountId == '371')) {\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\t\tvm.PercentageEnable = true;\r\n\t\t\t\t\t\t\tvm.disableProvided = false;\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (vm.LineItemCategoryType == \"Service\" && (ObjLineItem.LineItemDescription == \"Others\" || ObjLineItem.LineItemDescription == \"Service Charge\" || ObjLineItem.LineItemDescription == 'PAV Activity')) {\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = false;\r\n\t\t\t\t\t\t\tvm.PercentageEnable = true;\r\n\t\t\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (vm.LineItemCategoryType == \"Bonus\" || ObjLineItem.LineItemDescription == \"Penalty\") {\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\t\tvm.PercentageEnable = true;\r\n\t\t\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (LineItemCategoryType == \"Revisit\") {\r\n\t\t\t\t\t\t\tvm.qunatityEnable = false;\r\n\t\t\t\t\t\t\tvm.fileuploadShow = false;\r\n\t\t\t\t\t\t\tvm.PercentageEnable = false;\r\n\t\t\t\t\t\t\tvm.disableProvided = true;\r\n\t\t\t\t\t\t\tvm.IsBasePriceDisabled = true;\r\n\t\t\t\t\t\t\tvm.FreelancrPriceEnable = true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//vm.calculateLineItemPrice();\t\r\n\t\t\t\t\t\t//vm.OnBasePriceChange();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.searchButtonText = \"Save\";\r\n\t\tvm.addPriceLineItem = function () {\r\n\r\n\t\t\tif (!vm.LineItemCategoryType) {\r\n\t\t\t\tvm.showFailure(\"Warning\", \"Please select category type\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!vm.LineItemDisc) {\r\n\t\t\t\tvm.showFailure(\"Warning\", \"Please select activity description\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (vm.LineItemCategoryType == \"HW\" && !vm.ZOHOWarehouseName && vm.TicketInfo.IsSpareShipmentEnabled == true) {\r\n\t\t\t\tvm.showFailure(\"Warning\", \"Please select warehouse\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (vm.LineItemCategoryType != \"Collection\" && vm.LineItemCategoryType != \"UserInventory\" && vm.LineItemCategoryType != \"General\" && vm.LineItemCategoryType != \"Bonus\" && vm.LineItemCategoryType != \"Penalty\" && vm.LineItemCategoryType != \"AdvancedPayment\" && vm.LineItemCategoryType != \"Revisit\") {\r\n\t\t\t\tif (vm.LineItemList.dLineItemWinPrice == \"\" || vm.LineItemList.dLineItemWinPrice == \"0\"\r\n\t\t\t\t\t|| parseInt(vm.LineItemList.dLineItemWinPrice) < 1) {\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter base price\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.LineItemCompanyProvided == \"\") {\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"Please select company provided yes or no\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.LineItemList.LineItemQuantity == \"\") {\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter quantity\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.LineItemList.LineItemQuantity == 0) {\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"zero (0) quantity not allowed\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.LineItemList.LineItemDescription == \"Others\" && (parseFloat(vm.LineItemList.dLineItemFreelancerPrice) > parseFloat(vm.LineItemList.dLineItemWinPrice))) {\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter freelancer price less or equal to win price\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (vm.LineItemList.dLineItemFreelancerPrice == \"\" || vm.LineItemList.dLineItemFreelancerPrice == \"0\"\r\n\t\t\t\t\t|| parseInt(vm.LineItemList.dLineItemFreelancerPrice) < 1) {\r\n\t\t\t\t\tif (vm.LineItemCategoryType == \"HW\" && vm.LineItemCompanyProvided == \"Yes\") {\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter freelancer price\");\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar tData = {\r\n\t\t\t\tLineItemDescription: vm.LineItemList.LineItemDescription,\r\n\t\t\t\tLineItemCategory: vm.LineItemCategoryType,\r\n\t\t\t\tdLineItemWinPrice: vm.LineItemList.dLineItemWinPrice,\r\n\t\t\t\tLineItemId: vm.LineItemDisc.LineItemId,\r\n\t\t\t\tLineItemCode: vm.LineItemList.LineItemCode,\r\n\t\t\t\tLineItemQuantity: vm.LineItemList.LineItemQuantity,\r\n\t\t\t\tdLineItemFreelancerPrice: vm.LineItemList.dLineItemFreelancerPrice,\r\n\t\t\t\torigdLineItemFreelancerPrice: vm.LineItemList.origdLineItemFreelancerPrice,\r\n\t\t\t\tLineItemRemark: vm.LineItemRemark,\r\n\t\t\t\tLineItemUnit: vm.LineItemList.LineItemUnit,\r\n\t\t\t\tLineItemCompanyProvided: vm.LineItemCompanyProvided,\r\n\t\t\t\tUserId: vm.LineItemList.UserId,\r\n\t\t\t\tIsStockItem: vm.LineItemList.IsStockItem,\r\n\t\t\t\tLineItemType: vm.LineItemList.LineItemType,\r\n\t\t\t\tIsCustomerApprovalNeeded: vm.LineItemList.IsCustomerApprovalNeeded,\r\n\t\t\t\tCustomerApprovalStatus: vm.LineItemList.CustomerApprovalStatus,\r\n\t\t\t\tLineItemAction: \"Add\",\r\n\t\t\t\tLineItemAttachment: \"\",\r\n\t\t\t\tZOHOWarehouseName: vm.ZOHOWarehouseName\r\n\t\t\t}\r\n\r\n\t\t\tvar basePrice = vm.LineItemList.dLineItemWinPrice;\r\n\t\t\tvar dFprice = vm.LineItemList.dLineItemFreelancerPrice;\r\n\t\t\tvar LineItemQuantity = vm.LineItemList.LineItemQuantity;\r\n\r\n\t\t\tif (vm.LineItemCategoryType != \"Collection\" && vm.LineItemCategoryType != \"Penalty\") {\r\n\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(basePrice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\tif (vm.LineItemCategoryType == \"Bonus\") {\r\n\t\t\t\t\tvar FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\tif (parseInt(FLPriceTotal) <= parseInt(vm.BasePriceTotal)) {\r\n\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvar maxBonus = (parseFloat(vm.BasePriceTotal) - parseFloat(vm.dFreelancerPriceTotal)).toFixed(2);\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter bonus price less or equal to \" + maxBonus);\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\tif (vm.LineItemCategoryType == \"Penalty\") {\r\n\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - (parseFloat(basePrice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\tvar FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\tif (parseInt(FLPriceTotal) >= 0) {\r\n\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter penalty price less or equal to \" + vm.dFreelancerPriceTotal);\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (vm.LineItemCategoryType == \"AdvancedPayment\") {\r\n\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - (parseFloat(basePrice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\tvar FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\tif (parseInt(FLPriceTotal) >= 0) {\r\n\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(dFprice) * parseInt(LineItemQuantity))).toFixed(2);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter AdvancedPayment price less or equal to \" + vm.dFreelancerPriceTotal);\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (tData.LineItemDescription) {\r\n\t\t\t\tvm.PriceLineItemList.push(tData);\r\n\t\t\t\tvm.showTCList = false;\r\n\t\t\t\tvm.EmptyLineItemDetails();\r\n\t\t\t} else {\r\n\t\t\t\tvm.showTCList = false;\r\n\t\t\t\tvm.showFailure(\"Warning\", \"You must select activity description\");\r\n\t\t\t}\r\n\t\t\tvm.LineItemCategoryType = \"\";\r\n\t\t\tvm.LineItemDisc = \"\";\r\n\t\t}\r\n\r\n\t\tvm.getRemainingLineItems = function () {\r\n\t\t\tvar RemovePriceLineItems = [];\r\n\t\t\tvar remainingPriceLineItems = Array.from(vm.LineitemActivityList);\r\n\t\t\tangular.forEach(remainingPriceLineItems, function (d) {\r\n\t\t\t\tfor (var i = 0; i < vm.PriceLineItemList.length; i++) {\r\n\t\t\t\t\tif (d.LineItemDescription == vm.PriceLineItemList[i].LineItemDescription && d.LineItemCategory == vm.PriceLineItemList[i].LineItemCategory) {\r\n\t\t\t\t\t\tRemovePriceLineItems.push(d);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tangular.forEach(RemovePriceLineItems, function (s) {\r\n\t\t\t\tremainingPriceLineItems.splice(remainingPriceLineItems.indexOf(s), 1);\r\n\t\t\t})\r\n\t\t\treturn remainingPriceLineItems;\r\n\t\t}\r\n\r\n\t\tvm.showTCList = false;\r\n\t\tvm.showTotal = true;\r\n\t\tvm.addMoreCertificateInTable = function () {\r\n\t\t\tvm.showTCList = true;\r\n\t\t\tvm.showTotal = true;\r\n\t\t\tvm.tempCertificateAdd = true;\r\n\t\t}\r\n\r\n\t\tvm.tempCertificateAdd = false;\r\n\t\tvm.IsVisible = false;\r\n\t\tvar wareHouseItemList = [];\r\n\t\tvar createOrderData = [];\r\n\t\tvm.ShowCreateShipment = function (index) {\r\n\t\t\tif (vm.PriceLineItemList[index].ShowShipmentBtn == true) {\r\n\t\t\t\tvar hwData = {\r\n\t\t\t\t\twarehouseLineItemId: vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t\t\twarehouseCategory: vm.PriceLineItemList[index].LineItemCategory,\r\n\t\t\t\t\twarehouseDescription: vm.PriceLineItemList[index].LineItemDescription,\r\n\t\t\t\t\twarehouseQuantity: vm.PriceLineItemList[index].LineItemQuantity,\r\n\t\t\t\t\twarehouseCompanyProvided: vm.PriceLineItemList[index].LineItemCompanyProvided,\r\n\t\t\t\t\tWarehouseNameSelected: vm.PriceLineItemList[index].ZOHOWarehouseName,\r\n\t\t\t\t\twarehouseBaseprice: vm.PriceLineItemList[index].dLineItemWinPrice,\r\n\t\t\t\t\twarehouseFreelancerPrice: vm.PriceLineItemList[index].dLineItemFreelancerPrice\r\n\t\t\t\t}\r\n\t\t\t\tvar sendWdata = {\r\n\t\t\t\t\tJobLineItemId: vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t\t\tselectedWarehouse: vm.PriceLineItemList[index].ZOHOWarehouseName\r\n\t\t\t\t}\r\n\t\t\t\tcreateOrderData.push(sendWdata);\r\n\t\t\t\twareHouseItemList.push(hwData);\r\n\t\t\t\tvm.IsVisible = vm.PriceLineItemList[index].ShowShipmentBtn;\r\n\t\t\t\tvm.warehouseModal = function () {\r\n\t\t\t\t\tvm.listWdata = wareHouseItemList;\r\n\t\t\t\t\tvm.ShareModal = $uibModal.open({\r\n\t\t\t\t\t\ttemplateUrl: 'warehouseModal.html',\r\n\t\t\t\t\t\tbackdrop: 'static',\r\n\t\t\t\t\t\tsize: 'lg',\r\n\t\t\t\t\t\tscope: $scope\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvm.closeWarehouseModal = function () {\r\n\t\t\t\t\tvm.IsVisible = false;\r\n\t\t\t\t\twareHouseItemList = [];\r\n\t\t\t\t\tcreateOrderData = [];\r\n\t\t\t\t\tvm.ShareModal.close();\r\n\t\t\t\t\tvm.OnLoadLineItemDetails(vm.TicketId);\r\n\t\t\t\t\tvm.PriceLineItemList = [];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\twareHouseItemList = [];\r\n\t\t\t\tcreateOrderData = [];\r\n\t\t\t\tvm.IsVisible = vm.PriceLineItemList[index].ShowShipmentBtn;\r\n\t\t\t}\r\n\t\t\t// var hwData = {\r\n\t\t\t// \twarehouseLineItemId : vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t// \twarehouseCategory : vm.PriceLineItemList[index].LineItemCategory,\r\n\t\t\t// \twarehouseDescription : vm.PriceLineItemList[index].LineItemDescription,\r\n\t\t\t// \twarehouseQuantity : vm.PriceLineItemList[index].LineItemQuantity,\r\n\t\t\t// \twarehouseCompanyProvided : vm.PriceLineItemList[index].LineItemCompanyProvided,\r\n\t\t\t// \tWarehouseNameSelected : vm.PriceLineItemList[index].ZOHOWarehouseName,\r\n\t\t\t// \twarehouseBaseprice : vm.PriceLineItemList[index].dLineItemWinPrice,\r\n\t\t\t// \twarehouseFreelancerPrice : vm.PriceLineItemList[index].dLineItemFreelancerPrice\r\n\t\t\t// }\r\n\t\t\t// var sendWdata = {\r\n\t\t\t// \tJobLineItemId : vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t// \tselectedWarehouse : vm.PriceLineItemList[index].ZOHOWarehouseName\r\n\t\t\t// }\r\n\t\t\t// createOrderData.push(sendWdata);\r\n\t\t\t// wareHouseItemList.push(hwData);\r\n\t\t\t// vm.IsVisible = vm.PriceLineItemList[index].ShowShipmentBtn;\r\n\r\n\t\t\t// vm.warehouseModal = function () {\r\n\t\t\t// \tvm.listWdata = wareHouseItemList;\r\n\t\t\t// \tvm.ShareModal = $uibModal.open({\r\n\t\t\t// \t templateUrl: 'warehouseModal.html',\r\n\t\t\t// \t backdrop: 'static',\r\n\t\t\t// \t size: 'lg',\r\n\t\t\t// \t scope: $scope\r\n\t\t\t// \t});\r\n\t\t\t// }\r\n\r\n\t\t\t// vm.closeWarehouseModal = function () {\r\n\t\t\t// \tvm.ShareModal.close();\r\n\t\t\t// }\r\n\t\t}\r\n\r\n\t\tvm.GetWarehouse = function (warehouseLineItemId) {\r\n\t\t\tvar gData = {\r\n\t\t\t\t\"Id\": warehouseLineItemId,\r\n\t\t\t\t\"TicketId\": vm.TicketId\r\n\t\t\t}\r\n\t\t\tJobDetailViewService.GetWarehouse(token, gData).then(function (resp) {\r\n\t\t\t\tvm.warehouseList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.IsApprovalModelVisible = false;\r\n\t\tvar wareHouseItemList = [];\r\n\t\tvar ApprovalLineItemList = [];\r\n\t\tvar createApprovalData = [];\r\n\t\tvm.ShowApprovalModel = function (index) {\r\n\t\t\t ApprovalLineItemList = [];\r\n\t\t\tif (vm.PriceLineItemList[index].ShowApprovalBtn == true) {\r\n\t\t\t\tvar hwData = {\r\n\t\t\t\t\twarehouseLineItemId: vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t\t\twarehouseCategory: vm.PriceLineItemList[index].LineItemCategory,\r\n\t\t\t\t\twarehouseDescription: vm.PriceLineItemList[index].LineItemDescription,\r\n\t\t\t\t\twarehouseQuantity: vm.PriceLineItemList[index].LineItemQuantity,\r\n\t\t\t\t\twarehouseCompanyProvided: vm.PriceLineItemList[index].LineItemCompanyProvided,\r\n\t\t\t\t\tWarehouseNameSelected: vm.PriceLineItemList[index].ZOHOWarehouseName,\r\n\t\t\t\t\twarehouseBaseprice: vm.PriceLineItemList[index].dLineItemWinPrice,\r\n\t\t\t\t\twarehouseFreelancerPrice: vm.PriceLineItemList[index].dLineItemFreelancerPrice\r\n\t\t\t\t}\r\n\t\t\t\tvar sendWdata = {\r\n\t\t\t\t\tJobLineItemId: vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t\t\tselectedWarehouse: vm.PriceLineItemList[index].ZOHOWarehouseName\r\n\t\t\t\t}\r\n\t\t\t\tvar hwDataForApproval = {\r\n\t\t\t\t\tLineItemId: vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t\t\tLineItemCategory: vm.PriceLineItemList[index].LineItemCategory,\r\n\t\t\t\t\tLineItemDescription: vm.PriceLineItemList[index].LineItemDescription,\r\n\t\t\t\t\tLineItemQuantity: vm.PriceLineItemList[index].LineItemQuantity,\r\n\t\t\t\t\tLineItemCompanyProvided: vm.PriceLineItemList[index].LineItemCompanyProvided,\r\n\t\t\t\t\tdLineItemWinPrice: vm.PriceLineItemList[index].dLineItemWinPrice,\r\n\t\t\t\t\tdLineItemFreelancerPrice: vm.PriceLineItemList[index].dLineItemFreelancerPrice,\r\n\t\t\t\t\tLineItemRemark: vm.PriceLineItemList[index].LineItemRemark\r\n\t\t\t\t}\r\n\t\t\t\tcreateApprovalData.push(sendWdata);\r\n\t\t\t\twareHouseItemList.push(hwData);\r\n\t\t\t\tApprovalLineItemList.push(hwDataForApproval);\r\n\t\t\t\tvm.IsApprovalModelVisible = vm.PriceLineItemList[index].ShowApprovalBtn;\r\n\t\t\t $scope.LineItemDataforApproval = ApprovalLineItemList;\r\n\t\t\t\tvm.ApprovalModal = function () {\r\n\t\t\t\t\tvm.listWdata = wareHouseItemList;\r\n\t\t\t\t\tvm.ShareApprovalModal = $uibModal.open({\r\n\t\t\t\t\t\ttemplateUrl: 'approvalModal.html',\r\n\t\t\t\t\t\tbackdrop: 'static',\r\n\t\t\t\t\t\tsize: 'lg',\r\n\t\t\t\t\t\tscope: $scope\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvm.closeApprovalModal = function () {\r\n\t\t\t\t\tvm.IsApprovalModelVisible = false;\r\n\t\t\t\t\twareHouseItemList = [];\r\n\t\t\t\t\tcreateOrderData = [];\r\n\t\t\t\t\tvm.ShareApprovalModal.close();\r\n\t\t\t\t\tvm.OnLoadLineItemDetails(vm.TicketId);\r\n\t\t\t\t\tvm.PriceLineItemList = [];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\twareHouseItemList = [];\r\n\t\t\t\tcreateOrderData = [];\r\n\t\t\t\tvm.IsApprovalModelVisible = vm.PriceLineItemList[index].ShowApprovalBtn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.StatusUpdateModal = function (index, updateStatus, typeOfApproval) {\r\n\t\t\tif(index.ZOHOWarehouseName == null && index.LineItemCategory == 'HW' && updateStatus == 'Approve' && index.BackendApprovalStatus != 'Estimate shared'){\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please select warehouse first and update line items\");\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\tvm.updateStatus = updateStatus;\r\n\t\t\tvm.TypeOfApproval = typeOfApproval;\r\n\t\t\tvm.updateLineItemId = index.LineItemId;\r\n\t\t\tvm.updateLineItemCategory = index.LineItemCategory;\r\n\t\t\tvm.updateLineItemDescription = index.LineItemDescription;\r\n\t\t\tvm.updateLineItemQuantity = index.LineItemQuantity;\r\n\t\t\tvm.updateCompanyProvided = index.LineItemCompanyProvided;\r\n\t\t\tvm.updatedLineItemWinPrice = index.dLineItemWinPrice;\r\n\t\t\tvm.updatedLineItemFreelancerPrice = index.dLineItemFreelancerPrice;\r\n\t\t\tvm.StatusModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'statusModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.closeStatusModal = function () {\r\n\t\t\tvm.IsApprovalModelVisible = false;\r\n\t\t\tvm.updateStatusRemark = \"\";\r\n\t\t\tvm.enable2 = \"true\";\r\n\t\t\tvm.PriceLineItemList = [];\r\n\t\t\tvm.LineItemStatus = \"\";\r\n\t\t\tvm.StatusModal.close();\r\n\t\t\tvm.OnLoadLineItemDetails(vm.TicketId);\r\n\t\t}\r\n\r\n\r\n\t\tvm.createSales = \"Send\";\r\n\t\tvm.createSalesOrder = function () {\r\n\t\t\tif (vm.TicketId != null) {\r\n\t\t\t\tvm.enable1 = \"false\";\r\n\t\t\t\tvm.createSales = \"Sending...\";\r\n\t\t\t};\r\n\t\t\tdata = {\r\n\t\t\t\t\"itemIdWithWarehouseModels\": createOrderData,\r\n\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t}\r\n\t\t\tJobDetailViewService.createSalesOrder(token, data).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t// vm.warehouseList = resp.data;\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t\tvm.IsVisible = false;\r\n\t\t\t\t\t\twareHouseItemList = [];\r\n\t\t\t\t\t\tcreateOrderData = [];\r\n\r\n\t\t\t\t\t\tvm.ShareModal.close();\r\n\t\t\t\t\t\tvm.OnLoadLineItemDetails(vm.TicketId);\r\n\t\t\t\t\t\tvm.PriceLineItemList = [];\r\n\t\t\t\t\t\tvm.enable1 = \"true\";\r\n\t\t\t\t\t\tvm.createSales = \"Send\";\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.ShareModal.close();\r\n\t\t\t\t\tvm.showFailure('Failed', \"not able to create order \");\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.createPayment = \"Proceed\";\r\n\t\tvm.processPayment = function () {\r\n\t\t\tif (vm.TicketId != null) {\r\n\t\t\t\tvm.enable2 = \"false\";\r\n\t\t\t\tvm.createPayment = \"Proceeding...\";\r\n\t\t\t};\r\n\t\t\tdata = {\r\n\t\t\t\t\"itemIdWithWarehouseModels\": createOrderData,\r\n\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t}\r\n\t\t\tJobDetailViewService.createSalesOrder(token, data).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t// vm.warehouseList = resp.data;\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t\tvm.IsVisible = false;\r\n\t\t\t\t\t\twareHouseItemList = [];\r\n\t\t\t\t\t\tcreateOrderData = [];\r\n\r\n\t\t\t\t\t\tvm.ShareModal.close();\r\n\t\t\t\t\t\tvm.OnLoadLineItemDetails(vm.TicketId);\r\n\t\t\t\t\t\tvm.PriceLineItemList = [];\r\n\t\t\t\t\t\tvm.enable2 = \"true\";\r\n\t\t\t\t\t\tvm.createPayment = \"Proceed\";\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.ShareModal.close();\r\n\t\t\t\t\tvm.showFailure('Failed', \"not able to create order \");\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.updateStatusRemark = \"\";\r\n\t\tvm.UpdateStatusJobLineItem = function () {\r\n\t\t\tvm.enable2 = \"false\";\r\n\t\t\tif (vm.updateStatus == 'Approve') {\r\n\t\t\t\tvm.updateLineitemStatus = 'Approved'\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.updateLineitemStatus = 'Rejected'\r\n\t\t\t}\r\n\t\t\tJobDetailViewService.UpdateStatusJobLineItem(vm.TicketId, vm.updateLineitemStatus, vm.updateLineItemId,vm.updateStatusRemark, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 202) {\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t\tvm.closeStatusModal();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.closeStatusModal();\r\n\t\t\t\t\tvm.showFailure('Failed', resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.UpdateRequestInventoryJobLineItemStatus = function () {\r\n\t\t\tvm.enable2 = \"false\";\r\n\t\t\tif (vm.updateStatus == 'Approve') {\r\n\t\t\t\tvm.updateLineitemStatus = 'Approved'\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.updateLineitemStatus = 'Rejected'\r\n\t\t\t}\r\n\t\t\tJobDetailViewService.UpdateRequestInventoryJobLineItemStatus(vm.TicketId, vm.updateLineitemStatus, vm.updateLineItemId,vm.updateStatusRemark, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 202) {\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t\tvm.closeStatusModal();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.closeStatusModal();\r\n\t\t\t\t\tvm.showFailure('Failed', resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tvm.calculateLineItemPrice = function (index) {\r\n\r\n\t\t\tif (typeof index === \"undefined\") {\r\n\t\t\t\tvar basePrice = vm.LineItemList.dLineItemWinPrice;\r\n\t\t\t\tvar LineItemQuantity = vm.LineItemList.LineItemQuantity;\r\n\t\t\t\t// if(percentage==\"\")\r\n\t\t\t\t// \tprice=0;\r\n\t\t\t\t// else \r\n\t\t\t\t// \tprice = parseInt(LineItemQuantity) * parseFloat(basePrice) * parseFloat(percentage)/100;\r\n\t\t\t\tif (LineItemQuantity == \"\")\r\n\t\t\t\t\ttotalFPrice = 0;\r\n\t\t\t\telse\r\n\t\t\t\t\ttotalFPrice = parseInt(LineItemQuantity) * basePrice - price;\r\n\t\t\t\tif (vm.LineItemList.LineItemCategory == \"HW\" && vm.LineItemList.LineItemCompanyProvided == \"Yes\" && (percentage == 0.0 || percentage == 0)) {\r\n\t\t\t\t\ttotalFPrice = 0.0;\r\n\t\t\t\t}\r\n\t\t\t\tvm.FreelancerPrice = totalFPrice.toFixed(2);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvar basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t\t\t// var percentage = vm.PriceLineItemList[index].LineItemPercentage;\r\n\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\t\t\t\t// var price = parseInt(Quantity) * parseFloat(basePrice) * parseFloat(percentage)/100;\r\n\t\t\t\t// var totalFPrice = parseInt(Quantity) * basePrice - price;\r\n\t\t\t\t// vm.PriceLineItemList[index].FreelancerPrice = totalFPrice.toFixed(2);\r\n\r\n\t\t\t\tif (percentage == \"\")\r\n\t\t\t\t\tprice = 0;\r\n\t\t\t\telse\r\n\t\t\t\t\tprice = parseInt(LineItemQuantity) * parseFloat(basePrice) * parseFloat(percentage) / 100;\r\n\t\t\t\tif (LineItemQuantity == \"\")\r\n\t\t\t\t\ttotalFPrice = 0;\r\n\t\t\t\telse\r\n\t\t\t\t\ttotalFPrice = parseInt(LineItemQuantity) * basePrice - price;\r\n\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"HW\" && vm.PriceLineItemList[index].LineItemCompanyProvided == \"Yes\" && (percentage == 0.0 || percentage == 0)) {\r\n\t\t\t\t\ttotalFPrice = 0.0;\r\n\t\t\t\t}\r\n\t\t\t\tvm.PriceLineItemList[index].FreelancerPrice = totalFPrice.toFixed(2);\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.FreelancerChangeCal = function (index) {\r\n\r\n\t\t\tif (typeof index === \"undefined\") {\r\n\t\t\t\tif (vm.LineItemCategoryType != \"Collection\") {\r\n\t\t\t\t\tif (vm.LineItemCategoryType != \"General\") {\r\n\t\t\t\t\t\tif (vm.FreelancerPrice == \"\")\r\n\t\t\t\t\t\t\tvm.LineItemList.LineItemPercentage = 100;\r\n\r\n\t\t\t\t\t\tif (parseFloat(vm.FreelancerPrice) > (parseFloat(vm.LineItemList.dLineItemWinPrice) * parseFloat(vm.LineItemList.LineItemQuantity))) {\r\n\t\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Freelancer price should be less than or equal to base price\");\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvm.LineItemList.LineItemPercentage = (((parseFloat(vm.LineItemList.dLineItemWinPrice) - (parseFloat(vm.FreelancerPrice) / parseFloat(vm.LineItemList.LineItemQuantity))) / parseFloat(vm.LineItemList.dLineItemWinPrice)) * 100).toFixed(2);\r\n\t\t\t\t\t\tif (vm.LineItemList.LineItemPercentage == \"NaN\")\r\n\t\t\t\t\t\t\tvm.LineItemList.LineItemPercentage = 0.0;\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory != \"Collection\") {\r\n\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory != \"General\") {\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemPercentage == \"\")\r\n\t\t\t\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage = 0.0;\r\n\r\n\t\t\t\t\t\tif (parseFloat(vm.PriceLineItemList[index].FreelancerPrice) > (parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice) * parseFloat(vm.PriceLineItemList[index].LineItemQuantity))) {\r\n\t\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Freelancer price should be less than or equal to base price\");\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage = (((parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice) - (parseFloat(vm.PriceLineItemList[index].FreelancerPrice) / parseFloat(vm.PriceLineItemList[index].LineItemQuantity))) / parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice)) * 100).toFixed(2);\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemPercentage == \"NaN\")\r\n\t\t\t\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage = 100.00;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.EditUpdateCalculation = function (index) {\r\n\r\n\t\t\tif (vm.PriceLineItemList[index].LineItemDescription == \"Others\" && vm.PriceLineItemList[index].LineItemCategory != \"AdvancedPayment\" && (parseFloat(vm.PriceLineItemList[index].dLineItemFreelancerPrice) > parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice))) {\r\n\t\t\t\tvm.showFailure(\"Warning\", \"Please enter freelancer price less or equal to win price\");\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (vm.PriceLineItemList[index].LineItemDescription == \"Bonus\") {\r\n\t\t\t\tvar FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(vm.PriceLineItemList[index].dLineItemFreelancerPrice) * parseInt(vm.PriceLineItemList[index].LineItemQuantity))).toFixed(2);\r\n\t\t\t\tif (parseInt(FLPriceTotal) > parseInt(vm.BasePriceTotal)) {\r\n\t\t\t\t\tvar maxBonus = (parseFloat(vm.BasePriceTotal) - parseFloat(vm.dFreelancerPriceTotal)).toFixed(2);\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter bonus price less or equal to \" + maxBonus);\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (vm.PriceLineItemList[index].LineItemCategory == \"AdvancedPayment\") {\r\n\t\t\t\tvar FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(vm.PriceLineItemList[index].dLineItemFreelancerPrice) * parseInt(vm.PriceLineItemList[index].LineItemQuantity))).toFixed(2);\r\n\t\t\t\tif (parseInt(FLPriceTotal) < 0) {\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter Advanced payment less or equal to \" + vm.dFreelancerPriceTotal);\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (vm.PriceLineItemList[index].LineItemDescription == \"Penalty\") {\r\n\t\t\t\tvar FLPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(vm.PriceLineItemList[index].dLineItemFreelancerPrice) * parseInt(vm.PriceLineItemList[index].LineItemQuantity))).toFixed(2);\r\n\t\t\t\tif (parseInt(FLPriceTotal) < 0) {\r\n\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter penalty price less or equal to \" + vm.dFreelancerPriceTotal);\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (vm.TicketInfo.IsSpareShipmentEnabled == true && vm.PriceLineItemList[index].ZOHOWarehouseName == null && vm.PriceLineItemList[index].LineItemCategory == 'HW') {\r\n\t\t\t\tvm.showFailure(\"Warning\", \"Please Select Warehouse\");\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tvm.BasePriceTotal = 0.0;\r\n\t\t\tvm.dFreelancerPriceTotal = 0.0;\r\n\t\t\tfor (var i = 0; i < vm.PriceLineItemList.length; i++) {\r\n\t\t\t\tif (vm.PriceLineItemList[i].LineItemCategory != \"Collection\" && vm.PriceLineItemList[i].LineItemCategory != \"AdvancedPayment\") {\r\n\t\t\t\t\tvar basePrice = vm.PriceLineItemList[i].dLineItemWinPrice;\r\n\t\t\t\t\tvar dFprice = vm.PriceLineItemList[i].dLineItemFreelancerPrice;\r\n\t\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[i].LineItemQuantity;\r\n\t\t\t\t\tif (vm.PriceLineItemList[i].LineItemCategory == \"General\") {\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[i].LineItemCompanyProvided == \"No\")\r\n\t\t\t\t\t\t\tbasePrice = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + (parseFloat(basePrice) * LineItemQuantity)).toFixed(2);\r\n\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + (parseFloat(dFprice) * LineItemQuantity)).toFixed(2);\r\n\t\t\t\t}\r\n\t\t\t\telse if (vm.PriceLineItemList[i].LineItemCategory == \"AdvancedPayment\") {\r\n\t\t\t\t\tvar basePrice = vm.PriceLineItemList[i].dLineItemWinPrice;\r\n\t\t\t\t\tvar dFprice = vm.PriceLineItemList[i].dLineItemFreelancerPrice;\r\n\t\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[i].LineItemQuantity;\r\n\t\t\t\t\tif (vm.PriceLineItemList[i].LineItemCategory == \"General\") {\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[i].LineItemCompanyProvided == \"No\")\r\n\t\t\t\t\t\t\tbasePrice = 0.0;\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - (parseFloat(basePrice) * LineItemQuantity)).toFixed(2);\r\n\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - (parseFloat(dFprice) * LineItemQuantity)).toFixed(2);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvm.PriceLineItemList[index].edit = false;\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t//delete row non edit\r\n\t\tvm.removeLineItem = function (index) {\r\n\t\t\tif (vm.PriceLineItemList[index].LineItemCategory != \"Collection\" && vm.PriceLineItemList[index].LineItemCategory != \"Penalty\" && vm.PriceLineItemList[index].LineItemCategory != \"AdvancedPayment\") {\r\n\t\t\t\tvar basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t\t\tvar dFprice = vm.PriceLineItemList[index].dLineItemFreelancerPrice;\r\n\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - parseFloat(basePrice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - parseFloat(dFprice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t\t}\r\n\t\t\telse if (vm.PriceLineItemList[index].LineItemCategory == \"Penalty\") {\r\n\t\t\t\tvar basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t\t\tvar dFprice = vm.PriceLineItemList[index].dLineItemFreelancerPrice;\r\n\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + parseFloat(basePrice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + parseFloat(dFprice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\r\n\t\t\t}\r\n\t\t\telse if (vm.PriceLineItemList[index].LineItemCategory == \"AdvancedPayment\") {\r\n\t\t\t\tvar basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t\t\tvar dFprice = vm.PriceLineItemList[index].dLineItemFreelancerPrice;\r\n\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) + parseFloat(basePrice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) + parseFloat(dFprice) * parseInt(LineItemQuantity)).toFixed(2);\r\n\r\n\t\t\t}\r\n\t\t\tvm.PriceLineItemList.splice(index, 1);\r\n\t\t}\r\n\r\n\t\tvm.updateRomoveLineItem = function (index, action) {\r\n\r\n\t\t\tif (action == \"Update\") {\r\n\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory != \"Collection\") {\r\n\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemQuantity == \"\") {\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].edit = true;\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter quantity\");\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemQuantity == 0) {\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].edit = true;\r\n\t\t\t\t\t\tvm.showFailure(\"Warning\", \"zero (0) quantity not allowed\");\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory != \"General\") {\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"HW\" && vm.LineItemCompanyProvided == \"Yes\") { }\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[index].dLineItemWinPrice == \"\" || vm.PriceLineItemList[index].dLineItemWinPrice == \"0\" || parseInt(vm.PriceLineItemList[index].dLineItemWinPrice) < 1) {\r\n\t\t\t\t\t\t\tvm.PriceLineItemList[index].edit = true;\r\n\t\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter base price\");\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (parseFloat(vm.PriceLineItemList[index].LineItemPercentage) > 100) {\r\n\t\t\t\t\t\t\tvm.PriceLineItemList[index].edit = true;\r\n\t\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Please enter percentage 100 or less than 100\");\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (parseFloat(vm.PriceLineItemList[index].FreelancerPrice) > (parseFloat(vm.PriceLineItemList[index].dLineItemWinPrice) * parseFloat(vm.PriceLineItemList[index].LineItemQuantity))) {\r\n\t\t\t\t\t\t\tvm.PriceLineItemList[index].edit = true;\r\n\t\t\t\t\t\t\tvm.showFailure(\"Warning\", \"Freelancer price should be less than or equal to base price\");\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (vm.PriceLineItemList[index].FreelancerPrice == \"\" || typeof vm.PriceLineItemList[index].FreelancerPrice === \"undefined\")\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].FreelancerPrice = \"0\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (vm.PriceLineItemList[index].LineItemCategory == \"General\") {\r\n\t\t\t\tvm.PriceLineItemList[index].dLineItemWinPrice = 0.0;\r\n\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice = 0.0;\r\n\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage = 0.0;\r\n\t\t\t}\r\n\t\t\tif (vm.PriceLineItemList[index].dLineItemWinPrice == \"\")\r\n\t\t\t\tvm.PriceLineItemList[index].dLineItemWinPrice = 0.0;\r\n\t\t\tif (vm.PriceLineItemList[index].dLineItemFreelancerPrice == \"\")\r\n\t\t\t\tvm.PriceLineItemList[index].dLineItemFreelancerPrice = 0.0;\r\n\t\t\tif (vm.PriceLineItemList[index].LineItemPercentage == \"\")\r\n\t\t\t\tvm.PriceLineItemList[index].LineItemPercentage = 0.0;\r\n\t\t\tif (vm.PriceLineItemList[index].LineItemQuantity == \"\")\r\n\t\t\t\tvm.PriceLineItemList[index].LineItemQuantity = 1;\r\n\t\t\tif (vm.PriceLineItemList[index].FreelancerPrice == \"\")\r\n\t\t\t\tvm.PriceLineItemList[index].FreelancerPrice = 0.0;\r\n\r\n\r\n\t\t\tvar Requestdata = {\r\n\t\t\t\tLineItemDescription: vm.PriceLineItemList[index].LineItemDescription,\r\n\t\t\t\tLineItemCategory: vm.PriceLineItemList[index].LineItemCategory,\r\n\t\t\t\tLineItemPercentage: vm.PriceLineItemList[index].LineItemPercentage,\r\n\t\t\t\tdLineItemWinPrice: vm.PriceLineItemList[index].dLineItemWinPrice,\r\n\t\t\t\tdLineItemFreelancerPrice: vm.PriceLineItemList[index].dLineItemFreelancerPrice,\r\n\t\t\t\tLineItemId: vm.PriceLineItemList[index].LineItemId,\r\n\t\t\t\tLineItemCode: vm.PriceLineItemList[index].LineItemCode,\r\n\t\t\t\tLineItemQuantity: vm.PriceLineItemList[index].LineItemQuantity,\r\n\t\t\t\tLineItemFreelancerPrice: vm.ConverttoDecimal(vm.PriceLineItemList[index].FreelancerPrice),\r\n\t\t\t\tLineItemRemark: vm.PriceLineItemList[index].LineItemRemark,\r\n\t\t\t\tZOHOWarehouseName: vm.PriceLineItemList[index].ZOHOWarehouseName,\r\n\t\t\t\tLineItemUnit: vm.PriceLineItemList[index].LineItemUnit,\r\n\t\t\t\tLineItemAction: action,\r\n\t\t\t\tLineItemCompanyProvided: vm.LineItemCompanyProvided,\r\n\t\t\t\tLineItemAttachment: vm.LineItemImage\r\n\t\t\t}\r\n\t\t\tvm.PriceLineItemList[index].FreelancerPrice = vm.ConverttoDecimal(vm.PriceLineItemList[index].FreelancerPrice);\r\n\t\t\tvm.PriceLineItemList[index].LineItemPercentage = vm.ConverttoDecimal(vm.PriceLineItemList[index].LineItemPercentage);\r\n\t\t\tvm.LineItemDataList.push(Requestdata);\r\n\t\t\tuserFormData = {\r\n\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\"LineItemRequestList\": vm.LineItemDataList\r\n\r\n\t\t\t}\r\n\t\t\t//vm.PriceLineItemList[index].LineItemCompanyProvided=vm.LineItemCompanyProvided;\r\n\r\n\t\t\t// vm.enable = \"false\";\r\n\t\t\t// if(action==\"Update\"){\t\t\t\t\r\n\t\t\t// vm.updateButtonText = \"Updating\";\r\n\t\t\t// vm.PriceLineItemList[index].edit=true;\r\n\t\t\t// }\r\n\t\t\t// else\r\n\t\t\t// vm.removeButtonText = \"Removing\";\r\n\r\n\t\t\tJobDetailViewService.CreateUpdateRemoveLineItem(userFormData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t//$timeout(function(){\r\n\r\n\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\tvar msg = \"\";\r\n\t\t\t\t\tif (action == \"Update\") {\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory != \"Collection\") {\r\n\t\t\t\t\t\t\tvm.EditUpdateCalculation(index);\r\n\r\n\t\t\t\t\t\t\tJobDetailViewService.UpdateJobPaymentDynamicPrice(loggedinUser, vm.TicketId, vm.BasePriceTotal, vm.PercentageTotal, vm.FreelancerPriceTotal, vm.IsFinalApproval, token, function (res) {\r\n\t\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t\t//vm.showSuccess(\"Success\", res);\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tmsg = \"LineItem has been updated successfully\";\r\n\t\t\t\t\t\t\t\t\tvm.LineItemDataList = [];\r\n\t\t\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\r\n\t\t\t\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\r\n\t\t\t\t\t\t\t\t\t// vm.enable = \"true\";\r\n\t\t\t\t\t\t\t\t\t// vm.updateButtonText = \"Update\";\r\n\t\t\t\t\t\t\t\t\t//vm.PriceLineItemList[index].edit=false;\r\n\t\t\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t\t\t}, vm.showFailure);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\tmsg = \"LineItem has been updated successfully\";\r\n\t\t\t\t\t\t\t\tvm.LineItemDataList = [];\r\n\t\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\r\n\t\t\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\r\n\t\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory != \"Collection\") {\r\n\t\t\t\t\t\t\tvar basePrice = vm.PriceLineItemList[index].dLineItemWinPrice;\r\n\t\t\t\t\t\t\tvar dFprice = vm.PriceLineItemList[index].dLineItemFreelancerPrice;\r\n\t\t\t\t\t\t\tvar freelancerPrice = vm.PriceLineItemList[index].FreelancerPrice;\r\n\t\t\t\t\t\t\tvar LineItemQuantity = vm.PriceLineItemList[index].LineItemQuantity;\r\n\r\n\t\t\t\t\t\t\tif (basePrice == \"\")\r\n\t\t\t\t\t\t\t\tbasePrice = 0.0;\r\n\r\n\t\t\t\t\t\t\tif (dFprice == \"\")\r\n\t\t\t\t\t\t\t\tdFprice = 0.0;\r\n\t\t\t\t\t\t\tif (freelancerPrice == \"\")\r\n\t\t\t\t\t\t\t\tfreelancerPrice = 0.0;\r\n\t\t\t\t\t\t\tif (LineItemQuantity == \"\")\r\n\t\t\t\t\t\t\t\tLineItemQuantity = 1;\r\n\r\n\t\t\t\t\t\t\tvar lessBasePrice = parseFloat(basePrice) * parseInt(LineItemQuantity);\r\n\t\t\t\t\t\t\tvar lessdFprice = parseFloat(dFprice) * parseInt(LineItemQuantity);\r\n\t\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory != \"Collection\") {\r\n\t\t\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory != \"General\") {\r\n\r\n\t\t\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - parseFloat(lessBasePrice)).toFixed(2);\r\n\t\t\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - parseFloat(lessdFprice)).toFixed(2);\r\n\t\t\t\t\t\t\t\t\tvm.FreelancerPriceTotal = (parseFloat(vm.FreelancerPriceTotal) - parseFloat(freelancerPrice)).toFixed(2);\r\n\t\t\t\t\t\t\t\t\tvm.PercentageTotal = (100 - (vm.FreelancerPriceTotal * 100 / vm.BasePriceTotal)).toFixed(2);\r\n\t\t\t\t\t\t\t\t\tif (vm.PercentageTotal == \"NaN\")\r\n\t\t\t\t\t\t\t\t\t\tvm.PercentageTotal = 0;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCompanyProvided == \"No\") {\r\n\t\t\t\t\t\t\t\t\t\tlessBasePrice = 0.0;\r\n\t\t\t\t\t\t\t\t\t\tlessdFprice = 0.0;\r\n\t\t\t\t\t\t\t\t\t\tvm.BasePriceTotal = (parseFloat(vm.BasePriceTotal) - parseFloat(lessBasePrice)).toFixed(2);\r\n\t\t\t\t\t\t\t\t\t\tvm.dFreelancerPriceTotal = (parseFloat(vm.dFreelancerPriceTotal) - parseFloat(lessdFprice)).toFixed(2);\r\n\t\t\t\t\t\t\t\t\t\tvm.FreelancerPriceTotal = (parseFloat(vm.FreelancerPriceTotal) - parseFloat(freelancerPrice)).toFixed(2);\r\n\t\t\t\t\t\t\t\t\t\tvm.PercentageTotal = (100 - (vm.FreelancerPriceTotal * 100 / vm.BasePriceTotal)).toFixed(2);\r\n\t\t\t\t\t\t\t\t\t\tif (vm.PercentageTotal == \"NaN\")\r\n\t\t\t\t\t\t\t\t\t\t\tvm.PercentageTotal = 0;\r\n\t\t\t\t\t\t\t\t\t\tif (vm.BasePriceTotal == \"0.00\" || vm.BasePriceTotal == \"0\")\r\n\t\t\t\t\t\t\t\t\t\t\tvm.PercentageTotal = 0.00;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (vm.PriceLineItemList[index].LineItemCategory != \"Collection\") {\r\n\t\t\t\t\t\t\tJobDetailViewService.UpdateJobPaymentDynamicPrice(loggedinUser, vm.TicketId, vm.BasePriceTotal, vm.PercentageTotal, vm.FreelancerPriceTotal, vm.IsFinalApproval, token, function (res) {\r\n\t\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\t\t//vm.showSuccess(\"Success\", res);\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tmsg = \"LineItem has been removed successfully\";\r\n\t\t\t\t\t\t\t\t\tvm.LineItemDataList = [];\r\n\t\t\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\r\n\t\t\t\t\t\t\t\t\t// vm.enable = \"true\";\r\n\t\t\t\t\t\t\t\t\t// vm.removeButtonText = \"Remove\";\r\n\t\t\t\t\t\t\t\t}, 1000);\r\n\r\n\t\t\t\t\t\t\t}, vm.showFailure);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\tmsg = \"LineItem has been removed successfully\";\r\n\t\t\t\t\t\t\t\tvm.LineItemDataList = [];\r\n\t\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\r\n\t\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvm.PriceLineItemList.splice(index, 1);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvm.EmptyLineItemDetails();\r\n\t\t\t\t\t// vm.LineItemCategoryType=\"\";\r\n\t\t\t\t\tvm.LineItemDisc = \"\";\r\n\t\t\t\t\tvm.LineItemDataList = [];\r\n\t\t\t\t\t// window.location.reload(true);\r\n\t\t\t\t}\r\n\t\t\t\t//}, 1000);\r\n\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t//advanced payment \r\n\t\tvm.initiateAdvancedPayment = function (action, index) {\r\n\t\t\t// vm.removeLineItem(index);\r\n\t\t\tvm.sendAdvanceDetails = {\r\n\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\"Action\": action\r\n\t\t\t}\r\n\t\t\tJobDetailViewService.initiateAdvancedPayment(vm.sendAdvanceDetails, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Initiated advanc payment\");\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t//\r\n\t\tvm.UpdateLineItems = \"Update Line Items\";\r\n\t\tvm.updateLineItem = function () {\r\n\t\t\tif (vm.PriceLineItemList.length > 0) {\r\n\t\t\t\tvm.enable1 = \"false\";\r\n\t\t\t\tvm.UpdateLineItems = \"Update Line Items...\";\r\n\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\t\"LineItemRequestList\": vm.PriceLineItemList\r\n\r\n\t\t\t\t};\r\n\t\t\t\tJobDetailViewService.CreateUpdateRemoveLineItem(data, loggedinUser, token).then(function (resp) {\r\n\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data + \" Line Item\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t\tvm.enable1 = \"true\";\r\n\t\t\t\t\t\t\tvm.UpdateLineItems = \"Update Line Items\";\r\n\t\t\t\t\t\t}, 1500);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.ApprovePricingButtonText = \"Approve Pricing\";\r\n\t\tvm.ApprovePricing = function () {\r\n\t\t\tif (vm.PriceLineItemList.length > 0) {\r\n\t\t\t\tvm.IsFinalApproval = true;\r\n\t\t\t\tvm.enable1 = \"false\";\r\n\t\t\t\tvm.ApprovePricingButtonText = \"Approve Pricing...\";\r\n\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\t\"IsCollectionFlag\": true,\r\n\t\t\t\t\t\"CollectionPercentage\": 0,\r\n\t\t\t\t\t\"CollectionAmount\": 0,\r\n\t\t\t\t\t\"LineItemRequestList\": vm.PriceLineItemList\r\n\r\n\t\t\t\t};\r\n\t\t\t\tJobDetailViewService.UpdateJobPaymentDynamicPrice(loggedinUser, vm.TicketId, vm.BasePriceTotal, vm.PercentageTotal, vm.FreelancerPriceTotal, vm.IsFinalApproval, data, token, function (res) {\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tmsg = \"Price has been approved successfully\";\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\r\n\t\t\t\t\t\tvm.enable1 = \"true\";\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\tvm.BonusList = [];\r\n\t\t\t\t\t\tvm.PenaltyList = [];\r\n\t\t\t\t\t\tvm.ApprovePricingButtonText = \"Approve Pricing\";\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Faild\", \"Please enter atleast one Line Item to Approve this job.\");\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.removeCurrentActivityRow = function () {\r\n\t\t\tvm.showTCList = false;\r\n\t\t\tvm.EmptyLineItemDetails();\r\n\t\t}\r\n\t\tvm.EmptyLineItemDetails = function () {\r\n\t\t\tvm.LineItemCategoryType = \"\";\r\n\t\t\tvm.LineItemDisc = \"\";\r\n\t\t\tvm.LineItemList.LineItemDescription = '';\r\n\t\t\tvm.LineItemList.LineItemCategory = '';\r\n\t\t\tvm.LineItemList.LineItemPercentage = '';\r\n\t\t\tvm.LineItemList.dLineItemWinPrice = '';\r\n\t\t\tvm.LineItemList.dLineItemFreelancerPrice = '';\r\n\t\t\tvm.LineItemList.LineItemQuantity = '';\r\n\t\t\tvm.FreelancerPrice = '';\r\n\t\t\tvm.LineItemRemark = '';\r\n\t\t\tvm.ZOHOWarehouseName = '';\r\n\t\t}\r\n\t\tvm.changeFile = function (selector) {\r\n\t\t\tangular.element(selector).trigger(\"click\");\r\n\t\t}\r\n\r\n\t\t$scope.uploadLineItemFile = function (elem, index) {\r\n\r\n\t\t\tvar index = (angular.element(elem).attr(\"data-index\"));\r\n\t\t\tvar file = elem.files[0];\r\n\t\t\tif (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n\t\t\t\t|| file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n\t\t\t\t|| file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n\r\n\t\t\t\tvar data = new FormData();\r\n\t\t\t\tdata.append(\"files\", file);\r\n\t\t\t\tJobDetailViewService.uploadLineItemPic(loggedinUser, data, token, function (res) {\r\n\t\t\t\t\tif (res && res.status == 201 && res.data) {\r\n\t\t\t\t\t\tvm.edit = false;\r\n\t\t\t\t\t\tvm.PriceLineItemList[index].LineItemAttachment = vm.LineItemImage = res.data;\r\n\t\t\t\t\t\tvm.LineItemImage = res.data;\r\n\t\t\t\t\t\tvm.edit1 = false;\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}, function (err) {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", \"Unable to upload line item, server error\");\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvm.showFailure(\"Failed\", \"You can upload image, pdf or word document only\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tvm.DisableScheduledExceptionButtons = function (disable) {\r\n\t\tif (disable) {\r\n\t\t\tvm.disableExceptionButton = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvm.disableExceptionButton = false;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tvm.resolveException = function () {\r\n\t\tvm.DisableScheduledExceptionButtons(true);\r\n\t\tvar ticketIdList = [];\r\n\t\tticketIdList.push(uTicketId);\r\n\r\n\t\tJobDetailViewService.ResolveException(loggedinUser, ticketIdList, token).then(function (resp) {\r\n\t\t\tif (resp.status == 202) {\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\tvm.showSuccess(\"Schedule Exception\", \"Exception Resolved Successfully\");\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t// window.location.reload(true);\r\n\t\t\t\t\tvm.DisableScheduledExceptionButtons(false);\r\n\r\n\t\t\t\t}, 1000);\r\n\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tvm.Applycompletejob = function () {\r\n\r\n\t\tvar data = {\r\n\t\t\t\"ReqUserId\": loggedinUser,\r\n\t\t\t\"TicketId\": uTicketId,\r\n\t\t\t\"Status\": \"Completed\",\r\n\t\t\t\"TechnicianRating\": \"\",\r\n\t\t\t\"CompletionRemark\": \"\",\r\n\t\t\t\"ApprovalRemark\": \"\",\r\n\t\t\t\"SourceResolvedOn\": \"\",\r\n\t\t\t\"ClosureMode\": \"\",\r\n\t\t\t\"FieldJobClosureMode\": \"\",\r\n\t\t\t\"FieldJobVisitStatus\": \"\",\r\n\t\t\t\"JobWinRate\": 0,\r\n\t\t\t\"SelectedCompletionRemarkList\": [\r\n\t\t\t\t{\r\n\t\t\t\t\t\"remark\": \"\",\r\n\t\t\t\t\t\"description\": \"\",\r\n\t\t\t\t\t\"SelectedHWDetailList\": [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"Skill\": \"\",\r\n\t\t\t\t\t\t\t\"Code\": \"\",\r\n\t\t\t\t\t\t\t\"Name\": \"\",\r\n\t\t\t\t\t\t\t\"Description\": \"\",\r\n\t\t\t\t\t\t\t\"Category\": \"\",\r\n\t\t\t\t\t\t\t\"HardwareFrom\": \"\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\t\"RejectionRemark\": \"\"\r\n\r\n\t\t}\r\n\t\tJobDetailViewService.completeJob(data, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp.status == 202) {\r\n\t\t\t\tvm.showSuccess(\"Complete Job\", \"Job Completed Successfully.\");\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t$state.go('index.JobTickets', { reload: true });\r\n\r\n\t\t\t\t}, 1000);\r\n\t\t\t}\r\n\r\n\t\t})\r\n\t}\r\n\r\n\r\n\tvm.OpenApproveModal = function (TicketInfo) {\r\n\t\tif (vm.PriceLineItemList.length > 0) {\r\n\t\t\tvm.TicketInfo = TicketInfo;\r\n\t\t\tvm.RatingOfTicket = '';\r\n\t\t\tvm.aproveMessage = 'Please Rate !';\r\n\t\t\tapproveModalInstance = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'approve_model.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvm.showFailure(\"Faild\", \"Please enter atleast one Line Item to Approve this job.\");\r\n\t\t}\r\n\t}\r\n\tvm.CloseModal = function () {\r\n\t\tapproveModalInstance.close();\r\n\t}\r\n\tvm.OpenShareEstimateModal = function () {\r\n\t\t\tEstimateModalInstance = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ShareEstimate_model.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\r\n\t}\r\n\tvm.CloseEstimateModal = function () {\r\n\t\tvm.EstimateRemark = [];\r\n\t\tvm.clear(); \r\n\t\tEstimateModalInstance.close();\r\n\t}\r\n\r\n\r\n\tvm.uploadShareEstimateFile = function () {\r\n\t\tvar data = {};\r\n\t\tdata = {\r\n\t\t \"EstimateRemark\": vm.EstimateRemark,\r\n\t\t \"TicketId\": vm.TicketId,\r\n\t\t}\r\n\t\tJobDetailViewService.UpdateEstimateShareByCust(data, vm.Estimatefile, token, loggedinUser).then(function (res) {\r\n\t\tif (res && res.status == 200) {\r\n\t\t\tvm.CloseEstimateModal();\r\n\t\t\tvm.showSuccess(\"Success\", res.data);\r\n\t\t\t$timeout(function () {\r\n\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t}, 2000); \r\n\t\t} else if (res && res.data) {\r\n\t\t\tvm.showFailure(\"Failed\", res.data);\r\n\t\t}\r\n\t\t});\r\n\t\t\r\n\t }\r\n\r\n\t$scope.valiateEstimateFile = function (Estimatefile) {\r\n\t\tvm.EstimateFileName = \"\";\r\n\t\tvm.Estimatefile = Estimatefile.files[0];\r\n\t\tvm.EstimateFileName = vm.Estimatefile.name;\r\n\t\t// var allowedExtensions = /(\\.pdf|\\.PDF|\\.docx|\\.DOCX|\\.doc|\\.DOC|\\.xlsx|\\.xls|\\.XLSX|\\.XLS|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i;\r\n\t\t// if (!allowedExtensions.exec(Estimatefile.name)) {\r\n\t\t// \tvm.EstimateFileDoc = [];\r\n\t\t// \tvm.clear();\r\n\t\t// \talert('Please upload file having extensions .pdf,.docx,.doc,.xlsx,.xls,.png,.jpeg,.jpg only.');\r\n\t\t// }\r\n\t}\r\n\r\n\t vm.clear = function () {\r\n\t\tangular.element(\"input[type='file']\").val(null);\r\n\t }; \r\n\r\n\r\n\tvm.starChanged = function () {\r\n\t\tswitch (vm.RatingOfTicket) {\r\n\t\t\tcase '5':\r\n\t\t\t\tvm.aproveMessage = 'Excellent';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase '4':\r\n\t\t\t\tvm.aproveMessage = 'Very Good';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase '3':\r\n\t\t\t\tvm.aproveMessage = 'Good';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase '2':\r\n\t\t\t\tvm.aproveMessage = 'Bad';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase '1':\r\n\t\t\t\tvm.aproveMessage = 'Very Bad';\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tvm.ratingwarning = \" \";\r\n\t}\r\n\tvm.verifyIsTicketReadyForCompletion = function(ticketid){\r\n\t\tif((vm.AccountId == '380' || vm.AccountId == '383' || vm.AccountId == '390') && vm.TicketInfo.IsHappyCodeEnabled){\r\n\t\t\tvar data = data = {\r\n\t\t\t\t\"TicketId\": ticketid,\r\n\t\t\t\t\"TicketStatus\": \"Completed\",\r\n\t\t\t\t\"CompletionReason\": \"\",\r\n\t\t\t\t\"TicketCompletionRemark\": \"\"\r\n\t\t\t}\r\n\t\t\t\r\n\t\tJobDetailViewService.ValidateTicketCanMarkComplete(data, token).then(function (resp) {\r\n\t\t\tif (resp.status == 200) {\r\n\t\t\t\tvm.IsEligibleToComplete = resp.data;\r\n\t\t\t\tif(vm.IsEligibleToComplete == 'Validation Complete'){\r\n\t\t\t\t\tvm.GetAllSymptomDocByProductGroup();\r\n\t\t\t\t\thappyCodeModalInstance = $uibModal.open({\r\n\t\t\t\t\t\ttemplateUrl: 'happy_code_model.html',\r\n\t\t\t\t\t\tscope: $scope,\r\n\t\t\t\t\t\tbackdrop: 'static'\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t}\r\n\t\t});\r\n\t\t}\r\n\t\telse{\r\n\t\t\tvm.completeTkt(vm.TicketInfo.TicketId);\r\n\t\t}\r\n\t}\r\n\r\n\tvm.closeHappyCodeModel = function(){\r\n\t\thappyCodeModalInstance.close();\r\n\t\tvm.HappyCode = \"\";\r\n\t\tvm.SymptomCode = \"\";\r\n\t\tvm.SymptomValue = \"\";\r\n\t\tvm.DefectCode = \"\";\r\n\t\tvm.DefectValue = \"\";\r\n\t\tvm.ResolutionCode = \"\";\r\n\t\tvm.ResolutionValue = \"\";\r\n\t}\r\n\r\n\tvm.SendHappyCodeSMS = function () {\r\n\t\tCustomerCRMListService.SendHappyCodeSMS(vm.TicketInfo.TicketId,vm.AccountId, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\tvm.showSuccess(\"Success\", \"Happy code sent to customer successfully.\");\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data)\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tvm.GetAllSymptomDocByProductGroup = function () {\r\n\t\tJobDetailViewService.GetAllSymptomDocByProductGroup(vm.TicketInfo.ProductGroup, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\tvm.SymptomsList = resp.data;\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tvm.GetProductInfobySerialNumber = function(serialNumber){\r\n\t\tif (serialNumber && serialNumber.length === 18) {\r\n\t\t\tvm.ProductList = [];\r\n\t\t\tvm.AllActiveProductModelNoList = [];\r\n\t\t\tJobDetailViewService.GetProductInfobySerialNumber(serialNumber,vm.TicketInfo.JobAccountId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tif(resp.data.ErrorCode == 157){\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.ProductInfo = resp.data;\r\n\t\t\t\t\tif(vm.ProductInfo.ProductName){\r\n\t\t\t\t\t vm.ProductList = [vm.ProductInfo.ProductName];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(vm.ProductInfo.ModelNumber){\r\n\t\t\t\t\t\tvm.AllActiveProductModelNoList = [{\r\n\t\t\t\t\t\t\t\"strProductName\" : vm.ProductInfo.ProductName || '',\r\n\t\t\t\t\t\t\t\"strModelNumber\": vm.ProductInfo.ModelNumber,\r\n\t\t\t\t\t\t\t\"strModelName\": vm.ProductInfo.ModelName || '',\r\n\t\t\t\t\t\t\t\"strModelDescription\": vm.ProductInfo.ModelDescription || '',\r\n\t\t\t\t\t\t\t\"strNewModelNumber\": null,\r\n\t\t\t\t\t\t\t\"strNewModelDescription\": null,\r\n\t\t\t\t\t\t\t\"bIsActive\": true,\r\n\t\t\t\t\t\t\t\"strBrandName\": vm.ProductInfo.BrandName || '',\r\n\t\t\t\t\t\t}]\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\t\r\n\t\t}\r\n\t}\r\n\r\n\tvm.getSymptomValue = function(description) {\r\n\t\tif(!description){\r\n\t\t\tvm.DefectsList = [];\r\n\t\t\tvm.SymptomCode = '';\r\n\t\t\tvm.SymptomName = '';\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar selectedSymptom = null;\r\n\t\tangular.forEach(vm.SymptomsList, function(symptom) {\r\n\t\t\tif (symptom.strSymptomDescription == description) {\r\n\t\t\t\tselectedSymptom = symptom;\r\n\t\t\t\tvm.SymptomName = description;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn selectedSymptom ? selectedSymptom.strSymptomValue : null;\r\n\t};\r\n\t\r\n\r\n\tvm.GetDefectsValuesBySymptomValue = function (symptomvalue) {\r\n\t\tif(symptomvalue){\r\n\t\t\tvm.SymptomCode = symptomvalue;\r\n\t\t}\r\n\t\tJobDetailViewService.GetDefectsValuesBySymptomValue(vm.SymptomCode, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\tvm.DefectsList = resp.data;\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tvm.getDefectValue = function(description) {\r\n\t\tif(!description){\r\n\t\t\tvm.ResolutionsList = [];\r\n\t\t\tvm.DefectCode = '';\r\n\t\t\tvm.DefectName = '';\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar selectedDefect = null;\r\n\t\tangular.forEach(vm.DefectsList, function(defect) {\r\n\t\t\tif (defect.strDefectDescription == description) {\r\n\t\t\t\tselectedDefect = defect;\r\n\t\t\t\tvm.DefectName = description;\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn selectedDefect ? selectedDefect.strDefectValue : null;\r\n\t};\r\n\t\r\n\r\n\tvm.GetAllRepairDocsByDefectValue = function (defectvalue) {\r\n\t\tif(defectvalue){\r\n\t\t\tvm.DefectCode = defectvalue;\r\n\t\t}\r\n\t\tJobDetailViewService.GetAllRepairDocsByDefectValue(vm.DefectCode, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\tvm.ResolutionsList = resp.data;\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n vm.AllCallTypes = [];\r\n\tvm.GetCRMCallTypeList = function (product) {\r\n\t\tif(product){\r\n\t\t\tvm.product = product;\r\n\t\t}\r\n\t\tvar data = {\r\n\t\t\t\"strBrandName\": vm.BrandNameTicket,\r\n\t\t\t\"strProductGroup\": vm.productGroup,\r\n\t\t\t\"strProductName\": vm.product,\r\n\t\t\t\"strCallType\": \"\"\r\n\t\t}\r\n\t\tJobDetailViewService.GetCRMCallTypeList(data,loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data) {\r\n\t\t\t\tvm.AllCallTypes = resp.data.strListCallType;\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tvm.GetModelNumberByTicketId = function () {\r\n\t\tvm.AllGangnamModelNumberList = [];\r\n\t\tJobDetailViewService.GetModelNumberByTicketId(vm.TicketId,loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data) {\r\n\t\t\t\tvm.AllGangnamModelNumberList = resp.data;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tvm.AllGangnamModelNumberList = [];\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tvm.getResolutionValue = function(description) {\r\n\t\tif(!description){\r\n\t\t\tvm.ResolutionCode = '';\r\n\t\t\tvm.ResolutionName = '';\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tangular.forEach(vm.ResolutionsList, function(resolution) {\r\n\t\t\tif (resolution.strRepairDescription == description) {\r\n\t\t\t\tselectedResolution = resolution;\r\n\t\t\t\tvm.ResolutionName = description;\r\n\t\t\t\tvm.ResolutionCode = selectedResolution.strRepairValue\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tvm.completeTkt = function (ticketid) {\r\n\t\tif((vm.AccountId == '380' || vm.AccountId == '383' || vm.AccountId == '390') && vm.TicketInfo.IsHappyCodeEnabled){\r\n\t\t\tvm.happyCodeCompletionForm.submitted = true;\r\n\t\t\tif (!vm.happyCodeCompletionForm.$valid) return;\r\n\t\t}\r\n\t\t// if(vm.Symptom){\r\n\t\t// vm.strSymptomValue = vm.Symptom.strSymptomValue;\r\n\t\t// vm.strSymptomDescription = vm.Symptom.strSymptomDescription;\r\n\t\t// }\r\n\t\t// if(vm.Defect){\r\n\t\t// \tvm.strDefectValue = vm.Defect.strDefectValue;\r\n\t\t// \tvm.strDefectDescription = vm.Defect.strDefectDescription;\r\n\t\t// }\r\n\t\t// if(vm.Resolution){\r\n\t\t// \tvm.strRepairValue = vm.Resolution.strRepairValue;\r\n\t\t// \tvm.strRepairDescription = vm.Resolution.strRepairDescription;\r\n\t\t// }\r\n\t\t// var data = {\r\n\t\t// \t\"TicketId\": ticketid,\r\n\t\t// \t\"TicketStatus\": \"Completed\",\r\n\t\t// \t\"CompletionReason\": \"\",\r\n\t\t// \t\"TicketCompletionRemark\": \"\",\r\n\t\t// \t\"HappyCode\": vm.HappyCode,\r\n\t\t// \t\"SymptomCode\": vm.strSymptomValue,\r\n\t\t// \t\"SymptomValue\": vm.strSymptomDescription,\r\n\t\t// \t\"DefectCode\": vm.strDefectValue,\r\n\t\t// \t\"DefectValue\": vm.strDefectDescription,\r\n\t\t// \t\"ResolutionCode\": vm.strRepairValue,\r\n\t\t// \t\"ResolutionValue\": vm.strRepairDescription\r\n\t\t// }\r\n\t\tvar data ={\r\n\t\t\t\"TicketId\": ticketid,\r\n\t\t\t\"TicketStatus\": \"Completed\",\r\n\t\t\t\"CompletionReason\": \"\",\r\n\t\t\t\"TicketCompletionRemark\": \"\",\r\n\t\t\t\"HappyCode\": vm.HappyCode,\r\n\t\t\t\"SymptomCode\": \"\",\r\n\t\t\t\"SymptomValue\": \"\",\r\n\t\t\t\"DefectCode\": \"\",\r\n\t\t\t\"DefectValue\": \"\",\r\n\t\t\t\"ResolutionCode\": \"\",\r\n\t\t\t\"ResolutionValue\": \"\"\r\n\t\t}\r\n\r\n\t\tJobDetailViewService.completeTkt(data, token).then(function (resp) {\r\n\t\t\tif (resp.status == 200) {\r\n\t\t\t\tvm.showSuccess(\"Success\", \"Ticket Completed Successfully\");\r\n\t\t\t\tif (happyCodeModalInstance) {\r\n\t\t\t\t\thappyCodeModalInstance.close();\r\n\t\t\t\t\tvm.HappyCode = \"\";\r\n\t\t\t\t\t// vm.SymptomCode = \"\";\r\n\t\t\t\t\t// vm.SymptomValue = \"\";\r\n\t\t\t\t\t// vm.DefectCode = \"\";\r\n\t\t\t\t\t// vm.DefectValue = \"\";\r\n\t\t\t\t\t// vm.ResolutionCode = \"\";\r\n\t\t\t\t\t// vm.ResolutionValue = \"\";\r\n\t\t\t\t\t// vm.strSymptomValue = \"\";\r\n\t\t\t\t\t// vm.strSymptomDescription = \"\";\r\n\t\t\t\t\t// vm.strDefectValue = \"\";\r\n\t\t\t\t\t// vm.strDefectDescription = \"\";\r\n\t\t\t\t\t// vm.strRepairValue = \"\";\r\n\t\t\t\t\t// vm.strRepairDescription = \"\";\r\n\t\t\t\t}\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tvm.UpDateEstimateStatus = function (status) {\r\n\t\tJobDetailViewService.UpDateEstimateStatus(vm.TicketId,status, token).then(function (resp) {\r\n\t\t\tif (resp.status == 200) {\r\n\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tvm.resendFeedback = function (ticketid) {\r\n\t\tJobDetailViewService.ResendFeedbackforCustomerRating(ticketid, token).then(function (resp) {\r\n\t\t\tif (resp.status == 200) {\r\n\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tvm.OpenUpdateInspectionModel = function () {\r\n\t\tvm.openInspectionModel = $uibModal.open({\r\n\t\t templateUrl: 'updateInspectionModel.html',\r\n\t\t backdrop: 'static',\r\n\t\t size: 'md',\r\n\t\t scope: $scope\r\n\t\t});\r\n\t }\r\n\t vm.closeUpdateInspectionModel = function () {\r\n\t\tvm.disableRejectButton = false;\r\n\t\tvm.openInspectionModel.close();\r\n\t }\r\n\r\n\t vm.OpenClaimEstimationModel = function () {\r\n\t\tvm.openClaimGnrtModel = $uibModal.open({\r\n\t\t templateUrl: 'updateClaimEstimateGnrtModel.html',\r\n\t\t backdrop: 'static',\r\n\t\t size: 'md',\r\n\t\t scope: $scope\r\n\t\t});\r\n\t }\r\n\t vm.closeClaimEstimationModel = function () {\r\n\t\tvm.disableRejectButton = false;\r\n\t\tvm.openClaimGnrtModel.close();\r\n\t }\r\n\r\n\tvm.MarkInspectionPassed = function () {\r\n\t\tvm.disableRejectButton = true;\r\n\t\tJobDetailViewService.MarkInspectionPassed(vm.TicketId, token).then(function (resp) {\r\n\t\t\tif (resp.status == 200) {\r\n\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t\t\tvm.closeUpdateInspectionModel();\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableRejectButton = false;\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tvm.ClaimEstimationGenerated = function () {\r\n\t\tvm.disableRejectButton = true;\r\n\t\tJobDetailViewService.ClaimEstimationGenerated(vm.TicketId, token).then(function (resp) {\r\n\t\t\tif (resp.status == 200) {\r\n\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t\t\tvm.closeClaimEstimationModel();\r\n\t\t\t\t$timeout(function () {\r\n\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t}, 2000);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableRejectButton = false;\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tvm.GeneratePdfJobSheet = function (ticketId) {\r\n\t\tManualAssignationJobService.GeneratePdfJobSheet(loggedinUser, ticketId, token).then(function (resp) {\r\n\t\tif (resp && resp.data) {\r\n\t\t const linkSource = resp.data;\r\n\t\t const downloadLink = document.createElement(\"a\");\r\n\t\t downloadLink.href = linkSource;\r\n\t\t downloadLink.download = 'Job_Sheet.pdf';\r\n\t\t downloadLink.click();\r\n\r\n\t\t} \r\n\t })\r\n\t }\r\n\r\n\tvm.UpdateFaceRecognation = function (ticketid) {\r\n\t\tdata = {\r\n\t\t\t\"TicketId\": ticketid,\r\n\t\t\t\"IsFaceRecognationOn\": vm.IsFaceRecognationOn\r\n\t\t}\r\n\r\n\t\tJobDetailViewService.EnableOrDisableFaceRecognation(data, token).then(function (resp) {\r\n\t\t\tif (resp.status == 206) {\r\n\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tvm.disableAppointmentOption = false;\r\n\r\n\tvm.SendAppointmentCodeToCustomer = function () {\r\n\t\tif (!vm.TicketInfoEdit || !vm.TicketInfoEdit.PlannedStartDate || !vm.AppointmentTime) {\r\n\t\t\tvm.showFailure(\"Failed\", \"Please provide a valid date and time.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar sDate = moment(vm.TicketInfoEdit.PlannedStartDate).format(\"YYYY-MM-DD\");\r\n\t\tvm.Stdate = sDate;\r\n\t\tvm.Stime = vm.AppointmentTime;\r\n\t\tvm.CurrentDate = moment().format('YYYY-MM-DDTHH:mm:ss.SSSZ');\r\n\t\tvm.dateTime = moment(vm.Stdate + ' ' + vm.Stime).format('YYYY-MM-DDTHH:mm:ss.SSSZ');\r\n\t if (!vm.dateTime) {\r\n\t\t\tvm.showFailure(\"Failed\", \"Invalid appointment date and time.\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tJobDetailViewService.SendHappyCodeSMSNew(vm.TicketId, vm.AccountId, vm.dateTime, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\tvm.disableAppointmentOption = true;\r\n\t\t\t\tvm.showSuccess(\"Success\", \"Appointment code sent to customer successfully.\");\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableAppointmentOption = false;\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data)\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tvm.CancelTicket = function () {\r\n\t\tvm.RatingOfTicket = '';\r\n\t\tvm.AuditTicketId = vm.TicketId;\r\n\t\tvm.IsClosureCodeNeeded = vm.TicketInfo.IsClosuerCodeNeeded;\r\n\t\tvm.TicketPaymentNeedToProcess = vm.TicketInfo.IsTicketPaymentNeedToProcess;\r\n\t\tvm.CollectionRequired = vm.TicketInfo.CollectionRequired;\r\n\t\tvm.IsApplicableForAutoPayment = vm.TicketInfo.IsApplicableForAutoPayment;\r\n\t\tif (vm.TicketInfo.TicketStatus == \"Completed\" && vm.TicketInfo.SubStatus == \"TBC\") {\r\n\t\t\tvm.PrimaryReason = vm.TicketInfo.PrimaryReason;\r\n\t\t\tManualAssignationJobService.GetCancellationReasons(vm.AuditTicketId, vm.TicketInfo.TicketStatus, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.CancellationReasonsList = resp.data;\r\n\t\t\t\t\tapproveModalInstance = $uibModal.open({\r\n\t\t\t\t\t\ttemplateUrl: 'tbc_confirm_cancelation_model.html',\r\n\t\t\t\t\t\tscope: $scope\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t\telse {\r\n\r\n\t\t\tvm.IsCancelFromServer = accountConfig.IsCancelFromServer;\r\n\t\t\tif (vm.IsCancelFromServer && (vm.TicketInfo.TicketStatus == \"Assigned\" || vm.TicketInfo.TicketStatus == \"New\" || vm.TicketInfo.TicketStatus == \"ScheduleException\")) {\r\n\t\t\t\tManualAssignationJobService.GetCancellationReasons(vm.AuditTicketId, vm.TicketInfo.TicketStatus, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\t\tvm.CancellationReasonsList = resp.data;\r\n\t\t\t\t\t\tcancellationReasonsModalInstance = $uibModal.open({\r\n\t\t\t\t\t\t\ttemplateUrl: 'cancellation_reasons_model.html',\r\n\t\t\t\t\t\t\tscope: $scope\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}, function () {\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tManualAssignationJobService.CancelTicket(loggedinUser, vm.AuditTicketId, token).then(function (res) {\r\n\t\t\t\t\tif (res.status == 202 && res.statusText == 'Accepted') {\r\n\t\t\t\t\t\tvm.showSuccess('Success', res.data);\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tvm.CancellationReasonsCloseModal = function () {\r\n\t\tcancellationReasonsModalInstance.close();\r\n\t\tvm.CancellationReasons = \"\";\r\n\t\tvm.CancellationReasonsRemark = \"\";\r\n\t\tvm.HintDisplay = \"\";\r\n\t\tvm.closureCode = \"\";\r\n\t}\r\n\r\n\tvm.TBCCancelationAudit = function () {\r\n\t\tvm.tbccancellationReasonsForm.submitted = true;\r\n\t\tif (vm.CancellationReasons == 'Customer not responding' || vm.CancellationReasons == 'Customer denied sharing code') {\r\n\t\t\tvm.tbccancellationReasonsForm.$valid = true\r\n\t\t\tif (vm.tbccancellationReasonsForm.$valid) {\r\n\t\t\t\tif (vm.closureCode) {\r\n\t\t\t\t\tvm.IsClosuerCodeAvailable = true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.IsClosuerCodeAvailable = false;\r\n\t\t\t\t}\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"TicketId\": vm.AuditTicketId,\r\n\t\t\t\t\t\"AuditValue\": vm.TBCCancelationModel,\r\n\t\t\t\t\t\"IsApplicableForAutoPayment\": vm.IsApplicableForAutoPayment,\r\n\t\t\t\t\t\"IsCommissionDetect\": vm.IsCommissionDetect,\r\n\t\t\t\t\t\"ClosuerCode\": vm.closureCode,\r\n\t\t\t\t\t\"IsClosuerCodeAvailable\": vm.IsClosuerCodeAvailable,\r\n\t\t\t\t\t\"CancelReason\": vm.CancellationReasons,\r\n\t\t\t\t}\r\n\t\t\t\tapproveModalInstance.close();\r\n\t\t\t\tManualAssignationJobService.TBCCancelationAudit(data, loggedinUser, token).then(function (res) {\r\n\t\t\t\t\tif (res && res.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\");\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t\tvm.closureCode = \"\";\r\n\t\t\t\t\t\tvm.IsClosureCodeNeeded = \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (vm.tbccancellationReasonsForm.$valid) {\r\n\t\t\t\tif (vm.closureCode) {\r\n\t\t\t\t\tvm.IsClosuerCodeAvailable = true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.IsClosuerCodeAvailable = false;\r\n\t\t\t\t}\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"TicketId\": vm.AuditTicketId,\r\n\t\t\t\t\t\"AuditValue\": vm.TBCCancelationModel,\r\n\t\t\t\t\t\"IsApplicableForAutoPayment\": vm.IsApplicableForAutoPayment,\r\n\t\t\t\t\t\"IsCommissionDetect\": vm.IsCommissionDetect,\r\n\t\t\t\t\t\"ClosuerCode\": vm.closureCode,\r\n\t\t\t\t\t\"IsClosuerCodeAvailable\": vm.IsClosuerCodeAvailable,\r\n\t\t\t\t\t\"CancelReason\": vm.CancellationReasons,\r\n\t\t\t\t}\r\n\t\t\t\tapproveModalInstance.close();\r\n\t\t\t\tManualAssignationJobService.TBCCancelationAudit(data, loggedinUser, token).then(function (res) {\r\n\t\t\t\t\tif (res && res.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\");\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t\tvm.closureCode = \"\";\r\n\t\t\t\t\t\tvm.IsClosureCodeNeeded = \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tvm.updateFalseTBC = function (status) {\r\n\t\tif (status == 'Yes') {\r\n\t\t\tvm.IsApplicableForAutoPayment = false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvm.IsApplicableForAutoPayment = true;\r\n\t\t}\r\n\t}\r\n\r\n\tvm.UpdateCancellationReasons = function () {\r\n\t\tvm.cancellationReasonsForm.submitted = true;\r\n\t\tif (vm.CancellationReasons == 'Customer not responding' || vm.CancellationReasons == 'Customer denied sharing code') {\r\n\t\t\tvm.cancellationReasonsForm.$valid = true;\r\n\t\t\tif (vm.cancellationReasonsForm.$valid) {\r\n\t\t\t\tif (vm.closureCode) {\r\n\t\t\t\t\tvm.IsClosuerCodeAvailable = true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.IsClosuerCodeAvailable = false;\r\n\t\t\t\t}\r\n\t\t\t\tvar CancellationReasonsModel = {\r\n\t\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\t\"CancelReason\": vm.CancellationReasons,\r\n\t\t\t\t\t\"CancelRemark\": vm.CancellationReasonsRemark,\r\n\t\t\t\t\t\"ClosuerCode\": vm.closureCode,\r\n\t\t\t\t\t\"IsClosuerCodeAvailable\": vm.IsClosuerCodeAvailable\r\n\t\t\t\t}\r\n\t\t\t\tManualAssignationJobService.UpdateJobServerCancel(CancellationReasonsModel, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t\tcancellationReasonsModalInstance.close();\r\n\t\t\t\t\t\tvm.CancellationReasons = \"\";\r\n\t\t\t\t\t\tvm.CancellationReasonsRemark = \"\";\r\n\t\t\t\t\t\tvm.closureCode = \"\";\r\n\t\t\t\t\t\tvm.HintDisplay = \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, function () {\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (vm.cancellationReasonsForm.$valid) {\r\n\t\t\t\tif (vm.closureCode) {\r\n\t\t\t\t\tvm.IsClosuerCodeAvailable = true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.IsClosuerCodeAvailable = false;\r\n\t\t\t\t}\r\n\t\t\t\tvar CancellationReasonsModel = {\r\n\t\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\t\"CancelReason\": vm.CancellationReasons,\r\n\t\t\t\t\t\"CancelRemark\": vm.CancellationReasonsRemark,\r\n\t\t\t\t\t\"ClosuerCode\": vm.closureCode,\r\n\t\t\t\t\t\"IsClosuerCodeAvailable\": vm.IsClosuerCodeAvailable\r\n\t\t\t\t}\r\n\t\t\t\tManualAssignationJobService.UpdateJobServerCancel(CancellationReasonsModel, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t\tcancellationReasonsModalInstance.close();\r\n\t\t\t\t\t\tvm.CancellationReasons = \"\";\r\n\t\t\t\t\t\tvm.CancellationReasonsRemark = \"\";\r\n\t\t\t\t\t\tvm.closureCode = \"\";\r\n\t\t\t\t\t\tvm.HintDisplay = \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, function () {\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tvm.ApproveJob = function () {\r\n\t\tif (vm.RatingOfTicket) {\r\n\t\t\tapproveModalInstance.close();\r\n\t\t\tvar jobwinrate = 0.0;\r\n\t\t\tif (vm.Winrate == null || vm.Winrate == 0 || vm.Winrate == '')\r\n\t\t\t\tjobwinrate = 0.0;\r\n\t\t\telse\r\n\t\t\t\tjobwinrate = vm.Winrate;\r\n\t\t\tvm.ratingwarning = \"\";\r\n\t\t\tvar data = {\r\n\t\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\t\"BroadcastRate\": vm.BasePriceTotal,\r\n\t\t\t\t\"MobiforceCommission\": vm.MobiforceCommission,\r\n\t\t\t\t\"FreelancerRate\": vm.TicketInfo.FreelancerRate,\r\n\t\t\t\t\"IsFinalApproval\": true,\r\n\t\t\t\t\"JobWinRate\": parseFloat(jobwinrate.toFixed(2)),\r\n\t\t\t\t\"TechnicianRating\": vm.RatingOfTicket.toString(),\r\n\t\t\t\t\"ApprovalRemark\": vm.approvalRemark,\r\n\t\t\t\t\"IsSafetyAudit\": vm.IsSafetyAudit,\r\n\t\t\t\t\"Status\": \"Approved\",\r\n\t\t\t\t\"LineItemRequestList\": vm.PriceLineItemList\r\n\r\n\t\t\t};\r\n\r\n\t\t\tJobDetailViewService.UpdateJobPaymentDynamicPriceAndApprove(loggedinUser, data, token).then(function (res) {\r\n\r\n\t\t\t\tif (res.status == 200) {\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tmsg = \"Ticket and Price has been approved successfully\";\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", msg);\r\n\t\t\t\t\t\tvm.getTicketByJobId();\r\n\t\t\t\t\t\tvm.BonusList = [];\r\n\t\t\t\t\t\tvm.PenaltyList = [];\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\r\n\t\t\t\t\tvm.showFailure(\"Failed\", res.data);\r\n\t\t\t\t}\r\n\r\n\t\t\t}, vm.showFailure);\r\n\r\n\t\t} else {\r\n\t\t\tvm.ratingwarning = \"Please rate the technician.\";\r\n\t\t\t// approveModalInstance.close();\r\n\t\t}\r\n\t}\r\n\tvm.isApprovalPermission = function (defaultValue) {\r\n\t\tif (vm.accountConfig && vm.accountConfig['ApprovalPermission'] != null) {\r\n\t\t\treturn vm.accountConfig['ApprovalPermission'].split(\",\").indexOf($localStorage.loggedInUser_Role) > -1;\r\n\t\t}\r\n\t\treturn defaultValue;\r\n\t}\r\n\t// vm.BackToTicketList = function()\r\n\t// {\t\t \r\n\t// \t $localStorage.backToTicketList=\"JobDetailView1\";\r\n\t// }\r\n\r\n\t$scope.checkPDF = function (path) {\r\n\t\t// var pt = path.substr(path.length - 4);\r\n\t\tif (path.startsWith(\"http\")) {\r\n\t\t\tvm.error = function () {\r\n\t\t\t\t$(\"http\").attr({ \"target\": \"_blank\" })\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tvm.PDFView = function (page) {\r\n\t\tvm.pdfimage = page;\r\n\t\t$scope.selected = null;\r\n\t\t$timeout(function () {\r\n\t\t\tjobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'PDFView.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}, 1000)\r\n\t}\r\n\tvm.PDFUserModal = function () {\r\n\t\tjobAppointmentModal.close();\r\n\t}\r\n\r\n\r\n\tvm.contactNumbers = [];\r\n\tvm.openInvitePopup = function () {\r\n\t\tmodalInstance = $uibModal.open({\r\n\t\t\ttemplateUrl: 'popupTemplate.html',\r\n\t\t\tsize: 'md',\r\n\t\t\tscope: $scope,\r\n\t\t\tbackdrop: 'static',\r\n\t\t});\r\n\t}\r\n\r\n\tvm.addContactNumber = function () {\r\n\t\tvm.inviteUsersForm.submitted = true;\r\n\t\tif (vm.inviteUsersForm.$valid) {\r\n\t\t\tif (vm.newContactNumber) {\r\n\t\t\t\tvm.contactNumbers.push(vm.newContactNumber);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tvm.removeQuantity = function (index) {\r\n\t\tvm.contactNumbers.splice(index, 1);\r\n\t};\r\n\r\n\tvm.CloseInviteModal = function () {\r\n\t\tvm.contactNumbers = [];\r\n\t\tvm.newContactNumber = '';\r\n\t\tmodalInstance.close();\r\n\t}\r\n\r\n\t$scope.ChatInitiated = false;\r\n\tvm.SendChatInviteForExternal = function () {\r\n\t\tif ($scope.ChatInitiated == true) {\r\n\t\t\tvm.IsNewChat = false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvm.IsNewChat = true;\r\n\t\t}\r\n\t\tdata = {\r\n\t\t\t\"TicketId\": vm.TicketId,\r\n\t\t\t\"Type\": \"Text\",\r\n\t\t\t\"ContactList\": vm.contactNumbers,\r\n\t\t\t\"IsNewChat\": vm.IsNewChat\r\n\t\t}\r\n\t\tJobDetailViewService.SendChatInviteForExternal(data, token).then(function (resp) {\r\n\t\t\tif (resp.status == 200) {\r\n\t\t\t\tif ($scope.ChatInitiated == false) {\r\n\t\t\t\t\tvm.connectionLink = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\tvm.showSuccess(\"Success\", \"Invitation link sent successfully\");\r\n\t\t\t\t$scope.ChatInitiated = true;\r\n\t\t\t\tvm.IsChatEnabled = false;\r\n\t\t\t\tvm.CloseInviteModal();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tvm.GeneratePdfEstimateReport = function (ticketId) {\r\n\t\tvm.PDFView();\r\n\t\tJobDetailViewService.GeneratePdfEstimateReport(loggedinUser, ticketId, token).then(function (resp) {\r\n\t\t if (resp.status == 200) {\r\n\t\t\tvm.InvoiceData = resp.data;\r\n\t\t\tvar arrrayBuffer = base64ToArrayBuffer(vm.InvoiceData);\r\n\t\t\tvar blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n\t\t\tvm.pdfimage = URL.createObjectURL(blob);\r\n\t\t\tvm.IsLoadSucessfull = true;\r\n \r\n\t\t\t// if(vm.fileLink){\r\n\t\t\t// vm.showInvoice = true;\r\n\t\t\t// }\r\n\t\t }\r\n\t\t});\r\n \r\n\t }\r\n\r\n\tvm.getAllChatDetails = function (ReferenceDoc) {\r\n\t\tvm.ReferenceDoc = ReferenceDoc;\r\n\t\tJobDetailViewService.GetChatRecords(vm.ReferenceDoc, loggedinUser, token, function (data) {\r\n\t\t\tif (data) {\r\n\t\t\t\tvm.chatDetails = data;\r\n\t\t\t}\r\n\t\t}, function (err) {\r\n\t\t\tvm.showFailure(\"Failed\", \"Unable to upload line item, server error\");\r\n\t\t});\r\n\t}\r\n\r\n\tvm.OpenPdfModal = function (PdfPathName) {\r\n\t\tvm.IsLoadSucessfull = false;\r\n\t\tMainService.GetImageBlob(loggedinUser, token, PdfPathName).then(function (resp) {\r\n\t\t\tvm.ConvertBase64ToBlob(resp.data);\r\n\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t});\r\n\t\tjobAppointmentModal = $uibModal.open({\r\n\t\t\ttemplateUrl: 'SiteAuditPDFView.html',\r\n\t\t\tsize: 'lg',\r\n\t\t\tscope: $scope,\r\n\t\t\twindowClass: 'zindex'\r\n\r\n\t\t});\r\n\t}\r\n\tvm.SiteAuditPDFUserModal = function () {\r\n\t\tjobAppointmentModal.close();\r\n\t}\r\n\r\n\r\n\tvm.defaultMailBody = \"Dear Sir,\\n\\n Please find the claim for your kind approval. \\n\\n\" + $window.location.href + \" \\n\\nThanks\\nMobiforce Team\";\r\n\r\n\tvm.shareModel = {\r\n\t\tselectedUsers: [],\r\n\t\ttoList: [],\r\n\t\tccList: [],\r\n\t\tbccList: [],\r\n\t\tcontent: vm.defaultMailBody\r\n\t};\r\n\r\n\tvm.ShareReport = function () {\r\n\t\tvm.shareModel.toList = [];\r\n\t\tvm.shareModel.ccList = [];\r\n\t\tvm.shareModel.bccList = [];\r\n\t\tvm.toListMendtryErr = false,\r\n\t\tvm.listLineItemData = $scope.LineItemDataforApproval;\r\n\t\tvm.shareModel.content = $sce.trustAsHtml(\"Dear Sir,\\n\\nPlease find the claim for your kind approval.\\n\\nThanks\\nMobiforce Team\");\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// // Assuming vm.PriceLineItemList is an array of items\r\n// for (var i = 0; i < vm.PriceLineItemList.length; i++) {\r\n// var priceLineItem = vm.PriceLineItemList[i];\r\n// vm.shareModel.content += '' +\r\n// '' +\r\n// '' +\r\n// '' +\r\n// '' +\r\n// '' +\r\n// '';\r\n// }\r\n\r\n// vm.shareModel.content = $sce.trustAsHtml(vm.shareModel.content + '
TypeActivity DescriptionQuantity Price Remark
' + priceLineItem.LineItemCategory + '' + priceLineItem.LineItemDescription + '' + priceLineItem.LineItemQuantity + '' + (priceLineItem.LineItemQuantity * priceLineItem.dLineItemWinPrice) + '' + priceLineItem.LineItemRemark + '
\\n\\nThanks\\nMobiforce Team');\r\n\r\n\t\tvm.ShareModal = $uibModal.open({\r\n\t\t\ttemplateUrl: 'mailreportModal.html',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tsize: 'lg',\r\n\t\t\tscope: $scope\r\n\t\t});\r\n\t}\r\n\r\n\tvm.closemailmaodal = function () {\r\n\t\tvm.IsApprovalModelVisible = false;\r\n\t\tApprovalLineItemList = [];\r\n\t\tvm.ShareModal.close();\r\n\t}\r\n\tvm.users = [];\r\n\r\n\tvm.shareModel.getUserSuggestion = function (val) {\r\n\r\n\t\tvm.toListMendtryErr = false;\r\n\r\n\t\tvar re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n\t\tif (vm.users.length > 0) {\r\n\t\t\treturn re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }].concat(vm.users) : vm.users;\r\n\t\t}\r\n\t\tvm.getUsers();\r\n\t\treturn re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }] : [];\r\n\t}\r\n\r\n\tvm.getUsers = function () {\r\n\t\tvm.users = [];\r\n\t\tReportService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n\t\t}]));\r\n\t}\r\n\r\n\tvm.shareModel.searchAsOr = function (searchText1) {\r\n\t\treturn function (entry) {\r\n\t\t\tvar splittedText = searchText1.split(\";\");\r\n\t\t\tif (splittedText != null && splittedText.length > 0) {\r\n\t\t\t\tvar searchText = splittedText[splittedText.length - 1].trim();\r\n\t\t\t\tif (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n\t\t\t\t\t|| (entry.LastName != null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n\t\t\t\t\t|| entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n\t\t\t\t\treturn entry;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tvm.shareModel.removeSelectedUsers = function (element) {\r\n\t\tvar matched = false;\r\n\t\tangular.forEach(vm.shareModel.toList, function (d) {\r\n\t\t\tif (d.UserId == element.UserId) {\r\n\t\t\t\tmatched = true;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (!matched) {\r\n\t\t\tangular.forEach(vm.shareModel.ccList, function (d) {\r\n\t\t\t\tif (d.UserId == element.UserId) {\r\n\t\t\t\t\tmatched = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (!matched) {\r\n\t\t\tangular.forEach(vm.shareModel.bccList, function (d) {\r\n\t\t\t\tif (d.UserId == element.UserId) {\r\n\t\t\t\t\tmatched = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (!matched) {\r\n\t\t\treturn element;\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tvm.shareModel.cancelledToListUser = function (i) {\r\n\t\tvm.shareModel.toList.splice(i, 1);\r\n\t}\r\n\r\n\tvm.shareModel.cancelledCCListUser = function (i) {\r\n\t\tvm.shareModel.ccList.splice(i, 1);\r\n\t}\r\n\r\n\tvm.shareModel.selectUserNameInToList = function (item) {\r\n\t\tvm.shareModel.toList.push(item);\r\n\t\tvm.shareModel.toUsers = [];\r\n\t}\r\n\tvm.shareModel.selectUserNameInCCList = function (item) {\r\n\t\tvm.shareModel.ccList.push(item);\r\n\t\tvm.shareModel.ccUsers = [];\r\n\t}\r\n\r\n\tvm.shareModel.mailReport = function () {\r\n\t\tvar toList = [];\r\n\t\tangular.forEach(vm.shareModel.toList, function (user) {\r\n\t\t\ttoList.push(user.UserId);\r\n\t\t});\r\n\t\tvar ccList = [];\r\n\t\tangular.forEach(vm.shareModel.ccList, function (user) {\r\n\t\t\tccList.push(user.UserId);\r\n\t\t});\r\n\t\tvar bccList = [];\r\n\t\tangular.forEach(vm.shareModel.bccList, function (user) {\r\n\t\t\tbccList.push(user.UserId);\r\n\t\t});\r\n\t\tif (toList.length == 0) {\r\n\t\t\tvm.scheduleModel.toListMendtryErr = true;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (vm.shareModel.content.length == 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar content = vm.shareModel.content;\r\n\t\tvar subject = vm.shareModel.subject;\r\n\t\tvar listLineItemData = vm.listLineItemData;\r\n\t\tcontent = content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n\t\tJobDetailViewService.mailReport(token, toList, ccList,subject, content,listLineItemData, loggedinUser,\r\n\t\t\tvm.createCallback(null, [function (data) {\r\n\t\t\t\tvm.showSuccess(\"Success\", \"Report has been shared successfully\");\r\n\t\t\t\tvm.ShareModal.close();\r\n\t\t\t\tvm.shareModel.subject = '';\r\n\t\t\t\tvm.IsApprovalModelVisible == false;\r\n\t\t\t}]));\r\n\t}\r\n\tvm.createHalfDonutChart = function () {\r\n var chart = new Highcharts.chart('container', {\r\n\t\t\t\t\tchart: {\r\n\t\t\t\t\tplotBackgroundColor: null,\r\n\t\t\t\t\tplotBorderWidth: 0,\r\n\t\t\t\t\tplotShadow: false,\r\n\t\t\t\t\theight: null,\r\n width: 800,\r\n\t\t\t\t},\r\n\t\t\t\ttitle: { \r\n\t\t\t\t\ttext: ' Total ' + vm.TicketInfo.TotalTAT + ' Days
Estimate 14 Days
',\r\n\t\t\t\t\talign: 'center',\r\n\t\t\t\t\tverticalAlign: 'middle',\r\n\t\t\t\t\ty: 18,\r\n\t\t\t\t\tstyle: {\r\n\t\t\t\t\t\tfontWeight: 'bold'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\ttooltip: {\r\n\t\t\t\t\tformatter: function () {\r\n\t\t\t\t\t\treturn '' + this.point.name + ': ' + this.y + ' ' + (this.y === 1 ? 'day' : 'days');\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\taccessibility: {\r\n\t\t\t\t\tpoint: {\r\n\t\t\t\t\t\tvalueSuffix: 'days'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tplotOptions: {\r\n\t\t\t\t\tpie: {\r\n\t\t\t\t\t\tdataLabels: {\r\n\t\t\t\t\t\t\tenabled: true,\r\n\t\t\t\t\t\t\tdistance: -50,\r\n\t\t\t\t\t\t\tstyle: {\r\n\t\t\t\t\t\t\t\tfontWeight: 'bold',\r\n\t\t\t\t\t\t\t\tcolor: 'white'\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tformatter: function () {\r\n\t\t\t\t\t\t\t\treturn this.y + ' ' + (this.y === 1 ? 'day' : 'days');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tstartAngle: -90,\r\n\t\t\t\t\t\tendAngle: 90,\r\n\t\t\t\t\t\tcenter: ['50%', '75%'],\r\n\t\t\t\t\t\tsize: '150%'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcolors: ['rgb(48, 147, 209)', 'rgb(252, 182, 49)', 'rgb(154, 214, 49)', 'rgb(243, 78, 168)', '#8B008B'],\r\n\t\t\t\tseries: [{\r\n\t\t\t\t\ttype: 'pie',\r\n\t\t\t\t\tname: 'TAT',\r\n\t\t\t\t\tinnerSize: '50%',\r\n\t\t\t\t\tdata: [\r\n\t\t\t\t\t\t['Pickup TAT', vm.TicketInfo.PickupTAT], \r\n\t\t\t\t\t\t['Estimate TAT', vm.TicketInfo.EstimateTAT],\r\n\t\t\t\t\t\t['Estimate Approval TAT', vm.TicketInfo.EstimateApprovalTAT],\r\n\t\t\t\t\t\t['Repair TAT', vm.TicketInfo.RepairTAT],\r\n\t\t\t\t\t\t['Delivery TAT', vm.TicketInfo.DeliveryTAT]\r\n\t\t\t\t\t],\r\n\t\t\t\t\tshowInLegend: true\r\n\t\t\t\t}],\r\n\t\t\t\t// legend: {\r\n\t\t\t\t// \talign: 'right',\r\n\t\t\t\t// \tverticalAlign: 'middle',\r\n\t\t\t\t// \tlayout: 'vertical'\r\n\t\t\t\t// }\t\t\t\t\r\n\t\t\t}); \r\n }\r\n\r\n\tvm.disableRejectButton = false;\r\n\r\n\tvm.OpenUpdateDeviceRepairModel = function () {\r\n\t\tvm.openRefundModel = $uibModal.open({\r\n\t\t templateUrl: 'updateDeviceModel.html',\r\n\t\t backdrop: 'static',\r\n\t\t size: 'md',\r\n\t\t scope: $scope\r\n\t\t});\r\n\t }\r\n\t vm.closeUpdateDeviceRepairModel = function () {\r\n\t\tvm.disableRejectButton = false;\r\n\t\tvm.openRefundModel.close();\r\n\t }\r\n\r\n\t vm.UpdateDeviceRepairDone = function () {\r\n\t\tvm.disableRejectButton = true;\r\n\t\tJobDetailViewService.UpdateDeviceRepairDone(vm.TicketId, token).then(function (resp) {\r\n\t\t\tif (resp.status == 200) {\r\n\t\t\t\tvm.showSuccess(\"Success\", \"Update Device Repair Done\");\r\n\t\t\t\tvm.closeUpdateDeviceRepairModel();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\tvm.disableRejectButton = false;\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tvm.ConvertBase64ToBlob = function (response) {\r\n\t\tvm.Auditpdf = \"\";\r\n\t\tif (response != null) {\r\n\t\t\tvar arrrayBuffer = base64ToArrayBuffer(response); //data is the base64 encoded string\r\n\t\t\tvar blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n\t\t\tvm.Auditpdf = URL.createObjectURL(blob);\r\n\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvm.DocumentAvailableMessage = \"Document is not available\";\r\n\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t}\r\n\t}\r\n\tfunction base64ToArrayBuffer(base64) {\r\n\t\tvar ret = base64.replace('data:application/pdf;base64,', '');\r\n\t\tvar binaryString = atob(ret);\r\n\t\tvar binaryLen = binaryString.length;\r\n\t\tvar bytes = new Uint8Array(binaryLen);\r\n\t\tfor (var i = 0; i < binaryLen; i++) {\r\n\t\t\tvar ascii = binaryString.charCodeAt(i);\r\n\t\t\tbytes[i] = ascii;\r\n\t\t}\r\n\t\treturn bytes;\r\n\t}\r\n\r\n\tvm.getFileType = function (url) {\r\n\t\tvar extension = fileName.split('.').pop();\r\n\t}\r\n\tvm.WordDownloadtoView = function (page) {\r\n\r\n\t\tMainService.GetImageBlob(loggedinUser, token, page).then(function (resp) {\r\n\t\t\twindow.location.href = resp.data;\r\n\t\t});\r\n\r\n\t}\r\n});\r\nfunction isNumberKey(evt, elemref, quantityvalue) {\r\n\tvar charCode = (evt.which) ? evt.which : evt.keyCode;\r\n\tif (quantityvalue == \"LineItemQuantity\") {\r\n\t\tif (charCode == 46) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\tif (charCode == 46) {\r\n\t\tif ((elemref.value) && (elemref.value.indexOf('.') >= 0))\r\n\t\t\treturn false;\r\n\t}\r\n\tif (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n\r\n\t\treturn false;\r\n\t}\r\n\tif (quantityvalue == \"Percentage\") {\r\n\t\tif (parseFloat(elemref.value + evt.key) > 100) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\treturn true;\r\n}\r\nfunction CheckRegExOnKeyPress(e) {\r\n\r\n\tvar regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\,\\\\-\\\\/]+$\");\r\n\tvar str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n\tif (regex.test(str)) {\r\n\t\treturn true;\r\n\t}\r\n\te.preventDefault();\r\n\treturn false;\r\n};\r\n\nangular.module('inspinia').service('InvoicePaymentService', function (ApiURL,PublicApiURL, $window, $http) {\r\n\r\n var vm = this;\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n // https://perf.mymobiforce.com/coreapi/api/TicketPayment/F00000000000/GetInvoicesByStatus?Status=new\r\n this.GetAllInvoicePayment = function (loggedinUser, status, token) {\r\n var url = ApiURL + '/api/TicketPayment/' + loggedinUser + '/GetInvoicesByStatus?Status=' + status;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.getInvoiceHistory = function (loggedinUser, InvoiceNo, token) {\r\n // https://perf.mymobiforce.com/coreapi/api/TicketPayment/F00000000000/IN_000000001/GetTicketPaymentsByInvoiceNo\r\n var url = ApiURL + \"/api/TicketPayment/\" + loggedinUser + \"/\" + InvoiceNo + \"/GetTicketPaymentsByInvoiceNo\"\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n // https://perf.mymobiforce.com/coreapi/api/TicketPayment/PayInvoice?ReqUserId=F00000000000\r\n this.PutInvoiceTicketPayments = function (loggedinUser, data, success, token) {\r\n var url = ApiURL + '/api/TicketPayment/PayInvoice?ReqUserId=' + loggedinUser\r\n $http.put(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser}\r\n }).then(function (res) {\r\n vm.showSuccess(\"Payment Information\", \"Payment Completed Successfully\");\r\n success(res);\r\n }, function () {\r\n vm.showFailure(\"Payment Information\", \"Unable to make payment\");\r\n })\r\n }\r\n // https://perf.mymobiforce.com/coreapi/api/TicketPayment/PayCompleteInvoice?ReqUserId=F00000000000&InvoiceNo=IN_000000001\r\n this.PutSingleInvoicePayments = function (loggedinUser, InvoiceNo, success, token) {\r\n var url = ApiURL + '/api/TicketPayment/PayCompleteInvoice?ReqUserId=' + loggedinUser + '&InvoiceNo=' + InvoiceNo\r\n $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token }\r\n }).then(function (res) {\r\n vm.showSuccess(\"Payment Information\", \"Payment Completed Successfully\");\r\n success(res);\r\n }, function () {\r\n vm.showFailure(\"Payment Information\", \"Unable to make payment\");\r\n })\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/TicketPayment/PayMultiInvoices?ReqUserId=F00000000000&InvoiceNos=indifnd\r\n this.PutMultiSelectedInvoicePayments = function (loggedinUser, InvoiceNos, success, token) {\r\n var url = ApiURL + '/api/TicketPayment/PayMultiInvoices?ReqUserId=' + loggedinUser + '&InvoiceNos=' + InvoiceNos\r\n $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser }\r\n }).then(function (res) {\r\n vm.showSuccess(\"Payment Information\", \"Payment Completed Successfully\");\r\n success(res);\r\n }, function () {\r\n vm.showFailure(\"Payment Information\", \"Unable to make payment\");\r\n })\r\n }\r\n\r\n// https://perf.mymobiforce.com/publicapi/api/Report/DownloadInvoices?reqUserId=F00000000000&InvoicesNo=IN_000000002\r\nthis.downloadInvoicebyInvoiceNo = function (loggedinUser, InvoiceNos, success, token) {\r\n $window.location.href = PublicApiURL + '/api/Report/DownloadInvoices?reqUserId=' + loggedinUser + '&InvoicesNo=' + InvoiceNos\r\n console.log($window.location.href);\r\n // $http.get(url,{\r\n // headers: { 'Content-Type': 'application/json', 'Token': token }\r\n // }).then(function (res) {\r\n // vm.showSuccess(\"Download Information\", \"Download Completed Successfully\");\r\n // success(res);\r\n // }, function () {\r\n // vm.showFailure(\"Payment Information\", \"Unable to Download Invoices\");\r\n // })\r\n}\r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('InvoicePaymentController', function (InvoicePaymentService, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tInvoicePaymentService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n\t\tInvoicePaymentService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\t$scope.$parent.$parent.main.implementSelectItems('InVoiceHistoryData', this);\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.status = 'New';\r\n\t\t// Get Invoice Payment List\r\n\t\t// vm.getInvoicePaymentList = function(loggedInUserId, status){\r\n\t\t// \tInvoicePaymentService.GetAllInvoicePayment(loggedInUserId,status,token).then(function(resp){\r\n\t\t// \t\tif(resp.data.length > 0){\r\n\t\t// \t\t\tvm.invoicePaymentLists = resp.data; \r\n\t\t// \t\t}\r\n\t\t// \t})\r\n\t\t// }\r\n\t\t// vm.getInvoicePaymentList('F00000000000', vm.status);\r\n\t\tvm.selectedInvoice = '';\r\n\t\tvm.Invoice = {};\r\n\t\tvm.selected = {};\r\n\t\tvm.selectAll = false;\r\n\t\tvm.toggleAll = toggleAll;\r\n\t\tvm.toggleOne = toggleOne;\r\n\t\tvar titleHtml = '';\r\n\r\n\t\tvm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\tvar defer = $q.defer();\r\n\t\t\tInvoicePaymentService.GetAllInvoicePayment(loggedinUser, vm.status, token).then(function (resp) {\r\n\t\t\t\tvm.invoicePaymentList = resp.data;\r\n\t\t\t\t// console.log(vm.invoicePaymentList);\r\n\t\t\t\tdefer.resolve(vm.invoicePaymentList);\r\n\t\t\t});\r\n\r\n\t\t\treturn defer.promise;\r\n\t\t})\r\n\t\t\t.withDOM('<\"html5buttons\"B>lTfgitp')\r\n\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t.withOption('order', [1, 'desc'])\r\n\t\t\t// .withOption('rowCallback', rowCallback)\r\n\t\t\t.withOption('createdRow', createdRow)\r\n\t\t\t.withOption('headerCallback', headerCallback)\r\n\t\t\t.withBootstrap();\r\n\r\n\t\tfunction createdRow(row, data, dataIndex) {\r\n\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t}\r\n\t\tfunction headerCallback(header) {\r\n\t\t\tif (!vm.headerCompiled) {\r\n\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\tvm.headerCompiled = true;\r\n\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction rowCallback(nRow, aData, iDisplayIndex, iDisplayIndexFull) {\r\n\t\t\t$('td', nRow).unbind('click');\r\n\t\t\t$('td', nRow).bind('click', function () {\r\n\t\t\t\t$scope.$apply(function () {\r\n\t\t\t\t\t// vm.ProfileData(aData.EnrollNo);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\treturn nRow;\r\n\t\t}\r\n\r\n\t\tvm.dtColumns = [\r\n\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtml).renderWith(function (data, type, full, meta) {\r\n\t\t\t\tvm.selected[meta.row] = false;\r\n\t\t\t\treturn '';\r\n\t\t\t}).notSortable(),\r\n\t\t\tDTColumnBuilder.newColumn('InvoiceNo').withTitle('Invoice No').notSortable().renderWith(function (data) {\r\n\t\t\t\treturn '' + data + '';\r\n\t\t\t}),\r\n\t\t\tDTColumnBuilder.newColumn('UserName').withTitle('Technician Name').notSortable().renderWith(function (data) {\r\n\t\t\t\treturn '' + data + '';\r\n\t\t\t}),\r\n\t\t\tDTColumnBuilder.newColumn('CreatedOn').withTitle('Created Date').notSortable().renderWith(function (data) {\r\n\t\t\t\tvar dt = $filter('date')(new Date(data), \"dd/MM/yyyy\");\r\n return dt;\r\n\t\t\t}),\r\n\t\t\tDTColumnBuilder.newColumn('AmountPaid').withTitle('Disbursed Amount (Rs)').notSortable(),\r\n\t\t\tDTColumnBuilder.newColumn('AmountToBePaid').withTitle('Pending Amount (Rs)').notSortable(),\r\n\t\t\tDTColumnBuilder.newColumn('TotalAmount').withTitle('Total Amount (Rs)').notSortable(),\r\n\t\t\tDTColumnBuilder.newColumn('PaymentStatus').withTitle('Payment Status'),\r\n\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\tvm.Invoice[meta.row] = data;\r\n\t\t\t\treturn ''\r\n\t\t\t\t\t// + ''\r\n\r\n\t\t\t})\r\n\r\n\t\t];\r\n\r\n\t\tfunction toggleAll(selectAll, selectedItems) {\r\n\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction toggleOne(selectedItems) {\r\n\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\tif (!selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectAll = false;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvm.selectAll = true;\r\n\t\t}\r\n\r\n\t\tvm.PutInvoicePayments = function (Invoice) {\r\n\t\t\tInvoicePaymentService.PutSingleInvoicePayments(loggedinUser, Invoice.InvoiceNo, vm.createCallback(null, [function (data) {\r\n\t\t\t\t// $timeout(vm.GetUnPaidActiveUsers, 1000);\r\n\t\t\t\t\r\n\t\t\t}]), token);\r\n\r\n\t\t\tvm.reloadData();\r\n\t\t}\r\n\t\tvm.reloadData = reloadData;\r\n\t\tfunction reloadData() {\r\n\t\t\tvar resetPaging = true;\r\n\t\t\tvm.dtInstance.reloadData(callback, resetPaging);\r\n\t\t}\r\n\r\n\t\tfunction callback(json) {\r\n\t\t\tconsole.log(json);\r\n\t\t}\r\n\r\n\t\t// -----------------------------------------------------------------------------------\r\n\t\tvm.InvoiceHistory = function (invoiceNo) {\r\n\t\t\tvm.selectedInvoice = invoiceNo;\r\n\t\t\tInvoiceModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Filter.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\tcontroller: ModalInstanceCtrlHistory(invoiceNo.InvoiceNo),\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\treload: true\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseInvoiceModal = function () {\r\n\t\t\tInvoiceModel.close();\r\n\t\t\tvm.reloadData();\r\n\t\t}\r\n\r\n\t\t// var ModalInstanceCtrlHistory = function (invoiceNo) {\r\n\t\t// \tInvoicePaymentService.getInvoiceHistory(loggedinUser, invoiceNo, token).then(function(resp){\r\n\t\t// \t\tvm.InVoiceHistoryData = resp.data;\r\n\t\t// \t});\t\r\n\t\t// }\r\n\r\n\t\tvm.selectedTicket = {};\r\n\t\tvm.selectAllTicket = false;\r\n\t\tvm.toggleAllTicket = toggleAllTicket;\r\n\t\tvm.toggleOneTicket = toggleOneTicket;\r\n\t\tvar titleHtmls = '';\r\n\t\tvar ModalInstanceCtrlHistory = function (invoiceNo) {\r\n\t\t\tvm.TicketdtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tInvoicePaymentService.getInvoiceHistory(loggedinUser, invoiceNo, token).then(function (resp) {\r\n\t\t\t\t\tvm.InVoiceHistoryData = resp.data;\r\n\t\t\t\t\tconsole.log(vm.InVoiceHistoryData);\r\n\t\t\t\t\tdefer.resolve(vm.InVoiceHistoryData);\r\n\t\t\t\t})\r\n\r\n\t\t\t\treturn defer.promise;\r\n\t\t\t}).withDOM('<\"html5buttons\"B>lTfgitp').withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [1, 'desc']).withBootstrap()\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompileds) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompileds = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.TicketdtColumns = [\r\n\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtmls).renderWith(function (data, type, full, meta) {\r\n\t\t\t\tvm.selectedTicket[meta.row] = false;\r\n\t\t\t\treturn '';\r\n\t\t\t}).notSortable(),\r\n\t\t\tDTColumnBuilder.newColumn('TicketId').withTitle('TicketId').renderWith(function (data) {\r\n\t\t\t\treturn '' + data + '';\r\n\t\t\t}),\r\n\t\t\tDTColumnBuilder.newColumn('AccountName').withTitle('Account Name').renderWith(function (data) {\r\n\t\t\t\treturn '' + data + '';\r\n\t\t\t}),\r\n\t\t\tDTColumnBuilder.newColumn('CustomerName').withTitle('Customer Name').renderWith(function (data) {\r\n\t\t\t\treturn '' + data + '';\r\n\t\t\t}),\r\n\t\t\tDTColumnBuilder.newColumn('ProjectName').withTitle('Project Name').renderWith(function (data) {\r\n\t\t\t\treturn '' + data + '';\r\n\t\t\t}),\r\n\t\t\tDTColumnBuilder.newColumn('AmountToBePaid').withTitle('AmountToBePaid'),\r\n\t\t\tDTColumnBuilder.newColumn('CreatedOn').withTitle('Ticket Date').renderWith(function(data){\r\n\t\t\t\tvar dt = $filter('date')(new Date(data), \"dd/MM/yyyy\");\r\n return dt;\r\n\t\t\t}),\r\n\r\n\t\t];\r\n\r\n\t\tfunction toggleAllTicket(selectAllTicket, selectedItems) {\r\n\r\n\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\tselectedItems[id] = selectAllTicket;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction toggleOneTicket(selectedItems) {\r\n\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\tif (!selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectAllTicket = false;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvm.selectAllTicket = true;\r\n\t\t}\r\n\r\n\t\tvm.PutInvoiceTicketPayments = function () {\r\n\r\n\t\t\tvar temp = '';\r\n\t\t\tvar objects = {\r\n\t\t\t\t\"InvoiceNo\": vm.selectedInvoice.InvoiceNo,\r\n\t\t\t\t\"PaymentRemark\": 'Yet to be Done'\r\n\t\t\t};\r\n\t\t\tvar temp = [];\r\n\t\t\tfor (var i = 0; i < vm.InVoiceHistoryData.length; i++) {\r\n\t\t\t\tif (vm.selectedTicket[i] == true) {\r\n\t\t\t\t\tvar TicketDetailsList =\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"TicketId\": vm.InVoiceHistoryData[i].TicketId,\r\n\t\t\t\t\t\t\"AccountId\": vm.InVoiceHistoryData[i].AccountId\r\n\t\t\t\t\t};\r\n\t\t\t\t\ttemp.push(TicketDetailsList);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tobjects.TicketDetailsList = temp;\r\n\r\n\t\t\tInvoicePaymentService.PutInvoiceTicketPayments(loggedinUser, objects, vm.createCallback(null, [function (data) {\r\n\t\t\t\t// $timeout(vm.GetUnPaidActiveUsers, 1000);\r\n\t\t\t}]), token);\r\n\t\t\tvm.CloseInvoiceModal();\r\n\t\t}\r\n\r\n\t\tvm.PutMultiSelectedInvoicePayments = function () {\r\n\t\t\tvar InvoiceLists = '';\r\n\t\t\tfor (var i = 0; i < vm.invoicePaymentList.length; i++) {\r\n\t\t\t\tif (vm.selected[i] == true) {\r\n\t\t\t\t\tif (i == 0) {\r\n\t\t\t\t\t\tInvoiceLists = vm.invoicePaymentList[i].InvoiceNo;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tInvoiceLists = InvoiceLists + \",\" + vm.invoicePaymentList[i].InvoiceNo;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// console.log(InvoiceLists);\r\n\t\t\tInvoicePaymentService.PutMultiSelectedInvoicePayments(loggedinUser, InvoiceLists, vm.createCallback(null, [function (data) {\r\n\t\t\t\t// $timeout(vm.GetUnPaidActiveUsers, 1000);\r\n\t\t\t}]), token);\r\n\t\t\tvm.reloadData();\r\n\t\t\tvm.selectAll = false;\r\n\t\t}\r\n\r\n\t\tvm.downloadInvoice = function(){\r\n\r\n\t\t\tvar InvoiceNoList = '';\r\n\t\t\tfor(var i = 0; i< vm.invoicePaymentList.length; i++){\r\n\t\t\t\tif(vm.selected[i]==true){\r\n\t\t\t\t\tif(i==0){\r\n\t\t\t\t\t\tInvoiceNoList = vm.invoicePaymentList[i].InvoiceNo;\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tInvoiceNoList = InvoiceNoList + \",\" + vm.invoicePaymentList[i].InvoiceNo;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tconsole.log(InvoiceNoList);\r\n\t\t\tInvoicePaymentService.downloadInvoicebyInvoiceNo(loggedinUser,InvoiceNoList, vm.createCallback(null, [function(data){}]),token);\r\n\t\t\tvm.reloadData();\r\n\t\t\tvm.selectAll = false;\r\n\t\t}\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('InvoiceItemizedService', function (ApiURL, FreelancerURL,LocationURL,PublicApiURL, $log, $http,$localStorage,$window) {\r\n\r\n // GetInvoiceToDetails\r\n this.getInvoiceToDetails = function (loggedInUserId,token) { \r\n var url = ApiURL+ '/api/Invoice/GetInvoiceToDetails';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n \r\n }\r\n });\r\n }\r\n \r\n //GenerateItemizedInvoice\r\n this.GenerateItemizedInvoice = function (loggedinUser,token,TicketId) { debugger\r\n var url = ApiURL + '/api/Invoice/GenerateItemizedInvoiceViaTicketId';\r\n return $http.put(url, TicketId,{\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n }\r\n \r\n\r\n \r\n//Generate Invoice Preview Via Model\r\nthis.GeneratePreviewItemizedInvoice = function ( loggedinUser, token,TicketIds) { \r\n var url = ApiURL + '/api/Invoice/GenerateInvoicePreviewViaModel';\r\n return $http.put(url, TicketIds,{\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\n//GenerateItemizedInvoiceOnScreen\r\nthis.GenerateItemizedInvoiceOnScreen = function ( loggedinUser, token,TicketIds) { \r\n var url = ApiURL + '/api/Invoice/GenerateInvoiceByRowModel';\r\n return $http.put(url, TicketIds,{\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\n//GenerateInvoiceByModel on Pop-up\r\nthis.GenerateInvoiceByModel = function ( loggedinUser, token,TicketIds) { debugger\r\n var url = ApiURL + '/api/Invoice/GenerateInvoiceByModel';\r\n return $http.put(url, TicketIds,{\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\n//Generate PDF Invoice \r\n// this.GeneratePDFInvoiceByInvoiceNumber = function ( loggedinUser, token,InvoiceNo) { debugger\r\n// var url = ApiURL + '/api/Invoice/GeneratePDFInvoiceByInvoiceNumber';\r\n// return $http.put(url, InvoiceNo,{\r\n// headers: { \r\n// 'ContentType': 'application/json', \r\n// 'Token':token, \r\n// 'UserId':loggedinUser \r\n// }\r\n \r\n// });\r\n// }\r\n \r\n });\nangular.module('inspinia').controller('InvoiceItemizedController', function (InvoiceItemizedService,ReferService, toaster, $filter,$rootScope, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder,DTColumnDefBuilder, DTColumnBuilder, $uibModal, $localStorage, ticketTemplateService, $scope, $state,$stateParams, FreelancerURL, ApiURL, $timeout) {\r\n\tvm = this;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n \tvar ticketIdsToGenItemizedInvoice = $stateParams.ticketIdsToGenItemizedInvoice;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.ItemizedInvoiceList=[];\r\n\t\tvm.ticketIdsItemizedList = [];\r\n\t\tvm.SelectedInvoiceObj={};\r\n\t\tif($localStorage.InvoiceItemizedTicketIdList != null || $localStorage.InvoiceItemizedTicketIdList !=\"\")\r\n\t\t\tvm.ticketIdsItemizedList=$localStorage.InvoiceItemizedTicketIdList;\r\n\t\tvm.GenerateItemizedInvoice = function(ticketIds)\r\n\t\t{\t\r\n\t\t\tInvoiceItemizedService.GenerateItemizedInvoice(loggedinUser,token,ticketIds).then(function(resp){\r\n\t\t\tif(resp && resp.data) { \r\n\t\t\t\tvm.ItemizedInvoiceList = resp.data; \r\n\t\t\t\tvm.SelectedInvoiceObj=vm.ItemizedInvoiceList[0];\r\n\t\t\t\tif(resp.status==206)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t$window.location.href = '/#/index/CustomerInvoice/';\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(vm.SelectedInvoiceObj.ErrorString != null) {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", vm.SelectedInvoiceObj.ErrorString + \" for this \" + vm.SelectedInvoiceObj.PONumber + \" PO Number \" );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\t \r\n\t\t\t}, function () { \r\n\t\t\t});\r\n \t}\r\n\t\tvm.GenerateItemizedInvoice(vm.ticketIdsItemizedList); \r\n\t\tvm.pdfimage = \"\";\r\n\t\tvm.DocumentAvailableMessage=\"\";\t\r\n\t\tvm.GeneratePreviewItemizedInvoice = function (previewSelectedObj) { \r\n\t\t\tvm.PDFView();\r\n\t\t\tvar PreviewItemizedInvoiceList = [previewSelectedObj];\r\n\t\t\tInvoiceItemizedService.GeneratePreviewItemizedInvoice(loggedinUser, token, PreviewItemizedInvoiceList).then(function (resp) {\r\n\t\t\t\tvar responseDataList=[];\r\n\t\t\t\tresponseDataList = resp.data;\r\n\t\t\t\t// for(var i=0; ilTfgitp')\r\n\t\t\t\t.withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [1, 'desc'])\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompiled) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompiled = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.withBootstrap();\r\n\r\n\r\n\t\t\tvm.dtColumns = [\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtml).renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvm.selected[meta.row] = false;\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}).notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('InvoiceNo').withTitle('Invoice No').notSortable().renderWith(function (data) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('UserName').withTitle('Technician Name').notSortable().renderWith(function (data) {\r\n\t\t\t\t\treturn '' + data + '';\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('CreatedOn').withTitle('Created Date').notSortable().renderWith(function (data) {\r\n\t\t\t\t\tvar dt = $filter('date')(new Date(data), \"dd/MM/yyyy\");\r\n\t\t\t\t\treturn dt;\r\n\t\t\t\t}),\r\n\t\t\t\tDTColumnBuilder.newColumn('AmountPaid').withTitle('Disbursed Amount (Rs)').notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('AmountToBePaid').withTitle('Pending Amount (Rs)').notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('TotalAmount').withTitle('Total Amount (Rs)').notSortable(),\r\n\t\t\t\tDTColumnBuilder.newColumn('PaymentStatus').withTitle('Payment Status'),\r\n\t\t\t\tDTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n\t\t\t\t\tvm.Invoice[meta.row] = data;\r\n\t\t\t\t\treturn ''\r\n\r\n\t\t\t\t})\r\n\r\n\t\t\t];\r\n\r\n\t\tfunction toggleAll(selectAll, selectedItems) {\r\n\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\tselectedItems[id] = selectAll;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction toggleOne(selectedItems) {\r\n\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (!selectedItems[id]) {\r\n\r\n\t\t\t\t\t\tif(vm.selectSingle){\r\n\t\t\t\t\t\t\tvm.selectAll = false;\r\n\t\t\t\t\t\t\tvm.selectSingle = false;\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvm.selectAll = false;\r\n\t\t\t\t\t\tvm.selectSingle = true;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvm.selectAll = true;\r\n\t\t\t\r\n\t\t}\r\n\r\n\t}\r\n\t\tvm.reloadData = function(){\r\n\t\t\tvar resetPaging = true;\r\n\t\t vm.dtInstance.reloadData(resetPaging);\r\n\t\t }\r\n\r\n\t\t// -----------------------------------------------------------------------------------\r\n\t\tvm.InvoiceHistory = function (invoiceNo) {\r\n\t\t\tvm.selectedInvoice = invoiceNo;\r\n\t\t\tInvoiceModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Filter.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\tcontroller: ModalInstanceCtrlHistory(invoiceNo.InvoiceNo),\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\treload: true\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseInvoiceModal = function () {\r\n\t\t\tInvoiceModel.close();\r\n\t\t\tvm.reloadData();\r\n\t\t}\r\n\r\n\t\t// var ModalInstanceCtrlHistory = function (invoiceNo) {\r\n\t\t// \tInvoiceListService.getInvoiceHistory(loggedinUser, invoiceNo, token).then(function(resp){\r\n\t\t// \t\tvm.InVoiceHistoryData = resp.data;\r\n\t\t// \t});\t\r\n\t\t// }\r\n\r\n\t\tvm.selectedTicket = {};\r\n\t\tvm.selectAllTicket = false;\r\n\t\tvm.toggleAllTicket = toggleAllTicket;\r\n\t\tvm.toggleOneTicket = toggleOneTicket;\r\n\t\tvar titleHtmls = '';\r\n\t\tvar ModalInstanceCtrlHistory = function (invoiceNo) {\r\n\t\t\tvm.TicketdtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\tInvoiceListService.getInvoiceHistory(loggedinUser, invoiceNo, token).then(function (resp) {\r\n\t\t\t\t\tvm.InVoiceHistoryData = resp.data;\r\n\t\t\t\t\tconsole.log(vm.InVoiceHistoryData);\r\n\t\t\t\t\tdefer.resolve(vm.InVoiceHistoryData);\r\n\t\t\t\t})\r\n\r\n\t\t\t\treturn defer.promise;\r\n\t\t\t}).withDOM('<\"html5buttons\"B>lTfgitp').withPaginationType('full_numbers')\r\n\t\t\t\t.withOption('order', [1, 'desc']).withBootstrap()\r\n\t\t\t\t.withOption('createdRow', function (row, data, dataIndex) {\r\n\t\t\t\t\t// Recompiling so we can bind Angular directive to the DT\r\n\t\t\t\t\t$compile(angular.element(row).contents())($scope);\r\n\t\t\t\t})\r\n\t\t\t\t.withOption('headerCallback', function (header) {\r\n\t\t\t\t\tif (!vm.headerCompileds) {\r\n\t\t\t\t\t\t// Use this headerCompiled field to only compile header once\r\n\t\t\t\t\t\tvm.headerCompileds = true;\r\n\t\t\t\t\t\t$compile(angular.element(header).contents())($scope);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.TicketdtColumns = [\r\n\t\t\tDTColumnBuilder.newColumn(null).withTitle(titleHtmls).renderWith(function (data, type, full, meta) {\r\n\t\t\t\tvm.selectedTicket[meta.row] = false;\r\n\t\t\t\treturn '';\r\n\t\t\t}).notSortable(),\r\n\t\t\tDTColumnBuilder.newColumn('TicketId').withTitle('TicketId').renderWith(function (data) {\r\n\t\t\t\treturn '' + data + '';\r\n\t\t\t}),\r\n\t\t\tDTColumnBuilder.newColumn('AccountName').withTitle('Account Name').renderWith(function (data) {\r\n\t\t\t\treturn '' + data + '';\r\n\t\t\t}),\r\n\t\t\tDTColumnBuilder.newColumn('CustomerName').withTitle('Customer Name').renderWith(function (data) {\r\n\t\t\t\treturn '' + data + '';\r\n\t\t\t}),\r\n\t\t\tDTColumnBuilder.newColumn('ProjectName').withTitle('Project Name').renderWith(function (data) {\r\n\t\t\t\treturn '' + data + '';\r\n\t\t\t}),\r\n\t\t\tDTColumnBuilder.newColumn('AmountToBePaid').withTitle('AmountToBePaid'),\r\n\t\t\tDTColumnBuilder.newColumn('CreatedOn').withTitle('Ticket Date').renderWith(function (data) {\r\n\t\t\t\tvar dt = $filter('date')(new Date(data), \"dd/MM/yyyy\");\r\n\t\t\t\treturn dt;\r\n\t\t\t}),\r\n\r\n\t\t];\r\n\r\n\t\tfunction toggleAllTicket(selectAllTicket, selectedItems) {\r\n\r\n\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\tselectedItems[id] = selectAllTicket;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction toggleOneTicket(selectedItems) {\r\n\t\t\tfor (var id in selectedItems) {\r\n\t\t\t\tif (selectedItems.hasOwnProperty(id)) {\r\n\t\t\t\t\tif (!selectedItems[id]) {\r\n\t\t\t\t\t\tvm.selectAllTicket = false;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvm.selectAllTicket = true;\r\n\t\t}\r\n\r\n\r\n\t\tvm.downloadInvoice = function () {\r\n\r\n\t\t\tvar InvoiceNoList = '';\r\n\t\t\tfor (var i = 0; i < vm.invoiceLists.length; i++) {\r\n\t\t\t\tif (vm.selected[i] == true) {\r\n\t\t\t\t\tif (i == 0) {\r\n\t\t\t\t\t\tInvoiceNoList = vm.invoiceLists[i].InvoiceNo;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tInvoiceNoList = InvoiceNoList + \",\" + vm.invoiceLists[i].InvoiceNo;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tconsole.log(InvoiceNoList);\r\n\t\t\tInvoiceListService.downloadInvoicebyInvoiceNo(loggedinUser, InvoiceNoList, vm.createCallback(null, [function (data) { }]), token);\r\n\t\t\tvm.reloadData();\r\n\t\t\tvm.selectAll = false;\r\n\t\t}\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('InvoiceConsolidatedService', function (ApiURL, FreelancerURL,LocationURL,PublicApiURL, $log, $http,$localStorage,$window) {\r\n\r\n// GetInvoiceToDetails\r\nthis.getInvoiceToDetails = function (loggedInUserId,token) { \r\n var url = ApiURL+ '/api/Invoice/GetInvoiceToDetails';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n \r\n }\r\n });\r\n}\r\n\r\n//GenerateConsolidatedInvoice\r\nthis.GenerateConsolidatedInvoice = function ( loggedinUser, token,TicketIds) { debugger\r\n var url = ApiURL + '/api/Invoice/GenerateConsolidatedInvoiceViaTicketId';\r\n return $http.put(url, TicketIds,{\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\n//Generate Invoice Preview Via Model\r\nthis.GeneratePreviewConsolidatedInvoice = function ( loggedinUser, token,TicketIds) { \r\n var url = ApiURL + '/api/Invoice/GenerateInvoicePreviewViaModel';\r\n return $http.put(url, TicketIds,{\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\n//GenerateConsolidatedInvoiceOnScreen\r\nthis.GenerateConsolidatedInvoiceOnScreen = function ( loggedinUser, token,TicketIds) { \r\n var url = ApiURL + '/api/Invoice/GenerateInvoiceByRowModel';\r\n return $http.put(url, TicketIds,{\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\n//GenerateInvoiceByModel on Pop-up\r\nthis.GenerateInvoiceByModel = function ( loggedinUser, token,TicketIds) { debugger\r\n var url = ApiURL + '/api/Invoice/GenerateInvoiceByModel';\r\n return $http.put(url, TicketIds,{\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\n//Generate PDF Invoice \r\n// this.GeneratePDFInvoiceByInvoiceNumber = function ( loggedinUser, token,InvoiceNo) { debugger\r\n// var url = ApiURL + '/api/Invoice/GeneratePDFInvoiceByInvoiceNumber';\r\n// return $http.put(url, InvoiceNo,{\r\n// headers: { \r\n// 'ContentType': 'application/json', \r\n// 'Token':token, \r\n// 'UserId':loggedinUser \r\n// }\r\n \r\n// });\r\n// }\r\n\r\n\r\n});\nangular.module('inspinia').controller('InvoiceConsolidatedController', function (InvoiceConsolidatedService, CustomerInvoiceService, ReferService, toaster, $filter, $rootScope, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder, DTColumnDefBuilder, DTColumnBuilder, $uibModal, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $stateParams, $timeout) {\r\n\tvm = this;\r\n\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tvar ticketIdsToGenInvoices = $stateParams.ticketIdsToGenInvoice;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\r\n\t\tvm.ConsolidatedInvoiceList=[];\t\r\n\t\tvm.ticketIdsList = [];\r\n\t\tvm.SelectedInvoiceObj={};\r\n\t\tif($localStorage.InvoiceTicketIdList != null || $localStorage.InvoiceTicketIdList !=\"\")\r\n\t\t\tvm.ticketIdsList=$localStorage.InvoiceTicketIdList;\r\n\t\tvm.GenerateConsolidatedInvoice = function (ticketIds) {\r\n\t\t\tInvoiceConsolidatedService.GenerateConsolidatedInvoice(loggedinUser, token, ticketIds).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.ConsolidatedInvoiceList = resp.data;\r\n\t\t\t\t\tvm.SelectedInvoiceObj=vm.ConsolidatedInvoiceList[0];\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(resp.status==206)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t$window.location.href = '/#/index/CustomerInvoice/';\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(vm.SelectedInvoiceObj.ErrorString != null) {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", vm.SelectedInvoiceObj.ErrorString + \" for this \" + vm.SelectedInvoiceObj.PONumber + \" PO Number \" );\r\n\t\t\t\t\t}\r\n\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.GenerateConsolidatedInvoice(vm.ticketIdsList);\r\n\r\n\t\t\r\n\r\n\t\tvm.pdfimage = \"\";\r\n\t\tvm.DocumentAvailableMessage=\"\";\t\r\n\t\tvm.GeneratePreviewConsolidatedInvoice = function (previewSelectedObj) { \r\n\t\t\tvm.PDFView();\r\n\t\t\tvar PreviewConsolidatedInvoiceList = [previewSelectedObj];\r\n\t\t\tInvoiceConsolidatedService.GeneratePreviewConsolidatedInvoice(loggedinUser, token, PreviewConsolidatedInvoiceList).then(function (resp) {\r\n\t\t\t\tvar responseDataList=[];\r\n\t\t\t\tresponseDataList = resp.data;\r\n\t\t\t\t// for(var i=0; i -1) {\r\n addedUsr = true;\r\n vm.shareModel.toList.push(u);\r\n }\r\n }\r\n })\r\n if (!addedUsr) {\r\n vm.shareModel.toList.push({ PersonalEmail: email, UserId: email, FirstName: email.split(\"@\")[0], LastName: \"\" });\r\n }\r\n }\r\n })\r\n\r\n angular.forEach(vm.currentConfig.strListMMFEmail, function (email) {\r\n if (email != null) {\r\n addedUsr = false;\r\n angular.forEach(vm.users, function (u) {\r\n if (u.PersonalEmail != null) {\r\n if (u.PersonalEmail.toLowerCase().indexOf(email.toLowerCase()) > -1) {\r\n addedUsr = true;\r\n vm.shareModel.ccList.push(u);\r\n }\r\n }\r\n })\r\n if (!addedUsr) {\r\n vm.shareModel.ccList.push({ PersonalEmail: email, UserId: email, FirstName: email.split(\"@\")[0], LastName: \"\" });\r\n }\r\n }\r\n })\r\n\r\n vm.dataFilters = vm.currentConfig.objListReminders;\r\n angular.forEach(vm.dataFilters, function (d) {\r\n d.strMailBody = d.strMailBody.replace(new RegExp(\"
\", 'g'), \"\\n\");\r\n });\r\n\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.shareModel.getUserSuggestion = function (val) {\r\n vm.shareModel.toListMendtryErr = false;\r\n vm.shareModel.ccListMendtryErr = false;\r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }].concat(vm.users) : vm.users;\r\n }\r\n return re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }] : [];\r\n }\r\n \r\n vm.getUsersLite = function () {\r\n vm.users = [];\r\n reportDetailService.getUsersLite(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n }]));\r\n }\r\n \r\n vm.getUsersLite();\r\n \r\n vm.shareModel.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName != null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n \r\n vm.shareModel.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.shareModel.toList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.ccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n }\r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n \r\n vm.shareModel.cancelledToListUser = function (i) {\r\n vm.shareModel.toList.splice(i, 1);\r\n }\r\n \r\n vm.shareModel.cancelledCCListUser = function (i) {\r\n vm.shareModel.ccList.splice(i, 1);\r\n }\r\n \r\n vm.shareModel.selectUserNameInToList = function (item) {\r\n vm.shareModel.toList.push(item);\r\n vm.shareModel.toUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInCCList = function (item) {\r\n vm.shareModel.ccList.push(item);\r\n vm.shareModel.ccUsers = [];\r\n }\r\n \r\n }\r\n\r\n});\r\n\nangular.module('inspinia').service('CustomerInvoiceService', function (ApiURL, PublicApiURL, $http, $localStorage, $window) {\r\n\r\n this.getCustomerInvoice = function (startDate, endDate, reqUserId, token, itemNames, itemValues, DateField, PageIndex, PageSize,SortField, SortType) {\r\n var url = '';\r\n url = ApiURL + '/api/Invoice/GetInvoicesAccountsDateRangeWithDynaPaging?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + reqUserId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize +'&SortField=' + SortField + '&SortType=' + SortType;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': reqUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetRemittanceAdvices = function (startDate, endDate, reqUserId, token, itemNames, itemValues, DateField, PageIndexAdvice, PageSizeAdvice, SortField, SortType) {\r\n var url = '';\r\n url = ApiURL + '/api/Invoice/GetRemittanceAdvices?startDate=' + startDate + '&endDate=' + endDate + '&reqUserId=' + reqUserId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndexAdvice + '&PageSize=' + PageSizeAdvice +'&SortField=' + SortField + '&SortType=' + SortType;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': reqUserId\r\n }\r\n });\r\n }\r\n\r\n this.getAllJobTickets = function (startDate, endDate, reqUserId, token, itemNames, itemValues, DateField, PageIndex, PageSize,SortField, SortType) {\r\n var url = ApiURL + '/api/Invoice/GetAllTicketForInvoiceInDateRangeWithDynaPaging?fromDate=' + startDate + '&toDate=' + endDate + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize +'&SortField=' + SortField + '&SortType=' + SortType;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': reqUserId\r\n\r\n }\r\n });\r\n }\r\n\r\n\r\n this.CreateRemmittanceAdvices = function (data,loggedInUserId, token) {\r\n var url = ApiURL + '/api/Invoice/CreateRemmittanceAdvices'\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId }\r\n })\r\n }\r\n\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Invoice/GetBase64ForCustomerInvoicePDF\r\n this.getInvoice = function (loggedInUserId, token, data) {\r\n var url = ApiURL + '/api/Invoice/GetBase64ForCustomerInvoicePDF';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetRemittanceDataByInvoiceId = function (loggedInUserId, token, invoiceNo) {\r\n var url = ApiURL + '/api/Invoice/GetRemittanceDataByInvoiceId?InvoiceNo=' + invoiceNo;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.getCustInvoice = function (loggedInUserId, token, invoiceNo) {\r\n var url = ApiURL + '/api/Invoice/GetCustomerInvoiceAttachmentinbase64?InvoiceNo=' + invoiceNo;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Invoice/GetBase64ForCreditNotePDF\r\n\r\n\r\n this.getCreditN = function (loggedInUserId, token, data) {\r\n var url = ApiURL + '/api/Invoice/GetBase64ForCreditNotePDF';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n //credit Note\r\n this.getCreditNote = function (startDate, endDate, reqUserId, token, itemNames, itemValues, DateField, PageIndex, PageSize) {\r\n var url = ApiURL + '/api/Invoice/GetCreditNoteInDateRangeWithDynaPaging?fromDate=' + startDate + '&toDate=' + endDate + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': reqUserId\r\n\r\n }\r\n });\r\n }\r\n\r\n\r\n //state api\r\n this.getCustomerInvoiceState = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n //Accounts API\r\n this.getCustomerAccounts = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n\r\n }\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Invoice/GetInvoiceDashboardWithFilters\r\n this.getDashboardDetails = function (loggedInUserId, token, Data) {\r\n var url = ApiURL + '/api/Invoice/GetInvoiceDashboardWithFilters';\r\n return $http.put(url, Data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n\r\n }\r\n });\r\n }\r\n\r\n\r\n this.PaidByCustomerInvoiceAccounts = function (loggedInUserId, token, userFormData) {\r\n var url = ApiURL + '/api/Invoice/PaidByCustomerInvoiceAccounts';\r\n return $http.put(url, userFormData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.RaiseInvoiceToCustomerAccounts = function (loggedInUserId, token, userFormData) {\r\n var url = ApiURL + '/api/Invoice/RaiseInvoiceToCustomerAccounts';\r\n return $http.put(url, userFormData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.RejectInvoiceByCustomer = function (loggedInUserId, token, userFormData) {\r\n var url = ApiURL + '/api/Invoice/RejectInvoiceByCustomer';\r\n return $http.put(url, userFormData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n //clone api\r\n this.CloneRejectedInvoice = function (loggedInUserId, token, userFormData) {\r\n var url = ApiURL + '/api/Invoice/CloneRejectedInvoice';\r\n return $http.put(url, userFormData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n //paging \r\n // this.getAllJobTicketsCopy = function (supervisorId, startDate, endDate, token, itemNames,itemValues,textItemNames,textItemValues,templateCols,templateItemNames,templateItemValues,DateField,PageIndex,PageSize) {\r\n // var url = '';\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRangeWithDynaPaging?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues +'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues+ '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n\r\n // return $http.get(url, {\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // 'Token': token,\r\n // 'UserId': supervisorId\r\n // }\r\n // });\r\n // }\r\n\r\n //DownloadInvoicesNew\r\n // https://product.mymobiforce.com/publicapi/api/Report/DownloadCustomerInvoice?InvoiceNumber=HFUP/2020-2021/000000000142\r\n this.DownloadInvoice = function (invoiceNumberList) {\r\n var url = PublicApiURL + \"/api/Report/DownloadCustomerInvoice?InvoiceNumber=\" + invoiceNumberList;\r\n $window.open(url);\r\n }\r\n\r\n //credit note\r\n this.DownloadCredit = function (creditNoteNoList) {\r\n var url = PublicApiURL + \"/api/Report/DownloadCreditNote?CreditNumber=\" + creditNoteNoList;\r\n $window.open(url);\r\n }\r\n\r\n //send email https://product.mymobiforce.com/coreapi/api/Invoice/MailPDFInvoiceByInvoiceNumber\r\n this.SendEmails = function (token, data, loggedinUser) {\r\n var url = ApiURL + '/api/Invoice/MailPDFInvoiceByInvoiceNumber'\r\n return $http.put(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n //send email report(page)\r\n // this.mailReport = function(token, toList, ccList, bccList, subject, message, reportName, userID, filterKey, filterValue, reportInMailBody, rollUps, callback){\r\n // var data = {\r\n // \"TOList\": toList,\r\n // \"CCList\": ccList,\r\n // \"BCCList\": bccList,\r\n // \"Body\": message,\r\n // \"Subject\": subject,\r\n // \"ReportName\": reportName,\r\n // \"ReqUserId\": userID,\r\n // \"FilterKeys\": null,\r\n // \"FilterValues\": null,\r\n // \"ReportInMailBody\": reportInMailBody,\r\n // \"RollUps\":rollUps\r\n // };\r\n\r\n // //$log.log(\"data\", data);\r\n // $http.post(DashboardURL + '/api/Report/mailexcelreportbyname', data, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId':userID } }).then(function (res) { debugger\r\n // if (callback) {\r\n // callback(res.data);\r\n // }\r\n // })\r\n // }\r\n\r\n // vm.SendEmails = function(token, toList, ccList, bccList, subject, message, loggedinUser){\r\n // var data = {\r\n // \"TOList\": toList,\r\n // \"AttachmentList\":AttachmentList,\r\n // \"Request_Code\":0,\r\n // \"CCList\": ccList,\r\n // \"BCCList\": bccList,\r\n // \"Body\": message,\r\n // \"Subject\": subject,\r\n // \"InvoiceNo\": InvoiceNo,\r\n // \"UserId\": loggedinUser\r\n // };\r\n\r\n // $http.put(ApiURL +'/api/Invoice/MailPDFInvoiceByInvoiceNumber', data, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n\r\n // })\r\n // }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Invoice/GetTicketDataToRaiseInvoice\r\n this.GetTicketDataToRaiseInvoice = function (loggedinUser, ticketIdList, token) {\r\n var url = ApiURL + '/api/Invoice/GetTicketDataToRaiseInvoice'\r\n return $http.put(url, ticketIdList, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n // Blank Invoice Api\r\n //https://product.mymobiforce.com/coreapi/api/Invoice/GetBlankInvoice/56\r\n // this.GetBlankInvoice = function (loggedInUserId,token,AccountId) {\r\n // var url = ApiURL+ '/api/Invoice/GetBlankInvoice/' + AccountId;\r\n // return $http.get(url, {\r\n // headers: { \r\n // 'Content-Type': 'application/json',\r\n // 'Token':token , \r\n // 'UserId':loggedInUserId\r\n\r\n // }\r\n // });\r\n // }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Invoice/BlankInvoiceAsyncNew\r\n\r\n this.GetBlankInvoice = function (data, files, token, loggedInUser, success, failure) {\r\n var formdata = new FormData();\r\n if (files) {\r\n formdata.append(\"file\", files[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"BackgroundData\", followupdata);\r\n\r\n var url = ApiURL + '/api/Invoice/BlankInvoiceAsyncNew';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUser }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Invoice is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n else {\r\n }\r\n\r\n }\r\n\r\n this.CustomerInvoiceAttachment = function (data, files, token, loggedInUser, success, failure) {\r\n var formdata = new FormData();\r\n formdata.append(\"file\", files[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"BackgroundData\", followupdata);\r\n\r\n var url = ApiURL + '/api/Invoice/CustomerInvoiceAttachment';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUser }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Invoice is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Invoice/MarkTicketsReadyToRaiseInvoice\r\n this.MarkTicketsReadyToRaiseInvoice = function (loggedinUser, ticketwithLineitemList, token) {\r\n var url = ApiURL + '/api/Invoice/MarkTicketsReadyToRaiseInvoice'\r\n return $http.put(url, ticketwithLineitemList, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.ReGenerateIRN = function (invoiceId,loggedInUserId, token) {\r\n var url = ApiURL + '/api/Invoice/ReGenerateIRN?InvoiceNumber=' + invoiceId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('CustomerInvoiceController', function (CustomerInvoiceService,reportDetailService, $sce, InvoiceConsolidatedService, ngProgressFactory, $http, ReferService, toaster, $filter, $rootScope, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder, DTColumnDefBuilder, DTColumnBuilder, $uibModal, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n vm = this;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.dissblesubmitButton = false;\r\n\r\n vm.CustomerInvoiceList = {};\r\n vm.creditNote = {};\r\n vm.CustomerInvoice = function () {\r\n vm.SearchUserinfoForm.submitted = true;\r\n if (vm.SearchUserinfoForm.$valid) {\r\n CustomerInvoiceService.GetCustomerInvoiceByReqUserId(loggedinUser, vm.SearchUser, token).then(function (resp) {\r\n if (resp.status == 206) {\r\n vm.showFailure('Failed', resp.data.Message);\r\n vm.CustomerInvoiceList = \"\";\r\n }\r\n else\r\n vm.CustomerInvoiceList = resp.data;\r\n });\r\n }\r\n }\r\n\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.CurrencySymbol = $localStorage.accountConfig.CurrencySymbol;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n var token = $localStorage.token;\r\n vm.Remarks = '';\r\n vm.Remark = '';\r\n vm.selectedTemplates = '';\r\n vm.PaymentStatus = '';\r\n vm.SettlementStatus = '';\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n vm.editPermission = false;\r\n vm.enableFilters = true;\r\n vm.dtInstance = {};\r\n vm.bulkuploadType = \"Invoice\";\r\n var today = new Date();\r\n var formattedDate = today.toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' });\r\n\r\n // vm.disableUploadButton = true;\r\n $scope.isCollapsed = true;\r\n var textItemNames = '';\r\n var textItemValues = '';\r\n vm.ticketPageListCount = 10;\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.ticketList = [];\r\n vm.customerInvoiceList = [];\r\n vm.customerAdviceList = [];\r\n vm.creditNote = [];\r\n vm.jobTickets = [];\r\n vm.customerAccounts = [];\r\n vm.AccountName = \"\";\r\n vm.AccountType = \"\";\r\n vm.AccountId = \"\";\r\n vm.PONumber = \"\";\r\n vm.customerInvoiceState = [];\r\n vm.customerInvoiceStateList = [];\r\n vm.customerInvoiceSubmittedList = [];\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.invoiceNumberList = \"\";\r\n vm.creditNoteNoList = \"\";\r\n vm.updatePOList = \"\";\r\n vm.customerRejectList = [];\r\n vm.customerMailDetailsList = [];\r\n vm.freelancerRejectInvoiceList = [];\r\n vm.freelancerInvoiceList = [];\r\n vm.freelancerRejectList = [];\r\n vm.CloneRejectList = [];\r\n vm.BlankInvoiceAccountId = \"\";\r\n vm.BlankInvoiceRemark = \"\";\r\n vm.IsLoadSucessfull = false;\r\n vm.TicketDataToRaiseInvoiceList = [];\r\n vm.SendEmailInvoiceList = [];\r\n vm.PaidByCustomerList = [];\r\n vm.SearchByAccountName = '';\r\n vm.SearchByBusinessUnit = '';\r\n vm.SearchByAccountId = '';\r\n vm.SearchByInvoiceNo = '';\r\n vm.SearchByCreditNo = '';\r\n vm.PermanentCity = '';\r\n vm.PermanentState = '';\r\n vm.TicketsState = '';\r\n vm.SearchByStatus = \"All\";\r\n vm.markPaidInvoiceList = [];\r\n vm.approvalRemark = '';\r\n vm.InvoiceId = \"\";\r\n vm.RejectionRemark = '';\r\n vm.searchText = \"\";\r\n vm.IsSearch = false;\r\n vm.searchLabText = \"\";\r\n vm.searchJobTypeText = \"All User Types\";\r\n //vm.DateField=\"CompletionDateObj\";\r\n vm.DateField = \"CreatedOn\";\r\n vm.SortType = \"desc\"\r\n vm.SortField = 'ApprovedAge';\r\n vm.CustomerList = [];\r\n vm.ProjectList = [];\r\n vm.SearchByTicketId = '';\r\n vm.SearchByPONumber = '';\r\n vm.SearchByDescription = '';\r\n vm.SearchByTechnicianName = '';\r\n vm.SearchByTechnicianId = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByCustomerName = '';\r\n vm.SearchByUserType = '';\r\n vm.previousPage = $localStorage.previousPage;\r\n vm.autoScheduleOn = $localStorage.accountConfig.IsAutoSchedulerOn;\r\n var approveModalInstance = {};\r\n var supervisorId = $localStorage.loggedInUserId;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.loggedInAs = $localStorage.loggedinAs;\r\n vm.aproveMessage = 'Please Rate !';\r\n\r\n // page 1 to 10\r\n vm.reportsLength = 0;\r\n vm.reportPageListCount = 10;\r\n vm.invoicePageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50, 100, 200, 500, 2000, 2500, 3000];\r\n vm.pageindexCount = 0;\r\n vm.pageindexCountInvoice = 0;\r\n vm.pageindexCountAdvice = 0;\r\n vm.pageindexCountCredit = 0;\r\n vm.ticketList = [];\r\n vm.ticketListLength = 0;\r\n vm.ticketListLengthInvoice = 0;\r\n vm.ticketListLengthAdvice = 0;\r\n vm.ticketListLengthCredit = 0;\r\n vm.TypeOfList = \"ApprovedTicket\";\r\n\r\n vm.advicePageListCount = 10;\r\n\r\n var templateItemNames = '';\r\n var templateItemValues = '';\r\n var itemNames = \"\";\r\n var itemValues = \"\";\r\n var PageIndex = 1;\r\n var PageIndexAdvice = 1;\r\n\r\n var PageIndexInvoice = 1;\r\n var PageIndexCredit = 1;\r\n var PageSize = 10;\r\n var PageSizeAdvice = 10;\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n\r\n vm.path = \"\";\r\n vm.path = $rootScope.rootScopeMessage;\r\n\r\n\r\n if (vm.path == 'isTicketView') {\r\n var startDate = $localStorage.SDate;\r\n var endDate = $localStorage.EDate;\r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n } else {\r\n var startDate = $localStorage.SDate ? $localStorage.SDate : moment().subtract(1, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = $localStorage.EDate ? $localStorage.EDate : moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n // $scope.dates = { startDate: moment().subtract(1, 'day'), endDate: moment() };\r\n }\r\n\r\n\r\n //ticket paging\r\n // $scope.totalTableUsers = 0;\r\n $scope.totalTicketUsers = 0;\r\n $scope.usersTablePerPage = 10; // this should match however many results your API puts on one page\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n //invoice paging\r\n $scope.totalTableUsersInvoice = 0;\r\n $scope.usersTablePerPageInvoice = vm.invoicePageListCount;\r\n $scope.UserTablepaginationInvoice = {\r\n currentInvoice: 1\r\n };\r\n\r\n vm.changeInvoicePageListCount = function () {\r\n $scope.usersTablePerPageInvoice = vm.invoicePageListCount;\r\n PageSize = $scope.usersTablePerPageInvoice;\r\n $scope.UserTablepageChangedInvoice($scope.UserTablepaginationInvoice.current);\r\n PageIndex = $scope.UserTablepaginationInvoice.current;\r\n $scope.UserTablepageChangedInvoice = function (newPage) {\r\n PageIndex = newPage;\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, newPage, PageSize, vm.SortType);\r\n };\r\n }\r\n\r\n // advice paging\r\n $scope.totalTableUsersAdvice = 0;\r\n $scope.usersTablePerPageAdvise = vm.advicePageListCount;\r\n $scope.UserTablepaginationAdvice = {\r\n currentAdvice: 1\r\n };\r\n vm.changeAdvicePageListCount = function () {\r\n $scope.usersTablePerPageAdvise = vm.advicePageListCount;\r\n PageSizeAdvice = $scope.usersTablePerPageAdvise;\r\n $scope.UserTablepageChangedAdvice($scope.UserTablepaginationAdvice.currentAdvice);\r\n PageIndexAdvice = $scope.UserTablepaginationAdvice.currentAdvice;\r\n $scope.UserTablepageChangedAdvice = function (newPage) {\r\n PageIndexAdvice = newPage;\r\n vm.GetRemittanceAdvices(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndexAdvice, PageSizeAdvice,vm.SortField, vm.SortType);\r\n };\r\n }\r\n\r\nvm.GetRemittanceAdvices = function (startDate, endDate, loggedinUser, token, itemNames, itemValues, DateField , PageIndexAdvice, PageSizeAdvice, SortField, SortType) {\r\n\r\n CustomerInvoiceService.GetRemittanceAdvices(startDate, endDate, loggedinUser, token, itemNames, itemValues, DateField, PageIndexAdvice, PageSizeAdvice, SortField, SortType).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.customerAdviceList = resp.data.invoiceRemittanceAdviceModels;\r\n $scope.totalTableUsersAdvice = resp.data.RecordCount;\r\n if (vm.customerAdviceList.length < vm.advicePageListCount)\r\n vm.ticketListLengthAdvice = $scope.totalTableUsersAdvice;\r\n else\r\n vm.ticketListLengthAdvice = PageIndexAdvice * vm.advicePageListCount;\r\n if (PageIndexAdvice == 1)\r\n vm.pageindexCountAdvice = 1;\r\n else\r\n vm.pageindexCountAdvice = (((PageIndexAdvice - 1) * vm.advicePageListCount) + 1);\r\n\r\n\r\n }\r\n\r\n }, function () {\r\n\r\n });\r\n}\r\n\r\n //credit paging\r\n $scope.totalCreditNotes = 0;\r\n $scope.usersTablePerPageCredit = 10;\r\n $scope.UserTablepaginationCredit = {\r\n currentCredit: 1\r\n };\r\n\r\n\r\n // if(vm.TypeOfList==\"Ticket\")\r\n // { \r\n $scope.UserTablepagination.current = $localStorage.TicketFilterModel ? $localStorage.TicketFilterModel.PageIndex : 1;\r\n\r\n $scope.UserTablepageChanged = function (newPage) {\r\n\r\n PageIndex = newPage;\r\n vm.getAllJobTickets(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, newPage, PageSize, vm.SortField, vm.SortType);\r\n\r\n };\r\n // }\r\n\r\n // else if(vm.TypeOfList==\"Invoice\")\r\n // {\r\n\r\n $scope.UserTablepaginationInvoice.currentInvoice = $localStorage.TicketFilterModelInvoice ? $localStorage.TicketFilterModelInvoice.PageIndexInvoice : 1;\r\n\r\n $scope.UserTablepageChangedInvoice = function (newPage) {\r\n\r\n PageIndexInvoice = newPage;\r\n\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, newPage, PageSize, vm.SortField, vm.SortType);\r\n\r\n };\r\n \r\n\r\n // }\r\n // if(vm.TypeOfList==\"Credit\")\r\n // {\r\n $scope.UserTablepaginationCredit.currentCredit = $localStorage.TicketFilterModelCredit ? $localStorage.TicketFilterModelCredit.PageIndexCredit : 1;\r\n\r\n $scope.UserTablepageChangedCredit = function (newPage) {\r\n\r\n PageIndexCredit = newPage;\r\n vm.getCreditNote(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, newPage, PageSize);\r\n\r\n };\r\n // }\r\n\r\n $scope.UserTablepaginationAdvice.currentAdvice = $localStorage.TicketFilterModelAdvice ? $localStorage.TicketFilterModelAdvice.PageIndexAdvice : 1;\r\n\r\n $scope.UserTablepageChangedAdvice = function (newPage) {\r\n\r\n PageIndexAdvice = newPage;\r\n\r\n vm.GetRemittanceAdvices(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndexAdvice, PageSizeAdvice, vm.SortField, vm.SortType);\r\n\r\n };\r\n\r\n //dashboard count\r\n vm.getFilterInvoicebyDashboard = function (statusValue) {\r\n if (statusValue != 'Breached') {\r\n itemNames = \"Status\";\r\n itemValues = statusValue;\r\n }\r\n\r\n else {\r\n itemNames = \"Status,InvoiceType\";\r\n itemValues = statusValue + \",Customer\";\r\n }\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n\r\n }\r\n vm.ResetFilter = function () {\r\n vm.SearchByStatus = \"All\";\r\n vm.SearchByAccountName = \"\";\r\n vm.SearchByBusinessUnit = \"\";\r\n vm.SearchByAccountId = \"\";\r\n vm.SearchByInvoiceNo = \"\";\r\n vm.SearchByCreditNo = '';\r\n vm.SearchByUserType = \"\";\r\n vm.DateField = \"CreatedOn\";\r\n vm.SearchByTicketId = '';\r\n vm.SearchByDescription = '';\r\n vm.SearchByTechnicianName = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByCustomerName = '';\r\n vm.SearchByTechnicianId = \"\";\r\n vm.PermanentState = \"\";\r\n vm.PermanentCity = \"\";\r\n vm.SearchByPONumber = '';\r\n\r\n itemNames = \"InvoiceType\";\r\n itemValues = \"Customer\";\r\n // vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n // vm.getAllJobTickets(startDate, endDate, loggedinUser, token, itemNames, itemValues,vm.DateField,PageIndex,PageSize);\r\n // vm.getCreditNote(startDate, endDate, loggedinUser, token, itemNames, itemValues,vm.DateField,PageIndex,PageSize);\r\n\r\n }\r\n\r\n vm.filter = function () {\r\n itemNames = \"\";\r\n itemValues = \"\";\r\n var stateKey = \"\";\r\n var cityKey = \"\";\r\n\r\n if (vm.TypeOfList == \"Invoice\") {\r\n itemNames = \"InvoiceType\";\r\n itemValues = \"Customer\";\r\n stateKey = 'JobState';\r\n cityKey = 'JobCity';\r\n vm.SortField = 'InvoiceDueDate';\r\n }\r\n else if (vm.TypeOfList == \"Ticket\") {\r\n itemNames = \"CustomerInvoiceStatus\";\r\n itemValues = \"ReadyToRaiseInvoice\";\r\n stateKey = 'State';\r\n cityKey = 'City';\r\n vm.SortField = 'ReadyToRaiseDateTimeObj';\r\n }\r\n else if (vm.TypeOfList == \"ApprovedTicket\" || vm.TypeOfList == \"Advice\") {\r\n stateKey = 'State';\r\n cityKey = 'City';\r\n vm.SortField = 'ApprovedDateObj';\r\n }\r\n else {\r\n stateKey = 'State';\r\n cityKey = 'City';\r\n }\r\n if (vm.SearchByStatus != 'All') {\r\n itemNames = 'Status';\r\n itemValues = vm.SearchByStatus;\r\n }\r\n if (vm.SearchByAccountName != '') {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',AccountName';\r\n itemValues = itemValues + ',' + vm.SearchByAccountName;\r\n } else {\r\n itemNames = 'AccountName';\r\n itemValues = vm.SearchByAccountName;\r\n }\r\n }\r\n if (vm.SearchByBusinessUnit != '') {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',BusinessUnit';\r\n itemValues = itemValues + ',' + vm.SearchByBusinessUnit;\r\n } else {\r\n itemNames = 'BusinessUnit';\r\n itemValues = vm.SearchByBusinessUnit;\r\n }\r\n }\r\n if (vm.SearchByInvoiceNo != '') {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',InvoiceNo';\r\n itemValues = itemValues + ',' + vm.SearchByInvoiceNo;\r\n } else {\r\n itemNames = 'InvoiceNo';\r\n itemValues = vm.SearchByInvoiceNo;\r\n }\r\n }\r\n //Account iD\r\n if (vm.SearchByAccountId != '') {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',AccountId';\r\n itemValues = itemValues + ',' + vm.SearchByAccountId;\r\n } else {\r\n itemNames = 'AccountId';\r\n itemValues = vm.SearchByAccountId;\r\n }\r\n }\r\n\r\n if (vm.SearchByCreditNo != '') {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',CreditNoteNumber';\r\n itemValues = itemValues + ',' + vm.SearchByCreditNo;\r\n } else {\r\n itemNames = 'CreditNoteNumber';\r\n itemValues = vm.SearchByCreditNo;\r\n }\r\n }\r\n\r\n if (vm.SearchByUserType != '') {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',UserType';\r\n itemValues = itemValues + ',' + vm.SearchByUserType;\r\n } else {\r\n itemNames = 'UserType';\r\n itemValues = vm.SearchByUserType;\r\n }\r\n }\r\n if (vm.SearchByCustomerName != '') {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',CustomerName';\r\n itemValues = itemValues + ',' + vm.SearchByCustomerName;\r\n } else {\r\n itemNames = 'CustomerName';\r\n itemValues = vm.SearchByCustomerName;\r\n }\r\n }\r\n\r\n if (vm.SearchByTicketId.length > 0) {\r\n if (itemNames.length == 0 && itemValues.length == 0) {\r\n itemNames = 'CorelationValue';\r\n itemValues = vm.SearchByTicketId;\r\n } else {\r\n itemNames = itemNames + ',CorelationValue';\r\n itemValues = itemValues + ',' + vm.SearchByTicketId;\r\n }\r\n\r\n }\r\n if (vm.SearchByPONumber.length > 0) {\r\n if (itemNames.length == 0 && itemValues.length == 0) {\r\n itemNames = 'PONumber';\r\n itemValues = vm.SearchByPONumber;\r\n } else {\r\n itemNames = itemNames + ',PONumber';\r\n itemValues = itemValues + ',' + vm.SearchByPONumber;\r\n }\r\n }\r\n if (vm.SearchByDescription.length > 0) {\r\n if (itemNames.length == 0 && itemValues.length == 0) {\r\n itemNames = 'JobDescription';\r\n itemValues = vm.SearchByDescription;\r\n } else {\r\n itemNames = itemNames + ',JobDescription';\r\n itemValues = itemValues + ',' + vm.SearchByDescription;\r\n }\r\n }\r\n\r\n if (vm.SearchByTechnicianName.length > 0) {\r\n if (itemNames.length == 0 && itemValues.length == 0) {\r\n itemNames = 'UserName';\r\n itemValues = vm.SearchByTechnicianName;\r\n } else {\r\n itemNames = itemNames + ',UserName';\r\n itemValues = itemValues + ',' + vm.SearchByTechnicianName;\r\n }\r\n }\r\n if (vm.SearchByTechnicianId.length > 0) {\r\n if (itemNames.length == 0 && itemValues.length == 0) {\r\n itemNames = 'UserId';\r\n itemValues = vm.SearchByTechnicianId;\r\n } else {\r\n itemNames = itemNames + ',UserId';\r\n itemValues = itemValues + ',' + vm.SearchByTechnicianId;\r\n }\r\n }\r\n if (vm.PermanentState.length > 0) {\r\n if (itemNames.length == 0 && itemValues.length == 0) {\r\n itemNames = stateKey;\r\n itemValues = vm.PermanentState;\r\n } else {\r\n itemNames = itemNames + ',' + stateKey;\r\n itemValues = itemValues + ',' + vm.PermanentState;\r\n }\r\n }\r\n\r\n\r\n if (vm.PermanentCity.length > 0) {\r\n if (itemNames.length == 0 && itemValues.length == 0) {\r\n itemNames = cityKey;\r\n itemValues = vm.PermanentCity;\r\n } else {\r\n itemNames = itemNames + ',' + cityKey;\r\n itemValues = itemValues + ',' + vm.PermanentCity;\r\n }\r\n }\r\n\r\n\r\n // itemNames = itemNames + \",InvoiceType\";\r\n // itemValues = itemValues + \",Customer\";\r\n\r\n }\r\n\r\n vm.TabClickEvent = function (listType) {\r\n\r\n vm.TypeOfList = listType;\r\n if (vm.TypeOfList == \"Ticket\" || vm.TypeOfList == \"ApprovedTicket\") {\r\n vm.filter();\r\n vm.getAllJobTickets(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n vm.ResetFilter();\r\n }\r\n else if (vm.TypeOfList == \"Invoice\") {\r\n vm.filter();\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n vm.ResetFilter();\r\n }\r\n else if (vm.TypeOfList == \"Advice\") {\r\n vm.filter();\r\n vm.GetRemittanceAdvices(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndexAdvice, PageSizeAdvice, vm.SortField, vm.SortType);\r\n // vm.ResetFilter();\r\n }\r\n else {\r\n vm.filter();\r\n vm.getCreditNote(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize);\r\n vm.ResetFilter();\r\n }\r\n }\r\n vm.Allapplyfilter = function () {\r\n if (vm.TypeOfList == \"Ticket\" || vm.TypeOfList == \"ApprovedTicket\") {\r\n vm.filter();\r\n vm.getAllJobTickets(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n vm.getDashboardDetails(startDate, endDate, loggedinUser, token);\r\n }\r\n else if (vm.TypeOfList == \"Invoice\") {\r\n vm.filter();\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n vm.getDashboardDetails(startDate, endDate, loggedinUser, token);\r\n }\r\n \r\n else {\r\n vm.filter();\r\n vm.getCreditNote(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize);\r\n vm.getDashboardDetails(startDate, endDate, loggedinUser, token);\r\n }\r\n\r\n }\r\n\r\n $scope.totalTicketUsers = 0;\r\n $scope.reportsPerPage = vm.reportPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n vm.changeUserPageListCount = function () {\r\n $scope.reportsPerPage = vm.reportPageListCount;\r\n PageSize = $scope.reportsPerPage;\r\n $scope.UserTablePageChanged($scope.Userpagination.current);\r\n PageIndex = $scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.getAllJobTickets(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n\r\n };\r\n }\r\n\r\n\r\n vm.ConverttoDecimal = function (value) {\r\n return (parseFloat(value).toFixed(2))\r\n }\r\n\r\n vm.dateRangeChange = function (ev, picker) {\r\n vm.IsSearch = true;\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n };\r\n\r\n vm.outsidedateRangeChangeforPO = function () {\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n }\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n if (vm.TypeOfList == \"Ticket\" || vm.TypeOfList == \"ApprovedTicket\") {\r\n // $scope.UserTablepageChanged = {\r\n // current: 1\r\n // };\r\n vm.filter();\r\n vm.getAllJobTickets(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n }\r\n\r\n else if (vm.TypeOfList == \"Invoice\") {\r\n\r\n // itemNames = \"InvoiceType\";\r\n // itemValues = \"Customer\";\r\n // $scope.UserTablepageChangedInvoice = {\r\n // currentInvoice: 1\r\n // };\r\n vm.filter();\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n }\r\n\r\n else if (vm.TypeOfList == \"Advice\") {\r\n $scope.UserTablepageChangedAdvice = {\r\n current: 1\r\n };\r\n vm.filter();\r\n vm.GetRemittanceAdvices(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndexAdvice, PageSizeAdvice, vm.SortField, vm.SortType);\r\n }\r\n else {\r\n vm.filter();\r\n vm.getCreditNote(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize);\r\n }\r\n\r\n };\r\n\r\n\r\n\r\n\r\n\r\n\r\n vm.getCustomerInvoice = function (startDate, endDate, loggedinUser, token, itemNames, itemValues, DateField, PageIndex, PageSize, SortField, SortType) {\r\n\r\n CustomerInvoiceService.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, DateField, PageIndex, PageSize, SortField, SortType).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.customerInvoiceList = resp.data.InvoiceLightModels;\r\n $scope.totalTableUsersInvoice = resp.data.Count;\r\n // angular.forEach(vm.customerInvoiceList, function (data) \r\n // {\r\n // vm.splitTkt = data.TicketId.split(','); \r\n // }\r\n // );\r\n\r\n if (vm.customerInvoiceList.length < vm.invoicePageListCount)\r\n vm.ticketListLengthInvoice = $scope.totalTableUsersInvoice;\r\n else\r\n vm.ticketListLengthInvoice = PageIndexInvoice * vm.invoicePageListCount;\r\n if (PageIndexInvoice == 1)\r\n vm.pageindexCountInvoice = 1;\r\n else\r\n vm.pageindexCountInvoice = (((PageIndexInvoice - 1) * vm.invoicePageListCount) + 1);\r\n\r\n\r\n }\r\n\r\n }, function () {\r\n\r\n });\r\n }\r\n vm.filter();\r\n // vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues,vm.DateField,PageIndex,PageSize);\r\n\r\n\r\n\r\n\r\n\r\n //getAllJobTickets\r\n vm.getAllJobTickets = function (startDate, endDate, loggedinUser, token, itemNames, itemValues, DateField, PageIndex, PageSize, SortField, SortType) {\r\n\r\n CustomerInvoiceService.getAllJobTickets(startDate, endDate, loggedinUser, token, itemNames, itemValues, DateField, PageIndex, PageSize, SortField, SortType).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.jobTickets = resp.data.ListTicketInvoiceModel;\r\n $scope.totalTicketUsers = resp.data.Count;\r\n vm.selectAllNewJob = false;\r\n vm.showMinusNewJob = false;\r\n\r\n if (vm.jobTickets.length < vm.reportPageListCount)\r\n vm.ticketListLength = $scope.totalTicketUsers;\r\n else\r\n vm.ticketListLength = PageIndex * vm.reportPageListCount;\r\n if (PageIndex == 1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex - 1) * vm.reportPageListCount) + 1);\r\n }\r\n\r\n\r\n\r\n }, function () {\r\n\r\n });\r\n }\r\n vm.filter();\r\n vm.getAllJobTickets(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n\r\n\r\n //getInvoicePreview\r\n\r\n vm.getInvoice = function (InvoiceId) {\r\n data = {\r\n \"ID\": InvoiceId\r\n }\r\n vm.attachment = '';\r\n vm.attachementInit = 0;\r\n vm.pdfTabClass = [];\r\n vm.activeTabClass = 'active-tab';\r\n vm.noactiveTabClass = 'noactive-tab';\r\n CustomerInvoiceService.getInvoice(supervisorId, token, data).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.attachment = resp.data;\r\n vm.BlankInvoiveDoc = resp.data.BlankInvoiveDoc\r\n }\r\n });\r\n }\r\n vm.GetRemittanceDataByInvoiceId = function (isCollapsed,InvoiceId) {\r\n if (vm.InvoiceId == InvoiceId) {\r\n\t\t\t\t$scope.isCollapsed = !isCollapsed;\r\n\t\t\t}\r\n\t\t\t$scope.activeRow = InvoiceId;\r\n\t\t\tvm.InvoiceId = InvoiceId;\r\n if(vm.InvoiceId){\r\n CustomerInvoiceService.GetRemittanceDataByInvoiceId(supervisorId, token, vm.InvoiceId).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.remittanceData = resp.data.invoiceRemittanceAdviceModels;\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n vm.getAttachedInvoice = function (InvoiceId, fileName) {\r\n vm.attachment = '';\r\n CustomerInvoiceService.getCustInvoice(supervisorId, token, InvoiceId).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.attachment = resp.data\r\n if (fileName) {\r\n vm.invoiceXLSX = vm.attachment.substr(vm.attachment.indexOf(',') + 1)\r\n vm.fileType = fileName.substr(fileName.indexOf('.') + 1)\r\n if (vm.fileType == 'xlsx' || vm.fileType == 'xls') {\r\n vm.convertBase64ToExcel(vm.invoiceXLSX, vm.fileType);\r\n }\r\n }\r\n\r\n }\r\n });\r\n }\r\n vm.convertBase64ToExcel = function (data12, fileType) {\r\n var data = data12;\r\n if (fileType === 'xlsx') {\r\n var contentType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\r\n } else if (fileType === 'xls') {\r\n var contentType = 'application/vnd.ms-excel';\r\n }\r\n var blob1 = b64toBlob(data, contentType);\r\n var blobUrl1 = URL.createObjectURL(blob1);\r\n\r\n window.open(blobUrl1);\r\n\r\n }\r\n\r\n function b64toBlob(b64Data, contentType, sliceSize) {\r\n contentType = contentType || '';\r\n sliceSize = sliceSize || 512;\r\n\r\n var byteCharacters = atob(b64Data);\r\n var byteArrays = [];\r\n\r\n for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n var slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n var byteNumbers = new Array(slice.length);\r\n for (var i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n var byteArray = new Uint8Array(byteNumbers);\r\n\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n var blob = new Blob(byteArrays, { type: contentType });\r\n return blob;\r\n };\r\n\r\n //getCreditNotePreview\r\n\r\n vm.getCreditN = function (ID) {\r\n data = {\r\n \"ID\": ID\r\n }\r\n vm.attachementInit = 0;\r\n vm.pdfTabClass = [];\r\n vm.activeTabClass = 'active-tab';\r\n vm.noactiveTabClass = 'noactive-tab';\r\n CustomerInvoiceService.getCreditN(supervisorId, token, data).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.attachment = resp.data;\r\n }\r\n });\r\n }\r\n\r\n //getCreditNote\r\n vm.getCreditNote = function (startDate, endDate, loggedinUser, token, itemNames, itemValues, DateField, PageIndex, PageSize) {\r\n\r\n CustomerInvoiceService.getCreditNote(startDate, endDate, loggedinUser, token, itemNames, itemValues, DateField, PageIndex, PageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.creditNote = resp.data.ListCreditNoteModel;\r\n\r\n $scope.totalCreditNotes = resp.data.Count;\r\n\r\n if (vm.creditNote.length < 10)\r\n vm.ticketListLengthCredit = $scope.totalCreditNotes;\r\n else\r\n vm.ticketListLengthCredit = PageIndexCredit * 10;\r\n if (PageIndexCredit == 1)\r\n vm.pageindexCountCredit = 1;\r\n else\r\n vm.pageindexCountCredit = (((PageIndexCredit - 1) * 10) + 1);\r\n }\r\n\r\n }, function () {\r\n\r\n });\r\n }\r\n vm.filter();\r\n // vm.getCreditNote(startDate, endDate, loggedinUser, token, itemNames, itemValues,vm.DateField,PageIndex,PageSize);\r\n\r\n\r\n //state \r\n vm.getCustomerInvoiceState = function () {\r\n\r\n CustomerInvoiceService.getCustomerInvoiceState(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.customerInvoiceState = resp.data;\r\n\r\n }\r\n\r\n }, function () {\r\n\r\n });\r\n }\r\n vm.getCustomerInvoiceState();\r\n\r\n //Dashboard APi\r\n vm.getDashboardDetails = function () {\r\n Data = {\r\n \"AccountId\": vm.SearchByAccountName,\r\n \"FromDate\": startDate,\r\n \"ToDate\": endDate\r\n }\r\n CustomerInvoiceService.getDashboardDetails(loggedinUser, token, Data).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.dashboardDetails = resp.data;\r\n vm.AllAmount = resp.data.AllAmount;\r\n vm.InvoicePending = resp.data.InvoicePending;\r\n vm.InvoiceSubmitted = resp.data.InvoiceSubmitted;\r\n vm.InvoicePaidByCustomer = resp.data.InvoicePaidByCustomer;\r\n vm.InvoicePaid = resp.data.InvoicePaid;\r\n vm.InvoiceRejected = resp.data.InvoiceRejected;\r\n }\r\n\r\n }, function () {\r\n\r\n });\r\n }\r\n vm.getDashboardDetails(startDate, endDate, loggedinUser, token);\r\n\r\n // vm.GetRemittanceAdvices = function () {\r\n // Data = {\r\n // \"AccountId\": vm.SearchByAccountName,\r\n // \"FromDate\": startDate,\r\n // \"ToDate\": endDate\r\n // }\r\n // CustomerInvoiceService.GetRemittanceAdvices(loggedinUser, token, Data).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // vm.dashboardDetails = resp.data;\r\n \r\n // }\r\n\r\n // }, function () {\r\n\r\n // });\r\n // }\r\n // vm.GetRemittanceAdvices(startDate, endDate, loggedinUser, token);\r\n\r\n //accounts\r\n vm.getCustomerAccounts = function () {\r\n\r\n CustomerInvoiceService.getCustomerAccounts(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.customerAccounts = resp.data;\r\n }\r\n\r\n }, function () {\r\n\r\n });\r\n }\r\n vm.getCustomerAccounts();\r\n\r\n vm.businessUnitList = [\"WhiteGoods\", \"Telecom\", \"Networking\"];\r\n\r\n\r\n // vm.getCustomerInvoice(\"2020-09-16\",\"2020-09-17\",loggedinUser,token,\"InvoiceType\",\"Customer\",vm.DateField,\"1\",\"10\");\r\n\r\n\r\n vm.searchTable = function () {\r\n\r\n var s = \"\";\r\n s += vm.searchText.length > 0 ? \" \" + vm.searchText : \"\";\r\n // s += (vm.searchStatusText.length > 0 && vm.searchStatusText!='Select invoice status') ? \" \" + vm.searchStatusText : \"\";\r\n // s += (vm.searchJobTypeText.length > 0 && vm.searchJobTypeText!='All User Types') ? \" \" + vm.searchJobTypeText : \"\";\r\n vm.dtInstance.DataTable.search(s).draw();\r\n };\r\n vm.searchDataByStatus = function () {\r\n if (vm.SearchByStatus != \"All\") {\r\n itemNames = \"Status\";\r\n itemValues = vm.SearchByStatus\r\n itemNames = itemNames + \",InvoiceType\";\r\n itemValues = itemValues + \",Customer\";\r\n }\r\n else {\r\n itemNames = \"InvoiceType\";\r\n itemValues = \"Customer\";\r\n }\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, 100, vm.SortField, vm.SortType);\r\n\r\n }\r\n\r\n //consolated page view\r\n $localStorage.InvoiceTicketIdList = \"\";\r\n var ticketIdsToGenInvoice = [];\r\n vm.ConsolidatedView = function () {\r\n angular.forEach(vm.jobTickets, function (tt) {\r\n\r\n if (tt.checked1) {\r\n ticketIdsToGenInvoice.push(tt.TicketId);\r\n }\r\n })\r\n $localStorage.InvoiceTicketIdList = ticketIdsToGenInvoice;\r\n\r\n $state.go('index.InvoiceConsolidated', {\r\n // ticketIdsToGenInvoice: ticketIdsToGenInvoice\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n //Itemized page view\r\n // var ticketIdsToGenItemizedInvoice=\"\";\r\n $localStorage.InvoiceItemizedTicketIdList = \"\";\r\n var ticketIdsToGenItemizedInvoice = [];\r\n vm.ItemizedView = function () {\r\n angular.forEach(vm.jobTickets, function (tt) {\r\n\r\n if (tt.checked1) {\r\n ticketIdsToGenItemizedInvoice.push(tt.TicketId);\r\n }\r\n })\r\n $localStorage.InvoiceItemizedTicketIdList = ticketIdsToGenItemizedInvoice;\r\n\r\n $state.go('index.InvoiceItemized', {\r\n // ticketIdsToGenItemizedInvoice: ticketIdsToGenItemizedInvoice\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n // .withDOM('<\"html5buttons\"B>lTfrgitp')\r\n // .withButtons([{ extend: 'colvis' }])\r\n // .withButtons([{extend:'csv'}])\r\n .withOption('stateSave', true)\r\n .withOption('deferRender', true)\r\n .withOption('stateSaveCallback', function (settings, data) {\r\n localStorage.setItem('JoblistTableProp', JSON.stringify(data))\r\n //localStorage.setItem('DataTables_' + settings.sInstance, JSON.stringify(data))\r\n })\r\n .withOption('stateLoadCallback', function (settings) {\r\n\r\n if (vm.IsSearch == true) {\r\n var state = JSON.parse(localStorage.getItem('JoblistTableProp'));\r\n state.start = 0;\r\n } else {\r\n var state = JSON.parse(localStorage.getItem('JoblistTableProp'));\r\n\r\n }\r\n // if (state && vm.VerticalName == 'Telecom') {\r\n // state.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n // if (state.columns && state.columns.length > 0) {\r\n // if (state.columns[10])\r\n // state.columns[10].visible = true;\r\n // if (state.columns[9])\r\n // state.columns[9].visible = true;\r\n // if (state.columns[10])\r\n // state.columns[10].visible = true;\r\n // if (state.columns[12])\r\n // state.columns[12].visible = false;\r\n // if (state.columns[13])\r\n // state.columns[13].visible = true;\r\n // if (state.columns[14])\r\n // state.columns[14].visible = false;\r\n // if (state.columns[15])\r\n // state.columns[15].visible = false;\r\n // if (state.columns[16])\r\n // state.columns[16].visible = false;\r\n // if (state.columns[17])\r\n // state.columns[17].visible = false;\r\n // if (state.columns[18])\r\n // state.columns[18].visible = false;\r\n // if (state.columns[19])\r\n // state.columns[19].visible = false;\r\n // if (state.columns[20])\r\n // state.columns[20].visible = false;\r\n // if (state.columns[21])\r\n // state.columns[21].visible = true;\r\n // if (state.columns[22])\r\n // state.columns[22].visible = false;\r\n // if (state.columns[23])\r\n // state.columns[23].visible = false;\r\n // if (state.columns[24])\r\n // state.columns[24].visible = false;\r\n // if (state.columns[25])\r\n // state.columns[25].visible = false;\r\n // if (state.columns[26])\r\n // state.columns[26].visible = false;\r\n // if (state.columns[27])\r\n // state.columns[27].visible = true; \r\n // if (state.columns[28])\r\n // state.columns[28].visible = true; \r\n // if (state.columns[29])\r\n // state.columns[29].visible = false;\r\n // if (state.columns[30])\r\n // state.columns[30].visible = false;\r\n\r\n // }\r\n // }\r\n // else if(state)\r\n // {\r\n // state.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n // if (state.columns && state.columns.length > 0) {\r\n // if (state.columns[8])\r\n // state.columns[8].visible = false;\r\n // if (state.columns[9])\r\n // state.columns[9].visible = false;\r\n // if (state.columns[11])\r\n // state.columns[11].visible = false;\r\n // if (state.columns[12])\r\n // state.columns[12].visible = false;\r\n // if (state.columns[13])\r\n // state.columns[13].visible = true;\r\n // if (state.columns[14])\r\n // state.columns[14].visible = false;\r\n // if (state.columns[15])\r\n // state.columns[15].visible = false;\r\n // if (state.columns[16])\r\n // state.columns[16].visible = false;\r\n // if (state.columns[17])\r\n // state.columns[17].visible = false;\r\n // if (state.columns[18])\r\n // state.columns[18].visible = true;\r\n // if (state.columns[19])\r\n // state.columns[19].visible = false;\r\n // if (state.columns[20])\r\n // state.columns[20].visible = false;\r\n // if (state.columns[21])\r\n // state.columns[21].visible = true;\r\n // if (state.columns[22])\r\n // state.columns[22].visible = false;\r\n // if (state.columns[23])\r\n // state.columns[23].visible = false;\r\n // if (state.columns[24])\r\n // state.columns[24].visible = false;\r\n // // if (state.columns.length > 24) {\r\n // // state.columns[24].visible = true;\r\n // // }\r\n\r\n // }\r\n\r\n // }\r\n return state;\r\n })\r\n .withPaginationType('full_numbers').withOption('lengthChange', false)\r\n .withOption('paging', false)\r\n .withOption('bInfo', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1),\r\n DTColumnDefBuilder.newColumnDef(2),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(11).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(12).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(13).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(14).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(15).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(16).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(17).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(18).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(19).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(20).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(21).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(22).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(23).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(24).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(25).notSortable()\r\n ];\r\n\r\n // Copied from main controller\r\n\r\n }\r\n\r\n vm.InvoiceStatus = [\"All\", \"Rejected\", \"Submitted\", \"Created\", \"Paid\", \"Partial Paid\"];\r\n\r\n\r\n\r\n\r\n vm.setDefaultValTocal = function (ticket) {\r\n if (ticket.StartTime) {\r\n ticket.StartTimeObj = moment(ticket.StartTime, \"DD-MM-YYYY\").format('LL');\r\n }\r\n }\r\n\r\n vm.showStartTimeCal = function (ticket) {\r\n if (ticket) {\r\n angular.forEach(vm.ticketList, function (d) {\r\n d.calStartTime = false;\r\n });\r\n ticket.calStartTime = true;\r\n }\r\n }\r\n\r\n // vm.getJobAllStatus = function () {\r\n // CustomerInvoiceService.getJobAllStatus(loggedInUserId, token, function (data) {\r\n // vm.statusList = data;\r\n // vm.statusList.unshift({ \"StatusName\": \"Select invoice status\" });\r\n // if (vm.path == 'NewJobDetailsCopy') {\r\n // // vm.searchJobTypeText = $localStorage.AllJobType;\r\n // vm.searchStatusText = $localStorage.TicketFilterModel.JobStatus;\r\n // }\r\n // }, vm.showFailure);\r\n // }\r\n // vm.getJobAllStatus();\r\n // vm.selectRow = function (i) {\t\r\n // \t\r\n // \tvm.showDots = false;\r\n // \tvm.selectAll = false;\t\r\n // \tif(vm.checked)\t\r\n // \t\tvm.showDots = true;\t\r\n // \telse\r\n // \t\tvm.showDots = false;\t\r\n // }\r\n\r\n // vm.AccountNames = [\"Jeeves Consumer Services\", \"On Site Go\", \"AIRTEL\", \"Champion Security System\",\r\n // \"SISL Infotech Pvt Ltd\", \"Moradabad Logistic\", \"abc 123\",\"moneymaking3585\",\"Our Green Empire\",\"SHARP COMPUTER SALES AND MULTI SERVICES\",\"Teleman\",\"STCS\",\"NI ENTERPRISE\",\"Expert Skill Development Pvt Ltd\",\"360 solution\",\"Secure Source\",\"asassa\",\"Tata Nelco\",\"Cultivate Enterprises\",\"EDUNETWORK PRIVATE LIMITED\",\"HCL UPPCL\",\"VSquare Solutions\",\"comviva\",\"ABR Services\",\"JS Electricals\",\"Flipkart Product\",\"Inno Tech\",\"INVISION\",\"Tikona Infinet Private Limited\",\r\n // \"Innotion\",\"Nocompany\",\"Computer Guys\",\"Microlan\",\"InduAnand Infosolutions\",\"MMF\",\"Dish TV\",\"WHOLESALER @ MORADABAD\",\"video conferencing Provider\",\"Zicom\",\"Hughes Communications India Ltd\",\"mayur infotech\",\"SAV INDIA SERVICES\",\"XYZ\",\"Ooredoo Qatar\",\"A P System\",\"Vianks Technology\"];\r\n\r\n // mail invoice\r\n\r\n vm.ReminderReport = function () {\r\n vm.ReminderModal = $uibModal.open({\r\n templateUrl: 'reminder.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeReminderModal = function () {\r\n vm.ReminderModal.close();\r\n }\r\n\r\n vm.ShareReport = function () {\r\n vm.ShareModal = $uibModal.open({\r\n\r\n templateUrl: 'ShareReport.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeShareReportModal = function () {\r\n vm.Emails = \"\";\r\n vm.Subjects = \"\";\r\n vm.ShareModal.close();\r\n }\r\n\r\n vm.SendEmails = function () {\r\n\r\n vm.InvoiceMailDetails = {\r\n \"Request_Code\": 0,\r\n \"TOList\": [\r\n \"rohitgsv9@gmail.com\"\r\n ],\r\n \"CCList\": null,\r\n \"BCCList\": null,\r\n \"Body\": \"test mail \",\r\n \"Subject\": \"hello\",\r\n \"AttachmentList\": [\r\n \"\"\r\n ],\r\n \"InvoiceNo\": [\r\n \"T1140000015417\"\r\n ]\r\n }\r\n CustomerInvoiceService.SendEmails(token, vm.InvoiceMailDetails, loggedinUser).then(function (resp) {\r\n if (resp && resp.data) {\r\n\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Emails has been sent successfully\");\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", \"Unable to send emails due to server issue\");\r\n }\r\n }\r\n })\r\n }\r\n\r\n //send email (report)\r\n // vm.ShareReport = function () { debugger\r\n // vm.shareModel.toList = [];\r\n // vm.shareModel.ccList = [];\r\n // vm.shareModel.bccList = [];\r\n // vm.shareModel.content = \"Hello,\\n\\nYou are requested to view project report on below link \\n\\n\" + $window.location.href + \" \\n\\nThanks\\nMobiforce Team\";\r\n // vm.ShareModal = $uibModal.open({\r\n // templateUrl: 'ShareReport.html',\r\n // backdrop: 'static',\r\n // size: 'md',\r\n // scope: $scope\r\n // });\r\n // }\r\n\r\n // vm.closeShareReportModal = function () {\r\n // vm.ShareModal.close();\r\n // }\r\n\r\n // vm.ReportFilter = function () {\r\n // vm.FilterModal = $uibModal.open({\r\n // templateUrl: 'ReportFilter.html',\r\n // backdrop: 'static',\r\n // size: 'md',\r\n // scope: $scope\r\n // });\r\n // }\r\n\r\n // vm.closeReportFilterModal = function () {\r\n // vm.FilterModal.close();\r\n // }\r\n\r\n // vm.ScheduledReport = function () {\r\n // vm.shareModel.toList = [];\r\n // vm.shareModel.ccList = [];\r\n // vm.shareModel.bccList = [];\r\n // vm.scheduleModel.reportName=\"\";\r\n // vm.scheduleModel.frequency=vm.scheduleModel.once;\r\n // vm.scheduleModel.pull_data.range=vm.scheduleModel.pull_data.day; \r\n // vm.scheduleModel.attachReportInMailBody=true;\r\n // vm.scheduleModel.sampleDateMendtryErr=false;\r\n // vm.scheduleModel.input_of_week=null;\r\n // vm.scheduleModel.sampleDate=new moment();\r\n // vm.scheduleModel.input_for_month.option=vm.scheduleModel.input_for_month.start_of_day; \r\n // vm.shareModel.content = \"Hello,\\n\\nYou are requested to view project report on below link \\n\\n\" + $window.location.href + \" \\n\\nThanks\\nMobiforce Team\";\r\n // vm.ScheduledReportModal = $uibModal.open({\r\n // templateUrl: 'ScheduledReport.html',\r\n // backdrop: 'static',\r\n // windowClass:'schedulerModal',\r\n // scope: $scope\r\n // });\r\n // }\r\n\r\n // vm.closeScheduledReportModal = function () {\r\n // vm.ScheduledReportModal.close();\r\n // }\r\n // // vm.shareModel.getUserSuggestion = function (val) {\r\n // vm.shareModel = function (val) {\r\n\r\n // vm.scheduleModel.toListMendtryErr=false;\r\n\r\n // var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n // if (vm.users.length > 0) {\r\n // return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}].concat(vm.users):vm.users;\r\n // }\r\n // vm.getUsers();\r\n // return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}]:[];\r\n // }\r\n\r\n // vm.getUsers = function () {\r\n // vm.users = [];\r\n // CustomerInvoiceService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n // }]));\r\n // }\r\n\r\n // vm.shareModel.searchAsOr = function (searchText1) {\r\n // return function (entry) {\r\n // var splittedText = searchText1.split(\";\");\r\n // if (splittedText != null && splittedText.length > 0) {\r\n // var searchText = splittedText[splittedText.length - 1].trim();\r\n // if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n // || (entry.LastName !=null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n // || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n // return entry;\r\n // }\r\n // }\r\n // }\r\n\r\n // vm.shareModel.removeSelectedUsers = function (element) {\r\n // var matched = false;\r\n // angular.forEach(vm.shareModel.toList, function (d) {\r\n // if (d.UserId == element.UserId) {\r\n // matched = true;\r\n // return;\r\n // }\r\n // });\r\n // if (!matched) {\r\n // angular.forEach(vm.shareModel.ccList, function (d) {\r\n // if (d.UserId == element.UserId) {\r\n // matched = true;\r\n // return;\r\n // }\r\n // });\r\n // } \r\n // if (!matched) {\r\n // angular.forEach(vm.shareModel.bccList, function (d) {\r\n // if (d.UserId == element.UserId) {\r\n // matched = true;\r\n // return;\r\n // }\r\n // });\r\n // } \r\n // if (!matched) {\r\n // return element;\r\n // }\r\n // }\r\n\r\n // vm.shareModel.cancelledToListUser = function (i) {\r\n // vm.shareModel.toList.splice(i, 1);\r\n // }\r\n\r\n // vm.shareModel.cancelledCCListUser = function (i) {\r\n // vm.shareModel.ccList.splice(i, 1);\r\n // }\r\n\r\n // vm.shareModel.cancelledBCCListUser = function (i) {\r\n // vm.shareModel.bccList.splice(i, 1);\r\n // }\r\n\r\n // vm.shareModel.selectUserNameInToList = function (item) {\r\n // vm.shareModel.toList.push(item);\r\n // vm.shareModel.toUsers = [];\r\n // }\r\n // vm.shareModel.selectUserNameInCCList = function (item) {\r\n // vm.shareModel.ccList.push(item);\r\n // vm.shareModel.ccUsers = [];\r\n // }\r\n // vm.shareModel.selectUserNameInBCCList = function (item) {\r\n // vm.shareModel.bccList.push(item);\r\n // vm.shareModel.bccUsers = [];\r\n // }\r\n\r\n // vm.shareModel.mailReport = function () { debugger\r\n // var toList = [];\r\n // angular.forEach(vm.shareModel.toList, function(user){\r\n // toList.push(user.UserId);\r\n // });\r\n // var ccList = [];\r\n // angular.forEach(vm.shareModel.ccList, function(user){\r\n // ccList.push(user.UserId);\r\n // });\r\n // var bccList = [];\r\n // angular.forEach(vm.shareModel.bccList, function(user){\r\n // bccList.push(user.UserId);\r\n // });\r\n // if(toList.length==0){\r\n // vm.scheduleModel.toListMendtryErr=true;\r\n // return;\r\n // }\r\n // if(vm.shareModel.content.length==0){\r\n // return false;\r\n // }\r\n\r\n // var content = vm.shareModel.content;\r\n // content=content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n // vm.closeShareReportModal();\r\n // CustomerInvoiceService.mailReport(token, toList, ccList, bccList, \"Report: \" + vm.getReportName($stateParams.report_name), \r\n // content, vm.getReportName($stateParams.report_name), loggedinUser, vm.filter_key, vm.filter_name, \r\n // vm.attachReportInMailBody, vm.rollup,\r\n // vm.createCallback(null, [function (data) { \r\n // vm.showSuccess(\"Success\", \"Report has been shared successfully\");\r\n // }]));\r\n // }\r\n\r\n\r\n vm.shareModel = {\r\n selectedUsers: [],\r\n toList: [],\r\n ccList: [],\r\n bccList: [],\r\n content: vm.defaultMailBody,\r\n mailbody :'Hello User,\\n\\nPlease find report ' + vm.SharedReportId + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team'\r\n};\r\nvm.showMailShare = false;\r\nvm.ShareMailReport = function (reportId) {\r\n vm.SharedReportId = reportId;\r\n vm.showMailShare = true;\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.shareModel.mailbody = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportId + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.shareModel.content = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportId + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n}\r\n\r\nvm.shareModel.mailReport = function () {\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function (user) {\r\n toList.push(user.UserId);\r\n });\r\n var ccList = [];\r\n angular.forEach(vm.shareModel.ccList, function (user) {\r\n ccList.push(user.UserId);\r\n });\r\n var bccList = [];\r\n angular.forEach(vm.shareModel.bccList, function (user) {\r\n bccList.push(user.UserId);\r\n });\r\n if (toList.length == 0) {\r\n vm.scheduleModel.toListMendtryErr = true;\r\n return;\r\n }\r\n if (vm.shareModel.content.length == 0) {\r\n return false;\r\n }\r\n\r\n var content = vm.shareModel.content;\r\n content = content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n vm.showMailShare = false;\r\n reportDetailService.mailReport(token, toList, ccList, bccList, \"Report: \" + vm.SharedReportId,\r\n content, vm.SharedReportId, loggedinUser, vm.filter_key, vm.filter_name,\r\n vm.attachReportInMailBody, vm.attachReportInExcel, vm.rollup,\r\n vm.createCallback(null, [function (data) {\r\n vm.showSuccess(\"Success\", \"Report has been shared successfully\");\r\n }]));\r\n}\r\n\r\nvm.ShareReport = function (reportId) {\r\n vm.SharedReportId = reportId;\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.GetSharedUsers(reportId);\r\n vm.showShare = true;\r\n vm.shareModel.mailbody = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportId + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.shareModel.content = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportId + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n // vm.ShareModal = $uibModal.open({\r\n // templateUrl: 'SharewidgetCtrl.html',\r\n // backdrop: 'static',\r\n // size: 'md',\r\n // scope: $scope\r\n // });\r\n }\r\n\r\n vm.closeShareReportModal = function () {\r\n vm.ShareModal.close();\r\n }\r\n \r\nvm.scheduleModel = {\r\n frequency: \"once\",\r\n once: \"once\",\r\n daily: \"daily\",\r\n weekly: \"weekly\",\r\n every_15_days: \"every_15_days\",\r\n monthly: \"monthly\",\r\n cronExpression: \"expression\",\r\n input_for_month: {\r\n option: \"start_of_day\",\r\n start_of_day: \"start_of_day\",\r\n end_of_day: \"end_of_day\",\r\n specific_date: \"specific_date\",\r\n date: 1\r\n },\r\n specific_date_range: [],\r\n start_date: moment(),\r\n end_date: moment().add(1, 'M'),\r\n attachReportInMailBody: true,\r\n attachReportInExcel: true,\r\n scheduleTime: \"\",\r\n scheduleName: \"\",\r\n reportNameAlreadyExists: false,\r\n reportNameMendtryErr: false,\r\n toListMendtryErr: false,\r\n timeMendtryErr: false,\r\n sampleDateMendtryErr: false,\r\n pull_data: {\r\n range: \"last_day\",\r\n day: \"last_day\",\r\n week: \"last_week\",\r\n month: \"last_month\",\r\n quarter: \"last_quarter\",\r\n current_month: \"current_month\",\r\n specific: \"specific\",\r\n specific_day_value: 1,\r\n calculate_range: function () {\r\n var today = new Date();\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n var date = today;\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 1, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 3, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n return 1 + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - vm.scheduleModel.pull_data.specific_day_value);\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n }\r\n }\r\n};\r\n\r\nfor (var i = 1; i < 32; i++) {\r\n vm.scheduleModel.specific_date_range.push({ value: i, label: i });\r\n}\r\n\r\nvm.shareModel.getUserSuggestion = function (val) {\r\n vm.scheduleModel.toListMendtryErr = false;\r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }].concat(vm.users) : vm.users;\r\n }\r\n // vm.getUsersLite();\r\n return re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }] : [];\r\n }\r\n\r\n // vm.getUsers = function () {\r\n // vm.users = [];\r\n // reportDetailService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n // }]));\r\n // }\r\n\r\n vm.getUsersLite = function () {\r\n vm.users = [];\r\n reportDetailService.getUsersLite(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n }]));\r\n }\r\n\r\n vm.getUsersLite();\r\n\r\n vm.shareModel.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName != null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n\r\n vm.shareModel.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.shareModel.toList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.ccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n }\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.bccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n }\r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n\r\n vm.monthNames3 = [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\",\r\n \"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"\r\n];\r\n\r\nvm.shareModel.cancelledToListUser = function (i) {\r\n vm.shareModel.toList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledCCListUser = function (i) {\r\n vm.shareModel.ccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledBCCListUser = function (i) {\r\n vm.shareModel.bccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.selectUserNameInToList = function (item) {\r\n vm.shareModel.toList.push(item);\r\n vm.shareModel.toUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInCCList = function (item) {\r\n vm.shareModel.ccList.push(item);\r\n vm.shareModel.ccUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInBCCList = function (item) {\r\n vm.shareModel.bccList.push(item);\r\n vm.shareModel.bccUsers = [];\r\n }\r\nvm.ScheduleReport = function (reportId, reportName) {\r\n vm.SchedulesList = \"\";\r\n vm.showSchedules = true;\r\n vm.scheduleModel.uniqueId = \"\";\r\n vm.reportname = reportName; \r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.scheduleModel.reportId = reportId;\r\n vm.reportid = reportId;\r\n vm.scheduleModel.frequency = vm.scheduleModel.once;\r\n vm.scheduleModel.pull_data.range = vm.scheduleModel.pull_data.day;\r\n vm.scheduleModel.attachReportInMailBody = true;\r\n vm.scheduleModel.attachReportInExcel = true;\r\n vm.scheduleModel.sampleDateMendtryErr = false;\r\n vm.scheduleModel.input_of_week = null;\r\n vm.scheduleModel.sampleDate = new moment();\r\n vm.scheduleModel.input_for_month.option = vm.scheduleModel.input_for_month.start_of_day;\r\n vm.shareModel.content = \"Please find below the progress report as on $Date\\n\\nYou are requested to view the detailed report at $Link\";\r\n $timeout(function () {\r\n vm.GetAllSchedules(reportId);\r\n vm.refreshData();\r\n }, 2000);\r\n \r\n // vm.ScheduledReportModal = $uibModal.open({\r\n // templateUrl: 'ScheduledwidgetCtrl.html',\r\n // backdrop: 'static',\r\n // windowClass: 'schedulerModal',\r\n // scope: $scope\r\n // });\r\n}\r\n\r\nvm.closeScheduledReportModal = function () {\r\n vm.ScheduledReportModal.close();\r\n}\r\n\r\n// vm.scheduleModel.scheduleReport = function () {\r\n// var startTime = null;\r\n// var endTime = null;\r\n// var cronExpression = null;\r\n// var daily = null;\r\n// var weekly = null;\r\n// var monthly = null;\r\n// if (vm.scheduleModel.reportId == null || vm.scheduleModel.reportId.length == 0) {\r\n// vm.scheduleModel.reportNameMendtryErr = true;\r\n// return;\r\n// }\r\n// if (vm.shareModel.toList.length == 0) {\r\n// vm.scheduleModel.toListMendtryErr = true;\r\n// return;\r\n// }\r\n// if (vm.scheduleModel.frequency == vm.scheduleModel.once) {\r\n// if (vm.scheduleModel.sampleDate) {\r\n// var sample_Data = vm.scheduleModel.sampleDate ? vm.scheduleModel.sampleDate : new moment();\r\n// startTime = {\r\n// \"date\": sample_Data.format(\"DD\"),\r\n// \"hour\": sample_Data.format(\"HH\"),\r\n// \"min\": sample_Data.format(\"mm\"),\r\n// \"month\": sample_Data.format(\"MMM\").toUpperCase(),\r\n// \"sec\": sample_Data.format(\"ss\"),\r\n// \"year\": sample_Data.format(\"YYYY\")\r\n// };\r\n// var sampleEndTime = moment(sample_Data).add(1, 'month');\r\n// endTime = {\r\n// \"date\": sampleEndTime.format(\"DD\"),\r\n// \"hour\": sampleEndTime.format(\"HH\"),\r\n// \"min\": sampleEndTime.format(\"mm\"),\r\n// \"month\": sampleEndTime.format(\"MMM\").toUpperCase(),\r\n// \"sec\": sampleEndTime.format(\"ss\"),\r\n// \"year\": sampleEndTime.format(\"YYYY\")\r\n// };\r\n// } else {\r\n// vm.scheduleModel.sampleDateMendtryErr = true;\r\n// return;\r\n// }\r\n\r\n// } else {\r\n// var startDate = vm.scheduleModel.start_date ? new Date(vm.scheduleModel.start_date) : new Date();\r\n// var endDate = vm.scheduleModel.end_date ? new Date(vm.scheduleModel.end_date) : new Date();\r\n// startTime = {\r\n// \"date\": startDate.getDate(),\r\n// \"hour\": startDate.getHours(),\r\n// \"min\": startDate.getMinutes(),\r\n// \"month\": vm.monthNames3[startDate.getMonth()],\r\n// \"sec\": startDate.getSeconds(),\r\n// \"year\": startDate.getFullYear()\r\n// };\r\n// endTime = {\r\n// \"date\": endDate.getDate(),\r\n// \"hour\": endDate.getHours(),\r\n// \"min\": endDate.getMinutes(),\r\n// \"month\": vm.monthNames3[endDate.getMonth()],\r\n// \"sec\": endDate.getSeconds(),\r\n// \"year\": endDate.getFullYear()\r\n// };\r\n// var hour, min;\r\n// if (vm.scheduleModel.scheduleTime) {\r\n// var splittedtime = vm.scheduleModel.scheduleTime.split(\":\");\r\n// hour = parseInt(splittedtime[0]);\r\n// min = parseInt(splittedtime[1]);\r\n// } else {\r\n// vm.scheduleModel.timeMendtryErr = true;\r\n// return;\r\n// }\r\n// if (vm.scheduleModel.frequency == vm.scheduleModel.daily) {\r\n// daily = {\r\n// \"hour\": hour,\r\n// \"minute\": min\r\n// };\r\n// } else if (vm.scheduleModel.frequency == vm.scheduleModel.weekly) {\r\n// var dayOfWeek = [];\r\n\r\n// if (vm.scheduleModel.input_of_week.sun) {\r\n// dayOfWeek.push(1);\r\n// }\r\n// if (vm.scheduleModel.input_of_week.mon) {\r\n// dayOfWeek.push(2);\r\n// }\r\n// if (vm.scheduleModel.input_of_week.tue) {\r\n// dayOfWeek.push(3);\r\n// }\r\n// if (vm.scheduleModel.input_of_week.wed) {\r\n// dayOfWeek.push(4);\r\n// }\r\n// if (vm.scheduleModel.input_of_week.thu) {\r\n// dayOfWeek.push(5);\r\n// }\r\n// if (vm.scheduleModel.input_of_week.fri) {\r\n// dayOfWeek.push(6);\r\n// }\r\n// if (vm.scheduleModel.input_of_week.sat) {\r\n// dayOfWeek.push(7);\r\n// }\r\n// weekly = {\r\n// \"dayOfWeek\": dayOfWeek,\r\n// \"hour\": hour,\r\n// \"minute\": min\r\n// };\r\n// } else if (vm.scheduleModel.frequency == vm.scheduleModel.monthly) {\r\n// if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.start_of_day) {\r\n// monthly = {\r\n// \"dayOfMonth\": \"1\",\r\n// \"hour\": hour,\r\n// \"minute\": min\r\n// };\r\n// } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.end_of_day) {\r\n// cronExpression = \"0 \" + hour + \" \" + min + \" L * ?\";\r\n// vm.scheduleModel.frequency = vm.scheduleModel.cronExpression\r\n// } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.specific_date) {\r\n// monthly = {\r\n// \"dayOfMonth\": vm.scheduleModel.input_for_month.date,\r\n// \"hour\": hour,\r\n// \"minute\": min\r\n// };\r\n// }\r\n\r\n// }\r\n// }\r\n// // if(vm.scheduleModel.uniqueId){\r\n// // vm.scheduleModel.uniqueId = vm.scheduleModel.uniqueId;\r\n// // }\r\n// // else{\r\n// // vm.scheduleModel.uniqueId = \"\";\r\n// // }\r\n// var data = {\r\n// \"cronExpression\": cronExpression,\r\n// \"cronType\": vm.scheduleModel.frequency,\r\n// \"daily\": daily,\r\n// \"endTime\": endTime,\r\n// \"jobStartTime\": startTime,\r\n// \"method\": \"POST\",\r\n// \"monthly\": monthly,\r\n// \"uniqueId\": vm.scheduleModel.uniqueId,\r\n// \"reportId\": vm.scheduleModel.reportId,\r\n// \"url\": DashboardURL + \"/api/Report/mailexcelreportbyreportid\",\r\n// \"weekly\": weekly,\r\n// \"accountId\": loggedinUser\r\n// };\r\n// var toList = [];\r\n// angular.forEach(vm.shareModel.toList, function (user) {\r\n// toList.push(user.PersonalEmail);\r\n// });\r\n// var ccList = [];\r\n// angular.forEach(vm.shareModel.ccList, function (user) {\r\n// ccList.push(user.PersonalEmail);\r\n// });\r\n// var bccList = [];\r\n// angular.forEach(vm.shareModel.bccList, function (user) {\r\n// bccList.push(user.PersonalEmail);\r\n// });\r\n// if (vm.shareModel.content.length == 0) {\r\n// vm.shareModel.contentMedtryErr = true;\r\n// return;\r\n// }\r\n// // vm.scheduleModel.uniqueId = \"\";\r\n// var content = vm.shareModel.content;\r\n// content = content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n// var schedulerModel = {};\r\n// schedulerModel[\"TOList\"] = toList;\r\n// schedulerModel[\"CCList\"] = ccList;\r\n// schedulerModel[\"BCCList\"] = bccList;\r\n// schedulerModel[\"Body\"] = content;\r\n// schedulerModel[\"Subject\"] = \"Report: \" + vm.reportname;\r\n// schedulerModel[\"ReportId\"] = vm.scheduleModel.reportId;\r\n// schedulerModel[\"ReqUserId\"] = loggedinUser;\r\n// schedulerModel[\"FilterKeys\"] = null;\r\n// schedulerModel[\"FilterValues\"] = null;\r\n// schedulerModel[\"ReportInMailBody\"] = vm.scheduleModel.attachReportInMailBody;\r\n// schedulerModel[\"AttachXLSReportInMail\"] = vm.scheduleModel.attachReportInExcel;\r\n// if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n// schedulerModel[\"RollUps\"] = \"Last Day\";\r\n// } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n// schedulerModel[\"RollUps\"] = \"Last Week\";\r\n// } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n// schedulerModel[\"RollUps\"] = \"Last Month\";\r\n// } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n// schedulerModel[\"RollUps\"] = \"Last Quarter\";\r\n// } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n// schedulerModel[\"RollUps\"] = \"Current Month\";\r\n// } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n// var re = /^[1-9]+[0-9]*$/;\r\n// if (!re.test(vm.scheduleModel.pull_data.specific_day_value)) {\r\n// vm.scheduleModel.pull_data.specificDayValMedtryErr = true;\r\n// return;\r\n// }\r\n// schedulerModel[\"RollUps\"] = vm.scheduleModel.pull_data.specific_day_value;\r\n// }\r\n// data[\"model\"] = JSON.stringify(schedulerModel);\r\n// data[\"entity\"] = \"report\";\r\n\r\n// dashboardReportListService.scheduleReport(loggedinUser, data, token,\r\n// vm.createCallback(null, [function (data) {\r\n// if (data.msg == \"Schedule already exists\") {\r\n// vm.showFailure(\"Failed\", \"Schedule with same name already exists.\");\r\n// } else if (data.msg == \"Unexpected params\") {\r\n// vm.showFailure(\"Failed\", \"Unexpected parameters.\");\r\n// } else if (data.msg == \"Failed\") {\r\n// vm.showFailure(\"Server Error\", \"Failed to create schedule.\");\r\n// } else {\r\n// vm.showSuccess(\"Success\", \"Report scheduled successfully.\");\r\n// // vm.closeScheduledReportModal();\r\n// $timeout(function () {\r\n// vm.GetAllSchedules(vm.scheduleModel.reportId);\r\n// vm.refreshData();\r\n// }, 2000);\r\n// }\r\n// }]));\r\n// }\r\n\r\n $scope.attachSiteAudit = function (files) {\r\n\r\n vm.ToolAuditFileName = \"\";\r\n var file = files.files[0];\r\n vm.ToolAuditFileName = file.name;\r\n\r\n vm.ToolAuditFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX)$/i;\r\n if (!allowedExtensions.exec(file.name)) {\r\n vm.ToolAuditFiles = [];\r\n vm.clear();\r\n alert('Please upload file having extensions .pdf,.doc,.docs,.xls,.xlsx only.');\r\n }\r\n }\r\n $scope.dynamicPopover = {\r\n content: 'Hello, World!',\r\n templateUrl: 'myPopoverTemplate.html',\r\n title: ''\r\n };\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n };\r\n\r\n $scope.myTrigger = \"outsideClick\";\r\n\r\n vm.implementSelectItems = function (itemList, scope) {\r\n scope.showDownloadInvoice = false;\r\n scope.selectAllInvoice = false;\r\n scope.showMinusInvoice = false;\r\n scope.showDots = false;\r\n scope.showPaidByCustomer = false;\r\n scope.showSubmitbtn = false;\r\n scope.selectRow = function (i) {\r\n scope.selectAllInvoice = false;\r\n scope.showMinusInvoice = false;\r\n scope.showDots = false;\r\n scope.showDownloadInvoice = false;\r\n scope.showPaidByCustomer = false;\r\n scope.showSubmitbtn = false;\r\n\r\n\r\n for (var i = 0; i < scope.customerInvoiceList.length; i++) {\r\n var tempTickets = scope.customerInvoiceList[i];\r\n if (tempTickets.checked) {\r\n scope.showDownloadInvoice = true;\r\n scope.showSubmitbtn = false;\r\n\r\n\r\n if (tempTickets.Status == \"Submitted\") {\r\n scope.showPaidByCustomer = true;\r\n // scope.showSubmitbtn=false;\r\n // scope.showRejectbtn=true;\r\n // scope.showPaidbtn=true;\r\n\r\n // scope.showDownloadInvoice = true; \r\n }\r\n if (tempTickets.Status == \"Created\") {\r\n scope.showSubmitbtn = true;\r\n }\r\n // if(tempTickets.Status == \"New\"){\r\n scope.showDots = true;\r\n // scope.showDownloadInvoice = true; \r\n // break;\r\n // }\r\n // else {\r\n // scope.showDownloadInvoice = false;\r\n // }\r\n }\r\n\r\n\r\n }\r\n }\r\n scope.applyAllNewInvoiceSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllInvoice;\r\n scope.showDots = true;\r\n });\r\n }\r\n }\r\n vm.implementSelectItems('customerInvoiceList', this);\r\n\r\n //tickets\r\n vm.implementSelectItemsTickets = function (itemList1, scope1) {\r\n scope1.generateInvoice = false;\r\n scope1.updatePO = false;\r\n scope1.selectAllNewJob = false;\r\n scope1.showMinusNewJob = false;\r\n scope1.selectRow1 = function (i) {\r\n\r\n scope1.generateInvoice = false;\r\n scope1.updatePO = false;\r\n scope1.selectAllNewJob = false;\r\n scope1.showMinusNewJob = false;\r\n\r\n for (var i = 0; i < scope1.jobTickets.length; i++) {\r\n // scope1.showMinusNewJob = true;\r\n var tempTickets = scope1.jobTickets[i];\r\n if (tempTickets.checked1) {\r\n scope1.generateInvoice = true;\r\n scope1.updatePO = true;\r\n }\r\n\r\n\r\n }\r\n }\r\n scope1.applyAllNewJobSelect = function () {\r\n angular.forEach(scope1[itemList1], function (d) {\r\n d.checked1 = scope1.selectAllNewJob;\r\n });\r\n }\r\n }\r\n vm.implementSelectItemsTickets('jobTickets', this);\r\n\r\n //Credit Note\r\n vm.implementSelectItemsCreditnote = function (itemList2, scope2) {\r\n scope2.generateCreditNote = false;\r\n scope2.selectRow2 = function (i) {\r\n\r\n scope2.generateCreditNote = false;\r\n\r\n for (var i = 0; i < scope2.creditNote.length; i++) {\r\n var tempTickets = scope2.creditNote[i];\r\n if (tempTickets.checked2) {\r\n scope2.generateCreditNote = true;\r\n }\r\n\r\n }\r\n }\r\n }\r\n vm.implementSelectItemsCreditnote('creditNote', this);\r\n\r\n\r\n vm.OpenCustomerPaidByCustomerModal = function (invoiceObj2) {\r\n if (invoiceObj2) {\r\n tt = invoiceObj2;\r\n tt.checked = true;\r\n }\r\n\r\n angular.forEach(vm.customerInvoiceList, function (tt) {\r\n\r\n if (tt.checked) {\r\n if (tt.Status == \"Submitted\") {\r\n var paidByCustomerObj = {\r\n \"InvoiceNumber\": tt.InvoiceNumber,\r\n \"TicketId\": tt.TicketId,\r\n \"Description\": tt.Description,\r\n \"CustomerName\": tt.CustomerName,\r\n \"Remark\": tt.Remark,\r\n \"AmountRecieved\": tt.Amount,\r\n \"AmountToShow\": tt.Amount,\r\n }\r\n vm.PaidByCustomerList.push(paidByCustomerObj);\r\n }\r\n else if (tt.Status == \"Partial Paid\") {\r\n var paidByCustomerObj = {\r\n \"InvoiceNumber\": tt.InvoiceNumber,\r\n \"TicketId\": tt.TicketId,\r\n \"Description\": tt.Description,\r\n \"CustomerName\": tt.CustomerName,\r\n \"Remark\": tt.Remark,\r\n \"AmountRecieved\": tt.InvoiceAmountDue,\r\n \"AmountToShow\": tt.InvoiceAmountDue,\r\n }\r\n vm.PaidByCustomerList.push(paidByCustomerObj);\r\n }\r\n }\r\n })\r\n customerPaidByCustomerModalInstance = $uibModal.open({\r\n templateUrl: 'paid_by_customer_model.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.disablePaymentRcvBtn = true;\r\n\r\n $scope.inputChanged = function () {\r\n if (vm.AmountRecieved > (vm.PaidByCustomerList[0].AmountToShow) || vm.AmountRecieved < 0 || !vm.AmountRecieved) {\r\n vm.disablePaymentRcvBtn = true;\r\n }\r\n else {\r\n vm.disablePaymentRcvBtn = false;\r\n }\r\n\r\n };\r\n\r\n vm.disableTDSPaymentRcvBtn = true;\r\n\r\n $scope.TDSChanged = function () {\r\n if (vm.TDSAmount < 0) {\r\n vm.disableTDSPaymentRcvBtn = true;\r\n }\r\n else {\r\n vm.disableTDSPaymentRcvBtn = false;\r\n }\r\n };\r\n\r\n\r\n vm.customerPaidByCustomerCloseModal = function () {\r\n customerPaidByCustomerModalInstance.close();\r\n vm.PaidByCustomerList = [];\r\n vm.AmountRecieved = \"\";\r\n vm.TDSAmount = \"\";\r\n vm.disablePaymentRcvBtn = true;\r\n vm.disableTDSPaymentRcvBtn = true;\r\n }\r\n\r\n vm.PaidByCustomerInvoice = function () {\r\n vm.markPaidInvoiceList = [];\r\n for (var i = 0; i < vm.PaidByCustomerList.length; i++) {\r\n var obj = {\r\n \"InvoiceNumber\": vm.PaidByCustomerList[i].InvoiceNumber,\r\n \"Remarks\": vm.PaidByCustomerList[i].Remark,\r\n \"AmountReceived\": vm.AmountRecieved,\r\n \"TDSAmount\": vm.TDSAmount\r\n }\r\n vm.markPaidInvoiceList.push(obj);\r\n }\r\n\r\n CustomerInvoiceService.PaidByCustomerInvoiceAccounts(loggedinUser, token, vm.markPaidInvoiceList).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 206) {\r\n customerPaidByCustomerModalInstance.close();\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.PaidByCustomerList = [];\r\n vm.AmountRecieved = \"\";\r\n vm.TDSAmount = \"\";\r\n }\r\n if (resp.status == 200) {\r\n customerPaidByCustomerModalInstance.close();\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.PaidByCustomerList = [];\r\n vm.AmountRecieved = \"\";\r\n vm.TDSAmount = \"\";\r\n }\r\n\r\n $timeout(function () {\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n }, 1000)\r\n\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n vm.getPicUrl = function (pic) {\r\n return ImageUrl + '/' + pic;\r\n }\r\n\r\n vm.reloadData = function () {\r\n var resetPaging = true;\r\n vm.dtInstance.reloadData(resetPaging);\r\n }\r\n function getAllStates() {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n\r\n var allStatePromise = getAllStates();\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n\r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n\r\n vm.OpenCustomerInvoiceSubmittedModal = function (invoiceObj) {\r\n if (invoiceObj) {\r\n t = invoiceObj;\r\n t.checked = true;\r\n }\r\n\r\n angular.forEach(vm.customerInvoiceList, function (t) {\r\n\r\n if (t.checked) {\r\n if (t.Status == \"Created\") {\r\n\r\n\r\n var CustomerInvoiceSubmittedObj = {\r\n \"InvoiceNumber\": t.InvoiceNumber,\r\n \"TicketId\": t.TicketId,\r\n \"Description\": t.Description,\r\n \"CustomerName\": t.CustomerName,\r\n \"Remark\": t.Remark\r\n\r\n }\r\n vm.customerInvoiceSubmittedList.push(CustomerInvoiceSubmittedObj);\r\n }\r\n }\r\n })\r\n\r\n customerInvoiceSubmittedModalInstance = $uibModal.open({\r\n templateUrl: 'invoice_submitted_model.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.CloseModal = function () {\r\n customerInvoiceSubmittedModalInstance.close();\r\n vm.customerInvoiceSubmittedList = [];\r\n }\r\n vm.CustomerInvoiceSubmitted = function () {\r\n vm.customerRejectList = [];\r\n for (var i = 0; i < vm.customerInvoiceSubmittedList.length; i++) {\r\n var obj = {\r\n \"InvoiceNumber\": vm.customerInvoiceSubmittedList[i].InvoiceNumber,\r\n \"Remarks\": vm.customerInvoiceSubmittedList[i].Remark\r\n }\r\n vm.customerRejectList.push(obj);\r\n }\r\n\r\n CustomerInvoiceService.RaiseInvoiceToCustomerAccounts(loggedinUser, token, vm.customerRejectList).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 206) {\r\n customerInvoiceSubmittedModalInstance.close();\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.customerInvoiceSubmittedList = [];\r\n }\r\n if (resp.status == 200) {\r\n customerInvoiceSubmittedModalInstance.close();\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.customerInvoiceSubmittedList = [];\r\n }\r\n\r\n $timeout(function () {\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n }, 2000)\r\n\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n\r\n vm.OpenBulkUploadModel = function () {\r\n vm.OpenBulkModal = $uibModal.open({\r\n templateUrl: 'ReadyToRaiseModal.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeBulkUploadModal = function () {\r\n vm.showPassed = false;\r\n vm.showErrors = false;\r\n vm.RemittanceInvoiceList = [];\r\n vm.errorList = [];\r\n vm.OpenBulkModal.close();\r\n }\r\n\r\n\r\n\r\n // blank invoice\r\n vm.BlankInvoice = function () {\r\n vm.ShareModal = $uibModal.open({\r\n templateUrl: 'BlankInvoice.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeBlankInvoiceModal = function () {\r\n vm.showPassed = false;\r\n vm.showErrors = false;\r\n vm.InvoiceList = [];\r\n vm.followFiles = [];\r\n vm.BlankInvoiceRemark = \"\";\r\n vm.errorList = [];\r\n vm.AccountId = \"\";\r\n vm.PONumber = \"\";\r\n vm.disableUploadButton = false;\r\n vm.ShareModal.close();\r\n }\r\n\r\n if (vm.bulkuploadType == 'cms') {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.zip',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n } else {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n }\r\n\r\n\r\n // vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n // ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n }\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n // vm.disableUploadButton = true;\r\n vm.InvoiceList = [];\r\n\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showPassed = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.tickedfile = file;\r\n // vm.MediaUploadReqModel = {\r\n // \"action\": 'Create',\r\n // \"UploadedFileName\": vm.fileName,\r\n // \"FileDescription\": vm.fileDescription\r\n // }\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n // fd.append('MediaUploadReqModel', JSON.stringify(vm.MediaUploadReqModel))\r\n $http.post(ApiURL + '/api/BulkUpload/MediaUpload?reqUserId=' + loggedinUser + '&action=Create', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n if (vm.bulkuploadType == 'Invoice') {\r\n vm.InvoiceList = data.BulkInvoiceModel;\r\n vm.noOfRecords = data.BulkInvoiceModel ? data.BulkInvoiceModel.length : 0;\r\n }\r\n $(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n if (data.Errors.length > 0) {\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.Errors, function (v, k) {\r\n\r\n if (v.ItemErrors.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.ItemErrors, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n });\r\n if (v.Row > 0 && data.BulkInvoiceModel && data.BulkInvoiceModel.length > 0 && data.BulkInvoiceModel.length >= v.Row) {\r\n e1.data = data.BulkInvoiceModel[v.Row - 1];\r\n }\r\n vm.errorList.push(e1);\r\n }\r\n });\r\n\r\n vm.showPassed = true;\r\n // vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.ErrorCode == 103) {\r\n vm.showPassed = true;\r\n // vm.disableUploadButton = true;\r\n vm.successTitle = \"Missing columns in excel file\";\r\n vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.Message && data.Message.length > 0) {\r\n\r\n vm.showPassed = true;\r\n // vm.disableUploadButton = true;\r\n vm.successTitle = \"Validation failed\";\r\n vm.successMsg = data.Message\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\r\n } else {\r\n vm.showPassed = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"File Validated\";\r\n vm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are validated successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found.\";\r\n $timeout(function () {\r\n vm.CloseModal();\r\n }, 2000);\r\n\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n $(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n });\r\n\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.addFiles = function () {\r\n $(\"#dropzone1\").trigger(\"click\");\r\n }\r\n\r\n vm.UpdateBlankInvoice = function () {\r\n vm.campaign_form.submitted = true;\r\n var data = {};\r\n data = {\r\n \"AccountId\": vm.AccountId,\r\n \"BlankInvoiceRemark\": vm.BlankInvoiceRemark,\r\n \"BulkInvoiceModel\": vm.InvoiceList,\r\n \"PONumber\": vm.PONumber\r\n }\r\n if (vm.campaign_form.$valid) {\r\n vm.disableUploadButton = true;\r\n CustomerInvoiceService.GetBlankInvoice(data, vm.followFiles, token, loggedinUser).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.blankInvoiceDetails = resp.data;\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.closeBlankInvoiceModal();\r\n $timeout(function () {\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n }, 500)\r\n }\r\n else {\r\n vm.disableUploadButton = false;\r\n vm.showFailure(\"Failure\", \"Please fill all the details\");\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n vm.CustomerInvoice = function (invoiceNo) {\r\n vm.InvoiceNumber = invoiceNo;\r\n vm.InvoiceModal = $uibModal.open({\r\n templateUrl: 'CustomerInvoice.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeCustInvoiceModal = function () {\r\n vm.InvoiceModal.close();\r\n }\r\n\r\n vm.UpdateCustInvoice = function () {\r\n var data = {};\r\n data = {\r\n \"InvoiceNo\": vm.InvoiceNumber\r\n }\r\n vm.dissblesubmitButton = true;\r\n CustomerInvoiceService.CustomerInvoiceAttachment(data, vm.customerFiles, token, loggedinUser).then(function (resp) {\r\n vm.dissblesubmitButton = false;\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.closeCustInvoiceModal();\r\n $timeout(function () {\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n }, 2000)\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", resp.data);\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n $scope.attachmentForCustInvoice = function (files) {\r\n var file = files.files[0];\r\n vm.customerFiles = files.files;\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.pdf|\\.xls|\\.xlsx|\\.XLS|\\.XLSX)$/i;\r\n if (!allowedExtensions.exec(file.name)) {\r\n vm.customerFiles = [];\r\n vm.clear();\r\n alert('Please upload file having extensions .jpg,.jpeg,.png,.pdf only.');\r\n }\r\n }\r\n\r\n // vm.GetBlankInvoice = function () { \r\n // CustomerInvoiceService.GetBlankInvoice(Data,loggedinUser, token).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // vm.blankInvoiceDetails = resp.data;\r\n // if (resp.status == 200) { \r\n // vm.showSuccess(\"Success\", resp.data);\r\n // vm.closeBlankInvoiceModal();\r\n // }\r\n // else{\r\n // vm.showFailure(\"Failure\", resp.data);\r\n // } \r\n // }\r\n // });\r\n // }\r\n\r\n vm.sortColumn = function (col) {\r\n vm.SortField = col;\r\n if (vm.SortType == 'desc') {\r\n vm.SortType = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n } else {\r\n vm.SortType = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.filter();\r\n vm.getAllJobTickets(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n };\r\n\r\n vm.sortClass = function (col) {\r\n if (vm.SortField == col) {\r\n if (vm.SortType == 'desc') {\r\n return 'fa fa-arrow-down';\r\n } else {\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n $scope.attachmentForBlankInvoice = function (files) {\r\n var file = files.files[0];\r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.pdf)$/i;\r\n if (!allowedExtensions.exec(file.name)) {\r\n vm.followFiles = [];\r\n vm.clear();\r\n alert('Please upload file having extensions .jpg,.jpeg,.png,.pdf only.');\r\n }\r\n }\r\n\r\n vm.OpenFreelancerRejectInvoiceModal = function (invoiceObj1) {\r\n if (invoiceObj1) {\r\n t = invoiceObj1;\r\n t.checked = true;\r\n }\r\n\r\n angular.forEach(vm.customerInvoiceList, function (tt) {\r\n\r\n if (tt.checked) {\r\n if (tt.Status == \"Submitted\") {\r\n\r\n var freelancerRejectInvoiceObj = {\r\n \"InvoiceNumber\": tt.InvoiceNumber,\r\n \"TicketId\": tt.TicketId,\r\n \"Description\": tt.Description,\r\n \"FreelancerPrice\": tt.FreelancerPrice,\r\n \"Remark\": tt.Remark\r\n }\r\n vm.freelancerRejectInvoiceList.push(freelancerRejectInvoiceObj);\r\n }\r\n }\r\n })\r\n freelancerRejectInvoiceModalInstance = $uibModal.open({\r\n templateUrl: 'freelancer_reject_invoice_model.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.freelancerRejectInvoiceCloseModal = function () {\r\n freelancerRejectInvoiceModalInstance.close();\r\n vm.freelancerRejectInvoiceList = [];\r\n }\r\n\r\n\r\n vm.FreelancerRejectedInvoice = function () {\r\n vm.freelancerRejectList = [];\r\n for (var i = 0; i < vm.freelancerRejectInvoiceList.length; i++) {\r\n var obj = {\r\n \"InvoiceNumber\": vm.freelancerRejectInvoiceList[i].InvoiceNumber,\r\n \"Remarks\": vm.freelancerRejectInvoiceList[i].Remark\r\n }\r\n vm.freelancerRejectList.push(obj);\r\n }\r\n\r\n CustomerInvoiceService.RejectInvoiceByCustomer(loggedinUser, token, vm.freelancerRejectList).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 206) {\r\n freelancerRejectInvoiceModalInstance.close();\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.freelancerRejectInvoiceList = [];\r\n }\r\n if (resp.status == 200) {\r\n freelancerRejectInvoiceModalInstance.close();\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n vm.freelancerRejectInvoiceList = [];\r\n }\r\n\r\n $timeout(function () {\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n }, 1000)\r\n\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n\r\n //clone string\r\n\r\n vm.CloneRejectedInvoice = function (customerInvoice) {\r\n\r\n var CloneDuplicateInvoice = [];\r\n CloneDuplicateInvoice.push(customerInvoice.InvoiceNumber);\r\n var cloneIds = \"'\" + CloneDuplicateInvoice + \"'\";\r\n CustomerInvoiceService.CloneRejectedInvoice(loggedinUser, token, cloneIds).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.NewCloneInvoice = resp.data;\r\n if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n }\r\n\r\n $timeout(function () {\r\n vm.getCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n }, 1000)\r\n\r\n }\r\n\r\n }, function () {\r\n vm.CloneRejectedInvoice(cloneIds);\r\n\r\n });\r\n }\r\n\r\n function CheckRegExOnKeyPress(e) {\r\n\r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\,\\\\-\\\\/]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n };\r\n\r\n vm.DownloadInvoice = function () {\r\n\r\n vm.invoiceNumberList = \"\";\r\n angular.forEach(vm.customerInvoiceList, function (cList) {\r\n\r\n if (cList.checked) {\r\n if (vm.invoiceNumberList == \"\")\r\n vm.invoiceNumberList = cList.InvoiceNumber;\r\n else\r\n vm.invoiceNumberList = vm.invoiceNumberList + \",\" + cList.InvoiceNumber;\r\n }\r\n })\r\n if (vm.invoiceNumberList != \"\")\r\n CustomerInvoiceService.DownloadInvoice(vm.invoiceNumberList);\r\n }\r\n\r\n //Download Credit Note\r\n vm.DownloadCredit = function () {\r\n\r\n vm.creditNoteNoList = \"\";\r\n angular.forEach(vm.creditNote, function (cList) {\r\n\r\n if (cList.checked2) {\r\n if (vm.creditNoteNoList == \"\")\r\n vm.creditNoteNoList = cList.CreditNoteNumber;\r\n else\r\n vm.creditNoteNoList = vm.creditNoteNoList + \",\" + cList.CreditNoteNumber;\r\n }\r\n })\r\n if (vm.creditNoteNoList != \"\")\r\n CustomerInvoiceService.DownloadCredit(vm.creditNoteNoList);\r\n }\r\n\r\n vm.ReadyToRaiseInvoiceModelOpen = function () {\r\n\r\n var ticketIdList = [];\r\n vm.IsLoadSucessfull = false;\r\n for (var j = 0; j < vm.jobTickets.length; j++) {\r\n if (vm.jobTickets[j].checked1) {\r\n ticketIdList.push(vm.jobTickets[j].TicketId);\r\n }\r\n }\r\n vm.GetTicketDataToRaiseInvoice(ticketIdList);\r\n readyToRaiseInvoiceModalInstance = $uibModal.open({\r\n templateUrl: 'ready_to_raise_invoice_model.html',\r\n scope: $scope,\r\n windowClass: 'app-modal-window-md-class',\r\n });\r\n\r\n }\r\n vm.ReadyToRaiseInvoiceCloseModal = function () {\r\n vm.TicketPONumber = [];\r\n readyToRaiseInvoiceModalInstance.close();\r\n }\r\n\r\n vm.expandAll = function (expanded) {\r\n $scope.$broadcast('onExpandAll', {\r\n expanded: expanded\r\n });\r\n }\r\n\r\n vm.GetTicketDataToRaiseInvoice = function (ticketIdList) {\r\n vm.TicketDataToRaiseInvoiceList = [];\r\n CustomerInvoiceService.GetTicketDataToRaiseInvoice(loggedinUser, ticketIdList, token).then(function (resp) {\r\n if (resp.status == 200 && resp.data) {\r\n vm.IsLoadSucessfull = true;\r\n vm.TicketDataToRaiseInvoiceList = resp.data;\r\n }\r\n else {\r\n vm.IsLoadSucessfull = true;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n })\r\n }\r\n\r\n // vm.LineItemCategory=\"\";\r\n vm.collectionAmount = false;\r\n vm.disabledCollection = function () {\r\n for (var i = 0; i < vm.TicketDataToRaiseInvoiceList.length; i++) {\r\n for (j = 0; j < vm.TicketDataToRaiseInvoiceList[i].LineItemList.length; j++) {\r\n if (vm.TicketDataToRaiseInvoiceList[i].LineItemList[j].LineItemCategory == 'Collection') {\r\n vm.TicketDataToRaiseInvoiceList[i].LineItemList[j].collectionAmount = true;\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n //calendar PO update\r\n\r\n var d = new Date();\r\n d.setDate(d.getDate() + 1);\r\n // new Date(moment.utc(d).format('l LT'))\r\n // var n = d.toDateString();\r\n // console.log(n);\r\n // document.getElementById(\"demo\").innerHTML = n;\r\n // var year=d.getFullYear();\r\n // var month=d.getMonth();\r\n\r\n // if (month<10){\r\n // month=\"0\" + month;\r\n // }\r\n // var day=d.getDate();\r\n // $scope.date=year + \"-\" + month + \"-\" + day ;\r\n\r\n\r\n vm.TicketPONumber = [];\r\n vm.ChangePONumber = function () {\r\n for (var i = 0; i < vm.TicketDataToRaiseInvoiceList.length; i++) {\r\n var TicketPONumber = vm.TicketPONumber[i];\r\n for (var j = 0; j < vm.TicketDataToRaiseInvoiceList[i].LineItemList.length; j++) {\r\n vm.TicketDataToRaiseInvoiceList[i].LineItemList[j].PONumber = TicketPONumber;\r\n if (vm.TicketDataToRaiseInvoiceList[i].LineItemList[j].LineItemCategory == 'Collection') {\r\n vm.TicketDataToRaiseInvoiceList[i].LineItemList[j].PONumber = ' ';\r\n\r\n }\r\n }\r\n }\r\n }\r\n vm.ReadyToRaiseInvoiceSave = function () {\r\n\r\n var ticketwithLineitemList = vm.TicketDataToRaiseInvoiceList;\r\n readyToRaiseInvoiceModalInstance.close();\r\n CustomerInvoiceService.MarkTicketsReadyToRaiseInvoice(loggedinUser, ticketwithLineitemList, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"PO Number is updated\");\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", resp.data.Message);\r\n }\r\n\r\n vm.TicketDataToRaiseInvoiceList = [];\r\n vm.ReadyToRaiseInvoiceCloseModal();\r\n $timeout(function () {\r\n vm.getAllJobTickets(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n }, 1000);\r\n }\r\n })\r\n }\r\n\r\n vm.ReGenerateIRN = function (invoiceId) {\r\n CustomerInvoiceService.ReGenerateIRN(invoiceId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp.data) {\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n $timeout(function () {\r\n vm.getAllJobTickets(startDate, endDate, loggedinUser, token, itemNames, itemValues, vm.DateField, PageIndex, PageSize, vm.SortField, vm.SortType);\r\n }, 2000);\r\n }\r\n else {\r\n vm.IsLoadSucessfull = true;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n })\r\n }\r\n\r\n \r\n vm.CreateRemmittanceAdvices = function () {\r\n var data = vm.RemittanceInvoiceList;\r\n CustomerInvoiceService.CreateRemmittanceAdvices(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.RemittanceInvoiceDetails = resp.data;\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.closeBulkUploadModal();\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", \"Please fill all the details\");\r\n }\r\n }\r\n });\r\n }\r\n \r\n vm.dzCallbacks1 = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.RemittanceInvoiceList = [];\r\n\r\n $(\"#dropzone .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showPassed = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone\").children();\r\n $(\"#dropzone\").empty();\r\n $(\"#dropzone\").append(dropzoneChildren[0]);\r\n $(\"#dropzone\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.tickedfile = file;\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n $http.post(ApiURL + '/api/BulkUpload/MediaUpload?reqUserId=' + loggedinUser + '&action=Create', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n $(\"#dropzone .dz-error\").removeClass(\"dz-error\");\r\n if (vm.bulkuploadType == 'Invoice') {\r\n vm.RemittanceInvoiceList = data.BulkInvoiceRemittanceAdviceModel;\r\n vm.noOfRecords = data.BulkInvoiceRemittanceAdviceModel ? data.BulkInvoiceRemittanceAdviceModel.length : 0;\r\n }\r\n $(\"#dropzone>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n if (data.Errors.length > 0) {\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.Errors, function (v, k) {\r\n\r\n if (v.ItemErrors.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.ItemErrors, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n });\r\n if (v.Row > 0 && data.BulkInvoiceRemittanceAdviceModel && data.BulkInvoiceRemittanceAdviceModel.length > 0 && data.BulkInvoiceRemittanceAdviceModel.length >= v.Row) {\r\n e1.data = data.BulkInvoiceRemittanceAdviceModel[v.Row - 1];\r\n }\r\n vm.errorList.push(e1);\r\n }\r\n });\r\n\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.ErrorCode == 103) {\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Missing columns in excel file\";\r\n vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.Message && data.Message.length > 0) {\r\n\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Validation failed\";\r\n vm.successMsg = data.Message\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\r\n } else {\r\n vm.showPassed = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"File Validated\";\r\n vm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are validated successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found.\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n $(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n $(\"#dropzone .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n });\r\n\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n\r\n\r\n vm.addFiles1 = function () {\r\n $(\"#dropzone\").trigger(\"click\");\r\n }\r\n\r\n\r\n\r\n\r\n})\r\n .directive('expand', function () {\r\n function link(scope, element, attrs) {\r\n scope.$on('onExpandAll', function (event, args) {\r\n scope.expanded = args.expanded;\r\n });\r\n }\r\n return {\r\n link: link\r\n };\r\n });\r\n\r\n\r\nfunction CheckRegExOnKeyPress(e) {\r\n\r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\,\\\\-\\\\/]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\r\n\r\n\r\n\r\nfunction openPage(pageName, elmnt) {\r\n var i, tabcontent, tablinks;\r\n tabcontent = document.getElementsByClassName(\"tabcontent\");\r\n for (i = 0; i < tabcontent.length; i++) {\r\n tabcontent[i].style.display = \"none\";\r\n }\r\n tablinks = document.getElementsByClassName(\"tablink\");\r\n for (i = 0; i < tablinks.length; i++) {\r\n tablinks[i].style.backgroundColor = \"\";\r\n }\r\n document.getElementById(pageName).style.display = \"block\";\r\n elmnt.style.backgroundColor = color;\r\n}\r\n\r\n// Get the element with id=\"defaultOpen\" and click on it\r\n// document.getElementById(\"defaultOpen\").click();\nangular.module('inspinia').service('FinanceFreelancerInvoiceService', function (ApiURL, FreelancerURL,LocationURL,PublicApiURL, $log, $http,$localStorage,$window) {\r\n\r\nthis.getFinanceFreelancerInvoice = function (startDate, endDate, reqUserId,token, itemNames,itemValues,DateField,PageIndex,PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/Invoice/GetInvoicesAccountsDateRangeWithDynaPaging?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + reqUserId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': reqUserId\r\n }\r\n });\r\n}\r\n\r\n//\r\nthis.ReadyForPayment = function (loggedInUserId,token,userFormData) {\r\n var url = ApiURL + '/api/Invoice/PaidInvoiceAccounts';\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n\r\n// https://product.mymobiforce.com/coreapi/api/Invoice/UpdateInvoiceToPaid\r\nthis.PaidInvoiceAccounts = function (loggedInUserId,token,userFormData) {\r\n var url = ApiURL + '/api/Invoice/UpdateInvoiceToPaid';\r\n return $http.post(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedInUserId\r\n }\r\n });\r\n}\r\n\r\n//account name\r\nthis.getCustomerAccounts = function (loggedInUserId,token) { \r\n var url = ApiURL+ '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n \r\n }\r\n });\r\n}\r\nthis.RejectInvoiceAccounts = function (loggedInUserId,token,userFormData) {\r\n var url = ApiURL + '/api/Invoice/RejectInvoiceAccounts';\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedInUserId\r\n }\r\n });\r\n}\r\nthis.DownloadInvoice = function (invoiceNumberList) {\r\n var url = PublicApiURL + \"/api/Report/DownloadInvoicesNew?InvoiceNumber=\" + invoiceNumberList; \r\n $window.open(url);\r\n}\r\n});\nangular.module('inspinia').controller('FinanceFreelancerInvoiceController', function (FinanceFreelancerInvoiceService,ReferService, toaster, $filter,$rootScope, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder,DTColumnDefBuilder, DTColumnBuilder, $uibModal, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n\tvm = this;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\t\r\n\tvm.FinanceFreelancerInvoiceList ={};\r\n\tvm.FinanceFreelancerInvoice = function () {\t\t\t\r\n\t\tvm.SearchUserinfoForm.submitted = true;\r\n\t\tif (vm.SearchUserinfoForm.$valid) {\r\n\t\tFinanceFreelancerInvoiceService.GetFinanceFreelancerInvoiceByReqUserId(loggedinUser, vm.SearchUser, token).then(function (resp) {\r\n\t\t\tif(resp.status==206){\t\t\t\r\n\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\tvm.FinanceFreelancerInvoiceList =\"\";\t\r\n\t\t\t}\t\t\r\n\t\t\telse\r\n\t\t\t\tvm.FinanceFreelancerInvoiceList = resp.data;\t\t\t\t\t\t\t\t\r\n\t\t});\r\n\t}\r\n\t}\r\n\t\r\n\t\r\n\tvm.CustomDateformat = $localStorage.CustomDateformat;\r\n \r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.CurrencySymbol = $localStorage.accountConfig.CurrencySymbol;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n var token = $localStorage.token;\r\n vm.Remarks = '';\r\n vm.selectedTemplates = '';\r\n vm.PaymentStatus = '';\r\n vm.SettlementStatus = '';\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n vm.editPermission = false;\r\n vm.enableFilters = true;\r\n vm.dtInstance = {};\r\n\tvm.ticketList = [];\r\n\tvm.freelancerInvoiceList=[];\r\n\tvm.freelancerRejectInvoiceList=[];\r\n\tvm.freelancerRejectList=[];\r\n\tvm.markPaidList = [];\r\n\tvm.SearchByAccountName = '';\r\n\tvm.SearchByInvoiceNo='';\r\n\tvm.PermanentCity='';\r\n\tvm.PermanentState='';\r\n\tvm.SearchByStatus='Select invoice status';\r\n vm.markPaidInvoiceList=[];\r\n vm.invoiceNumberList=\"\";\r\n // $scope.$parent.$parent.main.implementSelectItems('ticketList', this);\r\n vm.approvalRemark = '';\r\n vm.RejectionRemark = '';\r\n vm.searchText = \"\";\r\n vm.IsSearch = false;\r\n vm.searchStatusText = \"Select invoice status\";\r\n vm.searchLabText = \"\";\r\n vm.searchJobTypeText = \"All User Types\";\r\n\t//vm.DateField=\"CompletionDateObj\";\r\n\tvm.DateField=\"CreatedOn\";\r\n vm.CustomerList = [];\r\n vm.ProjectList = [];\r\n vm.SearchByTicketId = '';\r\n vm.SearchByDescription = '';\r\n\tvm.SearchByTechnicianName = '';\r\n\tvm.SearchByTechnicianId='';\r\n vm.SearchByPName = '';\r\n\tvm.SearchByCustomerName = '';\r\n\tvm.SearchByUserType='';\r\n vm.previousPage = $localStorage.previousPage;\r\n vm.autoScheduleOn = $localStorage.accountConfig.IsAutoSchedulerOn;\r\n var approveModalInstance = {};\r\n var supervisorId = $localStorage.loggedInUserId;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.loggedInAs = $localStorage.loggedinAs;\r\n vm.aproveMessage = 'Please Rate !';\r\n \r\n var templateItemNames = '';\r\n var templateItemValues = '';\r\n var itemNames = 'InvoiceType';\r\n var itemValues = 'Freelancer';\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n \r\n vm.path = \"\";\r\n vm.path = $rootScope.rootScopeMessage;\r\n \r\n\r\n if (vm.path == 'isTicketView') {\r\n var startDate = $localStorage.SDate;\r\n var endDate = $localStorage.EDate;\r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n } else {\r\n var startDate = $localStorage.SDate?$localStorage.SDate: moment().subtract(1, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = $localStorage.EDate? $localStorage.EDate: moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n // $scope.dates = { startDate: moment().subtract(1, 'day'), endDate: moment() };\r\n }\r\n\r\n $scope.totalTableUsers = 0;\r\n $scope.usersTablePerPage = 10; // this should match however many results your API puts on one page\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n $scope.UserTablepagination.current= $localStorage.TicketFilterModel?$localStorage.TicketFilterModel.PageIndex:1;\r\n\r\n $scope.UserTablepageChanged = function(newPage) {\r\n\t\t \r\n\t PageIndex = newPage;\t \r\n\t vm.getFinanceFreelancerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues,\"CreatedOn\",newPage,PageSize);\r\n\t};\r\n\r\n \r\n vm.InvoiceStatusList = [\"All\",\"New\", \"Rejected\", \"Paid\", \"PaymentInitiated\", \"ReadyforPayment\"];\r\n\r\n vm.ResetFilter = function(){\r\n vm.SearchByStatus = \"Select invoice status\";\r\n\t vm.SearchByAccountName = \"\";\r\n\t vm.SearchByInvoiceNo=\"\";\r\n\t vm.SearchByUserType=\"\";\r\n vm.DateField=\"CreatedOn\";\r\n vm.SearchByTicketId='';\r\n vm.SearchByDescription ='';\r\n vm.SearchByTechnicianName ='';\r\n vm.SearchByPName ='';\r\n\t vm.SearchByCustomerName='';\r\n vm.SearchByTechnicianId=\"\";\r\n itemNames = \"InvoiceType\";\r\n itemValues = \"Freelancer\";\r\n vm.getFinanceFreelancerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues,\"CreatedOn\",PageIndex,PageSize);\r\n\r\n }\r\n vm.ConverttoDecimal = function(value) {\r\n return (parseFloat(value).toFixed(2))\r\n }\r\n vm.Allapplyfilter = function(){ \r\n if (vm.SearchByStatus != 'Select invoice status') {\r\n\titemNames = 'Status';\r\n\titemValues = vm.SearchByStatus;\r\n }\r\n if(vm.SearchByAccountName!=''){\r\n\t if(itemNames.length > 0 && itemValues.length > 0){\r\n\t itemNames = itemNames + ',AccountName';\r\n\t itemValues = itemValues + ',' + vm.SearchByAccountName;\r\n\t }else{\r\n\t itemNames = 'AccountName';\r\n\t itemValues = vm.SearchByAccountName;\r\n\t }\r\n }\r\n if(vm.SearchByInvoiceNo!=''){\r\n\tif(itemNames.length > 0 && itemValues.length > 0){\r\n\t itemNames = itemNames + ',InvoiceNo';\r\n\t itemValues = itemValues + ',' + vm.SearchByInvoiceNo;\r\n\t}else{\r\n\t itemNames = 'InvoiceNo';\r\n\t itemValues = vm.SearchByInvoiceNo;\r\n\t}\r\n }\r\n if(vm.SearchByUserType !=''){\r\n\tif(itemNames.length > 0 && itemValues.length > 0){\r\n\t itemNames = itemNames + ',UserType';\r\n\t itemValues = itemValues + ',' + vm.SearchByUserType;\r\n\t}else{\r\n\t itemNames = 'UserType';\r\n\t itemValues = vm.SearchByUserType;\r\n\t}\r\n }\r\n if(vm.SearchByCustomerName!=''){\r\n\tif(itemNames.length > 0 && itemValues.length > 0){\r\n\t itemNames = itemNames + ',CustomerName';\r\n\t itemValues = itemValues + ',' + vm.SearchByCustomerName;\r\n\t}else{\r\n\t itemNames = 'CustomerName';\r\n\t itemValues = vm.SearchByCustomerName;\r\n\t}\r\n }\r\n\r\n if(vm.SearchByTicketId.length > 0){\r\n\t if(itemNames.length == 0 && itemValues.length == 0){\r\n\t\titemNames = 'TicketId';\r\n\t\titemValues = vm.SearchByTicketId;\r\n\t }else{\r\n\t\titemNames = itemNames + ',TicketId';\r\n\t\titemValues = itemValues + ',' + vm.SearchByTicketId;\r\n\t }\r\n\t\r\n }\r\n if(vm.SearchByDescription.length > 0){\r\n\tif(itemNames.length == 0 && itemValues.length == 0){\r\n\t itemNames = 'JobDescription';\r\n\t itemValues = vm.SearchByDescription;\r\n\t}else{\r\n\t itemNames = itemNames + ',JobDescription';\r\n\t itemValues = itemValues + ',' + vm.SearchByDescription;\r\n\t}\r\n }\r\n if(vm.SearchByTechnicianName.length > 0){\r\n\tif(itemNames.length == 0 && itemValues.length == 0){\r\n\t itemNames = 'UserName';\r\n\t itemValues = vm.SearchByTechnicianName;\r\n\t}else{\r\n\t itemNames = itemNames + ',UserName';\r\n\t itemValues = itemValues + ',' + vm.SearchByTechnicianName;\r\n\t}\r\n }\r\n if(vm.SearchByTechnicianId.length > 0){\r\n\tif(itemNames.length == 0 && itemValues.length == 0){\r\n\t itemNames = 'UserId';\r\n\t itemValues = vm.SearchByTechnicianId;\r\n\t}else{\r\n\t itemNames = itemNames + ',UserId';\r\n\t itemValues = itemValues + ',' + vm.SearchByTechnicianId;\r\n\t}\r\n }\r\n if(vm.PermanentState.length > 0){\r\n\tif(itemNames.length == 0 && itemValues.length == 0){\r\n\t itemNames = 'JobState';\r\n\t itemValues = vm.PermanentState;\r\n\t}else{\r\n\t itemNames = itemNames + ',JobState';\r\n\t itemValues = itemValues + ',' + vm.PermanentState;\r\n\t}\r\n }\r\n if(vm.PermanentCity.length > 0){\r\n\tif(itemNames.length == 0 && itemValues.length == 0){\r\n\t itemNames = 'JobCity';\r\n\t itemValues = vm.PermanentCity;\r\n\t}else{\r\n\t itemNames = itemNames + ',JobCity';\r\n\t itemValues = itemValues + ',' + vm.PermanentCity;\r\n\t}\r\n }\r\n \r\n itemNames = itemNames+\",InvoiceType\";\r\n itemValues =itemValues+\",Freelancer\";\r\n \r\n vm.getFinanceFreelancerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues,\"CreatedOn\",PageIndex,PageSize);\r\n}\r\n\r\n\r\n \r\n\r\n vm.dateRangeChange = function (ev, picker) {\r\n vm.IsSearch = true;\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) { \r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n \r\n\t vm.getFinanceFreelancerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues,\"CreatedOn\",PageIndex,PageSize);\r\n };\r\n\r\nvm.getFinanceFreelancerInvoice = function (startDate, endDate, loggedinUser, token, itemNames, itemValues,DateField,PageIndex,PageSize) {\r\n\t\r\n\tFinanceFreelancerInvoiceService.getFinanceFreelancerInvoice(startDate, endDate, loggedinUser,token, itemNames, itemValues,DateField,PageIndex,PageSize).then(function (resp) {\r\n\t if (resp && resp.data) {\r\n\t\tvm.freelancerInvoiceList = resp.data.InvoiceLightModels;\r\n\t\t $scope.totalTableUsers = resp.data.Count;\t\t\r\n\t }\r\n\r\n\t}, function () {\r\n\t \r\n\t});\r\n }\r\n\r\n // vm.getFinanceFreelancerInvoice(\"2020-09-16\",\"2020-09-17\",loggedinUser,token,\"InvoiceType\",\"Freelancer\",\"CreatedOn\",\"1\",\"10\");\r\n \r\n vm.getFinanceFreelancerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues,\"CreatedOn\",PageIndex,PageSize);\r\n \r\n vm.searchTable = function () {\r\n\t \r\n\tvar s = \"\";\r\n\ts += vm.searchText.length > 0 ? \" \" + vm.searchText : \"\";\r\n // s += (vm.searchStatusText.length > 0 && vm.searchStatusText!='All Status') ? \" \" + vm.searchStatusText : \"\";\r\n // s += (vm.searchJobTypeText.length > 0 && vm.searchJobTypeText!='All User Types') ? \" \" + vm.searchJobTypeText : \"\";\r\n\tvm.dtInstance.DataTable.search(s).draw();\r\n };\r\n vm.searchDataByStatus=function()\r\n { \r\n if(vm.SearchByStatus!=\"All\")\r\n {\r\n itemNames=\"Status\";\r\n itemValues = vm.SearchByStatus\r\n itemNames = itemNames+\",InvoiceType\";\r\n itemValues =itemValues+\",Freelancer\";\r\n }else{\r\n itemNames = \"InvoiceType\";\r\n itemValues = \"Freelancer\";\r\n }\r\n\t vm.getFinanceFreelancerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues,\"CreatedOn\",PageIndex,10);\r\n \r\n }\r\n \r\n\r\n \r\n \r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n // .withDOM('<\"html5buttons\"B>lTfrgitp')\r\n // .withButtons([{ extend: 'colvis' }])\r\n // .withButtons([{extend:'csv'}])\r\n .withOption('stateSave', true)\r\n .withOption('deferRender', true)\r\n .withOption('stateSaveCallback', function (settings, data) {\r\n localStorage.setItem('JoblistTableProp', JSON.stringify(data))\r\n //localStorage.setItem('DataTables_' + settings.sInstance, JSON.stringify(data))\r\n })\r\n .withOption('stateLoadCallback', function (settings) {\r\n\r\n if (vm.IsSearch == true) {\r\n var state = JSON.parse(localStorage.getItem('JoblistTableProp'));\r\n state.start = 0;\r\n } else {\r\n var state = JSON.parse(localStorage.getItem('JoblistTableProp'));\r\n\r\n }\r\n if (state && vm.VerticalName == 'Telecom') {\r\n state.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n if (state.columns && state.columns.length > 0) {\r\n if (state.columns[10])\r\n state.columns[10].visible = true;\r\n if (state.columns[9])\r\n state.columns[9].visible = true;\r\n if (state.columns[10])\r\n state.columns[10].visible = true;\r\n if (state.columns[12])\r\n state.columns[12].visible = false;\r\n if (state.columns[13])\r\n state.columns[13].visible = true;\r\n if (state.columns[14])\r\n state.columns[14].visible = false;\r\n if (state.columns[15])\r\n state.columns[15].visible = false;\r\n if (state.columns[16])\r\n state.columns[16].visible = false;\r\n if (state.columns[17])\r\n state.columns[17].visible = false;\r\n if (state.columns[18])\r\n state.columns[18].visible = false;\r\n if (state.columns[19])\r\n state.columns[19].visible = false;\r\n if (state.columns[20])\r\n state.columns[20].visible = false;\r\n if (state.columns[21])\r\n state.columns[21].visible = true;\r\n if (state.columns[22])\r\n state.columns[22].visible = false;\r\n if (state.columns[23])\r\n state.columns[23].visible = false;\r\n if (state.columns[24])\r\n state.columns[24].visible = false;\r\n if (state.columns[25])\r\n state.columns[25].visible = false;\r\n if (state.columns[26])\r\n state.columns[26].visible = false;\r\n if (state.columns[27])\r\n state.columns[27].visible = true; \r\n if (state.columns[28])\r\n state.columns[28].visible = true; \r\n if (state.columns[29])\r\n state.columns[29].visible = false;\r\n if (state.columns[30])\r\n state.columns[30].visible = false;\r\n\r\n }\r\n }\r\n else if(state)\r\n {\r\n state.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n if (state.columns && state.columns.length > 0) {\r\n if (state.columns[8])\r\n state.columns[8].visible = false;\r\n if (state.columns[9])\r\n state.columns[9].visible = false;\r\n if (state.columns[11])\r\n state.columns[11].visible = false;\r\n if (state.columns[12])\r\n state.columns[12].visible = false;\r\n if (state.columns[13])\r\n state.columns[13].visible = true;\r\n if (state.columns[14])\r\n state.columns[14].visible = false;\r\n if (state.columns[15])\r\n state.columns[15].visible = false;\r\n if (state.columns[16])\r\n state.columns[16].visible = false;\r\n if (state.columns[17])\r\n state.columns[17].visible = false;\r\n if (state.columns[18])\r\n state.columns[18].visible = true;\r\n if (state.columns[19])\r\n state.columns[19].visible = false;\r\n if (state.columns[20])\r\n state.columns[20].visible = false;\r\n if (state.columns[21])\r\n state.columns[21].visible = true;\r\n if (state.columns[22])\r\n state.columns[22].visible = false;\r\n if (state.columns[23])\r\n state.columns[23].visible = false;\r\n if (state.columns[24])\r\n state.columns[24].visible = false;\r\n // if (state.columns.length > 24) {\r\n // state.columns[24].visible = true;\r\n // }\r\n\r\n }\r\n\r\n }\r\n return state;\r\n })\r\n .withPaginationType('full_numbers').withOption('lengthChange', false)\r\n .withOption('paging', false)\r\n .withOption('bInfo',false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1),\r\n DTColumnDefBuilder.newColumnDef(2),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(11).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(12).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(13).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(14).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(15).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(16).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(17).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(18).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(19).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(20).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(21).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(22).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(23).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(24).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(25).notSortable()\r\n ];\r\n\r\n // Copied from main controller\r\n \r\n }\r\n\r\n vm.setDefaultValTocal = function (ticket) {\r\n if (ticket.StartTime) {\r\n ticket.StartTimeObj = moment(ticket.StartTime, \"YYYY-MM-DDThh:mm:ss.SSSZ\");\r\n }\r\n }\r\n\r\n vm.showStartTimeCal = function (ticket) {\r\n if (ticket) {\r\n angular.forEach(vm.ticketList, function (d) {\r\n d.calStartTime = false;\r\n });\r\n ticket.calStartTime = true;\r\n }\r\n }\r\n\r\n // vm.getJobAllStatus = function () {\r\n // JobTicketViewService.getJobAllStatus(loggedInUserId, token, function (data) {\r\n // vm.statusList = data;\r\n // vm.statusList.unshift({ \"StatusName\": \"All Status\" });\r\n // if (vm.path == 'NewJobDetailsCopy') {\r\n // // vm.searchJobTypeText = $localStorage.AllJobType;\r\n // vm.searchStatusText = $localStorage.TicketFilterModel.JobStatus;\r\n // }\r\n // }, vm.showFailure);\r\n // }\r\n // vm.getJobAllStatus();\r\n\t// vm.selectRow = function (i) {\t\r\n\t// \t\r\n\t// \tvm.showMinus = false;\r\n\t// \tvm.selectAll = false;\t\r\n\t// \tif(vm.checked)\ts\r\n\t// \t\tvm.showMinus = true;\ts\r\n\t// \telse\r\n\t// \t\tvm.showMinus = false;\t\r\n\t// }\r\n\r\n //accounts\r\nvm.getCustomerAccounts = function ( ) { \r\n\t\r\n FinanceFreelancerInvoiceService.getCustomerAccounts(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.customerAccounts = resp.data;\r\n }\r\n\r\n }, function () {\r\n \r\n });\r\n }\r\n vm.getCustomerAccounts(); \r\n\r\nvm.implementSelectItems = function (itemList, scope) {\r\n \r\n scope.showMinus = false; \r\n scope.showDownloadInvoice = false; \r\n scope.selectRow = function (i) {\r\n\t\t\t\r\n scope.showMinus = false; \r\n scope.showDownloadInvoice = false; \r\n for(var i=0; i< scope.freelancerInvoiceList.length;i++){\r\n var tempTickets = scope.freelancerInvoiceList[i];\r\n if(tempTickets.checked ) {\r\n scope.showDownloadInvoice = true; \r\n\t\t\t\t if(tempTickets.Status == \"New\"){\r\n scope.showMinus = true; \r\n\t\t\t\t\t break;\r\n\t\t\t\t }\r\n }\r\n }\r\n } \r\n }\r\n vm.implementSelectItems('freelancerInvoiceList', this);\r\n\tvm.OpenPaidInvoiceModal = function () \r\n\t{ \t\r\n\t\t\r\n\tangular.forEach(vm.freelancerInvoiceList, function (t) {\r\n\t\t\r\n\t if (t.checked) {\r\n\t\t if(t.Status==\"New\"){\r\n\t\t var markPaidObj={\r\n\t\t\t\"InvoiceNumber\": t.InvoiceNumber,\r\n\t\t\t\"TicketId\": t.TicketId,\r\n\t\t\t\"Description\": t.Description,\r\n\t\t\t\"FreelancerPrice\": t.FreelancerPrice,\r\n\t\t\t\"Remark\": t.Remark\r\n\r\n\t\t }\r\n\t\tvm.markPaidList.push(markPaidObj);\r\n\t }\r\n\t}\r\n\t})\r\n\t\tpaidInvoiceModalInstance = $uibModal.open({\r\n\t\ttemplateUrl: 'paid_invoice_model.html',\r\n\t\tscope: $scope\r\n\t\t});\r\n\t}\r\n\r\n\tvm.CloseModal = function () {\r\n\t\tpaidInvoiceModalInstance.close();\r\n\t\tvm.markPaidList=[];\r\n\t}\r\n\r\n\tvm.OpenFreelancerRejectInvoiceModal = function () \r\n\t{ \t\r\n\t\t\r\n\tangular.forEach(vm.freelancerInvoiceList, function (tt) {\r\n\t\t\r\n\t if (tt.checked) {\r\n\t\t if(tt.Status==\"New\"){\r\n\t\t var freelancerRejectInvoiceObj={\r\n\t\t\t\"InvoiceNumber\": tt.InvoiceNumber,\r\n\t\t\t\"TicketId\": tt.TicketId,\r\n\t\t\t\"Description\": tt.Description,\r\n\t\t\t\"FreelancerPrice\": tt.FreelancerPrice,\r\n\t\t\t\"Remark\": tt.Remark\r\n\t\t }\r\n\t\tvm.freelancerRejectInvoiceList.push(freelancerRejectInvoiceObj);\r\n\t }\r\n\t}\r\n\t})\r\n\tfreelancerRejectInvoiceModalInstance = $uibModal.open({\r\n\t\ttemplateUrl: 'freelancer_reject_invoice_model.html',\r\n\t\tscope: $scope\r\n\t\t});\r\n\t}\r\n\r\n\tvm.freelancerRejectInvoiceCloseModal = function () {\r\n\t\tfreelancerRejectInvoiceModalInstance.close();\r\n\t\tvm.freelancerRejectInvoiceList=[];\r\n\t}\r\n vm.getPicUrl = function (pic) {\r\n return ImageUrl + '/' + pic;\r\n }\r\n\r\n vm.reloadData = function(){\r\n var resetPaging = true;\r\n vm.dtInstance.reloadData(resetPaging);\r\n\t}\r\n\tfunction getAllStates() {\r\n\t\tvar defered = $q.defer();\r\n\t\tReferService.getAllState(loggedinUser,token).then(function (resp) {\r\n\t\t\tdefered.resolve(resp);\r\n\t\t}, function (error) {\r\n\t\t\tdefered.reject(error);\r\n\t\t});\r\n\t\treturn defered.promise;\r\n\t}\r\n\t\r\n\tvar allStatePromise = getAllStates();\r\n\tallStatePromise.then(function (resp) {\r\n\t\tvm.StateList = resp.data;\r\n\t\t\r\n\t});\r\n\tfunction getallCities(state) {\r\n\t\tReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n\t\t\tvm.CityList = resp.data;\r\n\t\t});\r\n\t}\r\n\tvm.selectedState = function (state) {\r\n\t\tgetallCities(state);\r\n\t}\r\n\r\n\tvm.MarkPaid = function()\r\n\t{\r\n\t\t\t \r\n\t\tfor(var i=0; i 0 && itemValues.length > 0){\r\n\t itemNames = itemNames + ',AccountName';\r\n\t itemValues = itemValues + ',' + vm.SearchByAccountName;\r\n\t }else{\r\n\t itemNames = 'AccountName';\r\n\t itemValues = vm.SearchByAccountName;\r\n\t }\r\n }\r\n if(vm.SearchByInvoiceNo!=''){\r\n\tif(itemNames.length > 0 && itemValues.length > 0){\r\n\t itemNames = itemNames + ',InvoiceNo';\r\n\t itemValues = itemValues + ',' + vm.SearchByInvoiceNo;\r\n\t}else{\r\n\t itemNames = 'InvoiceNo';\r\n\t itemValues = vm.SearchByInvoiceNo;\r\n\t}\r\n }\r\n if(vm.SearchByUserType !=''){\r\n\tif(itemNames.length > 0 && itemValues.length > 0){\r\n\t itemNames = itemNames + ',UserType';\r\n\t itemValues = itemValues + ',' + vm.SearchByUserType;\r\n\t}else{\r\n\t itemNames = 'UserType';\r\n\t itemValues = vm.SearchByUserType;\r\n\t}\r\n }\r\n if(vm.SearchByCustomerName!=''){\r\n\tif(itemNames.length > 0 && itemValues.length > 0){\r\n\t itemNames = itemNames + ',CustomerName';\r\n\t itemValues = itemValues + ',' + vm.SearchByCustomerName;\r\n\t}else{\r\n\t itemNames = 'CustomerName';\r\n\t itemValues = vm.SearchByCustomerName;\r\n\t}\r\n }\r\n\r\n if(vm.SearchByTicketId.length > 0){\r\n\t if(itemNames.length == 0 && itemValues.length == 0){\r\n\t\titemNames = 'TicketId';\r\n\t\titemValues = vm.SearchByTicketId;\r\n\t }else{\r\n\t\titemNames = itemNames + ',TicketId';\r\n\t\titemValues = itemValues + ',' + vm.SearchByTicketId;\r\n\t }\r\n\t\r\n }\r\n if(vm.SearchByDescription.length > 0){\r\n\tif(itemNames.length == 0 && itemValues.length == 0){\r\n\t itemNames = 'JobDescription';\r\n\t itemValues = vm.SearchByDescription;\r\n\t}else{\r\n\t itemNames = itemNames + ',JobDescription';\r\n\t itemValues = itemValues + ',' + vm.SearchByDescription;\r\n\t}\r\n }\r\n if(vm.SearchByTechnicianName.length > 0){\r\n\tif(itemNames.length == 0 && itemValues.length == 0){\r\n\t itemNames = 'UserName';\r\n\t itemValues = vm.SearchByTechnicianName;\r\n\t}else{\r\n\t itemNames = itemNames + ',UserName';\r\n\t itemValues = itemValues + ',' + vm.SearchByTechnicianName;\r\n\t}\r\n }\r\n if(vm.SearchByTechnicianId.length > 0){\r\n\tif(itemNames.length == 0 && itemValues.length == 0){\r\n\t itemNames = 'UserId';\r\n\t itemValues = vm.SearchByTechnicianId;\r\n\t}else{\r\n\t itemNames = itemNames + ',UserId';\r\n\t itemValues = itemValues + ',' + vm.SearchByTechnicianId;\r\n\t}\r\n }\r\n if(vm.PermanentState.length > 0){\r\n\tif(itemNames.length == 0 && itemValues.length == 0){\r\n\t itemNames = 'JobState';\r\n\t itemValues = vm.PermanentState;\r\n\t}else{\r\n\t itemNames = itemNames + ',JobState';\r\n\t itemValues = itemValues + ',' + vm.PermanentState;\r\n\t}\r\n }\r\n if(vm.PermanentCity.length > 0){\r\n\tif(itemNames.length == 0 && itemValues.length == 0){\r\n\t itemNames = 'JobCity';\r\n\t itemValues = vm.PermanentCity;\r\n\t}else{\r\n\t itemNames = itemNames + ',JobCity';\r\n\t itemValues = itemValues + ',' + vm.PermanentCity;\r\n\t}\r\n }\r\n\r\n itemNames = itemNames + \",InvoiceType\";\r\n itemValues = itemValues + \",Customer\";\r\n vm.getFinanceCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues,\"CreatedOn\",PageIndex,PageSize);\r\n \r\n}\r\n\r\n\r\nvm.ConverttoDecimal = function(value) {\r\n return (parseFloat(value).toFixed(2))\r\n}\r\n\r\n vm.dateRangeChange = function (ev, picker) {\r\n vm.IsSearch = true;\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) { \r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n \r\n itemNames = \"InvoiceType\";\r\n itemValues = \"Customer\";\r\n\t vm.getFinanceCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues,\"CreatedOn\",PageIndex,PageSize);\r\n };\r\n\r\nvm.getFinanceCustomerInvoice = function (startDate, endDate, loggedinUser, token, itemNames, itemValues,DateField,PageIndex,PageSize) {\r\n\t\r\n\tFinanceCustomerInvoiceService.getFinanceCustomerInvoice(startDate, endDate, loggedinUser,token, itemNames, itemValues,DateField,PageIndex,PageSize).then(function (resp) {\r\n\t if (resp && resp.data) {\r\n\t\tvm.customerInvoiceList = resp.data.InvoiceLightModels;\r\n\t\t $scope.totalTableUsers = resp.data.Count;\t\t\r\n\t }\r\n\r\n\t}, function () {\r\n\t \r\n\t});\r\n }\r\n\r\n // vm.getFinanceCustomerInvoice(\"2020-09-16\",\"2020-09-17\",loggedinUser,token,\"InvoiceType\",\"Customer\",\"CreatedOn\",\"1\",\"10\");\r\n \r\n vm.getFinanceCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues,\"CreatedOn\",PageIndex,PageSize);\r\n \r\n vm.searchTable = function () {\r\n\t \r\n\tvar s = \"\";\r\n\ts += vm.searchText.length > 0 ? \" \" + vm.searchText : \"\";\r\n // s += (vm.searchStatusText.length > 0 && vm.searchStatusText!='Select invoice status') ? \" \" + vm.searchStatusText : \"\";\r\n // s += (vm.searchJobTypeText.length > 0 && vm.searchJobTypeText!='All User Types') ? \" \" + vm.searchJobTypeText : \"\";\r\n\tvm.dtInstance.DataTable.search(s).draw();\r\n };\r\n vm.searchDataByStatus=function()\r\n {\r\n if(vm.SearchByStatus!=\"All\")\r\n {\r\n itemNames=\"Status\";\r\n itemValues = vm.SearchByStatus\r\n itemNames = itemNames+\",InvoiceType\";\r\n itemValues =itemValues+\",Customer\";\r\n }\r\n else\r\n {\r\n itemNames = \"InvoiceType\";\r\n itemValues =\"Customer\";\r\n }\r\n\t vm.getFinanceCustomerInvoice(startDate, endDate, loggedinUser, token, itemNames, itemValues,\"CreatedOn\",PageIndex,100);\r\n\r\n }\r\n \r\n\r\n \r\n \r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n // .withDOM('<\"html5buttons\"B>lTfrgitp')\r\n // .withButtons([{ extend: 'colvis' }])\r\n // .withButtons([{extend:'csv'}])\r\n .withOption('stateSave', true)\r\n .withOption('deferRender', true)\r\n .withOption('stateSaveCallback', function (settings, data) {\r\n localStorage.setItem('JoblistTableProp', JSON.stringify(data))\r\n //localStorage.setItem('DataTables_' + settings.sInstance, JSON.stringify(data))\r\n })\r\n .withOption('stateLoadCallback', function (settings) {\r\n\r\n if (vm.IsSearch == true) {\r\n var state = JSON.parse(localStorage.getItem('JoblistTableProp'));\r\n state.start = 0;\r\n } else {\r\n var state = JSON.parse(localStorage.getItem('JoblistTableProp'));\r\n\r\n }\r\n if (state && vm.VerticalName == 'Telecom') {\r\n state.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n if (state.columns && state.columns.length > 0) {\r\n if (state.columns[10])\r\n state.columns[10].visible = true;\r\n if (state.columns[9])\r\n state.columns[9].visible = true;\r\n if (state.columns[10])\r\n state.columns[10].visible = true;\r\n if (state.columns[12])\r\n state.columns[12].visible = false;\r\n if (state.columns[13])\r\n state.columns[13].visible = true;\r\n if (state.columns[14])\r\n state.columns[14].visible = false;\r\n if (state.columns[15])\r\n state.columns[15].visible = false;\r\n if (state.columns[16])\r\n state.columns[16].visible = false;\r\n if (state.columns[17])\r\n state.columns[17].visible = false;\r\n if (state.columns[18])\r\n state.columns[18].visible = false;\r\n if (state.columns[19])\r\n state.columns[19].visible = false;\r\n if (state.columns[20])\r\n state.columns[20].visible = false;\r\n if (state.columns[21])\r\n state.columns[21].visible = true;\r\n if (state.columns[22])\r\n state.columns[22].visible = false;\r\n if (state.columns[23])\r\n state.columns[23].visible = false;\r\n if (state.columns[24])\r\n state.columns[24].visible = false;\r\n if (state.columns[25])\r\n state.columns[25].visible = false;\r\n if (state.columns[26])\r\n state.columns[26].visible = false;\r\n if (state.columns[27])\r\n state.columns[27].visible = true; \r\n if (state.columns[28])\r\n state.columns[28].visible = true; \r\n if (state.columns[29])\r\n state.columns[29].visible = false;\r\n if (state.columns[30])\r\n state.columns[30].visible = false;\r\n\r\n }\r\n }\r\n else if(state)\r\n {\r\n state.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n if (state.columns && state.columns.length > 0) {\r\n if (state.columns[8])\r\n state.columns[8].visible = false;\r\n if (state.columns[9])\r\n state.columns[9].visible = false;\r\n if (state.columns[11])\r\n state.columns[11].visible = false;\r\n if (state.columns[12])\r\n state.columns[12].visible = false;\r\n if (state.columns[13])\r\n state.columns[13].visible = true;\r\n if (state.columns[14])\r\n state.columns[14].visible = false;\r\n if (state.columns[15])\r\n state.columns[15].visible = false;\r\n if (state.columns[16])\r\n state.columns[16].visible = false;\r\n if (state.columns[17])\r\n state.columns[17].visible = false;\r\n if (state.columns[18])\r\n state.columns[18].visible = true;\r\n if (state.columns[19])\r\n state.columns[19].visible = false;\r\n if (state.columns[20])\r\n state.columns[20].visible = false;\r\n if (state.columns[21])\r\n state.columns[21].visible = true;\r\n if (state.columns[22])\r\n state.columns[22].visible = false;\r\n if (state.columns[23])\r\n state.columns[23].visible = false;\r\n if (state.columns[24])\r\n state.columns[24].visible = false;\r\n // if (state.columns.length > 24) {\r\n // state.columns[24].visible = true;\r\n // }\r\n\r\n }\r\n\r\n }\r\n return state;\r\n })\r\n .withPaginationType('full_numbers').withOption('lengthChange', false)\r\n .withOption('paging', false)\r\n .withOption('bInfo',false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1),\r\n DTColumnDefBuilder.newColumnDef(2),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(11).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(12).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(13).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(14).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(15).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(16).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(17).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(18).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(19).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(20).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(21).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(22).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(23).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(24).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(25).notSortable()\r\n ];\r\n\r\n // Copied from main controller\r\n \r\n }\r\n\r\n vm.setDefaultValTocal = function (ticket) {\r\n if (ticket.StartTime) {\r\n ticket.StartTimeObj = moment(ticket.StartTime, \"YYYY-MM-DDThh:mm:ss.SSSZ\");\r\n }\r\n }\r\n\r\n vm.showStartTimeCal = function (ticket) {\r\n if (ticket) {\r\n angular.forEach(vm.ticketList, function (d) {\r\n d.calStartTime = false;\r\n });\r\n ticket.calStartTime = true;\r\n }\r\n }\r\n\r\n // vm.getJobAllStatus = function () {\r\n // JobTicketViewService.getJobAllStatus(loggedInUserId, token, function (data) {\r\n // vm.statusList = data;\r\n // vm.statusList.unshift({ \"StatusName\": \"Select invoice status\" });\r\n // if (vm.path == 'NewJobDetailsCopy') {\r\n // // vm.searchJobTypeText = $localStorage.AllJobType;\r\n // vm.searchStatusText = $localStorage.TicketFilterModel.JobStatus;\r\n // }\r\n // }, vm.showFailure);\r\n // }\r\n // vm.getJobAllStatus();\r\n\t// vm.selectRow = function (i) {\t\r\n\t// \t\r\n\t// \tvm.showMinus = false;\r\n\t// \tvm.selectAll = false;\t\r\n\t// \tif(vm.checked)\t\r\n\t// \t\tvm.showMinus = true;\t\r\n\t// \telse\r\n\t// \t\tvm.showMinus = false;\t\r\n // }\r\n vm.InvoiceStatus = [\"All\", \"New\", \"Invoice Submitted\", \"Paid by Customer\"];\r\n\r\nvm.implementSelectItems = function (itemList, scope) {\r\n scope.showDownloadInvoice = false; \r\n scope.showMinus = false; \r\n scope.showPaidByCustomer=false; \r\n scope.selectRow = function (i) {\r\n\t\t\t\r\n scope.showMinus = false; \r\n scope.showDownloadInvoice = false; \r\n scope.showPaidByCustomer=false; \r\n for(var i=0; i< scope.customerInvoiceList.length;i++){\r\n var tempTickets = scope.customerInvoiceList[i];\r\n if(tempTickets.checked ) { \r\n scope.showDownloadInvoice = true; \r\n if(tempTickets.Status == \"Invoice Submitted\")\r\n {\r\n scope.showPaidByCustomer=true; \r\n // scope.showDownloadInvoice = true; \r\n }\r\n\t\t\t\t if(tempTickets.Status == \"New\"){\r\n scope.showMinus = true; \r\n // scope.showDownloadInvoice = true; \r\n //break;\r\n }\r\n }\r\n \r\n }\r\n } \r\n }\r\n vm.implementSelectItems('customerInvoiceList', this);\r\n\r\n\r\n\tvm.OpenCustomerPaidByCustomerModal = function () \r\n\t{ \t\r\n\t\t\r\n\tangular.forEach(vm.customerInvoiceList, function (tt) {\r\n\t\t\r\n\t if (tt.checked) {\r\n\t\t if(tt.Status==\"Invoice Submitted\"){\r\n\t\t var paidByCustomerObj={\r\n\t\t\t\"InvoiceNumber\": tt.InvoiceNumber,\r\n\t\t\t\"TicketId\": tt.TicketId,\r\n\t\t\t\"Description\": tt.Description,\r\n\t\t\t\"CustomerName\": tt.CustomerName,\r\n\t\t\t\"Remark\": tt.Remark\r\n\t\t }\r\n\t\tvm.PaidByCustomerList.push(paidByCustomerObj);\r\n\t }\r\n\t}\r\n\t})\r\n\tcustomerPaidByCustomerModalInstance = $uibModal.open({\r\n\t\ttemplateUrl: 'paid_by_customer_model.html',\r\n\t\tscope: $scope\r\n\t\t});\r\n\t}\r\n\r\n\tvm.customerPaidByCustomerCloseModal = function () {\r\n\t\tcustomerPaidByCustomerModalInstance.close();\r\n\t\tvm.PaidByCustomerList=[];\t\r\n }\r\n \r\n \r\n\tvm.PaidByCustomerInvoice = function()\r\n\t{\r\n\t\t\t \r\n\t\tfor(var i=0; i 0;\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetAllOrderInvoice();\r\n\t\t\t\t\t\tif (hasDifferQuantity) {\r\n\t\t\t\t\t\t\tvm.openDifferOrderModal(vm.invoiceData.strOrderId);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t}, function (error) {\r\n\t\t\t\tvm.showFailure(\"Failed\", error.message || \"An error occurred\");\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.PDFView = function () {\r\n\t\t\tvm.pdfimage = \"\";\r\n\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\ttaxInvoiceModel = $uibModal.open({\r\n\t\t\t templateUrl: 'PDFView.html',\r\n\t\t\t size: 'lg',\r\n\t\t\t scope: $scope\r\n\t\t\t});\t \r\n\t\t }\r\n\t\t vm.PDFUserModal = function () {\r\n\t\t\ttaxInvoiceModel.close();\r\n\t\t }\r\n\r\n\t\tvm.viewInvoicePdf = function (InvoiceId) {\r\n\t\t\tvm.PDFView();\r\n\t\t\tInvoiceAcceptanceService.GeneratePdfTaxInvoice(loggedinUser, token, InvoiceId).then(function (resp) {\r\n\t\t\t if (resp.status == 200) {\r\n\t\t\t\tvm.InvoiceData = resp.data;\r\n\t\t\t\tvar arrrayBuffer = base64ToArrayBuffer(vm.InvoiceData);\r\n\t\t\t\tvar blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n\t\t\t\tvm.pdfimage = URL.createObjectURL(blob);\r\n\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t }\r\n\t\t\t});\r\n\t \r\n\t\t }\r\n\r\n\t\t function base64ToArrayBuffer(base64) \r\n\t\t {\r\n\t\t\t var ret = base64.replace('data:application/pdf;base64,','');\r\n\t\t\t\t var binaryString = atob(ret);\r\n\t\t\t\t var binaryLen = binaryString.length;\r\n\t\t\t\t var bytes = new Uint8Array(binaryLen);\r\n\t\t\t\t for (var i = 0; i < binaryLen; i++) {\r\n\t\t\t\t var ascii = binaryString.charCodeAt(i);\r\n\t\t\t\t bytes[i] = ascii;\r\n\t\t\t\t }\r\n\t\t\t\t return bytes;\r\n\t\t }\r\n\r\n\t\t vm.exportToCSV = function() {\r\n\t\t\tvar csvContent = \"data:text/csv;charset=utf-8,\";\r\n\t\t\t\tvar headers = [\r\n\t\t\t\t\"Order ID\",\r\n\t\t\t\t\"Invoice No\",\r\n\t\t\t\t\"Invoice Date\",\r\n\t\t\t\t\"Invoice Item QTY\",\r\n\t\t\t\t// \"Received Item QTY\",\r\n\t\t\t\t\"Invoice Total Value\",\r\n\t\t\t\t// \"Received Total Value\",\r\n\t\t\t\t\"Status\"\r\n\t\t\t];\r\n\t\t\tcsvContent += headers.join(\",\") + \"\\n\";\r\n\t\t\t\tvm.AllOrderInvoices.forEach(function(invoice) {\r\n\t\t\t\tvar row = [\r\n\t\t\t\t\tinvoice.strOrderId,\r\n\t\t\t\t\tinvoice.strInvoiceId,\r\n\t\t\t\t\tinvoice.dateInvoiceDate !== '0001-01-01T00:00:00' ? $filter('date')(invoice.dateInvoiceDate, 'dd/MMM/yy h:mm:ss a') : '',\r\n\t\t\t\t\tinvoice.nInvoiceItemCount,\r\n\t\t\t\t\t// invoice.nReceivedItemCount,\r\n\t\t\t\t\tinvoice.dInvoiceTotalAmount,\r\n\t\t\t\t\t// invoice.dReceivedTotalAmount,\r\n\t\t\t\t\tinvoice.strInvoiceStatus\r\n\t\t\t\t];\r\n\t\t\t\tcsvContent += row.join(\",\") + \"\\n\";\r\n\t\t\t});\r\n\t\r\n\t\t\tvar encodedUri = encodeURI(csvContent);\r\n\t\t\tvar link = document.createElement(\"a\");\r\n\t\t\tlink.setAttribute(\"href\", encodedUri);\r\n\t\t\tlink.setAttribute(\"download\", \"invoice_data.csv\");\r\n\t\t\tdocument.body.appendChild(link);\r\n\t\t\tlink.click();\r\n\t\t};\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('invitedUserService', function(FreelancerURL, ApiURL, $http){\r\n\r\n this.GetAllInvitedUser = function(loggedinUser, token){\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/' + loggedinUser + '/GetAllInvitedUser'\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json', 'Token':token, 'UserId': loggedinUser}\r\n })\r\n }\r\n\r\n // var url = 'https://perf.mymobiforce.com/freelancerapi/api/FreeLancerRegistration/F00000000000/GetAllFilterInvitedUser?fromDate=2019-01-01&toDate=2019-12-23&itemNames=&itemValues=&searchItemNames=&searchItemValues=&PageIndex=1&PageSize=10';\r\n this.GetAllInvitedUserByFilter = function(loggedinUser, token, FromDate, ToDate, filterItemName, filterItemValue, SearchItemName, SearchItemValue, PageIndex, PageSize){\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/' + loggedinUser + '/GetAllFilterInvitedUser?fromDate=' +FromDate+ '&toDate=' +ToDate+ '&itemNames='+filterItemName+'&itemValues='+filterItemValue+'&searchItemNames='+SearchItemName+'&searchItemValues='+SearchItemValue+'&PageIndex='+PageIndex+'&PageSize='+PageSize\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json', 'Token':token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/Sms/SendSms\r\n this.BroadcastMessage = function(token, data, loggedinUser){ \r\n var url = ApiURL + '/api/Sms/SendSms' \r\n return $http.post(url,data,{\r\n headers:{'Content-Type' : 'application/json', 'Token':token, 'UserId': loggedinUser}\r\n })\r\n }\r\n\r\n this.SendEmails = function(token, data, loggedinUser){ \r\n var url = ApiURL +'/api/Mail/sendInviteMail'\r\n return $http.post(url,data,{\r\n headers:{'Content-Type' : 'application/json', 'Token':token, 'UserId': loggedinUser}\r\n })\r\n }\r\n\r\n})\nangular.module('inspinia').controller('invitedUserController', function (invitedUserService, ReferService, NewTalentPoolService, $log, $filter, $window, $compile, $uibModal, $localStorage, DTOptionsBuilder, DTColumnBuilder, $scope, $q, DTColumnDefBuilder) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.dtInstance = {};\r\n vm.InvitedUsers = [];\r\n vm.VendorAllSkillSets = [];\r\n vm.SearchByMobile = '';\r\n vm.SearchByName = '';\r\n vm.SearchByReferred = '';\r\n vm.SearchBySkill = '';\r\n vm.SearchByState = '';\r\n vm.SearchByCity = '';\r\n var startDate = moment().subtract(182, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: moment().subtract(182, 'day'), endDate: moment() };\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'Six Month': [moment().subtract(182, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n }\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n var filterItemName = '';\r\n var FilterItemValues = '';\r\n var SearchItemName = '';\r\n var SearchItemValues = '';\r\n $scope.totalTableUsers = 0;\r\n $scope.usersTablePerPage = 10; \r\n $scope.UserTablepagination = {current: 1};\r\n $scope.UserTablepageChanged = function(newPage) {\r\n vm.selectAll = false;\r\n vm.showMinus = false;\r\n PageIndex = newPage;\r\n vm.GetAllInvitedUserByFilter();\r\n };\r\n\r\n vm.Allapplyfilter = function(){\r\n if(vm.SearchBySkill!=''){\r\n if(filterItemName.length > 0 && FilterItemValues.length > 0){\r\n filterItemName = filterItemName + ',Skill';\r\n FilterItemValues = FilterItemValues + ',' + vm.SearchBySkill;\r\n }else{\r\n filterItemName = 'Skill';\r\n FilterItemValues = vm.SearchBySkill;\r\n }\r\n }\r\n if(vm.SearchByState!=''){\r\n if(filterItemName.length > 0 && FilterItemValues.length > 0){\r\n filterItemName = filterItemName + ',State';\r\n FilterItemValues = FilterItemValues + ',' + vm.SearchByState;\r\n }else{\r\n filterItemName = 'State';\r\n FilterItemValues = vm.SearchByState;\r\n }\r\n }\r\n if(vm.SearchByCity!=''){\r\n if(filterItemName.length > 0 && FilterItemValues.length > 0){\r\n filterItemName = filterItemName + ',City';\r\n FilterItemValues = FilterItemValues + ',' + vm.SearchByState;\r\n }else{\r\n filterItemName = 'City';\r\n FilterItemValues = vm.SearchByState;\r\n }\r\n }\r\n\r\n if(vm.SearchByMobile!=''){\r\n if(SearchItemName.length > 0 && SearchItemValues.length > 0){\r\n SearchItemName = SearchItemName + ',InvitedPhoneNo';\r\n SearchItemValues = SearchItemValues + ',' + vm.SearchByMobile;\r\n }else{\r\n SearchItemName = 'InvitedPhoneNo';\r\n SearchItemValues = vm.SearchByMobile;\r\n }\r\n }\r\n if(vm.SearchByName!=''){\r\n if(SearchItemName.length > 0 && SearchItemValues.length > 0){\r\n SearchItemName = SearchItemName + ',InviteName';\r\n SearchItemValues = SearchItemValues + ',' + vm.SearchByName;\r\n }else{\r\n SearchItemName = 'InviteName';\r\n SearchItemValues = vm.SearchByName;\r\n }\r\n }\r\n if(vm.SearchByReferred!=''){\r\n if(SearchItemName.length > 0 && SearchItemValues.length > 0){\r\n SearchItemName = SearchItemName + ',ReqUserName';\r\n SearchItemValues = SearchItemValues + ',' + vm.SearchByReferred;\r\n }else{\r\n SearchItemName = 'ReqUserName';\r\n SearchItemValues = vm.SearchByReferred;\r\n }\r\n }\r\n\r\n vm.GetAllInvitedUserByFilter();\r\n }\r\n \r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n $scope.$parent.$parent.main.implementSelectItems('InvitedUsers', this);\r\n\r\n vm.message = \"Dear User,\\n\\nMyMobiforce is Indias fastest growing technicians marketplace. We are the leading digital platform helping you to explore many job opportunities to earn more in your local area anytime you want!If interested, kindly, click on the link below to help us know more about!\\n\\n APP For Freelancer : http://bit.ly/2RCaEO4 And Freelancer Vendor : http://bit.ly/2FytbpA \\n\\nThanks\\nMobiforce Team\";\r\n vm.exportData = function () {\r\n var blob = new Blob([document.getElementById('tab-1').innerHTML], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, \"Report.xls\");\r\n }\r\n\r\n // vm.GetAllInvitedUser = function () {\r\n // invitedUserService.GetAllInvitedUser(loggedinUser, token).then(function (resp) {\r\n // vm.InvitedUsers = resp.data;\r\n // $scope.totalTableUsers = resp.data.length;\r\n // }, function () {\r\n \r\n // })\r\n // }\r\n\r\n vm.AllSkills = function () {\r\n NewTalentPoolService.getAllSkills(loggedinUser, token, function (data) {\r\n vm.VendorAllSkillSets = data;\r\n }, vm.showFailure);\r\n }\r\n vm.AllSkills();\r\n\r\n function getAllStates() {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser,token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n\r\n var allStatePromise = getAllStates();\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n });\r\n\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n}\r\n \r\n vm.GetAllInvitedUserByFilter = function(){\r\n invitedUserService.GetAllInvitedUserByFilter(loggedinUser, token,startDate,endDate,filterItemName,FilterItemValues,SearchItemName,SearchItemValues,PageIndex,PageSize).then(function(resp){\r\n if(resp.data.InvitedUserList && resp.data.Count){\r\n vm.InvitedUsers = resp.data.InvitedUserList;\r\n $scope.totalTableUsers = resp.data.Count;\r\n }else{\r\n vm.InvitedUsers = resp.data;\r\n $scope.totalTableUsers = 0;\r\n }\r\n filterItemName = '';\r\n FilterItemValues = '';\r\n SearchItemName = '';\r\n SearchItemValues = '';\r\n \r\n\r\n });\r\n }\r\n vm.GetAllInvitedUserByFilter();\r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n }\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n vm.CloseFollowUpModel = function () {\r\n FollowUpModel.close();\r\n vm.selectAll = false;\r\n vm.showMinus = false;\r\n vm.applyAllSelect();\r\n }\r\n vm.sendMessage = function () {\r\n var selectedInvitedUser = [];\r\n for (var i = 0; i < vm.InvitedUsers.length; i++) {\r\n if (vm.InvitedUsers[i].checked == true) {\r\n selectedInvitedUser.push(vm.InvitedUsers[i].InviteMobileNo);\r\n }\r\n }\r\n \r\n vm.CloseFollowUpModel();\r\n\r\n var messageInfo = {};\r\n messageInfo.message = vm.message;\r\n messageInfo.recevierPhoneNo = selectedInvitedUser;\r\n \r\n invitedUserService.BroadcastMessage(token, messageInfo,loggedinUser).then(function (resp) {\r\n if (resp.data == 'Sent') {\r\n vm.showSuccess(\"Invited User\", \"Registration reminder send sucessfully\");\r\n vm.selectAll = false;\r\n vm.selected = false;\r\n reload: true;\r\n }\r\n else {\r\n vm.showFailure(\"Invited User\", \"Unable to send registration reminder\")\r\n }\r\n })\r\n\r\n }\r\n\r\n vm.sendSMS = function () {\r\n vm.followup = '';\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'SMS.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n\r\n });\r\n }\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfrgitp')\r\n .withOption('stateSave', true)\r\n .withOption('paging', false);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(11).notSortable(),\r\n ];\r\n\r\n\r\n // vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n // var defer = $q.defer();\r\n // invitedUserService.GetAllInvitedUser(loggedinUser, token).then(function (resp) {\r\n // vm.invitedUserList = resp.data;\r\n // defer.resolve(vm.invitedUserList);\r\n // })\r\n // return defer.promise;\r\n\r\n // }).withDOM('<\"html5buttons\"B>lTfgitp')\r\n // .withPaginationType('full_numbers')\r\n // .withOption('order', [3, 'desc'])\r\n // .withOption('createdRow', createdRow)\r\n // .withBootstrap();\r\n\r\n // function createdRow(row, data, dataIndex) {\r\n // // Recompiling so we can bind Angular directive to the DT\r\n // $compile(angular.element(row).contents())($scope);\r\n // }\r\n\r\n // vm.selected = {};\r\n // vm.selectAll = false;\r\n // vm.toggleOne = toggleOne;\r\n // vm.dtColumns = [\r\n // DTColumnBuilder.newColumn(null).withTitle('Action').renderWith(function (data, type, full, meta) {\r\n // vm.selected[meta.row] = false;\r\n // return '';\r\n // }).notSortable(),\r\n // DTColumnBuilder.newColumn('InviteName').withTitle('Freelancer Name').notSortable().renderWith(function (data) {\r\n // return '' + data + '';\r\n // }),\r\n \r\n // DTColumnBuilder.newColumn('InviteMobileNo').withTitle('Invitee Mobile').notSortable(),\r\n // DTColumnBuilder.newColumn('Email').withTitle('Email').notSortable(),\r\n // DTColumnBuilder.newColumn('Skill').withTitle('Skill').notSortable(),\r\n // DTColumnBuilder.newColumn('City').withTitle('City').notSortable(),\r\n // DTColumnBuilder.newColumn('State').withTitle('State').notSortable(),\r\n // DTColumnBuilder.newColumn(null).withTitle('Invitation Date').renderWith(function(data){ \r\n // var dt = $filter('date')(moment(data.InviteDate).format(\"DD-MMM-YYYY\"));\r\n // return dt;\r\n // }).withOption('type', 'date'),\r\n // DTColumnBuilder.newColumn('RegistrationStatus').withTitle('Registration Status').renderWith(function (data, type, full, meta) {\r\n // if (full.RegistrationStatus == 'Invited') {\r\n // var Status = 'label label-info';\r\n // } else if (full.RegistrationStatus == 'Registered') {\r\n // Status = 'label label-warning';\r\n // } else if (full.RegistrationStatus == 'Active') {\r\n // Status = 'label label-primary';\r\n // }\r\n // return \"\" + full.RegistrationStatus + \"\";\r\n // }).notSortable(),\r\n // DTColumnBuilder.newColumn('ReferredBy').withTitle('Referred By').notSortable(),\r\n // DTColumnBuilder.newColumn('ReferredById').withTitle('Referred Id').notSortable()\r\n // ];\r\n\r\n // function toggleOne(selectedItems) {\r\n // vm.showMinus = false;\r\n // vm.selectAll = false;\r\n // for (var id in selectedItems) {\r\n // if (selectedItems.hasOwnProperty(id)) {\r\n // if (selectedItems[id]) {\r\n // // vm.selectAll = false;\r\n // vm.showMinus = true;\r\n // return;\r\n // }\r\n // }\r\n // }\r\n // // vm.selectAll = true;\r\n // }\r\n\r\n // vm.applyAllSelect = function (selectAll, selectedItems) {\r\n // for (var id in selectedItems) {\r\n // if (selectedItems.hasOwnProperty(id)) {\r\n // selectedItems[id] = selectAll;\r\n // }\r\n // }\r\n // }\r\n // vm.GetAllInvitedUser();\r\n\r\n }\r\n\r\n vm.ShareReport = function () {\r\n // //$log.log(\"ShareReport\");\r\n // vm.shareModel.toList = [];\r\n // vm.shareModel.ccList = [];\r\n // vm.shareModel.bccList = [];\r\n // vm.shareModel.content = \"Hello,\\n\\nYou are requested to view project report on below link \\n\\n\" + $window.location.href + \" \\n\\nThanks\\nMobiforce Team\";\r\n vm.ShareModal = $uibModal.open({\r\n \r\n templateUrl: 'ShareReport.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeShareReportModal = function () {\r\n vm.Emails=\"\";\r\n vm.Subjects=\"\"; \r\n vm.ShareModal.close();\r\n }\r\n\r\n vm.SendEmails = function () {\r\n // if (vm.signup_form.$valid) {\r\n var str=vm.Emails; \r\n var toemailsList = str.split(',');\r\n if(vm.Emails==null || vm.Emails==\"\")\r\n {\r\n //vm.ShareModal.open();\r\n vm.showFailure(\"Failure\", \"Please enter email\");\r\n return;\r\n }\r\n if(vm.Subjects==null || vm.Subjects==\"\")\r\n {\r\n //vm.ShareModal.open();\r\n vm.showFailure(\"Failure\", \"Please enter subjects\");\r\n return;\r\n }\r\n var data = {\r\n \"InviteMailIdList\": toemailsList, \r\n \"MailBody\": vm.message,\r\n \"MailSubject\": vm.Subjects,\r\n } \r\n invitedUserService.SendEmails(token,data,loggedinUser).then(function(resp){\r\n if (resp.status == 200) { \r\n vm.showSuccess(\"Success\", \"Emails has been sent successfully\");\r\n vm.closeShareReportModal();\r\n }\r\n else{\r\n vm.showFailure(\"Failure\", \"Unable to send emails due to server issue\");\r\n }\r\n })\r\n }\r\n//}\r\n});\r\n\r\nfunction CheckRegExOnKeyPress(e) {\r\n debugger\r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s.,/-]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\nangular.module('inspinia').service('InvigilatorShiftAttendanceService', function (ApiURL, StaffSchedulingAPI ,SchedulingAPI, $window, $http) {\r\n\r\n var vm = this;\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n this.GetEmployeeAttendanceShiftView = function (data, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/GetEmployeeAttendanceShiftViewDynamic';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetAllCampaignName = function (loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/GetAllStaffShiftCampaignId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.FillShiftDataForUser = function (data, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/FillShiftDataForUser';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('InvigilatorShiftAttendanceController', function (InvigilatorShiftAttendanceService, shiftManagementService, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength = 0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId = '';\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\tvm.ReportingStartTime = moment('09:00', 'HH:mm').toDate();\r\n\t\tvm.ReportingEndTime = moment('18:00', 'HH:mm').toDate(); \r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t};\r\n\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction generateDates(startDate, endDate) {\r\n\t\t\tvar currentDate = new Date(startDate);\r\n\t\t\tvar dates = [];\r\n\t\t\twhile (currentDate <= endDate) {\r\n\t\t\t\tvar day = currentDate.toLocaleDateString('en-IN', { weekday: 'short' });\r\n\t\t\t\tvar formattedDate = currentDate.getDate() + '-' + currentDate.toLocaleDateString('en-IN', { month: 'short' });\r\n\t\t\t\tdates.push({ day: day, date: formattedDate });\r\n\t\t\t\tcurrentDate.setDate(currentDate.getDate() + 1);\r\n\t\t\t}\r\n\t\t\treturn dates;\r\n\t\t}\r\n\r\n\r\n\t\t$scope.months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n\t\t$scope.CampaginId = \"\";\r\n\t\tvar today = new Date();\r\n\t\t$scope.selectedYear = new Date().getFullYear();\r\n\t\t$scope.selectedMonth = $scope.months[new Date().getMonth()];\r\n\t\tvar startDate = new Date(today.getFullYear(), today.getMonth(), 1);\r\n\t\t$scope.filteredDates = generateDates(startDate, new Date(today.getFullYear(), today.getMonth() + 1, 0)); // End date is the last day of the current month\r\n\r\n\t\t$scope.$watchGroup(['selectedYear', 'selectedMonth','CampaginId'], function (newValues, oldValues) {\r\n\t\t\tvar selectedYear = newValues[0];\r\n\t\t\tvar selectedMonth = newValues[1];\r\n\t\t\tvm.newStartDate = new Date(selectedYear, $scope.months.indexOf(selectedMonth), 1);\r\n\t\t\tvm.newEndDate = new Date(selectedYear, $scope.months.indexOf(selectedMonth)+1, 0);\r\n\t\t\t$scope.filteredDates = generateDates(vm.newStartDate, vm.newEndDate);\r\n\t\t\tvm.GetEmployeeAttendanceShiftView(moment(vm.newStartDate).format(\"YYYY-MM-DD\"), moment(vm.newEndDate).format(\"YYYY-MM-DD\"));\r\n\t\t});\r\n\r\n\t\t$scope.years = Array.from({ length: 10 }, function (_, i) {\r\n\t\t\treturn startDate.getFullYear() + i;\r\n\t\t});\r\n\r\n\r\n\t\tvm.Markattendance = function (userIdForAttendance) {\r\n\t\t\tvm.userIdForAttendance = userIdForAttendance;\r\n\t\t\tvm.attendanceModal = $uibModal.open({\r\n\t\t\t templateUrl: 'Attendance_modal.html',\r\n\t\t\t backdrop: 'static',\r\n\t\t\t size: 'md',\r\n\t\t\t scope: $scope\r\n\t\t\t});\r\n\t\t }\r\n\t\t vm.closeAttendanceModal = function () {\r\n\t\t\tvm.attendanceModal.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.ReportingStartTime = moment('09:00', 'HH:mm').toDate();\r\n\t\t\tvm.ReportingEndTime = moment('18:00', 'HH:mm').toDate(); \r\n\t\t\tvm.userIdForAttendance = \"\";\r\n\t\t }\r\n\r\n\t\tvm.GetEmployeeAttendanceShiftView = function (startDate, endDate) {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"LocationId\": \"\",\r\n\t\t\t\t\"DepartmentId\": \"\",\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"AutoSchedule\": true,\r\n\t\t\t\t\"CampaginId\": $scope.CampaginId\r\n\t\t\t}\r\n\t\t\tInvigilatorShiftAttendanceService.GetEmployeeAttendanceShiftView(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.StaffList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t\r\n\t\tvm.GetAllCampaignName = function () {\r\n\t\t\tInvigilatorShiftAttendanceService.GetAllCampaignName(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.campaignNameList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllCampaignName();\r\n\r\n\t\tvm.FillShiftDataForUser = function () {\r\n\t\t\tvm.campaign_creation_form.submitted = true;\r\n\t\t\tif (vm.campaign_creation_form.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"UserId\": vm.userIdForAttendance,\r\n\t\t\t\t\t\"ShiftStartTime\": moment(vm.ReportingStartTime).format(\"HH:mm\"),\r\n\t\t\t\t\t\"ShiftEndTime\": moment(vm.ReportingEndTime).format(\"HH:mm\"),\r\n\t\t\t\t}\r\n\t\t\t\tInvigilatorShiftAttendanceService.FillShiftDataForUser(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\t\tvm.closeAttendanceModal();\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Today's attendance marked successfully\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetEmployeeAttendanceShiftView(moment(vm.newStartDate).format(\"YYYY-MM-DD\"), moment(vm.newEndDate).format(\"YYYY-MM-DD\"));\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.GetAllLocations = function () {\r\n\t\t\tshiftManagementService.GetAllLocations(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\t\tvm.locationsList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllLocations();\r\n\r\n\t\tvm.exportTableToCSV = function(tableId, filename) {\r\n\t\t\tvar csv = [];\r\n\t\t\tvar rows = document.querySelectorAll('#' + tableId + ' tbody tr');\r\n\t\t\tvar headers = [];\r\n\t\t\tvar headerCells = document.querySelectorAll('#' + tableId + ' thead th');\r\n\t\t\tvar dateRow = [];\r\n\t\t\r\n\t\t\t// Collect headers\r\n\t\t\theaderCells.forEach(function(header) {\r\n\t\t\t\theaders.push('\"' + header.innerText.replace(/\"/g, '\"\"') + '\"');\r\n\t\t\t});\r\n\t\t\tcsv.push(headers.join(','));\r\n\r\n\t\t\tfor (var i = 0; i < 6; i++) {\r\n\t\t\t\tdateRow.push('\"\"'); // Empty cell\r\n\t\t\t}\r\n\t\t\r\n\t\t\t// Collect date row\r\n\t\t\tvar dateCells = document.querySelectorAll('#' + tableId + ' thead tr:nth-child(2) td'); // Assuming the date row is the second row in the thead\r\n\t\t\tdateCells.forEach(function(dateCell) {\r\n\t\t\t\tdateRow.push('\"' + dateCell.innerText.replace(/\"/g, '\"\"') + '\"');\r\n\t\t\t});\r\n\t\t\tcsv.push(dateRow.join(','));\r\n\t\t\r\n\t\t\t// Collect data rows\r\n\t\t\trows.forEach(function(row) {\r\n\t\t\t\tvar rowData = [];\r\n\t\t\t\trow.querySelectorAll('td').forEach(function(cell) {\r\n\t\t\t\t\trowData.push('\"' + cell.innerText.replace(/\"/g, '\"\"') + '\"');\r\n\t\t\t\t});\r\n\t\t\t\tcsv.push(rowData.join(','));\r\n\t\t\t});\r\n\t\t\r\n\t\t\t// Download CSV file\r\n\t\t\tvar csvFile = new Blob([csv.join('\\n')], { type: 'text/csv;charset=utf-8;' });\r\n\t\t\tvar link = document.createElement('a');\r\n\t\t\tlink.href = URL.createObjectURL(csvFile);\r\n\t\t\tlink.setAttribute('download', filename);\r\n\t\t\tlink.style.display = 'none';\r\n\t\t\tdocument.body.appendChild(link);\r\n\t\t\tlink.click();\r\n\t\t\tdocument.body.removeChild(link);\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('InvitedAllUserService',function(ApiURL,FreelancerURL, PublicApiURL,ActivityURL,LocationURL,$http, FreelancerURL, SchedulingAPI){\r\n\r\n this.GetAllSkills = function (loggedinUser, token) { \r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n\r\n this.getAllState = function (loggedinUser,token) { \r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url,{\r\n headers:{\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n this.GetAllRegisteredUser = function (loggedinUser,token,itemNames,itemValues,userType,userAvailableStatus,DateField,PageIndex,PageSize, startDate, endDate) {\r\n var url = '';\r\n url = FreelancerURL + '/api/FreeLancerRegistration/GetRegisteredUsersByFiltersWithDynaPage?itemNames=' + itemNames + '&itemValues=' + itemValues + '&userType=' + userType+ '&userAvailableStatus=' + userAvailableStatus + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&FromDate=' + startDate + '&ToDate=' + endDate;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getAllState = function (loggedinUser) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllStates';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n //http://192.168.0.80:92/LocationAPI/api/Location/saurabhgupta3371%40gmail.com/UTTAR%20PRADESH/GetCitiesByState\r\n \r\n this.getCityByState = function (loggedinUser, state) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/' + state + '/GetCitiesByState';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n});\nangular.module('inspinia').controller('InvitedAllUserController', function (InvitedAllUserService,ReferService,$q,CentralHelpdeskConfigService, ScheduleAssignService,InvitedAllUserService, $log, $state, $localStorage, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, uiCalendarConfig, ImageUrl, PublicApiURL,$window) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserSkill = $localStorage.loggedInUser_SkillSet;\r\n var loggedinUserRegion = $localStorage.loggedInUser_Region;\r\n var accountid= $localStorage.accountConfig.AccountId;\r\n \r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var token = $localStorage.token;\r\n \r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.MobiforceCommission = vm.getAccountConfigSetting('MobiforceCommissionPercentage');\r\n vm.VendorAssignation = vm.getAccountConfigSetting('VendorAssignation');\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.FreelancerAccess = vm.getAccountConfigSetting('FreelancerAccess');\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.loggedinAs = $localStorage.loggedinAs;\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.userskill = '';\r\n vm.pincode = '';\r\n vm.userNameSearch = '';\r\n vm.contactNumberSearch = '';\r\n vm.userSource = '';\r\n vm.CriminalVerified='';\r\n vm.IdVerified='';\r\n vm.PANVerified='';\r\n vm.UserAvailable=''\r\n vm.skillData = '';\r\n vm.circleData = '';\r\n vm.isChecked = \"fixed\";\r\n vm.searchText = \"\";\r\n vm.Technicianstartingdate = '2017-01-01';\r\n vm.tab = '';\r\n vm.pageindexCount=0;\r\n vm.DateField=\"StatusChangedOn\";\r\n vm.searchStatusText=\"All\"; \r\n var uPageIndex = 1;\r\n var uPageSize = 10; \r\n vm.UsersType=\"\";\r\n vm.uType=\"\";\r\n var uitemNames=\"UserStatus\";\r\n var uitemValues=\"Invite\";\r\n vm.searchUsersText=\"\";\r\n vm.jobsCount='';\r\n vm.userPageListCount= 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n\r\n var startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: startDate, endDate:endDate};\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment(vm.Technicianstartingdate), moment(endDate)],\r\n };\r\n \r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n };\r\n vm.searchText = '';\r\n vm.RegistrationNo = '';\r\n\r\n vm.preProcessData = function (vendor) {\r\n var locations = \"\";\r\n angular.forEach(vendor.WorkLocationList, function (l) {\r\n locations += l + \",\";\r\n });\r\n vendor.allLocations = locations.length > 0 ? locations.substring(0, locations.length - 1) : \"\";\r\n\r\n var skills = \"\";\r\n angular.forEach(vendor.SkillData, function (s) {\r\n skills += s.Skill + \",\";\r\n });\r\n vendor.allSkills = skills.length > 0 ? skills.substring(0, skills.length - 1) : \"\";\r\n }\r\n\r\n vm.creationForm = function (RegistrationNo) {\r\n $localStorage.From = '';\r\n $state.go('index.OnBoardingForm', {\r\n RegistrationNo: RegistrationNo\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.loadAllSkills = function(){ \r\n InvitedAllUserService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skillsWithPipe = '';\r\n if (resp && resp.data) {\r\n vm.skillData = resp.data;\r\n if(vm.skillData && vm.skillData.length>0){\r\n angular.forEach(vm.skillData, function(s){\r\n vm.skillsWithPipe += s.SkillName+\"|\";\r\n });\r\n vm.skillsWithPipe = vm.skillsWithPipe.length>0\r\n ? vm.skillsWithPipe.substring(0,vm.skillsWithPipe.length-1) : \"\";\r\n }\r\n }\r\n });\r\n }\r\n vm.loadAllSkills();\r\n \r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n \r\n vm.ResetUserSelection = function (scope){\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n }\r\n\r\n if(vm.loggedInUserRole == \"SuperAdministrator\")\r\n {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Freelancer Team\"];\r\n }\r\n else\r\n {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Freelancer Team\"];\r\n }\r\n \r\n vm.ResetUserFilter = function () { \r\n vm.UsersType = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.userskill = ''; \r\n vm.uType= ''; \r\n vm.CriminalVerified='';\r\n vm.IdVerified='';\r\n vm.PANVerified=''; \r\n vm.userSource = ''; \r\n vm.pincode ='';\r\n vm.userNameSearch ='';\r\n vm.contactNumberSearch = '';\r\n startDate = '';\r\n endDate = '';\r\n vm.applyUserFilter();\r\n // vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n }\r\n\r\n vm.UsersFilterArray = function()\r\n {\r\n vm.ResetUserSelection(this);\r\n uitemNames=\"UserStatus\";\r\n uitemValues=\"Invite\";\r\n\r\n if (vm.userskill) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',SkillSet';\r\n uitemValues = uitemValues + \",\" + vm.userskill;\r\n }\r\n else\r\n {\r\n uitemNames = 'SkillSet';\r\n uitemValues = vm.userskill;\r\n } \r\n }\r\n if (vm.userSource) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Source';\r\n uitemValues = uitemValues + \",\" + vm.userSource;\r\n }\r\n else\r\n {\r\n uitemNames = 'Source';\r\n uitemValues = vm.userSource;\r\n } \r\n }\r\n if (vm.pincode) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.pincode;\r\n }\r\n else\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.pincode;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.userNameSearch;\r\n } \r\n }\r\n if (vm.contactNumberSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',ContactNumber';\r\n uitemValues = uitemValues + \",\" + vm.contactNumberSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'ContactNumber';\r\n uitemValues = vm.contactNumberSearch;\r\n } \r\n }\r\n \r\n if (vm.CriminalVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsCriminalVerified';\r\n uitemValues = uitemValues + \",\" + true;\r\n }\r\n else\r\n {\r\n uitemNames = 'IsCriminalVerified';\r\n uitemValues = true;\r\n } \r\n }\r\n if (vm.IdVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsAdharVerified';\r\n uitemValues = uitemValues + \",\" + true;\r\n }\r\n else\r\n {\r\n uitemNames = 'IsAdharVerified';\r\n uitemValues = true;\r\n } \r\n }\r\n if (vm.PANVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsPanVerified';\r\n uitemValues = uitemValues + \",\" + true;\r\n }\r\n else\r\n {\r\n uitemNames = 'IsPanVerified';\r\n uitemValues = true;\r\n } \r\n }\r\n if (vm.PermanentState) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Locations';\r\n uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n }\r\n else\r\n {\r\n uitemNames = 'Locations';\r\n uitemValues = vm.PermanentState;\r\n } \r\n }\r\n if (vm.PermanentState && vm.PermanentCity) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.PermanentCity;\r\n }\r\n else\r\n {\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.UsersType;\r\n } \r\n }\r\n if (vm.UsersType) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + \",\" + vm.UsersType;\r\n }\r\n else\r\n {\r\n uitemNames = 'Role';\r\n uitemValues = vm.UsersType;\r\n } \r\n } \r\n\r\n if(vm.UsersType==\"Freelancer\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n }\r\n else if(vm.UsersType==\"Freelancer Vendor\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n } \r\n else if(vm.UsersType==\"Freelancer Team\")\r\n {\r\n vm.uType=\"Fixed\";\r\n }\r\n else \r\n {\r\n vm.uType=\"\";\r\n vm.UsersType = '';\r\n } \r\n\r\n }\r\n\r\n function getAllStates(loggedinUser) {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser,token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n \r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n \r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function() { \r\n $scope.usersPerPage = vm.userPageListCount;\r\n uPageSize = $scope.usersPerPage;\r\n $scope.UserTablePageChanged($scope.Userpagination.current);\r\n vm.selectAll = false;\r\n \r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.UsersFilterArray(); \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n };\r\n }\r\n \r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n if(uitemNames != 'Search')\r\n {\r\n vm.UsersFilterArray();\r\n }\r\n \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n };\r\n\r\n vm.ticketList=[];\r\n\r\n vm.UserByFiltersList=[];\r\n vm.GetAllRegisteredUser = function (loggedinUser, token, uitemNames, uitemValues, userType, UserAvailable, uPageIndex, uPageSize) {\r\n InvitedAllUserService.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, userType, vm.UserAvailable, vm.DateField, uPageIndex, uPageSize, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserByFiltersList = resp.data.ListUserResponseModel;\r\n $scope.totalUsers = resp.data.Count;\r\n // preprocessData(vm.UserByFiltersList);\r\n if(vm.UserByFiltersList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = uPageIndex * vm.userPageListCount;\r\n if(uPageIndex==1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex-1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n vm.UsersFilterArray(); \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n }\r\n vm.searchTicket = function () { \r\n vm.ResetTicketFilter(); \r\n };\r\n vm.searchUser = function () { \r\n vm.ResetUserSelection(this);\r\n vm.ResetUserFilter(); \r\n if(vm.searchUsersText)\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.searchUsersText;\r\n } \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n };\r\n \r\n\r\n vm.closeUserSearchText = function()\r\n { \r\n vm.ResetUserSelection(this);\r\n vm.ResetUserFilter(); \r\n vm.searchUsersText=\"\";\r\n uitemNames = '';\r\n uitemValues = ''; \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n\r\n }\r\n vm.applyUserFilter=function()\r\n { \r\n vm.UsersFilterArray(); \r\n \r\n uPageIndex=1;\r\n $scope.Userpagination = {\r\n current: 1\r\n }; \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n\r\n }\r\n vm.SubmitFilter = function () { \r\n\r\n $scope.Userpagination = {};\r\n vm.UsersFilterArray();\r\n uPageIndex=1;\r\n $scope.Userpagination = {\r\n current: 1\r\n }; \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n\r\n }\r\n});\nangular.module('inspinia').service('InventoryCartService', function (AcessoriesURL, ApiURL, SchedulingAPI, $window, $http) {\r\n\r\n this.GetAllWareHouse = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllWareHouse';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetMyCart = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFUserCart/GetMyCart';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.ReOrderPlace = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/ReOrderPlace';\r\n return $http.put(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n}\r\n\r\n this.GetInventoryByForExploration = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetInventoryByForExploration';\r\n return $http.put(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetAllWareHouseForExploration = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllWareHouseForExploration';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetWareHouseByPartId = function (partId, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetWareHouseByPartId?partId=' + partId;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.AddPartToMyCart = function (addPartData, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFUserCart/AddPartToMyCart';\r\n return $http.put(url, addPartData, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateMSLOrder = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/UpdateMSLOrder';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.ReducePartQuantityInMyCart = function (reducePartData, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFUserCart/ReducePartQuantityInMyCart';\r\n return $http.put(url, reducePartData, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.RemovePartFromMyCart = function (removePartData, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFUserCart/RemovePartFromMyCart';\r\n return $http.put(url, removePartData, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.ClearMyCart = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFUserCart/ClearMyCart';\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.PlaceOrder = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/PlaceOrder';\r\n return $http.post(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetOrdersDashboardByFilter = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/GetOrdersDashboardByFilter';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GeneratePdfTaxInvoice = function (loggedinUser, token, OrderId) {\r\n var url = ApiURL + '/api/Report/GeneratePdfTaxInvoice?OrderId=' + OrderId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n}\r\n\r\n this.GetAllOrdersByFilter_CSV = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/GetAllOrdersByFilter_CSV';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetAllOrdersByFilter = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/GetAllOrdersByFilter';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.CancelMyOrder = function (OrderId, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/CancelMyOrder?OrderId=' + OrderId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.GetItemBrandName = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemBrandName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.GetItemGroupName = function (brandName, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemGroupName?BrandName=' + brandName;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.GetItemListName = function (brandName, productGroup, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemListName?BrandName=' + brandName + '&ItemGroupName=' + productGroup;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.GetItemPartName = function (brandName, productGroup, partName, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemListName?BrandName=' + brandName + '&ProductGroupName=' + productGroup + '&ProductName=' + partName;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GeneratePdfChallan = function (loggedinUser, token, OrderId) {\r\n var url = ApiURL + '/api/Report/GeneratePdfChallan?OrderId=' + OrderId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('InventoryCartController', function (InventoryCartService, MainService,InventoryItemListService, $resource, $stateParams, toaster, $filter, $compile, $q, $state, $window, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\t// var warehouseId = $stateParams.warehouseId;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\t\tvm.Role = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableCreateButton = false;\r\n\t\tvm.partName = '';\r\n\t\tvar oPageIndex = 1;\r\n\t\t$scope.isCollapsed = true;\r\n\t\tvar oPageSize = 10;\r\n\t\tvm.allOrdersPageListCount = 10;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.allInventoryPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.UserId = '';\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\t$scope.dates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t\t};\r\n\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t};\r\n\t\tvm.ExpandOrderList = function(isCollapsed,orderId){\r\n\t\t\tif (vm.orderId == orderId) {\r\n\t\t\t\t$scope.isCollapsed = !isCollapsed;\r\n\t\t\t}\r\n\t\t\t$scope.activeRow = orderId;\r\n\t\t\tvm.orderId = orderId;\r\n\t\t}\r\n\r\n\t\t$scope.item = {\r\n\t\t\tquantity: 1 // Initial quantity\r\n\t\t};\r\n\r\n\t\t$scope.increaseQuantity = function (item) {\r\n\t\t\titem.quantity++;\r\n\t\t};\r\n\r\n\t\t$scope.decreaseQuantity = function (item) {\r\n\t\t\tif (item.quantity > 1) {\r\n\t\t\t\titem.quantity--;\r\n\t\t\t}\r\n\t\t};\r\n\t\t$scope.removeItem = function (item) {\r\n\t\t\tvar index = $scope.cartItems.indexOf(item);\r\n\t\t\t$scope.cartItems.splice(index, 1);\r\n\t\t};\r\n\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t$scope.TicketTablepagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\t\tvm.GetAllWareHouse = function () {\r\n\t\t\tInventoryCartService.GetAllWareHouse(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.warehouseitemlist = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllWareHouse();\r\n\t\tvm.showPartDetails = false;\r\n\t\tvm.OpenPartDetailPanel = function (s) {\r\n\t\t\tvm.PartDetails = s;\r\n\t\t\tvm.sideViewPartImage = s.strPartImages;\r\n\t\t\tvm.sideViewPartLength = s.strPartImages.length;\r\n\t\t\tvm.TrainingImagebase64 = [];\r\n\t\t\tfor (var i = 0; i < vm.sideViewPartImage.length; i++) {\r\n\t\t\t\tvm.TrainingImageServices(vm.sideViewPartImage[i], i);\r\n\t\t\t}\r\n\t\t\tvm.showPartDetails = true;\r\n\t\t}\r\n\t\tvm.CartshowPartDetails = false;\r\n\t\tvm.OpenCartPartDetailPanel = function (a) {\r\n\t\t\tvm.CartPartDetails = a;\r\n\t\t\tvm.CartsideViewPartImage = a.strListItemImage;\r\n\t\t\tvm.sideViewPartLength = a.strListItemImage.length;\r\n\t\t\tvm.TrainingImagebase64 = [];\r\n\t\t\tfor (var i = 0; i < vm.CartsideViewPartImage.length; i++) {\r\n\t\t\t\tvm.TrainingImageServices(vm.CartsideViewPartImage[i], i);\r\n\t\t\t}\r\n\t\t\tvm.CartshowPartDetails = true;\r\n\t\t}\r\n\t\tvm.TrainingImageServices = function (img, index) {\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\t\tif (resp.data == null || resp.data == '') {\r\n\t\t\t\t\tvm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.TrainingImagebase64[index] = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.OpenUseerDetails = function (OrderId) {\r\n\t\t\t$state.go('index.WareHouseOrderDetailView', {\r\n\t\t\t\torder_id: OrderId\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\r\n\t\tvm.GetAllWareHouseForExploration = function () {\r\n\t\t\tInventoryCartService.GetAllWareHouseForExploration(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.warehouseExploreList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllWareHouseForExploration();\r\n\r\n\t\tvm.GetMyCart = function () {\r\n\t\t\tInventoryCartService.GetMyCart(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.cartList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetMyCart();\r\n\r\n\t\tvm.GetWareHouseByPartId = function (partId) {\r\n\t\t\tInventoryCartService.GetWareHouseByPartId(partId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.stockAvailableWarehouses = resp.data;\r\n\t\t\t\t\tif(vm.AccountId == '380' || vm.AccountId == '383' || vm.AccountId == '390'){\r\n\t\t\t\t\t\tvm.warehouselist = vm.stockAvailableWarehouses[0].WareHouseId;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\r\n\t\t$scope.totalInvList = 0;\r\n\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t$scope.InventoryPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllInventoryPageListCount = function () {\r\n\t\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t\tPageSize = $scope.inventoryPerPage;\r\n\t\t\t$scope.AllInventoryTablePageChanged($scope.InventoryPagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\t\tPageIndex = newPage;\r\n\t\t\t\tvm.GetInventoryByForExploration();\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\tPageIndex = newPage;\r\n\t\t\tvm.GetAllOrdersByFilter();\r\n\r\n\t\t};\r\n\t\tvm.SearchText = '';\r\n\t\tvm.warehouselist = \"\";\r\n\t\tvm.warehouseInvetoryList = [];\r\n\r\n\t\tvm.GetInventoryByForExploration = function () {\r\n\t\t\tif (!vm.warehouselist) {\r\n\t\t\t\tvm.warehouselist = '';\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"WareHouseId\": vm.warehouselist,\r\n\t\t\t\t\"SearchText\": vm.SearchText,\r\n\t\t\t\t\"PageIndex\": PageIndex,\r\n\t\t\t\t\"PageSize\": PageSize,\r\n\t\t\t\t\"BrandName\": vm.brandName,\r\n\t\t\t\t\"ProductGroup\": vm.productGroup,\r\n\t\t\t\t\"MMFPartName\": vm.selectedPart,\r\n\t\t\t\t\"PartSubGroup\": vm.partName\r\n\t\t\t}\r\n\t\t\tInventoryCartService.GetInventoryByForExploration(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.warehouseInvetoryList = resp.data.ListMMFPartModelRes;\r\n\t\t\t\t\tvm.sideViewData = vm.warehouseInvetoryList[0];\r\n\t\t\t\t\t$scope.totalInvList = resp.data.RecordCount;\r\n\t\t\t\t\tif (vm.warehouseInvetoryList.length < vm.allInventoryPageListCount)\r\n\t\t\t\t\t\tvm.inventoryListLength = $scope.totalInvList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.inventoryListLength = PageIndex * vm.allInventoryPageListCount;\r\n\t\t\t\t\tif (PageIndex == 1)\r\n\t\t\t\t\t\tvm.pageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.pageindexCount = (((PageIndex - 1) * vm.allInventoryPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.clearFilter = function () {\r\n\t\t\tvm.SearchText = '';\r\n\t\t\tvm.warehouselist = '';\r\n\t\t\tvm.brandName = '';\r\n\t\t\tvm.productGroup = '';\r\n\t\t\tvm.partName = '';\r\n\t\t\tvm.selectedPart = '';\r\n\t\t\tvm.GetInventoryByForExploration();\r\n\t\t}\r\n\r\n\t\t// vm.GetInventoryByForExploration();\r\n\r\n\t\tvm.IsWarehouseAlreadySelected = false;\r\n\r\n\t\tvm.addCartMoreModal = function (partData) {\r\n\t\t\tvm.IsWarehouseAlreadySelected = false;\r\n\t\t\tvm.partId = partData.strMMFPartId;\r\n\t\t\tvm.partSKUId = partData.strSKUId;\r\n\t\t\tvm.partName = partData.strPartName;\r\n\t\t\tif (vm.warehouselist != '') {\r\n\t\t\t\tvm.IsWarehouseAlreadySelected = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.IsWarehouseAlreadySelected = false;\r\n\t\t\t\tvm.GetWareHouseByPartId(vm.partId);\r\n\t\t\t}\r\n\t\t\tvm.openAddToCartModal();\r\n\r\n\t\t}\r\n\r\n\t\tvm.AddPartToMyCart = function () {\r\n\t\t\tvar addPartData = {\r\n\t\t\t\t\"MMFPartId\": vm.partId,\r\n\t\t\t\t\"SKUId\": vm.partSKUId,\r\n\t\t\t\t\"QuantityAdded\": $scope.item.quantity,\r\n\t\t\t\t\"WareHoueId\": vm.warehouselist\r\n\t\t\t}\r\n\t\t\tInventoryCartService.AddPartToMyCart(addPartData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Item added to cart successfully.\");\r\n\t\t\t\t\tvm.closecreateCartMoreModal();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.AddSinglePartToMyCart = function (partData) {\r\n\t\t\tvar addPartData = {\r\n\t\t\t\t\"MMFPartId\": partData.strItemId,\r\n\t\t\t\t\"SKUId\": partData.strSKUId,\r\n\t\t\t\t\"QuantityAdded\": 1,\r\n\t\t\t\t\"WareHoueId\": partData.strWareHouseId,\r\n\t\t\t}\r\n\t\t\tInventoryCartService.AddPartToMyCart(addPartData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetMyCart();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.ReducePartQuantityInMyCart = function (partData) {\r\n\t\t\tvar reducePartData = {\r\n\t\t\t\t\"MMFPartId\": partData.strItemId,\r\n\t\t\t\t\"SKUId\": partData.strSKUId,\r\n\t\t\t\t\"QuantityAdded\": 1\r\n\t\t\t}\r\n\t\t\tInventoryCartService.ReducePartQuantityInMyCart(reducePartData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetMyCart();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.RemovePartFromMyCart = function (partData) {\r\n\t\t\tvar removePartData = {\r\n\t\t\t\t\"MMFPartId\": partData.strItemId,\r\n\t\t\t\t\"SKUId\": partData.strSKUId\r\n\t\t\t}\r\n\t\t\tInventoryCartService.RemovePartFromMyCart(removePartData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Part removed from cart successfully.\");\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetMyCart();\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.ClearMyCart = function () {\r\n\t\t\tInventoryCartService.ClearMyCart(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Cart cleared successfully.\");\r\n\t\t\t\t\tvm.closeClearCartConfirmation();\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetMyCart();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.PlaceOrder = function () {\r\n\t\t\tInventoryCartService.PlaceOrder(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Order placed successfully.\");\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetMyCart();\r\n\t\t\t\t\t}, 3000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t$scope.openTrackingLink = function (trackingLink) {\r\n\t\t\t// Open the tracking link in a new tab\r\n\t\t\t$window.open(trackingLink, '_blank');\r\n\t\t};\r\n\t\tvm.SelectedOrderStatus = 'Pending';\r\n\t\tvm.SelectedOrderType = '';\r\n\t\tvm.setSelectedItem = function (item, orderType) {\r\n\t\t\tvm.SelectedOrderStatus = item;\r\n\t\t\tvm.SelectedOrderType = orderType || '';\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t};\r\n\r\n\r\n\t\tvm.clearMyOrderFilter = function () {\r\n\t\t\tvm.SelectedOrderStatus = 'Pending';\r\n\t\t\tvm.warehouselist = '';\r\n\t\t\tvm.SearchTextforOrder = '';\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t}\r\n\r\n\r\n\t\tvm.OpenClearCartConfirmation = function () {\r\n\t\t\tClearCartModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'clearCart.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeClearCartConfirmation = function () {\r\n\t\t\tClearCartModel.close();\r\n\t\t}\r\n\r\n\r\n\t\tvm.OrderIdToReOrder = '';\r\n\t\tvm.OpenReOrderConfirmation = function (orderId) {\r\n\t\t\tvm.OrderIdToReOrder = orderId;\r\n\t\t\tReorderModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ReOrderPart.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeReOrderConfirmation = function () {\r\n\t\t\tReorderModel.close();\r\n\t\t\tvm.OrderIdToReOrder = '';\r\n\t\t}\r\n\r\n\r\n\t\tvm.OpenOrderCancelConfirmation = function (orderId) {\r\n\t\t\tvm.orderId = orderId;\r\n\t\t\tCancelOrderModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'cancelOrder.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeOrderCancelConfirmation = function () {\r\n\t\t\tCancelOrderModel.close();\r\n\t\t}\r\n\r\n\r\n\r\n\t\t/////filter \r\n\t\tvm.GetItemBrandName = function () {\r\n\t\t\tInventoryCartService.GetItemBrandName(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.BrandList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t};\r\n\t\tvm.GetItemBrandName();\r\n\r\n\r\n\t\tvm.GetItemGroupName = function () {\r\n\t\t\tif (!vm.brandName) {\r\n\t\t\t\tvm.brandName = \"\";\r\n\t\t\t}\r\n\t\t\tInventoryCartService.GetItemGroupName(vm.brandName, loggedinUser, token).then(\r\n\t\t\t\tfunction (resp) {\r\n\t\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\t\tvm.PartNameList = resp.data;\r\n\t\t\t\t\t\tvm.changeCategoryFilter();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t};\r\n\t\tvm.GetItemGroupName();\r\n\t\tvm.GetItemListName = function () {\r\n\t\t\tif (!vm.productGroup) {\r\n\t\t\t\tvm.productGroup = \"\";\r\n\t\t\t}\r\n\t\t\tInventoryCartService.GetItemListName(\r\n\t\t\t\tvm.brandName,\r\n\t\t\t\tvm.productGroup,\r\n\t\t\t\tloggedinUser, token\r\n\t\t\t).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.PartList = resp.data;\r\n\t\t\t\t\tvm.changeCategoryFilter();\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t};\r\n\t\tvm.GetItemListName();\r\n\t\tvm.GetItemPartName = function () {\r\n\t\t\tvm.PartListWithFilter = [];\r\n\t\t\tif (!vm.partName) {\r\n\t\t\t\tvm.partName = \"\";\r\n\t\t\t}\r\n\t\t\tInventoryCartService.GetItemPartName(vm.brandName, vm.productGroup, vm.partName, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.PartListWithFilter = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t};\r\n\t\tvm.GetItemPartName();\r\n\r\n\t\tvm.ReOrderPlace = function () {\r\n\t\t\tvar ReOrderData = {\r\n\t\t\t\t\"OrderId\": vm.OrderIdToReOrder\r\n\t\t\t}\r\n\t\t\tInventoryCartService.ReOrderPlace(ReOrderData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.closeReOrderConfirmation();\r\n\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetAllOrdersByFilter();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.OpenTicketView = function (ticket) {\r\n\t\t\t$state.go('index.JobDetailView', {\r\n\t\t\t\tticketId: ticket\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\r\n\t\tvm.CancelMyOrder = function () {\r\n\t\t\tInventoryCartService.CancelMyOrder(vm.orderId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Order cancelled successfully.\");\r\n\t\t\t\t\tvm.closeOrderCancelConfirmation();\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetAllOrdersByFilter();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.openAddToCartModal = function () {\r\n\t\t\tvm.morecartModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'AddMoreItemModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closecreateCartMoreModal = function () {\r\n\t\t\tvm.morecartModal.close();\r\n\t\t\tvm.partId = '';\r\n\t\t\tvm.partSKUId = '';\r\n\t\t\t// vm.warehouselist = '';\r\n\t\t\tvm.partName = '';\r\n\t\t\t$scope.item.quantity = 1;\r\n\t\t}\r\n\r\n\t\tvm.isTableVisible = true;\r\n\t\tvm.isCardVisible = false;\r\n\r\n\t\tvm.showTable = function () {\r\n\t\t\tvm.isTableVisible = true;\r\n\t\t\tvm.isCardVisible = false;\r\n\t\t};\r\n\r\n\t\tvm.showCard = function () {\r\n\t\t\tvm.isTableVisible = false;\r\n\t\t\tvm.isCardVisible = true;\r\n\r\n\t\t};\r\n\r\n\r\n\t\t$scope.totalOrderList = 0;\r\n\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t$scope.OrdersPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllOrderPageListCount = function () {\r\n\t\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t\toPageSize = $scope.ordersPerPage;\r\n\t\t\t$scope.AllOrderTablePageChanged($scope.OrdersPagination.current);\r\n\t\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\t\toPageIndex = newPage;\r\n\t\t\t\tvm.GetAllOrdersByFilter();\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\toPageIndex = newPage;\r\n\t\t\tvm.GetAllOrdersByFilter();\r\n\r\n\t\t};\r\n\t\tvm.SearchTextforOrder = '';\r\n\t\tvm.orderInvetoryList = [];\r\n\t\tvm.GetOrdersDashboardByFilter = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"OrderType\": vm.SelectedOrderType || '',\r\n\t\t\t\t\"OrderStatus\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"PaymentStatus\": \"\",\r\n\t\t\t\t\"SearchText\": vm.SearchTextforOrder,\r\n\t\t\t\t\"WareHouseId\": vm.warehouselist,\r\n\t\t\t\t\"DateField\": \"dateOrderDate\",\r\n\t\t\t\t\"OrderStartDate\": startDate,\r\n\t\t\t\t\"OrderEndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tInventoryCartService.GetOrdersDashboardByFilter(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.orderDashboardCount = resp.data\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.GetAllOrdersByFilter = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"OrderType\": vm.SelectedOrderType || '',\r\n\t\t\t\t\"OrderStatus\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"PaymentStatus\": \"\",\r\n\t\t\t\t\"SearchText\": vm.SearchTextforOrder,\r\n\t\t\t\t\"WareHouseId\": vm.warehouselist,\r\n\t\t\t\t\"DateField\": \"dateOrderDate\",\r\n\t\t\t\t\"OrderStartDate\": startDate,\r\n\t\t\t\t\"OrderEndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tInventoryCartService.GetAllOrdersByFilter(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.orderInvetoryList = resp.data.OrderList;\r\n\t\t\t\t\t$scope.totalOrderList = resp.data.Count;\r\n\t\t\t\t\tvm.productImg = [];\r\n\t\t\t\t\tfor (var i = 0; i < vm.orderInvetoryList.length; i++) {\r\n\t\t\t\t\t\tvar item = vm.orderInvetoryList[i];\r\n\t\t\t\t\t\tvm.ImageViewOfShipmentDoc(item.Attachement, i);\r\n\t\t\t\t\t\t// vm.ImageViewOfInvoice(item.InvoiceImage, i);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (vm.orderInvetoryList.length < vm.allOrdersPageListCount)\r\n\t\t\t\t\t\tvm.orderListLength = $scope.totalOrderList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.orderListLength = oPageIndex * vm.allOrdersPageListCount;\r\n\t\t\t\t\tif (oPageIndex == 1)\r\n\t\t\t\t\t\tvm.opageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.opageindexCount = (((oPageIndex - 1) * vm.allOrdersPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.applyOrderFilter = function () {\r\n\t\t\tvm.GetAllOrdersByFilter();\r\n\t\t\tvm.GetOrdersDashboardByFilter();\r\n\t\t}\r\n\t\tvm.applyOrderFilter();\r\n\r\n\t\tvm.PDFViewOfShipmentDoc = function (page) {\r\n\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\tvm.PDFView();\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, page).then(function (resp) {\r\n\t\t\t\tvm.pdfimage = resp.data;\r\n\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t};\r\n\t\tvm.ImageViewOfShipmentDoc = function (img, index) {\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\t\tif (resp.data == null || resp.data == '') {\r\n\t\t\t\t\tvm.productImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.productImg[index] = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.productImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t\r\n\t\t$scope.checkPDF = function (path) {\r\n\t\t\tif (path) {\r\n\t\t\t\tvar pt = path.substr(path.length - 4);\r\n\t\t\t\tif (pt == '.pdf') {\r\n\t\t\t\t\tvm.error = function () {\r\n\t\t\t\t\t\t$(\".pdf\").attr({ \"target\": \"_blank\" })\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.GetAllOrdersByFilter_CSV = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"OrderType\": vm.SelectedOrderType || '',\r\n\t\t\t\t\"OrderStatus\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"PaymentStatus\": \"\",\r\n\t\t\t\t\"SearchText\": vm.SearchTextforOrder,\r\n\t\t\t\t\"WareHouseId\": vm.warehouselist,\r\n\t\t\t\t\"DateField\": \"dateOrderDate\",\r\n\t\t\t\t\"OrderStartDate\": startDate,\r\n\t\t\t\t\"OrderEndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tInventoryCartService.GetAllOrdersByFilter_CSV(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvar csvData = resp.data;\r\n\t\t\t\t\tvar blob = new Blob([csvData], { type: 'text/csv' });\r\n\t\t\t\t\tvar url = window.URL.createObjectURL(blob);\r\n\t\t\t\t\tvar a = document.createElement('a');\r\n\t\t\t\t\ta.href = url;\r\n\t\t\t\t\ta.download = 'All_Orders_List.csv';\r\n\t\t\t\t\ta.click();\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\r\n\t\tvm.PDFView = function () {\r\n\t\t\tvm.pdfimage = \"\";\r\n\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\ttaxInvoiceModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'PDFView.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.PDFUserModal = function () {\r\n\t\t\ttaxInvoiceModel.close();\r\n\t\t}\r\n\r\n\r\n\r\n\t\tvm.viewChallanPdf = function (OrderId) {\r\n\t\t\tvm.PDFView();\r\n\t\t\tInventoryCartService.GeneratePdfChallan(loggedinUser, token, OrderId).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.ChallanData = resp.data;\r\n\t\t\t\t\tvar arrrayBuffer = base64ToArrayBuffer(vm.ChallanData);\r\n\t\t\t\t\tvar blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n\t\t\t\t\tvm.pdfimage = URL.createObjectURL(blob);\r\n\t\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.viewPOPdf = function (OrderId) {\r\n\t\t\tvm.PDFView();\r\n\t\t\tInventoryCartService.GeneratePdfTaxInvoice(loggedinUser, token, OrderId).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.InvoiceData = resp.data;\r\n\t\t\t\t\tvar arrrayBuffer = base64ToArrayBuffer(vm.InvoiceData);\r\n\t\t\t\t\tvar blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n\t\t\t\t\tvm.pdfimage = URL.createObjectURL(blob);\r\n\t\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.showEditList = false;\r\n\t\tvm.OrderUpdateReqModel = [];\r\n\r\n\r\n\t\tvm.OpenOrderEditingModel = function (orderDataToUpdate) { \r\n\t\t\tvm.orderDataToUpdate = orderDataToUpdate;\r\n\t\t\tvm.orderItemsDataToUpdate = angular.copy(orderDataToUpdate.ListItemsInOrder);\r\n\t\t\tOrderEditingModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'orderEditModel.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.addNewPart = function () {\r\n\t\t\tvm.showEditList = true; \r\n\t\t\tvm.newFilter = {\r\n\t\t\t\tstrItem: null,\r\n\t\t\t\tnItemQuantity: 1,\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\tvm.saveFilter = function (form) {\r\n\t\t\tif (!form.$valid || !vm.newFilter.strItem || !vm.newFilter.nItemQuantity) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (vm.newFilter.nItemQuantity < 1) {\r\n\t\t\t\tvm.newFilter.nItemQuantity = 1;\r\n\t\t\t}\r\n\t\t\tconst newPart = {\r\n\t\t\t\tstrItemId: vm.newFilter.strItem.MMFPartId,\r\n\t\t\t\tstrItemName: vm.newFilter.strItem.PartName,\r\n\t\t\t\tstrSKUId: vm.newFilter.strItem.SKUId,\r\n\t\t\t\tnItemQuantity: vm.newFilter.nItemQuantity,\r\n\t\t\t};\r\n\t\t\tvm.orderItemsDataToUpdate.push(newPart);\r\n\t\t\tvm.newFilter = null; \r\n\t\t\tvm.showEditList = false; \r\n\t\t};\r\n\r\n\t\t\r\n\r\n\t\t$scope.increasePartQuantity = function (part) {\r\n\t\t\tpart.nItemQuantity++;\r\n\t\t};\r\n\r\n\t\t$scope.decreasePartQuantity = function (part) {\r\n\t\t\tif (part.nItemQuantity > 1) {\r\n\t\t\t\tpart.nItemQuantity--;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvm.masterInvetoryList = [];\r\n\t\tvm.GetAllVisibleMasterParts = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"PartName\": \"\",\r\n\t\t\t\t\"PartCategoryGroup\": \"\",\r\n\t\t\t\t\"PartBrand\": \"\",\r\n\t\t\t\t\"PartSubGroup\": \"\",\r\n\t\t\t\t\"SearchText\": \"\"\r\n\t\t\t}\r\n\t\t\tInventoryItemListService.GetAllVisibleMasterParts(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.masterInvetoryList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.GetAllVisibleMasterParts();\r\n\r\n\t\tvm.deletePart = function (orderpart) {\r\n\t\t\tconst index = vm.orderItemsDataToUpdate.indexOf(orderpart);\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tvm.orderItemsDataToUpdate.splice(index, 1);\r\n\t\t\t}\r\n\t\t};\r\n\t\t\r\n\r\n\t\tvm.closeOrderEditingModel = function () {\r\n\t\t\tOrderEditingModel.close();\r\n\t\t\tvm.disableCreateButton = false;\r\n\t\t\tvm.orderDataToUpdate = \"\";\r\n\t\t\tvm.orderItemsDataToUpdate = [];\r\n\t\t\tvm.OrderUpdateReqModel = [];\r\n\t\t}\r\n\t\t\r\n\t\tvm.UpdateMSLOrder = function () {\r\n\t\t\tvm.orderItemsDataToUpdate.forEach(function (orderItem) {\r\n\t\t\t\tconst filteredOrderItem = {\r\n\t\t\t\t\tstrItemId: orderItem.strItemId || '', \r\n\t\t\t\t\tstrItemName: orderItem.strItemName || '',\r\n\t\t\t\t\tstrSKUId: orderItem.strSKUId || '',\r\n\t\t\t\t\tnItemQuantity: orderItem.nItemQuantity || 1\r\n\t\t\t\t};\r\n\t\t\t\tvm.OrderUpdateReqModel.push(filteredOrderItem);\r\n\t\t\t});\r\n\t\t\tif(vm.OrderUpdateReqModel.length > 0){\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"OrderId\" : vm.orderDataToUpdate.OrderId,\r\n\t\t\t\t\t\"objLIstItemDetaiList\": vm.OrderUpdateReqModel\r\n\t\t\t\t}\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t\tInventoryCartService.UpdateMSLOrder(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\",\"Order Updated Successfully\");\r\n\t\t\t\t\t\tvm.closeOrderEditingModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.applyOrderFilter();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\tfunction base64ToArrayBuffer(base64) {\r\n\t\t\tvar ret = base64.replace('data:application/pdf;base64,', '');\r\n\t\t\tvar binaryString = atob(ret);\r\n\t\t\tvar binaryLen = binaryString.length;\r\n\t\t\tvar bytes = new Uint8Array(binaryLen);\r\n\t\t\tfor (var i = 0; i < binaryLen; i++) {\r\n\t\t\t\tvar ascii = binaryString.charCodeAt(i);\r\n\t\t\t\tbytes[i] = ascii;\r\n\t\t\t}\r\n\t\t\treturn bytes;\r\n\t\t}\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('inventorynewService', function (ApiURL, SchedulingAPI, $window, $localStorage, $http) {\r\n\r\n this.GetUserAllSalesOrderDetailforWeb = function (token, orderStatus, SearchText, category, brandName, productGroup, orderBy, sortType, fPageIndex, fPageSize, startDate, endDate, dateField) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetUserAllSalesOrderDetailforWeb?OrderStatus=' + orderStatus + '&startDate=' + startDate + '&EndDate=' + endDate + '&SearchText=' + SearchText + '&dateField=' + dateField + '&category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup + '&OrderBy=' + orderBy + '&SortType=' + sortType + '&PageSize=' + fPageSize + '&PageIndex=' + fPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetUserInventoryStockforweb = function (token, orderStatus, SearchText, category, brandName, productGroup, orderBy, sortType, userId, dPageIndex, dPageSize, startDate, endDate) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetUserInventoryStockforweb?SearchText=' + SearchText + '&Category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup + '&startDate=' + startDate + '&EndDate=' + endDate + '&OrderBy=' + orderBy + '&SortType=' + sortType + '&StockType=' + orderStatus + '&UserId=' + userId + '&PageSize=' + dPageSize + '&PageIndex=' + dPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetUserSalesOrderIntatiedByZoho = function (token, orderStatus, SearchText, category, brandName, productGroup, orderBy, sortType, ePageIndex, ePageSize, startDate, endDate) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetUserSalesOrderIntatiedByZoho?OrderStatus=' + orderStatus + '&startDate=' + startDate + '&EndDate=' + endDate + '&SearchText=' + SearchText + '&Category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup + '&OrderBy=' + orderBy + '&SortType=' + sortType + '&PageSize=' + ePageSize + '&PageIndex=' + ePageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.InventoryDefectStockList = function (token, SearchText, category, brandName, productGroup, uPageIndex, uPageSize, startDate, endDate) {\r\n var url = ApiURL + '/api/ZohoInventoryController/InventoryDefectStockList?Category=' + category + '&BrandName=' + brandName + '&ItemGroup=' + productGroup + '&SearchText=' + SearchText + '&StartDate=' + startDate + '&EndDate=' + endDate + '&PageSize=' + uPageSize + '&PageIndex=' + uPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetItemBrandName = function (token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetItemBrandName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetItemGroupName = function (brandName, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetItemGroupName?BrandName=' + brandName;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetItemListName = function (brandName, productGroup, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetItemListName?BrandName=' + brandName + '&ItemGroupName=' + productGroup;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetShipmentOrder = function (salesOrderNumber, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetShipmentOrder?salesOrderNumber=' + salesOrderNumber;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.TrackinDetailForDefectItem = function (trackingId, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/TrackinDetailForDefectItem?TrackingId=' + trackingId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetServiceCentenAndTeamStockData = function (LineItemId, SearchTag, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetServiceCentenAndTeamStockData?LineItemId=' + LineItemId + '&SearchTag=' + SearchTag;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.InventoryMangementOnServiceLevel = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/InventoryMangementOnServiceLevel';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.MarkSalesOrderasDelivered = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/MarkSalesOrderasDelivered';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetWarehouse = function (token, data) {\r\n var url = ApiURL + '/api/ItemsInventory/GetNearbyWarehouseList';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetSalesOrder = function (loggedinUser, salesOrderId, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetSalesOrder?salesOrderId=' + salesOrderId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateRequestInventoryJobLineItemStatus = function (ticketId, status, lineitemId, updateStatusRemark, token) {\r\n var url = ApiURL + '/api/JobLineItem/UpdateRequestInventoryJobLineItemStatus?TicketId=' + ticketId + '&Status=' + status + '&LineItemId=' + lineitemId + '&Remark=' + updateStatusRemark;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetRequestedLineItemDetailsByTicketId = function (loggedinUser, salesOrderId, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetRequestedLineItemDetailsByTicketId?TicketId=' + salesOrderId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.createSalesOrder = function (token, data) {\r\n var url = ApiURL + '/api/ItemsInventory/CreateSalesOrderForLineitem';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.InventoryReturnOfDefectPartsByServiceCenter = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/InventoryReturnOfDefectPartsByServiceCenter';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.TransferInventory = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/TransferInventory';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CustomerReturnInventory = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/CustomerReturnInventory';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.viewReportPdf = function (loggedinUser, token, fileName) {\r\n var url = ApiURL + '/api/Image?fileName=' + fileName;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetUserInventoryStockCsvDownload = function (token, orderStatus, SearchText, category, brandName, productGroup, orderBy, sortType, userId, dPageIndex, dPageSize, startDate, endDate) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetUserInventoryStockCsvDownload?SearchText=' + SearchText + '&Category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup + '&startDate=' + startDate + '&EndDate=' + endDate + '&OrderBy=' + orderBy + '&SortType=' + sortType + '&StockType=' + orderStatus + '&UserId=' + userId + '&PageSize=' + dPageSize + '&PageIndex=' + dPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('inventorynewController', function (inventorynewService, $window, PublicApiURL, ApiURL,\r\n\t$state, $localStorage, $scope, $uibModal, inventorynewService, $timeout, $stateParams) {\r\n\tvm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvm.NokiaTableHeaderChange = $localStorage.accountConfig.NokiaTableHeaderChange;\r\n\tvar loggedinUserName = $localStorage.loggedInUser_FirstName + \" \" + $localStorage.loggedInUser_LastName;\r\n\tvar token = $localStorage.token;\r\n\tvar loggedinUserImage = $localStorage.picture;\r\n\tvar uTicketId = $stateParams.ticketId;\r\n\tvm.SearchTag = \"\";\r\n\tvm.showMapPermision = false;\r\n\tvm.superPower = false;\r\n\t$scope.isCollapsed = true;\r\n\tvm.UserId = \"\";\r\n\tvm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n\tvm.Role = $localStorage.loggedInUser_Role;\r\n\tvm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\tvm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n\tvar accountConfig = $localStorage.accountConfig;\r\n\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\tvm.isDefective = false;\r\n\tvm.ImageArray = [];\r\n\tvm.states = [];\r\n\tvm.cities = [];\r\n\tvm.isShow = true;\r\n\tvm.showEditList = false;\r\n\tvm.showAction = true;\r\n\tvm.dataFilters = [];\r\n\tvm.CancellationReasons = '';\r\n\tvm.IsCommissionDetect = false;\r\n\tvm.urlForNonFeasible = '';\r\n\tvm.currentStepModel = {};\r\n\tvm.dtInstanceNearBy = {};\r\n\tvm.dtInstanceFixed = {};\r\n\tvm.dtInstance = {};\r\n\tvm.dtInstancePre = {};\r\n\tvm.SparePartAddress = {};\r\n\tvm.disableBroadcastButton = false;\r\n\tvm.disableRouteButton = false;\r\n\tvm.IsChatEnabled = true;\r\n\tvm.showPrefer = '';\r\n\tvm.disabledDrop = false;\r\n\tvm.showloading = false\r\n\tvm.ComplianceDisable = true;\r\n\tvm.PincodeEnabled = true;\r\n\tvm.passSerialNum = false;\r\n\tvm.PrivateDisable = false;\r\n\tvm.messageText = \"\";\r\n\tvm.PriceLineItemList = [];\r\n\tvm.LineItemDataList = [];\r\n\tvm.lineItem = \"\";\r\n\tvm.serviceType = '';\r\n\tvm.AppointmentTime = '';\r\n\tvm.ticketPrice = \"\";\r\n\tvm.freelancerPrice = \"\";\r\n\tvm.edit = true;\r\n\tvm.BonusPenaltyList = [];\r\n\tvm.BonusList = [];\r\n\tvm.PenaltyList = [];\r\n\tvm.ShipmentDetails = \"\";\r\n\tvm.LineitemActivityList = [];\r\n\tvm.LineItemCategoryType = \"\";\r\n\tvm.projectId = \"\";\r\n\tvm.selectedprojectId = \"\";\r\n\tvm.dynamicpricing = \"\";\r\n\tvm.FreelancrPriceEnable = \"\";\r\n\tvm.PercentageEnable = \"\";\r\n\tvar price = 0;\r\n\tvar Quantity = 1;\r\n\tvar totalFPrice = 0.0;\r\n\tvm.BasePriceTotal = 0.0;\r\n\tvm.dFreelancerPriceTotal = 0.0;\r\n\tvm.PercentageTotal = 0.0;\r\n\tvm.FreelancerPriceTotal = 0.0;\r\n\tvm.MobiforceCommission = $localStorage.accountConfig.MobiforceCommissionPercentage;\r\n\tvm.IsFinalApproval = false;\r\n\tvm.disableExceptionButton = false;\r\n\t// vm.IsWithInDays = true;\r\n\tvm.StockCountToAssign = 0;\r\n\tvm.PartActionType = \"\";\r\n\tvm.feedbackremark = '';\r\n\tvm.PlannedClosureDateType = \"first\";\r\n\tvm.WithInDays = 1;\r\n\tvm.WithInDaysNumbers = [1, 2, 3, 4, 5];\r\n\tvm.IsSafetyAudit = 'Not Done';\r\n\tvm.ratingwarning = \"\";\r\n\tvm.approvalRemark = '';\r\n\tvm.MaterialStatusList = [\"Dispatched\", \"Delivered\", \"Partially Delivered\", \"Not Delivered\"];\r\n\tvm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n\tvm.SelectedMaterial = '';\r\n\tvm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n\tvm.ZOHOWarehouseName = '';\r\n\tvm.customerJobCard = [];\r\n\tvm.PageIndex = 1;\r\n\tvm.PageSize = 10;\r\n\tstartDate = '';\r\n\tendDate = '';\r\n\tvm.sortType = \"\"\r\n\tvm.orderBy = \"\";\r\n\tvm.itemValue = '';\r\n\tvm.OrderStatus = \"\";\r\n\tvm.SearchText = \"\";\r\n\tvar uPageIndex = 1;\r\n\tvar uPageSize = 10;\r\n\tvar dPageSize = 10;\r\n\tvar dPageIndex = 1;\r\n\tvar fPageIndex = 1;\r\n\tvar fPageSize = 10;\r\n\tvar ePageIndex = 1;\r\n\tvar ePageSize = 10;\r\n\tvm.userPageListCount = 10;\r\n\tvm.financePageListCount = 10;\r\n\tvm.defectedPageListCount = 10;\r\n\tvm.brandName = \"\";\r\n\tvm.partName = \"\";\r\n\tvm.productGroup = \"\";\r\n\tvm.BrandListName = \"\";\r\n\tvm.allSalesOrderPageListCount = 10;\r\n\tvm.allHistoryOrderPageListCount = 10;\r\n\tvm.pageListCounts = [10, 20, 30, 50];\r\n\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\tvm.dateField = \"CreatedOn\";\r\n\tvm.ticketdates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\tvm.ticketranges = {\r\n\t\t'Today': [moment(), moment()],\r\n\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t};\r\n\r\n\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\tvm.ApplyFilter();\r\n\t};\r\n\tif (accountConfig && accountConfig.EnableRegion) {\r\n\t\tvm.EnableRegion = accountConfig.EnableRegion;\r\n\t} else {\r\n\t\tvm.EnableRegion = false;\r\n\t}\r\n\r\n\tvm.PartsList = [\"CCTV\", \"Fan\", \"Geyser\"];\r\n\tvm.TemplateData = [];\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\r\n\t\tvar token = $localStorage.token;\r\n\t\tvm.ticketType = $stateParams.type;\r\n\t\tvm.TicketId = $stateParams.ticketId;\r\n\r\n\t\tvm.getPicUrl = function (ItemImage) {\r\n\t\t\treturn ItemImage ? ApiURL + \"/api/ZohoInventoryController/GetItemImage?item=\" + ItemImage : null;\r\n\t\t}\r\n\r\n\t\tvm.showPartDetails = false;\r\n\r\n\t\tvm.OpenSidePanel = function (s) {\r\n\t\t\tvm.PartDetails = s;\r\n\t\t\tvm.showPartDetails = true;\r\n\t\t}\r\n\r\n\t\tvm.trackingStatus = false;\r\n\t\tvm.TrackingSidePanel = function (p) {\r\n\t\t\tvm.TrackDetails = p;\r\n\t\t\tvm.trackingStatus = true;\r\n\t\t}\r\n\t\tvm.assigntotech = false;\r\n\t\tvm.AssignSidePanel = function (q) {\r\n\t\t\tvm.CountDetails = q;\r\n\t\t\tvm.lineItem = vm.CountDetails.LineItemId;\r\n\t\t\tvm.GetServiceCentenAndTeamStockData();\r\n\t\t\tvm.assigntotech = true;\r\n\t\t}\r\n\r\n\t\tvm.getPic = function (LineItemAttachment) {\r\n\t\t\treturn LineItemAttachment ? ApiURL + \"/api/ZohoInventoryController/GetItemImage?item=\" + LineItemAttachment : null;\r\n\t\t}\r\n\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.AssignStockModel = function (type, user) {\r\n\t\t\tvm.PartActionType = type;\r\n\t\t\tvm.userDetails = user;\r\n\t\t\tif(user.LineItemId){\r\n\t\t\t\tvm.lineItem = user.LineItemId;\r\n\t\t\t}\r\n\t\t\tvm.createTaskModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'createtask.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseAssignStockModel = function () {\r\n\t\t\tvm.createTaskModelOpen.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.StockCountToAssign = 0;\r\n\t\t}\r\n\r\n\t\tvm.CountPopup = function (lineItem) {\r\n\t\t\tvm.lineItem = lineItem;\r\n\t\t\tvm.GetServiceCentenAndTeamStockData();\r\n\t\t\tvm.COuntTaskModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'countclick.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tvm.ClosecountpopupModel = function () {\r\n\t\t\tvm.COuntTaskModelOpen.close();\r\n\r\n\t\t}\r\n\r\n\t\t$scope.totalFinList = 0;\r\n\t\t$scope.usersPerPage = vm.allSalesOrderPageListCount;\r\n\t\t$scope.SalesOrderPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllSalesOrderPageListCount = function () {\r\n\t\t\t$scope.usersPerPage = vm.allSalesOrderPageListCount;\r\n\t\t\tfPageSize = $scope.usersPerPage;\r\n\t\t\t$scope.AllSalesOrderTablePageChanged($scope.SalesOrderPagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tfPageIndex = $scope.SalesOrderPagination.current;\r\n\t\t\t$scope.AllSalesOrderTablePageChanged = function (newPage) {\r\n\t\t\t\tfPageIndex = newPage;\r\n\t\t\t\tvm.GetUserAllSalesOrderDetailforWeb(token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, fPageIndex, fPageSize, startDate, endDate, vm.dateField);\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfPageIndex = $scope.SalesOrderPagination.current;\r\n\t\t$scope.AllSalesOrderTablePageChanged = function (newPage) {\r\n\t\t\tfPageIndex = newPage;\r\n\t\t\tvm.GetUserAllSalesOrderDetailforWeb(token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, fPageIndex, fPageSize, startDate, endDate, vm.dateField);\r\n\r\n\t\t};\r\n\r\n\t\tvm.orderdetailsview = function (salesOrderDetail) {\r\n\t\t\t$state.go('index.OrderDetailView', {\r\n\t\t\t\torder_id: salesOrderDetail\r\n\t\t\t}, {\r\n\t\t\t\treload: true\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.TicketPartOrderList = [];\r\n\t\tvm.GetUserAllSalesOrderDetailforWeb = function () {\r\n\t\t\tinventorynewService.GetUserAllSalesOrderDetailforWeb(token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, fPageIndex, fPageSize, startDate, endDate, vm.dateField).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.TicketPartOrderList = resp.data.zohoItemRequestModels;\r\n\t\t\t\t\t$scope.totalFinList = resp.data.Count;\r\n\t\t\t\t\tif (vm.TicketPartOrderList.length < vm.allSalesOrderPageListCount)\r\n\t\t\t\t\t\tvm.financeListLength = $scope.totalFinList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.financeListLength = fPageIndex * vm.allSalesOrderPageListCount;\r\n\t\t\t\t\tif (fPageIndex == 1)\r\n\t\t\t\t\t\tvm.fpageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.fpageindexCount = (((fPageIndex - 1) * vm.allSalesOrderPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, function (error) {\r\n\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\r\n\t\t$scope.totalSalesorder = 0;\r\n\t\t$scope.usersPerPageRequest = vm.allHistoryOrderPageListCount;\r\n\t\t$scope.Requestpagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changePartOrderedPageListCount = function () {\r\n\t\t\t$scope.usersPerPageRequest = vm.allHistoryOrderPageListCount;\r\n\t\t\tePageSize = $scope.usersPerPageRequest;\r\n\t\t\t$scope.RequestTablePageChanged($scope.Requestpagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\r\n\t\t\tePageIndex = $scope.Requestpagination.current;\r\n\t\t\t$scope.RequestTablePageChanged = function (newPage) {\r\n\t\t\t\tePageIndex = newPage;\r\n\t\t\t\tvm.GetUserSalesOrderIntatiedByZoho(token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, ePageIndex, ePageSize, startDate, endDate);\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tePageIndex = $scope.Requestpagination.current;\r\n\t\t$scope.RequestTablePageChanged = function (newPage) {\r\n\t\t\tePageIndex = newPage;\r\n\t\t\tvm.GetUserSalesOrderIntatiedByZoho(token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, ePageIndex, ePageSize, startDate, endDate);\r\n\r\n\t\t};\r\n\r\n\r\n\r\n\t\tvm.PartOrderList = [];\r\n\t\tvm.GetUserSalesOrderIntatiedByZoho = function (status) {\r\n\t\t\tvm.OrderStatus = status;\r\n\t\t\tinventorynewService.GetUserSalesOrderIntatiedByZoho(token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, ePageIndex, ePageSize, startDate, endDate).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.PartOrderList = resp.data.zohoItemRequestModels;\r\n\t\t\t\t\t$scope.totalSalesorder = resp.data.Count;\r\n\t\t\t\t\tif (vm.PartOrderList.length < vm.allHistoryOrderPageListCount)\r\n\t\t\t\t\t\tvm.historyListLength = $scope.totalSalesorder;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.historyListLength = ePageIndex * vm.allHistoryOrderPageListCount;\r\n\t\t\t\t\tif (ePageIndex == 1)\r\n\t\t\t\t\t\tvm.epageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.epageindexCount = (((ePageIndex - 1) * vm.allHistoryOrderPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, function (error) {\r\n\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\t\t$scope.totalInventory = 0;\r\n\t\t$scope.usersStockPageRequest = vm.financePageListCount;\r\n\t\t$scope.Requestpagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeMyStockPageListCount = function () {\r\n\t\t\t$scope.usersPerPageRequest = vm.financePageListCount;\r\n\t\t\tdPageSize = $scope.usersPerPageRequest;\r\n\t\t\t$scope.MystockTablePageChanged($scope.Requestpagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\r\n\t\t\tdPageIndex = $scope.Requestpagination.current;\r\n\t\t\t$scope.MystockTablePageChanged = function (newPage) {\r\n\t\t\t\tdPageIndex = newPage;\r\n\t\t\t\tvm.GetUserInventoryStockforweb(token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, vm.UserId, dPageIndex, dPageSize, startDate, endDate);\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tdPageIndex = $scope.Requestpagination.current;\r\n\t\t$scope.MystockTablePageChanged = function (newPage) {\r\n\t\t\tdPageIndex = newPage;\r\n\t\t\tvm.GetUserInventoryStockforweb(token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, vm.UserId, dPageIndex, dPageSize, startDate, endDate);\r\n\r\n\t\t};\r\n\r\n\t\tvm.MyInventoryStockList = [];\r\n\t\tvm.GetUserInventoryStockforweb = function () {\r\n\t\t\tinventorynewService.GetUserInventoryStockforweb(token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, vm.UserId, dPageIndex, dPageSize, startDate, endDate).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.MyInventoryStockList = resp.data.LineItemList;\r\n\t\t\t\t\t$scope.totalInventory = resp.data.Count;\r\n\t\t\t\t\tvm.totalInventoryValue = resp.data.InventoryTotal;\r\n\t\t\t\t\tif (vm.MyInventoryStockList.length < vm.financePageListCount)\r\n\t\t\t\t\t\tvm.myStockListLength = $scope.totalInventory;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.myStockListLength = dPageIndex * vm.financePageListCount;\r\n\t\t\t\t\tif (dPageIndex == 1)\r\n\t\t\t\t\t\tvm.dpageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.dpageindexCount = (((dPageIndex - 1) * vm.financePageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, function (error) {\r\n\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetUserInventoryStockCsvDownload = function () {\r\n\t\t\tinventorynewService.GetUserInventoryStockCsvDownload(token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, vm.UserId, dPageIndex, dPageSize, startDate, endDate).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvar csvData = resp.data;\r\n\r\n\t\t\t\t\t// Create a Blob from the CSV data\r\n\t\t\t\t\tvar blob = new Blob([csvData], { type: 'text/csv' });\r\n\r\n\t\t\t\t\t// Create a URL for the Blob\r\n\t\t\t\t\tvar url = window.URL.createObjectURL(blob);\r\n\r\n\t\t\t\t\t// Create an anchor element for the download link\r\n\t\t\t\t\tvar a = document.createElement('a');\r\n\t\t\t\t\ta.href = url;\r\n\t\t\t\t\ta.download = 'inventory.csv'; // Set the desired filename\r\n\r\n\t\t\t\t\t// Simulate a click to trigger the download\r\n\t\t\t\t\ta.click();\r\n\r\n\t\t\t\t\t// Release the URL object\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t$scope.totalDefected = 0;\r\n\t\t$scope.defectedStockPageRequest = vm.defectedPageListCount;\r\n\t\t$scope.Requestpagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeMyDefectedPageListCount = function () {\r\n\t\t\t$scope.usersPerPageRequest = vm.defectedPageListCount;\r\n\t\t\tuPageSize = $scope.usersPerPageRequest;\r\n\t\t\t$scope.MyDefectedTablePageChanged($scope.Requestpagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\r\n\t\t\tuPageIndex = $scope.Requestpagination.current;\r\n\t\t\t$scope.MyDefectedTablePageChanged = function (newPage) {\r\n\t\t\t\tuPageIndex = newPage;\r\n\t\t\t\tvm.GetInventoryDefectStockList(token, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tuPageIndex = $scope.Requestpagination.current;\r\n\t\t$scope.MyDefectedTablePageChanged = function (newPage) {\r\n\t\t\tuPageIndex = newPage;\r\n\t\t\tvm.GetInventoryDefectStockList(token, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n\t\t};\r\n\r\n\t\tvm.DefectiveStockList = [];\r\n\t\tvm.GetInventoryDefectStockList = function () {\r\n\t\t\tinventorynewService.InventoryDefectStockList(token, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, uPageIndex, uPageSize, startDate, endDate).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.DefectiveStockList = resp.data.inventoryDefectStocks;\r\n\t\t\t\t\t$scope.totalDefected = resp.data.count;\r\n\t\t\t\t\tif (vm.DefectiveStockList.length < vm.defectedPageListCount)\r\n\t\t\t\t\t\tvm.myDefectedListLength = $scope.totalDefected;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.myDefectedListLength = uPageIndex * vm.defectedPageListCount;\r\n\t\t\t\t\tif (uPageIndex == 1)\r\n\t\t\t\t\t\tvm.dpageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.dpageindexCount = (((uPageIndex - 1) * vm.defectedPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, function (error) {\r\n\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.setMainOrderStatus = function (status, tabName, mainTab) {\r\n\t\t\tvm.ActiveTab = tabName;\r\n\t\t\tvm.MainActiveTab = mainTab;\r\n\t\t\tvm.OrderStatus = status;\r\n\t\t\tstartDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t\tif (vm.MainActiveTab == 'Parts') {\r\n\t\t\t\tvm.UserId = \"\";\r\n\t\t\t\tvm.partName = \"\";\r\n\t\t\t\tvm.SearchText = \"\";\r\n\t\t\t\tvm.brandName = \"\";\r\n\t\t\t\tvm.productGroup = \"\";\r\n\t\t\t\tvm.GetUserAllSalesOrderDetailforWeb(status);\r\n\t\t\t}\r\n\t\t\telse if (vm.MainActiveTab == 'Orders') {\r\n\t\t\t\tvm.UserId = \"\";\r\n\t\t\t\tvm.partName = \"\";\r\n\t\t\t\tvm.SearchText = \"\";\r\n\t\t\t\tvm.brandName = \"\";\r\n\t\t\t\tvm.productGroup = \"\";\r\n\t\t\t\tvm.GetUserSalesOrderIntatiedByZoho(status);\r\n\t\t\t}\r\n\t\t\telse if (vm.MainActiveTab == 'My Stock') {\r\n\t\t\t\tvm.UserId = \"\";\r\n\t\t\t\tvm.partName = \"\";\r\n\t\t\t\tvm.SearchText = \"\";\r\n\t\t\t\tvm.brandName = \"\";\r\n\t\t\t\tvm.productGroup = \"\";\r\n\t\t\t\tvm.GetUserInventoryStockforweb(status);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.setOrderStatus = function (status, tabName, mainTab) {\r\n\t\t\tvm.ActiveTab = tabName;\r\n\t\t\tvm.MainActiveTab = mainTab;\r\n\t\t\tvm.OrderStatus = status;\r\n\t\t\tif (vm.MainActiveTab == 'Parts') {\r\n\t\t\t\tif (vm.ActiveTab == 'Part Requested' || vm.ActiveTab == 'Part Consumed' || vm.ActiveTab == 'Part Rejected') {\r\n\t\t\t\t\tvm.GetUserAllSalesOrderDetailforWeb(status);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (vm.MainActiveTab == 'Orders') {\r\n\t\t\t\tif (vm.ActiveTab == 'Part Purchase Order' || vm.ActiveTab == 'Part Received') {\r\n\t\t\t\t\tvm.GetUserSalesOrderIntatiedByZoho(status);\r\n\t\t\t\t}\r\n\t\t\t\telse if (vm.ActiveTab == 'Return Order') {\r\n\t\t\t\t\tvm.GetInventoryDefectStockList();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (vm.MainActiveTab == 'My Stock') {\r\n\t\t\t\tvm.GetUserInventoryStockforweb(status);\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.setOrderStatus('pending', 'Part Requested', 'Parts');\r\n\r\n\t\tvm.changeCategoryFilter = function () {\r\n\t\t\tvm.SearchText = \"\";\r\n\t\t\tvm.ApplyFilter();\r\n\t\t}\r\n\r\n\t\tvm.searchByText = function () {\r\n\t\t\tvm.brandName = \"\";\r\n\t\t\tvm.partName = \"\";\r\n\t\t\tvm.productGroup = \"\";\r\n\t\t\tvm.ApplyFilter();\r\n\t\t}\r\n\r\n\r\n\t\tvm.GetItemGroupName = function () {\r\n\t\t\tif (!vm.brandName) {\r\n\t\t\t\tvm.brandName = \"\";\r\n\t\t\t}\r\n\t\t\tinventorynewService.GetItemGroupName(vm.brandName, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.PartNameList = resp.data;\r\n\t\t\t\t\tvm.changeCategoryFilter();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.GetItemGroupName();\r\n\r\n\t\tvm.GetItemListName = function () {\r\n\t\t\tif (!vm.productGroup) {\r\n\t\t\t\tvm.productGroup = \"\";\r\n\t\t\t}\r\n\t\t\tinventorynewService.GetItemListName(vm.brandName, vm.productGroup, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.PartList = resp.data;\r\n\t\t\t\t\tvm.changeCategoryFilter();\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetItemListName();\r\n\r\n\t\tvm.GetItemBrandName = function () {\r\n\t\t\tinventorynewService.GetItemBrandName(token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.BrandList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetItemBrandName();\r\n\r\n\t\tvm.AddDefectedStockModal = function () {\r\n\t\t\tvm.StockModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'DefectedStock.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeDefectedStockModal = function () {\r\n\t\t\tvm.StockModal.close();\r\n\t\t\tvm.addTicketId = \"\";\r\n\t\t\tvm.partName = \"\";\r\n\t\t\tvm.brandName = \"\";\r\n\t\t\tvm.addType = \"\";\r\n\t\t\tvm.productGroup = \"\";\r\n\t\t\tvm.addQuantity = 0;\r\n\t\t}\r\n\r\n\t\tvm.AddDefectedPartInStock = function () {\r\n\t\t\tvm.DisableCreateButton(true);\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Type\": vm.addType,\r\n\t\t\t\t\"TicketId\": vm.addTicketId,\r\n\t\t\t\t\"BrandName\": vm.brandName,\r\n\t\t\t\t\"PartGroup\": vm.productGroup,\r\n\t\t\t\t\"PartName\": vm.partName,\r\n\t\t\t\t\"Quantity\": vm.addQuantity\r\n\t\t\t}\r\n\t\t\tinventorynewService.CustomerReturnInventory(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t\t\t\tvm.closeDefectedStockModal();\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n\t\t\t\t\t}, 2000)\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\t\tvm.OrdercreateModal = function () {\r\n\t\t\tvm.showEditList = true;\r\n\t\t\tvm.showAction = false;\r\n\t\t\tvm.OrderModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'CreateOrderModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeOrdercreateModal = function () {\r\n\t\t\tvm.OrderModal.close();\r\n\t\t\tvm.dataFilters = [];\r\n\t\t}\r\n\r\n\t\tvm.addMoreFilter = function () {\r\n\t\t\tvm.showEditList = true;\r\n\t\t\tvm.showAction = false;\r\n\t\t};\r\n\t\tvm.addNewFilter = function (filter) {\r\n\t\t\tvm.dataFilters.push({\r\n\t\t\t\t\"PartName\": filter.PartName,\r\n\t\t\t\t\"Quantity\": filter.Quantity,\r\n\t\t\t\t\"WareHouse\": filter.WareHouse,\r\n\t\t\t\t\"OrderType\": filter.OrderType,\r\n\t\t\t\t\"TicketId\": filter.TicketId,\r\n\t\t\t\t\"Remark\": filter.Remark\r\n\t\t\t});\r\n\t\t\tvm.showEditList = false;\r\n\t\t\tvm.showAction = true;\r\n\t\t};\r\n\r\n\t\t$scope.deleteDataFilter = function (filter) {\r\n\t\t\tconst index = vm.dataFilters.indexOf(filter);\r\n\t\t\tif (index !== -1) {\r\n\t\t\t\tvm.dataFilters.splice(index, 1);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvm.GetShipmentOrder = function (salesOrderNumber) {\r\n\t\t\tinventorynewService.GetShipmentOrder(salesOrderNumber, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.TrackingDetails = resp.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.TrackinDetailForDefectItem = function (trackingId) {\r\n\t\t\tinventorynewService.TrackinDetailForDefectItem(trackingId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.TrackingDetails = resp.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetTrackingDetailsByTrackinNumber = function (trackingNo, ticketId) {\r\n\t\t\tvm.trackNo = trackingNo;\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Id\": ticketId,\r\n\t\t\t\t\"trackingNumber\": trackingNo\r\n\t\t\t};\r\n\t\t\tinventorynewService.GetTrackingDetailsByTrackinNumber(data, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.getTrackingDetailsList = resp.data;\r\n\t\t\t\t\t\tvm.lastTag = vm.getTrackingDetailsList[vm.getTrackingDetailsList.length - 1].tag;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// vm.GetItemListName = function () {\r\n\t\t// \tinventorynewService.GetItemListName(token).then(function (resp) {\r\n\t\t// \t\tif (resp && resp.data) {\r\n\t\t// \t\t\tvm.PartList = resp.data;\r\n\t\t// \t\t}\r\n\t\t// \t}, vm.showFailure);\r\n\t\t// }\r\n\t\t// vm.GetItemListName();\r\n\r\n\t\tvm.GetServiceCentenAndTeamStockData = function () {\r\n\t\t\tinventorynewService.GetServiceCentenAndTeamStockData(vm.lineItem, vm.SearchTag, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.TeamStockData = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.AssignOrPullBackStock = function () {\r\n\t\t\t// vm.stockAssignation_form.submitted = true;\r\n\t\t\tif (vm.stockAssignation_form.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"LineItemId\": vm.lineItem,\r\n\t\t\t\t\t\"UserId\": vm.userDetails.UserId,\r\n\t\t\t\t\t\"StockCount\": vm.StockCountToAssign,\r\n\t\t\t\t\t\"PartActionType\": vm.PartActionType\r\n\t\t\t\t}\r\n\t\t\t\tinventorynewService.InventoryMangementOnServiceLevel(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t\t\t\t\tvm.CloseAssignStockModel();\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.GetServiceCentenAndTeamStockData(vm.lineItem);\r\n\t\t\t\t\t\t\tvm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message)\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.OpenReturnModel = function (requestDetails, Type) {\r\n\t\t\tvm.ReturnType = Type;\r\n\t\t\tvm.ReturnRequest = requestDetails;\r\n\t\t\tif(vm.ReturnType == 'Goods'){\r\n\t\t\t\tvm.ReturnQuantity = vm.ReturnRequest.StockCount;\r\n\t\t\t}\r\n\t\t\telse if(vm.ReturnType == 'Damaged'){\r\n\t\t\t\tvm.ReturnQuantity = vm.ReturnRequest.DefectStockCount;\r\n\t\t\t}\r\n\t\t\tvm.returnModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'returnpopup.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\tsize: 'lg'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseReturnModel = function () {\r\n\t\t\tvm.returnModelOpen.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.defectedTrackingId = \"\";\r\n\t\t}\r\n\r\n\t\tvm.OpenStockTransferModel = function (partDetails) {\r\n\t\t\tvm.lineItem = partDetails.LineItemId;\r\n\t\t\tvm.PartToBeTransferDetail = partDetails.LineItemDescription;\r\n\t\t\tvm.GetServiceCentenAndTeamStockData();\r\n\t\t\tvm.stockTransferModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'stockTransferModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\tsize: 'lg'\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseStockTransferModel = function () {\r\n\t\t\tvm.stockTransferModelOpen.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.transferFromUser = \"\";\r\n\t\t\tvm.transferToUser = \"\";\r\n\t\t\tvm.transferQuantity = 0;\r\n\t\t}\r\n\r\n\r\n\t\tvm.defectItems = [];\r\n\r\n\t\tvm.Acceptancemodel = function (requestDetails) {\r\n\t\t\tvm.AllRequestDetail = requestDetails;\r\n\t\t\tvm.TicketForAcceptance = requestDetails.TicketId;\r\n\t\t\tvm.acceptanceModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'acceptancepopup.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseAcceptanceModel = function () {\r\n\t\t\tvm.isDefective = false;\r\n\t\t\tvm.acceptanceModelOpen.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.TicketForAcceptance = \"\";\r\n\t\t\tvm.DefectedCount = 0;\r\n\t\t\tvm.defectItems = [];\r\n\t\t}\r\n\r\n\t\tvm.submitForm = function () {\r\n\t\t\tif (vm.isDefective == true) {\r\n\t\t\t\tfor (var i = 0; i < vm.AllRequestDetail.NameList.length; i++) {\r\n\t\t\t\t\tvm.defectItems[i].IetemName = vm.AllRequestDetail.NameList[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvm.MarkSalesOrderDelivered();\r\n\t\t}\r\n\r\n\t\tvm.MarkSalesOrderDelivered = function () {\r\n\t\t\t// vm.stockAssignation_form.submitted = true;\r\n\t\t\t// if (vm.stockAssignation_form.$valid) {\r\n\t\t\tvm.DisableCreateButton(true);\r\n\t\t\tvar data = {\r\n\t\t\t\t\"SalesOrderId\": vm.AllRequestDetail.ZOHOSalesOrderId,\r\n\t\t\t\t\"Organization_id\": \"\",\r\n\t\t\t\t\"AcceptanceProof\": \"\",\r\n\t\t\t\t\"TicketId\": vm.TicketForAcceptance,\r\n\t\t\t\t\"defectItems\": vm.defectItems\r\n\t\t\t}\r\n\t\t\tinventorynewService.MarkSalesOrderasDelivered(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t\t\t\tvm.CloseAcceptanceModel();\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tif (vm.ActiveTab == 'Part Purchase Order') {\r\n\t\t\t\t\t\t\tvm.GetUserSalesOrderIntatiedByZoho(vm.OrderStatus);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (vm.ActiveTab == 'Part Requested') {\r\n\t\t\t\t\t\t\tvm.GetUserAllSalesOrderDetailforWeb(vm.OrderStatus);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 2000)\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t// }\r\n\t\t}\r\n\r\n\t\tvm.defectedTrackingId = \"\";\r\n\t\tvm.MarkReturnRaised = function () {\r\n\t\t\tvm.DisableCreateButton(true);\r\n\t\t\tvar data = {\r\n\t\t\t\t\"LineItemId\": vm.ReturnRequest.LineItemId,\r\n\t\t\t\t\"ReturnQuantity\": vm.ReturnQuantity,\r\n\t\t\t\t\"TrackingId\": vm.defectedTrackingId,\r\n\t\t\t\t\"ReturnType\": vm.ReturnType\r\n\t\t\t}\r\n\t\t\tinventorynewService.InventoryReturnOfDefectPartsByServiceCenter(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\tvm.CloseReturnModel();\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n\t\t\t\t\t}, 2000)\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.TransferInventory = function () {\r\n\t\t\tvm.DisableCreateButton(true);\r\n\t\t\tvar data = {\r\n\t\t\t\t\"LineItemId\": vm.lineItem,\r\n\t\t\t\t\"SenderUserId\": vm.transferFromUser,\r\n\t\t\t\t\"ReciverUserId\": vm.transferToUser,\r\n\t\t\t\t\"StockCount\": vm.transferQuantity\r\n\t\t\t}\r\n\t\t\tinventorynewService.TransferInventory(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t\t\t\tvm.CloseStockTransferModel();\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n\t\t\t\t\t}, 2000)\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.addFiles = function () {\r\n\t\t\t$(\"#dropzone1\").trigger(\"click\");\r\n\t\t}\r\n\t\tvm.TicketPartOrderList = [];\r\n\t\tvm.rejectpart = [];\r\n\t\tvm.RejectModal = function (item) {\r\n\t\t\tvm.rejectpart = item;\r\n\t\t\tvm.RejctShareModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'rejectmodal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.closerejectmodal = function () {\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.updateStatusRemark = \"\";\r\n\t\t\tvm.updateLineitemStatus = \"\";\r\n\t\t\tvm.RejctShareModal.close();\r\n\t\t}\r\n\r\n\r\n\r\n\t\tvm.UpdateRequestInventoryJobLineItemStatus = function () {\r\n\t\t\tvm.DisableCreateButton(true);\r\n\t\t\tvm.updateLineitemStatus = 'Rejected'\r\n\t\t\tinventorynewService.UpdateRequestInventoryJobLineItemStatus(vm.salesOrderId, vm.updateLineitemStatus, vm.rejectpart.LineItemId, vm.updateStatusRemark, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 202) {\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data);\r\n\t\t\t\t\t\tvm.GetPartRequestOrderLineItem('', vm.salesOrderId);\r\n\t\t\t\t\t\tvm.closerejectmodal();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.showFailure('Failed', resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.resetFilters = function () {\r\n\t\t\tvm.brandName = '';\r\n\t\t\tvm.productGroup = '';\r\n\t\t\tvm.partName = '';\r\n\t\t\tvm.ticketdates = '';\r\n\t\t\tvm.SearchText = '';\r\n\t\t\tvm.UserId = '';\r\n\t\t\tvm.changeCategoryFilter()\r\n\t\t};\r\n\r\n\r\n\t\tvm.downloadCSV = function () {\r\n\t\t\tvar worksheet = alasql('SELECT * INTO XLSX(\"users.xlsx\", {headers:true}) FROM ?', [$scope.users]);\r\n\t\t};\r\n\t\tvm.warehouseModal = function () {\r\n\t\t\tvm.ShareModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'warehouseModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.IsShipmentVisible = false;\r\n\r\n\t\t// vm.implementSelectItems = function (itemList, scope) {\r\n\t\t// \tscope.selectAll = false;\r\n\t\t// \tscope.showMinus = false;\r\n\t\t// \tvm.IsShipmentVisible = false;\r\n\t\t// \tscope.selectRow = function (i) {\r\n\t\t// \t\tscope.showMinus = false;\r\n\t\t// \t\tscope.selectAll = false;\r\n\t\t// \t\tvm.IsShipmentVisible = false;\r\n\t\t// \t\tfor (var j = 0; j < scope.TicketPartOrderList.length; j++) {\r\n\t\t// \t\t\tvar tempTickets = scope.TicketPartOrderList[j];\r\n\t\t// \t\t\tif (tempTickets.checked) {\r\n\t\t// \t\t\t\tscope.showMinus = true;\r\n\t\t// \t\t\t\tvm.IsShipmentVisible = true;\r\n\t\t// \t\t\t}\r\n\t\t// \t\t}\r\n\t\t// \t}\r\n\t\t// \tscope.applyAllSelect = function () {\r\n\t\t// \t\tangular.forEach(scope[itemList], function (d) {\r\n\t\t// \t\t\td.checked = scope.selectAll;\r\n\t\t// \t\t});\r\n\t\t// \t}\r\n\t\t// }\r\n\t\t// vm.implementSelectItems('TicketPartOrderList', this);\r\n\r\n\t\tvm.IsVisible = false;\r\n\t\tvar createOrderData = [];\r\n\t\tvar wareHouseItemList = [];\r\n\t\tvar sendWdata = {};\r\n\t\tvm.TotalInventoryAmount = \"0\";\r\n\t\tvm.ShowCreateShipment = function (index) {\r\n\t\t\tvm.listWdata = [];\r\n\t\t\tif (index.lineItem.LineItemId) {\r\n\t\t\t\tvm.GetWarehouse(index.lineItem.LineItemId, index.TicketId);\r\n\t\t\t}\r\n\t\t\tvm.GetPartRequestOrderLineItem('', index.TicketId);\r\n\t\t\tvm.JobLineItemId = index.lineItem.LineItemId;\r\n\t\t\tvm.ShipmentTicketId = index.TicketId;\r\n\t\t\tvm.TotalInventoryAmount = index.OrderAmount;\r\n\t\t}\r\n\r\n\t\tvm.closeWarehouseModal = function () {\r\n\t\t\tvm.IsVisible = false;\r\n\t\t\twareHouseItemList = [];\r\n\t\t\tvm.listWdata = [];\r\n\t\t\tvm.WarehouseNameSelected = \"\";\r\n\t\t\tcreateOrderData = [];\r\n\t\t\tvm.ShareModal.close();\r\n\t\t}\r\n\t\tvm.GetWarehouse = function (warehouseLineItemId, ticketId) {\r\n\t\t\tvar warehouseData = {\r\n\t\t\t\t\"Id\": warehouseLineItemId,\r\n\t\t\t\t\"TicketId\": ticketId\r\n\t\t\t}\r\n\t\t\tinventorynewService.GetWarehouse(token, warehouseData).then(function (resp) {\r\n\t\t\t\tvm.warehouseList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.WarehouseNameSelected = \"\";\r\n\t\tvm.createSalesOrder = function () {\r\n\t\t\tvm.DisableCreateButton(true);\r\n\t\t\tangular.forEach(vm.PartRequestLineitemData, function (d) {\r\n\t\t\t\tif (d.BackendApprovalStatus != 'Rejected') {\r\n\t\t\t\t\tsendWdata = {\r\n\t\t\t\t\t\tJobLineItemId: d.LineItemId,\r\n\t\t\t\t\t\tselectedWarehouse: vm.WarehouseNameSelected\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcreateOrderData.push(sendWdata);\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t\tdata = {\r\n\t\t\t\t\"itemIdWithWarehouseModels\": createOrderData,\r\n\t\t\t\t\"TicketId\": vm.salesOrderId,\r\n\t\t\t}\r\n\t\t\tinventorynewService.createSalesOrder(token, data).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.closeWarehouseModal();\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.showSuccess(\"Success\", 'Order Placed Successfully.');\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tvm.GetUserAllSalesOrderDetailforWeb(vm.OrderStatus);\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tcreateOrderData = [];\r\n\t\t\t\t\twareHouseItemList = [];\r\n\t\t\t\t\tsendWdata = {};\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetSalesOrder = function (isCollapsed, salesOrderId) {\r\n\t\t\tif (vm.salesOrderId == salesOrderId) {\r\n\t\t\t\t$scope.isCollapsed = !isCollapsed;\r\n\t\t\t}\r\n\t\t\t$scope.activeRow = salesOrderId;\r\n\t\t\tvm.salesOrderId = salesOrderId;\r\n\t\t\tif (vm.salesOrderId) {\r\n\t\t\t\tinventorynewService.GetSalesOrder(loggedinUser, vm.salesOrderId, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\t\tvm.OrderList = resp.data.salesorder.line_items;\r\n\t\t\t\t\t}\r\n\t\t\t\t}, function () {\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.PartRequestLineitemData = [];\r\n\t\tvm.GetPartRequestOrderLineItem = function (isCollapsed, ticketId) {\r\n\t\t\tif (vm.salesOrderId == ticketId) {\r\n\t\t\t\t$scope.isCollapsed = !isCollapsed;\r\n\t\t\t}\r\n\t\t\t$scope.activeRow = ticketId;\r\n\t\t\tvm.salesOrderId = ticketId;\r\n\t\t\tinventorynewService.GetRequestedLineItemDetailsByTicketId(loggedinUser, vm.salesOrderId, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.listWdata = [];\r\n\t\t\t\t\twareHouseItemList = [];\r\n\t\t\t\t\tvm.PartRequestLineitemData = resp.data.LineItemList;\r\n\t\t\t\t\tif (!isCollapsed) {\r\n\t\t\t\t\t\tangular.forEach(vm.PartRequestLineitemData, function (d) {\r\n\t\t\t\t\t\t\tif (d.BackendApprovalStatus != 'Rejected') {\r\n\t\t\t\t\t\t\t\tvar hwData = {\r\n\t\t\t\t\t\t\t\t\twarehouseDescription: d.LineItemDescription,\r\n\t\t\t\t\t\t\t\t\twarehouseQuantity: d.LineItemQuantity,\r\n\t\t\t\t\t\t\t\t\twarehouseValue: d.dLineItemWinPrice,\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\twareHouseItemList.push(hwData);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tvm.listWdata = wareHouseItemList;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\r\n\t\tvm.sortColumn = function (col) {\r\n\t\t\tvm.SortField = col;\r\n\t\t\tif (vm.SortType == 'desc') {\r\n\t\t\t\tvm.SortType = 'asc';\r\n\t\t\t\tvm.reverseclass = 'fa fa-arrow-up';\r\n\t\t\t\tvm.ApplyFilter();\r\n\t\t\t} else {\r\n\t\t\t\tvm.SortType = 'desc';\r\n\t\t\t\tvm.reverseclass = 'fa fa-arrow-down';\r\n\t\t\t\tvm.ApplyFilter();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvm.sortClass = function (col) {\r\n\t\t\tif (vm.SortField == col) {\r\n\t\t\t\tif (vm.SortType == 'desc') {\r\n\t\t\t\t\treturn 'fa fa-arrow-down';\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn 'fa fa-arrow-up';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.PDFView = function (page) {\r\n\t\t\tvm.pdfimage = \"\";\r\n\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\t$scope.selected = null;\r\n\t\t\tjobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'PDFView.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.PDFUserModal = function () {\r\n\t\t\tjobAppointmentModal.close();\r\n\t\t}\r\n\r\n\t\tfunction base64ToArrayBuffer(base64) {\r\n\t\t\tvar ret = base64.replace('data:application/pdf;base64,', '');\r\n\t\t\tvar binaryString = atob(ret);\r\n\t\t\tvar binaryLen = binaryString.length;\r\n\t\t\tvar bytes = new Uint8Array(binaryLen);\r\n\t\t\tfor (var i = 0; i < binaryLen; i++) {\r\n\t\t\t\tvar ascii = binaryString.charCodeAt(i);\r\n\t\t\t\tbytes[i] = ascii;\r\n\t\t\t}\r\n\t\t\treturn bytes;\r\n\t\t}\r\n\r\n\r\n\t\tvm.viewInvoicePdf = function (file) {\r\n\t\t\tvm.PDFView();\r\n\t\t\tinventorynewService.viewReportPdf(loggedinUser, token, file).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.InvoiceData = resp.data;\r\n\t\t\t\t\tvar arrrayBuffer = base64ToArrayBuffer(vm.InvoiceData);\r\n\t\t\t\t\tvar blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n\t\t\t\t\tvm.pdfimage = URL.createObjectURL(blob);\r\n\t\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.ApplyFilter = function () {\r\n\t\t\tif (!vm.UserId) {\r\n\t\t\t\tvm.UserId = \"\";\r\n\t\t\t}\r\n\t\t\tif (vm.ActiveTab == 'Part Purchase Order' || vm.ActiveTab == 'Part Received') {\r\n\t\t\t\tvm.GetUserSalesOrderIntatiedByZoho(vm.OrderStatus);\r\n\t\t\t}\r\n\t\t\telse if (vm.ActiveTab == 'Part Requested' || vm.ActiveTab == 'Part Consumed' || vm.ActiveTab == 'Part Rejected') {\r\n\t\t\t\tvm.GetUserAllSalesOrderDetailforWeb(vm.OrderStatus);\r\n\t\t\t}\r\n\t\t\telse if (vm.ActiveTab == 'Return Order') {\r\n\t\t\t\tvm.GetInventoryDefectStockList();\r\n\t\t\t}\r\n\t\t\telse if (vm.ActiveTab == 'Allocated Stock' || vm.ActiveTab == 'Good Stock' || vm.ActiveTab == 'Damaged Stock') {\r\n\t\t\t\tvm.GetUserInventoryStockforweb(vm.OrderStatus);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n})\r\n\nangular.module('inspinia').service('InventoryItemListService', function (ApiURL,MMFCRMURL, AcessoriesURL, $window, $http) {\r\n\r\n this.GetAllVisibleMasterParts = function (data,loggedInUserId, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetAllVisibleMasterParts';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetAllVisibleMasterPartsNew = function (data,loggedInUserId, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetAllVisibleMasterPartsNew';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.UpdateMasterPart = function (masterPartData, loggedInUserId, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/UpdateMasterPart';\r\n return $http.put(url, masterPartData, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetAllActiveProductModelMaster = function (ProductName, brand,loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllActiveProductModelMaster?productName=' + ProductName + '&brandName=' + brand;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.CreateNewMasterPart = function (createPartData, loggedInUserId, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/CreateNewMasterPart';\r\n return $http.post(url, createPartData, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetAllProjects = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/Project/' + loggedInUserId + '/' + loggedInUserId + '/GetProjectsByUserId'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId }\r\n })\r\n }\r\n\r\n this.UploadMediaInBulk = function (formdata, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Upload/UploadMediaInBulk';\r\n return $http.post(url, formdata, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetAllBrandMasterStringList = function (data,loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllBrandNameStringList';\r\n\t\treturn $http.post(url,data, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n this.GetAllProductGroupMasterStringList = function (data,loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllBrandSubGroupStringList';\r\n\t\treturn $http.post(url,data, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n this.GetAllProductMasterStringList = function (data,loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllBrandProductMasterStringList';\r\n\t\treturn $http.post(url,data, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n \r\n this.GetItemPartName = function (brandName, productGroup,partName,loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemListName?BrandName=' + brandName + '&ProductGroupName=' + productGroup + '&ProductName='+ partName;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('InventoryItemListController', function (InventoryItemListService, MainService, InventoryCartService, BrandProductMasterCreationService, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.UserId = '';\r\n\t\tvm.searchTag = '';\r\n\t\tvm.PartImagesList = [];\r\n\t\tvm.TrainingImagebase64 = [];\r\n\t\tvm.InventoryImagebase64 = [];\r\n\t\tvm.masterInventoryList = [];\r\n\t\tvm.AllActiveProductModelNoList = [];\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 100;\r\n\t\tvm.Orderby = \"CreatedOn\";\r\n vm.SortType = \"desc\";\r\n\t\tvm.allInventoryPageListCount = 100;\r\n\t\tvm.pageListCounts = [100, 200, 500, 1000,2000]\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\t\tvm.isTableVisible = true;\r\n\t\tvm.isCardVisible = false;\r\n\r\n\t\tvm.showTable = function () {\r\n\t\t\tvm.isTableVisible = true;\r\n\t\t\tvm.isCardVisible = false;\r\n\t\t\tvm.GetAllVisibleMasterParts();\r\n\t\t};\r\n\r\n\t\tvm.showCard = function () {\r\n\t\t\tvm.isTableVisible = false;\r\n\t\t\tvm.isCardVisible = true;\r\n\t\t\tvm.GetAllVisibleMasterParts();\r\n\t\t};\r\n\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// vm.allInventoryPageListCount = 10;\r\n\t\t// vm.pageListCounts = [10, 20, 30, 50];\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t$scope.totalInvList = 0;\r\n\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t$scope.InventoryPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllInventoryPageListCount = function () {\r\n\t\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t\tPageSize = $scope.inventoryPerPage;\r\n\t\t\t$scope.AllInventoryTablePageChanged($scope.InventoryPagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\t\tPageIndex = newPage;\r\n\t\t\t\tvm.GetAllVisibleMasterParts();\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\tPageIndex = newPage;\r\n\t\t\tvm.GetAllVisibleMasterParts();\r\n\r\n\t\t};\r\n\r\n\r\n\t\tvm.InventoryImageServices = function (img, rowIndex, imageIndex) {\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\t\tif (resp.data == null || resp.data == '') {\r\n\t\t\t\t\tvm.InventoryImagebase64[rowIndex][imageIndex] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (!vm.InventoryImagebase64[rowIndex]) {\r\n\t\t\t\t\t\tvm.InventoryImagebase64[rowIndex] = [];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.InventoryImagebase64[rowIndex][imageIndex] = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.InventoryImagebase64[rowIndex][imageIndex] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// vm.GetAllVisibleMasterParts = function () {\r\n\t\t// \tvar data = {\r\n\t\t// \t\t\"PartName\": vm.selectedPart,\r\n\t\t// \t\t\"PartCategoryGroup\": vm.productGroup,\r\n\t\t// \t\t\"PartBrand\": vm.brandName,\r\n\t\t// \t\t\"PartSubGroup\": vm.partName,\r\n\t\t// \t\t\"SearchText\": vm.searchTag\r\n\t\t// \t}\r\n\t\t// \tInventoryItemListService.GetAllVisibleMasterPartsNew(data, loggedinUser, token).then(function (resp) {\r\n\t\t// \t\tif (resp.data && resp.status == 200) {\r\n\t\t// \t\t\tvm.masterInventoryList = resp.data;\r\n\t\t// \t\t\tvm.masterInventoryList.forEach(function (item, rowIndex) {\r\n\t\t// \t\t\t\tif (item.PartImages && Array.isArray(item.PartImages)) {\r\n\t\t// \t\t\t\t\tvm.InventoryImagebase64[rowIndex] = [];\r\n\t\t// \t\t\t\t\titem.PartImages.forEach(function (image, imageIndex) {\r\n\t\t// \t\t\t\t\t\tvm.InventoryImageServices(image, rowIndex, imageIndex);\r\n\t\t// \t\t\t\t\t});\r\n\t\t// \t\t\t\t}\r\n\t\t// \t\t\t});\r\n\t\t\t\t\t\r\n\t\t// \t\t}\r\n\t\t// \t}, vm.showFailure);\r\n\t\t// }\r\n\r\n\t\tvm.GetAllVisibleMasterParts = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"PartType\" : \"\",\r\n\t\t\t\t\"PartName\": vm.selectedPart,\r\n\t\t\t\t\"PartCategoryGroup\": vm.productGroup,\r\n\t\t\t\t\"PartBrand\": vm.brandName,\r\n\t\t\t\t\"PartSubGroup\": vm.partName,\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"HSNCode\" :\"\",\r\n\t\t\t\t\"ModelNumber\": \"\",\r\n\t\t\t\t\"PageIndex\": PageIndex,\r\n\t\t\t\t\"PageSize\":PageSize,\r\n\t\t\t\t\"OrderBy\":vm.Orderby,\r\n\t\t\t\t\"SortType\": vm.SortType\r\n\t\t\t}\r\n\t\t\tInventoryItemListService.GetAllVisibleMasterPartsNew(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.masterInventoryList = resp.data.masterItemModel;\r\n\t\t\t\t\tvm.masterInventoryList.forEach(function (item, rowIndex) {\r\n\t\t\t\t\t\tif (item.PartImages && Array.isArray(item.PartImages)) {\r\n\t\t\t\t\t\t\tvm.InventoryImagebase64[rowIndex] = [];\r\n\t\t\t\t\t\t\titem.PartImages.forEach(function (image, imageIndex) {\r\n\t\t\t\t\t\t\t\tvm.InventoryImageServices(image, rowIndex, imageIndex);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$scope.totalInvList = resp.data.Count;\r\n\t\t\t\t\tif (vm.masterInventoryList.length < vm.allInventoryPageListCount)\r\n\t\t\t\t\t\tvm.inventoryListLength = $scope.totalInvList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.inventoryListLength = PageIndex * vm.allInventoryPageListCount;\r\n\t\t\t\t\tif (PageIndex == 1)\r\n\t\t\t\t\t\tvm.pageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.pageindexCount = (((PageIndex - 1) * vm.allInventoryPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.GetAllVisibleMasterParts();\r\n\r\n\t\tvm.GetAllProjects = function () {\r\n\t\t\tInventoryItemListService.GetAllProjects(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.projectList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllProjects();\r\n\r\n\t\tvm.GetAllActiveProductModelMaster = function () {\r\n\t\t\tInventoryItemListService.GetAllActiveProductModelMaster(vm.PartSubGroup,vm.PartBrand,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.AllActiveProductModelNoList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\t\tvm.CreateListItemModel = function () {\r\n\t\t\tvm.createitemlistModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'CreateItemListModel.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.CloseItemListModel = function () {\r\n\t\t\tvm.createitemlistModelOpen.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.PartName = '';\r\n\t\t\tvm.SKUId = '';\r\n\t\t\tvm.Project = '';\r\n\t\t\tvm.PartImagesList = [];\r\n\t\t\t$scope.ListPartDescription = [''];\r\n\t\t\tvm.PartCategoryGroup = '';\r\n\t\t\tvm.HSNCode = '';\r\n\t\t\tvm.PartSubGroup = '';\r\n\t\t\tvm.PartType = '';\r\n\t\t\tvm.Manufacturer = '';\r\n\t\t\tvm.ModelNumber = '';\r\n\t\t\tvm.PartBrand = '';\r\n\t\t\tvm.PartUnit = '';\r\n\t\t\tvm.PartPrice = '';\r\n\t\t\tvm.PartSellingPrice = '';\r\n\t\t\tvm.PartDiscountPercentage = '';\r\n\t\t\tvm.PartDealerPrice = '';\r\n\t\t\tvm.PartDealerCustomerPrice = '';\r\n\t\t\tvm.PartCustomerPrice = '';\r\n\t\t\tvm.PartWareHousePrice = '';\r\n\t\t\tvm.dIGSTTax = '';\r\n\t\t\tvm.dCGSTTax = '';\r\n\t\t\tvm.dSGSTTax = '';\r\n\t\t\tvm.IsVisibile = false;\r\n\t\t\tvm.IsReturnable = false;\r\n\t\t\t$scope.filesArray = [];\r\n\t\t}\r\n\r\n\t\tvm.CreateNewMasterPart = function () {\r\n\t\t\tvm.itemlist_form.submitted = true;\r\n\t\t\tif (vm.itemlist_form.$valid) {\r\n\t\t\t\t$scope.uploadFiles();\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar createPartData = {\r\n\t\t\t\t\t\"PartName\": vm.PartName,\r\n\t\t\t\t\t\"SKUId\": vm.SKUId,\r\n\t\t\t\t\t\"PartImages\": vm.PartImagesList,\r\n\t\t\t\t\t\"PartVideos\": [],\r\n\t\t\t\t\t\"ProjectId\": vm.Project.ProjectId,\r\n\t\t\t\t\t\"ProjectName\": vm.Project.Name,\r\n\t\t\t\t\t\"ListPartDescription\": $scope.ListPartDescription,\r\n\t\t\t\t\t\"PartCategoryGroup\": vm.PartCategoryGroup,\r\n\t\t\t\t\t\"strPartSubGroup\": vm.PartSubGroup,\r\n\t\t\t\t\t\"HSNCode\": vm.HSNCode,\r\n\t\t\t\t\t\"PartType\": vm.PartType,\r\n\t\t\t\t\t\"Manufacturer\": vm.Manufacturer,\r\n\t\t\t\t\t\"ModelNumber\": vm.ModelNumber,\r\n\t\t\t\t\t\"PartBrand\": vm.PartBrand,\r\n\t\t\t\t\t\"PartUnit\": vm.PartUnit,\r\n\t\t\t\t\t\"PartPrice\": vm.PartPrice,\r\n\t\t\t\t\t\"PartSellingPrice\": vm.PartSellingPrice,\r\n\t\t\t\t\t\"PartDiscountPercentage\": vm.PartDiscountPercentage,\r\n\t\t\t\t\t\"PartDealerPrice\": vm.PartDealerPrice,\r\n\t\t\t\t\t\"PartDealerCustomerPrice\": vm.PartDealerCustomerPrice,\r\n\t\t\t\t\t\"PartCustomerPrice\": vm.PartCustomerPrice,\r\n\t\t\t\t\t\"PartWareHousePrice\": vm.PartWareHousePrice,\r\n\t\t\t\t\t\"dIGSTTax\": vm.dIGSTTax,\r\n\t\t\t\t\t\"dCGSTTax\": vm.dCGSTTax,\r\n\t\t\t\t\t\"dSGSTTax\": vm.dSGSTTax,\r\n\t\t\t\t\t\"IsVisibile\": vm.IsVisibile,\r\n\t\t\t\t\t\"IsReturnable\": vm.IsReturnable,\r\n\t\t\t\t\t\"IsPartAvailableOnCredit\": false\r\n\t\t\t\t}\r\n\t\t\t\tInventoryItemListService.CreateNewMasterPart(createPartData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Product added successfully.\");\r\n\t\t\t\t\t\tvm.CloseItemListModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetAllVisibleMasterParts();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.ListPartDescription = [''];\r\n\r\n\t\t$scope.addDescription = function () {\r\n\t\t\t$scope.ListPartDescription.push('');\r\n\t\t};\r\n\r\n\t\t$scope.removeDescription = function (index) {\r\n\t\t\tif ($scope.ListPartDescription.length > 1) {\r\n\t\t\t\t$scope.ListPartDescription.splice(index, 1);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tvm.clearFilter = function(){\r\n\t\t\tvm.searchTag = '';\r\n\t\t\tvm.brandName ='';\r\n\t\t\tvm.partName = '';\r\n\t\t\tvm.productGroup = '';\r\n\t\t\tvm.selectedPart = '';\r\n\t\t\tvm.GetAllVisibleMasterParts();\r\n\t\t}\r\n\t\tvm.showPartDetails = false;\r\n\r\n\t\tvm.OpenPartDetailPanel = function (s) {\r\n\t\t\tvm.PartDetails = s;\r\n\t\t\tif (s.PartImages) {\r\n\t\t\t\tvm.sideViewPartImage = s.PartImages;\r\n\t\t\t\tvm.sideViewPartLength = s.PartImages.length;\r\n\t\t\t\tfor (var i = 0; i < vm.sideViewPartImage.length; i++) {\r\n\t\t\t\t\tvm.TrainingImageServices(vm.sideViewPartImage[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvm.showPartDetails = true;\r\n\t\t}\r\n\r\n\t\t// vm.selectedPart = function (inventoryData) {\r\n\t\t// \tvm.sideViewData = inventoryData;\r\n\t\t// \tvm.sideViewPartImage = inventoryData.strPartImages;\r\n\t\t// \tfor (var i = 0; i < vm.sideViewPartImage.length; i++) {\r\n\t\t// \t\tvm.TrainingImageServices(vm.sideViewPartImage[i], i);\r\n\t\t// \t}\r\n\t\t// }\r\n\r\n\t\tvm.UpdateListItemModel = function (partData) {\r\n\t\t\tvm.MMFPartId = partData.MMFPartId;\r\n\t\t\tvm.SKUId = partData.SKUId;\r\n\t\t\tvm.PartName = partData.PartName;\r\n\t\t\tvm.PartBrand = partData.PartBrand;\r\n\t\t\tif (vm.PartBrand) {\r\n\t\t\t\tvm.GetAllProductGroupMasterStringList();\r\n\t\t\t}\r\n\t\t\tvm.PartImagesList = partData.PartImages;\r\n\r\n\t\t\tangular.forEach(vm.PartImagesList, function (imageUrl, index) {\r\n\t\t\t\tvm.TrainingImageServices(imageUrl, index);\r\n\t\t\t});\r\n\t\t\tvm.PartCategoryGroup = partData.PartCategoryGroup;\r\n\t\t\tif (vm.PartCategoryGroup && vm.PartBrand) {\r\n\t\t\t\tvm.GetAllProductMasterStringList();\r\n\t\t\t}\r\n\t\t\tvm.PartSubGroup = partData.strPartSubGroup;\r\n\t\t\tvm.HSNCode = partData.HSNCode;\r\n\t\t\tvm.Manufacturer = partData.Manufacturer;\r\n\t\t\tvm.ModelNumber = partData.ModelNumber;\r\n\t\t\t$scope.ListPartDescription = partData.ListPartDescription;\r\n\t\t\tvm.PartPrice = partData.PartPrice;\r\n\t\t\tvm.PartSellingPrice = partData.PartSellingPrice;\r\n\t\t\tvm.PartDiscountPercentage = partData.PartDiscountPercentage;\r\n\t\t\tvm.PartDealerPrice = partData.PartDealerPrice;\r\n\t\t\tvm.PartDealerCustomerPrice = partData.PartDealerCustomerPrice;\r\n\t\t\tvm.PartCustomerPrice = partData.PartCustomerPrice;\r\n\t\t\tvm.PartWareHousePrice = partData.PartWareHousePrice;\r\n\t\t\tvm.dIGSTTax = partData.dIGSTTax;\r\n\t\t\tvm.dCGSTTax = partData.dCGSTTax;\r\n\t\t\tvm.dSGSTTax = partData.dSGSTTax;\r\n\t\t\tvm.IsVisibile = partData.IsVisibile;\r\n\t\t\tvm.IsReturnable = partData.IsReturnable;\r\n\t\t\tvm.PartType = partData.PartType;\r\n\t\t\tvm.PartUnit = partData.PartUnit\r\n\t\t\tangular.forEach(vm.projectList, function (d) {\r\n\t\t\t\tfor (var i = 0; i < vm.projectList.length; i++) {\r\n\t\t\t\t\tif (d.ProjectId == partData.ProjectId) {\r\n\t\t\t\t\t\tvm.Project = d;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tvm.updateitemlistModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'UpdateItemListModel.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.CloseUpdateItemListModel = function () {\r\n\t\t\tvm.updateitemlistModelOpen.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.PartName = '';\r\n\t\t\tvm.SKUId = '';\r\n\t\t\tvm.Project = '';\r\n\t\t\tvm.PartImagesList = [];\r\n\t\t\t$scope.filesArray = [];\r\n\t\t\t// vm.TrainingImagebase64 = [];\r\n\t\t\t$scope.ListPartDescription = [''];\r\n\t\t\tvm.PartCategoryGroup = '';\r\n\t\t\tvm.PartType = '';\r\n\t\t\tvm.Manufacturer = '';\r\n\t\t\tvm.ModelNumber = '';\r\n\t\t\tvm.PartBrand = '';\r\n\t\t\tvm.PartUnit = '';\r\n\t\t\tvm.PartPrice = '';\r\n\t\t\tvm.PartSellingPrice = '';\r\n\t\t\tvm.PartDiscountPercentage = '';\r\n\t\t\tvm.PartDealerPrice = '';\r\n\t\t\tvm.PartDealerCustomerPrice = '';\r\n\t\t\tvm.PartCustomerPrice = '';\r\n\t\t\tvm.PartWareHousePrice = '';\r\n\t\t\tvm.dIGSTTax = '';\r\n\t\t\tvm.dCGSTTax = '';\r\n\t\t\tvm.dSGSTTax = '';\r\n\t\t\tvm.IsVisibile = false;\r\n\t\t\tvm.IsReturnable = false;\r\n\t\t}\r\n\r\n\t\tvm.TrainingImageServices = function (img, index) {\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\t\tif (resp.data == null || resp.data == '') {\r\n\t\t\t\t\tvm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.TrainingImagebase64[index] = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\t$scope.filesArray.push({\r\n\t\t\t\t\tname: img,\r\n\t\t\t\t\tsrc: vm.TrainingImagebase64[index],\r\n\t\t\t\t});\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t$scope.filesArray.push({\r\n\t\t\t\t\tname: img,\r\n\t\t\t\t\tsrc: vm.TrainingImagebase64[index],\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.UpdateMasterPart = function () {\r\n\t\t\tvm.itemlist_form.submitted = true;\r\n\t\t\tif (vm.itemlist_form.$valid) {\r\n\t\t\t\t$scope.uploadFiles();\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar masterPartData = {\r\n\t\t\t\t\t\"PartName\": vm.PartName,\r\n\t\t\t\t\t\"MMFPartId\": vm.MMFPartId,\r\n\t\t\t\t\t\"SKUId\": vm.SKUId,\r\n\t\t\t\t\t\"PartImages\": vm.PartImagesList,\r\n\t\t\t\t\t\"PartVideos\": [],\r\n\t\t\t\t\t\"ProjectId\": vm.Project.ProjectId,\r\n\t\t\t\t\t\"ProjectName\": vm.Project.Name,\r\n\t\t\t\t\t\"ListPartDescription\": $scope.ListPartDescription,\r\n\t\t\t\t\t\"PartCategoryGroup\": vm.PartCategoryGroup,\r\n\t\t\t\t\t\"strPartSubGroup\": vm.PartSubGroup,\r\n\t\t\t\t\t\"HSNCode\": vm.HSNCode,\r\n\t\t\t\t\t\"PartType\": vm.PartType,\r\n\t\t\t\t\t\"Manufacturer\": vm.Manufacturer,\r\n\t\t\t\t\t\"ModelNumber\": vm.ModelNumber,\r\n\t\t\t\t\t\"PartBrand\": vm.PartBrand,\r\n\t\t\t\t\t\"PartUnit\": vm.PartUnit,\r\n\t\t\t\t\t\"PartPrice\": vm.PartPrice,\r\n\t\t\t\t\t\"PartSellingPrice\": vm.PartSellingPrice,\r\n\t\t\t\t\t\"PartDiscountPercentage\": vm.PartDiscountPercentage,\r\n\t\t\t\t\t\"PartDealerPrice\": vm.PartDealerPrice,\r\n\t\t\t\t\t\"PartDealerCustomerPrice\": vm.PartDealerCustomerPrice,\r\n\t\t\t\t\t\"PartCustomerPrice\": vm.PartCustomerPrice,\r\n\t\t\t\t\t\"PartWareHousePrice\": vm.PartWareHousePrice,\r\n\t\t\t\t\t\"dIGSTTax\": vm.dIGSTTax,\r\n\t\t\t\t\t\"dCGSTTax\": vm.dCGSTTax,\r\n\t\t\t\t\t\"dSGSTTax\": vm.dSGSTTax,\r\n\t\t\t\t\t\"IsVisibile\": vm.IsVisibile,\r\n\t\t\t\t\t\"IsReturnable\": vm.IsReturnable,\r\n\t\t\t\t\t\"IsPartAvailableOnCredit\": false\r\n\t\t\t\t}\r\n\t\t\t\tInventoryItemListService.UpdateMasterPart(masterPartData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Product updated successfully.\");\r\n\t\t\t\t\t\tvm.CloseUpdateItemListModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetAllVisibleMasterParts();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.editMode = false;\r\n\t\t$scope.toggleEditMode = function () {\r\n\t\t\t$scope.editMode = !$scope.editMode;\r\n\t\t};\r\n\r\n\t\t$scope.imageSrc = '';\r\n\t\t$scope.fileName = '';\r\n\r\n\t\t$scope.filesArray = [];\r\n\r\n\t\t$scope.previewFiles = function (event) {\r\n\t\t\tvar files = event.target.files;\r\n\t\t\tfor (var i = 0; i < files.length; i++) {\r\n\t\t\t\t(function (file) {\r\n\t\t\t\t\tvar reader = new FileReader();\r\n\t\t\t\t\treader.onload = function (e) {\r\n\t\t\t\t\t\t$scope.$apply(function () {\r\n\t\t\t\t\t\t\t$scope.filesArray.push({\r\n\t\t\t\t\t\t\t\tname: file.name,\r\n\t\t\t\t\t\t\t\tsrc: e.target.result,\r\n\t\t\t\t\t\t\t\tfile: file\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\t\t\t\t\treader.readAsDataURL(file);\r\n\t\t\t\t})(files[i]);\r\n\t\t\t}\r\n\t\t\tdocument.getElementById('fileInput').value = null;\r\n\t\t};\r\n\r\n\t\t$scope.triggerFileInput = function () {\r\n\t\t\tdocument.getElementById('fileInput').click();\r\n\t\t};\r\n\r\n\r\n\t\t$scope.removeImage = function (index) {\r\n\t\t\t$scope.filesArray.splice(index, 1);\r\n\t\t};\r\n\t\t$scope.uploadFiles = function () {\r\n\t\t\tvm.PartImagesList = [];\r\n\t\t\tvar formData = new FormData();\r\n\t\t\t$scope.filesArray.forEach(function (fileObj) {\r\n\t\t\t\tif (fileObj.file) {\r\n\t\t\t\t\tformData.append(fileObj.name, fileObj.file);\r\n\t\t\t\t}\r\n\t\t\t\tvm.PartImagesList.push(fileObj.name);\r\n\t\t\t});\r\n\r\n\t\t\tInventoryItemListService.UploadMediaInBulk(formData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 201) {\r\n\t\t\t\t\t$scope.filesArray = [];\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t};\r\n\r\n\t\tvm.GetItemBrandName = function () {\r\n\t\t\tInventoryCartService.GetItemBrandName(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.BrandList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t};\r\n\t\tvm.GetItemBrandName();\r\n\r\n\r\n\t\tvm.GetItemGroupName = function () {\r\n\t\t\tif (!vm.brandName) {\r\n\t\t\t\tvm.brandName = \"\";\r\n\t\t\t}\r\n\t\t\tInventoryCartService.GetItemGroupName(vm.brandName, loggedinUser, token).then(\r\n\t\t\t\tfunction (resp) {\r\n\t\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\t\tvm.PartNameList = resp.data;\r\n\t\t\t\t\t\t// vm.changeCategoryFilter();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t};\r\n\t\tvm.GetItemGroupName();\r\n\t\tvm.GetItemListName = function () {\r\n\t\t\tif (!vm.productGroup) {\r\n\t\t\t\tvm.productGroup = \"\";\r\n\t\t\t}\r\n\t\t\tInventoryCartService.GetItemListName(vm.brandName,vm.productGroup,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.PartList = resp.data;\r\n\t\t\t\t\t// vm.changeCategoryFilter();\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t};\r\n\t\tvm.GetItemListName();\r\n\r\n\t\tvm.PartListWithFilter = [];\r\n\r\n\t\tvm.GetItemPartName = function () {\r\n\t\t vm.PartListWithFilter = [];\r\n\t\t if (!vm.partName) {\r\n\t\t\tvm.partName = \"\";\r\n\t\t }\r\n\t\t InventoryItemListService.GetItemPartName(vm.brandName,vm.productGroup,vm.partName,loggedinUser,token).then(function (resp) {\r\n\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t vm.PartListWithFilter = resp.data;\r\n\t\t\t}\r\n\t\t }, vm.showFailure);\r\n\t\t};\r\n\t\tvm.GetItemPartName();\r\n\r\n\t\tvm.exportToCSV = function () {\r\n\t\t\tvar csv = [];\r\n\t\t\tvar header;\r\n\t\t\tvar includePriceAndDiscount = (vm.loggedInUserRole !== 'Help Desk');\r\n\r\n\t\t\tif (includePriceAndDiscount) {\r\n\t\t\t\theader = [\r\n\t\t\t\t\t\"Part ID\",\r\n\t\t\t\t\t\"Name\",\r\n\t\t\t\t\t\"SKU ID\",\r\n\t\t\t\t\t\"Brand\",\r\n\t\t\t\t\t\"Category Group\",\r\n\t\t\t\t\t\"Manufacturer\",\r\n\t\t\t\t\t\"Model Number\",\r\n\t\t\t\t\t\"Service Center Price\",\r\n\t\t\t\t\t\"IGST (%)\",\r\n\t\t\t\t\t\"CGST(%)\",\r\n\t\t\t\t\t\"SGST(%)\"\r\n\t\t\t\t].join(\",\") + \"\\n\";\r\n\t\t\t} else {\r\n\t\t\t\theader = [\r\n\t\t\t\t\t\"Part ID\",\r\n\t\t\t\t\t\"Name\",\r\n\t\t\t\t\t\"SKU ID\",\r\n\t\t\t\t\t\"Brand\",\r\n\t\t\t\t\t\"Category Group\",\r\n\t\t\t\t\t\"Manufacturer\",\r\n\t\t\t\t\t\"Model Number\",\r\n\t\t\t\t\t\"Service Center Price\",\r\n\t\t\t\t\t\"IGST (%)\",\r\n\t\t\t\t\t\"CGST(%)\",\r\n\t\t\t\t\t\"SGST(%)\"\r\n\t\t\t\t].join(\",\") + \"\\n\";\r\n\t\t\t}\r\n\r\n\t\t\tcsv.push(header);\r\n\t\t\tvm.masterInventoryList.forEach(function (item) {\r\n\t\t\t\tvar row;\r\n\r\n\t\t\t\tif (includePriceAndDiscount) {\r\n\t\t\t\t\trow = [\r\n\t\t\t\t\t\titem.MMFPartId,\r\n\t\t\t\t\t\titem.PartName,\r\n\t\t\t\t\t\titem.SKUId,\r\n\t\t\t\t\t\titem.PartBrand,\r\n\t\t\t\t\t\titem.PartCategoryGroup,\r\n\t\t\t\t\t\titem.Manufacturer,\r\n\t\t\t\t\t\titem.ModelNumber,\r\n\t\t\t\t\t\titem.PartSellingPrice,\r\n\t\t\t\t\t\titem.dIGSTTax,\r\n\t\t\t\t\t\titem.dCGSTTax,\r\n\t\t\t\t\t\titem.dSGSTTax\r\n\t\t\t\t\t].join(\",\") + \"\\n\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\trow = [\r\n\t\t\t\t\t\titem.MMFPartId,\r\n\t\t\t\t\t\titem.PartName,\r\n\t\t\t\t\t\titem.SKUId,\r\n\t\t\t\t\t\titem.PartBrand,\r\n\t\t\t\t\t\titem.PartCategoryGroup,\r\n\t\t\t\t\t\titem.Manufacturer,\r\n\t\t\t\t\t\titem.ModelNumber,\r\n\t\t\t\t\t\titem.PartSellingPrice,\r\n\t\t\t\t\t\titem.dIGSTTax,\r\n\t\t\t\t\t\titem.dCGSTTax,\r\n\t\t\t\t\t\titem.dSGSTTax\r\n\t\t\t\t\t].join(\",\") + \"\\n\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcsv.push(row);\r\n\t\t\t});\r\n\r\n\t\t\tvar csvContent = csv.join('');\r\n\t\t\tvar blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\r\n\t\t\tvar url = URL.createObjectURL(blob);\r\n\r\n\t\t\tvar a = document.createElement('a');\r\n\t\t\ta.href = url;\r\n\t\t\ta.target = '_blank';\r\n\t\t\ta.download = 'inventory_data.csv';\r\n\t\t\tdocument.body.appendChild(a);\r\n\t\t\ta.click();\r\n\t\t\tdocument.body.removeChild(a);\r\n\t\t};\r\n\r\n\t\tvm.PartBrand = '';\r\n\r\n\t\tvm.GetAllBrandMasterStringList = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"strBrandName\": \"\",\r\n\t\t\t\t\"strProductGroup\": \"\",\r\n\t\t\t\t\"strProductName\": \"\"\r\n\t\t\t}\r\n\t\t\tInventoryItemListService.GetAllBrandMasterStringList(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.AllBrandList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllBrandMasterStringList();\r\n\r\n\t\tvm.GetAllProductGroupMasterStringList = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"strBrandName\": vm.PartBrand,\r\n\t\t\t\t\"strProductGroup\": \"\",\r\n\t\t\t\t\"strProductName\": \"\"\r\n\t\t\t}\r\n\t\t\tInventoryItemListService.GetAllProductGroupMasterStringList(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.AllProductList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllProductMasterStringList = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"strBrandName\": vm.PartBrand,\r\n\t\t\t\t\"strProductGroup\": vm.PartCategoryGroup,\r\n\t\t\t\t\"strProductName\": \"\"\r\n\t\t\t}\r\n\t\t\tInventoryItemListService.GetAllProductMasterStringList(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.AllBrandProductList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\t\r\n\r\n\t\t///share modal\r\nvm.OpenShareDetails = function (Type) {\r\n\tvm.shareType = Type\r\n\tvm.opensharewithtype = $uibModal.open({\r\n\t\ttemplateUrl: 'ShareDetailwithtypeModal.html',\r\n\t\tsize: 'md',\r\n\t\tbackdrop: 'static',\r\n\t\tscope: $scope,\r\n\t});\r\n};\r\n\r\nvm.CloseAreaConfirmationModal = function () {\r\n\tvm.opensharewithtype.close();\r\n\tvm.phoneNumber = '';\r\n\tvm.infoemail = '';\r\n}\r\n\r\n vm.share = function(shareType) {\r\n\tvm.shareinfo_form.submitted = true;\r\n if (shareType === 'SMS' || shareType === 'Whatsapp') {\r\n if (vm.shareinfo_form.contactphone.$valid) {\r\n\t\tvm.showSuccess(\"Successfully Sending\" + shareType + 'to' + vm.phoneNumber);\r\n\t\tvm.CloseAreaConfirmationModal();\r\n } \r\n\t\r\n } else if (shareType === 'Email') {\r\n if (vm.shareinfo_form.emailid.$valid) {\r\n\t\tvm.showSuccess('Sending Email to', vm.infoemail);\r\n\t\tvm.CloseAreaConfirmationModal();\r\n } \r\n\t \r\n }\r\n };\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('IT360ProfilService', function (ApiURL,FreelancerURL,paymentsapi,PublicApiURL, LocationURL, $log, $http, $localStorage) {\r\n\r\n // https://product.mymobiforce.com/FreelancerAPI/api/FreeLancerUser/F00000033993/U00000000406/byUserIdWithJobCount\t\r\n this.GetUserId = function(loggedInUser,userId, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId +'/'+ loggedInUser+ '/'+ 'byUserIdWithJobCount' ;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n // https://product.mymobiforce.com/coreapi/api/ProfileController/Get360ProfileDashboardData?UserId=F00000033744\r\n\r\n this.Get360ProfileData= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/Get360ProfileDashboardData?UserId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.UploadExternalVideoList = function (newdata, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetVideoKycData';\r\n return $http.put(url, newdata, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/GetToolsAndAssets?Userid=FV0000000002326\r\n\r\n this.GetToolsAndAssets= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/GetToolsAndAssets?Userid=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/GetReviewAndRatings?Userid=F00000033829\r\n\r\n this.GetReviewAndRatings= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/GetReviewAndRatings?Userid=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/Get360SkillSummary?Userid=F00000033744\r\n\r\n this.Get360SkillSummary= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/Get360SkillSummary?Userid=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n this.GetAuthorizedServicePartnerDetail= function(loggedInUser,userId, token){\r\n var url = FreelancerURL + '/api/FreelancerUser/GetAuthorizedServicePartnerDetailForPortal?reqUserId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n // https://testg2.mymobiforce.com/FreelancerAPI/api/FreelancerUser/GetAuthorizedServicePartnerDetailForPortal?reqUserId=F00000033983\r\n // https://product.mymobiforce.com/coreapi/api/ProfileController/Get360VendorTeamData?UserId=FV0000000002393\r\n\r\n this.Get360VendorTeamData= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/Get360VendorTeamData?UserId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/GetLastFollowUpOnTicketId?Userid=F00000033748\r\n\r\n this.GetLastFollowUpOnTicketId= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/GetLastFollowUpOnTicketId?Userid=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.callToTechnicianApi = function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId='+userId ;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.PreferredSingleUser = function(loggedInUser, userId, status, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Favorite/' + loggedInUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedInUser }\r\n });\r\n }\r\n\r\n this.BlockedSingleUser = function(loggedInUser, userId, status, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Block/' + loggedInUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { \r\n 'Content-Type': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUser }\r\n });\r\n }\r\n\r\n this.getJobsByUserId=function(userId,loggedInUser, token){\r\n var url =ApiURL + \"/api/Ticket/\" +userId+\"/Approved/byUserIdStatus?reqUserId=\"+loggedInUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedInUser\r\n }\r\n });\r\n }\r\n \r\n this.UserAgreement=function(loggedinUser, userId, token){\r\n var url =ApiURL + \"/api/User/GetEULAByUserId?reqUserId=\" +loggedinUser+\"&userId=\"+userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.BankDetails=function(loggedinUser, userId, token){\r\n var url =FreelancerURL + \"/api/FreeLancerUser/GetFEBankDetail?AccountId=0\" +\"&userId=\"+userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Report/GeneratePdfSelfDeclaration?userId=F00000001208\r\n this.GeneratePdfSelfDeclaration = function(loggedinUser, userId, token){\r\n var url = ApiURL + '/api/Report/GeneratePdfSelfDeclaration?userId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json',\r\n 'Token':token,\r\n 'UserId':loggedinUser}\r\n })\r\n }\r\n\r\n this.GeneratePdfVerificationReport = function(loggedinUser, userId, token){\r\n var url = ApiURL + '/api/Report/GeneratePdfVerificationReport?userId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId':loggedinUser}\r\n })\r\n }\r\n\r\n\r\n this.GetLeadsForMobile = function(loggedinUser, token,PageIndex,PageSize,OrderBy,order,searchtag){\r\n var url = FreelancerURL + \"/api/BID/GetLeadsForMobile?Vertical=\"+ '&PageIndex=' + PageIndex + '&PageSize=' + PageSize+ '&OrderBy=' + OrderBy + '&order=' + order + '&SearchTag=' + searchtag;\r\n return $http.get(url,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllSkills = function (loggedinUser, token) { \r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n });\r\n }\r\n \r\n\r\n\r\n // https://pro.mymobiforce.com/paymentsapi/api/Payouts/FinancialSummaryTicketDetails?paymentId=7347298768_4921_1655205323\r\n\r\n\r\n this.GetFinanceTicketDetail = function (paymentId) {\r\n var url = paymentsapi + '/api/Payouts/FinancialSummaryTicketDetails?paymentId=' + paymentId;\r\n return $http.get(url,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'NoAuth': true,\r\n }\r\n });\r\n }\r\n\r\n //Accounts API\r\n this.getCustomerAccounts = function (loggedInUserId,token) { \r\n var url = ApiURL+ '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n \r\n }\r\n });\r\n }\r\n\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/GetFinancialSummary?UserId=F00000033748&from_Date=2022-05-09&to_Date=2022-06-20&itemNames=status&itemValue=PaymentCarriedForward&PageIndex=1&PageSize=10\r\n\r\n this.GetFinancialSummary = function (loggedInUser,token,userId,itemNames,itemValues,PageIndex,PageSize, startDate, endDate) {\r\n var url = ApiURL + '/api/ProfileController/GetFinancialSummary?UserId=' + userId + '&from_Date=' + startDate + '&to_Date=' + endDate + '&itemNames=' + itemNames + '&itemValue=' + itemValues +'&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUser\r\n }\r\n });\r\n } \r\n \r\n //https://pro.mymobiforce.com/coreapi/api/User/UpgradeFreelancerToVendor\r\n\tthis.UpgradeFreelancerToVendor = function(loggedInUser, userId, token){\r\n\t\tvar url = ApiURL + '/api/User/UpgradeFreelancerToVendor';\r\n\t\treturn $http.put(url, {\"FreelancerId\": userId}, {\r\n\t\t headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedInUser }\r\n\t\t});\r\n\t }\r\n\r\n this.deleteVideoForKyc = function(loggedInUser, userId, token){\r\n var url = ApiURL + '/api/User/RemoveUserDocKYCVideo?userId='+userId;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedInUser }\r\n });\r\n }\r\n \r\n this.getAllState = function (loggedinUser,token) { \r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+loggedinUser+'®ion=INDIA';\r\n return $http.get(url,{\r\n headers:{\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // http://localhost:56749/api/ProfileController/Get360WorkSummary?UserId=F00000033748&from_Date=2022-05-09&to_Date=2022-06-20&itemNames=skill,accountname&itemValue=Air_Cooler_Services,114&PageIndex=1&PageSize=10&OrderBy=AssignationDateObj&SortType=desc\r\n this.Get360WorkSummary = function (loggedinUser,token,userId,itemNames,itemValues,PageIndex,PageSize, startDate, endDate,DataFeild,sorttype ) {\r\n var url = '';\r\n var url = ApiURL + '/api/ProfileController/Get360WorkSummary?UserId=' + userId + '&from_Date=' + startDate + '&to_Date=' + endDate + '&itemNames=' + itemNames + '&itemValue=' + itemValues +'&DataFeild='+ DataFeild +'&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&SortType=' + sorttype;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n } \r\n\r\n\r\n });\r\n\nangular.module('inspinia').controller('IT360ProfileController', function (DashboardService,IT360ProfilService,OnBoardingFlowService,$rootScope,UIURL,ApiURL,ReferService,$q,MainService,ImageUrl, $log, $state, $localStorage, $stateParams, $uibModal, $scope, $interval, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.loggedInUser_Role=$localStorage.loggedInUser_Role;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n vm.NokiaTableHeaderChange = $localStorage.accountConfig.NokiaTableHeaderChange;\r\n if (!loggedinUser) {\r\n $state.go('Login',{\r\n reload:true\r\n });\r\n }else{\r\n //Global Variable Declaration\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n vm.OnlyDateformat = $localStorage.OnlyDateformat;\r\n vm.vendorList='';\r\n vm.vendorData = '';\r\n vm.ActivationStatus = '';\r\n vm.searchText = '';\r\n vm.OrderBy = \"CreatedOn\";\r\n vm.sorttype = \"desc\";\r\n vm.PageIndex = 1;\r\n vm.PageSize = 10;\r\n vm.status ='';\r\n vm.skillName ='';\r\n vm.projectName='';\r\n vm.accountName='';\r\n vm.location ='';\r\n vm.userId = $stateParams.UserId; \r\n vm.jobTickets = '';\r\n vm.itemName = '';\r\n vm.DocumentprofileImg=[];\r\n vm.DocumentbackImg=[];\r\n vm.CertificateImg=[];\r\n vm.CertprofileImg=[];\r\n vm.VerificationCertprofileImg=[];\r\n vm.itemValue = '';\r\n vm.dtInstance = {};\r\n vm.dtInstanceticket={};\r\n vm.AccountHistoryData=[];\r\n $localStorage.VendorDetailsView='';\r\n $localStorage.VendorPageIndex=1;\r\n vm.ToolsDetailList=[];\r\n vm.PreviousCompanyDetailsList=[];\r\n vm.TrainingImagebase64=[];\r\n vm.TrainingAttendancebase64=[];\r\n vm.PCExperienceLetterbase64=[];\r\n vm.ExperienceVerificationReportbase64=[];\r\n vm.pdfimage=\"\";\r\n vm.CriminalVerificationbase64=\"\";\r\n startDate = '';\r\n endDate = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.userskill = '';\r\n vm.pincode = '';\r\n vm.userNameSearch = '';\r\n vm.contactNumberSearch = '';\r\n vm.userSource = '';\r\n vm.useraccount = '';\r\n vm.CriminalVerified='';\r\n vm.IdVerified='';\r\n vm.PANVerified='';\r\n vm.UserAvailable=''\r\n vm.skillData = '';\r\n vm.circleData = '';\r\n vm.isChecked = \"fixed\";\r\n vm.searchText = \"\";\r\n vm.Technicianstartingdate = '2017-01-01';\r\n vm.tab = '';\r\n vm.pageindexCount=0;\r\n vm.DateField=\"StatusChangedOn\";\r\n vm.searchStatusText=\"\"; \r\n vm.statusFin=\"\"; \r\n var uPageIndex = 1;\r\n var uPageSize = 10; \r\n var fPageIndex = 1;\r\n var fPageSize = 10; \r\n $scope.isCollapsed = true; \r\n $localStorage.AllJobStatus = vm.searchStatusText;\r\n vm.UsersType=\"\";\r\n vm.uType=\"\";\r\n var uitemNames=\"\";\r\n var uitemValues=\"\";\r\n vm.searchUsersText=\"\";\r\n vm.jobsCount='';\r\n vm.userPageListCount= 10;\r\n vm.financePageListCount= 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var userType = '';\r\n var startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n vm.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n \r\n vm.Get360WorkSummary( loggedinUser, token, uitemNames, uitemValues, userType, vm.UserAvailable, vm.DateField, uPageIndex, uPageSize, startDate, endDate);\r\n };\r\n\r\n vm.statusList=[\"New\", \"Verified\",\"Rejected\", \"Approved\", \"PaymentInitiated\",\"PaymentFailed\", \"PaymentSuccessful\",\"PaymentCarriedForward\"];\r\n\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n vm.outsidedateRangeChange = function (ev, picker) { \r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.GetFinancialSummary( loggedinUser, token, uitemNames, uitemValues, userType, vm.UserAvailable, vm.DateField, uPageIndex, fPageSize, startDate, endDate);\r\n \r\n\r\n };\r\n\r\n $scope.profileProgress = 0;\r\n\r\n $interval(function () {\r\n // Simulating progress update\r\n if ($scope.profileProgress < 70) {\r\n $scope.profileProgress += 10; // Update this value as per your requirement\r\n }\r\n }, 100);\r\n $scope.isBlinking = false;\r\n\r\n $interval(function() {\r\n $scope.isBlinking = !$scope.isBlinking;\r\n }, 800);\r\n \r\n var UserAgreement = function(){\r\n IT360ProfilService.UserAgreement(loggedinUser,vm.userId,token).then(function(resp){\r\n if(resp.status == '200'){ \r\n vm.agreementview=resp.data;\r\n var uri = vm.agreementview.Content;\r\n var dec = decodeURIComponent(uri).replace(/\\+/g,\" \");\r\n $('#agreementview').contents().find('html').html(dec);\r\n } else{\r\n var dec = decodeURIComponent(resp.data).replace(/\\+/g,\" \");\r\n $('#agreementview').contents().find('html').html(dec);\r\n }\r\n\r\n })\r\n }\r\n\r\n vm.agreement=[];\r\n\t\tvm.Agreement = function (userid) {\r\n vm.agreement=userid;\r\n \r\n\t\t\tAgreementUserModal = $uibModal.open({\r\n templateUrl: 'Agreement.html',\r\n controller: UserAgreement(userid),\r\n\t\t\t\t// size:'lg',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\treload:true\r\n\t\t\t});\r\n\t\t\r\n }\r\n\r\n vm.CloseAgreementUserModal = function(){\r\n AgreementUserModal.close();\r\n }\r\n\r\n vm.closeProfile = function(){ \r\n document.getElementById(\"teamSummary\").style.width = \"0%\";\r\n }\r\n\r\n vm.OpenPdfModal= function(PdfPathName,TypeName)\r\n {\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size :'lg',\r\n scope: $scope,\r\n controller: ModalInstanceCtrl(PdfPathName,TypeName)\r\n });\r\n }\r\n\r\n vm.PDFViewGeneratePdfSelfDeclaration = function () { \r\n vm.OpenPdfModal(vm.userId,\"Self Declaration\");\r\n }\r\n vm.PDFViewGeneratePdfVerificationReport = function () { \r\n vm.OpenPdfModal(vm.userId,\"Verification Report\");\r\n }\r\n vm.PDFViewLegalContract = function (page) {\r\n vm.OpenPdfModal(page,\"Legal Contract\");\r\n }\r\n vm.PDFView = function (page) {\r\n vm.OpenPdfModal(page,\"PDF View\");\r\n }\r\n var ModalInstanceCtrl = function(PdfPathNames,TypeNames) { \r\n vm.IsLoadSucessfull=false;\r\n vm.pdfimage=\"\";\r\n if(TypeNames==\"Legal Contract\")\r\n {\r\n MainService.GetLegalContractImageBlob(loggedinUser, token, PdfPathNames).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data);\r\n vm.IsLoadSucessfull=true;\r\n }); \r\n } \r\n if(TypeNames==\"PDF View\")\r\n {\r\n MainService.GetImageBlob(loggedinUser, token, PdfPathNames).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data);\r\n vm.IsLoadSucessfull=true;\r\n }); \r\n } \r\n if(TypeNames==\"Verification Report\")\r\n {\r\n IT360ProfilService.GeneratePdfVerificationReport(loggedinUser, PdfPathNames, token).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data.Base64Data);\r\n vm.IsLoadSucessfull=true;\r\n }); \r\n } \r\n if(TypeNames==\"Self Declaration\")\r\n {\r\n IT360ProfilService.GeneratePdfSelfDeclaration(loggedinUser, PdfPathNames, token).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data.Base64Data);\r\n vm.IsLoadSucessfull=true;\r\n }); \r\n } \r\n }\r\n\r\n vm.ConvertBase64ToBlob = function(response)\r\n {\r\n if(response !=null){\r\n var arrrayBuffer = base64ToArrayBuffer(response); //data is the base64 encoded string\r\n var blob = new Blob([arrrayBuffer], {type: \"application/pdf\"});\r\n vm.pdfimage = URL.createObjectURL(blob);\t\t\t\t\r\n vm.IsLoadSucessfull=true;\r\n }\r\n else{\r\n vm.DocumentAvailableMessage=\"Document is not available\";\r\n vm.IsLoadSucessfull=true;\r\n }\r\n }\r\n function base64ToArrayBuffer(base64) {\r\n var ret = base64.replace('data:application/pdf;base64,','');\r\n var binaryString = atob(ret);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n }\r\n\r\n vm.getFileType = function(url){\r\n if(url==null || url==\"\")\r\n {\r\n return \"others\";\r\n }\r\n else{\r\n if(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0 ||url.indexOf(\".JPG\")>=0 || url.indexOf(\".JPEG\")>=0 || url.indexOf(\".PNG\")>=0 || url.indexOf(\".BMP\")>=0){\r\n return \"image\";\r\n } else if(url.indexOf(\".pdf\")>=0 || url.indexOf(\".PDF\")>=0){\r\n return \"pdf\";\r\n } else if(url.indexOf(\".xls\")>=0 || url.indexOf(\".xlsx\")>=0 ||url.indexOf(\".XLS\")>=0 || url.indexOf(\".XLSX\")>=0){\r\n return \"xls\"; \r\n } else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0 || url.indexOf(\".DOC\")>=0 || url.indexOf(\".DOCX\")>=0){\r\n return \"doc\";\r\n } \r\n else {\r\n return \"others\";\r\n }\r\n }\r\n }\r\n vm.WordDownloadtoView = function (page) { \r\n MainService.GetImageBlob(loggedinUser, token, page).then(function(resp) {\r\n window.location.href = resp.data;\r\n }); \r\n \r\n }\r\n vm.PDFUserModal = function(){\r\n jobAppointmentModal.close();\r\n }\r\n\r\n $scope.checkPDF = function(path){\r\n if(!path)\r\n return true;\r\n\r\n var pt = path.substr(path.length - 4);\r\n var dt = path.substr(path.length - 4);\r\n\r\n if(pt == '.pdf' || dt == '.doc'){\r\n vm.error = function(){\r\n $(\".pdf\").attr({\"target\" : \"_blank\"})\r\n }\r\n return true;\r\n }\r\n }\r\n\r\n vm.InsuranceImg=\"\";\r\n vm.InsuranceimageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.InsuranceImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.InsuranceImg = resp.data;\r\n }\r\n console.log(vm.InsuranceImg);\r\n }, function() {\r\n vm.InsuranceImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n }\r\n\r\n vm.VerificationCertimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.VerificationCertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.VerificationCertprofileImg[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.VerificationCertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n vm.DocumentimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.DocumentprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.DocumentprofileImg[index] = resp.data;\r\n }\r\n }, function() {\r\n vm.DocumentprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n \r\n }\r\n \r\n vm.DocumentimagebackServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.DocumentbackImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.DocumentbackImg[index] = resp.data;\r\n }\r\n }, function() {\r\n vm.DocumentbackImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n \r\n }\r\n\r\n vm.CertificateimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.CertificateImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.CertificateImg[index] = resp.data;\r\n }\r\n }, function() {\r\n vm.CertificateImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n \r\n }\r\n\r\n vm.CertimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.CertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.CertprofileImg[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.CertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n\r\n vm.CriminalVerificationServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.CriminalVerificationbase64 = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.CriminalVerificationbase64 = resp.data;\r\n } \r\n }, function() {\r\n vm.CriminalVerificationbase64 = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n\r\n vm.closeTProfile = function(){\r\n vm.userId = $stateParams.UserId;\r\n vm.Get360ProfileData();\r\n }\r\n\r\n vm.EditVTeam = function(RegistrationNo){\r\n $localStorage.EditVendorTeam = 'vendorteam';\r\n $localStorage.VendorId=vm.vendorId;\r\n $state.go('index.ActiveUserUpdate', {\r\n RegistrationNo: RegistrationNo\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.Get360VendorTeamData = function () {\r\n IT360ProfilService.Get360VendorTeamData(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n\r\n vm.GetToolsAndAssets = function () {\r\n IT360ProfilService.GetToolsAndAssets(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.assetData = resp.data;\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n\r\n vm.GetReviewAndRatings = function () {\r\n IT360ProfilService.GetReviewAndRatings(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.reviewData = resp.data;\r\n vm.users.InstallationratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.users.InstallationblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.users.SafetyratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.users.SafetyblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.users.VisitratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.users.VisitblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.users.CourteousratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.users.CourteousblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.users.ProratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.users.ProblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.users.ServiceratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n vm.users.ServiceblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n vm.Get360SkillSummary = function () {\r\n IT360ProfilService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for(var i=0;i 1 star)\r\nvar reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n// display initial rating totals\r\n// displayTotals();\r\n\r\n// use event listener to record changes to user rating\r\nstarRating.forEach(function(star) {\r\nstar.addEventListener(\"change\", recordRating);\r\n})\r\n\r\nfunction recordRating(event) {\r\n// use indexOf to identify selected user rating\r\nvar userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n// define selected rating to adjust display totals\r\nvar selectedIndex;\r\n\r\nstarRating.forEach(function(item, index) {\r\n // add or remove .active class based upon selected user rating\r\n if (index < userRating + 1) {\r\n starRating[index].classList.add(\"active\");\r\n selectedIndex = index;\r\n } else {\r\n starRating[index].classList.remove(\"active\");\r\n }\r\n\r\n displayTotals(selectedIndex);\r\n});\r\n}\r\nvm.countForStatus = 50;\r\n// display star rating totals from html custom data-\r\nfunction displayTotals(selectedIndex) {\r\nvar barChart = document.querySelectorAll(\".bar\"),\r\n displaySummary = document.querySelectorAll(\".summary\"),\r\n numRatings = 0,\r\n numRatingsValue = 0;\r\n\r\n// convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\nvar reverseBarChart = Array.from(barChart).reverse();\r\n\r\nreverseRatingTotal.forEach(function(total, index) {\r\n if (index == selectedIndex) {\r\n // add selected rating to display total\r\n total.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n // adjust selected bar width\r\n reverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n } else {\r\n // display unselected totals\r\n total.innerHTML = total.getAttribute(\"data-rating-count\");\r\n // adjust unselected bar widths\r\n reverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n }\r\n // count total number and value of ratings\r\n numRatings += parseInt(total.innerHTML);\r\n numRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n});\r\n\r\n// display rating average and total\r\nratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n// displaySummary[0].innerHTML = ratingsAverage + \" average based on \" + numRatings + \" reviews.\";\r\n}\r\n\r\n\r\n$scope.certificates = [\r\n { \r\n image: 'assets/images/patterns/word_doc.jpg', \r\n alt: 'Certificate 1',\r\n name: 'example-1',\r\n number: '12331122',\r\n issueDate: '23-12-2020',\r\n expiryDate: '23-12-2022'\r\n },\r\n { \r\n image: 'assets/images/patterns/word_doc.jpg', \r\n alt: 'Certificate 2',\r\n name: 'example-2',\r\n number: '98765432',\r\n issueDate: '25-12-2021',\r\n expiryDate: '25-12-2023'\r\n },\r\n // Add more certificate objects as needed\r\n];\r\n\r\nvar currentIndex = 0;\r\n\r\n$interval(function() {\r\n currentIndex = (currentIndex + 1) % $scope.certificates.length;\r\n $('#certificateCarousel').carousel(currentIndex);\r\n}, 5000);\r\n\r\n\r\n\r\n\r\nvm.callToTechnician = function () {\r\n IT360ProfilService.callToTechnicianApi(loggedinUser, vm.userId, token).then(function (resp) {\r\n if(resp.status == 200) {\r\n vm.showSuccess(\"Success\",\"Call Initiated\")\r\n }\r\n else {\r\n vm.showFailure(\"Failure\",resp.data.Message)\r\n }\r\n\r\n\r\n }, function () {\r\n //$log.log('not working');\r\n })\r\n}\r\n\r\nvm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\nvm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\nvm.getAvgRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\nvm.getAvgBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\nvm.getUserRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\nvm.getUserBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\n\r\nvm.removeKycVideo = function () {\r\n vm.removeKycVideoModel = $uibModal.open({\r\n templateUrl: 'removeKycVideo.html',\r\n size:'sm',\r\n scope: $scope,\r\n reload:true\r\n }); \r\n}\r\n\r\nvm.CloseRemoveKycVideo = function(){\r\n vm.removeKycVideoModel.close();\r\n}\r\n\r\nvm.deleteVideoForKyc = function(){\r\n IT360ProfilService.deleteVideoForKyc(loggedinUser, vm.userId, token).then(function(resp){\r\n if(resp.status == '200'){\r\n\r\n vm.showSuccess('Success', resp.data.Message);\r\n vm.CloseRemoveKycVideo();\r\n $timeout(function () {\r\n vm.Get360ProfileData();\r\n }, 2000);\r\n }\r\n else\r\n {\r\n vm.showFailure('Failed', resp.data);\r\n\r\n }\r\n })\r\n}\r\n\r\nvm.UpgradeToFV = function () {\r\n vm.UpgradeToFVModel = $uibModal.open({\r\n templateUrl: 'UpgradeToFV.html',\r\n size:'sm',\r\n scope: $scope,\r\n reload:true\r\n }); \r\n}\r\n\r\nvm.CloseUpgradeToFV = function(){\r\n vm.UpgradeToFVModel.close();\r\n}\r\n\r\nvm.UpgradeFreelancerToVendor = function(){\r\n vm.CloseUpgradeToFV();\r\n IT360ProfilService.UpgradeFreelancerToVendor(loggedinUser, vm.userId, token).then(function(resp){\r\n if(resp.status == '200'){\r\n vm.showSuccess('Success', resp.data.Message);\r\n $timeout(function () {\r\n $state.go('index.ActiveAllUser',{reload: true }); \r\n }, 1000);\r\n }\r\n else\r\n {\r\n vm.showFailure('Failed', resp.data.Message);\r\n\r\n }\r\n })\r\n}\r\n\r\nvm.PreviousCompnyExperienceLetterServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.PCExperienceLetterbase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.PCExperienceLetterbase64[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.PCExperienceLetterbase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n}\r\n\r\nvm.TrainingImageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.TrainingImagebase64[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n\r\nvm.TrainingAttendanceServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.TrainingAttendancebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.TrainingAttendancebase64[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.TrainingAttendancebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n}\r\n\r\n\r\n // vm.getCustomerAccounts = function(){ \r\n // IT360ProfilService.getCustomerAccounts(loggedinUser, token).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // vm.accountList = resp.data;\r\n // }\r\n // });\r\n // }\r\n\r\n // vm.getCustomerAccounts(); \r\n\r\n // function getAllStates() {\r\n // var defered = $q.defer();\r\n // ReferService.getAllState(loggedinUser,token).then(function (resp) {\r\n // defered.resolve(resp);\r\n // }, function (error) {\r\n // defered.reject(error);\r\n // });\r\n // return defered.promise;\r\n // }\r\n\r\n // var allStatePromise = getAllStates();\r\n // allStatePromise.then(function (resp) {\r\n // vm.StateList = resp.data;\r\n \r\n // });\r\n\r\n \r\nvm.getCustomerAccounts = function(){ \r\n IT360ProfilService.getCustomerAccounts(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.accountList = resp.data;\r\n }\r\n });\r\n}\r\n// vm.getCustomerAccounts();\r\n\r\nvm.ResetUserFilter = function () { \r\n vm.UsersType = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.userskill = ''; \r\n vm.uType= ''; \r\n vm.CriminalVerified='';\r\n vm.IdVerified='';\r\n vm.PANVerified=''; \r\n vm.useraccount = ''; \r\n vm.pincode ='';\r\n vm.userNameSearch ='';\r\n vm.contactNumberSearch = '';\r\n startDate = '';\r\n endDate = '';\r\n vm.JobcountbyStatus = '';\r\n // vm.applyUserFilter();\r\n}\r\nvm.UsersFilterArray = function()\r\n {\r\n // vm.ResetUserSelection(this);\r\n uitemNames=\"\";\r\n uitemValues=\"\";\r\n\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } \r\n }\r\n\r\n if (vm.userskill) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Skill';\r\n uitemValues = uitemValues + \",\" + vm.userskill;\r\n }\r\n else\r\n {\r\n uitemNames = 'Skill';\r\n uitemValues = vm.userskill;\r\n } \r\n }\r\n if (vm.useraccount) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',AccountName';\r\n uitemValues = uitemValues + \",\" + vm.useraccount;\r\n }\r\n else\r\n {\r\n uitemNames = 'AccountName';\r\n uitemValues = vm.useraccount;\r\n } \r\n }\r\n if (vm.pincode) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.pincode;\r\n }\r\n else\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.pincode;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.userNameSearch;\r\n } \r\n }\r\n if (vm.contactNumberSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',ContactNumber';\r\n uitemValues = uitemValues + \",\" + vm.contactNumberSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'ContactNumber';\r\n uitemValues = vm.contactNumberSearch;\r\n } \r\n }\r\n \r\n if (vm.CriminalVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsCriminalVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else\r\n {\r\n uitemNames = 'IsCriminalVerified';\r\n uitemValues = '\"true\"';\r\n } \r\n }\r\n if (vm.IdVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsAdharVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else\r\n {\r\n uitemNames = 'IsAdharVerified';\r\n uitemValues = '\"true\"';\r\n } \r\n }\r\n if (vm.PANVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsPanVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else\r\n {\r\n uitemNames = 'IsPanVerified';\r\n uitemValues = '\"true\"';\r\n } \r\n }\r\n if (vm.PermanentState) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',State';\r\n uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n }\r\n else\r\n {\r\n uitemNames = 'State';\r\n uitemValues = vm.PermanentState;\r\n } \r\n }\r\n \r\n if(vm.JobcountbyStatus)\r\n {\r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Status';\r\n uitemValues = uitemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else\r\n {\r\n uitemNames = 'Status';\r\n uitemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n if (vm.PermanentState && vm.PermanentCity) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.PermanentCity;\r\n }\r\n else\r\n {\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.UsersType;\r\n } \r\n }\r\n if (vm.UsersType) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + \",\" + vm.UsersType;\r\n }\r\n else\r\n {\r\n uitemNames = 'Role';\r\n uitemValues = vm.UsersType;\r\n } \r\n } \r\n\r\n if(vm.UsersType==\"Freelancer\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n }\r\n else if(vm.UsersType==\"Freelancer Vendor\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n } \r\n else if(vm.UsersType==\"Freelancer Team\")\r\n {\r\n vm.uType=\"Fixed\";\r\n }\r\n else \r\n {\r\n vm.uType=\"\";\r\n vm.UsersType = '';\r\n } \r\n\r\n }\r\n\r\n\r\nvm.UserByFiltersList=[];\r\nvm.Get360WorkSummary = function () {\r\n IT360ProfilService.Get360WorkSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy,vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.UserByFiltersList = resp.data.workSummaryData;\r\n $scope.totalUsers = resp.data.WorkSummaryTotalCount;\r\n // preprocessData(vm.UserByFiltersList);\r\n if(vm.UserByFiltersList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = uPageIndex * vm.userPageListCount;\r\n if(uPageIndex==1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex-1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n}\r\nvm.UsersFilterArray(); \r\n// vm.Get360WorkSummary();\r\n\r\n$scope.totalUsers = 0;\r\n$scope.usersPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function() { \r\n $scope.usersPerPage = vm.userPageListCount;\r\n uPageSize = $scope.usersPerPage;\r\n $scope.UserTablePageChanged($scope.Userpagination.current);\r\n\r\nuPageIndex=$scope.Userpagination.current;\r\n$scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.UsersFilterArray(); \r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n\r\n};\r\n}\r\n \r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n if(uitemNames != 'Search')\r\n {\r\n vm.UsersFilterArray();\r\n }\r\n \r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\nvm.applyUserFilter=function()\r\n { \r\n vm.UsersFilterArray(); \r\n \r\n uPageIndex=1;\r\n $scope.Userpagination = {\r\n current: 1\r\n }; \r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n\r\n\r\n }\r\n vm.SubmitFilter = function () { \r\n\r\n $scope.Userpagination = {};\r\n vm.UsersFilterArray();\r\n uPageIndex=1;\r\n $scope.Userpagination = {\r\n current: 1\r\n }; \r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n }\r\n vm.filterStatusForJObs = function(status)\r\n {\r\n vm.JobcountbyStatus=status;\r\n vm.UsersFilterArray(); \r\n PageIndex=1;\r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy,vm.sorttype); \r\n }\r\n\r\n // vm.loadAllSkills = function(){ \r\n // IT360ProfilService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n // vm.skillsWithPipe = '';\r\n // if (resp && resp.data) {\r\n // vm.skillData = resp.data;\r\n // if(vm.skillData && vm.skillData.length>0){\r\n // angular.forEach(vm.skillData, function(s){\r\n // vm.skillsWithPipe += s.SkillName+\"|\";\r\n // });\r\n // vm.skillsWithPipe = vm.skillsWithPipe.length>0\r\n // ? vm.skillsWithPipe.substring(0,vm.skillsWithPipe.length-1) : \"\";\r\n // }\r\n // }\r\n // });\r\n // }\r\n // vm.loadAllSkills();\r\n\r\n vm.FinanceFilterArray = function()\r\n {\r\n uitemNames=\"\";\r\n uitemValues=\"\";\r\n\r\n if (vm.userskill) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Skill';\r\n uitemValues = uitemValues + \",\" + vm.userskill;\r\n }\r\n else\r\n {\r\n uitemNames = 'Skill';\r\n uitemValues = vm.userskill;\r\n } \r\n }\r\n if (vm.useraccount) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',AccountName';\r\n uitemValues = uitemValues + \",\" + vm.useraccount;\r\n }\r\n else\r\n {\r\n uitemNames = 'AccountName';\r\n uitemValues = vm.useraccount;\r\n } \r\n }\r\n if (vm.statusFin) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',status';\r\n uitemValues = uitemValues + \",\" + vm.statusFin;\r\n }\r\n else\r\n {\r\n uitemNames = 'status';\r\n uitemValues = vm.statusFin;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.userNameSearch;\r\n } \r\n }\r\n if (vm.contactNumberSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',ContactNumber';\r\n uitemValues = uitemValues + \",\" + vm.contactNumberSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'ContactNumber';\r\n uitemValues = vm.contactNumberSearch;\r\n } \r\n }\r\n \r\n if (vm.CriminalVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsCriminalVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else\r\n {\r\n uitemNames = 'IsCriminalVerified';\r\n uitemValues = '\"true\"';\r\n } \r\n }\r\n if (vm.IdVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsAdharVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else\r\n {\r\n uitemNames = 'IsAdharVerified';\r\n uitemValues = '\"true\"';\r\n } \r\n }\r\n if (vm.PANVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsPanVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else\r\n {\r\n uitemNames = 'IsPanVerified';\r\n uitemValues = '\"true\"';\r\n } \r\n }\r\n if (vm.PermanentState) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',State';\r\n uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n }\r\n else\r\n {\r\n uitemNames = 'State';\r\n uitemValues = vm.PermanentState;\r\n } \r\n }\r\n if (vm.PermanentState && vm.PermanentCity) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.PermanentCity;\r\n }\r\n else\r\n {\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.UsersType;\r\n } \r\n }\r\n if (vm.UsersType) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + \",\" + vm.UsersType;\r\n }\r\n else\r\n {\r\n uitemNames = 'Role';\r\n uitemValues = vm.UsersType;\r\n } \r\n } \r\n\r\n if(vm.UsersType==\"Freelancer\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n }\r\n else if(vm.UsersType==\"Freelancer Vendor\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n } \r\n else if(vm.UsersType==\"Freelancer Team\")\r\n {\r\n vm.uType=\"Fixed\";\r\n }\r\n else \r\n {\r\n vm.uType=\"\";\r\n vm.UsersType = '';\r\n } \r\n\r\n }\r\n\r\n\r\n vm.ExternalUpload = function () {\r\n var newdata = {};\r\n newdata = {\r\n \"UserId\": vm.userId,\r\n \"Type\": \"\",\r\n \"skillName\": \"\"\r\n }\r\n IT360ProfilService.UploadExternalVideoList(newdata, loggedinUser, token).then(function (resp) {\r\n vm.UploadVideoExternal = resp.data;\r\n });\r\n }\r\n\r\n vm.ReTestForSkill = function (skill) {\r\n var data = {};\r\n data = {\r\n \"UserId\": vm.userId,\r\n \"Skill\": skill \r\n }\r\n OnBoardingFlowService.ReTestForSkill(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n\r\n\r\nvm.FinanceFiltersList=[];\r\nvm.GetFinancialSummary = function () {\r\n \r\n IT360ProfilService.GetFinancialSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.paymentCount = resp.data.paymentsSummary;\r\n vm.FinanceFiltersList = resp.data.financialSummary360.financialLPSummaryList;\r\n $scope.totalFinList = resp.data.financialSummary360.count;\r\n if(vm.FinanceFiltersList.length < vm.financePageListCount)\r\n vm.financeListLength = $scope.totalFinList;\r\n else\r\n vm.financeListLength = fPageIndex * vm.financePageListCount;\r\n if(fPageIndex==1)\r\n vm.fpageindexCount = 1;\r\n else\r\n vm.fpageindexCount = (((fPageIndex-1) * vm.financePageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n vm.ResetUserFilter();\r\n}\r\nvm.FinanceFilterArray(); \r\n// vm.GetFinancialSummary();\r\n\r\n$scope.totalFinList = 0;\r\n$scope.usersPerPage = vm.financePageListCount;\r\n $scope.Financepagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changefinancePageListCount = function() { \r\n $scope.usersPerPage = vm.financePageListCount;\r\n fPageSize = $scope.usersPerPage;\r\n $scope.FinanceTablePageChanged($scope.Financepagination.current);\r\n vm.selectAll = false;\r\n\r\n fPageIndex=$scope.Financepagination.current;\r\n $scope.FinanceTablePageChanged = function(newPage) { \r\n fPageIndex = newPage;\r\n vm.FinanceFilterArray(); \r\n vm.GetFinancialSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n\r\n};\r\n}\r\n \r\nfPageIndex=$scope.Financepagination.current;\r\n $scope.FinanceTablePageChanged = function(newPage) { \r\n fPageIndex = newPage;\r\n if(uitemNames != 'Search')\r\n {\r\n vm.FinanceFilterArray();\r\n }\r\n \r\n vm.GetFinancialSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\n vm.applyFinanceFilter=function()\r\n { \r\n vm.FinanceFilterArray(); \r\n fPageIndex=1;\r\n $scope.Financepagination = {\r\n current: 1\r\n }; \r\n vm.GetFinancialSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n});\nangular.module('inspinia').service('IntegrationPointDetailViewService', function (ApiURL, IntegrationHubURL, $http, $localStorage) {\r\n\r\n this.GetIntegrationPoints = function (ticketId, token) {\r\n var url = IntegrationHubURL + '/api/IntegrationAPIFault/GetIntegrationPoints?ticketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n});\nangular.module('inspinia').controller('IntegrationPointDetailViewController', function (\r\n\t$state, $localStorage, $scope, IntegrationPointDetailViewService, $stateParams) {\r\n\tvm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvm.accountConfig = $localStorage.accountConfig;\r\n\tvm.NokiaTableHeaderChange = $localStorage.accountConfig.NokiaTableHeaderChange;\r\n\tvar token = $localStorage.token;\r\n\tvm.Role = $localStorage.loggedInUser_Role;\r\n\tvm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n\tvar accountConfig = $localStorage.accountConfig;\r\n\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\tvm.disableBroadcastButton = false;\r\n\tvm.disableRouteButton = false;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\r\n\t\tvar token = $localStorage.token;\r\n\t\tvm.TicketId = $stateParams.ticketId;\r\n\r\n\t\tvm.GetIntegrationPoints = function () {\r\n\t\t\tIntegrationPointDetailViewService.GetIntegrationPoints(vm.TicketId, token).then(function (resp) {\r\n\t\t\t\tvm.TicketInfo = resp.data;\r\n\t\t\t\tvm.IntegrationPointsList = resp.data.IntegrationPointsList;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetIntegrationPoints();\r\n\t}\r\n\r\n});\r\n\nangular.module('inspinia').service('ITEngineerService', function (ApiURL,FreelancerURL,paymentsapi,PublicApiURL, LocationURL, $log, $http, $localStorage) {\r\n\r\n // https://product.mymobiforce.com/FreelancerAPI/api/FreeLancerUser/F00000033993/U00000000406/byUserIdWithJobCount\t\r\n this.GetUserId = function(loggedInUser,userId, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId +'/'+ loggedInUser+ '/'+ 'byUserIdWithJobCount' ;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n // https://product.mymobiforce.com/coreapi/api/ProfileController/Get360ProfileDashboardData?UserId=F00000033744\r\n\r\n this.Get360ProfileData= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/Get360ProfileDashboardData?UserId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.DeActivateUserWithRemark = function (data, loggedInUser, token) {\r\n var url = ApiURL + '/api/User/BlockFieldUser';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedInUser\r\n }\r\n });\r\n }\r\n\r\n this.UploadExternalVideoList = function (newdata, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetVideoKycData';\r\n return $http.put(url, newdata, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/GetToolsAndAssets?Userid=FV0000000002326\r\n\r\n this.GetToolsAndAssets= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/GetToolsAndAssets?Userid=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/GetReviewAndRatings?Userid=F00000033829\r\n\r\n this.GetReviewAndRatings= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/GetReviewAndRatings?Userid=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/Get360SkillSummary?Userid=F00000033744\r\n\r\n this.Get360SkillSummary= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/Get360SkillSummary?Userid=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n this.GetAuthorizedServicePartnerDetail= function(loggedInUser,userId, token){\r\n var url = FreelancerURL + '/api/FreelancerUser/GetAuthorizedServicePartnerDetailForPortal?reqUserId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n // https://testg2.mymobiforce.com/FreelancerAPI/api/FreelancerUser/GetAuthorizedServicePartnerDetailForPortal?reqUserId=F00000033983\r\n // https://product.mymobiforce.com/coreapi/api/ProfileController/Get360VendorTeamData?UserId=FV0000000002393\r\n\r\n this.Get360VendorTeamData= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/Get360VendorTeamData?UserId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/GetLastFollowUpOnTicketId?Userid=F00000033748\r\n\r\n this.GetLastFollowUpOnTicketId= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/GetLastFollowUpOnTicketId?Userid=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.callToTechnicianApi = function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId='+userId ;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.PreferredSingleUser = function(loggedInUser, userId, status, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Favorite/' + loggedInUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedInUser }\r\n });\r\n }\r\n\r\n this.BlockedSingleUser = function(loggedInUser, userId, status, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Block/' + loggedInUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { \r\n 'Content-Type': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUser }\r\n });\r\n }\r\n\r\n this.getJobsByUserId=function(userId,loggedInUser, token){\r\n var url =ApiURL + \"/api/Ticket/\" +userId+\"/Approved/byUserIdStatus?reqUserId=\"+loggedInUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedInUser\r\n }\r\n });\r\n }\r\n \r\n this.UserAgreement=function(loggedinUser, userId, token){\r\n var url =ApiURL + \"/api/User/GetEULAByUserId?reqUserId=\" +loggedinUser+\"&userId=\"+userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.BankDetails=function(loggedinUser, userId, token){\r\n var url =FreelancerURL + \"/api/FreeLancerUser/GetFEBankDetail?AccountId=0\" +\"&userId=\"+userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Report/GeneratePdfSelfDeclaration?userId=F00000001208\r\n this.GeneratePdfSelfDeclaration = function(loggedinUser, userId, token){\r\n var url = ApiURL + '/api/Report/GeneratePdfSelfDeclaration?userId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json',\r\n 'Token':token,\r\n 'UserId':loggedinUser}\r\n })\r\n }\r\n\r\n this.GeneratePdfVerificationReport = function(loggedinUser, userId, token){\r\n var url = ApiURL + '/api/Report/GeneratePdfVerificationReport?userId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId':loggedinUser}\r\n })\r\n }\r\n\r\n\r\n this.GetLeadsForMobile = function(loggedinUser, token,PageIndex,PageSize,OrderBy,order,searchtag){\r\n var url = FreelancerURL + \"/api/BID/GetLeadsForMobile?Vertical=\"+ '&PageIndex=' + PageIndex + '&PageSize=' + PageSize+ '&OrderBy=' + OrderBy + '&order=' + order + '&SearchTag=' + searchtag;\r\n return $http.get(url,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllSkills = function (loggedinUser, token) { \r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n });\r\n }\r\n \r\n\r\n\r\n // https://pro.mymobiforce.com/paymentsapi/api/Payouts/FinancialSummaryTicketDetails?paymentId=7347298768_4921_1655205323\r\n\r\n\r\n this.GetFinanceTicketDetail = function (paymentId) {\r\n var url = paymentsapi + '/api/Payouts/FinancialSummaryTicketDetails?paymentId=' + paymentId;\r\n return $http.get(url,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'NoAuth': true,\r\n }\r\n });\r\n }\r\n\r\n //Accounts API\r\n this.getCustomerAccounts = function (loggedInUserId,token) { \r\n var url = ApiURL+ '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n \r\n }\r\n });\r\n }\r\n\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/GetFinancialSummary?UserId=F00000033748&from_Date=2022-05-09&to_Date=2022-06-20&itemNames=status&itemValue=PaymentCarriedForward&PageIndex=1&PageSize=10\r\n\r\n this.GetFinancialSummary = function (loggedInUser,token,userId,itemNames,itemValues,PageIndex,PageSize, startDate, endDate) {\r\n var url = ApiURL + '/api/ProfileController/GetFinancialSummary?UserId=' + userId + '&from_Date=' + startDate + '&to_Date=' + endDate + '&itemNames=' + itemNames + '&itemValue=' + itemValues +'&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUser\r\n }\r\n });\r\n } \r\n \r\n //https://pro.mymobiforce.com/coreapi/api/User/UpgradeFreelancerToVendor\r\n\tthis.UpgradeFreelancerToVendor = function(loggedInUser, userId, token){\r\n\t\tvar url = ApiURL + '/api/User/UpgradeFreelancerToVendor';\r\n\t\treturn $http.put(url, {\"FreelancerId\": userId}, {\r\n\t\t headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedInUser }\r\n\t\t});\r\n\t }\r\n\r\n this.deleteVideoForKyc = function(loggedInUser, userId, token){\r\n var url = ApiURL + '/api/User/RemoveUserDocKYCVideo?userId='+userId;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedInUser }\r\n });\r\n }\r\n \r\n this.getAllState = function (loggedinUser,token) { \r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+loggedinUser+'®ion=INDIA';\r\n return $http.get(url,{\r\n headers:{\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // http://localhost:56749/api/ProfileController/Get360WorkSummary?UserId=F00000033748&from_Date=2022-05-09&to_Date=2022-06-20&itemNames=skill,accountname&itemValue=Air_Cooler_Services,114&PageIndex=1&PageSize=10&OrderBy=AssignationDateObj&SortType=desc\r\n this.Get360WorkSummary = function (loggedinUser,token,userId,itemNames,itemValues,PageIndex,PageSize, startDate, endDate,DataFeild,sorttype ) {\r\n var url = '';\r\n var url = ApiURL + '/api/ProfileController/Get360WorkSummary?UserId=' + userId + '&from_Date=' + startDate + '&to_Date=' + endDate + '&itemNames=' + itemNames + '&itemValue=' + itemValues +'&DataFeild='+ DataFeild +'&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&SortType=' + sorttype;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n } \r\n\r\n this.getUserInfo = function (userId, loggedinUser, token) {\r\n var url = FreelancerURL + \"/api/FreeLancerUser/\" + userId + \"/\" + loggedinUser + \"/byUserIdForEngineerProfile\";\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser\r\n }\r\n });\r\n } \r\n\r\n\r\n });\r\n\nangular.module('inspinia').controller('ITEngineerController', function (DashboardService, ITEngineerService, OnBoardingFlowService, $rootScope, UIURL, ApiURL, ReferService, $q, MainService, ImageUrl, $log, $state, $localStorage, $stateParams, $uibModal, $scope, $interval, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.loggedInUser_Role = $localStorage.loggedInUser_Role;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n vm.NokiaTableHeaderChange = $localStorage.accountConfig.NokiaTableHeaderChange;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.userId = $stateParams.UserId;\r\n vm.DocumentprofileImg = [];\r\n vm.DocumentbackImg = [];\r\n vm.CertificateImg = [];\r\n vm.ProjectDescription = [];\r\n vm.ProjectDesc = [];\r\n vm.CertprofileImg = [];\r\n vm.VerificationCertprofileImg = [];\r\n vm.ToolsDetailList = [];\r\n vm.PreviousCompanyDetailsList = [];\r\n vm.TrainingImagebase64 = [];\r\n vm.TrainingAttendancebase64 = [];\r\n vm.PCExperienceLetterbase64 = [];\r\n vm.PCLogobase64 = [];\r\n vm.ExperienceVerificationReportbase64 = [];\r\n vm.EducationLogoBase64 = [];\r\n\r\n $scope.profileProgress = 0;\r\n\r\n $interval(function () {\r\n // Simulating progress update\r\n if ($scope.profileProgress < 70) {\r\n $scope.profileProgress += 10; // Update this value as per your requirement\r\n }\r\n }, 100);\r\n $scope.isBlinking = false;\r\n\r\n $interval(function () {\r\n $scope.isBlinking = !$scope.isBlinking;\r\n }, 800);\r\n\r\n\r\n vm.OpenPdfModal = function (PdfPathName, TypeName) {\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size: 'lg',\r\n scope: $scope,\r\n controller: ModalInstanceCtrl(PdfPathName, TypeName)\r\n });\r\n }\r\n\r\n vm.PDFViewGeneratePdfSelfDeclaration = function () {\r\n vm.OpenPdfModal(vm.userId, \"Self Declaration\");\r\n }\r\n vm.PDFViewGeneratePdfVerificationReport = function () {\r\n vm.OpenPdfModal(vm.userId, \"Verification Report\");\r\n }\r\n vm.PDFViewLegalContract = function (page) {\r\n vm.OpenPdfModal(page, \"Legal Contract\");\r\n }\r\n vm.PDFView = function (page) {\r\n vm.OpenPdfModal(page, \"PDF View\");\r\n }\r\n var ModalInstanceCtrl = function (PdfPathNames, TypeNames) {\r\n vm.IsLoadSucessfull = false;\r\n vm.pdfimage = \"\";\r\n if (TypeNames == \"Legal Contract\") {\r\n MainService.GetLegalContractImageBlob(loggedinUser, token, PdfPathNames).then(function (resp) {\r\n vm.ConvertBase64ToBlob(resp.data);\r\n vm.IsLoadSucessfull = true;\r\n });\r\n }\r\n if (TypeNames == \"PDF View\") {\r\n MainService.GetImageBlob(loggedinUser, token, PdfPathNames).then(function (resp) {\r\n vm.ConvertBase64ToBlob(resp.data);\r\n vm.IsLoadSucessfull = true;\r\n });\r\n }\r\n if (TypeNames == \"Verification Report\") {\r\n ITEngineerService.GeneratePdfVerificationReport(loggedinUser, PdfPathNames, token).then(function (resp) {\r\n vm.ConvertBase64ToBlob(resp.data.Base64Data);\r\n vm.IsLoadSucessfull = true;\r\n });\r\n }\r\n if (TypeNames == \"Self Declaration\") {\r\n ITEngineerService.GeneratePdfSelfDeclaration(loggedinUser, PdfPathNames, token).then(function (resp) {\r\n vm.ConvertBase64ToBlob(resp.data.Base64Data);\r\n vm.IsLoadSucessfull = true;\r\n });\r\n }\r\n }\r\n\r\n vm.ConvertBase64ToBlob = function (response) {\r\n if (response != null) {\r\n var arrrayBuffer = base64ToArrayBuffer(response); //data is the base64 encoded string\r\n var blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n vm.pdfimage = URL.createObjectURL(blob);\r\n vm.IsLoadSucessfull = true;\r\n }\r\n else {\r\n vm.DocumentAvailableMessage = \"Document is not available\";\r\n vm.IsLoadSucessfull = true;\r\n }\r\n }\r\n function base64ToArrayBuffer(base64) {\r\n var ret = base64.replace('data:application/pdf;base64,', '');\r\n var binaryString = atob(ret);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n }\r\n\r\n vm.getFileType = function (url) {\r\n if (url == null || url == \"\") {\r\n return \"others\";\r\n }\r\n else {\r\n if (url.indexOf(\".jpg\") >= 0 || url.indexOf(\".jpeg\") >= 0 || url.indexOf(\".png\") >= 0 || url.indexOf(\".bmp\") >= 0 || url.indexOf(\".JPG\") >= 0 || url.indexOf(\".JPEG\") >= 0 || url.indexOf(\".PNG\") >= 0 || url.indexOf(\".BMP\") >= 0) {\r\n return \"image\";\r\n } else if (url.indexOf(\".pdf\") >= 0 || url.indexOf(\".PDF\") >= 0) {\r\n return \"pdf\";\r\n } else if (url.indexOf(\".xls\") >= 0 || url.indexOf(\".xlsx\") >= 0 || url.indexOf(\".XLS\") >= 0 || url.indexOf(\".XLSX\") >= 0) {\r\n return \"xls\";\r\n } else if (url.indexOf(\".doc\") >= 0 || url.indexOf(\".docx\") >= 0 || url.indexOf(\".DOC\") >= 0 || url.indexOf(\".DOCX\") >= 0) {\r\n return \"doc\";\r\n }\r\n else {\r\n return \"others\";\r\n }\r\n }\r\n }\r\n vm.WordDownloadtoView = function (page) {\r\n MainService.GetImageBlob(loggedinUser, token, page).then(function (resp) {\r\n window.location.href = resp.data;\r\n });\r\n\r\n }\r\n vm.PDFUserModal = function () {\r\n jobAppointmentModal.close();\r\n }\r\n\r\n $scope.checkPDF = function (path) {\r\n if (!path)\r\n return true;\r\n\r\n var pt = path.substr(path.length - 4);\r\n var dt = path.substr(path.length - 4);\r\n\r\n if (pt == '.pdf' || dt == '.doc') {\r\n vm.error = function () {\r\n $(\".pdf\").attr({ \"target\": \"_blank\" })\r\n }\r\n return true;\r\n }\r\n }\r\n\r\n\r\n vm.CertificateimageServices = function (img, index) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.CertificateImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.CertificateImg[index] = resp.data;\r\n }\r\n }, function () {\r\n vm.CertificateImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n\r\n }\r\n\r\n vm.PreviousCompnyExperienceLetterServices = function (img, index) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.PCExperienceLetterbase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.PCExperienceLetterbase64[index] = resp.data;\r\n }\r\n }, function () {\r\n vm.PCExperienceLetterbase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.PreviousCompnyLogoBase64 = function (img, index) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.PCLogobase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.PCLogobase64[index] = resp.data;\r\n }\r\n }, function () {\r\n vm.PCLogobase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n\r\n\r\n vm.TrainingImageServices = function (img, index) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.TrainingImagebase64[index] = resp.data;\r\n }\r\n }, function () {\r\n vm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n\r\n vm.EducationLogoServices = function (img, index) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.EducationLogoBase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else {\r\n vm.EducationLogoBase64[index] = resp.data;\r\n }\r\n }, function () {\r\n vm.EducationLogoBase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n }\r\n\r\n vm.imageServices = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n if (resp.data == null || resp.data == '') {\r\n vm.profileImg = 'assets/images/patterns/a4.jpg';\r\n }\r\n else {\r\n vm.profileImg = resp.data;\r\n }\r\n }, function () {\r\n vm.profileImg = 'assets/images/patterns/a4.jpg';\r\n });\r\n\r\n }\r\n\r\n vm.usersRating = [];\r\n vm.usersBlankRating = [];\r\n\r\n\r\n var starRating = document.querySelectorAll(\".fa-star\"),\r\n ratingTotal = document.querySelectorAll(\".rating-total\");\r\n\r\n // convert ratingTotal HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n\r\n starRating.forEach(function (star) {\r\n star.addEventListener(\"change\", recordRating);\r\n })\r\n\r\n function recordRating(event) {\r\n // use indexOf to identify selected user rating\r\n var userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n // define selected rating to adjust display totals\r\n var selectedIndex;\r\n\r\n starRating.forEach(function (item, index) {\r\n // add or remove .active class based upon selected user rating\r\n if (index < userRating + 1) {\r\n starRating[index].classList.add(\"active\");\r\n selectedIndex = index;\r\n } else {\r\n starRating[index].classList.remove(\"active\");\r\n }\r\n\r\n displayTotals(selectedIndex);\r\n });\r\n }\r\n vm.countForStatus = 50;\r\n function displayTotals(selectedIndex) {\r\n var barChart = document.querySelectorAll(\".bar\"),\r\n displaySummary = document.querySelectorAll(\".summary\"),\r\n numRatings = 0,\r\n numRatingsValue = 0;\r\n\r\n // convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseBarChart = Array.from(barChart).reverse();\r\n\r\n reverseRatingTotal.forEach(function (total, index) {\r\n if (index == selectedIndex) {\r\n // add selected rating to display total\r\n total.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n // adjust selected bar width\r\n reverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n } else {\r\n // display unselected totals\r\n total.innerHTML = total.getAttribute(\"data-rating-count\");\r\n // adjust unselected bar widths\r\n reverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n }\r\n // count total number and value of ratings\r\n numRatings += parseInt(total.innerHTML);\r\n numRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n });\r\n\r\n ratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n }\r\n\r\n\r\n $scope.certificates = [\r\n {\r\n image: 'assets/images/patterns/word_doc.jpg',\r\n alt: 'Certificate 1',\r\n name: 'example-1',\r\n number: '12331122',\r\n issueDate: '23-12-2020',\r\n expiryDate: '23-12-2022'\r\n },\r\n {\r\n image: 'assets/images/patterns/word_doc.jpg',\r\n alt: 'Certificate 2',\r\n name: 'example-2',\r\n number: '98765432',\r\n issueDate: '25-12-2021',\r\n expiryDate: '25-12-2023'\r\n },\r\n ];\r\n\r\n var currentIndex = 0;\r\n\r\n $interval(function () {\r\n currentIndex = (currentIndex + 1) % $scope.certificates.length;\r\n $('#certificateCarousel').carousel(currentIndex);\r\n }, 5000);\r\n\r\n\r\n\r\n\r\n vm.callToTechnician = function () {\r\n ITEngineerService.callToTechnicianApi(loggedinUser, vm.userId, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\")\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", resp.data.Message)\r\n }\r\n\r\n\r\n }, function () {\r\n })\r\n }\r\n\r\n vm.OpenDeactivateConfirmationModel = function () {\r\n vm.openDeactivateModel = $uibModal.open({\r\n templateUrl: 'deactivateModel.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n vm.closeDeactivateModel = function () {\r\n vm.openDeactivateModel.close();\r\n vm.DeactivationRemark = \"\";\r\n }\r\n\r\n\r\n vm.DeActivateUserWithRemark = function () {\r\n vm.Deactivation_Form.submitted = true;\r\n if (vm.Deactivation_Form.$valid) {\r\n var data = {\r\n \"UserId\": vm.userId,\r\n \"BlockComment\": vm.DeactivationRemark\r\n }\r\n ITEngineerService.DeActivateUserWithRemark(data, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.closeDeactivateModel();\r\n $timeout(function () {\r\n vm.getUserInfo();\r\n }, 1000)\r\n\r\n }\r\n }, function () {\r\n });\r\n }\r\n }\r\n\r\n\r\n vm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n\r\n\r\n\r\n vm.getUserInfo = function () {\r\n ITEngineerService.getUserInfo(vm.userId, loggedinUser, token).then(function (resp) {\r\n vm.userInfo = resp.data;\r\n if (vm.userInfo.About) {\r\n vm.aboutSections = vm.userInfo.About.split(' | ');\r\n }\r\n if (vm.userInfo.Expertise) {\r\n vm.expertiseSection = vm.userInfo.Expertise.split(' | ');\r\n }\r\n if (vm.userInfo.ContactNumber) {\r\n vm.userInfo.ContactNumber = vm.userInfo.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n // if (vm.userInfo.Picture) {\r\n vm.imageServices(vm.userInfo.Picture);\r\n // }\r\n if (vm.userInfo.PreviousCompanyDetailsList) {\r\n for (var i = 0; i < vm.userInfo.PreviousCompanyDetailsList.length; i++) {\r\n if (vm.userInfo.PreviousCompanyDetailsList) {\r\n vm.ProjectDescription[i] = vm.userInfo.PreviousCompanyDetailsList[i].ProjectDescription.split(' | ');\r\n }\r\n if (vm.getFileType(vm.userInfo.PreviousCompanyDetailsList[i].ExperienceLetter) == 'image')\r\n vm.PreviousCompnyExperienceLetterServices(vm.userInfo.PreviousCompanyDetailsList[i].ExperienceLetter, i);\r\n if (vm.getFileType(vm.userInfo.PreviousCompanyDetailsList[i].CompanyLogoImage) == 'image' || vm.getFileType(vm.userInfo.PreviousCompanyDetailsList[i].CompanyLogoImage) == 'others')\r\n vm.PreviousCompnyLogoBase64(vm.userInfo.PreviousCompanyDetailsList[i].CompanyLogoImage, i);\r\n }\r\n }\r\n if (vm.userInfo.ProjectDetails) {\r\n for (var i = 0; i < vm.userInfo.ProjectDetails.length; i++) {\r\n if (vm.userInfo.ProjectDetails) {\r\n vm.ProjectDesc[i] = vm.userInfo.ProjectDetails[i].ProjectDiscription.split(' | ');\r\n }\r\n }\r\n }\r\n if (vm.userInfo.TrainingAssessment) {\r\n for (var i = 0; i < vm.userInfo.TrainingAssessment.length; i++) {\r\n vm.CertificateimageServices(vm.userInfo.TrainingAssessment[i].CertificateImage, i);\r\n }\r\n $scope.certificates = vm.userInfo.TrainingAssessment;\r\n }\r\n if (vm.userInfo.EducationSummary) {\r\n for (var i = 0; i < vm.userInfo.EducationSummary.length; i++) {\r\n if (vm.getFileType(vm.userInfo.EducationSummary[i].CollegeLogoImage) == 'image' || vm.getFileType(vm.userInfo.EducationSummary[i].CollegeLogoImage) == 'others')\r\n vm.EducationLogoServices(vm.userInfo.EducationSummary[i].CollegeLogoImage, i);\r\n }\r\n }\r\n\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.getUserInfo();\r\n }\r\n});\nangular.module('inspinia').service('HealthAndSafetyService', function (ApiURL, LocationURL,PublicApiURL, $log, $http,$localStorage) {\r\n var url = ApiURL + '/api/User';\r\n \r\n\r\n this.GetAllSafetyGuidelineDocsForPortal = function (loggedinUser, token){\r\n var url = ApiURL + '/api/User/GetAllSafetyGuidelineDocsForPortal';\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n } \r\n});\r\n\nangular.module('inspinia').controller('HealthAndSafetyController', function (HealthAndSafetyService,MainService, $uibModal,toaster, $filter, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder, DTColumnBuilder, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n\tvm = this;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\tvm.SafetyGuidelineLists=[];\t\r\n\tvm.pdfimage=\"\";\r\n\tvm.GetAllSafetyGuidelineDocsForPortal = function () {\t\t\t\r\n\t\tHealthAndSafetyService.GetAllSafetyGuidelineDocsForPortal(loggedinUser, token).then(function (resp) {\r\n\t\t\tvm.SafetyGuidelineLists = resp.data;\t\t\t\t\t\t\t\r\n\t\t});\r\n\t}\r\n\tvm.GetAllSafetyGuidelineDocsForPortal();\t\r\n\r\n\tvm.DocumentAvailableMessage=\"\";\r\n\tvm.PDFView = function (page) {\r\n\tvm.pdfimage =\"\";\r\n\tvm.IsLoadSucessfull=false;\t\r\n\t\tMainService.GetHealthSafetyGuidelines(loggedinUser, token, page).then(function(resp) {\t\r\n\t\t\tif(resp.data !=null){\r\n\t\t\t\tvar arrrayBuffer = base64ToArrayBuffer(resp.data); //data is the base64 encoded string\r\n\t\t\t\tvar blob = new Blob([arrrayBuffer], {type: \"application/pdf\"});\r\n\t\t\t\tvm.pdfimage = URL.createObjectURL(blob);\t\t\t\t\r\n\t\t\t\tvm.IsLoadSucessfull=true;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tvm.DocumentAvailableMessage=\"Document is not available\";\r\n\t\t\t\tvm.IsLoadSucessfull=true;\r\n\t\t\t}\t\r\n\t\t\r\n\t\t});\r\n\t\t\t$scope.selected = null;\r\n\t\t\t$timeout(function(){\r\n\t\t\tjobAppointmentModal = $uibModal.open({\r\n\t\t\ttemplateUrl: 'PDFView.html',\r\n\t\t\tsize :'lg',\r\n\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t},1000)\r\n\t\t\r\n\t}\r\n\t vm.PDFUserModal = function(){\r\n\t\tjobAppointmentModal.close();\r\n\t }\r\n\t \r\n\t function base64ToArrayBuffer(base64) {\r\n\t\tvar ret = base64.replace('data:application/pdf;base64,','');\r\n\t\t var binaryString = atob(ret);\r\n\t\t var binaryLen = binaryString.length;\r\n\t\t var bytes = new Uint8Array(binaryLen);\r\n\t\t for (var i = 0; i < binaryLen; i++) {\r\n\t\t\t var ascii = binaryString.charCodeAt(i);\r\n\t\t\t bytes[i] = ascii;\r\n\t\t }\r\n\t\t return bytes;\r\n\t }\r\n\t vm.getFileType = function(url){\r\n\t\t\r\n\t\tif(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0){\r\n\t\t\treturn \"image\";\r\n\t\t} else if(url.indexOf(\".pdf\")>=0){\r\n\t\t\treturn \"pdf\";\r\n\t\t} else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0){\r\n\t\t\treturn \"doc\";\r\n\t\t} else {\r\n\t\t\treturn \"others\";\r\n\t\t}\r\n\t }\r\n}\r\n});\r\n\nangular.module('inspinia').service('HelpDeskHomeAdminService',function($http, ApiURL,$window,PublicApiURL,ActivityURL){\r\n\r\n\tthis.getAllTickets = function(userId, token, fromDate, toDate, templateName, loc, status, completeFlag,DateField, success, failure){\r\n\t\tvar url = ApiURL + '/api/Ticket/'+userId+'/GetTicketsbyDateRangeForHelpDesk?fromDate='\r\n\t\t\t+fromDate+'&toDate='+toDate+'&templateName='+templateName+'&location='+loc+'&status='+status+'¬Completed=' +completeFlag + '&DateField=' + DateField;\r\n\t\t$http.get(url, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json', 'Token': token, 'UserId': userId\r\n\t\t\t}\r\n\t\t}).then(function(res){\r\n\t\t\tif(res && res.data){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else {\r\n\t\t\t\tfailure(\"Failed\", \"Unable to get tickets, technical error. Please contact to administrator.\");\r\n\t\t\t}\r\n\t\t}, function(err){\r\n\t\t\t//failure(\"Failed\", \"Unable to get tickets, technical error. Please contact to administrator.\");\r\n\t\t})\r\n\t}\r\n\r\n\tthis.getAllTicketsCopy = function(userId, token, fromDate, toDate, textItemNames, textItemValues, templateName, loc, status, completeFlag,DateField, PageIndex, PageSize, success, failure){\r\n\t\tvar url = ApiURL + '/api/Ticket/'+userId+'/GetTicketsbyDateRangeForHelpDeskWithDynaPaging?fromDate='\r\n\t\t\t+fromDate+'&toDate='+toDate+ '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues +'&templateName='+templateName+'&location='+loc+'&status='+status+'¬Completed=' +completeFlag + '&DateField=' + DateField + '&PageIndex='+PageIndex+ '&PageSize='+ PageSize;\r\n\t\t$http.get(url, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json', 'Token': token, 'UserId': userId\r\n\t\t\t}\r\n\t\t}).then(function(res){\r\n\t\t\tif(res && res.data){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else {\r\n\t\t\t\tfailure(\"Failed\", \"Unable to get tickets, technical error. Please contact to administrator.\");\r\n\t\t\t}\r\n\t\t}, function(err){\r\n\t\t\t//failure(\"Failed\", \"Unable to get tickets, technical error. Please contact to administrator.\");\r\n\t\t})\r\n\t}\r\n\r\n\t// https://perf.mymobiforce.com/publicapi/api/Report/DownloadAllTicketReportForHelpdesk?fromDate=2019-11-28&toDate=2019-11-29&templateName=VSAT%20Troubleshooting&location=Noida&status=New&reqUserId=U400000000001¬Completed=true\r\n\tthis.downloadTicketsByFilterRange = function(loggedInUserId, fromDate, toDate,templateName,completeFlag,status,location){\r\n\t\tvar url = PublicApiURL + \"/api/Report/DownloadAllTicketReportForHelpdesk?fromDate=\"+fromDate +'&toDate='+toDate +'&templateName='+templateName+ '&location='+location +'&status='+status + '&reqUserId='+loggedInUserId + '¬Completed='+completeFlag ;\r\n\t\t$window.open(url);\r\n\t}\r\n\r\n \r\n // https://perf.mymobiforce.com/coreapi/api/TicketSlot/GetAvailableSlotsForBooking?reqUserId=U360000000001&date=20-02-2019\r\n this.GetAvailableSlotsForBooking = function(loggedinUser,date,token){\r\n var url = ApiURL + '/api/TicketSlot/GetAvailableSlotsForBooking?reqUserId='+loggedinUser+'&date='+date;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId': loggedinUser}\r\n })\r\n }\r\n\r\n\r\n//https://perf.mymobiforce.com/coreapi/api/TicketSlot/BookSlot?reqUserId=U310000000005&slotId=211\r\n this.BookSlot = function(loggedinUser,slotId,token){\r\n \tvar url = ApiURL + '/api/TicketSlot/BookSlot?reqUserId='+loggedinUser+'&slotId='+slotId;\r\n \treturn $http.put(url,{},{\r\n \t\theaders:{'Content-Type':'application/json','Token':token, 'UserId': loggedinUser}\r\n \t})\r\n }\r\n\r\n\t//https://test.mymobiforce.com/activityapi/api/Activity/CreateActivity\r\n\tthis.TicketFollowUp = function(data,loggedinUser,token, success,failure){\r\n\t\tvar url = ActivityURL + '/api/Activity/CreateActivity';\r\n\t\treturn $http.post(url,data,{\r\n\t\t\theaders:{'Content-Type':'application/json','Token':token, 'UserId': loggedinUser}\r\n\t\t}).then(success, function(error){\r\n \t\tfailure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n \t});\r\n\t}\r\n\r\n\tthis.FollowUpWithAttachment = function(data, files, token, loggedinUser, success,failure){\r\n\t\tvar formdata = new FormData();\t\t\r\n\t\tformdata.append(\"files\", files[0]);\t\r\n\t\tvar followupdata = JSON.stringify(data);\r\n\t\tformdata.append(\"ActivityModel\", followupdata);\r\n \r\n\t\tvar url = ActivityURL + '/api/Activity/FollowUp';\r\n\t\treturn $http.post(url,formdata,{\r\n\t\t\theaders:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n\t\t}).then(success, function(error){\r\n \t\tfailure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n \t});\r\n\t}\r\n\r\n\tthis.ReopenTicket = function (data, token, loggedinUser, success, failure) {\r\n \tvar url = ApiURL + '/api/Ticket/updatestatus';\r\n \treturn $http.put(url, data, {\r\n \t\theaders: {\r\n \t\t'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n \t\t}\r\n \t}).then(success, function(error){\r\n \t\tfailure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n \t});\r\n \t}\r\n\r\n\t//https://test.mymobiforce.com/coreapi/api/TatRepository/GetByTemplateNameForSelf?reqUserId=U370000000001&TemplateName=VSAT%20Troubleshooting\r\n\tthis.GetAllPrimaryReasonBasedOnTemplate = function(loggedInUser, templateName, token, success, failure){\r\n\t\tvar url = ApiURL+'/api/TatRepository/GetByTemplateNameForSelf?reqUserId='+ loggedInUser + '&TemplateName='+ templateName;\r\n\t\t$http.get(url,{\r\n\t\t\theaders:{'Content-Type':'application/json','Token':token, 'UserId': loggedInUser}\r\n\t\t}).then(function(resp){\r\n\t\t\tif (resp.status == 200 && resp.data) {\r\n\t\t\t\tsuccess(resp.data);\r\n\t\t\t}else{\r\n\t\t\t\tfailure(\"Failed\", \"Unable to get status, technical error.\");\r\n\t\t\t}\r\n\t\t}, function(err){\r\n\t\t\tfailure(\"Failed\", \"Unable to get status, technical error\");\r\n\t\t})\r\n\t}\r\n\r\n\tthis.getSecondaryReason = function(token, loggedInUser, templateName, primaryReason, success, failure){\r\n\t\tvar url = ApiURL + \"/api/TatRepository/GetByTemplateNamePrimaryReasonForSelf?reqUserId=\" + loggedInUser\r\n\t\t+\"&TemplateName=\" + templateName + \"&PrimaryReason=\" + primaryReason;\r\n\t\t$http.get(url,{\r\n\t\t\theaders:{'Content-Type':'application/json','Token':token, 'UserId': loggedInUser}\r\n\t\t}).then(function(resp){\r\n\t\t\tif (resp.status == 200 && resp.data) {\r\n\t\t\t\tsuccess(resp.data);\r\n\t\t\t}else{\r\n\t\t\t\tfailure(\"Failed\", \"Unable to get reasons, technical error.\");\r\n\t\t\t}\r\n\t\t}, function(err){\r\n\t\t\tfailure(\"Failed\", \"Unable to get reasons, technical error\");\r\n\t\t})\r\n\t}\r\n\r\n\tthis.updateTicketStatus = function(token, loggedinUser, ticketId, primaryReason, secReason,SelectedThirdReasonList, comments, success, failure){\r\n\t\tvar url = ApiURL + \"/api/Ticket/UpdateTicketReasonStatus\";\r\n\t\t$http.put(url, {\r\n\t\t\t\"ReqUserId\": loggedinUser,\r\n\t\t\t\"TicketId\": ticketId,\r\n\t\t\t\"PrimaryReason\": primaryReason,\r\n\t\t\t\"SecondaryReason\": secReason,\r\n\t\t\t\"ThirdReasonList\": SelectedThirdReasonList,\r\n\t\t\t\"ReasonComment\":comments\r\n\t\t}, {\r\n\t\t\theaders:{'Content-Type':'application/json','Token':token, 'UserId': loggedinUser}\r\n\t\t}).then(function(res){\r\n\t\t\tif (res.status == 202) {\r\n\t\t\t\tsuccess();\r\n\t\t\t}else{\r\n\t\t\t\tfailure(\"Failed\", \"Unable to update status, technical error.\");\r\n\t\t\t}\r\n\t\t}, function(err){\r\n\t\t\tfailure(\"Failed\", \"Unable to update status, technical error.\");\r\n\t\t})\r\n\t}\r\n\r\n\t// https://perf.mymobiforce.com/coreapi/api/Ticket/UpdateTicketReasonStatusInBulk?reqUserId=U360000000016\r\n\tthis.updateTicketStatus_Multiple = function(token, loggedinUser, modelData, success, failure){\r\n\t\tvar url = ApiURL + \"/api/Ticket/UpdateTicketReasonStatusInBulk?reqUserId=\"+loggedinUser;\r\n\t\t$http.put(url, modelData, {\r\n\t\t\theaders:{'Content-Type':'application/json','Token':token, 'UserId': loggedinUser}\r\n\t\t}).then(function(res){\r\n\t\t\tif (res.status == 202) {\r\n\t\t\t\tsuccess();\r\n\t\t\t}else{\r\n\t\t\t\tfailure(\"Failed\", \"Unable to update status, technical error.\");\r\n\t\t\t}\r\n\t\t}, function(err){\r\n\t\t\tfailure(\"Failed\", \"Unable to update status, technical error.\");\r\n\t\t})\r\n\t}\r\n\r\n\r\n\tthis.searchCustomer = function(loggedinUser,token){\r\n\t\tvar url = ApiURL + '/api/Customer/search?reqUserId='+loggedinUser+'&input=';\r\n\t\treturn $http.get(url,{\r\n\t\t\theaders:{'Content-Type':'application/json', 'Token':token, 'UserId': loggedinUser}\r\n\t\t})\r\n\t}\r\n\r\n\t//https://test.mymobiforce.com/coreapi/api/Expense/GetByTicketId?ReqUserId=U360000000001&TicketId=T0000010051\r\n \tthis.getBillExpenseByTicketID = function(loggedinUser, ticketID, token){\r\n \tvar url = ApiURL + '/api/Expense/GetByTicketId?ReqUserId=' + loggedinUser + '&TicketId=' +ticketID;\r\n \treturn $http.get(url, {\r\n\t \theaders: {\r\n\t \t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedinUser\r\n\t \t}\r\n \t});\r\n\t }\r\n\t \r\n\t this.ApproveJob = function (data, token, loggedinUser, success, failure) {\r\n\t\t// var url = ApiURL + '/api/Ticket?reqUserId=' + $localStorage.loggedInUserId;\r\n\t\t// return $http.put(url, ticketmodel, {\r\n\t\t// headers: {\r\n\t\t// 'Content-Type': 'application/json'\r\n\t\t// }\r\n\t\t// });\r\n\t\tvar url = ApiURL + '/api/Ticket/updatestatus';\r\n\t\treturn $http.put(url, data, {\r\n\t\t headers: {\r\n\t\t\t'Content-Type': 'application/json',\r\n\t\t\t'Token': token, \r\n\t\t\t'UserId': loggedinUser\r\n\t\t }\r\n\t\t}).then(success, function (error) {\r\n\t\t failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n\t\t});\r\n\t }\r\n\r\n\t this.GetCompletionRemarkList = function(reqUserId, token, skill, callType )\r\n\t {\r\n\t\tvar url = ApiURL + '/api/TicketCompletionRemark/GetBySkillCallType?ReqUserId=' + reqUserId + '&Skill=' + skill + '&CallType=' + callType;\r\n\t\treturn $http.get(url, {\r\n\t\t headers: {\r\n\t\t\t'Content-Type': 'application/json', 'Token': token, 'UserId': reqUserId\r\n\t\t }\r\n\t\t});\r\n\t }\r\n\t\r\n\t // // https://perf.mymobiforce.com/coreapi/api/Hardware/GetUniqueSkillListByCategory?reqUserId=U360000000016&Category=Primary\r\n\t this.GetHardwareSkillList = function(userId, catogry, token){\r\n\t\tvar url = ApiURL + '/api/Hardware/GetUniqueSkillListByCategory?reqUserId='+ userId + '&Category=' + catogry\r\n\t\treturn $http.get(url,{headers:{'Content-Type':'application/json', 'Token': token, 'UserId': userId}});\r\n\t }\r\n\t\r\n\t // https://perf.mymobiforce.com/coreapi/api/Hardware/GetByFilter?reqUserId=U360000000016&fields=Category&values=Primary\r\n\t this.GetHardwareDetailByFields_ValueList = function(userId, fields, value, token){\r\n\t\tvar url = ApiURL + '/api/Hardware/GetByFilter?reqUserId='+ userId + '&fields=' + fields +'&values='+value\r\n\t\treturn $http.get(url,{headers:{'Content-Type':'application/json', 'Token': token, 'UserId': userId}});\r\n\t }\t\r\n\r\n\t// https://perf.mymobiforce.com/coreapi/api/Ticket/UpdateStatusInBulk?reqUserId=U360000000016\r\n\t this.markJobCompleted = function(loggedInUser,data,token){\r\n\t\t var url = ApiURL + '/api/Ticket/UpdateStatusInBulk?reqUserId='+loggedInUser;\r\n\t\t return $http.put(url,data,{headers:{'Content-Type': 'application/json','Token': token, 'UserId': loggedInUser}});\r\n\t }\r\n\r\n});\nangular.module('inspinia').controller('HelpDeskHomeAdminController', function(toaster, HelpDeskHomeAdminService, \r\n\t$state ,$localStorage, $scope, DTOptionsBuilder, DTColumnDefBuilder, PublicApiURL, $log, \r\n\tHelpDeskCustomerViewService, $uibModal, JobTicketViewService, $q, $timeout, ImageUrl) {\r\n\tvm = this;\r\n\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\t$scope.$parent.$parent.main.implementSelectItems('tickets', this);\r\n\t\tvar UserSubRegion = $localStorage.loggedInUser_Region;\r\n\t\tvar token = $localStorage.token;\r\n\t\tvar Role = $localStorage.loggedInUser_Role;\r\n\t\tvm.SlotAvailable = $localStorage.accountConfig.SlotAvailable;\r\n\t\tvar isData= false;\r\n\t\tvar approveModalInstance = {};\r\n\t\tvm.updateStatus = '';\r\n\t\tvm.showStatusFilter = true;\r\n\t\tvm.selectedReason = '';\r\n\t\tvm.ThirdReasonList = [];\r\n\t\tvm.SelectedThirdReasonList = [];\r\n\t\tvm.comments ='';\r\n\t\tvm.searchText = '';\r\n\t\tvm.canceler = {};\r\n\t\tvm.completeFlag = true;\r\n\t\tvm.followup = '';\r\n\t\tvm.SlotId ='';\r\n\t\tvm.HelpDeskRemarks='';\r\n\t\tvm.tickets=[];\r\n\t\tvm.Admintickets = [];\r\n\t\tvm.DateField=\"CreatedOn\";\r\n\t\tvm.TroubleshootTickets = [];\r\n\t\tvar creationDatefunc = $scope.$parent.$parent.main.AccountStartDate;\r\n \tvm.accountCreationDate = creationDatefunc();\r\n \tvm.followFiles = [];\r\n\t\t\r\n\t\tvm.searchUrl = PublicApiURL + '/api/CustomerJobCard/search?reqUserId='+loggedinUser+'&input=';\r\n\t\tif($localStorage.loggedInUser_SkillSet){\r\n\t\t\tvm.skills = $localStorage.loggedInUser_SkillSet.split(\",\");\r\n\t\t} else {\r\n\t\t\tvm.skills = [];\r\n\t\t}\r\n\r\n\t\tvm.showCompleteBtn = false;\r\n\t\tvm.RemarkCollection = [];\r\n\t\tvm.CompletionRemarkList = [];\r\n\t\tvm.SelectedCompletionRemarkList = [];\r\n\t\tvm.HWDetailList = [];\r\n\t\tvm.HardwareDetailList = [];\r\n\t\tvm.HWDetaileType = ['Primary', 'Secondary'];\r\n\t\tvm.Description = [];\r\n\t\tvm.SelectedHWDetailList = [];\r\n\t\tvm.HWSkillList = [];\r\n\t\tvm.TemplateData = {};\r\n\t\tvm.SuperVisorData = [];\r\n\r\n\t\tvm.templateName = {};\r\n\t\tvm.templateName[\"VSAT\"] = ['VSAT Troubleshooting'];\r\n\t\tvm.templateName[\"LeaseLine\"] = ['LeaseLine Troubleshooting'];\r\n\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.floatToInt = $scope.$parent.$parent.main.floatToInt;\r\n\t\tvm.confirmTagModal =$scope.$parent.$parent.main.confirmTagModal;\r\n\r\n\t\tvm.metrix = {\r\n\t\t\t\"TRBL\": {\r\n\t\t\t\t\"VSAT\": {\r\n\t\t\t\t\t\"New Jobs\":\"VSAT_TRBL_New_Jobs\",\r\n\t\t\t\t\t\"Total Jobs\":\"VSAT_TRBL_Total_Jobs\",\r\n\t\t\t\t\t\"Assigned Jobs\":\"VSAT_TRBL_Assigned_Jobs\",\r\n\t\t\t\t\t\"Completed Jobs\":\"VSAT_TRBL_Completed_Jobs\",\r\n\t\t\t\t\t\"Approved Jobs\":\"VSAT_TRBL_Approved_Jobs\",\r\n\t\t\t\t\t\"Rejected Jobs\":\"VSAT_TRBL_Rejected_Jobs\",\r\n\t\t\t\t\t\"Cancelled Jobs\":\"VSAT_TRBL_Cancelled_Jobs\",\r\n\t\t\t\t\t\"On Hold Jobs\":\"VSAT_TRBL_Hold_Jobs\",\r\n\t\t\t\t\t\"Open Jobs\":\"VSAT_TRBL_Open_Jobs\"\r\n\t\t\t\t},\r\n\t\t\t\t\"LeaseLine\": {\t\t\t\t\r\n\t\t\t\t\t\"New Jobs\":\"LEAS_TRBL_New_Jobs\",\r\n\t\t\t\t\t\"Total Jobs\":\"LEAS_TRBL_Total_Jobs\",\r\n\t\t\t\t\t\"Assigned Jobs\":\"LEAS_TRBL_Assigned_Jobs\",\r\n\t\t\t\t\t\"Completed Jobs\":\"LEAS_TRBL_Completed_Jobs\",\r\n\t\t\t\t\t\"Approved Jobs\":\"LEAS_TRBL_Approved_Jobs\",\r\n\t\t\t\t\t\"Rejected Jobs\":\"LEAS_TRBL_Rejected_Jobs\",\r\n\t\t\t\t\t\"Cancelled Jobs\":\"LEAS_TRBL_Cancelled_Jobs\",\r\n\t\t\t\t\t\"On Hold Jobs\":\"LEAS_TRBL_Hold_Jobs\",\r\n\t\t\t\t\t\"Open Jobs\":\"LEAS_TRBL_Open_Jobs\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\"Field\":{\r\n\t\t\t\t\"VSAT\":{\r\n\t\t\t\t\t\"New Jobs\":\"VSAT_Field_New_Jobs\",\r\n\t\t\t\t\t\"Total Jobs\":\"VSAT_Field_Total_Jobs\",\r\n\t\t\t\t\t\"Assigned Jobs\":\"VSAT_Field_Assigned_Jobs\",\r\n\t\t\t\t\t\"Completed Jobs\":\"VSAT_Field_Completed_Jobs\",\r\n\t\t\t\t\t\"Approved Jobs\":\"VSAT_Field_Approved_Jobs\",\r\n\t\t\t\t\t\"Rejected Jobs\":\"VSAT_Field_Rejected_Jobs\",\r\n\t\t\t\t\t\"Cancelled Jobs\":\"VSAT_Field_Cancelled_Jobs\"\r\n\t\t\t\t},\r\n\t\t\t\t\"LeaseLine\":{\r\n\t\t\t\t\t\"New Jobs\":\"LEAS_Field_New_Jobs\",\r\n\t\t\t\t\t\"Total Jobs\":\"LEAS_Field_Total_Jobs\",\r\n\t\t\t\t\t\"Assigned Jobs\":\"LEAS_Field_Assigned_Jobs\",\r\n\t\t\t\t\t\"Completed Jobs\":\"LEAS_Field_Completed_Jobs\",\r\n\t\t\t\t\t\"Approved Jobs\":\"LEAS_Field_Approved_Jobs\",\r\n\t\t\t\t\t\"Rejected Jobs\":\"LEAS_Field_Rejected_Jobs\",\r\n\t\t\t\t\t\"Cancelled Jobs\":\"LEAS_Field_Cancelled_Jobs\"\r\n\t\t\t\t}\r\n\t\t\t},\"Admin\":{\r\n\t\t\t\t\"Pending\":{\r\n\t\t\t\t\t\"New Jobs\":\"helpdesk_new_jobs\",\r\n\t\t\t\t\t\"Total Jobs\":\"helpdesk_total_jobs\",\r\n\t\t\t\t\t\"Assigned Jobs\":\"helpdesk_Assigned_Jobs\",\r\n\t\t\t\t\t\"Completed Jobs\":\"helpdesk_completed_jobs\",\r\n\t\t\t\t\t\"On Hold Jobs\":\"helpdesk_onhold_jobs\",\r\n\t\t\t\t\t\"Open Jobs\":\"hekpdesk_Open_Jobs\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n\t\t//var startDate = vm.accountCreationDate;\r\n\t\t//var startDate = moment(0).format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t// $scope.dates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n\t\t//$scope.dates = { startDate: moment(0), endDate: moment() };\r\n\t\t$scope.dates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n\t\t//$scope.dates = { startDate: vm.accountCreationDate, endDate: moment() };\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t//'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')],\r\n\t\t\t'Till now': [vm.accountCreationDate, moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t\r\n\t\t\t//console.log(ev, picker);\r\n\t\t\tvm.searchStatusText='All Job Status';\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.loadData();\r\n\t\t};\r\n\r\n\t\t//Follow Up Model\r\n\t \tvm.OpenFollowUpModel = function(ticketId) {\r\n\t \t\tvm.followup = '';\r\n\t \t\tvm.tickId = ticketId;\r\n\t \t\tFollowUpModel = $uibModal.open({\r\n\t \t\t\ttemplateUrl: 'FollowupJob.html',\r\n\t \t\t\tbackdrop: 'static',\r\n\t \t\t\tscope: $scope,\r\n\t\t\t \tcontroller: ModalInstanceCtrlFollowUp,\r\n\t\t\t \t// resolve : {\r\n\t\t\t \t// items : function(){\r\n\t\t\t \t// return {\r\n\t\t\t \t// TicketId:ticketId\r\n\t\t\t \t// };\r\n\t\t\t \t// }\r\n\t\t\t \t// },\r\n\t\t\t}); \r\n\t\t}\r\n\r\n\t\tvm.OpenApproveModal = function (currentJOb) {\r\n\t\t\tvm.CurrentJob = currentJOb;\r\n\t\t\tvm.RatingOfTicket = '';\r\n\t\t\tvm.aproveMessage = 'Please Rate !';\r\n\t\t\tapproveModalInstance = $uibModal.open({\r\n\t\t\t templateUrl: 'approve_model.html',\r\n\t\t\t scope: $scope\r\n\t\t\t});\r\n\t \r\n\t\t }\r\n\r\n\t\t vm.CloseModal = function () {\r\n\t\t\tapproveModalInstance.close();\r\n\t\t }\r\n\r\n\t\t vm.ApproveJob = function () {\r\n\t\t \tif(!vm.RatingOfTicket)\r\n\t\t \t{\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please Rate.\");\r\n\t\t\t\treturn;\r\n\t\t \t}\r\n\t\t \tif(!vm.approvalRemark)\r\n\t\t \t{\r\n\t\t \t\tvm.showFailure(\"Failed\", \"Please comment on approval.\");\r\n\t\t \t\treturn;\r\n\t\t \t}\r\n\t\t\tif (vm.RatingOfTicket) {\r\n\t\t\t approveModalInstance.close();\r\n\t\t\t var data = {\r\n\t\t\t\t\"ReqUserId\": loggedinUser,\r\n\t\t\t\t\"TicketId\": vm.CurrentJob.TicketId,\r\n\t\t\t\t\"Status\": \"Approved\",\r\n\t\t\t\t\"TechnicianRating\": vm.RatingOfTicket.toString(),\r\n\t\t\t\t\"ApprovalRemark\": vm.approvalRemark.toString()\r\n\t\t\t };\r\n\t\t\t HelpDeskHomeAdminService.ApproveJob(data, token, loggedinUser, function (res) {\r\n\t\t\t\tvar itemNames = '';\r\n\t\t\t\tvar itemValues = '';\r\n\t\t\t\tif (res && res.status == 202) {\r\n\t\t\t\t vm.showSuccess(\"Success\", \"Job approved successfully.\")\r\n\t\t\t\t $timeout(function () {\r\n\t\t\t\t\tif (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\t \r\n\t\t\t\t\t itemNames = '';\r\n\t\t\t\t\t itemValues = '';\r\n\t \r\n\t\t\t\t\t} else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\t \r\n\t\t\t\t\t itemNames = 'SkillSet';\r\n\t\t\t\t\t itemValues = vm.searchJobTypeText;\r\n\t \r\n\t\t\t\t\t} else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\t \r\n\t\t\t\t\t itemNames = 'TicketStatus';\r\n\t\t\t\t\t itemValues = vm.searchStatusText;\r\n\t\t\t\t\t} else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n\t\t\t\t\t itemNames = 'TicketStatus,SkillSet';\r\n\t\t\t\t\t itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// vm.getAllJobTickets(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n\t\t\t\t\tvm.getAllTicketsBySkill('Completed','false');\r\n\t\t\t\t}, 1000);\r\n\t\t\t\t} else if (res && res.data && res.data.Message) {\r\n\t\t\t\t vm.showFailure(\"Failed\", res.data.Message);\r\n\t\t\t\t} else {\r\n\t\t\t\t vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n\t\t\t\t}\r\n\t\t\t }, vm.showFailure);\r\n\t\t\t} else {\r\n\t\t\t approveModalInstance.close();\r\n\t\t\t}\r\n\t\t }\r\n\r\n\t\t vm.isApprovalPermission = function (defaultValue) {\r\n\t\t\tif (vm.accountConfig && vm.accountConfig['ApprovalPermission'] != null) {\r\n\t\t\t return vm.accountConfig['ApprovalPermission'].split(\",\").indexOf($localStorage.loggedInUser_Role) > -1;\r\n\t\t\t}\r\n\t\t\treturn defaultValue;\r\n\t\t }\r\n\r\n\r\n\t\t$scope.attachFollowUp = function(files){\r\n var file = files.files[0];\r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.msg|\\.pdf|\\.bmp|\\.xps|\\.doc|\\.docs|\\.xls|\\.xlsx)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n\t\tvm.followFiles = [];\r\n \tvm.clear(); \r\n \talert('Please upload file having extensions .jpg,.jpeg,.png,.msg,.pdf,.bmp,.xps only.');\r\n }\r\n }\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n};\r\n\r\n\t\tvm.CloseFollowUpModel = function () {\r\n \t\tFollowUpModel.close();\r\n\t\t}\r\n\r\n\t\t\r\n\t\tvar ModalInstanceCtrlFollowUp = function($scope, $rootScope, $uibModalInstance) {\r\n\t\t\t\r\n\t\t\tvm.updateFollowUpStatus = function(){\r\n\t\t\t\tif(!vm.followup)\r\n\t\t\t\t{\r\n\t\t\t\t\talert('Please enter description');\t\t\t\t\t\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n \t\t\tvar data = {};\r\n \t\t\tdata = {\r\n\t \t \t\"userId\": loggedinUser,\r\n\t\t\t\t \t\"dateTime\": \"\",\r\n\t\t\t\t \t\"activity\": vm.followup,\r\n\t\t\t\t \t\"action\": \"FOLLOW_UP\",\r\n\t\t\t\t \t\"userName\": \"\",\r\n\t\t\t\t \t\"ticketId\": vm.tickId,\r\n\t\t\t\t \t\"primaryReason\": \"\",\r\n\t\t\t\t \t\"SecondryReason\": \"\",\r\n\t\t\t\t \t\"ReasonComment\": \"\"\r\n\t \t}\r\n \t\t// $log.log('Com',data);\r\n \t\t\tvm.CloseFollowUpModel();\r\n \t\t\tHelpDeskHomeAdminService.FollowUpWithAttachment(data, vm.followFiles, token, loggedinUser, function (res) {\r\n \t\t\tif (res && res.status == 201) {\r\n \t\t\t\tvm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n \t\t\t\t$timeout(function () {\r\n \t\t\t\t\tif (Role == 'Administrator') {\r\n \t\t\t\t\t\t$state.go(\"index.HelpDesk\", {\r\n \t\t\t\t\t\treload: true\r\n \t\t\t\t\t})\r\n \t\t\t\t\t}else{\r\n \t\t\t\t\t\t$state.go(\"index.HelpDesk\", {\r\n \t\t\t\t\t\treload: true\r\n \t\t\t\t\t})\r\n \t\t\t\t\t}\r\n \t\t\t\t\t}, 100);\r\n \t\t\t} else if (res && res.data && res.data.Message) {\r\n \t\t\t\tvm.showFailure(\"Failed\", res.data.Message);\r\n \t\t\t} else {\r\n \t\t\t\tvm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n \t\t\t}\r\n \t\t\t},vm.showFailure);\r\n \t\t}\r\n\t\t}\r\n \r\n \t\tvm.ReopenTicket = function(linkId,ticketId){\r\n \t\t\tif (linkId!=null || linkId !='') {\r\n \t\t\t\tvm.confirmTagModal(\"Do you want to Reopen Ticket-\"+linkId+\"?\",function(){\r\n \t\t\t\t\tvar data = {};\r\n\t\t\t\t\tdata = {\r\n\t\t\t\t\t \"ReqUserId\": loggedinUser,\r\n\t\t\t\t\t \"TicketId\": ticketId,\r\n\t\t\t\t\t \"Status\": \"New\",\r\n\t\t\t\t\t \"TechnicianRating\": '',\r\n\t\t\t\t\t \"CompletionRemark\": ''\r\n\t\t\t\t\t}\r\n\t\t\t\t\tHelpDeskHomeAdminService.ReopenTicket(data,token,loggedinUser,function(res){\r\n\t\t\t\t\t\tif (res && res.status == 202) {\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Ticket Reopen successfully\");\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t \t\t$state.reload();\r\n\t\t\t\t \t}, 2000);\r\n\t\t\t\t\t\t}else if (res && res.data && res.data.Message) {\r\n \t\t\t\t\tvm.showFailure(\"Failed\", res.data.Message);\r\n \t\t\t\t\t}else {\r\n \t\t\t\t\tvm.showFailure(\"Failed\", \"Unable to reopen ticket. Server is not responding correctly.\");\r\n \t\t\t\t}\r\n\t\t\t\t\t},vm.showFailure)\t\t\t\t \r\n \t\t\t\t})\t\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tvm.getAllTickets = function(templateName){\r\n \t\t\tUserSubRegion = '';\r\n \t\t\tHelpDeskHomeAdminService.getAllTickets(loggedinUser, token, startDate, endDate, templateName, UserSubRegion, status,vm.completeFlag,vm.DateField, function(data) {\t\t\t\t\r\n\t\t\t\tif(!angular.equals(vm.tickets, data)){\r\n\t\t\t\t\tvm.tickets = data;\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t }\r\n\t\t var tempTicketList = [];\r\n\t\t vm.tempTicketList = [];\r\n\t\t vm.showCompleteButton = function(seletedJob){\r\n\t\t\t// if(seletedJob.checked){\r\n\t\t\t// \tvm.tempTicketList.push(seletedJob);\r\n\t\t\t// }\r\n\t\t\t /*if(seletedJob.TicketStatus == 'Resolved' || seletedJob.TicketStatus == 'Open' || seletedJob.TicketStatus == 'New' || seletedJob.TicketStatus == 'Assigned'){\r\n\t\t\t\tvm.showCompleteBtn = true;\r\n\t\t\t }else{\r\n\t\t\t\tvm.showCompleteBtn = false;\r\n\t\t\t }*/\r\n\t\t\t \r\n\t\t }\r\n\r\n\t\t //CompleteJob Model\r\n\t\t vm.OpencompleteModel = function () {\r\n\r\n\t\t\tfor( var j = 0; j < vm.tickets.length;j++){\r\n\t\t\t\tif(vm.tickets[j].checked == true){\r\n\t\t\t\t\ttempTicketList.push(vm.tickets[j]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(tempTicketList.length > 0){\r\n\t\t\t\tvar callMethodFlag = true;\r\n\t\t\t\tvar callType = tempTicketList[0].SupervisorColumns.CallType;\r\n\t\t\t\tfor(var i = 1; i< tempTicketList.length; i++){\r\n\t\t\t\t\tif(tempTicketList[i].SupervisorColumns.CallType != callType)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar callMethodFlag = false;\r\n\t\t\t\t\t\tvm.showFailure('Failed','Please Select Same CallType Jobs');\r\n\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(callMethodFlag){\r\n\r\n\t\t\t\t\tvm.SelectedCompletionRemarkList = [];\r\n\t\t\t\t\tvar ele = {\r\n\t\t\t\t\t description:'',\r\n\t\t\t\t\t remark: '',\r\n\t\t\t\t\t SelectedHWDetailList : [],\r\n\t\t\t \r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.SelectedCompletionRemarkList.push(ele);\r\n\t\t\t\t vm.SelectedHWDetailList = [];\r\n\t\t\t\t\tvar temp = {\r\n\t\t\t\t\t \"Skill\": \"\",\r\n\t\t\t\t\t \"Code\": \"\",\r\n\t\t\t\t\t \"Name\": \"\",\r\n\t\t\t\t\t \"Description\": \"\",\r\n\t\t\t\t\t \"Category\": \"\",\r\n\t\t\t\t\t \"HardwareFrom\":\"\"\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// vm.SelectedHWDetailList.push(temp);\r\n\t\t\r\n\t\t\t\t\tvm.JobTypeForModal = tempTicketList[0].JobType;\r\n\t\t\t\t\tvm.CallTypeForModal = tempTicketList[0].SupervisorColumns.CallType;\r\n\t\t\t \r\n\t\t\t\t\tCompleteJobModal = $uibModal.open({\r\n\t\t\t\t\t templateUrl: 'CompleteJob.html',\r\n\t\t\t\t\t backdrop: 'static',\r\n\t\t\t\t\t windowClass: 'schedulerModal',\r\n\t\t\t\t\t scope: $scope,\r\n\t\t\t\t\t controller: ModalInstanceCtrlFollowUpComplete,\r\n\t\t\t\t\t \r\n\t\t\t\t\t});\r\n\t\t\t\t}else{\r\n\t\t\t\t\ttempTicketList = [];\r\n\t\t\t\t\tvm.ClearAllLocalData();\r\n\t\t\t\t}\r\n\t\t\t\t// vm.loadData();\r\n\t\t\t\t\r\n\t\t\t\t// vm.reloadData();\r\n\t\t\t}\r\n\t \r\n\t\t }\r\n\r\n\t\t vm.reloadData = function(){\r\n\t\t\t var resetPaging = true;\r\n\t\t\tvm.dtInstance.reloadData(callback,resetPaging);\r\n\t\t}\r\n\t\tfunction callback(json) {\r\n\t\t\tconsole.log(json);\r\n\t\t}\r\n\r\n\t\t vm.CloseCompleteJobModal = function () {\r\n\t\t\tvm.callTypeRemark = '';\r\n\t\t\tvm.completeremark = '';\r\n\t\t\tvm.completeremark1 = ''\r\n\t\t\tvm.CallTypeForModal = '';\r\n\t\t\tvm.JobTypeForModal = '';\r\n\t\t\tCompleteJobModal.close();\r\n\t\t\t// vm.reloadData();\r\n\t\t\t// vm.loadData()\r\n\t\t\tvm.ClearAllLocalData();\r\n\t\t }\r\n\r\n\t\t vm.GetCompletionRemarkList = function () {\r\n\t\t\tHelpDeskHomeAdminService.GetCompletionRemarkList(loggedinUser, token, vm.JobTypeForModal, vm.CallTypeForModal).then(function (res) {\r\n\t\t\t vm.RemarkCollection = res.data.RemarkCollectionList;\r\n\t\t\t vm.CompletionRemarkList = [];\r\n\t\t\t if(vm.RemarkCollection)\r\n\t\t\t {\r\n\t\t\t\tfor (var i = 0; i < vm.RemarkCollection.length; i++) {\r\n\t\t\t\t vm.CompletionRemarkList.push(vm.RemarkCollection[i].CompletionRemark);\r\n\t\t\t\t} \r\n\t\t\t } \r\n\t\t\t});\r\n\t\t }\r\n\r\n\t\t vm.getHWSkillList = function (detailType, parentIndex, index) {\r\n\t\t\tHelpDeskHomeAdminService.GetHardwareSkillList(loggedinUser, detailType, token).then(function (resp) {\r\n\t\t\t\tvm.SelectedCompletionRemarkList[parentIndex].SelectedHWDetailList[index].HWSkillList = resp.data;\r\n\t\t\t })\r\n\t\t }\r\n\r\n\t\t vm.getHWDetailBySkill_CategoryList = function (detailType, skill, parentIndex, index) {\r\n\t\t\tvar value = detailType + ',' + skill;\r\n\t\t\tvar fields = 'Category,Skill';\r\n\t\t\tHelpDeskHomeAdminService.GetHardwareDetailByFields_ValueList(loggedinUser, fields, value, token).then(function (resp) {\r\n\t\t\t vm.SelectedCompletionRemarkList[parentIndex].SelectedHWDetailList[index].HardwareDetailList = resp.data;\r\n\t\t\t});\r\n\t \r\n\t\t }\r\n\r\n\t\t vm.onselectEvent = function (name, parentIndex, index) {\r\n\t\t\tvar hwdetailslist = vm.SelectedCompletionRemarkList[parentIndex].SelectedHWDetailList[index].HardwareDetailList;\r\n\t\t\tfor(var i= 0; i0){\r\n\t\t\t\tHelpDeskHomeAdminService.markJobCompleted(loggedinUser,selectedJobList,token).then(function(resp){\r\n\t\t\t\t\tvm.CloseCompleteJobModal();\r\n\t\t\t\t\tif(resp && resp.status == '202'){\r\n\t\t\t\t\t\tvm.showSuccess('Success', 'You have successfully mark completed');\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\tvm.showFailure('Failed','Server are not responding..');\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t// $state.go(\"index.HelpDesk_Home\");\r\n\t\t\t\t\t\tvm.loadData();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t\tvm.implementSelectItemsFVs('tickets', this);\r\n\t\t\t\t\tvm.SelectedCompletionRemarkList = '';\r\n\t\t\t\t})\r\n\t\t\t}else{\r\n\t\t\t\tvm.showFailure('Failed','Please selecte at least one job to mark');\r\n\t\t\t\t// vm.reloadData();\r\n\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t// $state.go(\"index.HelpDesk_Home\");\r\n\t\t\t\t\tvm.loadData();\r\n\t\t\t\t}, 2000);\r\n\t\t\t\tvm.implementSelectItemsFVs('tickets', this);\r\n\t\t\t\tvm.SelectedCompletionRemarkList = '';\r\n\t\t\t}\r\n\t\t\t\r\n\t\t }\r\n\r\n\r\n\t\t vm.openUpdateStatusModel_Multiple = function(ticket) {\r\n\t\t\t\r\n\t\t\tvar tempTicketListUpdate = [];\r\n\t\t\tfor( var j = 0; j < vm.tickets.length;j++){\r\n\t\t\t\tif(vm.tickets[j].checked == true){\r\n\t\t\t\t\ttempTicketListUpdate.push(vm.tickets[j]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar callMethodFlag = true;\r\n\t\t\t\tvar callType = tempTicketListUpdate[0].Template;\r\n\t\t\t\tvar tStatus = tempTicketListUpdate[0].TicketStatus;\r\n\t\t\t\tfor(var i = 1; i< tempTicketListUpdate.length; i++){\r\n\t\t\t\t\tif(tempTicketListUpdate[i].Template != callType || tempTicketListUpdate[i].TicketStatus != tStatus )\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar callMethodFlag = false;\r\n\t\t\t\t\t\tvm.showFailure('Failed','Please Select Same Template Jobs and Same Ticket Status');\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(callMethodFlag){\r\n\t\t\t\t\tvm.selectedTemplate_Multiple = callType;\r\n\t\t\t\t\tvm.CurrentStatus_Multiple = tStatus;\r\n\t\t\t\t\t// vm.CurrentStatus = '';\r\n\t\t\t\t\tvm.statusModal = $uibModal.open({\r\n\t\t\t\t\t\ttemplateUrl: 'statusModal_Multiple.html',\r\n\t\t\t\t\t\tscope: $scope\r\n\t\t\t\t\t}); \r\n\r\n\t\t\t\t\tvm.GetAllPrimaryReasonBasedOnTemplate_Multiple();\r\n\r\n\t\t\t\t}else{\r\n\t\t\t\t\t// vm.loadData();\r\n\t\t\t\t\tvm.ClearAllLocalData();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t\t// vm.selectedTicketId = ticket.TicketId;\r\n\t\t\t\t\t// vm.selectedTemplate = ticket.Template;\r\n\t\t\t\t\t// vm.updateStatus_Multiple = ticket.PrimaryReason;\r\n\t\t\t\t\t// vm.selectedReason_Multiple = ticket.SecondaryReason;\r\n\t\t\t\t\t// vm.ThirdReasonList = ticket.ThirdReasonList;\r\n\t\t\t\t\t// vm.CurrentStatus = ticket.TicketStatus;\r\n\t\t\t\t\t// vm.GetAllPrimaryReasonBasedOnTemplate();\r\n\t\t\t\t\t// if (vm.updateStatus_Multiple) {\r\n\t\t\t\t\t// \tvm.getSecondaryReason(vm.updateStatus_Multiple);\r\n\t\t\t\t\t// }\r\n\r\n\t\t}\r\n\r\n\t\tvm.CloseUpdateStatusModel_Multiple = function () {\r\n\t\t\tvm.statusModal.close();\r\n\t\t\tvm.ClearAllLocalData();\r\n\t\t}\r\n\r\n\t\tvm.ClearAllLocalData = function(){\r\n\t\t\tvm.tempTicketList = [];\r\n\t\t\tvm.selectedTemplate_Multiple = '';\r\n\t\t\tvm.CurrentStatus_Multiple = '';\r\n\t\t\tvm.updateStatus_Multiple = '';\r\n\t\t\tvm.selectedReason_Multiple = '';\r\n\t\t\tvm.SelectedThirdReasonList_Multiple = '';\r\n\t\t\tvm.comments_Multiple = '';\r\n\t\t\tvm.loadData();\r\n\t\t\tvm.implementSelectItemsFVs('tickets', this);\r\n\t\t}\r\n\r\n\t\tvm.updateTicketStatus_Multiple = function(primaryReason, secReason, comments){\r\n\t\t\t\r\n\t\t\tif (!comments) {\r\n\t\t\t\tcomments = secReason;\r\n\t\t\t}\r\n\t\t\tvar tempDataModel = [];\r\n\t\t\tvar tempTicketListUpdate = [];\r\n\t\t\tfor( var j = 0; j < vm.tickets.length;j++){\r\n\t\t\t\tif(vm.tickets[j].checked == true){\r\n\t\t\t\t\ttempTicketListUpdate.push(vm.tickets[j]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t if(tempTicketListUpdate.length > 0){\r\n\t\t\t\tfor(var i=0;i 0){\r\n\r\n\t\t\t\tHelpDeskHomeAdminService.updateTicketStatus_Multiple(token, loggedinUser, tempDataModel, function(data){\r\n\t\t\t\t\tvm.CloseUpdateStatusModel_Multiple();\r\n\t\t\t\t\tvm.showSuccess(\"Sucess\", \"Updated ticket status successfully.\");\r\n\t\t\t\t\tvm.statusModal.close();\r\n\t\t\t\t\t$timeout(function(){\r\n\t\t\t\t\t\t// $state.go(\"index.HelpDesk_Home\");\r\n\t\t\t\t\t\tvm.loadData();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}, vm.showFailure);\r\n\r\n\t\t\t }\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\tvm.getSearchBox = function(){\r\n\t\t\tvm.searchBoxHtml = '
';\r\n\t\t}\r\n\t\tvm.getSearchBox();\r\n\r\n\t\tvm.searchCustomer = function(e){\r\n\t\t\tif(e && e.originalObject && e.originalObject.CustomerLocationId){\r\n\t\t\t\t$state.go('index.HelpDesk_Customer_View',{\r\n\t\t\t\t\tcust_loc_id:e.originalObject.CustomerLocationId,\r\n\t\t\t\t\tasst_name:e.originalObject.AssetName,\r\n\t\t\t\t\tasst_id:e.originalObject.AssetId,\r\n\t\t\t\t\treload:true\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\t\t\r\n\r\n\t\t// vm.GetForAdmin = function(templateName,template){\r\n\t\t// \tUserSubRegion = '';\r\n \t\t// \t\tHelpDeskHomeAdminService.getAllTickets(loggedinUser, token, startDate, endDate, templateName, UserSubRegion, status,vm.completeFlag, function(data) {\t\t\t\t\r\n\t\t// \t\tif(!angular.equals(vm.Admintickets[template], data)){\r\n\t\t// \t\t\tvm.Admintickets[template] = data;\t\t\t\t\r\n\t\t// \t\t}\r\n\t\t// \t}, vm.showFailure);\r\n\t\t// }\r\n\r\n\t\tvm.GetFirstTickets = function(){\r\n\r\n\t\t}\r\n\r\n\t\tvm.GetSecondTickets = function(callback){\r\n\r\n\t\t}\r\n\r\n\t\tvm.ConcatenateObjects = function(){\r\n\t\t\tvm.AdminTotalTickets = vm.vsatTickets.concat(vm.tickets);\r\n\t\t\t//angular.extend(vm.vsatTickets,vm.tickets);\r\n\t\t\t//console.log('vm.AdminTotalTickets',vm.AdminTotalTickets);\t\r\n\t\t}\r\n\r\n\t\tvm.getAllTickets = function(templateName,status){\r\n \t\t\tUserSubRegion = '';\r\n \t\t\tHelpDeskHomeAdminService.getAllTickets(loggedinUser, token, startDate, endDate, templateName, UserSubRegion, status,vm.completeFlag,vm.DateField, function(data) {\t\t\t\t\r\n\t\t\t\tif(!angular.equals(vm.tickets, data)){\r\n\t\t\t\t\tvm.tickets = data;\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n \t\t}\r\n\r\n \t\tvm.getAllTicketsWithCallBack = function(templateName,status,callback){\r\n \t\t\tUserSubRegion = '';\r\n \t\t\tvar newCallback = callback;\r\n \t\t\tHelpDeskHomeAdminService.getAllTickets(loggedinUser, token, startDate, endDate, templateName, UserSubRegion, status,vm.completeFlag,vm.DateField, function(data) {\t\t\t\t\r\n\t\t\t\tif(!angular.equals(vm.tickets, data)){\r\n\t\t\t\t\tvm.tickets = data;\r\n\t\t\t\t\tnewCallback();\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n \t\t}\r\n\r\n\t\tvm.loadMetrix = function(ticketType,skill){\r\n\t\t\tvm.jobcount = vm.jobcount || {};\r\n\t\t\tvm.ticketType = ticketType;\r\n\t\t\t//$log.log('vm.metrix',vm.metrix[ticketType][skill])\r\n\t\t\tangular.forEach(vm.metrix[ticketType][skill], function(m, displayName){\r\n\t\t\t\tHelpDeskCustomerViewService.getTicketCountsWithSkill(loggedinUser, token, m,\r\n\t\t\t\t\t'Range('+startDate+'|'+endDate+')', '', '',isData, function(d){\r\n\t\t\t\t\t\tif(d && d.Value){\r\n\t\t\t\t\t\t\tvm.jobcount[displayName] = d.Value;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvm.jobcount[displayName] = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetTicketByMetrics = function(status,flag){\r\n\t\t\tvm.completeFlag = flag;\r\n\t\t\tif (status == '') {\r\n\t\t\t\tvm.showStatusFilter = true;\r\n\t\t\t}else{\r\n\t\t\t\tvm.showStatusFilter = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.getAllTicketsBySkill = function(status,flag){\r\n\t\t\tvm.completeFlag = flag;\r\n\t\t\tif (status == '') {\r\n\t\t\t\tvm.showStatusFilter = true;\r\n\t\t\t}else{\r\n\t\t\t\tvm.showStatusFilter = false;\r\n\t\t\t}\r\n\t\t\tif(vm.skills.length==1){\t\t\t\t\r\n\t\t\t\tif(vm.skills[0] == \"VSAT\"){\t\t\t\t\t\r\n\t\t\t\t\t vm.getAllTickets(\"VSAT Troubleshooting\",status);\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\t vm.getAllTickets(\"LeaseLine Troubleshooting\",status);\r\n\t\t\t\t}\r\n\t\t\t}else {\t \r\n\t\t\t\tHelpDeskHomeAdminService.getAllTickets(loggedinUser, token, startDate, endDate, 'VSAT Troubleshooting', '', status,vm.completeFlag,vm.DateField, function(data) {\r\n\t\t\t\t\tvm.vsatTickets = data;\r\n\t\t\t\t\tvm.getAllTicketsWithCallBack(\"LeaseLine Troubleshooting\",status,function(){\r\n\t\t\t\t\t\tvm.ConcatenateObjects();\r\n\t\t\t\t\t});\r\n\t\t\t\t}, vm.showFailure);\r\n\t }\r\n\t\t}\r\n\r\n\t\tvm.loadData = function(){\r\n\t\t\t\r\n\t\t\tif(vm.DateField==\"CompletionDateObj\")\r\n\t\t\t{\r\n\t\t\t\tvm.getAllTicketsBySkill(\"Completed\",true);\r\n\t\t\t}else{\r\n\t\t\t\tvm.getAllTicketsBySkill(\"\",true);\r\n\t\t\t}\r\n\t\t\tif (vm.skills.length==1) {\r\n\t\t\t\tvm.loadMetrix(\"TRBL\",vm.skills[0]);\r\n\t\t\t}else{\r\n\t\t\t\tvm.loadMetrix(\"Admin\",'Pending');\t\r\n\t\t\t}\t\t\r\n\t\t\t// vm.getTicketCounts();\r\n\t\t}\r\n\t\tvm.loadData();\r\n\r\n\t\tvm.getJobAllStatus = function () {\r\n\t\t\tJobTicketViewService.getJobAllStatus(loggedinUser, token, function (data) {\r\n\t\t\t\tvm.statusList = data;\r\n\t\t\t\tvm.statusList.unshift({\"StatusName\":\"All Job Status\"});\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.getJobAllStatus();\r\n\r\n\t\tvm.dtInstance = {};\r\n\t\t//vm.dtInstance1 = {};\r\n\t\t//vm.dtInstance2 = {};\r\n\t\t//vm.dtInstance3 = {};\r\n\r\n\t\tvm.searchTable = function () {\r\n\t\t\t// vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n\t\t\t// vm.dtInstance1.DataTable.search(vm.searchText).draw();\r\n\t\t\tvar s = \"\";\r\n\t\t\ts += vm.searchText.length > 0 ? \" \" + vm.searchText : \"\";\r\n\t\t\t// s += (vm.searchStatusText.length > 0 && vm.searchStatusText!='All Job Status') ? \" \" + vm.searchStatusText : \"\";\r\n\t\t\tvm.dtInstance.DataTable.search(s).draw();\r\n\t\t\t//vm.dtInstance1.DataTable.search(s).draw();\r\n\t\t\t//vm.dtInstance2.DataTable.search(s).draw();\r\n\t\t\t//vm.dtInstance3.DataTable.search(s).draw();\r\n\t\t};\r\n\r\n\t\tvm.searchTableByStatus = function () {\t\t\r\n\t\t\tvar s = \"\";\t\t\t\r\n\t\t\ts += (vm.searchStatusText.length > 0 && vm.searchStatusText!='All Job Status') ? vm.searchStatusText : \"\";\r\n\t\t\tvm.dtInstance.DataTable.search(s).draw();\t\t\t\r\n\t\t};\r\n\r\n\t\tformat = function(ticket){\r\n\t\t\tvar rowHtml = ''+\r\n\t\t\t''+\r\n\t\t\t''+\r\n\t\t\t''+\r\n\t\t\t'';\r\n\t\t\tif(ticket.TicketStatus==\"On Hold\"){\r\n\t\t\t\trowHtml+=''+\r\n\t\t\t\t''+\r\n\t\t\t\t''+\r\n\t\t\t\t'';\r\n\t\t\t}else if(ticket.TicketStatus == \"Completed\"){\r\n\t\t\t\trowHtml+=''+\r\n\t\t\t\t''+\r\n\t\t\t\t''+\r\n\t\t\t\t''\r\n\t\t\t}\r\n\t\t\trowHtml+='
Location:'+ticket.Address1+\", \"+ticket.Address2+\", \"+ticket.City+\", \"+ticket.Circle+\", Pincode: \"+parseInt(ticket.Pincode)+'
On Hold Reason:'+ticket.PrimaryReason+\" - \"+ticket.SecondaryReason+'
Completion Remarks:' + ticket.CompletionRemark+'
';\r\n\t\t\treturn rowHtml;\r\n\t\t}\r\n\r\n\t\tvm.showDetailCols = function(dtInstance, $event, ticket){\r\n\t\t\tvar tr = angular.element($event.currentTarget).closest(\"tr\");\r\n\t\t\tvar row = dtInstance.DataTable.row( tr );\r\n\t\t\tif ( row.child.isShown() ) {\r\n\t\t\t // This row is already open - close it\r\n\t\t\t row.child.hide();\r\n\t\t\t tr.removeClass('shown');\r\n\t\t\t} else {\r\n\t\t // Open this row\r\n\t\t row.child( format(ticket) ).show();\r\n\t\t tr.addClass('shown');\r\n\t\t }\r\n\t\t}\r\n\r\n\t\tvm.stateLoadCallback = function (settings) {\r\n\t\t\tvar state = JSON.parse(localStorage.getItem('DataTables_' + settings.sInstance));\r\n\t\t\tif (state) {\r\n\t\t\t\tstate.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n\t\t\t\tif(state.columns && state.columns.length>0){\r\n\t\t\t\t\tstate.columns[11].visible=false;\r\n\t\t\t\t\tstate.columns[12].visible=false;\r\n\t\t\t\t\tstate.columns[15].visible=false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\tvm.stateSaveCallback = function (settings, data) {\r\n\t\t\tif(data.columns && data.columns.length>0){\r\n\t\t\t\t//$log.log('data',data.columns);\r\n\t\t\t\tvm.slaVis = data.columns[9].visible;\r\n\t\t\t\tvm.tatVis = data.columns[10].visible;\r\n\t\t\t}\r\n\t\t\tlocalStorage.setItem('DataTables_' + settings.sInstance, JSON.stringify(data))\r\n\t\t}\r\n\r\n\t\t//Update Resons\r\n\t\tvm.openUpdateStatusModel = function(ticket) {\r\n\t\t\tvm.CurrentStatus = '';\r\n\t\t\tvm.statusModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'statusModal.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t}); \r\n\t\t\tvm.selectedTicketId = ticket.TicketId;\r\n\t\t\tvm.selectedTemplate = ticket.Template;\r\n\t\t\tvm.updateStatus = ticket.PrimaryReason;\r\n\t\t\tvm.selectedReason = ticket.SecondaryReason;\r\n\t\t\tvm.ThirdReasonList = ticket.ThirdReasonList;\r\n\t\t\tvm.CurrentStatus = ticket.TicketStatus;\r\n\t\t\tvm.GetAllPrimaryReasonBasedOnTemplate();\r\n\t\t\tif (vm.updateStatus) {\r\n\t\t\t\tvm.getSecondaryReason(vm.updateStatus);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.CloseUpdateStatusModel = function () {\r\n\t\t\tvm.statusModal.close();\r\n\t\t}\r\n\r\n\t\tvm.GetAllPrimaryReasonBasedOnTemplate = function() {\t\r\n\t\t\tHelpDeskHomeAdminService.GetAllPrimaryReasonBasedOnTemplate(loggedinUser, vm.selectedTemplate,\r\n\t\t\ttoken, function(data){\r\n\t\t\t\tvm.TotalReasonList = data;\r\n\t\t\t\tvm.filterData();\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.GetAllPrimaryReasonBasedOnTemplate_Multiple = function() {\t\r\n\t\t\tHelpDeskHomeAdminService.GetAllPrimaryReasonBasedOnTemplate(loggedinUser, vm.selectedTemplate_Multiple,\r\n\t\t\ttoken, function(data){\r\n\t\t\t\tvm.TotalReasonList_Multiple = data;\r\n\t\t\t\tvm.filterData_Multiple();\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.filterData_Multiple = function(){\r\n\t\t\tvm.PrimaryReasonList_Multiple = [];\r\n\t\t\tfor(var i=0; ilTfgitp')\r\n\t\t.withButtons([{extend:'colvis'},{extend:'csv'}])\r\n\t\t.withOption('stateSave', true)\r\n .withOption('stateSaveCallback', function (settings, data) {\r\n localStorage.setItem('HelpDeskIndex' , JSON.stringify(data))\r\n })\r\n \t.withOption('stateLoadCallback', function (settings) {\r\n \t\tvar state = JSON.parse(localStorage.getItem('HelpDeskIndex'));\r\n \t\tif(state)\r\n \t\t{\r\n \t\t\t//state.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n \t\t\tvm.searchText = state.search.search\r\n\t \tif(vm.IsSearch==true){\r\n\t \t\tstate.start =0;\r\n\t \t}\r\n \t}\r\n \treturn state;\r\n \t})\r\n\t\t.withPaginationType('full_numbers')\r\n\t\t.withOption('lengthChange', false)\r\n\t\t.withOption('order', [0, 'desc']);\r\n\r\n\t\tvm.dtColumnDefs = [\r\n\t\tDTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n\t\t//DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(10).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(11).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(12).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(13).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(14).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(15).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(16).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(17),\r\n\t\tDTColumnDefBuilder.newColumnDef(18).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(19).notSortable()\r\n\t\t];\r\n\r\n\t\tvm.OpenBillModal = function(ticketId){\r\n \t\tvm.BillDetails = [];\r\n \t\tvm.TotalExpense = '';\r\n \t\tHelpDeskHomeAdminService.getBillExpenseByTicketID(loggedinUser, ticketId, token).then(function(resp){\r\n\t \tif (resp && resp.data) {\r\n\t \t\tangular.forEach(resp.data, function(d){\r\n\t \t\tvm.BillDetails = d.Bills;\r\n\t \t\tvm.TotalExpense = d.ExpenseAmount;\r\n\t \t\t})\r\n\t \t}\r\n\t \tif(vm.TotalExpense!=0) {\r\n\t \t\tBillModal = $uibModal.open({\r\n\t \t\ttemplateUrl: 'bill_model.html',\r\n\t \t\tscope: $scope\r\n \t\t\t})\r\n\t \t}\r\n \t\t})\r\n \t}\r\n\r\n \tvm.CloseBillModal = function(){\r\n \t\tBillModal.close();\r\n \t}\r\n\r\n \tvm.getPicUrl = function (pic) {\r\n \t\treturn ImageUrl + '/' + pic;\r\n \t}\r\n\r\n \t $scope.today = function() {\r\n vm.sampleDate = new Date();\r\n };\r\n $scope.today();\r\n\r\n\t\tvm.editJobAppointment = function (ticket) {\r\n\t\t\tvm.AllBookingList ='';\r\n\t\t\t $scope.selected = null;\r\n\t\t\tvm.TicketInfoEdit = ticket;\r\n\r\n\t\t\t $scope.today();\r\n\t\t\t//$log.log(ticket);\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAppointment.html',\r\n\t\t\t\tsize :'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\tHelpDeskCustomerViewService.getServiceGST(loggedinUser, ticket.SkillSet, token, function(data){\r\n\t\t\t\tvm.grossRate = data;\r\n\t\t\t\t//var nextday =1;\r\n\t\t\t\tvar dt = new Date();\r\n\t\t\t\t//dt =dt.setDate(dt.getDate() + nextday),\r\n\t\t\t\tif(vm.SlotAvailable == \"True\"){\r\n\t\t\t\t\tvm.selectDate(dt);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t}, vm.showFailure)\r\n\t\t}\r\n\r\n\t\tvm.closeJobAppointment = function () {\r\n\t\t\tvm.jobAppointmentModal.close();\r\n\t\t}\r\n \r\n vm.selectDate = function(date){\r\n \t if(date!=undefined){\r\n \t \t$scope.selected = null;\r\n \t\t var date = moment(date).format(\"YYYY-MM-DD\");\r\n \t HelpDeskHomeAdminService.GetAvailableSlotsForBooking(loggedinUser,date,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data) {\r\n vm.AllBookingList = resp.data;\r\n }\r\n }) \r\n \t}\r\n \r\n }\r\n $scope.selected = null;\r\n vm.SelectSlot = function(SlotId,index){\r\n \tvm.SlotId = SlotId;\r\n \t $scope.selected = index; \r\n\r\n }\r\n\r\n vm.SlotBooking = function() { \r\n var slotId = vm.SlotId;\r\n \r\n HelpDeskHomeAdminService.BookSlot(loggedinUser,slotId,token).then(function(resp){\r\n \r\n if (resp.status == 202 && resp.data) {\r\n vm.showSuccess(\"Success\",\"Appointment Slot Booked Successfully\");\r\n vm.jobAppointmentModal.close(); \r\n }else{\r\n vm.jobAppointmentModal.close(); \r\n }\r\n })\t\t\r\n\t\t}\r\n\r\n\r\n var someDate = new Date();\r\n var numberOfDaysToAdd = 5;\r\n var nextday = 1;\r\n $scope.options = {\r\n customClass: getDayClass,\r\n //minDate:someDate.setDate(someDate.getDate() + nextday),\r\n minDate: new Date(),\r\n maxDate:someDate.setDate(someDate.getDate() + numberOfDaysToAdd),\r\n showWeeks: false\r\n };\r\n\r\n // Disable weekend selection\r\n function disabled(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n return mode === 'day' && (date.getDay() === 0 || date.getDay() === 6);\r\n }\r\n\r\n\r\n\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n var afterTomorrow = new Date(tomorrow);\r\n afterTomorrow.setDate(tomorrow.getDate() + 1);\r\n $scope.events = [\r\n {\r\n date: tomorrow,\r\n status: 'full'\r\n },\r\n {\r\n date: afterTomorrow,\r\n status: 'partially'\r\n }\r\n ];\r\n\r\n function getDayClass(data) {\r\n var date = data.date,\r\n mode = data.mode;\r\n if (mode === 'day') {\r\n var dayToCheck = new Date(date).setHours(0,0,0,0);\r\n\r\n for (var i = 0; i < $scope.events.length; i++) {\r\n var currentDay = new Date($scope.events[i].date).setHours(0,0,0,0);\r\n\r\n if (dayToCheck === currentDay) {\r\n return $scope.events[i].status;\r\n }\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n\r\n\t\t\r\n\r\n\t\tvm.createFieldTicket = function(ticket) { \r\n\t\t\t \r\n\r\n\t\t\tif(vm.SlotAvailable=='True'){\r\n\t\t\t\tif(vm.SlotId!=''){\r\n\t\t\t\t\tticket.Template = ticket.Template.indexOf(\"VSAT\")>=0?\"VSAT CCR\":\"LeaseLine CCR\";\r\n\t\t\t\t\tticket.JobDescription = ticket.Template;\r\n\t\t\t\t\tticket.TemplateModel = null;\r\n\t\t\t\t\tticket.MobiforceCommissionPercentage = vm.grossRate;\r\n\t\t\t\t\tticket.BroadcastGrossRate = ticket.BroadcastRate * (1+vm.grossRate/100);\r\n\t\t\t\t\tticket.LinkId = ticket.TicketId;\r\n\t\t\t\t\tticket.TicketId = null;\r\n\t\t\t\t\tticket.UniqueOne = ticket.VSATID;\r\n\t\t\t\t\tticket.UniqueTwo = ticket.VSATIP;\r\n\t\t\t\t\tticket.TicketStatus = 'New'\r\n\t\t\t\t\tticket.ConsumerContactNumber = ticket.ConsumerContact;\r\n\t\t\t\t\tticket.SlotId = vm.SlotId;\r\n\r\n\t\t\t\t\tHelpDeskCustomerViewService.createTicket(loggedinUser, ticket, token, function(data){\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Field ticket created successfully.\");\r\n\t\t\t\t\t\t$timeout(vm.loadData, 2000);\r\n\t\t\t\t\t}, vm.showFailure);\r\n\t\t\t\t\tvm.jobAppointmentModal.close();\r\n\t\t\t\t}else{\r\n\t\t\t\t\tvm.showFailure(\"Please select the time slot first\");\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\t\r\n\t\t\t\tvar startDT = ticket.StartTime?ticket.StartTime:'';\r\n\t\t\t\tvar EndDT = ticket.EndTime?ticket.EndTime:'';\r\n if(startDT=='' || EndDT ==''){\r\n \tvm.showFailure(\"Please Select the start Date and End date \");\r\n }else{\r\n \tvar sDate = moment(ticket.StartTime).format(\"DD-MM-YYYY HH:mm\");\r\n\t\t \tvar eDate = moment(ticket.EndTime).format(\"DD-MM-YYYY HH:mm\");\r\n\t\t \tif(sDate >= eDate){\r\n\t\t \t\tvm.showFailure(\"End Time should be greater than Start Time\");\r\n\t \t\t}else{\r\n\t\t\t\tvm.jobAppointmentForm.submitted = true;\r\n\t\t\t\t if(vm.jobAppointmentForm.$valid){\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tticket.Template = ticket.Template.indexOf(\"VSAT\")>=0?\"VSAT CCR\":\"LeaseLine CCR\";\r\n\t\t\t\t\t\t// ticket.JobDescription = ticket.Template;\r\n\t\t\t\t\t\tticket.JobDescription = ticket.HelpDeskRemarks;\r\n\t\t\t\t\t\tticket.TemplateModel = null;\r\n\t\t\t\t\t\tticket.MobiforceCommissionPercentage = vm.grossRate;\r\n\t\t\t\t\t\tticket.BroadcastGrossRate = ticket.BroadcastRate * (1+vm.grossRate/100);\r\n\t\t\t\t\t\tticket.LinkId = ticket.TicketId;\r\n\t\t\t\t\t\tticket.TicketId = null;\r\n\t\t\t\t\t\tticket.UniqueOne = ticket.VSATID;\r\n\t\t\t\t\t\tticket.UniqueTwo = ticket.VSATIP;\r\n\t\t\t\t\t\tticket.TicketStatus = 'New'\r\n\t\t\t\t\t\tticket.ConsumerContactNumber = ticket.ConsumerContact;\r\n\t\t\t\t\t\tticket.SlotId = vm.SlotId;\r\n\t\r\n\t\t\t\t\t\tHelpDeskCustomerViewService.createTicket(loggedinUser, ticket, token, function(data){\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Field ticket created successfully.\");\r\n\t\t\t\t\t\t\t$timeout(vm.loadData, 2000);\r\n\t\t\t\t\t\t}, vm.showFailure);\r\n\t\t\t\t\t\tvm.jobAppointmentModal.close();\r\n\t\t\t \t} else {\r\n\t\t\t\t\t//$log.log(\"invalid\", vm.jobAppointmentForm);\r\n\t\t \t}\r\n\t\t\t}\r\n\t\t\t\t\t }\r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('HelpDeskCustomerViewService',function($http, ApiURL, DashboardURL, $log,PublicApiURL){\r\n\r\n\tthis.getCustomerBasicDetail = function(userId, token, customerLocationId, success, failure){\r\n\t\t// var url = ApiURL + '/api/Customer/'+customerId+'/byId?reqUserId='+userId;\r\n\t\tvar url = ApiURL + '/api/Customer/GetCustomerLocationById?reqUserId='+userId+'&CustomerLocationId='+customerLocationId;\r\n\t\t$http.get(url, {\r\n\t\t\t'headers' : {'Content-Type': 'application/json', 'Token' : token, 'UserId': userId}\r\n\t\t}).then(function(res){\r\n\t\t\tif(res && res.data){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else {\r\n\t\t\t\tfailure(\"Failed\", \"Unable to get customer basic details, technical error.\");\r\n\t\t\t}\r\n\t\t}, function(err){\r\n\t\t\tfailure(\"Failed\", \"Unable to get customer basic details, technical error.\");\r\n\t\t})\r\n\t}\r\n\r\n//https://test.mymobiforce.com/publicapi/api/Location/GetRegion?userId=U370000000001\r\n this.GetRegion = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetRegion?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetSubRegion?userId=U370000000001®ion=North\r\n this.GetSubRegion = function(loggedInUserId, token, region){\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+ loggedInUserId + '®ion='+ region;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetCity?userId=U360000000001&subregion=noida\r\n this.GetCityBySubRegion = function(loggedInUserId, subRegion, token){\r\n var subRegion1 = subRegion.replace(\"&\", \"%26\");\r\n var url = PublicApiURL + '/api/Location/GetCity?userId='+ loggedInUserId + '&subregion='+ subRegion;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n\r\n this.GetTicketSroucesByProId = function(loggedInUserId, projectId, token, success, failure){\r\n var url = ApiURL + '/api/Project/GetTicketSroucesByProId?reqUserId='+ loggedInUserId + '&ProjectId='+ projectId;\r\n $http.get(url, {\r\n 'headers' : {'Content-Type': 'application/json', 'Token' : token, 'UserId': loggedInUserId}\r\n }).then(function(res){\r\n if(res && res.data){\r\n success(res.data);\r\n } else {\r\n failure(\"Failed\", \"Unable to get ticket source info, technical error.\");\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get ticket source info, technical error.\");\r\n })\r\n }\r\n\r\n //https://test.mymobiforce.com/coreapi/api/Customer/updatecustomercontact\r\n\r\n this.UpdateCustomerLocation = function(data,token,loggedInUserId){\r\n var url = ApiURL + '/api/Customer/updatecustomercontact';\r\n return $http.put(url,data,{\r\n headers:{'Content-Type':'application/json', 'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n\r\n\tthis.getTemplateByName = function(templateName, userId, token, success, failure){\r\n\t\tvar url = ApiURL + '/api/Template/'+templateName+'/'+userId+'/byName';\r\n\r\n\t\t$http.get(url, {\r\n\t\t\t'headers' : {'Content-Type': 'application/json', 'Token' : token, 'UserId': userId}\r\n\t\t}).then(function(res){\r\n\t\t\tif(res && res.data){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else {\r\n\t\t\t\tfailure(\"Failed\", \"Unable to get template by name, technical error.\");\r\n\t\t\t}\r\n\t\t}, function(err){\r\n\t\t\tfailure(\"Failed\", \"Unable to get template by name, technical error.\");\r\n\t\t})\r\n\t}\r\n\r\n //http://localhost:56749/api/Ticket/FindTicketInGivenTime?reqUserId=U360000000016&Skill=VSAT&CustomerLocationId=CL0000020308&Range=1.5\r\n\r\n this.findTicketInGivenTime = function(templateName, userId, locationId, assetId, range, token, success, failure){\r\n var url = ApiURL + '/api/Ticket/FindTicketInGivenTime?reqUserId='+userId+'&template=' + templateName + \"&CustomerLocationId=\" + locationId + \"&AssetId=\" + assetId + \"&Range=\" + range;\r\n \r\n $http.get(url, {\r\n 'headers' : {'Content-Type': 'application/json', 'Token' : token, 'UserId': userId}\r\n }).then(function(res){\r\n if(res && (res.data == 'False')){\r\n success(res.data);\r\n } else {\r\n failure(\"Failed\", \"Customer Location already has ticket logged within \" + range + \" minuts.\" );\r\n }\r\n }, function(err){ \r\n failure(\"Failed\", \"Unable to get template by name, technical error.\");\r\n })\r\n }\r\n\r\n\tthis.createTicket = function (loggedinUser, ticketModel, token, callback, failure) {\r\n //$log.log(ticketModel);\r\n var url = ApiURL + '/api/Ticket/' + loggedinUser + '/PostForHelpDesk';\r\n var data = angular.toJson(ticketModel);\r\n var resp = \"\";\r\n $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } \r\n }).then(function(res){\r\n if (res.status == 201) {\r\n callback(res.data);\r\n }else{\r\n failure(\"Failed\", res.data.Message);\r\n }\r\n },\r\n function () {\r\n failure(\"Failed\", \"Job Creation failed\");\r\n });\r\n }\r\n\r\n this.getTicketCounts = function(loggedinUser, token, rollups, filterKeys, filterValues,isData, success, failure){\r\n url = DashboardURL+ \"/api/Chart/getonhelpdesk?ReqUserId=\"+loggedinUser+\"&RollUPs=\"+rollups+\"&FilterKeys=\"+filterKeys+\"&FilterValues=\"+filterValues+\"&isData=\"+isData;\r\n\r\n $http.get(url, {\r\n headers : { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n }).then(function(res){\r\n if(res.status ==200){\r\n success(res.data);\r\n } else {\r\n failure(\"Failed\", \"Unable to get ticket counts\");\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get ticket counts\");\r\n});\r\n}\r\n\r\nthis.getTicketCountsWithSkill = function(loggedinUser, token, metrix, rollups, filterKeys, \r\n filterValues, isData,success, failure){\r\n\r\n url = DashboardURL+ \"/api/Chart?ReqUserId=\"+loggedinUser+\"&ChartType=Metrics&Metrics=\"+metrix\r\n +\"&DimensionList=&RollsUP=\"+rollups+\"&FilterKeys=\"+filterKeys+\"&FilterValues=\"+filterValues+\"&isData=\"+isData;\r\n\r\n $http.get(url, {\r\n headers : { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n }).then(function(res){\r\n if(res.status ==200){\r\n success(res.data[0]);\r\n } else {\r\n failure(\"Failed\", \"Unable to get ticket counts\");\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get ticket counts\");\r\n });\r\n}\r\n\r\nthis.getServiceGST = function(loggedinUser, skill, token, success, failure) {\r\n var url = ApiURL+'/api/ServiceGST/GetGST?reqUserId='+loggedinUser+'&skill='+skill;\r\n\r\n $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n }).then(function(res){\r\n $log.log(res);\r\n if(res && res.status==200){\r\n success(res.data);\r\n } else {\r\n failure(\"Failed\", \"Unable to get GST rate\");\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get GST rate\");\r\n })\r\n}\r\n\r\nthis.getAllTicketByCustLocId = function(custLocId, loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/Ticket/'+custLocId+'/byCustomerLocationId?reqUserId='+loggedinUser;\r\n\r\n $http.get(url, {\r\n headers : { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n }).then(function(res){\r\n if(res.status == 200){\r\n success(res.data);\r\n } else {\r\n failure(\"Failed\", \"Unable to get tickets by customer location id\");\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get tickets by customer location id\");\r\n });\r\n}\r\n});\nangular.module('inspinia').controller('HelpDeskCustomerViewController', function(toaster, HelpDeskCustomerViewService, \r\n\t$state ,$localStorage, $scope, DTOptionsBuilder, DTColumnDefBuilder, ApiURL, $log, $uibModal, \r\n\t$timeout, HelpDeskHomeService, PublicApiURL, JobTicketViewService) {\r\n\tvm = this;\r\n\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login',{\r\n\t\t\treload:true\r\n\t\t});\r\n\t} else {\r\n\t\tvar token = $localStorage.token;\r\n\t\tvar isData=false;\r\n\t\tif($localStorage.loggedInUser_SkillSet){\r\n\t\t\tvm.skills = $localStorage.loggedInUser_SkillSet.split(\",\");\r\n\t\t} else {\r\n\t\t\tvm.skills = [];\r\n\t\t}\r\n\r\n\tvm.PrevTicketHours = $localStorage.accountConfig.PrevTicketHours;\t\r\n\t\tvm.searchText = '';\r\n\t\tvm.loggingRemark = '';\r\n\t\tvm.loggingSource = '';\r\n\r\n\t\tvm.templateName = {};\r\n\t\tvm.templateName[\"VSAT\"] = 'VSAT Troubleshooting';\r\n\t\tvm.templateName[\"LeaseLine\"] = 'LeaseLine Troubleshooting';\r\n\r\n\t\tvm.customerLocationId = $state.params.cust_loc_id;\r\n\t\tvm.AssetName = $state.params.asst_name;\r\n\t\tvm.AssetId = $state.params.asst_id;\r\n\t\tvm.searchUrl = PublicApiURL + '/api/CustomerJobCard/search?reqUserId='+loggedinUser+'&input=';\r\n\t\tvm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n \tvar SlaPriorityModel = vm.getAccountConfigSetting('SlaPriorityCallTypeMap');\r\n \tvm.CallTypePriority = [];\r\n \t\tfor (key in SlaPriorityModel){\r\n \t\tvm.CallTypePriority.push({'value':key, 'name':SlaPriorityModel[key]})\r\n \t\t}\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.floatToInt = $scope.$parent.$parent.main.floatToInt;\r\n\t\tvar projectId = 'P0000000001';\t\t\r\n\r\n\t\tvm.metrix = {\r\n\t\t\t\"TRBL\": {\r\n\t\t\t\t\"VSAT\": {\r\n\t\t\t\t\t\"New Jobs\":\"VSAT_TRBL_New_Jobs\",\r\n\t\t\t\t\t\"Total Jobs\":\"VSAT_TRBL_Total_Jobs\",\r\n\t\t\t\t\t\"Assigned Jobs\":\"VSAT_TRBL_Assigned_Jobs\",\r\n\t\t\t\t\t\"Completed Jobs\":\"VSAT_TRBL_Completed_Jobs\",\r\n\t\t\t\t\t\"Approved Jobs\":\"VSAT_TRBL_Approved_Jobs\",\r\n\t\t\t\t\t\"Rejected Jobs\":\"VSAT_TRBL_Rejected_Jobs\",\r\n\t\t\t\t\t\"Cancelled Jobs\":\"VSAT_TRBL_Cancelled_Jobs\",\r\n\t\t\t\t\t\"On Hold Jobs\":\"VSAT_TRBL_Hold_Jobs\",\r\n\t\t\t\t\t\"Open Jobs\":\"VSAT_TRBL_Open_Jobs\"\r\n\t\t\t\t},\r\n\t\t\t\t\"LeaseLine\": {\t\t\t\t\r\n\t\t\t\t\t\"New Jobs\":\"LEAS_TRBL_New_Jobs\",\r\n\t\t\t\t\t\"Total Jobs\":\"LEASEAS_TRBL_Total_Jobs\",\r\n\t\t\t\t\t\"Assigned Jobs\":\"LEAS_TRBL_Assigned_Jobs\",\r\n\t\t\t\t\t\"Completed Jobs\":\"LEAS_TRBL_Completed_Jobs\",\r\n\t\t\t\t\t\"Approved Jobs\":\"LEAS_TRBL_Approved_Jobs\",\r\n\t\t\t\t\t\"Rejected Jobs\":\"LEAS_TRBL_Rejected_Jobs\",\r\n\t\t\t\t\t\"Cancelled Jobs\":\"LEAS_TRBL_Cancelled_Jobs\",\r\n\t\t\t\t\t\"On Hold Jobs\":\"LEAS_TRBL_Hold_Jobs\",\r\n\t\t\t\t\t\"Open Jobs\":\"LEAS_TRBL_Open_Jobs\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\"Field\":{\r\n\t\t\t\t\"VSAT\":{\r\n\t\t\t\t\t\"New Jobs\":\"VSAT_Field_New_Jobs\",\r\n\t\t\t\t\t\"Total Jobs\":\"VSAT_Field_Total_Jobs\",\r\n\t\t\t\t\t\"Assigned Jobs\":\"VSAT_Field_Assigned_Jobs\",\r\n\t\t\t\t\t\"Completed Jobs\":\"VSAT_Field_Completed_Jobs\",\r\n\t\t\t\t\t\"Approved Jobs\":\"VSAT_Field_Approved_Jobs\",\r\n\t\t\t\t\t\"Rejected Jobs\":\"VSAT_Field_Rejected_Jobs\",\r\n\t\t\t\t\t\"Cancelled Jobs\":\"VSAT_Field_Cancelled_Jobs\"\r\n\t\t\t\t},\r\n\t\t\t\t\"LeaseLine\":{\r\n\t\t\t\t\t\"New Jobs\":\"LEAS_Field_New_Jobs\",\r\n\t\t\t\t\t\"Total Jobs\":\"LEAS_Field_Total_Jobs\",\r\n\t\t\t\t\t\"Assigned Jobs\":\"LEAS_Field_Assigned_Jobs\",\r\n\t\t\t\t\t\"Completed Jobs\":\"LEAS_Field_Completed_Jobs\",\r\n\t\t\t\t\t\"Approved Jobs\":\"LEAS_Field_Approved_Jobs\",\r\n\t\t\t\t\t\"Rejected Jobs\":\"LEAS_Field_Rejected_Jobs\",\r\n\t\t\t\t\t\"Cancelled Jobs\":\"LEAS_Field_Cancelled_Jobs\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t////Follow Up Model\r\n vm.OpenFollowUpModel = function(ticketId) {\r\n vm.followup = '';\r\n vm.tickId = ticketId;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n // resolve : {\r\n // items : function(){\r\n // return {\r\n // TicketId:ticketId\r\n // };\r\n // }\r\n // },\r\n}); \r\n}\r\nvm.CloseFollowUpModel = function () {\r\n FollowUpModel.close();\r\n}\r\n\r\nvar ModalInstanceCtrlFollowUp = function($scope, $rootScope, $uibModalInstance) {\r\n\r\n vm.updateFollowUpStatus = function(){\r\n var data = {};\r\n data = {\r\n\r\n \t \"userId\": loggedinUser,\r\n\t\t\t \"dateTime\": \"\",\r\n\t\t\t \"activity\": vm.followup,\r\n\t\t\t \"action\": \"FOLLOW_UP\",\r\n\t\t\t \"userName\": \"\",\r\n\t\t\t \"ticketId\": vm.tickId,\r\n\t\t\t \"primaryReason\": \"\",\r\n\t\t\t \"SecondryReason\": \"\",\r\n\t\t\t \"ReasonComment\": \"\"\r\n }\r\n\r\n // $log.log('Com',data);\r\n vm.CloseFollowUpModel();\r\n HelpDeskHomeService.TicketFollowUp(data, token, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\")\r\n $timeout(function () {\r\n $state.go(\"index.HelpDesk\", {\r\n reload: true\r\n })}, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n}\r\n\r\n\t\tvm.getCustomerBasicDetail = function() {\r\n\t\t\tHelpDeskCustomerViewService.getCustomerBasicDetail(loggedinUser, token, vm.customerLocationId, function(data){\r\n\t\t\t\tvm.customer = data;\t\t\t\r\n\t\t\t\tif(vm.customer && vm.customer.SkillSet){\r\n\t\t\t\t\tvm.skills = vm.customer.SkillSet;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.skills = [];\r\n\t\t\t\t}\r\n\t\t\t\tvm.noSkill = vm.skills.length==0;\r\n\t\t\t\tvm.onlyVsat = vm.skills.length==1 && vm.skills[0]==\"VSAT\";\r\n\t\t\t\tvm.both = vm.skills.length>1;\r\n\t\t\t\tvm.loadMetrix(\"TRBL\");\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.GetTicketSroucesByProId = function() {\r\n\t\t\tHelpDeskCustomerViewService.GetTicketSroucesByProId(loggedinUser, projectId, token, function(data){\r\n\t\t\t\tvm.ticketSources = data;\t\t\t\t\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.getSearchBox = function(){\r\n\t\t\tvm.searchBoxHtml = '
';\r\n\t\t}\r\n\r\n\t\tvm.searchCustomer = function(e){\r\n\t\t\tif(e && e.originalObject && e.originalObject.CustomerLocationId){\r\n\t\t\t\t$state.go('index.HelpDesk_Customer_View',{\r\n\t\t\t\t\tcust_loc_id:e.originalObject.CustomerLocationId,\r\n\t\t\t\t\tasst_name:e.originalObject.AssetName,\r\n\t\t\t\t\tasst_id:e.originalObject.AssetId,\r\n\t\t\t\t\treload:true\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.getTemplateByName = function(templateName){\r\n\t\t\tif(vm.PrevTicketHours > 0){\r\n\t\t\t\tHelpDeskCustomerViewService.findTicketInGivenTime(templateName, loggedinUser, vm.customerLocationId, vm.AssetId, vm.PrevTicketHours, token, function(data) {\r\n\t\t\t\t\tvm.templateData = data;\r\n\t\t\t\t\tif(data == \"False\") {\r\n\t\t\t\t\t\tvm.showTicketEditModel(templateName);\r\n\t\t\t\t\t} \r\n\t\t\t\t\telse \r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Customer Location already has ticket logged within \" + range + \" minuts.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvm.showTicketEditModel(templateName);\r\n\t\t\t}\t\t\r\n\t\t}\r\n\r\n\t\tvm.showTicketEditModel = function(templateName){\r\n\t\t\tHelpDeskCustomerViewService.getTemplateByName(templateName, loggedinUser, token, function(data) {\r\n\t\t\t\tvm.templateData = data;\r\n\t\t\t\tif(data.Skill == \"VSAT\") {\r\n\t\t\t\t\tvm.form1 = \"VSAT Maintenance\";\r\n\t\t\t\t} else if (data.Skill == \"LeaseLine\") {\r\n\t\t\t\t\tvm.form1 = \"LLM\";\r\n\t\t\t\t}\r\n\t\t\t\tvm.OpenTicketEditModal();\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.getDropDownOptions = function(SectionName, ItemName){\r\n\t\t\tvar options = [];\r\n\t\t\tif(vm.templateData && vm.templateData.SectionList){\r\n\t\t\t\tangular.forEach(vm.templateData.SectionList, function(l){\r\n\t\t\t\t\tif(l.SectionName == SectionName && l.ItemList && l.ItemList.length>0){\r\n\t\t\t\t\t\tangular.forEach(l.ItemList, function(item){\r\n\t\t\t\t\t\t\tif(item.ItemName == ItemName && item.ItemType == \"Dropdown Type\" && item.field_options && item.field_options.options && item.field_options.options.length>0) {\t\r\n\t\t\t\t\t\t\t\t//$log.log(\"item.field_options.options\", item.field_options.options);\r\n\t\t\t\t\t\t\t\tangular.forEach(item.field_options.options, function(o){\r\n\t\t\t\t\t\t\t\t\tif(o.label && o.label.length>0){\r\n\t\t\t\t\t\t\t\t\t\toptions.push(o);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t} \r\n\t\t\t/*if (ItemName == 'Call Type') {\r\n\t\t\t \tvm.form1 = options[0].label;\r\n\t\t\t} else {\r\n\t\t\t\tvm.form1 = '';\r\n\t\t\t}*/\r\n\t\t\treturn options;\r\n\t\t}\r\n\r\n\t\tvm.EditItemSectionAndActionWise = function (item) {\r\n\t\t\tvm.PlottedItem = '';\r\n\t\t\tvar itemType = item.ItemType;\r\n\r\n\t\t\tswitch (itemType) {\r\n\r\n\t\t\t\tcase 'Dropdown Type':\r\n\t\t\t\t/*vm.PlottedItem = '';\r\n\t\t\t\t*/\r\n\t\t\t\tvar calltypelevel = '';\r\n\t\t\t\tif(item.ItemName == \"Call Type\")\r\n\t\t\t\t{\r\n\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t\tvm.PlottedItem = vm.PlottedItem + '
Please enter {{item.ItemName}} value
';\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\r\n\t\t\t\tbreak;\r\n\r\n\r\n\t\t\t\tcase 'Date Type':\r\n\t\t\t\tvm.PlottedItem = ''\r\n\t\t\t\t+ '';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase 'Multiple Picture Type':\r\n\t\t\t\tcase 'Signature Type':\r\n\t\t\t\tcase 'Video Type':\r\n\t\t\t\tcase 'CheckBoxList DropDown Type':\r\n\t\t\t\tcase 'Character FilteredTextBoxField':\r\n\t\t\t\tcase 'Bigger Textbox':\r\n\t\t\t\tcase 'Edit Enabled':\r\n\t\t\t\tcase 'Phone Type':\r\n\t\t\t\tcase 'Decimal TextBox Type':\r\n\t\t\t\tcase 'Numeric FilteredTextBoxField':\r\n\t\t\t\tcase 'Instruction Type':\r\n\t\t\t\tcase 'Scan Barcode Type':\r\n\t\t\t\tcase 'Email':\r\n\t\t\t\tdefault:\r\n\t\t\t\t//vm.PlottedItem = '';\r\n\t\t\t\tvm.PlottedItem = '';\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn vm.PlottedItem;\r\n\t\t}\r\n\r\n\r\n\r\n\t vm.openCalendar = function(e, picker) {\r\n \tvm.loggingDate.open = true;\r\n \t};\r\n\r\n\t\tticketEditModalInstance = {};\r\n\t\tvm.OpenTicketEditModal = function () {\r\n\t\t\tvm.check = false;\r\n\t\t\tvm.loggingSource = '';\r\n\t\t\tvm.loggingRemark = '';\r\n\t\t\tvar datelimit = new Date();\t\t\r\n\t\t\tdatelimit.setMinutes(datelimit.getMinutes() + 1)\r\n\t\t\tvm.loggingDate = {date: '', datepickerOptions: { maxDate: datelimit }};\r\n\t\t\tticketEditModalInstance = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ticketEdit_modal.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseModal = function () {\r\n\t\t\tticketEditModalInstance.close();\r\n\t\t}\r\n\r\n\t\tvm.createTicket = function(status){\r\n\r\n\t\t\tif (vm.editTicket_form && !vm.editTicket_form.$valid) {\r\n\t vm.editTicket_form.submitted = true;\r\n\t return;\r\n\t }\r\n\t\t\r\n\t\t\t//ticketEditModalInstance.close();\r\n\t\t\tvm.ticket = {\r\n\t\t\t\t\"Address1\": vm.customer.Address1,\r\n\t\t\t\t\"Address2\": vm.customer.Address2,\r\n\t\t\t\t\"City\": vm.customer.City,\r\n\t\t\t\t\"State\": vm.customer.SubRegion,\r\n\t\t\t\t\"Template\": vm.templateData.TemplateName,\r\n\t\t\t\t\"CustomerId\": vm.customer.CustomerId,\r\n\t\t\t\t\"JobType\": vm.templateData.Skill,\r\n\t\t\t\t\"BroadcastRate\": 0,\r\n\t\t\t\t\"BroadcastGrossRate\": 0,\r\n\t\t\t\t\"MobiforceCommissionPercentage\": 0,\r\n\t\t\t\t\"BidDuration\": 0,\r\n\t\t\t\t\"JobAssignRate\": 0,\r\n\t\t\t\t\"JobAssignGrossRate\": 0,\r\n\t\t\t\t\"RateBase\": 0,\r\n\t\t\t\t\"CustomerName\": vm.customer.CustomerName,\r\n\t\t\t\t\"ProjectId\": \"P0000000001\",\r\n\t\t\t\t\"ProjectName\": \"Test Project\",\r\n\t\t\t\t\"Circle\": vm.customer.SubRegion,\r\n\t\t\t\t\"SkillSet\": vm.templateData.Skill,\r\n\t\t\t\t\"JobDescription\": \"Troubleshooting detail\",\t\t\t\t\r\n\t\t\t\t\"ConsumerName\": vm.customer.CustomerLocationContactModels[0].FirstName+' '+vm.customer.CustomerLocationContactModels[0].LastName,\r\n\t\t\t\t\"ConsumerContactNumber\": vm.customer.CustomerLocationContactModels[0].Mobile,\r\n\t\t\t\t\"Region\": vm.customer.Region,\r\n\t\t\t\t\"SubRegion\": vm.customer.SubRegion,\r\n\t\t\t\t\"Pincode\": vm.customer.Pincode,\r\n\t\t\t\t\"UniqueOne\": vm.customer.UniqueIdOne,\r\n\t\t\t\t\"UniqueTwo\": vm.customer.UniqueIdTwo,\r\n\t\t\t\t\"District\": vm.customer.District,\r\n\t\t\t\t\"StartTime\": moment().format(\"YYYY-MM-DDTHH:mm:ssZ\"),\r\n\t\t\t\t\"GeoFenceEnable\": false,\r\n\t\t\t\t\"FixedBidPrice\": false,\r\n\t\t\t\t\"TicketStatus\": status,\r\n\t\t\t\t\"CustomerLocationId\": vm.customerLocationId,\r\n\t\t\t\t\"Priority\": \"\",\r\n\t\t\t\t\"LoggingRemark\": vm.loggingRemark,\r\n\t\t\t\t\"LoggingDate\": moment(vm.loggingDate.date).format(\"YYYY-MM-DDTHH:mm:ssZ\"),\r\n\t\t\t\t\"TicketSource\": vm.loggingSource,\r\n\t\t\t\t\"AssetName\": vm.AssetName,\r\n\t\t\t\t\"AssetId\": vm.AssetId,\r\n\t\t\t\t\"JobTemplateModel\" : {\"sectionMap\": {}}\r\n\t\t\t};\r\n\r\n\t\t\tif(status=='Completed'){\r\n\t\t\t\tvm.ticket[\"CompletionDate\"] = moment().format(\"YYYY-MM-DDTHH:mm:ssZ\");\r\n\t\t\t}\r\n\r\n\t\t\tfor(var i=0; i0){\r\n\t\t\t\t\tangular.forEach(data, function(d){\r\n\t\t\t\t\t\tvm.jobcount[d.DisplayName] = d.Value;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure)\r\n\t\t}\r\n\r\n\t\tvm.getAllTickets = function(){\r\n\t\t\tvm.tickets = {\"Troubleshooting\":[], \"CCR\":[]};\r\n\t\t\tHelpDeskCustomerViewService.getAllTicketByCustLocId(vm.customerLocationId, loggedinUser, \r\n\t\t\t\ttoken, function(data) {\r\n\t\t\t\t\tangular.forEach(data, function(d){\r\n\t\t\t\t\t\tif(d && d.Template.indexOf(\"Troubleshooting\")>=0){\r\n\t\t\t\t\t\t\tvm.tickets[\"Troubleshooting\"].push(d);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvm.tickets[\"CCR\"].push(d);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.loadMetrix = function(ticketType){\r\n\t\t\tvm.jobcount = vm.jobcount || {};\r\n\t\t\tvm.ticketType = ticketType;\r\n\t\t\tangular.forEach(vm.metrix[ticketType][vm.skills[0]], function(m, displayName){\r\n\t\t\t\tHelpDeskCustomerViewService.getTicketCountsWithSkill(loggedinUser, token, m,\r\n\t\t\t\t\t'', 'Circle,CustomerLocationId', vm.customer.SubRegion+','+vm.customerLocationId,isData, function(d){\r\n\t\t\t\t\t\tif(d && d.Value){\r\n\t\t\t\t\t\t\tvm.jobcount[displayName] = d.Value;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvm.jobcount[displayName] = 0;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}, vm.showFailure);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.loadData = function(){\r\n\t\t\tvm.getCustomerBasicDetail();\r\n\t\t\tvm.getAllTickets();\r\n\t\t\tvm.GetTicketSroucesByProId();\r\n\t\t}\r\n\t\tvm.getSearchBox();\r\n\t\tvm.loadData();\r\n\r\n\t\tvm.editJobAppointment = function (ticket) {\r\n\t\t\tvm.TicketInfoEdit = ticket;\r\n\t\t\t$log.log(ticket);\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAppointment.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\tHelpDeskCustomerViewService.getServiceGST(loggedinUser, ticket.SkillSet, token, function(data){\r\n\t\t\t\tvm.grossRate = data;\r\n\t\t\t}, vm.showFailure)\r\n\t\t}\r\n\r\n\t\tvm.closeJobAppointment = function () {\r\n\t\t\tvm.jobAppointmentModal.close();\r\n\t\t}\r\n\r\n\t\tvm.createFieldTicket = function(ticket) {\r\n\t\t\tvm.jobAppointmentForm.submitted = true;\r\n\t\t\tif(vm.jobAppointmentForm.$valid && ticket.TicketId){\r\n\t\t\t\tticket.Template = ticket.Template.indexOf(\"VSAT\")>=0?\"VSAT CCR\":\"LeaseLine CCR\";\r\n\t\t\t\tticket.JobDescription = ticket.Template;\r\n\t\t\t\tticket.TemplateModel = null;\r\n\t\t\t\tticket.BroadcastGrossRate = ticket.BroadcastRate * (1+vm.grossRate/100);\r\n\t\t\t\tticket.LinkId = ticket.TicketId;\r\n\t\t\t\tticket.TicketId = null;\r\n\t\t\t\tticket.UniqueOne = ticket.VSATID;\r\n\t\t\t\tticket.UniqueTwo = ticket.VSATIP;\r\n\t\t\t\tticket.ConsumerContactNumber = ticket.ConsumerContact;\r\n\t\t\t\t$log.log(ticket);\r\n\t\t\t\tvm.jobAppointmentModal.close();\r\n\t\t\t\tHelpDeskCustomerViewService.createTicket(loggedinUser, ticket, token, function(data){\r\n\t\t\t\t\tvm.showSuccess(\"Sucess\", \"Field ticket has been created successfully.\");\r\n\t\t\t\t\t$timeout(vm.loadData, 2000);\r\n\t\t\t\t\t// vm.loadData();\r\n\t\t\t\t}, vm.showFailure);\t\t\t\t\r\n\t\t\t} else {\r\n\t\t\t\t$log.log(\"invalid\", vm.jobAppointmentForm);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.getJobAllStatus = function () {\r\n\t\t\tJobTicketViewService.getJobAllStatus(loggedinUser, token, function (data) {\r\n\t\t\t\tvm.statusList = data;\r\n\t\t\t\tvm.statusList.unshift({\"StatusName\":\"All Job Status\"});\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.getJobAllStatus();\r\n\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.dtInstance1 = {};\r\n\r\n\t\tvm.searchTable = function () {\r\n\t\t\t// vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n\t\t\t// vm.dtInstance1.DataTable.search(vm.searchText).draw();\r\n\r\n\t\t\tvar s = \"\";\r\n\t\t\ts += vm.searchText.length > 0 ? \" \" + vm.searchText : \"\";\r\n\t\t\ts += (vm.searchStatusText.length > 0 && vm.searchStatusText!='All Job Status') ? \" \" + vm.searchStatusText : \"\";\r\n\t\t\tvm.dtInstance.DataTable.search(s).draw();\r\n\t\t\tvm.dtInstance1.DataTable.search(s).draw();\r\n\t\t};\r\n\r\n\t\tformat = function(ticket){\r\n\t\t\tvar rowHtml = ''+\r\n\t\t\t''+\r\n\t\t\t''+\r\n\t\t\t''+\r\n\t\t\t'';\r\n\t\t\tif(ticket.TicketStatus==\"On Hold\"){\r\n\t\t\t\trowHtml+=''+\r\n\t\t\t\t''+\r\n\t\t\t\t''+\r\n\t\t\t\t'';\r\n\t\t\t}else if(ticket.TicketStatus == \"Completed\"){\r\n\t\t\t\trowHtml+=''+\r\n\t\t\t\t''+\r\n\t\t\t\t''+\r\n\t\t\t\t''\r\n\t\t\t}\r\n\t\t\trowHtml+='
Location:'+ticket.Address1+\", \"+ticket.Address2+\", \"+ticket.City+\", \"+ticket.Circle+\", Pincode: \"+parseInt(ticket.Pincode)+'
On Hold Reason:'+ticket.PrimaryReason+\" - \"+ticket.SecondaryReason+'
Completion Remarks:' + ticket.CompletionRemark+'
';\r\n\t\t\treturn rowHtml;\r\n\t\t}\r\n\r\n\t\tvm.showLocation = function(dtInstance, $event, ticket){\r\n\t\t\tvar tr = angular.element($event.currentTarget).closest(\"tr\");\r\n\t\t\tvar row = dtInstance.DataTable.row( tr );\r\n\t\t\tif ( row.child.isShown() ) {\r\n\t\t\t // This row is already open - close it\r\n\t\t\t row.child.hide();\r\n\t\t\t tr.removeClass('shown');\r\n\t\t\t} else {\r\n\t\t // Open this row\r\n\t\t row.child( format(ticket) ).show();\r\n\t\t tr.addClass('shown');\r\n\t\t }\r\n\t\t}\r\n\r\n\t\tvm.editCustomerProfile = function() {\r\n\t\t\tEditCustomerModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editCustomer.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\tcontroller: ModalInstanceCtrlCustomer,\r\n\t\t\t\tsize:'lg' \r\n\r\n\t\t\t}); \r\n\t\t}\r\n\r\n\t\tvar ModalInstanceCtrlCustomer = function($scope, $rootScope, $uibModalInstance) { \r\n\r\n\t\t\tHelpDeskCustomerViewService.GetRegion(loggedinUser,token).then(function(resp){\r\n\t\t\t\tif (resp.status==200 && resp.data.values.length>0) {\r\n\t\t\t\t\tvm.RegionList = resp.data.values;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tHelpDeskCustomerViewService.GetSubRegion(loggedinUser,token,vm.customer.Region).then(function(resp){\r\n\t\t\t\tif (resp.status==200 && resp.data.values.length>0) {\r\n\t\t\t\t\tvm.SubRegionList = resp.data.values;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tHelpDeskCustomerViewService.GetCityBySubRegion(loggedinUser,vm.customer.SubRegion,token).then(function(resp){\r\n\t\t\t\tif (resp.status==200 && resp.data.values.length>0) {\r\n\t\t\t\t\tvm.CityList = resp.data.values;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tvm.GetSubRegionList = function(region){\r\n\t\t\t\tHelpDeskCustomerViewService.GetSubRegion(loggedinUser,token,region).then(function(resp){\r\n\t\t\t\t\tif (resp.status==200 && resp.data.values.length>0) {\r\n\t\t\t\t\t\tvm.SubRegionList = resp.data.values;\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tvm.GetCityList = function(subRegion){\r\n\t\t\t\tHelpDeskCustomerViewService.GetCityBySubRegion(loggedinUser,subRegion,token).then(function(resp){\r\n\t\t\t\t\tif (resp.status==200 && resp.data.values.length>0) {\r\n\t\t\t\t\t\tvm.CityList = resp.data.values;\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\r\n\t\t\tvm.updateCustomerModal = function(){\r\n\t\t\t\tif (vm.customerEdit_form.$valid) {\r\n\t\t\t\t\tvar data={};\r\n\r\n\t\t\t\t\t// var ContactModel = {};\r\n\t\t\t\t\tvar data={\r\n\r\n\t\t\t\t\t\t\"reqUserId\": loggedinUser,\r\n\t\t\t\t\t\t\"CcId\": vm.customer.CustomerLocationContactModels[0].CcId,\r\n\t\t\t\t\t\t\"CustomerId\": vm.customer.CustomerId,\r\n\t\t\t\t\t\t\"CustomerLocationId\": vm.customer.CustomerLocationId,\r\n\t\t\t\t\t\t\"FirstName\": vm.customer.CustomerLocationContactModels[0].FirstName,\r\n\t\t\t\t\t\t\"LastName\": vm.customer.CustomerLocationContactModels[0].LastName,\r\n\t\t\t\t\t\t\"Mobile\": vm.customer.CustomerLocationContactModels[0].Mobile,\r\n\t\t\t\t\t\t\"OtherMobile\": null,\r\n\t\t\t\t\t\t\"Email\": vm.customer.CustomerLocationContactModels[0].Email,\r\n\t\t\t\t\t\t\"CustomerName\": vm.customer.CustomerName,\r\n\t\t\t\t\t\t\"Address1\": vm.customer.Address1,\r\n\t\t\t\t\t\t\"Address2\": vm.customer.Address2,\r\n\t\t\t\t\t\t\"Pincode\": vm.customer.Pincode,\r\n\t\t\t\t\t\t\"Region\": vm.customer.Region,\r\n\t\t\t\t\t\t\"SubRegion\": vm.customer.SubRegion,\r\n\t\t\t\t\t\t\"UniqueIdOne\": vm.customer.UniqueIdOne,\r\n\t\t\t\t\t\t\"UniqueIdTwo\": vm.customer.UniqueIdTwo,\r\n\t\t\t\t\t\t\"City\": vm.customer.City\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tHelpDeskCustomerViewService.UpdateCustomerLocation(data,token,loggedinUser).then(function(resp){\r\n\t\t\t\t\t\tif (resp.status == 202) {\r\n\t\t\t\t\t\t\tvm.showSuccess();\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tvm.showFailure();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\tvm.CloseEditCustomerModal();\r\n\t\t\t\t\t// $log.log('updateCustomer',data);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tvm.customerEdit_form.submitted = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.CloseEditCustomerModal = function ()\r\n\t\t{\r\n\t\t\tEditCustomerModal.close();\r\n\t\t}\t\r\n\r\n\t\t//Update Resons\r\n\t\tvm.openUpdateStatusModel = function(ticket) {\r\n\t\t\tvm.statusModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'statusModal.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t}); \r\n\t\t\tvm.selectedTicketId = ticket.TicketId;\r\n\t\t\tvm.selectedTemplate = ticket.Template;\r\n\t\t\tvm.updateStatus = ticket.PrimaryReason;\r\n\t\t\tvm.selectedReason = ticket.SecondaryReason;\r\n\t\t\tvm.GetAllPrimaryReasonBasedOnTemplate();\r\n\t\t}\r\n\t\tvm.CloseUpdateStatusModel = function () {\r\n\t\t\tvm.statusModal.close();\r\n\t\t}\r\n\r\n\t\tvm.GetAllPrimaryReasonBasedOnTemplate = function() {\t\t\t\r\n\t\t\tHelpDeskHomeService.GetAllPrimaryReasonBasedOnTemplate(loggedinUser, vm.selectedTemplate,\r\n\t\t\t\ttoken, function(data){\r\n\t\t\t\t\tvm.TotalReasonList = data;\r\n\t\t\t\t\tvm.filterData();\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.filterData = function(){\r\n\t\t\tvm.PrimaryReasonList = [];\r\n\t\t\tfor(var i=0; ilTfgitp')\r\n\t\t.withButtons(['colvis'])\r\n\t\t.withOption('stateSave', true)\r\n\t\t.withOption('stateSaveCallback', function (settings, data) {\r\n\t\t\tlocalStorage.setItem('DataTables_' + settings.sInstance, JSON.stringify(data))\r\n\t\t})\r\n\t\t.withOption('stateLoadCallback', function (settings) {\r\n\t\t\tvar state = JSON.parse(localStorage.getItem('DataTables_' + settings.sInstance));\r\n\t\t\tif (state) {\r\n\t\t\t\tstate.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n\t\t\t\tif(state.columns && state.columns.length>0){\r\n\t\t\t\t\tstate.columns[10].visible=false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn state;\r\n\t\t})\r\n\t\t.withPaginationType('full_numbers')\r\n\t\t.withOption('lengthChange', false)\r\n\t\t.withOption('order', ['0', 'desc']);\r\n\r\n\t\tvm.dtColumnDefs = [\r\n\t\tDTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(10).notSortable()\r\n\t\t// DTColumnDefBuilder.newColumnDef(11).notSortable()\r\n\t\t];\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('GasChargingApprovallService', function (AcessoriesURL, ApiURL, SchedulingAPI, $window, $http) {\r\n\r\n this.GetAllWareHouse = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllWareHouse';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetGasChargerRefuelingList = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFGasCharger/GetGasChargerRefuelingList';\r\n return $http.put(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetGasChargerDashboardByFilter = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFGasCharger/GetGasChargerDashboardByFilter';\r\n return $http.put(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetGasChargerRefuelingList_CSV = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFGasCharger/GetGasChargerRefuelingList_CSV';\r\n return $http.put(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetGasChargerRefulingById = function (GasChargeRequestID, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFGasCharger/GetGasChargerRefulingById?GasChargeRequestID=' + GasChargeRequestID;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UpdateGasChargerRefulingStatus = function ( data,loggedinUser,token) {\r\n var url = AcessoriesURL + '/api/MMFGasCharger/UpdateGasChargerRefulingStatus';\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.MarkProductStatusDeliveredByServiceCenter = function (data, imageFile, imageFileName, invoiceFile, invoiceFileName, loggedinUser, token) {\r\n var formdata = new FormData();\r\n formdata.append(imageFileName, imageFile);\r\n formdata.append(invoiceFileName, invoiceFile);\r\n var FiltersData = JSON.stringify(data);\r\n formdata.append(\"FiltersData\", FiltersData);\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/MarkProductStatusDeliveredByServiceCenter';\r\n return $http.put(url, formdata, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.ResubmitProductReplacementRequest = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/ResubmitProductReplacementRequest'\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CreateReOrderProductReplacementRequest = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFProductReplacement/CreateReOrderProductReplacementRequest';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('GasChargingApprovalController', function (GasChargingApprovallService, MainService, $resource, $stateParams, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.AccountId= $localStorage.accountConfig.AccountId;\r\n\t\tvar oPageIndex = 1;\r\n\t\tvar oPageSize = 10;\r\n\t\tvm.allOrdersPageListCount = 10;\r\n\t\tvm.SearchText = '';\r\n\t\tvm.SelectedRequestStatus = 'PendingAtMe';\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\t$scope.dates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\tvm.Orderby = \"CreatedOn\";\r\n vm.SortType = \"desc\";\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t\t};\r\n\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t};\r\n\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.sortColumn = function (col) {\r\n\t\t\tvm.OrderBy = col;\r\n\t\t\tif (vm.SortType == 'desc') {\r\n\t\t\t vm.SortType = 'asc';\r\n\t\t\t vm.reverseclass = 'fa fa-arrow-up';\r\n\t\t\t} else {\r\n\t\t\t vm.SortType = 'desc';\r\n\t\t\t vm.reverseclass = 'fa fa-arrow-down';\r\n\t\t\t}\r\n\t\t\tvm.GetGasChargerRefuelingList();\r\n\t\t };\r\n\t \r\n\t\t vm.sortClass = function (col) {\r\n\t\t\tif (vm.OrderBy == col) {\r\n\t\t\t if (vm.SortType == 'desc') {\r\n\t\t\t\treturn 'fa fa-arrow-down';\r\n\t\t\t } else {\r\n\t\t\t\treturn 'fa fa-arrow-up';\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t return \"\";\r\n\t\t\t}\r\n\t\t }\r\n\t\t \r\n\r\n\t\tvm.OpenResubmitReplaceModel = function (resubmitreplacedetails) {\r\n\t\t\tvm.resubmitReplacementId = resubmitreplacedetails;\r\n\t\t\tResubmitReplaceModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Resubmit.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeResubmitRequestUpdateModel = function () {\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tResubmitReplaceModel.close();\r\n\t\t\tvm.resubmitstrReplacementComment = '';\r\n\t\t\tvm.resubmitReplacementId = '';\r\n\t\t}\r\n\t\tvm.ResubmitProductReplacementRequest = function () {\r\n\t\t\tvm.Resubmit_Form.submitted = true;\r\n\t\t\tif (vm.Resubmit_Form.$valid) {\r\n\t\t\t\t// $scope.uploadFiles();\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar resubmitreplacementreasondata = {\r\n\t\t\t\t\t\"strProductReplacementId\": vm.resubmitReplacementId,\r\n\t\t\t\t\t\"strReplacementComment\": vm.resubmitstrReplacementComment,\r\n\t\t\t\t\t\"strReplacementReason\": vm.resubmitrelacementoption,\r\n\t\t\t\t}\r\n\t\t\t\tGasChargingApprovallService.ResubmitProductReplacementRequest(resubmitreplacementreasondata, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Product replacement request raised.\");\r\n\t\t\t\t\t\tvm.closeResubmitRequestUpdateModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.trackingStatus = false;\r\n\r\n\t\tvm.GetGasChargerRefulingById = function (GasChargeRequestID) {\r\n\t\t\tGasChargingApprovallService.GetGasChargerRefulingById(GasChargeRequestID, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.trackingDetails = resp.data;\r\n\t\t\t\t\tvm.activitytimeline = resp.data.listApprovalTrail;\r\n\t\t\t\t\tvm.trackingStatus = true;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.reorderReplacementId = '';\r\n\t\tvm.OpenReOrderConfirmation = function (reordereplacedetails) {\r\n\t\t\tvm.reorderReplacementId = reordereplacedetails;\r\n\t\t\tReorderModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ReOrderPart.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeReOrderConfirmation = function () {\r\n\t\t\tReorderModel.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.reorderReplacementId = '';\r\n\t\t\tvm.reorderReplacementComment = '';\r\n\t\t}\r\n\r\n\t\tvm.CreateReOrderProductReplacementRequest = function () {\r\n\t\t\tvm.Reorder_Form.submitted = true;\r\n\t\t\tif (vm.Reorder_Form.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar reordereplacementreasondata = {\r\n\t\t\t\t\t\"strProductReplacementId\": vm.reorderReplacementId,\r\n\t\t\t\t\t\"strReplacementComment\": vm.reorderReplacementComment,\r\n\t\t\t\t\t\"strReplacementReason\": vm.reorderrelacementoption,\r\n\t\t\t\t}\r\n\t\t\t\tGasChargingApprovallService.CreateReOrderProductReplacementRequest(reordereplacementreasondata, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Product re-order request raised.\");\r\n\t\t\t\t\t\tvm.closeReOrderConfirmation();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.OpenTicketView = function (ticket) {\r\n\t\t\t$state.go('index.JobDetailView', {\r\n\t\t\t\tticketId: ticket\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\r\n\t\tvm.ActionToBeTaken = '';\r\n\t\tvm.OpenRequestUpdateModel = function (requestId, action) {\r\n\t\t\tvm.UpdateAction = action;\r\n\t\t\tif (vm.UpdateAction == 'Approval') {\r\n\t\t\t\tvm.ActionToBeTaken = 'Approve';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tvm.ActionToBeTaken = 'Reject';\r\n\t\t\t}\r\n\t\t\tvm.requestIdTobeUpdated = requestId;\r\n\t\t\tRequestUpdateModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'UpdateRequestStatus.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeRequestUpdateModel = function () {\r\n\t\t\tRequestUpdateModel.close();\r\n\t\t\tvm.UpdationRemark = \"\";\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t}\r\n\r\n\t\tvm.UpdateGasChargerRefulingStatus = function () {\r\n\t\t\tif (vm.UpdateAction == 'Approval') {\r\n\t\t\t\tvm.ActionToBeTaken = 'Approved';\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tvm.ActionToBeTaken = 'Reject';\r\n\t\t\t}\r\n\t\t\tvm.Request_Update_Form.submitted = true;\r\n\t\t\tif (vm.Request_Update_Form.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar RequestModel = {\r\n\t\t\t\t\t\"GasChargeRequestID\": vm.requestIdTobeUpdated,\r\n\t\t\t\t\t\"Status\": vm.ActionToBeTaken,\r\n\t\t\t\t\t\"Comment\": vm.UpdationRemark,\r\n\t\t\t\t }\r\n\t\t\t\tGasChargingApprovallService.UpdateGasChargerRefulingStatus(RequestModel, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Request updated successfully\");\r\n\t\t\t\t\t\tvm.closeRequestUpdateModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetGasChargerRefuelingList();\r\n\t\t\t\t\t\t\tvm.GetGasChargerDashboardByFilter();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Function to clear the file input\r\n\t\tvm.clear = function () {\r\n\t\t\tangular.element(\"input[type='file']\").val(null);\r\n\t\t};\r\n\t\tvm.PDFViewOfShipmentDoc = function (page) {\r\n\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, page).then(function (resp) {\r\n\t\t\t\tvm.pdfimage = resp.data;\r\n\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t});\r\n\t\t\t$timeout(function () {\r\n\t\t\t\tvm.taxInvoiceModel = $uibModal.open({\r\n\t\t\t\t\ttemplateUrl: \"PDFView.html\",\r\n\t\t\t\t\tsize: \"lg\",\r\n\t\t\t\t\tscope: $scope,\r\n\t\t\t\t});\r\n\t\t\t}, 1000);\r\n\t\t};\r\n\t\tvm.closePDFView = function () {\r\n\t\t\tvm.taxInvoiceModel.close();\r\n\r\n\t\t};\r\n\t\tvm.ImageViewOfShipmentDoc = function (img, index) {\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\t\tif (resp.data == null || resp.data == '') {\r\n\t\t\t\t\tvm.productImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.productImg[index] = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.productImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t\r\n\t\t$scope.checkPDF = function (path) {\r\n\t\t\tif (path) {\r\n\t\t\t\tvar pt = path.substr(path.length - 4);\r\n\t\t\t\tif (pt == '.pdf') {\r\n\t\t\t\t\tvm.error = function () {\r\n\t\t\t\t\t\t$(\".pdf\").attr({ \"target\": \"_blank\" })\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\r\n\t\t$scope.openTrackingLink = function (trackingLink) {\r\n\t\t\t$window.open(trackingLink, '_blank');\r\n\t\t};\r\n\r\n\t\t\r\n\t\tvm.applyOrderFilter = function () {\r\n\t\t\tvm.GetGasChargerRefuelingList();\r\n\t\t\tvm.GetGasChargerDashboardByFilter();\r\n\t\t}\r\n\t\t\r\n\r\n\t\tvm.setSelectedFilter = function (item) {\r\n\t\t\tvm.SelectedRequestStatus = item;\r\n\t\t\tvm.GetGasChargerRefuelingList();\r\n\t\t};\r\n\r\n\r\n\t\tvm.clearMyFilter = function () {\r\n\t\t\tvm.SelectedRequestStatus = 'PendingAtMe';\r\n\t\t\tvm.searchTag = '';\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t}\r\n\r\n\r\n\t\tvm.showPartDetails = false;\r\n\r\n\t\tvm.CancelMyOrder = function () {\r\n\t\t\tGasChargingApprovallService.CancelMyOrder(vm.orderId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Order cancelled successfully.\");\r\n\t\t\t\t\tvm.closeOrderCancelConfirmation();\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetProductReplacementList();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\t$scope.totalOrderList = 0;\r\n\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t$scope.OrdersPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllOrderPageListCount = function () {\r\n\t\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t\toPageSize = $scope.ordersPerPage;\r\n\t\t\t$scope.AllOrderTablePageChanged($scope.OrdersPagination.current);\r\n\t\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\t\toPageIndex = newPage;\r\n\t\t\t\tvm.GetGasChargerRefuelingList();\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\toPageIndex = newPage;\r\n\t\t\tvm.GetGasChargerRefuelingList();\r\n\r\n\t\t};\r\n\t\tvm.allGasRequestList = [];\r\n\r\n\t\tvm.GetGasChargerRefuelingList = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Status\": vm.SelectedRequestStatus,\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tGasChargingApprovallService.GetGasChargerRefuelingList(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.allGasRequestList = resp.data.ReturnList;\r\n\t\t\t\t\t$scope.totalOrderList = resp.data.RecordCount;\r\n\t\t\t\t\t// vm.productImg = [];\r\n\t\t\t\t\t// for (var i = 0; i < vm.allGasRequestList.length; i++) {\r\n\t\t\t\t\t// \tvar item = vm.allGasRequestList[i];\r\n\t\t\t\t\t// \tvm.ImageViewOfShipmentDoc(item.strPackageAttachment, i);\r\n\t\t\t\t\t// }\r\n\t\t\t\t\tif (vm.allGasRequestList.length < vm.allOrdersPageListCount)\r\n\t\t\t\t\t\tvm.orderListLength = $scope.totalOrderList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.orderListLength = oPageIndex * vm.allOrdersPageListCount;\r\n\t\t\t\t\tif (oPageIndex == 1)\r\n\t\t\t\t\t\tvm.opageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.opageindexCount = (((oPageIndex - 1) * vm.allOrdersPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetGasChargerDashboardByFilter = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Status\": \"\",\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate\r\n\t\t\t}\r\n\t\t\tGasChargingApprovallService.GetGasChargerDashboardByFilter(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.gasChargingDashCount = resp.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.GetGasChargerRefuelingList();\r\n vm.GetGasChargerDashboardByFilter();\r\n\t\tvm.GetGasChargerRefuelingList_CSV = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Status\": vm.SelectedRequestStatus,\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tGasChargingApprovallService.GetGasChargerRefuelingList_CSV(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvar csvData = resp.data;\r\n\t\t\t\t\tvar blob = new Blob([csvData], { type: 'text/csv' });\r\n\t\t\t\t\tvar url = window.URL.createObjectURL(blob);\r\n\t\t\t\t\tvar a = document.createElement('a');\r\n\t\t\t\t\ta.href = url;\r\n\t\t\t\t\ta.download = 'All_GasRecharge_Requests_List.csv';\r\n\t\t\t\t\ta.click();\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.Acceptancemodel = function (requestDetails) {\r\n\t\t\tvm.showPartDetails = false;\r\n\t\t\tvm.AllRequestDetail = requestDetails;\r\n\t\t\tvm.updateStatusModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'acceptancepopup.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseAcceptanceModel = function () {\r\n\t\t\tvm.updateStatusModelOpen.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.UpdateOrderStatus = \"\";\r\n\t\t\tvm.TrackingLink = \"\";\r\n\t\t\tvm.strPackageId = \"\";\r\n\t\t\tvm.strPackageStatus = \"\";\r\n\t\t\tvm.strPackageTrackingId = \"\";\r\n\t\t\tvm.strShipmentId = \"\";\r\n\t\t\tvm.PackageDetails = [];\r\n\t\t\tvm.datePackedOn = moment().format(\"YYYY-MM-DD\");\r\n\t\t}\r\n\t}\r\n});\nangular.module('inspinia').service('HelpDeskHomeService',function($http, ApiURL, $log,ActivityURL){\r\n\t\r\n\tthis.getAllTickets = function(userId, token, fromDate, toDate, templateName, loc, status, completeFlag, success, failure, canceler){\r\n\t\tvar url = ApiURL + '/api/Ticket/'+userId+'/GetTicketsbyDateRangeForHelpDesk?fromDate='\r\n\t\t\t+fromDate+'&toDate='+toDate+'&templateName='+templateName+'&location='+loc+'&status='+status+'¬Completed=' +completeFlag;\r\n\t\t$http.get(url, {\r\n\t\t\ttimeout: canceler.promise,\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json', 'Token': token, 'UserId': userId\r\n\t\t\t}\r\n\t\t}).then(function(res){\r\n\t\t\tif(res && res.data){\r\n\t\t\t\tsuccess(res.data);\r\n\t\t\t} else {\r\n\t\t\t\tfailure(\"Failed\", \"Unable to get tickets, technical error. Please contact to administrator.\");\r\n\t\t\t}\r\n\t\t}, function(err){\r\n\t\t\t//failure(\"Failed\", \"Unable to get tickets, technical error. Please contact to administrator.\");\r\n\t\t})\r\n\t}\r\n\r\n\t//https://test.mymobiforce.com/activityapi/api/Activity/CreateActivity\r\n\tthis.TicketFollowUp = function(data,token, loggedInUser,success,failure){\r\n\t\tvar url = ActivityURL + '/api/Activity/CreateActivity';\r\n\t\treturn $http.post(url,data,{\r\n\t\t\theaders:{'Content-Type':'application/json','Token':token, 'UserId': loggedInUser}\r\n\t\t}).then(success, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n\t}\r\n\r\n\tthis.ReopenTicket = function (data, token,loggedInUser,success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUser\r\n }\r\n }).then(success, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n\t//https://test.mymobiforce.com/coreapi/api/TatRepository/GetByTemplateNameForSelf?reqUserId=U370000000001&TemplateName=VSAT%20Troubleshooting\r\n\tthis.GetAllPrimaryReasonBasedOnTemplate = function(loggedInUser, templateName, token, success, failure){\r\n\t\tvar url = ApiURL+'/api/TatRepository/GetByTemplateNameForSelf?reqUserId='+ loggedInUser + '&TemplateName='+ templateName;\r\n\t\t$http.get(url,{\r\n\t\t\theaders:{'Content-Type':'application/json','Token':token, 'UserId': loggedInUser}\r\n\t\t}).then(function(resp){\r\n\t\t\tif (resp.status == 200 && resp.data) {\r\n\t\t\t\tsuccess(resp.data);\r\n\t\t\t}else{\r\n\t\t\t\tfailure(\"Failed\", \"Unable to get status, technical error.\");\r\n\t\t\t}\r\n\t\t}, function(err){\r\n\t\t\tfailure(\"Failed\", \"Unable to get status, technical error\");\r\n\t\t})\r\n\t}\r\n\r\n\tthis.getSecondaryReason = function(token, loggedInUser, templateName, primaryReason, success, failure){\r\n\t\tvar url = ApiURL + \"/api/TatRepository/GetByTemplateNamePrimaryReasonForSelf?reqUserId=\" + loggedInUser\r\n\t\t+\"&TemplateName=\" + templateName + \"&PrimaryReason=\" + primaryReason;\r\n\t\t$http.get(url,{\r\n\t\t\theaders:{'Content-Type':'application/json','Token':token, 'UserId': loggedInUser}\r\n\t\t}).then(function(resp){\r\n\t\t\tif (resp.status == 200 && resp.data) {\r\n\t\t\t\tsuccess(resp.data);\r\n\t\t\t}else{\r\n\t\t\t\tfailure(\"Failed\", \"Unable to get reasons, technical error.\");\r\n\t\t\t}\r\n\t\t}, function(err){\r\n\t\t\tfailure(\"Failed\", \"Unable to get reasons, technical error\");\r\n\t\t})\r\n\t}\r\n\r\n\tthis.updateTicketStatus = function(token, loggedinUser, ticketId, primaryReason,\r\n\t\tsecReason, comments, success, failure){\r\n\t\tvar url = ApiURL + \"/api/Ticket/UpdateTicketReasonStatus\";\r\n\t\t$http.put(url, {\r\n\t\t\t\"ReqUserId\": loggedinUser,\r\n\t\t\t\"TicketId\": ticketId,\r\n\t\t\t\"PrimaryReason\": primaryReason,\r\n\t\t\t\"SecondaryReason\": secReason,\r\n\t\t\t\"ReasonComment\":comments\r\n\t\t}, {\r\n\t\t\theaders:{'Content-Type':'application/json','Token':token, 'UserId': loggedinUser}\r\n\t\t}).then(function(res){\r\n\t\t\tif (res.status == 202) {\r\n\t\t\t\tsuccess();\r\n\t\t\t}else{\r\n\t\t\t\tfailure(\"Failed\", \"Unable to update status, technical error.\");\r\n\t\t\t}\r\n\t\t}, function(err){\r\n\t\t\tfailure(\"Failed\", \"Unable to update status, technical error.\");\r\n\t\t})\r\n\t}\r\n\r\n\r\n\r\n\tthis.searchCustomer = function(loggedinUser,token){\r\n\t\tvar url = ApiURL + '/api/Customer/search?reqUserId='+loggedinUser+'&input=';\r\n\t\treturn $http.get(url,{\r\n\t\t\theaders:{'Content-Type':'application/json', 'Token':token, 'UserId': loggedinUser}\r\n\t\t})\r\n\t}\r\n\r\n});\nangular.module('inspinia').controller('HelpDeskHomeController', function(toaster, HelpDeskHomeService, \r\n\t$state ,$localStorage, $scope, DTOptionsBuilder, DTColumnDefBuilder, PublicApiURL, $log, \r\n\tHelpDeskCustomerViewService, $uibModal, JobTicketViewService, $q,$timeout) {\r\n\tvm = this;\r\n\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvar UserSubRegion = $localStorage.loggedInUser_Region;\r\n\t\tvar token = $localStorage.token;\r\n\t\tvar isData= false;\r\n\t\tvm.updateStatus = '';\r\n\t\tvm.showStatusFilter = true;\r\n\t\tvm.selectedReason = '';\r\n\t\tvm.comments ='';\r\n\t\tvm.searchText = '';\r\n\t\tvm.canceler = {};\r\n\t\tvm.completeFlag = true;\r\n\t\tvm.followup = '';\r\n\t\tvm.tickets=[];\r\n\t\tvm.TroubleshootTickets = [];\r\n\t\tvar creationDatefunc = $scope.$parent.$parent.main.AccountStartDate;\r\n \tvm.accountCreationDate = creationDatefunc();\r\n\r\n\t\tvm.searchUrl = PublicApiURL + '/api/CustomerJobCard/search?reqUserId='+loggedinUser+'&input=';\r\n\t\tif($localStorage.loggedInUser_SkillSet){\r\n\t\t\tvm.skills = $localStorage.loggedInUser_SkillSet.split(\",\");\r\n\t\t} else {\r\n\t\t\tvm.skills = [];\r\n\t\t}\r\n\r\n\t\tvm.templateName = {};\r\n\t\tvm.templateName[\"VSAT\"] = ['VSAT Troubleshooting'];\r\n\t\tvm.templateName[\"LeaseLine\"] = ['LeaseLine Troubleshooting'];\r\n\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.floatToInt = $scope.$parent.$parent.main.floatToInt;\r\n\t\tvm.confirmTagModal =$scope.$parent.$parent.main.confirmTagModal;\r\n\r\n\t\tvm.metrix = {\r\n\t\t\t\"TRBL\": {\r\n\t\t\t\t\"VSAT\": {\r\n\t\t\t\t\t\"New Jobs\":\"VSAT_TRBL_New_Jobs\",\r\n\t\t\t\t\t\"Total Jobs\":\"VSAT_TRBL_Total_Jobs\",\r\n\t\t\t\t\t\"Assigned Jobs\":\"VSAT_TRBL_Assigned_Jobs\",\r\n\t\t\t\t\t\"Completed Jobs\":\"VSAT_TRBL_Completed_Jobs\",\r\n\t\t\t\t\t\"Approved Jobs\":\"VSAT_TRBL_Approved_Jobs\",\r\n\t\t\t\t\t\"Rejected Jobs\":\"VSAT_TRBL_Rejected_Jobs\",\r\n\t\t\t\t\t\"Cancelled Jobs\":\"VSAT_TRBL_Cancelled_Jobs\",\r\n\t\t\t\t\t\"On Hold Jobs\":\"VSAT_TRBL_Hold_Jobs\",\r\n\t\t\t\t\t\"Open Jobs\":\"VSAT_TRBL_Open_Jobs\"\r\n\t\t\t\t},\r\n\t\t\t\t\"LeaseLine\": {\t\t\t\t\r\n\t\t\t\t\t\"New Jobs\":\"LEAS_TRBL_New_Jobs\",\r\n\t\t\t\t\t\"Total Jobs\":\"LEAS_TRBL_Total_Jobs\",\r\n\t\t\t\t\t\"Assigned Jobs\":\"LEAS_TRBL_Assigned_Jobs\",\r\n\t\t\t\t\t\"Completed Jobs\":\"LEAS_TRBL_Completed_Jobs\",\r\n\t\t\t\t\t\"Approved Jobs\":\"LEAS_TRBL_Approved_Jobs\",\r\n\t\t\t\t\t\"Rejected Jobs\":\"LEAS_TRBL_Rejected_Jobs\",\r\n\t\t\t\t\t\"Cancelled Jobs\":\"LEAS_TRBL_Cancelled_Jobs\",\r\n\t\t\t\t\t\"On Hold Jobs\":\"LEAS_TRBL_Hold_Jobs\",\r\n\t\t\t\t\t\"Open Jobs\":\"LEAS_TRBL_Open_Jobs\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t\"Field\":{\r\n\t\t\t\t\"VSAT\":{\r\n\t\t\t\t\t\"New Jobs\":\"VSAT_Field_New_Jobs\",\r\n\t\t\t\t\t\"Total Jobs\":\"VSAT_Field_Total_Jobs\",\r\n\t\t\t\t\t\"Assigned Jobs\":\"VSAT_Field_Assigned_Jobs\",\r\n\t\t\t\t\t\"Completed Jobs\":\"VSAT_Field_Completed_Jobs\",\r\n\t\t\t\t\t\"Approved Jobs\":\"VSAT_Field_Approved_Jobs\",\r\n\t\t\t\t\t\"Rejected Jobs\":\"VSAT_Field_Rejected_Jobs\",\r\n\t\t\t\t\t\"Cancelled Jobs\":\"VSAT_Field_Cancelled_Jobs\"\r\n\t\t\t\t},\r\n\t\t\t\t\"LeaseLine\":{\r\n\t\t\t\t\t\"New Jobs\":\"LEAS_Field_New_Jobs\",\r\n\t\t\t\t\t\"Total Jobs\":\"LEAS_Field_Total_Jobs\",\r\n\t\t\t\t\t\"Assigned Jobs\":\"LEAS_Field_Assigned_Jobs\",\r\n\t\t\t\t\t\"Completed Jobs\":\"LEAS_Field_Completed_Jobs\",\r\n\t\t\t\t\t\"Approved Jobs\":\"LEAS_Field_Approved_Jobs\",\r\n\t\t\t\t\t\"Rejected Jobs\":\"LEAS_Field_Rejected_Jobs\",\r\n\t\t\t\t\t\"Cancelled Jobs\":\"LEAS_Field_Cancelled_Jobs\"\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n\r\n\t\t var startDate = vm.accountCreationDate;\r\n\t\t//var startDate = moment(0).format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t// $scope.dates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n\t\t//$scope.dates = { startDate: moment(0), endDate: moment() };\r\n\t\t$scope.dates = { startDate: vm.accountCreationDate, endDate: moment() };\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')],\r\n\t\t\t'Till now': [vm.accountCreationDate, moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\tconsole.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.loadData();\r\n\t\t};\r\n\r\n////Follow Up Model\r\n vm.OpenFollowUpModel = function(ticketId) {\r\n vm.followup = '';\r\n vm.tickId = ticketId;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n // resolve : {\r\n // items : function(){\r\n // return {\r\n // TicketId:ticketId\r\n // };\r\n // }\r\n // },\r\n}); \r\n}\r\nvm.CloseFollowUpModel = function () {\r\n FollowUpModel.close();\r\n}\r\n\r\nvar ModalInstanceCtrlFollowUp = function($scope, $rootScope, $uibModalInstance) {\r\n\r\n vm.updateFollowUpStatus = function(){\r\n var data = {};\r\n data = {\r\n\r\n \t \"userId\": loggedinUser,\r\n\t\t\t \"dateTime\": \"\",\r\n\t\t\t \"activity\": vm.followup,\r\n\t\t\t \"action\": \"FOLLOW_UP\",\r\n\t\t\t \"userName\": \"\",\r\n\t\t\t \"ticketId\": vm.tickId,\r\n\t\t\t \"primaryReason\": \"\",\r\n\t\t\t \"SecondryReason\": \"\",\r\n\t\t\t \"ReasonComment\": \"\"\r\n }\r\n\r\n // $log.log('Com',data);\r\n vm.CloseFollowUpModel();\r\n HelpDeskHomeService.TicketFollowUp(data, token, loggedinUser, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n $state.go(\"index.HelpDesk_Home\", {\r\n reload: true\r\n })}, 100);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n}\r\n\r\n\r\n \r\n\r\n \t\tvm.ReopenTicket = function(linkId,ticketId){\r\n \t\t\tif (linkId!=null || linkId !='') {\r\n \t\t\t\tvm.confirmTagModal(\"Do you want to Reopen Ticket-\"+linkId+\"?\",function(){\r\n \t\t\t\t\tvar data = {};\r\n\t\t\t\t\t data = {\r\n\t\t\t\t\t \"ReqUserId\": loggedinUser,\r\n\t\t\t\t\t \"TicketId\": ticketId,\r\n\t\t\t\t\t \"Status\": \"New\",\r\n\t\t\t\t\t \"TechnicianRating\": '',\r\n\t\t\t\t\t \"CompletionRemark\": ''\r\n\t\t\t\t\t }\r\n\r\n\t\t\t\t\t\tHelpDeskHomeService.ReopenTicket(data,token,loggedinUser,function(res){\r\n\t\t\t\t\t\t\tif (res && res.status == 202) {\r\n\t\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Ticket Reopen successfully\");\r\n\t\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t \t\t$state.reload();\r\n\t\t\t\t\t \t\t}, 2000);\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t}else if (res && res.data && res.data.Message) {\r\n\t\t\t\t\t vm.showFailure(\"Failed\", res.data.Message);\r\n\t\t\t\t\t }else {\r\n\t\t\t\t\t vm.showFailure(\"Failed\", \"Unable to reopen ticket. Server is not responding correctly.\");\r\n\t\t\t\t\t }\r\n\t\t\t\t\t\t},vm.showFailure)\t\t\t\t \r\n\t\t\t\t\t \t\t\t\t})\t\r\n\t\t\t\t\t \t\t\t}\r\n \t\t\t\t\r\n \t\t}\r\n\r\n\r\n\r\n\t\tvm.getAllTickets = function(templateName, ticketType, status,sk){\r\n\t\t\t// console.log('vm.canceler',vm.canceler);\r\n\t\t\tif(vm.canceler[ticketType+sk]){\r\n\t\t\t\tvm.canceler[ticketType+sk].resolve();\r\n\t\t\t}\r\n\r\n\t\t\tvm.canceler[ticketType+sk] = $q.defer();\t\t\t\r\n\t\t\tUserSubRegion = '';\r\n\t\t\tHelpDeskHomeService.getAllTickets(loggedinUser, token, startDate, endDate, templateName, UserSubRegion, status,vm.completeFlag, function(data) {\t\t\t\t\r\n\t\t\t\tif(!angular.equals(vm.tickets[ticketType], data)){\r\n\t\t\t\t\tvm.tickets[ticketType] = data;\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure, vm.canceler[ticketType+sk]);\r\n\t\t\t//vm.DiffTickets();\r\n\t\t}\r\n\r\n\t\t// vm.DiffTickets = function(){\r\n\t\t// if (vm.tickets.length>0) {\r\n\t\t// \tfor(var i=0; i0; i++){\r\n\t\t// \t\tif (vm.tickets[i].Template == 'LeaseLine Troubleshooting' || vm.tickets[i].Template == 'VSAT Troubleshooting') {\r\n\t\t// \t\t\t\tvm.TroubleshootTickets.push(vm.tickets[i]);\t\r\n\t\t// \t\t}\r\n\t\t\t\t\r\n\t\t// \t}\r\n\t\t// \t$log.log('vm.TroubleshootTickets',vm.TroubleshootTickets);\r\n\t\t// }\r\n\t\t// }\r\n\r\n\t\tvm.getSearchBox = function(){\r\n\t\t\tvm.searchBoxHtml = '
';\r\n\t\t}\r\n\t\tvm.getSearchBox();\r\n\r\n\t\tvm.searchCustomer = function(e){\r\n\t\t\tif(e && e.originalObject && e.originalObject.CustomerLocationId){\r\n\t\t\t\t$state.go('index.HelpDesk_Customer_View',{\r\n\t\t\t\t\tcust_loc_id:e.originalObject.CustomerLocationId,\r\n\t\t\t\t\treload:true\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\t\t\r\n\r\n\t\t// vm.getTicketCounts = function(){\r\n\t\t// \tvm.jobcount = {};\r\n\t\t// \tHelpDeskCustomerViewService.getTicketCounts(loggedinUser, token, 'Range('+startDate+'|'+endDate+')', '', '', function(data){\r\n\t\t// \t\tif(data && data.length>0){\r\n\t\t// \t\t\tangular.forEach(data, function(d){\r\n\t\t// \t\t\t\tvm.jobcount[d.DisplayName] = d.Value;\r\n\t\t// \t\t\t});\r\n\t\t// \t\t}\r\n\t\t// \t}, vm.showFailure)\r\n\t\t// }\r\n\r\n\t\tvm.loadMetrix = function(ticketType,skill){\r\n\t\t\tvm.jobcount = vm.jobcount || {};\r\n\t\t\tvm.ticketType = ticketType;\r\n\t\t\t//$log.log('vm.metrix',vm.metrix[ticketType][skill])\r\n\t\t\tangular.forEach(vm.metrix[ticketType][skill], function(m, displayName){\r\n\t\t\t\tHelpDeskCustomerViewService.getTicketCountsWithSkill(loggedinUser, token, m,\r\n\t\t\t\t\t'Range('+startDate+'|'+endDate+')', '', '',isData, function(d){\r\n\t\t\t\t\t\tif(d && d.Value){\r\n\t\t\t\t\t\t\tvm.jobcount[displayName] = d.Value;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvm.jobcount[displayName] = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, vm.showFailure);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.getAllTicketsBySkill = function(status,flag){\r\n\t\t\tvm.completeFlag = flag;\r\n\t\t\tif (status == '') {\r\n\t\t\t\tvm.showStatusFilter = true;\r\n\t\t\t}else{\r\n\t\t\t\tvm.showStatusFilter = false;\r\n\t\t\t}\r\n\t\t\tif(vm.skills.length==1){\t\t\t\t\r\n\t\t\t\tif(vm.skills[0] == \"VSAT\"){\r\n\t\t\t\t\tvm.getAllTickets(\"VSAT Troubleshooting\", \"TroubleshootingTicket\", status,\"vhelpdesk\");\r\n\t\t\t\t\tvm.getAllTickets(\"VSAT CCR\", \"FieldTicket\", status,\"vfield\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.getAllTickets(\"LeaseLine Troubleshooting\", \"TroubleshootingTicket\", status,\"lhelpdesk\");\r\n\t\t\t\t\tvm.getAllTickets(\"LeaseLine CCR\", \"FieldTicket\", status,\"lfield\");\r\n\t\t\t\t}\r\n\t\t\t}else {\r\n\t\t\t\tvm.getAllTickets(\"VSAT Troubleshooting\", \"TroubleshootingTicket\", status,\"vhelpdesk\");\r\n\t\t\t\tvm.getAllTickets(\"VSAT CCR\", \"FieldTicket\", status,\"vfield\");\r\n\t\t\t\tvm.getAllTickets(\"LeaseLine Troubleshooting\", \"TroubleshootingTicket1\", status,\"lhelpdesk\");\r\n\t\t\t\tvm.getAllTickets(\"LeaseLine CCR\", \"FieldTicket1\", status,\"lfield\");\r\n\t\t\t\t\r\n\r\n\t }\t\t\t\r\n\r\n\t\t}\r\n\r\n\t\tvm.loadData = function(){\r\n\t\t\tvm.getAllTicketsBySkill(\"\",true);\r\n\t\t\tvm.loadMetrix(\"TRBL\",vm.skills[0]);\t\t\r\n\t\t\t// vm.getTicketCounts();\r\n\t\t}\r\n\t\tvm.loadData();\r\n\r\n\t\tvm.getJobAllStatus = function () {\r\n\t\t\tJobTicketViewService.getJobAllStatus(loggedinUser, token, function (data) {\r\n\t\t\t\tvm.statusList = data;\r\n\t\t\t\tvm.statusList.unshift({\"StatusName\":\"All Job Status\"});\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.getJobAllStatus();\r\n\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.dtInstance1 = {};\r\n\t\tvm.dtInstance2 = {};\r\n\t\tvm.dtInstance3 = {};\r\n\r\n\t\tvm.searchTable = function () {\r\n\t\t\t// vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n\t\t\t// vm.dtInstance1.DataTable.search(vm.searchText).draw();\r\n\r\n\t\t\tvar s = \"\";\r\n\t\t\ts += vm.searchText.length > 0 ? \" \" + vm.searchText : \"\";\r\n\t\t\ts += (vm.searchStatusText.length > 0 && vm.searchStatusText!='All Job Status') ? \" \" + vm.searchStatusText : \"\";\r\n\t\t\tvm.dtInstance.DataTable.search(s).draw();\r\n\t\t\tvm.dtInstance1.DataTable.search(s).draw();\r\n\t\t\tvm.dtInstance2.DataTable.search(s).draw();\r\n\t\t\tvm.dtInstance3.DataTable.search(s).draw();\r\n\t\t};\r\n\r\n\t\tformat = function(ticket){\r\n\t\t\tvar rowHtml = ''+\r\n\t\t\t''+\r\n\t\t\t''+\r\n\t\t\t''+\r\n\t\t\t'';\r\n\t\t\tif(ticket.TicketStatus==\"On Hold\"){\r\n\t\t\t\trowHtml+=''+\r\n\t\t\t\t''+\r\n\t\t\t\t''+\r\n\t\t\t\t'';\r\n\t\t\t}else if(ticket.TicketStatus == \"Completed\"){\r\n\t\t\t\trowHtml+=''+\r\n\t\t\t\t''+\r\n\t\t\t\t''+\r\n\t\t\t\t''\r\n\t\t\t}\r\n\t\t\trowHtml+='
Location:'+ticket.Address1+\", \"+ticket.Address2+\", \"+ticket.City+\", \"+ticket.Circle+\", Pincode: \"+parseInt(ticket.Pincode)+'
On Hold Reason:'+ticket.PrimaryReason+\" - \"+ticket.SecondaryReason+'
Completion Remarks:' + ticket.CompletionRemark+'
';\r\n\t\t\treturn rowHtml;\r\n\t\t}\r\n\r\n\t\tvm.showDetailCols = function(dtInstance, $event, ticket){\r\n\t\t\tvar tr = angular.element($event.currentTarget).closest(\"tr\");\r\n\t\t\tvar row = dtInstance.DataTable.row( tr );\r\n\t\t\tif ( row.child.isShown() ) {\r\n\t\t\t // This row is already open - close it\r\n\t\t\t row.child.hide();\r\n\t\t\t tr.removeClass('shown');\r\n\t\t\t} else {\r\n\t\t // Open this row\r\n\t\t row.child( format(ticket) ).show();\r\n\t\t tr.addClass('shown');\r\n\t\t }\r\n\t\t}\r\n\r\n\t\tvm.stateLoadCallback = function (settings) {\r\n\t\t\tvar state = JSON.parse(localStorage.getItem('DataTables_' + settings.sInstance));\r\n\t\t\tif (state) {\r\n\t\t\t\tstate.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n\t\t\t\tif(state.columns && state.columns.length>0){\r\n\t\t\t\t\tstate.columns[9].visible=false;\r\n\t\t\t\t\tstate.columns[12].visible=false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn state;\r\n\t\t}\r\n\r\n\t\tvm.stateSaveCallback = function (settings, data) {\r\n\t\t\tif(data.columns && data.columns.length>0){\r\n\t\t\t\t//$log.log('data',data.columns);\r\n\t\t\t\tvm.slaVis = data.columns[9].visible;\r\n\t\t\t\tvm.tatVis = data.columns[10].visible;\r\n\t\t\t}\r\n\r\n\t\t\tlocalStorage.setItem('DataTables_' + settings.sInstance, JSON.stringify(data))\r\n\t\t}\r\n\r\n\t\t//Update Resons\r\n\t\tvm.openUpdateStatusModel = function(ticket) {\r\n\t\t\tvm.statusModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'statusModal.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t}); \r\n\t\t\tvm.selectedTicketId = ticket.TicketId;\r\n\t\t\tvm.selectedTemplate = ticket.Template;\r\n\t\t\tvm.updateStatus = ticket.PrimaryReason;\r\n\t\t\tvm.selectedReason = ticket.SecondaryReason;\r\n\t\t\tvm.GetAllPrimaryReasonBasedOnTemplate();\r\n\t\t\tvm.getSecondaryReason(vm.updateStatus);\r\n\t\t}\r\n\t\tvm.CloseUpdateStatusModel = function () {\r\n\t\t\tvm.statusModal.close();\r\n\t\t}\r\n\t\tvm.GetAllPrimaryReasonBasedOnTemplate = function() {\r\n\t\t\t\r\n\t\t\tHelpDeskHomeService.GetAllPrimaryReasonBasedOnTemplate(loggedinUser, vm.selectedTemplate,\r\n\t\t\t\ttoken, function(data){\r\n\t\t\t\t\tvm.TotalReasonList = data;\r\n\t\t\t\t\tvm.filterData();\r\n\t\t\t\t}, vm.showFailure);\r\n\r\n\r\n\t\t}\r\n\r\n\t\tvm.filterData = function(){\r\n\t\t\tvm.PrimaryReasonList = [];\r\n\t\t\tfor(var i=0; ilTfgitp')\r\n\t\t.withButtons([{extend:'colvis'},{extend:'csv'}])\r\n\t\t.withOption('stateSave', true)\r\n\t\t.withOption('stateSaveCallback', vm.stateSaveCallback)\r\n\t\t.withOption('stateLoadCallback', vm.stateLoadCallback)\r\n\t\t.withPaginationType('full_numbers')\r\n\t\t.withOption('lengthChange', false)\r\n\t\t.withOption('order', [0, 'desc']);\r\n\r\n\t\tvm.dtColumnDefs = [\r\n\t\tDTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n\t\t//DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n\t\t//DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n\t\t//DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n\t\t// DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n\t\tDTColumnDefBuilder.newColumnDef(9).notSortable()\r\n\t\t// DTColumnDefBuilder.newColumnDef(10).notSortable()\r\n\t\t// DTColumnDefBuilder.newColumnDef(11).notSortable()\r\n\t\t// DTColumnDefBuilder.newColumnDef(12).notSortable()\r\n\t\t// DTColumnDefBuilder.newColumnDef(13).notSortable()\r\n\t\t];\r\n\r\n\t\tvm.editJobAppointment = function (ticket) {\r\n\t\t\tvm.TicketInfoEdit = ticket;\r\n\t\t\t//$log.log(ticket);\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAppointment.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\tHelpDeskCustomerViewService.getServiceGST(loggedinUser, ticket.SkillSet, token, function(data){\r\n\t\t\t\tvm.grossRate = data;\r\n\t\t\t}, vm.showFailure)\r\n\t\t}\r\n\r\n\t\tvm.closeJobAppointment = function () {\r\n\t\t\tvm.jobAppointmentModal.close();\r\n\t\t}\r\n\r\n\t\tvm.createFieldTicket = function(ticket) {\r\n\t\t\tvm.jobAppointmentForm.submitted = true;\r\n\t\t\tif(vm.jobAppointmentForm.$valid){\r\n\t\t\t\tticket.Template = ticket.Template.indexOf(\"VSAT\")>=0?\"VSAT CCR\":\"LeaseLine CCR\";\r\n\t\t\t\tticket.JobDescription = ticket.Template;\r\n\t\t\t\tticket.TemplateModel = null;\r\n\t\t\t\tticket.MobiforceCommissionPercentage = vm.grossRate;\r\n\t\t\t\tticket.BroadcastGrossRate = ticket.BroadcastRate * (1+vm.grossRate/100);\r\n\t\t\t\tticket.LinkId = ticket.TicketId;\r\n\t\t\t\tticket.TicketId = null;\r\n\t\t\t\tticket.UniqueOne = ticket.VSATID;\r\n\t\t\t\tticket.UniqueTwo = ticket.VSATIP;\r\n\t\t\t\tticket.TicketStatus = 'New'\r\n\t\t\t\tticket.ConsumerContactNumber = ticket.ConsumerContact;\r\n\t\t\t\t//$log.log(ticket);\r\n\t\t\t\tHelpDeskCustomerViewService.createTicket(loggedinUser, ticket, token, function(data){\r\n\t\t\t\t\tvm.showSuccess(\"Sucess\", \"Field ticket created successfully.\");\r\n\t\t\t\t\t$timeout(vm.loadData, 2000);\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t\tvm.jobAppointmentModal.close();\r\n\t\t\t} else {\r\n\t\t\t\t//$log.log(\"invalid\", vm.jobAppointmentForm);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\nangular.module('inspinia').service('HardwareDetailsService', function (ApiURL, $log, $http, $localStorage, ActivityURL, LocationURL, PublicApiURL){\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/HardwareReplacement/GetAllByTicketIdOnSer?reqUserId=U360000000016&TicketId=T0000056575\r\n this.GetAllHWDetail = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/HardwareReplacement/GetAllByTicketIdOnSer?reqUserId=' +loggedInUserId+ '&TicketId='+ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n})\nangular.module('inspinia').controller('HardwareDetailsController', function (HardwareDetailsService, $q, $compile, UIURL, $window, DTOptionsBuilder, DTColumnBuilder, $stateParams, $scope, $log, ImageUrl, $localStorage, $state){\r\n \r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n \r\n var vm = this;\r\n vm.TicketId = $stateParams.ticketId;\r\n // vm.TicketId = 'T0000056575';\r\n vm.dtInstance = {};\r\n\r\n // function GetAllHWDetail(){\r\n // HardwareDetailsService.GetAllHWDetail(loggedinUser, vm.TicketId, token).then(function(resp){\r\n // vm.HWDetailList = resp.data;\r\n // debugger\r\n // })\r\n // }\r\n // GetAllHWDetail();\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n HardwareDetailsService.GetAllHWDetail(loggedinUser, vm.TicketId, token).then(function (resp) {\r\n vm.HWDetailList = resp.data;\r\n defer.resolve(vm.HWDetailList);\r\n })\r\n return defer.promise;\r\n \r\n }).withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [0, 'desc'])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n \r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle('New Hardware Image').renderWith(function(data, type, full, meta){\r\n if(data.NewHardwarePhoto == null){\r\n var address = \"assets/images/patterns/photo1.png\";\r\n }else{\r\n address= data.NewHardwarePhoto;\r\n }\r\n // style=\"border-radius: 50%\"\r\n \r\n return '' +\r\n '\"image-1\"' +\r\n '';\r\n // '';\r\n \r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Hardware Type').renderWith(function(data, type, full, meta){\r\n var temp = 'font-bold text-black';\r\n return \"\" + data.Category + \"\";\r\n \r\n }),\r\n DTColumnBuilder.newColumn('NewName').withTitle('New Hardware Part Name').renderWith(function(data){\r\n var accStatus = 'font-bold label_default';\r\n return \"\" + data + \"\";\r\n }),\r\n DTColumnBuilder.newColumn('NewSerialNumber').withTitle('New Hardware Serial No.').renderWith(function(data){\r\n var temp = 'font-bold label_default';\r\n return \"\" + data + \"\";\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Old Hardware Image').renderWith(function(data){\r\n if(data.OldHardwarePhoto == null){\r\n var address = \"assets/images/patterns/photo1.png\";\r\n }else{\r\n address= data.OldHardwarePhoto;\r\n }\r\n // style=\"border-radius: 50%\"\r\n return '' +\r\n '\"image-1\"' +\r\n ''; \r\n \r\n }),\r\n DTColumnBuilder.newColumn('OldName').withTitle('Old Hardware Part Name').renderWith(function(data){\r\n var temp = 'font-bold label_default';\r\n return \"\" + data + \"\";\r\n }),\r\n DTColumnBuilder.newColumn('OldSerialNumber').withTitle('Old Hardware Serial No.').renderWith(function(data){\r\n var temp = 'font-bold label_default';\r\n return \"\" + data + \"\";\r\n })\r\n ];\r\n\r\n\r\n vm.getProfilePic = function (pic) {\r\n return ImageUrl + \"/\" + pic;\r\n }\r\n})\nangular.module('inspinia').service('FreelancerFixedService',function(ApiURL, LocationURL,$http, FreelancerURL){\r\n\r\n\t//http://192.168.0.80:92/CoreAPI/api/Ticket/new/byStatus?reqUserId=kanika.bansal%40innotiontech.com\r\n\tthis.GetTicketsByStatus = function (status,loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/'+status+'/byStatus?reqUserId='+loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n //Get all freelancers\r\n//http://192.168.0.80:92/FreelancerAPI/api/FreeLancerUser/kanika.bansal%40innotiontech.com/GetAllUsers\r\n this.GetAllFreelancers = function (loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/'+loggedinUser+'/GetAllUsers';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/FreeLancerUser/Kanika.bansal%40innotiontech.com/GetAllFreLancerWithFilters?itemNames=UserStatus%2CRole&itemValues=Active%2CField%20Engineer\r\n this.GetAllFreelancersWithFilters = function (loggedinUser,itemNames,itemValues, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/'+loggedinUser+'/GetAllFreLancerWithFilters?itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/User/Kanika/byReportingToWithJobCount?reqUserId=kanika.bansal%40innotiontech.com\r\n this.GetTicketsById = function (ticketId,loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/'+ticketId+'/'+loggedinUser+'/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n this.GetAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token}\r\n });\r\n }\r\n\r\n this.GetAllCircles = function(loggedinUser){\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllCircles'\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json'}\r\n })\r\n }\r\n\r\n //Get Tickets by filter\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/kanika.bansal%40innotiontech.com/TicketStatus/Broadcasted/GetTicketsByUser\r\n//https://test.mymobiforce.com/coreapi/api/Ticket/reqUserId/GetTicketsForAssignation?itemNames=itemNames&itemValues=itemValues\r\n\r\n this.GetTicketsByFilter = function(loggedinUser,itemNames,itemValues, token){\r\n var url = ApiURL + '/api/Ticket/' + loggedinUser + '/GetTicketsForAssignation?itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token}\r\n })\r\n }\r\n\r\n //Get Users By Filter\r\n\r\n //\r\n // http://192.168.0.80:92/CoreAPI/api/User/kanika.bansal%40innotiontech.com/UserStatus/Active/getusersbyfilters\r\n this.GetUsersByFilter = function(loggedinUser,itemNames,itemValues, token){\r\n var url = ApiURL + '/api/User/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getusersbyfilters'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token}\r\n })\r\n }\r\n\r\n //Assign Tickets\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/ass/asd/asd/AssignTicket\r\n this.AssignTickets = function(userId,loggedinUser,ticketList, token){\r\n var TicketId = ticketList.split(',');\r\n\r\n var url = ApiURL + '/api/Ticket/' + userId + '/' + loggedinUser + '/AssignTicket'\r\n return $http.put(url,TicketId, {\r\n headers:{'Content-Type':'application/json','Token':token\r\n }\r\n })\r\n }\r\n\r\n\r\n // Bid Recieved Api\r\n // http://192.168.0.80:92/FreelancerAPI/api/BID/T0000000039/Received/kanika.bansal@innotiontech.com/byStatus\r\n this.GetBidReceivedByStatus = function(loggedinUser,ticketId,status, token){\r\n var url = FreelancerURL + '/api/BID/' + ticketId + '/' + status + '/' + loggedinUser + '/byStatus'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token}\r\n })\r\n }\r\n\r\n this.GetBidSentByStatus = function(loggedinUser,ticketId,token){\r\n var url = FreelancerURL + '/api/BID/' + ticketId + '/' + loggedinUser + '/byjobid'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token}\r\n })\r\n }\r\n // GetBidSentByStatus\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/akshit.chauhan%40innotiontech.com/TicketStatus/Broadcasted/getjobsbyfilter\r\n this.GetBroadcastedBids = function (loggedinUser, itemNames,itemValues, token) {\r\n var url = FreelancerURL + '/api/BID/'+loggedinUser+'/' + itemNames + '/'+ itemValues + '/getjobsbyfilter';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n //Assign Bids\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/kanika.bansal%40innotiontech.com/T0000000040/pri/acceptBIDAssignJob?jobAssignRate=100&jobAssignGrossRate=0\r\nthis.AssignReceivedBid = function (loggedinUser, ticketId, userId, token) {\r\n var url = FreelancerURL + '/api/BID/'+loggedinUser+'/' + ticketId + '/' + userId + '/acceptBIDAssignJob';\r\n return $http.put(url,{}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n //BroadCast Jobs/Bids\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/createbidforselectedteam?reqUserId=asdasd\r\n\r\n this.BroadCastJobs = function(loggedinUser,data, token){\r\n var url = FreelancerURL + '/api/BID/createbidforselectedteam?reqUserId=' + loggedinUser;\r\n return $http.post(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n //Get Users By Role\r\n//http://115.124.122.225/coreapi/api/User/Supervisor/byRole?reqUserId=satyendratiwari124%40gmail.com\r\n//http://192.168.0.80:92/CoreAPI/api/User/Supervisor/SkillSet/AC%20Repair/byRole?reqUserId=Kanika.bansal%40innotiontech.com\r\n this.GetUsersByRole = function (loggedinUser, role, itemNames,itemValues, token) {\r\n var url = ApiURL + '/api/User/'+role+ '/' + itemNames+ '/'+ itemValues+'/byRole?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n //Get All Vendor\r\n //http://192.168.0.80:92/CoreAPI/api/Vendor/kanika.bansal%40innotiontech.com/getallvendors\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/Vendor/Kanika.bansal%40innotiontech.com/VendorLocations/Maharashtra/getvendorsbyfilters\r\n this.GetAllVendors = function (loggedinUser,itemNames,itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/'+ loggedinUser + '/' + itemNames + '/' +itemValues+ '/getvendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetFreelancerVendorsByFilters = function (loggedinUser,itemNames,itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/'+ loggedinUser + '/' + itemNames + '/' +itemValues+ '/getfreelancervendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n // https://perf.mymobiforce.com/coreapi/api/Vendor/U350000000001/VendorStatus/Active/getfixedvendorsbyfilters\r\n this.GetFixedVendorsByFilters = function (loggedinUser,itemNames,itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/'+ loggedinUser + '/' + itemNames + '/' +itemValues+ '/getfixedvendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/ankur.sharma%40innotiontech.com/byUserId?reqUserId=akshit.chauhan%40innotiontech.com\r\n\r\n this.GetTicketsByUserId = function(loggedinUser,UserId, token){\r\n var url = ApiURL + '/api/Ticket/' + UserId + '/byUserId?reqUserId=' + loggedinUser;\r\n return $http.get(url,{\r\n headers:{\r\n 'Content-Type': 'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/freelancerapi/api/BID/CreateRoutingBid?reqUserId=U350000000001\r\n this.RouteJobsforUser = function(loggedinUser,data, token){\r\n var url = FreelancerURL + '/api/BID/CreateRoutingBid?reqUserId=' + loggedinUser;\r\n return $http.post(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token\r\n }\r\n });\r\n }\r\n\r\n\r\n});\nangular.module('inspinia').controller('FreelancerFixedController', function (FreelancerFixedService,ScheduleAssignService, $log, $state, $localStorage, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, uiCalendarConfig, ImageUrl) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserSkill = $localStorage.loggedInUser_SkillSet;\r\n var loggedinUserRegion = $localStorage.loggedInUser_Region;\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n var token = $localStorage.token;\r\n\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.MobiforceCommission = vm.getAccountConfigSetting('MobiforceCommissionPercentage');\r\n vm.VendorAssignation = vm.getAccountConfigSetting('VendorAssignation');\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.FreelancerAccess = vm.getAccountConfigSetting('FreelancerAccess');\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n vm.TeamStatus = '';\r\n vm.NewJobs = [];\r\n vm.BroadcastedJobs = '';\r\n vm.JobProfile = '';\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.loggedinAs = $localStorage.loggedinAs;\r\n vm.skillsSearch = '';\r\n vm.locationSearch = '';\r\n vm.skillData = '';\r\n vm.circleData = '';\r\n vm.checkAll = '';\r\n vm.fixedUsers = '';\r\n vm.isChecked = \"fixed\";\r\n vm.freelancerUsers = '';\r\n vm.FreelancerVendorUsers = [];\r\n vm.VendorUsers = '';\r\n vm.selectedJob = '';\r\n vm.newJobselectAny = '';\r\n vm.fixed_selectAll = '';\r\n vm.searchText = \"\";\r\n vm.tab = '';\r\n vm.freelancerCheckAny = '';\r\n vm.filteredProperties = {};\r\n vm.filteredFreelancer = {};\r\n var GrossRate = 1.18;\r\n vm.selectsinglebidJob = '';\r\n vm.jobselected = [];\r\n vm.freelancer_selectAll = '';\r\n vm.supervisorList = '';\r\n vm.vendorList = [];\r\n vm.eventSources = [];\r\n vm.uiConfig = {};\r\n vm.AvailableUserData = '';\r\n vm.events = [];\r\n vm.UserAvailabilityData = '';\r\n // $log.log('vm.VendorAssignation',vm.VendorAssignation);\r\n\r\n var date = new Date();\r\n var d = date.getDate();\r\n var m = date.getMonth();\r\n var y = date.getFullYear();\r\n \r\n //$scope.$parent.$parent.main.implementSelectItems('freelancerUsers', this);\r\n //$scope.$parent.$parent.main.implementSelectItems('VendorUsers', this);\r\n\r\n //$log.log('vm.loggedinAs', vm.loggedinAs);\r\n\r\n vm.eventsF = function (start, end, timezone, callback) {\r\n var s = new Date(start).getTime() / 1000;\r\n var e = new Date(end).getTime() / 1000;\r\n var m = new Date(start).getMonth();\r\n var events = [{\r\n title: 'Feed Me ' + m,\r\n start: s + (50000),\r\n end: s + (100000),\r\n allDay: false,\r\n className: ['customFeed']\r\n }];\r\n callback(events);\r\n };\r\n\r\n /* alert on dayClick */\r\n vm.ev = {};\r\n vm.alertOnDayClick = function (date) {\r\n vm.alertMessage = (date.toString());\r\n vm.ev = {\r\n from: date.format('YYYY-MM-DD'),\r\n to: date.format('YYYY-MM-DD'),\r\n title: '',\r\n allDay: true\r\n };\r\n };\r\n\r\n /* alert on eventClick */\r\n vm.alertOnEventClick = function (date, jsEvent, view) {\r\n vm.alertMessage = (date.title);\r\n };\r\n /* alert on Drop */\r\n vm.alertOnDrop = function (event, delta, revertFunc, jsEvent, ui, view) {\r\n vm.alertMessage = ('Event Dropped to make dayDelta ' + delta);\r\n };\r\n /* alert on Resize */\r\n vm.alertOnResize = function (event, delta, revertFunc, jsEvent, ui, view) {\r\n vm.alertMessage = ('Event Resized to make dayDelta ' + delta);\r\n };\r\n /* add and removes an event source of choice */\r\n vm.addRemoveEventSource = function (sources, source) {\r\n var canAdd = 0;\r\n angular.forEach(sources, function (value, key) {\r\n if (sources[key] === source) {\r\n sources.splice(key, 1);\r\n canAdd = 1;\r\n }\r\n });\r\n if (canAdd === 0) {\r\n sources.push(source);\r\n }\r\n };\r\n /* add custom event*/\r\n vm.addEvent = function () {\r\n vm.events.push({\r\n title: $scope.ev.title,\r\n start: moment($scope.ev.from),\r\n end: moment($scope.ev.to),\r\n allDay: true,\r\n className: ['openSesame']\r\n });\r\n };\r\n /* remove event */\r\n /*$scope.remove = function (index) {\r\n $scope.events.splice(index, 1);\r\n };*/\r\n /* Change View */\r\n vm.changeView = function (view, calendar) {\r\n vm.currentView = view;\r\n uiCalendarConfig.calendars[calendar].fullCalendar('changeView', view);\r\n\r\n\r\n };\r\n /* Change View */\r\n vm.renderCalender = function (calendar) {\r\n $timeout(function () {\r\n if (uiCalendarConfig.calendars[calendar]) {\r\n uiCalendarConfig.calendars[calendar].fullCalendar('render');\r\n }\r\n });\r\n };\r\n /* Render Tooltip */\r\n $scope.eventRender = function (event, element, view) {\r\n element.attr({\r\n 'tooltip': event.title,\r\n 'uib-tooltip-append-to-body': true\r\n });\r\n $compile(element)($scope);\r\n };\r\n\r\n vm.currentView = 'month';\r\n\r\n /* config object */\r\n vm.uiConfig = {\r\n calendar: {\r\n height: 450,\r\n editable: false,\r\n displayEventTime: false,\r\n header: {\r\n left: 'title',\r\n center: 'myCustomButton',\r\n right: 'prev,next'\r\n },\r\n dayClick: vm.alertOnDayClick,\r\n eventClick: vm.alertOnEventClick,\r\n eventResize: vm.alertOnResize,\r\n eventRender: function (event, element, view) {\r\n element.attr({\r\n 'uib-tooltip': event.title,\r\n 'uib-tooltip-append-to-body': true\r\n });\r\n $compile(element)($scope);\r\n },\r\n businessHours: {\r\n start: '10:00', // a start time (10am in this example)\r\n end: '18:00', // an end time (6pm in this example)\r\n\r\n dow: [1, 2, 3, 4]\r\n // days of week. an array of zero-based day of week integers (0=Sunday)\r\n // (Monday-Thursday in this example)\r\n }\r\n }\r\n };\r\n\r\n vm.events = [];\r\n\r\n //$log.log('events', vm.events);\r\n\r\n /* event sources array*/\r\n vm.eventSources = [vm.events, vm.eventsF];\r\n // vm.eventSources2 = [vm.calEventsExt, vm.eventsF, vm.events];\r\n\r\n\r\n //Availablity\r\n vm.Availibility = function (data) {\r\n vm.showAvailability = true;\r\n vm.AvailableUserData = data;\r\n\r\n\r\n FreelancerFixedService.GetTicketsByUserId(loggedinUser, data.UserId, token).then(function (resp) {\r\n if (resp) {\r\n vm.UserAvailabilityData = resp.data;\r\n //$log.log('vm.UserAvailabilityData',vm.UserAvailabilityData);\r\n\r\n if (vm.events.length != 0) {\r\n vm.events.splice(vm.events);\r\n angular.forEach(vm.UserAvailabilityData, function (d) {\r\n if (d.TicketStatus == 'Assigned') {\r\n var Availibility = {};\r\n Availibility.title = d.JobType + ' TicketId:' + d.TicketId + ' CustomerName:' + d.CustomerName + ' TicketStatus:' + d.TicketStatus,\r\n Availibility.start = moment(d.AssignationDate, 'DD/MM/YYYY').format(\"YYYY-MM-DDTHH:mm:ssZ\");\r\n vm.events.push(Availibility);\r\n }\r\n })\r\n } else {\r\n angular.forEach(vm.UserAvailabilityData, function (d) {\r\n if (d.TicketStatus == 'Assigned') {\r\n var Availibility = {};\r\n Availibility.title = d.JobType + ' TicketId:' + d.TicketId + ' CustomerName:' + d.CustomerName + ' TicketStatus:' + d.TicketStatus,\r\n Availibility.start = moment(d.AssignationDate, 'DD/MM/YYYY').format(\"YYYY-MM-DDTHH:mm:ssZ\");\r\n vm.events.push(Availibility);\r\n } else {\r\n\r\n }\r\n })\r\n //$log.log('events',vm.events);\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n //Get new Jobs\r\n vm.GetNewJobs = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemName = \"Circle,SkillSet\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch;\r\n } else {\r\n var itemName = '';\r\n var itemValues = '';\r\n }\r\n\r\n if(loggedinUserSkill==\"VSAT\"){\r\n itemName+=\"Template\";\r\n itemValues+=\"VSAT CCR\";\r\n } else if(loggedinUserSkill==\"LeaseLine\"){\r\n itemName+=\"Template\";\r\n itemValues+=\"LeaseLine CCR\";\r\n }\r\n FreelancerFixedService.GetTicketsByFilter(loggedinUser, itemName, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.NewJobs = resp.data;\r\n\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n var today = moment();\r\n //var date = moment(\"2015-05-13\", \"YYYY-MM-DD\");\r\n var date2 = vm.NewJobs[index].CreationDate;//moment(vm.NewJobs[index].CreationDate,'DD/MM/YYYY').format(\"YYYY-MM-DD\");\r\n // date2 = new Date(date2);\r\n\r\n var duration = today.diff(date2, 'days');\r\n // var hours = today.diff(date2,'hours');\r\n vm.NewJobs[index].Age = duration;\r\n \r\n }\r\n vm.selectAllNewJob = false;\r\n vm.showMinusNewJob = false;\r\n if(vm.IsMaterialDelivered){\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n if(vm.NewJobs[index].MetrialDeliverStatus =='Delivered'){\r\n vm.NewJobs[index].IsDissablePermision = false;\r\n }else{\r\n vm.NewJobs[index].IsDissablePermision = true;\r\n }\r\n \r\n }\r\n }\r\n\r\n } else {\r\n vm.NewJobs = '';\r\n //$log.log('vm.NewJobs', 'List Empty')\r\n }\r\n }\r\n })\r\n }\r\n vm.GetRejectedJobs = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemName = \"Ticket Status,Circle,SkillSet\";\r\n var itemValues = 'Rejected' + ',' + vm.locationSearch + ',' + vm.skillsSearch;\r\n } else {\r\n var itemName = 'Ticket Status';\r\n var itemValues = 'Rejected';\r\n }\r\n FreelancerFixedService.GetTicketsByFilter(loggedinUser, itemName, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.NewJobs = resp.data;\r\n\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n var today = moment();\r\n //var date = moment(\"2015-05-13\", \"YYYY-MM-DD\");\r\n var date2 = vm.NewJobs[index].CreationDate;//moment(vm.NewJobs[index].CreationDate,'DD/MM/YYYY').format(\"YYYY-MM-DD\");\r\n // date2 = new Date(date2);\r\n\r\n var duration = today.diff(date2, 'days');\r\n // var hours = today.diff(date2,'hours');\r\n vm.NewJobs[index].Age = duration;\r\n }\r\n vm.selectAllNewJob = false;\r\n vm.showMinusNewJob = false;\r\n //$log.log('New TicketList',vm.NewJobs);\r\n\r\n } else {\r\n vm.NewJobs = '';\r\n //$log.log('vm.NewJobs', 'List Empty')\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n //Get all Active Fixed Users\r\n\r\n vm.GetAllActiveFixedUsers = function () {\r\n\r\n if (vm.loggedInUserRole == 'Administrator' || vm.loggedInUserRole == 'Project Manager' || vm.loggedinAs == 'Supervisor' || vm.loggedinAs == 'Vendor Supervisor' || vm.loggedInUserRole =='Help Desk') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n }\r\n if(vm.loggedInUserRole =='Help Desk') {\r\n itemNames+=\",SkillSet,SubRegion\";\r\n itemValues+=\",\"+loggedinUserSkill+\",\"+loggedinUserRegion;\r\n }\r\n\r\n FreelancerFixedService.GetUsersByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('vm.fixedUsers', vm.fixedUsers);\r\n preprocessData(vm.fixedUsers);\r\n }\r\n })\r\n } else if (vm.loggedInUserRole == 'Vendor Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n }\r\n\r\n FreelancerFixedService.GetUsersByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n preprocessData(vm.fixedUsers);\r\n }\r\n })\r\n }\r\n // else if (vm.loggedinAs == 'Vendor Supervisor') {\r\n // var itemNames = \"UserStatus,Role\";\r\n // var itemValues = \"Active,Field Engineer\";\r\n\r\n // FreelancerFixedService.GetUsersByFilter(loggedinUser,itemNames,itemValues).then(function(resp){\r\n // if (resp && resp.data) {\r\n // vm.supervisorList = resp.data;\r\n // //$log.log('vm.supervisorList',vm.supervisorList);\r\n\r\n // }\r\n // })\r\n // }\r\n }\r\n\r\n vm.loadAllSkills = function(){\r\n FreelancerFixedService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skillsWithPipe = '';\r\n if (resp && resp.data) {\r\n vm.skillData = resp.data;\r\n if(vm.skillData && vm.skillData.length>0){\r\n angular.forEach(vm.skillData, function(s){\r\n vm.skillsWithPipe += s.SkillName+\"|\";\r\n });\r\n vm.skillsWithPipe = vm.skillsWithPipe.length>0\r\n ? vm.skillsWithPipe.substring(0,vm.skillsWithPipe.length-1) : \"\";\r\n }\r\n }\r\n });\r\n }\r\n vm.loadAllSkills();\r\n\r\n //Get all Freelancers\r\n vm.GetAllFreelancers = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"UserStatus,Locations,SkillSet,Role\";\r\n var itemValues = \"Active\" + ',' + vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Field Engineer';\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n if(vm.skillsWithPipe && vm.skillsWithPipe.length>0){\r\n itemNames+=\",SkillSet\";\r\n itemValues+=\",\"+vm.skillsWithPipe;\r\n }\r\n }\r\n FreelancerFixedService.GetAllFreelancersWithFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n for(var i=0;i0){\r\n // itemNames+=\",SkillSet\";\r\n // itemValues+=\",\"+vm.skillsWithPipe;\r\n // }\r\n // }\r\n FreelancerFixedService.GetFreelancerVendorsByFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.FreelancerVendorUsers = resp.data;\r\n for(var i=0;i 0) {\r\n FreelancerFixedService.AssignTickets(userId, loggedinUser, itemValues, token).then(function (resp) {\r\n\r\n if (resp && resp.data && resp.data.ErrorCode == 140 && resp.data.Message) {\r\n if (mode == 'fixed') {\r\n vm.showFailure(\"Failed\", resp.data.Message + \". Please recharge your account.\");\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data.Message + \".\");\r\n }\r\n } else if (resp && resp.data) {\r\n\r\n vm.showSuccess(\"Success\", \"Ticket assigned successfully\");\r\n vm.selectedItems = [];\r\n\r\n if (mode == 'fixed') {\r\n var jobs = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (itemValues.split(\",\").indexOf(d.TicketId) >= 0) {\r\n //remove this job from display\r\n } else {\r\n jobs.push(d);\r\n }\r\n });\r\n vm.NewJobs = jobs;\r\n vm.selectAllNewJob = false;\r\n vm.showMinusNewJob = false;\r\n\r\n } else {\r\n $timeout(function () {\r\n vm.GetNewJobs();\r\n }, 500);\r\n }\r\n\r\n } else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n }\r\n\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs to assign\");\r\n }\r\n }\r\n\r\n //Get Broadcasted Jobs\r\n vm.GetBroadcastedJobs = function () {\r\n\r\n // FreelancerFixedService.GetTicketsByFilter(loggedinUser,\"Ticket Status\",\"Broadcasted\").then(function(resp){\r\n\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemName = \"Ticket Status,Circle,SkillSet\";\r\n var itemValues = 'Broadcasted' + ',' + vm.locationSearch + ',' + vm.skillsSearch;\r\n } else {\r\n var itemName = 'Ticket Status';\r\n var itemValues = 'Broadcasted';\r\n }\r\n\r\n FreelancerFixedService.GetBroadcastedBids(loggedinUser, itemName, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n for (var index = 0; index < vm.BroadcastedJobs.length; index++) {\r\n vm.time = vm.BroadcastedJobs[index].BIDDuration;\r\n //$log.log(\"BidDuration: \",vm.time);\r\n var hr = parseInt(vm.time / 60);\r\n var min = vm.time % 60;\r\n vm.BroadcastedJobs[index].BIDDuration = hr + \":\" + min;\r\n }\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n }\r\n\r\n vm.JobView = function (ticketId) {\r\n $localStorage.backToOldJobList = 'FreelancerFixedTeamAssign';\r\n $state.go('index.NewJobDetails1', {\r\n ticketId: ticketId\r\n })\r\n }\r\n\r\n vm.toggleAll = function () {\r\n //$log.log('checkAll', vm.checkAll);\r\n var bool = true;\r\n if (vm.checkAll) {\r\n bool = false;\r\n }\r\n angular.forEach(vm.NewJobs, function (v, k) {\r\n // //$log.log('v',v);\r\n // //$log.log('k',k);\r\n v.checked = !bool;\r\n // //$log.log('!bool', v.checked);\r\n vm.checkAll = !bool;\r\n });\r\n }\r\n\r\n vm.checkAny = function (i) {\r\n //$log.log('newJobselectAny', vm.newJobselectAny);\r\n vm.checkAll = true;\r\n angular.forEach(vm.NewJobs, function (v, k) {\r\n\r\n if (!v.checked) {\r\n vm.checkAll = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n vm.showCheckAny = function (i) {\r\n vm.showMinus = true;\r\n angular.forEach(vm.freelancerCheckAny, function (v, k) {\r\n if (v != true && k == vm.freelancerCheckAny[i]) {\r\n vm.showMinus = false;\r\n } else {\r\n vm.showMinus = true;\r\n }\r\n });\r\n }\r\n\r\n vm.GetTicketById = function (ticketId) {\r\n FreelancerFixedService.GetTicketsById(ticketId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.JobProfile = resp.data;\r\n }\r\n })\r\n }\r\n\r\n //Advance Search\r\n vm.SearchModal = {};\r\n vm.AdvanceSearch = function () {\r\n vm.SearchModal = $uibModal.open({\r\n templateUrl: 'AssignFilter.html',\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n //Load All Skills\r\n if (vm.skillData.length==0) {\r\n FreelancerFixedService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.skillData = resp.data;\r\n }\r\n })\r\n }\r\n //Load All Circles\r\n if (vm.circleData.length==0) {\r\n\r\n FreelancerFixedService.GetAllCircles(loggedinUser).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.circleData = resp.data;\r\n }\r\n })\r\n }\r\n \r\n \r\n }\r\n\r\n vm.removeFilters = function () {\r\n if (vm.isChecked == 'fixed') {\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n\r\n FreelancerFixedService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n FreelancerFixedService.GetUsersByFilter(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('fixedUsers', resp.data);\r\n preprocessData(vm.fixedUsers);\r\n } else {\r\n vm.fixedUsers = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get users, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'freelancer') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n FreelancerFixedService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n } else if(vm.skillsWithPipe && vm.skillsWithPipe.length>0){\r\n teamIteamNames+=\",SkillSet\";\r\n teamIteamValues+=vm.skillsWithPipe;\r\n }\r\n FreelancerFixedService.GetAllFreelancersWithFilters(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n //$log.log('freelancers', vm.freelancerUsers);\r\n preprocessData(vm.freelancerUsers);\r\n } else {\r\n vm.freelancerUsers = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get freelancers, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get freelancers, server is not responding correctly.\");\r\n });\r\n\r\n var broadItemNames = 'Circle,SkillSet,TicketStatus';\r\n var broadItemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Broadcasted';\r\n\r\n FreelancerFixedService.GetBroadcastedBids(loggedinUser, broadItemNames, broadItemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'vendor') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n\r\n FreelancerFixedService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n FreelancerFixedService.GetAllVendors(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.vendorList = resp.data;\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get vendors, server is not responding correctly.\");\r\n })\r\n\r\n } else if (vm.isChecked == 'supervisor') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n FreelancerFixedService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"UserStatus\";\r\n var teamIteamValues = 'Active';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n FreelancerFixedService.GetUsersByRole(loggedinUser, 'Supervisor', teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data.length > 0) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n } else {\r\n vm.supervisorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get supervisors, server is not responding correctly.\");\r\n });\r\n }\r\n }\r\n\r\n //To Search\r\n vm.search = function () {\r\n if (vm.searchform.$valid) {\r\n if (vm.isChecked == 'fixed') {\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n\r\n FreelancerFixedService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n\r\n FreelancerFixedService.GetUsersByFilter(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('fixedUsers', resp.data);\r\n preprocessData(vm.fixedUsers);\r\n } else {\r\n vm.fixedUsers = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'freelancer') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n\r\n FreelancerFixedService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n\r\n FreelancerFixedService.GetAllFreelancersWithFilters(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n //$log.log('freelancers', vm.freelancerUsers);\r\n preprocessData(vm.freelancerUsers);\r\n\r\n\r\n } else {\r\n vm.freelancerUsers = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n });\r\n\r\n var broadItemNames = 'Circle,SkillSet,TicketStatus';\r\n var broadItemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Broadcasted';\r\n\r\n FreelancerFixedService.GetBroadcastedBids(loggedinUser, broadItemNames, broadItemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'vendor') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n\r\n FreelancerFixedService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n\r\n FreelancerFixedService.GetAllVendors(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.vendorList = resp.data;\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get vendors, server is not responding correctly.\");\r\n });\r\n\r\n } else if (vm.isChecked == 'supervisor') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n\r\n FreelancerFixedService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get supervisors, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n\r\n FreelancerFixedService.GetUsersByRole(loggedinUser, 'Supervisor', teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data.length > 0) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n } else {\r\n vm.supervisorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get users, server is not responding correctly.\");\r\n })\r\n\r\n }\r\n vm.SearchModal.close();\r\n } else {\r\n vm.searchform.submitted = true;\r\n }\r\n\r\n\r\n }\r\n\r\n \r\n vm.tabNo = function (tab) {\r\n vm.tab = tab;\r\n //$log.log('TabNo', vm.tab);\r\n }\r\n\r\n vm.CloseAdvanceSearchModal = function () {\r\n vm.locationSearch = '';\r\n vm.skillsSearch = '';\r\n vm.SearchModal.close();\r\n }\r\n\r\n vm.ChangeMode = function (mode) {\r\n vm.tabNo('1');\r\n if (mode == 'fixed') {\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties={\"SkillSet\":\"Water Sample Collection\"};\r\n } \r\n vm.GetAllActiveFixedUsers();\r\n\r\n } else if (mode == 'freelancer') {\r\n // vm.GetBroadcastedJobs();\r\n vm.GetAllFreelancers();\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n vm.freelancer_select_all = false;\r\n vm.freelancer_selectAll = false;\r\n vm.freelancer_SelectAllJob = false;\r\n vm.freelancer_Select_All_NewJobs = false;\r\n\r\n\r\n } else if (mode == 'FixedVendors') {\r\n vm.GetAllVendors();\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties={\"SkillSet\":\"Water Lab Test\"};\r\n }\r\n } else if (mode == 'vendor') {\r\n // vm.GetBroadcastedJobs();\r\n vm.GetAllFreelancerVendors();\r\n vm.Vendor_selectedItems = [];\r\n vm.Vendor_select_single = [];\r\n vm.Vendor_NewJobSelectedItems = [];\r\n vm.Vendor_select_single_NewJob = [];\r\n vm.Vendor_select_all = false;\r\n vm.Vendor_selectAll = false;\r\n vm.Vendor_SelectAllJob = false;\r\n vm.Vendor_Select_All_NewJobs = false;\r\n\r\n\r\n }\r\n else if (mode == 'supervisor') {\r\n vm.GetUsersByRole('Supervisor');\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties = {\"SkillSet\":\"Water Lab Test\"};\r\n }\r\n }\r\n }\r\n vm.ChangeMode('fixed');\r\n\r\n\r\n //Get Users By Role\r\n\r\n vm.GetUsersByRole = function (role) {\r\n\r\n if (vm.loggedInUserRole == 'Administrator' || vm.loggedInUserRole == 'Project Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active\";\r\n }\r\n } else if (vm.loggedinAs == 'Supervisor' || vm.loggedinAs == 'Vendor Supervisor') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus,ReportingTo\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + vm.loggedInUserReportingTo;\r\n } else {\r\n var itemNames = \"UserStatus,ReportingTo\";\r\n var itemValues = \"Active,\" + vm.loggedInUserReportingTo;\r\n }\r\n } else if (vm.loggedInUserRole == 'Vendor Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active,\";\r\n }\r\n }\r\n else if (vm.loggedInUserRole == 'Help Desk') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active,\";\r\n }\r\n }\r\n\r\n FreelancerFixedService.GetUsersByRole(loggedinUser, role, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n\r\n\r\n //vm.tabNo('1');\r\n\r\n // Route Jobs\r\n\r\n vm.routeTicket = function(index){\r\n var data = {};\r\n for(var i=0; i< vm.NewJobs.length;i++){\r\n if(vm.NewJobs[i].checked){\r\n if(i==0){\r\n data.JobIds = vm.NewJobs[i].TicketId;\r\n }else{\r\n data.JobIds = data.JobIds + ',' + vm.NewJobs[i].TicketId;\r\n }\r\n }\r\n }\r\n /*angular.forEach(vm.freelancerUsers, function (d) {\r\n if (d.checked) {\r\n data.UserId = d.UserId;\r\n }\r\n });*/\r\n\r\n for(var i=0; i< vm.freelancerUsers.length;i++){\r\n if(vm.freelancerUsers[i].checked){\r\n data.UserId = vm.freelancerUsers[i].UserId;\r\n break;\r\n }\r\n }\r\n\t\t\t if(data.JobIds){\r\n FreelancerFixedService.RouteJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n\t\t\t\t\t vm.showSuccess('Success',\"Jobs Route Successfully\");\r\n\t\t\t\t\t $timeout(function () {\r\n\t\t\t\t\t\t$state.reload();\r\n\t\t\t\t\t }, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t vm.showFailure(\"Failed\", \"Server error.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t });\r\n\t\t\t }else{\r\n\t\t\t\t vm.showFailure(\"Failed\", \"Please select tickets.\");\r\n\t\t\t }\r\n\t\t\t\r\n\t\t}\r\n\r\n\r\n // Route Jobs\r\n vm.routeTicketToFV = function(index){\r\n var data = {};\r\n for(var i=0; i< vm.NewJobs.length;i++){\r\n if(vm.NewJobs[i].checked){\r\n if(i==0){\r\n data.JobIds = vm.NewJobs[i].TicketId;\r\n }else{\r\n data.JobIds = data.JobIds + ',' + vm.NewJobs[i].TicketId;\r\n }\r\n }\r\n }\r\n for(var i=0; i< vm.FreelancerVendorUsers.length;i++){\r\n if(vm.FreelancerVendorUsers[i].checked){\r\n data.UserId = vm.FreelancerVendorUsers[i].UserId;\r\n break;\r\n }\r\n }\r\n\r\n if(data.JobIds){\r\n FreelancerFixedService.RouteJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess('Success',\"Jobs Route Successfully\");\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Server error.\");\r\n }\r\n });\r\n }else{\r\n vm.showFailure(\"Failed\", \"Please select tickets.\");\r\n }\r\n \r\n }\r\n\r\n //Broadcast Bids/Jobs\r\n vm.BroadCastJobs = function () {\r\n\r\n var BidData = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n if (d.checked) {\r\n obj.JobID = d.TicketId;\r\n var time = d.BidDuration.split(':');\r\n var hrs = parseInt(time[0]);\r\n var min = parseInt(time[1]);\r\n obj.BIDDuration = hrs*60 + min;\r\n obj.BroadCastRate = d.BroadcastRate\r\n obj.BroadCastGrossRate = d.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = d.MobiforceCommission\r\n obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n }\r\n })\r\n var UserData = [];\r\n /*angular.forEach(vm.freelancerUsers, function (d) {\r\n if (d.checked) {\r\n UserData.push(d.UserId);\r\n }\r\n });*/\r\n\r\n for(var i=0; i< vm.freelancerUsers.length;i++){\r\n if(vm.freelancerUsers[i].checked){\r\n UserData.push(vm.freelancerUsers[i].UserId); \r\n }\r\n }\r\n\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"Bids\": BidData,\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModal.close();\r\n\r\n FreelancerFixedService.BroadCastJobs(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n toaster.pop(vm.toaster_success);\r\n vm.free_NewJobSelectedItems = [];\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n }\r\n }\r\n\r\n vm.BroadCastJobsFV = function () {\r\n\r\n var BidData = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n if (d.checked) {\r\n obj.JobID = d.TicketId;\r\n var time = d.BidDuration.split(':');\r\n var hrs = parseInt(time[0]);\r\n var min = parseInt(time[1]);\r\n obj.BIDDuration = hrs*60 + min;\r\n obj.BroadCastRate = d.BroadcastRate\r\n obj.BroadCastGrossRate = d.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = d.MobiforceCommission\r\n obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n }\r\n })\r\n var UserData = [];\r\n /*angular.forEach(vm.FreelancerVendorUsers, function (d) {\r\n if (d.checked) {\r\n UserData.push(d.UserId);\r\n }\r\n });*/\r\n\r\n for(var i=0; i< vm.FreelancerVendorUsers.length;i++){\r\n if(vm.FreelancerVendorUsers[i].checked){\r\n UserData.push(vm.FreelancerVendorUsers[i].UserId); \r\n }\r\n }\r\n\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"Bids\": BidData,\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModalFV.close();\r\n\r\n FreelancerFixedService.BroadCastJobs(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n toaster.pop(vm.toaster_success);\r\n vm.free_NewJobSelectedItems = [];\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n }\r\n }\r\n\r\n\r\n // vm.AssignReceivedBid = function (userId, bidRate, bidGrossRate) {\r\n // bidGrossRate = bidGrossRate * GrossRate;\r\n \r\n // FreelancerFixedService.AssignReceivedBid(loggedinUser, vm.broadcastTicketId, userId, token).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // vm.showSuccess(\"Success\", \"Assigned Successfully\");\r\n // vm.ChangeMode('freelancer');\r\n // vm.BidReceivedJobs = [];\r\n // }\r\n // }, function (err) {\r\n // if (err && err.data && err.data.Message) {\r\n // vm.showFailure(\"Failed\", err.data.Message);\r\n // } else {\r\n // vm.showFailure(\"Failed\", \"Unable to assign job, server is not responding correctly.\");\r\n // }\r\n // })\r\n // }\r\n\r\n\r\nvm.AssignReceivedBid = function(user){\r\n \r\n vm.AllDataList =[];\r\nvar data ={\r\n \"TicketId\": vm.broadcastTicketId,\r\n \"UserId\": user.UserId,\r\n \"StartTime\":vm.broadcaststartTime,\r\n \"Endtime\": vm.broadcastEndTime,\r\n \"SuggestedPrice\": 0,\r\n \"AssignPrice\": parseInt(vm.broadcastAssignRate),\r\n \"Distance\": 0,\r\n}\r\nvm.AllDataList.push(data)\r\n\r\n ScheduleAssignService.AssignTicketsTimeline(loggedinUser,vm.AllDataList,token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.ChangeMode('freelancer');\r\n vm.BidReceivedJobs = [];\r\n\r\n $timeout(function () {\r\n \r\n vm.GetBroadcastedJobs();\r\n }, 1500);\r\n }\r\n }, function (err) {\r\n if (err && err.data) {\r\n vm.showFailure(\"Failed\", err.data);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to assign job, server is not responding correctly.\");\r\n }\r\n })\r\n\r\n\r\n}\r\n\r\n\r\n\r\n\r\n //Get Bid Received\r\n\r\n vm.BidReceived = function (ticket) {\r\n \r\n var status = 'Received';\r\n vm.broadcastTicketId = ticket.JobId;\r\n vm.broadcastLinkId = ticket.LinkId;\r\n vm.broadcaststartTime = ticket.StartDateTime;\r\n vm.broadcastEndTime = ticket.EndDateTime;\r\n vm.broadcastAssignRate = ticket.JobAssignRate;\r\n\r\n vm.isReceived = true;\r\n FreelancerFixedService.GetBidReceivedByStatus(loggedinUser, vm.broadcastTicketId, status, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BidReceivedJobs = resp.data;\r\n angular.forEach(vm.BidReceivedJobs, function (user) {\r\n\r\n user.ratingStars = vm.getRatingStars(user.UserRating);\r\n user.blankStars = vm.getBlankStars(user.UserRating);\r\n user.exp = user.Experience > 0 ? parseFloat(user.UserExperience / 365).toFixed(1) : 0;\r\n })\r\n }\r\n //$log.log('Bids', resp.data);\r\n })\r\n }\r\n\r\n //Get bid sent\r\n vm.BidSent = function(ticketId, linkId){\r\n vm.broadcastTicketId = ticketId;\r\n vm.broadcastLinkId = linkId;\r\n vm.isReceived = false;\r\n FreelancerFixedService.GetBidSentByStatus(loggedinUser, ticketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BidReceivedJobs = resp.data;\r\n angular.forEach(vm.BidReceivedJobs, function (user) {\r\n\r\n user.ratingStars = vm.getRatingStars(user.UserRating);\r\n user.blankStars = vm.getBlankStars(user.UserRating);\r\n user.exp = user.Experience > 0 ? parseFloat(user.UserExperience / 365).toFixed(1) : 0;\r\n })\r\n }\r\n });\r\n }\r\n\r\n //Data Tables\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [1, 'asc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n //DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(7).notSortable()\r\n ];\r\n\r\n //Global Calling\r\n vm.GetNewJobs();\r\n vm.GetAllActiveFixedUsers();\r\n //$log.log('isChecked', vm.isChecked);\r\n\r\n vm.openBroadcastmodal = function (i) {\r\n vm.broadcastError = null; \r\n vm.jobselected = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n vm.jobselected.push(d);\r\n $log.log(d)\r\n }\r\n });\r\n if (vm.jobselected.length > 0) {\r\n vm.BroadcastModal = $uibModal.open({\r\n templateUrl: 'Broadcast.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n } else {\r\n vm.broadcastError = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n vm.closeModal = function () {\r\n vm.BroadcastModal.close();\r\n }\r\n\r\n vm.openBroadcastmodalforFV = function (i) {\r\n vm.broadcastErrorFV = null; \r\n vm.jobselectedFV = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n vm.jobselectedFV.push(d);\r\n $log.log(d)\r\n }\r\n });\r\n if (vm.jobselectedFV.length > 0) {\r\n vm.BroadcastModalFV = $uibModal.open({\r\n templateUrl: 'BroadcastFV.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n } else {\r\n vm.broadcastErrorFV = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n\r\n vm.OpenBroadcastModelToFV = function (i) {\r\n vm.broadcastErrorFV = null; \r\n vm.jobselectedFV = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n vm.jobselectedFV.push(d);\r\n $log.log(d)\r\n }\r\n });\r\n if (vm.jobselectedFV.length > 0) {\r\n vm.BroadcastModalFV = $uibModal.open({\r\n templateUrl: 'BroadcastFV.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n } else {\r\n vm.broadcastErrorFV = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n vm.closeModalFV = function () {\r\n vm.BroadcastModalFV.close();\r\n }\r\n\r\n vm.GetAllVendors = function () {\r\n vm.vendorList = [];\r\n var itemNames = \"\";\r\n var itemValues = \"\";\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n itemNames = \"VendorLocations,VendorSkillsets,VendorStatus\";\r\n itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n itemNames = \"VendorStatus\";\r\n itemValues = \"Active\";\r\n }\r\n if (vm.loggedInUserRole == 'Help Desk') {\r\n itemNames += \",VendorSkillsets\";\r\n itemValues += \",\"+ loggedinUserSkill; \r\n }\r\n\r\n // GetAllVendors\r\n FreelancerFixedService.GetFixedVendorsByFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n angular.forEach(resp.data, function(vendor){\r\n if (vendor.UserId !=loggedinUser) {\r\n vm.vendorList.push(vendor);\r\n }\r\n })\r\n //vm.vendorList = resp.data;\r\n\r\n preprocessData(vm.vendorList);\r\n // $log.log('vendors', vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n })\r\n }\r\n\r\n //Implementation of Checkboxes for all tables\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n\r\n vm.selectAllCheckboxes = function (mode, table) {\r\n if (mode == 'fixed' && table == 'fixed_NewJob') {\r\n if (vm.fixed_selectAll) {\r\n angular.forEach(vm.NewJobs, function (item) {\r\n idx = vm.selectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.fixed_select_all = true;\r\n vm.selectedItems.push(item);\r\n vm.fixed_select_single.push(\"true\");\r\n }\r\n })\r\n\r\n } else {\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n }\r\n\r\n //$log.log('selectedItems', vm.selectedItems);\r\n } else if (mode == 'freelancer' && table == 'freelancer_users') {\r\n if (vm.freelancer_selectAll) {\r\n angular.forEach(vm.freelancerUsers, function (item) {\r\n idx = vm.free_selectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.freelancer_select_all = true;\r\n vm.free_selectedItems.push(item);\r\n vm.freelancer_select_single.push(\"true\");\r\n }\r\n })\r\n } else {\r\n vm.freelancer_select_all = false;\r\n vm.freelacer_selectAll = false;\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n }\r\n\r\n } else if (mode == 'freelancer' && table == 'freelancer_NewJob') {\r\n if (vm.freelancer_SelectAllJobs) {\r\n angular.forEach(vm.NewJobs, function (item) {\r\n idx = vm.free_NewJobSelectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.freelancer_Select_All_NewJobs = true;\r\n vm.free_NewJobSelectedItems.push(item);\r\n vm.freelancer_select_single_NewJob.push(\"true\");\r\n }\r\n })\r\n } else {\r\n vm.freelancer_Select_All_NewJobs = false;\r\n vm.freelancer_SelectAllJobs = false;\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n }\r\n }\r\n //$log.log('freelancer_select_single_NewJob', vm.freelancer_select_single_NewJob);\r\n //$log.log('free_NewJobSelectedItems', vm.free_NewJobSelectedItems);\r\n }\r\n\r\n function preprocessData(users) {\r\n if (users && users.length > 0) {\r\n angular.forEach(users, function (user) {\r\n user.locationCount = user.Locations && user.Locations.length > 0 ? user.Locations.length : 0;\r\n user.locationToolTip = \"\";\r\n if (user.locationCount > 0) {\r\n angular.forEach(user.Locations, function (loc) {\r\n user.locationToolTip += loc + \",\";\r\n })\r\n user.locationToolTip = user.locationToolTip.substr(0, user.locationToolTip.length - 1);\r\n }\r\n\r\n user.SkillSetCount = user.SkillSet && user.SkillSet.length > 0 ? user.SkillSet.length : 0;\r\n user.SkillSetToolTip = \"\";\r\n if (user.SkillSetCount > 0) {\r\n angular.forEach(user.SkillSet, function (s) {\r\n user.SkillSetToolTip += s + \",\";\r\n })\r\n user.SkillSetToolTip = user.SkillSetToolTip.substr(0, user.SkillSetToolTip.length - 1);\r\n }\r\n\r\n user.VendorLocationsCount = user.VendorLocations && user.VendorLocations.length > 0 ? user.VendorLocations.length : 0;\r\n user.VendorLocationsToolTip = \"\";\r\n if (user.VendorLocationsCount > 0) {\r\n angular.forEach(user.VendorLocations, function (loc) {\r\n user.VendorLocationsToolTip += loc + \",\";\r\n })\r\n user.VendorLocationsToolTip = user.VendorLocationsToolTip.substr(0, user.VendorLocationsToolTip.length - 1);\r\n }\r\n\r\n user.VendorSkillsetsCount = user.VendorSkillsets && user.VendorSkillsets.length > 0 ? user.VendorSkillsets.length : 0;\r\n user.VendorSkillsetsToolTip = \"\";\r\n if (user.VendorSkillsetsCount > 0) {\r\n angular.forEach(user.VendorSkillsets, function (s) {\r\n user.VendorSkillsetsToolTip += s + \",\";\r\n })\r\n user.VendorSkillsetsToolTip = user.VendorSkillsetsToolTip.substr(0, user.VendorSkillsetsToolTip.length - 1);\r\n }\r\n\r\n // $log.log('ActualRating', user.FirstName + '' + Math.round(user.Ratings))\r\n user.ratingStars = vm.getRatingStars(Math.round(user.Ratings));\r\n user.blankStars = vm.getBlankStars(Math.round(user.Ratings));\r\n // $log.log('ratingStars', user.ratingStars);\r\n //$log.log('blankStars', user.getBlankStars);\r\n user.exp = user.Experience > 0 ? parseFloat(user.Experience / 365).toFixed(1) : 0;\r\n user.checked = false;\r\n });\r\n }\r\n }\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n vm.implementSelectItemsNewJob = function (itemList, scope) {\r\n scope.selectAllNewJob = false;\r\n scope.showMinusNewJob = false;\r\n scope.selectRowNewJob = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.showMinusNewJob = false;\r\n scope.selectAllNewJob = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n // //$log.log(d);\r\n if (d.checked) {\r\n scope.showMinusNewJob = true;\r\n }\r\n });\r\n }\r\n scope.applyAllNewJobSelect = function () {\r\n //$log.log(\"applyAllSelect called\");\r\n angular.forEach(scope[itemList], function (d) {\r\n // //$log.log(d);\r\n d.checked = scope.selectAllNewJob;\r\n });\r\n }\r\n }\r\n\r\n vm.implementSelectItemsNewJob('NewJobs', this);\r\n\r\n vm.implementSelectItemsFV = function (itemList, scope) {\r\n scope.selectAllFV = false;\r\n scope.showMinusFV = false;\r\n scope.selectCountFV = 0;\r\n scope.selectRowFV = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.selectCountFV = 0;\r\n scope.showMinusFV = false;\r\n scope.selectAllFV = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n // //$log.log(d);\r\n if (d.checked) {\r\n scope.showMinusFV = true;\r\n scope.selectCountFV++;\r\n }\r\n });\r\n }\r\n scope.applyAllFVSelect = function () {\r\n //$log.log(\"applyAllSelect called\");\r\n angular.forEach(scope[itemList], function (d) {\r\n // //$log.log(d);\r\n d.checked = scope.selectAllFV;\r\n scope.selectCountFV++;\r\n });\r\n }\r\n }\r\n vm.implementSelectItemsFV('FreelancerVendorUsers', this);\r\n\r\n vm.implementSelectItemsFL = function (itemList, scope) {\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n scope.selectRowFL = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.selectCountFL = 0;\r\n scope.showMinusFL = false;\r\n scope.selectAllFL = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n // //$log.log(d);\r\n if (d.checked) {\r\n scope.showMinusFL = true;\r\n scope.selectCountFL++;\r\n }\r\n });\r\n }\r\n scope.applyAllFLSelect = function () {\r\n //$log.log(\"applyAllSelect called\");\r\n angular.forEach(scope[itemList], function (d) {\r\n // //$log.log(d);\r\n d.checked = scope.selectAllFL;\r\n scope.selectCountFL++;\r\n });\r\n }\r\n }\r\n vm.implementSelectItemsFL('freelancerUsers', this);\r\n\r\n }\r\n});\nangular.module('inspinia').service('FreelancerProfileService', function (ApiURL, SchedulingAPI,$log,FreelancerURL, $http, $localStorage, $window, PublicApiURL, ActivityURL) {\r\n\r\n \r\n});\r\n\nangular.module('inspinia').controller('FreelancerProfileController', function ($state, $localStorage) {\r\n var vm = this;\r\n \r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n if (!loggedInUserId) {\r\n \r\n $state.go('Login', {\r\n reload: true\r\n });\r\n \r\n } else {\r\n \r\n \r\n \r\n }\r\n })\r\n \r\n\r\n \r\n \nangular.module('inspinia').service('FreelancerTechnicianProfileService', function (ApiURL,FreelancerURL, LocationURL, $log, $http, $localStorage) {\r\n \r\n\t //https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/F00000000684/U400000000001/byUserIdWithJobCount\r\n\tthis.GetUserId = function(loggedInUser,userId, token){\r\n\t var url = FreelancerURL + '/api/FreeLancerUser/' + userId +'/'+ loggedInUser+ '/'+ 'byUserIdWithJobCount' ;\r\n\t return $http.get(url,{\r\n\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\r\n\t//https://product.mymobiforce.com/coreapi/api/User/UpgradeFreelancerToVendor\r\n\tthis.UpgradeFreelancerToVendor = function(loggedInUser, userId, token){\r\n\t\tvar url = ApiURL + '/api/User/UpgradeFreelancerToVendor';\r\n\t\treturn $http.put(url, {\"FreelancerId\": userId}, {\r\n\t\t headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedInUser }\r\n\t\t});\r\n\t }\r\n\r\n\t this.PreferredSingleUser = function(loggedInUser, userId, status, token){\r\n\t\tvar url = FreelancerURL + '/api/FreeLancerUser/Favorite/' + loggedInUser + '/'+ userId +'/'+status;\r\n\t\treturn $http.put(url, null, {\r\n\t\t headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedInUser }\r\n\t\t});\r\n\t }\r\n\r\n\t this.BlockedSingleUser = function(loggedinUser, userId, status, token){\r\n\t\tvar url = FreelancerURL + '/api/FreeLancerUser/Block/' + loggedinUser + '/'+ userId +'/'+status;\r\n\t\treturn $http.put(url, null, {\r\n\t\t headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n\t\t});\r\n\t }\r\n\r\n\t //https://perf.mymobiforce.com/FreelancerAPI/api/FreelancerAccount/F00000000000/F00000000684/getaccountbyfreelancerid\r\n\t this.GetBalance = function(loggedInUser,userId, token){\r\n\t\tvar url = FreelancerURL + '/api/FreelancerAccount/' + loggedInUser +'/'+ userId+ '/'+ 'getaccountbyfreelancerid' ;\r\n\t\treturn $http.get(url,{\r\n\t\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t\t})\r\n\t }\r\n\r\n\t this.getFreelancerHistory = function (loggedInUser,userId, token) {\r\n\t\tvar url = FreelancerURL + \"/api/FreelancerRecharge/\" + userId + \"/getrechargehistorybyself?StartDate=&EndDate=\";\r\n\t\treturn $http.get(url, {\r\n\t\t headers: {\r\n\t\t\t'Content-Type': 'application/json',\r\n\t\t\t'Token':token,\r\n \t 'UserId':loggedInUser\r\n\t\t }\r\n\t\t});\r\n\t }\r\n\r\n\tthis.getJobsByUserId=function(userId,loggedinUser, token){\r\n\t//var url =ApiURL + \"/api/Ticket/\" +userId+\"/byUserId?reqUserId=\"+loggedinUser;\r\n\tvar url =ApiURL + \"/api/Ticket/\" +userId+\"/Approved/byUserIdStatus?reqUserId=\"+loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n\t\t'Token': token, \r\n\t\t'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n \r\n//https://perf.mymobiforce.com/coreapi/api/User/GetEULAByUserId?reqUserId=U350000000001&userId=U350000000001\r\nthis.UserAgreement=function(loggedinUser, userId, token){\r\n var url =ApiURL + \"/api/User/GetEULAByUserId?reqUserId=\" +loggedinUser+\"&userId=\"+userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/GetFEBankDetail?AccountId=0&UserId=F00000000858\r\n this.BankDetails=function(loggedinUser, userId, token){\r\n var url =FreelancerURL + \"/api/FreeLancerUser/GetFEBankDetail?AccountId=0\" +\"&userId=\"+userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n //https://product.mymobiforce.com/coreapi/api/Report/GeneratePdfSelfDeclaration?userId=F00000001208\r\n this.GeneratePdfSelfDeclaration = function(loggedinUser, userId, token){\r\n var url = ApiURL + '/api/Report/GeneratePdfSelfDeclaration?userId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId':loggedinUser}\r\n })\r\n }\r\n\r\nthis.GeneratePdfVerificationReport = function(loggedinUser, userId, token){\r\n var url = ApiURL + '/api/Report/GeneratePdfVerificationReport?userId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId':loggedinUser}\r\n })\r\n }\r\n});\r\n//https://perf.mymobiforce.com/coreapi/api/User/F00000000657/byUserIdWithJobCount?reqUserId=F00000000000\n\r\n\r\nangular.module('inspinia').controller('FreelancerTechnicianProfileController', function (FreelancerTechnicianProfileService,MainService,ImageUrl, $log, $state, $localStorage, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n // var loggedinUser = 'F00000000000';\r\n var token = $localStorage.token;\r\n vm.loggedInUser_Role=$localStorage.loggedInUser_Role;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n vm.NokiaTableHeaderChange = $localStorage.accountConfig.NokiaTableHeaderChange;\r\n if (!loggedinUser) {\r\n $state.go('Login',{\r\n reload:true\r\n });\r\n }else{\r\n //Global Variable Declaration\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n vm.OnlyDateformat = $localStorage.OnlyDateformat;\r\n vm.vendorList='';\r\n vm.vendorData = '';\r\n vm.ActivationStatus = '';\r\n vm.searchText = '';\r\n vm.userId = $stateParams.UserId; \r\n vm.jobTickets = '';\r\n vm.itemName = '';\r\n vm.DocumentprofileImg=[];\r\n vm.CertprofileImg=[];\r\n vm.VerificationCertprofileImg=[];\r\n vm.itemValue = '';\r\n vm.dtInstance = {};\r\n vm.dtInstanceticket={};\r\n vm.AccountHistoryData=[];\r\n $localStorage.VendorDetailsView='';\r\n $localStorage.VendorPageIndex=1;\r\n vm.ToolsDetailList=[];\r\n vm.PreviousCompanyDetailsList=[];\r\n vm.TrainingImagebase64=[];\r\n vm.TrainingAttendancebase64=[];\r\n vm.PCExperienceLetterbase64=[];\r\n vm.ExperienceVerificationReportbase64=[];\r\n vm.pdfimage=\"\";\r\n vm.CriminalVerificationbase64=\"\";\r\n vm.getPicUrl = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n // vm.PDFView = function (page) {\r\n // vm.pdfimage = page;\r\n // $scope.selected = null;\r\n \r\n // jobAppointmentModal = $uibModal.open({\r\n // templateUrl: 'PDFView.html',\r\n // size :'lg',\r\n // scope: $scope\r\n // });\r\n \r\n // }\r\nvm.OpenPdfModal= function(PdfPathName,TypeName)\r\n{\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size :'lg',\r\n scope: $scope,\r\n controller: ModalInstanceCtrl(PdfPathName,TypeName)\r\n });\r\n}\r\n\r\nvm.PDFViewGeneratePdfSelfDeclaration = function () { \r\n vm.OpenPdfModal(vm.userId,\"Self Declaration\");\r\n}\r\nvm.PDFViewGeneratePdfVerificationReport = function () { \r\n vm.OpenPdfModal(vm.userId,\"Verification Report\");\r\n}\r\nvm.PDFViewLegalContract = function (page) {\r\n vm.OpenPdfModal(page,\"Legal Contract\");\r\n}\r\nvm.PDFView = function (page) { \r\n vm.OpenPdfModal(page,\"PDF View\");\r\n}\r\n var ModalInstanceCtrl = function(PdfPathNames,TypeNames) { \r\n vm.IsLoadSucessfull=false;\r\n vm.pdfimage=\"\";\r\n if(TypeNames==\"Legal Contract\")\r\n {\r\n MainService.GetLegalContractImageBlob(loggedinUser, token, PdfPathNames).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data);\r\n vm.IsLoadSucessfull=true;\r\n }); \r\n } \r\n if(TypeNames==\"PDF View\")\r\n {\r\n MainService.GetImageBlob(loggedinUser, token, PdfPathNames).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data);\r\n vm.IsLoadSucessfull=true;\r\n }); \r\n } \r\n if(TypeNames==\"Verification Report\")\r\n {\r\n FreelancerTechnicianProfileService.GeneratePdfVerificationReport(loggedinUser, PdfPathNames, token).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data.Base64Data);\r\n vm.IsLoadSucessfull=true;\r\n }); \r\n } \r\n if(TypeNames==\"Self Declaration\")\r\n {\r\n FreelancerTechnicianProfileService.GeneratePdfSelfDeclaration(loggedinUser, PdfPathNames, token).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data.Base64Data);\r\n vm.IsLoadSucessfull=true;\r\n }); \r\n } \r\n }\r\n\r\n vm.ConvertBase64ToBlob = function(response)\r\n {\r\n if(response !=null){\r\n var arrrayBuffer = base64ToArrayBuffer(response); //data is the base64 encoded string\r\n var blob = new Blob([arrrayBuffer], {type: \"application/pdf\"});\r\n vm.pdfimage = URL.createObjectURL(blob);\t\t\t\t\r\n vm.IsLoadSucessfull=true;\r\n }\r\n else{\r\n vm.DocumentAvailableMessage=\"Document is not available\";\r\n vm.IsLoadSucessfull=true;\r\n }\r\n }\r\n function base64ToArrayBuffer(base64) {\r\n var ret = base64.replace('data:application/pdf;base64,','');\r\n var binaryString = atob(ret);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n }\r\n\r\n vm.getFileType = function(url){\r\n if(url==null || url==\"\")\r\n {\r\n return \"others\";\r\n }\r\n else{\r\n if(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0 ||url.indexOf(\".JPG\")>=0 || url.indexOf(\".JPEG\")>=0 || url.indexOf(\".PNG\")>=0 || url.indexOf(\".BMP\")>=0){\r\n return \"image\";\r\n } else if(url.indexOf(\".pdf\")>=0 || url.indexOf(\".PDF\")>=0){\r\n return \"pdf\";\r\n } else if(url.indexOf(\".xls\")>=0 || url.indexOf(\".xlsx\")>=0 ||url.indexOf(\".XLS\")>=0 || url.indexOf(\".XLSX\")>=0){\r\n return \"xls\"; \r\n } else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0 || url.indexOf(\".DOC\")>=0 || url.indexOf(\".DOCX\")>=0){\r\n return \"doc\";\r\n } \r\n else {\r\n return \"others\";\r\n }\r\n }\r\n }\r\n vm.WordDownloadtoView = function (page) { \r\n MainService.GetImageBlob(loggedinUser, token, page).then(function(resp) {\r\n window.location.href = resp.data;\r\n }); \r\n \r\n }\r\n vm.PDFUserModal = function(){\r\n jobAppointmentModal.close();\r\n }\r\n\r\n $scope.checkPDF = function(path){\r\n if(!path)\r\n return true;\r\n\r\n var pt = path.substr(path.length - 4);\r\n var dt = path.substr(path.length - 4);\r\n\r\n if(pt == '.pdf' || dt == '.doc'){\r\n vm.error = function(){\r\n $(\".pdf\").attr({\"target\" : \"_blank\"})\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n vm.imageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function() {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n } \r\n vm.InsuranceImg=\"\";\r\n vm.InsuranceimageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.InsuranceImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.InsuranceImg = resp.data;\r\n }\r\n console.log(vm.InsuranceImg);\r\n }, function() {\r\n vm.InsuranceImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n } \r\n\r\n \r\n vm.CertimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.CertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.CertprofileImg[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.CertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n vm.VerificationCertimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.VerificationCertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.VerificationCertprofileImg[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.VerificationCertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n vm.DocumentimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.DocumentprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.DocumentprofileImg[index] = resp.data;\r\n }\r\n //console.log(vm.profileImg);\r\n }, function() {\r\n vm.DocumentprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n \r\n }\r\n vm.CriminalVerificationServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.CriminalVerificationbase64 = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.CriminalVerificationbase64 = resp.data;\r\n } \r\n }, function() {\r\n vm.CriminalVerificationbase64 = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n vm.GetUserId = function () {\r\n FreelancerTechnicianProfileService.GetUserId(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.users = resp.data;\r\n \r\n \t for(var i=0;i\" + \"Decoded URI: \" + dec;\r\n $('#agreementview').contents().find('html').html(dec);\r\n // document.getElementById(\"demo\").html(dec);\r\n \r\n\t\t\t\t\t// vm.showSuccess('Success', \"User added in preferred talent pool\");\r\n\t\t\t\t\t// vm.PreferredUserModal.close();\r\n\t\t\t\t}else{\r\n var dec = decodeURIComponent(resp.data).replace(/\\+/g,\" \");\r\n $('#agreementview').contents().find('html').html(dec);\r\n }\r\n\r\n\t\t\t})\r\n }\r\n\r\n \r\n\r\n \r\n vm.blockSingleUser = function(userid){\r\n\t\t\tFreelancerTechnicianProfileService.BlockedSingleUser(loggedinUser,userid,false,token).then(function(resp){\r\n\t\t\t\tif(resp.status == '202'){\r\n\t\t\t\t\tvm.showSuccess('Success', \"User successfully blocked\");\r\n\t\t\t\t\tvm.BlockedUserModal.close();\r\n\t\t\t\t}\r\n\t\t\t})\r\n }\r\n if(vm.loggedInUser_Role== 'SuperAdministrator'){\r\n vm.RechargeHistory = function(userid) {\r\n vm.userid=userid;\r\n RechargeModal = $uibModal.open({\r\n templateUrl: 'rechargeHistory.html',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlHistory,\r\n resolve : {\r\n items : function(){\r\n return {\r\n AccountName:vm.CompanyName,\r\n AccountId:vm.Email\r\n };\r\n }\r\n },\r\n size:'lg' \r\n }); \r\n }\r\n }\r\n \r\n vm.CloseRechargeModal = function(){\r\n RechargeModal.close();\r\n }\r\n\r\n var ModalInstanceCtrlHistory = function($scope, $rootScope, $uibModalInstance, items) { \r\n FreelancerTechnicianProfileService.getFreelancerHistory(loggedinUser,vm.userId, token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.AccountHistoryData = resp.data;\r\n }\r\n }) \r\n }\r\n\r\n vm.dtOption = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('order', []);\r\n \r\n vm.dtColumnDefs = [\r\n //DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable().withClass('td-small-with-panel'),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable()];\r\n\r\n vm.dtOptionsSkill = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('lengthChange', false);\r\n // .withButtons([{extend:'colvis'},{extend:'csv'}])\r\n // .withOption('stateSave', true)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n // .withOption('order', [0, 'asc']);\r\n \r\n vm.dtColumnSkill = [\r\n //DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable()\r\n \r\n ];\r\n\r\n \r\n \r\n\r\n if(vm.loggedInUser_Role== 'SuperAdministrator' || vm.loggedInUser_Role== 'Administrator'){\r\n vm.TicketHistory = function(userid) {\r\n vm.userid=userid;\r\n TicketModal = $uibModal.open({\r\n templateUrl: 'TicketHistory.html',\r\n scope: $scope,\r\n controller: getJobsByUserId(userid, loggedinUser),\r\n size:'lg' \r\n }); \r\n \r\n }\r\n }\r\n \r\n vm.CloseTicketModal = function(){\r\n TicketModal.close();\r\n }\r\n \r\n\r\n // var ModalInstanceCtrTicketlHistory = function($scope, $rootScope, $uibModalInstance, items) { \r\n // \r\n // FreelancerTechnicianProfileService.getJobsByUserId(vm.userId, loggedinUser, token).then(function (resp) {\r\n // vm.jobTickets = resp.data;\r\n // }) \r\n // }\r\n\r\n var getJobsByUserId= function(userid, loggedinUser) {\r\n \r\n FreelancerTechnicianProfileService.getJobsByUserId(vm.userId, loggedinUser, token).then(function (resp) {\r\n vm.jobTickets = resp.data;\r\n }, function () {\r\n });\r\n \r\n }\r\n\r\n\r\n\r\n vm.dtOptionsticket = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n // .withButtons(['colvis'])\r\n .withOption('stateSave', true)\r\n .withOption('stateSaveCallback', function (settings, data) {\r\n localStorage.setItem('DataTables_' + settings.sInstance, JSON.stringify(data))\r\n })\r\n .withOption('stateLoadCallback', function (settings) {\r\n var state = JSON.parse(localStorage.getItem('DataTables_' + settings.sInstance));\r\n if (state) {\r\n state.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n if(state.columns && state.columns.length>0){\r\n state.columns[7].visible=false;\r\n state.columns[8].visible=false;\r\n state.columns[10].visible=false;\r\n state.columns[11].visible=false; \r\n }\r\n }\r\n return state;\r\n })\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [1, 'desc']);\r\n \r\n vm.dtColumnDefsticket = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable()\r\n ];\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n});\nangular.module('inspinia').service('ForgotPasswordService', function (ApiURL, $log, $http, userauthURL) {\r\n\r\n this.resetPassword = function (name) {\r\n var url = ApiURL + '/api/ForgotPassword';\r\n return $http.get(url, {\r\n params: {\r\n userId: name\r\n }\r\n });\r\n }\r\n\r\n // https://product.mymobiforce.com/userauthapi/api/Authenticate/forgetpasswordCaptcha\r\n this.ForgotPassword = function(data){\r\n \tvar url = userauthURL + '/api/Authenticate/forgetpasswordCaptcha';\r\n return $http.post(url,data,{\r\n \t\t\theaders:{'Content-Type':'application/json'}\r\n \t\t})\r\n\r\n\r\n }\r\n});\r\n\nangular.module('inspinia').controller('ForgotPasswordController', function (ForgotPasswordService, $timeout, vcRecaptchaService, toaster,$state) {\r\n var vm = this;\r\n vm.email_adress = '';\r\n vm.captcha ='';\r\n \r\n\r\n \r\n vm.onForgotPasswordClick = function (event) {debugger\r\n\r\n\r\n if (vcRecaptchaService.getResponse() === \"\") { debugger \r\n alert(\"Please resolve the captcha and submit!\")\r\n } \r\n else { \r\n \r\n \r\n var data = { \r\n \"UserId\": vm.email_adress,\r\n \"Captcha\": vcRecaptchaService.getResponse(), \r\n } \r\n \r\n \r\n ForgotPasswordService.ForgotPassword(data).then(function (resp) {\r\n if (resp.data == \"The send has been sent on your registered mobile number and email\") {\r\n toaster.pop({\r\n autoDismiss: false,\r\n type: 'success',\r\n title: 'Password status ',\r\n showCloseButton: true, \r\n body: \"The password has been sent to your registered mobile number and email\",\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 0,\r\n onHideCallback:function(){ \r\n $state.go('Login',{reload:true}); \r\n },\r\n positionClass: 'toast-top-full-width'\r\n });\r\n $timeout(function () {\r\n $state.go('Login', {\r\n reload: true\r\n })\r\n }, 2000);\r\n } else {\r\n toaster.pop({\r\n type: 'success',\r\n title: 'Password status ',\r\n showCloseButton: true,\r\n body: resp.data,\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 0,\r\n \r\n positionClass: 'toast-top-full-width'\r\n });\r\n \r\n }\r\n }, function (error) {\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Password status ',\r\n showCloseButton: true,\r\n body: error,\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n });\r\n event.preventDefault();\r\n } \r\n } \r\n \r\n \r\n \r\n\r\n});\r\n\nangular.module('inspinia').service('FivePointIntegrationService', function (AcessoriesURL, IntegrationHubURL, $http) {\r\n\r\n this.GetTransactionInfoList = function (fromDate, toDate,itemNames,itemValues, pageIndex, pageSize, loggedinUser, token) {\r\n var url = IntegrationHubURL + '/api/IntegrationAPIFault/GetTransactionInfoList?fromDate=' + fromDate + '&toDate=' + toDate + '&itemNames=' + itemNames+ '&itemValues=' + itemValues + '&PageIndex=' + pageIndex + '&PageSize=' + pageSize;\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetProductReplacementDashboard = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFApprovalFlow/GetProductReplacementDashboard';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetProductReplacementList_CSV = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFApprovalFlow/GetProductReplacementList_CSV';\r\n return $http.put(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.CreateReOrderProductReplacementRequest = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFApprovalFlow/CreateReOrderProductReplacementRequest';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('FivePointIntegrationController', function (FivePointIntegrationService, MainService, $resource, $stateParams, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvar oPageIndex = 1;\r\n\t\tvar oPageSize = 10;\r\n\t\tvm.AccountId= $localStorage.accountConfig.AccountId;\r\n\t\tvm.allOrdersPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\t$scope.dates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\tvar itemNames = '';\r\n\t\tvar itemValues = '';\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t\t};\r\n\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t};\r\n\r\n\t\tvm.applyFilter = function(){\r\n\t\t\tif(vm.searchTag){\r\n\t\t\t\titemNames = 'MMFTicketId';\r\n\t\t\t\titemValues = vm.searchTag;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\titemNames = '';\r\n\t\t\t\titemValues = '';\r\n\t\t\t}\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t}\r\n\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.CreateReOrderProductReplacementRequest = function () {\r\n\t\t\tvm.Reorder_Form.submitted = true;\r\n\t\t\tif (vm.Reorder_Form.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar reordereplacementreasondata = {\r\n\t\t\t\t\t\"strProductReplacementId\": vm.reorderReplacementId,\r\n\t\t\t\t\t\"strReplacementComment\": vm.reorderReplacementComment,\r\n\t\t\t\t\t\"strReplacementReason\": vm.reorderrelacementoption,\r\n\t\t\t\t}\r\n\t\t\t\tFivePointIntegrationService.CreateReOrderProductReplacementRequest(reordereplacementreasondata, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Product re-order request raised.\");\r\n\t\t\t\t\t\tvm.closeReOrderConfirmation();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.GetTransactionInfoList();\r\n\t\t\t\t\t\t\tvm.GetProductReplacementDashboard();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.OpenTicketView = function (ticket) {\r\n\t\t\t$state.go('index.IntegrationPointDetailView', {\r\n\t\t\t\tticketId: ticket\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\t\r\n\t\tvm.OpenRequestUpdateModel = function (requestId, action,modelbrand,productname) {\r\n\t\t\tvm.UpdateAction = action;\r\n\t\t\tvm.requestIdTobeUpdated = requestId;\r\n\t\t\tvm.ModelBrand = modelbrand;\r\n\t\t\tvm.ModelProducName = productname;\r\n\t\t\tRequestUpdateModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'UpdateRequestStatus.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope, \r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeRequestUpdateModel = function () {\r\n\t\t\tRequestUpdateModel.close();\r\n\t\t\tvm.UpdationRemark = \"\";\r\n\t\t\tvm.warehouselist = \"\";\r\n\t\t\tvm.DisableCreateButton = false;\r\n\t\t}\r\n\t\r\n\t\tvm.SearchText = '';\r\n\t\tvm.clearFilter = function () {\r\n\t\t\tvm.SearchText = '';\r\n\t\t}\r\n\r\n\t\tvm.applyOrderFilter = function () {\r\n\t\t\tvm.GetTransactionInfoList();\r\n\t\t\t// vm.GetProductReplacementDashboard();\r\n\t\t}\r\n\r\n\t\tvm.SelectedOrderStatus = vm.loggedInUserRole === 'Service Center' ? 'Dispatched' : 'PendingAtMe';\r\n\r\n\t\tvm.setSelectedFilter = function (item) {\r\n\t\t\tvm.SelectedOrderStatus = item;\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t};\r\n\r\n\t\tvm.clearMyOrderFilter = function () {\r\n\t\t\tvm.SelectedOrderStatus = '';\r\n\t\t\tvm.searchTag = '';\r\n\t\t\titemNames = '';\r\n\t\t\titemValues = '';\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t}\r\n\r\n\t\t$scope.totalOrderList = 0;\r\n\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t$scope.OrdersPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllOrderPageListCount = function () {\r\n\t\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t\toPageSize = $scope.ordersPerPage;\r\n\t\t\t$scope.AllOrderTablePageChanged($scope.OrdersPagination.current);\r\n\t\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\t\toPageIndex = newPage;\r\n\t\t\t\tvm.GetTransactionInfoList();\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\toPageIndex = newPage;\r\n\t\t\tvm.GetTransactionInfoList();\r\n\r\n\t\t};\r\n\t\tvm.orderInvetoryList = [];\r\n\r\n\t\tvm.GetTransactionInfoList = function () {\r\n\t\t\tFivePointIntegrationService.GetTransactionInfoList(startDate,endDate,itemNames,itemValues,oPageIndex,oPageSize,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.orderInvetoryList = resp.data.TransactionInfoResList;\r\n\t\t\t\t\t$scope.totalOrderList = resp.data.Count;\r\n\t\t\t\t\tif (vm.orderInvetoryList.length < vm.allOrdersPageListCount)\r\n\t\t\t\t\t\tvm.orderListLength = $scope.totalOrderList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.orderListLength = oPageIndex * vm.allOrdersPageListCount;\r\n\t\t\t\t\tif (oPageIndex == 1)\r\n\t\t\t\t\t\tvm.opageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.opageindexCount = (((oPageIndex - 1) * vm.allOrdersPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tvm.orderInvetoryList = [];\r\n\t\t\t\t\t$scope.totalOrderList = 0;\r\n\t\t\t\t\t$scope.OrdersPagination = {\r\n\t\t\t\t\t\tcurrent: 1\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetTransactionInfoList();\r\n\r\n\t\tvm.GetProductReplacementDashboard = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Status\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tFivePointIntegrationService.GetProductReplacementDashboard(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.DashboardCount = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\t// vm.GetProductReplacementDashboard();\r\n\r\n\t\tvm.GetProductReplacementList_CSV = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"Status\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"SearchText\": vm.searchTag,\r\n\t\t\t\t\"StartDate\": startDate,\r\n\t\t\t\t\"EndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tFivePointIntegrationService.GetProductReplacementList_CSV(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvar csvData = resp.data;\r\n\t\t\t\t\tvar blob = new Blob([csvData], { type: 'text/csv' });\r\n\t\t\t\t\tvar url = window.URL.createObjectURL(blob);\r\n\t\t\t\t\tvar a = document.createElement('a');\r\n\t\t\t\t\ta.href = url;\r\n\t\t\t\t\ta.download = 'All_Replacement_Orders_List.csv';\r\n\t\t\t\t\ta.click();\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t}\r\n});\nangular.module('inspinia').service('FVLocationConfigurationService', function (ApiURL, FreelancerURL,LocationURL,PublicApiURL, $log, $http,$localStorage) {\r\n var url = ApiURL + '/api/User';\r\n \r\n //https://product.mymobiforce.com/publicapi/api/Address/GetDistricts\r\n\r\n this.GetAllGetDistricts = function (loggedinUser, token){\r\n var url = PublicApiURL + '/api/Address/GetDistricts';\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n //https://product.mymobiforce.com/publicapi/api/Address/GetDistrictsForServer\r\n this.GetAllGetDistrictsWithState = function (loggedinUser, token){\r\n var url = PublicApiURL + '/api/Address/GetDistrictsForServer';\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n//https://product.mymobiforce.com/freelancerapi/api/FreelancerVendor/GetOperationalTerritoryInfo\r\n this.GetOperationalTerritoryInfo = function (loggedinUser, token){\r\n var url = FreelancerURL + '/api/FreelancerVendor/GetOperationalTerritoryInfo';\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n\r\n\r\n//https://product.mymobiforce.com/freelancerapi/api/FreelancerVendor/UpdateOperationalTerritoryForVendor\r\n\r\nthis.UpdateOperationalTerritoryForVendor = function (loggedInUserId,token,userFormData) {\r\n debugger\r\n var url = FreelancerURL + '/api/FreelancerVendor/UpdateOperationalTerritoryForVendor';\r\n return $http.put(url, userFormData, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n }\r\n });\r\n}\r\n});\r\n\n\r\nangular.module('inspinia').controller('FVLocationConfigurationController', function (FVLocationConfigurationService, TeamFormCreationService,toaster, $filter, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder, DTColumnBuilder, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n\tvm = this;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.Isservinglocations=false;\r\n\t\tvm.IsShowLocation=false;\r\n\t\tvm.LocationType=\"\";\r\n\t\tvm.LocationsList=[];\r\n\t\tvm.multipleSelect=\"Select Some State\";\r\n\t\tvm.LocationTypeList = [\"State Level\", \"District Level\"];\r\n\t\tvm.LocationsStateList=[];\r\n\t\tvm.LocationsDistrictList=[];\r\n\t\tvm.getLocationsStateList= function()\r\n\t\t{\r\n\t\t\tTeamFormCreationService.getStates(loggedinUser, token, \"INDIA\").then(function (resp) {\r\n\t\t\t\tif(resp.status == 200){\r\n\t\t\t\t\tif(resp.data && resp.data.values.length>0){\r\n\t\t\t\t\t\tvm.LocationsStateList = resp.data.values;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.getLocationsDistrictList= function()\r\n\t\t{\t\t\t\r\n\t\t\tFVLocationConfigurationService.GetAllGetDistrictsWithState(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif(resp.status == 200){\r\n\t\t\t\t\tif(resp.data && resp.data.length>0){\r\n\t\t\t\t\t\tvm.AllDistrictList=resp.data;\r\n\t\t\t\t\t\tfor(var i=0; i 0){\r\n\t if(itemNames.length == 0 && itemValues.length == 0){\r\n\t\titemNames = 'Distance';\r\n\t\titemValues = vm.SearchByDistance;\r\n\t }else{\r\n\t\titemNames = itemNames + ',Distance';\r\n\t\titemValues = itemValues + ',' + vm.SearchByDistance;\r\n\t }\t\r\n }\r\n if(vm.SearchByTicketId.length > 0){\r\n\t if(itemNames.length == 0 && itemValues.length == 0){\r\n\t\titemNames = 'JobID';\r\n\t\titemValues = vm.SearchByTicketId;\r\n\t }else{\r\n\t\titemNames = itemNames + ',JobID';\r\n\t\titemValues = itemValues + ',' + vm.SearchByTicketId;\r\n\t }\t\r\n }\r\n if(vm.SearchBySkill.length > 0){\r\n if(itemNames.length == 0 && itemValues.length == 0){\r\n itemNames = \"SkillSet\";\r\n itemValues = vm.SearchBySkill;\r\n }else{\r\n itemNames = itemNames + ',' + \"SkillSet\";\r\n itemValues = itemValues + ',' + vm.SearchBySkill;\r\n }\r\n }\r\n if(vm.PermanentState.length > 0){\r\n if(itemNames.length == 0 && itemValues.length == 0){\r\n itemNames = \"JobState\";\r\n itemValues = vm.PermanentState;\r\n }else{\r\n itemNames = itemNames + ',' + \"JobState\";\r\n itemValues = itemValues + ',' + vm.PermanentState;\r\n }\r\n }\r\nif(vm.PermanentCity.length > 0){\r\n if(itemNames.length == 0 && itemValues.length == 0){\r\n itemNames = \"JobCity\";\r\n itemValues = vm.PermanentCity;\r\n }else{\r\n itemNames = itemNames + ',' + \"JobCity\";\r\n itemValues = itemValues + ',' + vm.PermanentCity;\r\n }\r\n }\r\n}\r\n\r\nvm.TabClickEvent= function(listType)\r\n{ \r\n vm.IsAcceptLeadsbutton = false; \r\n vm.IsRejectLeadsbutton = false; \r\n if(listType==\"Incoming Leads\")\r\n vm.Status=\"\";\r\n else if(listType==\"Accepted Leads\")\r\n vm.Status=\"Accepted\";\r\n else\r\n vm.Status=\"Rejected\";\r\n\r\n vm.filter();\r\n vm.GetAllLeadbyDateRangeWithDynaPaging(startDate, endDate, loggedinUser, token, itemNames, itemValues,vm.Status,PageIndex,PageSize,\"\");\r\n\r\n}\r\nvm.Allapplyfilter = function(){\r\n vm.filter();\r\n vm.GetAllLeadbyDateRangeWithDynaPaging(startDate, endDate, loggedinUser, token, itemNames, itemValues,vm.Status,PageIndex,PageSize,\"\");\r\n\r\n}\r\n\r\nvm.ConverttoDecimal = function(value) {\r\n return (parseFloat(value).toFixed(2))\r\n}\r\nvm.dateRangeChange = function (ev, picker) {\r\n vm.IsSearch = true;\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n};\r\n\r\nvm.outsidedateRangeChange = function (ev, picker) \r\n{ \r\nstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\nendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\nvm.filter();\r\nvm.GetAllLeadbyDateRangeWithDynaPaging(startDate, endDate, loggedinUser, token, itemNames, itemValues,vm.Status,PageIndex,PageSize,\"\");\r\n\r\n};\r\n\r\nvm.allLeadsList = [];\r\nvm.allAcceptedLeadsList = [];\r\nvm.allRejectedLeadsList = [];\r\nvm.AcceptedLeadsCount = 0;\r\nvm.DeniedLeadsCount = 0; \r\nvm.IncomingLeadsCount = 0;\r\nvm.TotalLeadsCount = 0;\r\nvm.GetAllLeadbyDateRangeWithDynaPaging = function (startDate, endDate, loggedinUser, token, itemNames, itemValues,status,PageIndex,PageSize,GlobalSearch) {\r\n FVLeadManagementService.GetAllLeadbyDateRangeWithDynaPaging(startDate, endDate, loggedinUser,token, itemNames, itemValues,status,PageIndex,PageSize,GlobalSearch).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AcceptedLeadsCount = resp.data.AcceptedLeadsCount;\r\n vm.DeniedLeadsCount = resp.data.DeniedLeadsCount; \r\n vm.IncomingLeadsCount = resp.data.IncomingLeadsCount;\r\n vm.TotalLeadsCount = resp.data.TotalLeadsCount;\r\n vm.allLeadsList = resp.data.FreelancerBidModelList;\r\n $scope.totalTicketUsers = resp.data.FreelancerBidListCount;\r\n \r\n if(vm.allLeadsList.length < 10)\r\n vm.ticketListLength = $scope.totalTicketUsers;\r\n else\r\n vm.ticketListLength = PageIndex * 10;\r\n if(PageIndex==1){\r\n if(vm.allLeadsList==null || vm.allLeadsList==\"\")\r\n vm.pageindexCount = 0;\r\n else\r\n vm.pageindexCount = 1;\r\n }\r\n else\r\n vm.pageindexCount = (((PageIndex-1) * 10) + 1);\r\n }\r\n }, function () {\r\n \r\n });\r\n }\r\n vm.filter();\r\n \r\n vm.GetAllLeadbyDateRangeWithDynaPaging(startDate, endDate, loggedinUser, token, itemNames, itemValues,\"\",PageIndex,PageSize,\"\"); \r\n \r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n \r\n .withOption('stateSave', true)\r\n .withOption('deferRender', true)\r\n .withOption('stateSaveCallback', function (settings, data) {\r\n localStorage.setItem('JoblistTableProp', JSON.stringify(data))\r\n \r\n })\r\n .withOption('stateLoadCallback', function (settings) {\r\n\r\n if (vm.IsSearch == true) {\r\n var state = JSON.parse(localStorage.getItem('JoblistTableProp'));\r\n state.start = 0;\r\n } else {\r\n var state = JSON.parse(localStorage.getItem('JoblistTableProp'));\r\n\r\n }\r\n \r\n return state;\r\n })\r\n .withPaginationType('full_numbers').withOption('lengthChange', false)\r\n .withOption('paging', false)\r\n .withOption('bInfo',false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1),\r\n DTColumnDefBuilder.newColumnDef(2),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(11).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(12).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(13).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(14).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(15).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(16).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(17).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(18).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(19).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(20).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(21).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(22).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(23).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(24).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(25).notSortable()\r\n ];\r\n }\r\n vm.implementSelectItemsTickets = function (itemList1, scope1) {\r\n scope1.IsAcceptLeadsbutton = false; \r\n scope1.IsRejectLeadsbutton = false; \r\n scope1.selectRow1 = function (i) {\r\n\r\n scope1.IsAcceptLeadsbutton = false; \r\n scope1.IsRejectLeadsbutton = false; \r\n \r\n for(var i=0; i< scope1.allLeadsList.length;i++){\r\n var tempTickets = scope1.allLeadsList[i];\r\n if(tempTickets.checked1) { \r\n if(vm.Status==\"\")\r\n {\r\n scope1.IsAcceptLeadsbutton = true;\r\n scope1.IsRejectLeadsbutton = true;\r\n }\r\n else\r\n {\r\n scope1.IsAcceptLeadsbutton = false;\r\n scope1.IsRejectLeadsbutton = false; \r\n }\r\n if(vm.Status==\"Accepted\") \r\n scope1.IsRejectLeadsbutton = true;\r\n \r\n }\r\n \r\n \r\n }\r\n } \r\n }\r\n vm.implementSelectItemsTickets('allLeadsList', this);\r\n\r\n \r\n\tfunction getAllStates() {\r\n\t\tvar defered = $q.defer();\r\n\t\tReferService.getAllState(loggedinUser,token).then(function (resp) {\r\n\t\t\tdefered.resolve(resp);\r\n\t\t}, function (error) {\r\n\t\t\tdefered.reject(error);\r\n\t\t});\r\n\t\treturn defered.promise;\r\n\t}\r\n\t\r\n\tvar allStatePromise = getAllStates();\r\n\tallStatePromise.then(function (resp) {\r\n\t\tvm.StateList = resp.data;\r\n\t\t\r\n\t});\r\n\tfunction getallCities(state) {\r\n\t\tReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n\t\t\tvm.CityList = resp.data;\r\n\t\t});\r\n\t}\r\n\tvm.selectedState = function (state) {\r\n\t\tgetallCities(state);\r\n\t}\r\n vm.skillsList=[];\r\n function getAllSkill() {\r\n TeamFormCreationService.getAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skillsList = resp.data;\r\n }); \r\n }\r\n getAllSkill();\r\n\r\n vm.markAcceptLeadsList=[]\r\nvm.AcceptLeads= function()\r\n{\r\n \r\n vm.markAcceptLeadsList=[];\r\n for(var i=0; ilTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withButtons(['colvis'])\r\n .withOption('stateSave', true)\r\n .withOption('stateSaveCallback', function (settings, data) {\r\n localStorage.setItem('DataTables_' + settings.sInstance, JSON.stringify(data))\r\n })\r\n .withOption('stateLoadCallback', function (settings) {\r\n var state = JSON.parse(localStorage.getItem('DataTables_' + settings.sInstance));\r\n if (state) {\r\n state.search = { search: \"\", smart: true, regex: false, caseInsensitive: true };\r\n if(state.columns && state.columns.length>0){\r\n state.columns[7].visible=false;\r\n state.columns[8].visible=false;\r\n state.columns[10].visible=false;\r\n state.columns[11].visible=false; \r\n }\r\n }\r\n return state;\r\n })\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [1, 'desc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(), \r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(10).notSortable()\r\n ];\r\n\r\n vm.dtOptionsDocList = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefsDocList = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable()\r\n ];\r\n\r\n function getJobsByUserId(userId, loggedinUser) {\r\n FLTechnicianProfileService.GetFreelancerJobs(userId, loggedinUser, token).then(function (resp) {\r\n vm.jobTickets = resp.data;\r\n }, function (err) {\r\n }) \r\n }\r\n getJobsByUserId(userId, loggedinUser);\r\n if(userId.startsWith(\"U\")){\r\n getFixedUserInfo(userId, loggedinUser);\r\n }\r\n else\r\n {\r\n getUserInfo(userId, loggedinUser);\r\n }\r\n function getFixedUserInfo(userId, loggedinUser) {\r\n FLTechnicianProfileService.getFixedUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n vm.customerInfo = resp.data;\r\n vm.rating=Number(vm.customerInfo.CustomerRating).toFixed(1); \r\n }, function () { \r\n });\r\n }\r\n\r\n function getUserInfo(userId, loggedinUser) {\r\n FLTechnicianProfileService.getUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n vm.customerInfo = resp.data;\r\n vm.rating=Number(vm.customerInfo.CustomerRating).toFixed(1); \r\n \r\n if (vm.customerInfo.BGVerificationDocPath) {\r\n angular.forEach(vm.BGDocType, function (d, i) {\r\n vm.BGDocList[i] = {\r\n \"DocumentType\": d,\r\n \"DocumentName\": \"\",\r\n \"DocumentPath\": \"\",\r\n \"DocumentName1\": \"\",\r\n \"DocumentPath1\": \"\"\r\n };\r\n // vm.error[d] = null;\r\n for (var imageIndex = 0; imageIndex < vm.customerInfo.BGVerificationDocPath.length; imageIndex++) {\r\n if (d == vm.customerInfo.BGVerificationDocPath[imageIndex].DocumentType) {\r\n vm.BGDocList[i] = vm.customerInfo.BGVerificationDocPath[imageIndex];\r\n vm.BGDocList[i].DocumentName1 = vm.BGDocList[i].DocumentName;\r\n vm.BGDocList[i].DocumentPath1 = vm.BGDocList[i].DocumentPath;\r\n break;\r\n }\r\n }\r\n })\r\n }else{\r\n angular.forEach(vm.BGDocType, function (d, i) {\r\n vm.BGDocList[i] = {\r\n \"DocumentType\": d,\r\n \"DocumentName\": \"\",\r\n \"DocumentPath\": \"\",\r\n \"DocumentName1\": \"\",\r\n \"DocumentPath1\": \"\"\r\n };\r\n });\r\n }\r\n\r\n if (vm.customerInfo.TrainingAssessment) {\r\n for (var trainingIndex = 0; trainingIndex < vm.customerInfo.TrainingAssessment.length; trainingIndex++) {\r\n vm.TrainingList[trainingIndex] = vm.customerInfo.TrainingAssessment[trainingIndex];\r\n console.log(vm.TrainingList);\r\n }\r\n }\r\n },\r\n function (err) {\r\n \r\n });\r\n }\r\n }\r\n});\r\n\nangular.module('inspinia').service('EscalationService', function(ApiURL,$log,$http){\r\n \r\n\r\n //https://test.mymobiforce.com/coreapi/api/TicketStatus/U360000000001/GetAllTicketStatus\r\n this.GetAllTicketStatus = function(reqUserId,token){\r\n\tvar url=ApiURL+'/api/TicketStatus/'+reqUserId+'/GetAllTicketStatus';\r\n\treturn $http.get(url,{\r\n\t\theaders:{'Content-Type':'application/json','token':token, 'UserId': reqUserId}\r\n\t})\r\n}\r\n\r\n//https://test.mymobiforce.com/coreapi/api/escalationalertconfiguration/asd/EscalationAlert\r\n this.SaveEscalationConfiguration = function(reqUserId,data,token){\r\n \tvar url = ApiURL+'/api/escalationalertconfiguration/'+reqUserId+'/EscalationAlert'\r\n \treturn $http.post(url,data,{\r\n \t\theaders:{'Content-Type':'application/json','token':token, 'UserId': reqUserId}\r\n \t})\r\n }\r\n\r\n //https://test.mymobiforce.com/coreapi/api/escalationalertconfiguration/U360000000001/New_Assigned/ESCALATION/GetEscalationAlertConfiguration\r\nthis.GetEscalationAlertConfigurationById = function(reqUserId,Id,type,token){\r\n\tvar url=ApiURL+'/api/escalationalertconfiguration/'+reqUserId+'/'+Id+'/'+type+'/GetEscalationAlertConfiguration';\r\n\treturn $http.get(url,{\r\n\t\theaders:{'Content-Type':'application/json','token':token, 'UserId': reqUserId}\r\n\t})\r\n}\r\n\r\n});\nangular.module('inspinia').controller('EscalationController',function(EscalationService,ReportService,toaster,$timeout,$window,$state, $scope,$log, $localStorage,$stateParams){\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if ($stateParams.mode == 'true') {\r\n vm.Openmode = true\r\n vm.alertIdParam = $stateParams.alertId;\r\n \r\n }else{\r\n vm.Openmode = false;\r\n }\r\n\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.showInfo =$scope.$parent.$parent.main.showInfo;\r\n vm.channelList = [\"SMS\",\"Email\",\"Notification\",\"WebNotification\"];\r\n vm.RoleList = [\"Project Manager\",\"Help Desk\",\"Supervisor\",\"Field Engineer\",\"Consumer\"];\r\n vm.TimeList = [\"30 Min\",\"1 Hour\",\"2 Hours\",\"3 Hours\",\"4 Hours\",\"5 Hours\",\"6 Hours\"];\r\n vm.EscalationType = [\"Single Ticket\",\"Linked Ticket\"];\r\n vm.StatusList = '';\r\n vm.firstStatus = '';\r\n vm.secondStatus = '';\r\n vm.firstLinkedStatus = '';\r\n vm.secondLinkedStatus = '';\r\n vm.eventConfiguration=[];\r\n vm.LinkedeventConfiguration = [];\r\n vm.users = [];\r\n vm.toUsers=[];\r\n vm.toList=[];\r\n vm.buttonStatus = 'Single Ticket'\r\n vm.button = false;\r\n //Get All Ticket Status\r\n\r\n vm.GetAllTicketStatus = function(){\r\n \tEscalationService.GetAllTicketStatus(loggedinUser,token).then(function(resp){\r\n \t\tif (resp && resp.data) {\r\n \t\t\tvm.StatusList = resp.data;\r\n \t\t}\r\n \t})\r\n }\r\n\r\n//Single Tickets\r\n var customObj = {}\r\n vm.eventConfiguration.push(customObj);\r\n\r\n //Linked Tickets\r\n var customLinkObj = {}\r\n vm.LinkedeventConfiguration.push(customLinkObj);\r\n\r\n vm.AddEventConfiguration = function(){\r\n if (vm.firstStatus!='Select Status' && vm.secondStatus !='Select Status') {\r\n \tif (vm.eventConfiguration.length>=1) {\r\n \t\tvm.firstStatusDisabled=true;\r\n vm.secondStatusDisabled = true;\r\n \t}\r\n \t\r\n } \r\n \r\n var ele={};\r\n vm.eventConfiguration.push(ele);\r\n}\r\nvm.RemoveEventConfiguration = function (index){\r\n\r\n vm.eventConfiguration.splice(index, 1);\r\n if(vm.eventConfiguration.length==1){\r\n \t\tvm.firstStatusDisabled=false;\r\n vm.secondStatusDisabled = false;\r\n \t}\r\n}\r\n\r\n\r\nvm.AddLinkedEventConfiguration = function(){\r\n if (vm.firstLinkedStatus!='Select Status' && vm.secondLinkedStatus !='Select Status') {\r\n \tif (vm.LinkedeventConfiguration.length>=1) {\r\n \t\tvm.firstLinkedStatusDisabled=true;\r\n vm.secondLinkedStatusDisabled = true;\r\n \t}\r\n \t\r\n } \r\n \r\n var ele={};\r\n vm.LinkedeventConfiguration.push(ele);\r\n}\r\nvm.RemoveLinkedEventConfiguration = function (index){\r\n\r\n vm.LinkedeventConfiguration.splice(index, 1);\r\n if(vm.LinkedeventConfiguration.length==1){\r\n \t\tvm.firstLinkedStatusDisabled=false;\r\n vm.secondLinkedStatusDisabled = false;\r\n \t}\r\n}\r\n\r\n\r\n\r\n vm.SetStatus = function(status,type){\r\n \tif (type=='first') {\r\n \t\tvm.firstStatus = status.StatusName;\t\r\n \t\tvm.secondStatus = 'Select Status'\r\n \t}else if(type == 'second'){\r\n \t\tvm.secondStatus = status.StatusName;\r\n \t}else if(type == 'Main'){\r\n \t\tvm.buttonStatus = status;\r\n \t\tif (status == 'Single Ticket') {\r\n \t\t\tvm.isSingleBool = true\r\n \t\t}else if (status == 'Linked Ticket') {\r\n \t\t\tvm.isSingleBool = false\r\n \t\t}\r\n \t\t\r\n \t}\r\n \t\r\n }\r\n\r\n vm.SetStatusForLink = function(status,type){\r\n \tif (type=='first') {\r\n \t\tvm.firstLinkedStatus = status.StatusName;\t\r\n \t\tvm.secondLinkedStatus = 'Select Status'\r\n \t}else if(type == 'second'){\r\n \t\tvm.secondLinkedStatus = status.StatusName;\r\n \t}else if(type == 'Main'){\r\n \t\tvm.buttonStatus = status;\r\n \t\tif (status == 'Single Ticket') {\r\n \t\t\tvm.isSingleBool = true\r\n \t\t}else if (status == 'Linked Ticket') {\r\n \t\t\tvm.isSingleBool = false\r\n \t\t}\r\n \t\t\r\n \t}\r\n \t\r\n }\r\n\r\n vm.getUserSuggestion = function (val) {\r\n\r\n // vm.scheduleModel.toListMendtryErr=false;\r\n\r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}].concat(vm.users):vm.users;\r\n }\r\n vm.getUsers();\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}]:[];\r\n }\r\n\r\n vm.getUsers = function () {\r\n vm.users = [];\r\n ReportService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n //$log.log(data);\r\n }]));\r\n }\r\n\r\n vm.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName !=null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n vm.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.toList, function (d) {\r\n if (d.PersonalEmail == element.PersonalEmail) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n vm.selectUserNameInToList = function (item,mobile,time) {\r\n if (item == '' && mobile == '') {\r\n vm.showInfo(\"Information\",\"Please enter email or mobile\");\r\n return;\r\n }\r\n var obj=[];\r\n if (item && item.length!=0) {\r\n obj.PersonalEmail = item;\r\n }\r\n if (mobile && mobile.length>0) {\r\n obj.ContactNumber = mobile; \r\n }else{\r\n angular.forEach(vm.users, function(d){\r\n if (d.PersonalEmail == item) {\r\n obj.ContactNumber = d.ContactNumber;\r\n }\r\n })\r\n }\r\n if (time && time.length!=0) {\r\n \tobj.TimeDuration = vm.outsiderTime\r\n }\r\n \r\n vm.toList.push(obj);\r\n vm.toUsers = [];\r\n vm.outsiderPhone = '';\r\n vm.outsiderTime = '';\r\n }\r\n vm.RemovefromList = function(index){\r\n vm.toList.splice(index,1);\r\n }\r\n\r\n\r\n\r\nvm.GetEscalationAlertConfiguration = function(){\r\n\r\n\tEscalationService.GetEscalationAlertConfigurationById(loggedinUser,vm.alertIdParam,'Escalation',token).then(function(resp){\r\n\t\tif (resp && resp.status == 200) {\r\n\r\n\t\t\tvm.EscalationAlertConfig = resp.data;\r\n\t\t\tvm.firstStatusDisabled = true;\r\n\t\t\tvm.secondStatusDisabled = true;\r\n\t\t\tvm.button = true;\r\n\t\t\tif (vm.EscalationAlertConfig.IsSingleTicket) {\r\n\t\t\t\tvm.isSingleBool = true;\r\n\t\t\t\tvm.buttonStatus = 'Single Ticket';\r\n\t\t\t}else{\r\n\t\t\t\tvm.isSingleBool = false;\r\n\t\t\t\tvm.buttonStatus = 'Linked Ticket';\r\n\t\t\t}\r\n\t\t\tvm.eventConfiguration = [];\r\n\t\t\tangular.forEach(vm.EscalationAlertConfig.ListEscalationAlertTemplate, function(d){\r\n\t\t\t\tvar obj = {};\r\n\t\t\t\tobj.channel = [];\r\n\t\t\t\tif (d) {\r\n\t\t\t\t\tif (d.Role!='Outsider') {\r\n\t\t\t\t\tvm.firstStatus = d.TicketStateFirst;\r\n\t\t\t\t\tvm.secondStatus = d.TicketStateSecond;\r\n\t\t\t\t\tobj.role = d.Role;\r\n\t\t\t\t\tif (d.DurationInMinutes<60) {\r\n\t\t\t\t\t\tobj.time = d.DurationInMinutes + ' Min';\r\n\t\t\t\t\t}else if(d.DurationInMinutes==60){\r\n\t\t\t\t\t\tobj.time = d.DurationInMinutes/60 + ' Hour';\r\n\t\t\t\t\t}else if(d.DurationInMinutes>60){\r\n\t\t\t\t\t\tobj.time = d.DurationInMinutes/60 + ' Hours';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (d.SMSEnabled) {\r\n\t\t\t\t\t\tobj.channel.push('SMS');\r\n\t\t\t\t\t\tobj.smsText = d.SMSText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (d.EmailEnabled) {\r\n\t\t\t\t\t\tobj.channel.push('Email');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (d.WhatsAppEnabled) {\r\n\t\t\t\t\t\tobj.channel.push('WhatsApp');\r\n\t\t\t\t\t\tobj.smsText = d.WhatsAppText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (d.NotificationEnabled) {\r\n\t\t\t\t\t\tobj.channel.push('Notification');\r\n\t\t\t\t\t\tobj.smsText = d.NotificationText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (d.WebNotificationEnabled) {\r\n\t\t\t\t\t\tobj.channel.push('WebNotification');\r\n\t\t\t\t\t\tobj.smsText = d.WebNotificationText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.eventConfiguration.push(obj);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (d.Role == 'Outsider') {\r\n\r\n\t\t\t\t\t\tif (d.UserOutSideContact && d.UserOutSideContact.length>0) {\r\n\t\t\t\t\t\t vm.outSidecheck = true;\r\n\t\t\t\t\t\t vm.outsiderTransText = d.SMSText;\r\n\t\t\t\t\t\t vm.toList = [];\r\n\t\t\t\t\t\t angular.forEach(d.UserOutSideContact, function(data){\r\n\t\t\t var objOutsider = {};\r\n\t\t\t if (data) {\r\n\t\t\t objOutsider.PersonalEmail = data.UserOutSideEmail;\r\n\t\t\t objOutsider.ContactNumber = data.UserOutSidePhone;\r\n\t\t\t if (d.DurationInMinutes<60) {\r\n\t\t\t \tobjOutsider.TimeDuration = d.DurationInMinutes + ' Min'\r\n\t\t\t }else if (d.DurationInMinutes==60) {\r\n\t\t\t \tobjOutsider.TimeDuration = d.DurationInMinutes + ' Hour'\r\n\t\t\t }else if (d.DurationInMinutes>60) {\r\n\t\t\t \tobjOutsider.TimeDuration = d.DurationInMinutes + ' Hours'\r\n\t\t\t }\r\n\t\t\t \r\n\t\t\t vm.toList.push(objOutsider);\r\n\t\t\t }\r\n\t\t\t })\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t})\r\n\t\t}\r\n\t})\r\n\r\n}\r\n\r\nvm.SaveEventConfiguration = function(){\r\n\tif(vm.escalation_form.$valid){\r\n\tvar data = {}\r\n\tdata.ListEscalationAlertTemplate = [];\r\n\tdata.AlertType = 'Escalation';\r\n\tdata.AlertId = vm.firstStatus+'_'+vm.secondStatus;\r\n\tif (vm.buttonStatus=='Single Ticket') {\r\n\t\tvm.isSingleBool = true;\r\n\t}else {\r\n\t\tvm.isSingleBool = false;\r\n\t}\r\n\tdata.IsSingleTicket = vm.isSingleBool;\r\n\tangular.forEach(vm.eventConfiguration, function(d){\r\n\t\tvar obj = {};\r\n\t\t\r\n\t\tif (d && d.check) {\r\n\t\t if (d.channel.indexOf('SMS')!=-1) {\r\n\t obj.SMSEnabled = true;\r\n\t obj.SMSText = d.smsText;\r\n\t }else{\r\n\t obj.SMSEnabled = false;\r\n\t obj.SMSText = \"\";\r\n\t }\r\n\t if (d.channel.indexOf('Email')!=-1) {\r\n\t \tobj.EmailEnabled = true;\r\n\t \t// obj.EmailTemplateName = vm.firstStatus+'_'+vm.secondStatus;\r\n\t \t// obj.EmailSubject = vm.firstStatus+'_'+vm.secondStatus;\r\n\t \tobj.EmailTemplateName = 'ESCALATION';\r\n\t \tobj.EmailSubject = 'ESCALATION';\r\n\t }else{\r\n\t \tobj.EmailEnabled = false;\r\n\t \tobj.EmailTemplateName = '';\r\n\t \tobj.EmailSubject = '';\r\n\t }\r\n\t if (d.channel.indexOf('Notification')!=-1) {\r\n\t \tobj.NotificationEnabled = true;\r\n\t obj.NotificationText = d.smsText;\r\n\t }else{\r\n\t \tobj.NotificationEnabled = false;\r\n\t obj.NotificationText = '';\r\n\t }\r\n\t if (d.channel.indexOf('WhatsApp')!=-1) {\r\n\t \tobj.WhatsAppEnabled = true;\r\n\t obj.WhatsAppText = d.smsText;\r\n\t }else{\r\n\t \tobj.WhatsAppEnabled = false;\r\n\t obj.WhatsAppText = '';\r\n\t }\r\n\t if (d.channel.indexOf('WebNotification')!=-1) {\r\n\t \tobj.WebNotificationEnabled = true;\r\n\t obj.WebNotificationText = d.smsText;\r\n\t }else{\r\n\t \tobj.WebNotificationEnabled = false;\r\n\t obj.WebNotificationText = '';\r\n\t }\r\n\t obj.Role = d.role;\r\n\t obj.TicketStateFirst = vm.firstStatus;\r\n\t\t obj.TicketStateSecond = vm.secondStatus;\r\n\t\t var minutes = '';\r\n\t if (d.time && d.time.includes('Min')) {\r\n\t var timeSplit = d.time.split(' ');\r\n\t minutes = parseInt(timeSplit[0]);\r\n\t }else{\r\n\t var timeSplit = d.time.split(' ');\r\n\t minutes = parseInt(timeSplit[0])*60;\r\n\t }\r\n\t obj.DurationInMinutes= minutes;\r\n\t\t}\r\n\t\tdata.ListEscalationAlertTemplate.push(obj);\r\n\t})\r\n\r\n\tif (vm.outSidecheck) {\r\n\t\tvar OutObj = {};\r\n\t\tOutObj.UserOutSideContact=[];\r\n\t\tOutObj.TicketStateFirst= vm.firstStatus;\r\n\t\tOutObj.TicketStateSecond= vm.secondStatus;\r\n\t\tOutObj.SMSEnabled= true;\r\n\t\tOutObj.SMSText= vm.outsiderTransText;\r\n\t\tOutObj.EmailEnabled= true;\r\n\t\tOutObj.EmailTemplateName= vm.firstStatus+'_'+vm.secondStatus;\r\n\t\tOutObj.EmailSubject= vm.firstStatus+'_'+vm.secondStatus;\r\n\t\tOutObj.NotificationEnabled= false;\r\n\t\tOutObj.NotificationText= '';\r\n\t\tOutObj.WhatsAppEnabled= false;\r\n\t\tOutObj.WhatsAppText= '';\r\n\t\tOutObj.WebNotificationEnabled= false;\r\n\t\tOutObj.WebNotificationText= '';\r\n\t\tOutObj.Role= 'Outsider';\r\n\t \tif (vm.toList && vm.toList.length>0) {\r\n\t \t\tangular.forEach(vm.toList, function(d){\r\n\t \t\t\tvar Outminutes = '';\r\n\t \t\t\tvar outModel = {};\r\n\t \t\t\tif (d) {\r\n\t \t\t\t\toutModel.UserOutSidePhone = d.ContactNumber;\r\n\t \t\t\t\toutModel.UserOutSideEmail = d.PersonalEmail;\r\n\t \t\t\t\tif (d.TimeDuration.includes('Min')) {\r\n\t\t\t\t var OuttimeSplit = d.TimeDuration.split(' ');\r\n\t\t\t\t Outminutes = parseInt(OuttimeSplit[0]);\r\n\t\t\t\t }else{\r\n\t\t\t\t var OuttimeSplit = d.TimeDuration.split(' ');\r\n\t\t\t\t Outminutes = parseInt(OuttimeSplit[0])*60;\r\n\t\t\t\t }\r\n\t\t\t\t\t OutObj.DurationInMinutes= Outminutes;\r\n\t \t\t\t}\r\n\t \t\t\tOutObj.UserOutSideContact.push(outModel);\r\n\t \t\t})\r\n\t \t}\r\n\t \tdata.ListEscalationAlertTemplate.push(OutObj);\r\n\t }\r\n\r\n\tEscalationService.SaveEscalationConfiguration(loggedinUser,data,token).then(function(resp){\r\n\t\tif (resp && resp.status == 201) {\r\n\t\t\tvm.showSuccess(\"Success\",\"Escalation Alert has been created\");\r\n\t\t\t$timeout(function(){\r\n\t\t\t\t$state.go('index.NotificationSettings',{\r\n\t \talertType:'main',\r\n\t \teventType:'',\r\n\t \tmode:''\r\n\t \t\t},{\r\n\t \treload:true\r\n\t \t\t});\t\r\n\t\t\t},1500)\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t}else{\r\n\t\t\tvm.showFailure(\"Failure\",\"Escalation Alert creation failed due to some technical error\");\r\n\t\t}\r\n\t})\r\n} else {\r\n\tvm.escalation_form.submitted = true;\r\n}\r\n}\r\n\r\nvm.CancelEvent = function(){\r\n $state.go('index.NotificationSettings',{\r\n alertType:'main',\r\n eventType:'',\r\n mode:''\r\n },{\r\n reload:true\r\n })\r\n}\r\n\r\nif (vm.Openmode == true) {\r\n vm.GetEscalationAlertConfiguration();\r\n}\r\n\r\n\r\n //Global call functions\r\n vm.GetAllTicketStatus();\r\n\r\n});\nangular.module('inspinia').service('EmailAdapterHistoryService', function (FreelancerURL,ApiURL, $http) {\r\n\r\n vm = this;\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n //https://perf.mymobiforce.com/coreapi/api/EmailAdapter/GetInRange?reqUserId=U360000000221&StartDate=2019-06-05&EndDate=2019-06-05\r\n this.GetMailHistoryByDate = function (loggedinUser, token, startdate, enddate, callback) {\r\n var url = ApiURL + '/api/EmailAdapter/GetInRange?reqUserId=' + loggedinUser + '&StartDate=' + startdate + '&EndDate=' + enddate;\r\n $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token, 'UserId': loggedinUser}\r\n }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n});\nangular.module('inspinia').controller('EmailAdapterHistoryController', function (DTColumnBuilder, DTOptionsBuilder, $scope, $q,EmailAdapterHistoryService, $localStorage, $log, toaster, $timeout) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n\r\n vm.dtInstance = {};\r\n\r\n EmailAdapterHistoryService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n EmailAdapterHistoryService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\r\n $scope.dates = { startDate:moment().subtract(0, 'days'), endDate: moment() };\r\n var startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n // 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n 'This month': [moment().startOf('month'), moment()]\r\n };\r\n\r\n $scope.dateRangeChange = function(ev, picker){\r\n console.log(ev, picker);\r\n var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n var endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n vm.GetAllLeaveRequests(startDate, endDate, true);\r\n \r\n };\r\n\r\n vm.GetAllLeaveRequests = function(startDate, endDate, reload){\r\n EmailAdapterHistoryService.GetMailHistoryByDate(loggedinUser, token, startDate, endDate, vm.createCallback(null, [function(data){\r\n if(data){\r\n vm.mailhistoryList = data; \r\n vm.buildTable(); \r\n if(reload){\r\n vm.reloadData(); \r\n } \r\n } \r\n }]));\r\n } \r\n\r\n vm.GetAllLeaveRequests(startDate, endDate, false);\r\n\r\n vm.reloadData = function(){\r\n var resetPaging = true;\r\n vm.dtInstance.reloadData(resetPaging);\r\n }\r\n\r\n vm.buildTable = function () {\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn('AssetId').withTitle('Asset Id'),\r\n DTColumnBuilder.newColumn('SourceCreatedOn').withTitle('Source CreatedOn'),\r\n DTColumnBuilder.newColumn('MailReceivedOn').withTitle('Mail ReceivedOn'),\r\n DTColumnBuilder.newColumn('SourceResolvedOn').withTitle('Source ResolvedOn'),\r\n DTColumnBuilder.newColumn('Source').withTitle('Source'),\r\n DTColumnBuilder.newColumn('Remark').withTitle('Remark'),\r\n DTColumnBuilder.newColumn('Priority').withTitle('Priority'),\r\n DTColumnBuilder.newColumn('SourceTicketId').withTitle('Source Ticket Id'),\r\n DTColumnBuilder.newColumn('Status').withTitle('Status'),\r\n DTColumnBuilder.newColumn('Skill').withTitle('Skill'),\r\n DTColumnBuilder.newColumn('CallType').withTitle('CallType'),\r\n DTColumnBuilder.newColumn('MobiforceTicketId').withTitle('Mobiforce Ticket Id'),\r\n DTColumnBuilder.newColumn('ProcessingStatus').withTitle('Processing Status')\r\n ];\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function() { \r\n var defer = $q.defer();\r\n defer.resolve(vm.mailhistoryList);\r\n return defer.promise; \r\n }).withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('order', []); \r\n } \r\n }\r\n});\nangular.module('inspinia').service('EmployeeShiftMapService', function (ApiURL, StaffSchedulingAPI, PublicApiURL, ActivityURL, $window, $http, FreelancerURL, SchedulingAPI) {\r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n // this.GetAllInteractionsDashboard = function (data, loggedinUser, token) {\r\n // var url = FreelancerURL + '/api/FreeLancerRegistration/GetAllInteractionsDashboard';\r\n // return $http.put(url, data, {\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // 'Token': token,\r\n // 'UserId': loggedinUser\r\n // }\r\n // });\r\n // }\r\n\r\n this.GetAllShiftsForDate = function (data, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/GetAllShiftsForDate';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.CreateStaffShift = function (data, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/CreateStaffShift';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetEligibleUserForShift = function (shiftId, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/GetEligibleUserForShift?ShiftId=' + shiftId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.PublishShiftToUser = function (shiftId, userId, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffShift/PublishShiftToUser?ShiftId=' + shiftId + '&UserId=' + userId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.ApproveStaffOvertimeshift = function (shiftId, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffOvertimeShift/ApproveStaffOvertimeshift?StaffOvertimeId=' + shiftId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.RejectStaffOvertimeshift = function (shiftId, rejectComment, loginUserId, token) {\r\n var url = StaffSchedulingAPI + '/api/StaffOvertimeShift/RejectStaffOvertimeshift?StaffOvertimeId=' + shiftId + '&RejectComment=' + rejectComment;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n // this.GetAllShiftsForDateWithStatusXLS = function (data,token,loginUserId) {\r\n // var url = ApiURL + '/api/Report/GetAllShiftsForDateWithStatusXLS';\r\n // return $http.post(url,data, {\r\n // headers: {\r\n // 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId\r\n // }\r\n // });\r\n // }\r\n\r\n this.GetAllShiftsForDateWithStatusXLS = function (startDate,endDate,status,userid,shiftType, accountId) {\r\n var url = PublicApiURL + '/api/Report/GetAllStaffShitData?ShiftFromDate=' +startDate+ '&ShiftToDate=' +endDate+ '&Status=' + status+ '&UserId=' +userid + '&ShiftType=' + shiftType + '&AccountId=' + accountId;\r\n $window.open(url);\r\n }\r\n\r\n});\nangular.module('inspinia').controller('EmployeeShiftMapController', function (EmployeeShiftMapService, shiftManagementService, TeamFormCreationService, $q, $filter, $log, $state, $localStorage, UIURL, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, uiCalendarConfig, ImageUrl, PublicApiURL, $window) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.broadcastSentUser = true;\r\n $scope.toggleForBroadcast = function () {\r\n $scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.timeLineDetail = true;\r\n $scope.openTimeLine = function () {\r\n $scope.timeLineDetail = !$scope.timeLineDetail;\r\n $scope.myvalue = true;\r\n };\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n $scope.toggleMenu = function (ShiftId) {\r\n vm.GetEligibleUserForShift(ShiftId);\r\n if ($scope.manualAssignationWrapper === \"hide-nav\") {\r\n $scope.manualAssignationWrapper = \"show-nav\";\r\n }\r\n else {\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n }\r\n };\r\n $scope.hideAllUser = true;\r\n\r\n $scope.showAllUser = function () {\r\n $scope.hideAllUser = true;\r\n };\r\n $scope.hideAllUserbutton = function () {\r\n $scope.hideAllUser = false;\r\n };\r\n $scope.userClass_status = true;\r\n $scope.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.userClass_status = true;\r\n $scope.broadcastSentUser = true;\r\n $scope.timeLineDetail = true;\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n vm.closeFeedbackoption();\r\n }\r\n $scope.close360ViewBroadcaste = function () {\r\n $scope.myvalue = false;\r\n angular.element('#div1').removeClass(\"alpha\");\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userSingle = function () {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.userFilter = true;\r\n $scope.assignJobFilter = function () {\r\n $scope.userFilter = !$scope.userFilter;\r\n $scope.myvalue = true;\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n // $scope.toggleMenu();\r\n };\r\n $scope.minatureSlide = true;\r\n $scope.minatureSlideBtn = function () {\r\n $scope.minatureSlide = !$scope.minatureSlide;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.hideFilter = function () {\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n var token = $localStorage.token;\r\n vm.IsOpenBucketEnabled = $localStorage.IsOpenBucketEnabled;\r\n vm.IsAutoAssignToCHDteam = $localStorage.IsAutoAssignToCHDteam;\r\n vm.IsOpenBucketEnabled = $localStorage.IsOpenBucketEnabled;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.accountId = $localStorage.accountConfig.AccountId;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n\r\n // variables required for slot allocation\r\n vm.sorttype = \"desc\";\r\n vm.SortType = \"desc\";\r\n vm.SortField = 'CreatedOn';\r\n vm.ShiftList = [];\r\n vm.assignButtonDisable = false;\r\n vm.shiftsListLength = 0;\r\n vm.shiftPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.ActiveShifTab = 'RegularShift';\r\n vm.AssignedTo = '';\r\n vm.shiftStatus = '';\r\n vm.DateField = 'CreatedOn';\r\n vm.State = '';\r\n vm.City = '';\r\n vm.shiftId = '';\r\n vm.userskill = '';\r\n vm.disableuploadbutton = false;\r\n var startDate = moment().subtract(0, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.bookingdates = { startDate: moment().subtract(0, 'day'), endDate: moment() };\r\n vm.bookingRanges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n\r\n var scdt = new Date();\r\n scdt.setMinutes(scdt.getMinutes() + 30);\r\n vm.SourceCreationDate = scdt;\r\n var pcdt = new Date();\r\n pcdt.setDate(pcdt.getDate() + 7);\r\n vm.PlannedClosureDate = pcdt;\r\n\r\n vm.openCalendar = function (e, picker) {\r\n vm.ClosureDateTime.open = true;\r\n };\r\n var plannedclosuredatelimit = new Date();\r\n plannedclosuredatelimit.setMinutes(plannedclosuredatelimit.getMinutes() + 1)\r\n vm.ClosureDateTime = { date: '', datepickerOptions: { minDate: plannedclosuredatelimit } };\r\n\r\n var date = new Date();\r\n var d = date.getDate();\r\n var m = date.getMonth();\r\n var y = date.getFullYear();\r\n vm.eventsF = function (start, end, timezone, callback) {\r\n var s = new Date(start).getTime() / 1000;\r\n var e = new Date(end).getTime() / 1000;\r\n var m = new Date(start).getMonth();\r\n var events = [{\r\n title: 'Feed Me ' + m,\r\n start: s + (50000),\r\n end: s + (100000),\r\n allDay: false,\r\n className: ['customFeed']\r\n }];\r\n callback(events);\r\n };\r\n\r\n vm.ShiftStatusList = [\"Created\", \"Published\", \"Accepted\", \"Inprogress\", \"Completed\", \"Lunch Break\", \"Rejected\", \"Approved\"];\r\n\r\n // start calender\r\n var scheduleStartDate = new Date();\r\n var scheduleEndDate = new Date();\r\n scheduleEndDate.setDate(scheduleEndDate.getDate() + 6);\r\n vm.slotBookingdates = { scheduleStartDate: moment().subtract(7, 'day'), scheduleEndDate: moment() };\r\n $scope.showCalendar = false;\r\n $scope.showBookingTab = false;\r\n vm.slotDate = $filter('date')(new Date(), 'yyyy-MM-dd');\r\n $scope.toggleCalendar = function (userId) {\r\n vm.slotBookingUserId = userId;\r\n $scope.showBookingTab = true;\r\n $scope.showCalendar = !$scope.showCalendar;\r\n };\r\n $scope.dateOptions = {\r\n formatYear: 'yyyy',\r\n startingDay: 1,\r\n minDate: scheduleStartDate,\r\n maxDate: scheduleEndDate\r\n };\r\n $scope.date = scheduleStartDate;\r\n\r\n\r\n vm.Applyfilter = function () {\r\n $scope.UserTablepagination = {};\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n $scope.hideFilter();\r\n vm.GetAllShiftsForDate();\r\n }\r\n\r\n vm.sortColumn = function (col) {\r\n vm.SortField = col;\r\n if (vm.SortType == 'desc') {\r\n vm.SortType = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n } else {\r\n vm.SortType = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n };\r\n\r\n vm.sortClass = function (col) {\r\n if (vm.SortField == col) {\r\n if (vm.SortType == 'desc') {\r\n return 'fa fa-arrow-down';\r\n } else {\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n vm.closeSearchText = function () {\r\n vm.shiftStatus = '';\r\n vm.departmemtId = '';\r\n vm.locationId = '';\r\n vm.AssigedTo = '';\r\n vm.role = '';\r\n vm.GetAllShiftsForDate();\r\n }\r\n\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n $scope.Userpagination = {};\r\n PageIndex = 1;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.GetAllShiftsForDate();\r\n };\r\n\r\n\r\n vm.implementSelectItemsUsers = function (itemList, scope) {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n scope.selectRowUsers = function (i) {\r\n vm.toBeAssigned = [];\r\n scope.showMinusUsers = false;\r\n scope.selectAllUsers = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n var myObject = {\r\n 'UserId': d.UserId,\r\n 'Skill': d.Skill\r\n };\r\n vm.toBeAssigned.push(myObject)\r\n scope.showMinusUsers = true;\r\n }\r\n\r\n });\r\n }\r\n scope.applyAllNewJobSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllUsers;\r\n });\r\n }\r\n\r\n scope.resetAllSelect = function () {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n }\r\n }\r\n\r\n vm.implementSelectItemsUsers('ShiftList', this);\r\n\r\n $scope.totalTableUsersBG = 0;\r\n $scope.userSMETablePerPage = vm.userPageListCount;\r\n $scope.UserSMETablepagination = {\r\n current: 1\r\n };\r\n\r\n vm.changeUserSMEPageListCount = function () {\r\n $scope.userSMETablePerPage = vm.shiftPageListCount;\r\n PageSize = $scope.userSMETablePerPage;\r\n $scope.UserSMETablepageChanged($scope.UserSMETablepagination.current);\r\n }\r\n\r\n PageIndex = $scope.UserSMETablepagination.current;\r\n $scope.UserSMETablepageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetAllInteractions();\r\n };\r\n\r\n $scope.totalTableShifts = 0;\r\n $scope.userTablePerPage = vm.shiftPageListCount;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeUserPageListCount = function () {\r\n $scope.userTablePerPage = vm.shiftPageListCount;\r\n PageSize = $scope.userTablePerPage;\r\n $scope.UserTablepageChanged($scope.UserTablepagination.current);\r\n }\r\n\r\n PageIndex = $scope.UserTablepagination.current;\r\n $scope.UserTablepageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetAllShiftsForDate();\r\n };\r\n\r\n getAllRole()\r\n\r\n function getAllRole() {\r\n TeamFormCreationService.getAllRoleByUserId(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.RolesList = resp.data;\r\n }\r\n }\r\n })\r\n \r\n }\r\n\r\n vm.GetAllShiftsForDate = function () {\r\n data = {\r\n \"ShiftFromDate\": startDate,\r\n \"ShiftToDate\": endDate,\r\n \"Status\": vm.shiftStatus,\r\n \"DepartmentId\": vm.departmemtId,\r\n \"LocationId\": vm.locationId,\r\n \"UserId\": \"\",\r\n \"Role\": vm.role,\r\n \"ShiftType\": vm.ActiveShifTab,\r\n \"OrderBy\": \"ShiftForDate\",\r\n \"SortType\": vm.SortType,\r\n \"PageIndex\": PageIndex,\r\n \"PageSize\": PageSize\r\n }\r\n EmployeeShiftMapService.GetAllShiftsForDate(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ShiftList = resp.data.objStaffShiftModelResList;\r\n $scope.totalTableShifts = resp.data.TotalCount;\r\n if (vm.ShiftList.length < vm.shiftPageListCount)\r\n vm.shiftsListLength = $scope.totalTableShifts;\r\n else\r\n vm.shiftsListLength = PageIndex * vm.shiftPageListCount;\r\n if (PageIndex == 1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex - 1) * vm.shiftPageListCount) + 1);\r\n }\r\n\r\n })\r\n }\r\n\r\n vm.GetAllShiftsForDate();\r\n\r\n // vm.GetAllInteractionsDashboard = function () {\r\n // data = {\r\n // \"Status\": vm.shiftStatus,\r\n // \"Skill\": vm.userskill == \"\" ? \"\" : vm.userskill.join(\"|\"),\r\n // \"DateField\": vm.DateField,\r\n // \"FromDate\": startDate,\r\n // \"ToDate\": endDate,\r\n // \"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n // \"InteractionType\": vm.InteractionType,\r\n // \"PageIndex\": PageIndex,\r\n // \"PageCount\": PageSize,\r\n // \"State\": vm.State,\r\n // \"City\": vm.City\r\n // }\r\n // EmployeeShiftMapService.GetAllInteractionsDashboard(data, loggedinUser, token).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // vm.TotalSlots = resp.data.TotalSlots;\r\n // vm.AssignedSlots = resp.data.AssignedSlots;\r\n // vm.PendingSlots = resp.data.PendingSlots;\r\n // vm.CompletedSlots = resp.data.CompletedSlots;\r\n // vm.BreachedSlots = resp.data.BreachedSlots;\r\n // }\r\n\r\n // })\r\n // }\r\n\r\n vm.getAllShiftsByType = function (value) {\r\n $scope.totalTableShifts = 0;\r\n vm.ActiveShifTab = value;\r\n if (vm.ActiveShifTab == 'RegularShift') {\r\n vm.GetAllShiftsForDate();\r\n }\r\n if (vm.ActiveShifTab == 'OverTime') {\r\n vm.GetAllShiftsForDate();\r\n }\r\n vm.shiftStatus = '';\r\n vm.departmemtId = '';\r\n vm.locationId = '';\r\n $scope.UserTablepagination = {};\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n }\r\n\r\n vm.AddShiftModal = function () {\r\n vm.GetAllLocations();\r\n vm.shiftModal = $uibModal.open({\r\n templateUrl: 'CreateShift.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n vm.closeShiftModal = function () {\r\n vm.shiftModal.close();\r\n vm.SelectedLocation = \"\";\r\n vm.SelectedDepartment = \"\";\r\n vm.startDate = \"\";\r\n vm.endDate = \"\";\r\n \r\n\r\n }\r\n\r\n\r\n vm.BulkShiftMapView = function () {\r\n\t\t\t$state.go('index.bulkuploadshiftmap', {\r\n\t\t\t}, {\r\n\t\t\t\treload: true\r\n\t\t\t});\r\n\t\t}\r\n\r\n vm.UserId = \"\";\r\n vm.GetAllShiftsForDateWithStatusXLS = function () {\r\n // var data = {\r\n // \"ShiftFromDate\": startDate,\r\n // \"ShiftToDate\": endDate,\r\n // \"Status\": vm.shiftStatus,\r\n // // \"DepartmentId\": vm.departmemtId,\r\n // // \"LocationId\": vm.locationId,\r\n // \"UserId\": \"\",\r\n // \"ShiftType\": vm.ActiveShifTab\r\n // }\r\n\t\t\tEmployeeShiftMapService.GetAllShiftsForDateWithStatusXLS(startDate,endDate,vm.shiftStatus,vm.UserId,vm.ActiveShifTab,vm.accountId)\r\n // .then(function (resp) {\r\n\t\t\t\t// if (resp && resp.data) {\r\n\t\t\t\t// \tvar xlsData = resp.data;\r\n // // $window.open(urlWithFeasible, '_blank')\r\n\t\t\t\t// }\r\n\t\t\t// })\r\n\t\t}\r\n\r\n vm.GetAllLocations = function () {\r\n shiftManagementService.GetAllLocations(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp) {\r\n vm.locationsList = resp.data;\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllLocations();\r\n\r\n vm.GetAllDepartment = function () {\r\n shiftManagementService.GetAllDepartment(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp) {\r\n vm.departmentList = resp.data;\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllDepartment();\r\n\r\n vm.GetAllDepartmentsForLocation = function (locationId) {\r\n shiftManagementService.GetAllDepartmentsForLocation(locationId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp) {\r\n vm.departmentListByLocation = resp.data;\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n\r\n $scope.getCurrentDate = function() {\r\n return new Date();\r\n };\r\n\r\n vm.CreateStaffShift = function () {\r\n vm.stockAssignation_form.submitted = true;\r\n if (vm.stockAssignation_form.$valid) {\r\n var data = {\r\n \"LocationId\": vm.SelectedLocation.LocationId,\r\n \"DepartmentId\": vm.SelectedDepartment.DepartmentId,\r\n \"StartDate\": moment(vm.startDate).format(\"YYYY-MM-DD\"),\r\n \"EndDate\": moment(vm.endDate).format(\"YYYY-MM-DD\")\r\n }\r\n EmployeeShiftMapService.CreateStaffShift(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201 && resp) {\r\n vm.showSuccess(\"Success\", 'Shifts created successfully');\r\n vm.closeShiftModal();\r\n $timeout(function () {\r\n vm.GetAllShiftsForDate();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n vm.PublishShiftToUser = function (userId) {\r\n vm.disableBookingButton = true;\r\n EmployeeShiftMapService.PublishShiftToUser(vm.shiftId, userId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 202 && resp) {\r\n vm.disableBookingButton = false;\r\n $scope.toggleMenu();\r\n vm.showSuccess(\"Success\", 'Shift published successfully');\r\n $timeout(function () {\r\n vm.GetAllShiftsForDate();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableBookingButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n\r\n vm.ApproveStaffOvertimeshift = function (shiftId) {\r\n vm.disableBookingButton = true;\r\n EmployeeShiftMapService.ApproveStaffOvertimeshift(shiftId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 202 && resp) {\r\n vm.disableBookingButton = false;\r\n vm.showSuccess(\"Success\", 'Shift approved successfully');\r\n $timeout(function () {\r\n vm.GetAllShiftsForDate();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableBookingButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n\r\n vm.RejectModal = function (item) {\r\n vm.shiftId = item;\r\n vm.RejctShareModal = $uibModal.open({\r\n templateUrl: 'rejectshiftmodal.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n vm.closerejectmodal = function () {\r\n vm.disableBookingButton = false;\r\n vm.RejectComment = \"\";\r\n vm.RejctShareModal.close();\r\n }\r\n\r\n\r\n vm.RejectStaffOvertimeshift = function () {\r\n vm.disableBookingButton = true;\r\n EmployeeShiftMapService.RejectStaffOvertimeshift(vm.shiftId, vm.RejectComment, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 202 && resp) {\r\n vm.showSuccess(\"Success\", 'Shift rejected successfully');\r\n vm.closerejectmodal();\r\n $timeout(function () {\r\n vm.GetAllShiftsForDate();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableBookingButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n\r\n vm.GetEligibleUserForShift = function (shiftId) {\r\n vm.shiftId = shiftId;\r\n EmployeeShiftMapService.GetEligibleUserForShift(shiftId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200 && resp) {\r\n vm.eligibleUsersList = resp.data;\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n }\r\n});\r\n\r\nangular.module('inspinia').filter('searchUser', function () {\r\n return function (items, search) {\r\n var filtered = [];\r\n if (search) {\r\n angular.forEach(items, function (item) {\r\n var searchstr = new RegExp(search, \"i\");\r\n if (item.id.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.User_Type.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.city.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.contactnumber.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.name.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.role.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.state.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n });\r\n } else {\r\n filtered = items;\r\n }\r\n return filtered;\r\n }\r\n})\nangular.module('inspinia').service('DirectSaleToCustomerService', function (MMFCRMURL,ApiURL,AcessoriesURL, $http, $localStorage) {\r\n\r\n this.GetUserAllSalesOrderDetailforWeb = function (loggedinUser, token, orderStatus, SearchText, category, brandName, productGroup, orderBy, sortType, fPageIndex, fPageSize, startDate, endDate, dateField) {\r\n var url = MMFCRMURL + '/api/ZohoInventoryController/GetUserAllSalesOrderDetailforWeb?OrderStatus=' + orderStatus + '&startDate=' + startDate + '&EndDate=' + endDate + '&SearchText=' + SearchText + '&dateField=' + dateField + '&category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup + '&OrderBy=' + orderBy + '&SortType=' + sortType + '&PageSize=' + fPageSize + '&PageIndex=' + fPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllTicketsForContact = function (loggedinUser, token, contactNo) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/GetAllTicketsForContact?Contact=' + contactNo;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.getAllCity = function (userId, state,token) {\r\n var url = ApiURL + '/api/AddressMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':userId }\r\n });\r\n}\r\n\r\n this.GetAllAreaByStateCity = function (loggedinUser, token, state, city) {\r\n var url = ApiURL + '/api/AddressMaster/GetAllAreaByStateCity?State=' + state +'&City=' + city;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllPincodeBYAreaStateCity = function (loggedinUser, token,state, city, area) {\r\n var url = ApiURL + '/api/AddressMaster/GetAllPincodeBYAreaStateCity?State=' + state +'&City=' + city + '&Area=' + area;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CreateConsumer = function (data, loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/CreateConsumer';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GenerateBill = function (data,consumerId, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/ServiceCentreBill/GenerateBill?consumerId=' + consumerId;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetServiceableArea = function (data, loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/GetServiceableArea';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CreateCase = function (data, loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/CreateTicket';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetWarrantyDetailsForProduct = function (data, loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/GetWarrantyDetailsForProduct';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetConsumerDetails = function (loggedinUser, token, contactNo) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/GetConsumerDetails?ConsumerContact=' + contactNo;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetBrandProductGroup = function (data, loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMBrandProductMaster/GetBrandProductGroup';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllProductsForBrand = function (data, loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllProductsForBrand';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllActiveProductModelMaster = function (ProductName, brand,loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllActiveProductModelMaster?productName=' + ProductName + '&brandName=' + brand;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\r\n this.GetAddressFromPinCode = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetByPincode?pincode=' + data;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.GenerateConsumerInvoice = function (ticketId,loggedinUser, token) { \r\n var url = ApiURL + '/api/PDFReportMapper/GenerateConsumerInvoiceFromMobile?ticketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n this.downloadOnSiteReport = function ( loggedinUser, token,TicketId) { \r\n var url = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n }\r\n\r\n this.SendHappyCodeSMS = function (TicketId,accountId,loggedinUser, token) { \r\n var url = ApiURL + '/api/Ticket/SendHappyCodeSMS?TicketId=' + TicketId + '&accountId=' + accountId;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n }\r\n this.GetItemBrandName = function (token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemBrandName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetUserInventoryStockforweb = function (data,token) {\r\n var url = AcessoriesURL + '/api/MMFPart/GetUserInventoryStockforweb'\r\n return $http.put(url, data,{\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('DirectSaleToCustomerController', function (DirectSaleToCustomerService,InventoryItemListService,TeamMyStockService, CentralHDTicketsViewService, ReferService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.IsAppointmentOTPNeeded = $localStorage.accountConfig.IsAppointmentOTPNeeded;\r\n\t\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvar fPageIndex = 1;\r\n\t\tvm.IsConsumerFound = false;\r\n\t\tvm.consumerTitle = '';\r\n\t\tvm.consumerFirstName = '';\r\n\t\tvm.consumerLastName = '';\r\n\t\tvm.consumerArea = '';\r\n\t\tvm.financePageListCount = 10;\r\n\t\tstartDate = \"\";\r\n\t\tendDate = \"\";\r\n\t\tvm.sortType = \"\";\r\n\t\tvm.ServiceCenterVendorId = \"\";\r\n\t\tvm.orderBy = \"\";\r\n\t\tvm.itemValue = \"\";\r\n\t\tvm.OrderStatus = \"GoodStock\";\r\n\t\tvm.SearchText = \"\";\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tif (!$localStorage.consumerContact) {\r\n\t\t\t// If not, initialize it to an empty string\r\n\t\t\t$localStorage.consumerContact = '';\r\n\t\t}\r\n\r\n\t\t// Assign the value of consumerContact to $localStorage.consumerContact whenever it changes\r\n\t\t$scope.$watch('consumerContact', function (newVal) {\r\n\t\t\t$localStorage.consumerContact = newVal;\r\n\t\t});\r\n\r\n\t\t// Retrieve the value of consumerContact from local storage\r\n\t\t$scope.consumerContact = $localStorage.consumerContact;\r\n\t\tvm.consumerAltContact = '';\r\n\t\tvm.PersonalEmail = '';\r\n\t\tvm.consumerType = '';\r\n\t\tvm.AddressType = 'Home';\r\n\t\tvm.warrantyStatus = '';\r\n\t\tvm.dateOfPurchase = '';\r\n\t\tvm.callType = '';\r\n\t\tvm.AppointmentTime = '08:00'\r\n\t\tvm.AppointmentDate = moment().format('YYYY-MM-DD');\r\n\t\tvm.consumerCity = '';\r\n\t\tvm.consumerPincode = '';\r\n\t\tvm.consumerState = '';\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\tvm.minDate = new Date();\r\n\t\tvm.datepickerOptions = {\r\n\t\t\tminDate: vm.minDate\r\n\t\t};\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.timeSlots = [\r\n\t\t\t{ value: '08:00', label: '08:00 AM to 10:00 AM' },\r\n\t\t\t{ value: '10:00', label: '10:00 AM to 12:00 PM' },\r\n\t\t\t{ value: '12:00', label: '12:00 PM to 02:00 PM' },\r\n\t\t\t{ value: '14:00', label: '02:00 PM to 04:00 PM' },\r\n\t\t\t{ value: '16:00', label: '04:00 PM to 06:00 PM' },\r\n\t\t\t{ value: '18:00', label: '06:00 PM to 08:00 PM' }\r\n\t\t];\r\n\r\n\t\tfunction getCurrentDateTime() {\r\n\t\t\treturn new Date();\r\n\t\t}\r\n\r\n\t\tfunction isTimeSlotValid(slot) {\r\n\t\t\tvar now = getCurrentDateTime();\r\n\t\t\tvar selectedDate = moment(vm.AppointmentDate).format('YYYY-MM-DD');\r\n\r\n\t\t\tif (selectedDate) {\r\n\t\t\t\tif (!(selectedDate instanceof Date)) {\r\n\t\t\t\t\tselectedDate = new Date(selectedDate);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar slotTime = slot.value.split(':');\r\n\t\t\t\tvar selectedDateTime = new Date(selectedDate);\r\n\t\t\t\tselectedDateTime.setHours(parseInt(slotTime[0]), parseInt(slotTime[1]), 0, 0);\r\n\r\n\t\t\t\treturn selectedDateTime >= now;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tfunction updateAvailableTimeSlots() {\r\n\t\t\t$timeout(function () {\r\n\t\t\t\tvm.availableTimeSlots = vm.timeSlots.filter(isTimeSlotValid);\r\n\t\t\t\tselectDefaultTimeSlot();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction selectDefaultTimeSlot() {\r\n\t\t\tif (vm.availableTimeSlots.length > 0) {\r\n\t\t\t\tvm.AppointmentTime = vm.availableTimeSlots[0].value;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.$watch('customercrmlistctrl.AppointmentDate', function (newValue, oldValue) {\r\n\t\t\tif (newValue !== oldValue) {\r\n\t\t\t\tupdateAvailableTimeSlots();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Initialize available time slots\r\n\t\tupdateAvailableTimeSlots();\r\n\r\n\t\tvm.isDateDisabled = function () {\r\n\t\t\treturn !vm.brandName ||\r\n\t\t\t\t!vm.productGroup ||\r\n\t\t\t\t!vm.product;\r\n\t\t};\r\n\r\n\t\tvm.getCurrentDate = function () {\r\n\t\t\tvar currentDate = new Date();\r\n\t\t\treturn currentDate;\r\n\t\t};\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\tvm.openPincodeSelectionModal = function () {\r\n\t\t\tvm.pincodeSelectionModalInstance = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'pincodeSelectionModal.html',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.closePincodeSelectionModal = function () {\r\n\t\t\tif (vm.pincodeSelectionModalInstance) {\r\n\t\t\t\tvm.pincodeSelectionModalInstance.close();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.changeMyStockPageListCount = function () {\r\n\t\t\t$scope.usersStockPageRequest = vm.financePageListCount;\r\n\t\t\tPageSize = $scope.usersStockPageRequest;\r\n\t\t\t$scope.Requestpagination.current = 1;\r\n\t\t\t$scope.MystockTablePageChanged($scope.Requestpagination.current);\r\n\t\t };\r\n\r\n\t\t vm.GetUserInventoryStockforweb = function () {\r\n\t\t\tvm.MyInventoryStockList = [];\r\n\t\t\tvar data = {\r\n\t\t\t SearchText: vm.SearchText,\r\n\t\t\t PageIndex: PageIndex,\r\n\t\t\t PageSize: PageSize,\r\n\t\t\t StockType: vm.OrderStatus,\r\n\t\t\t MMFPartName: vm.selectedPart,\r\n\t\t\t BrandName: vm.brandName,\r\n\t\t\t ProductGroup: vm.productGroup,\r\n\t\t\t PartSubGroup: vm.partName,\r\n\t\t\t StartDate: startDate,\r\n\t\t\t EndDate: endDate,\r\n\t\t\t OrderBy: vm.orderBy,\r\n\t\t\t SortType: vm.sortType,\r\n\t\t\t};\r\n\t\t\tDirectSaleToCustomerService.GetUserInventoryStockforweb(data, token).then(\r\n\t\t\t function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t vm.MyInventoryStockList = resp.data.ListMMFPartModelRes;\r\n\t\t\t\t $scope.totalInventory = resp.data.RecordCount;\r\n\t\t\t\t vm.totalInventoryValue = resp.data.InventoryTotal;\r\n\t\t\t\t if (vm.MyInventoryStockList.length < vm.financePageListCount) {\r\n\t\t\t\t\tvm.myStockListLength = $scope.totalInventory;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\tvm.myStockListLength = PageIndex * vm.financePageListCount;\r\n\t\t\t\t\t}\r\n\t\t\t\t if (PageIndex == 1){\r\n\t\t\t\t\tvm.countdpageindexCount = 1;\r\n\t\t\t\t } \r\n\t\t\t\t else{\r\n\t\t\t\t\tvm.countdpageindexCount =\r\n\t\t\t\t\t (PageIndex - 1) * vm.financePageListCount + 1;\r\n\t\t\t\t }\r\n\t\t\t\t}\r\n\t\t\t },\r\n\t\t\t function (error) { }\r\n\t\t\t);\r\n\t\t };\r\n\t\t// vm.GetUserInventoryStockforweb();\r\n\t\tvm.ProceedToAddPincode = function(){\r\n\t\t\tvm.FindPincode_form.submitted = true;\r\n\t\t\tif (vm.FindPincode_form.$valid) {\r\n\t\t\t\tvm.closePincodeSelectionModal();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\r\n\r\n\t\t$scope.totalFinList = 0;\r\n\t\t$scope.usersPerPage = vm.allSalesOrderPageListCount;\r\n\t\t$scope.SalesOrderPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllSalesOrderPageListCount = function () {\r\n\t\t\t$scope.usersPerPage = vm.allSalesOrderPageListCount;\r\n\t\t\tPageSize = $scope.usersPerPage;\r\n\t\t\t$scope.AllSalesOrderTablePageChanged($scope.SalesOrderPagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tfPageIndex = $scope.SalesOrderPagination.current;\r\n\t\t\t$scope.AllSalesOrderTablePageChanged = function (newPage) {\r\n\t\t\t\tfPageIndex = newPage;\r\n\t\t\t\tvm.GetUserAllSalesOrderDetailforWeb(loggedinUser, token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, fPageIndex, PageSize, startDate, endDate, vm.dateField);\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfPageIndex = $scope.SalesOrderPagination.current;\r\n\t\t$scope.AllSalesOrderTablePageChanged = function (newPage) {\r\n\t\t\tPageIndex = newPage;\r\n\t\t\tvm.GetUserAllSalesOrderDetailforWeb(loggedinUser, token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, fPageIndex, PageSize, startDate, endDate, vm.dateField);\r\n\r\n\t\t};\r\n\r\n\r\n\t\tvm.TicketPartOrderList = [];\r\n\t\tvm.GetUserAllSalesOrderDetailforWeb = function () {\r\n\t\t\tDirectSaleToCustomerService.GetUserAllSalesOrderDetailforWeb(loggedinUser, token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, fPageIndex, PageSize, startDate, endDate, vm.dateField).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.TicketPartOrderList = resp.data.zohoItemRequestModels;\r\n\t\t\t\t\t$scope.totalFinList = resp.data.Count;\r\n\t\t\t\t\tif (vm.TicketPartOrderList.length < vm.allSalesOrderPageListCount)\r\n\t\t\t\t\t\tvm.financeListLength = $scope.totalFinList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.financeListLength = fPageIndex * vm.allSalesOrderPageListCount;\r\n\t\t\t\t\tif (fPageIndex == 1)\r\n\t\t\t\t\t\tvm.fpageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.fpageindexCount = (((fPageIndex - 1) * vm.allSalesOrderPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\t\r\n\t\tvm.CreateConsumer = function () {\r\n\t\t\tvm.customercreate_form.submitted = true;\r\n\t\t\tif (vm.customercreate_form.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tdata = {\r\n\t\t\t\t\t\"strConsumerTitle\": vm.consumerTitle,\r\n\t\t\t\t\t\"strConsumerFirstName\": vm.consumerFirstName,\r\n\t\t\t\t\t\"strConsumerLastName\": vm.consumerLastName,\r\n\t\t\t\t\t\"strConsumerContact\": $scope.consumerContact,\r\n\t\t\t\t\t\"strConsumerAlternateContact\": vm.consumerAltContact,\r\n\t\t\t\t\t\"strPersonalEmail\": vm.PersonalEmail,\r\n\t\t\t\t\t\"strConsumerArea\": \"string\",\r\n\t\t\t\t\t\"strConsumerLandMark\": \"string\",\r\n\t\t\t\t\t\"strConsumerType\": vm.consumerType,\r\n\t\t\t\t\t\"udListAddresses\": [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"strAddressType\": vm.AddressType,\r\n\t\t\t\t\t\t\t\"strAddress1\": vm.AddressLine1,\r\n\t\t\t\t\t\t\t\"strAddress2\": vm.AddressLine2,\r\n\t\t\t\t\t\t\t\"strCity\": vm.consumerCity,\r\n\t\t\t\t\t\t\t\"strDistrict\": \"string\",\r\n\t\t\t\t\t\t\t\"strPostalCode\": vm.consumerPincode,\r\n\t\t\t\t\t\t\t\"strState\": vm.consumerState,\r\n\t\t\t\t\t\t\t\"strCountry\": \"India\",\r\n\t\t\t\t\t\t\t\"bIsDefaultAddress\": true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t\tDirectSaleToCustomerService.CreateConsumer(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200 && resp.data) {\r\n\t\t\t\t\t\tvm.consumerData = resp.data;\r\n\t\t\t\t\t\tvm.consumerAddress = resp.data.Addresses[0];\r\n\t\t\t\t\t\tvm.IsConsumerFound = true;\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", 'Consumer created successfully.');\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.clearCustomerData();\r\n\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.clearCustomerData = function () {\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.consumerTitle = '';\r\n\t\t\tvm.consumerFirstName = '';\r\n\t\t\tvm.consumerLastName = '';\r\n\t\t\t// $localStorage.consumerContact = '';\r\n\t\t\t// $scope.consumerContact = '';\r\n\t\t\tvm.consumerAltContact = '';\r\n\t\t\tvm.PersonalEmail = '';\r\n\t\t\tvm.consumerType = '';\r\n\t\t\tvm.AddressType = 'Home';\r\n\t\t\tvm.consumerCity = '';\r\n\t\t\tvm.consumerPincode = '';\r\n\t\t\tvm.consumerState = '';\r\n\t\t\tvm.AddressLine1 = '';\r\n\t\t\tvm.AddressLine2 = '';\r\n\t\t\tvm.AppointmentTime = '08:00'\r\n\t\t\tvm.AppointmentDate = moment().format('YYYY-MM-DD');\r\n\t\t}\r\n\t\tvm.ConfirmationModal = function (message) {\r\n\t\t\t$scope.confirmationMessage = message;\r\n\t\t\tvm.confirmationModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ConfirmationcasecreationModel.html',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.CloseConfirmationModel = function () {\r\n\t\t\tvm.confirmationModelOpen.close();\r\n\t\t}\r\n\r\n\t\tvm.openNonServiceableAreaConfirmationModal = function () {\r\n\t\t\tvm.confirmationModalInstance = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ConfirmationNonServCaseModal.html',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tvm.CloseAreaConfirmationModal = function () {\r\n\t\t\tif(vm.confirmationModalInstance){\r\n\t\t\t\tvm.confirmationModalInstance.close();\r\n\t\t\t}\r\n\t\t\tvm.brandName = '';\r\n\t\t\tvm.productGroup = '';\r\n\t\t\tvm.product = '';\r\n\t\t\tvm.productdefect = '';\r\n\t\t\tvm.caseDescription = '';\r\n\t\t\tvm.modelNumber = '';\r\n\t\t\tvm.warrantyStatus = '';\r\n\t\t\tvm.dateOfPurchase = '';\r\n\t\t\tvm.callType = '';\r\n\t\t\tvm.AppointmentDateTime = '';\r\n\t\t\tvm.WarrantyData = \"\";\r\n\t\t\tvm.AppointmentDate = moment().format('YYYY-MM-DD');\r\n\t\t\tupdateAvailableTimeSlots();\r\n\t\t}\r\n\r\n\r\n\t\tvm.GenerateConsumerInvoice = function (TicketId) {\r\n\t\t\tDirectSaleToCustomerService.GenerateConsumerInvoice(TicketId,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Customer Invoice Generated\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.pdfimage = \"\";\r\n\t\tvm.DocumentAvailableMessage = \"\";\r\n\t\tvm.downloadOnSiteReport = function (ticketId) {\r\n\t\t\tvm.PDFViewRport();\r\n\t\t\tDirectSaleToCustomerService.downloadOnSiteReport(loggedinUser, token, ticketId).then(function (resp) {\r\n\t\t\t\tvm.responseDataList = resp.data;\r\n\t\t\t\tvar arrrayBuffer = base64ToArrayBuffer(vm.responseDataList);\r\n\t\t\t\tvar blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n\t\t\t\tvm.pdfimage = URL.createObjectURL(blob);\r\n\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.PDFViewRport = function (page) {\r\n\t\t\tvm.pdfimage = \"\";\r\n\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\t$scope.selected = null;\r\n\t\t\tjobAppointmentModalReport = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'PDFViewDownload.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t\tvm.PDFUserModalReport = function () {\r\n\t\t\tjobAppointmentModalReport.close();\r\n\t\t}\r\n\r\n\t\tfunction base64ToArrayBuffer(base64) {\r\n\t\t\tvar ret = base64.replace('data:application/pdf;base64,', '');\r\n\t\t\tvar binaryString = atob(ret);\r\n\t\t\tvar binaryLen = binaryString.length;\r\n\t\t\tvar bytes = new Uint8Array(binaryLen);\r\n\t\t\tfor (var i = 0; i < binaryLen; i++) {\r\n\t\t\t\tvar ascii = binaryString.charCodeAt(i);\r\n\t\t\t\tbytes[i] = ascii;\r\n\t\t\t}\r\n\t\t\treturn bytes;\r\n\t\t}\r\n\r\n\t\tvm.ResetFilter = function () {\r\n\t\t\t$localStorage.consumerContact = '';\r\n\t\t\t$scope.consumerContact = '';\r\n\t\t\tvm.IsConsumerFound = false;\r\n\t\t\tvm.ErrorMessage = '';\r\n\t\t}\r\n\t\tfunction getAllStates() {\r\n\t\t\tvar defered = $q.defer();\r\n\t\t\tReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tdefered.resolve(resp);\r\n\t\t\t}, function (error) {\r\n\t\t\t\tdefered.reject(error);\r\n\t\t\t});\r\n\t\t\treturn defered.promise;\r\n\t\t}\r\n\r\n\t\tvar allStatePromise = getAllStates(loggedinUser);\r\n\t\tallStatePromise.then(function (resp) {\r\n\t\t\tvm.StateList = resp.data;\r\n\r\n\t\t});\r\n\t\tfunction getallCities(state) {\r\n\t\t\tReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t\t\tvm.CityList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\r\n\t\tvm.selectedState = function (state) {\r\n\t\t\tgetallCities(state);\r\n\t\t\tgetareaallCities(state);\r\n\t\t}\r\n\t\tfunction getareaallCities(state) {\r\n\t\t\tDirectSaleToCustomerService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t\t\tvm.AreaCityList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction GetAllAreaByStateCity() {\r\n\t\t\tDirectSaleToCustomerService.GetAllAreaByStateCity(loggedinUser, token, vm.consumerState,vm.consumerCity).then(function (resp) {\r\n\t\t\t\tvm.AreaList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.selectedcity = function () {\r\n\t\t\tGetAllAreaByStateCity();\r\n\t\t}\r\n\r\n\t\tfunction GetAllPincodeBYAreaStateCity() {\r\n\t\t\tDirectSaleToCustomerService.GetAllPincodeBYAreaStateCity(loggedinUser, token,vm.consumerState,vm.consumerCity, vm.consumerArea).then(function (resp) {\r\n\t\t\t\tvm.PincodeList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.selectedArea = function () {\r\n\t\t\tGetAllPincodeBYAreaStateCity();\r\n\t\t}\r\n\t\tvm.Open360ForConsumer = function (customerNo) {\r\n\t\t\t$state.go('index.CustomerCRM360', {\r\n\t\t\t\tContactNo: customerNo\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\r\n\r\n\t\tvm.ConsumerId = '';\r\n\t\tvm.GetConsumerDetails = function () {\r\n\t\t\tDirectSaleToCustomerService.GetConsumerDetails(loggedinUser, token, $localStorage.consumerContact).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.consumerData = resp.data;\r\n\t\t\t\t\tvm.consumerAddress = resp.data.Addresses[0];\r\n\t\t\t\t\tvm.ConsumerId = resp.data.ConsumerId;\r\n\t\t\t\t\tvm.IsConsumerFound = true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.IsConsumerFound = false;\r\n\t\t\t\t\tvm.ErrorMessage = resp.data.Message;\r\n\t\t\t\t\tvm.showFailure(resp.data.Message)\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n // Add parts section \r\n\tvm.ApplyFilter = function () {\r\n\t\tif (!vm.UserId) {\r\n\t\t vm.UserId = \"\";\r\n\t\t}\r\n\t\tvm.GetUserInventoryStockforweb('GoodStock');\r\n\t };\r\n\t\tvm.searchByText = function () {\r\n\t\t\tvm.brandName = \"\";\r\n\t\t\tvm.partName = \"\";\r\n\t\t\tvm.productGroup = \"\";\r\n\t\t\tPageIndex = 1;\r\n\t\t\tvm.ApplyFilter();\r\n\t\t };\r\n\r\n\r\n\t\tvm.GetItemBrandName = function () {\r\n\t\t\tDirectSaleToCustomerService.GetItemBrandName(token).then(function (resp) {\r\n\t\t\t if (resp && resp.data) {\r\n\t\t\t\tvm.BrandListadd = resp.data;\r\n\t\t\t }\r\n\t\t\t}, vm.showFailure);\r\n\t\t };\r\n\t\t vm.GetItemBrandName();\r\n\t\t vm.changeCategoryFilter = function () {\r\n\t\t\tvm.SearchText = \"\";\r\n\t\t\tPageIndex = 1;\r\n\t\t\tvm.ApplyFilter();\r\n\t\t };\r\n\t\t vm.GetItemGroupName = function () {\r\n\t\t\tif (!vm.brandName) {\r\n\t\t\t vm.brandName = \"\";\r\n\t\t\t}\r\n\t\t\tTeamMyStockService.GetItemGroupName(vm.brandName, token).then(\r\n\t\t\t function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t vm.PartNameList = resp.data;\r\n\t\t\t\t vm.changeCategoryFilter();\r\n\t\t\t\t}\r\n\t\t\t }\r\n\t\t\t);\r\n\t\t };\r\n\t\t vm.GetItemGroupName();\r\n \r\n\t\t vm.GetItemListName = function () {\r\n\t\t\tif (!vm.productGroup) {\r\n\t\t\t vm.productGroup = \"\";\r\n\t\t\t}\r\n\t\t\tTeamMyStockService.GetItemListName(\r\n\t\t\t vm.brandName,\r\n\t\t\t vm.productGroup,\r\n\t\t\t token\r\n\t\t\t).then(function (resp) {\r\n\t\t\t if (resp && resp.data) {\r\n\t\t\t\tvm.PartList = resp.data;\r\n\t\t\t\tvm.changeCategoryFilter();\r\n\t\t\t }\r\n\t\t\t}, vm.showFailure);\r\n\t\t };\r\n\t\t vm.GetItemListName();\r\n\t\t vm.PartListWithFilter = [];\r\n\r\n\t\t vm.GetItemPartName = function () {\r\n\t\t\tvm.PartListWithFilter = [];\r\n\t\t\tif (!vm.partName) {\r\n\t\t\t vm.partName = \"\";\r\n\t\t\t}\r\n\t\t\tInventoryItemListService.GetItemPartName(vm.brandName, vm.productGroup, vm.partName, loggedinUser, token).then(function (resp) {\r\n\t\t\t if (resp.data && resp.status == 200) {\r\n\t\t\t\tvm.PartListWithFilter = resp.data;\r\n\t\t\t }\r\n\t\t\t}, vm.showFailure);\r\n\t\t };\r\n\t\t vm.GetItemPartName();\r\n\t\t vm.resetFilters = function () {\r\n\t\t\tvm.brandName = \"\";\r\n\t\t\tvm.productGroup = \"\";\r\n\t\t\tvm.partName = \"\";\r\n\t\t\tvm.ticketdates = \"\";\r\n\t\t\tvm.SearchText = \"\";\r\n\t\t\tvm.UserId = \"\";\r\n\t\t\tvm.selectedPart = \"\";\r\n\t\t\tfPageIndex = 1;\r\n\t\t\tvm.changeCategoryFilter();\r\n\t\t };\r\n\r\n\r\n\t\t vm.billItems = []; \r\n\t\t vm.totalAmount = 0;\r\n\t\t vm.gst = 0;\r\n\t\t vm.finalTotal = 0;\r\n\t\t vm.addToBill = function(part, selectedQuantity) {\r\n\t\t\tselectedQuantity = selectedQuantity || 1;\r\n\t\t\r\n\t\t\tvar existingPart = vm.billItems.find(function(item) {\r\n\t\t\t\treturn item.strMMFPartId === part.strMMFPartId;\r\n\t\t\t});\r\n\t\t\tif (existingPart) {\r\n\t\t\t\texistingPart.selectedQuantity += selectedQuantity; \r\n\t\t\t} else {\r\n\t\t\t\tvm.billItems.push(angular.extend({}, part, { selectedQuantity: selectedQuantity }));\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tvm.calculateBillTotals();\r\n\t\t};\r\n\t\t\r\n\t\tvm.isPartInBill = function(part) {\r\n\t\t\treturn vm.billItems.some(function(item) {\r\n\t\t\t\treturn item.strMMFPartId === part.strMMFPartId;\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t vm.updateQuantity = function(item) {\r\n\t\t\tif (item.selectedQuantity > item.nTotalGoodStock) {\r\n\t\t\t\titem.selectedQuantity = item.nTotalGoodStock;\r\n\t\t\t}\r\n\t\t\tif (item.selectedQuantity < 1) {\r\n\t\t\t\titem.selectedQuantity = 1;\r\n\t\t\t}\r\n\t\t\tvm.calculateBillTotals();\r\n\t\t}\r\n\r\n\t\tvm.removeItemFromBill = function(item) {\r\n\t\t\tconst index = vm.billItems.indexOf(item);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tvm.billItems.splice(index, 1);\r\n\t\t\t\tvm.calculateBillTotals();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvm.calculateBillTotals = function() {\r\n\t\t\tvm.totalAmount = vm.billItems.reduce(function(total, item) {\r\n\t\t\t\treturn total + (item.dPartDiscountedPrice * item.selectedQuantity);\r\n\t\t\t}, 0);\r\n\t\t\t\r\n\t\t\tvm.totalAmount = parseFloat(vm.totalAmount.toFixed(2));\r\n\t\t\tvm.gst = parseFloat((vm.totalAmount * 0.18).toFixed(2)); \r\n\t\t\tvm.finalTotal = parseFloat((vm.totalAmount + vm.gst).toFixed(2)); \r\n\t\t};\r\n\t\t\r\n\t\tvm.calculateBillTotals();\r\n\t\tvm.EnablePrintButton = false;\r\n\t\tvm.GenerateBill = function () {\r\n\t\t\tvm.disableCreateButton = true;\r\n\t\t\tvar data = vm.billItems.map(function(item) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tstrPartId: item.strMMFPartId,\r\n\t\t\t\t\tnQuantity: item.selectedQuantity \r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t\tDirectSaleToCustomerService.GenerateBill(data, vm.ConsumerId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200 && resp.data) {\r\n\t\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t\t\tvm.EnablePrintButton = true;\r\n\t\t\t\t\tvm.billItems = []; \r\n\t\t\t\t\tvm.totalAmount = 0;\r\n\t\t\t\t\tvm.gst = 0;\r\n\t\t\t\t\tvm.finalTotal = 0;\r\n\t\t\t\t\tvm.showSuccess(\"Success\", 'Bill generated successfully.');\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tvm.clearCustomerData();\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// vm.generateBill = function() {\r\n\t\t// \talert('Bill Generated!' + vm.billItems);\r\n\t\t// };\r\n\r\n\t\tvm.GetAddressFromPinCode = function (consumerPincode) {\r\n\t\t\tvm.findPincode = consumerPincode;\r\n\t\t\tDirectSaleToCustomerService.GetAddressFromPinCode(vm.findPincode, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.AddressData = resp.data;\r\n\t\t\t\t\tvm.consumerState = resp.data.State.toUpperCase();\r\n\t\t\t\t\tvm.selectedState(vm.consumerState);\r\n\t\t\t\t\tvm.consumerCity = resp.data.City.toUpperCase();\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.SendHappyCodeSMS = function (ticketId) {\r\n\t\t\tDirectSaleToCustomerService.SendHappyCodeSMS(ticketId,vm.AccountId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Happy code sent to customer successfully.\");\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\t\r\n\r\n\r\n\t\tif ($localStorage.consumerContact) {\r\n\t\t\tvm.GetConsumerDetails();\r\n\t\t}\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('DialerListService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n var vm = this;\r\n\r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('DialerListController', function (DialerListService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t$scope.isPlaying = false;\r\n\r\n\t\t$scope.togglePlayPause = function() {\r\n\t\t\t$scope.isPlaying = !$scope.isPlaying;\r\n\t\t};\r\n\r\n\t\t\r\n\t\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('DeviceInfoService', function ($log, $http, ApiURL) {\r\n\r\n\tthis.getAllDeviceInfo = function(accountId, token, success, failure){\r\n\t\tvar url = ApiURL+'/api/DeviceInfo/'+accountId+'/GetAll'\r\n\t return $http.get(url,{\r\n\t\t\theaders:{'Token':token, 'UserId': accountId}\r\n\t\t});\r\n\t}\r\n});\nangular.module('inspinia').controller('DeviceInfoController', function (DTOptionsBuilder,DTColumnBuilder, $q, DTColumnDefBuilder, $scope, $log, DeviceInfoService, $localStorage) {\r\n var vm = this;\r\n\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.searchText = '';\r\n vm.dtInstance = {};\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\r\n vm.deviceInfoList=[];\r\n\r\n // vm.getAllDeviceInfo = function(){\r\n // DeviceInfoService.getAllDeviceInfo(loggedinUser,token).then(function(res){\r\n // if(res.data.length > 0){\r\n // vm.deviceInfoList = res.data;\r\n // vm.showSuccess(\"Success\", \"Fetched device informations successfully\");\r\n // }else{\r\n // vm.showFailure(\"Failed\", \"Server is not responding correctly. Please try again later\");\r\n // }\r\n // })\r\n // }\r\n // vm.getAllDeviceInfo();\r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n var defer = $q.defer();\r\n DeviceInfoService.getAllDeviceInfo(loggedinUser,token).then(function(res){\r\n if(res.data.length > 0){\r\n vm.deviceInfoList = res.data;\r\n defer.resolve(vm.deviceInfoList);\r\n vm.showSuccess(\"Success\", \"Fetched device informations successfully\");\r\n }else{\r\n vm.showFailure(\"Failed\", \"Server is not responding correctly. Please try again later\");\r\n }\r\n })\r\n return defer.promise;\r\n }) \r\n .withDOM('<\"html5buttons\"B>lTfgitp').withPaginationType('full_numbers').withOption('order', [0,'asc']);\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn('UserId').withTitle('User Id').notSortable(),\r\n DTColumnBuilder.newColumn('DeviceOS').withTitle('Device OS').notSortable(),\r\n DTColumnBuilder.newColumn('Circle').withTitle('Circle').notSortable(),\r\n DTColumnBuilder.newColumn('AccountName').withTitle('Account Name').notSortable(),\r\n DTColumnBuilder.newColumn('TimeStamp').withTitle('Timestamp').notSortable(),\r\n DTColumnBuilder.newColumn('OSVersion').withTitle('OS Versio').notSortable(),\r\n DTColumnBuilder.newColumn('AppVersion').withTitle('App Version').notSortable(),\r\n DTColumnBuilder.newColumn('DeviceManufacturer').withTitle('Device Manufacturer').notSortable(),\r\n DTColumnBuilder.newColumn('DeviceModel').withTitle('Device Model').notSortable(),\r\n DTColumnBuilder.newColumn('IMEINumber').withTitle('IMEI Number').notSortable(),\r\n DTColumnBuilder.newColumn('BatteryLevel').withTitle('Battery Level').notSortable(),\r\n DTColumnBuilder.newColumn('SignalStrength').withTitle('Signal Strength').notSortable(),\r\n DTColumnBuilder.newColumn('NetworkType').withTitle('Network Type').notSortable(),\r\n DTColumnBuilder.newColumn('PhoneNumber').withTitle('Phone Number').notSortable(),\r\n DTColumnBuilder.newColumn('UserType').withTitle('User Type').notSortable()\r\n\r\n ];\r\n\r\n }\r\n});\nangular.module('inspinia').service('dashboardDetailService', function (ApiURL, $log, $http, DashboardURL, $window, CronUrl, PublicApiURL) {\r\n\r\n vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n\r\n vm.getDashboard = function (loggedinUser, dashbardName, token, callback) {\r\n $http.get(DashboardURL + '/api/Dashboard/' + loggedinUser + '/' + dashbardName + '/GetDashboardByName', {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n \r\n vm.getChart = function (loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData, total, callback) {\r\n $http.get(DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP=' + encodeURI(rollUp) + \"&FilterKeys=\" + filterKeys + \"&FilterValues=\" + filterValues + \"&isData=\" + isData + \"&total=\" + total, { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n res.data['chartName'] = chartName;\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n \r\n vm.getChart1 = function (loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData, total, callback) {\r\n $http.get(DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP=' + encodeURI(rollUp) + \"&FilterKeys=\" + filterKeys + \"&FilterValues=\" + filterValues + \"&isData=\" + isData + \"&total=\" + total, { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n res.data['chartName'] = chartName;\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n vm.getUsersLite = function (loggedinUser, token, callback) {\r\n $http.get(DashboardURL + '/api/Dashboard/GetReportUsers', { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.mailReport = function (token, toList, ccList, bccList, subject, message, reportName, userID, filterKey, filterValue, reportInMailBody, rollUps, callback) {\r\n var data = {\r\n \"TOList\": toList,\r\n \"CCList\": ccList,\r\n \"BCCList\": bccList,\r\n \"Body\": message,\r\n \"Subject\": subject,\r\n \"ReportName\": reportName,\r\n \"ReqUserId\": userID,\r\n \"FilterKeys\": null,\r\n \"FilterValues\": null,\r\n \"ReportInMailBody\": reportInMailBody,\r\n \"RollUps\": rollUps\r\n };\r\n\r\n $http.post(DashboardURL + '/api/Report/mailexcelreportbyname', data, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': userID } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.scheduleReport = function (loggedinUser, data, token, callback) {\r\n $http.put(DashboardURL + '/api/AddUpateScheduleToReport', data, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.RescheduleReport = function (loggedinUser, data, token, callback) {\r\n $http.put(ApiURL + '/api/ReportSchedule/cron?userId=' + loggedinUser, data, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.downloadReport = function (reportName, loggedinUser, filterKey, filterName, rollUps, isData) {\r\n $window.location.href = PublicApiURL + \"/api/Report/DownloadExcelReportByReportName?reportName=\" + reportName + \"&reqUserId=\" + loggedinUser + \"&FilterKeys=\" + filterKey + \"&FilterValues=\" + filterName + \"&RollUps=\" + rollUps + \"&isData=\" + isData;\r\n console.log('$window.location.href', $window.location.href);\r\n }\r\n\r\n vm.checkReportName = function (reportName, callback) {\r\n $http.get(CronUrl + '/isCronNameExists?name=' + reportName, { headers: { 'Content-Type': 'application/json' } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllEntityTypes = function (loggedinUser, token) {\r\n var url = DashboardURL + '/api/Dashboard/GetAllEntityTypes';\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n vm.GetFieldTypesByEntityName = function (EntityType, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Dashboard/GetFieldTypesByEntityName?EntityName=' + EntityType;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n vm.GetFieldValuesByFieldNames = function (EntityType,FieldName, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Dashboard/GetFieldValuesByFieldNames?EntityName=' + EntityType + '&FieldName=' + FieldName;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n vm.GetMetricsByEntityType = function (EntityType, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Metrics/GetMetricsByEntityType?EntityType=' + EntityType;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n vm.GetDimensionByEntityName = function (EntityType, loggedinUser, token) {\r\n var url = DashboardURL + '/api/GetDimensionByEntityName?Name=' + EntityType;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n vm.AddChartsToReport = function (data, loggedinUser, token,callback) {\r\n var url = DashboardURL + '/api/AddChartsToReport';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n vm.UpdateChartsFromReport = function (data,loggedinUser, token,callback) {\r\n var url = DashboardURL + '/api/UpdateChartsFromReport';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n \r\n vm.DeleteChartsFromReport = function (ReportId, deleteChartId,loggedinUser, token) {\r\n var url = DashboardURL + '/api/DeleteChartsFromReport?ReportId=' + ReportId + '&ChartId=' + deleteChartId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.SaveCustomSettings = function (ReportId, order, loggedinUser, token) {\r\n var url = DashboardURL + '/api/SaveLayoutToReport?ReportId=' + ReportId;\r\n return $http.put(url, order, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n});\r\n\nangular.module(\"inspinia\").controller(\"dashboardDetailController\", function ($uibModal, $window,DashboardURL, $compile, MainService, $scope, $log, $q,dashboardDetailService, DTOptionsBuilder, DTColumnBuilder, $timeout, $localStorage,$state, $stateParams) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.DocumentType = $stateParams.Type;\r\n vm.ReportId = $stateParams.report_id;\r\n vm.DashboardId = $stateParams.dashboard_id;\r\n vm.ReportName = '';\r\n var token = $localStorage.token;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n $scope.isLayoutEditable = false;\r\n vm.AllFieldList = [];\r\n vm.AllValues = [];\r\n vm.tableCharts = {};\r\n vm.deepLink = {};\r\n vm.valueClass = {};\r\n vm.profileImg = '';\r\n var intialLoad = true;\r\n vm.users = [];\r\n vm.filename = '';\r\n vm.report_title = \"\";\r\n vm.attachReportInMailBody = true;\r\n vm.attachReportInExcel = true;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.filter_key = $stateParams.filter_key ? $stateParams.filter_key : \"\";\r\n vm.isData = $stateParams.isData ? $stateParams.isData : false;\r\n vm.key = $stateParams.key ? $stateParams.key : \"\";\r\n vm.filter_name = $stateParams.filter_name ? $stateParams.filter_name : \"\";\r\n vm.additionalInfo = $stateParams.end_date ? $stateParams.end_date : \"\";\r\n var today = new Date();\r\n var formattedDate = today.toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' });\r\n // vm.defaultMailBody = \"Hello,\\n\\nYou are requested to view project report on below link \\n\\n\" + $window.location.href + \" \\n\\nThanks\\nMobiforce Team\";\r\n vm.defaultMailBody = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + 'on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n var creationDatefunc = $scope.$parent.$parent.main.AccountStartDate;\r\n vm.accountCreationDate = creationDatefunc();\r\n vm.tableCharts = {};\r\n vm.selectDimension = {};\r\n vm.dashboard_data = {};\r\n vm.metricsCharts = {};\r\n vm.tableCharts = {};\r\n vm.lineCharts = {};\r\n vm.pieCharts = {};\r\n vm.barCharts = {};\r\n vm.stackedCharts = {};\r\n var start_date = '';\r\n var thisFiscalStart = '';\r\n var thisFiscalEnd = '';\r\n vm.BusinessUnit = '';\r\n vm.State = '';\r\n vm.Skill = '';\r\n vm.Account = '';\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n var total = 'Total';\r\n\r\n if (moment().quarter() === 2) {\r\n thisFiscalStart = moment().month('April').startOf('month');\r\n thisFiscalEnd = moment().add(1, 'year').month('March').endOf('month');\r\n } else {\r\n thisFiscalStart = moment().subtract(1, 'year').month('April').startOf('month');\r\n thisFiscalEnd = moment().month('March').endOf('month');\r\n };\r\n\r\n\r\n $log.log('$stateParams.start_date', $stateParams.start_date);\r\n if ($stateParams.start_date) {\r\n vm.rollup = $stateParams.start_date;\r\n //\"Range(\"+startDate+\"|\"+endDate+\")\";\r\n var dateArray1 = vm.rollup.split('(');\r\n var dateArray2 = dateArray1[1].split(')');\r\n var dateArray3 = dateArray2[0].split('|');\r\n var startDate = moment(dateArray3[0]).format(\"YYYY-MM-DD\");\r\n var endDate = moment(dateArray3[1]).format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: moment(dateArray3[0]), endDate: moment(dateArray3[1]) };\r\n\r\n } else if (vm.isData) {\r\n if ($stateParams.start_date == '' || $stateParams.start_date == null) {\r\n $scope.dates = { startDate: vm.accountCreationDate, endDate: moment() };\r\n var startDate = vm.accountCreationDate;\r\n //var startDate = moment(0).format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n }\r\n } else {\r\n $scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n var startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n //var startDate = moment(0).format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n\r\n }\r\n\r\n vm.shareModel = {\r\n selectedUsers: [],\r\n toList: [],\r\n ccList: [],\r\n bccList: [],\r\n content: vm.defaultMailBody\r\n };\r\n vm.monthNames3 = [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\",\r\n \"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"\r\n ];\r\n\r\n vm.scheduleModel = {\r\n frequency: \"once\",\r\n once: \"once\",\r\n daily: \"daily\",\r\n weekly: \"weekly\",\r\n every_15_days: \"every_15_days\",\r\n monthly: \"monthly\",\r\n cronExpression: \"expression\",\r\n input_for_month: {\r\n option: \"start_of_day\",\r\n start_of_day: \"start_of_day\",\r\n end_of_day: \"end_of_day\",\r\n specific_date: \"specific_date\",\r\n date: 1\r\n },\r\n specific_date_range: [],\r\n start_date: moment(),\r\n end_date: moment().add(1, 'M'),\r\n attachReportInMailBody: true,\r\n attachReportInExcel: true,\r\n scheduleTime: \"\",\r\n scheduleName: \"\",\r\n reportNameAlreadyExists: false,\r\n reportNameMendtryErr: false,\r\n toListMendtryErr: false,\r\n timeMendtryErr: false,\r\n sampleDateMendtryErr: false,\r\n pull_data: {\r\n range: \"last_day\",\r\n day: \"last_day\",\r\n week: \"last_week\",\r\n month: \"last_month\",\r\n quarter: \"last_quarter\",\r\n current_month: \"current_month\",\r\n specific: \"specific\",\r\n specific_day_value: 1,\r\n calculate_range: function () {\r\n //$log.log(vm.scheduleModel.pull_data.range);\r\n var today = new Date();\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n var date = today;\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 1, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 3, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n return 1 + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n //$log.log(vm.scheduleModel.pull_data.specific_day_value)\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - vm.scheduleModel.pull_data.specific_day_value);\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n }\r\n }\r\n };\r\n\r\n for (var i = 1; i < 32; i++) {\r\n vm.scheduleModel.specific_date_range.push({ value: i, label: i });\r\n }\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment()]\r\n };\r\n\r\n $scope.dashboardranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Payment week': [moment().startOf('week').isoWeekday(1), moment().endOf('week').isoWeekday(0)],\r\n // 'Last week': [moment().subtract(1, 'weeks').startOf('week').isoWeekday(1), moment().subtract(1, 'weeks').endOf('week').isoWeekday(0)], \r\n 'This week': [moment().startOf('week'), moment().endOf('week')],\r\n 'Last week': [moment().subtract(1, 'weeks').startOf('week'), moment().subtract(1, 'weeks').endOf('week')],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n // 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This quater': [moment().startOf('quarter'), moment().endOf('quarter')],\r\n 'Last quater': [moment().subtract(1, 'quarters').startOf('quarter'), moment().subtract(1, 'quarters').endOf('quarter')],\r\n 'This year': [thisFiscalStart, thisFiscalEnd],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n\r\n $scope.dateRangeChange = function (ev, picker) {\r\n var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n var endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.AllValues = [];\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n if (vm.DocumentType == 'dashboard') {\r\n vm.getDashboard($stateParams.dashboard_id);\r\n intialLoad = false;\r\n }\r\n else if (vm.DocumentType == 'report') {\r\n vm.getCustomerReport($stateParams.report_id);\r\n }\r\n vm.tableCharts = {};\r\n };\r\n\r\n $scope.filterRangeChange = function (ev, picker) {\r\n vm.filterstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n vm.filterendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n };\r\n $log.log('$stateParams.start_date', $stateParams.start_date);\r\n if ($stateParams.start_date) {\r\n vm.rollup = $stateParams.start_date;\r\n var dateArray1 = vm.rollup.split('(');\r\n var dateArray2 = dateArray1[1].split(')');\r\n var dateArray3 = dateArray2[0].split('|');\r\n var startDate = moment(dateArray3[0]).format(\"YYYY-MM-DD\");\r\n var endDate = moment(dateArray3[1]).format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: moment(dateArray3[0]), endDate: moment(dateArray3[1]) };\r\n } else if (vm.isData) {\r\n if ($stateParams.start_date == '' || $stateParams.start_date == null) {\r\n $scope.dates = { startDate: vm.accountCreationDate, endDate: moment() };\r\n var startDate = vm.accountCreationDate;\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n }\r\n } else {\r\n $scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n var startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n }\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.filter_key = $stateParams.filter_key ? $stateParams.filter_key : \"\";\r\n vm.isData = $stateParams.isData ? $stateParams.isData : false;\r\n vm.key = $stateParams.key ? $stateParams.key : \"\";\r\n vm.filter_name = $stateParams.filter_name ? $stateParams.filter_name : \"\";\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n $scope.dragoverCallback = function (index, external, type, callback) {\r\n $scope.logListEvent('dragged over', index, external, type);\r\n // Invoke callback to origin for container types.\r\n if (type == 'container' && !external) {\r\n console.log('Container being dragged contains ' + callback() + ' items');\r\n }\r\n return index < 10; // Disallow dropping in the third row.\r\n };\r\n\r\n $scope.order = [];\r\n var currentIndex = 0;\r\n $scope.dropCallback = function (index, item, external, type) {\r\n $scope.logListEvent('dropped at', index, item, external, type);\r\n $scope.order = vm.AllValuesOriginalIndex;\r\n var currentIndex = $scope.order.indexOf(item.chartId);\r\n // If the item is already in the order array, remove it from the current position\r\n if (currentIndex !== -1) {\r\n $scope.order.splice(currentIndex, 1);\r\n }\r\n // Insert the item at the new position\r\n $scope.order.splice(index, 0, item.chartId);\r\n console.log($scope.order);\r\n return item;\r\n }; \r\n\r\n $scope.logEvent = function (message) {\r\n console.log(message);\r\n };\r\n\r\n $scope.logListEvent = function (action, index, external, type) {\r\n var message = external ? 'External ' : '';\r\n message += type + ' element was ' + action + ' position ' + index;\r\n console.log(message);\r\n };\r\n\r\n // Initialize model\r\n // $scope.model = [[]];\r\n var id = 10;\r\n angular.forEach(vm.metricsChart, function (container) {\r\n var container = { items: [], effectAllowed: effect };\r\n for (var k = 0; k < 7; ++k) {\r\n container.items.push({ label: effect + ' ' + id++, effectAllowed: \"all\" });\r\n }\r\n });\r\n\r\n $scope.$watch(vm.metricsChart, function (model) {\r\n $scope.modelAsJson = angular.toJson(model, true);\r\n }, true);\r\n\r\n\r\n vm.dashboardCallback = vm.createCallback(null, [function (data) {\r\n vm.dashboard_data = data;\r\n\r\n if (data && data.DashboardFilters) {\r\n vm.enableFilter = true;\r\n vm.updateDefaultDateFilter(data.DashboardFilters);\r\n }\r\n else {\r\n vm.enableFilter = false;\r\n vm.updateDefaultDateFilter(null);\r\n }\r\n\r\n angular.forEach(data.ChartModel, function (d) {\r\n\r\n if (d.ClickableColumns != null && d.ClickableColumns.length > 0) {\r\n angular.forEach(d.ClickableColumns, function (cl) {\r\n if (cl.Link == \"ProjectSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \" + d.ChartId] = function () {\r\n return \"index.Report({report_name:'ProjectSummary', key:'\" + cl.KeyName + \"'})\";\r\n }\r\n } else if (cl.Link == \"CustomerSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \" + d.ChartId] = function () {\r\n\r\n return \"index.Report({report_name:'CustomerSummary', key:'\" + cl.KeyName + \"'})\";\r\n }\r\n } else if (cl.Link == \"DashboardReport\") {\r\n\r\n vm.deepLink[cl.ColumnName + \" \" + d.ChartId] = function (filterValue, filterName) {\r\n var Keyfilter = cl.KeyName;\r\n if (cl.KeyName.indexOf(\"|\") >= 0) {\r\n var stringArray = cl.KeyName.split('|');\r\n filterName = stringArray[1];\r\n Keyfilter = stringArray[0];\r\n }\r\n if (filterValue == undefined && filterName == undefined) {\r\n filterValue = '';\r\n filterName = '';\r\n }\r\n if (d.ChartType == 'Metrics' || d.chartType == 'OneServMetrics') {\r\n //console.log('start_date',start_date);\r\n if (d.Rollups && d.Rollups.length > 0) {\r\n angular.forEach(d.Rollups, function (d) {\r\n if (d == 'Today') {\r\n var sDate = moment().format(\"YYYY-MM-DD\");\r\n var eDate = moment().format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n }\r\n else if (d == 'Yesterday') {\r\n var sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n var eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n }\r\n else if (d == 'Monthly') {\r\n var sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n var eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n } else if (d == 'Week1') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week1');\r\n } else if (d == 'Week2') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week2');\r\n } else if (d == 'Week3') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week3');\r\n } else if (d == 'Week4') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week4');\r\n }\r\n })\r\n } else {\r\n start_date = vm.rollup;\r\n }\r\n var obj = {\r\n \"report_name\": 'LinkTicketReport',\r\n \"key\": Keyfilter,\r\n \"filter_key\": filterName,\r\n \"filter_name\": filterValue,\r\n \"start_date\": start_date,\r\n \"isData\": true\r\n }\r\n return obj;\r\n } else {\r\n return \"index.DashboardReport({report_name:'LinkTicketReport', key:'\" + Keyfilter + \"',filter_key:'\" + filterName + \"', filter_name:'\" + filterValue + \"', start_date:'\" + vm.rollup + \"', isData:'\" + true + \"'})\";\r\n }\r\n }\r\n } else {\r\n if (cl.Link) {\r\n vm.deepLink[cl.ColumnName + \" \" + d.ChartId] = function (filterValue, filterName) {\r\n var Keyfilter = cl.KeyName;\r\n if (cl.KeyName.indexOf(\"|\") >= 0) {\r\n var stringArray = cl.KeyName.split('|');\r\n filterName = stringArray[1];\r\n Keyfilter = stringArray[0];\r\n }\r\n if (filterValue == undefined && filterName == undefined) {\r\n filterValue = '';\r\n filterName = '';\r\n }\r\n\r\n filterName = filterName + ',' + vm.filterKeys;\r\n filterValue = filterValue + ',' + vm.filterValues;\r\n\r\n if (d.ChartType == 'Metrics' || d.chartType == 'OneServMetrics') {\r\n //console.log('start_date',start_date);\r\n if (d.Rollups && d.Rollups.length > 0) {\r\n angular.forEach(d.Rollups, function (d) {\r\n if (d == 'Today') {\r\n var sDate = moment().format(\"YYYY-MM-DD\");\r\n var eDate = moment().format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n }\r\n else if (d == 'Yesterday') {\r\n var sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n var eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n } else if (d == 'Monthly') {\r\n var sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n var eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\" + sDate + \"|\" + eDate + \")\";\r\n } else if (d == 'Week1') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week1');\r\n } else if (d == 'Week2') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week2');\r\n } else if (d == 'Week3') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week3');\r\n } else if (d == 'Week4') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date = vm.GetDateRange(getCurrentMonth, getCurrentYear, 'week4');\r\n }\r\n })\r\n } else {\r\n start_date = vm.rollup;\r\n }\r\n var obj = {\r\n \"report_name\": cl.Link,\r\n \"key\": Keyfilter,\r\n \"filter_key\": filterName,\r\n \"filter_name\": filterValue,\r\n \"start_date\": start_date,\r\n \"isData\": true\r\n }\r\n return obj;\r\n } else {\r\n return \"index.DashboardReport({report_name:'\" + cl.Link + \"', key:'\" + Keyfilter + \"',filter_key:'\" + filterName + \"', filter_name:'\" + filterValue + \"', start_date:'\" + vm.rollup + \"', isData:'\" + true + \"'})\";\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Today\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Yesterday\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week1\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week1\");\r\n } else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week2\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week2\");\r\n } else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week3\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week3\");\r\n } else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week4\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week4\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly-6\") >= 0 && d.ChartType != 'CustomLine') {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly-6\");\r\n }\r\n else if (d.ChartType == 'CustomLine' && d.Dimensions.length > 0 && d.Rollups.indexOf(\"Monthly\") >= 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if (d.ChartType == 'CustomLine' && d.Dimensions.length > 0 && d.Rollups.indexOf(\"Today\") >= 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if (d.ChartType == 'CustomLine' && d.Dimensions.length > 0 && d.Rollups.indexOf(\"Yesterday\") >= 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if (d.ChartType == 'CustomBar' && d.Dimensions.length > 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n } else if (d.ChartType == 'DrillDownBar' && d.Dimensions.length > 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n } else if (d.ChartType == 'CustomStackedBar' && d.Dimensions.length > 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n } else if (d.ChartType == 'CustomPie' && d.Dimensions.length > 0) {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }\r\n else {\r\n vm.getChartDashboard(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, vm.rollup);\r\n }\r\n\r\n });\r\n }])\r\n\r\n vm.getDashboard = function (dashboardName) {\r\n dashboardDetailService.getDashboard(loggedinUser, dashboardName, token, vm.dashboardCallback);\r\n }\r\n\r\n\r\n vm.reportLayoutCallback = vm.createCallback(null, [function (data) {\r\n if(vm.widgetcreate){\r\n vm.closecreatewidet();\r\n }\r\n else if(vm.widgetupdate){\r\n vm.closeupdatewidget();\r\n }\r\n vm.report_data = data;\r\n vm.ReportName = data.ReportName;\r\n var matricsCount = 0;\r\n vm.tableCount = 0;\r\n vm.tableNames = [];\r\n vm.tableOrder = [];\r\n vm.tableArray = [];\r\n var matricsIds = [];\r\n vm.AllValues = [];\r\n angular.forEach(data.chartModel, function (d) {\r\n if (d.ClickableColumns != null && d.ClickableColumns.length > 0) {\r\n angular.forEach(d.ClickableColumns, function (cl) {\r\n if (cl.Link == \"Project Status Report\") {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'ProjectStatus', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n } if (cl.Link == \"Customer Status Report\") {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'CustomerStatusReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n } if (cl.Link == 'Customer Location HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'CustomerLocationHCLReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"' , start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n }\r\n if (cl.Link == 'City Ticket HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName, i) {\r\n return \"index.Report({report_name:'CityTicketHCLReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"' , start_date:'\" + vm.rollup + \"', end_date:'\" + i + \"'})\";\r\n }\r\n }\r\n if (cl.Link == 'Team Hcl Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n // var fromDate = $stateParams.start_date?$stateParams.start_date:\"\";\r\n // var toDate = $stateParams.end_date?$stateParams.end_date:\"\";;\r\n return \"index.Report({report_name:'TeamHclDetailedReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"' , start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n }\r\n if (cl.Link == 'Team Ticket HCL Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName, i) {\r\n //$log.log('Name',i);\r\n // var fromDate = $stateParams.start_date?$stateParams.start_date:\"\";\r\n // var toDate = $stateParams.end_date?$stateParams.end_date:\"\";;\r\n return \"index.Report({report_name:'TeamTicketHCLReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"' , start_date:'\" + vm.rollup + \"' , end_date:'\" + i + \"'})\";\r\n }\r\n }\r\n if (cl.Link == \"JobView\") {\r\n\r\n if (vm.VerticalName == \"IMS\") {\r\n vm.deepLink[cl.ColumnName] = function (param) {\r\n return \"index.JobView({ticketId:'\" + param + \"',type:'isTicketView'})\";\r\n }\r\n }\r\n else {\r\n vm.deepLink[cl.ColumnName] = function (param) {\r\n return \"index.JobDetailView({ticketId:'\" + param + \"',type:'isTicketView'})\";\r\n }\r\n\r\n }\r\n\r\n } if (cl.Link == 'Team Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'TeamDetailReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n } if (cl.Link == 'Spectro Lab Detailed Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'SpectroLabDetailedReport', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n } if (cl.Link == 'Finance Ticket Report') {\r\n vm.deepLink[cl.ColumnName] = function (filterName) {\r\n return \"index.Report({report_name:'Finance Ticket Report', filter_key:'\" + cl.KeyName + \"', filter_name:'\" + filterName + \"', start_date:'\" + vm.rollup + \"'})\";\r\n }\r\n }\r\n });\r\n }\r\n if (d.UIClasess != null && d.UIClasess.length > 0) {\r\n vm.valueClass = {};\r\n angular.forEach(d.UIClasess, function (cl) {\r\n vm.valueClass[cl.ColumnName] = cl.ClassName;\r\n });\r\n }\r\n vm.filter_key = ''; \r\n vm.filter_name = ''; \r\n if (d.DataFilters != null && d.DataFilters.length > 0) { \r\n angular.forEach(d.DataFilters, function (cl) {\r\n if (vm.filter_key) {\r\n vm.filter_key = vm.filter_key + \",\" + cl.FieldName;\r\n vm.filter_name = vm.filter_name + \",\" + cl.FieldValue;\r\n }\r\n else {\r\n vm.filter_key = cl.FieldName;\r\n vm.filter_name = cl.FieldValue;\r\n }\r\n });\r\n }\r\n if (d.ChartType == 'Metrics') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name, \"\", false);\r\n matricsCount++;\r\n matricsIds.push(d.ChartId);\r\n vm.metricsCharts[d.ChartId] = d;\r\n vm.metricsCharts[d.ChartId].value = \"Loading...\";\r\n var CompData = {};\r\n CompData.chartId = d.ChartId;\r\n CompData.chartType = 'metrices';\r\n CompData.metrics = d.Metrics[0];\r\n CompData.value = \"Loading...\";\r\n CompData.EntityName = d.EntityName;\r\n CompData.DataFilters = d.DataFilters;\r\n CompData.ChartTitle = d.ChartTitle;\r\n CompData.ChartSubtitle = d.ChartSubtitle;\r\n vm.AllValues.push(CompData);\r\n }\r\n else if (d.ChartType == 'Table') {\r\n if (vm.isData) {\r\n d.Metrics = vm.key;\r\n }\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, vm.rollup, vm.filter_key, vm.filter_name, d.ChartTitle, vm.isData);\r\n vm.tableNames[vm.tableCount] = d.ChartTitle;\r\n vm.tableOrder[vm.tableCount] = d.ChartId;\r\n vm.tableCount = vm.tableCount + 1;\r\n vm.tableCharts[d.ChartId] = {};\r\n vm.tableCharts[d.ChartId].ChartId = d.ChartId;\r\n vm.tableCharts[d.ChartId].ChartTitle = d.ChartTitle;\r\n vm.tableCharts[d.ChartId].ChartSubtitle = d.ChartSubtitle;\r\n vm.tableCharts[d.ChartId].DataFilters = d.DataFilters;\r\n vm.tableCharts[d.ChartId].EntityName = d.EntityName;\r\n }\r\n });\r\n if (matricsCount >= 5) {\r\n if (matricsCount % 4 == 0) {\r\n matricsCount = 4;\r\n } else {\r\n matricsCount = 3;\r\n }\r\n }\r\n matricsCount = 12 / matricsCount;\r\n matricsCount = Math.round(matricsCount);\r\n angular.forEach(matricsIds, function (d) {\r\n vm.metricsCharts[d].width = \"col-lg-\" + matricsCount;\r\n });\r\n }])\r\n\r\n\r\n vm.getCustomerReport = function (reportid) {\r\n dashboardDetailService.getCustomerReportById(loggedinUser, reportid, token, vm.reportLayoutCallback);\r\n\r\n }\r\n\r\n if (vm.DocumentType == 'dashboard') {\r\n vm.getDashboard($stateParams.dashboard_id);\r\n }\r\n else if (vm.DocumentType == 'report') {\r\n vm.getCustomerReport($stateParams.report_id);\r\n }\r\n\r\n \r\n\r\n vm.getChart = function (chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData, total) {\r\n vm.AllValuesOriginalIndex = [];\r\n vm.rachit = [];\r\n dashboardDetailService.getChart(loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData, total, vm.createCallback(vm.rachit, [function (data) {\r\n if (chartType == 'Metrics') {\r\n vm.metricsCharts[chartId].value = data;\r\n for (var i = 0; i < vm.AllValues.length; i++) {\r\n if (vm.AllValues[i].chartId == chartId) {\r\n index = i;\r\n break; // Exit the loop when the chartId is found\r\n }\r\n }\r\n vm.AllValues[index].value = data;\r\n vm.AllValuesOriginalIndex.push(chartId);\r\n } else if (chartType == 'Table') {\r\n vm.tableCharts[chartId].value = data;\r\n vm.tableCharts[chartId].DimensionName = dimensions[0];\r\n vm.dataFilters = vm.tableCharts[chartId].DataFilters;\r\n vm.EntityName = vm.tableCharts[chartId].EntityName;\r\n vm.buildColumnBuilder(data, chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData);\r\n\r\n }\r\n console.log(vm.AllValuesOriginalIndex);\r\n }]));\r\n\r\n // for (var i = 0; i < vm.AllValues.length; i++) {\r\n // var chartData = vm.AllValues[i];\r\n // metricsDictionary[currentIndex] = chartData.chartId;\r\n // currentIndex++;\r\n // }\r\n // console.log(metricsDictionary);\r\n }\r\n\r\n \r\n\r\n vm.buildColumnBuilder = function (dataSets, chartId, chartType, metrics, dimensions, rollUp, filterKeys, filterValues, chartName, isData) {\r\n if (vm.tableCharts[chartId] && vm.tableCharts[chartId].value) {\r\n var columns = [];\r\n for (var key in dataSets.Categories) {\r\n var temp = '';\r\n // var columnName = key;\r\n temp = DTColumnBuilder.newColumn(key).withTitle(dataSets.Categories[key]).renderWith(function (data, type, full, meta) {\r\n var temp = '';\r\n function getKeyByValue(object, value) {\r\n for (var prop in object) {\r\n if (object.hasOwnProperty(prop)) {\r\n if (object[prop] === value)\r\n temp = prop;\r\n }\r\n }\r\n }\r\n getKeyByValue(full, data)\r\n var firstColumntKey = Object.values(full)[0];\r\n // var fixedCatogries = Object.values(vm.tableCharts[chartId].value.Categories)[0];\r\n var t = vm.tableCharts[chartId].value.Categories;\r\n var n = t[temp];\r\n if (vm.deepLink[n]) {\r\n return \"' + data + \"\";\r\n }\r\n //data = 'T360000388568_CCR_Form_Photo7825.jpg';\r\n\r\n if ((temp == 'CCR URL' || temp == 'CCRFormPhotoAttachmentPath' || temp == 'TicketSignOffReport') && data) {\r\n\r\n vm.filename = data.substring(data.lastIndexOf('/') + 1);\r\n\r\n\r\n return '' + vm.filename + ' ';\r\n\r\n }\r\n else if ((temp == 'FieldReports') && data) {\r\n var fileUrls = data.split(',');\r\n var ancharStr = '';\r\n var filename;\r\n angular.forEach(fileUrls, function (value, key) {\r\n filename = value.substring(value.lastIndexOf('/') + 1);\r\n ancharStr = ancharStr + '' + filename + ' ';\r\n });\r\n\r\n return ancharStr;\r\n\r\n }\r\n else {\r\n return data;\r\n }\r\n });\r\n columns.push(temp);\r\n }\r\n vm.tableCharts[chartId].dtColumns = columns;\r\n }\r\n\r\n\r\n\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(dataSets.Values);\r\n return defer.promise;\r\n }).withDOM(\r\n '<\"html5buttons\"B>lTfgitp')\r\n .withOption('lengthChange', false)\r\n .withOption('order', [])\r\n .withButtons([{ extend: 'colvis' }, { extend: 'csv' }, { extend: 'print' }, { extend: 'copy' }])\r\n .withOption('createdRow', createdRow);\r\n }\r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n $scope.shouldHighlightItem = function() {\r\n $scope.isLayoutEditable = true;\r\n };\r\n\r\n $scope.shouldNotHighlightItem = function() {\r\n $scope.isLayoutEditable = false;\r\n };\r\n\r\n\r\n // Dashboard code start by simran\r\n\r\n vm.getChartDashboard = function (chartId, chartType, metrics, dimensions, subtitle, YAxis, rollup) {\r\n vm.AllValues = [];\r\n vm.AllValuesDash = [];\r\n vm.selectDimension[chartId] = {};\r\n dashboardDetailService.getChart1(loggedinUser, token, chartType, metrics, dimensions, rollup, vm.filterKeys, vm.filterValues, \"\", false, total, vm.createCallback(null, [function (data) {\r\n if (chartType == 'Metrics' || chartType == 'OneServMetrics') {\r\n vm.metricsCharts[chartId] = {};\r\n vm.metricsCharts[chartId].value = data;\r\n vm.metricsCharts[chartId].subtitles = subtitle.split(\",\");\r\n vm.metricsCharts[chartId].ChartId = chartId;\r\n vm.AllValuesDash.push(vm.metricsCharts[chartId].value);\r\n } else if (chartType == 'Table') {\r\n vm.tableCharts[chartId] = {};\r\n vm.tableCharts[chartId].value = data;\r\n vm.tableCharts[chartId].ChartId = chartId;\r\n vm.createTableChart(chartId, data.Categories.length, data);\r\n\r\n //vm.buildColumnBuilder(chartId, data.Categories.length);\r\n } else if (chartType == 'Line') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n } else if (chartType == 'Bar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n } else if (chartType == 'StackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n } else if (chartType == 'Pie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomPie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.pieCharts[chartId].selectedDimension = dimensions;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomLine') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n } else if (chartType == 'CustomBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n } else if (chartType == 'DrillDownBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createDrilledDownBarChart(chartId, YAxis);\r\n } else if (chartType == 'CustomStackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n }\r\n }]));\r\n }\r\n\r\n\r\n var makeDynamicTable = function (chartId, dataSet) {\r\n\r\n if (dataSet.Values.length >= 10) {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n }\r\n else {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('Tfgt')\r\n //.withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n\r\n }\r\n\r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n vm.tableCharts[chartId].dtInstance = {};\r\n vm.tableCharts[chartId].dtColumns = [];\r\n var columnList = Object.keys(dataSet.Categories);\r\n for (var index = 0; index < columnList.length; index++) {\r\n\r\n var temp = '';\r\n var colunId = columnList[index];\r\n temp = DTColumnBuilder.newColumn(colunId).withTitle(dataSet.Categories[colunId]).renderWith(function (data, type, full, meta) {\r\n var colKey = '';\r\n function getKeyByIndex(object, col) {\r\n var colList = Object.keys(object);\r\n colKey = colList[col];\r\n }\r\n getKeyByIndex(full, meta.col)\r\n var firstColumntKey = Object.values(full)[0];\r\n var fixedCatogries = Object.values(vm.tableCharts[chartId].value.Categories)[0];\r\n var t = vm.tableCharts[chartId].value.Categories;\r\n var n = t[colKey];\r\n if (data > 0 && vm.deepLink[n + ' ' + vm.tableCharts[chartId].ChartId]) {\r\n return \"' + data + \" \";\r\n // return \"\" + data + \" \";\r\n } else {\r\n return \"\" + data + \"\";\r\n }\r\n });\r\n vm.tableCharts[chartId].dtColumns.push(temp);\r\n }\r\n }\r\n\r\n vm.createTableChart = function (chartId, lenth, data) {\r\n makeDynamicTable(chartId, data);\r\n }\r\n\r\n vm.updateDefaultDateFilter = function (dasahboardFilter) {\r\n if (intialLoad) {\r\n var startDate = '';\r\n var endDate = '';\r\n if (dasahboardFilter && dasahboardFilter.DefaultDateFilter) {\r\n startDate = $scope.dashboardranges[dasahboardFilter.DefaultDateFilter][0];\r\n endDate = $scope.dashboardranges[dasahboardFilter.DefaultDateFilter][1];\r\n $scope.dates = { startDate: startDate, endDate: endDate };\r\n $scope.$broadcast('update.daterangepicker', { date: $scope.dates });\r\n vm.rollup = \"Range(\" + startDate.format(\"YYYY-MM-DD\") + \"|\" + endDate.format(\"YYYY-MM-DD\") + \")\";\r\n }\r\n }\r\n }\r\n\r\n vm.ShareMailReport = function () {\r\n vm.SharedReportName = vm.ReportName;\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.shareModel.mailbody = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.shareModel.content = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.ShareModal = $uibModal.open({\r\n templateUrl: 'ShareMailwidgetCtrl.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.ShareReport = function () {\r\n vm.SharedReportName = vm.ReportName;\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.GetSharedUsers(vm.ReportName);\r\n vm.shareModel.mailbody = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.shareModel.content = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportName + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.ShareModal = $uibModal.open({\r\n templateUrl: 'SharewidgetCtrl.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeShareReportModal = function () {\r\n vm.ShareModal.close();\r\n }\r\n\r\n vm.GetSharedUsers = function (dashboardname) {\r\n dashboardReportListService.GetSharedUsers(dashboardname,loggedinUser, token).then(function (resp) {\r\n if(resp.data){\r\n vm.shareModel.toList = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.GrantRevokeAccessToReport = function(){\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function(user){\r\n toList.push(user.UserId);\r\n });\r\n if(toList.length==0){\r\n vm.scheduleModel.toListMendtryErr=true;\r\n return;\r\n }\r\n var commaSeparatedtoList = toList.join(',');\r\n vm.closeShareReportModal();\r\n dashboardReportListService.GrantRevokeAccessToReport(vm.SharedReportName, commaSeparatedtoList, loggedinUser,token).then(function(resp){\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.closeShareReportModal();\r\n } \r\n else{\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n })\r\n }\r\n\r\n vm.updatewidget = function (item) {\r\n vm.itemData = item;\r\n if(item.chartType){\r\n vm.selectedOption = item.chartType;\r\n vm.deleteChartId = item.chartId;\r\n vm.SelectedType = item.EntityName;\r\n vm.chartName = item.metrics;\r\n vm.chartDisplayName = item.ChartTitle;\r\n vm.chartDescription = item.ChartSubtitle;\r\n vm.GetMetricsByEntityType(item.EntityName, item.metrics);\r\n vm.dataFilters = item.DataFilters; \r\n }\r\n else{\r\n vm.selectedOption = \"dimension\";\r\n vm.deleteChartId = item.ChartId;\r\n vm.SelectedType = item.EntityName;\r\n // vm.chartDisplayName = item.chartDisplayName;\r\n vm.DimensionName = item.DimensionName;\r\n vm.chartName = item.DimensionName;\r\n // vm.chartDescription = item.chartDescription;\r\n vm.GetDimensionByEntityName(item.EntityName, vm.DimensionName);\r\n vm.dataFilters = item.DataFilters;\r\n }\r\n \r\n }\r\n vm.closeupdatewidget = function () {\r\n vm.widgetupdate.close();\r\n vm.SelectedType = \"\";\r\n vm.SelectedChartName = \"\";\r\n vm.chartDisplayName = \"\";\r\n vm.chartDescription = \"\";\r\n }\r\n\r\n vm.createwidget = function () {\r\n vm.widgetcreate = $uibModal.open({\r\n templateUrl: 'createwidget.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n vm.closecreatewidet = function () {\r\n vm.widgetcreate.close();\r\n vm.dataFilters = [];\r\n vm.chartDisplayName= \"\";\r\n vm.chartDescription = \"\";\r\n vm.SelectedType = \"\";\r\n vm.SelectedChartName = \"\";\r\n }\r\n\r\n vm.ReportFilter = function () {\r\n vm.FilterModal = $uibModal.open({\r\n templateUrl: 'ReportFilter.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeReportFilterModal = function () {\r\n vm.FilterModal.close();\r\n }\r\n\r\n vm.ScheduledReport = function () {\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.scheduleModel.reportName = vm.ReportName;\r\n vm.scheduleModel.frequency = vm.scheduleModel.once;\r\n vm.scheduleModel.pull_data.range = vm.scheduleModel.pull_data.day;\r\n vm.scheduleModel.attachReportInMailBody = true;\r\n vm.scheduleModel.attachReportInExcel = true;\r\n vm.scheduleModel.sampleDateMendtryErr = false;\r\n vm.scheduleModel.input_of_week = null;\r\n vm.scheduleModel.sampleDate = new moment();\r\n vm.scheduleModel.input_for_month.option = vm.scheduleModel.input_for_month.start_of_day;\r\n vm.shareModel.content = \"Please find below the progress report as on $Date\\n\\nYou are requested to view the detailed report at $Link\";\r\n vm.ScheduledReportModal = $uibModal.open({\r\n templateUrl: 'ScheduledwidgetCtrl.html',\r\n backdrop: 'static',\r\n windowClass: 'schedulerModal',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeScheduledReportModal = function () {\r\n vm.ScheduledReportModal.close();\r\n }\r\n\r\n $scope.options = ['Option 1', 'Option 2', 'Option 3', 'Option 4'];\r\n $scope.selectedOptions = {};\r\n\r\n vm.shareModel.getUserSuggestion = function (val) {\r\n vm.scheduleModel.toListMendtryErr = false;\r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }].concat(vm.users) : vm.users;\r\n }\r\n // vm.getUsersLite();\r\n return re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }] : [];\r\n }\r\n\r\n // vm.getUsers = function () {\r\n // vm.users = [];\r\n // dashboardDetailService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n // //$log.log(data);\r\n // }]));\r\n // }\r\n\r\n vm.getUsersLite = function () {\r\n vm.users = [];\r\n dashboardDetailService.getUsersLite(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n //$log.log(data);\r\n }]));\r\n }\r\n\r\n vm.getUsersLite();\r\n\r\n vm.shareModel.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName != null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n\r\n vm.shareModel.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.shareModel.toList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.ccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n }\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.bccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n }\r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n\r\n vm.shareModel.cancelledToListUser = function (i) {\r\n vm.shareModel.toList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledCCListUser = function (i) {\r\n vm.shareModel.ccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledBCCListUser = function (i) {\r\n vm.shareModel.bccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.selectUserNameInToList = function (item) {\r\n vm.shareModel.toList.push(item);\r\n vm.shareModel.toUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInCCList = function (item) {\r\n vm.shareModel.ccList.push(item);\r\n vm.shareModel.ccUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInBCCList = function (item) {\r\n vm.shareModel.bccList.push(item);\r\n vm.shareModel.bccUsers = [];\r\n }\r\n\r\n vm.shareModel.mailReport = function () {\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function (user) {\r\n toList.push(user.UserId);\r\n });\r\n var ccList = [];\r\n angular.forEach(vm.shareModel.ccList, function (user) {\r\n ccList.push(user.UserId);\r\n });\r\n var bccList = [];\r\n angular.forEach(vm.shareModel.bccList, function (user) {\r\n bccList.push(user.UserId);\r\n });\r\n if (toList.length == 0) {\r\n vm.scheduleModel.toListMendtryErr = true;\r\n return;\r\n }\r\n if (vm.shareModel.content.length == 0) {\r\n return false;\r\n }\r\n\r\n var content = vm.shareModel.content;\r\n content = content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n vm.closeShareReportModal();\r\n dashboardDetailService.mailReport(token, toList, ccList, bccList, \"Report: \" + vm.ReportName,\r\n content, vm.ReportName, loggedinUser, vm.filter_key, vm.filter_name,\r\n vm.attachReportInMailBody, vm.attachReportInExcel, vm.rollup,\r\n vm.createCallback(null, [function (data) {\r\n vm.showSuccess(\"Success\", \"Report has been shared successfully\");\r\n }]));\r\n }\r\n\r\n vm.downloadReport = function () {\r\n dashboardDetailService.downloadReport(vm.report_data.ReportName, loggedinUser, vm.filter_key, vm.filter_name, vm.rollup, vm.isData);\r\n }\r\n\r\n vm.scheduleModel.checkName = function () {\r\n dashboardDetailService.checkReportName(vm.scheduleModel.reportName, function (data) {\r\n //$log.log(\"checkName reposnse\", data);\r\n vm.scheduleModel.reportNameAlreadyExists = data;\r\n });\r\n }\r\n\r\n vm.scheduleModel.scheduleReport = function () {\r\n var startTime = null;\r\n var endTime = null;\r\n var cronExpression = null;\r\n var daily = null;\r\n var weekly = null;\r\n var monthly = null;\r\n //$log.log(\"vm.scheduleModel.scheduleTime \",vm.scheduleModel.scheduleTime);\r\n if (vm.scheduleModel.reportName == null || vm.scheduleModel.reportName.length == 0) {\r\n vm.scheduleModel.reportNameMendtryErr = true;\r\n return;\r\n }\r\n if (vm.shareModel.toList.length == 0) {\r\n vm.scheduleModel.toListMendtryErr = true;\r\n return;\r\n }\r\n if (vm.scheduleModel.frequency == vm.scheduleModel.once) {\r\n //$log.log(\"vm.scheduleModel.sampleDate\", vm.scheduleModel.sampleDate);\r\n if (vm.scheduleModel.sampleDate) {\r\n var sample_Data = vm.scheduleModel.sampleDate ? vm.scheduleModel.sampleDate : new moment();\r\n startTime = {\r\n \"date\": sample_Data.format(\"DD\"),\r\n \"hour\": sample_Data.format(\"HH\"),\r\n \"min\": sample_Data.format(\"mm\"),\r\n \"month\": sample_Data.format(\"MMM\").toUpperCase(),\r\n \"sec\": sample_Data.format(\"ss\"),\r\n \"year\": sample_Data.format(\"YYYY\")\r\n };\r\n var sampleEndTime = moment(sample_Data).add(1, 'month');\r\n endTime = {\r\n \"date\": sampleEndTime.format(\"DD\"),\r\n \"hour\": sampleEndTime.format(\"HH\"),\r\n \"min\": sampleEndTime.format(\"mm\"),\r\n \"month\": sampleEndTime.format(\"MMM\").toUpperCase(),\r\n \"sec\": sampleEndTime.format(\"ss\"),\r\n \"year\": sampleEndTime.format(\"YYYY\")\r\n };\r\n //$log.log(\"startTime \",startTime);\r\n } else {\r\n vm.scheduleModel.sampleDateMendtryErr = true;\r\n return;\r\n }\r\n\r\n } else {\r\n var startDate = vm.scheduleModel.start_date ? new Date(vm.scheduleModel.start_date) : new Date();\r\n var endDate = vm.scheduleModel.end_date ? new Date(vm.scheduleModel.end_date) : new Date();\r\n startTime = {\r\n \"date\": startDate.getDate(),\r\n \"hour\": startDate.getHours(),\r\n \"min\": startDate.getMinutes(),\r\n \"month\": vm.monthNames3[startDate.getMonth()],\r\n \"sec\": startDate.getSeconds(),\r\n \"year\": startDate.getFullYear()\r\n };\r\n endTime = {\r\n \"date\": endDate.getDate(),\r\n \"hour\": endDate.getHours(),\r\n \"min\": endDate.getMinutes(),\r\n \"month\": vm.monthNames3[endDate.getMonth()],\r\n \"sec\": endDate.getSeconds(),\r\n \"year\": endDate.getFullYear()\r\n };\r\n var hour, min;\r\n if (vm.scheduleModel.scheduleTime) {\r\n var splittedtime = vm.scheduleModel.scheduleTime.split(\":\");\r\n hour = parseInt(splittedtime[0]);\r\n min = parseInt(splittedtime[1]);\r\n } else {\r\n vm.scheduleModel.timeMendtryErr = true;\r\n return;\r\n }\r\n if (vm.scheduleModel.frequency == vm.scheduleModel.daily) {\r\n daily = {\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n } else if (vm.scheduleModel.frequency == vm.scheduleModel.weekly) {\r\n var dayOfWeek = [];\r\n\r\n if (vm.scheduleModel.input_of_week.sun) {\r\n dayOfWeek.push(1);\r\n }\r\n if (vm.scheduleModel.input_of_week.mon) {\r\n dayOfWeek.push(2);\r\n }\r\n if (vm.scheduleModel.input_of_week.tue) {\r\n dayOfWeek.push(3);\r\n }\r\n if (vm.scheduleModel.input_of_week.wed) {\r\n dayOfWeek.push(4);\r\n }\r\n if (vm.scheduleModel.input_of_week.thu) {\r\n dayOfWeek.push(5);\r\n }\r\n if (vm.scheduleModel.input_of_week.fri) {\r\n dayOfWeek.push(6);\r\n }\r\n if (vm.scheduleModel.input_of_week.sat) {\r\n dayOfWeek.push(7);\r\n }\r\n weekly = {\r\n \"dayOfWeek\": dayOfWeek,\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n } else if (vm.scheduleModel.frequency == vm.scheduleModel.monthly) {\r\n if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.start_of_day) {\r\n monthly = {\r\n \"dayOfMonth\": \"1\",\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.end_of_day) {\r\n cronExpression = \"0 \" + hour + \" \" + min + \" L * ?\";\r\n vm.scheduleModel.frequency = vm.scheduleModel.cronExpression\r\n } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.specific_date) {\r\n monthly = {\r\n \"dayOfMonth\": vm.scheduleModel.input_for_month.date,\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n }\r\n\r\n }\r\n }\r\n\r\n var data = {\r\n \"cronExpression\": cronExpression,\r\n \"cronType\": vm.scheduleModel.frequency,\r\n \"daily\": daily,\r\n \"endTime\": endTime,\r\n \"jobStartTime\": startTime,\r\n \"method\": \"POST\",\r\n \"monthly\": monthly,\r\n \"uniqueId\": vm.scheduleModel.reportName,\r\n \"reportId\": $stateParams.report_id,\r\n \"url\": DashboardURL + \"/api/Report/mailexcelreportbyreportid\",\r\n \"weekly\": weekly,\r\n \"accountId\": loggedinUser\r\n };\r\n\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function (user) {\r\n toList.push(user.PersonalEmail);\r\n });\r\n var ccList = [];\r\n angular.forEach(vm.shareModel.ccList, function (user) {\r\n ccList.push(user.PersonalEmail);\r\n });\r\n var bccList = [];\r\n angular.forEach(vm.shareModel.bccList, function (user) {\r\n bccList.push(user.PersonalEmail);\r\n });\r\n\r\n if (vm.shareModel.content.length == 0) {\r\n vm.shareModel.contentMedtryErr = true;\r\n return;\r\n }\r\n\r\n var content = vm.shareModel.content;\r\n content = content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n var schedulerModel = {};\r\n schedulerModel[\"TOList\"] = toList;\r\n schedulerModel[\"CCList\"] = ccList;\r\n schedulerModel[\"BCCList\"] = bccList;\r\n schedulerModel[\"Body\"] = content;\r\n schedulerModel[\"Subject\"] = \"Report: \" + vm.ReportName\r\n schedulerModel[\"ReportId\"] = vm.DashboardId\r\n schedulerModel[\"ReqUserId\"] = loggedinUser;\r\n schedulerModel[\"FilterKeys\"] = null;\r\n schedulerModel[\"FilterValues\"] = null;\r\n schedulerModel[\"ReportInMailBody\"] = vm.scheduleModel.attachReportInMailBody;\r\n schedulerModel[\"AttachXLSReportInMail\"] = vm.scheduleModel.attachReportInExcel;\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n schedulerModel[\"RollUps\"] = \"Last Day\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n schedulerModel[\"RollUps\"] = \"Last Week\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n schedulerModel[\"RollUps\"] = \"Last Month\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n schedulerModel[\"RollUps\"] = \"Last Quarter\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n schedulerModel[\"RollUps\"] = \"Current Month\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n var re = /^[1-9]+[0-9]*$/;\r\n if (!re.test(vm.scheduleModel.pull_data.specific_day_value)) {\r\n vm.scheduleModel.pull_data.specificDayValMedtryErr = true;\r\n return;\r\n }\r\n schedulerModel[\"RollUps\"] = vm.scheduleModel.pull_data.specific_day_value;\r\n }\r\n data[\"model\"] = JSON.stringify(schedulerModel);\r\n data[\"entity\"] = \"report\";\r\n\r\n dashboardDetailService.scheduleReport(loggedinUser, data, token,\r\n vm.createCallback(null, [function (data) {\r\n if (data.msg == \"Schedule already exists\") {\r\n vm.showFailure(\"Failed\", \"Schedule with same name already exists.\");\r\n } else if (data.msg == \"Unexpected params\") {\r\n vm.showFailure(\"Failed\", \"Unexpected parameters.\");\r\n } else if (data.msg == \"Failed\") {\r\n vm.showFailure(\"Server Error\", \"Failed to create schedule.\");\r\n } else {\r\n vm.showSuccess(\"Success\", \"Report scheduled successfully.\");\r\n vm.closeScheduledReportModal();\r\n }\r\n }]));\r\n }\r\n\r\n vm.PDFView = function (img) {\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n vm.pdfimage = resp.data;\r\n });\r\n $scope.selected = null;\r\n $timeout(function () {\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }, 1000)\r\n }\r\n vm.PDFUserModal = function () {\r\n jobAppointmentModal.close();\r\n }\r\n vm.isShow = true;\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n\r\n // vm.addMoreFilter = function () {\r\n // vm.SelectedSkills = [];\r\n // vm.SelectedLocations = [];\r\n // vm.SelectedField = [];\r\n // vm.showEditList = true;\r\n // vm.showAction = false;\r\n // vm.getAllAccountsExceptHD();\r\n\r\n // }\r\n\r\n vm.addMoreFilter = function () {\r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n };\r\n\r\n vm.addNewFilter = function (filter) {\r\n if (filter.FieldName.Type == 'Text') {\r\n filter.FieldValue = filter.FieldValue.join('|');\r\n }\r\n else if (filter.FieldName.Type == 'DateTime'){\r\n filter.FieldValue = vm.filterstartDate + '|' + vm.filterendDate;\r\n filter.FieldValue = filter.FieldValue.toString();\r\n\r\n }\r\n else if (filter.FieldName.Type == 'Numeric'){\r\n filter.FieldValue = filter.FieldValue.toString();\r\n }\r\n vm.dataFilters.push({\r\n \"FieldName\": filter.FieldName.Name,\r\n \"Condition\": filter.Condition,\r\n \"FieldValue\": filter.FieldValue,\r\n \"JoiningOperator\": filter.JoiningOperator\r\n });\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n // Clear the form fields after adding\r\n // filter.FieldName = \"\";\r\n // filter.Condition = \"\";\r\n // filter.FieldValue = \"\";\r\n // filter.JoiningOperator = \"\";\r\n };\r\n\r\n $scope.toggleEdit = function (filter) {\r\n angular.forEach(vm.AllFieldList.Fields, function (d) {\r\n if (d.Name == filter.FieldName) {\r\n filter.FieldName = d; \r\n return; \r\n }\r\n });\r\n \r\n if (filter.FieldName.Type == 'Text') {\r\n filter.FieldValue = filter.FieldValue.split('|');\r\n }\r\n else if (filter.FieldName.Type == 'DateTime'){\r\n var dateValues = filter.FieldValue.split('|');\r\n vm.filterstartDate = dateValues[0];\r\n vm.filterendDate = dateValues[1];\r\n \r\n }\r\n else if (filter.FieldName.Type == 'Numeric'){\r\n filter.FieldValue = parseFloat(filter.FieldValue);\r\n }\r\n vm.GetFieldValuesByFieldNames(vm.SelectedType, filter.FieldName.Name);\r\n // filter.FieldValue = filter.FieldValue;\r\n filter.Condition = filter.Condition;\r\n filter.JoiningOperator = filter.JoiningOperator;\r\n };\r\n\r\n vm.SaveCustomSettings = function(){\r\n dashboardDetailService.SaveCustomSettings($stateParams.report_id, $scope.order, loggedinUser,token).then(function(resp){\r\n if (resp && resp.status == 201) {\r\n vm.showSuccess(\"Success\", \"Layout Saved Successfully\");\r\n $scope.shouldNotHighlightItem();\r\n } \r\n else{\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n })\r\n }\r\n\r\n $scope.updateDataFilter = function (filter) {\r\n // Update the values with the edited values\r\n\r\n if (filter.FieldName.Type == 'Text') {\r\n filter.FieldValue = filter.FieldValue.join('|');\r\n }\r\n else if (filter.FieldName.Type == 'DateTime'){\r\n filter.FieldValue = vm.filterstartDate + '|' + vm.filterendDate;\r\n filter.FieldValue = filter.FieldValue.toString();\r\n\r\n }\r\n else if (filter.FieldName.Type == 'Numeric'){\r\n filter.FieldValue = filter.FieldValue.toString();\r\n }\r\n filter.FieldName = filter.FieldName.Name;\r\n filter.Condition = filter.Condition;\r\n filter.JoiningOperator = filter.JoiningOperator;\r\n };\r\n\r\n $scope.deleteDataFilter = function (filter) {\r\n const index = vm.dataFilters.indexOf(filter);\r\n if (index !== -1) {\r\n vm.dataFilters.splice(index, 1);\r\n }\r\n };\r\n\r\n vm.removeAddmoreEditList = function () {\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n }\r\n\r\n vm.openDilogforDelete = function (index) {\r\n $scope.deleteIndex = index;\r\n vm.ShareModal = $uibModal.open({\r\n templateUrl: 'openDilogforDelete.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.closeopenDilogforDeleteModal = function () {\r\n vm.ShareModal.close();\r\n }\r\n\r\n vm.selectedOption = 'dimension';\r\n\r\n vm.ChangeOption = function (type) {\r\n vm.selectedOption = type;\r\n vm.SelectedType = \"\";\r\n vm.SelectedChartName = \"\";\r\n vm.chartDisplayName = \"\";\r\n vm.chartDescription = \"\";\r\n vm.dataFilters = [];\r\n }\r\n\r\n vm.GetFieldValuesByFieldNames = function (EntityType, EntityName) {\r\n dashboardDetailService.GetFieldValuesByFieldNames(EntityType, EntityName,loggedinUser, token).then(function (resp) {\r\n vm.AllFieldValuesList = resp.data.Values;\r\n })\r\n }\r\n\r\n vm.ChangeMetrics = function (chart) {\r\n var metricsNames = [];\r\n if (vm.selectedOption == 'linecharts' && Array.isArray(chart)) {\r\n for (var i = 0; i < chart.length; i++) {\r\n metricsNames.push(chart[i].MetricsName);\r\n }\r\n vm.chartName = metricsNames;\r\n vm.chartDisplayName = \"\";\r\n vm.chartDescription = \"\";\r\n }\r\n else if (vm.selectedOption == 'metrices') {\r\n vm.chartName = chart.MetricsName;\r\n vm.chartName = [vm.chartName];\r\n vm.chartDisplayName = chart.DisplayName;\r\n vm.chartDescription = chart.Description;\r\n }\r\n else{\r\n vm.chartName = chart.DimensionName;\r\n vm.chartName = [vm.chartName];\r\n vm.chartDisplayName = chart.DisplayName;\r\n vm.chartDescription = chart.Description;\r\n }\r\n vm.dataFilters = [];\r\n }\r\n\r\n\r\n vm.GetFieldTypesByEntityName = function (EntityType) {\r\n dashboardDetailService.GetFieldTypesByEntityName(EntityType, loggedinUser, token).then(function (resp) {\r\n vm.AllFieldList = resp.data;\r\n\r\n })\r\n }\r\n\r\n\r\n vm.GetMetricsByEntityType = function (EntityType,SelectedChartName) {\r\n dashboardDetailService.GetMetricsByEntityType(EntityType, loggedinUser, token).then(function (resp) {\r\n vm.AllMetricsList = resp.data;\r\n if(SelectedChartName){\r\n angular.forEach(vm.AllMetricsList, function (d) {\r\n if (d.MetricsName == SelectedChartName) {\r\n vm.SelectedChartName = d; \r\n return; \r\n }\r\n });\r\n vm.GetFieldTypesByEntityName(EntityType);\r\n if(vm.AllFieldList){\r\n vm.widgetupdate = $uibModal.open({\r\n templateUrl: 'updatewidget.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.GetDimensionByEntityName = function (EntityType,SelectedChartName) {\r\n dashboardDetailService.GetDimensionByEntityName(EntityType, loggedinUser, token).then(function (resp) {\r\n vm.AllDimensionsList = resp.data;\r\n if(SelectedChartName){\r\n angular.forEach(vm.AllDimensionsList, function (d) {\r\n if (d.DimensionName == SelectedChartName) {\r\n vm.SelectedChartName = d; \r\n vm.chartDisplayName = d.DisplayName;\r\n vm.chartDescription = d.Description; \r\n return; \r\n }\r\n });\r\n vm.GetFieldTypesByEntityName(EntityType);\r\n if(vm.AllFieldList){\r\n vm.widgetupdate = $uibModal.open({\r\n templateUrl: 'updatewidget.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllEntityTypes = function () {\r\n dashboardDetailService.GetAllEntityTypes(loggedinUser, token).then(function (resp) {\r\n vm.AllEntityList = resp.data;\r\n })\r\n }\r\n\r\n vm.GetAllEntityTypes();\r\n vm.dataFilters = [];\r\n\r\n vm.AddChartsToReport = function () {\r\n vm.feedbackForm.submitted = true;\r\n if (vm.feedbackForm.$valid) {\r\n data = {\r\n \"ReportId\": $stateParams.report_id,\r\n \"ChatType\": vm.selectedOption,\r\n \"ChartName\": vm.chartName,\r\n \"DisplayName\": vm.chartDisplayName,\r\n \"Description\": vm.chartDescription,\r\n \"DeleteChartId\": \"\",\r\n \"DataFilters\": vm.dataFilters\r\n }\r\n dashboardDetailService.AddChartsToReport(data, loggedinUser, token, vm.reportLayoutCallback);\r\n }\r\n }\r\n\r\n vm.UpdateChartsFromReport = function() {\r\n data ={\r\n \"ReportId\": $stateParams.report_id,\r\n \"ChatType\": vm.selectedOption,\r\n \"ChartName\": vm.chartName,\r\n \"DisplayName\": vm.chartDisplayName,\r\n \"Description\": vm.chartDescription,\r\n \"DeleteChartId\": vm.deleteChartId,\r\n \"DataFilters\": vm.dataFilters\r\n }\r\n dashboardDetailService.UpdateChartsFromReport(data, loggedinUser, token,vm.reportLayoutCallback);\r\n vm.dataFilters = [];\r\n vm.chartDisplayName= \"\";\r\n vm.chartDisplayName = \"\";\r\n vm.closeupdatewidget();\r\n // .then(function (resp) {\r\n // if(resp.data && resp.status == 201){ \r\n // $timeout(function () {\r\n // vm.getCustomerReport(vm.getReportName($stateParams.report_name));\r\n // }, 2000)\r\n // vm.showSuccess(\"Success\", resp.data);\r\n // }\r\n // else{\r\n // vm.showFailure(\"Failed\", resp.data);\r\n // }\r\n // })\r\n }\r\n\r\n vm.DeleteChartsFromReport = function(item) {\r\n if(item.chartId){\r\n vm.deleteChartId = item.chartId;\r\n }\r\n else{\r\n vm.deleteChartId = item.ChartId;\r\n }\r\n dashboardDetailService.DeleteChartsFromReport($stateParams.report_id,vm.deleteChartId, loggedinUser, token).then(function (resp) {\r\n if(resp.data && resp.status == 201){\r\n $timeout(function () {\r\n vm.getCustomerReport($stateParams.report_id);\r\n }, 2000)\r\n vm.showSuccess(\"Success\", resp.data);\r\n }\r\n else{\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n\r\n});\r\n\nangular.module('inspinia').service('dashboardReportListService', function (ApiURL, DashboardURL, ActivityURL, $http) {\r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n this.GetAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.getSkills = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/SkillSets/' + loggedinUser + '/getmasterskillsB2C';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n this.GetAllDashboardReports = function (data, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Dashboard/GetAllDashboardReports';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetByReportById = function (loggedinUser, reportId, token) {\r\n var url = DashboardURL + '/api/Report/GetReportById?reportId=' + reportId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllActivitiesForSchedule = function (loggedinUser, scheduleId, token) {\r\n var url = ActivityURL + '/api/Activity/GetAllActivitiesForSchedule?jobId=' + scheduleId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetDashboardByName = function (loggedinUser, dashboardname, token) {\r\n var url = DashboardURL + '/api/Dashboard/' + loggedinUser + '/' + dashboardname + '/GetDashboardByName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.createReport = function (data, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Report/?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n vm.scheduleReport = function (loggedinUser, data, token, callback) {\r\n $http.put(DashboardURL + '/api/AddUpateScheduleToReport', data, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.GetSchedules = function (dashboardId, loggedinUser, token) {\r\n //vm.dashboardname = dashboardname;\r\n var url = DashboardURL + '/api/Report/GetSchedules?ReportId=' + dashboardId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetScheduleById = function (dashboardname, scheduleId, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Report/GetScheduleById?ReportName=' + dashboardname + '&ScheduleId=' + scheduleId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.updateReport = function (data, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Report/?reqUserId=' + loggedinUser;\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.createDashboard = function (data, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Dashboard/?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.updateDashboard = function (data, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Dashboard/?reqUserId=' + loggedinUser;\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateDashboardReportToFavourite = function (DashboardReportId, type, loggedinUser, token) {\r\n var url = DashboardURL + '/api/Dashboard/UpdateDashboardReportToFavourite?DashboardReportId=' + DashboardReportId + '&type=' + type;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetSharedUsers = function (dashboardId, loggedinUser, token) {\r\n var url = DashboardURL + '/api/GetSharedUsers?ReportId=' + dashboardId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GrantAccessToReport = function (DashboardReportName, UserIds, loggedinUser, token) {\r\n var url = DashboardURL + '/api/GrantAccessToReport?ReportName=' + DashboardReportName + '&UserId=' + UserIds;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GrantRevokeAccessToReport = function (DashboardReportId, UserIds, loggedinUser, token) {\r\n var url = DashboardURL + '/api/GrantRevokeAccessToReport?ReportId=' + DashboardReportId + '&UserId=' + UserIds;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.RevokeAccessToReport = function (DashboardReportName, UserIds, loggedinUser, token) {\r\n var url = DashboardURL + '/api/RevokeAccessToReport?ReportName=' + DashboardReportName + '&UserId=' + UserIds;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.DeleteSchedule = function (uniqueId, reportId, loggedinUser, token) {\r\n var url = DashboardURL + '/api/RemoveScheduleFromReport?ReportId=' + reportId + '&UniqueId=' + uniqueId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n});\r\n\r\n\nangular.module('inspinia').controller('dashboardReportListController', function (dashboardReportListService, reportDetailService, DashboardURL, ManualAssignationJobService, DashboardService, PlanningResourseMapService, JobDetailViewService, ReferService, $q, $filter, $log, $state, $localStorage, UIURL, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, ImageUrl, $window) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var accountid = $localStorage.accountConfig.AccountId;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.dtInstance = {};\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.broadcastSentUser = true;\r\n $scope.toggleForBroadcast = function () {\r\n $scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.timeLineDetail = true;\r\n $scope.openTimeLine = function () {\r\n $scope.timeLineDetail = !$scope.timeLineDetail;\r\n $scope.myvalue = true;\r\n };\r\n $scope.capacitygapWrapper = \"hide-nav\";\r\n $scope.toggleMenu = function () {\r\n if ($scope.capacitygapWrapper === \"hide-nav\") {\r\n $scope.capacitygapWrapper = \"show-nav\";\r\n }\r\n else {\r\n $scope.capacitygapWrapper = \"hide-nav\";\r\n }\r\n };\r\n $scope.hideAllUser = true;\r\n\r\n $scope.showAllUser = function () {\r\n $scope.hideAllUser = true;\r\n };\r\n $scope.hideAllUserbutton = function () {\r\n $scope.hideAllUser = false;\r\n };\r\n\r\n vm.IsActivityVisible = false;\r\n $scope.userClass_status = true;\r\n $scope.userClass1_status = true;\r\n $scope.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.userClass_status = true;\r\n $scope.userClass1_status = true;\r\n $scope.broadcastSentUser = true;\r\n $scope.timeLineDetail = true;\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n }\r\n $scope.close360View = function () {\r\n $scope.userClass_status = true;\r\n $scope.myvalue = false;\r\n }\r\n $scope.close360ViewBroadcaste = function () {\r\n $scope.myvalue = false;\r\n angular.element('#div1').removeClass(\"alpha\");\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userSingle = function () {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.userSingle1 = function (ticketView) {\r\n vm.ticketViewId = ticketView.TicketId;\r\n vm.ticketAccountName = ticketView.AccountName;\r\n vm.ticketAddress = ticketView.Address;\r\n vm.ticketUserId = ticketView.UserId;\r\n vm.ticketUserName = ticketView.UserName;\r\n vm.ticketSkills = ticketView.Skills;\r\n $scope.userClass1_status = !$scope.userClass1_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.closeactivity = function () {\r\n $scope.userClass1_status = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n $scope.userFilter = true;\r\n $scope.assignJobFilter = function () {\r\n $scope.userFilter = !$scope.userFilter;\r\n $scope.myvalue = true;\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n };\r\n $scope.minatureSlide = true;\r\n $scope.minatureSlideBtn = function () {\r\n $scope.minatureSlide = !$scope.minatureSlide;\r\n $scope.myvalue = true;\r\n };\r\n\r\n\r\n // vm.ShareReport = function () {\r\n // vm.shareModel.toList = [];\r\n // vm.shareModel.ccList = [];\r\n // vm.shareModel.bccList = [];\r\n // vm.shareModel.content = \"Hello,\\n\\nYou are requested to view project report on below link \\n\\n\" + $window.location.href + \" \\n\\nThanks\\nMobiforce Team\";\r\n // vm.ShareModal = $uibModal.open({\r\n // templateUrl: 'SharewidgetCtrl.html',\r\n // backdrop: 'static',\r\n // size: 'md',\r\n // scope: $scope\r\n // });\r\n // }\r\n\r\n var today = new Date();\r\n\r\n var formattedDate = today.toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' });\r\n\r\n $scope.hideFilter = function () {\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n }\r\n $scope.toggleContextMenu = function () {\r\n $scope.contextMenuVisible = !$scope.contextMenuVisible;\r\n };\r\n var token = $localStorage.token;\r\n vm.IsAutoAssignToCHDteam = $localStorage.IsAutoAssignToCHDteam;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n\r\n // variables required for slot allocation\r\n vm.users = [];\r\n vm.filename = '';\r\n vm.report_title = \"\";\r\n vm.attachReportInMailBody = true;\r\n vm.attachReportInExcel = true;\r\n vm.sorttype = \"desc\";\r\n vm.SortType = \"desc\";\r\n vm.Sort = \"desc\";\r\n vm.SortField = 'CreatedOn';\r\n vm.OrderBy = 'CreatedOn';\r\n vm.financePageListCount = 10;\r\n vm.UWticketsListCount = 10;\r\n var witemNames = \"\";\r\n var witemValues = \"\";\r\n var wsSDate = '';\r\n var wsEDate = '';\r\n var uPageIndex = 1;\r\n var uPageSize = 10;\r\n vm.AlListCount = 10;\r\n vm.UWListCount = 10;\r\n vm.AssignedTo = '';\r\n vm.OnBoardingList = [];\r\n vm.assignButtonDisable = false;\r\n vm.bGVerifyListLength = 0;\r\n vm.userPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.ExceptionType = '';\r\n vm.AssignedTo = '';\r\n vm.taskStatus = '';\r\n vm.DateField = 'CreatedOn';\r\n vm.State = '';\r\n vm.City = '';\r\n vm.taskPincode = '';\r\n vm.CreationSource = '';\r\n vm.taskskill = '';\r\n vm.accountId = '';\r\n vm.ExceptionType = '';\r\n vm.capacityCount = '';\r\n vm.cityOfTask = \"\";\r\n vm.accountIdOfTask = \"\";\r\n vm.stateOfTask = \"\";\r\n vm.skillOfTask = \"\";\r\n vm.descriptionOfReport = \"\";\r\n vm.IsFavourite = false;\r\n vm.PipeSeparatedTags = \"\";\r\n vm.Tags = [];\r\n vm.reportname = \"\";\r\n vm.reportid = \"\";\r\n $scope.isCollapsed = true;\r\n $log.log('$stateParams.start_date', $stateParams.start_date);\r\n // var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n // var endDate = moment().format(\"YYYY-MM-DD\");\r\n if ($stateParams.start_date) {\r\n vm.rollup = $stateParams.start_date;\r\n //\"Range(\"+startDate+\"|\"+endDate+\")\";\r\n var dateArray1 = vm.rollup.split('(');\r\n var dateArray2 = dateArray1[1].split(')');\r\n var dateArray3 = dateArray2[0].split('|');\r\n $scope.dates = { startDate: moment(dateArray3[0]), endDate: moment(dateArray3[1]) };\r\n } else if (vm.isData) {\r\n if ($stateParams.start_date == '' || $stateParams.start_date == null) {\r\n $scope.dates = { startDate: vm.accountCreationDate, endDate: moment() };\r\n var startDate = vm.accountCreationDate;\r\n //var startDate = moment(0).format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n }\r\n } else {\r\n $scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n var startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.rollup = \"Range(\" + startDate + \"|\" + endDate + \")\";\r\n }\r\n vm.bookingdates = { startDate: moment().subtract(30, 'days'), endDate: moment() };\r\n vm.bookingRanges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n vm.taskDueDate = new Date();\r\n var pcdt = new Date();\r\n // var year = pcdt.getFullYear();\r\n // var month = ('0' + (pcdt.getMonth() + 1)).slice(-2);\r\n // var day = ('0' + pcdt.getDate()).slice(-2);\r\n // $scope.minDate = year + '-' + month + '-' + day;\r\n // pcdt.setDate(pcdt.getDate() + 1);\r\n vm.showErrorMessage = false;\r\n\r\n vm.openCalendar = function (e, picker) {\r\n vm.ClosureDateTime.open = true;\r\n };\r\n var plannedclosuredatelimit = new Date();\r\n plannedclosuredatelimit.setMinutes(plannedclosuredatelimit.getMinutes() + 1)\r\n vm.ClosureDateTime = { date: '', datepickerOptions: { minDate: plannedclosuredatelimit } };\r\n\r\n var date = new Date();\r\n var d = date.getDate();\r\n var m = date.getMonth();\r\n var y = date.getFullYear();\r\n vm.eventsF = function (start, end, timezone, callback) {\r\n var s = new Date(start).getTime() / 1000;\r\n var e = new Date(end).getTime() / 1000;\r\n var m = new Date(start).getMonth();\r\n var events = [{\r\n title: 'Feed Me ' + m,\r\n start: s + (50000),\r\n end: s + (100000),\r\n allDay: false,\r\n className: ['customFeed']\r\n }];\r\n callback(events);\r\n };\r\n\r\n vm.shareModel = {\r\n selectedUsers: [],\r\n toList: [],\r\n ccList: [],\r\n bccList: [],\r\n content: vm.defaultMailBody,\r\n mailbody: 'Hello User,\\n\\nPlease find report ' + vm.SharedReportId + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team'\r\n };\r\n vm.showMailShare = false;\r\n vm.ShareMailReport = function (reportId) {\r\n vm.SharedReportId = reportId;\r\n vm.showMailShare = true;\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.shareModel.mailbody = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportId + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.shareModel.content = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportId + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n }\r\n\r\n vm.shareModel.mailReport = function () {\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function (user) {\r\n toList.push(user.UserId);\r\n });\r\n var ccList = [];\r\n angular.forEach(vm.shareModel.ccList, function (user) {\r\n ccList.push(user.UserId);\r\n });\r\n var bccList = [];\r\n angular.forEach(vm.shareModel.bccList, function (user) {\r\n bccList.push(user.UserId);\r\n });\r\n if (toList.length == 0) {\r\n vm.scheduleModel.toListMendtryErr = true;\r\n return;\r\n }\r\n if (vm.shareModel.content.length == 0) {\r\n return false;\r\n }\r\n\r\n var content = vm.shareModel.content;\r\n content = content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n vm.showMailShare = false;\r\n reportDetailService.mailReport(token, toList, ccList, bccList, \"Report: \" + vm.SharedReportId,\r\n content, vm.SharedReportId, loggedinUser, vm.filter_key, vm.filter_name,\r\n vm.attachReportInMailBody, vm.attachReportInExcel, vm.rollup,\r\n vm.createCallback(null, [function (data) {\r\n vm.showSuccess(\"Success\", \"Report has been shared successfully\");\r\n }]));\r\n }\r\n\r\n vm.ShareReport = function (reportId) {\r\n vm.SharedReportId = reportId;\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.GetSharedUsers(reportId);\r\n vm.showShare = true;\r\n vm.shareModel.mailbody = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportId + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n vm.shareModel.content = 'Hello User,\\n\\nPlease find report ' + vm.SharedReportId + ' on ' + formattedDate + '\\n\\nThanks\\nMobiforce Team';\r\n // vm.ShareModal = $uibModal.open({\r\n // templateUrl: 'SharewidgetCtrl.html',\r\n // backdrop: 'static',\r\n // size: 'md',\r\n // scope: $scope\r\n // });\r\n }\r\n\r\n vm.closeShareReportModal = function () {\r\n vm.ShareModal.close();\r\n }\r\n\r\n vm.scheduleModel = {\r\n frequency: \"once\",\r\n once: \"once\",\r\n daily: \"daily\",\r\n weekly: \"weekly\",\r\n every_15_days: \"every_15_days\",\r\n monthly: \"monthly\",\r\n cronExpression: \"expression\",\r\n input_for_month: {\r\n option: \"start_of_day\",\r\n start_of_day: \"start_of_day\",\r\n end_of_day: \"end_of_day\",\r\n specific_date: \"specific_date\",\r\n date: 1\r\n },\r\n specific_date_range: [],\r\n start_date: moment(),\r\n end_date: moment().add(1, 'M'),\r\n attachReportInMailBody: true,\r\n attachReportInExcel: true,\r\n scheduleTime: \"\",\r\n scheduleName: \"\",\r\n reportNameAlreadyExists: false,\r\n reportNameMendtryErr: false,\r\n toListMendtryErr: false,\r\n timeMendtryErr: false,\r\n sampleDateMendtryErr: false,\r\n pull_data: {\r\n range: \"last_day\",\r\n day: \"last_day\",\r\n week: \"last_week\",\r\n month: \"last_month\",\r\n quarter: \"last_quarter\",\r\n current_month: \"current_month\",\r\n specific: \"specific\",\r\n specific_day_value: 1,\r\n calculate_range: function () {\r\n var today = new Date();\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n var date = today;\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 1, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n } if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n var date = new Date(today.getFullYear(), today.getMonth() - 3, today.getDate());\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n return 1 + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n var date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - vm.scheduleModel.pull_data.specific_day_value);\r\n return date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n }\r\n }\r\n }\r\n };\r\n\r\n for (var i = 1; i < 32; i++) {\r\n vm.scheduleModel.specific_date_range.push({ value: i, label: i });\r\n }\r\n\r\n vm.shareModel.getUserSuggestion = function (val) {\r\n vm.scheduleModel.toListMendtryErr = false;\r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }].concat(vm.users) : vm.users;\r\n }\r\n // vm.getUsersLite();\r\n return re.test(val) ? [{ FirstName: val.split(\"@\")[0], LastName: \"\", UserId: val }] : [];\r\n }\r\n\r\n // vm.getUsers = function () {\r\n // vm.users = [];\r\n // reportDetailService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n // }]));\r\n // }\r\n\r\n vm.getUsersLite = function () {\r\n vm.users = [];\r\n reportDetailService.getUsersLite(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n }]));\r\n }\r\n\r\n vm.getUsersLite();\r\n\r\n vm.shareModel.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName != null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n\r\n vm.shareModel.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.shareModel.toList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.ccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n }\r\n if (!matched) {\r\n angular.forEach(vm.shareModel.bccList, function (d) {\r\n if (d.UserId == element.UserId) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n }\r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n\r\n vm.monthNames3 = [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\",\r\n \"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"\r\n ];\r\n\r\n vm.shareModel.cancelledToListUser = function (i) {\r\n vm.shareModel.toList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledCCListUser = function (i) {\r\n vm.shareModel.ccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.cancelledBCCListUser = function (i) {\r\n vm.shareModel.bccList.splice(i, 1);\r\n }\r\n\r\n vm.shareModel.selectUserNameInToList = function (item) {\r\n vm.shareModel.toList.push(item);\r\n vm.shareModel.toUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInCCList = function (item) {\r\n vm.shareModel.ccList.push(item);\r\n vm.shareModel.ccUsers = [];\r\n }\r\n vm.shareModel.selectUserNameInBCCList = function (item) {\r\n vm.shareModel.bccList.push(item);\r\n vm.shareModel.bccUsers = [];\r\n }\r\n vm.ScheduleReport = function (reportId, reportName) {\r\n vm.SchedulesList = \"\";\r\n vm.showSchedules = true;\r\n vm.scheduleModel.uniqueId = \"\";\r\n vm.reportname = reportName;\r\n vm.shareModel.toList = [];\r\n vm.shareModel.ccList = [];\r\n vm.shareModel.bccList = [];\r\n vm.scheduleModel.reportId = reportId;\r\n vm.reportid = reportId;\r\n vm.scheduleModel.frequency = vm.scheduleModel.once;\r\n vm.scheduleModel.pull_data.range = vm.scheduleModel.pull_data.day;\r\n vm.scheduleModel.attachReportInMailBody = true;\r\n vm.scheduleModel.attachReportInExcel = true;\r\n vm.scheduleModel.sampleDateMendtryErr = false;\r\n vm.scheduleModel.input_of_week = null;\r\n vm.scheduleModel.sampleDate = new moment();\r\n vm.scheduleModel.input_for_month.option = vm.scheduleModel.input_for_month.start_of_day;\r\n vm.shareModel.content = \"Please find below the progress report as on $Date\\n\\nYou are requested to view the detailed report at $Link\";\r\n $timeout(function () {\r\n vm.GetAllSchedules(reportId);\r\n vm.refreshData();\r\n }, 2000);\r\n\r\n // vm.ScheduledReportModal = $uibModal.open({\r\n // templateUrl: 'ScheduledwidgetCtrl.html',\r\n // backdrop: 'static',\r\n // windowClass: 'schedulerModal',\r\n // scope: $scope\r\n // });\r\n }\r\n\r\n vm.closeScheduledReportModal = function () {\r\n vm.ScheduledReportModal.close();\r\n }\r\n\r\n vm.scheduleModel.scheduleReport = function () {\r\n var startTime = null;\r\n var endTime = null;\r\n var cronExpression = null;\r\n var daily = null;\r\n var weekly = null;\r\n var monthly = null;\r\n if (vm.scheduleModel.reportId == null || vm.scheduleModel.reportId.length == 0) {\r\n vm.scheduleModel.reportNameMendtryErr = true;\r\n return;\r\n }\r\n if (vm.shareModel.toList.length == 0) {\r\n vm.scheduleModel.toListMendtryErr = true;\r\n return;\r\n }\r\n if (vm.scheduleModel.frequency == vm.scheduleModel.once) {\r\n if (vm.scheduleModel.sampleDate) {\r\n var sample_Data = vm.scheduleModel.sampleDate ? vm.scheduleModel.sampleDate : new moment();\r\n startTime = {\r\n \"date\": sample_Data.format(\"DD\"),\r\n \"hour\": sample_Data.format(\"HH\"),\r\n \"min\": sample_Data.format(\"mm\"),\r\n \"month\": sample_Data.format(\"MMM\").toUpperCase(),\r\n \"sec\": sample_Data.format(\"ss\"),\r\n \"year\": sample_Data.format(\"YYYY\")\r\n };\r\n var sampleEndTime = moment(sample_Data).add(1, 'month');\r\n endTime = {\r\n \"date\": sampleEndTime.format(\"DD\"),\r\n \"hour\": sampleEndTime.format(\"HH\"),\r\n \"min\": sampleEndTime.format(\"mm\"),\r\n \"month\": sampleEndTime.format(\"MMM\").toUpperCase(),\r\n \"sec\": sampleEndTime.format(\"ss\"),\r\n \"year\": sampleEndTime.format(\"YYYY\")\r\n };\r\n } else {\r\n vm.scheduleModel.sampleDateMendtryErr = true;\r\n return;\r\n }\r\n\r\n } else {\r\n var startDate = vm.scheduleModel.start_date ? new Date(vm.scheduleModel.start_date) : new Date();\r\n var endDate = vm.scheduleModel.end_date ? new Date(vm.scheduleModel.end_date) : new Date();\r\n startTime = {\r\n \"date\": startDate.getDate(),\r\n \"hour\": startDate.getHours(),\r\n \"min\": startDate.getMinutes(),\r\n \"month\": vm.monthNames3[startDate.getMonth()],\r\n \"sec\": startDate.getSeconds(),\r\n \"year\": startDate.getFullYear()\r\n };\r\n endTime = {\r\n \"date\": endDate.getDate(),\r\n \"hour\": endDate.getHours(),\r\n \"min\": endDate.getMinutes(),\r\n \"month\": vm.monthNames3[endDate.getMonth()],\r\n \"sec\": endDate.getSeconds(),\r\n \"year\": endDate.getFullYear()\r\n };\r\n var hour, min;\r\n if (vm.scheduleModel.scheduleTime) {\r\n var splittedtime = vm.scheduleModel.scheduleTime.split(\":\");\r\n hour = parseInt(splittedtime[0]);\r\n min = parseInt(splittedtime[1]);\r\n } else {\r\n vm.scheduleModel.timeMendtryErr = true;\r\n return;\r\n }\r\n if (vm.scheduleModel.frequency == vm.scheduleModel.daily) {\r\n daily = {\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n } else if (vm.scheduleModel.frequency == vm.scheduleModel.weekly) {\r\n var dayOfWeek = [];\r\n\r\n if (vm.scheduleModel.input_of_week.sun) {\r\n dayOfWeek.push(1);\r\n }\r\n if (vm.scheduleModel.input_of_week.mon) {\r\n dayOfWeek.push(2);\r\n }\r\n if (vm.scheduleModel.input_of_week.tue) {\r\n dayOfWeek.push(3);\r\n }\r\n if (vm.scheduleModel.input_of_week.wed) {\r\n dayOfWeek.push(4);\r\n }\r\n if (vm.scheduleModel.input_of_week.thu) {\r\n dayOfWeek.push(5);\r\n }\r\n if (vm.scheduleModel.input_of_week.fri) {\r\n dayOfWeek.push(6);\r\n }\r\n if (vm.scheduleModel.input_of_week.sat) {\r\n dayOfWeek.push(7);\r\n }\r\n weekly = {\r\n \"dayOfWeek\": dayOfWeek,\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n } else if (vm.scheduleModel.frequency == vm.scheduleModel.monthly) {\r\n if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.start_of_day) {\r\n monthly = {\r\n \"dayOfMonth\": \"1\",\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.end_of_day) {\r\n cronExpression = \"0 \" + hour + \" \" + min + \" L * ?\";\r\n vm.scheduleModel.frequency = vm.scheduleModel.cronExpression\r\n } if (vm.scheduleModel.input_for_month.option == vm.scheduleModel.input_for_month.specific_date) {\r\n monthly = {\r\n \"dayOfMonth\": vm.scheduleModel.input_for_month.date,\r\n \"hour\": hour,\r\n \"minute\": min\r\n };\r\n }\r\n\r\n }\r\n }\r\n \r\n var data = {\r\n \"cronExpression\": cronExpression,\r\n \"cronType\": vm.scheduleModel.frequency,\r\n \"daily\": daily,\r\n \"endTime\": endTime,\r\n \"jobStartTime\": startTime,\r\n \"method\": \"POST\",\r\n \"monthly\": monthly,\r\n \"uniqueId\": vm.scheduleModel.uniqueId,\r\n \"reportId\": vm.scheduleModel.reportId,\r\n \"url\": DashboardURL + \"/api/Report/mailexcelreportbyreportid\",\r\n \"weekly\": weekly,\r\n \"accountId\": loggedinUser\r\n };\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function (user) {\r\n toList.push(user.PersonalEmail);\r\n });\r\n var ccList = [];\r\n angular.forEach(vm.shareModel.ccList, function (user) {\r\n ccList.push(user.PersonalEmail);\r\n });\r\n var bccList = [];\r\n angular.forEach(vm.shareModel.bccList, function (user) {\r\n bccList.push(user.PersonalEmail);\r\n });\r\n if (vm.shareModel.content.length == 0) {\r\n vm.shareModel.contentMedtryErr = true;\r\n return;\r\n }\r\n // vm.scheduleModel.uniqueId = \"\";\r\n var content = vm.shareModel.content;\r\n content = content.replace(new RegExp(\"\\n\", 'g'), \"
\");\r\n var schedulerModel = {};\r\n schedulerModel[\"TOList\"] = toList;\r\n schedulerModel[\"CCList\"] = ccList;\r\n schedulerModel[\"BCCList\"] = bccList;\r\n schedulerModel[\"Body\"] = content;\r\n schedulerModel[\"Subject\"] = \"Report: \" + vm.reportname;\r\n schedulerModel[\"ReportId\"] = vm.scheduleModel.reportId;\r\n schedulerModel[\"ReqUserId\"] = loggedinUser;\r\n schedulerModel[\"FilterKeys\"] = null;\r\n schedulerModel[\"FilterValues\"] = null;\r\n schedulerModel[\"ReportInMailBody\"] = vm.scheduleModel.attachReportInMailBody;\r\n schedulerModel[\"AttachXLSReportInMail\"] = vm.scheduleModel.attachReportInExcel;\r\n if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n schedulerModel[\"RollUps\"] = \"Last Day\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n schedulerModel[\"RollUps\"] = \"Last Week\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n schedulerModel[\"RollUps\"] = \"Last Month\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n schedulerModel[\"RollUps\"] = \"Last Quarter\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n schedulerModel[\"RollUps\"] = \"Current Month\";\r\n } else if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n var re = /^[1-9]+[0-9]*$/;\r\n if (!re.test(vm.scheduleModel.pull_data.specific_day_value)) {\r\n vm.scheduleModel.pull_data.specificDayValMedtryErr = true;\r\n return;\r\n }\r\n schedulerModel[\"RollUps\"] = vm.scheduleModel.pull_data.specific_day_value;\r\n }\r\n data[\"model\"] = JSON.stringify(schedulerModel);\r\n data[\"entity\"] = \"report\";\r\n\r\n dashboardReportListService.scheduleReport(loggedinUser, data, token,\r\n vm.createCallback(null, [function (data) {\r\n if (data.msg == \"Schedule already exists\") {\r\n vm.showFailure(\"Failed\", \"Schedule with same name already exists.\");\r\n } else if (data.msg == \"Unexpected params\") {\r\n vm.showFailure(\"Failed\", \"Unexpected parameters.\");\r\n } else if (data.msg == \"Failed\") {\r\n vm.showFailure(\"Server Error\", \"Failed to create schedule.\");\r\n } else {\r\n vm.showSuccess(\"Success\", \"Report scheduled successfully.\");\r\n // vm.closeScheduledReportModal();\r\n $timeout(function () {\r\n vm.GetAllSchedules(vm.scheduleModel.reportId);\r\n vm.refreshData();\r\n }, 2000);\r\n }\r\n }]));\r\n }\r\n $scope.chips = [];\r\n\r\n $scope.addChip = function (event) {\r\n if (event.key === 'Enter' && $scope.chipsInput.trim() !== '') {\r\n $scope.chips.push($scope.chipsInput.trim());\r\n $scope.chipsInput = '';\r\n }\r\n };\r\n\r\n $scope.removeChip = function (index) {\r\n $scope.chips.splice(index, 1);\r\n };\r\n\r\n vm.exceptionList = [\"CAPACITY_GAP_EXCEPTION\", \"CAPACITY_GAP_CANCEL\", \"CAPACITY_GAP_MANUAL\"];\r\n vm.getSkills = function () {\r\n dashboardReportListService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills;\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.getSkills();\r\n\r\n\r\n vm.createReport = function () {\r\n if (vm.Tags) {\r\n vm.PipeSeparatedTags = vm.Tags.join('|');\r\n }\r\n vm.reportCreation_form.submitted = true;\r\n var data = {\r\n \"ReportName\": vm.reportname,\r\n \"ReportDescription\": vm.descriptionOfReport,\r\n \"ReportId\": \"\",\r\n \"Shared\": false,\r\n \"Scheduled\": false,\r\n \"Tags\": vm.PipeSeparatedTags,\r\n \"Favourite\": vm.IsFavourite,\r\n \"Role\": \"\",\r\n \"chartModel\": []\r\n }\r\n if (vm.reportCreation_form.$valid) {\r\n vm.DisableCreateButton(true);\r\n dashboardReportListService.createReport(data, loggedinUser, token).then(function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Report Created Successfully\");\r\n vm.CloseCreateReportModel();\r\n vm.DisableCreateButton(false);\r\n $state.go('index.ReportDetail', {\r\n Type: 'report',\r\n report_id: res.data.ReportId\r\n }, {\r\n reload: true\r\n });\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", res.data.errorMessage);\r\n vm.DisableCreateButton(false);\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n\r\n vm.GoToViewPage = function (type, ReportId) {\r\n // if (type == 'report') {\r\n $state.go('index.ReportDetail', {\r\n Type: type,\r\n report_id: ReportId\r\n }, {\r\n reload: true\r\n });\r\n // }\r\n // else {\r\n // $state.go('index.DashboardDetail', {\r\n // Type: type,\r\n // dashboard_id: ReportId\r\n // }, {\r\n // reload: true\r\n // });\r\n // }\r\n }\r\n\r\n vm.createDashboard = function () {\r\n if (vm.Tags) {\r\n vm.PipeSeparatedTags = vm.Tags.join('|');\r\n }\r\n vm.reportCreation_form.submitted = true;\r\n var data = {\r\n \"DashboardName\": vm.reportname,\r\n \"DashboardDescription\": vm.descriptionOfReport,\r\n \"DashboardId\": \"\",\r\n \"Role\": \"\",\r\n \"AutoRefresh\": 0,\r\n \"Tags\": vm.PipeSeparatedTags,\r\n \"Shared\": false,\r\n \"Scheduled\": false,\r\n \"Favourite\": vm.IsFavourite,\r\n \"CreatedBy\": \"\",\r\n \"AccountId\": \"\",\r\n \"CreatedOn\": \"\",\r\n \"DashboardFilters\": {\r\n \"FilterList\": [],\r\n \"DateFilterList\": [],\r\n \"DefaultDateFilter\": \"\"\r\n },\r\n \"ChartModel\": []\r\n }\r\n if (vm.reportCreation_form.$valid) {\r\n vm.DisableCreateButton(true);\r\n dashboardReportListService.createDashboard(data, loggedinUser, token).then(function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Dashboard created successfully\");\r\n vm.CloseCreateReportModel();\r\n vm.DisableCreateButton(false);\r\n $state.go('index.ReportDetail', {\r\n Type: 'dashboard',\r\n report_id: res.data.DashboardId\r\n }, {\r\n reload: true\r\n });\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", res.data.errorMessage);\r\n vm.DisableCreateButton(false);\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n vm.filter = \"all\";\r\n\r\n vm.getValueByFilter = function (filter) {\r\n if (filter) {\r\n $scope.selectedStatus = filter;\r\n vm.filter = filter;\r\n }\r\n vm.refreshData();\r\n }\r\n\r\n function getData() {\r\n var defer = $q.defer();\r\n var data = {\r\n \"Type\": vm.filter,\r\n \"DateFrom\": startDate,\r\n \"DateTo\": endDate,\r\n \"PageIndex\": \"\",\r\n \"PageSize\": \"\"\r\n };\r\n\r\n dashboardReportListService.GetAllDashboardReports(data, loggedinUser, token).then(function (resp) {\r\n vm.reportsDashboardList = resp.data.Dashboards;\r\n vm.ReportsList = resp.data;\r\n defer.resolve(vm.reportsDashboardList);\r\n })\r\n .catch(function (error) {\r\n defer.reject(error);\r\n });\r\n\r\n return defer.promise;\r\n }\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(getData)\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withScroller()\r\n .withOption('deferRender', true)\r\n .withOption('scrollY', 350)\r\n .withOption('rowCallback', rowCallback);\r\n\r\n function createdRow(row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n function rowCallback(nRow, aData, iDisplayIndex, iDisplayIndexFull) {\r\n $('td', nRow).unbind('click');\r\n // $('td', nRow).bind('click', function () {\r\n // $scope.$apply(function () {\r\n // vm.ProfileData(aData.UserId);\r\n // });\r\n // });\r\n return nRow;\r\n }\r\n\r\n // Function to refresh data\r\n vm.refreshData = function () {\r\n // Fetch new data\r\n getData()\r\n .then(function (newData) {\r\n var dtInstance = vm.dtInstance;\r\n dtInstance.reloadData(function () {\r\n return newData;\r\n }, true);\r\n })\r\n .catch(function (error) {\r\n console.error('Error refreshing data:', error);\r\n });\r\n };\r\n $scope.isCollapsed = [];\r\n vm.showSchedules = false;\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle('Name').withOption('sortable', true).renderWith(function (data, type, full, meta) {\r\n if (data.DashboardName) {\r\n return '
' +\r\n ' ' + data.DashboardName +\r\n '';\r\n }\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').renderWith(function (data, type, full, meta) {\r\n var labelStyle = (data.Favourite == true) ? 'color : gold' : '';\r\n return '
';\r\n }),\r\n DTColumnBuilder.newColumn('Type').withTitle('Type').withOption('sortable', true).renderWith(function (data, type, full) {\r\n if (type === 'display') {\r\n var labelClass = (data == 'report') ? 'label-warning' : 'label label-danger';\r\n return '' + data + '';\r\n }\r\n return data;\r\n }),\r\n DTColumnBuilder.newColumn('Tags').withTitle('Tags').notSortable().renderWith(function (data, type, full, meta) {\r\n if (full.Tags) {\r\n vm.arrayFromPipeString = [];\r\n vm.arrayFromPipeString = full.Tags.split('|');\r\n return '
' + vm.arrayFromPipeString + '
'\r\n } else {\r\n vm.arrayFromPipeString = '';\r\n return '
' + vm.arrayFromPipeString + '
'\r\n }\r\n }),\r\n // DTColumnBuilder.newColumn('Favourite').withTitle('Favourites').withOption('sortable', true).renderWith(function (data, type, full) {\r\n // if (type === 'display') {\r\n // var labelClass = data ? 'label label-primary' : 'label label-danger';\r\n // return '' + (data ? 'Yes' : 'No') + '';\r\n // }\r\n // return data;\r\n // }),\r\n DTColumnBuilder.newColumn('ScheduledCount').withTitle('Scheduled').withOption('sortable', true).renderWith(function (data, type, full) {\r\n if (type === 'display') {\r\n var labelClass = data ? 'label label-primary' : 'label label-danger';\r\n return '' + data + '';\r\n }\r\n return data;\r\n }),\r\n DTColumnBuilder.newColumn('SharedCount').withTitle('Shared').withOption('sortable', true).renderWith(function (data, type, full) {\r\n if (type === 'display') {\r\n var labelClass = data ? 'label label-primary' : 'label label-danger';\r\n return '' + data + '';\r\n }\r\n return data;\r\n }),\r\n DTColumnBuilder.newColumn('CreatedOn').withTitle('Created On').withOption('sortable', true).renderWith(function (data, type, full) {\r\n if (type === 'display' || type === 'filter') {\r\n return moment(data).format('DD/MMM/YYYY hh:mm A');\r\n }\r\n return data;\r\n }),\r\n DTColumnBuilder.newColumn('CreatedBy').withTitle('Created By').withOption('sortable', true)\r\n\r\n ];\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n\r\n vm.UpdateReportModel = function (reportId, type) {\r\n vm.reportId = reportId\r\n vm.TypeOfTask = type;\r\n if (vm.TypeOfTask == 'report') {\r\n vm.GetByReportId(vm.reportId);\r\n }\r\n else {\r\n vm.GetDashboardByName(vm.reportName);\r\n }\r\n }\r\n\r\n vm.CloseUpdateReportModel = function () {\r\n vm.updateReportModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.descriptionOfTask = \"\";\r\n vm.Tags = [];\r\n }\r\n\r\n\r\n vm.toggleFavorite = function (reportId, type) {\r\n dashboardReportListService.UpdateDashboardReportToFavourite(reportId, type, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.refreshData();\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n })\r\n }\r\n\r\n vm.GrantAccessToReport = function () {\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function (user) {\r\n toList.push(user.UserId);\r\n });\r\n if (toList.length == 0) {\r\n vm.scheduleModel.toListMendtryErr = true;\r\n return;\r\n }\r\n var commaSeparatedtoList = toList.join(',');\r\n vm.closeShareReportModal();\r\n dashboardReportListService.GrantAccessToReport(vm.SharedReportId, commaSeparatedtoList, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.refreshData();\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n })\r\n }\r\n\r\n vm.GrantRevokeAccessToReport = function () {\r\n // vm.scheduleModel.uniqueId = reportName;\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function (user) {\r\n toList.push(user.UserId);\r\n });\r\n if (toList.length == 0) {\r\n vm.scheduleModel.toListMendtryErr = true;\r\n return;\r\n }\r\n var commaSeparatedtoList = toList.join(',');\r\n // vm.closeShareReportModal();\r\n dashboardReportListService.GrantRevokeAccessToReport(vm.SharedReportId, commaSeparatedtoList, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.showShare = false;\r\n $timeout(function () {\r\n vm.refreshData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n })\r\n }\r\n\r\n vm.RevokeAccessToReport = function () {\r\n var toList = [];\r\n angular.forEach(vm.shareModel.toList, function (user) {\r\n toList.push(user.UserId);\r\n });\r\n if (toList.length == 0) {\r\n vm.scheduleModel.toListMendtryErr = true;\r\n return;\r\n }\r\n var commaSeparatedtoList = toList.join(',');\r\n vm.closeShareReportModal();\r\n dashboardReportListService.RevokeAccessToReport(vm.SharedReportId, commaSeparatedtoList, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.refreshData();\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n })\r\n }\r\n\r\n vm.GetByReportId = function (reportId) {\r\n dashboardReportListService.GetByReportById(loggedinUser, reportId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ReportData = resp.data;\r\n if (vm.ReportData.Tags) {\r\n vm.ReportData.Tags = vm.ReportData.Tags.split(\"|\");\r\n }\r\n if (vm.ReportData) {\r\n vm.updateReportModelOpen = $uibModal.open({\r\n templateUrl: 'updateReport.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetDashboardByName = function (name) {\r\n dashboardReportListService.GetDashboardByName(loggedinUser, name, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ReportData = resp.data;\r\n if (vm.ReportData.Tags) {\r\n vm.ReportData.Tags = vm.ReportData.Tags.split(\"|\");\r\n }\r\n if (vm.ReportData) {\r\n vm.updateReportModelOpen = $uibModal.open({\r\n templateUrl: 'updateReport.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAllActivitiesForSchedule = function () {\r\n dashboardReportListService.GetAllActivitiesForSchedule(loggedinUser, vm.scheduleModel.uniqueId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ScheduleActivity = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n\r\n vm.SchedulesList = [];\r\n vm.currentlyClickedSchedule = null;\r\n vm.GetAllSchedules = function (reportId) {\r\n vm.ReportNametoFetch = reportId;\r\n dashboardReportListService.GetSchedules(vm.ReportNametoFetch, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.SchedulesList = resp.data;\r\n // vm.GetScheduleById(vm.SchedulesList[0].uniqueId);\r\n angular.forEach(vm.SchedulesList, function (d) {\r\n // d.checked = vm.selectStatus[d.id];\r\n var sT = d.jobStartTime;\r\n var eT = d.endTime;\r\n d.startTimeIns = sT.date + \" \" + sT.month + \" \" + sT.year + \" \" + vm.parseTo2(sT.hour) + \":\" + vm.parseTo2(sT.min) + \":\" + vm.parseTo2(sT.sec);\r\n d.endTimeIns = eT.date + \" \" + eT.month + \" \" + eT.year + \" \" + vm.parseTo2(eT.hour) + \":\" + vm.parseTo2(eT.min) + \":\" + vm.parseTo2(eT.sec);\r\n d.modelObj = JSON.parse(d.model);\r\n d.duration = d.modelObj.RollUps;\r\n if (isNaN(d.duration)) {\r\n d.displayDuration = d.duration;\r\n } else {\r\n d.displayDuration = \"Last \" + d.duration + \" day\" + (d.duration > 1 ? \"s\" : \"\");\r\n }\r\n d.TOList = [];\r\n angular.forEach(d.modelObj.TOList, function (email) {\r\n if (email != null) {\r\n var addedUsr = false;\r\n angular.forEach(vm.users, function (u) {\r\n if (u.PersonalEmail != null) {\r\n if (u.PersonalEmail.toLowerCase().indexOf(email.toLowerCase()) > -1) {\r\n addedUsr = true;\r\n d.TOList.push(u);\r\n }\r\n }\r\n })\r\n if (!addedUsr) {\r\n d.TOList.push({ UserId: email, FirstName: email.split(\"@\")[0], LastName: \"\" });\r\n }\r\n }\r\n\r\n })\r\n\r\n d.CCList = [];\r\n angular.forEach(d.modelObj.CCList, function (email) {\r\n var addedUsr = false;\r\n angular.forEach(vm.users, function (u) {\r\n if (u.PersonalEmail != null) {\r\n if (u.PersonalEmail.toLowerCase().indexOf(email.toLowerCase()) > -1) {\r\n addedUsr = true;\r\n d.CCList.push(u);\r\n }\r\n }\r\n })\r\n if (!addedUsr) {\r\n d.CCList.push({ UserId: email, FirstName: email.split(\"@\")[0], LastName: \"\" });\r\n }\r\n })\r\n\r\n d.BCCList = [];\r\n angular.forEach(d.modelObj.BCCList, function (email) {\r\n var addedUsr = false;\r\n angular.forEach(vm.users, function (u) {\r\n if (u.PersonalEmail != null) {\r\n if (u.PersonalEmail.toLowerCase().indexOf(email.toLowerCase()) > -1) {\r\n addedUsr = true;\r\n d.BCCList.push(u);\r\n }\r\n }\r\n })\r\n if (!addedUsr) {\r\n d.BCCList.push({ UserId: email, FirstName: email.split(\"@\")[0], LastName: \"\" });\r\n }\r\n })\r\n\r\n });\r\n\r\n angular.forEach(vm.SchedulesList, function (schedule) {\r\n schedule.clicked = false;\r\n });\r\n // vm.ScheduledReport(vm.SchedulesList[0]);\r\n }\r\n });\r\n\r\n }\r\n\r\n vm.toggleButtonColor = function (schedule) {\r\n if (vm.currentlyClickedSchedule !== null) {\r\n // Reset the color of the previously clicked button\r\n vm.currentlyClickedSchedule.clicked = false;\r\n }\r\n vm.currentlyClickedSchedule = schedule\r\n schedule.clicked = true;\r\n };\r\n\r\n\r\n vm.parseTo2 = function (v) {\r\n return (v + \"\").length > 1 ? v : \"0\" + v;\r\n }\r\n\r\n vm.ScheduledReport = function (s) {\r\n vm.showSchedules = true;\r\n vm.shareModel.toList = s.TOList;\r\n vm.shareModel.ccList = s.CCList;\r\n vm.shareModel.bccList = s.BCCList;\r\n vm.scheduleModel.uniqueId = s.uniqueId;\r\n if (s.cronType.toLowerCase() == vm.scheduleModel.cronExpression) {\r\n vm.scheduleModel.frequency = vm.scheduleModel.monthly;\r\n vm.scheduleModel.input_for_month.option = vm.scheduleModel.input_for_month.end_of_day;\r\n var splittedExp = s.cronExpression.split(\" \");\r\n vm.scheduleModel.scheduleTime = vm.parseTo2(splittedExp[1]) + \":\" + vm.parseTo2(splittedExp[2]);\r\n } else if (s.cronType.toLowerCase() == vm.scheduleModel.monthly) {\r\n vm.scheduleModel.frequency = vm.scheduleModel.monthly;\r\n vm.scheduleModel.input_for_month.option = vm.scheduleModel.input_for_month.specific_date;\r\n vm.scheduleModel.input_for_month.date = s.monthly.dayOfMonth;\r\n vm.scheduleModel.scheduleTime = vm.parseTo2(s.monthly.hour) + \":\" + vm.parseTo2(s.monthly.minute);\r\n } else if (s.cronType.toLowerCase() == vm.scheduleModel.weekly) {\r\n vm.scheduleModel.frequency = vm.scheduleModel.weekly;\r\n vm.scheduleModel.input_of_week = {}\r\n vm.scheduleModel.input_of_week.sun = false\r\n vm.scheduleModel.input_of_week.mon = false\r\n vm.scheduleModel.input_of_week.tue = false\r\n vm.scheduleModel.input_of_week.wed = false\r\n vm.scheduleModel.input_of_week.thu = false\r\n vm.scheduleModel.input_of_week.fri = false\r\n vm.scheduleModel.input_of_week.sat = false\r\n switch (s.weekly.dayOfWeek[0]) {\r\n case 1:\r\n vm.scheduleModel.input_of_week.sun = true; break;\r\n case 2:\r\n vm.scheduleModel.input_of_week.mon = true; break;\r\n case 3:\r\n vm.scheduleModel.input_of_week.tue = true; break;\r\n case 4:\r\n vm.scheduleModel.input_of_week.wed = true; break;\r\n case 5:\r\n vm.scheduleModel.input_of_week.thu = true; break;\r\n case 6:\r\n vm.scheduleModel.input_of_week.fri = true; break;\r\n case 7:\r\n vm.scheduleModel.input_of_week.sat = true; break;\r\n }\r\n vm.scheduleModel.scheduleTime = vm.parseTo2(s.weekly.hour) + \":\" + vm.parseTo2(s.weekly.minute);\r\n } else if (s.cronType.toLowerCase() == vm.scheduleModel.daily) {\r\n vm.scheduleModel.frequency = vm.scheduleModel.daily;\r\n vm.scheduleModel.scheduleTime = vm.parseTo2(s.daily.hour) + \":\" + vm.parseTo2(s.daily.minute);\r\n } else if (s.cronType.toLowerCase() == vm.scheduleModel.once) {\r\n vm.scheduleModel.frequency = vm.scheduleModel.once;\r\n if (s.jobStartTime) {\r\n vm.scheduleModel.sampleDate = moment(s.jobStartTime.year + \"-\" + s.jobStartTime.month + \"-\" + vm.parseTo2(s.jobStartTime.date) + \" \" + vm.parseTo2(s.jobStartTime.hour) + \":\" + vm.parseTo2(s.jobStartTime.min) + \":\" + vm.parseTo2(s.jobStartTime.sec), \"YYYY-MMM-DD hh:mm:ss\");\r\n }\r\n }\r\n if (isNaN(s.duration)) {\r\n if (s.duration == \"Last Day\") {\r\n vm.scheduleModel.pull_data.range = vm.scheduleModel.pull_data.day;\r\n } else if (s.duration == \"Last Week\") {\r\n vm.scheduleModel.pull_data.range = vm.scheduleModel.pull_data.week;\r\n } else if (s.duration == \"Last Month\") {\r\n vm.scheduleModel.pull_data.range = vm.scheduleModel.pull_data.month;\r\n } else if (s.duration == \"Last Quarter\") {\r\n vm.scheduleModel.pull_data.range = vm.scheduleModel.pull_data.quarter;\r\n } else if (s.duration == \"Current Month\") {\r\n vm.scheduleModel.pull_data.range = vm.scheduleModel.pull_data.current_month;\r\n }\r\n } else {\r\n vm.scheduleModel.pull_data.range = vm.scheduleModel.pull_data.specific;\r\n vm.scheduleModel.pull_data.specific_day_value = s.duration;\r\n }\r\n if (s.jobStartTime) {\r\n vm.scheduleModel.start_date = moment(s.jobStartTime.year + \"-\" + s.jobStartTime.month + \"-\" + vm.parseTo2(s.jobStartTime.date) + \" \" + vm.parseTo2(s.jobStartTime.hour) + \":\" + vm.parseTo2(s.jobStartTime.min) + \":\" + vm.parseTo2(s.jobStartTime.sec), \"YYYY-MMM-DD hh:mm:ss\");\r\n } else {\r\n vm.scheduleModel.start_date = moment();\r\n }\r\n if (s.endTime) {\r\n vm.scheduleModel.end_date = moment(s.endTime.year + \"-\" + s.endTime.month + \"-\" + vm.parseTo2(s.endTime.date) + \" \" + vm.parseTo2(s.endTime.hour) + \":\" + vm.parseTo2(s.endTime.min) + \":\" + vm.parseTo2(s.endTime.sec), \"YYYY-MMM-DD hh:mm:ss\");\r\n } else {\r\n vm.scheduleModel.end_date = vm.scheduleModel.start_date.add(1, 'month');\r\n }\r\n vm.scheduleModel.attachReportInMailBody = s.modelObj.ReportInMailBody;\r\n vm.scheduleModel.sampleDateMendtryErr = false;\r\n vm.shareModel.content = s.modelObj.Body.replace(new RegExp(\"
\", 'g'), \"\\n\");;\r\n vm.scheduleModel.reportName = s.reportName;\r\n }\r\n\r\n vm.updateReport = function () {\r\n if (vm.ReportData.Tags) {\r\n vm.ReportData.Tags = vm.ReportData.Tags.join(\"|\");\r\n }\r\n vm.DisableCreateButton(true);\r\n vm.updateReportModelOpen.close();\r\n dashboardReportListService.updateReport(vm.ReportData, loggedinUser, token).then(function (res) {\r\n if (res && res.status == 201) {\r\n vm.DisableCreateButton(false);\r\n vm.descriptionOfTask = \"\";\r\n vm.Tags = [];\r\n vm.showSuccess(\"Success\", 'Report Updated Successfully');\r\n $timeout(function () {\r\n vm.refreshData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", res.data);\r\n vm.DisableCreateButton(false);\r\n vm.descriptionOfTask = \"\";\r\n vm.Tags = [];\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.DeleteSchedule = function (uniqueId, reportId) {\r\n vm.DisableCreateButton(true);\r\n dashboardReportListService.DeleteSchedule(uniqueId, reportId, loggedinUser, token).then(function (res) {\r\n if (res && res.status == 200) {\r\n vm.DisableCreateButton(false);\r\n vm.showSuccess(\"Success\", 'Schedule Deleted Successfully');\r\n $timeout(function () {\r\n vm.GetAllSchedules(reportId);\r\n vm.refreshData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", res.data);\r\n vm.DisableCreateButton(false);\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.disableCreateButton = false;\r\n\r\n vm.DisableCreateButton = function (disable) {\r\n if (disable) {\r\n vm.disableCreateButton = true;\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n }\r\n }\r\n\r\n vm.GetAllAccounts = function () {\r\n PlanningResourseMapService.GetAllAccountDetails(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.accountsList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAllAccounts();\r\n vm.CreateReportModel = function (type) {\r\n vm.reportname = \"\";\r\n vm.TypeOfTask = type\r\n vm.createTaskModelOpen = $uibModal.open({\r\n templateUrl: 'createtask.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseCreateReportModel = function () {\r\n vm.createTaskModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.descriptionOfReport = \"\";\r\n vm.IsFavourite = false;\r\n vm.Tags = []\r\n }\r\n\r\n vm.getAllProject = function () {\r\n ManualAssignationJobService.GetAllProjects(loggedinUser, token).then(function (resp) {\r\n vm.ProjectAcc = resp.data;\r\n })\r\n }\r\n vm.getAllProject();\r\n\r\n vm.GetSharedUsers = function (dashboardname) {\r\n dashboardReportListService.GetSharedUsers(dashboardname, loggedinUser, token).then(function (resp) {\r\n if (resp.data) {\r\n vm.shareModel.toList = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.DisableRouteBroadcastButtons = function (disable) {\r\n if (disable) {\r\n vm.brodcastButtonDisable = true;\r\n vm.routebuttonDisable = true;\r\n }\r\n else {\r\n vm.brodcastButtonDisable = false;\r\n vm.routebuttonDisable = false;\r\n }\r\n }\r\n\r\n vm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.loadAllSkills = function () {\r\n ManualAssignationJobService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skillsWithPipe = '';\r\n if (resp && resp.data) {\r\n vm.skillData = resp.data;\r\n if (vm.skillData && vm.skillData.length > 0) {\r\n angular.forEach(vm.skillData, function (s) {\r\n vm.skillsWithPipe += s.SkillName + \"|\";\r\n });\r\n vm.skillsWithPipe = vm.skillsWithPipe.length > 0\r\n ? vm.skillsWithPipe.substring(0, vm.skillsWithPipe.length - 1) : \"\";\r\n }\r\n }\r\n });\r\n }\r\n vm.loadAllSkills();\r\n\r\n vm.sortClassUser = function (col) {\r\n if (vm.OrderBy == col) {\r\n if (vm.OrderSeq == 'desc') {\r\n return 'fa fa-arrow-down';\r\n } else {\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n function getAllStates() {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n\r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n\r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n if (vm.loggedInUserRole == \"Dispatch Supervisor\" || vm.loggedInUserRole == \"OnBoarding Supervisor\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\"];\r\n }\r\n else {\r\n if (vm.loggedInUserRole == \"Dispatch Manager\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Private\", \"Freelancer Vendor\", \"Dispatch Supervisor\", \"Freelancer Dispatcher\", \"Dispatch Team Lead\"];\r\n }\r\n else if (vm.loggedInUserRole == \"OnBoarding Manager\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"OnBoarding Supervisor\"];\r\n }\r\n else if (vm.loggedInUserRole == \"Dispatch Team Lead\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\", \"Freelancer Dispatcher\", \"Dispatch Supervisor\"];\r\n }\r\n else if (vm.loggedInUserRole == \"Administrator\") {\r\n vm.UserTypeList = [\"Project Manager\", \"Supervisor\", \"Freelancer\", \"Freelancer Vendor\", \"Private\"];\r\n }\r\n else if (vm.loggedInUserRole == \"Project Manager\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\", \"Supervisor\"];\r\n }\r\n else if (vm.loggedInUserRole == \"Supervisor\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\"];\r\n }\r\n }\r\n\r\n vm.Applyfilter = function () {\r\n $scope.UserTablepagination = {};\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n $scope.hideFilter();\r\n }\r\n\r\n vm.PDFView = function (page) {\r\n vm.pdfimage = \"\";\r\n vm.IsLoadSucessfull = false;\r\n $scope.selected = null;\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n\r\n vm.sortColumn = function (col) {\r\n vm.OrderBy = col;\r\n if (vm.Sort == 'desc') {\r\n vm.Sort = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n } else {\r\n vm.Sort = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.GetOnBoardingTaskByFilters();\r\n };\r\n\r\n vm.sortClass = function (col) {\r\n if (vm.OrderBy == col) {\r\n if (vm.Sort == 'desc') {\r\n return 'fa fa-arrow-down';\r\n } else {\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n vm.closeSearchText = function () {\r\n vm.taskskill = '';\r\n vm.AssignedTo = '';\r\n vm.ExceptionType = '';\r\n vm.City = '';\r\n vm.taskPincode = '';\r\n vm.State = '';\r\n vm.taskStatus = '';\r\n vm.SearchByConsumerName = '';\r\n vm.accountId = '';\r\n vm.State = '';\r\n vm.searchTag = '';\r\n vm.City = '';\r\n }\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n $scope.Userpagination = {};\r\n PageIndex = 1;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.refreshData();\r\n };\r\n\r\n\r\n vm.implementSelectItemsUsers = function (itemList, scope) {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n scope.selectRowUsers = function (i) {\r\n vm.toBeAssigned = [];\r\n scope.showMinusUsers = false;\r\n scope.selectAllUsers = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n vm.toBeAssigned.push(d.TaskId)\r\n scope.showMinusUsers = true;\r\n }\r\n\r\n });\r\n }\r\n scope.applyAllNewJobSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllUsers;\r\n });\r\n }\r\n\r\n scope.resetAllSelect = function () {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n }\r\n }\r\n\r\n vm.implementSelectItemsUsers('OnBoardingList', this);\r\n\r\n $scope.totalTableUsersBG = 0;\r\n $scope.userTablePerPage = vm.userPageListCount;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeUserPageListCount = function () {\r\n $scope.userTablePerPage = vm.userPageListCount;\r\n PageSize = $scope.userTablePerPage;\r\n $scope.UserTablepageChanged($scope.UserTablepagination.current);\r\n }\r\n\r\n PageIndex = $scope.UserTablepagination.current;\r\n $scope.UserTablepageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetOnBoardingTaskByFilters();\r\n };\r\n\r\n $scope.selectedStatus = 'all';\r\n\r\n vm.ProfileEditView = function (userId) {\r\n $state.go('index.RegistrationForm', {\r\n UserId: userId\r\n })\r\n }\r\n\r\n vm.getAllSlotsByStatus = function (status) {\r\n $scope.selectedStatus = status;\r\n vm.taskStatus = status;\r\n PageIndex = 1;\r\n vm.GetOnBoardingTaskByFilters();\r\n }\r\n\r\n }\r\n});\r\n\r\nangular.module('inspinia').filter('searchUser', function () {\r\n return function (items, search) {\r\n var filtered = [];\r\n if (search) {\r\n angular.forEach(items, function (item) {\r\n var searchstr = new RegExp(search, \"i\");\r\n if (item.id.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.User_Type.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.city.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.contactnumber.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.name.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.role.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.state.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n });\r\n } else {\r\n filtered = items;\r\n }\r\n return filtered;\r\n }\r\n})\nangular.module('inspinia').service('DashboardService', function (ApiURL,FreelancerURL,paymentsapi,PublicApiURL, LocationURL, $log, $http, $localStorage) {\r\n\r\n // https://product.mymobiforce.com/FreelancerAPI/api/FreeLancerUser/F00000033993/U00000000406/byUserIdWithJobCount\t\r\n this.GetUserId = function(loggedInUser,userId, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId +'/'+ loggedInUser+ '/'+ 'byUserIdWithJobCount' ;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n // https://product.mymobiforce.com/coreapi/api/ProfileController/Get360ProfileDashboardData?UserId=F00000033744\r\n\r\n this.Get360ProfileData= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/Get360ProfileDashboardData?UserId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.UploadExternalVideoList = function (newdata, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetVideoKycData';\r\n return $http.put(url, newdata, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/GetToolsAndAssets?Userid=FV0000000002326\r\n\r\n this.GetToolsAndAssets= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/GetToolsAndAssets?Userid=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/GetReviewAndRatings?Userid=F00000033829\r\n\r\n this.GetReviewAndRatings= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/GetReviewAndRatings?Userid=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/Get360SkillSummary?Userid=F00000033744\r\n\r\n this.Get360SkillSummary= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/Get360SkillSummary?Userid=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n this.GetAuthorizedServicePartnerDetail= function(loggedInUser,userId, token){\r\n var url = FreelancerURL + '/api/FreelancerUser/GetAuthorizedServicePartnerDetailForPortal?reqUserId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n // https://testg2.mymobiforce.com/FreelancerAPI/api/FreelancerUser/GetAuthorizedServicePartnerDetailForPortal?reqUserId=F00000033983\r\n // https://product.mymobiforce.com/coreapi/api/ProfileController/Get360VendorTeamData?UserId=FV0000000002393\r\n\r\n this.Get360VendorTeamData= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/Get360VendorTeamData?UserId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/GetLastFollowUpOnTicketId?Userid=F00000033748\r\n\r\n this.GetLastFollowUpOnTicketId= function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/ProfileController/GetLastFollowUpOnTicketId?Userid=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.callToTechnicianApi = function(loggedInUser,userId, token){\r\n var url = ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId='+userId ;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n\r\n this.PreferredSingleUser = function(loggedInUser, userId, status, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Favorite/' + loggedInUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedInUser }\r\n });\r\n }\r\n\r\n this.BlockedSingleUser = function(loggedInUser, userId, status, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Block/' + loggedInUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { \r\n 'Content-Type': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUser }\r\n });\r\n }\r\n\r\n this.getJobsByUserId=function(userId,loggedInUser, token){\r\n var url =ApiURL + \"/api/Ticket/\" +userId+\"/Approved/byUserIdStatus?reqUserId=\"+loggedInUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedInUser\r\n }\r\n });\r\n }\r\n \r\n this.UserAgreement=function(loggedinUser, userId, token){\r\n var url =ApiURL + \"/api/User/GetEULAByUserId?reqUserId=\" +loggedinUser+\"&userId=\"+userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.BankDetails=function(loggedinUser, userId, token){\r\n var url =FreelancerURL + \"/api/FreeLancerUser/GetFEBankDetail?AccountId=0\" +\"&userId=\"+userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Report/GeneratePdfSelfDeclaration?userId=F00000001208\r\n this.GeneratePdfSelfDeclaration = function(loggedinUser, userId, token){\r\n var url = ApiURL + '/api/Report/GeneratePdfSelfDeclaration?userId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json',\r\n 'Token':token,\r\n 'UserId':loggedinUser}\r\n })\r\n }\r\n\r\n this.GeneratePdfVerificationReport = function(loggedinUser, userId, token){\r\n var url = ApiURL + '/api/Report/GeneratePdfVerificationReport?userId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId':loggedinUser}\r\n })\r\n }\r\n\r\n\r\n this.GetLeadsForMobile = function(loggedinUser, token,PageIndex,PageSize,OrderBy,order,searchtag){\r\n var url = FreelancerURL + \"/api/BID/GetLeadsForMobile?Vertical=\"+ '&PageIndex=' + PageIndex + '&PageSize=' + PageSize+ '&OrderBy=' + OrderBy + '&order=' + order + '&SearchTag=' + searchtag;\r\n return $http.get(url,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllSkills = function (loggedinUser, token) { \r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n });\r\n }\r\n \r\n\r\n\r\n // https://pro.mymobiforce.com/paymentsapi/api/Payouts/FinancialSummaryTicketDetails?paymentId=7347298768_4921_1655205323\r\n\r\n\r\n this.GetFinanceTicketDetail = function (paymentId) {\r\n var url = paymentsapi + '/api/Payouts/FinancialSummaryTicketDetails?paymentId=' + paymentId;\r\n return $http.get(url,{\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'NoAuth': true,\r\n }\r\n });\r\n }\r\n\r\n //Accounts API\r\n this.getCustomerAccounts = function (loggedInUserId,token) { \r\n var url = ApiURL+ '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n \r\n }\r\n });\r\n }\r\n\r\n\r\n // https://pro.mymobiforce.com/coreapi/api/ProfileController/GetFinancialSummary?UserId=F00000033748&from_Date=2022-05-09&to_Date=2022-06-20&itemNames=status&itemValue=PaymentCarriedForward&PageIndex=1&PageSize=10\r\n\r\n this.GetFinancialSummary = function (loggedInUser,token,userId,itemNames,itemValues,PageIndex,PageSize, startDate, endDate) {\r\n var url = ApiURL + '/api/ProfileController/GetFinancialSummary?UserId=' + userId + '&from_Date=' + startDate + '&to_Date=' + endDate + '&itemNames=' + itemNames + '&itemValue=' + itemValues +'&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUser\r\n }\r\n });\r\n } \r\n \r\n //https://pro.mymobiforce.com/coreapi/api/User/UpgradeFreelancerToVendor\r\n\tthis.UpgradeFreelancerToVendor = function(loggedInUser, userId, token){\r\n\t\tvar url = ApiURL + '/api/User/UpgradeFreelancerToVendor';\r\n\t\treturn $http.put(url, {\"FreelancerId\": userId}, {\r\n\t\t headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedInUser }\r\n\t\t});\r\n\t }\r\n\r\n this.deleteVideoForKyc = function(loggedInUser, userId, token){\r\n var url = ApiURL + '/api/User/RemoveUserDocKYCVideo?userId='+userId;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedInUser }\r\n });\r\n }\r\n \r\n this.getAllState = function (loggedinUser,token) { \r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+loggedinUser+'®ion=INDIA';\r\n return $http.get(url,{\r\n headers:{\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // http://localhost:56749/api/ProfileController/Get360WorkSummary?UserId=F00000033748&from_Date=2022-05-09&to_Date=2022-06-20&itemNames=skill,accountname&itemValue=Air_Cooler_Services,114&PageIndex=1&PageSize=10&OrderBy=AssignationDateObj&SortType=desc\r\n this.Get360WorkSummary = function (loggedinUser,token,userId,itemNames,itemValues,PageIndex,PageSize, startDate, endDate,DataFeild,sorttype ) {\r\n var url = '';\r\n var url = ApiURL + '/api/ProfileController/Get360WorkSummary?UserId=' + userId + '&from_Date=' + startDate + '&to_Date=' + endDate + '&itemNames=' + itemNames + '&itemValue=' + itemValues +'&DataFeild='+ DataFeild +'&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&SortType=' + sorttype;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n } \r\n\r\n\r\n });\r\n\nangular.module('inspinia').controller('DashboardController', function (DashboardService,OnBoardingFlowService,$rootScope,UIURL,ApiURL,ReferService,$q,MainService,ImageUrl, $log, $state, $localStorage, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.loggedInUser_Role=$localStorage.loggedInUser_Role;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n vm.NokiaTableHeaderChange = $localStorage.accountConfig.NokiaTableHeaderChange;\r\n vm.CallPatchEnable = $localStorage.accountConfig.CallPatchEnable;\r\n if (!loggedinUser) {\r\n $state.go('Login',{\r\n reload:true\r\n });\r\n }else{\r\n //Global Variable Declaration\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n vm.OnlyDateformat = $localStorage.OnlyDateformat;\r\n vm.vendorList='';\r\n vm.vendorData = '';\r\n vm.ActivationStatus = '';\r\n vm.searchText = '';\r\n vm.OrderBy = \"CreatedOn\";\r\n vm.sorttype = \"desc\";\r\n vm.PageIndex = 1;\r\n vm.PageSize = 10;\r\n vm.status ='';\r\n vm.skillName ='';\r\n vm.projectName='';\r\n vm.accountName='';\r\n vm.location ='';\r\n vm.userId = $stateParams.UserId; \r\n vm.jobTickets = '';\r\n vm.itemName = '';\r\n vm.DocumentprofileImg=[];\r\n vm.DocumentbackImg=[];\r\n vm.CertificateImg=[];\r\n vm.CertprofileImg=[];\r\n vm.VerificationCertprofileImg=[];\r\n vm.itemValue = '';\r\n vm.dtInstance = {};\r\n vm.dtInstanceticket={};\r\n vm.AccountHistoryData=[];\r\n $localStorage.VendorDetailsView='';\r\n $localStorage.VendorPageIndex=1;\r\n vm.ToolsDetailList=[];\r\n vm.PreviousCompanyDetailsList=[];\r\n vm.TrainingImagebase64=[];\r\n vm.TrainingAttendancebase64=[];\r\n vm.PCExperienceLetterbase64=[];\r\n vm.ExperienceVerificationReportbase64=[];\r\n vm.pdfimage=\"\";\r\n vm.CriminalVerificationbase64=\"\";\r\n startDate = '';\r\n endDate = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.userskill = '';\r\n vm.pincode = '';\r\n vm.userNameSearch = '';\r\n vm.contactNumberSearch = '';\r\n vm.userSource = '';\r\n vm.useraccount = '';\r\n vm.CriminalVerified='';\r\n vm.IdVerified='';\r\n vm.PANVerified='';\r\n vm.UserAvailable=''\r\n vm.skillData = '';\r\n vm.circleData = '';\r\n vm.isChecked = \"fixed\";\r\n vm.searchText = \"\";\r\n vm.Technicianstartingdate = '2017-01-01';\r\n vm.tab = '';\r\n vm.pageindexCount=0;\r\n vm.DateField=\"StatusChangedOn\";\r\n vm.searchStatusText=\"\"; \r\n vm.statusFin=\"\"; \r\n var uPageIndex = 1;\r\n var uPageSize = 10; \r\n var fPageIndex = 1;\r\n var fPageSize = 10; \r\n $scope.isCollapsed = true; \r\n $localStorage.AllJobStatus = vm.searchStatusText;\r\n vm.UsersType=\"\";\r\n vm.uType=\"\";\r\n var uitemNames=\"\";\r\n var uitemValues=\"\";\r\n vm.searchUsersText=\"\";\r\n vm.jobsCount='';\r\n vm.userPageListCount= 10;\r\n vm.financePageListCount= 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var userType = '';\r\n var startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n vm.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n \r\n vm.Get360WorkSummary( loggedinUser, token, uitemNames, uitemValues, userType, vm.UserAvailable, vm.DateField, uPageIndex, uPageSize, startDate, endDate);\r\n };\r\n\r\n vm.statusList=[\"New\", \"Verified\",\"Rejected\", \"Approved\", \"PaymentInitiated\",\"PaymentFailed\", \"PaymentSuccessful\",\"PaymentCarriedForward\"];\r\n\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n vm.outsidedateRangeChange = function (ev, picker) { \r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.GetFinancialSummary( loggedinUser, token, uitemNames, uitemValues, userType, vm.UserAvailable, vm.DateField, uPageIndex, fPageSize, startDate, endDate);\r\n \r\n\r\n };\r\n\r\n var UserAgreement = function(){\r\n DashboardService.UserAgreement(loggedinUser,vm.userId,token).then(function(resp){\r\n if(resp.status == '200'){ \r\n vm.agreementview=resp.data;\r\n var uri = vm.agreementview.Content;\r\n var dec = decodeURIComponent(uri).replace(/\\+/g,\" \");\r\n $('#agreementview').contents().find('html').html(dec);\r\n } else{\r\n var dec = decodeURIComponent(resp.data).replace(/\\+/g,\" \");\r\n $('#agreementview').contents().find('html').html(dec);\r\n }\r\n\r\n })\r\n }\r\n\r\n vm.agreement=[];\r\n\t\tvm.Agreement = function (userid) {\r\n vm.agreement=userid;\r\n \r\n\t\t\tAgreementUserModal = $uibModal.open({\r\n templateUrl: 'Agreement.html',\r\n controller: UserAgreement(userid),\r\n\t\t\t\t// size:'lg',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\treload:true\r\n\t\t\t});\r\n\t\t\r\n }\r\n\r\n vm.CloseAgreementUserModal = function(){\r\n AgreementUserModal.close();\r\n }\r\n\r\n vm.closeProfile = function(){ \r\n document.getElementById(\"teamSummary\").style.width = \"0%\";\r\n }\r\n\r\n vm.OpenPdfModal= function(PdfPathName,TypeName)\r\n {\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size :'lg',\r\n scope: $scope,\r\n controller: ModalInstanceCtrl(PdfPathName,TypeName)\r\n });\r\n }\r\n\r\n vm.PDFViewGeneratePdfSelfDeclaration = function () { \r\n vm.OpenPdfModal(vm.userId,\"Self Declaration\");\r\n }\r\n vm.PDFViewGeneratePdfVerificationReport = function () { \r\n vm.OpenPdfModal(vm.userId,\"Verification Report\");\r\n }\r\n vm.PDFViewLegalContract = function (page) {\r\n vm.OpenPdfModal(page,\"Legal Contract\");\r\n }\r\n vm.PDFView = function (page) {\r\n vm.OpenPdfModal(page,\"PDF View\");\r\n }\r\n var ModalInstanceCtrl = function(PdfPathNames,TypeNames) { \r\n vm.IsLoadSucessfull=false;\r\n vm.pdfimage=\"\";\r\n if(TypeNames==\"Legal Contract\")\r\n {\r\n MainService.GetLegalContractImageBlob(loggedinUser, token, PdfPathNames).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data);\r\n vm.IsLoadSucessfull=true;\r\n }); \r\n } \r\n if(TypeNames==\"PDF View\")\r\n {\r\n MainService.GetImageBlob(loggedinUser, token, PdfPathNames).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data);\r\n vm.IsLoadSucessfull=true;\r\n }); \r\n } \r\n if(TypeNames==\"Verification Report\")\r\n {\r\n DashboardService.GeneratePdfVerificationReport(loggedinUser, PdfPathNames, token).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data.Base64Data);\r\n vm.IsLoadSucessfull=true;\r\n }); \r\n } \r\n if(TypeNames==\"Self Declaration\")\r\n {\r\n DashboardService.GeneratePdfSelfDeclaration(loggedinUser, PdfPathNames, token).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data.Base64Data);\r\n vm.IsLoadSucessfull=true;\r\n }); \r\n } \r\n }\r\n\r\n vm.ConvertBase64ToBlob = function(response)\r\n {\r\n if(response !=null){\r\n var arrrayBuffer = base64ToArrayBuffer(response); //data is the base64 encoded string\r\n var blob = new Blob([arrrayBuffer], {type: \"application/pdf\"});\r\n vm.pdfimage = URL.createObjectURL(blob);\t\t\t\t\r\n vm.IsLoadSucessfull=true;\r\n }\r\n else{\r\n vm.DocumentAvailableMessage=\"Document is not available\";\r\n vm.IsLoadSucessfull=true;\r\n }\r\n }\r\n function base64ToArrayBuffer(base64) {\r\n var ret = base64.replace('data:application/pdf;base64,','');\r\n var binaryString = atob(ret);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n }\r\n\r\n vm.getFileType = function(url){\r\n if(url==null || url==\"\")\r\n {\r\n return \"others\";\r\n }\r\n else{\r\n if(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0 ||url.indexOf(\".JPG\")>=0 || url.indexOf(\".JPEG\")>=0 || url.indexOf(\".PNG\")>=0 || url.indexOf(\".BMP\")>=0){\r\n return \"image\";\r\n } else if(url.indexOf(\".pdf\")>=0 || url.indexOf(\".PDF\")>=0){\r\n return \"pdf\";\r\n } else if(url.indexOf(\".xls\")>=0 || url.indexOf(\".xlsx\")>=0 ||url.indexOf(\".XLS\")>=0 || url.indexOf(\".XLSX\")>=0){\r\n return \"xls\"; \r\n } else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0 || url.indexOf(\".DOC\")>=0 || url.indexOf(\".DOCX\")>=0){\r\n return \"doc\";\r\n } \r\n else {\r\n return \"others\";\r\n }\r\n }\r\n }\r\n vm.WordDownloadtoView = function (page) { \r\n MainService.GetImageBlob(loggedinUser, token, page).then(function(resp) {\r\n window.location.href = resp.data;\r\n }); \r\n \r\n }\r\n vm.PDFUserModal = function(){\r\n jobAppointmentModal.close();\r\n }\r\n\r\n $scope.checkPDF = function(path){\r\n if(!path)\r\n return true;\r\n\r\n var pt = path.substr(path.length - 4);\r\n var dt = path.substr(path.length - 4);\r\n\r\n if(pt == '.pdf' || dt == '.doc'){\r\n vm.error = function(){\r\n $(\".pdf\").attr({\"target\" : \"_blank\"})\r\n }\r\n return true;\r\n }\r\n }\r\n\r\n vm.InsuranceImg=\"\";\r\n vm.InsuranceimageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.InsuranceImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.InsuranceImg = resp.data;\r\n }\r\n console.log(vm.InsuranceImg);\r\n }, function() {\r\n vm.InsuranceImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n }\r\n\r\n vm.VerificationCertimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.VerificationCertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.VerificationCertprofileImg[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.VerificationCertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n vm.DocumentimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.DocumentprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.DocumentprofileImg[index] = resp.data;\r\n }\r\n }, function() {\r\n vm.DocumentprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n \r\n }\r\n \r\n vm.DocumentimagebackServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.DocumentbackImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.DocumentbackImg[index] = resp.data;\r\n }\r\n }, function() {\r\n vm.DocumentbackImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n \r\n }\r\n\r\n vm.CertificateimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.CertificateImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.CertificateImg[index] = resp.data;\r\n }\r\n }, function() {\r\n vm.CertificateImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n \r\n }\r\n\r\n vm.CertimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.CertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.CertprofileImg[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.CertprofileImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n\r\n vm.CriminalVerificationServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.CriminalVerificationbase64 = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.CriminalVerificationbase64 = resp.data;\r\n } \r\n }, function() {\r\n vm.CriminalVerificationbase64 = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n\r\n vm.closeTProfile = function(){\r\n vm.userId = $stateParams.UserId;\r\n vm.Get360ProfileData();\r\n }\r\n\r\n vm.EditVTeam = function(RegistrationNo){\r\n $localStorage.EditVendorTeam = 'vendorteam';\r\n $localStorage.VendorId=vm.vendorId;\r\n $state.go('index.ActiveUserUpdate', {\r\n RegistrationNo: RegistrationNo\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.Get360VendorTeamData = function () {\r\n DashboardService.Get360VendorTeamData(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n\r\n vm.GetToolsAndAssets = function () {\r\n DashboardService.GetToolsAndAssets(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.assetData = resp.data;\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n\r\n vm.GetReviewAndRatings = function () {\r\n DashboardService.GetReviewAndRatings(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.reviewData = resp.data;\r\n vm.users.InstallationratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.users.InstallationblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.users.SafetyratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.users.SafetyblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.users.VisitratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.users.VisitblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.users.CourteousratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.users.CourteousblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.users.ProratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.users.ProblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.users.ServiceratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n vm.users.ServiceblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n vm.Get360SkillSummary = function () {\r\n DashboardService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for(var i=0;i 1 star)\r\nvar reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n// display initial rating totals\r\n// displayTotals();\r\n\r\n// use event listener to record changes to user rating\r\nstarRating.forEach(function(star) {\r\nstar.addEventListener(\"change\", recordRating);\r\n})\r\n\r\nfunction recordRating(event) {\r\n// use indexOf to identify selected user rating\r\nvar userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n// define selected rating to adjust display totals\r\nvar selectedIndex;\r\n\r\nstarRating.forEach(function(item, index) {\r\n // add or remove .active class based upon selected user rating\r\n if (index < userRating + 1) {\r\n starRating[index].classList.add(\"active\");\r\n selectedIndex = index;\r\n } else {\r\n starRating[index].classList.remove(\"active\");\r\n }\r\n\r\n displayTotals(selectedIndex);\r\n});\r\n}\r\nvm.countForStatus = 50;\r\n// display star rating totals from html custom data-\r\nfunction displayTotals(selectedIndex) {\r\nvar barChart = document.querySelectorAll(\".bar\"),\r\n displaySummary = document.querySelectorAll(\".summary\"),\r\n numRatings = 0,\r\n numRatingsValue = 0;\r\n\r\n// convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\nvar reverseBarChart = Array.from(barChart).reverse();\r\n\r\nreverseRatingTotal.forEach(function(total, index) {\r\n if (index == selectedIndex) {\r\n // add selected rating to display total\r\n total.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n // adjust selected bar width\r\n reverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n } else {\r\n // display unselected totals\r\n total.innerHTML = total.getAttribute(\"data-rating-count\");\r\n // adjust unselected bar widths\r\n reverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n }\r\n // count total number and value of ratings\r\n numRatings += parseInt(total.innerHTML);\r\n numRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n});\r\n\r\n// display rating average and total\r\nratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n// displaySummary[0].innerHTML = ratingsAverage + \" average based on \" + numRatings + \" reviews.\";\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvm.callToTechnician = function () {\r\n DashboardService.callToTechnicianApi(loggedinUser, vm.userId, token).then(function (resp) {\r\n if(resp.status == 200) {\r\n vm.showSuccess(\"Success\",\"Call Initiated\")\r\n }\r\n else {\r\n vm.showFailure(\"Failure\",resp.data.Message)\r\n }\r\n\r\n\r\n }, function () {\r\n //$log.log('not working');\r\n })\r\n}\r\n\r\nvm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\nvm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\nvm.getAvgRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\nvm.getAvgBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\nvm.getUserRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\nvm.getUserBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n}\r\n\r\n\r\nvm.removeKycVideo = function () {\r\n vm.removeKycVideoModel = $uibModal.open({\r\n templateUrl: 'removeKycVideo.html',\r\n size:'sm',\r\n scope: $scope,\r\n reload:true\r\n }); \r\n}\r\n\r\nvm.CloseRemoveKycVideo = function(){\r\n vm.removeKycVideoModel.close();\r\n}\r\n\r\nvm.deleteVideoForKyc = function(){\r\n DashboardService.deleteVideoForKyc(loggedinUser, vm.userId, token).then(function(resp){\r\n if(resp.status == '200'){\r\n\r\n vm.showSuccess('Success', resp.data.Message);\r\n vm.CloseRemoveKycVideo();\r\n $timeout(function () {\r\n vm.Get360ProfileData();\r\n }, 2000);\r\n }\r\n else\r\n {\r\n vm.showFailure('Failed', resp.data);\r\n\r\n }\r\n })\r\n}\r\n\r\nvm.UpgradeToFV = function () {\r\n vm.UpgradeToFVModel = $uibModal.open({\r\n templateUrl: 'UpgradeToFV.html',\r\n size:'sm',\r\n scope: $scope,\r\n reload:true\r\n }); \r\n}\r\n\r\nvm.CloseUpgradeToFV = function(){\r\n vm.UpgradeToFVModel.close();\r\n}\r\n\r\nvm.UpgradeFreelancerToVendor = function(){\r\n vm.CloseUpgradeToFV();\r\n DashboardService.UpgradeFreelancerToVendor(loggedinUser, vm.userId, token).then(function(resp){\r\n if(resp.status == '200'){\r\n vm.showSuccess('Success', resp.data.Message);\r\n $timeout(function () {\r\n $state.go('index.ActiveAllUser',{reload: true }); \r\n }, 1000);\r\n }\r\n else\r\n {\r\n vm.showFailure('Failed', resp.data.Message);\r\n\r\n }\r\n })\r\n}\r\n\r\nvm.PreviousCompnyExperienceLetterServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.PCExperienceLetterbase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.PCExperienceLetterbase64[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.PCExperienceLetterbase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n}\r\n\r\nvm.TrainingImageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.TrainingImagebase64[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n\r\nvm.TrainingAttendanceServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.TrainingAttendancebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.TrainingAttendancebase64[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.TrainingAttendancebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n}\r\n\r\n\r\n // vm.getCustomerAccounts = function(){ \r\n // DashboardService.getCustomerAccounts(loggedinUser, token).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // vm.accountList = resp.data;\r\n // }\r\n // });\r\n // }\r\n\r\n // vm.getCustomerAccounts(); \r\n\r\n // function getAllStates() {\r\n // var defered = $q.defer();\r\n // ReferService.getAllState(loggedinUser,token).then(function (resp) {\r\n // defered.resolve(resp);\r\n // }, function (error) {\r\n // defered.reject(error);\r\n // });\r\n // return defered.promise;\r\n // }\r\n\r\n // var allStatePromise = getAllStates();\r\n // allStatePromise.then(function (resp) {\r\n // vm.StateList = resp.data;\r\n \r\n // });\r\n\r\n \r\nvm.getCustomerAccounts = function(){ \r\n DashboardService.getCustomerAccounts(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.accountList = resp.data;\r\n }\r\n });\r\n}\r\n// vm.getCustomerAccounts();\r\n\r\nvm.ResetUserFilter = function () { \r\n vm.UsersType = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.userskill = ''; \r\n vm.uType= ''; \r\n vm.CriminalVerified='';\r\n vm.IdVerified='';\r\n vm.PANVerified=''; \r\n vm.useraccount = ''; \r\n vm.pincode ='';\r\n vm.userNameSearch ='';\r\n vm.contactNumberSearch = '';\r\n startDate = '';\r\n endDate = '';\r\n vm.JobcountbyStatus = '';\r\n // vm.applyUserFilter();\r\n}\r\nvm.UsersFilterArray = function()\r\n {\r\n // vm.ResetUserSelection(this);\r\n uitemNames=\"\";\r\n uitemValues=\"\";\r\n\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } \r\n }\r\n\r\n if (vm.userskill) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Skill';\r\n uitemValues = uitemValues + \",\" + vm.userskill;\r\n }\r\n else\r\n {\r\n uitemNames = 'Skill';\r\n uitemValues = vm.userskill;\r\n } \r\n }\r\n if (vm.useraccount) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',AccountName';\r\n uitemValues = uitemValues + \",\" + vm.useraccount;\r\n }\r\n else\r\n {\r\n uitemNames = 'AccountName';\r\n uitemValues = vm.useraccount;\r\n } \r\n }\r\n if (vm.pincode) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.pincode;\r\n }\r\n else\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.pincode;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.userNameSearch;\r\n } \r\n }\r\n if (vm.contactNumberSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',ContactNumber';\r\n uitemValues = uitemValues + \",\" + vm.contactNumberSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'ContactNumber';\r\n uitemValues = vm.contactNumberSearch;\r\n } \r\n }\r\n \r\n if (vm.CriminalVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsCriminalVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else\r\n {\r\n uitemNames = 'IsCriminalVerified';\r\n uitemValues = '\"true\"';\r\n } \r\n }\r\n if (vm.IdVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsAdharVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else\r\n {\r\n uitemNames = 'IsAdharVerified';\r\n uitemValues = '\"true\"';\r\n } \r\n }\r\n if (vm.PANVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsPanVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else\r\n {\r\n uitemNames = 'IsPanVerified';\r\n uitemValues = '\"true\"';\r\n } \r\n }\r\n if (vm.PermanentState) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',State';\r\n uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n }\r\n else\r\n {\r\n uitemNames = 'State';\r\n uitemValues = vm.PermanentState;\r\n } \r\n }\r\n \r\n if(vm.JobcountbyStatus)\r\n {\r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Status';\r\n uitemValues = uitemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else\r\n {\r\n uitemNames = 'Status';\r\n uitemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n if (vm.PermanentState && vm.PermanentCity) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.PermanentCity;\r\n }\r\n else\r\n {\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.UsersType;\r\n } \r\n }\r\n if (vm.UsersType) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + \",\" + vm.UsersType;\r\n }\r\n else\r\n {\r\n uitemNames = 'Role';\r\n uitemValues = vm.UsersType;\r\n } \r\n } \r\n\r\n if(vm.UsersType==\"Freelancer\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n }\r\n else if(vm.UsersType==\"Freelancer Vendor\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n } \r\n else if(vm.UsersType==\"Freelancer Team\")\r\n {\r\n vm.uType=\"Fixed\";\r\n }\r\n else \r\n {\r\n vm.uType=\"\";\r\n vm.UsersType = '';\r\n } \r\n\r\n }\r\n\r\n\r\nvm.UserByFiltersList=[];\r\nvm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy,vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.UserByFiltersList = resp.data.workSummaryData;\r\n $scope.totalUsers = resp.data.WorkSummaryTotalCount;\r\n // preprocessData(vm.UserByFiltersList);\r\n if(vm.UserByFiltersList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = uPageIndex * vm.userPageListCount;\r\n if(uPageIndex==1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex-1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n}\r\nvm.UsersFilterArray(); \r\n// vm.Get360WorkSummary();\r\n\r\n$scope.totalUsers = 0;\r\n$scope.usersPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function() { \r\n $scope.usersPerPage = vm.userPageListCount;\r\n uPageSize = $scope.usersPerPage;\r\n $scope.UserTablePageChanged($scope.Userpagination.current);\r\n\r\nuPageIndex=$scope.Userpagination.current;\r\n$scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.UsersFilterArray(); \r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n\r\n};\r\n}\r\n \r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n if(uitemNames != 'Search')\r\n {\r\n vm.UsersFilterArray();\r\n }\r\n \r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\nvm.applyUserFilter=function()\r\n { \r\n vm.UsersFilterArray(); \r\n \r\n uPageIndex=1;\r\n $scope.Userpagination = {\r\n current: 1\r\n }; \r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n\r\n\r\n }\r\n vm.SubmitFilter = function () { \r\n\r\n $scope.Userpagination = {};\r\n vm.UsersFilterArray();\r\n uPageIndex=1;\r\n $scope.Userpagination = {\r\n current: 1\r\n }; \r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n }\r\n vm.filterStatusForJObs = function(status)\r\n {\r\n vm.JobcountbyStatus=status;\r\n vm.UsersFilterArray(); \r\n PageIndex=1;\r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate,vm.OrderBy,vm.sorttype); \r\n }\r\n\r\n // vm.loadAllSkills = function(){ \r\n // DashboardService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n // vm.skillsWithPipe = '';\r\n // if (resp && resp.data) {\r\n // vm.skillData = resp.data;\r\n // if(vm.skillData && vm.skillData.length>0){\r\n // angular.forEach(vm.skillData, function(s){\r\n // vm.skillsWithPipe += s.SkillName+\"|\";\r\n // });\r\n // vm.skillsWithPipe = vm.skillsWithPipe.length>0\r\n // ? vm.skillsWithPipe.substring(0,vm.skillsWithPipe.length-1) : \"\";\r\n // }\r\n // }\r\n // });\r\n // }\r\n // vm.loadAllSkills();\r\n\r\n vm.FinanceFilterArray = function()\r\n {\r\n uitemNames=\"\";\r\n uitemValues=\"\";\r\n\r\n if (vm.userskill) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Skill';\r\n uitemValues = uitemValues + \",\" + vm.userskill;\r\n }\r\n else\r\n {\r\n uitemNames = 'Skill';\r\n uitemValues = vm.userskill;\r\n } \r\n }\r\n if (vm.useraccount) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',AccountName';\r\n uitemValues = uitemValues + \",\" + vm.useraccount;\r\n }\r\n else\r\n {\r\n uitemNames = 'AccountName';\r\n uitemValues = vm.useraccount;\r\n } \r\n }\r\n if (vm.statusFin) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',status';\r\n uitemValues = uitemValues + \",\" + vm.statusFin;\r\n }\r\n else\r\n {\r\n uitemNames = 'status';\r\n uitemValues = vm.statusFin;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.userNameSearch;\r\n } \r\n }\r\n if (vm.contactNumberSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',ContactNumber';\r\n uitemValues = uitemValues + \",\" + vm.contactNumberSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'ContactNumber';\r\n uitemValues = vm.contactNumberSearch;\r\n } \r\n }\r\n \r\n if (vm.CriminalVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsCriminalVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else\r\n {\r\n uitemNames = 'IsCriminalVerified';\r\n uitemValues = '\"true\"';\r\n } \r\n }\r\n if (vm.IdVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsAdharVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else\r\n {\r\n uitemNames = 'IsAdharVerified';\r\n uitemValues = '\"true\"';\r\n } \r\n }\r\n if (vm.PANVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsPanVerified';\r\n uitemValues = uitemValues + \",\" + '\"true\"';\r\n }\r\n else\r\n {\r\n uitemNames = 'IsPanVerified';\r\n uitemValues = '\"true\"';\r\n } \r\n }\r\n if (vm.PermanentState) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',State';\r\n uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n }\r\n else\r\n {\r\n uitemNames = 'State';\r\n uitemValues = vm.PermanentState;\r\n } \r\n }\r\n if (vm.PermanentState && vm.PermanentCity) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.PermanentCity;\r\n }\r\n else\r\n {\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.UsersType;\r\n } \r\n }\r\n if (vm.UsersType) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + \",\" + vm.UsersType;\r\n }\r\n else\r\n {\r\n uitemNames = 'Role';\r\n uitemValues = vm.UsersType;\r\n } \r\n } \r\n\r\n if(vm.UsersType==\"Freelancer\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n }\r\n else if(vm.UsersType==\"Freelancer Vendor\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n } \r\n else if(vm.UsersType==\"Freelancer Team\")\r\n {\r\n vm.uType=\"Fixed\";\r\n }\r\n else \r\n {\r\n vm.uType=\"\";\r\n vm.UsersType = '';\r\n } \r\n\r\n }\r\n\r\n\r\n vm.ExternalUpload = function () {\r\n var newdata = {};\r\n newdata = {\r\n \"UserId\": vm.userId,\r\n \"Type\": \"\",\r\n \"skillName\": \"\"\r\n }\r\n DashboardService.UploadExternalVideoList(newdata, loggedinUser, token).then(function (resp) {\r\n vm.UploadVideoExternal = resp.data;\r\n });\r\n }\r\n\r\n vm.ReTestForSkill = function (skill) {\r\n var data = {};\r\n data = {\r\n \"UserId\": vm.userId,\r\n \"Skill\": skill \r\n }\r\n OnBoardingFlowService.ReTestForSkill(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n\r\n\r\nvm.FinanceFiltersList=[];\r\nvm.GetFinancialSummary = function () {\r\n \r\n DashboardService.GetFinancialSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.paymentCount = resp.data.paymentsSummary;\r\n vm.FinanceFiltersList = resp.data.financialSummary360.financialLPSummaryList;\r\n $scope.totalFinList = resp.data.financialSummary360.count;\r\n if(vm.FinanceFiltersList.length < vm.financePageListCount)\r\n vm.financeListLength = $scope.totalFinList;\r\n else\r\n vm.financeListLength = fPageIndex * vm.financePageListCount;\r\n if(fPageIndex==1)\r\n vm.fpageindexCount = 1;\r\n else\r\n vm.fpageindexCount = (((fPageIndex-1) * vm.financePageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n vm.ResetUserFilter();\r\n}\r\nvm.FinanceFilterArray(); \r\n// vm.GetFinancialSummary();\r\n\r\n$scope.totalFinList = 0;\r\n$scope.usersPerPage = vm.financePageListCount;\r\n $scope.Financepagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changefinancePageListCount = function() { \r\n $scope.usersPerPage = vm.financePageListCount;\r\n fPageSize = $scope.usersPerPage;\r\n $scope.FinanceTablePageChanged($scope.Financepagination.current);\r\n vm.selectAll = false;\r\n\r\n fPageIndex=$scope.Financepagination.current;\r\n $scope.FinanceTablePageChanged = function(newPage) { \r\n fPageIndex = newPage;\r\n vm.FinanceFilterArray(); \r\n vm.GetFinancialSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n\r\n};\r\n}\r\n \r\nfPageIndex=$scope.Financepagination.current;\r\n $scope.FinanceTablePageChanged = function(newPage) { \r\n fPageIndex = newPage;\r\n if(uitemNames != 'Search')\r\n {\r\n vm.FinanceFilterArray();\r\n }\r\n \r\n vm.GetFinancialSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\n vm.applyFinanceFilter=function()\r\n { \r\n vm.FinanceFilterArray(); \r\n fPageIndex=1;\r\n $scope.Financepagination = {\r\n current: 1\r\n }; \r\n vm.GetFinancialSummary(loggedinUser, token,vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate,vm.OrderBy,vm.sorttype);\r\n\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n});\nangular.module('inspinia').controller('CustomerProjectDetailLatestController', function ($stateParams, customerLatestService, $localStorage, $log) {\r\n var vm = this;\r\n vm.customers = [];\r\n var customerId = $stateParams.customerId;\r\n var projectName = $stateParams.projectName;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var ticketCircle = $stateParams.pocLocation;\r\n vm.ProjectId = $stateParams.projectId;\r\n vm.role = $localStorage.loggedInUser_Role;\r\n vm.projectModel = '';\r\n vm.ProjectLocationModels = '';\r\n vm.selectedLocation = '';\r\n vm.circleTicketList = '';\r\n var token = $localStorage.token;\r\n\r\n vm.GetProjectsByCustomerIdName = function () {\r\n customerLatestService.GetProjectsByCustomerIdName(loggedinUser, token, customerId, projectName).then(function (resp) {\r\n vm.projectModel = resp.data;\r\n vm.ProjectLocationModels = vm.projectModel.ProjectLocationModels[0];\r\n vm.GetLocationByProjectId();\r\n vm.GetProjectLocations();\r\n }, function (error) {\r\n //$log.log('error occured in GetProjectsByCustomerIdName');\r\n })\r\n }\r\n\r\n vm.GetProjectLocations = function () {\r\n customerLatestService.GetProjectLocations(loggedinUser, token, vm.projectModel.ProjectId, ticketCircle).then(function (resp) {\r\n vm.projectModel = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured in GetProjectLocations');\r\n })\r\n }\r\n\r\n vm.GetPocLocations = function (id, cir) {\r\n customerLatestService.GetProjectLocations(loggedinUser, token, id, cir).then(function (resp) {\r\n vm.projectModel = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured in GetProjectLocations');\r\n })\r\n }\r\n\r\n vm.GetLocationByProjectId = function () {\r\n customerService.GetLocationByProjectId(loggedinUser, token, vm.projectModel.ProjectId).then(function (resp) {\r\n vm.selectedLocation = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured in GetProjectLocations');\r\n })\r\n }\r\n\r\n vm.GetTicketByCircleProjectName = function () {\r\n customerService.GetTicketByCircleProjectName(loggedinUser, token, ticketCircle, projectName).then(function (resp) {\r\n vm.circleTicketList = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured in GetTicketByCircleProjectId');\r\n })\r\n }\r\n\r\n vm.GetProjectsByCustomerIdName();\r\n vm.GetTicketByCircleProjectName();\r\n // vm.GetProjectLocations();\r\n\r\n});\nangular.module('inspinia').service('customerLatestService',function(ApiURL, $http){\r\n\r\n \r\nthis.getAllCustomers = function(loggedInUser,token) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' +loggedInUser;\r\n return $http.get(url,{\r\n headers:{ 'Content-Type' : 'application/json','Token':token,'UserId': loggedInUser }\r\n });\r\n }\r\n\r\n//http://115.124.122.225:93/CoreAPI/api/Project/sachin.rana%40innotiontech.com/tata/RFLOSTEST/GetProjectByCustomerIdName\r\nthis.GetProjectsByCustomerIdName = function(loggedInUser, token, customerId, projectName) {\r\n var url = ApiURL + '/api/Project/' +loggedInUser + '/' + customerId + '/' + projectName + '/GetProjectByCustomerIdName'\r\n return $http.get(url,{\r\n headers:{ 'Content-Type' : 'application/json', 'Token': token,'UserId': loggedInUser }\r\n });\r\n }\r\n\r\n this.GetLocationByProjectId = function(loggedinUser, token, projectId){\r\n var url = ApiURL + '/api/ProjectLocation/' + loggedinUser + '/' + projectId + '/GetProjectLocationByProjectId'\r\n return $http.get(url,{\r\n headers: {'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser}\r\n })\r\n}\r\n\r\n//http://115.124.122.225:93/CoreAPI/api/Ticket/sachin.rana%40innotiontech.com/Uttar%20Pradesh/Drive%20Test/GetByCircleProjectName\r\nthis.GetTicketByCircleProjectName = function(loggedinUser, token, circle, projectName){\r\n var url = ApiURL + '/api/Ticket/' + loggedinUser + '/' + circle + '/' + projectName + '/GetByCircleProjectName'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json', 'Token': token,'UserId': loggedinUser}\r\n });\r\n}\r\n\r\nthis.GetProjectLocations = function(loggedinUser, token, projectId,circle){\r\n var url = ApiURL + '/api/ProjectLocation/' + loggedinUser + '/' + projectId + '/' + circle + '/GetProjectLocation'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json', 'Token': token,'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n//http://192.168.0.80/CoreAPI/api/Customer/getallcustomerswithlocpoc?reqUserId=U370000000001\r\nthis.GetAllCustomersWithLOCPOC = function(loggedinUser,token){\r\nvar url = ApiURL + '/api/Customer/getallcustomerswithlocpoc?reqUserId='+ loggedinUser;\r\nreturn $http.get(url,{\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': loggedinUser}\r\n});\r\n}\r\n\r\n});\nangular.module('inspinia').controller('CustomerLatestController', function (CustomerProfileService, DTColumnBuilder, $q, $compile, ProjectCreationService, customerLatestService, ProjectService, $log, $state, $localStorage, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder,$filter) {\r\n var vm = this;\r\n vm.customers = [];\r\n var customerId = $stateParams.customerId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.role = $localStorage.loggedInUser_Role;\r\n vm.FilterSwitch = false;\r\n vm.client = 1;\r\n vm.workArea = '';\r\n var ProjectModal = {};\r\n var circleArray;\r\n vm.filteredProperties = {};\r\n var customerIndex = 0;\r\n vm.projectName = '';\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.pocLocation = '';\r\n vm.customerId = '';\r\n vm.searchText = \"\";\r\n vm.dtInstance = {};\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n if (!loggedinUser) {\r\n $state.go('Login',{\r\n reload:true\r\n });\r\n }else{\r\n vm.exportData = function () {\r\n var blob = new Blob([document.getElementById('tab-resp').innerHTML], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, \"Report.xls\");\r\n };\r\n\r\n vm.preprocessData = function(customer){\r\n var projects = \"\";\r\n angular.forEach(customer.Projects, function(p){\r\n projects += p+\",\";\r\n });\r\n customer.allProjects = projects.length>0?projects.substring(0, projects.length-1):\"\";\r\n\r\n var locations = \"\";\r\n angular.forEach(customer.Locations, function(l){\r\n locations += l+\",\";\r\n });\r\n customer.allLocations = locations.length>0? locations.substring(0, locations.length-1):\"\";\r\n }\r\n vm.ProfileView = function (customerId) {\r\n $state.go('index.Customer_Detail_View_Latest', {\r\n customerId: customerId\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.getAllCustomer = function (loggedinUser) {\r\n customerLatestService.getAllCustomers(loggedinUser,token).then(function (resp) {\r\n vm.customers = resp.data;\r\n angular.forEach(vm.customers, function(customer){\r\n vm.preprocessData(customer);\r\n })\r\n if (vm.customers.length == 0) {\r\n vm.client = 1;\r\n }\r\n else {\r\n vm.client = 3;\r\n vm.customerInfo = vm.customers[customerIndex];\r\n }\r\n }, function (error) {\r\n //$log.log('error occured in getAllCustomer');\r\n });\r\n }\r\n vm.GetAllCustomersWithLOCPOC = function (loggedinUser) {\r\n customerLatestService.GetAllCustomersWithLOCPOC(loggedinUser,token).then(function (resp) {\r\n vm.customers = resp.data;\r\n // angular.forEach(vm.customers, function(customer){\r\n // vm.preprocessData(customer);\r\n // })\r\n // if (vm.customers.length == 0) {\r\n // vm.client = 1;\r\n // }\r\n // else {\r\n // vm.client = 3;\r\n // vm.customerInfo = vm.customers[customerIndex];\r\n // }\r\n }, function (error) {\r\n //$log.log('error occured in getAllCustomer');\r\n });\r\n }\r\n\r\n vm.getCustomerInfo = function (customerId, loggedinUser) {\r\n CustomerProfileService.getCustomerInfo(customerId, loggedinUser,token).then(function (resp) {\r\n vm.customerInfo = resp.data;\r\n vm.preprocessData(vm.customerInfo);\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.GetProjectInfo = function (projectId) {\r\n ProjectService.GetProjectByProjectId(loggedinUser, projectId, token).then(function (resp) {\r\n vm.projectModel = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured in GetProjectByProjectId');\r\n });\r\n }\r\n\r\n vm.getAllCircles = function (loggedinUser) {\r\n ProjectCreationService.GetAllCircles(loggedinUser).then(function (resp) {\r\n vm.circles = resp.data;\r\n for (var index = 0; index < vm.workArea.length; index++) {\r\n circleArray.push({\r\n workArea: vm.circles\r\n });\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.projectLocationModel = {};\r\n\r\n vm.GetAllProjects = function () {\r\n ProjectService.GetAllProjects(loggedinUser, token).then(function (resp) {\r\n vm.projects = resp.data;\r\n angular.forEach(vm.projects, function(d){\r\n if(!vm.projectLocationModel[d.CustomerId]){\r\n vm.projectLocationModel[d.CustomerId]={};\r\n }\r\n angular.forEach(d.ProjectLocationModels, function(d1){\r\n if(!vm.projectLocationModel[d.CustomerId][d1.Circle]){\r\n vm.projectLocationModel[d.CustomerId][d1.Circle]=[];\r\n }\r\n vm.projectLocationModel[d.CustomerId][d1.Circle].push({\"ProjectId\": d1.ProjectId,\r\n \"ProjectName\":d1.ProjectName,\r\n \"POC\": d1.CustomerContactRequestModel.FirstName+\" \"+d1.CustomerContactRequestModel.LastName,\r\n \"Mobile\": d1.CustomerContactRequestModel.Mobile, \"progress\":{\r\n data: [1, 5],\r\n options: {\r\n fill: [\"#1ab394\", \"#d7d7d7\"]\r\n }\r\n },\r\n \"SupervisorName\":d1.SupervisorName, \"SupervisorNumber\":d1.SupervisorNumber});\r\n }); \r\n });\r\n //$log.log(vm.projectLocationModel);\r\n }, function (error) {\r\n //$log.log('error occured GetAllProjects');\r\n });\r\n }\r\n\r\n // vm.getAllProjectsBySupervisor = function(loggedinUser){\r\n // customerService.getAllProjectsBySupervisor(loggedinUser).then(function(resp) {\r\n // vm.projects = resp.data;\r\n // }, function() {\r\n // //$log.log('not working');\r\n // });\r\n // }\r\n\r\n vm.ViewCustomer = function (pocLocation, customerId, projectName) {\r\n $state.go('index.Customer_Project_Detail', {\r\n pocLocation: pocLocation,\r\n customerId: customerId,\r\n projectName: projectName\r\n }, {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n });\r\n }\r\n\r\n vm.ViewCustomerById = function (customerId) {\r\n $state.go('index.Customer_Project_Detail', {\r\n\r\n customerId: customerId\r\n\r\n }, {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n });\r\n }\r\n\r\n\r\n vm.ProfileData = function (customerId) {\r\n vm.getCustomerInfo(customerId, loggedinUser);\r\n vm.client = 3;\r\n }\r\n\r\n vm.editCustomerProfile = function (customerName) {\r\n $state.go('index.CustomerEdit', {\r\n customerId: customerName\r\n });\r\n }\r\n\r\n vm.filtermodal = function () {\r\n vm.getAllCircles(loggedinUser);\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'Filter.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.CloseModal = function () {\r\n ProjectModal.close();\r\n }\r\n\r\n vm.search = function () {\r\n if (vm.ProjectCheckBox == true) {\r\n if (angular.isDefined(vm.Project)) {\r\n vm.filteredProperties.Project = vm.Project;\r\n }\r\n } if (vm.customerName == true) {\r\n if (angular.isDefined(vm.customer_name)) {\r\n vm.filteredProperties.CompanyName = vm.customer_name;\r\n }\r\n } if (vm.Capture == true) {\r\n if (angular.isDefined(vm.workArea)) {\r\n vm.filteredProperties.Locations = vm.workArea[0];\r\n }\r\n }\r\n ProjectModal.close();\r\n }\r\n // vm.getAllProjectsBySupervisor(loggedinUser);\r\n // vm.getAllCircles(loggedinUser);\r\n if (vm.EnableRegion) {\r\n vm.GetAllCustomersWithLOCPOC(loggedinUser);\r\n }else{\r\n vm.getAllCustomer(loggedinUser);\r\n vm.GetAllProjects();\r\n }\r\n \r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n var defer = $q.defer();\r\n customerLatestService.GetAllCustomersWithLOCPOC(loggedinUser,token).then(function(resp){\r\n vm.customerList = resp.data;\r\n angular.forEach(vm.customerList, function(customer){\r\n vm.preprocessData(customer);\r\n })\r\n if (vm.customerList.length == 0) {\r\n vm.client = 1;\r\n }\r\n else {\r\n vm.client = 3;\r\n vm.customerInfo = vm.customerList[customerIndex];\r\n }\r\n\r\n defer.resolve(vm.customerList);\r\n })\r\n return defer.promise;\r\n \r\n }).withDOM('<\"html5buttons\"B>lTfgitp').withPaginationType('full_numbers').withOption('order', [0,'desc']).withOption('createdRow', createdRow);\r\n \r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle('Id').renderWith(function(data, type, full, meta){\r\n return ' ' + data.CustomerId + '';\r\n }),\r\n DTColumnBuilder.newColumn('CustomerName').withTitle('Name').renderWith(function(data){\r\n return ''+ data+'';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Description').notSortable(),\r\n DTColumnBuilder.newColumn('LocationsCount').withTitle('Location').notSortable(),\r\n //DTColumnBuilder.newColumn('CreatedOn').withTitle('Created On').notSortable(),\r\n DTColumnBuilder.newColumn('CreatedOn').withTitle('Created On').withOption('type', 'date').renderWith(function(data,type, full){\r\n return $filter('date')(new Date(data), vm.CustomDateformat); \r\n }),\r\n DTColumnBuilder.newColumn('UpdatedOn').withTitle('Updated On').withOption('type', 'date').renderWith(function(data,type, full){\r\n return $filter('date')(new Date(data), vm.CustomDateformat); \r\n }),\r\n // DTColumnBuilder.newColumn('UpdatedOn').withTitle('Updated On').notSortable(),\r\n \r\n // DTColumnBuilder.newColumn('ContractDate').withTitle('Contract Date').withOption('type', 'date').renderWith(function(data,type, full){\r\n // return $filter('date')(new Date(data), vm.CustomDateformat); \r\n // })\r\n ];\r\n\r\n\r\n // vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n // '<\"html5buttons\"B>lTfgitp')\r\n // .withButtons([]).withPaginationType(\r\n // 'full_numbers').withOption('lengthChange', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n // .withOption('order', [1, 'asc']);\r\n\r\n // vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n // // DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable()];\r\n \r\n vm.PieChart5 = {\r\n data: [226, 134],\r\n options: {\r\n fill: [\"#1ab394\", \"#d7d7d7\"]\r\n }\r\n };\r\n \r\n\r\n }\r\n\r\n \r\n});\nangular.module('inspinia').service('CustomerDetailViewLatestService', function (ApiURL,DashboardURL, $http) {\r\n\r\n //Get Customer Details By CustomerId With Job Count\r\n //http://192.168.0.80/CoreAPI/api/Customer/C0000000008/GetCustomerWithJobDetails?reqUserId=U370000000001\r\n\r\n this.GetCustomerIdJobDetails = function(loggedInUser,CustomerId,token){\r\n var url = ApiURL+'/api/Customer/'+ CustomerId+'/GetCustomerWithJobDetails?reqUserId='+ loggedInUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': loggedInUser}\r\n })\r\n }\r\n\r\n\r\n //Get Tickets By Customer ID\r\n //http://192.168.0.80/CoreAPI/api/Ticket/C0000000004/byCustomerId?reqUserId=U370000000001\r\n this.GetTicketsByCustomerId = function(loggedInUser,CustomerId,token){\r\n var url = ApiURL+'/api/Ticket/'+ CustomerId+'/byCustomerId?reqUserId='+ loggedInUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': loggedInUser}\r\n })\r\n }\r\n//projects api\r\n// https://product.mymobiforce.com/coreapi/api/Project/U1140000000001/C0000000002/GetProjectDetailsByCustomerId\r\n this.GetProjectsByCustomerIds = function(loggedInUser,CustomerId,token){\r\n var url = ApiURL+'/api/Project/'+ loggedInUser+'/'+ CustomerId+'/GetProjectDetailsByCustomerId';\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': loggedInUser}\r\n })\r\n }\r\n\r\n//https://test.mymobiforce.com/coreapi/api/Ticket/GetTicketsbyDateRange?fromDate=2018-05-25&toDate=2018-11-14&reqUserId=U360000000001&itemNames=CustomerId%2CTemplate&itemValues=C0000000012%2CVSAT%20Troubleshooting&templateCols=Call%20Type\r\n\r\n this.GetTicketsByFilters = function(loggedInUser,itemName,itemValues,sDate,eDate,tempCol,token){\r\n var url = ApiURL+'/api/Ticket/GetTicketsbyDateRange?fromDate='+ sDate+'&toDate='+ eDate+'&reqUserId='+loggedInUser+'&itemNames='+itemName+'&itemValues='+itemValues+'&templateCols='+tempCol;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': loggedInUser}\r\n })\r\n }\r\n\r\n //Get Status Pie\r\n //https://test.mymobiforce.com/dashboardapi/api/Chart?ReqUserId=U360000000001&ChartType=Pie&Metrics=Total_Jobs&DimensionList=All_Job_Status&RollsUP=Range(%22%7C%22)&FilterKeys=CustomerId&FilterValues=C0000000016&IsData=true\r\n\r\n this.GetStatusInPie = function(token, userId, chartType, metrics,dimensionList,rollup,keys,values,IsData,success, failure){\r\n var url = DashboardURL + \"/api/Chart?ReqUserId==\"+userId+\"&ChartType=\"+chartType+\"&Metrics=\"+metrics+\"&DimensionList=\"+dimensionList+\"&RollsUP=\"+rollup+\"&FilterKeys=\"+keys+\"&FilterValues=\"+values+\"&IsData=\"+IsData;\r\n $http.get(url, {\r\n headers:{'Content-Type': 'application/json', 'Token': token,'UserId': userId}\r\n }).then(function(res){\r\n if(res && res.data){\r\n success(res.data);\r\n }\r\n }, function(error){\r\n failure(\"Failed\", \"Failed to get tat information for this ticket.\");\r\n });\r\n }\r\n this.getAllCustomerLocation = function (loggedinUser,token, itemNames,itemValues,PageIndex,PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/Customer/GetCustomerLocationWithDynaPaging?reqUserId=' + loggedinUser + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser \r\n }\r\n });\r\n }\r\n this.getAllCustomerAsset = function (loggedinUser,token, itemNames,itemValues,PageIndex,PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/asset/GetCustomerAssetWithDynaPaging?reqUserId=' + loggedinUser + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser \r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetAllProjects = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + loggedinUser + '/GetProjectsByUserId'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json','Token':token }\r\n })\r\n }\r\n\r\n this.getAllCustomerAssetDetails = function (loggedinUser,token, itemNames,itemValues,PageIndex,PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/asset/GetCustomerAssetWithDynaPaging?reqUserId=' + loggedinUser + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser \r\n }\r\n });\r\n }\r\n});\r\n\n \r\nangular.module('inspinia').controller('CustomerDetailViewLatestController', function ($scope,$timeout, $state,CustomerDetailViewLatestService,TeamFormCreationService , ProjectLatestService, $log, $stateParams, $localStorage, DTColumnDefBuilder, DTOptionsBuilder) {\r\n var vm = this;\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n var customerId = $stateParams.customerId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm.customerId = $stateParams.customerId;\r\n vm.AssetId =$stateParams.AssetId; \r\n var token = $localStorage.token;\r\n vm.accountid= $localStorage.accountConfig.AccountId;\r\n vm.CustomerFullDetail = '';\r\n \r\n vm.CustomerTicketDetails=[];\r\n vm.PointOfContacts = '';\r\n vm.dtInstance1 = {};\r\n vm.dtInstance={};\r\n vm.LocationListView = true;\r\n vm.AssetListView = true;\r\n vm.Customer = '';\r\n vm.skill = '';\r\n vm.UniqueID1 = '';\r\n vm.UniqueID2 = '';\r\n vm.ROName = '';\r\n vm.permanent_state = '';\r\n vm.dtInstanceCustomer={};\r\n\r\n vm.permanent_city = '';\r\n vm.permanent_address_line1 = '';\r\n vm.permanent_address_line2 = '';\r\n vm.permanent_pincode = '';\r\n vm.projectModel = '';\r\n vm.LCustomerName='';\r\n\tvm.CustomerId='';\r\n\tvm.LCustomerLocationId='';\r\n\tvm.UniqueIdOne='';\r\n\tvm.LAssetName='';\r\n\tvm.LCategory='';\r\n\tvm.LProductName='';\r\n\tvm.LPermanentState='';\r\n\tvm.LPermanentCity='';\r\n\tvm.LPincode='';\r\n\tvm.LSiteName='';\r\n\tvm.UniqueIdTwo='';\r\n\tvm.PointOfContact='';\r\n vm.PermanentState='';\r\n vm.CLCustomerId='';\r\n\tvm.CLCustomerName='';\r\n\tvm.CLCustomerLocationId='';\r\n\tvm.CLUniqueIdOne='';\r\n\tvm.CLUniqueIdTwo='';\r\n\tvm.CLPointOfContact='';\r\n\tvm.CLPermanentState='';\r\n vm.CLPermanentCity='';\r\n vm.saveAndNewFlag = false;\r\n vm.editMode = false;\r\n vm.CustomerDetails = [];\r\n $scope.status = {\r\n isFirstOpen: true,\r\n };\r\n $scope.oneAtATime = true;\r\n vm.SiteCode='';\r\n vm.SiteName='';\r\n if (!loggedinUser || !customerId) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n vm.dtInstance = {};\r\n var creationDatefunc = $scope.$parent.$parent.main.AccountStartDate;\r\n vm.accountCreationDate = creationDatefunc();\r\n var startDate = vm.accountCreationDate;\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.pieCharts={};\r\n vm.error = {};\r\n vm.searchText = \"\";\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n \r\n vm.GetCustomerDetailswithJobCount = function(){\r\n CustomerDetailViewLatestService.GetCustomerIdJobDetails(loggedinUser,customerId,token).then(function(resp){\r\n if (resp.status == 200 && resp.data) {\r\n vm.CustomerFullDetail = resp.data;\r\n vm.GetTicketsByFilters();\r\n $log.log('vm.CustomerFullDetail',vm.CustomerFullDetail);\r\n }\r\n })\r\n }\r\n vm.GetTicketsByCustomerId = function(){\r\n CustomerDetailViewLatestService.GetTicketsByCustomerId(loggedinUser,customerId,token).then(function(resp){\r\n if (resp.status == 200 && resp.data) {\r\n vm.CustomerTicketDetails = resp.data;\r\n $log.log('vm.CustomerTicketDetails',vm.CustomerTicketDetails);\r\n }\r\n })\r\n }\r\n\r\n vm.GetProjectsByCustomerId = function(){\r\n CustomerDetailViewLatestService.GetProjectsByCustomerIds(loggedinUser,customerId,token).then(function(resp){\r\n if (resp.status == 200 && resp.data) {\r\n vm.CustomerDetails = resp.data;\r\n }\r\n })\r\n }\r\n vm.GetProjectsByCustomerId();\r\n\r\n vm.ViewProject = function (pocLocation, projectId, projectName) { debugger\r\n $state.go('index.Project_Details_Latest', {\r\n pocLocation: pocLocation,\r\n projectId: projectId,\r\n projectName: projectName\r\n },\r\n {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n\r\n });\r\n }\r\n \r\n vm.backlist = function () {\r\n\t\t\r\n\t\t $state.go('index.CustomerNewLatest',{reload: true });\r\n \r\n\t\t\r\n\t }\r\n vm.preProcessData = function(project){\r\n var skills = \"\";\r\n angular.forEach(project.ProjectLocationModels, function(l){\r\n skills += l.Circle + \",\";\r\n }); \r\n project.allLocations = skills.length>0?skills.substring(0, skills.length-1):\"\";\r\n }\r\n vm.search = function () {\r\n \r\n if (Object.keys(vm.filters).length > 0) {\r\n vm.filterOptions = {};\r\n angular.extend(vm.filterOptions, vm.filters);\r\n if(vm.filters.workArea){\r\n vm.filterOptions.ProjectLocationModels = {};\r\n vm.filterOptions.ProjectLocationModels.Circle = vm.filters.workArea[0];\r\n }\r\n } else {\r\n vm.filterOptions = {};\r\n }\r\n //$log.log(vm.filterOptions);\r\n ProjectModal.close();\r\n }\r\n\r\n vm.GetTicketsByFilters = function(){\r\n // var itemNames = 'CustomerId,Template';\r\n var itemNames = 'CustomerId';\r\n var itemValues = '';\r\n var testvalue = '';\r\n var demo ='';\r\n var skillsArray = vm.CustomerFullDetail.SkillSet.split(',');\r\n var sArray = [];\r\n angular.forEach(skillsArray,function(d){\r\n if (d) {\r\n sArray.push(d);\r\n }\r\n })\r\n if (sArray.length>1) {\r\n\r\n angular.forEach(sArray,function(da){\r\n testvalue += da+',';\r\n })\r\n demo = testvalue.toString();\r\n //itemValues = customerId +','+ testvalue;\r\n itemValues = customerId;\r\n var tempCol = 'Call Type';\r\n CustomerDetailViewLatestService.GetTicketsByFilters(loggedinUser,itemNames,itemValues,startDate,endDate,tempCol,token).then(function(resp){\r\n if (resp.status == 200 && resp.data) {\r\n vm.CustomerTicketDetails = resp.data;\r\n //$log.log('vm.CustomerTicketDetails',vm.CustomerTicketDetails);\r\n }\r\n })\r\n \r\n }else{\r\n if (sArray[0].indexOf('VSAT')>=0) {\r\n itemValues = customerId+',VSAT Troubleshooting';\r\n }else{\r\n itemValues = customerId+',LeaseLine Troubleshooting';\r\n }\r\n var tempCol = 'Call Type';\r\n CustomerDetailViewLatestService.GetTicketsByFilters(loggedinUser,itemNames,itemValues,startDate,endDate,tempCol,token).then(function(resp){\r\n if (resp.status == 200 && resp.data) {\r\n vm.CustomerTicketDetails = resp.data;\r\n //$log.log('vm.CustomerTicketDetails',vm.CustomerTicketDetails);\r\n }\r\n })\r\n \r\n \r\n }\r\n \r\n }\r\n\r\n vm.GetPointOfContactInfo = function(locationId){\r\n if (vm.CustomerFullDetail && vm.CustomerFullDetail.CustomerLocationModels) {\r\n for (var i = 0; i < vm.CustomerFullDetail.CustomerLocationModels.length; i++) {\r\n var model = vm.CustomerFullDetail.CustomerLocationModels[i]\r\n if (model.CustomerLocationId == locationId) {\r\n vm.PointOfContacts = model.CustomerLocationContactModels;\r\n vm.pocview = true;\r\n break;\r\n }\r\n }\r\n\r\n \r\n }\r\n }\r\n\r\n vm.GetCustomerDetailswithJobCount();\r\n //vm.GetTicketsByCustomerId();\r\n //vm.GetTicketsByFilters();\r\n\r\n vm.GetStatusInPie = function(chart){\r\n //https://test.mymobiforce.com/dashboardapi/api/Chart?ReqUserId=U360000000001&ChartType=Pie&Metrics=Total_Jobs&DimensionList=All_Job_Status&RollsUP=Range(%22%7C%22)&FilterKeys=CustomerId&FilterValues=C0000000016&IsData=true\r\n if (chart == 'Status') {\r\n var chartType = 'Pie';\r\n var metrics = 'helpdesk_total_jobs';\r\n var dimensionList = 'All_Job_Status';\r\n }else if(chart=='SLA'){\r\n var chartType = 'Metrics';\r\n var metrics = 'SLA_Met,SLA_Violated';\r\n var dimensionList = '';\r\n }\r\n \r\n var rollup ='';\r\n var filterKeys = 'CustomerId';\r\n var filterValues = customerId;\r\n var isData = false;\r\n CustomerDetailViewLatestService.GetStatusInPie(token, loggedinUser, chartType,metrics,dimensionList,rollup,filterKeys,filterValues,isData, function(data){\r\n if (chart == 'Status') {\r\n vm.pieCharts['Status'] = {};\r\n vm.pieCharts['Status'].value = data;\r\n }else{\r\n vm.pieCharts['SLA'] = {};\r\n var SlaData = [];\r\n \r\n angular.forEach(data, function(d){\r\n if (d) {\r\n var metrcsdata ={};\r\n metrcsdata.y = d.Value;\r\n metrcsdata.name = d.DisplayName;\r\n\r\n }\r\n SlaData.push(metrcsdata);\r\n })\r\n console.log('SLADATA',SlaData);\r\n vm.pieCharts['SLA'].value = SlaData;\r\n }\r\n \r\n \r\n // $log.log('vm.pieCharts[]',data);\r\n $timeout(function(){\r\n vm.createDoughnutChart(chart,'Status chart(in hrs)');\r\n },1000)\r\n \r\n \r\n }, vm.showFailure);\r\n }\r\nvm.GetStatusInPie('Status');\r\nvm.GetStatusInPie('SLA');\r\n\r\n\r\nvm.Location_Edit=[];\r\nvm.Location_Edit = function (CustomerLocationId) {\r\n vm.Location_EditModal=CustomerLocationId;\r\n\r\n \r\n vm.selectedCountry = null;\r\n //get country of user\r\n\r\n vm.getCountry = function () {\r\n TeamFormCreationService.getCountry(loggedinUser).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.values.length>0){\r\n vm.countrylist = resp.data.values;\r\n // vm.selectedCountry = vm.countrylist[0];\r\n vm.getStates();\r\n getAllCircles(loggedinUser);\r\n }\r\n } \r\n })\r\n }\r\n\r\n vm.getStates = function () {\r\n TeamFormCreationService.getStates(loggedinUser,token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.stateList = resp.data;\r\n \r\n vm.editMode = true;\r\n \r\n \r\n LocationDetailsService.getAllCustomerLocation( loggedinUser,token,'CustomerLocationId',CustomerLocationId,1,10).then(function (resp) {\r\n var userData = resp.data[0].CustomerLocations;\r\n \r\n vm.Customer = userData[0].CustomerId\r\n vm.permanent_state = userData[0].SubRegion; \r\n vm.permanent_city = userData[0].City; \r\n vm.permanent_address_line1 = userData[0].Address1; \r\n vm.permanent_address_line2 = userData[0].Address2; \r\n vm.permanent_pincode = userData[0].Pincode;\r\n vm.CustomerlocationId = userData[0].CustomerLocationId;\r\n vm.ROName = userData[0].ROName \r\n vm.UniqueID1 = userData[0].UniqueIdOne; \r\n vm.UniqueID2 = userData[0].UniqueIdTwo; \r\n vm.POCFirstName =userData[0].POCFirstName;\r\n vm.POCLastName = userData[0].POCLastName; \r\n vm.POCMobileNo = userData[0].POCMobileNo;\r\n vm.POCOtherNo = userData[0].POCOtherNo;\r\n vm.POCEmailId = userData[0].POCEmailId;\r\n vm.Latitude = userData[0].Latitude;\r\n vm.Longitude = userData[0].Longitude;\r\n vm.SiteCode= userData[0].SiteCode;\r\n vm.SiteName= userData[0].SiteName;\r\n \r\n vm.skill = userData[0].SkillSet;\r\n \r\n if (vm.EnableRegion) {\r\n vm.MainRegion = userData.Region;\r\n\r\n //GetSubRegionList\r\n vm.selectSubRegion(vm.MainRegion);\r\n vm.Region = userData.SubRegion;\r\n vm.selectCitySubRegion(vm.Region);\r\n vm.SubCity = userData.Locations;\r\n }else{\r\n vm.workArea = userData.Locations;\r\n }\r\n\r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n\r\n vm.Location_CreationModal = $uibModal.open({\r\n templateUrl: 'Location_Creation.html',\r\n backdrop: 'static',\r\n \r\n windowClass:'schedulerModal',\r\n scope: $scope,\r\n reload:true\r\n });\r\n vm.CloseLocation_Creation = function () {\r\n vm.Location_CreationModal.close();\r\n }\r\n ///Get the workArea badges in edit mode \r\n // var circleArray = [];\r\n // for (var pin = 0; pin < vm.workArea.length; pin++) {\r\n // circleArray.push({\r\n // workArea: vm.workArea\r\n // });\r\n // }\r\n \r\n ///Check Present address is same as the Permanent Address.\r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n }, function () {\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 vm.getCountry();\r\n\r\n $scope.modelOptions = {\r\n getterSetter: true\r\n };\r\n\r\n \r\n\r\n}\r\n\r\n //Create Doughnut Chart\r\n vm.createDoughnutChart = function (chartId, title) {\r\n vm.showPieChart = vm.showPieChart || {};\r\n vm.tempShowPieChart = vm.tempShowPieChart || {};\r\n vm.showPieChart[chartId] = true;\r\n $timeout(function () {\r\n vm.tempShowPieChart[chartId] = false;\r\n if (vm.pieCharts[chartId] && vm.pieCharts[chartId].value) {\r\n\r\n for(var i=0; i0){\r\n vm.tempShowPieChart[chartId]=true;\r\n }\r\n }\r\n vm.showPieChart[chartId]=vm.tempShowPieChart[chartId];\r\n var chartData = {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie'\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n title: {\r\n text: ''\r\n },\r\n legend: {\r\n align: 'right',\r\n verticalAlign: 'top',\r\n layout: 'vertical',\r\n x: 20,\r\n y: 50,\r\n \r\n },\r\n tooltip: {\r\n headerFormat: ' {series.name} : {point.name}
',\r\n pointFormat: ' {point.name}: {point.y:,.0f}
',\r\n footerFormat: ' Percentage : {point.percentage:,.1f}% ', shared: true, useHTML: true\r\n //pointFormat: '{series.name}: {point.y:.1f}%'\r\n },\r\n plotOptions: {\r\n pie: {\r\n innerSize:60,\r\n depth:100,\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n dataLabels: {\r\n enabled: false\r\n },\r\n showInLegend: true\r\n }\r\n },\r\n series: [{\r\n name: title,\r\n colorByPoint: true,\r\n data: vm.pieCharts[chartId].value\r\n }]\r\n };\r\n if(chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]){\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true; \r\n }\r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 1000);\r\n }\r\n \r\n vm.searchTable = function () {\r\n // vm.dtInstance1.DataTable.search(vm.searchText);\r\n vm.dtInstance1.DataTable.search(vm.searchText).draw();\r\n };\r\n // format = function(ticket){\r\n // return ''+\r\n // ''+\r\n // ''+\r\n // ''+\r\n // ''+\r\n // '
Location:'+ticket.Address1+\", \"+ticket.Address2+\", \"+ticket.City+\", \"+ticket.Circle+\", Pincode: \"+ticket.Pincode+'
';\r\n // }\r\n // vm.showLocation = function(dtInstance, $event, ticket){\r\n // var tr = angular.element($event.currentTarget).closest(\"tr\");\r\n // var row = dtInstance.DataTable.row( tr );\r\n // if ( row.child.isShown() ) {\r\n // // This row is already open - close it\r\n // row.child.hide();\r\n // tr.removeClass('shown');\r\n // } else {\r\n // // Open this row\r\n // row.child( format(ticket) ).show();\r\n // tr.addClass('shown');\r\n // }\r\n // }\r\n vm.dtOptions1 = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withButtons([{extend:'csv'}])\r\n .withPaginationType('full_numbers')\r\n .withOption('lengthChange', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs1 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(6).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(8).notSortable()\r\n \r\n ];\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withButtons([{extend:'csv'}])\r\n .withPaginationType('full_numbers')\r\n .withOption('lengthChange', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(8).notSortable()\r\n \r\n ];\r\n\r\n \r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfrgitp')\r\n .withButtons([{ extend: 'colvis' }])\r\n // .withButtons([{extend:'csv'}])\r\n .withOption('stateSave', true)\r\n .withOption('deferRender', true)\r\n .withPaginationType('full_numbers').withOption('lengthChange', false)\r\n .withOption('paging', false)\r\n .withOption('bInfo',false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n .withOption('order', []);\r\n \r\n vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(8).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(9).notSortable()\r\n \r\n \r\n ];\r\n \r\n vm.dtOptionsCustomer = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withButtons([{extend:'csv'}])\r\n .withPaginationType('full_numbers')\r\n .withOption('lengthChange', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefsCustomer = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(8).notSortable()\r\n \r\n ];\r\n\r\n\r\n\r\n \t\r\n vm.selectedCountry = null;\r\n \r\n }\r\n vm.getCountry = function () {\r\n TeamFormCreationService.getCountry(loggedinUser).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.values.length>0){\r\n vm.countrylist = resp.data.values;\r\n // vm.selectedCountry = vm.countrylist[0];\r\n if( vm.AddressMappingCountry){\r\n vm.getStates(loggedinUser, vm.AddressMappingCountry);\r\n }\r\n getAllCircles(loggedinUser);\r\n }\r\n } \r\n })\r\n }\r\n\r\n\r\n\r\n vm.getStates = function (loggedinUser, country) {\r\n TeamFormCreationService.getStates(loggedinUser, country).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.values.length>0){\r\n vm.stateList = resp.data.values;\r\n \r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n\r\n \r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n \r\n }\r\n} \r\n})\r\n }\r\nfunction getAllStates() {\r\n var defered = $q.defer();\r\n TeamFormCreationService.getStates(loggedinUser, token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n \r\n return defered.promise;\r\n }\r\n function getAllCircles() {\r\n vm.circles = [];\r\n vm.CircleList=[];\r\n vm.MainRegionList = '';\r\n if (vm.EnableRegion) {\r\n TeamFormCreationService.GetRegion(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.MainRegionList = resp.data;\r\n $log.log('RegionList',vm.RegionList)\r\n }\r\n }\r\n })\r\n }else if (vm.LocationMapping == 'Circle') {\r\n TeamFormCreationService.GetTelecomCircle(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.CircleList = resp.data.values;\r\n \r\n }\r\n }\r\n })\r\n }else{\r\n \r\n TeamFormCreationService.getStates(loggedinUser, vm.AddressMappingCountry).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.circles = resp.data.values;\r\n \r\n }\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n vm.GetAllProjects = function () {\r\n vm.projects = [];\r\n ProjectLatestService.GetAllProjects1(loggedinUser, vm.createCallback(vm.projects, [function () {\r\n vm.list_width = vm.projects.length == 0 ? 12 : 8;\r\n vm.projectModel = vm.projects[0];\r\n angular.forEach(vm.projects, function(p){\r\n vm.preProcessData(p);\r\n });\r\n }]), token);\r\n}\r\n\r\nvm.GetProjectInfo = function (projectId) {\r\n ProjectLatestService.GetProjectByProjectId(projectId, loggedinUser, token, vm.createCallback(null, [function (data) {\r\n vm.projectModel = data;\r\n \r\n }]));\r\n}\r\n \r\n ///Executes when the user select the state\r\nvm.selectState = function (state) {\r\n var Getstate = state;\r\n TeamFormCreationService.getCities(loggedinUser,Getstate).then(function (resp) {\r\n vm.cityList = resp.data.values;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n \r\n });\r\n }\r\n \r\n vm.selectSubRegion = function(region){\r\n \r\n TeamFormCreationService.GetSubRegion(loggedinUser,token,region).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.SubRegionList = resp.data.values;\r\n }\r\n }\r\n })\r\n }\r\n vm.selectCitySubRegion = function(Subregion){\r\n \r\n TeamFormCreationService.GetCityBySubRegion(loggedinUser,Subregion,token).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.SubCityList = resp.data.values;\r\n }\r\n }\r\n })\r\n }\r\n \r\n vm.selectStateforPresent = function (state) {\r\n var Getstate = state;\r\n TeamFormCreationService.getCities(loggedinUser,Getstate).then(function (resp) {\r\n vm.presentcityList = resp.data.values;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\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\nangular.module('inspinia').service('customerService',function(ApiURL, $http){\r\n\r\n \r\nthis.getAllCustomers = function(loggedInUser,token) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' +loggedInUser;\r\n return $http.get(url,{\r\n headers:{ 'Content-Type' : 'application/json','Token':token,'UserId': loggedInUser }\r\n });\r\n }\r\n\r\n//http://115.124.122.225:93/CoreAPI/api/Project/sachin.rana%40innotiontech.com/tata/RFLOSTEST/GetProjectByCustomerIdName\r\nthis.GetProjectsByCustomerIdName = function(loggedInUser, token, customerId, projectName) {\r\n var url = ApiURL + '/api/Project/' +loggedInUser + '/' + customerId + '/' + projectName + '/GetProjectByCustomerIdName'\r\n return $http.get(url,{\r\n headers:{ 'Content-Type' : 'application/json', 'Token': token,'UserId': loggedInUser }\r\n });\r\n }\r\n\r\n this.GetLocationByProjectId = function(loggedinUser, token, projectId){\r\n var url = ApiURL + '/api/ProjectLocation/' + loggedinUser + '/' + projectId + '/GetProjectLocationByProjectId'\r\n return $http.get(url,{\r\n headers: {'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser}\r\n })\r\n}\r\n\r\n//http://115.124.122.225:93/CoreAPI/api/Ticket/sachin.rana%40innotiontech.com/Uttar%20Pradesh/Drive%20Test/GetByCircleProjectName\r\nthis.GetTicketByCircleProjectName = function(loggedinUser, token, circle, projectName){\r\n var url = ApiURL + '/api/Ticket/' + loggedinUser + '/' + circle + '/' + projectName + '/GetByCircleProjectName'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json', 'Token': token,'UserId': loggedinUser}\r\n });\r\n}\r\n\r\nthis.GetProjectLocations = function(loggedinUser, token, projectId,circle){\r\n var url = ApiURL + '/api/ProjectLocation/' + loggedinUser + '/' + projectId + '/' + circle + '/GetProjectLocation'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json', 'Token': token,'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n//http://192.168.0.80/CoreAPI/api/Customer/getallcustomerswithlocpoc?reqUserId=U370000000001\r\nthis.GetAllCustomersWithLOCPOC = function(loggedinUser,token){\r\nvar url = ApiURL + '/api/Customer/getallcustomerswithlocpoc?reqUserId='+ loggedinUser;\r\nreturn $http.get(url,{\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': loggedinUser}\r\n});\r\n}\r\n\r\n});\nangular.module('inspinia').controller('CustomerController', function (CustomerProfileService, $rootScope, DTColumnBuilder, $q, $compile, ProjectCreationService, customerService, ProjectService, $log, $state, $localStorage, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder) {\r\n var vm = this;\r\n vm.customers = [];\r\n $rootScope.rootScopeMessage = '';\r\n var customerId = $stateParams.customerId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.role = $localStorage.loggedInUser_Role;\r\n vm.FilterSwitch = false;\r\n vm.client = 1;\r\n vm.workArea = '';\r\n var ProjectModal = {};\r\n var circleArray;\r\n vm.filteredProperties = {};\r\n var customerIndex = 0;\r\n vm.projectName = '';\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.pocLocation = '';\r\n vm.customerId = '';\r\n vm.searchText = \"\";\r\n vm.dtInstance = {};\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login',{\r\n reload:true\r\n });\r\n }else{\r\n vm.exportData = function () {\r\n var blob = new Blob([document.getElementById('tab-resp').innerHTML], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, \"Report.xls\");\r\n };\r\n\r\n vm.preprocessData = function(customer){\r\n var projects = \"\";\r\n angular.forEach(customer.Projects, function(p){\r\n projects += p+\",\";\r\n });\r\n customer.allProjects = projects.length>0?projects.substring(0, projects.length-1):\"\";\r\n\r\n var locations = \"\";\r\n angular.forEach(customer.Locations, function(l){\r\n locations += l+\",\";\r\n });\r\n customer.allLocations = locations.length>0? locations.substring(0, locations.length-1):\"\";\r\n }\r\n vm.ProfileView = function (customerId) {\r\n $state.go('index.Customer_Detail_View', {\r\n customerId: customerId\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.getAllCustomer = function (loggedinUser) {\r\n customerService.getAllCustomers(loggedinUser,token).then(function (resp) {\r\n vm.customers = resp.data;\r\n angular.forEach(vm.customers, function(customer){\r\n vm.preprocessData(customer);\r\n })\r\n if (vm.customers.length == 0) {\r\n vm.client = 1;\r\n }\r\n else {\r\n vm.client = 3;\r\n vm.customerInfo = vm.customers[customerIndex];\r\n }\r\n }, function (error) {\r\n //$log.log('error occured in getAllCustomer');\r\n });\r\n }\r\n vm.GetAllCustomersWithLOCPOC = function (loggedinUser) {\r\n customerService.GetAllCustomersWithLOCPOC(loggedinUser,token).then(function (resp) {\r\n vm.customers = resp.data;\r\n // angular.forEach(vm.customers, function(customer){\r\n // vm.preprocessData(customer);\r\n // })\r\n // if (vm.customers.length == 0) {\r\n // vm.client = 1;\r\n // }\r\n // else {\r\n // vm.client = 3;\r\n // vm.customerInfo = vm.customers[customerIndex];\r\n // }\r\n }, function (error) {\r\n //$log.log('error occured in getAllCustomer');\r\n });\r\n }\r\n\r\n vm.getCustomerInfo = function (customerId, loggedinUser) {\r\n CustomerProfileService.getCustomerInfo(customerId, loggedinUser,token).then(function (resp) {\r\n vm.customerInfo = resp.data;\r\n vm.preprocessData(vm.customerInfo);\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.GetProjectInfo = function (projectId) {\r\n ProjectService.GetProjectByProjectId(loggedinUser, projectId, token).then(function (resp) {\r\n vm.projectModel = resp.data;\r\n }, function (error) {\r\n //$log.log('error occured in GetProjectByProjectId');\r\n });\r\n }\r\n\r\n vm.getAllCircles = function (loggedinUser) {\r\n ProjectCreationService.GetAllCircles(loggedinUser).then(function (resp) {\r\n vm.circles = resp.data;\r\n for (var index = 0; index < vm.workArea.length; index++) {\r\n circleArray.push({\r\n workArea: vm.circles\r\n });\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.projectLocationModel = {};\r\n\r\n vm.GetAllProjects = function () {\r\n ProjectService.GetAllProjects(loggedinUser, token).then(function (resp) {\r\n vm.projects = resp.data;\r\n angular.forEach(vm.projects, function(d){\r\n if(!vm.projectLocationModel[d.CustomerId]){\r\n vm.projectLocationModel[d.CustomerId]={};\r\n }\r\n angular.forEach(d.ProjectLocationModels, function(d1){\r\n if(!vm.projectLocationModel[d.CustomerId][d1.Circle]){\r\n vm.projectLocationModel[d.CustomerId][d1.Circle]=[];\r\n }\r\n vm.projectLocationModel[d.CustomerId][d1.Circle].push({\"ProjectId\": d1.ProjectId,\r\n \"ProjectName\":d1.ProjectName,\r\n \"POC\": d1.CustomerContactRequestModel.FirstName+\" \"+d1.CustomerContactRequestModel.LastName,\r\n \"Mobile\": d1.CustomerContactRequestModel.Mobile, \"progress\":{\r\n data: [1, 5],\r\n options: {\r\n fill: [\"#1ab394\", \"#d7d7d7\"]\r\n }\r\n },\r\n \"SupervisorName\":d1.SupervisorName, \"SupervisorNumber\":d1.SupervisorNumber});\r\n }); \r\n });\r\n //$log.log(vm.projectLocationModel);\r\n }, function (error) {\r\n //$log.log('error occured GetAllProjects');\r\n });\r\n }\r\n\r\n // vm.getAllProjectsBySupervisor = function(loggedinUser){\r\n // customerService.getAllProjectsBySupervisor(loggedinUser).then(function(resp) {\r\n // vm.projects = resp.data;\r\n // }, function() {\r\n // //$log.log('not working');\r\n // });\r\n // }\r\n\r\n vm.ViewCustomer = function (pocLocation, customerId, projectName) {\r\n $state.go('index.Customer_Project_Detail', {\r\n pocLocation: pocLocation,\r\n customerId: customerId,\r\n projectName: projectName\r\n }, {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n });\r\n }\r\n\r\n vm.ViewCustomerById = function (customerId) {\r\n $state.go('index.Customer_Project_Detail', {\r\n\r\n customerId: customerId\r\n\r\n }, {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n });\r\n }\r\n\r\n\r\n vm.ProfileData = function (customerId) {\r\n vm.getCustomerInfo(customerId, loggedinUser);\r\n vm.client = 3;\r\n }\r\n\r\n vm.editCustomerProfile = function (customerName) {\r\n $state.go('index.CustomerEdit', {\r\n customerId: customerName\r\n });\r\n }\r\n\r\n vm.filtermodal = function () {\r\n vm.getAllCircles(loggedinUser);\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'Filter.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.CloseModal = function () {\r\n ProjectModal.close();\r\n }\r\n\r\n vm.search = function () {\r\n if (vm.ProjectCheckBox == true) {\r\n if (angular.isDefined(vm.Project)) {\r\n vm.filteredProperties.Project = vm.Project;\r\n }\r\n } if (vm.customerName == true) {\r\n if (angular.isDefined(vm.customer_name)) {\r\n vm.filteredProperties.CompanyName = vm.customer_name;\r\n }\r\n } if (vm.Capture == true) {\r\n if (angular.isDefined(vm.workArea)) {\r\n vm.filteredProperties.Locations = vm.workArea[0];\r\n }\r\n }\r\n ProjectModal.close();\r\n }\r\n // vm.getAllProjectsBySupervisor(loggedinUser);\r\n // vm.getAllCircles(loggedinUser);\r\n if (vm.EnableRegion) {\r\n vm.GetAllCustomersWithLOCPOC(loggedinUser);\r\n }else{\r\n vm.getAllCustomer(loggedinUser);\r\n vm.GetAllProjects();\r\n }\r\n \r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n var defer = $q.defer();\r\n customerService.GetAllCustomersWithLOCPOC(loggedinUser,token).then(function(resp){\r\n vm.customerList = resp.data;\r\n angular.forEach(vm.customerList, function(customer){\r\n vm.preprocessData(customer);\r\n })\r\n if (vm.customerList.length == 0) {\r\n vm.client = 1;\r\n }\r\n else {\r\n vm.client = 3;\r\n vm.customerInfo = vm.customerList[customerIndex];\r\n }\r\n\r\n defer.resolve(vm.customerList);\r\n })\r\n return defer.promise;\r\n \r\n }).withDOM('<\"html5buttons\"B>lTfgitp').withPaginationType('full_numbers').withOption('order', [0,'desc']).withOption('createdRow', createdRow);\r\n \r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle('Id').renderWith(function(data, type, full, meta){\r\n return ' ' + data.CustomerId + '';\r\n }),\r\n DTColumnBuilder.newColumn('CustomerName').withTitle('Name').renderWith(function(data){\r\n return ''+ data+'';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Description').notSortable(),\r\n DTColumnBuilder.newColumn('LocationsCount').withTitle('Location').notSortable()\r\n \r\n ];\r\n\r\n\r\n // vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n // '<\"html5buttons\"B>lTfgitp')\r\n // .withButtons([]).withPaginationType(\r\n // 'full_numbers').withOption('lengthChange', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n // .withOption('order', [1, 'asc']);\r\n\r\n // vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n // // DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(5).notSortable()];\r\n \r\n vm.PieChart5 = {\r\n data: [226, 134],\r\n options: {\r\n fill: [\"#1ab394\", \"#d7d7d7\"]\r\n }\r\n };\r\n \r\n\r\n }\r\n\r\n \r\n});\nangular.module('inspinia').service('CustomerDetailViewService', function (ApiURL,DashboardURL, $http) {\r\n\r\n //Get Customer Details By CustomerId With Job Count\r\n //http://192.168.0.80/CoreAPI/api/Customer/C0000000008/GetCustomerWithJobDetails?reqUserId=U370000000001\r\n\r\n this.GetCustomerIdJobDetails = function(loggedInUser,CustomerId,token){\r\n var url = ApiURL+'/api/Customer/'+ CustomerId+'/GetCustomerWithJobDetails?reqUserId='+ loggedInUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': loggedInUser}\r\n })\r\n }\r\n\r\n\r\n //Get Tickets By Customer ID\r\n //http://192.168.0.80/CoreAPI/api/Ticket/C0000000004/byCustomerId?reqUserId=U370000000001\r\n this.GetTicketsByCustomerId = function(loggedInUser,CustomerId,token){\r\n var url = ApiURL+'/api/Ticket/'+ CustomerId+'/byCustomerId?reqUserId='+ loggedInUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': loggedInUser}\r\n })\r\n }\r\n\r\n//https://test.mymobiforce.com/coreapi/api/Ticket/GetTicketsbyDateRange?fromDate=2018-05-25&toDate=2018-11-14&reqUserId=U360000000001&itemNames=CustomerId%2CTemplate&itemValues=C0000000012%2CVSAT%20Troubleshooting&templateCols=Call%20Type\r\n\r\n this.GetTicketsByFilters = function(loggedInUser,itemName,itemValues,sDate,eDate,tempCol,token){\r\n var url = ApiURL+'/api/Ticket/GetTicketsbyDateRange?fromDate='+ sDate+'&toDate='+ eDate+'&reqUserId='+loggedInUser+'&itemNames='+itemName+'&itemValues='+itemValues+'&templateCols='+tempCol;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': loggedInUser}\r\n })\r\n }\r\n this.GetProjectsByCustomerIds = function(loggedInUser,CustomerId,token){ debugger\r\n var url = ApiURL+'/api/Project/'+ loggedInUser+'/'+ CustomerId+'/GetProjectDetailsByCustomerId';\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json','Token':token,'UserId': loggedInUser}\r\n })\r\n }\r\n\r\n //Get Status Pie\r\n //https://test.mymobiforce.com/dashboardapi/api/Chart?ReqUserId=U360000000001&ChartType=Pie&Metrics=Total_Jobs&DimensionList=All_Job_Status&RollsUP=Range(%22%7C%22)&FilterKeys=CustomerId&FilterValues=C0000000016&IsData=true\r\n\r\n this.GetStatusInPie = function(token, userId, chartType, metrics,dimensionList,rollup,keys,values,IsData,success, failure){\r\n var url = DashboardURL + \"/api/Chart?ReqUserId==\"+userId+\"&ChartType=\"+chartType+\"&Metrics=\"+metrics+\"&DimensionList=\"+dimensionList+\"&RollsUP=\"+rollup+\"&FilterKeys=\"+keys+\"&FilterValues=\"+values+\"&IsData=\"+IsData;\r\n $http.get(url, {\r\n headers:{'Content-Type': 'application/json', 'Token': token,'UserId': userId}\r\n }).then(function(res){\r\n if(res && res.data){\r\n success(res.data);\r\n }\r\n }, function(error){\r\n failure(\"Failed\", \"Failed to get tat information for this ticket.\");\r\n });\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('CustomerDetailViewController', function ($scope,$timeout, $state,CustomerDetailViewService, $log, $stateParams, $localStorage, DTColumnDefBuilder, DTOptionsBuilder) {\r\n var vm = this;\r\n var customerId = $stateParams.customerId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.CustomerFullDetail = '';\r\n vm.CustomerTicketDetails = '';\r\n vm.PointOfContacts = '';\r\n vm.dtInstance1 = {};\r\n if (!loggedinUser || !customerId) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n vm.dtInstance = {};\r\n var creationDatefunc = $scope.$parent.$parent.main.AccountStartDate;\r\n vm.accountCreationDate = creationDatefunc();\r\n var startDate = vm.accountCreationDate;\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.pieCharts={};\r\n vm.error = {};\r\n vm.searchText = \"\";\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n\r\n vm.GetCustomerDetailswithJobCount = function(){\r\n CustomerDetailViewService.GetCustomerIdJobDetails(loggedinUser,customerId,token).then(function(resp){\r\n if (resp.status == 200 && resp.data) {\r\n vm.CustomerFullDetail = resp.data;\r\n vm.GetTicketsByFilters();\r\n $log.log('vm.CustomerFullDetail',vm.CustomerFullDetail);\r\n }\r\n })\r\n }\r\n vm.GetTicketsByCustomerId = function(){\r\n CustomerDetailViewService.GetTicketsByCustomerId(loggedinUser,customerId,token).then(function(resp){\r\n if (resp.status == 200 && resp.data) {\r\n vm.CustomerTicketDetails = resp.data;\r\n $log.log('vm.CustomerTicketDetails',vm.CustomerTicketDetails);\r\n }\r\n })\r\n }\r\n\r\n vm.GetTicketsByFilters = function(){\r\n // var itemNames = 'CustomerId,Template';\r\n var itemNames = 'CustomerId';\r\n var itemValues = '';\r\n var testvalue = '';\r\n var demo ='';\r\n var skillsArray = vm.CustomerFullDetail.SkillSet.split(',');\r\n var sArray = [];\r\n angular.forEach(skillsArray,function(d){\r\n if (d) {\r\n sArray.push(d);\r\n }\r\n })\r\n if (sArray.length>1) {\r\n\r\n angular.forEach(sArray,function(da){\r\n testvalue += da+',';\r\n })\r\n demo = testvalue.toString();\r\n //itemValues = customerId +','+ testvalue;\r\n itemValues = customerId;\r\n var tempCol = 'Call Type';\r\n CustomerDetailViewService.GetTicketsByFilters(loggedinUser,itemNames,itemValues,startDate,endDate,tempCol,token).then(function(resp){\r\n if (resp.status == 200 && resp.data) {\r\n vm.CustomerTicketDetails = resp.data;\r\n //$log.log('vm.CustomerTicketDetails',vm.CustomerTicketDetails);\r\n }\r\n })\r\n \r\n }else{\r\n if (sArray[0].indexOf('VSAT')>=0) {\r\n itemValues = customerId+',VSAT Troubleshooting';\r\n }else{\r\n itemValues = customerId+',LeaseLine Troubleshooting';\r\n }\r\n var tempCol = 'Call Type';\r\n CustomerDetailViewService.GetTicketsByFilters(loggedinUser,itemNames,itemValues,startDate,endDate,tempCol,token).then(function(resp){\r\n if (resp.status == 200 && resp.data) {\r\n vm.CustomerTicketDetails = resp.data;\r\n //$log.log('vm.CustomerTicketDetails',vm.CustomerTicketDetails);\r\n }\r\n })\r\n \r\n \r\n }\r\n \r\n }\r\n\r\n vm.GetPointOfContactInfo = function(locationId){\r\n if (vm.CustomerFullDetail && vm.CustomerFullDetail.CustomerLocationModels) {\r\n for (var i = 0; i < vm.CustomerFullDetail.CustomerLocationModels.length; i++) {\r\n var model = vm.CustomerFullDetail.CustomerLocationModels[i]\r\n if (model.CustomerLocationId == locationId) {\r\n vm.PointOfContacts = model.CustomerLocationContactModels;\r\n vm.pocview = true;\r\n break;\r\n }\r\n }\r\n\r\n \r\n }\r\n }\r\n\r\n vm.GetCustomerDetailswithJobCount();\r\n //vm.GetTicketsByCustomerId();\r\n //vm.GetTicketsByFilters();\r\n\r\n vm.GetStatusInPie = function(chart){\r\n //https://test.mymobiforce.com/dashboardapi/api/Chart?ReqUserId=U360000000001&ChartType=Pie&Metrics=Total_Jobs&DimensionList=All_Job_Status&RollsUP=Range(%22%7C%22)&FilterKeys=CustomerId&FilterValues=C0000000016&IsData=true\r\n if (chart == 'Status') {\r\n var chartType = 'Pie';\r\n var metrics = 'helpdesk_total_jobs';\r\n var dimensionList = 'All_Job_Status';\r\n }else if(chart=='SLA'){\r\n var chartType = 'Metrics';\r\n var metrics = 'SLA_Met,SLA_Violated';\r\n var dimensionList = '';\r\n }\r\n \r\n var rollup ='';\r\n var filterKeys = 'CustomerId';\r\n var filterValues = customerId;\r\n var isData = false;\r\n CustomerDetailViewService.GetStatusInPie(token, loggedinUser, chartType,metrics,dimensionList,rollup,filterKeys,filterValues,isData, function(data){\r\n if (chart == 'Status') {\r\n vm.pieCharts['Status'] = {};\r\n vm.pieCharts['Status'].value = data;\r\n }else{\r\n vm.pieCharts['SLA'] = {};\r\n var SlaData = [];\r\n \r\n angular.forEach(data, function(d){\r\n if (d) {\r\n var metrcsdata ={};\r\n metrcsdata.y = d.Value;\r\n metrcsdata.name = d.DisplayName;\r\n\r\n }\r\n SlaData.push(metrcsdata);\r\n })\r\n console.log('SLADATA',SlaData);\r\n vm.pieCharts['SLA'].value = SlaData;\r\n }\r\n \r\n \r\n // $log.log('vm.pieCharts[]',data);\r\n $timeout(function(){\r\n vm.createDoughnutChart(chart,'Status chart(in hrs)');\r\n },1000)\r\n \r\n \r\n }, vm.showFailure);\r\n }\r\nvm.GetStatusInPie('Status');\r\nvm.GetStatusInPie('SLA');\r\n\r\n\r\n\r\n //Create Doughnut Chart\r\n vm.createDoughnutChart = function (chartId, title) {\r\n vm.showPieChart = vm.showPieChart || {};\r\n vm.tempShowPieChart = vm.tempShowPieChart || {};\r\n vm.showPieChart[chartId] = true;\r\n $timeout(function () {\r\n vm.tempShowPieChart[chartId] = false;\r\n if (vm.pieCharts[chartId] && vm.pieCharts[chartId].value) {\r\n\r\n for(var i=0; i0){\r\n vm.tempShowPieChart[chartId]=true;\r\n }\r\n }\r\n vm.showPieChart[chartId]=vm.tempShowPieChart[chartId];\r\n var chartData = {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie'\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n title: {\r\n text: ''\r\n },\r\n legend: {\r\n align: 'right',\r\n verticalAlign: 'top',\r\n layout: 'vertical',\r\n x: 20,\r\n y: 40\r\n },\r\n tooltip: {\r\n headerFormat: ' {series.name} : {point.name}
',\r\n pointFormat: ' {point.name}: {point.y:,.0f}
',\r\n footerFormat: ' Percentage : {point.percentage:,.1f}% ', shared: true, useHTML: true\r\n //pointFormat: '{series.name}: {point.y:.1f}%'\r\n },\r\n plotOptions: {\r\n pie: {\r\n innerSize:60,\r\n depth:100,\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n dataLabels: {\r\n enabled: false\r\n },\r\n showInLegend: true\r\n }\r\n },\r\n series: [{\r\n name: title,\r\n colorByPoint: true,\r\n data: vm.pieCharts[chartId].value\r\n }]\r\n };\r\n if(chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]){\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true; \r\n }\r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 1000);\r\n }\r\n \r\n vm.searchTable = function () {\r\n // vm.dtInstance1.DataTable.search(vm.searchText);\r\n vm.dtInstance1.DataTable.search(vm.searchText).draw();\r\n };\r\n // format = function(ticket){\r\n // return ''+\r\n // ''+\r\n // ''+\r\n // ''+\r\n // ''+\r\n // '
Location:'+ticket.Address1+\", \"+ticket.Address2+\", \"+ticket.City+\", \"+ticket.Circle+\", Pincode: \"+ticket.Pincode+'
';\r\n // }\r\n // vm.showLocation = function(dtInstance, $event, ticket){\r\n // var tr = angular.element($event.currentTarget).closest(\"tr\");\r\n // var row = dtInstance.DataTable.row( tr );\r\n // if ( row.child.isShown() ) {\r\n // // This row is already open - close it\r\n // row.child.hide();\r\n // tr.removeClass('shown');\r\n // } else {\r\n // // Open this row\r\n // row.child( format(ticket) ).show();\r\n // tr.addClass('shown');\r\n // }\r\n // }\r\n vm.dtOptions1 = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withButtons([{extend:'csv'}])\r\n .withPaginationType('full_numbers')\r\n .withOption('lengthChange', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs1 = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(6).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(7).notSortable(),\r\n // DTColumnDefBuilder.newColumnDef(8).notSortable()\r\n \r\n ];\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withButtons([{extend:'csv'}])\r\n .withPaginationType('full_numbers')\r\n .withOption('lengthChange', false)\r\n // .withOption('initComplete', function () {\r\n // $('.dataTables_filter input').unbind();\r\n // })\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(5).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(6).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(7).notSortable()\r\n // DTColumnDefBuilder.newColumnDef(8).notSortable()\r\n \r\n ];\r\n \r\n }\r\n});\r\n\nangular.module('inspinia').service('CustomerDetailListService', function (ApiURL,MMFCRMURL, SchedulingAPI, $window, $http,AcessoriesURL) {\r\n\r\n this.GetAllConsumerDetails = function (loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/GetAllConsumerDetails';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('CustomerDetailListController', function (teamCardService,CustomerDetailListService, ReferService,$timeout, MainService, $rootScope, DTColumnBuilder, $compile, $q, ProjectCreationService, $scope, TeamProfileService, $stateParams, $uibModal, $localStorage, $log, $state, DTOptionsBuilder, PlanningResourseMapService, DashboardService, DTColumnDefBuilder, ImageUrl) {\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n $rootScope.rootScopeMessage = '';\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.client = 1;\r\n vm.tab = 1;\r\n var userIndex = 0;\r\n vm.searchText = \"\";\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.dtInstance = {};\r\n vm.exportData = function () {\r\n var blob = new Blob([document.getElementById('tab-1').innerHTML], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob, \"Report.xls\");\r\n };\r\n\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n \r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n CustomerDetailListService.GetAllConsumerDetails(loggedinUser, token).then(function (resp) {\r\n vm.teamLists = resp.data;\r\n if (!vm.teamLists.length) {\r\n vm.client = 1;\r\n } else {\r\n vm.client = 3;\r\n vm.userInfo = vm.teamLists[userIndex];\r\n }\r\n\r\n defer.resolve(vm.teamLists);\r\n })\r\n return defer.promise;\r\n\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback);\r\n\r\n function createdRow(row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n function rowCallback(nRow, aData, iDisplayIndex, iDisplayIndexFull) {\r\n $('td', nRow).unbind('click');\r\n $('td', nRow).bind('click', function () {\r\n // $scope.$apply(function () {\r\n // vm.ProfileData(aData.UserId);\r\n // });\r\n });\r\n return nRow;\r\n }\r\n \r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle('Consumer ID').renderWith(function (data) {\r\n return '';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Account Name').notSortable().renderWith(function (data) {\r\n return data.ConsumerFirstName + ' ' + data.ConsumerLastName;\r\n }),\r\n DTColumnBuilder.newColumn('ConsumerContact').withTitle('Contact Number\t').notSortable(),\r\n DTColumnBuilder.newColumn('ConsumerAlternateContact').withTitle('Alternate Consumer No.').notSortable(),\r\n DTColumnBuilder.newColumn('PersonalEmail').withTitle('Email').notSortable(),\r\n DTColumnBuilder.newColumn('ConsumerAccountType').withTitle('Account Type\t').notSortable(),\r\n DTColumnBuilder.newColumn('ConsumerType').withTitle('Consumer Type').notSortable(),\r\n DTColumnBuilder.newColumn(null).withTitle('Address').notSortable().renderWith(function (data) {\r\n return data.Addresses[0].strAddress1 + ', ' + data.Addresses[0].strAddress2;\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('City').notSortable().renderWith(function (data) {\r\n return data.Addresses[0].strCity;\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('State').notSortable().renderWith(function (data) {\r\n return data.Addresses[0].strState;\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('PinCode').notSortable().renderWith(function (data) {\r\n return data.Addresses[0].strPostalCode;\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Address Type').notSortable().renderWith(function (data) {\r\n return data.Addresses[0].strAddressType;\r\n }),\r\n \r\n ]; \r\n vm.Open360ForConsumer = function(customerNo){\r\n $state.go('index.CustomerCRM360',{\r\n ContactNo : customerNo\r\n }, { reload: true });\r\n }\r\n\r\n }\r\n});\nangular.module('inspinia').service('CustomerCRMListService', function (MMFCRMURL,ApiURL, $http, $localStorage) {\r\n\r\n this.GetUserAllSalesOrderDetailforWeb = function (loggedinUser, token, orderStatus, SearchText, category, brandName, productGroup, orderBy, sortType, fPageIndex, fPageSize, startDate, endDate, dateField) {\r\n var url = MMFCRMURL + '/api/ZohoInventoryController/GetUserAllSalesOrderDetailforWeb?OrderStatus=' + orderStatus + '&startDate=' + startDate + '&EndDate=' + endDate + '&SearchText=' + SearchText + '&dateField=' + dateField + '&category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup + '&OrderBy=' + orderBy + '&SortType=' + sortType + '&PageSize=' + fPageSize + '&PageIndex=' + fPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllTicketsForContact = function (loggedinUser, token, contactNo) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/GetAllTicketsForContact?Contact=' + contactNo;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.getAllCity = function (userId, state,token) {\r\n var url = ApiURL + '/api/AddressMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':userId }\r\n });\r\n}\r\n\r\n this.GetAllAreaByStateCity = function (loggedinUser, token, state, city) {\r\n var url = ApiURL + '/api/AddressMaster/GetAllAreaByStateCity?State=' + state +'&City=' + city;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllPincodeBYAreaStateCity = function (loggedinUser, token,state, city, area) {\r\n var url = ApiURL + '/api/AddressMaster/GetAllPincodeBYAreaStateCity?State=' + state +'&City=' + city + '&Area=' + area;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CreateConsumer = function (data, loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/CreateConsumer';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetServiceableArea = function (data, loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/GetServiceableArea';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CreateCase = function (data, loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/CreateTicket';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetWarrantyDetailsForProduct = function (data, loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/GetWarrantyDetailsForProduct';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetConsumerDetails = function (loggedinUser, token, contactNo) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/GetConsumerDetails?ConsumerContact=' + contactNo;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetConsumerDetailsByTicket = function (loggedinUser, token, ticketId) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/GetConsumerDetailsByTicket?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllBrands = function (loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllBrands';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetBrandProductGroup = function (data, loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMBrandProductMaster/GetBrandProductGroup';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllProductsForBrand = function (data, loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllProductsForBrand';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetDefectTypeList = function (data, loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMBrandProductMaster/GetDefectTypeList';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllActiveProductModelMaster = function (ProductName, brand,loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllActiveProductModelMaster?productName=' + ProductName + '&brandName=' + brand;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n this.GetCallTypeList = function (data,loggedinUser, token) {\r\n var url = MMFCRMURL + '/api/CRMBrandProductMaster/GetCallTypeList';\r\n\t\treturn $http.put(url, data,{\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\r\n this.GetAddressFromPinCode = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetByPincode?pincode=' + data;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.GenerateConsumerInvoice = function (ticketId,loggedinUser, token) { \r\n var url = ApiURL + '/api/PDFReportMapper/GenerateConsumerInvoiceFromMobile?ticketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n this.downloadOnSiteReport = function ( loggedinUser, token,TicketId) { \r\n var url = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n }\r\n\r\n this.SendHappyCodeSMS = function (TicketId,accountId,loggedinUser, token) { \r\n var url = ApiURL + '/api/Ticket/SendHappyCodeSMS?TicketId=' + TicketId + '&accountId=' + accountId;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n }\r\n this.ReopenCancelCall = function (ticketId, loggedInUserId, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/ReopenCancelCall?TicketId=' + ticketId;\r\n return $http.put(url,null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('CustomerCRMListController', function (CustomerCRMListService, CustomerCRM360Service, CentralHDTicketsViewService, ReferService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.IsAppointmentOTPNeeded = $localStorage.accountConfig.IsAppointmentOTPNeeded;\r\n\t\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.IsConsumerFound = false;\r\n\t\tvm.consumerTitle = 'Mr.';\r\n\t\tvm.consumerFirstName = '';\r\n\t\tvm.consumerLastName = '';\r\n\t\tvm.consumerArea = '';\r\n\t\tvm.selectedOption = 'pincode'; \r\n\t\tif (!$localStorage.consumerContact) {\r\n\t\t\t// If not, initialize it to an empty string\r\n\t\t\t$localStorage.consumerContact = '';\r\n\t\t}\r\n\r\n\t\t// Assign the value of consumerContact to $localStorage.consumerContact whenever it changes\r\n\t\t$scope.$watch('consumerContact', function (newVal) {\r\n\t\t\t$localStorage.consumerContact = newVal;\r\n\t\t});\r\n\r\n\t\t// Retrieve the value of consumerContact from local storage\r\n\t\t$scope.consumerContact = $localStorage.consumerContact;\r\n\t\tvm.consumerAltContact = '';\r\n\t\tvm.PersonalEmail = '';\r\n\t\tvm.consumerType = '';\r\n\t\tvm.AddressType = 'Home';\r\n\t\tvm.warrantyStatus = '';\r\n\t\tvm.dateOfPurchase = '';\r\n\t\tvm.callType = '';\r\n\t\tvm.AppointmentTime = '08:00'\r\n\t\tvm.AppointmentDate = moment().format('YYYY-MM-DD');\r\n\t\tvm.consumerCity = '';\r\n\t\tvm.consumerPincode = '';\r\n\t\tvm.consumerState = '';\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\tvm.minDate = new Date();\r\n\t\tvm.datepickerOptions = {\r\n\t\t\tminDate: vm.minDate\r\n\t\t};\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.timeSlots = [\r\n\t\t\t{ value: '08:00', label: '08:00 AM to 10:00 AM' },\r\n\t\t\t{ value: '10:00', label: '10:00 AM to 12:00 PM' },\r\n\t\t\t{ value: '12:00', label: '12:00 PM to 02:00 PM' },\r\n\t\t\t{ value: '14:00', label: '02:00 PM to 04:00 PM' },\r\n\t\t\t{ value: '16:00', label: '04:00 PM to 06:00 PM' },\r\n\t\t\t{ value: '18:00', label: '06:00 PM to 08:00 PM' }\r\n\t\t];\r\n\r\n\t\tfunction getCurrentDateTime() {\r\n\t\t\treturn new Date();\r\n\t\t}\r\n\r\n\t\tvm.UploadCallBooking = function () {\r\n\t\t\t$state.go('index.bulkCallBooking', {\r\n\t\t\t reload: true\r\n\t\t\t});\r\n\t\t }\r\n\r\n\r\n\t\tfunction isTimeSlotValid(slot) {\r\n\t\t\tvar now = getCurrentDateTime();\r\n\t\t\tvar selectedDate = moment(vm.AppointmentDate).format('YYYY-MM-DD');\r\n\r\n\t\t\tif (selectedDate) {\r\n\t\t\t\tif (!(selectedDate instanceof Date)) {\r\n\t\t\t\t\tselectedDate = new Date(selectedDate);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar slotTime = slot.value.split(':');\r\n\t\t\t\tvar selectedDateTime = new Date(selectedDate);\r\n\t\t\t\tselectedDateTime.setHours(parseInt(slotTime[0]), parseInt(slotTime[1]), 0, 0);\r\n\r\n\t\t\t\treturn selectedDateTime >= now;\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tfunction updateAvailableTimeSlots() {\r\n\t\t\t$timeout(function () {\r\n\t\t\t\tvm.availableTimeSlots = vm.timeSlots.filter(isTimeSlotValid);\r\n\t\t\t\tselectDefaultTimeSlot();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction selectDefaultTimeSlot() {\r\n\t\t\tif (vm.availableTimeSlots.length > 0) {\r\n\t\t\t\tvm.AppointmentTime = vm.availableTimeSlots[0].value;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$scope.$watch('customercrmlistctrl.AppointmentDate', function (newValue, oldValue) {\r\n\t\t\tif (newValue !== oldValue) {\r\n\t\t\t\tupdateAvailableTimeSlots();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Initialize available time slots\r\n\t\tupdateAvailableTimeSlots();\r\n\r\n\t\tvm.isDateDisabled = function () {\r\n\t\t\treturn !vm.brandName ||\r\n\t\t\t\t!vm.productGroup ||\r\n\t\t\t\t!vm.product;\r\n\t\t};\r\n\r\n\t\tvm.getCurrentDate = function () {\r\n\t\t\tvar currentDate = new Date();\r\n\t\t\treturn currentDate;\r\n\t\t};\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\tvm.openPincodeSelectionModal = function () {\r\n\t\t\tvm.pincodeSelectionModalInstance = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'pincodeSelectionModal.html',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.closePincodeSelectionModal = function () {\r\n\t\t\tif (vm.pincodeSelectionModalInstance) {\r\n\t\t\t\tvm.pincodeSelectionModalInstance.close();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.ProceedToAddPincode = function(){\r\n\t\t\tvm.FindPincode_form.submitted = true;\r\n\t\t\tif (vm.FindPincode_form.$valid) {\r\n\t\t\t\tvm.closePincodeSelectionModal();\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\tvm.AssestsCreateTaskModel = function (asset) {\r\n\tvm.assetData = asset;\r\n\tvm.brandName = vm.assetData.Brand;\r\n\tvm.product = vm.assetData.AssetType;\r\n\tvm.productGroup = vm.assetData.ProductGroup;\r\n\tvm.modelName = vm.assetData.ProductModel;\r\n\tvm.dateOfPurchase = vm.assetData.AssetPurchaseDate ? new Date(vm.assetData.AssetPurchaseDate) : null;\r\n\tvm.warrantyStatus = vm.assetData.AssetWarranty;\r\n\tvm.modelNumber = vm.assetData.ModelNumber;\r\n\tvm.serialNumber = vm.assetData.SerialNumber\r\n\t// vm.callType = 'Repair';\r\n\tvm.dealername = vm.assetData.strDealerName\r\n\tvm.dealercontact = vm.assetData.strDealerContact\r\n\tvm.GetAllActiveProductModelMaster();\r\n\t// vm.GetCallTypeList();\r\n\tvm.GetWarrantyDetailsForProduct();\r\n\tvm.AssestGetCallTypeList();\r\n\tsetTimeout(function () {\r\n\t\tvm.GetDefectTypeList();\r\n\t}, 2000);\r\n\t\t vm.assestscreatetaskModelOpen = $uibModal.open({\r\n\t\t\t templateUrl: 'AssestsCreateTaskModel.html',\r\n\t\t\t size: 'lg',\r\n\t\t\t backdrop: 'static',\r\n\t\t\t scope: $scope,\r\n\t\t });\r\n\t }\r\n\t vm.AssestsCloseCreateTaskModel = function () {\r\n\t\t vm.assestscreatetaskModelOpen.close();\r\n\t\t// vm.brandName = '';\r\n\t\t vm.productGroup = '';\r\n\t\t vm.product = '';\r\n\t\t vm.productdefect = '';\r\n\t\t vm.caseDescription = '';\r\n\t\t vm.modelNumber = '';\r\n\t\t vm.warrantyStatus = '';\r\n\t\t vm.dateOfPurchase = '';\r\n\t\t vm.callType = 'Repair';\r\n\t\t vm.AppointmentDateTime = '';\r\n\t\t vm.WarrantyData = \"\";\r\n\t\t vm.AppointmentDate = moment().format('YYYY-MM-DD');\r\n\t\t updateAvailableTimeSlots();\r\n\t\t vm.DisableCreateButton(false);\r\n\t }\r\n\r\n\t vm.OpenReOpenCallModel = function (ticketid) {\r\n\t\tvm.TicketId = ticketid\r\n\t\t\t Reopencallopen = $uibModal.open({\r\n\t\t\t\t templateUrl: 'ReopenCancelCall.html',\r\n\t\t\t\t backdrop: 'static',\r\n\t\t\t\t scope: $scope,\r\n\t\t\t });\r\n\t\t }\r\n \r\n\t\t vm.closeReOpenCallModel = function () {\r\n\t\t\t vm.disableCreateButton = false;\r\n\t\t\t Reopencallopen.close();\r\n\t\t\t \r\n\t\t }\r\n \r\n\t vm.ReopenCancelCall = function () {\r\n\t\tvm.validationForm.submitted = true;\r\n\t\t vm.disableCreateButton = true;\r\n\t\t CustomerCRMListService.ReopenCancelCall(vm.TicketId,loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t vm.showSuccess(\"Success\", \"Call has Reopened Successfully\");\r\n\t\t\t vm.closeReOpenCallModel();\r\n\t\t\t $timeout(function () {\r\n\t\t\t\tvm.GetAllTicketsForContact();\r\n\t\t\t\tvm.GetConsumerAssets(); \r\n\t\t\t }, 2000)\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t vm.disableCreateButton = false;\r\n\t\t\t vm.showFailure(\"Failed\", resp.data)\r\n\t\t\t}\r\n\t\t });\r\n\t \r\n\t }\r\n\t \r\n\t vm.handleKeyPress = function(event) {\r\n\t\tif ((event.which == 13 || event.which == 9) && $scope.consumerContact.length === 10) {\r\n\t\t\tvm.GetConsumerDetails();\r\n\t\t\tvm.GetAllTicketsForContact(); \r\n\t\t\tvm.GetConsumerAssets();\r\n\r\n\t\t}\r\n\t };\r\n\t \r\n\t\tvm.CreateTaskModel = function () {\r\n\t\t\tvm.createtaskModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'CreateTaskModel.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.CloseCreateTaskModel = function () {\r\n\t\t\tvm.createtaskModelOpen.close();\r\n\t\t\t// vm.brandName = '';\r\n\t\t\tvm.productGroup = '';\r\n\t\t\tvm.product = '';\r\n\t\t\tvm.ProductList = [];\r\n\t\t\tvm.AllActiveProductModelNoList = [];\r\n\t\t\tvm.AllCallTypes = [];\r\n\t\t\tvm.DefectList = [];\r\n\t\t\tvm.productdefect = '';\r\n\t\t\tvm.caseDescription = '';\r\n\t\t\tvm.modelNumber = '';\r\n\t\t\tvm.warrantyStatus = '';\r\n\t\t\tvm.dateOfPurchase = '';\r\n\t\t\t// vm.callType = '';\r\n\t\t\tvm.AppointmentDateTime = '';\r\n\t\t\tvm.WarrantyData = \"\";\r\n\t\t\tvm.dealername = \"\";\r\n\t\t\tvm.dealercontact = \"\";\r\n\t\t\tvm.AppointmentDate = moment().format('YYYY-MM-DD');\r\n\t\t\tupdateAvailableTimeSlots();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t}\r\n\r\n\t\tvm.CloseCreateTaskModelServisable = function () {\r\n\t\t\tvm.createtaskModelOpen.close();\r\n\t\t}\r\n\r\n\r\n\t\t$scope.totalFinList = 0;\r\n\t\t$scope.usersPerPage = vm.allSalesOrderPageListCount;\r\n\t\t$scope.SalesOrderPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllSalesOrderPageListCount = function () {\r\n\t\t\t$scope.usersPerPage = vm.allSalesOrderPageListCount;\r\n\t\t\tfPageSize = $scope.usersPerPage;\r\n\t\t\t$scope.AllSalesOrderTablePageChanged($scope.SalesOrderPagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tfPageIndex = $scope.SalesOrderPagination.current;\r\n\t\t\t$scope.AllSalesOrderTablePageChanged = function (newPage) {\r\n\t\t\t\tfPageIndex = newPage;\r\n\t\t\t\tvm.GetUserAllSalesOrderDetailforWeb(loggedinUser, token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, fPageIndex, fPageSize, startDate, endDate, vm.dateField);\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfPageIndex = $scope.SalesOrderPagination.current;\r\n\t\t$scope.AllSalesOrderTablePageChanged = function (newPage) {\r\n\t\t\tfPageIndex = newPage;\r\n\t\t\tvm.GetUserAllSalesOrderDetailforWeb(loggedinUser, token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, fPageIndex, fPageSize, startDate, endDate, vm.dateField);\r\n\r\n\t\t};\r\n\r\n\r\n\t\tvm.TicketPartOrderList = [];\r\n\t\tvm.GetUserAllSalesOrderDetailforWeb = function () {\r\n\t\t\tCustomerCRMListService.GetUserAllSalesOrderDetailforWeb(loggedinUser, token, vm.OrderStatus, vm.SearchText, vm.partName, vm.brandName, vm.productGroup, vm.orderBy, vm.sortType, fPageIndex, fPageSize, startDate, endDate, vm.dateField).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.TicketPartOrderList = resp.data.zohoItemRequestModels;\r\n\t\t\t\t\t$scope.totalFinList = resp.data.Count;\r\n\t\t\t\t\tif (vm.TicketPartOrderList.length < vm.allSalesOrderPageListCount)\r\n\t\t\t\t\t\tvm.financeListLength = $scope.totalFinList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.financeListLength = fPageIndex * vm.allSalesOrderPageListCount;\r\n\t\t\t\t\tif (fPageIndex == 1)\r\n\t\t\t\t\t\tvm.fpageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.fpageindexCount = (((fPageIndex - 1) * vm.allSalesOrderPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, function (error) {\r\n\r\n\t\t\t})\r\n\t\t}\r\n\r\n\r\n\r\n\t\tvm.CreateConsumer = function () {\r\n\t\t\tvm.customercreate_form.submitted = true;\r\n\t\t\tif (vm.customercreate_form.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tdata = {\r\n\t\t\t\t\t\"strConsumerTitle\": vm.consumerTitle,\r\n\t\t\t\t\t\"strConsumerFirstName\": vm.consumerFirstName,\r\n\t\t\t\t\t\"strConsumerLastName\": vm.consumerLastName,\r\n\t\t\t\t\t\"strConsumerContact\": $scope.consumerContact,\r\n\t\t\t\t\t\"strConsumerAlternateContact\": vm.consumerAltContact,\r\n\t\t\t\t\t\"strPersonalEmail\": vm.PersonalEmail,\r\n\t\t\t\t\t\"strConsumerArea\": \"string\",\r\n\t\t\t\t\t\"strConsumerLandMark\": \"string\",\r\n\t\t\t\t\t\"strConsumerType\": vm.consumerType,\r\n\t\t\t\t\t\"udListAddresses\": [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\"strAddressType\": vm.AddressType,\r\n\t\t\t\t\t\t\t\"strAddress1\": vm.AddressLine1,\r\n\t\t\t\t\t\t\t\"strAddress2\": vm.AddressLine2,\r\n\t\t\t\t\t\t\t\"strCity\": vm.consumerCity,\r\n\t\t\t\t\t\t\t\"strDistrict\": \"string\",\r\n\t\t\t\t\t\t\t\"strPostalCode\": vm.consumerPincode,\r\n\t\t\t\t\t\t\t\"strState\": vm.consumerState,\r\n\t\t\t\t\t\t\t\"strCountry\": \"India\",\r\n\t\t\t\t\t\t\t\"bIsDefaultAddress\": true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t\tCustomerCRMListService.CreateConsumer(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200 && resp.data) {\r\n\t\t\t\t\t\tvm.consumerData = resp.data;\r\n\t\t\t\t\t\tvm.consumerAddress = resp.data.Addresses[0];\r\n\t\t\t\t\t\tvm.IsConsumerFound = true;\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", 'Consumer created successfully.');\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.clearCustomerData();\r\n\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.clearCustomerData = function () {\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.consumerTitle = 'Mr.';\r\n\t\t\tvm.consumerFirstName = '';\r\n\t\t\tvm.consumerLastName = '';\r\n\t\t\t// $localStorage.consumerContact = '';\r\n\t\t\t// $scope.consumerContact = '';\r\n\t\t\tvm.consumerAltContact = '';\r\n\t\t\tvm.PersonalEmail = '';\r\n\t\t\tvm.consumerType = '';\r\n\t\t\tvm.AddressType = 'Home';\r\n\t\t\tvm.consumerCity = '';\r\n\t\t\tvm.consumerPincode = '';\r\n\t\t\tvm.consumerState = '';\r\n\t\t\tvm.AddressLine1 = '';\r\n\t\t\tvm.AddressLine2 = '';\r\n\t\t\tvm.AppointmentTime = '08:00'\r\n\t\t\tvm.AppointmentDate = moment().format('YYYY-MM-DD');\r\n\t\t}\r\n\t\tvm.ConfirmationModal = function (message) {\r\n\t\t\t$scope.confirmationMessage = message;\r\n\t\t\tvm.confirmationModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ConfirmationcasecreationModel.html',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.CloseConfirmationModel = function () {\r\n\t\t\tvm.confirmationModelOpen.close();\r\n\t\t}\r\n\r\n\t\tvm.openNonServiceableAreaConfirmationModal = function () {\r\n\t\t\tvm.confirmationModalInstance = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ConfirmationNonServCaseModal.html',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tvm.CloseAreaConfirmationModal = function () {\r\n\t\t\tif(vm.confirmationModalInstance){\r\n\t\t\t\tvm.confirmationModalInstance.close();\r\n\t\t\t}\r\n\t\t\tvm.brandName = '';\r\n\t\t\tvm.productGroup = '';\r\n\t\t\tvm.product = '';\r\n\t\t\tvm.productdefect = '';\r\n\t\t\tvm.caseDescription = '';\r\n\t\t\tvm.modelNumber = '';\r\n\t\t\tvm.modelName = '';\r\n\t\t\tvm.model = '';\r\n\t\t\tvm.warrantyStatus = '';\r\n\t\t\tvm.dateOfPurchase = '';\r\n\t\t\tvm.callType = '';\r\n\t\t\tvm.AppointmentDateTime = '';\r\n\t\t\tvm.WarrantyData = \"\";\r\n\t\t\tvm.dealername = \"\";\r\n\t\t\tvm.dealercontact = \"\";\r\n\t\t\tvm.AppointmentDate = moment().format('YYYY-MM-DD');\r\n\t\t\tupdateAvailableTimeSlots();\r\n\t\t}\r\n\r\n\t\tvm.serialNumber = '';\r\n\t\tvm.CreateCase = function () {\r\n\t\t\tif(vm.IsAppointmentOTPNeeded){\r\n\t\t\t\tvm.AppointmentDateTime = '';\r\n\t\t\t}\r\n\t\t\tif(!vm.productdefect){\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Nature of problem cannot be empty.\")\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.AppointmentDateTime = moment(vm.AppointmentDate).format('YYYY-MM-DD') + ' ' + vm.AppointmentTime;\r\n\t\t\t}\r\n\t\t\tif(vm.model){\r\n\t\t\t\tvm.modelName = vm.model.strModelName;\r\n\t\t\t\tvm.modelNumber = vm.model.strModelNumber;\r\n\t\t\t}\r\n\t\t\tvm.DisableCreateButton(true);\r\n\t\t\tdata = {\r\n\t\t\t\t\"BrandName\": vm.brandName,\r\n\t\t\t\t\"ProductGroup\": vm.productGroup,\r\n\t\t\t\t\"ProductName\": vm.modelName,\r\n\t\t\t\t\"ModelNumber\": vm.modelNumber,\r\n\t\t\t\t\"AppointmentDateTime\": vm.AppointmentDateTime,\r\n\t\t\t\t\"DefectType\": vm.productdefect + ' - ' + vm.caseDescription,\r\n\t\t\t\t\"MMFSkillMapped\": vm.DefectList.strMMFSkillMapped,\r\n\t\t\t\t\"ConusmerContact\": vm.consumerData.ConsumerContact,\r\n\t\t\t\t\"CallType\": vm.callType,\r\n\t\t\t\t\"DateOfPurchase\": moment(vm.dateOfPurchase).format('YYYY-MM-DD'),\r\n\t\t\t\t\"WarrantyStatus\": vm.warrantyStatus,\r\n\t\t\t\t\"ConsumerId\": vm.consumerData.RecordId,\r\n\t\t\t\t\"strDealerName\" : vm.dealername,\r\n\t\t\t\t\"strDealerContact\" : vm.dealercontact,\r\n\t\t\t\t\"AssetSerialNumber\" : vm.serialNumber\r\n\t\t\t}\r\n\t\t\tCustomerCRMListService.CreateCase(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tif (resp.data.ErrorCode === 822 || resp.data.ErrorCode === 821) {\r\n\t\t\t\t\t\tvar errorMessage = resp.data.Message;\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", errorMessage);\r\n\t\t\t\t\t\tvm.CloseAreaConfirmationModal();\r\n\t\t\t\t\t\tvm.AssestsCloseCreateTaskModel();\r\n\t\t\t\t\t\t// vm.DisableCreateButton(false);\r\n\t\t\t\t\t\treturn; \r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.consumerAllTicketsData = resp.data;\r\n\t\t\t\t\tvar successMessage = \"Case successfully created with Case ID \" + resp.data[0].TicketId;\r\n\t\t\t\t\tvm.showSuccess(\"Success\", successMessage);\r\n\t\t\t\t\tvm.CloseAreaConfirmationModal();\r\n\t\t\t\t\tvm.ConfirmationModal(successMessage);\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.AssestsCloseCreateTaskModel();\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// vm.AssestsCreateCase = function () {\r\n\t\t// \tvm.dialertask_form.submitted = true;\r\n\t\t// \tif (vm.dialertask_form.$valid) {\r\n\t\t// \t vm.DisableCreateButton(true);\r\n\t\t// \t if(vm.IsAppointmentOTPNeeded){\r\n\t\t// \t\tvm.AppointmentDateTime = '';\r\n\t\t// \t}\r\n\t\t// \telse {\r\n\t\t// \t\tvm.AppointmentDateTime = moment(vm.AppointmentDate).format('YYYY-MM-DD') + ' ' + vm.AppointmentTime;\r\n\t\t// \t}\r\n\t\t// \t data = {\r\n\t\t// \t\t\"BrandName\": vm.brandName,\r\n\t\t// \t\t\"ProductGroup\": vm.productGroup,\r\n\t\t// \t\t\"ProductName\": vm.product,\r\n\t\t// \t\t\"ModelNumber\": vm.modelNumber,\r\n\t\t// \t\t\"AppointmentDateTime\" : vm.AppointmentDateTime,\r\n\t\t// \t\t\"DefectType\": vm.productdefect + ' - ' + vm.caseDescription,\r\n\t\t// \t\t\"MMFSkillMapped\": vm.DefectList.strMMFSkillMapped,\r\n\t\t// \t\t\"ConusmerContact\": vm.consumerContact,\r\n\t\t// \t\t\"CallType\": vm.callType,\r\n\t\t// \t\t\"DateOfPurchase\": moment(vm.dateOfPurchase).format('YYYY-MM-DD'),\r\n\t\t// \t\t\"WarrantyStatus\": vm.warrantyStatus\r\n\t\t// \t\t}\r\n\t\t// \t CustomerCRMListService.CreateCase(data, loggedinUser, token).then(function (resp) {\r\n\t\t// \t\tif (resp.status == 200) {\r\n\t\t// \t\t vm.showSuccess(\"Success\", 'Case created successfully.');\r\n\t\t// \t\t setTimeout(function () {\r\n\t\t// \t\t\tvm.AssestsCloseCreateTaskModel();\r\n\t\t// \t\t\tvm.GetAllTicketsForContact();\r\n\t\t// \t\t }, 1000);\r\n\t\t// \t\t}\r\n\t\t// \t\telse {\r\n\t\t// \t\t vm.DisableCreateButton(false);\r\n\t\t// \t\t vm.showFailure('Failed', resp.data.Message);\r\n\t\t// \t\t}\r\n\t\t\r\n\t\t// \t });\r\n\t\t// \t}\r\n\t\t// }\r\n\t\t\r\n\t\tvm.GenerateConsumerInvoice = function (TicketId) {\r\n\t\t\tCustomerCRMListService.GenerateConsumerInvoice(TicketId,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Customer Invoice Generated\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.pdfimage = \"\";\r\n\t\tvm.DocumentAvailableMessage = \"\";\r\n\t\tvm.downloadOnSiteReport = function (ticketId) {\r\n\t\t\tvm.PDFViewRport();\r\n\t\t\tCustomerCRMListService.downloadOnSiteReport(loggedinUser, token, ticketId).then(function (resp) {\r\n\t\t\t\tvm.responseDataList = resp.data;\r\n\t\t\t\tvar arrrayBuffer = base64ToArrayBuffer(vm.responseDataList);\r\n\t\t\t\tvar blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n\t\t\t\tvm.pdfimage = URL.createObjectURL(blob);\r\n\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.PDFViewRport = function (page) {\r\n\t\t\tvm.pdfimage = \"\";\r\n\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\t$scope.selected = null;\r\n\t\t\tjobAppointmentModalReport = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'PDFViewDownload.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t\tvm.PDFUserModalReport = function () {\r\n\t\t\tjobAppointmentModalReport.close();\r\n\t\t}\r\n\r\n\t\tfunction base64ToArrayBuffer(base64) {\r\n\t\t\tvar ret = base64.replace('data:application/pdf;base64,', '');\r\n\t\t\tvar binaryString = atob(ret);\r\n\t\t\tvar binaryLen = binaryString.length;\r\n\t\t\tvar bytes = new Uint8Array(binaryLen);\r\n\t\t\tfor (var i = 0; i < binaryLen; i++) {\r\n\t\t\t\tvar ascii = binaryString.charCodeAt(i);\r\n\t\t\t\tbytes[i] = ascii;\r\n\t\t\t}\r\n\t\t\treturn bytes;\r\n\t\t}\r\n\r\n\r\n\t\tvm.GetServiceableArea = function () {\r\n\t\t\trequestData = {\r\n\t\t\t\t\"RecordId\": vm.consumerData.RecordId,\r\n\t\t\t\t\"Skill\": vm.DefectList.strMMFSkillMapped\r\n\t\t\t}\r\n\t\t\tCustomerCRMListService.GetServiceableArea(requestData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.ServiceStatus = resp.data;\r\n\t\t\t\t\tvm.ServiceStatus = resp.data.ServiceStatus;\r\n\t\t\t\t\tvm.ServiceStatusMessage = resp.data.Message;\r\n\t\t\t\t\tif(vm.ServiceStatus == 'NonServiceableArea'){\r\n\t\t\t\t\t\tvm.openNonServiceableAreaConfirmationModal();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tvm.CreateCase();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.CreateCase();\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t\tvm.CreateCase();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CheckServiceableArea = function () {\r\n\t\t\tvm.dialertask_form.submitted = true;\r\n\t\t\tif (vm.dialertask_form.$valid) {\r\n\t\t\t\tvm.CloseCreateTaskModelServisable();\r\n\t\t\t\tvm.GetServiceableArea();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.GetWarrantyDetailsForProduct = function () {\r\n\t\t\tvm.WarrantyData = \"\";\r\n\t\t\tvar data = {\r\n\t\t\t\t\"strBrandName\": vm.brandName,\r\n\t\t\t\t\"strProductGroup\": vm.productGroup,\r\n\t\t\t\t\"strProductName\": vm.product,\r\n\t\t\t\t\"dateOfPurchase\": moment(vm.dateOfPurchase).format('YYYY-MM-DD'),\r\n\t\t\t}\r\n\t\t\tCustomerCRMListService.GetWarrantyDetailsForProduct(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.WarrantyData = resp.data\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.WarrantyData.listWarrantyStatus && vm.WarrantyData.listWarrantyStatus.length > 0) {\r\n\t\t\t\t\tvm.warrantyStatus = vm.WarrantyData.listWarrantyStatus[0]; // Selecting the first option\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.ResetFilter = function () {\r\n\t\t\t$localStorage.consumerContact = '';\r\n\t\t\t$scope.consumerContact = '';\r\n\t\t\tvm.callID = '';\r\n\t\t\tvm.IsConsumerFound = false;\r\n\t\t\tvm.ErrorMessage = '';\r\n\t\t}\r\n\t\tfunction getAllStates() {\r\n\t\t\tvar defered = $q.defer();\r\n\t\t\tReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tdefered.resolve(resp);\r\n\t\t\t}, function (error) {\r\n\t\t\t\tdefered.reject(error);\r\n\t\t\t});\r\n\t\t\treturn defered.promise;\r\n\t\t}\r\n\r\n\t\tvar allStatePromise = getAllStates(loggedinUser);\r\n\t\tallStatePromise.then(function (resp) {\r\n\t\t\tvm.StateList = resp.data;\r\n\r\n\t\t});\r\n\t\tfunction getallCities(state) {\r\n\t\t\tvm.CityList = [];\r\n\t\t\tReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t\t\tvm.CityList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\r\n\t\tvm.selectedState = function (state) {\r\n\t\t\tif(vm.selectedOption == 'pincode'){\r\n\t\t\t\tgetallCities(state);\r\n\t\t\t}\r\n\t\t\tif(vm.selectedOption == 'area'){\r\n\t\t\t\tgetareaallCities(state);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.onOptionChange = function (option) {\r\n\t\t\tvm.consumerPincode = '';\r\n\t\t\tvm.consumerCity = '';\r\n\t\t\tvm.consumerArea = '';\r\n\t\t\tvm.AreaList = [];\r\n\t\t\tvm.selectedState(vm.consumerState)\r\n\t\t };\r\n\r\n\t\tfunction getareaallCities(state) {\r\n\t\t\tvm.AreaCityList = [];\r\n\t\t\tCustomerCRMListService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t\t\tvm.AreaCityList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction GetAllAreaByStateCity() {\r\n\t\t\tvm.AreaList = [];\r\n\t\t\tCustomerCRMListService.GetAllAreaByStateCity(loggedinUser, token, vm.consumerState,vm.consumerCity).then(function (resp) {\r\n\t\t\t\tif(resp.data && resp.status == 200){\r\n\t\t\t\t\tvm.AreaList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tvm.showFailure(\"Failed\",resp)\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.selectedcity = function () {\r\n\t\t\tGetAllAreaByStateCity();\r\n\t\t}\r\n\r\n\t\tfunction GetAllPincodeBYAreaStateCity() {\r\n\t\t\tvm.PincodeList = [];\r\n\t\t\tCustomerCRMListService.GetAllPincodeBYAreaStateCity(loggedinUser, token,vm.consumerState,vm.consumerCity, vm.consumerArea).then(function (resp) {\r\n\t\t\t\tvm.PincodeList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.selectedArea = function () {\r\n\t\t\tGetAllPincodeBYAreaStateCity();\r\n\t\t}\r\n\t\t\r\n\t\tvm.Open360ForConsumer = function (customerNo) {\r\n\t\t\t$state.go('index.CustomerCRM360', {\r\n\t\t\t\tContactNo: customerNo\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\r\n\r\n\r\n\t\tvm.GetConsumerDetails = function () {\r\n\t\t\tCustomerCRMListService.GetConsumerDetails(loggedinUser, token, $localStorage.consumerContact).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.consumerData = resp.data;\r\n\t\t\t\t\tvm.consumerAddress = resp.data.Addresses[0];\r\n\t\t\t\t\tvm.IsConsumerFound = true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.IsConsumerFound = false;\r\n\t\t\t\t\tvm.ErrorMessage = resp.data.Message;\r\n\t\t\t\t\tvm.showFailure(resp.data.Message)\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.callID = \"\";\r\n\t\tvm.GetConsumerDetailsByTicket = function () {\r\n\t\t\tCustomerCRMListService.GetConsumerDetailsByTicket(loggedinUser, token, vm.callID).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.consumerData = resp.data;\r\n\t\t\t\t\t$localStorage.consumerContact = resp.data.ConsumerContact;\r\n\t\t\t\t\t$scope.consumerContact = resp.data.ConsumerContact;\r\n\t\t\t\t\tvm.consumerAddress = resp.data.Addresses[0];\r\n\t\t\t\t\tvm.IsConsumerFound = true;\r\n\t\t\t\t\tvm.GetAllTicketsForContact();\r\n\t\t\t\t\tvm.GetConsumerAssets();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.IsConsumerFound = false;\r\n\t\t\t\t\tvm.ErrorMessage = resp.data.Message;\r\n\t\t\t\t\tvm.showFailure(resp.data.Message)\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.GetAllBrands = function () {\r\n\t\t\tCustomerCRMListService.GetAllBrands(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.BrandList = resp.data;\r\n\t\t\t\t\tif (vm.BrandList.length > 0) {\r\n\t\t\t\t\t\tvm.brandName = vm.BrandList[0]; \r\n\t\t\t\t\t\tvm.GetBrandProductGroup();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllBrands();\r\n\r\n\t\tvm.GetAddressFromPinCode = function (consumerPincode) {\r\n\t\t\tvm.findPincode = consumerPincode;\r\n\t\t\tCustomerCRMListService.GetAddressFromPinCode(vm.findPincode, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.AddressData = resp.data;\r\n\t\t\t\t\tvm.consumerState = resp.data.State.toUpperCase();\r\n\t\t\t\t\tvm.selectedState(vm.consumerState);\r\n\t\t\t\t\tvm.consumerCity = resp.data.City.toUpperCase();\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.GetBrandProductGroup = function () {\r\n\t\t\tvm.PartGroupList = [];\r\n\t\tvm.ProductList = [];\r\n\t\tvm.AllActiveProductModelNoList = [];\r\n\r\n\t\t\tvar data = {\r\n\t\t\t\t\"strBrandName\": vm.brandName\r\n\t\t\t}\r\n\t\t\tCustomerCRMListService.GetBrandProductGroup(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.PartGroupList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetAllProductsForBrand = function () {\r\n\t\t\tvm.AllCallTypes = [];\r\n\t\t\tvar data = {\r\n\t\t\t\t\"strBrandName\": vm.brandName,\r\n\t\t\t\t\"strProductGroup\": vm.productGroup\r\n\t\t\t}\r\n\t\t\tCustomerCRMListService.GetAllProductsForBrand(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.ProductList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.callType = \"\";\r\n\t\tvm.GetDefectTypeList = function () {\r\n\t\t\tif(!vm.callType){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"strBrandName\": vm.brandName,\r\n\t\t\t\t\"strProductGroup\": vm.productGroup,\r\n\t\t\t\t\"strProductName\": vm.product,\r\n\t\t\t\t\"strCallType\": vm.callType\r\n\t\t\t}\r\n\t\t\tCustomerCRMListService.GetDefectTypeList(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.DefectList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.SendHappyCodeSMS = function (ticketId) {\r\n\t\t\tCustomerCRMListService.SendHappyCodeSMS(ticketId,vm.AccountId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Happy code sent to customer successfully.\");\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.GetAllActiveProductModelMaster = function () {\r\n\t\t\tCustomerCRMListService.GetAllActiveProductModelMaster(vm.product,vm.brandName,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.AllActiveProductModelNoList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.AllCallTypes = [];\r\n\t\t\r\n\t\tvm.GetCallTypeList = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"strBrandName\": vm.brandName,\r\n\t\t\t\t\"strProductGroup\": vm.productGroup,\r\n\t\t\t\t\"strProductName\": vm.product,\r\n\t\t\t\t\"strCallType\": \"\"\r\n\t\t\t}\r\n\t\t\tCustomerCRMListService.GetCallTypeList(data,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.AllCallTypes = resp.data.strListCallType;\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.AssestsAllCallTypes = [];\r\n\t\t\r\n\t\tvm.AssestGetCallTypeList = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"strBrandName\": vm.brandName,\r\n\t\t\t\t\"strProductGroup\": vm.productGroup,\r\n\t\t\t\t\"strProductName\": vm.product,\r\n\t\t\t\t\"strCallType\": \"\"\r\n\t\t\t}\r\n\t\t\tCustomerCRMListService.GetCallTypeList(data,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.AssestsAllCallTypes = resp.data.strListCallType;\r\n\t\t\t\t\tif (vm.AssestsAllCallTypes && vm.AssestsAllCallTypes.length > 0) {\r\n\t\t\t\t\t\tvm.callType = vm.AssestsAllCallTypes[0]; // Set the first call type as selected\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetAllTicketsForContact = function () {\r\n\t\t\tCustomerCRMListService.GetAllTicketsForContact(loggedinUser, token, $localStorage.consumerContact).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.consumerAllTicketsData = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message)\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.GetConsumerAssets = function () {\r\n\t\t\tCustomerCRM360Service.GetConsumerAssets(loggedinUser, token, $localStorage.consumerContact).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.consumerAssetData = resp.data;\r\n\t\t\t\t\tvm.consumerAssetDataLength = resp.data.length;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tif ($localStorage.consumerContact) {\r\n\t\t\tvm.GetConsumerDetails();\r\n\t\t\tvm.GetAllTicketsForContact();\r\n\t\t\tvm.GetConsumerAssets();\r\n\t\t}\r\n\t\tvm.OpenFollowUpModel = function (ticketId) {\r\n\t\t\tvm.followup = '';\r\n\t\t\tvm.tickId = ticketId;\r\n\t\t\tFollowUpModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'FollowupJob.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\tsize: \"lg\",\r\n\t\t\t\tcontroller: ModalInstanceCtrlFollowUp,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseFollowUpModel = function () {\r\n\t\t\tvm.primaryFollowUpReason = '';\r\n\t\t\tvm.primaryFollowUpRemark = '';\r\n\t\t\tvm.primaryHoldReason = '';\r\n\t\t\tvm.primaryHoldRemark = '';\r\n\t\t\tvm.followFiles = null;\r\n\t\t\tFollowUpModel.close();\r\n\t\t}\r\n\r\n\t\t$scope.attachmentForFollowUp = function (files) {\r\n\t\t\tvar file = files.files[0];\r\n\t\t\tvm.followFiles = files.files;\r\n\t\t\tvar allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.msg|\\.pdf|\\.bmp|\\.xps)$/i;\r\n\t\t\tif (!allowedExtensions.exec(file.name)) {\r\n\t\t\t\tvm.followFiles = [];\r\n\t\t\t\tvm.clear();\r\n\t\t\t\talert('Please upload file having extensions .pdf,.jpg,.jpeg,.png,.msg,.bmp,xps only.');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.clear = function () {\r\n\t\t\tangular.element(\"input[type='file']\").val(null);\r\n\t\t};\r\n\r\n\r\n\t\tvm.GetFollowupReasons = function () {\r\n\t\t\tCentralHDTicketsViewService.GetReasonsByStatus(loggedinUser, token, 'FollowUp').then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.reasonsForFU = resp.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.GetFollowupReasons();\r\n\r\n\r\n\t\tvar ModalInstanceCtrlFollowUp = function ($scope, $rootScope, $uibModalInstance) {\r\n\t\t\tvm.updateFollowUpStatus = function () {\r\n\t\t\t\tvm.followupdialog.submitted = true\r\n\t\t\t\tif(vm.followupdialog.$valid){\r\n\t\t\t\tvar data = {};\r\n\t\t\t\tdata = {\r\n\t\t\t\t\t\"userId\": loggedinUser,\r\n\t\t\t\t\t\"dateTime\": \"\",\r\n\t\t\t\t\t\"activity\": \"\",\r\n\t\t\t\t\t\"action\": \"FOLLOW_UP\",\r\n\t\t\t\t\t\"userName\": \"\",\r\n\t\t\t\t\t\"ticketId\": vm.tickId,\r\n\t\t\t\t\t\"primaryReason\": vm.primaryFollowUpReason,\r\n\t\t\t\t\t\"SecondryReason\": \"\",\r\n\t\t\t\t\t\"ReasonComment\": vm.primaryFollowUpRemark\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.followFiles != null) {\r\n\t\t\t\t\tCentralHDTicketsViewService.TicketFollowUp(data, vm.followFiles, token, loggedinUser, function (res) {\r\n\t\t\t\t\t\tif (res && res.status == 201) {\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\tvm.CloseFollowUpModel();\r\n\t\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t\t} else if (res && res.data && res.data.Message) {\r\n\t\t\t\t\t\t\tvm.showFailure(\"Failed\", res.data.Message);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, vm.showFailure);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tCentralHDTicketsViewService.TicketFollowUpWithoutDoc(data, token, loggedinUser, function (res) {\r\n\t\t\t\t\t\tif (res) {\r\n\t\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n\t\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\t\tvm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n\t\t\t\t\t\t\t\tvm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n\t\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvm.CloseFollowUpModel();\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tvm.GetAllFollowUpForJob = function (ticketId) {\r\n\t\t\tCentralHDTicketsViewService.GetAllFollowUpForJob(ticketId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.getfollowUpList = resp.data;\r\n\t\t\t\t}\r\n\r\n\t\t\t}, function () {\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\t// vm.GetConsumerAssets();\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('CustomerCRM360Service', function (ApiURL, $http,AcessoriesURL, FreelancerURL, MMFCRMURL, LocationURL) {\r\n\r\n\tthis.GetConsumerFullDetails = function (loggedinUser, token, contactNo) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMConsumer/GetConsumerFullDetails?ConsumerContact=' + contactNo;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.UpdateConsumerForAddress = function (data, loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMConsumer/UpdateConsumerForAddress';\r\n\t\treturn $http.put(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetSearchServiceCenter = function (loggedinUser,token,searchtext) {\r\n\t\tvar url = ApiURL + '/api/User/SearchServiceCenter?searchText=' + searchtext;\r\n\t\treturn $http.get(url, {\r\n\t\t headers: {\r\n\t\t\t'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n\t\t }\r\n\t\t});\r\n\t }\r\n\r\n\t this.UpdateConsumer = function (data, loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMConsumer/UpdateConsumer';\r\n\t\treturn $http.put(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.UpdateAssetDetails = function (data, loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMConsumer/UpdateAssetDetails';\r\n\t\treturn $http.put(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetConsumerAssets = function (loggedinUser, token, contactNo) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMConsumer/GetConsumerAssets?ConsumerContact=' + contactNo;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllBillsWithFilter = function (data, loggedinUser, token) {\r\n\t\tvar url = AcessoriesURL + '/api/ServiceCentreBill/GetAllBillsWithFilter';\r\n\t\treturn $http.put(url, data, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t }\r\n}\r\n)\r\n\nangular.module('inspinia').controller('CustomerCRM360Controller', function ($scope,ReferService,$timeout, $uibModal, $state,$q,MainService,InventoryItemListService,CentralHDTicketsViewService, InventoryCartService, CustomerCRMListService,ServiceCenterListService, CustomerCRM360Service, $log, $stateParams, $localStorage, ImageUrl) {\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.IsAppointmentOTPNeeded = $localStorage.accountConfig.IsAppointmentOTPNeeded;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.accountid= $localStorage.accountConfig.AccountId;\r\n\t\tvm.consumerContact = $stateParams.ContactNo;\r\n\t\tvm.warrantyStatus = '';\r\n\t\tvm.dateOfPurchase = '';\r\n\t\tvm.selectedOption = 'pincode'; \r\n\t\tvm.callType = 'Repair';\r\n\t\tvm.AppointmentTime = '08:00'\r\n\t\tvm.AppointmentDate = moment().format('YYYY-MM-DD');\r\n\t\tvm.disableCreateButton = false;\r\n\t\tvm.searchtext = '';\r\n\t\tvm.searchTag = '';\r\n\t\tvm.PartImagesList = [];\r\n\t\tvm.TrainingImagebase64 = [];\r\n\t\tvm.InventoryImagebase64 = [];\r\n\t\tvm.masterInventoryList = [];\r\n\t\tvm.AllActiveProductModelNoList = [];\r\n\t\tvm.financePageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.BillSearchText = '';\r\n\t\t$scope.dates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t $scope.ranges = {\r\n\t\t 'Today': [moment(), moment()],\r\n\t\t 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t };\r\n\t vm.outsidedateRangeChange = function (ev, picker) {\r\n\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\tvm.GetAllBillsWithFilter();\r\n\t};\r\n /////Bill details Function\r\n\t $scope.totalInventory = 0;\r\n $scope.usersStockPageRequest = vm.financePageListCount;\r\n $scope.Requestpagination = {\r\n current: 1,\r\n };\r\n\r\n vm.changeMyStockPageListCount = function () {\r\n $scope.usersStockPageRequest = vm.financePageListCount;\r\n PageSize = $scope.usersStockPageRequest;\r\n // $scope.Requestpagination.current = 1;\r\n $scope.MystockTablePageChanged($scope.Requestpagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t\tPageIndex = $scope.Requestpagination.current;\r\n\t\t\t$scope.MystockTablePageChanged = function (newPage) {\r\n\t\t\t\tPageIndex = newPage;\r\n\t\t\t\tvm.GetAllBillsWithFilter();\r\n\t\t\t };\r\n \r\n };\r\n\t\tPageIndex = $scope.Requestpagination.current;\r\n\r\n $scope.MystockTablePageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetAllBillsWithFilter();\r\n };\r\n \r\n\r\n\t\tvm.GetAllBillsWithFilter = function () {\r\n\t\t\tvm.BillDetails = [];\r\n\t\t\tvar data = {\r\n\t\t\t \"PageIndex\": PageIndex,\r\n\t\t\t \"PageSize\": PageSize,\r\n\t\t\t \"SearchText\": vm.BillSearchText,\r\n\t\t\t \"FromDate\": startDate,\r\n\t\t\t \"ToDate\": endDate,\r\n\t\t\t \r\n\t\t\t};\r\n\t\t\tCustomerCRM360Service.GetAllBillsWithFilter(data,loggedinUser, token).then(\r\n\t\t\t function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t vm.BillDetails = resp.data.billList;\r\n\t\t\t\t $scope.totalInventory = resp.data.Count;\r\n\t\t\t\t// vm.totalInventoryValue = resp.data.InventoryTotal;\r\n\t\t\t\t if (vm.BillDetails.length < vm.financePageListCount) {\r\n\t\t\t\t\tvm.myStockListLength = $scope.totalInventory;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\tvm.myStockListLength = PageIndex * vm.financePageListCount;\r\n\t\t\t\t\t}\r\n\t\t\t\t if (PageIndex == 1){\r\n\t\t\t\t\tvm.countdpageindexCount = 1;\r\n\t\t\t\t } \r\n\t\t\t\t else{\r\n\t\t\t\t\tvm.countdpageindexCount =\r\n\t\t\t\t\t (PageIndex - 1) * vm.financePageListCount + 1;\r\n\t\t\t\t }\r\n\t\t\t\t}\r\n\t\t\t },\r\n\t\t\t function (error) { }\r\n\t\t\t);\r\n\t\t };\r\n\t\t var debounceTimeout;\r\n\t\t vm.searchByText = function () {\r\n\t\t\tif (debounceTimeout) clearTimeout(debounceTimeout);\r\n\t\t\tdebounceTimeout = setTimeout(function () {\r\n\t\t\t\tvm.PageIndex = 1;\r\n\t\t\t\tvm.GetAllBillsWithFilter();\r\n\t\t\t}, 300); // Adjust delay as needed\r\n\t\t};\r\n\t\t\r\n\t\tvm.clearbilldetails = function(){\r\n\t\t\tvm.BillSearchText = '';\r\n\t\t\tvm.GetAllBillsWithFilter();\r\n\t\t}\r\n\r\n\t\tvm.showPartDetails = false;\r\n\r\nvm.OpenPartDetailPanel = function (s) {\r\n\tvm.PartDetails = s;\r\n\t\r\n\tvm.showPartDetails = true;\r\n}\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.timeSlots = [\r\n\t\t\t{ value: '08:00', label: '08:00 AM to 10:00 AM' },\r\n\t\t\t{ value: '10:00', label: '10:00 AM to 12:00 PM' },\r\n\t\t\t{ value: '12:00', label: '12:00 PM to 02:00 PM' },\r\n\t\t\t{ value: '14:00', label: '02:00 PM to 04:00 PM' },\r\n\t\t\t{ value: '16:00', label: '04:00 PM to 06:00 PM' },\r\n\t\t\t{ value: '18:00', label: '06:00 PM to 08:00 PM' }\r\n\t\t];\r\n\r\n\t function getCurrentDateTime() {\r\n return new Date();\r\n }\r\n\t$scope.showRecentActivity = (vm.accountid == '364' ||vm.loggedInUserRole == 'Dispatch Head');\r\n\r\n\t$scope.RecentActivity = $scope.showRecentActivity ? 1 : 0;\r\n\t$scope.Assets = $scope.showRecentActivity ? 0 : 1;\r\n\r\n\t$scope.$watch('showRecentActivity', function(newValue) {\r\n\t\t$scope.RecentActivity = newValue ? 1 : 0;\r\n\t\t$scope.Assets = newValue ? 0 : 1;\r\n\t});\r\n\t\r\n\r\n\r\n function isTimeSlotValid(slot) {\r\n var now = getCurrentDateTime();\r\n var selectedDate = moment(vm.AppointmentDate).format('YYYY-MM-DD');\r\n\r\n if (selectedDate) {\r\n if (!(selectedDate instanceof Date)) {\r\n selectedDate = new Date(selectedDate);\r\n }\r\n\r\n var slotTime = slot.value.split(':');\r\n var selectedDateTime = new Date(selectedDate);\r\n selectedDateTime.setHours(parseInt(slotTime[0]), parseInt(slotTime[1]), 0, 0);\r\n\r\n return selectedDateTime >= now;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function updateAvailableTimeSlots() {\r\n $timeout(function() {\r\n vm.availableTimeSlots = vm.timeSlots.filter(isTimeSlotValid);\r\n\t\t\tselectDefaultTimeSlot();\r\n });\r\n }\r\n\r\n\tfunction selectDefaultTimeSlot() {\r\n if (vm.availableTimeSlots.length > 0) {\r\n vm.AppointmentTime = vm.availableTimeSlots[0].value;\r\n }\r\n }\r\n\r\n\tvm.minDate = new Date();\r\n\tvm.datepickerOptions = {\r\n\t\tminDate: vm.minDate\r\n\t};\r\n\r\n $scope.$watch('ctrlCRM360.AppointmentDate', function(newValue, oldValue) {\r\n if (newValue !== oldValue) {\r\n updateAvailableTimeSlots();\r\n }\r\n });\r\n\r\n updateAvailableTimeSlots();\r\n\r\n\t\tvm.isDateDisabled = function() {\r\n\t\t\treturn !vm.brandName || \r\n\t\t\t\t !vm.productGroup || \r\n\t\t\t\t !vm.product;\r\n\t\t};\r\n\r\n\t\tvm.getCurrentDate = function() {\r\n\t\t\tvar currentDate = new Date();\r\n\t\t\treturn currentDate;\r\n\t\t};\r\n\r\n\t\tvm.allowAlphanumericOnly = function(event) {\r\n\t\t\tconst regex = /^[a-zA-Z0-9]$/;\r\n\t\t\tconst key = String.fromCharCode(event.which || event.keyCode);\r\n\t\t\r\n\t\t\tif (!regex.test(key)) {\r\n\t\t\t\tevent.preventDefault(); \r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvm.OpenEditAssetModel = function (asset) {\r\n\t\t\tvm.assetData = asset;\r\n\t\t\tvm.ConsumerId = vm.assetData.ConsumerId;\r\n\t\t\tvm.brandName = vm.assetData.Brand;\r\n\t\t\tvm.product = vm.assetData.AssetType;\r\n\t\t\tvm.OldSerialNumber = vm.assetData.SerialNumber;\r\n\t\t\tvm.NewSerialNumber = vm.assetData.SerialNumber;\r\n\t\t\tvm.productGroup = vm.assetData.ProductGroup;\r\n\t\t\tvm.dateOfPurchase = vm.assetData.AssetPurchaseDate != '0001-01-01T00:00:00' ? new Date(vm.assetData.AssetPurchaseDate) : new Date();\r\n\t\t\tvm.AssetModelNumber = vm.assetData.ModelNumber;\r\n\t\t\tvm.GetAllActiveProductModelMaster();\r\n\t\t\tvm.editAssetModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'EditAssetModel.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseEditAssetModel = function () {\r\n\t\t\tvm.editAssetModelOpen.close();\r\n\t\t\tvm.brandName = '';\r\n\t\t\tvm.productGroup = '';\r\n\t\t\tvm.OldSerialNumber = '';\r\n\t\t\tvm.NewSerialNumber = '';\r\n\t\t\tvm.product = '';\r\n\t\t\tvm.AssetModelNumber = '';\r\n\t\t\tvm.AssetModel = '';\r\n\t\t\tvm.dateOfPurchase = '';\r\n\t\t\tvm.ConsumerId = '';\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t}\r\n\r\n\t\tvm.UpdateAssetDetails = function () {\r\n\t\t\tvm.assetEdit_form.submitted = true;\r\n\t\t\tif (vm.assetEdit_form.$valid) {\r\n\t\t\t vm.DisableCreateButton(true);\r\n\t\t\t data = {\r\n\t\t\t\t\"ModelNumber\" : vm.AssetModel.strModelNumber,\r\n\t\t\t\t\"ConsumerId\" : vm.ConsumerId, \r\n\t\t\t\t\"OldSerialNumber\" : vm.OldSerialNumber, \r\n\t\t\t\t\"NewSerialNumber\" : vm.NewSerialNumber,\r\n\t\t\t\t\"AssetPurchaseDate\" : moment(vm.dateOfPurchase).format('YYYY-MM-DD'),\r\n\t\t\t\t}\r\n\t\t\t\tCustomerCRM360Service.UpdateAssetDetails(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t vm.showSuccess(\"Success\", 'Asset updated successfully.');\r\n\t\t\t\t setTimeout(function () {\r\n\t\t\t\t\tvm.CloseEditAssetModel();\r\n\t\t\t\t\tvm.GetConsumerAssets();\r\n\t\t\t\t }, 1000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t vm.DisableCreateButton(false);\r\n\t\t\t\t vm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t}\r\n\t\t\t });\r\n\t\t\t}\r\n\t\t }\t\t\r\n\r\n\r\n vm.CreateTaskModel = function (asset) {\r\n vm.assetData = asset;\r\n vm.brandName = vm.assetData.Brand;\r\n vm.product = vm.assetData.AssetType;\r\n vm.productdefect = vm.assetData.Brand;\r\n vm.productGroup = vm.assetData.ProductGroup;\r\n\t vm.modelName = vm.assetData.ProductModel;\r\n\t vm.dateOfPurchase = vm.assetData.AssetPurchaseDate ? new Date(vm.assetData.AssetPurchaseDate) : null;\r\n\t vm.warrantyStatus = vm.assetData.AssetWarranty;\r\n\t vm.modelNumber = vm.assetData.ModelNumber;\r\n\t vm.dealername = vm.assetData.strDealerName;\r\n\t vm.dealercontact = vm.assetData.strDealerContact;\r\n\t vm.GetAllActiveProductModelMaster();\r\n vm.GetDefectTypeList();\r\n\t vm.GetWarrantyDetailsForProduct();\r\n\t\t\tvm.createtaskModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'CreateTaskModel.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.CloseCreateTaskModel = function () {\r\n\t\t\tvm.createtaskModelOpen.close();\r\n\t\t\tvm.brandName = '';\r\n\t\t\tvm.productGroup = '';\r\n\t\t\tvm.modelName = '';\r\n\t\t\tvm.product = '';\r\n\t\t\tvm.productdefect = '';\r\n\t\t\tvm.caseDescription = '';\r\n\t\t\tvm.modelNumber = '';\r\n\t\t\tvm.warrantyStatus = '';\r\n\t\t\tvm.dateOfPurchase = '';\r\n\t\t\tvm.dealername = '';\r\n\t\t\tvm.dealercontact = '';\r\n\t\t\tvm.callType = 'Repair';\r\n\t\t\tvm.AppointmentDateTime = '';\r\n\t\t\tvm.WarrantyData = \"\";\r\n\t\t\tvm.AppointmentDate = moment().format('YYYY-MM-DD');\r\n\t\t\tupdateAvailableTimeSlots();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t}\r\n\t\r\n\tvm.UpdateDataModel = function () {\r\n\t\tvm.GetConsumerFullDetails(loggedinUser, token, vm.consumerContact)\r\n\t\tvm.EditcustomerModelOpen = $uibModal.open({\r\n\t\t\ttemplateUrl: 'EditCustomerModel.html',\r\n\t\t\tsize: 'lg',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t}\r\n\tvm.CloseUpdateDataModel = function () {\r\n\t\tvm.EditcustomerModelOpen.close();\r\n\t}\r\n\tvm.GetConsumerFullDetails = function () {\r\n\t\tCustomerCRM360Service.GetConsumerFullDetails(loggedinUser, token, vm.consumerContact).then(function (resp) {\r\n\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\tvm.consumerData = resp.data;\r\n\t\t\t\tvm.consumerAddressData = resp.data.udListAddresses[0];\r\n\t\t\t\tvm.consumerTitle = vm.consumerData.strConsumerTitle;\r\n\t\t\t\tvm.consumerFirstName = vm.consumerData.strConsumerFirstName;\r\n\t\t\t\tvm.consumerLastName = vm.consumerData.strConsumerLastName;\r\n\t\t\t\tvm.consumerContact = vm.consumerData.strConsumerContact;\r\n\t\t\t\tvm.consumerAltContact = vm.consumerData.strConsumerAlternateContact;\r\n\t\t\t\tvm.PersonalEmail = vm.consumerData.strPersonalEmail;\r\n\t\t\t\tvm.consumerType = vm.consumerData.strConsumerType;\r\n\t\t\t\tvm.AddressType = vm.consumerAddressData.strAddressType;\r\n\t\t\t\tvm.consumerCity = (vm.consumerAddressData.strCity).toUpperCase();\r\n\t\t\t\tvm.consumerPincode = vm.consumerAddressData.strPostalCode;\r\n\t\t\t\tvm.consumerState = (vm.consumerAddressData.strState).toUpperCase();\r\n\t\t\t\tvm.AddressLine1 = vm.consumerAddressData.strAddress1;\r\n\t\t\t\tvm.AddressLine2 = vm.consumerAddressData.strAddress2;\r\n\t\t\t\tvm.AddressId = vm.consumerAddressData.strAddressId;\r\n\t\t\t\tvm.selectedState(vm.consumerState);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message)\r\n\t\t\t}\r\n\t\t}, vm.showFailure);\r\n\t}\r\n\tif(vm.consumerContact){\r\n\t\tvm.GetConsumerFullDetails();\r\n\t}\r\n\r\n\tvm.GetAllTicketsForContact = function () {\r\n\t\tCustomerCRMListService.GetAllTicketsForContact(loggedinUser, token, vm.consumerContact).then(function (resp) {\r\n\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\tvm.consumerAllTicketsData = resp.data;\r\n\t\t\t\tvm.ticketLength = resp.data.length;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message)\r\n\t\t\t}\r\n\t\t}, vm.showFailure);\r\n\t}\r\n\r\n\r\n\t$scope.searchConsumer = function(consumerContact) {\r\n\t\tvm.consumerContact = consumerContact;\r\n\t\tif (!consumerContact || consumerContact.length !== 10) {\r\n\t\t\talert('Please enter a valid 10-digit contact number.');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvm.GetAllTicketsForContact();\r\n\t\tvm.GetConsumerFullDetails();\r\n\t};\r\n\r\n\tvm.GetWarrantyDetailsForProduct = function () {\r\n\t\tvm.WarrantyData = \"\";\r\n\t\t\tvar data = {\r\n\t\t\t\t\"strBrandName\": vm.brandName,\r\n\t\t\t\t\"strProductGroup\": vm.productGroup,\r\n\t\t\t\t\"strProductName\": vm.product,\r\n\t\t\t\t\"dateOfPurchase\": moment(vm.dateOfPurchase).format('YYYY-MM-DD'),\r\n\t\t\t }\r\n\t\t\tCustomerCRMListService.GetWarrantyDetailsForProduct(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\tvm.WarrantyData = resp.data\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\r\n vm.GetAllBrands = function () {\r\n CustomerCRMListService.GetAllBrands(loggedinUser,token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BrandList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.GetAllBrands();\r\n\r\n vm.GetBrandProductGroup = function () {\r\n var data = {\r\n \"strBrandName\": vm.brandName\r\n }\r\n CustomerCRMListService.GetBrandProductGroup(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.PartGroupList = resp.data;\r\n }\r\n });\r\n }\r\n\r\n vm.GetAllProductsForBrand = function () {\r\n var data = {\r\n \"strBrandName\": vm.brandName,\r\n \"strProductGroup\": vm.productGroup\r\n }\r\n CustomerCRMListService.GetAllProductsForBrand(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ProductList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAllActiveProductModelMaster = function () {\r\n\tCustomerCRMListService.GetAllActiveProductModelMaster(vm.product,vm.brandName, loggedinUser, token).then(function (resp) {\r\n\t if (resp && resp.data) {\r\n\t\tvm.AllActiveProductModelNoList = resp.data;\r\n\t\tif(vm.AssetModelNumber){\r\n\t\t\tfor (var i = 0; i < vm.AllActiveProductModelNoList.length; i++) {\r\n\t\t\t\tif (vm.AllActiveProductModelNoList[i].strModelNumber == vm.AssetModelNumber) {\r\n\t\t\t\t\tvm.AssetModel = vm.AllActiveProductModelNoList[i];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t }\r\n\t})\r\n }\r\n\r\n\r\n vm.GetDefectTypeList = function () {\r\n var data = {\r\n \"strBrandName\": vm.brandName,\r\n \"strProductGroup\": vm.productGroup,\r\n \"strProductName\": vm.product,\r\n\t \"strCallType\" : vm.callType\r\n }\r\n CustomerCRMListService.GetDefectTypeList(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.DefectList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.CreateCase = function () {\r\n vm.dialertask_form.submitted = true;\r\n if (vm.dialertask_form.$valid) {\r\n vm.DisableCreateButton(true);\r\n data = {\r\n \"BrandName\": vm.brandName,\r\n\t\t\"ProductGroup\": vm.productGroup,\r\n\t\t\"ProductName\": vm.modelName,\r\n\t\t\"ModelNumber\": vm.modelNumber,\r\n\t\t\"AppointmentDateTime\" : moment(vm.AppointmentDate).format('YYYY-MM-DD') + ' ' + vm.AppointmentTime,\r\n\t\t\"DefectType\": vm.productdefect + ' - ' + vm.caseDescription,\r\n\t\t\"MMFSkillMapped\": vm.DefectList.strMMFSkillMapped,\r\n\t\t\"ConusmerContact\": vm.consumerContact,\r\n\t\t\"CallType\": vm.callType,\r\n\t\t\"DateOfPurchase\": moment(vm.dateOfPurchase).format('YYYY-MM-DD'),\r\n\t\t\"WarrantyStatus\": vm.warrantyStatus,\r\n\t\t\"strDealerName\" : vm.dealername,\r\n\t \"strDealerContact\" : vm.dealercontact\r\n }\r\n CustomerCRMListService.CreateCase(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", 'Case created successfully.');\r\n setTimeout(function () {\r\n vm.CloseCreateTaskModel();\r\n vm.GetAllTicketsForContact();\r\n }, 1000);\r\n }\r\n else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure('Failed', resp.data.Message);\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n\t\r\n\tfunction getAllStates() {\r\n\t\tvar defered = $q.defer();\r\n\t\tReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n\t\t\tdefered.resolve(resp);\r\n\t\t}, function (error) {\r\n\t\t\tdefered.reject(error);\r\n\t\t});\r\n\t\treturn defered.promise;\r\n\t}\r\n\r\n\tvar allStatePromise = getAllStates(loggedinUser);\r\n\tallStatePromise.then(function (resp) {\r\n\t\tvm.StateList = resp.data;\r\n\r\n\t});\r\n\tfunction getallCities(state) {\r\n\t\tReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t\tvm.CityList = resp.data;\r\n\t\t});\r\n\t}\r\n\tvm.selectedState = function (state) {\r\n\t\tif(vm.selectedOption == 'pincode'){\r\n\t\t\tgetallCities(state);\r\n\t\t}\r\n\t\tif(vm.selectedOption == 'area'){\r\n\t\t\tgetareaallCities(state);\r\n\t\t}\r\n\t}\r\n\r\n\tvm.onOptionChange = function (option) {\r\n\t\tvm.consumerPincode = '';\r\n\t\tvm.consumerCity = '';\r\n\t\tvm.consumerArea = '';\r\n\t\tvm.AreaList = [];\r\n\t\tvm.selectedState(vm.consumerState)\r\n\t };\r\n\r\n\tfunction getareaallCities(state) {\r\n\t\tvm.AreaCityList = [];\r\n\t\tCustomerCRMListService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t\tvm.AreaCityList = resp.data;\r\n\t\t});\r\n\t}\r\n\r\n\tfunction GetAllAreaByStateCity() {\r\n\t\tvm.AreaList = [];\r\n\t\tCustomerCRMListService.GetAllAreaByStateCity(loggedinUser, token, vm.consumerState,vm.consumerCity).then(function (resp) {\r\n\t\t\tif(resp.data && resp.status == 200){\r\n\t\t\t\tvm.AreaList = resp.data;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tvm.showFailure(\"Failed\",resp)\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tvm.GetAddressFromPinCode = function (consumerPincode) {\r\n\t\tvm.findPincode = consumerPincode;\r\n\t\tCustomerCRMListService.GetAddressFromPinCode(vm.findPincode, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data) {\r\n\t\t\t\tvm.AddressData = resp.data;\r\n\t\t\t\tvm.consumerState = resp.data.State.toUpperCase();\r\n\t\t\t\tvm.selectedState(vm.consumerState);\r\n\t\t\t\tvm.consumerCity = resp.data.City.toUpperCase();\r\n\t\t\t}\r\n\t\t}, vm.showFailure);\r\n\t}\r\n\r\n\tvm.selectedcity = function () {\r\n\t\tGetAllAreaByStateCity();\r\n\t}\r\n\r\n\tfunction GetAllPincodeBYAreaStateCity() {\r\n\t\tvm.PincodeList = [];\r\n\t\tCustomerCRMListService.GetAllPincodeBYAreaStateCity(loggedinUser, token,vm.consumerState,vm.consumerCity, vm.consumerArea).then(function (resp) {\r\n\t\t\tvm.PincodeList = resp.data;\r\n\t\t});\r\n\t}\r\n\r\n\tvm.selectedArea = function () {\r\n\t\tGetAllPincodeBYAreaStateCity();\r\n\t}\r\n\r\n\tvm.GetConsumerAssets = function () {\r\n\t\tCustomerCRM360Service.GetConsumerAssets(loggedinUser, token, vm.consumerContact).then(function (resp) {\r\n\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\tvm.consumerAssetData = resp.data;\r\n\t\t\t\tvm.consumerAssetDataLength = resp.data.length;\r\n\t\t\t}\r\n\t\t}, vm.showFailure);\r\n\t}\r\n\tif(vm.consumerContact){\r\n\t\tvm.GetAllTicketsForContact();\r\n\t\tvm.GetConsumerFullDetails();\r\n\t\tvm.GetConsumerAssets();\r\n\t}\r\n\r\n\tvm.UpdateConsumer = function () {\r\n\t\tvm.editprofile_form.submitted = true;\r\n\t\tif (vm.editprofile_form.$valid) {\r\n\t\t\tvm.DisableCreateButton(true);\r\n\t\t\tdata = {\r\n\t\t\t\t\"strConsumerTitle\": vm.consumerTitle,\r\n\t\t\t\t\"strConsumerFirstName\": vm.consumerFirstName,\r\n\t\t\t\t\"strConsumerLastName\": vm.consumerLastName,\r\n\t\t\t\t\"strConsumerContact\": vm.consumerContact,\r\n\t\t\t\t\"strConsumerAlternateContact\": vm.consumerAltContact,\r\n\t\t\t\t\"strPersonalEmail\": vm.PersonalEmail,\r\n\t\t\t\t\"strConsumerArea\": \"string\",\r\n\t\t\t\t\"strConsumerLandMark\": \"string\",\r\n\t\t\t\t\"strConsumerType\": vm.consumerType,\r\n\t\t\t\t\"udListAddresses\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"strAddressId\": vm.AddressId,\r\n\t\t\t\t\t\t\"strAddressType\": vm.AddressType,\r\n\t\t\t\t\t\t\"strAddress1\": vm.AddressLine1,\r\n\t\t\t\t\t\t\"strAddress2\": vm.AddressLine2,\r\n\t\t\t\t\t\t\"strCity\": vm.consumerCity.toUpperCase(),\r\n\t\t\t\t\t\t\"strDistrict\": \"string\",\r\n\t\t\t\t\t\t\"strPostalCode\": vm.consumerPincode,\r\n\t\t\t\t\t\t\"strState\": vm.consumerState.toUpperCase(),\r\n\t\t\t\t\t\t\"strCountry\": \"India\",\r\n\t\t\t\t\t\t\"bIsDefaultAddress\": true\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t\tCustomerCRM360Service.UpdateConsumer(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.showSuccess(\"Success\", 'Consumer details updated successfully.');\r\n\t\t\t\t\tvm.CloseUpdateDataModel();\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tvm.GetConsumerFullDetails();\r\n\t\t\t\t\t\tvm.clearCustomerData();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tvm.clearCustomerData = function () {\r\n\t\tvm.consumerTitle = 'Mr.';\r\n\t\tvm.consumerFirstName = '';\r\n\t\tvm.consumerLastName = '';\r\n\t\tvm.consumerContact = '';\r\n\t\tvm.consumerAltContact = '';\r\n\t\tvm.PersonalEmail = '';\r\n\t\tvm.consumerType = '';\r\n\t\tvm.AddressType = '';\r\n\t\tvm.consumerCity = '';\r\n\t\tvm.consumerPincode = '';\r\n\t\tvm.consumerState = '';\r\n\t\tvm.AddressLine1 = '';\r\n\t\tvm.AddressLine2 = '';\r\n\t\tvm.AddressId = '';\r\n\t}\r\n\r\n\tvm.consumerAllTicketsData = [];\r\n \r\n\tvm.GetSearchServiceCenter = function () {\r\n\t\tCustomerCRM360Service.GetSearchServiceCenter(loggedinUser,token,vm.searchtext).then(function (resp) {\r\n\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\tvm.consumerAllTicketsData = resp.data;\r\n\t\t\t\tvm.IsConsumerFound = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\tvm.IsConsumerFound = false;\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message)\r\n\t\t\t}\r\n\t\t}, vm.showFailure);\r\n\t}\r\n\tvm.GetSearchServiceCenter();\r\n\tvm.ResetFilter = function(){\r\n\t\tvm.searchtext = '';\r\n\t\tvm.GetSearchServiceCenter();\r\n\t\t// vm.consumerAllTicketsData = '';\r\n\t\t// vm.IsConsumerFound = false;\r\n\t}\r\n\t\r\n\tvm.InventoryImageServices = function (img, rowIndex, imageIndex) {\r\n\t\tMainService.GetImageBlob(loggedinUser, token, img).then(function (resp) {\r\n\t\t\tif (resp.data == null || resp.data == '') {\r\n\t\t\t\tvm.InventoryImagebase64[rowIndex][imageIndex] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (!vm.InventoryImagebase64[rowIndex]) {\r\n\t\t\t\t\tvm.InventoryImagebase64[rowIndex] = [];\r\n\t\t\t\t}\r\n\t\t\t\tvm.InventoryImagebase64[rowIndex][imageIndex] = resp.data;\r\n\t\t\t}\r\n\t\t}, function () {\r\n\t\t\tvm.InventoryImagebase64[rowIndex][imageIndex] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t});\r\n\t}\r\n\tvm.GetAllVisibleMasterParts = function () {\r\n\t\tvar data = {\r\n\t\t\t\"PartName\": vm.selectedPart,\r\n\t\t\t\"PartCategoryGroup\": vm.productGroup,\r\n\t\t\t\"PartBrand\": vm.brandName,\r\n\t\t\t\"PartSubGroup\": vm.partName,\r\n\t\t\t\"SearchText\": vm.searchTag\r\n\t\t}\r\n\t\tInventoryItemListService.GetAllVisibleMasterParts(data, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\tvm.masterInventoryList = resp.data;\r\n\t\t\t\tvm.masterInventoryList.forEach(function (item, rowIndex) {\r\n\t\t\t\t\tif (item.PartImages && Array.isArray(item.PartImages)) {\r\n\t\t\t\t\t\tvm.InventoryImagebase64[rowIndex] = [];\r\n\t\t\t\t\t\titem.PartImages.forEach(function (image, imageIndex) {\r\n\t\t\t\t\t\t\tvm.InventoryImageServices(image, rowIndex, imageIndex);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}, vm.showFailure);\r\n\t}\r\n\tvm.GetAllVisibleMasterParts();\r\n\tvm.GetItemBrandName = function () {\r\n\t\tInventoryCartService.GetItemBrandName(loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data) {\r\n\t\t\t\tvm.BrandList = resp.data;\r\n\t\t\t}\r\n\t\t}, vm.showFailure);\r\n\t};\r\n\tvm.GetItemBrandName();\r\n\r\n\r\n\tvm.GetItemGroupName = function () {\r\n\t\tif (!vm.brandName) {\r\n\t\t\tvm.brandName = \"\";\r\n\t\t}\r\n\t\tInventoryCartService.GetItemGroupName(vm.brandName, loggedinUser, token).then(\r\n\t\t\tfunction (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.PartNameList = resp.data;\r\n\t\t\t\t\t// vm.changeCategoryFilter();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t};\r\n\tvm.GetItemGroupName();\r\n\tvm.GetItemListName = function () {\r\n\t\tif (!vm.productGroup) {\r\n\t\t\tvm.productGroup = \"\";\r\n\t\t}\r\n\t\tInventoryCartService.GetItemListName(vm.brandName,vm.productGroup,loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data) {\r\n\t\t\t\tvm.PartList = resp.data;\r\n\t\t\t\t// vm.changeCategoryFilter();\r\n\t\t\t}\r\n\t\t}, vm.showFailure);\r\n\t};\r\n\tvm.GetItemListName();\r\n\r\n\tvm.PartListWithFilter = [];\r\n\r\n\tvm.GetItemPartName = function () {\r\n\t vm.PartListWithFilter = [];\r\n\t if (!vm.partName) {\r\n\t\tvm.partName = \"\";\r\n\t }\r\n\t InventoryItemListService.GetItemPartName(vm.brandName,vm.productGroup,vm.partName,loggedinUser,token).then(function (resp) {\r\n\t\tif (resp.data && resp.status == 200) {\r\n\t\t vm.PartListWithFilter = resp.data;\r\n\t\t}\r\n\t }, vm.showFailure);\r\n\t};\r\n\tvm.GetItemPartName();\r\n\r\n\tvm.exportToCSV = function () {\r\n\t\tvar csv = [];\r\n\t\tvar header;\r\n\t\tvar includePriceAndDiscount = (vm.loggedInUserRole !== 'Help Desk');\r\n\r\n\t\tif (includePriceAndDiscount) {\r\n\t\t\theader = [\r\n\t\t\t\t\"Part ID\",\r\n\t\t\t\t\"Name\",\r\n\t\t\t\t\"SKU ID\",\r\n\t\t\t\t\"Brand\",\r\n\t\t\t\t\"Category Group\",\r\n\t\t\t\t\"Manufacturer\",\r\n\t\t\t\t\"Model Number\",\r\n\t\t\t\t// \"Part Price\",\r\n\t\t\t\t\"Service Center Price\",\r\n\t\t\t\t// \"Discount (%)\",\r\n\t\t\t\t\"IGST (%)\",\r\n\t\t\t\t\"CGST(%)\",\r\n\t\t\t\t\"SGST(%)\"\r\n\t\t\t].join(\",\") + \"\\n\";\r\n\t\t} else {\r\n\t\t\theader = [\r\n\t\t\t\t\"Part ID\",\r\n\t\t\t\t\"Name\",\r\n\t\t\t\t\"SKU ID\",\r\n\t\t\t\t\"Brand\",\r\n\t\t\t\t\"Category Group\",\r\n\t\t\t\t\"Manufacturer\",\r\n\t\t\t\t\"Model Number\",\r\n\t\t\t\t\"Service Center Price\",\r\n\t\t\t\t\"IGST (%)\",\r\n\t\t\t\t\"CGST(%)\",\r\n\t\t\t\t\"SGST(%)\"\r\n\t\t\t].join(\",\") + \"\\n\";\r\n\t\t}\r\n\r\n\t\tcsv.push(header);\r\n\t\tvm.masterInventoryList.forEach(function (item) {\r\n\t\t\tvar row;\r\n\r\n\t\t\tif (includePriceAndDiscount) {\r\n\t\t\t\trow = [\r\n\t\t\t\t\titem.MMFPartId,\r\n\t\t\t\t\titem.PartName,\r\n\t\t\t\t\titem.SKUId,\r\n\t\t\t\t\titem.PartBrand,\r\n\t\t\t\t\titem.PartCategoryGroup,\r\n\t\t\t\t\titem.Manufacturer,\r\n\t\t\t\t\titem.ModelNumber,\r\n\t\t\t\t\t// item.PartPrice,\r\n\t\t\t\t\titem.PartSellingPrice,\r\n\t\t\t\t\t// item.PartDiscountPercentage,\r\n\t\t\t\t\titem.dIGSTTax,\r\n\t\t\t\t\titem.dCGSTTax,\r\n\t\t\t\t\titem.dSGSTTax\r\n\t\t\t\t].join(\",\") + \"\\n\";\r\n\t\t\t} else {\r\n\t\t\t\trow = [\r\n\t\t\t\t\titem.MMFPartId,\r\n\t\t\t\t\titem.PartName,\r\n\t\t\t\t\titem.SKUId,\r\n\t\t\t\t\titem.PartBrand,\r\n\t\t\t\t\titem.PartCategoryGroup,\r\n\t\t\t\t\titem.Manufacturer,\r\n\t\t\t\t\titem.ModelNumber,\r\n\t\t\t\t\titem.PartSellingPrice,\r\n\t\t\t\t\titem.dIGSTTax,\r\n\t\t\t\t\titem.dCGSTTax,\r\n\t\t\t\t\titem.dSGSTTax\r\n\t\t\t\t].join(\",\") + \"\\n\";\r\n\t\t\t}\r\n\r\n\t\t\tcsv.push(row);\r\n\t\t});\r\n\r\n\t\tvar csvContent = csv.join('');\r\n\t\tvar blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\r\n\t\tvar url = URL.createObjectURL(blob);\r\n\r\n\t\tvar a = document.createElement('a');\r\n\t\ta.href = url;\r\n\t\ta.target = '_blank';\r\n\t\ta.download = 'inventory_data.csv';\r\n\t\tdocument.body.appendChild(a);\r\n\t\ta.click();\r\n\t\tdocument.body.removeChild(a);\r\n\t};\r\n\r\n\tvm.PartBrand = '';\r\n\r\n\tvm.GetAllBrandMasterStringList = function () {\r\n\t\tvar data = {\r\n\t\t\t\"strBrandName\": \"\",\r\n\t\t\t\"strProductGroup\": \"\",\r\n\t\t\t\"strProductName\": \"\"\r\n\t\t}\r\n\t\tInventoryItemListService.GetAllBrandMasterStringList(data, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data) {\r\n\t\t\t\tvm.AllBrandList = resp.data;\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tvm.GetAllBrandMasterStringList();\r\n\r\n\tvm.GetAllProductGroupMasterStringList = function () {\r\n\t\tvar data = {\r\n\t\t\t\"strBrandName\": vm.PartBrand,\r\n\t\t\t\"strProductGroup\": \"\",\r\n\t\t\t\"strProductName\": \"\"\r\n\t\t}\r\n\t\tInventoryItemListService.GetAllProductGroupMasterStringList(data, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data) {\r\n\t\t\t\tvm.AllProductList = resp.data;\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\t////followup\r\n\tvm.OpenFollowUpModel = function (ticketId) {\r\n\t\tvm.followup = '';\r\n\t\tvm.tickId = ticketId;\r\n\t\tFollowUpModel = $uibModal.open({\r\n\t\t\ttemplateUrl: 'FollowupJob.html',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t\tsize: \"lg\",\r\n\t\t\tcontroller: ModalInstanceCtrlFollowUp,\r\n\t\t});\r\n\t}\r\n\r\n\tvm.CloseFollowUpModel = function () {\r\n\t\tvm.primaryFollowUpReason = '';\r\n\t\tvm.primaryFollowUpRemark = '';\r\n\t\tvm.primaryHoldReason = '';\r\n\t\tvm.primaryHoldRemark = '';\r\n\t\tvm.followFiles = null;\r\n\t\tFollowUpModel.close();\r\n\t}\r\n\r\n\tvm.GetFollowupReasons = function () {\r\n\t\tCentralHDTicketsViewService.GetReasonsByStatus(loggedinUser, token, 'FollowUp').then(function (resp) {\r\n\t\t\tif (resp && resp.data) {\r\n\t\t\t\tvm.reasonsForFU = resp.data;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tvm.GetFollowupReasons();\r\n\tvar ModalInstanceCtrlFollowUp = function ($scope, $rootScope, $uibModalInstance) {\r\n\t\tvm.updateFollowUpStatus = function () {\r\n\t\t\tvm.followupdialog.submitted = true\r\n\t\t\tif(vm.followupdialog.$valid){\r\n\t\t\tvar data = {};\r\n\t\t\tdata = {\r\n\t\t\t\t\"userId\": loggedinUser,\r\n\t\t\t\t\"dateTime\": \"\",\r\n\t\t\t\t\"activity\": \"\",\r\n\t\t\t\t\"action\": \"FOLLOW_UP\",\r\n\t\t\t\t\"userName\": \"\",\r\n\t\t\t\t\"ticketId\": vm.tickId,\r\n\t\t\t\t\"primaryReason\": vm.primaryFollowUpReason,\r\n\t\t\t\t\"SecondryReason\": \"\",\r\n\t\t\t\t\"ReasonComment\": vm.primaryFollowUpRemark\r\n\t\t\t}\r\n\t\t\tif (vm.followFiles != null) {\r\n\t\t\t\tCentralHDTicketsViewService.TicketFollowUp(data, vm.followFiles, token, loggedinUser, function (res) {\r\n\t\t\t\t\tif (res && res.status == 201) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.CloseFollowUpModel();\r\n\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t} else if (res && res.data && res.data.Message) {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", res.data.Message);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}, vm.showFailure);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tCentralHDTicketsViewService.TicketFollowUpWithoutDoc(data, token, loggedinUser, function (res) {\r\n\t\t\t\t\tif (res) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n\t\t\t\t\t\t\tvm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n\t\t\t\t\t\t}, 1000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.CloseFollowUpModel();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t}\r\n\r\n\r\n\tvm.GetAllFollowUpForJob = function (ticketId) {\r\n\t\tCentralHDTicketsViewService.GetAllFollowUpForJob(ticketId, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\tvm.getfollowUpList = resp.data;\r\n\t\t\t}\r\n\r\n\t\t}, function () {\r\n\t\t});\r\n\t}\r\n\r\n\tvm.pdfimage = \"\";\r\n\tvm.DocumentAvailableMessage = \"\";\r\n\tvm.downloadOnSiteReport = function (ticketId) {\r\n\t\tvm.PDFViewRport();\r\n\t\tCustomerCRMListService.downloadOnSiteReport(loggedinUser, token, ticketId).then(function (resp) {\r\n\t\t\tvm.responseDataList = resp.data;\r\n\t\t\tvar arrrayBuffer = base64ToArrayBuffer(vm.responseDataList);\r\n\t\t\tvar blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n\t\t\tvm.pdfimage = URL.createObjectURL(blob);\r\n\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t});\r\n\t}\r\n\tvm.PDFViewRport = function (page) {\r\n\t\tvm.pdfimage = \"\";\r\n\t\tvm.IsLoadSucessfull = false;\r\n\t\t$scope.selected = null;\r\n\t\tjobAppointmentModalReport = $uibModal.open({\r\n\t\t\ttemplateUrl: 'PDFViewDownload.html',\r\n\t\t\tsize: 'lg',\r\n\t\t\tscope: $scope\r\n\t\t});\r\n\r\n\t}\r\n\tvm.PDFUserModalReport = function () {\r\n\t\tjobAppointmentModalReport.close();\r\n\t}\r\n\r\n\tfunction base64ToArrayBuffer(base64) {\r\n\t\tvar ret = base64.replace('data:application/pdf;base64,', '');\r\n\t\tvar binaryString = atob(ret);\r\n\t\tvar binaryLen = binaryString.length;\r\n\t\tvar bytes = new Uint8Array(binaryLen);\r\n\t\tfor (var i = 0; i < binaryLen; i++) {\r\n\t\t\tvar ascii = binaryString.charCodeAt(i);\r\n\t\t\tbytes[i] = ascii;\r\n\t\t}\r\n\t\treturn bytes;\r\n\t}\r\n\r\n\r\n\tvm.GetAllProductMasterStringList = function () {\r\n\t\tvar data = {\r\n\t\t\t\"strBrandName\": vm.PartBrand,\r\n\t\t\t\"strProductGroup\": vm.PartCategoryGroup,\r\n\t\t\t\"strProductName\": \"\"\r\n\t\t}\r\n\t\tInventoryItemListService.GetAllProductMasterStringList(data, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.data) {\r\n\t\t\t\tvm.AllBrandProductList = resp.data;\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\tvm.clearFilter = function(){\r\n\t\tvm.searchTag = '';\r\n\t\tvm.brandName ='';\r\n\t\tvm.partName = '';\r\n\t\tvm.productGroup = '';\r\n\t\tvm.modelName = '';\r\n\t\tvm.selectedPart = '';\r\n\t\tvm.GetAllVisibleMasterParts();\r\n\t}\r\n\tvm.OpenShareDetails = function (Type) {\r\n\t\tvm.shareType = Type\r\n\t\tvm.opensharewithtype = $uibModal.open({\r\n\t\t\ttemplateUrl: 'ShareDetailwithtypeModal.html',\r\n\t\t\tsize: 'md',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\tvm.CloseAreaConfirmationModal = function () {\r\n\t\tvm.opensharewithtype.close();\r\n\t\tvm.phoneNumber = '';\r\n\t\tvm.infoemail = '';\r\n\t}\r\n\r\n\tvm.share = function(shareType) {\r\n\t\tvm.shareinfo_form.submitted = true;\r\n\t\tif (shareType === 'SMS' || shareType === 'Whatsapp') {\r\n\t\t if (vm.shareinfo_form.contactphone.$valid) {\r\n\t\t\tvm.showSuccess(\"Successfully Sending\" + shareType + 'to' + vm.phoneNumber);\r\n\t\t\tvm.CloseAreaConfirmationModal();\r\n\t\t } \r\n\t\t\r\n\t\t} else if (shareType === 'Email') {\r\n\t\t if (vm.shareinfo_form.emailid.$valid) {\r\n\t\t\tvm.showSuccess('Sending Email to', vm.infoemail);\r\n\t\t\tvm.CloseAreaConfirmationModal();\r\n\t\t } \r\n\t\t \r\n\t\t}\r\n\t };\r\n\r\n}\r\n\r\n});\r\n\nangular.module('inspinia').service('CustomerProfileService', function (ApiURL, $http) {\r\n\r\n this.getCustomerInfo = function (customerId,loggedinUser, token) {\r\n var url = ApiURL + \"/api/Customer/\"+ customerId +\"/GetCustomerWithJobDetails?reqUserId=\"+loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getJobsByCustomerId=function(customerId,loggedinUser)\r\n {\r\n var url =ApiURL + \"/api/Ticket/\" +customerId+\"/byCustomerId?reqUserId=\"+loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('CustomerProfileController', function ($state, $stateParams,$localStorage, CustomerProfileService, $log,DTColumnDefBuilder,DTOptionsBuilder) {\r\n var vm = this;\r\n var customerId = $stateParams.customerId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm.sparkline1 = [34, 43, 43, 35, 44, 32, 44, 52];\r\n\r\n vm.sparkline1Options={\r\n type: 'line',\r\n width: '100%',\r\n height: '50',\r\n lineColor: '#1ab394',\r\n fillColor: \"transparent\"\r\n };\r\n \r\nvm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers').withDisplayLength(10);\r\n\r\n getCustomerInfo(customerId,loggedinUser);\r\n getJobsByCustomerId(customerId,loggedinUser);\r\n\r\n function getCustomerInfo(customerId,loggedinUser) {\r\n CustomerProfileService.getCustomerInfo(customerId,loggedinUser).then(function (resp) {\r\n vm.customerInfo = resp.data;\r\n },\r\n function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n function getJobsByCustomerId(customerId,loggedinUser) {\r\n CustomerProfileService.getJobsByCustomerId(customerId,loggedinUser).then(function (resp) {\r\n vm.jobTickets = resp.data;\r\n }, function () {\r\n });\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').service('CustomerFormCreationLatestService', function (ApiURL, LocationURL, $log, $http, $localStorage,PublicApiURL) {\r\n var url = ApiURL + '/api/Customer';\r\n this.CreateCustomer = function (customerFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' + loggedinUser;\r\n return $http.post(url, customerFormData,{\r\n headers: { 'Content-Type': 'application/json','Token':token, 'UserId': loggedinUser}});\r\n }\r\n\r\n this.updateCustomer = function (customerFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' +loggedinUser;\r\n return $http.put(url, customerFormData,{\r\n headers: { 'Content-Type': 'application/json','Token':token, 'UserId': loggedinUser}});\r\n }\r\n\r\n //http://192.168.0.80/CoreAPI/api/Customer/CreateCustomer\r\n this.PostCustomer = function(data,loggedinUser,token){\r\n var url = ApiURL+ '/api/Customer/CreateCustomer';\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n //http://192.168.0.80/CoreAPI/api/Customer/UpdateCustomer\r\nthis.PutCustomer = function(data,loggedinUser,token){\r\n var url = ApiURL+'/api/Customer/UpdateCustomer';\r\n return $http.put(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId': loggedinUser}\r\n })\r\n}\r\n\r\n // this.getAllState = function () {\r\n // var url ='https://www.whizapi.com/api/v2/util/ui/in/indian-states-list?project-app-key=kikyizsnfakr15qmf9pruqj4';\r\n // return $http.get(url, {\r\n // params: {}\r\n // });\r\n // }\r\n \r\n // this.getAllCity = function (state) {\r\n // var url = 'https://www.whizapi.com/api/v2/util/ui/in/indian-city-by-state?stateid='+state+'&project-app-key=3p9plzgtuq9aoym4bsxc4l6k';\r\n // return $http.get(url);\r\n // }\r\n\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetRegion?userId=U370000000001\r\n this.GetRegion = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetRegion?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetSubRegion?userId=U370000000001®ion=North\r\n this.GetSubRegion = function(loggedInUserId, token, region){\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+ loggedInUserId + '®ion='+ region;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetCity?userId=U360000000001&subregion=noida\r\n this.GetCityBySubRegion = function(loggedInUserId, subRegion, token){\r\n var subRegion1 = subRegion.replace(\"&\", \"%26\");\r\n var url = PublicApiURL + '/api/Location/GetCity?userId='+ loggedInUserId + '&subregion='+ subRegion;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n\r\n this.getAllState = function (loggedinUser) {\r\n var url = LocationURL+'/api/Location/'+loggedinUser+'/GetAllStates';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n this.getAllCity = function (state) {\r\n var url = LocationURL+'/api/Location/'+$localStorage.loggedInUserId+'/'+state+'/GetCitiesByState';\r\n return $http.get(url);\r\n }\r\n\r\n this.getAllPincode = function () {\r\n var url = 'https://www.whizapi.com/api/v2/util/ui/in/indian-postal-codes?search=city&project-app-key=pso222ywjvx996b93gd8wpp6';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n \r\n});\nangular.module('inspinia').controller('CustomerFormLatestController', function (VendorCreationService,TeamFormCreationService, ProjectCreationService, $state, $timeout, $log, $stateParams, $localStorage, CustomerFormCreationLatestService, CustomerProfileService, toaster, $q, $scope) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n var circleArray;\r\n vm.isDisabled = false;\r\n vm.POCList = [];\r\n vm.circleArray='';\r\n if (!loggedinUser) {\r\n $state.go('Login',{\r\n reload:true\r\n });\r\n }else{\r\n if($state.current.name=='index.CustomerCreateLatest') {\r\n var POC_1 = {\r\n // FirstNameOf_1: \"\",\r\n // LastNameOf_1: \"\",\r\n // MobileOf_1: '',\r\n // OtherMobileOf_1: \"\",\r\n // EmailOf_1: \"\"\r\n };\r\n vm.POCList.push(POC_1);\r\n }\r\n \r\n angular.element(document).ready(function () {\r\n angular.element('ul[side-navigation]').find('a[ui-sref=\"index.CustomerNewLatest\"]').parent().prop('class', 'active');\r\n });\r\n\r\n ///Global Variables Declaration\r\n var customerId_ForUpdate = $stateParams.customerId;\r\n vm.saveAndNewFlag = false;\r\n vm.editMode = false;\r\n vm.address_option = 'Yes';\r\n vm.officeFormValidation = false;\r\n vm.isCollapsed = false;\r\n vm.isUserDetailCollapsed = false;\r\n vm.isOfficeUseCollapsed = true;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.UnqiueItemOneValue = vm.getAccountConfigSetting('UniqueOne');\r\n vm.UnqiueItemTwoValue = vm.getAccountConfigSetting('UniqueTwo');\r\n vm.title = '';\r\n vm.RegionList = '';\r\n // vm.CityList = '';\r\n vm.last_name = '';\r\n vm.gender = '';\r\n vm.address1 = '';\r\n vm.address2 = '';\r\n vm.permanent_city = '';\r\n vm.state = '';\r\n vm.pincode = '';\r\n vm.mobile_number = '';\r\n vm.other_number = '';\r\n vm.first_name = '';\r\n vm.email = '';\r\n vm.business_number = '';\r\n vm.company_name = '';\r\n vm.CustomerDescription = '';\r\n\r\n //var allStatePromise = getAllStates(loggedinUser);\r\n\r\n /*allStatePromise.then(function (resp) {\r\n vm.stateList = resp.data;\r\n if ($state.current.name == 'index.CustomerEdit') {\r\n vm.editMode = true;\r\n CustomerProfileService.getCustomerInfo(customerId_ForUpdate, loggedinUser,token).then(function (resp) {\r\n var customerData = resp.data;\r\n vm.address1 = customerData.Address1;\r\n vm.address2 = customerData.Address2;\r\n vm.gst = customerData.GSTNumber;\r\n vm.CustomerDescription = customerData.Description;\r\n vm.permanent_city = customerData.City;\r\n vm.state = customerData.State;\r\n vm.pincode = customerData.PinCode;\r\n vm.mobile_number = customerData.Mobile;\r\n vm.other_number = customerData.OtherMobile;\r\n vm.first_name = customerData.FirstName;\r\n vm.email = customerData.Email;\r\n vm.business_number = customerData.BusinessPhone;\r\n vm.CustomerId = customerData.CustomerId;\r\n vm.company_name = customerData.CompanyName;\r\n vm.companyUrl = customerData.Url;\r\n vm.CustomerId = customerData.CustomerId;\r\n ///Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i].state == vm.state) {\r\n vm.state = vm.stateList[i];\r\n vm.selectState(vm.state);\r\n }\r\n \r\n }\r\n\r\n for (var customerIndex = 0; customerIndex < customerData.CustomerLocationModels.length; customerIndex++) {\r\n var Customer = {};\r\n var i = 0;\r\n var CustomerLocationContactModels = [];\r\n Customer['RegionOf_'+ (customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].Region;\r\n Customer['SubRegionOf_'+ (customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].SubRegion;\r\n Customer['AddLine1Of_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].Address1;\r\n Customer['AddLine2Of_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].Address2;\r\n Customer['PincodeOf_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].Pincode;\r\n Customer['UniqueItem1Of_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].UniqueIdOne;\r\n Customer['UniqueItem2Of_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].UniqueIdTwo;\r\n Customer['SkillOf_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].SkillSet;\r\n if (customerData.CustomerLocationModels[customerIndex].CustomerLocationId) {\r\n Customer['CustomerLocationIdOf_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].CustomerLocationId;\r\n Customer['CustomerId_'+ (customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].CustomerId;\r\n Customer['update'] = true; \r\n }\r\n if (customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels.length>0) {\r\n Customer['FirstNameOf_'+(customerIndex+1)] = customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels[i].FirstName;\r\n Customer['LastNameOf_'+(customerIndex+1)] = customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels[i].LastName;\r\n Customer['EmailOf_'+(customerIndex+1)] = customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels[i].Email;\r\n Customer['MobileOf_'+(customerIndex+1)] = customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels[i].Mobile;\r\n Customer['OtherMobileOf_'+(customerIndex+1)] = customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels[i].OtherMobile;\r\n Customer['CcId_'+(customerIndex+1)] = customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels[i].CcId;\r\n }\r\n vm.selectRegion(customerData.CustomerLocationModels[customerIndex].Region);\r\n vm.POCList.push(Customer);\r\n }\r\n $log.log('vm.POCList',vm.POCList);\r\n \r\n });\r\n }\r\n }, function () {\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Customer Information',\r\n showCloseButton: true,\r\n body: 'unable to fetch customer information',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n });*/\r\n \r\n\r\n vm.GetAllSkills = function () {\r\n VendorCreationService.getAllSkills(loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.data.length > 0) {\r\n if (!angular.equals(vm.skills, resp.data)) {\r\n vm.skills = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n vm.GetAllSkills();\r\n ///To Add a new Customer \r\n vm.addCustomer = function () {\r\n // if (!vm.EnableRegion) {\r\n\r\n\r\n // var customerContactModel = [];\r\n\r\n // for (var custIndex = 0; custIndex < vm.POCList.length; custIndex++) {\r\n\r\n // if (vm.POCList[custIndex].DocId) {\r\n // var obj = {};\r\n // obj = {\r\n // \"DocId\": vm.POCList[custIndex]['DocId'],\r\n // \"FirstName\": vm.POCList[custIndex]['FirstNameOf_' + (custIndex + 1)],\r\n // \"LastName\": vm.POCList[custIndex]['LastNameOf_' + (custIndex + 1)],\r\n // \"Mobile\": vm.POCList[custIndex]['MobileOf_' + (custIndex + 1)],\r\n // \"OtherMobile\": vm.POCList[custIndex]['OtherMobileOf_' + (custIndex + 1)],\r\n // \"Email\": vm.POCList[custIndex]['EmailOf_' + (custIndex + 1)]\r\n // }\r\n \r\n // }else{\r\n // var obj = {};\r\n // obj = {\r\n // \"FirstName\": vm.POCList[custIndex]['FirstNameOf_' + (custIndex + 1)],\r\n // \"LastName\": vm.POCList[custIndex]['LastNameOf_' + (custIndex + 1)],\r\n // \"Mobile\": vm.POCList[custIndex]['MobileOf_' + (custIndex + 1)],\r\n // \"OtherMobile\": vm.POCList[custIndex]['OtherMobileOf_' + (custIndex + 1)],\r\n // \"Email\": vm.POCList[custIndex]['EmailOf_' + (custIndex + 1)]\r\n // }\r\n\r\n\r\n // }\r\n // customerContactModel.push(obj);\r\n // }\r\n\r\n // var formData = {\r\n // \"CompanyName\": vm.company_name,\r\n // \"Url\": vm.companyUrl,\r\n // \"BusinessPhone\": vm.business_number,\r\n // \"Address1\": vm.address1,\r\n // \"Address2\": vm.address2,\r\n // \"City\": vm.permanent_city,\r\n // \"State\": vm.state.state,\r\n // \"PinCode\": vm.pincode,\r\n // \"CustomerId\": vm.CustomerId,\r\n // \"GSTNumber\": vm.gst,\r\n // CustomerContactModels: customerContactModel\r\n // }\r\n\r\n // if (vm.customer_form.$valid) {\r\n // vm.isDisabled = true; \r\n // if (vm.editMode) {\r\n // CustomerFormCreationService.updateCustomer(angular.toJson(formData), loggedinUser, token).then(function (resp) {\r\n // if (resp.status == 202) {\r\n // toaster.pop({\r\n // type: 'success',\r\n // title: 'Customer Information',\r\n // showCloseButton: true,\r\n // body: 'Customer Updated Successfully',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n // vm.isDisabled = false; \r\n // $timeout(function () {\r\n // $state.go('index.CustomerNew', {\r\n // reload: true\r\n // });\r\n // }, 2000);\r\n // }\r\n // }, function () {\r\n // vm.isDisabled = false;\r\n // toaster.pop({\r\n // type: 'error',\r\n // title: 'Customer Creation Status ',\r\n // showCloseButton: true,\r\n // body: 'unable to update customer',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n // vm.isDisabled = false; \r\n // })\r\n // } else {\r\n // CustomerFormCreationService.CreateCustomer(angular.toJson(formData), loggedinUser, token).then(function (resp) {\r\n // if (resp.status == 201) {\r\n // vm.isDisabled = true;\r\n // if (!vm.saveAndNewFlag) {\r\n // toaster.pop({\r\n // type: 'success',\r\n // title: 'Customer Information',\r\n // showCloseButton: true,\r\n // body: 'Customer Created Successfully',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n // $timeout(function () {\r\n // $state.go('index.CustomerNew', {\r\n // reload: true\r\n // });\r\n // }, 2000);\r\n // } else if(resp.status == 104) {\r\n // toaster.pop({\r\n // type: 'error',\r\n // title: 'Customer Creation Status ',\r\n // showCloseButton: true,\r\n // body: 'Customer already exists',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n // vm.isDisabled = false; \r\n // } else {\r\n // toaster.pop({\r\n // type: 'success',\r\n // title: 'Customer Creation Status ',\r\n // showCloseButton: true,\r\n // body: 'Customer Created successfully',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n // vm.isDisabled = false; \r\n // clearFormFields();\r\n // }\r\n\r\n // } else {\r\n // vm.isDisabled = false;\r\n // var errorMsg = 'Error to create new customer';\r\n // if(resp.data.ErrorCode==617){\r\n // errorMsg = \"Customer already exists with name \"+formData.CompanyName;\r\n // }\r\n // toaster.pop({\r\n // type: 'error',\r\n // title: 'Customer Creation Status',\r\n // showCloseButton: true,\r\n // body: errorMsg,\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n\r\n // }\r\n // vm.isDisabled = false;\r\n // }, function () {\r\n // vm.isDisabled = false; \r\n // toaster.pop({\r\n // type: 'error',\r\n // title: 'Customer Creation Status ',\r\n // showCloseButton: true,\r\n // body: 'unable to connect to server',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n // });\r\n // }\r\n // } else {\r\n // vm.customer_form.submitted = true;\r\n // }\r\n // }else if (vm.EnableRegion) {\r\n\r\n var customerContactModel = [];\r\n\r\n\r\n for (var custIndex = 0; custIndex < vm.POCList.length; custIndex++) {\r\n\r\n if (vm.POCList[custIndex].update) {\r\n var obj = {};\r\n var CustomerLocationContactModels = [];\r\n obj = {\r\n \"CustomerLocationId\":vm.POCList[custIndex]['CustomerLocationIdOf_'+(custIndex+1)],\r\n \"Region\": vm.POCList[custIndex]['RegionOf_'+(custIndex+1)],\r\n \"SubRegion\": vm.POCList[custIndex]['SubRegionOf_'+(custIndex+1)],\r\n \"Address1\": vm.POCList[custIndex]['AddLine1Of_'+(custIndex+1)],\r\n \"Address2\": vm.POCList[custIndex]['AddLine2Of_'+(custIndex+1)],\r\n \"Pincode\": vm.POCList[custIndex]['PincodeOf_'+(custIndex+1)],\r\n \"UniqueIdOne\": vm.POCList[custIndex]['UniqueItem1Of_'+(custIndex+1)],\r\n \"UniqueIdTwo\": vm.POCList[custIndex]['UniqueItem2Of_'+(custIndex+1)],\r\n \"SkillSet\": vm.POCList[custIndex]['SkillOf_'+(custIndex+1)],\r\n \"City\":vm.POCList[custIndex]['CityOf_'+(custIndex+1)],\r\n \"CustomerLocationContactModels\": null\r\n }\r\n\r\n object ={\r\n \"CcId\":vm.POCList[custIndex]['CcId_'+(custIndex+1)],\r\n \"FirstName\": vm.POCList[custIndex]['FirstNameOf_' + (custIndex + 1)],\r\n \"LastName\": vm.POCList[custIndex]['LastNameOf_' + (custIndex + 1)],\r\n \"Mobile\": vm.POCList[custIndex]['MobileOf_' + (custIndex + 1)],\r\n \"OtherMobile\": vm.POCList[custIndex]['OtherMobileOf_' + (custIndex + 1)],\r\n \"Email\": vm.POCList[custIndex]['EmailOf_' + (custIndex + 1)]\r\n }\r\n CustomerLocationContactModels.push(object);\r\n obj.CustomerLocationContactModels = CustomerLocationContactModels;\r\n \r\n }else{\r\n var obj = {};\r\n var CustomerLocationContactModels = [];\r\n var object = {};\r\n obj = {\r\n \"Region\": vm.POCList[custIndex]['RegionOf_'+(custIndex+1)],\r\n \"SubRegion\": vm.POCList[custIndex]['SubRegionOf_'+(custIndex+1)],\r\n \"Address1\": vm.POCList[custIndex]['AddLine1Of_'+(custIndex+1)],\r\n \"Address2\": vm.POCList[custIndex]['AddLine2Of_'+(custIndex+1)],\r\n \"Pincode\": vm.POCList[custIndex]['PincodeOf_'+(custIndex+1)],\r\n \"UniqueIdOne\": vm.POCList[custIndex]['UniqueItem1Of_'+(custIndex+1)],\r\n \"UniqueIdTwo\": vm.POCList[custIndex]['UniqueItem2Of_'+(custIndex+1)],\r\n \"SkillSet\": vm.POCList[custIndex]['SkillOf_'+(custIndex+1)],\r\n \"City\":vm.POCList[custIndex]['CityOf_'+(custIndex+1)],\r\n \"CustomerLocationContactModels\": null\r\n }\r\n\r\n object ={\r\n \"FirstName\": vm.POCList[custIndex]['FirstNameOf_' + (custIndex + 1)],\r\n \"LastName\": vm.POCList[custIndex]['LastNameOf_' + (custIndex + 1)],\r\n \"Mobile\": vm.POCList[custIndex]['MobileOf_' + (custIndex + 1)],\r\n \"OtherMobile\": vm.POCList[custIndex]['OtherMobileOf_' + (custIndex + 1)],\r\n \"Email\": vm.POCList[custIndex]['EmailOf_' + (custIndex + 1)]\r\n }\r\n CustomerLocationContactModels.push(object);\r\n obj.CustomerLocationContactModels = CustomerLocationContactModels;\r\n\r\n }\r\n customerContactModel.push(obj);\r\n }\r\n\r\n $log.log('customerContactModel',customerContactModel);\r\n\r\n var formData = {\r\n \"ReqUserId\":loggedinUser,\r\n \"CustomerId\":vm.CustomerId,\r\n \"CustomerName\": vm.company_name,\r\n \"Url\": vm.companyUrl,\r\n \"BusinessPhone\": vm.business_number,\r\n \"GSTNumber\": vm.gst,\r\n \"Description\":vm.CustomerDescription,\r\n CustomerLocationModels: customerContactModel\r\n }\r\n\r\n if (vm.customer_form.$valid){\r\n vm.isDisabled = true; \r\n if (vm.editMode) {\r\n CustomerFormCreationLatestService.PutCustomer(angular.toJson(formData), loggedinUser,token).then(function (resp) {\r\n if (resp.status == 202) {\r\n toaster.pop({\r\n type: 'success',\r\n title: 'Customer Information',\r\n showCloseButton: true,\r\n body: 'Customer Updated Successfully',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n vm.isDisabled = false; \r\n $timeout(function () {\r\n $state.go('index.CustomerNewLatest', {\r\n reload: true\r\n });\r\n }, 2000);\r\n }\r\n }, function () {\r\n vm.isDisabled = false;\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Customer Creation Status ',\r\n showCloseButton: true,\r\n body: 'unable to update customer',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n vm.isDisabled = false; \r\n })\r\n }\r\n else {\r\n CustomerFormCreationLatestService.PostCustomer(angular.toJson(formData), loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.isDisabled = true;\r\n if (!vm.saveAndNewFlag) {\r\n toaster.pop({\r\n type: 'success',\r\n title: 'Customer Information',\r\n showCloseButton: true,\r\n body: 'Customer Created Successfully',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n $timeout(function () {\r\n $state.go('index.CustomerNewLatest', {\r\n reload: true\r\n });\r\n }, 2000);\r\n } else {\r\n toaster.pop({\r\n type: 'success',\r\n title: 'Customer Creation Status ',\r\n showCloseButton: true,\r\n body: 'Customer Created successfully',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n vm.isDisabled = false; \r\n clearFormFields();\r\n }\r\n\r\n } else {\r\n vm.isDisabled = false;\r\n var errorMsg = resp.data.Message;\r\n if(resp.data.ErrorCode==617){\r\n errorMsg = \"Customer already exists with name \"+formData.CompanyName;\r\n }\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Customer Creation Status',\r\n showCloseButton: true,\r\n body: errorMsg,\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n\r\n }\r\n vm.isDisabled = false;\r\n }, function () {\r\n vm.isDisabled = false; \r\n toaster.pop({\r\n type: 'error',\r\n title: 'Customer Creation Status ',\r\n showCloseButton: true,\r\n body: 'unable to connect to server',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n });\r\n }\r\n \r\n\r\n }else {\r\n vm.customer_form.submitted = true;\r\n }\r\n }\r\n function clearFormFields() {\r\n vm.gender = '';\r\n vm.address1 = '';\r\n vm.address2 = '';\r\n vm.permanent_city = '';\r\n vm.state = '';\r\n vm.pincode = '';\r\n vm.mobile_number = '';\r\n vm.company_name = '';\r\n vm.other_number = '';\r\n vm.email = '';\r\n vm.business_number = '';\r\n vm.companyUrl = '';\r\n }\r\n\r\n ///Save Customer and Add new Customer Function\r\n vm.saveAndNew = function () {\r\n vm.saveAndNewFlag = true;\r\n vm.addCustomer();\r\n }\r\n\r\n /*function getAllStates(loggedinUser) {\r\n var defered = $q.defer();\r\n CustomerFormCreationService.getAllState(loggedinUser).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n\r\n return defered.promise;\r\n }*/\r\n\r\n // vm.validatePincode =function(pin) {\r\n // TeamFormCreationService.validateAllPincode(pin).then(function (resp) {\r\n // vm.pincodes = resp.data;\r\n // if(vm.pincodes.ResponseMessage==\"PIN Code Does Not Exist\" && vm.pincode==pin){\r\n // vm.pincode='';\r\n // }\r\n // }, function () {\r\n // //$log.log('error');\r\n // });\r\n // }\r\n\r\n vm.selectedcity= function(currentInedx)\r\n {\r\n debugger\r\n //['CityOf_'+(currentInedx+1)]=poc['CityOf_' + (currentInedx +1)];\r\n var ss= vm.POCList\r\n\r\n }\r\n\r\n\r\n vm.selectState = function (state) {\r\n var Getstate =state.state;\r\n CustomerFormCreationLatestService.getAllCity(Getstate).then(function (resp) {\r\n vm.cityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state.state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n vm.addPointOfContact = function () {\r\n var ele = {\r\n\r\n }\r\n vm.POCList.push(ele);\r\n }\r\n\r\n vm.removePoc = function () {\r\n var lastpoc = vm.POCList.length - 1;\r\n vm.POCList.splice(lastpoc);\r\n }\r\n\r\n vm.getAllCircles = function(loggedinUser){\r\n\r\n CustomerFormCreationLatestService.GetRegion(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200 && resp.data && resp.data.values.length>0) {\r\n vm.RegionList = resp.data.values;\r\n $log.log('RegionList',vm.RegionList)\r\n }\r\n })\r\n\r\n // ProjectCreationService.GetAllCircles(loggedinUser).then(function(resp) {\r\n // vm.circles = resp.data;\r\n // vm.circleArray = vm.circleArray || [];\r\n // for (var index = 0; index < vm.circles.length; index++) {\r\n // vm.circleArray.push({\r\n // workArea: vm.circles.circle\r\n // });\r\n // }\r\n // }, function() {\r\n // //$log.log('not working');\r\n // });\r\n }\r\n vm.selectSubRegion = function(region, index){\r\n debugger \r\n CustomerFormCreationLatestService.GetSubRegion(loggedinUser, token, region).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.values.length>0) { \r\n if(index==1)\r\n vm.SubRegionList1 = resp.data.values;\r\n if(index==2)\r\n vm.SubRegionList2 = resp.data.values;\r\n if(index==3)\r\n vm.SubRegionList3 = resp.data.values;\r\n if(index==4)\r\n vm.SubRegionList4 = resp.data.values;\r\n if(index==5)\r\n vm.SubRegionList5 = resp.data.values; \r\n if(index==6)\r\n vm.SubRegionList6 = resp.data.values; \r\n if(index==7)\r\n vm.SubRegionList7 = resp.data.values; \r\n }\r\n }\r\n })\r\n }\r\n vm.selectCitySubRegion = function(subregion,index){\r\n debugger\r\n CustomerFormCreationLatestService.GetCityBySubRegion(loggedinUser, subregion, token).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n // vm.CityList = resp.data.values;\r\n if(index==1)\r\n vm.CityList1 = resp.data.values;\r\n if(index==2)\r\n vm.CityList2 = resp.data.values;\r\n if(index==3)\r\n vm.CityList3 = resp.data.values;\r\n if(index==4)\r\n vm.CityList4 = resp.data.values;\r\n if(index==5)\r\n vm.CityList5 = resp.data.values;\r\n if(index==6)\r\n vm.CityList6 = resp.data.values; \r\n if(index==7)\r\n vm.CityList7 = resp.data.values; \r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.getAllCircles(loggedinUser);\r\n\r\n vm.selectFiles = function () {\r\n //angular.element(\"#selectFiles\").val(null);\r\n angular.element(\"#selectFiles\").trigger(\"click\");\r\n vm.showMessage = \"\";\r\n }\r\n\r\n vm.uploadFiles = function ($file) {\r\n $log.log($files);\r\n vm.profilePic = $file[0];\r\n if (vm.profilePic.type == \"image/jpeg\" || vm.profilePic.type == \"image/gif\" || vm.profilePic.type == \"image/png\") {\r\n var reader = new FileReader();\r\n reader.onload = function (e) {\r\n $('#profilePic').attr('src', e.target.result);\r\n };\r\n reader.readAsDataURL(vm.profilePic);\r\n vm.showMessage = \"\";\r\n } else {\r\n vm.showMessage = \"The file type is not recognized, please select valid format. eg. jpeg, gif, png\";\r\n }\r\n vm.profilePicName = vm.profilePic.name;\r\n }\r\n\r\n }\r\n \r\n});\r\n\nangular.module('inspinia').service('customerCardService', function (ApiURL,$log,$http) {\r\n\r\n this.getAllCustomerList = function (loggedinUser) {\r\n var url = ApiURL + '/api/Customer/GetCustomersWithJobDetails?reqUserId=' +loggedinUser;\r\n return $http.get(url,{headers: { 'Content-Type': 'application/json' }});\r\n } \r\n\r\n this.getAllProjectList = function (loggedinUser,customerId) {\r\n var url = ApiURL + '/api/Project/'+loggedinUser+'/'+customerId+'/GetProjectsByCustomerId';\r\n return $http.get(url,{headers: { 'Content-Type': 'application/json' }});\r\n } \r\n\r\n});\r\n\nangular.module('inspinia').controller('CustomerCardController', function ($state, customerCardService, $log, $localStorage, bulkuploadService) {\r\n var vm = this;\r\n vm.customers = [];\r\n vm.currentPage = 1;\r\n vm.pageSize = 12;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n bulkuploadService.bulkuploadType = 'customer';\r\nvm.availableSearchParams = [\r\n { key: \"State\", name: \"State\", placeholder: \"State...\" },\r\n { key: \"City\", name: \"City\", placeholder: \"City...\" },\r\n { key: \"CompanyName\", name: \"CompanyName\", placeholder: \"CompanyName...\" }\r\n // { key: \"city\", name: \"City\", placeholder: \"City...\" },\r\n // { key: \"country\", name: \"Country\", placeholder: \"Country...\" },\r\n // { key: \"emailAddress\", name: \"E-Mail\", placeholder: \"E-Mail...\", allowMultiple: true },\r\n // { key: \"job\", name: \"Job\", placeholder: \"Job...\" }\r\n ];\r\n getAllCustomer(loggedinUser);\r\n function getAllCustomer(loggedinUser) {\r\n customerCardService.getAllCustomerList(loggedinUser).then(function (resp) {\r\n vm.customers = resp.data;\r\n },\r\n function () {\r\n //$log.log('not working');\r\n })\r\n }\r\n\r\n vm.ProfileView = function (customer) {\r\n $state.go('index.CustomerProfile', {\r\n customerId: customer\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.editCustomer = function (customerName) {\r\n $state.go('index.CustomerEdit', {\r\n customerId: customerName\r\n });\r\n }\r\n\r\n vm.pageChangeHandler = function(num) {\r\n console.log('meals page changed to ' + num);\r\n };\r\n\r\n});\r\n\r\nangular.module('inspinia').controller('OtherController',function($scope) {\r\n $scope.pageChangeHandler = function(num) {\r\n console.log('going to page ' + num);\r\n };\r\n});\nangular.module('inspinia').service('CustomerFormCreationService', function (ApiURL, LocationURL, $log, $http, $localStorage,PublicApiURL) {\r\n var url = ApiURL + '/api/Customer';\r\n this.CreateCustomer = function (customerFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' + loggedinUser;\r\n return $http.post(url, customerFormData,{\r\n headers: { 'Content-Type': 'application/json','Token':token, 'UserId': loggedinUser}});\r\n }\r\n\r\n this.updateCustomer = function (customerFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' +loggedinUser;\r\n return $http.put(url, customerFormData,{\r\n headers: { 'Content-Type': 'application/json','Token':token, 'UserId': loggedinUser}});\r\n }\r\n\r\n //http://192.168.0.80/CoreAPI/api/Customer/CreateCustomer\r\n this.PostCustomer = function(data,loggedinUser,token){\r\n var url = ApiURL+ '/api/Customer/CreateCustomer';\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n //http://192.168.0.80/CoreAPI/api/Customer/UpdateCustomer\r\nthis.PutCustomer = function(data,loggedinUser,token){\r\n var url = ApiURL+'/api/Customer/UpdateCustomer';\r\n return $http.put(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId': loggedinUser}\r\n })\r\n}\r\n\r\n // this.getAllState = function () {\r\n // var url ='https://www.whizapi.com/api/v2/util/ui/in/indian-states-list?project-app-key=kikyizsnfakr15qmf9pruqj4';\r\n // return $http.get(url, {\r\n // params: {}\r\n // });\r\n // }\r\n \r\n // this.getAllCity = function (state) {\r\n // var url = 'https://www.whizapi.com/api/v2/util/ui/in/indian-city-by-state?stateid='+state+'&project-app-key=3p9plzgtuq9aoym4bsxc4l6k';\r\n // return $http.get(url);\r\n // }\r\n\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetRegion?userId=U370000000001\r\n this.GetRegion = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetRegion?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetSubRegion?userId=U370000000001®ion=North\r\n this.GetSubRegion = function(loggedInUserId, token, region){\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+ loggedInUserId + '®ion='+ region;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetCity?userId=U360000000001&subregion=noida\r\n this.GetCityBySubRegion = function(loggedInUserId, subRegion, token){\r\n var subRegion1 = subRegion.replace(\"&\", \"%26\");\r\n var url = PublicApiURL + '/api/Location/GetCity?userId='+ loggedInUserId + '&subregion='+ subRegion;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId': loggedInUserId}\r\n })\r\n }\r\n\r\n this.getAllState = function (loggedinUser) {\r\n var url = LocationURL+'/api/Location/'+loggedinUser+'/GetAllStates';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n this.getAllCity = function (state) {\r\n var url = LocationURL+'/api/Location/'+$localStorage.loggedInUserId+'/'+state+'/GetCitiesByState';\r\n return $http.get(url);\r\n }\r\n\r\n this.getAllPincode = function () {\r\n var url = 'https://www.whizapi.com/api/v2/util/ui/in/indian-postal-codes?search=city&project-app-key=pso222ywjvx996b93gd8wpp6';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n \r\n});\nangular.module('inspinia').controller('CustomerFormController', function (VendorCreationService,TeamFormCreationService, ProjectCreationService, $state, $timeout, $log, $stateParams, $localStorage, CustomerFormCreationService, CustomerProfileService, toaster, $q, $scope) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n var circleArray;\r\n vm.isDisabled = false;\r\n vm.POCList = [];\r\n vm.circleArray='';\r\n if (!loggedinUser) {\r\n $state.go('Login',{\r\n reload:true\r\n });\r\n }else{\r\n if($state.current.name=='index.CustomerCreate') {\r\n var POC_1 = {\r\n // FirstNameOf_1: \"\",\r\n // LastNameOf_1: \"\",\r\n // MobileOf_1: '',\r\n // OtherMobileOf_1: \"\",\r\n // EmailOf_1: \"\"\r\n };\r\n vm.POCList.push(POC_1);\r\n }\r\n \r\n angular.element(document).ready(function () {\r\n angular.element('ul[side-navigation]').find('a[ui-sref=\"index.CustomerNew\"]').parent().prop('class', 'active');\r\n });\r\n\r\n ///Global Variables Declaration\r\n var customerId_ForUpdate = $stateParams.customerId;\r\n vm.saveAndNewFlag = false;\r\n vm.editMode = false;\r\n vm.address_option = 'Yes';\r\n vm.officeFormValidation = false;\r\n vm.isCollapsed = false;\r\n vm.isUserDetailCollapsed = false;\r\n vm.isOfficeUseCollapsed = true;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.UnqiueItemOneValue = vm.getAccountConfigSetting('UniqueOne');\r\n vm.UnqiueItemTwoValue = vm.getAccountConfigSetting('UniqueTwo');\r\n vm.title = '';\r\n vm.RegionList = '';\r\n // vm.CityList = '';\r\n vm.last_name = '';\r\n vm.gender = '';\r\n vm.address1 = '';\r\n vm.address2 = '';\r\n vm.permanent_city = '';\r\n vm.state = '';\r\n vm.pincode = '';\r\n vm.mobile_number = '';\r\n vm.other_number = '';\r\n vm.first_name = '';\r\n vm.email = '';\r\n vm.business_number = '';\r\n vm.company_name = '';\r\n vm.CustomerDescription = '';\r\n\r\n //var allStatePromise = getAllStates(loggedinUser);\r\n\r\n /*allStatePromise.then(function (resp) {\r\n vm.stateList = resp.data;\r\n if ($state.current.name == 'index.CustomerEdit') {\r\n vm.editMode = true;\r\n CustomerProfileService.getCustomerInfo(customerId_ForUpdate, loggedinUser,token).then(function (resp) {\r\n var customerData = resp.data;\r\n vm.address1 = customerData.Address1;\r\n vm.address2 = customerData.Address2;\r\n vm.gst = customerData.GSTNumber;\r\n vm.CustomerDescription = customerData.Description;\r\n vm.permanent_city = customerData.City;\r\n vm.state = customerData.State;\r\n vm.pincode = customerData.PinCode;\r\n vm.mobile_number = customerData.Mobile;\r\n vm.other_number = customerData.OtherMobile;\r\n vm.first_name = customerData.FirstName;\r\n vm.email = customerData.Email;\r\n vm.business_number = customerData.BusinessPhone;\r\n vm.CustomerId = customerData.CustomerId;\r\n vm.company_name = customerData.CompanyName;\r\n vm.companyUrl = customerData.Url;\r\n vm.CustomerId = customerData.CustomerId;\r\n ///Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i].state == vm.state) {\r\n vm.state = vm.stateList[i];\r\n vm.selectState(vm.state);\r\n }\r\n \r\n }\r\n\r\n for (var customerIndex = 0; customerIndex < customerData.CustomerLocationModels.length; customerIndex++) {\r\n var Customer = {};\r\n var i = 0;\r\n var CustomerLocationContactModels = [];\r\n Customer['RegionOf_'+ (customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].Region;\r\n Customer['SubRegionOf_'+ (customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].SubRegion;\r\n Customer['AddLine1Of_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].Address1;\r\n Customer['AddLine2Of_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].Address2;\r\n Customer['PincodeOf_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].Pincode;\r\n Customer['UniqueItem1Of_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].UniqueIdOne;\r\n Customer['UniqueItem2Of_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].UniqueIdTwo;\r\n Customer['SkillOf_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].SkillSet;\r\n if (customerData.CustomerLocationModels[customerIndex].CustomerLocationId) {\r\n Customer['CustomerLocationIdOf_'+(customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].CustomerLocationId;\r\n Customer['CustomerId_'+ (customerIndex+1)]=customerData.CustomerLocationModels[customerIndex].CustomerId;\r\n Customer['update'] = true; \r\n }\r\n if (customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels.length>0) {\r\n Customer['FirstNameOf_'+(customerIndex+1)] = customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels[i].FirstName;\r\n Customer['LastNameOf_'+(customerIndex+1)] = customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels[i].LastName;\r\n Customer['EmailOf_'+(customerIndex+1)] = customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels[i].Email;\r\n Customer['MobileOf_'+(customerIndex+1)] = customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels[i].Mobile;\r\n Customer['OtherMobileOf_'+(customerIndex+1)] = customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels[i].OtherMobile;\r\n Customer['CcId_'+(customerIndex+1)] = customerData.CustomerLocationModels[customerIndex].CustomerLocationContactModels[i].CcId;\r\n }\r\n vm.selectRegion(customerData.CustomerLocationModels[customerIndex].Region);\r\n vm.POCList.push(Customer);\r\n }\r\n $log.log('vm.POCList',vm.POCList);\r\n \r\n });\r\n }\r\n }, function () {\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Customer Information',\r\n showCloseButton: true,\r\n body: 'unable to fetch customer information',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n });*/\r\n \r\n\r\n vm.GetAllSkills = function () {\r\n VendorCreationService.getAllSkills(loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.data.length > 0) {\r\n if (!angular.equals(vm.skills, resp.data)) {\r\n vm.skills = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n vm.GetAllSkills();\r\n ///To Add a new Customer \r\n vm.addCustomer = function () {\r\n // if (!vm.EnableRegion) {\r\n\r\n\r\n // var customerContactModel = [];\r\n\r\n // for (var custIndex = 0; custIndex < vm.POCList.length; custIndex++) {\r\n\r\n // if (vm.POCList[custIndex].DocId) {\r\n // var obj = {};\r\n // obj = {\r\n // \"DocId\": vm.POCList[custIndex]['DocId'],\r\n // \"FirstName\": vm.POCList[custIndex]['FirstNameOf_' + (custIndex + 1)],\r\n // \"LastName\": vm.POCList[custIndex]['LastNameOf_' + (custIndex + 1)],\r\n // \"Mobile\": vm.POCList[custIndex]['MobileOf_' + (custIndex + 1)],\r\n // \"OtherMobile\": vm.POCList[custIndex]['OtherMobileOf_' + (custIndex + 1)],\r\n // \"Email\": vm.POCList[custIndex]['EmailOf_' + (custIndex + 1)]\r\n // }\r\n \r\n // }else{\r\n // var obj = {};\r\n // obj = {\r\n // \"FirstName\": vm.POCList[custIndex]['FirstNameOf_' + (custIndex + 1)],\r\n // \"LastName\": vm.POCList[custIndex]['LastNameOf_' + (custIndex + 1)],\r\n // \"Mobile\": vm.POCList[custIndex]['MobileOf_' + (custIndex + 1)],\r\n // \"OtherMobile\": vm.POCList[custIndex]['OtherMobileOf_' + (custIndex + 1)],\r\n // \"Email\": vm.POCList[custIndex]['EmailOf_' + (custIndex + 1)]\r\n // }\r\n\r\n\r\n // }\r\n // customerContactModel.push(obj);\r\n // }\r\n\r\n // var formData = {\r\n // \"CompanyName\": vm.company_name,\r\n // \"Url\": vm.companyUrl,\r\n // \"BusinessPhone\": vm.business_number,\r\n // \"Address1\": vm.address1,\r\n // \"Address2\": vm.address2,\r\n // \"City\": vm.permanent_city,\r\n // \"State\": vm.state.state,\r\n // \"PinCode\": vm.pincode,\r\n // \"CustomerId\": vm.CustomerId,\r\n // \"GSTNumber\": vm.gst,\r\n // CustomerContactModels: customerContactModel\r\n // }\r\n\r\n // if (vm.customer_form.$valid) {\r\n // vm.isDisabled = true; \r\n // if (vm.editMode) {\r\n // CustomerFormCreationService.updateCustomer(angular.toJson(formData), loggedinUser, token).then(function (resp) {\r\n // if (resp.status == 202) {\r\n // toaster.pop({\r\n // type: 'success',\r\n // title: 'Customer Information',\r\n // showCloseButton: true,\r\n // body: 'Customer Updated Successfully',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n // vm.isDisabled = false; \r\n // $timeout(function () {\r\n // $state.go('index.CustomerNew', {\r\n // reload: true\r\n // });\r\n // }, 2000);\r\n // }\r\n // }, function () {\r\n // vm.isDisabled = false;\r\n // toaster.pop({\r\n // type: 'error',\r\n // title: 'Customer Creation Status ',\r\n // showCloseButton: true,\r\n // body: 'unable to update customer',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n // vm.isDisabled = false; \r\n // })\r\n // } else {\r\n // CustomerFormCreationService.CreateCustomer(angular.toJson(formData), loggedinUser, token).then(function (resp) {\r\n // if (resp.status == 201) {\r\n // vm.isDisabled = true;\r\n // if (!vm.saveAndNewFlag) {\r\n // toaster.pop({\r\n // type: 'success',\r\n // title: 'Customer Information',\r\n // showCloseButton: true,\r\n // body: 'Customer Created Successfully',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n // $timeout(function () {\r\n // $state.go('index.CustomerNew', {\r\n // reload: true\r\n // });\r\n // }, 2000);\r\n // } else if(resp.status == 104) {\r\n // toaster.pop({\r\n // type: 'error',\r\n // title: 'Customer Creation Status ',\r\n // showCloseButton: true,\r\n // body: 'Customer already exists',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n // vm.isDisabled = false; \r\n // } else {\r\n // toaster.pop({\r\n // type: 'success',\r\n // title: 'Customer Creation Status ',\r\n // showCloseButton: true,\r\n // body: 'Customer Created successfully',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n // vm.isDisabled = false; \r\n // clearFormFields();\r\n // }\r\n\r\n // } else {\r\n // vm.isDisabled = false;\r\n // var errorMsg = 'Error to create new customer';\r\n // if(resp.data.ErrorCode==617){\r\n // errorMsg = \"Customer already exists with name \"+formData.CompanyName;\r\n // }\r\n // toaster.pop({\r\n // type: 'error',\r\n // title: 'Customer Creation Status',\r\n // showCloseButton: true,\r\n // body: errorMsg,\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n\r\n // }\r\n // vm.isDisabled = false;\r\n // }, function () {\r\n // vm.isDisabled = false; \r\n // toaster.pop({\r\n // type: 'error',\r\n // title: 'Customer Creation Status ',\r\n // showCloseButton: true,\r\n // body: 'unable to connect to server',\r\n // \"progressBar\": true,\r\n // \"preventDuplicates\": false,\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000,\r\n // positionClass: 'toast-top-full-width'\r\n // });\r\n // });\r\n // }\r\n // } else {\r\n // vm.customer_form.submitted = true;\r\n // }\r\n // }else if (vm.EnableRegion) {\r\n\r\n var customerContactModel = [];\r\n\r\n\r\n for (var custIndex = 0; custIndex < vm.POCList.length; custIndex++) {\r\n\r\n if (vm.POCList[custIndex].update) {\r\n var obj = {};\r\n var CustomerLocationContactModels = [];\r\n obj = {\r\n \"CustomerLocationId\":vm.POCList[custIndex]['CustomerLocationIdOf_'+(custIndex+1)],\r\n \"Region\": vm.POCList[custIndex]['RegionOf_'+(custIndex+1)],\r\n \"SubRegion\": vm.POCList[custIndex]['SubRegionOf_'+(custIndex+1)],\r\n \"Address1\": vm.POCList[custIndex]['AddLine1Of_'+(custIndex+1)],\r\n \"Address2\": vm.POCList[custIndex]['AddLine2Of_'+(custIndex+1)],\r\n \"Pincode\": vm.POCList[custIndex]['PincodeOf_'+(custIndex+1)],\r\n \"UniqueIdOne\": vm.POCList[custIndex]['UniqueItem1Of_'+(custIndex+1)],\r\n \"UniqueIdTwo\": vm.POCList[custIndex]['UniqueItem2Of_'+(custIndex+1)],\r\n \"SkillSet\": vm.POCList[custIndex]['SkillOf_'+(custIndex+1)],\r\n \"City\":vm.POCList[custIndex]['CityOf_'+(custIndex+1)],\r\n \"CustomerLocationContactModels\": null\r\n }\r\n\r\n object ={\r\n \"CcId\":vm.POCList[custIndex]['CcId_'+(custIndex+1)],\r\n \"FirstName\": vm.POCList[custIndex]['FirstNameOf_' + (custIndex + 1)],\r\n \"LastName\": vm.POCList[custIndex]['LastNameOf_' + (custIndex + 1)],\r\n \"Mobile\": vm.POCList[custIndex]['MobileOf_' + (custIndex + 1)],\r\n \"OtherMobile\": vm.POCList[custIndex]['OtherMobileOf_' + (custIndex + 1)],\r\n \"Email\": vm.POCList[custIndex]['EmailOf_' + (custIndex + 1)]\r\n }\r\n CustomerLocationContactModels.push(object);\r\n obj.CustomerLocationContactModels = CustomerLocationContactModels;\r\n \r\n }else{\r\n var obj = {};\r\n var CustomerLocationContactModels = [];\r\n var object = {};\r\n obj = {\r\n \"Region\": vm.POCList[custIndex]['RegionOf_'+(custIndex+1)],\r\n \"SubRegion\": vm.POCList[custIndex]['SubRegionOf_'+(custIndex+1)],\r\n \"Address1\": vm.POCList[custIndex]['AddLine1Of_'+(custIndex+1)],\r\n \"Address2\": vm.POCList[custIndex]['AddLine2Of_'+(custIndex+1)],\r\n \"Pincode\": vm.POCList[custIndex]['PincodeOf_'+(custIndex+1)],\r\n \"UniqueIdOne\": vm.POCList[custIndex]['UniqueItem1Of_'+(custIndex+1)],\r\n \"UniqueIdTwo\": vm.POCList[custIndex]['UniqueItem2Of_'+(custIndex+1)],\r\n \"SkillSet\": vm.POCList[custIndex]['SkillOf_'+(custIndex+1)],\r\n \"City\":vm.POCList[custIndex]['CityOf_'+(custIndex+1)],\r\n \"CustomerLocationContactModels\": null\r\n }\r\n\r\n object ={\r\n \"FirstName\": vm.POCList[custIndex]['FirstNameOf_' + (custIndex + 1)],\r\n \"LastName\": vm.POCList[custIndex]['LastNameOf_' + (custIndex + 1)],\r\n \"Mobile\": vm.POCList[custIndex]['MobileOf_' + (custIndex + 1)],\r\n \"OtherMobile\": vm.POCList[custIndex]['OtherMobileOf_' + (custIndex + 1)],\r\n \"Email\": vm.POCList[custIndex]['EmailOf_' + (custIndex + 1)]\r\n }\r\n CustomerLocationContactModels.push(object);\r\n obj.CustomerLocationContactModels = CustomerLocationContactModels;\r\n\r\n }\r\n customerContactModel.push(obj);\r\n }\r\n\r\n $log.log('customerContactModel',customerContactModel);\r\n\r\n var formData = {\r\n \"ReqUserId\":loggedinUser,\r\n \"CustomerId\":vm.CustomerId,\r\n \"CustomerName\": vm.company_name,\r\n \"Url\": vm.companyUrl,\r\n \"BusinessPhone\": vm.business_number,\r\n \"GSTNumber\": vm.gst,\r\n \"Description\":vm.CustomerDescription,\r\n CustomerLocationModels: customerContactModel\r\n }\r\n\r\n if (vm.customer_form.$valid){\r\n vm.isDisabled = true; \r\n if (vm.editMode) {\r\n CustomerFormCreationService.PutCustomer(angular.toJson(formData), loggedinUser,token).then(function (resp) {\r\n if (resp.status == 202) {\r\n toaster.pop({\r\n type: 'success',\r\n title: 'Customer Information',\r\n showCloseButton: true,\r\n body: 'Customer Updated Successfully',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n vm.isDisabled = false; \r\n $timeout(function () {\r\n $state.go('index.CustomerNew', {\r\n reload: true\r\n });\r\n }, 2000);\r\n }\r\n }, function () {\r\n vm.isDisabled = false;\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Customer Creation Status ',\r\n showCloseButton: true,\r\n body: 'unable to update customer',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n vm.isDisabled = false; \r\n })\r\n }\r\n else {\r\n CustomerFormCreationService.PostCustomer(angular.toJson(formData), loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.isDisabled = true;\r\n if (!vm.saveAndNewFlag) {\r\n toaster.pop({\r\n type: 'success',\r\n title: 'Customer Information',\r\n showCloseButton: true,\r\n body: 'Customer Created Successfully',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n $timeout(function () {\r\n $state.go('index.CustomerNew', {\r\n reload: true\r\n });\r\n }, 2000);\r\n } else {\r\n toaster.pop({\r\n type: 'success',\r\n title: 'Customer Creation Status ',\r\n showCloseButton: true,\r\n body: 'Customer Created successfully',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n vm.isDisabled = false; \r\n clearFormFields();\r\n }\r\n\r\n } else {\r\n vm.isDisabled = false;\r\n var errorMsg = resp.data.Message;\r\n if(resp.data.ErrorCode==617){\r\n errorMsg = \"Customer already exists with name \"+formData.CompanyName;\r\n }\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Customer Creation Status',\r\n showCloseButton: true,\r\n body: errorMsg,\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n\r\n }\r\n vm.isDisabled = false;\r\n }, function () {\r\n vm.isDisabled = false; \r\n toaster.pop({\r\n type: 'error',\r\n title: 'Customer Creation Status ',\r\n showCloseButton: true,\r\n body: 'unable to connect to server',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n });\r\n }\r\n \r\n\r\n }else {\r\n vm.customer_form.submitted = true;\r\n }\r\n }\r\n function clearFormFields() {\r\n vm.gender = '';\r\n vm.address1 = '';\r\n vm.address2 = '';\r\n vm.permanent_city = '';\r\n vm.state = '';\r\n vm.pincode = '';\r\n vm.mobile_number = '';\r\n vm.company_name = '';\r\n vm.other_number = '';\r\n vm.email = '';\r\n vm.business_number = '';\r\n vm.companyUrl = '';\r\n }\r\n\r\n ///Save Customer and Add new Customer Function\r\n vm.saveAndNew = function () {\r\n vm.saveAndNewFlag = true;\r\n vm.addCustomer();\r\n }\r\n\r\n /*function getAllStates(loggedinUser) {\r\n var defered = $q.defer();\r\n CustomerFormCreationService.getAllState(loggedinUser).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n\r\n return defered.promise;\r\n }*/\r\n\r\n // vm.validatePincode =function(pin) {\r\n // TeamFormCreationService.validateAllPincode(pin).then(function (resp) {\r\n // vm.pincodes = resp.data;\r\n // if(vm.pincodes.ResponseMessage==\"PIN Code Does Not Exist\" && vm.pincode==pin){\r\n // vm.pincode='';\r\n // }\r\n // }, function () {\r\n // //$log.log('error');\r\n // });\r\n // }\r\n\r\n vm.selectedcity= function(currentInedx)\r\n {\r\n debugger\r\n //['CityOf_'+(currentInedx+1)]=poc['CityOf_' + (currentInedx +1)];\r\n var ss= vm.POCList\r\n\r\n }\r\n\r\n\r\n vm.selectState = function (state) {\r\n var Getstate =state.state;\r\n CustomerFormCreationService.getAllCity(Getstate).then(function (resp) {\r\n vm.cityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state.state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n vm.addPointOfContact = function () {\r\n var ele = {\r\n\r\n }\r\n vm.POCList.push(ele);\r\n }\r\n\r\n vm.removePoc = function () {\r\n var lastpoc = vm.POCList.length - 1;\r\n vm.POCList.splice(lastpoc);\r\n }\r\n\r\n vm.getAllCircles = function(loggedinUser){\r\n\r\n CustomerFormCreationService.GetRegion(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200 && resp.data && resp.data.values.length>0) {\r\n vm.RegionList = resp.data.values;\r\n $log.log('RegionList',vm.RegionList)\r\n }\r\n })\r\n\r\n // ProjectCreationService.GetAllCircles(loggedinUser).then(function(resp) {\r\n // vm.circles = resp.data;\r\n // vm.circleArray = vm.circleArray || [];\r\n // for (var index = 0; index < vm.circles.length; index++) {\r\n // vm.circleArray.push({\r\n // workArea: vm.circles.circle\r\n // });\r\n // }\r\n // }, function() {\r\n // //$log.log('not working');\r\n // });\r\n }\r\n vm.selectSubRegion = function(region, index){\r\n debugger \r\n CustomerFormCreationService.GetSubRegion(loggedinUser, token, region).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.values.length>0) { \r\n if(index==1)\r\n vm.SubRegionList1 = resp.data.values;\r\n if(index==2)\r\n vm.SubRegionList2 = resp.data.values;\r\n if(index==3)\r\n vm.SubRegionList3 = resp.data.values;\r\n if(index==4)\r\n vm.SubRegionList4 = resp.data.values;\r\n if(index==5)\r\n vm.SubRegionList5 = resp.data.values; \r\n if(index==6)\r\n vm.SubRegionList6 = resp.data.values; \r\n if(index==7)\r\n vm.SubRegionList7 = resp.data.values; \r\n }\r\n }\r\n })\r\n }\r\n vm.selectCitySubRegion = function(subregion,index){\r\n debugger\r\n CustomerFormCreationService.GetCityBySubRegion(loggedinUser, subregion, token).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n // vm.CityList = resp.data.values;\r\n if(index==1)\r\n vm.CityList1 = resp.data.values;\r\n if(index==2)\r\n vm.CityList2 = resp.data.values;\r\n if(index==3)\r\n vm.CityList3 = resp.data.values;\r\n if(index==4)\r\n vm.CityList4 = resp.data.values;\r\n if(index==5)\r\n vm.CityList5 = resp.data.values;\r\n if(index==6)\r\n vm.CityList6 = resp.data.values; \r\n if(index==7)\r\n vm.CityList7 = resp.data.values; \r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.getAllCircles(loggedinUser);\r\n\r\n vm.selectFiles = function () {\r\n //angular.element(\"#selectFiles\").val(null);\r\n angular.element(\"#selectFiles\").trigger(\"click\");\r\n vm.showMessage = \"\";\r\n }\r\n\r\n vm.uploadFiles = function ($file) {\r\n $log.log($files);\r\n vm.profilePic = $file[0];\r\n if (vm.profilePic.type == \"image/jpeg\" || vm.profilePic.type == \"image/gif\" || vm.profilePic.type == \"image/png\") {\r\n var reader = new FileReader();\r\n reader.onload = function (e) {\r\n $('#profilePic').attr('src', e.target.result);\r\n };\r\n reader.readAsDataURL(vm.profilePic);\r\n vm.showMessage = \"\";\r\n } else {\r\n vm.showMessage = \"The file type is not recognized, please select valid format. eg. jpeg, gif, png\";\r\n }\r\n vm.profilePicName = vm.profilePic.name;\r\n }\r\n\r\n }\r\n \r\n});\r\n\nangular.module('inspinia').service('consumerloginService', function (ApiURL, $log, $http, userauthURL) {\r\n\r\n this.VerifyOTPRetailStore = function (userOTPData) {\r\n var url = userauthURL + '/api/Authenticate/VerifyOTPRetailStore';\r\n return $http.post(url, userOTPData, { headers: { 'Content-Type': 'application/json' } })\r\n }\r\n\r\n this.GenerateOtpRetailStore = function (userData) {\r\n var url = userauthURL + '/api/Authenticate/GenerateOtpRetailStore';\r\n return $http.post(url, userData, { headers: { 'Content-Type': 'application/json' } })\r\n }\r\n\r\n this.UpdateRetailUserDetails = function (userBasicData, loggedinUser, token) {\r\n var url = ApiURL + '/api/User/UpdateRetailUserDetails';\r\n return $http.put(url, userBasicData, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } })\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('ConsumnerLogInController', function ($timeout, $log, $rootScope, $stateParams, $state, consumerloginService, toaster, $scope, $localStorage, $interval, webSocketFactory) {\r\n var vm = this;\r\n vm.otp = '';\r\n vm.userName = '',\r\n vm.userLocation = '';\r\n vm.mobileNumber = '';\r\n vm.userAuthToken = '';\r\n $scope.stage = '';\r\n $scope.countDown = 60;\r\n\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n $scope.GenerateOtpRetailStore = function () {\r\n vm.loginForm.submitted = true;\r\n if (vm.loginForm.$valid) {\r\n var userData = vm.mobileNumber;\r\n consumerloginService.GenerateOtpRetailStore(userData).then(function (response) {\r\n if (response.status == 200) {\r\n $scope.next('stage1');\r\n toaster.pop({\r\n type: 'success',\r\n title: 'success',\r\n showCloseButton: true,\r\n body: 'OTP send to phone number',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", response.data)\r\n }\r\n });\r\n }\r\n }\r\n\r\n $scope.VerifyOTPRetailStore = function () {\r\n var userOTPData = {\r\n \"UserId\": vm.mobileNumber,\r\n \"Password\": vm.otp\r\n };\r\n consumerloginService.VerifyOTPRetailStore(userOTPData).then(function (response) {\r\n if (response.status == 200) {\r\n vm.userAuthMessage = response.data;\r\n vm.userAuthToken = response.headers('Token');\r\n vm.userAuthUserId = response.headers('Userid');\r\n $localStorage.token = vm.userAuthToken;\r\n $localStorage.loggedInUserId = vm.userAuthUserId;\r\n $localStorage.loggedInUser_FirstName = vm.userAuthMessage.Name;\r\n // $localStorage.loggedInUser_LastName = vm.userAuthMessage.LastName;\r\n $localStorage.loggedInUser_Role = vm.userAuthMessage.Role;\r\n $scope.$parent.$parent.main.UpdateMain();\r\n if (vm.userAuthMessage.Name && vm.userAuthMessage.Location) {\r\n vm.userName = vm.userAuthMessage.Name;\r\n vm.userLocation = vm.userAuthMessage.Location;\r\n toaster.pop({\r\n type: 'success',\r\n title: 'success',\r\n showCloseButton: true,\r\n body: 'OTP Verified Successfully.',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n \r\n $state.go('index.ConsumerQuery', {\r\n reload: true\r\n });\r\n \r\n }\r\n else {\r\n $scope.next('stage2');\r\n toaster.pop({\r\n type: 'success',\r\n title: 'success',\r\n showCloseButton: true,\r\n body: 'OTP Verified Successfully.',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n }\r\n }\r\n }, function () {\r\n });\r\n\r\n }\r\n\r\n $scope.SubmitBasicInfo = function () {\r\n var userBasicData = {\r\n \"Name\": vm.userName,\r\n \"Location\": vm.userLocation\r\n };\r\n consumerloginService.UpdateRetailUserDetails(userBasicData, $localStorage.loggedInUserId, $localStorage.token).then(function (response) {\r\n if (response.status == 200) {\r\n $localStorage.loggedInUser_FirstName = vm.userName;\r\n $scope.$parent.$parent.main.UpdateMain();\r\n toaster.pop({\r\n type: 'success',\r\n title: 'success',\r\n showCloseButton: true,\r\n body: 'Details Submitted Successfully.',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n\r\n $state.go('index.ConsumerQuery', {\r\n reload: true\r\n });\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", response.data)\r\n }\r\n });\r\n\r\n }\r\n\r\n $scope.next = function (stage) {\r\n $scope.direction = 1;\r\n $scope.stage = stage;\r\n };\r\n\r\n $scope.back = function (stage) {\r\n $scope.direction = 0;\r\n $scope.stage = stage;\r\n };\r\n\r\n vm.enablePlugin = function () {\r\n $('#loginForm').disableAutoFill({\r\n });\r\n\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').service('ConsumerQueryService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n this.GetTicketForTicketCase = function (loggedinUser, token, contactNo) {\r\n var url = ApiURL + '/api/Ticket/GetTicketForTicketCase?SearchText=' + contactNo;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllQueryForTicket = function (loggedinUser, token, ticketId) {\r\n var url = ApiURL + '/api/Ticket/GetAllQueryForTicket?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllActivityTimeline = function (ticketId,filter,loggedinUser, token) { \r\n var url = ApiURL + '/api/Timeline/GetAllActivityTimelineForJob?ticketId=' + ticketId+ '&filter='+ filter\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.RaiseQueryForCase = function (queryModel, loggedinUser, token) {\r\n var url = ApiURL + \"/api/Ticket/RaiseQueryForCase\";\r\n return $http.put(url, queryModel, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ConsumerQueryController', function (ConsumerQueryService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\t\tvm.consumerContact = '';\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\tvm.userQuery = '';\r\n\t\tvm.ticketforQuery = '';\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount ; \r\n\t\t$scope.TicketTablepagination = {\r\n\t\t current: 1\r\n\t\t};\r\n\t\r\n\t\r\n\t\tvm.changeTicketPageListCount = function() { \r\n\t\t $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t PageSize = $scope.ticketTablePerPage;\r\n\t\t $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t}\r\n\r\n\t\tPageIndex=$scope.TicketTablepagination.current;\r\n\t\t$scope.TicketTablepageChanged = function(newPage) { \r\n\t\t PageIndex = newPage; \r\n\t\t vm.getAllJobForExceptionList();\r\n\t\t};\r\n\t\r\n\t\t// vm.GetConsumerDetails = function () {\r\n\t\t// \tConsumerQueryService.GetConsumerDetails(loggedinUser, token, $localStorage.consumerContact).then(function (resp) {\r\n\t\t// \t\tif (resp && resp.data && resp.status == 200 ) {\r\n\t\t// \t\t\tvm.consumerData = resp.data;\r\n\t\t// \t\t\tvm.consumerAddress = resp.data.Addresses[0];\r\n\t\t// \t\t\tvm.IsConsumerFound = true;\r\n\t\t// \t\t}\r\n\t\t// \t\telse {\r\n\t\t// \t\t\tvm.IsConsumerFound = false;\r\n\t\t// \t\t\tvm.ErrorMessage = resp.data.Message;\r\n\t\t// \t\t\tvm.showFailure(resp.data.Message)\r\n\t\t// \t\t}\r\n\t\t// \t}, vm.showFailure);\r\n\t\t// }\r\n\t\tvm.GetAllTicketsForContact = function () {\r\n\t\t\tConsumerQueryService.GetTicketForTicketCase(loggedinUser, token, vm.consumerContact).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.consumerAllTicketsData = resp.data;\r\n\t\t\t\t\tvm.IsTicketFound = true;\r\n\t\t\t\t\tvm.GetAllQueryForTicket(vm.consumerAllTicketsData[0].MMFTicketId);\r\n\t\t\t\t\tvm.GetAllActivityTimeline(vm.consumerAllTicketsData[0].MMFTicketId);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.IsTicketFound = false;\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data)\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.GetAllQueryForTicket = function (ticketId) {\r\n\t\t\tvm.AllQueryData = '';\r\n\t\t\tvm.selectedTicket = ticketId;\r\n\t\t\tConsumerQueryService.GetAllQueryForTicket(loggedinUser, token, ticketId).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.AllQueryData = resp.data;\r\n\t\t\t\t}\r\n\t\t\t\t// else {\r\n\t\t\t\t// \tvm.showFailure(\"Failed\", resp.data)\r\n\t\t\t\t// }\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.filter = '';\r\n\t\tvm.GetAllActivityTimeline = function (ticketId) {\r\n\t\t\tConsumerQueryService.GetAllActivityTimeline(ticketId, vm.filter,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.getAllActivityTimelineList = resp.data;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.RaiseCasesModel = function (ticket) {\r\n\t\t\tvm.ticketforQuery = ticket;\r\n\t\t\tvm.selectedTicket = ticket;\r\n\t\t\tvm.GetAllQueryForTicket(vm.selectedTicket);\r\n\t\t\tvm.GetAllActivityTimeline(vm.selectedTicket);\r\n\t\t\tvm.raisecase = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'RaiseCaseModel.html',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.CloseRaiseCaseModel = function () {\r\n\t\t\tvm.raisecase.close();\r\n\t\t\tvm.ticketforQuery = '';\r\n\t\t\tvm.userQuery = '';\r\n\t\t}\r\n\r\n\t\tvm.RaiseQueryForCase = function () {\r\n\t\t\tvar queryModel = {\r\n\t\t\t\t\"MMFTicketId\": vm.ticketforQuery,\r\n\t\t\t\t\"Query\": vm.userQuery\r\n\t\t\t}\r\n\t\t\tvm.QueryTask_form.submitted = true;\r\n\t\t\tif (vm.QueryTask_form.$valid) {\r\n\t\t\t\tConsumerQueryService.RaiseQueryForCase(queryModel, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t vm.showSuccess(\"Success\", \"Query Raised to Team Successfully.\");\r\n\t\t\t\t setTimeout(function () {\r\n\t\t\t\t\tvm.GetAllQueryForTicket(vm.ticketforQuery);\r\n\t\t\t\t\tvm.CloseRaiseCaseModel();\r\n\t\t\t\t}, 2000);\r\n\t\t\t\t \r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t })\r\n\t\t\t}\r\n\t\t }\r\n\r\n\r\n\t\tvm.ResetFilter = function(){\r\n\t\t\tvm.consumerContact = '';\r\n\t\t\tvm.IsTicketFound = false;\r\n\t\t }\r\n\t\t\r\n\r\n\t}\r\n});\n\r\nangular.module('inspinia').service('ConsumerListService', function (ApiURL, FreelancerURL, SchedulingAPI, $log, $http, $localStorage) {\r\n\r\n this.getSkills = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/SkillSets/' + loggedinUser + '/getmasterskillsB2C';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n this.GetCustomersOnFilterWithPaging = function (ticketFormData, loggedinUser, token) {\r\n var url = ApiURL + \"/api/CapacityPlanning/GetConsumersOnFilter\";\r\n return $http.post(url, ticketFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n \r\n // this.GetCustomersOnFilterWithoutPaging = function (ticketFormData, loggedinUser, token) {\r\n // var url = ApiURL + \"/api/CapacityPlanning/GetCustomersOnFilter\";\r\n // return $http.post(url, ticketFormData, {\r\n // headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n // });\r\n // }\r\n\r\n this.getAllState = function (loggedinUser) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllStates';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n\r\n this.GetConsumerProductsOnFilter = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/CapacityPlanning/GetConsumerProductsOnFilter';\r\n return $http.post(url,data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetConsumerDashboardOnFilter = function (ticketFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/CapacityPlanning/GetConsumerDashboardOnFilter';\r\n return $http.post(url,ticketFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n this.GetAllConsumerCampaignName = function (loggedinUser, token) {\r\n url = ApiURL + '/api/Campaign/GetAllConsumerCampaignName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.RunCampaignOnConsumer = function (consumnerFormData, loggedinUser, token) {\r\n var url = ApiURL + \"/api/Campaign/RunCampaignOnConsumerPool\";\r\n return $http.post(url, consumnerFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n this.GetBrandMaster = function (loggedinUser,token) {\r\n var url = ApiURL + '/api/MMFConsumer/GetBrandMaster';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.GetBrandProducts = function (brandName,loggedinUser, token) {\r\n var url = ApiURL + '/api/MMFConsumer/GetBrandProducts?Brand=' + brandName;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('ConsumerListController', function (DashboardService, $stateParams, DTColumnBuilder, $filter, $q, $compile, DTOptionsBuilder, ManualAssignationJobService, ConsumerListService, $scope, $uibModal, $timeout, $http, NgMap,\r\n ReferService, $rootScope, $q, DTColumnDefBuilder, $uibModal, $localStorage, $state, FreelancerURL, ApiURL, $timeout, ngProgressFactory, $interval) {\r\n var vm = this;\r\n vm.updateType = $stateParams.type;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.startDate = new Date(); // Set initial start date\r\n vm.endDate = new Date(); // Set initial end date\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n\r\n vm.FilterSwitch = false;\r\n vm.client = 1;\r\n vm.workArea = '';\r\n vm.filteredProperties = {};\r\n vm.disableBroadcastButton = false;\r\n vm.projectName = '';\r\n vm.dtInstance = {};\r\n vm.showticketSuccess = false;\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.broadcastSentUser = true;\r\n $scope.toggleForBroadcast = function () {\r\n $scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n $scope.myvalue = true;\r\n };\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n $scope.toggleMenu = function () {\r\n if ($scope.manualAssignationWrapper === \"hide-nav\") {\r\n $scope.manualAssignationWrapper = \"show-nav\";\r\n }\r\n else {\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n }\r\n };\r\n $scope.hideAllUser = true;\r\n\r\n $scope.showAllUser = function () {\r\n $scope.hideAllUser = true;\r\n };\r\n $scope.hideAllUserbutton = function () {\r\n $scope.hideAllUser = false;\r\n };\r\n $scope.userClass_status = true;\r\n $scope.toggleBottom = false;\r\n $scope.open360View = function () {\r\n $scope.userClass_status = false;\r\n $scope.myvalue = true;\r\n }\r\n $scope.close360View = function () {\r\n $scope.userClass_status = true;\r\n $scope.myvalue = false;\r\n }\r\n $scope.closeSlideBottom = function () {\r\n $scope.toggleNav = false;\r\n }\r\n $scope.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.userClass_status = true;\r\n $scope.broadcastSentUser = true;\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n vm.accountConfig = $localStorage.accountConfig;\r\n var token = $localStorage.token;\r\n vm.searchText = \"\";\r\n vm.searchTicket = \"\";\r\n vm.IsSearch = false;\r\n vm.DateField = \"CreatedOn\";\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.JobSkill = \"\";\r\n vm.RegistrationStatus = \"\";\r\n vm.UserRegistrationStatus = \"\";\r\n vm.TechRole = \"\";\r\n vm.Asset = \"\";\r\n vm.Tools = \"\";\r\n vm.PermanentCity = \"\";\r\n vm.techPincode = \"\";\r\n vm.PermanentState = \"\";\r\n vm.TicketState = \"\";\r\n vm.TicketCity = \"\";\r\n vm.brandName = \"\";\r\n vm.ProductType = \"\";\r\n vm.Pincode = \"\";\r\n vm.UserDetailVerification = \"\";\r\n vm.showErrors = false;\r\n vm.showPassed = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.LocationAddressList = [];\r\n vm.TicketBasedPlanningList = {};\r\n vm.bulkuploadType = \"\";\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n vm.fileName = '';\r\n vm.fileDescription = '';\r\n vm.techpageindexCount = 0;\r\n var cuPageIndex = 1;\r\n var cuPageSize = 10;\r\n vm.ticketPoolPageListCount = 10;\r\n vm.customerPageListCount = 10;\r\n vm.userPoolPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n vm.ticketPoolListLenth = 0;\r\n vm.customerListLenth = 0;\r\n vm.userPoolListLength = 0;\r\n vm.pageindexCount = 0;\r\n vm.TPpageindexCount = 0;\r\n vm.cuPageindexCount = 0;\r\n vm.UPpageindexCount = 0;\r\n vm.DateField = \"StatusChangedOn\";\r\n vm.searchStatusText = \"All\";\r\n vm.AlListCount = 10;\r\n vm.UWListCount = 10;\r\n vm.EAlListCount = 10;\r\n vm.UsersType = \"\";\r\n vm.OrderSequence = \"asc\";\r\n vm.Orderby = \"City\";\r\n vm.SortBy = \"Distance\";\r\n vm.searchUsersText = \"\";\r\n vm.jobsCount = '';\r\n vm.userPageListCount = 10;\r\n vm.UWticketsListCount = 10;\r\n vm.pageListCountsuwt = [10, 20, 30, 50];\r\n\r\n\r\n var ticketstartDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n var ticketendDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n vm.ticketPooldates = { startDate: ticketstartDate, endDate: ticketendDate };\r\n\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n $scope.ticketdateRangeChange = function (ev, picker) {\r\n vm.ticketPooldates.startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n vm.ticketPooldates.endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n };\r\n\r\n vm.City = '';\r\n vm.Pincode = '';\r\n vm.Experience = '';\r\n vm.Ratings = '';\r\n vm.Assets_Tools = '';\r\n vm.Jobscount = '';\r\n vm.FilterAdhar = '';\r\n vm.FilterPancard = '';\r\n vm.JobSkill = \"\";\r\n vm.ActiveInMonth = \"\";\r\n vm.NoOfJobDone = \"\";\r\n vm.Asset = \"\";\r\n vm.Tools = \"\";\r\n vm.UserRole = \"\";\r\n vm.ToolList = \"\";\r\n vm.OneJobDone = false;\r\n vm.MatchingSkill = false;\r\n vm.Asset_Bike = false;\r\n vm.Asset_Mobile = false;\r\n vm.Asset_Laptop = false;\r\n vm.IsBasedOnPincode = true;\r\n vm.getRadius = function (num) {\r\n return Math.sqrt(num) * 100;\r\n }\r\n $localStorage.filteraddskill = '';\r\n $localStorage.filterPermanentstate = '';\r\n vm.currentPage = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n vm.pageSize = 20;\r\n\r\n // $scope.totalUsers = 0;\r\n // $scope.usersPerPage = 20; // this should match however many results your API puts on one page\r\n // $scope.pagination = {\r\n // current: 1\r\n // };\r\n\r\n // $scope.pagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n // $scope.totalTableUsers = 0;\r\n // $scope.usersTablePerPage = 20; // this should match however many results your API puts on one page\r\n // $scope.UserTablepagination = {\r\n // current: 1\r\n // };\r\n\r\n // $scope.UserTablepagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n\r\n // $scope.pageChanged = function (newPage) {\r\n // vm.currentPage = newPage;\r\n\r\n // };\r\n $scope.isOpen = false;\r\n $scope.isOpen1 = false;\r\n $scope.isCollapsed = true;\r\n $scope.isCollapsed0 = true;\r\n $scope.isCollapsed1 = true;\r\n $scope.isCollapsed2 = true;\r\n $scope.isCollapsed3 = true;\r\n $scope.isCollapsed4 = true;\r\n $scope.showAnalysisReport = false;\r\n $scope.analysisFilterView = false;\r\n $scope.ticketFilterView = false;\r\n $scope.backScreen = function () {\r\n $scope.showAnalysisReport = false;\r\n angular.element('#filter-visible-area').addClass(\"filter-slider-visible\");\r\n }\r\n\r\n\r\n\r\n \r\n\r\n $scope.totalCustomers = 0;\r\n $scope.customerTablePerPage = vm.customerPageListCount;\r\n $scope.customerTablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeCustomerTablePerPage = function () {\r\n $scope.customerTablePerPage = vm.customerPageListCount;\r\n cuPageSize = $scope.customerTablePerPage;\r\n $scope.CustomerTablepageChanged($scope.customerTablepagination.current);\r\n vm.selectAll = false;\r\n }\r\n\r\n PageIndex = $scope.customerTablepagination.current;\r\n $scope.CustomerTablepageChanged = function (newPage) {\r\n cuPageIndex = newPage;\r\n vm.addFilterforCustomer();\r\n };\r\n vm.customerList = [];\r\n vm.YearOldProducts = \"\";\r\n vm.addFilterforCustomer = function () {\r\n vm.ticketFormData = {\r\n \"State\": vm.TicketState,\r\n \"City\": vm.TicketCity == \"\" ? \"\" : vm.TicketCity.join(\"|\"),\r\n \"Pincode\": \"\",\r\n \"Brand\": vm.brandName,\r\n \"ProductType\": vm.ProductType,\r\n \"FromDate\": moment(vm.ticketPooldates.startDate).format(\"YYYY-MM-DD\"),\r\n \"ToDate\": moment(vm.ticketPooldates.endDate).format(\"YYYY-MM-DD\"),\r\n \"PageIndex\": cuPageIndex,\r\n \"PageSize\": cuPageSize,\r\n \"YearOldProducts\": vm.YearOldProducts\r\n }\r\n cuPageIndex = cuPageIndex ? cuPageIndex : 1;\r\n ConsumerListService.GetCustomersOnFilterWithPaging(vm.ticketFormData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.customerPoolList = resp.data;\r\n $scope.totalCustomers = resp.data.RecordCount;\r\n if (vm.customerPoolList.length < vm.customerPageListCount)\r\n vm.customerListLenth = $scope.totalCustomers;\r\n else\r\n vm.customerListLenth = cuPageIndex * vm.customerPageListCount;\r\n if (cuPageIndex == 1)\r\n vm.cuPageindexCount = 1;\r\n else\r\n vm.cuPageindexCount = (((cuPageIndex - 1) * vm.customerPageListCount) + 1);\r\n $scope.class1 = false;\r\n }\r\n \r\n\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.addFilterforCustomer();\r\n\r\n\r\n vm.GetOnBoardingTaskDetails = function (isCollapsed, ConsumerId) {\r\n vm.taskDetailsList = [];\r\n $scope.isCollapsed = !isCollapsed;\r\n $scope.showRow = ConsumerId;\r\n var data = {\r\n \"ConsumerId\": ConsumerId,\r\n \"State\": vm.TicketState,\r\n \"City\": vm.TicketCity == \"\" ? \"\" : vm.TicketCity.join(\"|\"),\r\n \"Pincode\": \"\",\r\n \"Brand\": vm.brandName,\r\n \"ProductType\": vm.ProductType,\r\n \"FromDate\": ticketstartDate,\r\n \"ToDate\": ticketendDate,\r\n \"YearOldProducts\": vm.YearOldProducts\r\n }\r\n ConsumerListService.GetConsumerProductsOnFilter(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.taskDetailsList = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n\r\n \r\n vm.GetConsumerDashboardOnFilter = function () {\r\n\r\n vm.ticketFormData = {\r\n \"State\": vm.TicketState,\r\n \"City\": vm.TicketCity == \"\" ? \"\" : vm.TicketCity.join(\"|\"),\r\n \"Pincode\": \"\",\r\n \"Brand\": vm.brandName,\r\n \"ProductType\": vm.ProductType,\r\n \"FromDate\": moment(vm.ticketPooldates.startDate).format(\"YYYY-MM-DD\"),\r\n \"ToDate\": moment(vm.ticketPooldates.endDate).format(\"YYYY-MM-DD\"),\r\n \"PageIndex\": cuPageIndex,\r\n \"PageSize\": cuPageSize,\r\n \"YearOldProducts\": vm.YearOldProducts\r\n }\r\n\r\n ConsumerListService.GetConsumerDashboardOnFilter(vm.ticketFormData,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.consumerCount = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetConsumerDashboardOnFilter ();\r\n\r\n\r\n vm.userFilterEnable = false;\r\n\r\n\r\n $scope.isClick = false;\r\n $scope.isClick1 = false;\r\n $scope.isClick2 = false;\r\n $scope.isClick3 = false;\r\n $scope.activeButton = function () {\r\n $scope.isClick = !$scope.isClick;\r\n }\r\n $scope.activeButton1 = function () {\r\n $scope.isClick1 = !$scope.isClick1;\r\n }\r\n $scope.activeButton2 = function () {\r\n $scope.isClick2 = !$scope.isClick2;\r\n }\r\n $scope.activeButton3 = function () {\r\n $scope.isClick3 = !$scope.isClick3;\r\n }\r\n\r\n $scope.class1 = false;\r\n $scope.addRemoveRedClass = function (UploadId) {\r\n $localStorage.UploadId = UploadId;\r\n if ($scope.class1) {\r\n $scope.class1 = false;\r\n } else {\r\n $scope.class1 = true;\r\n }\r\n }\r\n\r\n $scope.slider = {\r\n value: 50,\r\n options: {\r\n floor: 0,\r\n ceil: 100,\r\n step: 1,\r\n minLimit: 10,\r\n maxLimit: 90\r\n }\r\n };\r\n\r\n $scope.myTrigger = \"outsideClick\";\r\n\r\n function getAllStates() {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n\r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n\r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n vm.openConsumerCampaignModel = function () {\r\n vm.analysisDetails = vm.analysisDetails;\r\n vm.consumenCampaignModelOpen = $uibModal.open({\r\n templateUrl: 'consumerCampaignRunModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseConsumerCampaignModel = function () {\r\n vm.ConsumerCampaignName = \"\";\r\n vm.consumenCampaignModelOpen.close();\r\n }\r\n\r\n vm.RunCampaignOnConsumer = function () {\r\n vm.consumner_campaign_form.submitted = true;\r\n vm.ticketFormData.CampaignName = vm.ConsumerCampaignName;\r\n if (vm.consumner_campaign_form.$valid) {\r\n ConsumerListService.RunCampaignOnConsumer(vm.ticketFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseConsumerCampaignModel();\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.ResetFilter = function () {\r\n vm.IsBasedOnPincode = true;\r\n vm.RegistrationStatus = \"\";\r\n vm.UserRegistrationStatus = \"\";\r\n vm.JobSkill = \"\";\r\n vm.UserDetailVerification = \"\";\r\n vm.PermanentCity = \"\";\r\n vm.techPincode = \"\";\r\n vm.PermanentState = \"\";\r\n vm.TicketState = \"\";\r\n vm.TicketCity = \"\";\r\n vm.ProductType = \"\";\r\n vm.brandName = \"\";\r\n vm.TechRole = \"\";\r\n vm.ToolList = \"\";\r\n ticketstartDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n ticketendDate = moment().format(\"YYYY-MM-DD\");\r\n vm.ticketPooldates = { startDate: ticketstartDate, endDate: ticketendDate };\r\n }\r\n\r\n vm.getSkills = function () {\r\n ConsumerListService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills;\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.getSkills();\r\n\r\n $scope.searchDisabled = true;\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n\r\n vm.GetAllConsumerCampaignName = function () {\r\n ConsumerListService.GetAllConsumerCampaignName(loggedinUser, token).then(function (resp) {\r\n vm.consumerCampaignNameList = resp.data;\r\n })\r\n }\r\n\r\n\r\n // vm.brandList = [\"LG\", \"Samsung\", \"Havells & lloyds\", \"Hitachi\", \"Panasonic\", \"O general\", \"Daikin\", \"Micromax\", \"Bluestar\", \"Toshiba\", \"Glen\", \"Lifelong\", \"Whirlpool\", \"IFB\", \"Philips\", \"Godrej\", \"Bajaj\"];\r\n\r\n // vm.productList = [\"Aircon\", \"Air cooler\", \"Home Appliances\", \"IT\", \"AC\", \"Multi product\", \"RO\", \"Printer\"];\r\n\r\n \r\n vm.getAllSlotsByStatus = function (status) {\r\n vm.ProductType = status;\r\n vm.brandName = \"\";\r\n PageIndex = 1;\r\n vm.addFilterforCustomer();\r\n }\r\n\r\n vm.getAllSlotsByBrand = function (brand) {\r\n vm.brandName = brand;\r\n vm.ProductType = \"\";\r\n PageIndex = 1;\r\n vm.addFilterforCustomer();\r\n }\r\n\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n };\r\n $scope.activatedButton = function () {\r\n $scope.isactivated = !$scope.isactivated;\r\n }\r\n $scope.activatedButton1 = function () {\r\n $scope.isactivated1 = !$scope.isactivated1;\r\n }\r\n $scope.activatedButton2 = function () {\r\n $scope.isactivated2 = !$scope.isactivated2;\r\n }\r\n $scope.activatedButton3 = function () {\r\n $scope.isactivated3 = !$scope.isactivated3;\r\n }\r\n $scope.activatedButton4 = function () {\r\n $scope.isactivated4 = !$scope.isactivated4;\r\n }\r\n\r\n\r\n vm.GetBrandMaster = function () {\r\n\t\t\tConsumerListService.GetBrandMaster(loggedinUser,token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.BrandList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetBrandMaster();\r\n\r\n vm.GetBrandProducts = function () {\r\n\t\t\tif (!vm.brandName) {\r\n\t\t\t\tvm.brandName = \"\";\r\n\t\t\t}\r\n\t\t\tConsumerListService.GetBrandProducts(vm.brandName,loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.ProductList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n // vm.GetBrandProducts();\r\n\r\n var $range = $(\".js-range-slider\"),\r\n $from = $(\".from\"),\r\n $to = $(\".to\"),\r\n range,\r\n min = $range.data('min'),\r\n max = $range.data('max'),\r\n from,\r\n to;\r\n\r\n var updateValues = function () {\r\n $from.prop(\"value\", from);\r\n $to.prop(\"value\", to);\r\n };\r\n\r\n $range.ionRangeSlider({\r\n onChange: function (data) {\r\n from = data.from;\r\n to = data.to;\r\n updateValues();\r\n }\r\n });\r\n\r\n range = $range.data(\"ionRangeSlider\");\r\n var updateRange = function () {\r\n range.update({\r\n from: from,\r\n to: to\r\n });\r\n };\r\n\r\n $from.on(\"input\", function () {\r\n from = +$(this).prop(\"value\");\r\n if (from < min) {\r\n from = min;\r\n }\r\n if (from > to) {\r\n from = to;\r\n }\r\n updateValues();\r\n updateRange();\r\n });\r\n\r\n $to.on(\"input\", function () {\r\n to = +$(this).prop(\"value\");\r\n if (to > max) {\r\n to = max;\r\n }\r\n if (to < from) {\r\n to = from;\r\n }\r\n updateValues();\r\n\r\n\r\n updateRange();\r\n });\r\n }\r\n});\nangular.module('inspinia').service('ConsentOfUserService', function (PublicApiURL, $window, $http) {\r\n \r\n this.GetShiftCampaignDetails = function (userId, campaignId) {\r\n var url = PublicApiURL + '/api/StaffShift/GetShiftCampaignDetails?UserId=' + userId + '&CampaignId=' + campaignId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n }\r\n\r\n this.ApplyForShiftCampaign = function (userId, campaignId) {\r\n var url = PublicApiURL + '/api/StaffShift/ApplyForShiftCampaign?UserId=' + userId + '&CampaignId=' + campaignId;\r\n return $http.put(url,null, {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ConsentOfUserController', function (ConsentOfUserService, inventoryService, $stateParams, toaster, $filter, $state, $localStorage, $scope, $timeout) {\r\n\r\n\tvar vm = this;\r\n\r\n\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvar UserId = $stateParams.UserId;\r\n\tvar CampaignID = $stateParams.CampaignId;\r\n\r\n\tvm.GetShiftCampaignDetails = function () {\r\n\t\tConsentOfUserService.GetShiftCampaignDetails(UserId, CampaignID).then(function (resp) {\r\n\t\t\tif (resp.status == 200) {\r\n\t\t\t\tvm.ShiftData = resp.data;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tvm.GetShiftCampaignDetails();\r\n\r\n\tvm.ApplyForShiftCampaign = function () {\r\n\t\tConsentOfUserService.ApplyForShiftCampaign(UserId, CampaignID).then(function (resp) {\r\n\t\t\tif (resp.status == 200 && resp) {\r\n\t\t\t\tvm.showSuccess(\"Success\", \"Applied for campaign successfully\")\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n});\nangular.module('inspinia').service('ConsumerFormService', function (PublicApiURL, $log, $http, $localStorage) { \r\n \r\n this.getAllState = function (loggedinUser) {\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+loggedinUser+'®ion=INDIA';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n }\r\n\r\n this.getAllCity = function (loggedinUser, state) {\r\n var url = PublicApiURL + '/api/Location/GetCity?userId='+loggedinUser+'&subregion='+state;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n }\r\n\r\n//https://product.mymobiforce.com/publicapi/api/Ticket/GetTicketDetails?Id=T830000000004\r\nthis.GetTicketDetails=function(loggedinUser, ticket){\r\n var url =PublicApiURL + \"/api/Ticket/GetTicketDetails?Id=\" +ticket;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n }\r\n\r\n// https://product.mymobiforce.com/publicapi/api/Ticket/UpdateAddressAndSlot?Id=T830000000004\r\nthis.UpdateAddressAndSlot = function(loggedinUser, ticket, data){ \r\n var url = PublicApiURL + '/api/Ticket/UpdateAddressAndSlot?Id=' + ticket;\r\n return $http.put(url,data,{\r\n headers:{'Content-Type' : 'application/json'}\r\n })\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('ConsumerFormController', function(toaster,ConsumerFormService,TeamFormCreationService, $stateParams, $scope, $localStorage) {\r\n\tvm = this;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n var loggedinUser = 'U830000000001';\t\r\n var ticketId = $stateParams.ticketId; //'T830000000004';\r\n vm.ticketDetails ={};\r\n vm.states={};\r\n vm.cities={};\r\n vm.startDatetime='';\r\n vm.endDatetime='';\r\n vm.ConsumerName='';\r\n vm.ConsumerContact='';\r\n vm.Address1='';\r\n vm.Address2='';\r\n vm.permanent_state='';\r\n vm.permanent_city='';\r\n vm.Pincode='';\r\n vm.InFlowDistance='';\r\n vm.OutFlowDistance='';\r\n vm.StartDate = moment();\r\n vm.InstallationType = false;\r\n vm.notimeslotset = true;\r\n\r\n vm.openCalendar = function(e, picker) { \r\n \r\n vm.AppointmentsDate.open = true;\r\n \r\n};\r\n\r\n vm.selecttimeslot = function (timeslot) {\r\n vm.startDatetime = moment(vm.StartDate).format(\"YYYY-MM-DD\") + \" \" + timeslot.split('-')[0];\r\n vm.endDatetime = moment(vm.StartDate).format(\"YYYY-MM-DD\") + \" \" + timeslot.split('-')[1]; \r\n vm.notimeslotset = false; \r\n }\r\n\r\n \r\n // $('.datepicker').datepicker({\r\n // format: \"yyyy-mm-dd\",\r\n // })\r\n // //Listen for the change even on the input\r\n // .change(dateChanged)\r\n // .on('changeDate', dateChanged);\r\n\r\n // function dateChanged(ev) {\r\n // alert('hello');\r\n // }\r\n\r\n vm.gettimeslot= function(dateonchange){debugger\r\n var stime = moment(vm.StartDate, \"YYYY-MM-DD\").format(\"YYYY-MM-DD\");\r\n var etime = moment().format(\"YYYY-MM-DD\");\r\n if( stime < etime){\r\n $('#Alltimeslot').hide();\r\n \r\n return;\r\n }\r\n\r\n if( stime > etime){\r\n $('#Alltimeslot').show();\r\n $('#btn1').show();\r\n $('#btn2').show();\r\n $('#btn3').show();\r\n $('#btn4').show();\r\n\r\n }\r\n else{\r\n \r\n $('#Alltimeslot').show();\r\n // if(dateonchange != ''){\r\n // _datehours1 = new Date(vm.StartDate)\r\n // _datehours = _datehours1.getHours();\r\n \r\n // }\r\n // else{\r\n // _datehours = new Date();\r\n\r\n // }\r\n var _datehours = new Date();\r\n\r\n var timeslothours = _datehours.getHours();\r\n if(timeslothours >= 9 && timeslothours <= 12){\r\n $('#btn1').show();\r\n $('#btn2').show();\r\n $('#btn3').show();\r\n $('#btn4').show();\r\n\r\n }\r\n if(timeslothours >= 12 && timeslothours <= 15){\r\n $('#btn1').hide();\r\n $('#btn2').show();\r\n $('#btn3').show();\r\n $('#btn4').show();\r\n\r\n }\r\n if(timeslothours >= 15 && timeslothours <= 18){\r\n $('#btn1').hide();\r\n $('#btn2').hide();\r\n $('#btn3').show();\r\n $('#btn4').show();\r\n\r\n }\r\n if(timeslothours >= 18 && timeslothours <= 21){\r\n $('#btn1').hide();\r\n $('#btn2').hide();\r\n $('#btn3').hide();\r\n $('#btn4').show();\r\n\r\n }\r\n }\r\n}\r\n vm.gettimeslot('');\r\n \r\n\r\n function getTicketDetails() { \r\n ConsumerFormService.GetTicketDetails(loggedinUser, ticketId).then(function (resp) {\r\n if(resp.status == 200){ \r\n vm.ticketDetails = resp.data; \r\n }\r\n }) \r\n }\t\r\n getTicketDetails();\r\n\r\n \r\n\r\n\r\n ///Saving User function \r\n vm.UpdateAddress = function () {\r\n\t \r\n \r\n\t var data = { \r\n\t \"ConsumerName\": vm.ticketDetails.ConusmerName,\r\n\t \"ConsumerContact\": vm.ticketDetails.ConsumerContact,\r\n\t \"Address1\": vm.Address1,\r\n\t \"Address2\": vm.Address2,\r\n\t \"State\": vm.permanent_state,\r\n\t \"City\": vm.permanent_city,\r\n\t \"Pincode\": vm.Pincode,\r\n\t \"StartTime\": vm.startDatetime ,\r\n\t \"EndTime\": vm.endDatetime,\r\n\t \"InFlowDistance\": vm.InFlowDistance,\r\n\t \"OutFlowDistance\": vm.OutFlowDistance,\r\n\t \"IsNonStandardInstall\": vm.InstallationType,\r\n }\r\n \r\n \r\n if(vm.update_ticket.$valid){\r\n var stime = moment(vm.StartDate, \"YYYY-MM-DD\").format(\"YYYY-MM-DD\");\r\n var etime = moment().format(\"YYYY-MM-DD\");\r\n \r\n if( stime < etime){\r\n vm.showFailure(\"please don't select previous date\");\r\n return;\r\n } \r\n\t ConsumerFormService.UpdateAddressAndSlot(loggedinUser,ticketId,data).then(function (resp) {\r\n\t if(resp.status == 200){ \r\n\t vm.showSuccess(\"Form submitted successfully\"); \r\n\t } \r\n\t })\r\n\t \t}\r\n\t \telse\r\n\t \t{\r\n\t \t\tvm.update_ticket.submitted = true; \r\n\t \t}\r\n \r\n \r\n }\r\n\r\n\r\n vm.getCountry = function () {\r\n TeamFormCreationService.getCountry(loggedinUser).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.values.length>0){\r\n vm.countrylist = resp.data.values;\r\n vm.selectedCountry = vm.countrylist[0];\r\n vm.getStates(loggedinUser, vm.selectedCountry);\r\n // getAllCircles(loggedinUser);\r\n }\r\n } \r\n })\r\n }\r\n vm.selectState = function (state) {\r\n var Getstate = state;\r\n TeamFormCreationService.getCities(loggedinUser,Getstate).then(function (resp) {\r\n vm.cityList = resp.data.values;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n vm.getStates = function (loggedinUser, country) {\r\n TeamFormCreationService.getStates(loggedinUser, country).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.values.length>0){\r\n vm.stateList = resp.data.values;\r\n \r\n }\r\n } \r\n })\r\n }\r\n \r\n vm.getCountry(); \r\n \r\n $(\"button\").click(function() {\r\n $(\"button\").removeClass(\"active\");\r\n $(this).addClass(\"active\");\r\n });\r\n\r\n\r\n});\nangular.module('inspinia').service('confirmAccountService', function (ApiURL, $log, $http) {\r\n\r\n this.generateMail = function (name,email) {\r\n var url = ApiURL + '/api/SignUp';\r\n return $http.get(url, {\r\n params: {\r\n userId: name,\r\n email:email\r\n }\r\n });\r\n }\r\n});\r\n\nangular.module('inspinia').controller('ConfirmAccountController', function ($stateParams, toaster,confirmAccountService) {\r\n var vm = this;\r\n vm.userId = $stateParams.userId;\r\n vm.email = $stateParams.email;\r\n\r\n vm.triggerMail = function () {\r\n confirmAccountService.generateMail(vm.userId, vm.email).then(function () {\r\n\r\n }, function () {\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Password status ',\r\n showCloseButton: true,\r\n body: 'Unable to connect to server',\r\n \"progressBar\": true,\r\n \"preventDuplicates\": false,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 0,\r\n positionClass: 'toast-top-full-width'\r\n });\r\n });\r\n }\r\n});\r\n\nangular.module('inspinia').service('ComplaintCaseListService', function (ApiURL, PublicApiURL, ActivityURL, LocationURL, $http, FreelancerURL, SchedulingAPI) {\r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\r\n this.GetReportingToMeUsers = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/FreeLancerRegistration/GetReportingToMeUsers'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.AssignTaskToUser = function (TaskAssignModel, UserId, loggedinUser, token) {\r\n var url = ApiURL + '/api/OnBoardingTask/AssignTaskToUser?UserId=' + UserId;\r\n return $http.put(url, TaskAssignModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateCaseForTechnician = function (data, loggedinUser, token) {\r\n var url = ApiURL + \"/api/ProfileController/UpdateCaseForTechnician\";\r\n return $http.put(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetTechnicianCaseCountsByFilters = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ProfileController/GetTechnicianCaseCountsByFilters';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllCasesForTechnicianAssignedToMe = function (data,loggedinUser, token) {\r\n var url = ApiURL + \"/api/ProfileController/GetAllCasesForTechnicianAssignedToMe\";\r\n return $http.post(url,data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n\r\n});\nangular.module('inspinia').controller('ComplaintCaseListController', function (ComplaintCaseListService,TechnicianViewService, SlotAllocationService, ManualAssignationJobService, DashboardService, PlanningResourseMapService, JobDetailViewService, ReferService, $q, $filter, $log, $state, $localStorage, UIURL, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, ImageUrl, $window) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var accountid = $localStorage.accountConfig.AccountId;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.broadcastSentUser = true;\r\n $scope.toggleForBroadcast = function () {\r\n $scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.timeLineDetail = true;\r\n $scope.openTimeLine = function () {\r\n $scope.timeLineDetail = !$scope.timeLineDetail;\r\n $scope.myvalue = true;\r\n };\r\n $scope.capacitygapWrapper = \"hide-nav\";\r\n $scope.toggleMenu = function () {\r\n if ($scope.capacitygapWrapper === \"hide-nav\") {\r\n $scope.capacitygapWrapper = \"show-nav\";\r\n }\r\n else {\r\n $scope.capacitygapWrapper = \"hide-nav\";\r\n }\r\n };\r\n $scope.hideAllUser = true;\r\n\r\n $scope.showAllUser = function () {\r\n $scope.hideAllUser = true;\r\n };\r\n $scope.hideAllUserbutton = function () {\r\n $scope.hideAllUser = false;\r\n };\r\n\r\n $scope.userClass_status = true;\r\n $scope.userClass1_status = true;\r\n $scope.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.userClass_status = true;\r\n $scope.userClass1_status = true;\r\n $scope.broadcastSentUser = true;\r\n $scope.timeLineDetail = true;\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n vm.closeFeedbackoption();\r\n }\r\n $scope.close360View = function () {\r\n $scope.userClass_status = true;\r\n $scope.myvalue = false;\r\n }\r\n $scope.close360ViewBroadcaste = function () {\r\n $scope.myvalue = false;\r\n angular.element('#div1').removeClass(\"alpha\");\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userSingle = function () {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.userSingle1 = function (ticketView) {\r\n vm.ticketViewId = ticketView.TicketId;\r\n vm.ticketAccountName = ticketView.AccountName;\r\n vm.ticketAddress = ticketView.Address;\r\n vm.ticketUserId = ticketView.UserId;\r\n vm.ticketUserName = ticketView.UserName;\r\n vm.ticketSkills = ticketView.Skills;\r\n vm.GetAllActivityTimeline('');\r\n $scope.userClass1_status = !$scope.userClass1_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.closeactivity = function () {\r\n $scope.userClass1_status = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n $scope.userFilter = true;\r\n $scope.assignJobFilter = function () {\r\n $scope.userFilter = !$scope.userFilter;\r\n $scope.myvalue = true;\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n };\r\n $scope.minatureSlide = true;\r\n $scope.minatureSlideBtn = function () {\r\n $scope.minatureSlide = !$scope.minatureSlide;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.hideFilter = function () {\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n var token = $localStorage.token;\r\n vm.IsAutoAssignToCHDteam = $localStorage.IsAutoAssignToCHDteam;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n $scope.showFullText = false;\r\n\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n\r\n // variables required for slot allocation\r\n vm.sorttype = \"desc\";\r\n vm.SortType = \"desc\";\r\n vm.Sort = \"desc\";\r\n vm.SortField = 'CreatedOn';\r\n vm.OrderBy = 'CreatedOn';\r\n vm.financePageListCount = 10;\r\n vm.UWticketsListCount = 10;\r\n vm.AlListCount = 10;\r\n vm.UWListCount = 10;\r\n vm.AssignedTo = '';\r\n vm.OnBoardingList = [];\r\n vm.assignButtonDisable = false;\r\n vm.bGVerifyListLength = 0;\r\n vm.userPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.ExceptionType = '';\r\n vm.AssignedTo = '';\r\n vm.caseStatus = '';\r\n vm.caseType = 'Technician';\r\n vm.caseFor = 'Technician';\r\n vm.DateField = 'CreatedOn';\r\n vm.State = '';\r\n vm.City = '';\r\n vm.taskPincode = '';\r\n vm.CreationSource = '';\r\n vm.taskskill = '';\r\n vm.accountId = '';\r\n vm.ExceptionType = '';\r\n vm.capacityCount = '';\r\n vm.cityOfTask = \"\";\r\n vm.accountIdOfTask = \"\";\r\n vm.stateOfTask = \"\";\r\n vm.skillOfTask = \"\";\r\n vm.descriptionOfTask = \"\";\r\n $scope.isCollapsed = true;\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.bookingdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.bookingRanges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n // 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n vm.taskDueDate = new Date();\r\n var pcdt = new Date();\r\n var year = pcdt.getFullYear();\r\n var month = ('0' + (pcdt.getMonth() + 1)).slice(-2);\r\n var day = ('0' + pcdt.getDate()).slice(-2);\r\n $scope.minDate = year + '-' + month + '-' + day;\r\n pcdt.setDate(pcdt.getDate() + 1);\r\n vm.showErrorMessage = false;\r\n\r\n vm.openCalendar = function (e, picker) {\r\n vm.ClosureDateTime.open = true;\r\n };\r\n var plannedclosuredatelimit = new Date();\r\n plannedclosuredatelimit.setMinutes(plannedclosuredatelimit.getMinutes() + 1)\r\n vm.ClosureDateTime = { date: '', datepickerOptions: { minDate: plannedclosuredatelimit } };\r\n\r\n var date = new Date();\r\n var d = date.getDate();\r\n var m = date.getMonth();\r\n var y = date.getFullYear();\r\n vm.eventsF = function (start, end, timezone, callback) {\r\n var s = new Date(start).getTime() / 1000;\r\n var e = new Date(end).getTime() / 1000;\r\n var m = new Date(start).getMonth();\r\n var events = [{\r\n title: 'Feed Me ' + m,\r\n start: s + (50000),\r\n end: s + (100000),\r\n allDay: false,\r\n className: ['customFeed']\r\n }];\r\n callback(events);\r\n };\r\n\r\n vm.exceptionList = [\"CAPACITY_GAP_EXCEPTION\", \"CAPACITY_GAP_CANCEL\", \"CAPACITY_GAP_MANUAL\"];\r\n\r\n vm.GetFinanceTicketDetail = function (paymentId, isCollapsed) {\r\n $scope.isCollapsed = !isCollapsed;\r\n DashboardService.GetFinanceTicketDetail(paymentId).then(function (resp) {\r\n vm.financedetails = resp.data;\r\n })\r\n }\r\n vm.disableCreateButton = false;\r\n\r\n vm.DisableCreateButton = function (disable) {\r\n if (disable) {\r\n vm.disableCreateButton = true;\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n }\r\n }\r\n\r\n vm.filter = '';\r\n vm.GetAllActivityTimeline = function (filter) {\r\n vm.getAllActivityTimelineList = \"\";\r\n vm.filter = filter;\r\n JobDetailViewService.GetAllActivityTimeline(vm.ticketViewId, vm.filter, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.getAllActivityTimelineList = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n\r\n vm.createTaskModel = function () {\r\n vm.createTaskModelOpen = $uibModal.open({\r\n templateUrl: 'createtask.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseCreateTaskModel = function () {\r\n vm.createTaskModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.cityOfTask = \"\";\r\n vm.stateOfTask = \"\";\r\n vm.skillOfTask = \"\";\r\n vm.descriptionOfTask = \"\";\r\n vm.accountIdOfTask = \"\";\r\n vm.capacityCount = 0;\r\n vm.taskCompletionOn = \"\";\r\n }\r\n\r\n $scope.isEditable = false;\r\n $scope.toggleEdit = function (caseDetail) {\r\n $scope.isEditable = true;\r\n vm.ConsumerId = caseDetail.ConsumerId;\r\n vm.CaseId = caseDetail.CaseId;\r\n vm.ProductOrService = caseDetail.ProductOrService;\r\n vm.updatedCategory = caseDetail.IssueRelatedTo;\r\n vm.updatedSubCategory = caseDetail.ActualIssue;\r\n vm.CaseResolution = caseDetail.CaseResolution;\r\n vm.DepartmentAssignedTo = caseDetail.CaseOwnerId;\r\n angular.forEach($scope.Updatecategories, function (data) {\r\n if (data.name == caseDetail.IssueRelatedTo) {\r\n vm.updatedsubCategoriesList = data;\r\n }\r\n });\r\n vm.IssueDescription = caseDetail.IssueDescription;\r\n vm.CaseDescription = caseDetail.CaseDescription;\r\n vm.AssignedTo = caseDetail.AssignedTo;\r\n vm.CaseStatus = caseDetail.CaseStatus;\r\n };\r\n\r\n vm.caseDetails = \"\";\r\n vm.resolveraise = function (caseDetail) {\r\n vm.caseDetails = caseDetail;\r\n vm.raiseresolve = $uibModal.open({\r\n templateUrl: 'resolveraise.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n vm.closeraiseresolve = function () {\r\n $scope.isEditable = false;\r\n vm.raiseresolve.close();\r\n }\r\n\r\n\r\n vm.Open360ForActiveUsers = function (teamid) {\r\n $state.go('index.Technician360view', {\r\n userId: teamid\r\n }, { reload: true });\r\n }\r\n\r\n vm.OpenTicketDetail = function (ticketId) {\r\n $state.go('index.JobDetailView', {\r\n ticketId: ticketId\r\n }, { reload: true })\r\n }\r\n\r\n\r\n\r\n vm.UpdatedCaseForTechnician = function () {\r\n // if (vm.updatedCategory && vm.updatedSubCategory) {\r\n var dataToUpdate = {\r\n \"UserId\": vm.ConsumerId,\r\n \"CaseId\": vm.CaseId,\r\n \"CaseResolution\": vm.CaseResolution,\r\n \"CaseStatus\": vm.CaseStatus,\r\n \"IssueDescription\": vm.IssueDescription,\r\n \"IssueRelatedTo\": vm.updatedCategory,\r\n \"ActualIssue\": vm.updatedSubCategory,\r\n \"ProductOrService\": \"\",\r\n \"AssigneToTeam\": vm.AssignedTo,\r\n \"AssignToDepartment\": vm.DepartmentAssignedTo\r\n }\r\n ComplaintCaseListService.UpdateCaseForTechnician(dataToUpdate, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.closeraiseresolve();\r\n $timeout(function () {\r\n vm.GetAllCasesForTechnicianAssignedToMe();\r\n }, 2000)\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n\r\n })\r\n // }\r\n }\r\n\r\n vm.DisableRouteBroadcastButtons = function (disable) {\r\n if (disable) {\r\n vm.brodcastButtonDisable = true;\r\n vm.routebuttonDisable = true;\r\n }\r\n else {\r\n vm.brodcastButtonDisable = false;\r\n vm.routebuttonDisable = false;\r\n }\r\n }\r\n\r\n\r\n\r\n vm.Applyfilter = function () {\r\n $scope.UserTablepagination = {};\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n $scope.hideFilter();\r\n }\r\n\r\n vm.PDFView = function (page) {\r\n vm.pdfimage = \"\";\r\n vm.IsLoadSucessfull = false;\r\n $scope.selected = null;\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.sortColumn = function (col) {\r\n vm.OrderBy = col;\r\n if (vm.Sort == 'desc') {\r\n vm.Sort = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n } else {\r\n vm.Sort = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n };\r\n\r\n // remove and change class\r\n vm.sortClass = function (col) {\r\n if (vm.OrderBy == col) {\r\n if (vm.Sort == 'desc') {\r\n return 'fa fa-arrow-down';\r\n } else {\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n vm.closeSearchText = function () {\r\n vm.caseStatus = '';\r\n vm.caseType = 'Technician';\r\n vm.caseFor = 'Technician';\r\n vm.GetAllCasesForTechnicianAssignedToMe();\r\n vm.GetTechnicianCaseCountsByFilters();\r\n }\r\n\r\n vm.updateCaseForType = false;\r\n \r\n vm.UpdateCaseFor = function () {\r\n if (vm.updateCaseForType) {\r\n vm.caseFor = \"Consumer\";\r\n } else {\r\n vm.caseFor = \"Technician\";\r\n }\r\n vm.GetAllCasesForTechnicianAssignedToMe();\r\n vm.GetTechnicianCaseCountsByFilters();\r\n }\r\n\r\n\r\n $scope.open360ViewBroadcaste = function () {\r\n angular.element('#div1').addClass(\"alpha\");\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n $scope.Userpagination = {};\r\n PageIndex = 1;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.GetAllCasesForTechnicianAssignedToMe();\r\n vm.GetTechnicianCaseCountsByFilters();\r\n };\r\n\r\n vm.GetTechnicianCaseCountsByFilters = function () {\r\n data = {\r\n \"Status\": vm.caseStatus,\r\n \"QueryType\": vm.caseType,\r\n \"FromDate\": startDate,\r\n \"ToDate\": endDate,\r\n \"CaseFor\": vm.caseFor\r\n }\r\n ComplaintCaseListService.GetTechnicianCaseCountsByFilters(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TotalCase = resp.data.TotalCaseCount;\r\n vm.OpenCase = resp.data.OpenCaseCount;\r\n vm.InProgressCase = resp.data.InprogressCaseCount;\r\n vm.ResolvedCase = resp.data.ResolvedCaseCount;\r\n vm.ExpiredCase = resp.data.ExpiredCaseCount;\r\n vm.ClosedCase = resp.data.ClosedCaseCount;\r\n vm.QueryCaseCount = resp.data.QueryCaseCount;\r\n }\r\n })\r\n }\r\n\r\n vm.GetTechnicianCaseCountsByFilters();\r\n\r\n\r\n vm.implementSelectItemsUsers = function (itemList, scope) {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n scope.selectRowUsers = function (i) {\r\n vm.toBeAssigned = [];\r\n scope.showMinusUsers = false;\r\n scope.selectAllUsers = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n vm.toBeAssigned.push(d.TaskId)\r\n scope.showMinusUsers = true;\r\n }\r\n\r\n });\r\n }\r\n scope.applyAllNewJobSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllUsers;\r\n });\r\n }\r\n }\r\n\r\n vm.implementSelectItemsUsers('OnBoardingList', this);\r\n\r\n $scope.totalTableUsersBG = 0;\r\n $scope.userTablePerPage = vm.userPageListCount;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeUserPageListCount = function () {\r\n $scope.userTablePerPage = vm.userPageListCount;\r\n PageSize = $scope.userTablePerPage;\r\n $scope.UserTablepageChanged($scope.UserTablepagination.current);\r\n }\r\n\r\n PageIndex = $scope.UserTablepagination.current;\r\n $scope.UserTablepageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetOnBoardingTaskByFilters();\r\n };\r\n\r\n\r\n vm.GetReportingToMeUsers = function () {\r\n SlotAllocationService.GetReportingToMeUsers(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserByFiltersList = resp.data;\r\n }\r\n }, function () {\r\n });\r\n\r\n }\r\n\r\n vm.GetReportingToMeUsers();\r\n\r\n\r\n vm.GetDepartmentDetails = function () {\r\n TechnicianViewService.GetDepartmentDetails(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.DepartmentList = resp.data;\r\n }\r\n }, function () {\r\n });\r\n \r\n }\r\n \r\n vm.GetDepartmentDetails();\r\n\r\n\r\n vm.GetAllCasesForTechnicianAssignedToMe = function () {\r\n data = {\r\n \"Status\": vm.caseStatus,\r\n \"FromDate\": startDate,\r\n \"ToDate\": endDate,\r\n \"QueryType\": vm.caseType,\r\n \"CaseFor\": vm.caseFor\r\n }\r\n ComplaintCaseListService.GetAllCasesForTechnicianAssignedToMe(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.complaindetail = resp.data;\r\n\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAllCasesForTechnicianAssignedToMe();\r\n\r\n vm.getAllSlotsByStatus = function (status, type) {\r\n vm.caseStatus = status;\r\n vm.caseType = type;\r\n PageIndex = 1;\r\n vm.GetAllCasesForTechnicianAssignedToMe();\r\n }\r\n\r\n }\r\n});\r\n\r\nangular.module('inspinia').filter('searchUser', function () {\r\n return function (items, search) {\r\n var filtered = [];\r\n if (search) {\r\n angular.forEach(items, function (item) {\r\n var searchstr = new RegExp(search, \"i\");\r\n if (item.id.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.User_Type.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.city.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.contactnumber.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.name.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.role.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.state.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n });\r\n } else {\r\n filtered = items;\r\n }\r\n return filtered;\r\n }\r\n})\nangular.module('inspinia').service('CommittmentOpsService', function (ApiURL,FreelancerURL, $http) {\r\n\r\n this.CommittmentFollowUp = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/MMFServicePack/UpdateUserCommittmetStatus';\r\n return $http.put(url, data, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetAllActivitiesForUser = function (userId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Timeline/GetAllCallRecordingForUser?UserId=' + userId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.CloseOnBoardingTask = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/OnBoardingTask/CloseOnBoardingTask';\r\n return $http.post(url, data,{\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.callToTechnicianApi = function (loggedinUser, userid, token) {\r\n url = ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId=' + userid + '&CallFor=CommitmentCall';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('CommittmentOpsController', function (CapacityGapAnalysisService, AllUsersListService, ReferService, CommittmentOpsService, $resource, SlotAllocationService, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvar Closuredatelimit = new Date();\r\n\t\tvm.ClosureDateTime = { date: '', datepickerOptions: { minDate: Closuredatelimit } };\r\n\t\tvar datelimit = new Date();\r\n\t\tdatelimit.setMinutes(datelimit.getMinutes() + 1)\r\n\t\t// vm.AppointmentsDate = { date: '', datepickerOptions: { minDate: datelimit }, dateFormat: \"yy/mm/dd\" };\r\n\t\tvm.userCommittmentDate = new Date();\r\n\t\tvm.AppointmentsDate = {\r\n\t\t\tdatepickerOptions: {\r\n\t\t\t\tminDate: new Date()\r\n\t\t\t}\r\n\t\t};\r\n\t\tvm.userComments = \"\";\r\n\t\tvm.userCommittmentStatus = \"\";\r\n\t\tvm.closeuserCommittmentStatus = \"Interested\";\r\n\t\tvm.userCommittmentId = \"\";\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.ExceptionType = 'CAPACITY_GAP_COMMITMENT';\r\n\t\tvm.UserId = '';\r\n\t\tvm.OnBoardingList = [];\r\n\t\tvm.bGVerifyListLength = 0;\r\n\t\tvm.userPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.AssignedTo = '';\r\n\t\tvm.taskStatus = '';\r\n\t\tvm.DateField = 'CreatedOn';\r\n\t\tvm.State = '';\r\n\t\tvm.City = '';\r\n\t\tvm.taskPincode = '';\r\n\t\tvm.CreationSource = '';\r\n\t\tvm.taskskill = '';\r\n\t\tvm.accountId = '';\r\n\t\tvm.capacityCount = '';\r\n\t\tvm.cityOfTask = \"\";\r\n\t\tvm.accountIdOfTask = \"\";\r\n\t\tvm.stateOfTask = \"\";\r\n\t\tvm.skillOfTask = \"\";\r\n\t\tvm.descriptionOfTask = \"\";\r\n\t\tvm.Technicianstartingdate = '2017-01-01';\r\n\t\tvm.TaskId = \"\";\r\n\t\tvm.IsFreelancerBidCount = false;\r\n\t\tvm.IsFixedTeamCount = false;\r\n\t\tvm.Asset = \"\";\r\n\t\tvm.Tools = \"\";\r\n\t\tvm.Certificate = \"\";\r\n\t\tvm.PermanentCity = \"\";\r\n\t\tvm.techPincode = \"\";\r\n\t\tvm.PermanentState = \"\";\r\n\t\tvm.TicketState = \"\";\r\n\t\tvm.SearchByAccountName = \"\";\r\n\t\tvm.PreferredForAccounts = \"\";\r\n\t\tvm.TicketCity = \"\";\r\n\t\tvm.ticketStatus = \"\";\r\n\t\tvm.IsCommittedUser = false,\r\n\t\tvm.IsCommitmentInterestedUser = false,\r\n\t\t$scope.Prime = false;\r\n\t\t$scope.NonPrime = false;\r\n\t\tvm.PssStatus = \"\";\r\n\t\t$scope.selectedTools = [];\r\n\t\tvm.JobSkill = \"\";\r\n\t\tvm.ActiveInMonth = \"\";\r\n\t\tvm.NoOfJobDone = \"\";\r\n\t\tvm.Asset = \"\";\r\n\t\tvm.Tools = \"\";\r\n\t\tvm.UserRole = \"\";\r\n\t\tvm.MatchCriteria = \"\";\r\n\t\tvm.TraningCertificate = \"\";\r\n\t\tvm.ToolList = \"\";\r\n\t\tvm.OneJobDone = false;\r\n\t\tvm.SearchTag = \"\";\r\n\t\tvm.MatchingSkill = false;\r\n\t\tvm.Asset_Bike = false;\r\n\t\tvm.Asset_Mobile = false;\r\n\t\tvm.Asset_Laptop = false;\r\n\t\tvm.disableCreateButton = false;\r\n\t\tvm.Sort = \"desc\";\r\n\t\tvm.Pincode = \"\";\r\n\t\tvm.Experience = \"\";\r\n\t\tvm.Ratings = \"\";\r\n\t\tvm.Assets_Tools = \"\";\r\n\t\tvm.Jobscount = \"\";\r\n\t\tvm.FilterAdhar = \"\";\r\n\t\tvm.FilterPancard = \"\";\r\n\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t$localStorage.filteraddskill = \"\";\r\n\t\t$localStorage.filterPermanentstate = \"\";\r\n\t\tvm.currentPage = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n\t\t$scope.totalUsers = 0;\r\n\t\t$scope.pagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\t\t$scope.pagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n\t\t$scope.totalTableUsers = 0;\r\n\t\t$scope.usersTablePerPage = 10;\r\n\t\t$scope.UserTablepagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\t$scope.UserTablepagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n\t\t$scope.pageChanged = function (newPage) {\r\n\t\t\tvm.currentPage = newPage;\r\n\t\t\tvm.applyfilter(newPage);\r\n\r\n\t\t};\r\n\t\t$scope.dates = { startDate: moment().subtract(30, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\tvm.ticketdates = { startDate: moment().subtract(30, 'days'), endDate: moment() };\r\n\t\tvm.ticketranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')],\r\n\t\t\t'Till now': [moment(vm.Technicianstartingdate), moment(endDate)],\r\n\t\t};\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t};\r\n\t\tvm.GetAllActiveTaskForFilter = function () {\r\n\t\t\tAllUsersListService.GetAllActiveTaskForFilter(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.ActiveTaskList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllActiveTaskForFilter();\r\n\r\n\t\tvm.UserRoleList = [\"Field Engineer\", \"Vendor Manager\", \"VendorTeam\", \"ServiceCenter\"];\r\n\r\n\t\tvm.getSkills = function () {\r\n\t\t\tAllUsersListService.getSkills(loggedinUser, token, function (skills) {\r\n\t\t\t\tvm.skills = skills;\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.getSkills();\r\n\r\n\t\tvm.GetAllAccounts = function () {\r\n\t\t\tAllUsersListService.GetAllAccountDetails(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.accountsList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.GetAllAccounts();\r\n\r\n\t\tvm.getAllSlotsByStatus = function (status) {\r\n\t\t\tvm.taskStatus = status;\r\n\t\t\tPageIndex = 1;\r\n\t\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\t}\r\n\t\t\r\n\t\tvm.activeTab = \"Commitment\";\r\n\r\n\t\t$scope.changeBackgroundColor = function (event, activeTab) {\r\n\t\t\tvm.activeTab = activeTab;\r\n\t\t\tif ($scope.selectedElement) {\r\n\t\t\t\t$scope.selectedElement.style.backgroundColor = 'white';\r\n\t\t\t}\r\n\t\t\tvar targetElement = event.currentTarget;\r\n\t\t\ttargetElement.style.backgroundColor = '#b3b3b966';\r\n\t\t\t// targetElement.style.color = '#fff';\r\n\r\n\t\t\t$scope.selectedElement = targetElement;\r\n\t\t\tif (vm.activeTab == \"CommitmentMain\") {\r\n\t\t\t\tvm.ExceptionType = \"CAPACITY_GAP_COMMITMENT\";\r\n\t\t\t\tvm.TaskId = \"\";\r\n\t\t\t\t// startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\t\t\t// endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\t\t\tvm.GetOnBoardingTaskCounts();\r\n\t\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t\t}\r\n\t\t\tif (vm.activeTab == \"Commitment\") {\r\n\t\t\t\tvm.ExceptionType = \"CAPACITY_GAP_COMMITMENT\";\r\n\t\t\t}\r\n\t\t\tif (vm.activeTab == \"FollowUp\") {\r\n\t\t\t\tvm.ExceptionType = \"COMMITMENT_FOLLOWUP\";\r\n\t\t\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\t\t\tvm.GetOnBoardingTaskCounts();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t$timeout(function () {\r\n\t\t\t$scope.changeBackgroundColor({ currentTarget: document.getElementById('Commitment') }, 'CommitmentMain');\r\n\t\t}, 0);\r\n\r\n\t\tvm.callToTechnician = function (userid) {\r\n\t\t\tCommittmentOpsService.callToTechnicianApi(loggedinUser, userid, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Call Initiated\");\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failure\", resp.data.Message);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.ApplyTaskfilter = function () {\r\n\t\t\t// $scope.UserTablepagination = {};\r\n\t\t\t// $scope.UserTablepagination = {\r\n\t\t\t// current: 1\r\n\t\t\t// };\r\n\t\t\t// $scope.hideFilter();\r\n\t\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\t\tvm.GetOnBoardingTaskCounts();\r\n\t\t}\r\n\r\n\t\tvm.editJobAppointment = function () {\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAppointment.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tvm.closeJobAppointment = function () {\r\n\t\t\tvm.jobAppointmentModal.close();\r\n\t\t}\r\n\r\n\t\t$scope.userFilter = true;\r\n\t\t$scope.assignJobFilter = function () {\r\n\t\t\t$scope.userFilter = !$scope.userFilter;\r\n\t\t\t$scope.myvalue = false;\r\n\t\t\t$scope.manualAssignationWrapper = \"hide-nav\";\r\n\t\t};\r\n\t\t$scope.broadcastSentUser = true;\r\n\t\t$scope.toggleForBroadcast = function () {\r\n\t\t\t$scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n\t\t\t$scope.myvalue = false;\r\n\r\n\t\t};\r\n\r\n\t\t$scope.calltrack = function () {\r\n\t\t\t$scope.myvalue = false;\r\n\t\t\t$scope.class_status = true;\r\n\t\t\t$scope.broadcastSentUser = true;\r\n\r\n\t\t}\r\n\r\n\t\t$scope.hideoverlay = function () {\r\n\t\t\t$scope.myvalue = false;\r\n\t\t\t$scope.broadcastSentUser = true;\r\n\t\t\t\r\n\t\t }\r\n\r\n\r\n\t\t$scope.customSearch = function (item) {\r\n\t\tif (!vm.SearchTagNew) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar lowerCaseSearchText = vm.SearchTagNew.toLowerCase();\r\n\t\tfor (var prop in item) {\r\n\t\t\tif (item.hasOwnProperty(prop) && angular.isString(item[prop])) {\r\n\t\t\tvar lowerCaseProp = item[prop].toLowerCase();\r\n\t\t\tif (lowerCaseProp.includes(lowerCaseSearchText)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t\t};\r\n\r\n\r\n\t\tvm.GetOnBoardingTaskByFilters = function () {\r\n\t\t\tif (vm.loggedInUserRole == 'Dispatch Manager' || vm.loggedInUserRole == 'Dispatch Supervisor') {\r\n\t\t\t\tvm.CreationSource = 'Manual';\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.CreationSource = '';\r\n\t\t\t}\r\n\t\t\tdata = {\r\n\t\t\t\t\"Status\": vm.taskStatus,\r\n\t\t\t\t\"Skill\": vm.taskskill == \"\" ? \"\" : vm.taskskill.join(\"|\"),\r\n\t\t\t\t\"DateField\": vm.DateField,\r\n\t\t\t\t\"FromDate\": moment().subtract(5, 'years').format(\"YYYY-MM-DD\"),\r\n\t\t\t\t\"ToDate\": endDate,\r\n\t\t\t\t\"AccountId\": vm.accountId == \"\" ? \"\" : vm.accountId.join(\"|\"),\r\n\t\t\t\t\"PageIndex\": PageIndex,\r\n\t\t\t\t\"PageSize\": 500,\r\n\t\t\t\t\"State\": vm.State,\r\n\t\t\t\t\"City\": vm.City,\r\n\t\t\t\t\"Pincode\": vm.taskPincode,\r\n\t\t\t\t\"OrderBy\": vm.OrderBy,\r\n\t\t\t\t\"Sort\": vm.Sort,\r\n\t\t\t\t\"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n\t\t\t\t\"CreationSource\": vm.CreationSource,\r\n\t\t\t\t\"ExceptionType\": vm.ExceptionType,\r\n\t\t\t}\r\n\t\t\tCapacityGapAnalysisService.GetOnBoardingTaskByFilters(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.OnBoardingList = resp.data.OnBoardingResModelList;\r\n\t\t\t\t\t$scope.totalTableUsersBG = resp.data.RecordCount;\r\n\t\t\t\t\tif (vm.OnBoardingList.length < vm.userPageListCount)\r\n\t\t\t\t\t\tvm.bGVerifyListLength = $scope.totalTableUsersBG;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.bGVerifyListLength = PageIndex * vm.userPageListCount;\r\n\t\t\t\t\tif (PageIndex == 1)\r\n\t\t\t\t\t\tvm.pageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.pageindexCount = (((PageIndex - 1) * vm.userPageListCount) + 1);\r\n\t\t\t\t}\r\n\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.GetOnBoardingTaskCounts = function () {\r\n\t\t\tif (vm.loggedInUserRole == 'Dispatch Manager' || vm.loggedInUserRole == 'Dispatch Supervisor') {\r\n\t\t\t\tvm.CreationSource = 'Manual';\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.CreationSource = '';\r\n\t\t\t}\r\n\t\t\tdata = {\r\n\t\t\t\t\"Status\": vm.taskStatus,\r\n\t\t\t\t\"Skill\": vm.taskskill == \"\" ? \"\" : vm.taskskill.join(\"|\"),\r\n\t\t\t\t\"DateField\": vm.DateField,\r\n\t\t\t\t\"FromDate\": moment().subtract(5, 'years').format(\"YYYY-MM-DD\"),\r\n\t\t\t\t\"ToDate\": endDate,\r\n\t\t\t\t\"AccountId\": vm.accountId == \"\" ? \"\" : vm.accountId.join(\"|\"),\r\n\t\t\t\t\"PageIndex\": PageIndex,\r\n\t\t\t\t\"PageSize\": 500,\r\n\t\t\t\t\"State\": vm.State,\r\n\t\t\t\t\"City\": vm.City,\r\n\t\t\t\t\"Pincode\": vm.taskPincode,\r\n\t\t\t\t\"OrderBy\": vm.OrderBy,\r\n\t\t\t\t\"Sort\": vm.Sort,\r\n\t\t\t\t\"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n\t\t\t\t\"CreationSource\": vm.CreationSource,\r\n\t\t\t\t\"ExceptionType\": vm.ExceptionType,\r\n\t\t\t}\r\n\t\t\tCapacityGapAnalysisService.GetOnBoardingTaskCountsByFilters(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.TotalTask = resp.data.TotalTask;\r\n\t\t\t\t\tvm.OpenTask = resp.data.OpenTask;\r\n\t\t\t\t\tvm.ClosedTask = resp.data.ClosedTask;\r\n\t\t\t\t\tvm.InProgressTask = resp.data.InProgressTask;\r\n\t\t\t\t\tvm.FollowUpTask = resp.data.FollowUpTask;\r\n\t\t\t\t\tvm.CommitmentTask = resp.data.CommitmentTask;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\tvm.GetOnBoardingTaskCounts();\r\n\r\n\t\tvm.getAllCertificate = function () {\r\n\t\t\tAllUsersListService.GetAllCertificate(loggedinUser, token, function (data) {\r\n\t\t\t\tvm.AllCertificateSets = data;\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.getAllCertificate();\r\n\r\n\t\tvm.brandList = [\"LG\", \"Samsung\", \"Havells & lloyds\", \"Hitachi\", \"Panasonic\", \"O general\", \"Daikin\", \"Micromax\", \"Bluestar\", \"Toshiba\", \"Glen\", \"Lifelong\", \"Whirlpool\", \"IFB\", \"Philips\", \"Godrej\", \"Bajaj\"];\r\n\r\n\t\tvm.productList = [\"Aircon\", \"Air cooler\", \"Home Appliances\", \"IT\", \"AC\", \"Multi product\", \"RO\", \"Printer\"];\r\n\r\n\t\tfunction getAllStates() {\r\n\t\t\tvar defered = $q.defer();\r\n\t\t\tReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tdefered.resolve(resp);\r\n\t\t\t}, function (error) {\r\n\t\t\t\tdefered.reject(error);\r\n\t\t\t});\r\n\t\t\treturn defered.promise;\r\n\t\t}\r\n\r\n\t\tvar allStatePromise = getAllStates(loggedinUser);\r\n\t\tallStatePromise.then(function (resp) {\r\n\t\t\tvm.StateList = resp.data;\r\n\r\n\t\t});\r\n\t\tfunction getallCities(state) {\r\n\t\t\tReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t\t\tvm.CityList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.selectedState = function (state) {\r\n\t\t\tgetallCities(state);\r\n\t\t}\r\n\r\n\t\tvm.taskBasedFilter = function (task) {\r\n\t\t\tvm.TaskId = task;\r\n\t\t\tstartDate = moment().subtract(5, 'years').format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.Open360ForActiveUsers = function (teamid) {\r\n\t\t\tif (vm.loggedInUserRole != 'Dispatch Head' && vm.loggedInUserRole != 'Higher Management' && vm.loggedInUserRole != 'Community Manager') {\r\n\t\t\t\t$state.go('index.Dashboard', {\r\n\t\t\t\t\tUserId: teamid\r\n\t\t\t\t}, { reload: true });\r\n\t\t\t}\r\n\t\t\telse if (vm.loggedInUserRole == 'Dispatch Head' || vm.loggedInUserRole == 'Higher Management' || vm.loggedInUserRole == 'Community Manager') {\r\n\t\t\t\t$state.go('index.Technician360view', {\r\n\t\t\t\t\tuserId: teamid\r\n\t\t\t\t}, { reload: true });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t$scope.TalentPoolTablepageChanged = function (newPage) {\r\n\r\n\t\t\tvm.currentPage = newPage;\r\n\r\n\t\t\tvm.applyfilter(newPage, '');\r\n\t\t};\r\n\r\n\t\tvm.applyfilter = function (index, data) {\r\n\t\t\tvar userFormData = {};\r\n\t\t\tif (data) {\r\n\t\t\t\tuserFormData = data;\r\n\t\t\t} else {\r\n\t\t\t\tvar temp = [];\r\n\t\t\t\tvar res = vm.Experience.split(\"-\");\r\n\t\t\t\tvar jobscount = vm.Jobscount.split(\"-\");\r\n\t\t\t\tvar ratings = vm.Ratings.split(\"-\");\r\n\t\t\t\tuserFormData = {\r\n\t\t\t\t\t\"PageIndex\": index,\r\n\t\t\t\t\t\"PageSize\": 10,\r\n\t\t\t\t\t\"ActivationStartDate\": startDate,\r\n\t\t\t\t\t\"ActivationEnddate\": endDate,\r\n\t\t\t\t\t\"State\": vm.PermanentState,\r\n\t\t\t\t\t\"Cities\": vm.PermanentCity,\r\n\t\t\t\t\t\"Pincodes\": temp,\r\n\t\t\t\t\t\"Skill\": vm.addSkill,\r\n\t\t\t\t\t\"ExperienceStart\": res[0],\r\n\t\t\t\t\t\"ExperienceEnd\": res[1],\r\n\t\t\t\t\t\"Certificates\": vm.addTraningCertificateName,\r\n\t\t\t\t\t\"IsBikeAvailable\": vm.Asset_Bike,\r\n\t\t\t\t\t\"IsMobileAvailable\": vm.Asset_Mobile,\r\n\t\t\t\t\t\"IsLaptopAvailable\": vm.Asset_Laptop,\r\n\t\t\t\t\t\"Tools\": vm.Asset_Tools,\r\n\t\t\t\t\t\"JobCountStart\": jobscount[0],\r\n\t\t\t\t\t\"JobCountEnd\": jobscount[1],\r\n\t\t\t\t\t\"RatingStart\": Number(ratings[0]),\r\n\t\t\t\t\t\"RatingEnd\": Number(ratings[1]),\r\n\t\t\t\t\t\"PreferredTalentPool\": false,\r\n\t\t\t\t\t\"IsStudent\": vm.Student,\r\n\t\t\t\t\t\"IsCriminalVerified\": vm.Criminal,\r\n\t\t\t\t\t\"IsBankVarified\": vm.IsBankVerified,\r\n\t\t\t\t\t\"IsUPIVarified\": vm.IsUPIVarified,\r\n\t\t\t\t\t\"MMFPrimeMember\": $scope.Prime,\r\n\t\t\t\t\t\"IsCommittedUser\": vm.IsCommittedUser,\r\n\t\t\t\t\t\"IsCommitmentInterestedUser\": vm.IsCommitmentInterestedUser,\r\n\t\t\t\t\t\"MMFNonPrimeMember\": $scope.NonPrime,\r\n\t\t\t\t\t\"IsOpenForInternship\": vm.Intern,\r\n\t\t\t\t\t\"IsAdharVerified\": vm.Adharcard,\r\n\t\t\t\t\t\"IsPanVerified\": vm.Pancard,\r\n\t\t\t\t\t\"Source\": vm.Source,\r\n\t\t\t\t\t\"FreelancerRole\": vm.freelancerRole,\r\n\t\t\t\t\t\"UserStatus\": vm.UserStatus,\r\n\t\t\t\t\t\"PssStatus\": vm.PssStatus,\r\n\t\t\t\t\t\"OneJobDoneForSkills\": vm.OneJobDone,\r\n\t\t\t\t\t\"ReportingTo\": vm.ReportingTo,\r\n\t\t\t\t\t\"OrderBy\": vm.OrderBy,\r\n\t\t\t\t\t\"SortType\": vm.SortType,\r\n\t\t\t\t\t\"UserVerificationStatus\": vm.UserVerificationStatus,\r\n\t\t\t\t\t\"IsFreelancerBidCount\": vm.IsFreelancerBidCount,\r\n\t\t\t\t\t\"IsFixedTeamCount\": vm.IsFixedTeamCount,\r\n\t\t\t\t\t\"ContactNumber\": vm.ContactNumber,\r\n\t\t\t\t\t\"UserName\": vm.UserName,\r\n\t\t\t\t\t\"UserId\": vm.UserId,\r\n\t\t\t\t\t\"BrandName\": vm.ServiceBrand,\r\n\t\t\t\t\t\"ProductServing\": vm.ServiceProduct,\r\n\t\t\t\t\t\"SearchTag\": vm.SearchTag,\r\n\t\t\t\t\t\"IsAuthorizedServiceCenterCount\": vm.IsAuthorizedServiceCenter,\r\n\t\t\t\t\t\"TaskId\": vm.TaskId\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.adddaterange) {\r\n\t\t\t\t\tuserFormData.ActivationStartDate = startDate;\r\n\t\t\t\t\tuserFormData.ActivationEnddate = endDate;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t$localStorage.FilterData = userFormData;\r\n\t\t\tAllUsersListService.Filter(loggedinUser, token, userFormData).then(function (resp) {\r\n\t\t\t\tif (resp.data) {\r\n\t\t\t\t\tvm.users = [];\r\n\t\t\t\t\tvm.Bluserlist = [];\r\n\t\t\t\t\tvm.usersCounts = resp.data;\r\n\t\t\t\t\tvm.users = resp.data.Users;\r\n\r\n\t\t\t\t\tfor (var i = 0; i < vm.users.length; i++) {\r\n\t\t\t\t\t\tif (vm.users[i].CustomerRating) {\r\n\t\t\t\t\t\t\tvm.users[i].CustomerRating = Number(vm.users[i].CustomerRating).toFixed(1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvm.totalTalentPoolCount = resp.data.Count;\r\n\t\t\t\t\t$scope.totalUsers = resp.data.Count;\r\n\t\t\t\t\t$scope.totalTableUsers = resp.data.Count;\r\n\r\n\t\t\t\t\tif (vm.users.length < 10)\r\n\t\t\t\t\t\tvm.usersLength = $scope.totalUsers;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.usersLength = index * 10;\r\n\t\t\t\t\tif (index == 1)\r\n\t\t\t\t\t\tvm.techpageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.techpageindexCount = (((index - 1) * 10) + 1);\r\n\r\n\t\t\t\t\tif (vm.users.length > 0) {\r\n\t\t\t\t\t\tfor (var i = 0; i < vm.users.length; i++) {\r\n\t\t\t\t\t\t\tif (vm.users[i].BlockedByAccounts) {\r\n\t\t\t\t\t\t\t\tif (vm.users[i].BlockedByAccounts.length > 0) {\r\n\t\t\t\t\t\t\t\t\tfor (var j = 0; j < vm.users[i].BlockedByAccounts.length; j++) {\r\n\t\t\t\t\t\t\t\t\t\tif (vm.users[i].BlockedByAccounts[j] == AccountID) {\r\n\t\t\t\t\t\t\t\t\t\t\tvm.Bluserlist.push(vm.users[i]);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t}\r\n\r\n\t\tvm.GetReportingToMeUsers = function () {\r\n\t\t\tSlotAllocationService.GetReportingToMeUsers(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.UserByFiltersList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.GetReportingToMeUsers();\r\n\r\n\r\n\t\tvm.TechnicianclearFilter = function () {\r\n\t\t\tvm.UserName = \"\";\r\n\t\t\tvm.UserId = \"\";\r\n\t\t\tvm.ContactNumber = \"\";\r\n\t\t\tvm.Source = \"\";\r\n\t\t\tvm.Adharcard = \"\";\r\n\t\t\tvm.Pancard = \"\";\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.IsBankVerified = \"\";\r\n\t\t\tvm.PreferredForAccounts = \"\";\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.Criminal = \"\";\r\n\t\t\tvm.PermanentState = \"\";\r\n\t\t\tvm.PermanentCity = \"\";\r\n\t\t\tvm.Experience = \"\";\r\n\t\t\tvm.traningCertificateList = \"\";\r\n\t\t\tvm.freelancerRoleList = \"\";\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.Asset_Laptop = \"\";\r\n\t\t\tvm.Asset_Mobile = \"\";\r\n\t\t\tvm.Asset_Bike = \"\";\r\n\t\t\tvm.Asset_Tools = \"\";\r\n\t\t\tvm.Jobscount = \"\";\r\n\t\t\tvm.Ratings = \"\";\r\n\t\t\tvm.CurrentState = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.userskill = [];\r\n\t\t\tvm.userskill = \"\";\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.SearchTag = \"\";\r\n\t\t\tvm.ServiceBrand = \"\";\r\n\t\t\tvm.ReportingTo = \"\";\r\n\t\t\tvm.ServiceProduct = \"\";\r\n\t\t\tvm.ReportingTo = \"\";\r\n\t\t\tvm.TaskId = \"\";\r\n\t\t\tstartDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.getAllUsersByStage = function (stage) {\r\n\t\t\tvm.UserVerificationStatus = stage;\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\r\n\t\t}\r\n\r\n\t\tvm.getAllUsersByRole = function (role) {\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tif (role == 'Active') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\t\t\t\tvm.freelancerRole = \"\";\r\n\t\t\t}\r\n\t\t\telse if (role == 'Inactive') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\t\t\t\tvm.freelancerRole = \"\";\r\n\t\t\t}\r\n\t\t\telse if (role == 'Invite') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\t\t\t\tvm.freelancerRole = \"\";\r\n\t\t\t}\r\n\t\t\telse if (role == '') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\t\t\t\tvm.freelancerRole = \"\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.freelancerRole = role;\r\n\t\t\t\tvm.UserStatus = \"Active\";\r\n\t\t\t}\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.getAllOneJobDone = function () {\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.OneJobDone = true;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.getAllFixedTeam = function () {\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFixedTeamCount = true;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.getAllLeadStarted = function () {\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFreelancerBidCount = true;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.getCountByPssValue = function (pss) {\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.PssStatus = pss;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\t\tvm.authorizeDetail = function (role) {\r\n\t\t\tif (role == 'Active') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\r\n\t\t\t}\r\n\t\t\telse if (role == 'Inactive') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\r\n\t\t\t}\r\n\t\t\telse if (role == '') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\r\n\t\t\t}\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.IsAuthorizedServiceCenter = true;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.committedDetail = function (committedvalue) {\r\n\t\t\tif (committedvalue == true) {\r\n\t\t\t\tvm.IsCommittedUser = true;\r\n\t\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\t}\r\n\t\t\telse if (committedvalue == false) {\r\n\t\t\t\tvm.IsCommittedUser = false;\r\n\t\t\t\tvm.IsCommitmentInterestedUser = true;\r\n\t\t\t}\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.getAllCriminalFlag = function (criminalValue) {\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.Criminal = criminalValue;\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\r\n\t\t}\r\n\t\tvm.getAllPrimeFlag = function (primeValue) {\r\n\t\t\tif (primeValue == true) {\r\n\t\t\t\t$scope.Prime = true;\r\n\t\t\t\t$scope.NonPrime = false;\r\n\t\t\t} else if (primeValue == false) {\r\n\t\t\t\t$scope.NonPrime = true;\r\n\t\t\t\t$scope.Prime = false;\r\n\t\t\t}\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.AllapplyTalentPoolfilter = function () {\r\n\t\t\t$scope.Ticket = 1;\r\n\t\t\t$scope.dates = { startDate: startDate, endDate: endDate };\r\n\t\t\tvm.adddaterange = true;\r\n\t\t\t$scope.UserTablepagination.current = 1;\r\n\t\t\tvar temp = [];\r\n\t\t\tvar tuPageIndex = \"\";\r\n\t\t\tvar res = vm.Experience.split(\"-\");\r\n\t\t\tvar jobscount = vm.Jobscount.split(\"-\");\r\n\t\t\tvar ratings = vm.Ratings.split(\"-\");\r\n\t\t\ttuPageIndex = 1;\r\n\t\t\tvm.traningCertificateList = \"\";\r\n\t\t\tif (vm.TraningCertificate) {\r\n\t\t\t\tvm.traningCertificateList = vm.TraningCertificate.join('|');\r\n\t\t\t}\r\n\t\t\tif (vm.PreferredForAccounts) {\r\n\t\t\t\tstartDate = \"\";\r\n\t\t\t\tendDate = \"\";\r\n\t\t\t}\r\n\t\t\tvm.userFormData = {\r\n\t\t\t\t\"PageIndex\": tuPageIndex,\r\n\t\t\t\t\"PageSize\": 10,\r\n\t\t\t\t\"ActivationStartDate\": startDate,\r\n\t\t\t\t\"ActivationEnddate\": endDate,\r\n\t\t\t\t\"State\": vm.PermanentState,\r\n\t\t\t\t\"Cities\": vm.PermanentCity,\r\n\t\t\t\t\"Pincodes\": temp,\r\n\t\t\t\t\"Skill\": vm.userskill,\r\n\t\t\t\t\"UserVerificationStatus\": vm.UserVerificationStatus,\r\n\t\t\t\t\"ExperienceStart\": res[0],\r\n\t\t\t\t\"ExperienceEnd\": res[1],\r\n\t\t\t\t\"Certificates\": vm.traningCertificateList,\r\n\t\t\t\t\"IsBikeAvailable\": vm.Asset_Bike,\r\n\t\t\t\t\"IsMobileAvailable\": vm.Asset_Mobile,\r\n\t\t\t\t\"IsLaptopAvailable\": vm.Asset_Laptop,\r\n\t\t\t\t\"Tools\": vm.Asset_Tools,\r\n\t\t\t\t\"JobCountStart\": jobscount[0],\r\n\t\t\t\t\"JobCountEnd\": jobscount[1],\r\n\t\t\t\t\"RatingStart\": Number(ratings[0]),\r\n\t\t\t\t\"RatingEnd\": Number(ratings[1]),\r\n\t\t\t\t\"PreferredTalentPool\": false,\r\n\t\t\t\t\"IsFreelancerBidCount\": vm.IsFreelancerBidCount,\r\n\t\t\t\t\"IsFixedTeamCount\": vm.IsFixedTeamCount,\r\n\t\t\t\t\"FreelancerRole\": vm.freelancerRole,\r\n\t\t\t\t\"UserStatus\": vm.UserStatus,\r\n\t\t\t\t\"ContactNumber\": vm.ContactNumber,\r\n\t\t\t\t\"UserName\": vm.UserName,\r\n\t\t\t\t\"UserId\": vm.UserId,\r\n\t\t\t\t\"IsStudent\": vm.Student,\r\n\t\t\t\t\"MMFPrimeMember\": $scope.Prime,\r\n\t\t\t\t\"MMFNonPrimeMember\": $scope.NonPrime,\r\n\t\t\t\t\"IsOpenForInternship\": vm.Intern,\r\n\t\t\t\t\"IsAdharVerified\": vm.Adharcard,\r\n\t\t\t\t\"BrandName\": vm.ServiceBrand,\r\n\t\t\t\t\"ProductServing\": vm.ServiceProduct,\r\n\t\t\t\t\"IsBankVarified\": vm.IsBankVerified,\r\n\t\t\t\t\"IsCriminalVerified\": vm.Criminal,\r\n\t\t\t\t\"Source\": vm.Source,\r\n\t\t\t\t\"OneJobDoneForSkills\": vm.OneJobDone,\r\n\t\t\t\t\"PssStatus\": vm.PssStatus,\r\n\t\t\t\t\"SearchTag\": vm.SearchTag,\r\n\t\t\t\t\"ReportingTo\": vm.ReportingTo,\r\n\t\t\t\t\"OrderBy\": vm.OrderBy,\r\n\t\t\t\t\"SortType\": vm.SortType,\r\n\t\t\t\t\"IsCommittedUser\": vm.IsCommittedUser,\r\n\t\t\t\t\"IsCommitmentInterestedUser\": vm.IsCommitmentInterestedUser,\r\n\t\t\t\t\"IsAuthorizedServiceCenterCount\": vm.IsAuthorizedServiceCenter,\r\n\t\t\t\t\"PreferredForAccount\": vm.PreferredForAccounts,\r\n\t\t\t\t\"TaskId\": vm.TaskId\r\n\t\t\t}\r\n\t\t\tAllUsersListService.Filter(loggedinUser, token, vm.userFormData).then(function (resp) {\r\n\t\t\t\tif (resp.data) {\r\n\t\t\t\t\tvm.pfuserlist = [];\r\n\t\t\t\t\tvm.users = [];\r\n\t\t\t\t\tvm.usersCounts = resp.data;\r\n\t\t\t\t\tvm.users = resp.data.Users;\r\n\t\t\t\t\tif (vm.users.length == 0) {\r\n\t\t\t\t\t\tvm.showFailure('Failed', 'No User Found');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (var i = 0; i < vm.users.length; i++) {\r\n\t\t\t\t\t\tif (vm.users[i].CustomerRating) {\r\n\t\t\t\t\t\t\tvm.users[i].CustomerRating = Number(vm.users[i].CustomerRating).toFixed(1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.totalTalentPoolCount = resp.data.Count;\r\n\t\t\t\t\t$scope.totalTalentUsers = resp.data.Count;\r\n\t\t\t\t\t$scope.totalTableUsers = resp.data.Count;\r\n\t\t\t\t\tif (vm.users.length < 10)\r\n\t\t\t\t\t\tvm.usersLength = $scope.totalTalentUsers;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.usersLength = tuPageIndex * 10;\r\n\t\t\t\t\tif (tuPageIndex == 1)\r\n\t\t\t\t\t\tvm.techpageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.techpageindexCount = (((tuPageIndex - 1) * 10) + 1);\r\n\t\t\t\t\tif (vm.users.length < 10)\r\n\t\t\t\t\t\tvm.usersLength = $scope.totalTalentUsers;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.usersLength = tuPageIndex * 10;\r\n\t\t\t\t\tif (tuPageIndex == 1)\r\n\t\t\t\t\t\tvm.techpageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.techpageindexCount = (((tuPageIndex - 1) * 10) + 1);\r\n\t\t\t\t\tif (vm.users.length > 0) {\r\n\t\t\t\t\t\tfor (var i = 0; i < vm.users.length; i++) {\r\n\t\t\t\t\t\t\tif (vm.users[i].FavoriteForAccounts) {\r\n\t\t\t\t\t\t\t\tif (vm.users[i].FavoriteForAccounts.length > 0) {\r\n\t\t\t\t\t\t\t\t\tfor (var j = 0; j < vm.users[i].FavoriteForAccounts.length; j++) {\r\n\t\t\t\t\t\t\t\t\t\tif (vm.users[i].FavoriteForAccounts[j] == AccountID) {\r\n\t\t\t\t\t\t\t\t\t\t\tvm.pfuserlist.push(vm.users[i]);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t$scope.class1 = false;\r\n\t\t\t\t\t}, 250);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tvm.UserCountbyFilter();\r\n\t\t}\r\n\r\n\t\tvm.UserCountbyFilter = function () {\r\n\t\t\tAllUsersListService.UserCountbyFilter(loggedinUser, token, vm.userFormData).then(function (resp) {\r\n\t\t\t\tif (resp.data) {\r\n\t\t\t\t\tvm.TotalUsersCount = resp.data.Count;\r\n\t\t\t\t\tvm.BasicInformation = resp.data.BasicInformation;\r\n\t\t\t\t\tvm.TotalInvitedUserCount = resp.data.TotalInvitedUserCount;\r\n\t\t\t\t\tvm.LocationAndSkill = resp.data.LocationAndSkill;\r\n\t\t\t\t\tvm.Backgroundverified = resp.data.Backgroundverified;\r\n\t\t\t\t\tvm.Paymentverified = resp.data.Paymentverified;\r\n\t\t\t\t\tvm.PoliceVerified = resp.data.PoliceVerified;\r\n\t\t\t\t\tvm.CriminalVerified = resp.data.CriminalVerified;\r\n\t\t\t\t\tvm.TotalActiveFrUsersCount = resp.data.TotalActiveFrUsersCount;\r\n\t\t\t\t\tvm.TotalActiveFVUsersCount = resp.data.TotalActiveFVUsersCount;\r\n\t\t\t\t\tvm.TotalActiveFVTUsersCount = resp.data.TotalActiveFVTUsersCount;\r\n\t\t\t\t\tvm.FixedTeamCount = resp.data.FixedTeamCount;\r\n\t\t\t\t\tvm.PrimeMember = resp.data.PrimeMember;\r\n\t\t\t\t\tvm.NonPrimeMember = resp.data.NonPrimeMember;\r\n\t\t\t\t\tvm.TotalActiveUsersCount = resp.data.TotalActiveUsersCount;\r\n\t\t\t\t\tvm.Count = resp.data.Count;\r\n\t\t\t\t\tvm.TotalRegisterUser = resp.data.TotalRegisterUser;\r\n\t\t\t\t\tvm.TotalFreelancerBidCount = resp.data.TotalFreelancerBidCount;\r\n\t\t\t\t\tvm.OneJobDoneCount = resp.data.OneJobDoneCount;\r\n\t\t\t\t\tvm.NonPrimeMoreThanTenCount = resp.data.NonPrimeMoreThanTenCount;\r\n\t\t\t\t\tvm.LeadReceivedUserCount = resp.data.LeadReceivedUserCount;\r\n\t\t\t\t\tvm.LeadNotReceivedUserCount = resp.data.LeadNotReceivedUserCount;\r\n\t\t\t\t\tvm.LeadAcceptedUserCount = resp.data.LeadAcceptedUserCount;\r\n\t\t\t\t\tvm.LeadNotAcceptedUserCount = resp.data.LeadNotAcceptedUserCount;\r\n\t\t\t\t\tvm.JobRejectionBreachedCount = resp.data.JobRejectionBreachedCount;\r\n\t\t\t\t\tvm.JobRejectionMetCount = resp.data.JobRejectionMetCount;\r\n\t\t\t\t\tvm.SOPAdherenceBreachedCount = resp.data.SOPAdherenceBreachedCount;\r\n\t\t\t\t\tvm.SOPAdherenceMetCount = resp.data.SOPAdherenceMetCount;\r\n\t\t\t\t\tvm.AuthorizedServiceParnterDetailCount = resp.data.AuthorizedServiceParnterDetailCount;\r\n\t\t\t\t\tvm.AuthorizedServiceParnterDetailCountActive = resp.data.AuthorizedServiceParnterDetailCountActive;\r\n\t\t\t\t\tvm.AuthorizedServiceParnterDetailCountInActive = resp.data.AuthorizedServiceParnterDetailCountInActive;\r\n\t\t\t\t\tvm.CommitmentInterestedUserCount = resp.data.CommitmentInterestedUserCount;\r\n\t\t\t\t\tvm.CommittedUserCount = resp.data.CommittedUserCount\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.AllapplyTalentPoolfilter();\r\n\r\n\t\t$scope.isOpen = false;\r\n\t\t$scope.isOpen1 = false;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsed0 = true;\r\n\t\t$scope.isCollapsed1 = true;\r\n\t\t$scope.isCollapsed2 = true;\r\n\t\t$scope.isCollapsed3 = true;\r\n\t\t$scope.isCollapsed4 = true;\r\n\t\t$scope.isCollapsed19 = true;\r\n\t\t$scope.isCollapsed21 = true;\r\n\t\t$scope.isCollapsed23 = true;\r\n\t\t$scope.isCollapsed24 = true;\r\n\t\t$scope.isCollapsed26 = true;\r\n\t\t$scope.isCollapsed35 = true;\r\n\t\t$scope.isCollapsed36 = true;\r\n\t\t$scope.isCollapsed40 = true;\r\n\t\t$scope.isCollapsed41 = true;\r\n\t\t$scope.isCollapsed42 = true;\r\n\t\t$scope.isCollapsed43 = true;\r\n\t\t$scope.isCollapsed49 = true;\r\n\r\n\t\t$scope.activatedButton = function () {\r\n\t\t\t$scope.isactivated = !$scope.isactivated;\r\n\t\t}\r\n\t\t$scope.activatedButton1 = function () {\r\n\t\t\t$scope.isactivated1 = !$scope.isactivated1;\r\n\t\t}\r\n\t\t$scope.activatedButton2 = function () {\r\n\t\t\t$scope.isactivated2 = !$scope.isactivated2;\r\n\t\t}\r\n\t\t$scope.activatedButton3 = function () {\r\n\t\t\t$scope.isactivated3 = !$scope.isactivated3;\r\n\t\t}\r\n\t\t$scope.activatedButton4 = function () {\r\n\t\t\t$scope.isactivated4 = !$scope.isactivated4;\r\n\t\t}\r\n\t\t$scope.activatedButton5 = function () {\r\n\t\t\t$scope.isactivated5 = !$scope.isactivated5;\r\n\t\t}\r\n\t\t$scope.activatedButton6 = function () {\r\n\t\t\t$scope.isactivated6 = !$scope.isactivated6;\r\n\t\t}\r\n\t\t$scope.activatedButton7 = function () {\r\n\t\t\t$scope.isactivated7 = !$scope.isactivated7;\r\n\t\t}\r\n\t\t$scope.activatedButton8 = function () {\r\n\t\t\t$scope.isactivated8 = !$scope.isactivated8;\r\n\t\t}\r\n\t\t$scope.activatedButton9 = function () {\r\n\t\t\t$scope.isactivated9 = !$scope.isactivated9;\r\n\t\t}\r\n\t\t$scope.activatedButton10 = function () {\r\n\t\t\t$scope.isactivated10 = !$scope.isactivated10;\r\n\t\t}\r\n\t\t$scope.activatedButton11 = function () {\r\n\t\t\t$scope.isactivated11 = !$scope.isactivated11;\r\n\t\t}\r\n\t\t$scope.activatedButton12 = function () {\r\n\t\t\t$scope.isactivated12 = !$scope.isactivated12;\r\n\t\t}\r\n\t\t$scope.activatedButton13 = function () {\r\n\t\t\t$scope.isactivated13 = !$scope.isactivated13;\r\n\t\t}\r\n\t\t$scope.activatedButton14 = function () {\r\n\t\t\t$scope.isactivated14 = !$scope.isactivated14;\r\n\t\t}\r\n\t\t$scope.activatedButton15 = function () {\r\n\t\t\t$scope.isactivated15 = !$scope.isactivated15;\r\n\t\t}\r\n\t\t$scope.activatedButton16 = function () {\r\n\t\t\t$scope.isactivated16 = !$scope.isactivated16;\r\n\t\t}\r\n\t\t$scope.activatedButton17 = function () {\r\n\t\t\t$scope.isactivated17 = !$scope.isactivated17;\r\n\t\t}\r\n\t\t$scope.activatedButton18 = function () {\r\n\t\t\t$scope.isactivated18 = !$scope.isactivated18;\r\n\t\t}\r\n\t\t$scope.activatedButton19 = function () {\r\n\t\t\t$scope.isactivated19 = !$scope.isactivated19;\r\n\t\t}\r\n\r\n\t\t$scope.activatedButton20 = function () {\r\n\t\t\t$scope.isactivated20 = !$scope.isactivated20;\r\n\t\t}\r\n\t\t$scope.activatedButton21 = function () {\r\n\t\t\t$scope.isactivated21 = !$scope.isactivated21;\r\n\t\t}\r\n\t\t$scope.activatedButton22 = function () {\r\n\t\t\t$scope.isactivated22 = !$scope.isactivated22;\r\n\t\t}\r\n\t\t$scope.activatedButton23 = function () {\r\n\t\t\t$scope.isactivated23 = !$scope.isactivated23;\r\n\t\t}\r\n\t\t$scope.activatedButton24 = function () {\r\n\t\t\t$scope.isactivated24 = !$scope.isactivated24;\r\n\t\t}\r\n\t\t$scope.activatedButton25 = function () {\r\n\t\t\t$scope.isactivated25 = !$scope.isactivated25;\r\n\t\t}\r\n\t\t$scope.activatedButton26 = function () {\r\n\t\t\t$scope.isactivated26 = !$scope.isactivated26;\r\n\t\t}\r\n\t\t$scope.activatedButton27 = function () {\r\n\t\t\t$scope.isactivated27 = !$scope.isactivated27;\r\n\t\t}\r\n\t\t$scope.activatedButton28 = function () {\r\n\t\t\t$scope.isactivated28 = !$scope.isactivated28;\r\n\t\t}\r\n\t\t$scope.activatedButton29 = function () {\r\n\t\t\t$scope.isactivated29 = !$scope.isactivated29;\r\n\t\t}\r\n\t\t$scope.activatedButton30 = function () {\r\n\t\t\t$scope.isactivated30 = !$scope.isactivated30;\r\n\t\t}\r\n\t\t$scope.activatedButton31 = function () {\r\n\t\t\t$scope.isactivated31 = !$scope.isactivated31;\r\n\t\t}\r\n\t\t$scope.activatedButton32 = function () {\r\n\t\t\t$scope.isactivated32 = !$scope.isactivated32;\r\n\t\t}\r\n\t\t$scope.activatedButton33 = function () {\r\n\t\t\t$scope.isactivated33 = !$scope.isactivated33;\r\n\t\t}\r\n\t\t$scope.activatedButton34 = function () {\r\n\t\t\t$scope.isactivated34 = !$scope.isactivated34;\r\n\t\t}\r\n\t\t$scope.activatedButton35 = function () {\r\n\t\t\t$scope.isactivated35 = !$scope.isactivated35;\r\n\t\t}\r\n\t\t$scope.activatedButton36 = function () {\r\n\t\t\t$scope.isactivated36 = !$scope.isactivated36;\r\n\t\t}\r\n\t\t$scope.activatedButton37 = function () {\r\n\t\t\t$scope.isactivated37 = !$scope.isactivated37;\r\n\t\t}\r\n\t\t$scope.activatedButton38 = function () {\r\n\t\t\t$scope.isactivated38 = !$scope.isactivated38;\r\n\t\t}\r\n\t\t$scope.activatedButton39 = function () {\r\n\t\t\t$scope.isactivated39 = !$scope.isactivated39;\r\n\t\t}\r\n\t\t$scope.activatedButton40 = function () {\r\n\t\t\t$scope.isactivated40 = !$scope.isactivated40;\r\n\t\t}\r\n\r\n\t\t\r\n\t\tvm.sortColumn = function (col) {\r\n\t\t\tvm.OrderBy = col;\r\n\t\t\tif (vm.SortType == 'desc') {\r\n\t\t\t vm.SortType = 'asc';\r\n\t\t\t vm.reverseclass = 'fa fa-arrow-up';\r\n\t\t\t} else {\r\n\t\t\t vm.SortType = 'desc';\r\n\t\t\t vm.reverseclass = 'fa fa-arrow-down';\r\n\t\t\t}\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t };\r\n\t \r\n\t\t vm.sortClass = function (col) {\r\n\t\t\tif (vm.OrderBy == col) {\r\n\t\t\t if (vm.SortType == 'desc') {\r\n\t\t\t\treturn 'fa fa-arrow-down';\r\n\t\t\t } else {\r\n\t\t\t\treturn 'fa fa-arrow-up';\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t return \"\";\r\n\t\t\t}\r\n\t\t }\r\n\r\n\t\tvm.GetAllActivitiesForUser = function (userId) {\r\n\t\t\tvm.CallingUser = userId;\r\n\t\t\tCommittmentOpsService.GetAllActivitiesForUser(userId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.UserActivityInfo = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CommittmentModelOpen = function (userid) {\r\n\t\t\tvm.userCommittmentId = userid;\r\n\t\t\tvm.CommittmentModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'committmentmodel.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.CloseCommittmentModel = function () {\r\n\t\t\tvm.CommittmentModel.close();\r\n\t\t\tvm.userCommittmentDate = new Date();\r\n\t\t\tvm.userCommittmentStatus = \"Interested\";\r\n\t\t\tvm.userCommittmentId = \"\";\r\n\t\t\tvm.userComments = \"\";\r\n\t\t\tvm.userCommittmentReason = \"\";\r\n\t\t}\r\n\r\n\t\tvm.CommittmentFollowUp = function () {\r\n\t\t\tvm.committment_form.submitted = true;\r\n\t\t\t// if (vm.userCommittmentStatus) {\r\n\t\t\t\tif(vm.committment_form.$valid){\r\n\t\t\t\tif (vm.userCommittmentStatus == 'NotInterested') {\r\n\t\t\t\t\tvm.userCommittmentDate = \"\";\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.userCommittmentDate = moment(vm.userCommittmentDate).format(\"YYYY-MM-DD\");\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"CommittmentStatus\": vm.userCommittmentStatus,\r\n\t\t\t\t\t\"CommittmentReason\": vm.userCommittmentReason,\r\n\t\t\t\t\t\"UserComment\": vm.userComments,\r\n\t\t\t\t\t\"Date\": vm.userCommittmentDate,\r\n\t\t\t\t\t\"UserId\": vm.userCommittmentId,\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\r\n\r\n\t\t\t\tCommittmentOpsService.CommittmentFollowUp(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t\t\t\t\tvm.CloseCommittmentModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\r\n\t\t// }\r\n\t\t\t// else {\r\n\t\t\t// \tvm.showFailure(\"Failed\", \"Please select committment status.\");\r\n\t\t\t// }\r\n}\r\n\t\t}\r\n\r\n\t\tvm.OpenTracking = function (user) {\r\n\t\t\t$state.go('index.PincodeFinder', {\r\n\t\t\t\tuserId: user.UserId,\r\n\t\t\t}, {\r\n\t\t\t\treload: true\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t$scope.followupmodal = true;\r\n\t\t$scope.toggleForBroadcastnew = function () {\r\n\t\t\t$scope.followupmodal = !$scope.followupmodal;\r\n\t\t\t$scope.myvalue = true;\r\n\r\n\t\t};\r\n\r\n\t\tvm.CloseingRemark = \"\";\r\n\t\tvm.OnBoardingTaskModelOpen = function (taskid) {\r\n\t\t\tvm.CommitmentTaskId = taskid;\r\n\t\t\tvm.OnBoardingTaskmodel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'OnBoardingTaskmodel.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseOnBoardingTaskModel = function () {\r\n\t\t\tvm.OnBoardingTaskmodel.close();\r\n\t\t\tvm.CommitmentTaskId = \"\";\r\n\t\t\tvm.CloseingRemark = \"\";\r\n\t\t\tvm.closeuserCommittmentStatus = \"Interested\";\r\n\t\t}\r\n\r\n\r\n\t\tvm.CloseOnBoardingTask = function () {\r\n\t\t\tif (vm.closeuserCommittmentStatus == 'NotInterested') {\r\n\t\t\t\tvm.userCommittmentDate = \"\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.userCommittmentDate = moment(vm.userCommittmentDate).format(\"YYYY-MM-DD\");\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"TaskId\": vm.CommitmentTaskId,\r\n\t\t\t\t\"CloseingRemark\": vm.CloseingRemark,\r\n\t\t\t\t\"CommittmentStatus\": vm.closeuserCommittmentStatus,\r\n\t\t\t\t\"Date\": vm.userCommittmentDate,\r\n\t\t\t}\r\n\t\t\tCommittmentOpsService.CloseOnBoardingTask(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t\t\t\tvm.CloseOnBoardingTaskModel();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('ClientView360Service', function (ApiURL, $http, FreelancerURL, MMFCRMURL, LocationURL) {\r\n\r\n\tthis.GetConsumerFullDetails = function (loggedinUser, token, contactNo) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMConsumer/GetConsumerFullDetails?ConsumerContact=' + contactNo;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.UpdateConsumer = function (data, loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMConsumer/UpdateConsumer';\r\n\t\treturn $http.put(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetConsumerAssets = function (loggedinUser, token, contactNo) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMConsumer/GetConsumerAssets?ConsumerContact=' + contactNo;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n)\r\n\nangular.module('inspinia').controller('ClientView360Controller', function ($scope,ReferService,$timeout, $uibModal, $state,$q, CustomerCRMListService, ClientView360Service, $log, $stateParams, $localStorage, ImageUrl) {\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.accountid= $localStorage.accountConfig.AccountId;\r\n\t\tvar consumerContact = $stateParams.ContactNo;\r\n\t\tvm.warrantyStatus = '';\r\n\t\tvm.dateOfPurchase = '';\r\n\t\tvm.callType = 'Repair';\r\n\t\tvm.AppointmentTime = '08:00'\r\n\t\tvm.AppointmentDate = moment().format('YYYY-MM-DD');\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.timeSlots = [\r\n\t\t\t{ value: '08:00', label: '08:00 AM to 10:00 AM' },\r\n\t\t\t{ value: '10:00', label: '10:00 AM to 12:00 PM' },\r\n\t\t\t{ value: '12:00', label: '12:00 PM to 02:00 PM' },\r\n\t\t\t{ value: '14:00', label: '02:00 PM to 04:00 PM' },\r\n\t\t\t{ value: '16:00', label: '04:00 PM to 06:00 PM' },\r\n\t\t\t{ value: '18:00', label: '06:00 PM to 08:00 PM' }\r\n\t\t];\r\n\r\n\t function getCurrentDateTime() {\r\n return new Date();\r\n }\r\n\t$scope.showRecentActivity = !(vm.accountid == '361');\r\n\r\n\t$scope.RecentActivity = $scope.showRecentActivity ? 1 : 0;\r\n\t$scope.Assets = $scope.showRecentActivity ? 0 : 1;\r\n\r\n\t$scope.$watch('showRecentActivity', function(newValue) {\r\n\t\t$scope.RecentActivity = newValue ? 1 : 0;\r\n\t\t$scope.Assets = newValue ? 0 : 1;\r\n\t});\r\n\t\r\n\r\n\r\n function isTimeSlotValid(slot) {\r\n var now = getCurrentDateTime();\r\n var selectedDate = moment(vm.AppointmentDate).format('YYYY-MM-DD');\r\n\r\n if (selectedDate) {\r\n if (!(selectedDate instanceof Date)) {\r\n selectedDate = new Date(selectedDate);\r\n }\r\n\r\n var slotTime = slot.value.split(':');\r\n var selectedDateTime = new Date(selectedDate);\r\n selectedDateTime.setHours(parseInt(slotTime[0]), parseInt(slotTime[1]), 0, 0);\r\n\r\n return selectedDateTime >= now;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function updateAvailableTimeSlots() {\r\n $timeout(function() {\r\n vm.availableTimeSlots = vm.timeSlots.filter(isTimeSlotValid);\r\n\t\t\tselectDefaultTimeSlot();\r\n });\r\n }\r\n\r\n\tfunction selectDefaultTimeSlot() {\r\n if (vm.availableTimeSlots.length > 0) {\r\n vm.AppointmentTime = vm.availableTimeSlots[0].value;\r\n }\r\n }\r\n\r\n\tvm.minDate = new Date();\r\n\tvm.datepickerOptions = {\r\n\t\tminDate: vm.minDate\r\n\t};\r\n\r\n $scope.$watch('ctrlCRM360.AppointmentDate', function(newValue, oldValue) {\r\n if (newValue !== oldValue) {\r\n updateAvailableTimeSlots();\r\n }\r\n });\r\n\r\n updateAvailableTimeSlots();\r\n\r\n\t\tvm.isDateDisabled = function() {\r\n\t\t\treturn !vm.brandName || \r\n\t\t\t\t !vm.productGroup || \r\n\t\t\t\t !vm.product;\r\n\t\t};\r\n\r\n\t\tvm.getCurrentDate = function() {\r\n\t\t\tvar currentDate = new Date();\r\n\t\t\treturn currentDate;\r\n\t\t};\r\n\r\n vm.CreateTaskModel = function (asset) {\r\n vm.assetData = asset;\r\n vm.brandName = vm.assetData.Brand;\r\n vm.product = vm.assetData.AssetType;\r\n vm.productdefect = vm.assetData.Brand;\r\n vm.productGroup = vm.assetData.ProductGroup;\r\n\t vm.GetAllActiveProductModelMaster();\r\n vm.GetDefectTypeList();\r\n\t\t\tvm.createtaskModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'CreateTaskModel.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.CloseCreateTaskModel = function () {\r\n\t\t\tvm.createtaskModelOpen.close();\r\n\t\t\tvm.brandName = '';\r\n\t\t\tvm.productGroup = '';\r\n\t\t\tvm.product = '';\r\n\t\t\tvm.productdefect = '';\r\n\t\t\tvm.caseDescription = '';\r\n\t\t\tvm.modelNumber = '';\r\n\t\t\tvm.warrantyStatus = '';\r\n\t\t\tvm.dateOfPurchase = '';\r\n\t\t\tvm.callType = 'Repair';\r\n\t\t\tvm.AppointmentDateTime = '';\r\n\t\t\tvm.WarrantyData = \"\";\r\n\t\t\tvm.AppointmentDate = moment().format('YYYY-MM-DD');\r\n\t\t\tupdateAvailableTimeSlots();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t}\r\n\t\r\n\tvm.UpdateDataModel = function () {\r\n\t\tvm.EditcustomerModelOpen = $uibModal.open({\r\n\t\t\ttemplateUrl: 'EditCustomerModel.html',\r\n\t\t\tsize: 'lg',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t}\r\n\tvm.CloseUpdateDataModel = function () {\r\n\t\tvm.EditcustomerModelOpen.close();\r\n\t}\r\n\tvm.GetConsumerFullDetails = function () {\r\n\t\tClientView360Service.GetConsumerFullDetails(loggedinUser, token, consumerContact).then(function (resp) {\r\n\t\t\tif (resp && resp.data) {\r\n\t\t\t\tvm.consumerData = resp.data;\r\n\t\t\t\tvm.consumerAddressData = resp.data.udListAddresses[0];\r\n\t\t\t\tvm.consumerTitle = vm.consumerData.strConsumerTitle;\r\n\t\t\t\tvm.consumerFirstName = vm.consumerData.strConsumerFirstName;\r\n\t\t\t\tvm.consumerLastName = vm.consumerData.strConsumerLastName;\r\n\t\t\t\tvm.consumerContact = vm.consumerData.strConsumerContact;\r\n\t\t\t\tvm.consumerAltContact = vm.consumerData.strConsumerAlternateContact;\r\n\t\t\t\tvm.PersonalEmail = vm.consumerData.strPersonalEmail;\r\n\t\t\t\tvm.consumerType = vm.consumerData.strConsumerType;\r\n\t\t\t\tvm.AddressType = vm.consumerAddressData.strAddressType;\r\n\t\t\t\tvm.consumerCity = vm.consumerAddressData.strCity;\r\n\t\t\t\tvm.consumerPincode = vm.consumerAddressData.strPostalCode;\r\n\t\t\t\tvm.consumerState = vm.consumerAddressData.strState;\r\n\t\t\t\tvm.AddressLine1 = vm.consumerAddressData.strAddress1;\r\n\t\t\t\tvm.AddressLine2 = vm.consumerAddressData.strAddress2;\r\n\t\t\t\tvm.selectedState(vm.consumerState);\r\n\t\t\t}\r\n\t\t}, vm.showFailure);\r\n\t}\r\n\tvm.GetConsumerFullDetails();\r\n\r\n\tvm.GetAllTicketsForContact = function () {\r\n\t\tCustomerCRMListService.GetAllTicketsForContact(loggedinUser, token, consumerContact).then(function (resp) {\r\n\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\tvm.consumerAllTicketsData = resp.data;\r\n\t\t\t\tvm.ticketLength = resp.data.length;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.showFailure(\"Failed\", resp.data.Message)\r\n\t\t\t}\r\n\t\t}, vm.showFailure);\r\n\t}\r\n\r\n\tvm.GetAllTicketsForContact();\r\n\r\n\tvm.GetWarrantyDetailsForProduct = function () {\r\n\t\tvm.WarrantyData = \"\";\r\n\t\t\tvar data = {\r\n\t\t\t\t\"strBrandName\": vm.brandName,\r\n\t\t\t\t\"strProductGroup\": vm.productGroup,\r\n\t\t\t\t\"strProductName\": vm.product,\r\n\t\t\t\t\"dateOfPurchase\": moment(vm.dateOfPurchase).format('YYYY-MM-DD'),\r\n\t\t\t }\r\n\t\t\tCustomerCRMListService.GetWarrantyDetailsForProduct(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\tvm.WarrantyData = resp.data\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\r\n vm.GetAllBrands = function () {\r\n CustomerCRMListService.GetAllBrands(loggedinUser,token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BrandList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.GetAllBrands();\r\n\r\n vm.GetBrandProductGroup = function () {\r\n var data = {\r\n \"strBrandName\": vm.brandName\r\n }\r\n CustomerCRMListService.GetBrandProductGroup(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.PartGroupList = resp.data;\r\n }\r\n });\r\n }\r\n\r\n vm.GetAllProductsForBrand = function () {\r\n var data = {\r\n \"strBrandName\": vm.brandName,\r\n \"strProductGroup\": vm.productGroup\r\n }\r\n CustomerCRMListService.GetAllProductsForBrand(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ProductList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAllActiveProductModelMaster = function () {\r\n\tCustomerCRMListService.GetAllActiveProductModelMaster(vm.product, loggedinUser, token).then(function (resp) {\r\n\t if (resp && resp.data) {\r\n\t\tvm.AllActiveProductModelNoList = resp.data;\r\n\t }\r\n\t})\r\n }\r\n\r\n\r\n vm.GetDefectTypeList = function () {\r\n var data = {\r\n \"strBrandName\": vm.brandName,\r\n \"strProductGroup\": vm.productGroup,\r\n \"strProductName\": vm.product,\r\n\t \"strCallType\" : vm.callType\r\n }\r\n CustomerCRMListService.GetDefectTypeList(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.DefectList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.CreateCase = function () {\r\n vm.dialertask_form.submitted = true;\r\n if (vm.dialertask_form.$valid) {\r\n vm.DisableCreateButton(true);\r\n data = {\r\n \"BrandName\": vm.brandName,\r\n\t\t\"ProductGroup\": vm.productGroup,\r\n\t\t\"ProductName\": vm.product,\r\n\t\t\"ModelNumber\": vm.modelNumber,\r\n\t\t\"AppointmentDateTime\" : moment(vm.AppointmentDate).format('YYYY-MM-DD') + ' ' + vm.AppointmentTime,\r\n\t\t\"DefectType\": vm.productdefect + ' - ' + vm.caseDescription,\r\n\t\t\"MMFSkillMapped\": vm.DefectList.strMMFSkillMapped,\r\n\t\t\"ConusmerContact\": vm.consumerContact,\r\n\t\t\"CallType\": vm.callType,\r\n\t\t\"DateOfPurchase\": moment(vm.dateOfPurchase).format('YYYY-MM-DD'),\r\n\t\t\"WarrantyStatus\": vm.warrantyStatus\r\n }\r\n CustomerCRMListService.CreateCase(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", 'Case created successfully.');\r\n setTimeout(function () {\r\n vm.CloseCreateTaskModel();\r\n vm.GetAllTicketsForContact();\r\n }, 1000);\r\n }\r\n else {\r\n vm.DisableCreateButton(false);\r\n vm.showFailure('Failed', resp.data.Message);\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n\t\r\n\tfunction getAllStates() {\r\n\t\tvar defered = $q.defer();\r\n\t\tReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n\t\t\tdefered.resolve(resp);\r\n\t\t}, function (error) {\r\n\t\t\tdefered.reject(error);\r\n\t\t});\r\n\t\treturn defered.promise;\r\n\t}\r\n\r\n\tvar allStatePromise = getAllStates(loggedinUser);\r\n\tallStatePromise.then(function (resp) {\r\n\t\tvm.StateList = resp.data;\r\n\r\n\t});\r\n\tfunction getallCities(state) {\r\n\t\tReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t\tvm.CityList = resp.data;\r\n\t\t});\r\n\t}\r\n\tvm.selectedState = function (state) {\r\n\t\tgetallCities(state);\r\n\t}\r\n\r\n\tvm.GetConsumerAssets = function () {\r\n\t\tClientView360Service.GetConsumerAssets(loggedinUser, token, consumerContact).then(function (resp) {\r\n\t\t\tif (resp && resp.data && resp.status == 200) {\r\n\t\t\t\tvm.consumerAssetData = resp.data;\r\n\t\t\t\tvm.consumerAssetDataLength = resp.data.length;\r\n\t\t\t}\r\n\t\t}, vm.showFailure);\r\n\t}\r\n\tvm.GetConsumerAssets();\r\n\r\n\r\n\tvm.UpdateConsumer = function () {\r\n\t\tvm.editprofile_form.submitted = true;\r\n\t\tif (vm.editprofile_form.$valid) {\r\n\t\t\tvm.DisableCreateButton(true);\r\n\t\t\tdata = {\r\n\t\t\t\t\"strConsumerTitle\": vm.consumerTitle,\r\n\t\t\t\t\"strConsumerFirstName\": vm.consumerFirstName,\r\n\t\t\t\t\"strConsumerLastName\": vm.consumerLastName,\r\n\t\t\t\t\"strConsumerContact\": vm.consumerContact,\r\n\t\t\t\t\"strConsumerAlternateContact\": vm.consumerAltContact,\r\n\t\t\t\t\"strPersonalEmail\": vm.PersonalEmail,\r\n\t\t\t\t\"strConsumerArea\": \"string\",\r\n\t\t\t\t\"strConsumerLandMark\": \"string\",\r\n\t\t\t\t\"strConsumerType\": vm.consumerType,\r\n\t\t\t\t\"udListAddresses\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"strAddressType\": vm.AddressType,\r\n\t\t\t\t\t\t\"strAddress1\": vm.AddressLine1,\r\n\t\t\t\t\t\t\"strAddress2\": vm.AddressLine2,\r\n\t\t\t\t\t\t\"strCity\": vm.consumerCity,\r\n\t\t\t\t\t\t\"strDistrict\": \"string\",\r\n\t\t\t\t\t\t\"strPostalCode\": vm.consumerPincode,\r\n\t\t\t\t\t\t\"strState\": vm.consumerState,\r\n\t\t\t\t\t\t\"strCountry\": \"India\",\r\n\t\t\t\t\t\t\"bIsDefaultAddress\": true\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t\tClientView360Service.UpdateConsumer(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.showSuccess(\"Success\", 'Consumer details updated successfully.');\r\n\t\t\t\t\tvm.CloseUpdateDataModel();\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tvm.GetConsumerFullDetails();\r\n\t\t\t\t\t\tvm.clearCustomerData();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\tvm.showFailure('Failed', resp.data.Message);\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tvm.clearCustomerData = function () {\r\n\t\tvm.consumerTitle = '';\r\n\t\tvm.consumerFirstName = '';\r\n\t\tvm.consumerLastName = '';\r\n\t\tvm.consumerContact = '';\r\n\t\tvm.consumerAltContact = '';\r\n\t\tvm.PersonalEmail = '';\r\n\t\tvm.consumerType = '';\r\n\t\tvm.AddressType = '';\r\n\t\tvm.consumerCity = '';\r\n\t\tvm.consumerPincode = '';\r\n\t\tvm.consumerState = '';\r\n\t\tvm.AddressLine1 = '';\r\n\t\tvm.AddressLine2 = '';\r\n\t}\r\n}\r\n\r\n});\r\n\nangular.module('inspinia').service('CentralHDTicketsViewService', function (ApiURL, SchedulingAPI, $log, FreelancerURL, $http, $localStorage, $window, PublicApiURL, ActivityURL) {\r\n\r\n\r\n //Generate Invoice Preview Via Model \r\n this.downloadOnSiteReport = function (loggedInUserId, token, TicketId) {\r\n var url = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n });\r\n }\r\n\r\n this.DonwloadPDFOnSiteReportForTickets = function (loggedInUserId, token,TicketId) {\r\n var url = ApiURL + '/api/Report/DonwloadPDFOnSiteReportForTickets?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n this.DownloadPAVReprotXls = function (TicketId,loggedInUserId, token) {\r\n var url = ApiURL + '/api/Report/DownloadPAVReprotXls?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n });\r\n }\r\n\r\n this.OnSiteReprotUploadWeb = function (data, files, token, loggedinUser) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files);\r\n var url = ApiURL + '/api/Upload/OnSiteReprotUploadWeb?TicketId=' + data;\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n\r\n // this.GeneratePdfOnSiteReportForMultipleTickets = function (ticketIds,loggedInUserId,token) {\r\n // var url = ApiURL + '/api/Report/GeneratePdfOnSiteReportForMultipleTickets?TicketId=' + ticketIds;\r\n // $http.get(url, {\r\n // headers: {\r\n // 'ContentType': 'application/json',\r\n // 'Token': token,\r\n // 'UserId': loggedInUserId\r\n // }\r\n // }); \r\n // $window.open(url, '_blank');\r\n // }\r\n\r\n this.DownloadPDFReportZip = function (ticketIds) {\r\n var url = PublicApiURL + \"/api/Report/DownloadPDFReportZip?TicketIds=\" + ticketIds;\r\n $window.open(url, '_blank');\r\n }\r\n\r\n this.getAllJobTickets = function (supervisorId, startDate, endDate, token, itemNames, itemValues, templateCols, templateItemNames, templateItemValues, DateField) {\r\n var url = '';\r\n // itemNames = '';\r\n // itemValues = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetStates?userId=U420000000001&country=QATAR\r\n this.getStates = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n //Accounts API\r\n this.getAllAccounts = function (loggedinUser,token) { \r\n var url = ApiURL+ '/api/CentralHelpDesk/GetAllAccountHDConfig';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n }\r\n\r\n \r\n // https://product.mymobiforce.com/coreapi/api/Report/GetAttachmentsByTicketIdWithSignoffReport?TicketId=T2040000000004\r\n this.getAttachment = function (loggedInUserId, token, TicketId) {\r\n var url = ApiURL + '/api/Report/GetAttachmentsByTicketIdWithSignoffReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n // https://product.mymobiforce.com/coreapi/api/Image?fileName=Completion Sign Off Report_8299.pdf\r\n this.viewReportPdf = function (loggedInUserId, token, fileName) {\r\n var url = ApiURL + '/api/Image?fileName=' + fileName;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.getAllJobTicketsCopy = function (supervisorId, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, DateField, PageIndex, PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRangeWithDynaPagingForCHDDashboard?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n this.getAllJobTicketsCopyForPagging = function (supervisorId, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, DateField, PageIndex, PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRangeWithDynaPagingForCHDListing?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n\r\n // url = https://product.mymobiforce.com/schedulingAPI/api/AutoJobBroadcast/AutoBroadcastAllNewJobsManualMode\r\n this.AutoBroadcastAllNewJobsManualMode = function (loginUserId, token) {\r\n var url = '';\r\n url = SchedulingAPI + '/api/AutoJobBroadcast/AutoBroadcastAllNewJobsManualMode';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n this.BroadcastJobsManualMode = function (loginUserId, ticketId, token) {\r\n var url = '';\r\n url = SchedulingAPI + '/api/AutoJobBroadcast/BroadcastJobsManualMode';\r\n return $http.post(url, ticketId, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/publicapi/api/Report/DownloadAllTicketReport?fromDate=2019-11-28&toDate=2019-11-29&reqUserId=U400000000001&itemNames=SkillSet&itemValues=All%20Job%20Status&templateCols=All%20Source%20Types\r\n this.downloadTicketsReports = function (loggedInUserId, fromDate, toDate, itemNames, itemValues, templateCols) {\r\n var url = PublicApiURL + \"/api/Report/DownloadAllTicketReport?fromDate=\" + fromDate + '&toDate=' + toDate + '&reqUserId=' + loggedInUserId + \"&itemNames=\" + itemNames + '&itemValues=' + itemValues + '&templateCols=' + templateCols;\r\n $window.open(url);\r\n }\r\n\r\n this.sendReportToMail = function (loggedInUserId, token, fromDate, toDate, itemNames, itemValues, templateCols,DateField) {\r\n var url = ApiURL + \"/api/Report/SendViaMailAllTicketWithTemplateReport?fromDate=\" + fromDate + '&toDate=' + toDate + '&reqUserId=' + loggedInUserId + \"&itemNames=\" + itemNames + '&itemValues=' + itemValues + '&templateCols=' + templateCols + '&DateField=' + DateField ;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.getCustomerJobCardbyJobId = function (accountId, jobId, token, success, failure) {\r\n $http.get(ApiURL + \"/api/GetCustomerJobCardbyJobId/\" + jobId + \"/\" + accountId + \"/GetCustomerJobCardbyJobId\", {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': accountId\r\n }\r\n }).then(function (res) {\r\n if (res && res.data && success) {\r\n success(res.data);\r\n } else if (failure) {\r\n failure();\r\n }\r\n });\r\n }\r\n\r\n\r\n //http://localhost:56749/api/Ticket/DeleteTicket?UserId=asd&TicketId=asdasd\r\n this.DeleteTickets = function (userId, ticketId, token) {\r\n // var url = ApiURL + \"/api/Ticket/DeleteTicket?UserId=\"+userId+ \"&TicketId=\"+ticketId;\r\n // return $http.delete(url,{\r\n // headers:{'Content-Type':'application/json','Token':token}\r\n // })\r\n\r\n return $http({\r\n method: 'DELETE',\r\n url: ApiURL + \"/api/Ticket/DeleteTicket?UserId=\" + userId + \"&TicketId=\" + ticketId,\r\n data: {\r\n\r\n },\r\n headers: {\r\n 'Content-type': 'application/json', 'Token': token, 'UserId': userId\r\n }\r\n })\r\n }\r\n\r\n this.SetTicketExecutionMode = function (reqUserId, mode, ticektIds, token) {\r\n var url = ApiURL + \"/api/Ticket/SetTicketExecutionMode?ReqUserId=\" + reqUserId + \"&mode=\" + mode;\r\n return $http.put(url, {\r\n \"tickets\": ticektIds\r\n }, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': reqUserId\r\n }\r\n })\r\n }\r\n\r\n\r\n this.updateStartTime = function (ticketId, userId, startTime, token, success, failure) {\r\n var url = ApiURL + \"/api/Ticket/updatestartdate?requserid=\" + userId + \"&ticketid=\" + ticketId + \"&starttime=\" + encodeURI(startTime.format(\"YYYY-MM-DDThh:mm:ss.SSSZ\"));\r\n $http.put(url, {\r\n \"requserid\": userId,\r\n \"ticketid\": ticketId,\r\n \"starttime\": startTime.format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\")\r\n }, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': userId\r\n }\r\n }).then(function (res) {\r\n if (res) {\r\n success(res);\r\n } else {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n }\r\n }, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n\r\n this.updateTicketSettlement = function (data, token, loggedInUserId, success, failure) {\r\n\r\n var url = ApiURL + \"/api/Ticket/setsettlementstatus\"\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.ApproveJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.AcceptJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.RejectJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.ConvertToNewJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n ///http://192.168.0.80:92/CoreAPI/api/Ticket/akshit.chauhan%40innotiontech.com/T0000000102/returnticket\r\n this.PullBackTicket = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/returnticket';\r\n return $http.put(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n\r\n //https://test.mymobiforce.com/coreapi/api/Ticket/F00000000000/asdas/ActionByVendor?Action=asdasd\r\n this.ActionByVendor = function (loggedInUserId, ticketIds, action, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketIds + '/ActionByVendor?Action=' + action;\r\n return $http.put(url, {}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n\r\n //http://192.168.0.80:92/Coreapi/api/Ticket/reqUserId/TicketId/HoldingStatus/ticketholding\r\n this.UpdateHoldingStatus = function (loggedInUserId, ticketId, holdingStatus, reason, Remark, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/ticketholding?HoldingStatus=' + holdingStatus + '&Reason=' + reason + '&Remark=' + Remark;\r\n return $http.put(url, {}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.updateTicket = function (ticket, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket?reqUserId=' + loggedInUserId;\r\n return $http.put(url, ticket, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.getJobAllStatus = function (loggedInUserId, token, success, failure) {\r\n var url = ApiURL + '/api/TicketStatus/' + loggedInUserId + '/GetAllTicketStatus';\r\n $http.get(url, { headers: { 'Token': token, 'UserId': loggedInUserId } }).then(function (res) {\r\n if (res && res.status == 200 && res.data) {\r\n if (success) {\r\n success(res.data);\r\n }\r\n } else if (res && res.data) {\r\n if (failure) {\r\n failure(\"Failed\", res.data);\r\n }\r\n } else {\r\n if (failure) {\r\n failure(\"Failed\", \"Unable to get status list, server is not responding correctly\");\r\n }\r\n }\r\n }, function (err) {\r\n if (failure) {\r\n failure(\"Failed\", \"Unable to get status list, server is not responding correctly\");\r\n }\r\n });\r\n }\r\n\r\n this.downloadMultipleReports = function (loggedInUserId, ticketId, reportMapperId, correlated) {\r\n var url = PublicApiURL + \"/api/Report/\" + ticketId + \"/DownloadReportByTemplateName?reqUserId=\" + loggedInUserId + \"&correlated=\" + (correlated ? \"True\" : \"False\")\r\n $window.open(url);\r\n }\r\n\r\n this.SendPdfOnSiteReportForMultipleTicketsOnMail = function (ticketId,loggedInUserId,token) {\r\n var url = ApiURL + '/api/Report/SendPdfOnSiteReportForMultipleTicketsOnMail?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n }).then($window.open(resp.config.url, '_blank'));\r\n }\r\n\r\n\r\n //http://localhost:55238/api/Report/456/DownloadInvoice?reqUserId=123&correlated=True\r\n this.downloadInvoice = function (loggedInUserId, ticketId, correlated) {\r\n var url = PublicApiURL + \"/api/Report/\" + ticketId + \"/DownloadInvoice?reqUserId=\" + loggedInUserId + \"&correlated=\" + (correlated ? \"True\" : \"False\")\r\n\r\n $window.open(url);\r\n }\r\n\r\n this.getSkills = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId=' + loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n // vm.showSuccess(\"skills\", \"Got skills list\");\r\n }, function () {\r\n failure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n this.TicketFollowUp = function (data, files, token, loggedInUserId, success, failure) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"ActivityModel\", followupdata);\r\n\r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUserId }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n this.TicketFollowUpWithoutDoc = function (data, token, loggedInUserId, success, failure) {\r\n var formdata = new FormData();\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"ActivityModel\", followupdata);\r\n\r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUserId }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.getBillExpenseByTicketID = function (loggedinUser, ticketID, token) {\r\n var url = ApiURL + '/api/Expense/GetByTicketId?ReqUserId=' + loggedinUser + '&TicketId=' + ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.getPdfReport = function (loggedinUser, ticketID, token) {\r\n var url = ApiURL + '/api/Report/GeneratePdfReportForApprovedJob?TicketId=' + ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.GeneratePdfEstimateReport = function (loggedinUser, ticketID, token) {\r\n var url = ApiURL + '/api/Report/GeneratePdfEstimateReport?TicketId=' + ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n // https://product.mymobiforce.com/coreapi/api/Ticket/TicketRejectionHistory?TicketId=T1140000092053\r\n\r\n this.getRejectHistory = function (TicketId, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/TicketRejectionHistory?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n });\r\n }\r\n\r\n this.GetAllFollowUpForJob = function (TicketId, loggedInUserId, token) {\r\n var url = ActivityURL + '/api/Activity/GetAllFollowUpForJob?JobId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/Ticket/T0000000715%2CT0000000713/F00000000000/GetDataCaptureImagebyTicketId\r\n this.downloadImage = function (loggedInUserId, ticketIDs, token) {\r\n var url = PublicApiURL + \"/api/Report/DownloadDataCaptureInFieldPicture?reqUserId=\" + loggedInUserId + \"&TicketIds=\" + ticketIDs;\r\n $window.open(url);\r\n\r\n }\r\n\r\n // https://test.mymobiforce.com/publicapi/api/Report/T2660000001594,T2660000001593,T2660000001592/DownloadReportByTemplateName?reqUserId=U2660000000001&correlated=False\r\n\r\n this.downloadReportTemplate = function (loggedInUserId, ticketIDs) {\r\n var url = PublicApiURL + '/api/Report/' + ticketIDs + '/DownloadReportByTemplateName?reqUserId=' + loggedInUserId + '&correlated=False';\r\n $window.open(url);\r\n\r\n }\r\n\r\n this.getAllCustomers = function (loggedInUser, token) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' + loggedInUser;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUser }\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Customer/GetCustomerByAccountId?accountId=114\r\n this.GetCustomersByAccount = function (loggedinUser, accountId, token) {\r\n var url = ApiURL + '/api/Customer/GetCustomerByAccountId?accountId=' + accountId\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.GetAllProjects = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/Project/' + loggedinUser + '/' + loggedinUser + '/GetProjectsByUserId'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n // https://product.mymobiforce.com/FreelancerAPI/api/FreeLancerUser/F00000001230/U400000000001/byUserIdWithJobCount\r\n this.getUserProfileData = function (loggedinUser, userid, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userid + '/' + loggedinUser + '/byUserIdWithJobCount'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/User/235432432/byUserIdWithJobCount?reqUserId=34234\r\n this.getFixedUserProfileData = function (loggedinUser, userid, token) {\r\n var url = ApiURL + '/api/User/' + userid + '/byUserIdWithJobCount?reqUserId=' + loggedinUser\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n //https://product.mymobiforce.com/coreapi/api/Ticket/CancelTicket?reqUserId=dfgdfs&TicketId=dfgfdg\r\n this.CancelTicket = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/CancelTicket?reqUserId=' + loggedInUserId + '&TicketId=' + ticketId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.TBCCancelationAudit = function (data, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobAudit';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.UpdateCompletionRemark = function (data, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateCompletionRemark';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetCSATRatingByTicketID = function (loggedInUserId, ticketId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/GetCSATRatingByTicketID';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetCancellationReasons = function (AuditTicketId, status, loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketCancelationReasonController/' + loggedInUserId + '/getCancellationReasons?AtStatus=' + status + '&TicketId=' + AuditTicketId;;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.UpdateJobServerCancel = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobServerCancel';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetTicketByGeneralSearch = function (SearchText, PageIndex, PageSize, loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketByGeneralSearch?searchText=' + SearchText + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.AddSiteAuditwithAttachment = function (data, files, token, loggedinUser) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"AuditRequestModel\", followupdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/Upload/PostMediaFileWithAuditObject';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n //https://product.mymobiforce.com/coreapi/api/Invoice/GetTicketDataToRaiseInvoice\r\n this.GetTicketDataToRaiseInvoice = function (loggedinUser, ticketIdList, token) {\r\n var url = ApiURL + '/api/Invoice/GetTicketDataToRaiseInvoice'\r\n return $http.put(url, ticketIdList, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Invoice/MarkTicketsReadyToRaiseInvoice\r\n this.MarkTicketsReadyToRaiseInvoice = function (loggedinUser, ticketwithLineitemList, token) {\r\n var url = ApiURL + '/api/Invoice/MarkTicketsReadyToRaiseInvoice'\r\n return $http.put(url, ticketwithLineitemList, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n //https://product.mymobiforce.com/CoreAPI/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=FollowUp\r\n this.GetReasonsByStatus = function (loggedinUser, token, status) {\r\n var url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + status;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n // https://product.mymobiforce.com/coreapi/api/Ticket/ConvertToNewFromBroadcasted?PullBackReason=No%20Technician%20Found&MoveSPDbyTwoDays=true\r\n this.ConvertJobIntoNew = function (MoveSPDbyTwoDays, IsCommissionDetect, PullBackReason, loggedinUser, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/ConvertToNewFromBroadcasted?PullBackReason=' + PullBackReason + '&MoveSPDbyTwoDays=' + MoveSPDbyTwoDays + '&IsCommissionDetect=' + IsCommissionDetect;\r\n return $http.post(url, ticketId, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n //https://product.mymobiforce.com/coreapi/api/Ticket/UpdatePlannedClosureDate\r\n this.updatePlannedClosure = function (loggedinUser, data, token, success, failure) {\r\n $http.put(ApiURL + '/api/Ticket/UpdatePlannedClosureDate', data,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (res && res.status == 200 && res) {\r\n success(res.data);\r\n } else {\r\n failure(\"Failed\", res.data.Message);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job, server is not responding correctly.\");\r\n });\r\n }\r\n this.GetPullBacknReasons = function (loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + 'PullBack';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.ProcessJobToBeAssignedManually = function(ticketIDs, loggedInUserId, token){\r\n var url = ApiURL + '/api/BatchProcessing/ProcessJobToBeAssignedManually';\r\n return $http.post(url, ticketIDs, \r\n { \r\n headers: { 'Content-Type': 'application/json','Token':token, 'UserId': loggedInUserId} \r\n })\r\n }\r\n\r\n\r\n this.PullBackTicketFromTechnician = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/PullBackTicketFromTechnician';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.MarkTicketsReadyToRaise = function (data,loggedInUserId, token) {\r\n var url = ApiURL + '/api/Invoice/MarkTicketsReadyToRaiseInvoiceInBulk'\r\n return $http.put(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId }\r\n })\r\n }\r\n\r\n\r\n\r\n});\r\n\nangular.module('inspinia').controller('CentralHDTicketsViewController', function ($state,MainService , ManualAssignationJobService, DashboardService, AllUsersListService, PaymentSectionService, CentralHDTicketsViewService, $rootScope, $http, $stateParams, UIURL, $q, $log, $localStorage, DTOptionsBuilder, ApiURL, DTColumnBuilder, ngProgressFactory, $uibModal, $scope, toaster, $filter, DTColumnDefBuilder, $window, $timeout, PublicApiURL, jobBidCreationService, ImageUrl) {\r\n var vm = this;\r\n\r\n var loggedInUserId = $localStorage.loggedInUserId;\r\n if (!loggedInUserId) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n var token = $localStorage.token;\r\n vm.Remarks = '';\r\n vm.selectedTemplates = '';\r\n vm.PaymentStatus = '';\r\n vm.SettlementStatus = '';\r\n vm.disableExceptionButton = false;\r\n vm.readyRaisedI = false;\r\n vm.enableFilters = true;\r\n vm.GroupType = \"\";\r\n vm.actionFlag = false;\r\n vm.editPermission = false;\r\n vm.ticketList = [];\r\n vm.statusList = [];\r\n vm.reasonsForFU = '';\r\n // vm.DateField=\"CreatedOn\";\r\n vm.DateField = vm.accountConfig.AccountId == 0 ? 'StatusChangedOn' : 'CreatedOn';\r\n vm.reasonsForHold = '';\r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = '';\r\n vm.primaryHoldReason = '';\r\n vm.primaryHoldRemark = '';\r\n vm.convertNewReasons = '';\r\n vm.convertNewReasonsRemark = '';\r\n vm.MoveSPDbyTwoDays = false;\r\n // $scope.$parent.$parent.main.implementSelectItems('ticketList', this);\r\n vm.approvalRemark = '';\r\n vm.RejectionRemark = '';\r\n vm.searchText = \"\";\r\n vm.IsSearch = false;\r\n vm.IsCommissionDetect = false;\r\n vm.searchStatusText = \"\";\r\n //vm.searchLabText = \"\";\r\n vm.HDAllAccounts = [];\r\n vm.searchJobTypeText = \"\";\r\n vm.SearchByAccountName = \"\";\r\n vm.CustomerList = [];\r\n vm.ProjectList = [];\r\n vm.closureCode = \"\";\r\n vm.CancellationReasons = \"\";\r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n vm.SearchByTContact = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByCName = '';\r\n vm.JobcountbyStatus = \"\";\r\n vm.InvoiceStatus = \"\";\r\n vm.previousPage = $localStorage.previousPage;\r\n vm.autoScheduleOn = $localStorage.accountConfig.IsAutoSchedulerOn;\r\n var approveModalInstance = {};\r\n var supervisorId = $localStorage.loggedInUserId;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.loggedInAs = $localStorage.loggedinAs;\r\n //$log.log(\"role\", vm.Role);\r\n vm.aproveMessage = 'Please Rate !';\r\n var itemNames = '';\r\n var itemValues = '';\r\n var templateItemNames = '';\r\n var templateItemValues = '';\r\n var textItemNames = '';\r\n var textItemValues = '';\r\n vm.ticketPageListCount = 10;\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.IsSafetyAudit = 'Not Done';\r\n vm.ratingwarning = \"\";\r\n vm.ticketListLength = 0;\r\n vm.pageindexCount = 0;\r\n vm.SiteAuditFileName = \"\";\r\n vm.TicketDataToRaiseInvoiceList = [];\r\n vm.IsLoadSucessfull = false;\r\n vm.pullBackReasons = '';\r\n vm.pullBackReasonsRemark = '';\r\n vm.IsWithInDays = \"first\";\r\n vm.WithInDaysNumbers = [1, 2, 3, 4, 5];\r\n vm.PlannedClosureReason = \"\";\r\n vm.PlannedClosureDate = \"\";\r\n vm.bulkuploadType = \"Ticket\";\r\n var uPageIndex = 1;\r\n var uPageSize = 10;\r\n var fPageIndex = 1;\r\n var fPageSize = 10;\r\n $scope.isCollapsed = true;\r\n $localStorage.AllJobStatus = vm.searchStatusText;\r\n vm.UsersType = \"\";\r\n vm.uType = \"\";\r\n var uitemNames = \"\";\r\n var uitemValues = \"\";\r\n vm.searchUsersText = \"\";\r\n vm.jobsCount = '';\r\n vm.userPageListCount = 10;\r\n vm.financePageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n vm.OrderBy = \"CreatedOn\";\r\n vm.sorttype = \"desc\";\r\n var startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: moment().subtract(7, 'days'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n vm.path = \"\";\r\n vm.path = $rootScope.rootScopeMessage;\r\n\r\n var scdt = new Date();\r\n scdt.setMinutes(scdt.getMinutes() + 30);\r\n vm.SourceCreationDate = scdt;\r\n var pcdt = new Date();\r\n pcdt.setDate(pcdt.getDate() + 7);\r\n vm.PlannedClosureDate = pcdt;\r\n\r\n vm.openCalendar = function (e, picker) {\r\n vm.ClosureDateTime.open = true;\r\n };\r\n var plannedclosuredatelimit = new Date();\r\n plannedclosuredatelimit.setMinutes(plannedclosuredatelimit.getMinutes() + 1)\r\n vm.ClosureDateTime = { date: '', datepickerOptions: { minDate: plannedclosuredatelimit } };\r\n\r\n if (vm.path == 'NewJobDetailsCopy') {\r\n\r\n vm.searchJobTypeText = $localStorage.AllJobType;\r\n vm.searchStatusText = $localStorage.AllJobStatus;\r\n var data = $localStorage.TicketFilterModel;\r\n\r\n if (data) {\r\n vm.SearchByPName = data.JobProject;\r\n vm.SearchByTName = data.JobTName;\r\n vm.SearchByDiscription = data.JobDesc;\r\n vm.SearchByIs = data.JobId;\r\n vm.searchJobTypeText = data.JobType;\r\n vm.searchStatusText = data.JobStatus;\r\n vm.DateField = data.JobDType;\r\n PageIndex = data.PageIndex;\r\n vm.ticketdates = { startDate: data.JobSDate, endDate: data.JobEDate };\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n if (vm.path == 'isTicketView') {\r\n var startDate = $localStorage.SDate;\r\n var endDate = $localStorage.EDate;\r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n } else {\r\n var startDate = $localStorage.SDate ? $localStorage.SDate : moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = $localStorage.EDate ? $localStorage.EDate : moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n // $scope.dates = { startDate: moment().subtract(1, 'day'), endDate: moment() };\r\n }\r\n\r\n $scope.totalTableUsers = 0;\r\n $scope.usersTablePerPage = vm.ticketPageListCount; // this should match however many results your API puts on one page\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n vm.changeTicketPageListCount = function () {\r\n vm.GroupType = 'Individual|WorkOrderGroup';\r\n $scope.usersTablePerPage = vm.ticketPageListCount;\r\n PageSize = $scope.usersTablePerPage;\r\n $scope.TicketTablepageChanged($scope.UserTablepagination.current);\r\n vm.selectAll = false;\r\n }\r\n\r\n $scope.UserTablepagination.current = $localStorage.TicketFilterModel ? $localStorage.TicketFilterModel.PageIndex : 1;\r\n PageIndex = $scope.UserTablepagination.current;\r\n $scope.UserTablepageChanged = function (newPage) {\r\n if (itemNames == '') {\r\n vm.GroupType = 'Individual|Group|WorkOrderGroup'\r\n }\r\n PageIndex = newPage;\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n };\r\n\r\n\r\n vm.ResetFilter = function () {\r\n vm.searchStatusText = \"\";\r\n vm.searchLabText = \"\";\r\n vm.searchJobTypeText = \"\";\r\n vm.DateField = vm.accountConfig.AccountId == 0 ? 'StatusChangedOn' : 'CreatedOn';\r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n vm.SearchByTContact = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByCName = '';\r\n vm.SearchByAccountName = '';\r\n vm.InvoiceStatus = '';\r\n vm.Priority = '';\r\n //vm.CustomerList = [];\r\n //vm.ProjectList = [];\r\n vm.GroupType = 'Individual|Group|WorkOrderGroup'\r\n vm.ProjectListByCustomer = [];\r\n PageIndex = 1;\r\n PageSize = 10;\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }\r\n vm.FilterArray = function () {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n templateItemNames = '';\r\n templateItemValues = '';\r\n if (vm.searchJobTypeText) {\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText.join(\"|\");\r\n }\r\n if (vm.searchStatusText && vm.searchStatusText != \"\") {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText.join(\"|\");\r\n } else {\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText.join(\"|\");\r\n }\r\n }\r\n if (vm.JobcountbyStatus) {\r\n itemNames = 'Status';\r\n itemValues = vm.JobcountbyStatus;\r\n }\r\n\r\n if (vm.GroupType) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',GroupType';\r\n itemValues = itemValues + ',' + vm.GroupType;\r\n } else {\r\n itemNames = 'GroupType';\r\n itemValues = vm.GroupType;\r\n }\r\n }\r\n\r\n if (vm.InvoiceStatus) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',InvoiceStatus';\r\n itemValues = itemValues + ',' + vm.InvoiceStatus;\r\n } else {\r\n itemNames = 'InvoiceStatus';\r\n itemValues = vm.InvoiceStatus;\r\n }\r\n }\r\n if (vm.Priority) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',Priority';\r\n itemValues = itemValues + ',' + vm.Priority;\r\n } else {\r\n itemNames = 'Priority';\r\n itemValues = vm.Priority;\r\n }\r\n }\r\n\r\n if (vm.SearchByAccountName) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',AccountName';\r\n itemValues = itemValues + \",\" + vm.SearchByAccountName.join('|');\r\n }\r\n else {\r\n itemNames = 'AccountName';\r\n itemValues = vm.SearchByAccountName.join('|');\r\n }\r\n }\r\n\r\n if (vm.SearchByCName) {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',CustomerName';\r\n itemValues = itemValues + ',' + vm.SearchByCName;\r\n } else {\r\n itemNames = 'CustomerName';\r\n itemValues = vm.SearchByCName;\r\n }\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',ProjectName';\r\n itemValues = itemValues + ',' + vm.SearchByPName;\r\n } else {\r\n itemNames = 'ProjectName';\r\n itemValues = vm.SearchByPName;\r\n }\r\n }\r\n textItemNames = '';\r\n textItemValues = '';\r\n if (vm.SearchByIs) {\r\n if (textItemNames.length == 0 && textItemValues.length == 0) {\r\n textItemNames = 'CorelationValue';\r\n textItemValues = vm.SearchByIs;\r\n } else {\r\n textItemNames = textItemNames + ',CorelationValue';\r\n textItemValues = textItemValues + ',' + vm.SearchByIs;\r\n }\r\n\r\n }\r\n if (vm.SearchByDiscription) {\r\n if (textItemNames.length == 0 && textItemValues.length == 0) {\r\n textItemNames = 'JobDescription';\r\n textItemValues = vm.SearchByDiscription;\r\n } else {\r\n textItemNames = textItemNames + ',JobDescription';\r\n textItemValues = textItemValues + ',' + vm.SearchByDiscription;\r\n }\r\n }\r\n if (vm.SearchByTName) {\r\n if (textItemNames.length == 0 && textItemValues.length == 0) {\r\n textItemNames = 'UserName';\r\n textItemValues = vm.SearchByTName;\r\n } else {\r\n textItemNames = textItemNames + ',UserName';\r\n textItemValues = textItemValues + ',' + vm.SearchByTName;\r\n }\r\n }\r\n if (vm.SearchByTContact) {\r\n if (textItemNames.length == 0 && textItemValues.length == 0) {\r\n textItemNames = 'UserContact';\r\n textItemValues = vm.SearchByTContact;\r\n } else {\r\n textItemNames = textItemNames + ',UserContact';\r\n textItemValues = textItemValues + ',' + vm.SearchByTContact;\r\n }\r\n }\r\n if (vm.searchText) {\r\n itemNames = 'Search';\r\n itemValues = vm.searchText;\r\n templateItemNames = '';\r\n templateItemValues = '';\r\n textItemNames = '';\r\n textItemValues = '';\r\n }\r\n }\r\n\r\n vm.GetAllStates = function () {\r\n CentralHDTicketsViewService.getStates(supervisorId, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.states = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n vm.GetAllStates();\r\n // No Need to change\r\n vm.CommonFunToGetAllJob = function () {\r\n vm.FilterArray();\r\n var templateCols = \"\";\r\n CentralHDTicketsViewService.downloadTicketsReports(supervisorId, startDate, endDate, itemNames, itemValues, templateCols);\r\n }\r\n vm.MailReport = function () {\r\n vm.FilterArray();\r\n var templateCols = \"\";\r\n vm.DateField = vm.DateField ? vm.DateField : \"CreatedOn\";\r\n // vm.DateField = vm.accountConfig.AccountId == 0 ? 'StatusChangedOn' : 'CreatedOn';\r\n CentralHDTicketsViewService.sendReportToMail(loggedInUserId, token, startDate, endDate, itemNames, itemValues, templateCols, vm.DateField).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n }\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n }, function () {\r\n });;\r\n }\r\n\r\n vm.getAttachment = function (ticketid) {\r\n vm.attachementInit = 0;\r\n vm.pdfTabClass = [];\r\n vm.activeTabClass = 'active-tab';\r\n vm.noactiveTabClass = 'noactive-tab';\r\n CentralHDTicketsViewService.getAttachment(supervisorId, token, ticketid).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.attachment = resp.data;\r\n }\r\n });\r\n }\r\n\r\n vm.callToTechnician = function () {\r\n DashboardService.callToTechnicianApi(loggedInUserId, vm.userId, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\")\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", resp.data.Message)\r\n }\r\n\r\n\r\n }, function () {\r\n //$log.log('not working');\r\n })\r\n }\r\n\r\n vm.GetAllWorkOrderJob = function (isCollapsed, workOrder) {\r\n if (vm.workOrder == workOrder) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.activeRow = workOrder;\r\n vm.workOrder = workOrder;\r\n vm.workOrdertList = [];\r\n if ($scope.isCollapsed)\r\n return;\r\n ManualAssignationJobService.GetAllWorkOrderJob(loggedInUserId, workOrder, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.workOrdertList = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n\r\n vm.GetAllBundledJobs = function (isCollapsed, bundleId) {\r\n if (vm.bundleId == bundleId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.activeRow = bundleId;\r\n vm.bundleId = bundleId;\r\n vm.BundleTicketList = [];\r\n if ($scope.isCollapsed)\r\n return;\r\n ManualAssignationJobService.GetAllBundledJobs(loggedInUserId, vm.bundleId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BundleTicketList = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.viewReportPdf = function (init, index, file) {\r\n if (init == 1 && vm.attachementInit != 0)\r\n return;\r\n\r\n if (init == 1 && vm.attachementInit == 0) {\r\n for (var i = 0; i < vm.attachment.length; i++) {\r\n vm.pdfTabClass[i] = 'notactive-tab';\r\n }\r\n vm.pdfTabClass[index] = 'active-tab';\r\n }\r\n else if (init == 0) {\r\n for (var i = 0; i < vm.attachment.length; i++) {\r\n vm.pdfTabClass[i] = 'notactive-tab';\r\n }\r\n vm.pdfTabClass[index] = 'active-tab';\r\n }\r\n\r\n vm.attachementInit = 1;\r\n CentralHDTicketsViewService.viewReportPdf(supervisorId, token, file).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.fileLink = resp.data;\r\n\r\n }\r\n });\r\n }\r\n\r\n\r\n vm.pdfTabClass = [];\r\n vm.viewInvoicePdf = function (file) {\r\n vm.PDFView();\r\n CentralHDTicketsViewService.viewReportPdf(supervisorId, token, file).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.InvoiceData = resp.data;\r\n var arrrayBuffer = base64ToArrayBuffer(vm.InvoiceData);\r\n var blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n vm.pdfimage = URL.createObjectURL(blob);\r\n vm.IsLoadSucessfull = true;\r\n\r\n // if(vm.fileLink){\r\n // vm.showInvoice = true;\r\n // }\r\n }\r\n });\r\n\r\n }\r\n\r\n vm.getAllAccounts = function () {\r\n CentralHDTicketsViewService.getAllAccounts(loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.HDAllAccounts = resp.data;\r\n\r\n }\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.getAllAccounts();\r\n\r\n vm.Allapplyfilter = function () {\r\n vm.searchText = '';\r\n if (vm.GroupType == '') {\r\n vm.GroupType = 'Individual|Group|WorkOrderGroup';\r\n vm.ComboEnabled = false;\r\n vm.WorkOrderEnabled = false;\r\n }\r\n else if (vm.GroupType == 'Individual' || vm.GroupType == 'Group' || vm.GroupType == 'WorkOrderGroup') {\r\n vm.ComboEnabled = false;\r\n vm.WorkOrderEnabled = false;\r\n }\r\n else if (vm.GroupType == 'WorkOrder') {\r\n vm.ComboEnabled = false;\r\n vm.WorkOrderEnabled = true;\r\n }\r\n else if (vm.GroupType == 'Combo') {\r\n vm.ComboEnabled = true;\r\n vm.WorkOrderEnabled = false;\r\n }\r\n $scope.$broadcast('update.daterangepicker', { date: vm.ticketdates });\r\n $scope.UserTablepagination = {};\r\n vm.FilterArray();\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n\r\n }\r\n vm.getAllCustomer = function () {\r\n CentralHDTicketsViewService.getAllCustomers(supervisorId, token).then(function (resp) {\r\n vm.CustomerList = resp.data;\r\n })\r\n }\r\n vm.getAllProject = function () {\r\n CentralHDTicketsViewService.GetAllProjects(supervisorId, token).then(function (resp) {\r\n vm.ProjectList = resp.data;\r\n })\r\n }\r\n vm.getAllCustomer();\r\n vm.getAllProject();\r\n\r\n vm.GetCustomerByAccount = function () {\r\n var SelectedAccountId = '';\r\n angular.forEach(vm.HDAllAccounts, function (account) {\r\n if (account.AccountName == vm.SearchByAccountName) {\r\n SelectedAccountId = account.AccountId;\r\n }\r\n })\r\n CentralHDTicketsViewService.GetCustomersByAccount(loggedInUserId, SelectedAccountId, token).then(function (resp) {\r\n vm.CustomerList = resp.data;\r\n })\r\n }\r\n\r\n\r\n vm.GetAllFollowUpForJob = function (ticketId) {\r\n CentralHDTicketsViewService.GetAllFollowUpForJob(ticketId, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.getfollowUpList = resp.data;\r\n // openHistoryModel = $uibModal.open({\r\n // templateUrl: 'openFollowUpModel.html',\r\n // size: 'lg',\r\n // scope: $scope\r\n // });\r\n }\r\n\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.CloseHistoryModel = function () {\r\n openHistoryModel.close();\r\n }\r\n\r\n\r\n vm.getRejectHistory = function (ticketId) {\r\n CentralHDTicketsViewService.getRejectHistory(ticketId, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.getDetailsList = resp.data;\r\n openHistoryModel = $uibModal.open({\r\n templateUrl: 'openHistoryModel.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n vm.CloseHistoryModel = function () {\r\n openHistoryModel.close();\r\n }\r\n\r\n\r\n vm.ExternalUpload = function (teamid) {\r\n var newdata = {};\r\n newdata = {\r\n \"UserId\": teamid,\r\n \"Type\": \"\",\r\n \"skillName\": \"\"\r\n }\r\n AllUsersListService.UploadExternalVideoList(newdata, loggedInUserId, token).then(function (resp) {\r\n vm.UploadVideoExternal = resp.data;\r\n });\r\n }\r\n vm.GetProjectByCustomer = function () {\r\n vm.ProjectListByCustomer = [];\r\n angular.forEach(vm.CustomerList, function (customer) {\r\n if (customer.CompanyName == vm.SearchByCName) {\r\n vm.ProjectListByCustomer = customer.Projects;\r\n }\r\n })\r\n }\r\n vm.OpenAutoScheduleConfirmationModal = function () {\r\n vm.confirmationMessage = 'Do you want to auto schedule the jobs?';\r\n confirmationModalInstance = $uibModal.open({\r\n templateUrl: 'auto_schedule_confirmation_model.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.confirmationCloseModal = function () {\r\n confirmationModalInstance.close();\r\n }\r\n vm.AutoScheduleJobs = function () {\r\n CentralHDTicketsViewService.AutoBroadcastAllNewJobsManualMode(supervisorId, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n confirmationModalInstance.close();\r\n vm.showSuccess(\"Success\", \"Jobs has been auto scheduled successfully\");\r\n }\r\n if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.OpenScheduleConfirmationModal = function () {\r\n var ticketIds = '';\r\n var count = 0;\r\n angular.forEach(vm.ticketList, function (d) {\r\n if (d.checked) {\r\n count = count + 1;\r\n if (ticketIds == '') {\r\n ticketIds = d.TicketId;\r\n }\r\n else {\r\n ticketIds = ticketIds + \",\" + d.TicketId;\r\n }\r\n }\r\n })\r\n\r\n vm.autoBroadcastJobIds = ticketIds;\r\n vm.confirmationMessage = 'Please confirm if you want to auto schedule ' + vm.autoBroadcastJobIds + ' Job?';\r\n // vm.confirmationMessage = 'Do you want to auto schedule the jobs?';\r\n confirmationModalInstance = $uibModal.open({\r\n templateUrl: 'autobrod_schedule_confirmation_model.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.AutoBrodScheduleJobs = function () {\r\n var data = {\r\n \"ticketIds\": vm.autoBroadcastJobIds\r\n }\r\n CentralHDTicketsViewService.BroadcastJobsManualMode(supervisorId, data, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n // vm.autoScheduleOn = false;\r\n scope.showAutoSchduleBtn = false;\r\n }, 1000);\r\n confirmationModalInstance.close();\r\n vm.showSuccess(\"Success\", \"Jobs has been auto scheduled successfully\");\r\n }\r\n if (resp.status == 206) {\r\n confirmationModalInstance.close();\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n }, function () {\r\n });\r\n }\r\n vm.SubmitFilter = function () {\r\n $scope.UserTablepagination = {};\r\n vm.searchText = '';\r\n var startDate = moment(vm.ticketdates.startDate).format('YYYY-MM-DD');\r\n var endDate = moment(vm.ticketdates.endDate).format('YYYY-MM-DD');\r\n vm.FilterArray();\r\n PageIndex = 1;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n\r\n }\r\n vm.dateRangeChange = function (ev, picker) {\r\n vm.IsSearch = true;\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: startDate, endDate: endDate };\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.DateField = vm.accountConfig.AccountId == 0 ? 'StatusChangedOn' : 'CreatedOn';\r\n vm.JobcountbyStatus = '';\r\n vm.InvoiceStatus = '';\r\n vm.Priority = '';\r\n if (vm.GroupType == '') {\r\n vm.GroupType = 'Individual|Group|WorkOrderGroup';\r\n }\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n\r\n };\r\n vm.getAllJobTicketsCopy = function (supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize) {\r\n vm.FilterArray();\r\n var templateCols = \"\";\r\n PageIndex = PageIndex ? PageIndex : 1;\r\n vm.DateField = vm.DateField ? vm.DateField : \"CreatedOn\";\r\n // vm.DateField= vm.accountConfig.AccountId == 0 ? vm.DateField : 'CreatedOn';\r\n CentralHDTicketsViewService.getAllJobTicketsCopy(supervisorId, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, vm.DateField, PageIndex, PageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n // vm.ticketList = resp.data.LightTicketModels;\r\n $scope.totalTableUsers = resp.data.Count;\r\n $scope.totalTableBundles = resp.data.Count;\r\n vm.ApprovedJobCount = resp.data.ApprovedJobCount;\r\n vm.AssignJobCount = resp.data.AssignJobCount;\r\n vm.BroadcastJobCount = resp.data.BroadcastJobCount;\r\n vm.CancelJobCount = resp.data.CancelJobCount;\r\n vm.CompleteJobCount = resp.data.CompleteJobCount;\r\n vm.TotalJobCount = resp.data.TotalJobCount;\r\n vm.HoldJobCount = resp.data.HoldJobCount;\r\n vm.InTransitJobCount = resp.data.InTransitJobCount;\r\n vm.OnSiteJobCount = resp.data.OnSiteJobCount;\r\n vm.InProgressJobCount = resp.data.InProgressJobCount;\r\n vm.CancelCustomerVerified = resp.data.CancelCustomerVerified;\r\n vm.NewJobCount = resp.data.NewJobCount;\r\n vm.PriorityCount = resp.data.PriorityCount\r\n vm.ReadyToAssigJobCount = resp.data.ReadyToAssigJobCount;\r\n vm.RejectedJobCount = resp.data.RejectedJobCount;\r\n vm.ScheduleExceptionJobCount = resp.data.ScheduleExceptionJobCount;\r\n vm.AddressExceptionCount = resp.data.AddressExceptionCount;\r\n vm.PriceExceptionCount = resp.data.PriceExceptionCount;\r\n vm.ItemInventoryRaised = resp.data.ItemInventoryRaised;\r\n vm.ItemInventoryDelivered = resp.data.ItemInventoryDelivered;\r\n vm.InvoiceRaisedCount = resp.data.InvoiceRaisedCount;\r\n vm.InvoiceNotRaisedCount = resp.data.InvoiceNotRaisedCount;\r\n vm.BroadcastCountTickets = resp.data.BroadcastCountTickets;\r\n vm.EstimateShareCount = resp.data.EstimateShareCount;\r\n vm.EstimateApprovedCount = resp.data.EstimateApprovedCount;\r\n vm.EstimateRejectedCount = resp.data.EstimateRejectedCount\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n // $localStorage.TList = vm.ticketList;\r\n // $localStorage.AllJobType = vm.searchJobTypeText;\r\n // $localStorage.AllJobStatus = vm.searchStatusText;\r\n // angular.forEach(vm.ticketList, function (t) {\r\n // t.StartTime = moment(t.StartTime, \"YYYY-MM-DDThh:mm:ssZ\");\r\n // t.StartTimeD = t.StartTime.format(\"DD/MM/YYYY LTS\");\r\n // })\r\n\r\n // if(vm.ticketList.length < 10)\r\n // vm.ticketListLength = $scope.totalTableUsers;\r\n // else\r\n // vm.ticketListLength = PageIndex * 10;\r\n // if(PageIndex==1)\r\n // vm.pageindexCount = 1;\r\n // else\r\n // vm.pageindexCount = (((PageIndex-1) * 10) + 1);\r\n\r\n // for(var i=0;i 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n\r\n if (action == 'Accepted') {\r\n vm.editPermission = true;\r\n vm.confirmTagModal(\"Do you want to accept selected ticket's?\", function () {\r\n $log.log('Accept CallBack Call');\r\n CentralHDTicketsViewService.ActionByVendor(loggedInUserId, ticketId, action, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n vm.actionFlag = false;\r\n vm.showSuccess(\"Success\", \"Selected Jobs has been accepted successfully\");\r\n\r\n } else {\r\n vm.showFailure(\"Failed\", \"Server facing some technical issue, please try again later\");\r\n }\r\n })\r\n })\r\n } else {\r\n vm.editPermission = false;\r\n vm.confirmTagModal(\"Do you want to reject selected ticket's?\", function () {\r\n $log.log('Accept CallBack Call');\r\n CentralHDTicketsViewService.ActionByVendor(loggedInUserId, ticketId, action, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.actionFlag = false;\r\n }, 1000);\r\n vm.showSuccess(\"Success\", \"Selected Jobs has been rejected successfully\");\r\n\r\n } else {\r\n vm.showFailure(\"Failed\", \"Server facing some technical issue, please try again later\");\r\n }\r\n })\r\n })\r\n }\r\n }\r\n vm.enableFilters = true;\r\n\r\n vm.dtInstance = {};\r\n vm.searchTable = function () {\r\n vm.FilterArray();\r\n vm.ResetFilter();\r\n // vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\r\n };\r\n\r\n if ($localStorage.backToTicketList == \"JobDetailView\") {\r\n $localStorage.backToTicketList = \"\";\r\n vm.searchStatusText = $localStorage.TicketFilterModel.JobStatus;\r\n vm.searchJobTypeText = $localStorage.TicketFilterModel.JobType;\r\n vm.SearchByIs = $localStorage.TicketFilterModel.JobId;\r\n vm.SearchByDiscription = $localStorage.TicketFilterModel.JobDesc;\r\n vm.SearchByTName = $localStorage.TicketFilterModel.JobTName;\r\n vm.SearchByCName = $localStorage.TicketFilterModel.JobCustomer;\r\n vm.SearchByPName = $localStorage.TicketFilterModel.JobProject;\r\n vm.DateField = $localStorage.TicketFilterModel.JobDType;\r\n PageIndex = $localStorage.TicketFilterModel.PageIndex;\r\n vm.JobcountbyStatus = $localStorage.TicketFilterModel.JobcountbyStatus;\r\n var itemNames = 'GroupType'\r\n var itemValues = 'Individual|Group|WorkOrderGroup'\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n $localStorage.backToTicketList = \"\";\r\n $localStorage.TicketFilterModel.PageIndex = 1;\r\n\r\n }\r\n else {\r\n if (typeof $localStorage.TicketFilterModel === \"undefined\" || $localStorage.TicketFilterModel == \"\" || typeof $localStorage.TicketFilterModel.PageIndex === \"undefined\")\r\n PageIndex = 1;\r\n $localStorage.TicketFilterModel = {};\r\n $localStorage.TicketFilterModel.PageIndex = 1;\r\n var itemNames = 'GroupType'\r\n var itemValues = 'Individual|Group|WorkOrderGroup'\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n var itemNames = 'GroupType'\r\n var itemValues = 'Individual|Group|WorkOrderGroup'\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n $localStorage.TicketFilterModel = {};\r\n }\r\n vm.closeSearchText = function () {\r\n if (vm.searchText != \"\") {\r\n vm.searchText = \"\";\r\n vm.ResetFilter();\r\n }\r\n }\r\n vm.ViewJob = function (ticket, GroupType) {\r\n $localStorage.backToOldJobList = '';\r\n $localStorage.SDate = startDate;\r\n $localStorage.EDate = endDate;\r\n $localStorage.previousPage = 'jobticketcopy';\r\n $localStorage.TicketFilterModel = {\r\n \"JobType\": vm.searchJobTypeText,\r\n \"JobStatus\": vm.searchStatusText,\r\n \"JobDType\": vm.DateField,\r\n \"JobSDate\": startDate,\r\n \"JobEDate\": endDate,\r\n \"JobId\": vm.SearchByIs,\r\n \"JobDesc\": vm.SearchByDiscription,\r\n \"JobTName\": vm.SearchByTName,\r\n \"JobCustomer\": vm.SearchByCName,\r\n \"JobProject\": vm.SearchByPName,\r\n \"PageIndex\": PageIndex,\r\n \"JobcountbyStatus\": vm.JobcountbyStatus\r\n\r\n };\r\n // vm.VerticalName == 'Telecom' || vm.VerticalName == 'IMS'\r\n if (GroupType == \"WorkOrder\" || GroupType == \"Combo\") {\r\n $state.go('index.JobDetailViewCombo', {\r\n ticketId: ticket\r\n });\r\n } else {\r\n $state.go('index.JobDetailView', {\r\n ticketId: ticket\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n }\r\n\r\n vm.state = {};\r\n var columns = [\r\n { 'name': 'field1', 'visible': true },//0\r\n { 'name': 'field1', 'visible': true },//1\r\n { 'name': 'field1', 'visible': true },//2\r\n { 'name': 'field1', 'visible': true },//3\r\n { 'name': 'field1', 'visible': true },//4\r\n { 'name': 'field1', 'visible': true },//5\r\n { 'name': 'field1', 'visible': true },//6\r\n { 'name': 'field1', 'visible': true },//7\r\n { 'name': 'field1', 'visible': true },//8\r\n { 'name': 'field1', 'visible': true },//9\r\n { 'name': 'field1', 'visible': true },//10\r\n { 'name': 'field1', 'visible': true },//11\r\n { 'name': 'field1', 'visible': true },//12\r\n { 'name': 'field1', 'visible': true },//13\r\n { 'name': 'field1', 'visible': true },//14\r\n { 'name': 'field1', 'visible': true },//15\r\n { 'name': 'field1', 'visible': true },//16\r\n { 'name': 'field1', 'visible': true },//17\r\n { 'name': 'field1', 'visible': true },//18\r\n { 'name': 'field1', 'visible': true },//19\r\n { 'name': 'field1', 'visible': true },//20\r\n { 'name': 'field1', 'visible': true },//21\r\n { 'name': 'field1', 'visible': true },//22\r\n { 'name': 'field1', 'visible': true },//23\r\n { 'name': 'field1', 'visible': true },//24\r\n { 'name': 'field1', 'visible': true },//25\r\n { 'name': 'field1', 'visible': true },//26\r\n { 'name': 'field1', 'visible': true },//27\r\n { 'name': 'field1', 'visible': true },//28\r\n { 'name': 'field1', 'visible': true },//29\r\n { 'name': 'field1', 'visible': true },//30\r\n { 'name': 'field1', 'visible': true },//31\r\n { 'name': 'field1', 'visible': true },//32\r\n { 'name': 'field1', 'visible': true },//33\r\n { 'name': 'field1', 'visible': true },//34\r\n { 'name': 'field1', 'visible': true },//35\r\n { 'name': 'field1', 'visible': true },//36\r\n { 'name': 'field1', 'visible': true },//37\r\n { 'name': 'field1', 'visible': true },//38\r\n { 'name': 'field1', 'visible': true },//39\r\n { 'name': 'field1', 'visible': true },//40\r\n { 'name': 'field1', 'visible': true },//41\r\n { 'name': 'field1', 'visible': true },//42\r\n { 'name': 'field1', 'visible': true },//43\r\n { 'name': 'field1', 'visible': true },//44\r\n { 'name': 'field1', 'visible': true },//45\r\n { 'name': 'field1', 'visible': true },//46\r\n { 'name': 'field1', 'visible': true },//47\r\n { 'name': 'field1', 'visible': true },//48\r\n { 'name': 'field1', 'visible': true },//49\r\n { 'name': 'field1', 'visible': true },//50\r\n { 'name': 'field1', 'visible': true },//51\r\n { 'name': 'field1', 'visible': true },//52\r\n { 'name': 'field1', 'visible': true },//53\r\n { 'name': 'field1', 'visible': true },//54\r\n { 'name': 'field1', 'visible': true },//55\r\n { 'name': 'field1', 'visible': true },//56\r\n { 'name': 'field1', 'visible': true },//57\r\n { 'name': 'field1', 'visible': true },//58\r\n { 'name': 'field1', 'visible': true },//59\r\n { 'name': 'field1', 'visible': true },//60\r\n { 'name': 'field1', 'visible': true },//61\r\n { 'name': 'field1', 'visible': true },//62\r\n { 'name': 'field1', 'visible': true },//63\r\n { 'name': 'field1', 'visible': true },//64\r\n { 'name': 'field1', 'visible': true },//65\r\n { 'name': 'field1', 'visible': true },//66\r\n { 'name': 'field1', 'visible': true },//67\r\n { 'name': 'field1', 'visible': true },//68\r\n { 'name': 'field1', 'visible': true },//69\r\n { 'name': 'field1', 'visible': true }//70\r\n ]\r\n\r\n vm.state.columns = columns;\r\n\r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n .withPaginationType('full_numbers').withOption('lengthChange', false)\r\n .withOption('paging', false)\r\n .withOption('bInfo', false)\r\n .withOption('order', []);\r\n vm.dtColumnDefs = [];\r\n\r\n vm.buildColumnBuilder = function () {\r\n var tablecolumns = [];\r\n for (var index = 0; index < vm.state.columns.length; index++) {\r\n if (vm.state.columns[index].visible) {\r\n tablecolumns.push(DTColumnDefBuilder.newColumnDef(index).notSortable());\r\n }\r\n else {\r\n tablecolumns.push(DTColumnDefBuilder.newColumnDef(index).notSortable().notVisible())\r\n }\r\n }\r\n vm.dtColumnDefs = tablecolumns;\r\n }\r\n\r\n vm.buildColumnBuilder();\r\n\r\n vm.implementSelectItems = function (itemList, scope) {\r\n scope.selectAll = false;\r\n scope.showMinus = false;\r\n scope.showAutoSchduleBtn = false;\r\n scope.downloadFlag = false;\r\n scope.downloadtemplateBtn = false;\r\n vm.downloadOnsiteReportpdfBtn = false;\r\n scope.downloadReportBtn = false;\r\n scope.deleteFlag = false;\r\n scope.ReadyToRaiseInvoiceFlag = false;\r\n scope.PlannedClosureDateFlag = false;\r\n scope.selectRow = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.showMinus = false;\r\n scope.selectAll = false;\r\n scope.showAutoSchduleBtn = false;\r\n scope.downloadFlag = false;\r\n scope.downloadtemplateBtn = false;\r\n vm.downloadOnsiteReportpdfBtn = false;\r\n scope.downloadReportBtn = false;\r\n scope.deleteFlag = false;\r\n scope.ReadyToRaiseInvoiceFlag = false;\r\n scope.PlannedClosureDateFlag = false;\r\n\r\n for (var j = 0; j < scope.ticketList.length; j++) {\r\n var tempTickets = scope.ticketList[j];\r\n vm.readyRaisedI = tempTickets.IsRaiseCustInvoiceOnCompletion;\r\n if (tempTickets.checked && (tempTickets.TicketStatus == 'Completed' || tempTickets.TicketStatus == 'Approved') && tempTickets.PreInvoiceStatus == '') {\r\n if (tempTickets.TicketStatus == 'Approved') {\r\n scope.ReadyToRaiseInvoiceFlag = true;\r\n scope.downloadFlag = true;\r\n scope.downloadtemplateBtn = true;\r\n vm.downloadOnsiteReportpdfBtn = true;\r\n scope.showMinus = true;\r\n }\r\n else {\r\n scope.showMinus = true;\r\n scope.downloadFlag = true;\r\n scope.downloadtemplateBtn = true;\r\n vm.downloadOnsiteReportpdfBtn = true;\r\n scope.downloadReportBtn = true;\r\n scope.ReadyToRaiseInvoiceFlag = false;\r\n }\r\n }\r\n // else if(tempTickets.checked && (tempTickets.TicketStatus == 'Completed' || tempTickets.TicketStatus == 'Approved') && tempTickets.IsOnSiteReportEnabled == true){\r\n // scope.showMinus = true;\r\n // vm.downloadOnsiteReportpdfBtn = true;\r\n // }\r\n\r\n else if (tempTickets.checked && tempTickets.TicketStatus == 'Completed' && tempTickets.PreInvoiceStatus != null && vm.readyRaisedI == true) {\r\n scope.ReadyToRaiseInvoiceFlag = false;\r\n scope.downloadFlag = true;\r\n scope.downloadtemplateBtn = true;\r\n }\r\n\r\n else if (tempTickets.checked && tempTickets.TicketStatus == 'Assigned') {\r\n scope.downloadFlag = true;\r\n scope.PlannedClosureDateFlag = true;\r\n }\r\n\r\n else if ((tempTickets.checked && tempTickets.TicketStatus == 'New') || (tempTickets.checked && tempTickets.TicketStatus == 'Broadcasted')) {\r\n scope.PlannedClosureDateFlag = true;\r\n }\r\n else if (tempTickets.checked) {\r\n scope.showMinus = true;\r\n scope.downloadFlag = false;\r\n scope.downloadReportBtn = false;\r\n scope.downloadtemplateBtn = false;\r\n vm.downloadOnsiteReportpdfBtn = false;\r\n // scope.ReadyToRaiseInvoiceFlag = false;\r\n\r\n }\r\n }\r\n\r\n for (var i = 0; i < scope.ticketList.length; i++) {\r\n var tempTickets = scope.ticketList[i];\r\n if (tempTickets.checked && (tempTickets.TicketStatus == 'New' && tempTickets.GroupType == 'Individual' && tempTickets.schduleMode != 'Auto')) {\r\n scope.showMinus = true;\r\n scope.showAutoSchduleBtn = true;\r\n scope.deleteFlag = true;\r\n }\r\n else if (tempTickets.checked) {\r\n scope.showMinus = true;\r\n scope.showAutoSchduleBtn = false;\r\n scope.deleteFlag = false;\r\n break;\r\n }\r\n }\r\n }\r\n scope.applyAllSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAll;\r\n });\r\n }\r\n }\r\n vm.implementSelectItems('ticketList', this);\r\n vm.OpenLabBookingModal = function (ticket) {\r\n vm.selectedTemplates = '';\r\n jobBidCreationService.getAllTemplateList(supervisorId, token, vm.getTemplateCallback);\r\n vm.ticketData = ticket;\r\n LabBookingModal = $uibModal.open({\r\n templateUrl: 'lab-booking-modal',\r\n scope: $scope\r\n })\r\n }\r\n vm.CloseLabBookingModal = function () {\r\n LabBookingModal.close();\r\n }\r\n var ModelInstanceOfMap = function ($rootScope, $scope, $uibModal) {\r\n vm.getCustomerJobCard();\r\n }\r\n var vm = this;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n vm.round2Decimal = $scope.$parent.main.round2Decimal;\r\n\r\n // vm.feedback = {};\r\n vm.customerJobCard = {};\r\n // var DefaultImage = UIURL+'/assets/images/patterns/Photo1.png';\r\n vm.makeUserMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.name + \"

\" + ' ' + vm.contactnumber);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n\r\n }\r\n vm.makeJobMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.customerJobCard.ConsumerName + \"

\" + ' ' + vm.customerJobCard.JobId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.customerJobCard.ConsumerContact);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n }\r\n //It is used for the distance also \r\n function initMap() {\r\n var pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n pointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n // center = new google.maps.LatLng(51.3, 0.8),\r\n myOptions = {\r\n zoom: 8,\r\n zoomControl: false,\r\n scaleControl: true,\r\n mapTypeControl: false,\r\n streetViewControl: false,\r\n gestureHandling: 'greedy',\r\n // center: center,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n },\r\n\r\n map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n // Instantiate a directions service.\r\n directionsService = new google.maps.DirectionsService,\r\n directionsDisplay = new google.maps.DirectionsRenderer({\r\n map: map\r\n }),\r\n duration = document.getElementById('duration');\r\n distance = document.getElementById('distance');\r\n flightPath = new google.maps.Polyline({\r\n path: [pointA, pointB],\r\n // geodesic: true,\r\n strokeColor: 'red',\r\n });\r\n $scope.InfoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n // click on marker B to get route from A to B\r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n var travelMode = \"DRIVING\";\r\n var icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n }\r\n function calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map) {\r\n var selectedMode = \"DRIVING\";\r\n directionsService.route({\r\n origin: pointA,\r\n destination: pointB,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n travelMode: google.maps.TravelMode[selectedMode]\r\n }, function (response, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n new google.maps.DirectionsRenderer({\r\n map: map,\r\n directions: response,\r\n suppressMarkers: true,\r\n polylineOptions: {\r\n strokeColor: \"#000000\"\r\n }\r\n });\r\n var leg = response.routes[0].legs[0];\r\n //outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n distance.innerHTML = response.routes[0].legs[0].distance.text;\r\n duration.innerHTML = response.routes[0].legs[0].duration.text;\r\n vm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n vm.makeJobMarker(leg.start_location, icons.start, map);\r\n vm.makeUserMarker(leg.end_location, icons.end, map);\r\n } else {\r\n window.alert('Directions request failed due to ' + status);\r\n }\r\n });\r\n }\r\n\r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/JOb_icon.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/delivery-man1.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n /* vm.getReadableDate = function(){\r\n var time = new moment(vm.customerJobCard.JobDateTime, \"YYYY-MM-DDThh:mm:ss\");\r\n return time.format(\"DD MMM YYYY\")+\" at \"+time.format(\"LTS\"); \r\n } */\r\n vm.getCustomerJobCard = function () {\r\n CentralHDTicketsViewService.getCustomerJobCardbyJobId(loggedInUserId, vm.trackingTicketId, token, function (data) {\r\n vm.JobLatitude = data.JobLatitude;\r\n vm.JobLongitude = data.JobLongitude;\r\n vm.FELatitude = data.FELatitude;\r\n vm.FELongitude = data.FELongitude;\r\n vm.contactnumber = data.FEContactNumber;\r\n vm.IsTrackingAllowed = data.IsTrackingAllowed;\r\n vm.jobtype = data.Description;\r\n vm.name = data.FEName;\r\n if (data.FEContactNumber) {\r\n vm.contactnumber = data.FEContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n // vm.mapMarkers=[];\r\n initMap();\r\n $log.log(\"res of getCustomerJobCard=\" + data);\r\n vm.customerJobCard = data;\r\n if (vm.customerJobCard.ConsumerContact) {\r\n vm.customerJobCard.ConsumerContact = vm.customerJobCard.ConsumerContact.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n if ($localStorage.rateJobParams) {\r\n vm.customerJobCard.userRole = $localStorage.Role;\r\n vm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n vm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n delete $localStorage.rateJobParams;\r\n }\r\n if (data && data.JobStatus == 'PaymentDone') {\r\n\r\n }\r\n }, function () {\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n //}\r\n vm.TicketBreachValueconver = function (TicketBreachValue) {\r\n var TicketBreachValueInString = \"\";\r\n if (TicketBreachValue == 0)\r\n TicketBreachValueInString = \"Not Breached\";\r\n if (TicketBreachValue == 1)\r\n TicketBreachValueInString = \"Breached\";\r\n\r\n return TicketBreachValueInString;\r\n }\r\n vm.OpenTracking = function (ticket) {\r\n vm.trackingTicketId = ticket;\r\n Tracking = $uibModal.open({\r\n templateUrl: 'Tracking.html',\r\n size: 'lg',\r\n scope: $scope,\r\n controller: ModelInstanceOfMap\r\n })\r\n }\r\n vm.CloseTracking = function () {\r\n Tracking.close();\r\n }\r\n\r\n vm.getTemplateCallback = function (templates) {\r\n vm.templateListData = templates;\r\n vm.templateList = [];\r\n angular.forEach(vm.templateListData, function (d) {\r\n if (d.Skill != 'Water Sample Collection') {\r\n vm.templateList.push(d);\r\n }\r\n })\r\n }\r\n vm.OpenApproveModal = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n vm.RatingOfTicket = '';\r\n if (vm.CurrentJob.IsLineItemAvailable == true && vm.CurrentJob.IsDynamicPriceApproved == false) {\r\n vm.aproveMessage = 'Please approve dynamic pricing line item under the ticket details section!';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'dynamic_price_approved_model.html',\r\n scope: $scope\r\n });\r\n }\r\n else {\r\n vm.aproveMessage = 'Please Rate !';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'approve_model.html',\r\n scope: $scope\r\n });\r\n }\r\n }\r\n\r\n vm.CloseModal = function () {\r\n approveModalInstance.close();\r\n }\r\n\r\n vm.OpenRescheduleAuditModal = function (currentAuditJOb) {\r\n vm.CurrentAuditJob = currentAuditJOb;\r\n vm.RatingOfTicket = '';\r\n vm.RescheduleAuditTicketId = vm.CurrentAuditJob.TicketId;\r\n vm.AuditPrimaryReason = vm.CurrentAuditJob.PrimaryReason;\r\n rescheduleAuditModalInstance = $uibModal.open({\r\n templateUrl: 'reschedule_audit_model.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.RescheduleAuditCloseModal = function () {\r\n rescheduleAuditModalInstance.close();\r\n }\r\n\r\n vm.JobRescheduleAudit = function () {\r\n\r\n var data = {\r\n \"TicketId\": vm.RescheduleAuditTicketId,\r\n \"AuditValue\": vm.RescheduleAuditModel,\r\n \"IsApplicableForAutoPayment\": vm.IsApplicableForAutoPayment\r\n }\r\n rescheduleAuditModalInstance.close();\r\n CentralHDTicketsViewService.TBCCancelationAudit(data, loggedInUserId, token).then(function (res) {\r\n // CentralHDTicketsViewService.TBCCancelationAudit(vm.RescheduleAuditModel,vm.RescheduleAuditTicketId,loggedInUserId,token).then(function(res){\r\n if (res && res.status == 200) {\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\");\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n }\r\n });\r\n }\r\n\r\n\r\n vm.OpenSettlementModal = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n vm.PaymentStatus = '';\r\n vm.Remarks = '';\r\n\r\n settlementModalInstance = $uibModal.open({\r\n templateUrl: 'settlement_model.html',\r\n scope: $scope\r\n });\r\n\r\n }\r\n\r\n vm.SettlementCloseModal = function () {\r\n settlementModalInstance.close();\r\n }\r\n\r\n vm.settlemenTicket = function (status, ticketId, remarks, userId) {\r\n settlementModalInstance.close();\r\n var settlementData = {};\r\n settlementData.PaymentStatus = status;\r\n settlementData.ReqUserId = loggedInUserId;\r\n settlementData.TicketId = ticketId;\r\n settlementData.Remarks = remarks;\r\n settlementData.FEId = userId;\r\n settlementData.Status = \"Done\";\r\n // $log.log('settlementData', settlementData);\r\n CentralHDTicketsViewService.updateTicketSettlement(settlementData, token, loggedInUserId, function (res) {\r\n\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job settlement successfully done.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to settlement payment. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n\r\n }\r\n\r\n\r\n vm.DeleteTicket = function () {\r\n var ticketId = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId.push(t.TicketId);\r\n }\r\n })\r\n // ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n\r\n if (ticketId != null && ticketId.length == 1) {\r\n CentralHDTicketsViewService.DeleteTickets(loggedInUserId, ticketId, token).then(function (resp) {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.downloadtemplateBtn = false;\r\n vm.downloadOnsiteReportpdfBtn = false;\r\n vm.deleteFlag = false;\r\n\r\n if (resp && resp.status == 202) {\r\n vm.showSuccess(\"Deleted\", resp.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"You can delete only one ticket at a time.\");\r\n }\r\n }\r\n\r\n\r\n vm.AutoSchedule = function () {\r\n var ticketId = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId.push(t.TicketId);\r\n }\r\n })\r\n\r\n if (ticketId != null) {\r\n CentralHDTicketsViewService.SetTicketExecutionMode(loggedInUserId, \"Auto\", ticketId, token).then(function (resp) {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadtemplateBtn = false;\r\n vm.downloadOnsiteReportpdfBtn = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Scheduled Tickets\", resp.data.toString());\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n } else {\r\n vm.showFailure(\"Failed to schedule tickets\", resp.data.toString());\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.OpenFollowUpModel = function (ticketId) {\r\n vm.followup = '';\r\n vm.tickId = ticketId;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n size: \"lg\",\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n }\r\n\r\n vm.CloseFollowUpModel = function () {\r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = '';\r\n vm.primaryHoldReason = '';\r\n vm.primaryHoldRemark = '';\r\n vm.followFiles = null;\r\n FollowUpModel.close();\r\n }\r\n\r\n vm.RejectJobModel = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n RejectJobModel = $uibModal.open({\r\n templateUrl: 'Rejectjob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.ConvertToNewJob = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"New\"\r\n };\r\n CentralHDTicketsViewService.ConvertToNewJob(data, token, loggedInUserId, function (res) {\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job converted successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to convert job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.CloseRejectModel = function () {\r\n RejectJobModel.close();\r\n }\r\n\r\n $scope.attachmentForFollowUp = function (files) {\r\n var file = files.files[0];\r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.msg|\\.pdf|\\.bmp|\\.xps)$/i;\r\n if (!allowedExtensions.exec(file.name)) {\r\n vm.followFiles = [];\r\n vm.clear();\r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png,.msg,.bmp,xps only.');\r\n }\r\n }\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n };\r\n\r\n vm.DocEdit = function (index) {\r\n vm.followFiles = null;\r\n }\r\n\r\n vm.GetFollowupReasons = function () {\r\n CentralHDTicketsViewService.GetReasonsByStatus(loggedInUserId, token, 'FollowUp').then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.reasonsForFU = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetFollowupReasons();\r\n\r\n vm.GetHoldReasons = function () {\r\n CentralHDTicketsViewService.GetReasonsByStatus(loggedInUserId, token, 'Hold').then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.reasonsForHold = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetHoldReasons();\r\n\r\n\r\n var ModalInstanceCtrlFollowUp = function ($scope, $rootScope, $uibModalInstance) {\r\n vm.updateFollowUpStatus = function () {\r\n var data = {};\r\n data = {\r\n \"userId\": loggedInUserId,\r\n \"dateTime\": \"\",\r\n \"activity\": \"\",\r\n \"action\": \"FOLLOW_UP\",\r\n \"userName\": \"\",\r\n \"ticketId\": vm.tickId,\r\n \"primaryReason\": vm.primaryFollowUpReason,\r\n \"SecondryReason\": \"\",\r\n \"ReasonComment\": vm.primaryFollowUpRemark\r\n }\r\n if (vm.followFiles != null) {\r\n CentralHDTicketsViewService.TicketFollowUp(data, vm.followFiles, token, loggedInUserId, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.CloseFollowUpModel();\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n else {\r\n CentralHDTicketsViewService.TicketFollowUpWithoutDoc(data, token, loggedInUserId, function (res) {\r\n if (res) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n }\r\n vm.CloseFollowUpModel();\r\n });\r\n }\r\n }\r\n }\r\n\r\n vm.OpenHoldUpModel = function (ticketId, holdstatus) {\r\n if (holdstatus == 'Unhold') {\r\n vm.UpdateHoldingStatus(ticketId, holdstatus);\r\n }\r\n else {\r\n vm.tickId = ticketId;\r\n $scope.holdstatus = holdstatus;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'HoldJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n }\r\n }\r\n\r\n vm.UpdateHoldReason = \"Update\";\r\n vm.UpdateHoldingStatus = function (ticketId, holdingStatus) {\r\n if (vm.primaryHoldReason != null) {\r\n vm.enable1 = \"false\";\r\n vm.UpdateHoldReason = \"Updating...\";\r\n };\r\n CentralHDTicketsViewService.UpdateHoldingStatus(loggedInUserId, ticketId, holdingStatus, vm.primaryHoldReason, vm.primaryHoldRemark, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n vm.showSuccess('Job Hold/Unhold Status', 'Job has been updated successfully');\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.enable1 = \"true\";\r\n vm.UpdateHoldReason = \"Update\";\r\n }, 1000);\r\n vm.CloseFollowUpModel();\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure('Failed', resp.data.Message);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.enable1 = \"true\";\r\n vm.UpdateHoldReason = \"Update\";\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n vm.CloseFollowUpModel();\r\n } else {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n }\r\n }, function (err) {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n })\r\n }\r\n vm.ApproveJob = function () {\r\n if (vm.RatingOfTicket) {\r\n var jobwinrate = 0.0;\r\n if (vm.Winrate == null || vm.Winrate == 0 || vm.Winrate == '')\r\n jobwinrate = 0.0;\r\n else\r\n jobwinrate = vm.Winrate;\r\n\r\n approveModalInstance.close();\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Approved\",\r\n \"JobWinRate\": parseFloat(jobwinrate.toFixed(2)),\r\n \"TechnicianRating\": vm.RatingOfTicket.toString(),\r\n \"ApprovalRemark\": vm.approvalRemark.toString(),\r\n \"IsSafetyAudit\": vm.IsSafetyAudit\r\n };\r\n CentralHDTicketsViewService.ApproveJob(data, token, loggedInUserId, function (res) {\r\n if (res && res.data == \"Please enter atleast one Line Item to Approve this job \") {\r\n vm.showFailure(\"Success\", \"Please enter atleast one Line Item to Approve this job.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n }\r\n else if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job approved successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n } else {\r\n vm.ratingwarning = \"Please rate the technician.\";\r\n //approveModalInstance.close();\r\n }\r\n }\r\n vm.AcceptJob = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Accepted\"\r\n };\r\n CentralHDTicketsViewService.AcceptJob(data, token, loggedInUserId, function (res) {\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job accepted successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to accept job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.reAssignJob = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Assigned\"\r\n };\r\n CentralHDTicketsViewService.AcceptJob(data, token, loggedInUserId, function (res) {\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job reassigned successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to reassign job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n\r\n }\r\n\r\n vm.cloneTicket = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n if (vm.VerticalName == 'Telecom') {\r\n $state.go('index.JobBidCreation', {\r\n cloneticketid: vm.CurrentJob.TicketId\r\n },\r\n {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n });\r\n }\r\n else {\r\n $state.go('index.NewJobCreation', {\r\n },\r\n {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n });\r\n\r\n }\r\n }\r\n\r\n vm.RejectJob = function () {\r\n if (!vm.RejectionRemark) {\r\n vm.showFailure(\"Failed\", \"Please comment on rejection.\");\r\n return;\r\n }\r\n RejectJobModel.close();\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Rejected\",\r\n \"RejectionRemark\": vm.RejectionRemark.toString()\r\n };\r\n CentralHDTicketsViewService.RejectJob(data, token, loggedInUserId, function (res) {\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job rejected successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n\r\n }\r\n\r\n vm.PullBackTicket = function (ticketId) {\r\n CentralHDTicketsViewService.PullBackTicket(loggedInUserId, ticketId, token).then(function (resp) {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n })\r\n }\r\n\r\n\r\n vm.downloadReport = function (ticketId, templateName) {\r\n if (templateName == 'Water Testing') {\r\n var urlWithFeasible = PublicApiURL + '/api/Report/' + ticketId + '/DownloadReportByTemplateName?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlWithFeasible, '_blank')\r\n } else {\r\n var urlForNonFeasible = PublicApiURL + '/api/Report/' + ticketId + '/Report?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlForNonFeasible, '_blank')\r\n }\r\n }\r\n\r\n vm.DownloadReportByTemplateName = function () {\r\n var ticket = '';\r\n for (var i = 0; i < vm.ticketList.length; i++) {\r\n if (vm.ticketList[i].checked) {\r\n if (!ticket) {\r\n ticket = vm.ticketList[i].TicketId;\r\n } else {\r\n ticket = ticket + ',' + vm.ticketList[i].TicketId;\r\n }\r\n }\r\n }\r\n if (ticket) {\r\n CentralHDTicketsViewService.downloadReportTemplate(loggedInUserId, ticket);\r\n }\r\n else {\r\n vm.showFailure(\"Failed to download report\");\r\n }\r\n vm.showSuccess('Success', 'You have successfully downloaded report');\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadtemplateBtn = false;\r\n vm.downloadOnsiteReportpdfBtn = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }\r\n\r\n // vm.downloadPAVReportPDF = function (ticketId, OnSiteReport) {\r\n // if (OnSiteReport != null) {\r\n // var urlWithFeasible = PublicApiURL + '/api/Report/GeneratePdfOnSiteReportForMultipleTickets?TicketIds=' + ticketId;\r\n // $window.open(urlWithFeasible, '_blank')\r\n // } \r\n // }\r\n\r\n //download PDF \r\n vm.downloadReportPDF = function (ticketId, OnSiteReport) {\r\n // if (OnSiteReport != null) {\r\n // var urlWithFeasible = PublicApiURL + '/api/Report/GeneratePdfOnSiteReportForMultipleTickets?TicketIds=' + ticketId;\r\n // $window.open(urlWithFeasible, '_blank')\r\n // } else {\r\n // var urlForNonFeasible = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketIds=' + ticketId;\r\n // $window.open(urlForNonFeasible, '_blank')\r\n vm.downloadOnSiteReport(ticketId);\r\n // }\r\n }\r\n\r\n\r\n vm.pdfimage = \"\";\r\n vm.DocumentAvailableMessage = \"\";\r\n vm.downloadOnSiteReport = function (ticketId) {\r\n vm.PDFView();\r\n\r\n // var PreviewConsolidatedInvoiceList = previewSelectedObj;\r\n CentralHDTicketsViewService.downloadOnSiteReport(loggedInUserId, token, ticketId).then(function (resp) {\r\n // var responseDataList=[];\r\n vm.responseDataList = resp.data;\r\n // for(var i=0; i 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n CentralHDTicketsViewService.downloadMultipleReports(loggedInUserId, ticketId, reportMapperId, correlated);\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadtemplateBtn = false;\r\n vm.downloadOnsiteReportpdfBtn = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }\r\n\r\n\r\n // vm.sendMailPdfMultiOnSiteReport = function () {\r\n // var ticketId = \"\";\r\n // angular.forEach(vm.ticketList, function (t) {\r\n // if (t.checked) {\r\n // ticketId += t.TicketId + \",\";\r\n // }\r\n // })\r\n // ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n // if(ticketId){\r\n // CentralHDTicketsViewService.SendPdfOnSiteReportForMultipleTicketsOnMail(ticketId,loggedInUserId,token);\r\n // vm.showSuccess(\"Success\",\"Report mailed to registered email id\");\r\n // }\r\n // else{\r\n // vm.showFailure(\"Failed\", \"Failed to send report\");\r\n // }\r\n // vm.showAutoSchduleBtn = false;\r\n // vm.downloadFlag = false;\r\n // vm.downloadtemplateBtn = false;\r\n // vm.downloadOnsiteReportpdfBtn = false;\r\n // vm.downloadReportBtn = false;\r\n // vm.deleteFlag = false;\r\n // vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // }\r\n\r\n // vm.downloadPdfMultipleOnSiteReport = function () {\r\n // var ticketId = \"\";\r\n // angular.forEach(vm.ticketList, function (t) {\r\n // if (t.checked) {\r\n // ticketId += t.TicketId + \",\";\r\n // }\r\n // })\r\n // ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n // if(ticketId){\r\n // CentralHDTicketsViewService.GeneratePdfOnSiteReportForMultipleTickets(ticketId,loggedInUserId,token).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // $window.open(resp.config.url, '_blank');\r\n // vm.showSuccess(\"Success\",\"Report mailed to registered email id\");\r\n // }\r\n // else{\r\n // vm.showFailure(\"Failed\", \"Failed to send report\");\r\n // }\r\n // vm.showAutoSchduleBtn = false;\r\n // vm.downloadFlag = false;\r\n // vm.downloadtemplateBtn = false;\r\n // vm.downloadOnsiteReportpdfBtn = false;\r\n // vm.downloadReportBtn = false;\r\n // vm.deleteFlag = false;\r\n // vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // })\r\n\r\n // } \r\n // }\r\n\r\n vm.downloadInvoiceReport = function () {\r\n var ticketId = \"\";\r\n var correlated = $localStorage.accountConfig.CorrelatedReports;\r\n // var reportMapperId = $localStorage.accountConfig.ReportMapperId;\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId += t.TicketId + \",\";\r\n }\r\n })\r\n ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n CentralHDTicketsViewService.downloadInvoice(loggedInUserId, ticketId, correlated);\r\n }\r\n\r\n vm.DownloadPDFReportZip = function () {\r\n var ticketId = \"\";\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId += t.TicketId + \",\";\r\n }\r\n })\r\n ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n CentralHDTicketsViewService.DownloadPDFReportZip(ticketId);\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadtemplateBtn = false;\r\n vm.downloadOnsiteReportpdfBtn = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }\r\n\r\n vm.showMultipleDownloadButton = function () {\r\n var ticketSelected = false;\r\n var IsReportMapper = false;\r\n vm.invoiceFlag = false;\r\n vm.deleteFlag = false;\r\n vm.actionFlag = false;\r\n var actionFlagList = [];\r\n var deleteFlagList = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n ticketSelected = ticketSelected || t.checked;\r\n if (t.checked) {\r\n if (t.reportMapperId) {\r\n IsReportMapper = true;\r\n }\r\n else {\r\n IsReportMapper = false;\r\n }\r\n }\r\n if (vm.Role == 'Vendor Manager') {\r\n if (t.checked && t.SkillSet == 'Water Lab Test' && t.TicketStatus == 'Completed') {\r\n vm.invoiceFlag = true;\r\n } else if (t.checked && t.AcceptDate != null) {\r\n actionFlagList.push(false);\r\n } else if (t.checked && t.AcceptDate == null && t.TicketStatus == 'Rejected') {\r\n actionFlagList.push(false);\r\n } else if (t.checked && t.AcceptDate == null && t.TicketStatus == 'Assigned') {\r\n actionFlagList.push(true);\r\n }\r\n } else {\r\n if (t.checked && t.SkillSet == 'Water Lab Test' && t.TicketStatus == 'Completed') {\r\n vm.invoiceFlag = true;\r\n } else if (t.checked && t.TicketStatus == 'New') {\r\n deleteFlagList.push(true);\r\n // vm.deleteFlag = true;\r\n } else if (t.checked && t.TicketStatus != 'New') {\r\n // vm.deleteFlag = false;\r\n deleteFlagList.push(false);\r\n }\r\n }\r\n })\r\n if (deleteFlagList.includes(false)) {\r\n vm.deleteFlag = false;\r\n } else if (deleteFlagList.includes(true)) {\r\n vm.deleteFlag = true;\r\n } if (actionFlagList.includes(false)) {\r\n vm.actionFlag = false\r\n } else {\r\n vm.actionFlag = true;\r\n }\r\n return IsReportMapper && ticketSelected && $localStorage.accountConfig != null && $localStorage.accountConfig.CorrelatedReports != null && $localStorage.accountConfig.ReportMapperId != null;\r\n }\r\n // vm.showInvoiceButton = function () {\r\n // var invoiceFlag = false;\r\n // angular.forEach(vm.ticketList, function (t) {\r\n // if (t.checked && t.SkillSet == 'Water Lab Test' && t.TicketStatus == 'Completed') {\r\n // var invoiceFlag = true;\r\n // return invoiceFlag;\r\n // } \r\n // })\r\n // return invoiceFlag;\r\n // }\r\n\r\n // vm.getReason = function() {\r\n // $http.get(\"https://product.mymobiforce.com/ActivityAPI/api/Activity/GetReasonsForFollowUp\").then(\r\n // function successCallback(response) {\r\n // $scope.response = response;\r\n // },\r\n // function errorCallback(response) {\r\n // console.log(\"Unable to perform get request\");\r\n // }\r\n // );\r\n // };\r\n\r\n vm.hideSingleDownloadButton = function () {\r\n return $localStorage.accountConfig != null && $localStorage.accountConfig.CorrelatedReports != null && $localStorage.accountConfig.ReportMapperId != null;\r\n }\r\n\r\n vm.getSkills = function () {\r\n CentralHDTicketsViewService.getSkills(loggedInUserId, token, function (skills) {\r\n vm.skills = skills;\r\n //vm.skills.unshift({ \"SkillName\": \"All Job Types\" }); \r\n if (vm.path == 'isTicketView') {\r\n vm.searchJobTypeText = $localStorage.AllJobType;\r\n // vm.searchStatusText = $localStorage.AllJobStatus;\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.getSkills();\r\n\r\n vm.isApprovalPermission = function (defaultValue) {\r\n if (vm.accountConfig && vm.accountConfig['ApprovalPermission'] != null) {\r\n return vm.accountConfig['ApprovalPermission'].split(\",\").indexOf($localStorage.loggedInUser_Role) > -1;\r\n }\r\n return defaultValue;\r\n }\r\n\r\n vm.OpenBillModal = function (ticketId) {\r\n vm.BillDetails = [];\r\n vm.TotalExpense = '';\r\n CentralHDTicketsViewService.getBillExpenseByTicketID(loggedInUserId, ticketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n angular.forEach(resp.data, function (d) {\r\n vm.BillDetails = d.Bills;\r\n vm.TotalExpense = d.ExpenseAmount;\r\n })\r\n }\r\n if (vm.TotalExpense != 0) {\r\n BillModal = $uibModal.open({\r\n templateUrl: 'bill_model.html',\r\n scope: $scope\r\n })\r\n }\r\n })\r\n }\r\n\r\n vm.CloseBillModal = function () {\r\n BillModal.close();\r\n }\r\n\r\n vm.getPicUrl = function (pic) {\r\n return ImageUrl + '/' + pic;\r\n }\r\n\r\n vm.ReportpdfUrl = function (ticketId) {\r\n CentralHDTicketsViewService.getPdfReport(loggedInUserId, ticketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n const linkSource = resp.data.Base64Data;\r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = resp.data.ReportName;\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n }\r\n })\r\n }\r\n\r\n // vm.GeneratePdfEstimateReport = function (ticketId) {\r\n // CentralHDTicketsViewService.GeneratePdfEstimateReport(loggedInUserId, ticketId, token).then(function (resp) {\r\n // if (resp && resp.data) {\r\n // const linkSource = resp.data;\r\n // const downloadLink = document.createElement(\"a\");\r\n // const fileName = \"EstimateReport\";\r\n // downloadLink.href = linkSource;\r\n // downloadLink.download = fileName;\r\n // downloadLink.click();\r\n // }\r\n // })\r\n // }\r\n\r\n\r\n vm.GeneratePdfEstimateReport = function (ticketId) {\r\n vm.PDFView();\r\n CentralHDTicketsViewService.GeneratePdfEstimateReport(loggedInUserId, ticketId, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.InvoiceData = resp.data;\r\n var arrrayBuffer = base64ToArrayBuffer(vm.InvoiceData);\r\n var blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n vm.pdfimage = URL.createObjectURL(blob);\r\n vm.IsLoadSucessfull = true;\r\n\r\n // if(vm.fileLink){\r\n // vm.showInvoice = true;\r\n // }\r\n }\r\n });\r\n\r\n }\r\n\r\n vm.reloadData = function () {\r\n var resetPaging = true;\r\n vm.dtInstance.reloadData(resetPaging);\r\n }\r\n //Cancel and clone ticket\r\n vm.CancleAndCloneTicket = function (ticket) {\r\n var ticketData = ticket;\r\n $state.go('index.JobBidCreation', { cloneticketid: ticketData.TicketId },\r\n { reload: true, inherit: false, notify: true });\r\n }\r\n vm.CancelTicket = function (ticketId, currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n vm.RatingOfTicket = '';\r\n vm.AuditTicketId = vm.CurrentJob.TicketId;\r\n vm.IsClosureCodeNeeded = vm.CurrentJob.IsClosuerCodeNeeded;\r\n vm.TicketPaymentNeedToProcess = vm.CurrentJob.IsTicketPaymentNeedToProcess;\r\n vm.IsApplicableForAutoPayment = vm.CurrentJob.IsApplicableForAutoPayment;\r\n vm.CollectionRequired = vm.CurrentJob.CollectionRequired;\r\n if (vm.CurrentJob.TicketStatus == \"Completed\" && vm.CurrentJob.SubStatus == \"TBC\") {\r\n vm.PrimaryReason = vm.CurrentJob.PrimaryReason;\r\n ManualAssignationJobService.GetCancellationReasons(vm.AuditTicketId, vm.CurrentJob.TicketStatus, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.CancellationReasonsList = resp.data;\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'tbc_confirm_cancelation_model.html',\r\n scope: $scope\r\n });\r\n }\r\n }, function () {\r\n });\r\n\r\n }\r\n else {\r\n\r\n vm.IsCancelFromServer = vm.accountConfig.IsCancelFromServer;\r\n if (vm.IsCancelFromServer && (vm.CurrentJob.TicketStatus == \"Assigned\" || vm.CurrentJob.TicketStatus == \"New\")) {\r\n CentralHDTicketsViewService.GetCancellationReasons(vm.AuditTicketId, vm.CurrentJob.TicketStatus, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.CancellationReasonsList = resp.data;\r\n cancellationReasonsModalInstance = $uibModal.open({\r\n templateUrl: 'cancellation_reasons_model.html',\r\n scope: $scope\r\n });\r\n }\r\n }, function () {\r\n });\r\n }\r\n else {\r\n CentralHDTicketsViewService.CancelTicket(loggedInUserId, ticketId, token).then(function (res) {\r\n if (res.status == 202 && res.statusText == 'Accepted') {\r\n vm.showSuccess('Success', res.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n }\r\n else if (res.status == 206) {\r\n vm.showFailure('Failed', res.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n vm.OpenTicketRatingModal = function (currentTicketJob) {\r\n\r\n CentralHDTicketsViewService.GetCSATRatingByTicketID(loggedInUserId, currentTicketJob.TicketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TicketRatingList = resp.data;\r\n ticketRatingModalInstance = $uibModal.open({\r\n templateUrl: 'ticket_rating_model.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n\r\n vm.TicketRatingCloseModal = function () {\r\n ticketRatingModalInstance.close();\r\n }\r\n vm.TBCCancelationAudit = function () {\r\n vm.tbccancellationReasonsForm.submitted = true;\r\n if (vm.CancellationReasons == 'Customer not responding' || vm.CancellationReasons == 'Customer denied sharing code') {\r\n vm.tbccancellationReasonsForm.$valid = true\r\n if (vm.tbccancellationReasonsForm.$valid) {\r\n if (vm.closureCode) {\r\n vm.IsClosuerCodeAvailable = true;\r\n }\r\n else {\r\n vm.IsClosuerCodeAvailable = false;\r\n }\r\n var data = {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"AuditValue\": vm.TBCCancelationModel,\r\n // \"IsTicketPaymentNeedToProcess\": vm.TicketPaymentNeedToProcess,\r\n \"IsApplicableForAutoPayment\": vm.IsApplicableForAutoPayment,\r\n \"IsCommissionDetect\": vm.IsCommissionDetect,\r\n \"ClosuerCode\": vm.closureCode,\r\n \"IsClosuerCodeAvailable\": vm.IsClosuerCodeAvailable,\r\n \"CancelReason\": vm.CancellationReasons,\r\n }\r\n vm.IsInvoiceEnabled;\r\n approveModalInstance.close();\r\n CentralHDTicketsViewService.TBCCancelationAudit(data, loggedInUserId, token).then(function (res) {\r\n if (res && res.status == 200) {\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\");\r\n vm.closureCode = \"\";\r\n vm.IsClosureCodeNeeded = \"\";\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 2000);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n if (vm.tbccancellationReasonsForm.$valid) {\r\n if (vm.closureCode) {\r\n vm.IsClosuerCodeAvailable = true;\r\n }\r\n else {\r\n vm.IsClosuerCodeAvailable = false;\r\n }\r\n var data = {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"AuditValue\": vm.TBCCancelationModel,\r\n // \"IsTicketPaymentNeedToProcess\": vm.TicketPaymentNeedToProcess,\r\n \"IsApplicableForAutoPayment\": vm.IsApplicableForAutoPayment,\r\n \"IsCommissionDetect\": vm.IsCommissionDetect,\r\n \"ClosuerCode\": vm.closureCode,\r\n \"IsClosuerCodeAvailable\": vm.IsClosuerCodeAvailable,\r\n \"CancelReason\": vm.CancellationReasons,\r\n }\r\n vm.IsInvoiceEnabled;\r\n approveModalInstance.close();\r\n CentralHDTicketsViewService.TBCCancelationAudit(data, loggedInUserId, token).then(function (res) {\r\n if (res && res.status == 200) {\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\");\r\n vm.closureCode = \"\";\r\n vm.IsClosureCodeNeeded = \"\";\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 2000);\r\n }\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.getCompletionReasons = function (ticketId, CurrentJob) {\r\n vm.CurrentJob = CurrentJob;\r\n vm.AuditTicketId = ticketId;\r\n vm.CompletionRemark = vm.CurrentJob.CompletionRemark;\r\n CentralHDTicketsViewService.GetCancellationReasons(ticketId, 'Visit', loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.CompletionReasonsList = resp.data;\r\n completeModalInstance = $uibModal.open({\r\n templateUrl: 'change_completionReason_model.html',\r\n scope: $scope\r\n });\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.UpdateCompletionReason = function () {\r\n vm.completionReasonUpdateForm.submitted = true;\r\n if (vm.completionReasonUpdateForm.$valid) {\r\n var data = {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"CompletionReason\": vm.TicketCompletionReason,\r\n }\r\n completeModalInstance.close();\r\n CentralHDTicketsViewService.UpdateCompletionRemark(data, loggedInUserId, token).then(function (res) {\r\n if (res && res.status == 200) {\r\n vm.showSuccess(\"Success\", res.data);\r\n vm.TicketCompletionReason = \"\";\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", res.data);\r\n }\r\n });\r\n }\r\n }\r\n\r\n vm.CloseCompletionModal = function () {\r\n completeModalInstance.close();\r\n }\r\n\r\n\r\n vm.updateFalseTBC = function (status) {\r\n if (status == 'Yes') {\r\n vm.IsApplicableForAutoPayment = false;\r\n }\r\n else {\r\n vm.IsApplicableForAutoPayment = true;\r\n }\r\n }\r\n vm.CancellationReasonsCloseModal = function () {\r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons = \"\";\r\n vm.CancellationReasonsRemark = \"\";\r\n vm.HintDisplay = \"\";\r\n vm.closureCode = \"\";\r\n }\r\n vm.UpdateCancellationReasons = function () {\r\n vm.cancellationReasonsForm.submitted = true;\r\n if (vm.CancellationReasons == 'Customer not responding' || vm.CancellationReasons == 'Customer denied sharing code') {\r\n vm.cancellationReasonsForm.$valid = true;\r\n if (vm.cancellationReasonsForm.$valid) {\r\n if (vm.closureCode) {\r\n vm.IsClosuerCodeAvailable = true;\r\n }\r\n else {\r\n vm.IsClosuerCodeAvailable = false;\r\n }\r\n var CancellationReasonsModel =\r\n {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"CancelReason\": vm.CancellationReasons,\r\n \"CancelRemark\": vm.CancellationReasonsRemark,\r\n \"ClosuerCode\": vm.closureCode,\r\n \"IsClosuerCodeAvailable\": vm.IsClosuerCodeAvailable\r\n }\r\n CentralHDTicketsViewService.UpdateJobServerCancel(CancellationReasonsModel, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 2000);\r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons = \"\";\r\n vm.CancellationReasonsRemark = \"\";\r\n vm.closureCode = \"\";\r\n vm.HintDisplay = \"\";\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n }\r\n else {\r\n if (vm.cancellationReasonsForm.$valid) {\r\n if (vm.closureCode) {\r\n vm.IsClosuerCodeAvailable = true;\r\n }\r\n else {\r\n vm.IsClosuerCodeAvailable = false;\r\n }\r\n var CancellationReasonsModel =\r\n {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"CancelReason\": vm.CancellationReasons,\r\n \"CancelRemark\": vm.CancellationReasonsRemark,\r\n \"ClosuerCode\": vm.closureCode,\r\n \"IsClosuerCodeAvailable\": vm.IsClosuerCodeAvailable\r\n }\r\n CentralHDTicketsViewService.UpdateJobServerCancel(CancellationReasonsModel, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 2000);\r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons = \"\";\r\n vm.CancellationReasonsRemark = \"\";\r\n vm.closureCode = \"\";\r\n vm.HintDisplay = \"\";\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n }\r\n }\r\n\r\n vm.SendCancelCodeToCustomer = function () {\r\n if (vm.CancellationReasons != \"\") {\r\n var SendCodeModel =\r\n {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"CancelReason\": vm.CancellationReasons\r\n }\r\n ManualAssignationJobService.SendCancelCodeToCustomer(SendCodeModel, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Code Sent to Customer\");\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n }\r\n\r\n vm.ViewProfile = function (UserId, UserType) {\r\n var IsUser = false;\r\n if (UserType && UserType == 'Freelancer') {\r\n CentralHDTicketsViewService.getUserProfileData(supervisorId, UserId, token).then(function (res) {\r\n if (res.data && res.status == 200) {\r\n vm.UserProfileData = res.data;\r\n vm.customerrating = Number(vm.UserProfileData.CustomerRating).toFixed(1);\r\n vm.AddPreferredVendorModal = $uibModal.open({\r\n templateUrl: 'UserProfile.html',\r\n scope: $scope,\r\n windowClass: 'schedulerModal',\r\n reload: true\r\n });\r\n } else {\r\n vm.showFailure('Failed', res.data.Message);\r\n }\r\n\r\n });\r\n } else if (UserType && UserType == 'Fixed Team') {\r\n CentralHDTicketsViewService.getFixedUserProfileData(supervisorId, UserId, token).then(function (res) {\r\n if (res.data && res.status == 200) {\r\n vm.UserProfileData = res.data;\r\n vm.AddPreferredVendorModal = $uibModal.open({\r\n templateUrl: 'UserProfile.html',\r\n scope: $scope,\r\n windowClass: 'schedulerModal',\r\n reload: true\r\n });\r\n } else {\r\n vm.showFailure('Failed', res.data.Message);\r\n }\r\n\r\n });\r\n } else {\r\n CentralHDTicketsViewService.getUserProfileData(supervisorId, UserId, token).then(function (res) {\r\n if (res.data && res.status == 200) {\r\n vm.UserProfileData = res.data;\r\n if (vm.UserProfileData) {\r\n vm.AddPreferredVendorModal = $uibModal.open({\r\n templateUrl: 'UserProfile.html',\r\n scope: $scope,\r\n windowClass: 'schedulerModal',\r\n reload: true\r\n });\r\n } else {\r\n vm.showFailure('Failed', 'User Not found');\r\n }\r\n } else {\r\n vm.showFailure('Failed', res.data.Message);\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n vm.UserProfileClose = function () {\r\n vm.AddPreferredVendorModal.close();\r\n }\r\n vm.downloadDataCaptureImage = function () {\r\n var ticket = '';\r\n for (var i = 0; i < vm.ticketList.length; i++) {\r\n if (vm.ticketList[i].checked) {\r\n if (!ticket) {\r\n ticket = vm.ticketList[i].TicketId;\r\n } else {\r\n ticket = ticket + ',' + vm.ticketList[i].TicketId;\r\n }\r\n }\r\n }\r\n\r\n CentralHDTicketsViewService.downloadImage(loggedInUserId, ticket, token);\r\n vm.callback = function () {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadtemplateBtn = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n vm.showSuccess('Success', 'You have successfull downloaded image');\r\n $timeout(function () {\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 100);\r\n }\r\n vm.callback();\r\n }\r\n\r\n // vm.ConvertJobIntoNew = function(TicketId){\r\n // var ticketIdList = []; \t\t\r\n // ticketIdList.push(TicketId); \r\n // CentralHDTicketsViewService.ConvertJobIntoNew(loggedInUserId, ticketIdList,token).then(function(resp){\r\n // if (resp.status==202) {\t\t\r\n // $timeout(function(){\t\t\t\t\t\t\t\t\r\n // vm.showSuccess(\"Success\", resp.data);\t\t\t\t\t\r\n // vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // }, 1000);\t\r\n\r\n // }\r\n // })\t\t\r\n // }\r\n\r\n vm.ConvertJobIntoNew = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n vm.AuditTicketId = vm.CurrentJob.TicketId;\r\n vm.TicketBreachValue = vm.CurrentJob.TicketBreachValue;\r\n CentralHDTicketsViewService.GetReasonsByStatus(loggedInUserId, token, 'Broadcasted').then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.convertNewReasonsList = resp.data;\r\n convertNewReasonsModalInstance = $uibModal.open({\r\n templateUrl: 'convertnew_reasons_model.html',\r\n scope: $scope\r\n });\r\n }\r\n }, function () {\r\n });\r\n\r\n }\r\n\r\n vm.UpdateConvertNewReasons = function () {\r\n vm.convertNewReasonsForm.submitted = true;\r\n if (vm.convertNewReasonsForm.$valid) {\r\n vm.MoveSPDbyTwoDays = vm.MoveSPDbyTwoDays\r\n vm.IsCommissionDetect = vm.IsCommissionDetect\r\n vm.PullBackReason = vm.convertNewReasons + ' ' + vm.convertNewReasonsRemark\r\n vm.ticketArray = []\r\n vm.ticketArray.push(vm.AuditTicketId)\r\n CentralHDTicketsViewService.ConvertJobIntoNew(vm.MoveSPDbyTwoDays, vm.IsCommissionDetect, vm.PullBackReason, loggedInUserId, vm.ticketArray, token).then(function (resp) {\r\n if (resp && resp.status == 202) {\r\n vm.showSuccess(resp.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n convertNewReasonsModalInstance.close();\r\n vm.convertNewReasons = \"\";\r\n vm.convertNewReasonsRemark = \"\";\r\n vm.MoveSPDbyTwoDays = false;\r\n vm.IsCommissionDetect = false;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n }\r\n vm.convertNewReasonsCloseModal = function () {\r\n convertNewReasonsModalInstance.close();\r\n vm.convertNewReasons = \"\";\r\n vm.convertNewReasonsRemark = \"\";\r\n }\r\n vm.pullBackTicketFromAssign = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n vm.AuditTicketId = vm.CurrentJob.TicketId;\r\n vm.TicketBreachValue = vm.CurrentJob.TicketBreachValue;\r\n if (vm.CurrentJob.TicketStatus == \"Assigned\") {\r\n CentralHDTicketsViewService.GetPullBacknReasons(loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.pullBackReasonsList = resp.data;\r\n pullBackReasonsModalInstance = $uibModal.open({\r\n templateUrl: 'pullBack_reasons_model.html',\r\n scope: $scope\r\n });\r\n }\r\n }, function () {\r\n });\r\n }\r\n }\r\n\r\n vm.ManualJobAssignation = function (ticket) {\r\n vm.ticketId = ticket.TicketId;\r\n vm.ticketid = vm.ticketId.split(\" \");\r\n console.log('ticketid', vm.ticketid);\r\n CentralHDTicketsViewService.ProcessJobToBeAssignedManually(vm.ticketid, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(resp.data);\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopy(loggedInUserId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n vm.DisableScheduledExceptionButtons = function (disable) {\r\n if (disable) {\r\n vm.disableExceptionButton = true;\r\n }\r\n else {\r\n vm.disableExceptionButton = false;\r\n }\r\n }\r\n\r\n\r\n\r\n vm.UpdatePullBackReasons = function (CurrentJob) {\r\n\r\n vm.pullBackReasonsForm.submitted = true;\r\n if (vm.pullBackReasonsForm.$valid) {\r\n vm.DisableScheduledExceptionButtons(true);\r\n var PullBackReasonsModel =\r\n {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"PullBackReason\": vm.pullBackReasons + ' ' + vm.pullBackReasonsRemark,\r\n \"MoveSPDbyTwoDays\": vm.MoveSPDbyTwoDays,\r\n \"IsCommissionDetect\": vm.IsCommissionDetect\r\n }\r\n CentralHDTicketsViewService.PullBackTicketFromTechnician(PullBackReasonsModel, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", vm.AuditTicketId + \" Pull back from Technician\");\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.DisableScheduledExceptionButtons(false);\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n pullBackReasonsModalInstance.close();\r\n vm.pullBackReasons = \"\";\r\n vm.pullBackReasonsRemark = \"\";\r\n vm.MoveSPDbyTwoDays = false;\r\n vm.HintDisplay = \"\";\r\n }\r\n if (resp && resp.status == 206) {\r\n vm.showFailure('Failure', resp.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.DisableScheduledExceptionButtons(false);\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 500);\r\n pullBackReasonsModalInstance.close();\r\n vm.pullBackReasons = \"\";\r\n vm.pullBackReasonsRemark = \"\";\r\n vm.MoveSPDbyTwoDays = false;\r\n vm.HintDisplay = \"\";\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n }\r\n vm.pullBackReasonsCloseModal = function () {\r\n pullBackReasonsModalInstance.close();\r\n vm.pullBackReasons = \"\";\r\n vm.pullBackReasonsRemark = \"\";\r\n\r\n vm.HintDisplay = \"\";\r\n }\r\n\r\n vm.downloadMultipleReportData = function () {\r\n var ticket = '';\r\n for (var i = 0; i < vm.ticketList.length; i++) {\r\n if (vm.ticketList[i].checked) {\r\n if (!ticket) {\r\n ticket = vm.ticketList[i].TicketId;\r\n } else {\r\n ticket = ticket + ',' + vm.ticketList[i].TicketId;\r\n }\r\n }\r\n }\r\n\r\n CentralHDTicketsViewService.downloadMultipleReport(loggedInUserId, ticket);\r\n vm.callback = function () {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadtemplateBtn = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n vm.showSuccess('Success', 'You have successfull downloaded Report');\r\n $timeout(function () {\r\n if (vm.searchStatusText == 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = '';\r\n itemValues = '';\r\n\r\n } else if (vm.searchJobTypeText != 'All Job Types' && vm.searchStatusText == 'All Job Status') {\r\n\r\n itemNames = 'Skill';\r\n itemValues = vm.searchJobTypeText;\r\n\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText == 'All Job Types') {\r\n\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } else if (vm.searchStatusText != 'All Job Status' && vm.searchJobTypeText != 'All Job Types') {\r\n itemNames = 'Status,Skill';\r\n itemValues = vm.searchStatusText + \",\" + vm.searchJobTypeText;\r\n }\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 100);\r\n }\r\n vm.callback();\r\n }\r\n\r\n vm.OpenSiteAuditModal = function (currentAuditJOb) {\r\n vm.CurrentAuditJob = currentAuditJOb;\r\n vm.SiteAuditTicketId = vm.CurrentAuditJob.TicketId;\r\n siteAuditModalInstance = $uibModal.open({\r\n templateUrl: 'site_audit_model.html',\r\n scope: $scope\r\n });\r\n }\r\n vm.SiteAuditCloseModal = function () {\r\n siteAuditModalInstance.close();\r\n }\r\n $scope.attachSiteAudit = function (files) {\r\n vm.SiteAuditFileName = \"\";\r\n var file = files.files[0];\r\n vm.SiteAuditFileName = file.name;\r\n if (vm.SiteAuditFileName != \"\") {\r\n $timeout(function () {\r\n vm.SiteAuditMessage = \"\";\r\n }, 100);\r\n }\r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX)$/i;\r\n if (!allowedExtensions.exec(file.name)) {\r\n vm.followFiles = [];\r\n vm.clear();\r\n alert('Please upload file having extensions .pdf,.doc,.docx,.xls,.xlsx only.');\r\n }\r\n }\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n };\r\n\r\n vm.SiteRescheduleAudit = function () {\r\n if (vm.SiteAuditFileName == \"\") {\r\n return vm.SiteAuditMessage = \"Please Select Audit Report\";\r\n }\r\n else\r\n vm.SiteAuditMessage = \"\";\r\n\r\n var data = {};\r\n data = {\r\n \"AuditResult\": vm.SiteAuditModel,\r\n \"AuditObjectId\": vm.SiteAuditTicketId,\r\n \"AuditAttachmentName\": vm.SiteAuditFileName,\r\n \"AuditFor\": \"Ticket\"\r\n }\r\n siteAuditModalInstance.close();\r\n CentralHDTicketsViewService.AddSiteAuditwithAttachment(data, vm.followFiles, token, loggedInUserId).then(function (res) {\r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Site Audit Saved successfully.\");\r\n $timeout(function () {\r\n vm.SiteAuditFileName = \"\";\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to add site audit. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n //calendar PO update\r\n var d = new Date();\r\n var year = d.getFullYear();\r\n var month = d.getMonth() + 1;\r\n if (month < 10) {\r\n month = \"0\" + month;\r\n }\r\n var day = d.getDate();\r\n $scope.date = year + \"-\" + month + \"-\" + day;\r\n //\r\n vm.PlannedClosureDateModelOpen = function () {\r\n var ticketIdList = [];\r\n vm.IsLoadSucessfull = false;\r\n for (var j = 0; j < vm.ticketList.length; j++) {\r\n if (vm.ticketList[j].checked) {\r\n if (vm.ticketList[j].TicketStatus == 'New' || vm.ticketList[j].TicketStatus == 'Broadcasted' || vm.ticketList[j].TicketStatus == 'Assigned') {\r\n ticketIdList.push(vm.ticketList[j].TicketId);\r\n }\r\n }\r\n }\r\n $scope.PlannedClosureticketList = ticketIdList;\r\n vm.getPlannedClosureUpdateReasons();\r\n\r\n }\r\n\r\n vm.getPlannedClosureUpdateReasons = function () {\r\n CentralHDTicketsViewService.GetCancellationReasons('', 'PlannedClosure', loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.PlannedUpdateReasonsList = resp.data;\r\n PlannedClosureDateCloseModalInstance = $uibModal.open({\r\n templateUrl: 'PlannedClosureDate.html',\r\n scope: $scope\r\n });\r\n }\r\n });\r\n }\r\n\r\n vm.PlannedClosureDateCloseModal = function () {\r\n PlannedClosureDateCloseModalInstance.close();\r\n vm.PlannedClosureReason = \"\";\r\n }\r\n\r\n vm.updatePlannedClosure = function () {\r\n var data = {\r\n \"TicketIds\": $scope.PlannedClosureticketList,\r\n \"TicketPlannedClosureDate\": moment(vm.PlannedClosureDate).format(\"YYYY-MM-DDTHH:mm:ss.SSSZ\"),\r\n \"IsWithInDays\": vm.IsWithInDays == 'first' ? true : false,\r\n \"WithInDays\": vm.WithInDays,\r\n \"PlannedDateChangeReason\": vm.PlannedClosureReason\r\n };\r\n\r\n CentralHDTicketsViewService.updatePlannedClosure(loggedInUserId, data, token, function (res) {\r\n vm.showSuccess(\"Success\", res);\r\n PlannedClosureDateCloseModalInstance.close();\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1500);\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.policyModel = function () {\r\n\r\n AgreementUserModal = $uibModal.open({\r\n templateUrl: 'policy.html',\r\n size: 'lg',\r\n scope: $scope,\r\n reload: true\r\n });\r\n\r\n }\r\n vm.CloseAgreementUserModal = function () {\r\n AgreementUserModal.close();\r\n }\r\n\r\n vm.ReadyToRaiseInvoiceModelOpen = function () {\r\n\r\n vm.TicketPONumber = [];\r\n var ticketIdList = [];\r\n vm.IsLoadSucessfull = false;\r\n for (var j = 0; j < vm.ticketList.length; j++) {\r\n if (vm.ticketList[j].checked) {\r\n if ((vm.ticketList[j].TicketStatus == 'Completed' || vm.ticketList[j].TicketStatus == 'Approved') && vm.ticketList[j].PreInvoiceStatus != 'ReadyToRaiseInvoice') {\r\n ticketIdList.push(vm.ticketList[j].TicketId);\r\n }\r\n }\r\n }\r\n vm.GetTicketDataToRaiseInvoice(ticketIdList);\r\n readyToRaiseInvoiceModalInstance = $uibModal.open({\r\n templateUrl: 'ready_to_raise_invoice_model.html',\r\n scope: $scope,\r\n windowClass: 'app-modal-window-md-class',\r\n });\r\n }\r\n vm.ReadyToRaiseInvoiceCloseModal = function () {\r\n vm.TicketPONumber = [];\r\n vm.AllTicketDate = '';\r\n vm.AllTicketRemark = '';\r\n vm.AllTicketPONumber = '';\r\n readyToRaiseInvoiceModalInstance.close();\r\n }\r\n\r\n vm.expandAll = function (expanded) {\r\n $scope.$broadcast('onExpandAll', {\r\n expanded: expanded\r\n });\r\n }\r\n\r\n vm.GetTicketDataToRaiseInvoice = function (ticketIdList) {\r\n vm.TicketDataToRaiseInvoiceList = [];\r\n CentralHDTicketsViewService.GetTicketDataToRaiseInvoice(loggedInUserId, ticketIdList, token).then(function (resp) {\r\n if (resp.status == 200 && resp.data) {\r\n vm.IsLoadSucessfull = true;\r\n vm.TicketDataToRaiseInvoiceList = resp.data;\r\n }\r\n else {\r\n vm.IsLoadSucessfull = true;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n })\r\n }\r\n\r\n vm.collectionAmount = false;\r\n vm.disabledCollection = function () {\r\n for (var i = 0; i < vm.TicketDataToRaiseInvoiceList.length; i++) {\r\n for (j = 0; j < vm.TicketDataToRaiseInvoiceList[i].LineItemList.length; j++) {\r\n if (vm.TicketDataToRaiseInvoiceList[i].LineItemList[j].LineItemCategory == 'Collection') {\r\n vm.TicketDataToRaiseInvoiceList[i].LineItemList[j].collectionAmount = true;\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n //auto date\r\n vm.AllTicketDate = '';\r\n vm.ChangeAllDate = function () {\r\n for (var i = 0; i < vm.TicketDataToRaiseInvoiceList.length; i++) {\r\n vm.TicketDate1 = vm.AllTicketDate;\r\n vm.TicketDataToRaiseInvoiceList[i].CustomerApprovalDate = vm.TicketDate1;\r\n }\r\n }\r\n //end auto date\r\n\r\n\r\n //auto remarks\r\n vm.AllTicketRemark = '';\r\n vm.ChangeAllRemark = function () {\r\n for (var i = 0; i < vm.TicketDataToRaiseInvoiceList.length; i++) {\r\n vm.TicketRemark1 = vm.AllTicketRemark;\r\n vm.TicketDataToRaiseInvoiceList[i].CustomerApprovalRemark = vm.TicketRemark1;\r\n }\r\n }\r\n //end auto remarks\r\n\r\n\r\n //auto PO \r\n vm.AllTicketPONumber = '';\r\n vm.ChangeAllPONumbers = function () {\r\n for (var i = 0; i < vm.TicketDataToRaiseInvoiceList.length; i++) {\r\n vm.TicketPONumber1 = vm.AllTicketPONumber;\r\n vm.TicketDataToRaiseInvoiceList[i].TicketPONumber = vm.TicketPONumber1;\r\n vm.ChangePONumber();\r\n }\r\n }\r\n //end auto PO\r\n\r\n\r\n vm.ChangePONumber = function () {\r\n for (var i = 0; i < vm.TicketDataToRaiseInvoiceList.length; i++) {\r\n var TicketPONumber = vm.TicketPONumber1;\r\n for (var j = 0; j < vm.TicketDataToRaiseInvoiceList[i].LineItemList.length; j++) {\r\n vm.TicketDataToRaiseInvoiceList[i].LineItemList[j].PONumber = TicketPONumber;\r\n if (vm.TicketDataToRaiseInvoiceList[i].LineItemList[j].LineItemCategory == 'Collection') {\r\n vm.TicketDataToRaiseInvoiceList[i].LineItemList[j].PONumber = ' ';\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n vm.TicketPONumber = [];\r\n vm.ChangePONumberManually = function () {\r\n for (var i = 0; i < vm.TicketDataToRaiseInvoiceList.length; i++) {\r\n var TicketPONumberM = vm.TicketPONumber[i];\r\n for (var j = 0; j < vm.TicketDataToRaiseInvoiceList[i].LineItemList.length; j++) {\r\n vm.TicketDataToRaiseInvoiceList[i].LineItemList[j].PONumber = TicketPONumberM;\r\n if (vm.TicketDataToRaiseInvoiceList[i].LineItemList[j].LineItemCategory == 'Collection') {\r\n vm.TicketDataToRaiseInvoiceList[i].LineItemList[j].PONumber = ' ';\r\n\r\n }\r\n }\r\n }\r\n }\r\n vm.ReadyToRaiseInvoiceSave = function () {\r\n\r\n var ticketwithLineitemList = vm.TicketDataToRaiseInvoiceList;\r\n readyToRaiseInvoiceModalInstance.close();\r\n CentralHDTicketsViewService.MarkTicketsReadyToRaiseInvoice(loggedInUserId, ticketwithLineitemList, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Your data successfully saved to ready to raise invoice.\");\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", \"Unable to update PO Number\");\r\n }\r\n vm.TicketDataToRaiseInvoiceList = [];\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 2000);\r\n }\r\n })\r\n }\r\n\r\n vm.Get360TeamProfileData = function (teamid, TicketId) {\r\n vm.userId = teamid;\r\n vm.followupTicketId = TicketId;\r\n DashboardService.Get360ProfileData(loggedInUserId, teamid, token).then(function (resp) {\r\n vm.teamdata = resp.data;\r\n vm.AvgRating = vm.teamdata.userProfile.AverageRating;\r\n vm.ReviewsList = vm.teamdata.userProfile.Reviews\r\n vm.teamdata.ratingStars = vm.getRatingStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.blankStars = vm.getBlankStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.avgratingStars = vm.getAvgRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.avgblankStars = vm.getAvgBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n if (vm.teamdata.userProfile.ContactNumber) {\r\n vm.teamdata.userProfile.ContactNumber = vm.teamdata.userProfile.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n\r\n if (vm.teamdata.userProfile.Reviews) {\r\n vm.teamdata.userProfile.Reviews.forEach(function (element, i) {\r\n vm.teamdata.userratingStars = vm.getUserRatingStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n vm.teamdata.userblankStars = vm.getUserBlankStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n element.arrayRating = vm.teamdata.userratingStars;\r\n element.blankRating = vm.teamdata.userblankStars;\r\n });\r\n }\r\n\r\n\r\n vm.TechnicianRating = Number(vm.teamdata.userProfile.Ratings.TechnicianRating).toFixed(1);\r\n\r\n vm.ResetUserFilter();\r\n $timeout(function () {\r\n displayTotals();\r\n }, 300);\r\n }, function () {\r\n //$log.log('not working');\r\n })\r\n }\r\n vm.ResetUserFilter = function () {\r\n vm.UsersType = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.userskill = '';\r\n vm.uType = '';\r\n vm.useraccount = '';\r\n vm.userNameSearch = '';\r\n vm.contactNumberSearch = '';\r\n startDate = '';\r\n endDate = '';\r\n vm.JobcountbyStatus = '';\r\n vm.InvoiceStatus = \"\";\r\n // vm.applyUserFilter();\r\n }\r\n vm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getAvgRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getAvgBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getUserRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getUserBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n\r\n\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function (userId) {\r\n $scope.usersPerPage = vm.userPageListCount;\r\n uPageSize = $scope.usersPerPage;\r\n $scope.WSTablePageChanged($scope.Userpagination.current);\r\n\r\n uPageIndex = $scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n vm.UsersFilterArray();\r\n vm.Get360WorkSummary(loggedInUserId, token, userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n }\r\n\r\n uPageIndex = $scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n if (uitemNames != 'Search') {\r\n vm.UsersFilterArray();\r\n }\r\n\r\n vm.Get360WorkSummary(loggedInUserId, token, vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n vm.applyUserFilter = function () {\r\n vm.UsersFilterArray();\r\n\r\n uPageIndex = 1;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n vm.Get360WorkSummary(loggedInUserId, token, vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate, vm.OrderBy, vm.sorttype);\r\n\r\n\r\n }\r\n\r\n vm.filterStatusForJObs = function (status) {\r\n vm.JobcountbyStatus = status;\r\n vm.UsersFilterArray();\r\n PageIndex = 1;\r\n vm.Get360WorkSummary(loggedInUserId, token, vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate, vm.OrderBy, vm.sorttype);\r\n }\r\n vm.UsersFilterArray = function () {\r\n // vm.ResetUserSelection(this);\r\n uitemNames = \"\";\r\n uitemValues = \"\";\r\n\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null) {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n } else {\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n }\r\n }\r\n\r\n if (vm.userskill) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',Skill';\r\n uitemValues = uitemValues + \",\" + vm.userskill;\r\n }\r\n else {\r\n uitemNames = 'Skill';\r\n uitemValues = vm.userskill;\r\n }\r\n }\r\n if (vm.userNameSearch) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.userNameSearch;\r\n }\r\n else {\r\n uitemNames = 'Search';\r\n uitemValues = vm.userNameSearch;\r\n }\r\n }\r\n\r\n if (vm.PermanentState) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',State';\r\n uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n }\r\n else {\r\n uitemNames = 'State';\r\n uitemValues = vm.PermanentState;\r\n }\r\n }\r\n\r\n if (vm.JobcountbyStatus) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',Status';\r\n uitemValues = uitemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else {\r\n uitemNames = 'Status';\r\n uitemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n if (vm.PermanentState && vm.PermanentCity) {\r\n if (uitemNames) {\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.PermanentCity;\r\n }\r\n else {\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.UsersType;\r\n }\r\n }\r\n\r\n\r\n if (vm.UsersType == \"Freelancer\") {\r\n vm.uType = \"Freelancer\";\r\n }\r\n else if (vm.UsersType == \"Freelancer Vendor\") {\r\n vm.uType = \"Freelancer\";\r\n }\r\n else if (vm.UsersType == \"Freelancer Team\") {\r\n vm.uType = \"Fixed\";\r\n }\r\n else {\r\n vm.uType = \"\";\r\n vm.UsersType = '';\r\n }\r\n\r\n }\r\n\r\n\r\n // apply user rating to all displays\r\n // add star ratings to an array\r\n var starRating = document.querySelectorAll(\".fa-star\"),\r\n ratingTotal = document.querySelectorAll(\".rating-total\");\r\n\r\n // convert ratingTotal HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n // display initial rating totals\r\n // displayTotals();\r\n\r\n // use event listener to record changes to user rating\r\n starRating.forEach(function (star) {\r\n star.addEventListener(\"change\", recordRating);\r\n })\r\n\r\n function recordRating(event) {\r\n // use indexOf to identify selected user rating\r\n var userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n // define selected rating to adjust display totals\r\n var selectedIndex;\r\n\r\n starRating.forEach(function (item, index) {\r\n // add or remove .active class based upon selected user rating\r\n if (index < userRating + 1) {\r\n starRating[index].classList.add(\"active\");\r\n selectedIndex = index;\r\n } else {\r\n starRating[index].classList.remove(\"active\");\r\n }\r\n\r\n displayTotals(selectedIndex);\r\n });\r\n }\r\n vm.countForStatus = 50;\r\n // display star rating totals from html custom data-\r\n function displayTotals(selectedIndex) {\r\n var barChart = document.querySelectorAll(\".bar\"),\r\n displaySummary = document.querySelectorAll(\".summary\"),\r\n numRatings = 0,\r\n numRatingsValue = 0;\r\n\r\n // convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseBarChart = Array.from(barChart).reverse();\r\n\r\n reverseRatingTotal.forEach(function (total, index) {\r\n if (index == selectedIndex) {\r\n // add selected rating to display total\r\n total.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n // adjust selected bar width\r\n reverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n } else {\r\n // display unselected totals\r\n total.innerHTML = total.getAttribute(\"data-rating-count\");\r\n // adjust unselected bar widths\r\n reverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n }\r\n // count total number and value of ratings\r\n numRatings += parseInt(total.innerHTML);\r\n numRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n });\r\n\r\n // display rating average and total\r\n ratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n // displaySummary[0].innerHTML = ratingsAverage + \" average based on \" + numRatings + \" reviews.\";\r\n }\r\n\r\n // FOR MINIATURE DASHBOARD START\r\n\r\n vm.Get360VendorTeamData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedInUserId, teamid, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n vm.Get360WorkSummary = function () {\r\n // vm.userId = teamid;\r\n DashboardService.Get360WorkSummary(loggedInUserId, token, vm.userId, uitemNames, uitemValues, uPageIndex, uPageSize, startDate, endDate, vm.OrderBy, vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.UserByFiltersList = resp.data.workSummaryData;\r\n $scope.totalUsers = resp.data.WorkSummaryTotalCount;\r\n // preprocessData(vm.UserByFiltersList);\r\n if (vm.UserByFiltersList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = uPageIndex * vm.userPageListCount;\r\n if (uPageIndex == 1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n vm.FinanceFiltersList = [];\r\n vm.GetFinancialSummary = function () {\r\n DashboardService.GetFinancialSummary(loggedInUserId, token, vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.paymentCount = resp.data.paymentsSummary;\r\n vm.FinanceFiltersList = resp.data.financialSummary360.financialLPSummaryList;\r\n $scope.totalFinList = resp.data.financialSummary360.count;\r\n if (vm.FinanceFiltersList.length < vm.financePageListCount)\r\n vm.financeListLength = $scope.totalFinList;\r\n else\r\n vm.financeListLength = fPageIndex * vm.financePageListCount;\r\n if (fPageIndex == 1)\r\n vm.fpageindexCount = 1;\r\n else\r\n vm.fpageindexCount = (((fPageIndex - 1) * vm.financePageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n vm.ResetUserFilter();\r\n }\r\n\r\n vm.getFileType = function (url) {\r\n if (url == null || url == \"\") {\r\n return \"others\";\r\n }\r\n else {\r\n if (url.indexOf(\".jpg\") >= 0 || url.indexOf(\".jpeg\") >= 0 || url.indexOf(\".png\") >= 0 || url.indexOf(\".bmp\") >= 0 || url.indexOf(\".JPG\") >= 0 || url.indexOf(\".JPEG\") >= 0 || url.indexOf(\".PNG\") >= 0 || url.indexOf(\".BMP\") >= 0) {\r\n return \"image\";\r\n } else if (url.indexOf(\".pdf\") >= 0 || url.indexOf(\".PDF\") >= 0) {\r\n return \"pdf\";\r\n } else if (url.indexOf(\".xls\") >= 0 || url.indexOf(\".xlsx\") >= 0 || url.indexOf(\".XLS\") >= 0 || url.indexOf(\".XLSX\") >= 0) {\r\n return \"xls\";\r\n } else if (url.indexOf(\".doc\") >= 0 || url.indexOf(\".docx\") >= 0 || url.indexOf(\".DOC\") >= 0 || url.indexOf(\".DOCX\") >= 0) {\r\n return \"doc\";\r\n }\r\n else {\r\n return \"others\";\r\n }\r\n }\r\n }\r\n\r\n vm.Get360SkillSummary = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360SkillSummary(loggedInUserId, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for (var i = 0; i < vm.skillsetData.CertificateDetails.length; i++) {\r\n vm.CertimageServices(vm.skillsetData.CertificateDetails[i].TrainingCertificate, i);\r\n }\r\n\r\n if (vm.skillsetData.PreviousCompanyDetailsList) {\r\n for (var i = 0; i < vm.skillsetData.PreviousCompanyDetailsList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter) == 'image')\r\n vm.PreviousCompnyExperienceLetterServices(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter, i);\r\n }\r\n }\r\n\r\n if (vm.skillsetData.UserTrainingList) {\r\n for (var i = 0; i < vm.skillsetData.UserTrainingList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingImage) == 'image')\r\n vm.TrainingImageServices(vm.skillsetData.UserTrainingList[i].TrainingImage, i);\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingAttendance) == 'image')\r\n vm.TrainingAttendanceServices(vm.skillsetData.UserTrainingList[i].TrainingAttendance, i);\r\n }\r\n\r\n }\r\n\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n vm.GetReviewAndRatings = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.GetReviewAndRatings(loggedInUserId, vm.userId, token).then(function (resp) {\r\n vm.reviewData = resp.data;\r\n vm.users.InstallationratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.users.InstallationblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.users.SafetyratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.users.SafetyblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.users.VisitratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.users.VisitblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.users.CourteousratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.users.CourteousblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.users.ProratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.users.ProblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.users.ServiceratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n vm.users.ServiceblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n\r\n vm.Get360VendorTeamData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedInUserId, vm.userId, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n\r\n vm.GetLastFollowUpOnTicketId = function (teamid) {\r\n vm.userId = teamid;\r\n vm.FollowupListArr = [];\r\n DashboardService.GetLastFollowUpOnTicketId(loggedInUserId, vm.userId, token).then(function (resp) {\r\n vm.followupdata = resp.data;\r\n angular.forEach(vm.followupdata, function (fdetail, i) {\r\n if (fdetail != null) {\r\n angular.forEach(vm.followupdata[i].FollowUpOnTicket, function (fdetail, i) {\r\n vm.FollowupList = fdetail.FollowUpOnTicket;\r\n vm.FollowupListArr.push(fdetail);\r\n })\r\n\r\n }\r\n })\r\n })\r\n }\r\n\r\n vm.GetToolsAndAssets = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.GetToolsAndAssets(loggedInUserId, vm.userId, token).then(function (resp) {\r\n vm.assetData = resp.data;\r\n vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n vm.OpenReadyToRaiseModel = function () {\r\n vm.ReadyToRaiseModal = $uibModal.open({\r\n templateUrl: 'ReadyToRaiseModal.html',\r\n backdrop: 'static',\r\n size: 'md',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeReadyToRaiseModal = function () {\r\n vm.showPassed = false;\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.ReadyToRaiseModal.close();\r\n }\r\n\r\n if (vm.bulkuploadType == 'cms') {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.zip',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n } else {\r\n vm.dzOptions = {\r\n paramName: 'photo',\r\n maxFilesize: '100',\r\n url: '/',\r\n acceptedFiles: '.xlsx, .xls',\r\n dictDefaultMessage: 'Click to add or drop files',\r\n dictRemoveFile: 'Remove'\r\n };\r\n }\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.MarkTicketsReadyToRaise = function () {\r\n data = vm.InvoiceList;\r\n CentralHDTicketsViewService.MarkTicketsReadyToRaise(data, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ReadyToRaisedTktDetails = resp.data;\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.closeReadyToRaiseModal();\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopyForPagging(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }, 1000)\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", \"Please fill all the details\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n }\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.InvoiceList = [];\r\n\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showPassed = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.tickedfile = file;\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n // fd.append('MediaUploadReqModel', JSON.stringify(vm.MediaUploadReqModel))\r\n $http.post(ApiURL + '/api/BulkUpload/MediaUpload?reqUserId=' + loggedInUserId + '&action=Create', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUserId },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n if (vm.bulkuploadType == 'Ticket') {\r\n vm.InvoiceList = data.BulkInvoiceGenerateModel;\r\n vm.noOfRecords = data.BulkInvoiceGenerateModel ? data.BulkInvoiceGenerateModel.length : 0;\r\n }\r\n $(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n if (data.Errors.length > 0) {\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.Errors, function (v, k) {\r\n\r\n if (v.ItemErrors.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.ItemErrors, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n });\r\n if (v.Row > 0 && data.BulkInvoiceGenerateModel && data.BulkInvoiceGenerateModel.length > 0 && data.BulkInvoiceGenerateModel.length >= v.Row) {\r\n e1.data = data.BulkInvoiceGenerateModel[v.Row - 1];\r\n }\r\n vm.errorList.push(e1);\r\n }\r\n });\r\n\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.ErrorCode == 103) {\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Missing columns in excel file\";\r\n vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.Message && data.Message.length > 0) {\r\n\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Validation failed\";\r\n vm.successMsg = data.Message\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\r\n } else {\r\n vm.showPassed = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"File Validated\";\r\n vm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are validated successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found.\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n $(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n });\r\n\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.addFiles = function () {\r\n $(\"#dropzone1\").trigger(\"click\");\r\n }\r\n\r\n }\r\n})\r\n .directive('expand', function () {\r\n function link(scope, element, attrs) {\r\n scope.$on('onExpandAll', function (event, args) {\r\n scope.expanded = args.expanded;\r\n });\r\n }\r\n return {\r\n link: link\r\n };\r\n });\r\nangular.module('inspinia').filter('changeTime', function () {\r\n\r\n return function (s) {\r\n var ms = s % 1000;\r\n s = (s - ms) / 1000;\r\n var secs = s % 60;\r\n s = (s - secs) / 60;\r\n var mins = s % 60;\r\n var hrs = (s - mins) / 60;\r\n return hrs + ':' + mins + ' hr';\r\n }\r\n});\r\n\r\n\r\n\r\n\nangular.module('inspinia').service('CentralHDManualAssignationService',function(ApiURL, PublicApiURL,ActivityURL,LocationURL,$http, FreelancerURL, SchedulingAPI){\r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n\t//http://192.168.0.80:92/CoreAPI/api/Ticket/new/byStatus?reqUserId=kanika.bansal%40innotiontech.com\r\n\tthis.GetTicketsByStatus = function (status,loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/'+status+'/byStatus?reqUserId='+loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Get all freelancers\r\n//http://192.168.0.80:92/FreelancerAPI/api/FreeLancerUser/kanika.bansal%40innotiontech.com/GetAllUsers\r\n this.GetAllFreelancers = function (loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/'+loggedinUser+'/GetAllUsers';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/FreeLancerUser/Kanika.bansal%40innotiontech.com/GetAllFreLancerWithFilters?itemNames=UserStatus%2CRole&itemValues=Active%2CField%20Engineer\r\n this.GetAllFreelancersWithFilters = function (loggedinUser,itemNames,itemValues, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/'+loggedinUser+'/GetAllFreLancerWithFilters?itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n// url = https://product.mymobiforce.com/schedulingAPI/api/AutoJobBroadcast/BroadcastJobsManualMode\r\nthis.AutoBroadcastAllNewJobsManualMode = function (loginUserId, ticketIds, token) { \r\n var url = SchedulingAPI + '/api/AutoJobBroadcast/BroadcastJobsManualMode';\r\n return $http.post(url,ticketIds,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':loginUserId}\r\n });\r\n\r\n /*var url = SchedulingAPI + 'api/AutoJobBroadcast/BroadcastJobsManualMode'; \r\n return $http.post(url, ticketIds, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });*/\r\n}\r\n\r\nthis.PullBackJob = function (loginUserId, ticketIds, token) { \r\n var url = ApiURL + '/api/Ticket/PullBackFromDispatchSupervisor';\r\n return $http.put(url,ticketIds,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':loginUserId}\r\n });\r\n}\r\n\r\nthis.callToTechnicianApi = function (loggedinUser,userid,token) {\r\n $http.get(ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId='+userid,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser } }).then(function (resp) {\r\n if (resp && resp.data) {\t \r\n if(resp.status==200)\r\n {\r\n vm.showSuccess(\"Success\",\"Call Initiated\"); \r\n }\r\n else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n }\r\n });\r\n}\r\nthis.callToTechnicianInBroadcastState = function (loggedinUser,userid,TicketId,token) {\r\n $http.get(ApiURL + '/api/CallPatching/ClickToCallFieldTeamInTicketBroadcastState?userId='+userid+'&TicketId='+TicketId,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser } }).then(function (resp) {\r\n if (resp && resp.data) {\t \r\n if(resp.status==200)\r\n {\r\n vm.showSuccess(\"Success\",\"Call Initiated\"); \r\n }\r\n else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.getAccounts = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get accounts\");\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/User/Kanika/byReportingToWithJobCount?reqUserId=kanika.bansal%40innotiontech.com\r\n this.GetTicketsById = function (ticketId,loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/'+ticketId+'/'+loggedinUser+'/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/CoreAPI/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=FollowUp\r\n this.GetReasonsByStatus = function (loggedinUser, token, status) {\r\n var url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus='+status;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n //Get Tickets by filter\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/kanika.bansal%40innotiontech.com/TicketStatus/Broadcasted/GetTicketsByUser\r\n//https://test.mymobiforce.com/coreapi/api/Ticket/reqUserId/GetTicketsForAssignation?itemNames=itemNames&itemValues=itemValues\r\n\r\n this.GetTicketsByFilter = function(loggedinUser,itemNames,itemValues, token){\r\n var url = ApiURL + '/api/Ticket/' + loggedinUser + '/GetTicketsForAssignation?itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser}\r\n })\r\n }\r\n\r\n //Get Users By Filter\r\n\r\n //\r\n // http://192.168.0.80:92/CoreAPI/api/User/kanika.bansal%40innotiontech.com/UserStatus/Active/getusersbyfilters\r\n this.GetUsersByFilter = function(loggedinUser,itemNames,itemValues, token){\r\n var url = ApiURL + '/api/User/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getusersbyfilters'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser}\r\n })\r\n }\r\n\r\n //Assign Tickets\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/ass/asd/asd/AssignTicket\r\n this.AssignTickets = function(userId,loggedinUser,ticketList, token){\r\n var TicketId = ticketList.split(',');\r\n var url = ApiURL + '/api/Ticket/' + userId + '/' + loggedinUser + '/AssignTicketToDispatchSupervisor'\r\n return $http.put(url,TicketId, {\r\n headers:{'Content-Type':'application/json','Token':token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n\r\n // Bid Recieved Api\r\n // http://192.168.0.80:92/FreelancerAPI/api/BID/T0000000039/Received/kanika.bansal@innotiontech.com/byStatus\r\n this.GetBidReceivedByStatus = function(loggedinUser,ticketId,status, token){\r\n var url = FreelancerURL + '/api/BID/GetLeadsByStatus?TicketId' + '=' + ticketId +'&'+ 'leadStatus' + '=' + status\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser}\r\n })\r\n }\r\n\r\n //bid deny https://product.mymobiforce.com/freelancerAPI/api/BID/GetLeadsByStatus?TicketId=T1140000016977&leadStatus=Deny\r\n this.GetBidDeny = function(loggedinUser,ticketId,status, token){ \r\n var url = FreelancerURL + '/api/BID/GetLeadsByStatus?TicketId' + '=' + ticketId +'&'+ 'leadStatus' + '=' + status\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser}\r\n })\r\n }\r\n//https://product.mymobiforce.com/FreelancerAPI/api/BID/GetLeadsByStatus?TicketId=T1140000091078&leadStatus=Sent&filter=Online\r\n //https://product.mymobiforce.com/freelancerAPI/api/BID/GetLeadsByStatus?TicketId=T1140000016977&leadStatus=Sent\r\n this.GetBidSentByStatus = function(loggedinUser,ticketId,status,token,userfilter){ \r\n var url = FreelancerURL + '/api/BID/GetLeadsByStatus?TicketId' + '=' + ticketId +'&'+ 'leadStatus' + '=' + status +'&'+ 'filter' + '=' + userfilter\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser}\r\n })\r\n }\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/akshit.chauhan%40innotiontech.com/TicketStatus/Broadcasted/getjobsbyfilter\r\n this.GetBroadcastedBids = function (loggedinUser, itemNames,itemValues, token) {\r\n var url = FreelancerURL + '/api/BID/'+loggedinUser+'/' + itemNames + '/'+ itemValues + '/getjobsbyfilter';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Assign Bids\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/kanika.bansal%40innotiontech.com/T0000000040/pri/acceptBIDAssignJob?jobAssignRate=100&jobAssignGrossRate=0\r\nthis.AssignReceivedBid = function (loggedinUser, ticketId, userId, token) {\r\n var url = FreelancerURL + '/api/BID/'+loggedinUser+'/' + ticketId + '/' + userId + '/acceptBIDAssignJob';\r\n return $http.put(url,{}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //BroadCast Jobs/Bids\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/createbidforselectedteam?reqUserId=asdasd\r\n\r\n this.BroadCastJobs = function(loggedinUser,data, token){\r\n var url = FreelancerURL + '/api/BID/createbidforselectedteam?reqUserId=' + loggedinUser;\r\n return $http.post(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Get Users By Role\r\n//http://115.124.122.225/coreapi/api/User/Supervisor/byRole?reqUserId=satyendratiwari124%40gmail.com\r\n//http://192.168.0.80:92/CoreAPI/api/User/Supervisor/SkillSet/AC%20Repair/byRole?reqUserId=Kanika.bansal%40innotiontech.com\r\n this.GetUsersByRole = function (loggedinUser, role, itemNames,itemValues, token) {\r\n var url = ApiURL + '/api/User/'+role+ '/' + itemNames+ '/'+ itemValues+'/byRole?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Get All Vendor\r\n //http://192.168.0.80:92/CoreAPI/api/Vendor/kanika.bansal%40innotiontech.com/getallvendors\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/Vendor/Kanika.bansal%40innotiontech.com/VendorLocations/Maharashtra/getvendorsbyfilters\r\n this.GetAllVendors = function (loggedinUser,itemNames,itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/'+ loggedinUser + '/' + itemNames + '/' +itemValues+ '/getvendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetFreelancerVendorsByFilters = function (loggedinUser,itemNames,itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/'+ loggedinUser + '/' + itemNames + '/' +itemValues+ '/getfreelancervendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n // https://perf.mymobiforce.com/coreapi/api/Vendor/U350000000001/VendorStatus/Active/getfixedvendorsbyfilters\r\n this.GetFixedVendorsByFilters = function (loggedinUser,itemNames,itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/'+ loggedinUser + '/' + itemNames + '/' +itemValues+ '/getfixedvendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/ankur.sharma%40innotiontech.com/byUserId?reqUserId=akshit.chauhan%40innotiontech.com\r\n\r\n this.GetTicketsByUserId = function(loggedinUser,UserId, token){\r\n var url = ApiURL + '/api/Ticket/' + UserId + '/byUserId?reqUserId=' + loggedinUser;\r\n return $http.get(url,{\r\n headers:{\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/freelancerapi/api/BID/CreateRoutingBid?reqUserId=U350000000001\r\n this.RouteJobsforUser = function(loggedinUser,data, token){\r\n var url = FreelancerURL + '/api/BID/CreateRoutingBid?reqUserId=' + loggedinUser;\r\n return $http.post(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.getAllStateTech = function (loggedinUser,token) {\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId='+loggedinUser+'®ion=INDIA';\r\n return $http.get(url,{\r\n headers:{\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\n// https://product.mymobiforce.com/coreapi/api/Ticket/TicketRejectionHistory?TicketId=T1140000092053\r\n\r\nthis.getRejectHistory = function (TicketId, loggedinUser, token) { \r\n var url = ApiURL + '/api/Ticket/TicketRejectionHistory?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n }\r\n \r\n });\r\n}\r\n\r\n//http://localhost:56749/api/User/GetUserByFiltersWithDynaPage?itemNames=SkillSet%2CLocations%2CRole&itemValues=EMF%20Survey%7CGeneral_Electrician%2CBIHAR%7CUTTAR%20PRADESH%2CField Engineer&userType=Freelancer&DateField=CreatedOn&PageIndex=0&PageSize=10\r\nthis.GetUserByFiltersWithDynaPage = function (loggedinUser,token,itemNames,itemValues,userType,userAvailableStatus,DateField,PageIndex,PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/User/GetUserByFiltersWithDynaPageForCHDAccount?itemNames=' + itemNames + '&itemValues=' + itemValues + '&userType=' + userType+ '&userAvailableStatus=' + userAvailableStatus + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\n//https://product.mymobiforce.com/coreapi/api/Ticket/GetTicketsForAssignationByCHDAccount?fromDate=2021-06-01&toDate=2021-06-10&reqUserId=U00000000412&itemNames=Search&itemValues=J009&textItemNames=&textItemValues=&templateCols=&templateItemNames=&templateItemValues=&DateField=CreatedOn&PageIndex=1&PageSize=10\r\nthis.getAllJobTickets = function (supervisorId, startDate, endDate, token, itemNames,itemValues,textItemNames,textItemValues,templateCols,templateItemNames,templateItemValues,DateField,PageIndex,PageSize,SortType,SortField) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsForAssignationByCHDAccount?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues +'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues+ '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize+ '&SortType=' + SortType+ '&SortField=' + SortField;\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n}\r\n\r\n//http://localhost:56749/api/Ticket/GetAssignedTicketforUser?UserId=U400000000395&reqUserId=U00000000079\r\nthis.GetAssignedTicketforUser = function(UserId,loggedinUser,token){\r\n var url = ApiURL + '/api/Ticket/GetAssignedTicketforUser?UserId=' + UserId;\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser}\r\n })\r\n }\r\n\r\n this.GetJobTicket = function (ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + $localStorage.loggedInUserId + '/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId':$localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetSchedulingEvaluationResult = function(data,reqUserId,token){\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetFavoriteFR?reqUserId='+reqUserId;\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':reqUserId}\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetFavoriteFR?reqUserId=U400000000001\r\n this.GetAllPrefereTalentPool = function(data,reqUserId,token){\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetPreWorkedWith?reqUserId='+reqUserId;\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':reqUserId}\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetPreWorkedWith?reqUserId=U400000000001\r\n this.GetAllTechnician = function(data,reqUserId,token){\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetSchedulingEvaluationResult?reqUserId='+reqUserId;\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId':reqUserId}\r\n });\r\n }\r\n\r\n this.BroadCastJobsforUser = function(loggedinUser,data, token){\r\n var url = FreelancerURL + '/api/BID/createBidFromAssistedScheduling?reqUserId=' + loggedinUser;\r\n return $http.post(url,data,{\r\n headers:{\r\n 'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // Action\r\n\r\n this.AcceptJob = function (data, token, loggedInUserId, success, failure) { \r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.getPdfReport = function(loggedinUser, ticketID, token){\r\n var url = ApiURL + '/api/Report/GeneratePdfReportForApprovedJob?TicketId=' +ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.PullBackTicket = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/returnticket';\r\n return $http.put(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.RejectJob = function (data, token, loggedInUserId, success, failure) { \r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.ConvertToNewJob = function (data, token, loggedInUserId, success, failure) { \r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.UpdateHoldingStatus = function (loggedInUserId, ticketId, holdingStatus,reason,Remark, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/ticketholding?HoldingStatus=' + holdingStatus +'&Reason=' + reason+ '&Remark='+ Remark;\r\n return $http.put(url,{}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.downloadOnSiteReport = function ( loggedInUserId, token,TicketId) { \r\n var url = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n }\r\n \r\n });\r\n }\r\n\r\n this.GetCancellationReasons = function (status, loggedInUserId,token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketCancelationReasonController/'+loggedInUserId+'/getCancellationReasons?AtStatus=' + status;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n // https://product.mymobiforce.com/coreapi/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=PullBack\r\n this.GetPullBacknReasons = function (loggedInUserId,token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + 'PullBack';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.PullBackTicketFromTechnician = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/PullBackTicketFromTechnician';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.UpdateJobServerCancel = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobServerCancel';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.CancelTicket = function(loggedInUserId,ticketId, token){\r\n var url = ApiURL + '/api/Ticket/CancelTicket?reqUserId='+loggedInUserId +'&TicketId='+ticketId;\r\n return $http.put(url,null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.CancelTicket = function(loggedInUserId,data, token){\r\n var url = ApiURL + '/api/Ticket/PullBackTicketFromTechnician';\r\n return $http.put(url,data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.TBCCancelationAudit = function(TBCCancelationModel,ticketId,loggedInUserId, token){\r\n var url = ApiURL + '/api/Ticket/UpdateJobAudit?TicketId='+ticketId +'&AuditValue='+TBCCancelationModel;\r\n return $http.put(url,null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.updateTicketSettlement = function (data, token, loggedInUserId, success, failure) {\r\n \r\n var url = ApiURL + \"/api/Ticket/setsettlementstatus\"\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.UpdateFollowUpReason = function(data,files, token, loggedInUserId, success, failure){ \r\n var formdata = new FormData();\t\t\r\n formdata.append(\"files\", files[0]);\t\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"ActivityModel\", followupdata);\r\n \r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token,'UserId': loggedInUserId }\r\n }).then(success, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n this.TicketFollowUpWithoutDoc = function(data, token, loggedInUserId, success, failure){ \r\n var formdata = new FormData();\t\t\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"ActivityModel\", followupdata);\r\n \r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token,'UserId': loggedInUserId }\r\n }).then(success, function(error){\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.getCustomerJobCardbyJobId = function(accountId, jobId, token ,success, failure){\r\n $http.get(ApiURL+\"/api/GetCustomerJobCardbyJobId/\"+jobId+\"/\"+accountId+\"/GetCustomerJobCardbyJobId\", {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': accountId\r\n }\r\n }).then(function(res){\r\n if(res && res.data && success){\r\n success(res.data);\r\n } else if(failure){\r\n failure();\r\n }\r\n });\r\n }\r\n\r\n this.AddSiteAuditwithAttachment = function(data, files, token, loggedinUser){ \r\n var formdata = new FormData();\t\t\r\n formdata.append(\"files\", files[0]);\t\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"AuditRequestModel\", followupdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/Upload/PostMediaFileWithAuditObject';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n }\r\n \r\n //https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/F00000000684/U400000000001/byUserIdWithJobCount\r\n\tthis.getFixedUserInfo = function(userId, loggedInUser, token){\r\n // var url = ApiURL + '/api/User/' + userId +'/byUserIdWithJobCount?reqUserId='+ loggedInUser ;\r\n\t var url = FreelancerURL + '/api/FreeLancerUser/' + userId +'/'+ loggedInUser+ '/'+ 'byUserIdWithJobCount' ;\r\n\t return $http.get(url,{\r\n\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\r\n\r\n //http://localhost:56749/api/CallPatching/F00000033807/NonExpireLeads/byUserIdStatusforCHDWithDynPaging?PageIndex=1&PageSize=10&OrderBy=broadcastAge&SortType=desc\r\n // https://product.mymobiforce.com/coreapi/api/Ticket/F00000000481/Total/byUserIdStatusforCHD?reqUserId=U00000000412\r\n this.getJobsByUserId=function(status,userId,loggedinUser, token,PageIndex,PageSize,OrderBy,SortType){\r\n //var url =ApiURL + \"/api/Ticket/\" +userId+\"/byUserId?reqUserId=\"+loggedinUser;\r\n var url =ApiURL + \"/api/CallPatching/\" +userId+ \"/\"+status+\"/byUserIdStatusforCHDWithDynPaging?\"+ 'PageIndex=' + PageIndex + '&PageSize=' + PageSize+ '&OrderBy=' + OrderBy + '&SortType=' + SortType;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, \r\n 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetFreelancerJobs = function(userId, loggedinUser, token){\r\n var url = FreelancerURL + '/api/FreelancerTicket/' + userId + '/' + loggedinUser + '/ByUserId'\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n\r\n this.ResolveException = function (loggedinUser,ticketId, token) {\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/MarkResolveSchedulerExceptionForTicket?reqUserId=' + loggedinUser; \r\n return $http.put(url, {'exceptionIdList':ticketId}, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n // https://product.mymobiforce.com/coreapi/api/Ticket/ConvertToNewFromBroadcasted?PullBackReason=No%20Technician%20Found&MoveSPDbyTwoDays=true\r\n this.ConvertJobIntoNew = function (MoveSPDbyTwoDays,PullBackReason,loggedinUser,ticketId, token) { \r\n var url = ApiURL + '/api/Ticket/ConvertToNewFromBroadcasted?PullBackReason=' + PullBackReason + '&MoveSPDbyTwoDays=' + MoveSPDbyTwoDays;\r\n return $http.post(url,ticketId, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n \r\n this.convertScheduleException = function (ticket,loggedinUser,token) { \r\n var url = SchedulingAPI + '/api/AutoSchedulerException/MarkTicketToScheduleException';\r\n return $http.put(url,ticket, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token , 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n this.AssignTicketsToSupervisor = function(ticketList,loggedinUser, token){\r\n var url = ApiURL + '/api/Ticket/AssignTicketManually'\r\n return $http.put(url,ticketList, {\r\n headers:{'Content-Type':'application/json','Token':token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n});\nangular.module('inspinia').controller('CentralHDManualAssignationController', function (CentralHDManualAssignationService,CentralHelpdeskConfigService,ReferService, ScheduleAssignService,$q, $log, $state, $localStorage,UIURL, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, uiCalendarConfig, ImageUrl, PublicApiURL,$window) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserSkill = $localStorage.loggedInUser_SkillSet;\r\n var loggedinUserRegion = $localStorage.loggedInUser_Region;\r\n var accountid= $localStorage.accountConfig.AccountId;\r\n \r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var token = $localStorage.token;\r\n vm.IsOpenBucketEnabled = $localStorage.IsOpenBucketEnabled;\r\n vm.IsAutoAssignToCHDteam = $localStorage.IsAutoAssignToCHDteam;\r\n vm.IsOpenBucketEnabled = $localStorage.IsOpenBucketEnabled;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.MobiforceCommission = vm.getAccountConfigSetting('MobiforceCommissionPercentage');\r\n vm.VendorAssignation = vm.getAccountConfigSetting('VendorAssignation');\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.FreelancerAccess = vm.getAccountConfigSetting('FreelancerAccess');\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n vm.TeamStatus = '';\r\n vm.NewJobs = [];\r\n vm.BroadcastedJobs = '';\r\n vm.Attendence = '';\r\n vm.JobProfile = '';\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.loggedinAs = $localStorage.loggedinAs;\r\n vm.skillsSearch = '';\r\n vm.locationSearch = '';\r\n vm.userlocation = '';\r\n vm.userskill = '';\r\n vm.UserAvailable='';\r\n vm.AttendenceForBid ='';\r\n vm.skillData = '';\r\n vm.applyUserFilter = '';\r\n vm.MoveSPDbyTwoDays = false;\r\n vm.filter = '';\r\n vm.circleData = '';\r\n vm.checkAll = '';\r\n vm.fixedUsers = '';\r\n vm.isChecked = \"fixed\";\r\n vm.freelancerUsers = '';\r\n vm.ticketaccount = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity ='';\r\n vm.ticketskill = '';\r\n vm.ticketstatus = '';\r\n vm.FreelancerVendorUsers = [];\r\n vm.VendorUsers = '';\r\n vm.selectedJob = '';\r\n vm.newJobselectAny = '';\r\n vm.fixed_selectAll = '';\r\n vm.searchText = \"\";\r\n vm.tab = '';\r\n vm.freelancerCheckAny = '';\r\n vm.filteredProperties = {};\r\n vm.filteredFreelancer = {};\r\n var GrossRate = 1.18;\r\n vm.selectsinglebidJob = '';\r\n vm.jobselected = [];\r\n vm.freelancer_selectAll = '';\r\n vm.supervisorList = '';\r\n vm.vendorList = [];\r\n vm.eventSources = [];\r\n vm.uiConfig = {};\r\n vm.AvailableUserData = '';\r\n vm.events = [];\r\n vm.UserAvailabilityData = '';\r\n vm.routebuttonDisable=false;\r\n vm.brodcastButtonDisable=false;\r\n vm.assignButtonDisable=false;\r\n vm.UserAvailabilityList = [\"Active\",\"MMFPrimeMember\",\"NoLead\",\"NonResponsive\",\"Offline\",\"OneJobDone\",\"Online\",\"Registered\"];\r\n var itemNames = '';\r\n var itemValues = '';\r\n var templateItemNames = '';\r\n var templateItemValues = '';\r\n var textItemNames = '';\r\n var textItemValues = '';\r\n var PageIndex = 1;\r\n var PageSize = 10; \r\n vm.SortType = 'desc';\r\n vm.SortField = 'CreatedOn';\r\n vm.IsSafetyAudit = 'Not Done'; \r\n vm.ratingwarning=\"\";\r\n vm.ticketListLength=0;\r\n vm.pageindexCount=0;\r\n vm.DateField=\"StatusChangedOn\";\r\n vm.searchStatusText=\"All\"; \r\n var uPageIndex = 1;\r\n var uPageSize = 10; \r\n var jPageIndex = 1;\r\n var jPageSize = 10; \r\n vm.UsersType=\"\";\r\n vm.uType=\"\";\r\n var uitemNames=\"\";\r\n vm.ComplianceDisable = true;\r\n var uitemValues=\"\";\r\n vm.searchUsersText=\"\";\r\n vm.TicketSelectedForAssistedSuggestion = \"\"\r\n vm.UserSuggestionList = [];\r\n vm.StoreUserSuggestionList = [];\r\n vm.UserSuggestionCount = '';\r\n vm.jobsCount='';\r\n vm.UserBIDCount = '';\r\n vm.showMode = 'nearBy';\r\n vm.ticketPageListCount = 10;\r\n vm.userPageListCount= 10;\r\n vm.suggestionPageListCount=10;\r\n vm.jobsPageListCount=10;\r\n vm.disableBroadcastButton = false;\r\n vm.disableBroadcastCloseButton = false;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.reasonsForFU = '';\r\n vm.reasonsForHold = ''; \r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = ''; \r\n vm.primaryHoldReason='';\r\n vm.primaryHoldRemark=''; \r\n vm.convertNewReasons = '';\r\n vm.convertNewReasonsRemark ='';\r\n vm.disableExceptionButton = false;\r\n vm.pullBackReasons =''; \r\n vm.pullBackReasonsRemark= '';\r\n vm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n //'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')]\r\n };\r\n\r\n var date = new Date();\r\n var d = date.getDate();\r\n var m = date.getMonth();\r\n var y = date.getFullYear(); \r\n vm.eventsF = function (start, end, timezone, callback) {\r\n var s = new Date(start).getTime() / 1000;\r\n var e = new Date(end).getTime() / 1000;\r\n var m = new Date(start).getMonth();\r\n var events = [{\r\n title: 'Feed Me ' + m,\r\n start: s + (50000),\r\n end: s + (100000),\r\n allDay: false,\r\n className: ['customFeed']\r\n }];\r\n callback(events);\r\n };\r\n\r\n //$scope.$parent.$parent.main.implementSelectItems('ticketList', this);\r\n\r\n\r\n vm.AutoBroadcastJobs = function(){\r\n vm.DisableBroadcastButtons(false); \r\n var ticketIds = ''; \r\n var count = 0; \r\n angular.forEach(vm.ticketList, function(d){\r\n if (d.checked) {\r\n count = count + 1;\r\n if(ticketIds == ''){\r\n ticketIds = d.TicketId;\r\n }\r\n else{\r\n ticketIds = ticketIds + \",\" + d.TicketId;\r\n } \r\n }\r\n })\r\n\r\n vm.confirmationMessage = 'Please confirm if you want to auto schedule ' + count + ' Jobs?';\r\n vm.autoBroadcastJobIds = ticketIds;\r\n confirmationModalInstance = $uibModal.open({\r\n templateUrl: 'auto_schedule_confirmation_model.html',\r\n scope: $scope,\r\n backdrop: 'static'\r\n });\r\n }\r\n\r\n vm.confirmationCloseModal = function () {\r\n vm.DisableBroadcastButtons(false); \r\n confirmationModalInstance.close();\r\n }\r\n\r\n\r\n vm.DisableBroadcastButtons = function (disable) {\r\n if(disable){\r\n vm.disableBroadcastButton = true;\r\n vm.disableBroadcastCloseButton = true;\r\n }\r\n else{\r\n vm.disableBroadcastButton = false;\r\n vm.disableBroadcastCloseButton = false;\r\n }\r\n }\r\n\r\n vm.AutoScheduleJobs = function () { \r\n vm.DisableBroadcastButtons(true);\r\n var data = {\r\n \"ticketIds\": vm.autoBroadcastJobIds\r\n } \r\n CentralHDManualAssignationService.AutoBroadcastAllNewJobsManualMode(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000); \r\n confirmationModalInstance.close(); \r\n vm.showSuccess(\"Success\", \"Jobs has been auto scheduled successfully\");\r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.DisableBroadcastButtons(false); \r\n confirmationModalInstance.close();\r\n }\r\n }, function () { \r\n });\r\n }\r\n\r\n CentralHDManualAssignationService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n CentralHDManualAssignationService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n \r\n vm.callToTechnician = function (userid) { \r\n CentralHDManualAssignationService.callToTechnicianApi(loggedinUser,userid, token).then(function (resp) {\r\n if(resp.status == 200) {\r\n vm.showSuccess(\"Success\",\"Call Initiated\")\r\n }\r\n else {\r\n vm.showFailure(\"Failure\",resp.data.Message)\r\n }\r\n \r\n });\r\n \r\n }\r\n vm.callToTechnicianInBroadcastState = function (userid,TicketId) { \r\n CentralHDManualAssignationService.callToTechnicianInBroadcastState(loggedinUser,userid,TicketId,token).then(function (resp) {\r\n if(resp.status == 200) {\r\n vm.showSuccess(\"Success\",\"Call Initiated\")\r\n }\r\n else {\r\n vm.showFailure(\"Failure\",resp.data.Message)\r\n }\r\n \r\n });\r\n \r\n}\r\n\r\n vm.getRejectHistory = function (ticketId) \r\n { \r\n CentralHDManualAssignationService.getRejectHistory(ticketId,loggedinUser,token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.getDetailsList=resp.data;\r\n openHistoryModel = $uibModal.open({\r\n templateUrl: 'openHistoryModel.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n }, function () {\r\n \r\n });\r\n } \r\n\r\n vm.CloseHistoryModel = function () {\r\n openHistoryModel.close();\r\n }\r\n\r\n //pull back\r\n vm.PullBackJobs = function(){\r\n var ticketIds = ''; \r\n var count = 0; \r\n angular.forEach(vm.ticketList, function(d){\r\n if (d.checked) {\r\n count = count + 1;\r\n if(ticketIds == ''){\r\n ticketIds = d.TicketId;\r\n }\r\n else{\r\n ticketIds = ticketIds + \",\" + d.TicketId;\r\n } \r\n }\r\n })\r\n vm.pullBackJobIds = ticketIds;\r\n vm.DisableBroadcastButtons(true);\r\n var JobIdsforPull = [];\r\n JobIdsforPull.push(vm.pullBackJobIds); \r\n CentralHDManualAssignationService.PullBackJob(loggedinUser, JobIdsforPull, token).then(function (resp) {\r\n if (resp.status == 202) { \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize); \r\n vm.showSuccess(\"Success\", \"Jobs - \" + vm.pullBackJobIds + \" pulledback succesfully\"); \r\n }, 1000); \r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableBroadcastButtons(false); \r\n }\r\n }, function () { \r\n });\r\n }\r\n\r\n /* alert on dayClick */\r\n vm.ev = {};\r\n vm.alertOnDayClick = function (date) {\r\n vm.alertMessage = (date.toString());\r\n vm.ev = {\r\n from: date.format('YYYY-MM-DD'),\r\n to: date.format('YYYY-MM-DD'),\r\n title: '',\r\n allDay: true\r\n };\r\n };\r\n\r\n /* alert on eventClick */\r\n vm.alertOnEventClick = function (date, jsEvent, view) {\r\n vm.alertMessage = (date.title);\r\n };\r\n /* alert on Drop */\r\n vm.alertOnDrop = function (event, delta, revertFunc, jsEvent, ui, view) {\r\n vm.alertMessage = ('Event Dropped to make dayDelta ' + delta);\r\n };\r\n /* alert on Resize */\r\n vm.alertOnResize = function (event, delta, revertFunc, jsEvent, ui, view) {\r\n vm.alertMessage = ('Event Resized to make dayDelta ' + delta);\r\n };\r\n /* add and removes an event source of choice */\r\n vm.addRemoveEventSource = function (sources, source) {\r\n var canAdd = 0;\r\n angular.forEach(sources, function (value, key) {\r\n if (sources[key] === source) {\r\n sources.splice(key, 1);\r\n canAdd = 1;\r\n }\r\n });\r\n if (canAdd === 0) {\r\n sources.push(source);\r\n }\r\n };\r\n /* add custom event*/\r\n vm.addEvent = function () {\r\n vm.events.push({\r\n title: $scope.ev.title,\r\n start: moment($scope.ev.from),\r\n end: moment($scope.ev.to),\r\n allDay: true,\r\n className: ['openSesame']\r\n });\r\n };\r\n /* remove event */\r\n /*$scope.remove = function (index) {\r\n $scope.events.splice(index, 1);\r\n };*/\r\n /* Change View */\r\n vm.changeView = function (view, calendar) {\r\n vm.currentView = view;\r\n uiCalendarConfig.calendars[calendar].fullCalendar('changeView', view);\r\n\r\n };\r\n /* Change View */\r\n vm.renderCalender = function (calendar) {\r\n $timeout(function () {\r\n if (uiCalendarConfig.calendars[calendar]) {\r\n uiCalendarConfig.calendars[calendar].fullCalendar('render');\r\n }\r\n });\r\n };\r\n /* Render Tooltip */\r\n $scope.eventRender = function (event, element, view) {\r\n element.attr({\r\n 'tooltip': event.title,\r\n 'uib-tooltip-append-to-body': true\r\n });\r\n $compile(element)($scope);\r\n };\r\n\r\n vm.currentView = 'month';\r\n\r\n /* config object */\r\n vm.uiConfig = {\r\n calendar: {\r\n height: 450,\r\n editable: false,\r\n displayEventTime: false,\r\n header: {\r\n left: 'title',\r\n center: 'myCustomButton',\r\n right: 'prev,next'\r\n },\r\n dayClick: vm.alertOnDayClick,\r\n eventClick: vm.alertOnEventClick,\r\n eventResize: vm.alertOnResize,\r\n eventRender: function (event, element, view) {\r\n element.attr({\r\n 'uib-tooltip': event.title,\r\n 'uib-tooltip-append-to-body': true\r\n });\r\n $compile(element)($scope);\r\n },\r\n businessHours: {\r\n start: '10:00', // a start time (10am in this example)\r\n end: '18:00', // an end time (6pm in this example)\r\n\r\n dow: [1, 2, 3, 4]\r\n // days of week. an array of zero-based day of week integers (0=Sunday)\r\n // (Monday-Thursday in this example)\r\n }\r\n }\r\n };\r\n\r\n vm.events = [];\r\n\r\n /* event sources array*/\r\n vm.eventSources = [vm.events, vm.eventsF];\r\n // vm.eventSources2 = [vm.calEventsExt, vm.eventsF, vm.events];\r\n\r\n //Availablity\r\n vm.Availibility = function (data) {\r\n vm.showAvailability = true;\r\n vm.AvailableUserData = data;\r\n vm.GetAssignedTicketforUser(data.UserId, loggedinUser, token)\r\n }\r\n\r\n vm.AvailibilityUS = function (data) {\r\n vm.showAvailability = true;\r\n vm.AvailableUserData = data;\r\n }\r\n\r\n vm.getAccounts = function () {\r\n CentralHelpdeskConfigService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data && resp.status==200) { \r\n vm.accounts = resp.data;\r\n } \r\n }, function () { \r\n });\r\n } \r\n vm.getAccounts();\r\n\r\n\r\n vm.DisableRouteBroadcastButtons = function (disable) {\r\n if(disable){\r\n vm.brodcastButtonDisable = true;\r\n vm.routebuttonDisable = true;\r\n }\r\n else{\r\n vm.brodcastButtonDisable = false;\r\n vm.routebuttonDisable = false;\r\n }\r\n }\r\n\r\n //Get new Jobs\r\n vm.GetNewJobs = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemName = \"Circle,SkillSet\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch;\r\n } else {\r\n var itemName = '';\r\n var itemValues = '';\r\n }\r\n\r\n if(loggedinUserSkill==\"VSAT\"){\r\n itemName+=\"Template\";\r\n itemValues+=\"VSAT CCR\";\r\n } else if(loggedinUserSkill==\"LeaseLine\"){\r\n itemName+=\"Template\";\r\n itemValues+=\"LeaseLine CCR\";\r\n }\r\n CentralHDManualAssignationService.GetTicketsByFilter(loggedinUser, itemName, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.NewJobs = resp.data;\r\n\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n var today = moment();\r\n //var date = moment(\"2015-05-13\", \"YYYY-MM-DD\");\r\n var date2 = vm.NewJobs[index].CreationDate;//moment(vm.NewJobs[index].CreationDate,'DD/MM/YYYY').format(\"YYYY-MM-DD\");\r\n // date2 = new Date(date2);\r\n\r\n var duration = today.diff(date2, 'days');\r\n // var hours = today.diff(date2,'hours');\r\n vm.NewJobs[index].Age = duration;\r\n \r\n }\r\n vm.selectAllNewJob = false;\r\n vm.showMinusNewJob = false;\r\n if(vm.IsMaterialDelivered){\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n if(vm.NewJobs[index].MetrialDeliverStatus =='Delivered'){\r\n vm.NewJobs[index].IsDissablePermision = false;\r\n }else{\r\n vm.NewJobs[index].IsDissablePermision = true;\r\n }\r\n \r\n }\r\n }\r\n\r\n } else {\r\n vm.NewJobs = '';\r\n //$log.log('vm.NewJobs', 'List Empty')\r\n }\r\n }\r\n })\r\n }\r\n vm.GetRejectedJobs = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemName = \"Ticket Status,Circle,SkillSet\";\r\n var itemValues = 'Rejected' + ',' + vm.locationSearch + ',' + vm.skillsSearch;\r\n } else {\r\n var itemName = 'Ticket Status';\r\n var itemValues = 'Rejected';\r\n }\r\n CentralHDManualAssignationService.GetTicketsByFilter(loggedinUser, itemName, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.NewJobs = resp.data;\r\n\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n var today = moment();\r\n //var date = moment(\"2015-05-13\", \"YYYY-MM-DD\");\r\n var date2 = vm.NewJobs[index].CreationDate;//moment(vm.NewJobs[index].CreationDate,'DD/MM/YYYY').format(\"YYYY-MM-DD\");\r\n // date2 = new Date(date2);\r\n\r\n var duration = today.diff(date2, 'days');\r\n // var hours = today.diff(date2,'hours');\r\n vm.NewJobs[index].Age = duration;\r\n }\r\n vm.selectAllNewJob = false;\r\n vm.showMinusNewJob = false;\r\n //$log.log('New TicketList',vm.NewJobs);\r\n\r\n } else {\r\n vm.NewJobs = '';\r\n //$log.log('vm.NewJobs', 'List Empty')\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n //Get all Active Fixed Users\r\n\r\n vm.GetAllActiveFixedUsers = function () {\r\n\r\n if (vm.loggedInUserRole == 'Administrator' || vm.loggedInUserRole == 'Project Manager' || vm.loggedinAs == 'Supervisor' || vm.loggedinAs == 'Vendor Supervisor' || vm.loggedInUserRole =='Help Desk') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n }\r\n if(vm.loggedInUserRole =='Help Desk') {\r\n itemNames+=\",SkillSet,SubRegion\";\r\n itemValues+=\",\"+loggedinUserSkill+\",\"+loggedinUserRegion;\r\n }\r\n\r\n CentralHDManualAssignationService.GetUsersByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('vm.fixedUsers', vm.fixedUsers);\r\n preprocessData(vm.fixedUsers);\r\n }\r\n })\r\n } else if (vm.loggedInUserRole == 'Vendor Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n }\r\n\r\n CentralHDManualAssignationService.GetUsersByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n preprocessData(vm.fixedUsers);\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.loadAllSkills = function(){\r\n CentralHDManualAssignationService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skillsWithPipe = '';\r\n if (resp && resp.data) {\r\n vm.skillData = resp.data;\r\n if(vm.skillData && vm.skillData.length>0){\r\n angular.forEach(vm.skillData, function(s){\r\n vm.skillsWithPipe += s.SkillName+\"|\";\r\n });\r\n vm.skillsWithPipe = vm.skillsWithPipe.length>0\r\n ? vm.skillsWithPipe.substring(0,vm.skillsWithPipe.length-1) : \"\";\r\n }\r\n }\r\n });\r\n }\r\n vm.loadAllSkills();\r\n\r\n\r\n vm.GetFollowupReasons = function(){\r\n CentralHDManualAssignationService.GetReasonsByStatus(loggedinUser, token, 'FollowUp').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForFU = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetFollowupReasons();\r\n\r\n vm.GetHoldReasons = function(){\r\n CentralHDManualAssignationService.GetReasonsByStatus(loggedinUser, token, 'Hold').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForHold = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetHoldReasons();\r\n\r\n //Get all Freelancers\r\n vm.GetAllFreelancers = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"UserStatus,Locations,SkillSet,Role\";\r\n var itemValues = \"Active\" + ',' + vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Field Engineer';\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n if(vm.skillsWithPipe && vm.skillsWithPipe.length>0){\r\n itemNames+=\",SkillSet\";\r\n itemValues+=\",\"+vm.skillsWithPipe;\r\n }\r\n }\r\n CentralHDManualAssignationService.GetAllFreelancersWithFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n // for(var i=0;i 0) {\r\n vm.FreelancerVendorUsers = resp.data;\r\n // for(var i=0;i 0) {\r\n CentralHDManualAssignationService.AssignTickets(userId, loggedinUser, itemValues, token).then(function (resp) {\r\n\r\n if (resp && resp.data && resp.data.ErrorCode == 140 && resp.data.Message) {\r\n if (mode == 'fixed') {\r\n vm.showFailure(\"Failed\", resp.data.Message + \". Please recharge your account.\");\r\n vm.assignButtonDisable = false;\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data.Message + \".\");\r\n vm.assignButtonDisable = false;\r\n }\r\n } else if (resp && resp.data && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Ticket assigned successfully\"); \r\n $timeout(function () {\r\n vm.applyTicketFilter();\r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n }, 1000);\r\n vm.assignButtonDisable = false;\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data); \r\n $timeout(function () {\r\n vm.applyTicketFilter();\r\n vm.applyUserFilter(); \r\n }, 1000);\r\n vm.assignButtonDisable = false;\r\n } else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n }\r\n\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs to assign\");\r\n vm.assignButtonDisable = false;\r\n }\r\n }\r\n\r\n //Assign Tickets\r\n vm.AssignTicketsToSupervisor = function (userId) {\r\n vm.assignButtonDisable = true;\r\n var itemValues = [];\r\n angular.forEach(vm.ticketList, function (d, k) {\r\n // if (d.TicketStatus==\"New\") {\r\n if (d.checked) {\r\n itemValues.push(d.TicketId);\r\n }\r\n // }\r\n })\r\n var data = {\r\n \"TicketIds\":itemValues,\r\n \"AssignToUserId\":userId\r\n }\r\n if (itemValues.length > 0) {\r\n CentralHDManualAssignationService.AssignTicketsToSupervisor(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Ticket assigned successfully\"); \r\n $timeout(function () {\r\n vm.applyTicketFilter();\r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n }, 1000);\r\n vm.assignButtonDisable = false;\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data); \r\n $timeout(function () {\r\n vm.applyTicketFilter();\r\n vm.applyUserFilter(); \r\n }, 1000);\r\n vm.assignButtonDisable = false;\r\n } else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n }\r\n\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs to assign\");\r\n vm.assignButtonDisable = false;\r\n }\r\n }\r\n //Get Broadcasted Jobs\r\n vm.GetBroadcastedJobs = function () {\r\n\r\n // ManualAssignationService.GetTicketsByFilter(loggedinUser,\"Ticket Status\",\"Broadcasted\").then(function(resp){\r\n\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemName = \"Ticket Status,Circle,SkillSet\";\r\n var itemValues = 'Broadcasted' + ',' + vm.locationSearch + ',' + vm.skillsSearch;\r\n } else {\r\n var itemName = 'Ticket Status';\r\n var itemValues = 'Broadcasted';\r\n }\r\n\r\n CentralHDManualAssignationService.GetBroadcastedBids(loggedinUser, itemName, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n for (var index = 0; index < vm.BroadcastedJobs.length; index++) {\r\n vm.time = vm.BroadcastedJobs[index].BIDDuration;\r\n //$log.log(\"BidDuration: \",vm.time);\r\n var hr = parseInt(vm.time / 60);\r\n var min = vm.time % 60;\r\n vm.BroadcastedJobs[index].BIDDuration = hr + \":\" + min;\r\n }\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n }\r\n\r\n \r\n\r\n vm.toggleAll = function () {\r\n //$log.log('checkAll', vm.checkAll);\r\n var bool = true;\r\n if (vm.checkAll) {\r\n bool = false;\r\n }\r\n angular.forEach(vm.NewJobs, function (v, k) {\r\n // //$log.log('v',v);\r\n // //$log.log('k',k);\r\n v.checked = !bool;\r\n // //$log.log('!bool', v.checked);\r\n vm.checkAll = !bool;\r\n });\r\n }\r\n\r\n vm.checkAny = function (i) {\r\n //$log.log('newJobselectAny', vm.newJobselectAny);\r\n vm.checkAll = true;\r\n angular.forEach(vm.NewJobs, function (v, k) {\r\n\r\n if (!v.checked) {\r\n vm.checkAll = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n vm.showCheckAny = function (i) {\r\n vm.showMinus = true;\r\n angular.forEach(vm.freelancerCheckAny, function (v, k) {\r\n if (v != true && k == vm.freelancerCheckAny[i]) {\r\n vm.showMinus = false;\r\n } else {\r\n vm.showMinus = true;\r\n }\r\n });\r\n }\r\n\r\n vm.GetTicketById = function (ticketId) {\r\n CentralHDManualAssignationService.GetTicketsById(ticketId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.JobProfile = resp.data;\r\n }\r\n })\r\n }\r\n\r\n //Advance Search\r\n vm.SearchModal = {};\r\n vm.AdvanceSearch = function () {\r\n vm.SearchModal = $uibModal.open({\r\n templateUrl: 'AssignFilter.html',\r\n backdrop: 'static',\r\n scope: $scope\r\n });\r\n //Load All Skills\r\n if (vm.skillData.length==0) {\r\n CentralHDManualAssignationService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.skillData = resp.data;\r\n }\r\n })\r\n } \r\n }\r\n vm.removeFilters = function () {\r\n if (vm.isChecked == 'fixed') {\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n\r\n CentralHDManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n CentralHDManualAssignationService.GetUsersByFilter(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('fixedUsers', resp.data);\r\n preprocessData(vm.fixedUsers);\r\n } else {\r\n vm.fixedUsers = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get users, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'freelancer') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n CentralHDManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n } else if(vm.skillsWithPipe && vm.skillsWithPipe.length>0){\r\n teamIteamNames+=\",SkillSet\";\r\n teamIteamValues+=vm.skillsWithPipe;\r\n }\r\n CentralHDManualAssignationService.GetAllFreelancersWithFilters(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n //$log.log('freelancers', vm.freelancerUsers);\r\n preprocessData(vm.freelancerUsers);\r\n } else {\r\n vm.freelancerUsers = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get freelancers, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get freelancers, server is not responding correctly.\");\r\n });\r\n\r\n var broadItemNames = 'Circle,SkillSet,TicketStatus';\r\n var broadItemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Broadcasted';\r\n\r\n CentralHDManualAssignationService.GetBroadcastedBids(loggedinUser, broadItemNames, broadItemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'vendor') {\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n\r\n CentralHDManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n CentralHDManualAssignationService.GetAllVendors(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.vendorList = resp.data;\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get vendors, server is not responding correctly.\");\r\n })\r\n\r\n } else if (vm.isChecked == 'supervisor') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n CentralHDManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"UserStatus\";\r\n var teamIteamValues = 'Active';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n CentralHDManualAssignationService.GetUsersByRole(loggedinUser, 'Supervisor', teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data.length > 0) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n } else {\r\n vm.supervisorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get supervisors, server is not responding correctly.\");\r\n });\r\n }\r\n }\r\n\r\n //To Search\r\n vm.search = function () {\r\n if (vm.searchform.$valid) {\r\n if (vm.isChecked == 'fixed') {\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n CentralHDManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n CentralHDManualAssignationService.GetUsersByFilter(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('fixedUsers', resp.data);\r\n preprocessData(vm.fixedUsers);\r\n } else {\r\n vm.fixedUsers = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n })\r\n } else if (vm.isChecked == 'freelancer') {\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n CentralHDManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n CentralHDManualAssignationService.GetAllFreelancersWithFilters(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n //$log.log('freelancers', vm.freelancerUsers);\r\n preprocessData(vm.freelancerUsers);\r\n } else {\r\n vm.freelancerUsers = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n });\r\n\r\n var broadItemNames = 'Circle,SkillSet,TicketStatus';\r\n var broadItemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Broadcasted';\r\n CentralHDManualAssignationService.GetBroadcastedBids(loggedinUser, broadItemNames, broadItemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'vendor') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n\r\n CentralHDManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n CentralHDManualAssignationService.GetAllVendors(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.vendorList = resp.data;\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get vendors, server is not responding correctly.\");\r\n });\r\n\r\n } else if (vm.isChecked == 'supervisor') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n CentralHDManualAssignationService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get supervisors, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n CentralHDManualAssignationService.GetUsersByRole(loggedinUser, 'Supervisor', teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data.length > 0) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n } else {\r\n vm.supervisorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get users, server is not responding correctly.\");\r\n })\r\n\r\n }\r\n vm.SearchModal.close();\r\n } else {\r\n vm.searchform.submitted = true;\r\n }\r\n\r\n\r\n }\r\n\r\n \r\n vm.tabNo = function (tab) {\r\n vm.tab = tab;\r\n //$log.log('TabNo', vm.tab);\r\n }\r\n\r\n vm.CloseAdvanceSearchModal = function () {\r\n vm.locationSearch = '';\r\n vm.skillsSearch = '';\r\n vm.SearchModal.close();\r\n }\r\n\r\n vm.ChangeMode = function (mode) {\r\n vm.tabNo('1');\r\n if (mode == 'fixed') {\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties={\"SkillSet\":\"Water Sample Collection\"};\r\n } \r\n vm.GetAllActiveFixedUsers();\r\n\r\n } else if (mode == 'freelancer') {\r\n // vm.GetBroadcastedJobs();\r\n vm.GetAllFreelancers();\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n vm.freelancer_select_all = false;\r\n vm.freelancer_selectAll = false;\r\n vm.freelancer_SelectAllJob = false;\r\n vm.freelancer_Select_All_NewJobs = false;\r\n\r\n\r\n } else if (mode == 'FixedVendors') {\r\n vm.GetAllVendors();\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties={\"SkillSet\":\"Water Lab Test\"};\r\n }\r\n } else if (mode == 'vendor') {\r\n // vm.GetBroadcastedJobs();\r\n vm.GetAllFreelancerVendors();\r\n vm.Vendor_selectedItems = [];\r\n vm.Vendor_select_single = [];\r\n vm.Vendor_NewJobSelectedItems = [];\r\n vm.Vendor_select_single_NewJob = [];\r\n vm.Vendor_select_all = false;\r\n vm.Vendor_selectAll = false;\r\n vm.Vendor_SelectAllJob = false;\r\n vm.Vendor_Select_All_NewJobs = false;\r\n\r\n\r\n }\r\n else if (mode == 'supervisor') {\r\n vm.GetUsersByRole('Supervisor');\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties = {\"SkillSet\":\"Water Lab Test\"};\r\n }\r\n }\r\n }\r\n vm.ChangeMode('fixed');\r\n\r\n\r\n //Get Users By Role\r\n\r\n vm.GetUsersByRole = function (role) {\r\n\r\n if (vm.loggedInUserRole == 'Administrator' || vm.loggedInUserRole == 'Project Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active\";\r\n }\r\n } else if (vm.loggedinAs == 'Supervisor' || vm.loggedinAs == 'Vendor Supervisor') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus,ReportingTo\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + vm.loggedInUserReportingTo;\r\n } else {\r\n var itemNames = \"UserStatus,ReportingTo\";\r\n var itemValues = \"Active,\" + vm.loggedInUserReportingTo;\r\n }\r\n } else if (vm.loggedInUserRole == 'Vendor Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active,\";\r\n }\r\n }\r\n else if (vm.loggedInUserRole == 'Help Desk') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active,\";\r\n }\r\n }\r\n\r\n CentralHDManualAssignationService.GetUsersByRole(loggedinUser, role, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n }\r\n })\r\n\r\n }\r\n\r\n vm.processBroadcastRouteResponse= function(data){\r\n var SuccessCount = 0;\r\n var failuremsg = '';\r\n\r\n angular.forEach(data, function (res) {\r\n if (res.BroadcastStatus=='Success') {\r\n SuccessCount = SuccessCount + 1; \r\n }\r\n else\r\n {\r\n failuremsg = failuremsg + res.JobId + ' ' + res.BroadcastStatus + ' ';\r\n }\r\n });\r\n\r\n if(SuccessCount > 0 && failuremsg)\r\n {\r\n failuremsg = SuccessCount + ' Jobs routed Successfully ' + failuremsg;\r\n vm.showFailure('Failed',failuremsg);\r\n }\r\n else if(SuccessCount > 0)\r\n {\r\n failuremsg = SuccessCount + ' Jobs routed Successfully ';\r\n vm.showSuccess('Success',failuremsg);\r\n }\r\n else\r\n {\r\n vm.showFailure('Failed',failuremsg);\r\n }\r\n }\r\n\r\n //vm.tabNo('1');\r\n // Route Jobs\r\n vm.routeTicket = function(index){\r\n vm.DisableRouteBroadcastButtons(true);\r\n var data = {};\r\n for(var i=0; i< vm.ticketList.length;i++){\r\n if(vm.ticketList[i].TicketStatus==\"New\")\r\n {\r\n if(vm.ticketList[i].checked){\r\n if(i==0){\r\n data.JobIds = vm.ticketList[i].TicketId;\r\n }else{\r\n data.JobIds = data.JobIds + ',' + vm.ticketList[i].TicketId;\r\n }\r\n }\r\n }\r\n } \r\n for(var i=0; i< vm.UserByFiltersList.length;i++){\r\n if(vm.UserByFiltersList[i].checked){\r\n data.UserId = vm.UserByFiltersList[i].UserId;\r\n break;\r\n }\r\n }\r\n\t\t\t if(data.JobIds){\r\n CentralHDManualAssignationService.RouteJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 201) {\r\n vm.processBroadcastRouteResponse(resp.data);\t\t \r\n\t\t\t\t\t $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n vm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t }, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t });\r\n\t\t\t }else{\r\n\t\t\t\t vm.showFailure(\"Failed\", \"Please select tickets.\");\r\n vm.DisableRouteBroadcastButtons(false);\r\n\t\t\t }\r\n\t\t\t\r\n\t\t}\r\n\r\n // Route Jobs for user Suggestion\r\n vm.routeTicketUS = function (user) { \r\n vm.DisableRouteBroadcastButtons(true);\r\n var data = user; //vm.UserSuggestionList[0];\r\n var temp = [];\r\n temp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n var data = {\r\n \"JobId\": vm.broadcastTicketId,\r\n \"BIDDuration\": vm.TicketSelectedForAssistedSuggestion.BidDuration,\r\n \"MobiforceCommissionPercentage\": vm.TicketSelectedForAssistedSuggestion.MobiforceCommission,\r\n \"BroadcastType\": \"Route\",\r\n \"TechnicianSource\": 1,\r\n \"Users\": temp\r\n };\r\n if (data.Users.length > 0) {\r\n vm.showloading = true;\r\n CentralHDManualAssignationService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n \r\n if (resp.status == 201) {\r\n vm.showSuccess('Success', \"Jobs Route Successfully\");\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure('Failed', resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Users Not Found\");\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n vm.showloading = false;\r\n });\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select users.\");\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n \r\n }\r\n\r\n //brodcast ticket nearBy\r\n vm.BroadcastTicketUserSuggestion = function (i) {\r\n //vm.dissbleBroadcastButton = true;\r\n vm.DisableRouteBroadcastButtons(true);\r\n var temp = [];\r\n angular.forEach(vm.UserSuggestionList, function(d){\r\n if (d.checked) {\r\n temp.push({ \"UserId\": d.id, \"SuggestedPrice\": null, \"Price\": parseInt(d.Price), \"Distance\": parseInt(d.UserDistance) });\r\n \r\n }\r\n })\r\n var data = {\r\n \"JobId\": vm.broadcastTicketId,\r\n \"BIDDuration\": vm.TicketSelectedForAssistedSuggestion.BidDuration,\r\n \"MobiforceCommissionPercentage\": vm.TicketSelectedForAssistedSuggestion.MobiforceCommission,\r\n \"TechnicianSource\": 1,\r\n \"Users\": temp\r\n };\r\n if (data.Users.length > 0) {\r\n CentralHDManualAssignationService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.BroadcastStatus);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n });\r\n } \r\n else {\r\n vm.showFailure(\"Failed\", resp.data.BroadcastStatus);\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n }\r\n\r\n\r\n // Route Jobs\r\n vm.routeTicketToFV = function(index){\r\n var data = {};\r\n for(var i=0; i< vm.NewJobs.length;i++){\r\n if(vm.NewJobs[i].checked){\r\n if(i==0){\r\n data.JobIds = vm.NewJobs[i].TicketId;\r\n }else{\r\n data.JobIds = data.JobIds + ',' + vm.NewJobs[i].TicketId;\r\n }\r\n }\r\n }\r\n for(var i=0; i< vm.FreelancerVendorUsers.length;i++){\r\n if(vm.FreelancerVendorUsers[i].checked){\r\n data.UserId = vm.FreelancerVendorUsers[i].UserId;\r\n break;\r\n }\r\n }\r\n\r\n if(data.JobIds){\r\n CentralHDManualAssignationService.RouteJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess('Success',\"Jobs Route Successfully\");\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Server error.\");\r\n }\r\n });\r\n }else{\r\n vm.showFailure(\"Failed\", \"Please select tickets.\");\r\n }\r\n \r\n }\r\n\r\n //Broadcast Bids/Jobs\r\n vm.BroadCastJobs = function () {\r\n vm.DisableRouteBroadcastButtons(true);\r\n var BidData = [];\r\n angular.forEach(vm.ticketList, function (d) {\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n if(d.TicketStatus==\"New\")\r\n {\r\n if (d.checked) {\r\n obj.JobID = d.TicketId;\r\n var time = d.BidDuration.split(':');\r\n var hrs = parseInt(time[0]);\r\n var min = parseInt(time[1]);\r\n obj.BIDDuration = hrs*60 + min;\r\n obj.BroadCastRate = d.BroadcastRate\r\n obj.BroadCastGrossRate = d.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = d.MobiforceCommission\r\n obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n }\r\n }\r\n })\r\n var UserData = [];\r\n\r\n for(var i=0; i< vm.UserByFiltersList.length;i++){\r\n if(vm.UserByFiltersList[i].checked){\r\n UserData.push(vm.UserByFiltersList[i].UserId); \r\n }\r\n }\r\n\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"Bids\": BidData,\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModal.close();\r\n\r\n CentralHDManualAssignationService.BroadCastJobs(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.processBroadcastRouteResponse(resp.data);\r\n //vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n //toaster.pop(vm.toaster_success);\r\n vm.free_NewJobSelectedItems = [];\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n }\r\n \r\n\r\n vm.BroadCastJobsFV = function () {\r\n\r\n var BidData = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n if (d.checked) {\r\n obj.JobID = d.TicketId;\r\n var time = d.BidDuration.split(':');\r\n var hrs = parseInt(time[0]);\r\n var min = parseInt(time[1]);\r\n obj.BIDDuration = hrs*60 + min;\r\n obj.BroadCastRate = d.BroadcastRate\r\n obj.BroadCastGrossRate = d.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = d.MobiforceCommission\r\n obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n }\r\n })\r\n var UserData = [];\r\n /*angular.forEach(vm.FreelancerVendorUsers, function (d) {\r\n if (d.checked) {\r\n UserData.push(d.UserId);\r\n }\r\n });*/\r\n\r\n for(var i=0; i< vm.FreelancerVendorUsers.length;i++){\r\n if(vm.FreelancerVendorUsers[i].checked){\r\n UserData.push(vm.FreelancerVendorUsers[i].UserId); \r\n }\r\n }\r\n\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"Bids\": BidData,\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModalFV.close();\r\n\r\n CentralHDManualAssignationService.BroadCastJobs(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n toaster.pop(vm.toaster_success);\r\n vm.free_NewJobSelectedItems = [];\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n }\r\n }\r\n\r\n\r\n\r\nvm.AssignReceivedBid = function(user){ \r\nvm.AllDataList =[];\r\nvar data ={\r\n \"TicketId\": vm.broadcastTicketId,\r\n \"UserId\": user.UserId,\r\n \"StartTime\":vm.broadcaststartTime,\r\n \"Endtime\": vm.broadcastEndTime,\r\n \"SuggestedPrice\": 0,\r\n \"AssignPrice\": parseInt(vm.broadcastAssignRate),\r\n \"Distance\": 0,\r\n}\r\nvm.AllDataList.push(data)\r\n ScheduleAssignService.AssignTicketsTimeline(loggedinUser,vm.AllDataList,token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.ChangeMode('freelancer');\r\n vm.BidReceivedJobs = [];\r\n\r\n $timeout(function () {\r\n vm.GetBroadcastedJobs();\r\n vm.closeSendAndRecieveBid();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1500);\r\n }\r\n }, function (err) {\r\n if (err && err.data) {\r\n vm.showFailure(\"Failed\", err.data);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to assign job, server is not responding correctly.\");\r\n }\r\n })\r\n}\r\n\r\n\r\n\r\n\r\n //Get Bid Received\r\n\r\n vm.BidReceived = function (ticket) { \r\n document.getElementById(\"SendAndRecieveBid\").style.width = \"42%\";\r\n var status = 'Received';\r\n vm.bidStatus = status;\r\n vm.broadcastTicketId = ticket.TicketId;\r\n vm.broadcastLinkId = ticket.LinkId;\r\n vm.broadcaststartTime = ticket.StartTimeD;\r\n vm.broadcastEndTime = ticket.EndTime;\r\n //vm.broadcastAssignRate = ticket.JobAssignRate;\r\n vm.isReceived = true;\r\n vm.BIDMaxcount = 10; \r\n vm.BIDStartIndex = 0;\r\n CentralHDManualAssignationService.GetBidReceivedByStatus(loggedinUser, vm.broadcastTicketId, status, token).then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.BidReceivedJobs = resp.data;\r\n vm.UserBIDCount = vm.BidReceivedJobs.length;\r\n $scope.totalUserBID = vm.UserBIDCount; \r\n $scope.UserBIDpagination = {\r\n current: 1\r\n };\r\n angular.forEach(vm.BidReceivedJobs, function (user) {\r\n\r\n user.ratingStars = vm.getRatingStars(user.UserRating);\r\n user.blankStars = vm.getBlankStars(user.UserRating);\r\n user.exp = user.Experience > 0 ? parseFloat(user.UserExperience / 365).toFixed(1) : 0;\r\n })\r\n for(var i=0;i 0 ? parseFloat(user.UserExperience / 365).toFixed(1) : 0;\r\n })\r\n // for(var i=0;i 0 ? parseFloat(user.UserExperience / 365).toFixed(1) : 0; \r\n })\r\n for(var i=0;ilTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [1, 'asc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n //DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable()\r\n ];\r\n\r\n //Global Calling\r\n //vm.GetNewJobs();\r\n vm.GetAllActiveFixedUsers();\r\n //$log.log('isChecked', vm.isChecked);\r\n\r\n vm.openBroadcastmodal = function (i) {\r\n vm.broadcastError = null; \r\n vm.jobselected = [];\r\n angular.forEach(vm.ticketList, function (d) {\r\n if(d.TicketStatus==\"New\")\r\n {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n \r\n vm.jobselected.push(d);\r\n $log.log(d)\r\n }\r\n }\r\n });\r\n \r\n if (vm.jobselected.length > 0) {\r\n vm.BroadcastModal = $uibModal.open({\r\n templateUrl: 'Broadcast.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n else\r\n {\r\n vm.showFailure(\"Failed\", \"Please select jobs\"); \r\n vm.broadcastError = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n vm.closeModal = function () {\r\n vm.BroadcastModal.close();\r\n }\r\n\r\n vm.openBroadcastmodalforFV = function (i) {\r\n vm.broadcastErrorFV = null; \r\n vm.jobselectedFV = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n vm.jobselectedFV.push(d);\r\n $log.log(d)\r\n }\r\n });\r\n if (vm.jobselectedFV.length > 0) {\r\n vm.BroadcastModalFV = $uibModal.open({\r\n templateUrl: 'BroadcastFV.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n } else {\r\n vm.broadcastErrorFV = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n\r\n vm.OpenBroadcastModelToFV = function (i) {\r\n vm.broadcastErrorFV = null; \r\n vm.jobselectedFV = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n vm.jobselectedFV.push(d);\r\n $log.log(d)\r\n }\r\n });\r\n if (vm.jobselectedFV.length > 0) {\r\n vm.BroadcastModalFV = $uibModal.open({\r\n templateUrl: 'BroadcastFV.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n } else {\r\n vm.broadcastErrorFV = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n vm.closeModalFV = function () {\r\n vm.BroadcastModalFV.close();\r\n }\r\n\r\n vm.GetAllVendors = function () {\r\n vm.vendorList = [];\r\n var itemNames = \"\";\r\n var itemValues = \"\";\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n itemNames = \"VendorLocations,VendorSkillsets,VendorStatus\";\r\n itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n itemNames = \"VendorStatus\";\r\n itemValues = \"Active\";\r\n }\r\n if (vm.loggedInUserRole == 'Help Desk') {\r\n itemNames += \",VendorSkillsets\";\r\n itemValues += \",\"+ loggedinUserSkill; \r\n }\r\n\r\n // GetAllVendors\r\n CentralHDManualAssignationService.GetFixedVendorsByFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n angular.forEach(resp.data, function(vendor){\r\n if (vendor.UserId !=loggedinUser) {\r\n vm.vendorList.push(vendor);\r\n }\r\n })\r\n //vm.vendorList = resp.data;\r\n preprocessData(vm.vendorList);\r\n // $log.log('vendors', vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n })\r\n }\r\n\r\n //Implementation of Checkboxes for all tables\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n vm.selectAllCheckboxes = function (mode, table) {\r\n if (mode == 'fixed' && table == 'fixed_NewJob') {\r\n if (vm.fixed_selectAll) {\r\n angular.forEach(vm.NewJobs, function (item) {\r\n idx = vm.selectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.fixed_select_all = true;\r\n vm.selectedItems.push(item);\r\n vm.fixed_select_single.push(\"true\");\r\n }\r\n })\r\n\r\n } else {\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n }\r\n\r\n //$log.log('selectedItems', vm.selectedItems);\r\n } else if (mode == 'freelancer' && table == 'freelancer_users') {\r\n if (vm.freelancer_selectAll) {\r\n angular.forEach(vm.freelancerUsers, function (item) {\r\n idx = vm.free_selectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.freelancer_select_all = true;\r\n vm.free_selectedItems.push(item);\r\n vm.freelancer_select_single.push(\"true\");\r\n }\r\n })\r\n } else {\r\n vm.freelancer_select_all = false;\r\n vm.freelacer_selectAll = false;\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n }\r\n\r\n } else if (mode == 'freelancer' && table == 'freelancer_NewJob') {\r\n if (vm.freelancer_SelectAllJobs) {\r\n angular.forEach(vm.NewJobs, function (item) {\r\n idx = vm.free_NewJobSelectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.freelancer_Select_All_NewJobs = true;\r\n vm.free_NewJobSelectedItems.push(item);\r\n vm.freelancer_select_single_NewJob.push(\"true\");\r\n }\r\n })\r\n } else {\r\n vm.freelancer_Select_All_NewJobs = false;\r\n vm.freelancer_SelectAllJobs = false;\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n }\r\n }\r\n }\r\n\r\n function preprocessData(users) {\r\n if (users && users.length > 0) {\r\n angular.forEach(users, function (user) {\r\n user.locationCount = user.Locations && user.Locations.length > 0 ? user.Locations.length : 0;\r\n user.locationToolTip = \"\";\r\n if (user.locationCount > 0) {\r\n angular.forEach(user.Locations, function (loc) {\r\n user.locationToolTip += loc + \",\";\r\n })\r\n user.locationToolTip = user.locationToolTip.substr(0, user.locationToolTip.length - 1);\r\n }\r\n\r\n user.SkillSetCount = user.SkillSet && user.SkillSet.length > 0 ? user.SkillSet.length : 0;\r\n user.SkillSetToolTip = \"\";\r\n if (user.SkillSetCount > 0) {\r\n angular.forEach(user.SkillSet, function (s) {\r\n user.SkillSetToolTip += s + \",\";\r\n })\r\n user.SkillSetToolTip = user.SkillSetToolTip.substr(0, user.SkillSetToolTip.length - 1);\r\n }\r\n\r\n user.VendorLocationsCount = user.VendorLocations && user.VendorLocations.length > 0 ? user.VendorLocations.length : 0;\r\n user.VendorLocationsToolTip = \"\";\r\n if (user.VendorLocationsCount > 0) {\r\n angular.forEach(user.VendorLocations, function (loc) {\r\n user.VendorLocationsToolTip += loc + \",\";\r\n })\r\n user.VendorLocationsToolTip = user.VendorLocationsToolTip.substr(0, user.VendorLocationsToolTip.length - 1);\r\n }\r\n\r\n user.VendorSkillsetsCount = user.VendorSkillsets && user.VendorSkillsets.length > 0 ? user.VendorSkillsets.length : 0;\r\n user.VendorSkillsetsToolTip = \"\";\r\n if (user.VendorSkillsetsCount > 0) {\r\n angular.forEach(user.VendorSkillsets, function (s) {\r\n user.VendorSkillsetsToolTip += s + \",\";\r\n })\r\n user.VendorSkillsetsToolTip = user.VendorSkillsetsToolTip.substr(0, user.VendorSkillsetsToolTip.length - 1);\r\n }\r\n user.ratingStars = vm.getRatingStars(Math.round(user.Ratings));\r\n user.blankStars = vm.getBlankStars(Math.round(user.Ratings));\r\n user.exp = user.Experience > 0 ? parseFloat(user.Experience / 365).toFixed(1) : 0;\r\n user.checked = false;\r\n });\r\n }\r\n }\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n vm.implementSelectItemsNewJob = function (itemList, scope) {\r\n scope.selectAllNewJob = false;\r\n scope.showMinusNewJob = false;\r\n scope.AutoBroadcastedOnce = true;\r\n scope.selectRowNewJob = function (i) {\r\n scope.showMinusNewJob = false;\r\n scope.selectAllNewJob = false;\r\n scope.AutoBroadcastedOnce = true;\r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n scope.showMinusNewJob = true;\r\n if(!d.ShowManualBroadcast){\r\n scope.AutoBroadcastedOnce = d.ShowManualBroadcast;\r\n }\r\n }\r\n });\r\n }\r\n scope.applyAllNewJobSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllNewJob;\r\n });\r\n }\r\n\r\n scope.resetAllSelect = function () {\r\n scope.selectAllNewJob = false;\r\n scope.showMinusNewJob = false;\r\n }\r\n }\r\n\r\n vm.implementSelectItemsNewJob('ticketList', this);\r\n\r\n vm.implementSelectItemsFL = function (itemList, scope) {\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n scope.selectRowFL = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.selectCountFL = 0;\r\n scope.showMinusFL = false;\r\n scope.selectAllFL = false;\r\n angular.forEach(vm.UserByFiltersList, function (d) {\r\n // //$log.log(d);\r\n if (d.checked) {\r\n scope.showMinusFL = true;\r\n scope.selectCountFL++;\r\n }\r\n });\r\n }\r\n scope.applyAllFLSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllFL;\r\n scope.selectCountFL++;\r\n });\r\n }\r\n }\r\n \r\n //\r\n vm.ResetUserSelection = function (scope){\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n }\r\n vm.implementSelectItemsFL('UserByFiltersList', this);\r\n\r\n\r\n //userSuggestion list\r\n vm.implementSelectItemsUS = function (itemList, scope) {\r\n scope.selectAllUS = false;\r\n scope.showMinusUS = false;\r\n scope.selectCountUS = 0;\r\n scope.selectRowUS = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.selectCountUS = 0;\r\n scope.showMinusUS = false;\r\n scope.selectAllUS = false;\r\n angular.forEach(vm.UserSuggestionList, function (d) {\r\n // //$log.log(d);\r\n if (d.checked) {\r\n scope.showMinusUS = true;\r\n scope.selectCountUS++;\r\n }\r\n });\r\n }\r\n scope.applyAllFLSelectUS = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllUS;\r\n scope.selectCountUS++;\r\n });\r\n }\r\n }\r\n //\r\n vm.ResetUserSelectionUS = function (scope){\r\n scope.selectAllUS = false;\r\n scope.showMinusUS = false;\r\n scope.selectCountUS = 0;\r\n }\r\n\r\n vm.implementSelectItemsUS('UserSuggestionList', this);\r\n\r\n\r\n if(vm.loggedInUserRole == \"Dispatch Supervisor\" || vm.loggedInUserRole == \"OnBoarding Supervisor\")\r\n {\r\n vm.statusList=[\"Broadcasted\", \"New\",\"Hold\", \"ReadyToAssign\", \"Rejected\",\"AssignedNoAction\", \"ScheduleException\",\"AddressException\",\"PriceException\"];\r\n }\r\n else\r\n {\r\n vm.statusList=[\"Broadcasted\", \"New\",\"Hold\", \"ReadyToAssign\", \"Rejected\", \"AssignedToTeam\",\"AssignedToTeamAll\",\"AssignedNoAction\", \"ScheduleException\",\"AddressException\",\"PriceException\"];\r\n }\r\n\r\n if(vm.loggedInUserRole == \"Dispatch Supervisor\" || vm.loggedInUserRole == \"OnBoarding Supervisor\")\r\n {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\"];\r\n }\r\n else\r\n {\r\n if(vm.loggedInUserRole == \"Dispatch Manager\"){\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Dispatch Supervisor\", \"Private\",\"Freelancer Dispatcher\",\"Dispatch Team Lead\"];\r\n }\r\n else if(vm.loggedInUserRole == \"OnBoarding Manager\"){\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"OnBoarding Supervisor\", \"Private\"];\r\n }\r\n else if(vm.loggedInUserRole == \"Dispatch Team Lead\"){\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Freelancer Dispatcher\", \"Private\", \"Dispatch Supervisor\"];\r\n }\r\n \r\n }\r\n \r\n vm.getJobAllStatus = function () {\r\n CentralHDManualAssignationService.getJobAllStatus(loggedinUser, token, function (data) { \r\n angular.forEach(data, function (status) {\r\n if (status.StatusName == 'On Hold') {\r\n status.StatusName = 'Hold'; \r\n }\r\n vm.statusList.push(status.StatusName); \r\n }) \r\n }, vm.showFailure);\r\n }\r\n //vm.getJobAllStatus();\r\n \r\n $scope.slideAssistedSuggestion = function(){ \r\n document.getElementById(\"assistedSuggestion\").style.width = \"25%\";\r\n }\r\n vm.closeAssistedSuggestion = function(){ \r\n document.getElementById(\"assistedSuggestion\").style.width = \"0%\";\r\n }\r\n vm.closeFLprofile = function(){ \r\n document.getElementById(\"freelancerProfile\").style.width = \"0%\";\r\n }\r\n $scope.slideF = function(){ \r\n document.getElementById(\"myNav\").style.height = \"86%\";\r\n }\r\n $scope.slideSendAndRecieveBid = function(){ \r\n document.getElementById(\"SendAndRecieveBid\").style.width = \"25%\";\r\n }\r\n vm.closeSendAndRecieveBid = function(){ \r\n document.getElementById(\"SendAndRecieveBid\").style.width = \"0%\";\r\n vm.AttendenceForBid='';\r\n }\r\n vm.closeSlide = function(){ \r\n document.getElementById(\"myNav\").style.height = \"0%\";\r\n }\r\n vm.FilterArray = function () { \r\n itemNames = '';\r\n itemValues = '';\r\n templateItemNames = '';\r\n templateItemValues = '';\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } \r\n }\r\n\r\n if (vm.ticketskill) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',Skill';\r\n itemValues = itemValues + \",\" + vm.ticketskill;\r\n }\r\n else\r\n {\r\n itemNames = 'Skill';\r\n itemValues = vm.ticketskill;\r\n } \r\n }\r\n\r\n if (vm.ticketaccount) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',AccountName';\r\n itemValues = itemValues + \",\" + vm.ticketaccount.join('|');\r\n }\r\n else\r\n {\r\n itemNames = 'AccountName';\r\n itemValues = vm.ticketaccount.join('|');\r\n } \r\n }\r\n\r\n if(vm.JobcountbyStatus)\r\n {\r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else\r\n {\r\n itemNames = 'Status';\r\n itemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n\r\n if(vm.JobcountbySearch)\r\n {\r\n itemNames = 'Status';\r\n itemValues = vm.JobcountbySearch;\r\n }\r\n\r\n // if (vm.ticketlocation) { \r\n // if(itemNames) \r\n // {\r\n // itemNames = itemNames + ',State';\r\n // itemValues = itemValues + \",\" + vm.ticketlocation;\r\n // }\r\n // else\r\n // {\r\n // itemNames = 'State';\r\n // itemValues = vm.ticketlocation;\r\n // } \r\n // }\r\n\r\n if (vm.PermanentState) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',State';\r\n itemValues = itemValues + \",\" + vm.PermanentState;\r\n }\r\n else\r\n {\r\n itemNames = 'State';\r\n itemValues = vm.PermanentState;\r\n } \r\n }\r\n if (vm.PermanentState && vm.PermanentCity) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',City';\r\n itemValues = itemValues + \",\" + vm.PermanentCity;\r\n }\r\n else\r\n {\r\n itemNames = 'City';\r\n itemValues = vm.UsersType;\r\n } \r\n }\r\n\r\n if (vm.ticketstatus) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + \",\" + vm.ticketstatus;\r\n }\r\n else\r\n {\r\n itemNames = 'Status';\r\n itemValues = vm.ticketstatus;\r\n } \r\n }\r\n\r\n if(vm.searchText)\r\n {\r\n itemNames = 'Search';\r\n itemValues = vm.searchText;\r\n templateItemNames = '';\r\n templateItemValues = ''; \r\n textItemNames = '';\r\n textItemValues = '';\r\n startDate = startDate;\r\n endDate = endDate;\r\n }\r\n\r\n textItemNames = '';\r\n textItemValues = ''; \r\n }\r\n\r\n\r\n vm.ResetTicketFilter = function () { \r\n vm.ticketaccount = '';\r\n vm.PermanentState = '';\r\n vm.ticketskill = '';\r\n vm.ticketstatus = '';\r\n vm.PermanentCity = '';\r\n vm.searchStatusText = '';\r\n }\r\n\r\n vm.ResetUserFilter = function () { \r\n vm.UsersType = '';\r\n vm.userlocation = '';\r\n vm.userskill = ''; \r\n vm.uType= ''; \r\n vm.CurrentCity = '';\r\n vm.CurrentState = '';\r\n }\r\n\r\n vm.UsersFilterArray = function()\r\n {\r\n vm.ResetUserSelection(this);\r\n uitemNames=\"\";\r\n uitemValues=\"\";\r\n\r\n if (vm.userskill) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',SkillSet';\r\n uitemValues = uitemValues + \",\" + vm.userskill;\r\n }\r\n else\r\n {\r\n uitemNames = 'SkillSet';\r\n uitemValues = vm.userskill;\r\n } \r\n }\r\n\r\n // if (vm.userlocation) { \r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',Locations';\r\n // uitemValues = uitemValues + \",\" + vm.userlocation;\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'Locations';\r\n // uitemValues = vm.userlocation;\r\n // } \r\n // }\r\n if (vm.CurrentState) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',CurrentState';\r\n uitemValues = uitemValues + \",\" + vm.CurrentState;\r\n }\r\n else\r\n {\r\n uitemNames = 'CurrentState';\r\n uitemValues = vm.CurrentState;\r\n } \r\n }\r\n if (vm.CurrentState && vm.CurrentCity) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.CurrentCity;\r\n }\r\n else\r\n {\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.CurrentCity;\r\n } \r\n }\r\n\r\n if (vm.UsersType) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + \",\" + vm.UsersType;\r\n }\r\n else\r\n {\r\n uitemNames = 'Role';\r\n uitemValues = vm.UsersType;\r\n } \r\n } \r\n\r\n if(vm.UsersType==\"Freelancer\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n }\r\n else if(vm.UsersType==\"Freelancer Vendor\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n } \r\n else if(vm.UsersType==\"Freelancer Dispatcher\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n }\r\n else if(vm.UsersType==\"Private\")\r\n {\r\n vm.uType=\"Private\";\r\n } \r\n else if(vm.UsersType==\"Dispatch Supervisor\" || vm.UsersType==\"OnBoarding Supervisor\" || vm.UsersType==\"Dispatch Team Lead\")\r\n {\r\n vm.uType=\"Fixed\";\r\n }\r\n else \r\n {\r\n vm.uType=\"Freelancer\";\r\n vm.UsersType = '';\r\n } \r\n\r\n }\r\n\r\n\r\n //Action \r\n vm.OpenApproveModal = function (currentJOb) \r\n { \r\n vm.CurrentJob = currentJOb;\r\n vm.RatingOfTicket = ''; \r\n if(vm.CurrentJob.IsLineItemAvailable==true && vm.CurrentJob.IsDynamicPriceApproved==false){\r\n vm.aproveMessage = 'Please approve dynamic pricing line item under the ticket details section!';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'dynamic_price_approved_model.html',\r\n scope: $scope\r\n });\r\n }\r\n else{\r\n vm.aproveMessage = 'Please Rate !';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'approve_model.html',\r\n scope: $scope\r\n });\r\n } \r\n }\r\n\r\n vm.AcceptJob = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedinUser,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Accepted\" \r\n };\r\n CentralHDManualAssignationService.AcceptJob(data, token, loggedinUser, function (res) { \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job accepted successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to accept job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n\r\n vm.reAssignJob = function (currentJOb) {\r\n \r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedinUser,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Assigned\" \r\n };\r\n CentralHDManualAssignationService.AcceptJob(data, token, loggedinUser,function (res) {\r\n \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job reassigned successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to reassign job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n\r\n //download funtion\r\n vm.downloadReport = function (ticketId, templateName) {\r\n if (templateName == 'Water Testing') {\r\n var urlWithFeasible = PublicApiURL + '/api/Report/' + ticketId + '/DownloadReportByTemplateName?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlWithFeasible, '_blank')\r\n } else {\r\n var urlForNonFeasible = PublicApiURL + '/api/Report/' + ticketId + '/Report?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlForNonFeasible, '_blank')\r\n }\r\n }\r\n\r\n vm.ReportpdfUrl = function (ticketId) {\r\n CentralHDManualAssignationService.getPdfReport(loggedinUser, ticketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n const linkSource = resp.data.Base64Data;\r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = resp.data.ReportName;\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n } \r\n })\r\n }\r\n\r\n vm.PullBackTicket = function (ticketId) {\r\n CentralHDManualAssignationService.PullBackTicket(loggedinUser, ticketId, token).then(function (resp) {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n })\r\n }\r\n\r\n vm.RejectJobModel = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n RejectJobModel = $uibModal.open({\r\n templateUrl: 'Rejectjob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseRejectModel = function () {\r\n RejectJobModel.close();\r\n }\r\n\r\n vm.RejectJob = function () {\r\n if(!vm.RejectionRemark)\r\n {\r\n vm.showFailure(\"Failed\", \"Please comment on rejection.\");\r\n return;\r\n }\r\n RejectJobModel.close(); \r\n var data = {\r\n \"ReqUserId\": loggedinUser,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Rejected\", \r\n \"RejectionRemark\": vm.RejectionRemark.toString()\r\n };\r\n CentralHDManualAssignationService.RejectJob(data, token, loggedinUser, function (res) { \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job rejected successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n\r\n vm.ConvertToNewJob = function(currentJOb){\r\n \r\n vm.CurrentJob = currentJOb; \r\n var data = {\r\n \"ReqUserId\": loggedinUser,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"New\" \r\n };\r\n CentralHDManualAssignationService.ConvertToNewJob(data, token, loggedinUser, function (res) { \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job converted successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to convert job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n}\r\n\r\n vm.OpenHoldUpModel = function (ticketId, holdstatus) {\r\n if(holdstatus == 'Unhold')\r\n {\r\n vm.UpdateHoldingStatus(ticketId, holdstatus);\r\n } \r\n else{\r\n vm.tickId = ticketId;\r\n $scope.holdstatus =holdstatus;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'HoldJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n } \r\n }\r\n\r\n vm.CloseHoldUpModel = function () {\r\n FollowUpModel.close();\r\n }\r\n\r\n vm.UpdateHoldReason=\"Update\";\r\n vm.UpdateHoldingStatus = function (ticketId, holdingStatus) { \r\n if(vm.primaryHoldReason!= null)\r\n\t\t\t{\t\r\n\t\t\t\tvm.enable1 = \"false\";\r\n\t\t\t\tvm.UpdateHoldReason=\"Updating...\";\r\n };\r\n CentralHDManualAssignationService.UpdateHoldingStatus(loggedinUser, ticketId, holdingStatus,vm.primaryHoldReason,vm.primaryHoldRemark, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n vm.showSuccess('Job Hold/Unhold Status', 'Job has been updated successfully');\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.enable1 = \"true\";\t\r\n\t\t\t\t\t\t\tvm.UpdateHoldReason=\"Update\";\t\r\n }, 2000);\r\n vm.CloseFollowUpModel();\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure('Failed', resp.data.Message);\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.enable1 = \"true\";\t\r\n\t\t\t\t\t\t \tvm.UpdateHoldReason=\"Update\";\t\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000); \r\n vm.CloseFollowUpModel();\r\n } else {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n }\r\n }, function (err) {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n })\r\n }\r\n\r\n vm.DisableScheduledExceptionButtons = function (disable) {\r\n if(disable){\r\n vm.disableExceptionButton = true;\t\t\t\r\n }\r\n else{\r\n vm.disableExceptionButton = false;\r\n }\r\n }\r\n \r\n \r\n vm.resolveException = function(TicketId){\r\n vm.DisableScheduledExceptionButtons(true);\r\n var ticketIdList = []; \t\t\r\n ticketIdList.push(TicketId);\t\t\t \r\n \r\n CentralHDManualAssignationService.ResolveException(loggedinUser, ticketIdList,token).then(function(resp){\r\n if (resp.status==202) {\t\t\r\n $timeout(function(){\t\t\t\t\t\t\t\t\r\n vm.showSuccess(\"Schedule Exception\", \"Exception Resolved Successfully\");\t\t\t\t\t\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.DisableScheduledExceptionButtons(false);\t\t\t\t\t\t\r\n }, 1000);\t\r\n \r\n }\r\n })\t\t\r\n }\r\n\r\n // vm.ConvertJobIntoNew = function(TicketId){\r\n // var ticketIdList = []; \t\t\r\n // ticketIdList.push(TicketId); \r\n // CentralHDManualAssignationService.ConvertJobIntoNew(loggedinUser, ticketIdList,token).then(function(resp){\r\n // if (resp.status==202) {\t\t\r\n // $timeout(function(){\t\t\t\t\t\t\t\t\r\n // vm.showSuccess(\"Success\", resp.data);\t\t\t\t\t\r\n // vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // }, 1000);\t\r\n \r\n // }\r\n // })\t\t\r\n // }\r\n\r\n //download PDF \r\n vm.downloadReportPDF = function (ticketId,OnSiteReport) { \r\n if (OnSiteReport != null) { \r\n var urlWithFeasible = PublicApiURL + '/api/Report/GeneratePdfOnSiteReportForMultipleTickets?TicketIds=' + ticketId;\r\n $window.open(urlWithFeasible, '_blank')\r\n } else {\r\n // var urlForNonFeasible = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketIds=' + ticketId;\r\n // $window.open(urlForNonFeasible, '_blank')\r\n vm.downloadOnSiteReport(ticketId);\r\n }\r\n }\r\n\r\n vm.pdfimage = \"\";\r\n vm.DocumentAvailableMessage=\"\";\t\r\n vm.downloadOnSiteReport = function (ticketId) { \r\n vm.PDFView();\r\n \r\n // var PreviewConsolidatedInvoiceList = previewSelectedObj;\r\n CentralHDManualAssignationService.downloadOnSiteReport(loggedinUser, token, ticketId).then(function (resp) {\r\n // var responseDataList=[];\r\n vm.responseDataList = resp.data;\r\n // for(var i=0; i

\" + vm.name + \"

\" + ' ' + vm.contactnumber);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n \r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n \r\n }\r\n vm.makeJobMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n \r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.customerJobCard.ConsumerName + \"

\" + ' ' + vm.customerJobCard.JobId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.customerJobCard.ConsumerContact);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n \r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n }\r\n function initMap() {\r\n var pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n pointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n // center = new google.maps.LatLng(51.3, 0.8),\r\n myOptions = {\r\n zoom: 8,\r\n zoomControl: false,\r\n scaleControl: true,\r\n mapTypeControl: false,\r\n streetViewControl: false,\r\n gestureHandling: 'greedy',\r\n // center: center,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n },\r\n \r\n map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n // Instantiate a directions service.\r\n directionsService = new google.maps.DirectionsService,\r\n directionsDisplay = new google.maps.DirectionsRenderer({\r\n map: map\r\n }),\r\n duration = document.getElementById('duration');\r\n distance = document.getElementById('distance');\r\n flightPath = new google.maps.Polyline({\r\n path: [pointA, pointB],\r\n // geodesic: true,\r\n strokeColor: 'red',\r\n });\r\n $scope.InfoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n // click on marker B to get route from A to B\r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n var travelMode = \"DRIVING\";\r\n var icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n }\r\n function calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map) {\r\n var selectedMode = \"DRIVING\";\r\n directionsService.route({\r\n origin: pointA,\r\n destination: pointB,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n travelMode: google.maps.TravelMode[selectedMode]\r\n }, function (response, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n new google.maps.DirectionsRenderer({\r\n map: map,\r\n directions: response,\r\n suppressMarkers: true,\r\n polylineOptions: {\r\n strokeColor: \"#000000\"\r\n }\r\n });\r\n var leg = response.routes[0].legs[0];\r\n //outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n distance.innerHTML = response.routes[0].legs[0].distance.text;\r\n duration.innerHTML = response.routes[0].legs[0].duration.text;\r\n vm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n vm.makeJobMarker(leg.start_location, icons.start, map);\r\n vm.makeUserMarker(leg.end_location, icons.end, map);\r\n } else {\r\n window.alert('Directions request failed due to ' + status);\r\n }\r\n });\r\n }\r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/JOb_icon.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/delivery-man1.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n\r\n vm.OpenFilterModel = function () {\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FilterModel.html',\r\n size: 'lg',\r\n backdrop: 'static',\r\n scope: $scope,\r\n // controller: ModalInstanceCtrlFollowUp,\r\n });\r\n }\r\n\r\n vm.OpenFollowUpModel = function (ticketId) {\r\n vm.followup = '';\r\n vm.tickId = ticketId;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n }\r\n\r\n vm.CloseFollowUpModel = function () {\r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = '';\r\n vm.primaryHoldReason='';\r\n vm.primaryHoldRemark='';\r\n vm.followFiles = null; \r\n FollowUpModel.close();\r\n }\r\n\r\n //\r\n $scope.attachmentForFollowUp = function(files){\r\n var file = files.files[0]; \r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.msg|\\.pdf|\\.bmp|\\.xps)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.followFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png,.msg,.bmp,xps only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.DocEdit = function(index){\r\n vm.followFiles=null; \r\n }\r\n\r\n var ModalInstanceCtrlFollowUp = function ($scope, $rootScope, $uibModalInstance) { \r\n vm.updateFollowUpStatus = function () {\r\n var data = {};\r\n data = {\r\n \"userId\": loggedinUser,\r\n \"dateTime\": \"\",\r\n \"activity\": \"\",\r\n \"action\": \"FOLLOW_UP\",\r\n \"userName\": \"\",\r\n \"ticketId\": vm.tickId,\r\n \"primaryReason\": vm.primaryFollowUpReason,\r\n \"SecondryReason\": \"\",\r\n \"ReasonComment\": vm.primaryFollowUpRemark\r\n }\r\n if(vm.followFiles != null) {\r\n CentralHDManualAssignationService.UpdateFollowUpReason(data,vm.followFiles, token, loggedinUser, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n vm.CloseFollowUpModel();\r\n $timeout(function () {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.filterStatusForJObs($scope.jobStatusForPaging, $scope.selectedUserId, $localStorage.loggedInUserId, token,jPageIndex,jPageSize)\r\n }, 1000); \r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n else{\r\n CentralHDManualAssignationService.TicketFollowUpWithoutDoc(data, token, loggedinUser, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000); \r\n } \r\n vm.CloseFollowUpModel();\r\n });\r\n }\r\n \r\n }\r\n }\r\n\r\n var ModelInstanceOfMap = function ($rootScope, $scope, $uibModal) {\r\n vm.getCustomerJobCard();\r\n }\r\n\r\n vm.getCustomerJobCard = function () {\r\n CentralHDManualAssignationService.getCustomerJobCardbyJobId(loggedinUser, vm.trackingTicketId, token, function (data) {\r\n vm.JobLatitude = data.JobLatitude;\r\n vm.JobLongitude = data.JobLongitude;\r\n vm.FELatitude = data.FELatitude;\r\n vm.FELongitude = data.FELongitude;\r\n vm.contactnumber = data.FEContactNumber;\r\n vm.jobtype = data.Description;\r\n vm.name = data.FEName;\r\n if(data.FEContactNumber){\r\n vm.contactnumber=data.FEContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n // vm.mapMarkers=[];\r\n initMap();\r\n $log.log(\"res of getCustomerJobCard=\" + data);\r\n vm.customerJobCard = data;\r\n if(vm.customerJobCard.ConsumerContact){\r\n vm.customerJobCard.ConsumerContact=vm.customerJobCard.ConsumerContact.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n if ($localStorage.rateJobParams) {\r\n vm.customerJobCard.userRole = $localStorage.Role;\r\n vm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n vm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n delete $localStorage.rateJobParams;\r\n }\r\n if (data && data.JobStatus == 'PaymentDone') {\r\n \r\n }\r\n }, function () {\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n //}\r\n vm.TicketBreachValueconver = function(TicketBreachValue)\r\n {\r\n var TicketBreachValueInString=\"\"; \r\n if(TicketBreachValue==0)\r\n TicketBreachValueInString = \"Not Breached\";\r\n if(TicketBreachValue==1)\r\n TicketBreachValueInString = \"Breached\";\r\n \r\n return TicketBreachValueInString;\r\n }\r\n vm.OpenTracking = function (ticket) {\r\n vm.trackingTicketId = ticket;\r\n Tracking = $uibModal.open({\r\n templateUrl: 'Tracking.html',\r\n size: 'lg',\r\n scope: $scope,\r\n controller: ModelInstanceOfMap\r\n })\r\n }\r\n vm.CloseTracking = function () {\r\n Tracking.close();\r\n }\r\n\r\n vm.OpenRescheduleAuditModal = function (currentAuditJOb) \r\n { \r\n vm.CurrentAuditJob = currentAuditJOb;\r\n vm.RatingOfTicket = '';\r\n vm.RescheduleAuditTicketId = vm.CurrentAuditJob.TicketId;\r\n vm.AuditPrimaryReason = vm.CurrentAuditJob.PrimaryReason;\r\n rescheduleAuditModalInstance = $uibModal.open({\r\n templateUrl: 'reschedule_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n\r\n vm.RescheduleAuditCloseModal = function () {\r\n rescheduleAuditModalInstance.close();\r\n }\r\n\r\n vm.OpenSiteAuditModal = function (currentAuditJOb) \r\n { \r\n vm.CurrentAuditJob = currentAuditJOb; \r\n vm.SiteAuditTicketId = vm.CurrentAuditJob.TicketId; \r\n siteAuditModalInstance = $uibModal.open({\r\n templateUrl: 'site_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n vm.SiteAuditCloseModal = function () {\r\n siteAuditModalInstance.close();\r\n }\r\n\r\n $scope.attachSiteAudit = function(files){\r\n vm.SiteAuditFileName=\"\";\r\n var file = files.files[0];\r\n vm.SiteAuditFileName=file.name;\r\n if(vm.SiteAuditFileName!=\"\") \r\n { \r\n $timeout(function () {\r\n vm.SiteAuditMessage=\"\"; \r\n }, 100); \r\n } \r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.followFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.doc,.docx,.xls,.xlsx only.');\r\n }\r\n }\r\n \r\n\r\n vm.SiteRescheduleAudit = function(){ \r\n if(vm.SiteAuditFileName==\"\")\r\n { \r\n return vm.SiteAuditMessage=\"Please Select Audit Report\";\r\n }\r\n else\r\n vm.SiteAuditMessage=\"\";\r\n\r\n var data = {};\r\n data = { \r\n \"AuditResult\": vm.SiteAuditModel, \r\n \"AuditObjectId\": vm.SiteAuditTicketId,\r\n \"AuditAttachmentName\": vm.SiteAuditFileName,\r\n \"AuditFor\": \"Ticket\" \r\n } \r\n siteAuditModalInstance.close(); \r\n CentralHDManualAssignationService.AddSiteAuditwithAttachment(data, vm.followFiles, token, loggedinUser).then(function(res){\r\n if (res && res.status == 202) { \r\n vm.showSuccess(\"Success\", \"Site Audit Saved successfully.\");\r\n $timeout(function () { \r\n vm.SiteAuditFileName=\"\";\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to add site audit. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n \r\n\r\n\r\n $scope.totalTableTickets = 0;\r\n $scope.ticketTablePerPage = vm.ticketPageListCount ; // this should match however many results your API puts on one page\r\n $scope.TicketTablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeTicketPageListCount = function() { \r\n $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n PageSize = $scope.ticketTablePerPage;\r\n $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n vm.selectAll = false;\r\n }\r\n \r\n // $scope.UserTablepagination.current= $localStorage.TicketFilterModel?$localStorage.TicketFilterModel.PageIndex:1;\r\n PageIndex=$scope.TicketTablepagination.current;\r\n $scope.TicketTablepageChanged = function(newPage) { \r\n PageIndex = newPage;\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n };\r\n\r\n $scope.totalUsers = 0;\r\n // $scope.usersPerPage = 10; // this should match however many results your API puts on one page\r\n $scope.usersPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function() { \r\n $scope.usersPerPage = vm.userPageListCount;\r\n uPageSize = $scope.usersPerPage;\r\n $scope.UserTablePageChanged($scope.Userpagination.current);\r\n vm.selectAll = false;\r\n \r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n };\r\n }\r\n\r\n $scope.totalUserSuggestions = 0;\r\n // $scope.userSuggestionsPerPage = 10; // this should match however many results your API puts on one page\r\n $scope.userSuggestionsPerPage = vm.suggestionPageListCount;\r\n $scope.UserSuggestionspagination = {\r\n current: 1\r\n };\r\n\r\n vm.cangeSuggestionPageListCount = function() { \r\n $scope.userSuggestionsPerPage = vm.suggestionPageListCount;\r\n uPageSize = $scope.userSuggestionsPerPage;\r\n $scope.UserSuggestionTablepageChanged($scope.Userpagination.current);\r\n vm.selectAll = false;\r\n }\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserSuggestionTablepageChanged = function(newPage) { \r\n vm.SuggestionStarIndex = (newPage-1)*vm.SuggestionMaxcount; \r\n vm.SuggestionMaxcount = newPage*vm.suggestionPageListCount \r\n };\r\n\r\n // //jobs paging (freelancer profile)\r\n $scope.totalJobs = 0;\r\n // $scope.userSuggestionsPerPage = 10; // this should match however many results your API puts on one page\r\n $scope.JobsPerPage = vm.jobsPageListCount;\r\n $scope.jobspagination = {\r\n current: 1\r\n };\r\n\r\n vm.cangeJobsPageListCount = function() { \r\n $scope.JobsPerPage = vm.jobsPageListCount;\r\n uPageSize = $scope.JobsPerPage;\r\n $scope.jobsTablepageChanged($scope.jobspagination.current);\r\n vm.selectAll = false;\r\n }\r\n uPageIndex=$scope.jobspagination.current;\r\n $scope.jobsTablepageChanged = function(newPage) { \r\n jPageIndex = newPage;\r\n vm.jobsStarIndex = (newPage-1)*vm.jobsMaxcount; \r\n vm.jobsMaxcount = newPage*vm.jobsPageListCount;\r\n vm.filterStatusForJObs($scope.jobStatusForPaging);\r\n \r\n };\r\n\r\n //pagination for BID\r\n $scope.totalUserBID = 0;\r\n $scope.userBIDPerPage = 10; // this should match however many results your API puts on one page\r\n $scope.UserBIDpagination = {\r\n current: 1\r\n };\r\n\r\n $scope.UserBIDTablepageChanged = function(newPage) {\r\n vm.BIDStartIndex = (newPage-1)*10; \r\n vm.BIDMaxcount = newPage*10\r\n };\r\n \r\n // $scope.UserTablepagination.current= $localStorage.TicketFilterModel?$localStorage.TicketFilterModel.PageIndex:1;\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n if(uitemNames != 'Search')\r\n {\r\n vm.UsersFilterArray();\r\n }\r\n \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n\r\n };\r\n\r\n vm.ticketList=[];\r\n \r\n vm.getAllJobTickets = function(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize) { \r\n var templateCols=\"\";\r\n vm.resetAllSelect();\r\n var templateCols=\"\";\r\n PageIndex = PageIndex?PageIndex:1;\r\n vm.DateField = vm.DateField?vm.DateField:\"CreatedOn\";\r\n CentralHDManualAssignationService.getAllJobTickets(loggedinUser, startDate, endDate, token, itemNames, itemValues,textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues,vm.DateField,PageIndex,PageSize,vm.SortType,vm.SortField).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ticketList = resp.data.LightTicketModels;\r\n $scope.totalTableTickets = resp.data.Count;\r\n $scope.totalTableUsers = resp.data.Count;\r\n vm.ApprovedJobCount = resp.data.ApprovedJobCount;\r\n vm.AssignJobCount = resp.data.AssignJobCount;\r\n vm.AssignedNCallTakenButNoAppointment = resp.data.AssignedNCallTakenButNoAppointment;\r\n vm.AppointmentNotTakenInTime = resp.data.AppointmentNotTakenInTime;\r\n vm.BroadcastJobCount = resp.data.BroadcastJobCount;\r\n vm.CancelJobCount = resp.data.CancelJobCount;\r\n vm.CompleteJobCount = resp.data.CompleteJobCount;\r\n vm.TotalJobCount = resp.data.TotalJobCount;\r\n vm.HoldJobCount = resp.data.HoldJobCount;\r\n vm.InTransitJobCount = resp.data.InTransitJobCount; \r\n vm.OnSiteJobCount = resp.data.OnSiteJobCount; \r\n vm.InProgressJobCount = resp.data.InProgressJobCount; \r\n vm.NewJobCount = resp.data.NewJobCount;\r\n vm.ReadyToAssigJobCount = resp.data.ReadyToAssigJobCount;\r\n vm.RejectedJobCount = resp.data.RejectedJobCount;\r\n vm.ScheduleExceptionJobCount = resp.data.ScheduleExceptionJobCount;\r\n vm.ExceptionNoUserCount =resp.data.ExceptionNoUserCount;\r\n vm.AddressExceptionCount = resp.data.AddressExceptionCount;\r\n vm.PriceExceptionCount = resp.data.PriceExceptionCount;\r\n vm.AppointmentBookedForDay0 = resp.data.AppointmentBookedForDay0;\r\n vm.AppointmentBookedForDay1 = resp.data.AppointmentBookedForDay1;\r\n vm.AppointmentBookedForDay2Plus = resp.data.AppointmentBookedForDay2Plus;\r\n vm.AppointmentBreached = resp.data.AppointmentBreached;\r\n vm.NotAssignedForD0 = resp.data.NotAssignedForD0;\r\n vm.NotAssignedForD1 = resp.data.NotAssignedForD1;\r\n vm.CustomerCallInit = resp.data.CustomerCallInit;\r\n vm.AssignedNoActionCount = resp.data.AssignedNoActionCount;\r\n vm.BroadcastCountTickets = resp.data.BroadcastCountTickets;\r\n\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n $localStorage.TList = vm.ticketList;\r\n $localStorage.AllJobType = vm.searchJobTypeText;\r\n $localStorage.AllJobStatus = vm.searchStatusText;\r\n angular.forEach(vm.ticketList, function (t) {\r\n t.StartTime = moment(t.StartTime, \"YYYY-MM-DDThh:mm:ssZ\"); \r\n t.StartTimeD = t.StartTime.format(\"YYYY-MM-DD hh:mm\");\r\n\r\n var today = moment();\r\n var date2 = t.CreationDate;\r\n var date3 = t.AssignationDate;\r\n var duration = today.diff(date2, 'days');\r\n var assignDuration = today.diff(date3, 'hour');\r\n var assignDurationMin = today.diff(date3, 'minutes');\r\n t.Age = duration;\r\n t.diffAssignation = assignDuration;\r\n t.diffAssignationMin = assignDurationMin%60;\r\n })\r\n \r\n if(vm.ticketList.length < vm.ticketPageListCount)\r\n vm.ticketListLength = $scope.totalTableTickets;\r\n else\r\n vm.ticketListLength = PageIndex * vm.ticketPageListCount;\r\n if(PageIndex==1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex-1) * vm.ticketPageListCount) + 1);\r\n }\r\n\r\n }, function () { \r\n });\r\n \r\n }\r\n\r\n vm.getAllTicketsByStatus = function(status)\r\n {\r\n vm.JobcountbyStatus=status;\r\n //$scope.UserTablepagination={}; \r\n vm.searchText='';\r\n vm.searchJobTypeText = \"\"; \r\n vm.searchStatusText=''; \r\n vm.CustomerList = [];\r\n vm.ProjectList = [];\r\n vm.ProjectListByCustomer=[];\r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByCName = '';\r\n //var startDate = moment(vm.ticketdates.startDate).format('YYYY-MM-DD');\r\n //var endDate = moment(vm.ticketdates.endDate).format('YYYY-MM-DD'); \r\n vm.FilterArray(); \r\n PageIndex=1;\r\n /*$scope.UserTablepagination = {\r\n current: 1\r\n };*/\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n \r\n }\r\n\r\n vm.sortBroadcastAge = function(SortType) {\r\n vm.SortField = \"BroadcastedOn\";\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\r\n }\r\n\r\n vm.sortAge = function(SortType) {\r\n vm.SortField = \"CreatedOn\";\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\r\n }\r\n\r\n vm.sortColumn = function(col){\r\n vm.SortField = col;\r\n if(vm.SortType=='desc'){\r\n vm.SortType = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n }else{\r\n vm.SortType = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.filterStatusForJObs($scope.jobStatusForPaging, $scope.selectedUserId, $localStorage.loggedInUserId, token,jPageIndex,jPageSize)\r\n\r\n };\r\n \r\n // remove and change class\r\n vm.sortClass = function(col){\r\n if(vm.SortField == col ){\r\n if(vm.SortType == 'desc'){\r\n return 'fa fa-arrow-down'; \r\n }else{\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else{\r\n return '';\r\n }\r\n }\r\n\r\n\r\n vm.UserByFiltersList=[];\r\n vm.GetUserByFiltersWithDynaPage = function(loggedinUser, token, uitemNames, uitemValues, userType, UserAvailable, uPageIndex, uPageSize) { \r\n CentralHDManualAssignationService.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, userType, vm.UserAvailable, vm.DateField, uPageIndex, uPageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserByFiltersList = resp.data.ListUserResponseModel;\r\n $scope.totalUsers = resp.data.Count;\r\n preprocessData(vm.UserByFiltersList);\r\n if(vm.UserByFiltersList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = uPageIndex * vm.userPageListCount;\r\n if(uPageIndex==1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex-1) * vm.userPageListCount) + 1);\r\n\r\n for(var i=0;i 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText.join(\"|\");\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText.join(\"|\");\r\n }\r\n } \r\n if(vm.JobcountbyStatus)\r\n {\r\n itemNames = 'Status';\r\n itemValues = vm.JobcountbyStatus;\r\n }\r\n\r\n if(vm.SearchByAccountName)\r\n {\r\n if(itemNames){\r\n itemNames = itemNames + ',AccountName';\r\n itemValues = itemValues + ',' + vm.SearchByAccountName;\r\n }else{\r\n itemNames = 'AccountName';\r\n itemValues = vm.SearchByAccountName;\r\n }\r\n }\r\n\r\n if(vm.SearchByCName){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',CustomerName';\r\n itemValues = itemValues + ',' + vm.SearchByCName;\r\n }else{\r\n itemNames = 'CustomerName';\r\n itemValues = vm.SearchByCName;\r\n }\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',ProjectName';\r\n itemValues = itemValues + ',' + vm.SearchByPName;\r\n }else{\r\n itemNames = 'ProjectName';\r\n itemValues = vm.SearchByPName;\r\n }\r\n }\r\n textItemNames = '';\r\n textItemValues = '';\r\n if(vm.SearchByIs){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'CorelationValue';\r\n textItemValues = vm.SearchByIs;\r\n }else{\r\n textItemNames = textItemNames + ',CorelationValue';\r\n textItemValues = textItemValues + ',' + vm.SearchByIs;\r\n }\r\n \r\n }\r\n if(vm.SearchByDiscription){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'JobDescription';\r\n textItemValues = vm.SearchByDiscription;\r\n }else{\r\n textItemNames = textItemNames + ',JobDescription';\r\n textItemValues = textItemValues + ',' + vm.SearchByDiscription;\r\n }\r\n }\r\n if(vm.SearchByTName){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'UserName';\r\n textItemValues = vm.SearchByTName;\r\n }else{\r\n textItemNames = textItemNames + ',UserName';\r\n textItemValues = textItemValues + ',' + vm.SearchByTName;\r\n }\r\n }\r\n if(vm.searchText)\r\n {\r\n itemNames = 'Search';\r\n itemValues = vm.searchText;\r\n templateItemNames = '';\r\n templateItemValues = ''; \r\n textItemNames = '';\r\n textItemValues = '';\r\n } \r\n }\r\n // No Need to change\r\n vm.CommonFunToGetAllJob = function(){\r\n vm.FilterArray(); \r\n var templateCols=\"\"; \r\n JobTicketViewService.downloadTicketsReports(supervisorId, startDate, endDate, itemNames, itemValues,templateCols);\r\n }\r\n vm.MailReport = function(){\r\n vm.FilterArray(); \r\n var templateCols=\"\"; \r\n CentralHDAllTicketListService.sendReportToMail(loggedInUserId, token,startDate, endDate, itemNames, itemValues,templateCols).then(function (resp) { \r\n if (resp && resp.data) { \r\n if(resp.status==200)\r\n {\r\n vm.showSuccess(\"Success\", resp.data);\r\n }\r\n } \r\n else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n } \r\n }, function () { \r\n });;\r\n }\r\n\r\n vm.getAllAccounts = function ( ) {\r\n CentralHelpdeskConfigService.getAllAccounts(loggedInUserId, token).then(function (resp) { \r\n if (resp && resp.data) { \r\n if(resp.status==200)\r\n {\r\n vm.HDAllAccounts = resp.data;\r\n\r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n\r\n vm.getAllAccounts(); \r\n\r\n vm.Allapplyfilter = function(){\r\n vm.searchText='';\r\n $scope.$broadcast('update.daterangepicker', {date: vm.ticketdates}); \r\n $scope.UserTablepagination = {}; \r\n vm.FilterArray(); \r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues,templateItemNames, templateItemValues,PageIndex,PageSize);\r\n \r\n } \r\n vm.getAllCustomer = function(){ \r\n JobTicketViewService.getAllCustomers(supervisorId,token).then(function(resp){\r\n vm.CustomerList = resp.data;\r\n })\r\n } \r\n vm.getAllProject= function(){ \r\n JobTicketViewService.GetAllProjects(supervisorId,token).then(function(resp){\r\n vm.ProjectList = resp.data;\r\n })\r\n }\r\n //vm.getAllCustomer();\r\n //vm.getAllProject();\r\n\r\n vm.GetCustomerByAccount=function()\r\n { var SelectedAccountId = ''; \r\n angular.forEach(vm.HDAllAccounts, function (account) {\r\n if (account.AccountName==vm.SearchByAccountName) {\r\n SelectedAccountId = account.AccountId; \r\n }\r\n })\r\n CentralHDAllTicketListService.GetCustomersByAccount(loggedInUserId,SelectedAccountId,token).then(function(resp){\r\n vm.CustomerList = resp.data;\r\n })\r\n }\r\n\r\n \r\n vm.GetProjectByCustomer=function()\r\n {\r\n vm.ProjectListByCustomer=[];\r\n angular.forEach(vm.CustomerList, function (customer) {\r\n if (customer.CompanyName==vm.SearchByCName) {\r\n vm.ProjectListByCustomer = customer.Projects;\r\n }\r\n })\r\n }\r\n vm.OpenAutoScheduleConfirmationModal = function () \r\n { \r\n vm.confirmationMessage = 'Do you want to auto schedule the jobs?';\r\n confirmationModalInstance = $uibModal.open({\r\n templateUrl: 'auto_schedule_confirmation_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n \r\n vm.confirmationCloseModal = function () {\r\n confirmationModalInstance.close();\r\n }\r\n vm.AutoScheduleJobs = function () { \r\n JobTicketViewService.AutoBroadcastAllNewJobsManualMode(supervisorId,token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000); \r\n confirmationModalInstance.close(); \r\n vm.showSuccess(\"Success\", \"Jobs has been auto scheduled successfully\");\r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n }, function () { \r\n });\r\n }\r\n vm.SubmitFilter = function () { \r\n $scope.UserTablepagination={}; \r\n vm.searchText='';\r\n var startDate = moment(vm.ticketdates.startDate).format('YYYY-MM-DD');\r\n var endDate = moment(vm.ticketdates.endDate).format('YYYY-MM-DD');\r\n vm.FilterArray(); \r\n PageIndex=1;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n \r\n }\r\n vm.dateRangeChange = function (ev, picker) { \r\n vm.IsSearch = true;\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n vm.ticketdates = { startDate: startDate, endDate: endDate }; \r\n };\r\n \r\n vm.outsidedateRangeChange = function (ev, picker) { \r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.DateField=\"StatusChangedOn\"; \r\n vm.JobcountbyStatus = '';\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\r\n };\r\n vm.getAllJobTicketsCopy = function (supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize) {\r\n vm.FilterArray();\r\n var templateCols=\"\";\r\n PageIndex = PageIndex?PageIndex:1;\r\n vm.DateField = vm.DateField?vm.DateField:\"CreatedOn\";\r\n JobTicketViewService.getAllJobTicketsCopy(supervisorId, startDate, endDate, token, itemNames, itemValues,textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues,vm.DateField,PageIndex,PageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ticketList = resp.data.LightTicketModels;\r\n $scope.totalTableUsers = resp.data.Count;\r\n vm.ApprovedJobCount = resp.data.ApprovedJobCount;\r\n vm.AssignJobCount = resp.data.AssignJobCount;\r\n vm.BroadcastJobCount = resp.data.BroadcastJobCount;\r\n vm.CancelJobCount = resp.data.CancelJobCount;\r\n vm.CompleteJobCount = resp.data.CompleteJobCount;\r\n vm.TotalJobCount = resp.data.TotalJobCount;\r\n vm.HoldJobCount = resp.data.HoldJobCount;\r\n vm.InTransitJobCount = resp.data.InTransitJobCount; \r\n vm.OnSiteJobCount = resp.data.OnSiteJobCount; \r\n vm.InProgressJobCount = resp.data.InProgressJobCount; \r\n vm.NewJobCount = resp.data.NewJobCount;\r\n vm.ReadyToAssigJobCount = resp.data.ReadyToAssigJobCount;\r\n vm.RejectedJobCount = resp.data.RejectedJobCount;\r\n vm.ScheduleExceptionJobCount = resp.data.ScheduleExceptionJobCount;\r\n vm.AddressExceptionCount = resp.data.AddressExceptionCount;\r\n vm.PriceExceptionCount = resp.data.PriceExceptionCount;\r\n vm.BroadcastCountTickets = resp.data.BroadcastCountTickets;\r\n\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n $localStorage.TList = vm.ticketList;\r\n $localStorage.AllJobType = vm.searchJobTypeText;\r\n $localStorage.AllJobStatus = vm.searchStatusText;\r\n angular.forEach(vm.ticketList, function (t) {\r\n t.StartTime = moment(t.StartTime, \"YYYY-MM-DDThh:mm:ssZ\");\r\n t.StartTimeD = t.StartTime.format(\"DD/MM/YYYY LTS\");\r\n })\r\n\r\n if(vm.ticketList.length < 10)\r\n vm.ticketListLength = $scope.totalTableUsers;\r\n else\r\n vm.ticketListLength = PageIndex * 10;\r\n if(PageIndex==1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex-1) * 10) + 1);\r\n }\r\n \r\n }, function () { \r\n });\r\n }\r\n vm.getAllTicketsByStatus = function(status)\r\n {\r\n vm.JobcountbyStatus=status;\r\n //$scope.UserTablepagination={}; \r\n vm.searchText='';\r\n vm.searchJobTypeText = \"\"; \r\n vm.searchStatusText=''; \r\n vm.CustomerList = [];\r\n vm.ProjectList = [];\r\n vm.ProjectListByCustomer=[];\r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByCName = '';\r\n // var startDate = moment(vm.ticketdates.startDate).format('YYYY-MM-DD');\r\n // var endDate = moment(vm.ticketdates.endDate).format('YYYY-MM-DD'); \r\n \r\n vm.FilterArray(); \r\n \r\n PageIndex=1;\r\n /*$scope.UserTablepagination = {\r\n current: 1\r\n };*/\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n \r\n }\r\n vm.Action = function (action) {\r\n \r\n var ticketId = '';\r\n \r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId += t.TicketId + \",\";\r\n }\r\n })\r\n ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n \r\n if (action == 'Accepted') {\r\n vm.editPermission = true;\r\n vm.confirmTagModal(\"Do you want to accept selected ticket's?\", function () {\r\n $log.log('Accept CallBack Call');\r\n JobTicketViewService.ActionByVendor(loggedInUserId, ticketId, action, token).then(function (resp) {\r\n if (resp.status == 202) { \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n vm.actionFlag = false;\r\n vm.showSuccess(\"Success\", \"Selected Jobs has been accepted successfully\");\r\n \r\n } else {\r\n vm.showFailure(\"Failed\", \"Server facing some technical issue, please try again later\");\r\n }\r\n })\r\n })\r\n } else {\r\n vm.editPermission = false;\r\n vm.confirmTagModal(\"Do you want to reject selected ticket's?\", function () {\r\n $log.log('Accept CallBack Call');\r\n JobTicketViewService.ActionByVendor(loggedInUserId, ticketId, action, token).then(function (resp) {\r\n if (resp.status == 202) { \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.actionFlag = false;\r\n }, 1000);\r\n vm.showSuccess(\"Success\", \"Selected Jobs has been rejected successfully\");\r\n \r\n } else {\r\n vm.showFailure(\"Failed\", \"Server facing some technical issue, please try again later\");\r\n }\r\n })\r\n })\r\n }\r\n }\r\n vm.enableFilters = true;\r\n \r\n vm.dtInstance = {}; \r\n vm.searchTable = function () { \r\n vm.FilterArray(); \r\n vm.ResetFilter(); \r\n // vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n \r\n };\r\n \r\n if($localStorage.backToTicketList==\"JobDetailView\")\r\n { \r\n $localStorage.backToTicketList=\"\"; \r\n vm.searchStatusText=$localStorage.TicketFilterModel.JobStatus;\r\n vm.searchJobTypeText=$localStorage.TicketFilterModel.JobType;\r\n vm.SearchByIs=$localStorage.TicketFilterModel.JobId;\r\n vm.SearchByDiscription=$localStorage.TicketFilterModel.JobDesc;\r\n vm.SearchByTName=$localStorage.TicketFilterModel.JobTName;\r\n vm.SearchByCName=$localStorage.TicketFilterModel.JobCustomer;\r\n vm.SearchByPName=$localStorage.TicketFilterModel.JobProject;\r\n vm.DateField=$localStorage.TicketFilterModel.JobDType;\r\n PageIndex=$localStorage.TicketFilterModel.PageIndex;\r\n vm.JobcountbyStatus=$localStorage.TicketFilterModel.JobcountbyStatus;\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n $localStorage.backToTicketList=\"\"; \r\n $localStorage.TicketFilterModel.PageIndex = 1;\r\n \r\n }\r\n else\r\n { \r\n if( typeof $localStorage.TicketFilterModel === \"undefined\" || $localStorage.TicketFilterModel==\"\" || typeof $localStorage.TicketFilterModel.PageIndex === \"undefined\")\r\n PageIndex=1;\r\n\r\n $localStorage.TicketFilterModel = {};\r\n $localStorage.TicketFilterModel.PageIndex = 1;\r\n \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n $localStorage.TicketFilterModel = {};\r\n }\r\n vm.closeSearchText = function()\r\n { \r\n if(vm.searchText!=\"\")\r\n {\r\n vm.searchText=\"\";\r\n vm.ResetFilter();\r\n }\r\n }\r\n vm.ViewJob = function (ticket) { \r\n $localStorage.backToOldJobList = '';\r\n $localStorage.SDate = startDate;\r\n $localStorage.EDate = endDate;\r\n $localStorage.previousPage = 'jobticketcopy';\r\n $localStorage.TicketFilterModel ={\r\n \"JobType\" : vm.searchJobTypeText,\r\n \"JobStatus\" : vm.searchStatusText,\r\n \"JobDType\" : vm.DateField,\r\n \"JobSDate\" : startDate,\r\n \"JobEDate\" : endDate,\r\n \"JobId\" : vm.SearchByIs,\r\n \"JobDesc\" : vm.SearchByDiscription,\r\n \"JobTName\" : vm.SearchByTName, \r\n \"JobCustomer\" : vm.SearchByCName,\r\n \"JobProject\" : vm.SearchByPName,\r\n \"PageIndex\" : PageIndex,\r\n \"JobcountbyStatus\" : vm.JobcountbyStatus\r\n \r\n } ;\r\n // vm.VerticalName == 'Telecom' || vm.VerticalName == 'IMS'\r\n if(vm.VerticalName == 'IMS'){\r\n $state.go('index.JobView', {\r\n ticketId: ticket\r\n }, {\r\n reload: true\r\n });\r\n }else{\r\n $state.go('index.JobDetailView', {\r\n ticketId: ticket\r\n }, {\r\n reload: true\r\n }); \r\n }\r\n \r\n }\r\n\r\n vm.state = {};\r\n var columns = [\r\n {'name': 'field1', 'visible':true},//0\r\n {'name': 'field1', 'visible':true},//1\r\n {'name': 'field1', 'visible':true},//2\r\n {'name': 'field1', 'visible':true},//3\r\n {'name': 'field1', 'visible':true},//4\r\n {'name': 'field1', 'visible':true},//5\r\n {'name': 'field1', 'visible':true},//6\r\n {'name': 'field1', 'visible':true},//7\r\n {'name': 'field1', 'visible':true},//8\r\n {'name': 'field1', 'visible':true},//9\r\n {'name': 'field1', 'visible':true},//10\r\n {'name': 'field1', 'visible':true},//11\r\n {'name': 'field1', 'visible':true},//12\r\n {'name': 'field1', 'visible':true},//13\r\n {'name': 'field1', 'visible':true},//14\r\n {'name': 'field1', 'visible':true},//15\r\n {'name': 'field1', 'visible':true},//16\r\n {'name': 'field1', 'visible':true},//17\r\n {'name': 'field1', 'visible':true},//18\r\n {'name': 'field1', 'visible':true},//19\r\n {'name': 'field1', 'visible':true},//20\r\n {'name': 'field1', 'visible':true},//21\r\n {'name': 'field1', 'visible':true},//22\r\n {'name': 'field1', 'visible':true},//23\r\n {'name': 'field1', 'visible':true},//24\r\n {'name': 'field1', 'visible':true},//25\r\n {'name': 'field1', 'visible':true},//26\r\n {'name': 'field1', 'visible':true},//27\r\n {'name': 'field1', 'visible':true},//28\r\n {'name': 'field1', 'visible':true},//29\r\n {'name': 'field1', 'visible':true},//30\r\n {'name': 'field1', 'visible':true},//31\r\n {'name': 'field1', 'visible':true},//32\r\n {'name': 'field1', 'visible':true},//33\r\n {'name': 'field1', 'visible':true},//34\r\n {'name': 'field1', 'visible':true},//35\r\n {'name': 'field1', 'visible':true},//36\r\n {'name': 'field1', 'visible':true},//37\r\n {'name': 'field1', 'visible':true},//38\r\n {'name': 'field1', 'visible':true},//39\r\n {'name': 'field1', 'visible':true},//40\r\n {'name': 'field1', 'visible':true},//41\r\n {'name': 'field1', 'visible':true},//42\r\n {'name': 'field1', 'visible':true},//43\r\n {'name': 'field1', 'visible':true},//44\r\n {'name': 'field1', 'visible':true},//45\r\n {'name': 'field1', 'visible':true},//46\r\n {'name': 'field1', 'visible':true},//47\r\n {'name': 'field1', 'visible':true},//48\r\n {'name': 'field1', 'visible':true},//49\r\n {'name': 'field1', 'visible':true},//50\r\n {'name': 'field1', 'visible':true},//51\r\n {'name': 'field1', 'visible':true},//52\r\n {'name': 'field1', 'visible':true},//53\r\n {'name': 'field1', 'visible':true},//54\r\n {'name': 'field1', 'visible':true},//55\r\n {'name': 'field1', 'visible':true},//56\r\n {'name': 'field1', 'visible':true},//57\r\n {'name': 'field1', 'visible':true},//58\r\n {'name': 'field1', 'visible':true}//59\r\n ]\r\n\r\n vm.state.columns = columns;\r\n \r\n vm.dtOptions = DTOptionsBuilder.newOptions()\r\n .withPaginationType('full_numbers').withOption('lengthChange', false)\r\n .withOption('paging', false)\r\n .withOption('bInfo',false)\r\n .withOption('order', []);\r\n\r\n\r\n vm.dtColumnDefs = []; \r\n\r\n vm.buildColumnBuilder = function (){\r\n var tablecolumns = [];\r\n for(var index = 0; index < vm.state.columns.length; index++)\r\n {\r\n if( vm.state.columns[index].visible)\r\n {\r\n tablecolumns.push(DTColumnDefBuilder.newColumnDef(index).notSortable());\r\n }\r\n else\r\n {\r\n tablecolumns.push(DTColumnDefBuilder.newColumnDef(index).notSortable().notVisible())\r\n }\r\n }\r\n vm.dtColumnDefs = tablecolumns;\r\n }\r\n\r\n vm.buildColumnBuilder(); \r\n \r\n \r\n // Copied from main controller\r\n vm.implementSelectItems = function (itemList, scope) {\r\n scope.selectAll = false;\r\n scope.showMinus = false;\r\n scope.showAutoSchduleBtn = false;\r\n scope.downloadFlag = false;\r\n scope.downloadReportBtn = false;\r\n scope.deleteFlag = false;\r\n scope.ReadyToRaiseInvoiceFlag = false;\r\n scope.selectRow = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.showMinus = false;\r\n scope.selectAll = false;\r\n scope.showAutoSchduleBtn = false;\r\n scope.downloadFlag = false;\r\n scope.downloadReportBtn = false;\r\n scope.deleteFlag = false;\r\n scope.ReadyToRaiseInvoiceFlag = false;\r\n \r\n for(var j=0;j

\" + vm.name + \"

\" + ' ' + vm.contactnumber);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n \r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n \r\n }\r\n vm.makeJobMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n \r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.customerJobCard.ConsumerName + \"

\" + ' ' + vm.customerJobCard.JobId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.customerJobCard.ConsumerContact);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n \r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n }\r\n //It is used for the distance also \r\n function initMap() {\r\n var pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n pointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n // center = new google.maps.LatLng(51.3, 0.8),\r\n myOptions = {\r\n zoom: 8,\r\n zoomControl: false,\r\n scaleControl: true,\r\n mapTypeControl: false,\r\n streetViewControl: false,\r\n gestureHandling: 'greedy',\r\n // center: center,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n },\r\n \r\n map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n // Instantiate a directions service.\r\n directionsService = new google.maps.DirectionsService,\r\n directionsDisplay = new google.maps.DirectionsRenderer({\r\n map: map\r\n }),\r\n duration = document.getElementById('duration');\r\n distance = document.getElementById('distance');\r\n flightPath = new google.maps.Polyline({\r\n path: [pointA, pointB],\r\n // geodesic: true,\r\n strokeColor: 'red',\r\n });\r\n $scope.InfoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n // click on marker B to get route from A to B\r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n var travelMode = \"DRIVING\";\r\n var icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n }\r\n function calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map) {\r\n var selectedMode = \"DRIVING\";\r\n directionsService.route({\r\n origin: pointA,\r\n destination: pointB,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n travelMode: google.maps.TravelMode[selectedMode]\r\n }, function (response, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n new google.maps.DirectionsRenderer({\r\n map: map,\r\n directions: response,\r\n suppressMarkers: true,\r\n polylineOptions: {\r\n strokeColor: \"#000000\"\r\n }\r\n });\r\n var leg = response.routes[0].legs[0];\r\n //outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n distance.innerHTML = response.routes[0].legs[0].distance.text;\r\n duration.innerHTML = response.routes[0].legs[0].duration.text;\r\n vm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n vm.makeJobMarker(leg.start_location, icons.start, map);\r\n vm.makeUserMarker(leg.end_location, icons.end, map);\r\n } else {\r\n window.alert('Directions request failed due to ' + status);\r\n }\r\n });\r\n }\r\n \r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/JOb_icon.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/delivery-man1.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n /* vm.getReadableDate = function(){\r\n var time = new moment(vm.customerJobCard.JobDateTime, \"YYYY-MM-DDThh:mm:ss\");\r\n return time.format(\"DD MMM YYYY\")+\" at \"+time.format(\"LTS\"); \r\n } */\r\n vm.getCustomerJobCard = function () {\r\n JobTicketViewService.getCustomerJobCardbyJobId(loggedInUserId, vm.trackingTicketId, token, function (data) {\r\n vm.JobLatitude = data.JobLatitude;\r\n vm.JobLongitude = data.JobLongitude;\r\n vm.FELatitude = data.FELatitude;\r\n vm.FELongitude = data.FELongitude;\r\n vm.contactnumber = data.FEContactNumber;\r\n vm.jobtype = data.Description;\r\n vm.name = data.FEName;\r\n // vm.mapMarkers=[];\r\n initMap();\r\n $log.log(\"res of getCustomerJobCard=\" + data);\r\n vm.customerJobCard = data;\r\n if ($localStorage.rateJobParams) {\r\n vm.customerJobCard.userRole = $localStorage.Role;\r\n vm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n vm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n delete $localStorage.rateJobParams;\r\n }\r\n if (data && data.JobStatus == 'PaymentDone') {\r\n \r\n }\r\n }, function () {\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n //}\r\n vm.TicketBreachValueconver = function(TicketBreachValue)\r\n {\r\n var TicketBreachValueInString=\"\"; \r\n if(TicketBreachValue==0)\r\n TicketBreachValueInString = \"Not Breached\";\r\n if(TicketBreachValue==1)\r\n TicketBreachValueInString = \"Breached\";\r\n \r\n return TicketBreachValueInString;\r\n }\r\n vm.OpenTracking = function (ticket) {\r\n vm.trackingTicketId = ticket;\r\n Tracking = $uibModal.open({\r\n templateUrl: 'Tracking.html',\r\n size: 'lg',\r\n scope: $scope,\r\n controller: ModelInstanceOfMap\r\n })\r\n }\r\n vm.CloseTracking = function () {\r\n Tracking.close();\r\n }\r\n \r\n vm.getTemplateCallback = function (templates) {\r\n vm.templateListData = templates;\r\n vm.templateList = [];\r\n angular.forEach(vm.templateListData, function (d) {\r\n if (d.Skill != 'Water Sample Collection') {\r\n vm.templateList.push(d);\r\n }\r\n })\r\n }\r\n vm.OpenApproveModal = function (currentJOb) \r\n { \r\n vm.CurrentJob = currentJOb;\r\n vm.RatingOfTicket = ''; \r\n if(vm.CurrentJob.IsLineItemAvailable==true && vm.CurrentJob.IsDynamicPriceApproved==false){\r\n vm.aproveMessage = 'Please approve dynamic pricing line item under the ticket details section!';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'dynamic_price_approved_model.html',\r\n scope: $scope\r\n });\r\n }\r\n else{\r\n vm.aproveMessage = 'Please Rate !';\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'approve_model.html',\r\n scope: $scope\r\n });\r\n } \r\n }\r\n \r\n vm.CloseModal = function () {\r\n approveModalInstance.close();\r\n }\r\n \r\n vm.OpenRescheduleAuditModal = function (currentAuditJOb) \r\n { \r\n vm.CurrentAuditJob = currentAuditJOb;\r\n vm.RatingOfTicket = '';\r\n vm.RescheduleAuditTicketId = vm.CurrentAuditJob.TicketId;\r\n vm.AuditPrimaryReason = vm.CurrentAuditJob.PrimaryReason;\r\n rescheduleAuditModalInstance = $uibModal.open({\r\n templateUrl: 'reschedule_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n \r\n vm.RescheduleAuditCloseModal = function () {\r\n rescheduleAuditModalInstance.close();\r\n }\r\n \r\n vm.JobRescheduleAudit = function()\r\n {\r\n rescheduleAuditModalInstance.close();\r\n JobTicketViewService.TBCCancelationAudit(vm.RescheduleAuditModel,vm.RescheduleAuditTicketId,loggedInUserId,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000); \r\n }\r\n });\r\n }\r\n \r\n\r\n vm.OpenSettlementModal = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n vm.PaymentStatus = '';\r\n vm.Remarks = '';\r\n \r\n settlementModalInstance = $uibModal.open({\r\n templateUrl: 'settlement_model.html',\r\n scope: $scope\r\n });\r\n \r\n }\r\n \r\n vm.SettlementCloseModal = function () {\r\n settlementModalInstance.close();\r\n }\r\n \r\n vm.settlemenTicket = function (status, ticketId, remarks, userId) {\r\n settlementModalInstance.close();\r\n var settlementData = {};\r\n settlementData.PaymentStatus = status;\r\n settlementData.ReqUserId = loggedInUserId;\r\n settlementData.TicketId = ticketId;\r\n settlementData.Remarks = remarks;\r\n settlementData.FEId = userId;\r\n settlementData.Status = \"Done\";\r\n // $log.log('settlementData', settlementData);\r\n JobTicketViewService.updateTicketSettlement(settlementData, token, loggedInUserId, function (res) {\r\n \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job settlement successfully done.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to settlement payment. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n \r\n \r\n vm.DeleteTicket = function () {\r\n var ticketId = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId.push(t.TicketId);\r\n }\r\n })\r\n // ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n \r\n if (ticketId != null && ticketId.length == 1) {\r\n JobTicketViewService.DeleteTickets(loggedInUserId, ticketId, token).then(function (resp) {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n \r\n if (resp && resp.status == 202) {\r\n vm.showSuccess(\"Deleted\", resp.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n \r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"You can delete only one ticket at a time.\");\r\n }\r\n }\r\n \r\n \r\n vm.AutoSchedule = function () {\r\n var ticketId = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId.push(t.TicketId);\r\n }\r\n })\r\n \r\n if (ticketId != null) {\r\n JobTicketViewService.SetTicketExecutionMode(loggedInUserId, \"Auto\", ticketId, token).then(function (resp) {\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false; \r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Scheduled Tickets\", resp.data.toString());\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else {\r\n vm.showFailure(\"Failed to schedule tickets\", resp.data.toString());\r\n }\r\n })\r\n } \r\n }\r\n\r\n\r\n \r\n \r\n vm.OpenFollowUpModel = function (ticketId) {\r\n vm.followup = '';\r\n vm.tickId = ticketId;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n }\r\n \r\n vm.CloseFollowUpModel = function () {\r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = '';\r\n vm.primaryHoldReason='';\r\n vm.primaryHoldRemark='';\r\n vm.followFiles = null; \r\n FollowUpModel.close();\r\n }\r\n \r\n vm.RejectJobModel = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n RejectJobModel = $uibModal.open({\r\n templateUrl: 'Rejectjob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n \r\n vm.ConvertToNewJob = function(currentJOb){\r\n \r\n vm.CurrentJob = currentJOb; \r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"New\" \r\n };\r\n JobTicketViewService.ConvertToNewJob(data, token, loggedInUserId, function (res) { \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job converted successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to convert job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n \r\n vm.CloseRejectModel = function () {\r\n RejectJobModel.close();\r\n }\r\n\r\n\r\n //\r\n $scope.attachmentForFollowUp = function(files){\r\n var file = files.files[0]; \r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.msg|\\.pdf|\\.bmp|\\.xps)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.followFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png,.msg,.bmp,xps only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.DocEdit = function(index){\r\n vm.followFiles=null; \r\n }\r\n\r\n vm.GetFollowupReasons = function(){\r\n CentralHDAllTicketListService.GetReasonsByStatus(loggedInUserId, token, 'FollowUp').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForFU = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetFollowupReasons();\r\n\r\n vm.GetHoldReasons = function(){\r\n CentralHDAllTicketListService.GetReasonsByStatus(loggedInUserId, token, 'Hold').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForHold = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetHoldReasons();\r\n\r\n\r\n var ModalInstanceCtrlFollowUp = function ($scope, $rootScope, $uibModalInstance) {\r\n vm.updateFollowUpStatus = function () {\r\n var data = {};\r\n data = {\r\n \"userId\": loggedInUserId,\r\n \"dateTime\": \"\",\r\n \"activity\": \"\",\r\n \"action\": \"FOLLOW_UP\",\r\n \"userName\": \"\",\r\n \"ticketId\": vm.tickId,\r\n \"primaryReason\": vm.primaryFollowUpReason,\r\n \"SecondryReason\": \"\",\r\n \"ReasonComment\": vm.primaryFollowUpRemark\r\n }\r\n if(vm.followFiles != null) {\r\n CentralHDAllTicketListService.TicketFollowUp(data,vm.followFiles, token, loggedInUserId, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.CloseFollowUpModel();\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n else {\r\n CentralHDAllTicketListService.TicketFollowUpWithoutDoc(data, token, loggedInUserId, function (res) {\r\n if (res) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n }\r\n vm.CloseFollowUpModel();\r\n });\r\n }\r\n }\r\n }\r\n\r\n vm.OpenHoldUpModel = function (ticketId, holdstatus) {\r\n if(holdstatus == 'Unhold')\r\n {\r\n vm.UpdateHoldingStatus(ticketId, holdstatus);\r\n } \r\n else{\r\n vm.tickId = ticketId;\r\n $scope.holdstatus =holdstatus;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'HoldJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n } \r\n }\r\n\r\n vm.UpdateHoldingStatus = function (ticketId, holdingStatus) {\r\n CentralHDAllTicketListService.UpdateHoldingStatus(loggedInUserId, ticketId, holdingStatus,vm.primaryHoldReason,vm.primaryHoldRemark, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n vm.showSuccess('Job Hold/Unhold Status', 'Job has been updated successfully');\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 2000);\r\n vm.CloseFollowUpModel();\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure('Failed', resp.data.Message);\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000); \r\n } else {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n }\r\n }, function (err) {\r\n vm.showFailure('Job Hold/Unhold Status', 'Unable to update job, server is not responding correctly.');\r\n })\r\n }\r\n vm.ApproveJob = function () { \r\n if (vm.RatingOfTicket) {\r\n var jobwinrate = 0.0;\r\n if(vm.Winrate == null || vm.Winrate == 0 || vm.Winrate =='')\r\n jobwinrate = 0.0;\r\n else\r\n jobwinrate = vm.Winrate; \r\n \r\n approveModalInstance.close();\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Approved\",\r\n \"JobWinRate\" : parseFloat(jobwinrate.toFixed(2)),\r\n \"TechnicianRating\": vm.RatingOfTicket.toString(),\r\n \"ApprovalRemark\": vm.approvalRemark.toString(),\r\n \"IsSafetyAudit\":vm.IsSafetyAudit\r\n };\r\n JobTicketViewService.ApproveJob(data, token, loggedInUserId, function (res) { \r\n if(res && res.data==\"Please enter atleast one Line Item to Approve this job \")\r\n {\r\n vm.showFailure(\"Success\", \"Please enter atleast one Line Item to Approve this job.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n }\r\n else if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job approved successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n \r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n } else {\r\n vm.ratingwarning=\"Please rate the technician.\";\r\n //approveModalInstance.close();\r\n }\r\n }\r\n vm.AcceptJob = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Accepted\" \r\n };\r\n JobTicketViewService.AcceptJob(data, token, loggedInUserId, function (res) { \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job accepted successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to accept job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n \r\n vm.reAssignJob = function (currentJOb) {\r\n \r\n vm.CurrentJob = currentJOb;\r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Assigned\" \r\n };\r\n JobTicketViewService.AcceptJob(data, token, loggedInUserId,function (res) {\r\n \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job reassigned successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to reassign job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n \r\n vm.cloneTicket = function (currentJOb) {\r\n \r\n vm.CurrentJob = currentJOb;\r\n if(vm.VerticalName == 'Telecom')\r\n {\r\n $state.go('index.JobBidCreation', { \r\n cloneticketid:vm.CurrentJob.TicketId \r\n },\r\n {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n }); \r\n }\r\n else\r\n {\r\n $state.go('index.NewJobCreation', { \r\n },\r\n {\r\n reload: true,\r\n inherit: false,\r\n notify: true\r\n });\r\n \r\n }\r\n \r\n \r\n }\r\n \r\n vm.RejectJob = function () {\r\n if(!vm.RejectionRemark)\r\n {\r\n vm.showFailure(\"Failed\", \"Please comment on rejection.\");\r\n return;\r\n }\r\n RejectJobModel.close(); \r\n var data = {\r\n \"ReqUserId\": loggedInUserId,\r\n \"TicketId\": vm.CurrentJob.TicketId,\r\n \"Status\": \"Rejected\", \r\n \"RejectionRemark\": vm.RejectionRemark.toString()\r\n };\r\n JobTicketViewService.RejectJob(data, token, loggedInUserId, function (res) { \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job rejected successfully.\")\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to approve job. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n \r\n }\r\n \r\n vm.PullBackTicket = function (ticketId) {\r\n JobTicketViewService.PullBackTicket(loggedInUserId, ticketId, token).then(function (resp) {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n })\r\n }\r\n\r\n \r\n vm.downloadReport = function (ticketId, templateName) {\r\n if (templateName == 'Water Testing') {\r\n var urlWithFeasible = PublicApiURL + '/api/Report/' + ticketId + '/DownloadReportByTemplateName?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlWithFeasible, '_blank')\r\n } else {\r\n var urlForNonFeasible = PublicApiURL + '/api/Report/' + ticketId + '/Report?reqUserId=' + $localStorage.loggedInUserId;\r\n $window.open(urlForNonFeasible, '_blank')\r\n }\r\n }\r\n\r\n //download PDF \r\n vm.downloadReportPDF = function (ticketId,OnSiteReport) { debugger\r\n if (OnSiteReport != null) { \r\n var urlWithFeasible = PublicApiURL + '/api/Report/GeneratePdfOnSiteReportForMultipleTickets?TicketIds=' + ticketId;\r\n $window.open(urlWithFeasible, '_blank')\r\n } else {\r\n // var urlForNonFeasible = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketIds=' + ticketId;\r\n // $window.open(urlForNonFeasible, '_blank')\r\n vm.downloadOnSiteReport(ticketId);\r\n }\r\n }\r\n\r\n \r\n\t\tvm.pdfimage = \"\";\r\n\t\tvm.DocumentAvailableMessage=\"\";\t\r\n\t\tvm.downloadOnSiteReport = function (ticketId) { debugger\r\n\t\t\tvm.PDFView();\r\n\t\t\t\r\n\t\t\t// var PreviewConsolidatedInvoiceList = previewSelectedObj;\r\n\t\t\tJobTicketViewService.downloadOnSiteReport(loggedInUserId, token, ticketId).then(function (resp) {\r\n\t\t\t\t// var responseDataList=[];\r\n\t\t\t\tvm.responseDataList = resp.data;\r\n\t\t\t\t// for(var i=0; i 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n JobTicketViewService.downloadMultipleReports(loggedInUserId, ticketId, reportMapperId, correlated);\r\n vm.showAutoSchduleBtn = false;\r\n vm.downloadFlag = false;\r\n vm.downloadReportBtn = false;\r\n vm.deleteFlag = false;\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n }\r\n \r\n vm.downloadInvoiceReport = function () {\r\n var ticketId = \"\";\r\n var correlated = $localStorage.accountConfig.CorrelatedReports;\r\n // var reportMapperId = $localStorage.accountConfig.ReportMapperId;\r\n angular.forEach(vm.ticketList, function (t) {\r\n if (t.checked) {\r\n ticketId += t.TicketId + \",\";\r\n }\r\n })\r\n ticketId = ticketId.length > 0 ? ticketId.substring(0, ticketId.length - 1) : ticketId;\r\n JobTicketViewService.downloadInvoice(loggedInUserId, ticketId, correlated);\r\n }\r\n \r\n vm.showMultipleDownloadButton = function () {\r\n var ticketSelected = false;\r\n var IsReportMapper = false; \r\n vm.invoiceFlag = false;\r\n vm.deleteFlag = false;\r\n vm.actionFlag = false;\r\n var actionFlagList = [];\r\n var deleteFlagList = [];\r\n angular.forEach(vm.ticketList, function (t) {\r\n ticketSelected = ticketSelected || t.checked;\r\n if(t.checked){\r\n if(t.reportMapperId)\r\n {\r\n IsReportMapper = true;\r\n }\r\n else\r\n {\r\n IsReportMapper = false; \r\n }\r\n }\r\n if (vm.Role == 'Vendor Manager') {\r\n if (t.checked && t.SkillSet == 'Water Lab Test' && t.TicketStatus == 'Completed') {\r\n vm.invoiceFlag = true;\r\n } else if (t.checked && t.AcceptDate != null) {\r\n actionFlagList.push(false);\r\n } else if (t.checked && t.AcceptDate == null && t.TicketStatus == 'Rejected') {\r\n actionFlagList.push(false);\r\n } else if (t.checked && t.AcceptDate == null && t.TicketStatus == 'Assigned') {\r\n actionFlagList.push(true);\r\n }\r\n } else {\r\n if (t.checked && t.SkillSet == 'Water Lab Test' && t.TicketStatus == 'Completed') {\r\n vm.invoiceFlag = true;\r\n } else if (t.checked && t.TicketStatus == 'New') {\r\n deleteFlagList.push(true);\r\n // vm.deleteFlag = true;\r\n } else if (t.checked && t.TicketStatus != 'New') {\r\n // vm.deleteFlag = false;\r\n deleteFlagList.push(false);\r\n }\r\n }\r\n \r\n \r\n })\r\n if (deleteFlagList.includes(false)) {\r\n vm.deleteFlag = false;\r\n } else if (deleteFlagList.includes(true)) {\r\n vm.deleteFlag = true;\r\n } if (actionFlagList.includes(false)) {\r\n vm.actionFlag = false\r\n } else {\r\n vm.actionFlag = true;\r\n }\r\n return IsReportMapper && ticketSelected && $localStorage.accountConfig != null && $localStorage.accountConfig.CorrelatedReports != null && $localStorage.accountConfig.ReportMapperId != null;\r\n }\r\n // vm.showInvoiceButton = function () {\r\n // var invoiceFlag = false;\r\n // angular.forEach(vm.ticketList, function (t) {\r\n // if (t.checked && t.SkillSet == 'Water Lab Test' && t.TicketStatus == 'Completed') {\r\n // var invoiceFlag = true;\r\n // return invoiceFlag;\r\n // } \r\n // })\r\n // return invoiceFlag;\r\n // }\r\n \r\n vm.hideSingleDownloadButton = function () {\r\n return $localStorage.accountConfig != null && $localStorage.accountConfig.CorrelatedReports != null && $localStorage.accountConfig.ReportMapperId != null;\r\n }\r\n \r\n vm.getSkills = function () {\r\n JobTicketViewService.getSkills(loggedInUserId, token, function (skills) {\r\n vm.skills = skills;\r\n //vm.skills.unshift({ \"SkillName\": \"All Job Types\" }); \r\n if (vm.path == 'isTicketView') {\r\n vm.searchJobTypeText = $localStorage.AllJobType;\r\n // vm.searchStatusText = $localStorage.AllJobStatus;\r\n } \r\n }, vm.showFailure);\r\n \r\n \r\n \r\n }\r\n vm.getSkills();\r\n \r\n vm.isApprovalPermission = function (defaultValue) {\r\n if (vm.accountConfig && vm.accountConfig['ApprovalPermission'] != null) {\r\n return vm.accountConfig['ApprovalPermission'].split(\",\").indexOf($localStorage.loggedInUser_Role) > -1;\r\n }\r\n return defaultValue;\r\n }\r\n \r\n vm.OpenBillModal = function (ticketId) {\r\n vm.BillDetails = [];\r\n vm.TotalExpense = '';\r\n JobTicketViewService.getBillExpenseByTicketID(loggedInUserId, ticketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n angular.forEach(resp.data, function (d) {\r\n vm.BillDetails = d.Bills;\r\n vm.TotalExpense = d.ExpenseAmount;\r\n })\r\n }\r\n if (vm.TotalExpense != 0) {\r\n BillModal = $uibModal.open({\r\n templateUrl: 'bill_model.html',\r\n scope: $scope\r\n })\r\n }\r\n })\r\n }\r\n \r\n vm.CloseBillModal = function () {\r\n BillModal.close();\r\n }\r\n \r\n vm.getPicUrl = function (pic) {\r\n return ImageUrl + '/' + pic;\r\n }\r\n\r\n vm.ReportpdfUrl = function (ticketId) {\r\n JobTicketViewService.getPdfReport(loggedInUserId, ticketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n const linkSource = resp.data.Base64Data;\r\n const downloadLink = document.createElement(\"a\");\r\n const fileName = resp.data.ReportName;\r\n downloadLink.href = linkSource;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n } \r\n })\r\n }\r\n\r\n \r\n vm.reloadData = function(){\r\n var resetPaging = true;\r\n vm.dtInstance.reloadData(resetPaging);\r\n }\r\n //Cancel and clone ticket\r\n vm.CancleAndCloneTicket = function(ticket){\r\n var ticketData = ticket;\r\n $state.go('index.JobBidCreation', { cloneticketid:ticketData.TicketId },\r\n {reload: true,inherit: false,notify: true}); \r\n }\r\n vm.CancelTicket = function(ticketId, currentJOb){\r\n vm.CurrentJob = currentJOb;\r\n vm.RatingOfTicket = '';\r\n vm.AuditTicketId = vm.CurrentJob.TicketId;\r\n if(vm.CurrentJob.TicketStatus==\"Completed\" && vm.CurrentJob.SubStatus ==\"TBC\"){ \r\n vm.PrimaryReason = vm.CurrentJob.PrimaryReason;\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'tbc_confirm_cancelation_model.html',\r\n scope: $scope\r\n });\r\n }\r\n else\r\n {\r\n \r\n vm.IsCancelFromServer = vm.accountConfig.IsCancelFromServer;\r\n if(vm.IsCancelFromServer && (vm.CurrentJob.TicketStatus==\"Assigned\" || vm.CurrentJob.TicketStatus==\"New\")){\r\n CentralHDAllTicketListService.GetCancellationReasons(vm.CurrentJob.TicketStatus, loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.CancellationReasonsList=resp.data;\r\n cancellationReasonsModalInstance = $uibModal.open({\r\n templateUrl: 'cancellation_reasons_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n }, function () { \r\n });\r\n }\r\n else{\r\n CentralHDAllTicketListService.CancelTicket(loggedinUser,ticketId,token).then(function(res){\r\n if(res.status == 202 && res.statusText =='Accepted'){\r\n vm.showSuccess('Success',res.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000);\r\n }\r\n else if(res.status == 206)\r\n {\r\n vm.showFailure('Failed',res.data);\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000);\r\n }\r\n }); \r\n }\r\n }\r\n }\r\n vm.OpenTicketRatingModal = function (currentTicketJob) \r\n { \r\n \r\n JobTicketViewService.GetCSATRatingByTicketID(loggedInUserId, currentTicketJob.TicketId, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TicketRatingList=resp.data;\r\n ticketRatingModalInstance = $uibModal.open({\r\n templateUrl: 'ticket_rating_model.html',\r\n scope: $scope\r\n });\r\n }\r\n \r\n }, function () {\r\n \r\n });\r\n } \r\n \r\n \r\n vm.TicketRatingCloseModal = function () {\r\n ticketRatingModalInstance.close();\r\n }\r\n vm.TBCCancelationAudit = function()\r\n {\r\n approveModalInstance.close();\r\n JobTicketViewService.TBCCancelationAudit(vm.TBCCancelationModel,vm.AuditTicketId,loggedInUserId,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000); \r\n }\r\n });\r\n }\r\n vm.CancellationReasonsCloseModal = function () {\r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons=\"\";\r\n vm.CancellationReasonsRemark=\"\";\r\n vm.HintDisplay=\"\";\r\n }\r\n vm.UpdateCancellationReasons = function()\r\n {\r\n \r\n vm.cancellationReasonsForm.submitted = true;\r\n if (vm.cancellationReasonsForm.$valid) {\r\n \r\n var CancellationReasonsModel =\r\n {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"CancelReason\": vm.CancellationReasons,\r\n \"CancelRemark\": vm.CancellationReasonsRemark\r\n }\r\n JobTicketViewService.UpdateJobServerCancel(CancellationReasonsModel,loggedInUserId, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(resp.data.Message); \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n\r\n // vm.getAllJobTicketsCopy(supervisorId, startDate, endDate, itemNames, itemValues, templateItemNames, templateItemValues);\r\n \r\n }, 2000); \r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons=\"\";\r\n vm.CancellationReasonsRemark=\"\";\r\n vm.HintDisplay=\"\";\r\n }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n \r\n vm.ViewProfile = function (UserId,UserType) {\r\n var IsUser = false;\r\n if(UserType && UserType == 'Freelancer'){\r\n JobTicketViewService.getUserProfileData(supervisorId,UserId, token).then(function(res){\r\n if(res.data && res.status == 200){\r\n vm.UserProfileData = res.data;\r\n vm.customerrating = Number(vm.UserProfileData.CustomerRating).toFixed(1);\r\n vm.AddPreferredVendorModal = $uibModal.open({\r\n templateUrl: 'UserProfile.html',\r\n scope: $scope,\r\n windowClass:'schedulerModal',\r\n reload:true\r\n });\r\n }else{\r\n vm.showFailure('Failed',res.data.Message);\r\n }\r\n \r\n });\r\n }else if(UserType && UserType == 'Fixed Team'){\r\n JobTicketViewService.getFixedUserProfileData(supervisorId,UserId, token).then(function(res){\r\n if(res.data && res.status == 200){\r\n vm.UserProfileData = res.data;\r\n vm.AddPreferredVendorModal = $uibModal.open({\r\n templateUrl: 'UserProfile.html',\r\n scope: $scope,\r\n windowClass:'schedulerModal',\r\n reload:true\r\n });\r\n }else{\r\n vm.showFailure('Failed',res.data.Message);\r\n }\r\n \r\n });\r\n }else{\r\n JobTicketViewService.getUserProfileData(supervisorId,UserId, token).then(function(res){\r\n if(res.data && res.status == 200){\r\n vm.UserProfileData = res.data;\r\n if(vm.UserProfileData){\r\n vm.AddPreferredVendorModal = $uibModal.open({\r\n templateUrl: 'UserProfile.html',\r\n scope: $scope,\r\n windowClass:'schedulerModal',\r\n reload:true\r\n });\r\n }else{\r\n vm.showFailure('Failed','User Not found');\r\n }\r\n }else{\r\n vm.showFailure('Failed',res.data.Message);\r\n }\r\n \r\n });\r\n }\r\n \r\n \r\n }\r\n \r\n vm.UserProfileClose = function(){\r\n vm.AddPreferredVendorModal.close();\r\n }\r\n vm.downloadDataCaptureImage = function(){\r\n var ticket = '';\r\n for(var i=0;i 0) {\r\n angular.forEach(vm.skillData, function (s) {\r\n vm.skillsWithPipe += s.SkillName + \"|\";\r\n });\r\n vm.skillsWithPipe = vm.skillsWithPipe.length > 0\r\n ? vm.skillsWithPipe.substring(0, vm.skillsWithPipe.length - 1) : \"\";\r\n }\r\n }\r\n });\r\n }\r\n vm.loadAllSkills();\r\n\r\n vm.sortClassUser = function (col) {\r\n if (vm.OrderBy == col) {\r\n if (vm.OrderSeq == 'desc') {\r\n return 'fa fa-arrow-down';\r\n } else {\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n function getAllStates() {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n\r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n\r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n vm.filterStatusForJObs = function (status) {\r\n vm.JobcountbyStatus = status;\r\n vm.wsersFilterArray();\r\n PageIndex = 1;\r\n vm.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype);\r\n }\r\n\r\n vm.CloseComboModel = function () {\r\n openComboModal.close();\r\n vm.bundlesum = 0;\r\n }\r\n\r\n if (vm.loggedInUserRole == \"Dispatch Supervisor\" || vm.loggedInUserRole == \"OnBoarding Supervisor\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\"];\r\n }\r\n else {\r\n if (vm.loggedInUserRole == \"Dispatch Manager\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Private\", \"Freelancer Vendor\", \"Dispatch Supervisor\", \"Freelancer Dispatcher\", \"Dispatch Team Lead\"];\r\n }\r\n else if (vm.loggedInUserRole == \"OnBoarding Manager\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"OnBoarding Supervisor\"];\r\n }\r\n else if (vm.loggedInUserRole == \"Dispatch Team Lead\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\", \"Freelancer Dispatcher\", \"Dispatch Supervisor\"];\r\n }\r\n else if (vm.loggedInUserRole == \"Administrator\") {\r\n vm.UserTypeList = [\"Project Manager\", \"Supervisor\", \"Freelancer\", \"Freelancer Vendor\", \"Private\"];\r\n }\r\n else if (vm.loggedInUserRole == \"Project Manager\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\", \"Supervisor\"];\r\n }\r\n else if (vm.loggedInUserRole == \"Supervisor\") {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\"];\r\n }\r\n }\r\n\r\n vm.Applyfilter = function () {\r\n $scope.UserTablepagination = {};\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n $scope.hideFilter();\r\n vm.GetOnBoardingTaskByFilters();\r\n vm.GetOnBoardingTaskCounts();\r\n }\r\n\r\n vm.PDFView = function (page) {\r\n vm.pdfimage = \"\";\r\n vm.IsLoadSucessfull = false;\r\n $scope.selected = null;\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.makeUserMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.name + \"

\" + ' ' + vm.contactnumber);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n\r\n }\r\n vm.makeJobMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.customerJobCard.ConsumerName + \"

\" + ' ' + vm.customerJobCard.JobId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.customerJobCard.ConsumerContact);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n }\r\n function initMap() {\r\n var pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n pointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n // center = new google.maps.LatLng(51.3, 0.8),\r\n myOptions = {\r\n zoom: 8,\r\n zoomControl: false,\r\n scaleControl: true,\r\n mapTypeControl: false,\r\n streetViewControl: false,\r\n gestureHandling: 'greedy',\r\n // center: center,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n },\r\n\r\n map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n // Instantiate a directions service.\r\n directionsService = new google.maps.DirectionsService,\r\n directionsDisplay = new google.maps.DirectionsRenderer({\r\n map: map\r\n }),\r\n duration = document.getElementById('duration');\r\n distance = document.getElementById('distance');\r\n flightPath = new google.maps.Polyline({\r\n path: [pointA, pointB],\r\n strokeColor: 'red',\r\n });\r\n $scope.InfoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n // click on marker B to get route from A to B\r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n var travelMode = \"DRIVING\";\r\n var icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n }\r\n function calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map) {\r\n var selectedMode = \"DRIVING\";\r\n directionsService.route({\r\n origin: pointA,\r\n destination: pointB,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n travelMode: google.maps.TravelMode[selectedMode]\r\n }, function (response, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n new google.maps.DirectionsRenderer({\r\n map: map,\r\n directions: response,\r\n suppressMarkers: true,\r\n polylineOptions: {\r\n strokeColor: \"#000000\"\r\n }\r\n });\r\n var leg = response.routes[0].legs[0];\r\n distance.innerHTML = response.routes[0].legs[0].distance.text;\r\n duration.innerHTML = response.routes[0].legs[0].duration.text;\r\n vm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n vm.makeJobMarker(leg.start_location, icons.start, map);\r\n vm.makeUserMarker(leg.end_location, icons.end, map);\r\n } else {\r\n window.alert('Directions request failed due to ' + status);\r\n }\r\n });\r\n }\r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n UIURL + '/assets/images/patterns/JOb_icon.png',\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/delivery-man1.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n\r\n vm.sortColumn = function (col) {\r\n vm.OrderBy = col;\r\n if (vm.Sort == 'desc') {\r\n vm.Sort = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n } else {\r\n vm.Sort = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.GetOnBoardingTaskByFilters();\r\n };\r\n\r\n // remove and change class\r\n vm.sortClass = function (col) {\r\n if (vm.OrderBy == col) {\r\n if (vm.Sort == 'desc') {\r\n return 'fa fa-arrow-down';\r\n } else {\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n vm.closeSearchText = function () {\r\n vm.taskskill = '';\r\n vm.AssignedTo = '';\r\n vm.ExceptionType = '';\r\n vm.City = '';\r\n vm.taskPincode = '';\r\n vm.State = '';\r\n vm.taskStatus = '';\r\n vm.SearchByConsumerName = '';\r\n vm.accountId = '';\r\n vm.State = '';\r\n vm.searchTag = '';\r\n vm.City = '';\r\n vm.GetOnBoardingTaskByFilters();\r\n vm.GetOnBoardingTaskCounts();\r\n }\r\n\r\n\r\n $scope.open360ViewBroadcaste = function () {\r\n angular.element('#div1').addClass(\"alpha\");\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n $scope.Userpagination = {};\r\n PageIndex = 1;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.GetOnBoardingTaskByFilters();\r\n vm.GetOnBoardingTaskCounts();\r\n };\r\n\r\n vm.Get360TeamProfileData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360ProfileData(loggedinUser, teamid, token).then(function (resp) {\r\n if (resp.data) {\r\n $scope.userSingle();\r\n }\r\n vm.teamdata = resp.data;\r\n vm.AvgRating = vm.teamdata.userProfile.AverageRating;\r\n vm.ReviewsList = vm.teamdata.userProfile.Reviews\r\n vm.teamdata.ratingStars = vm.getRatingStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.blankStars = vm.getBlankStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.avgratingStars = vm.getAvgRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.avgblankStars = vm.getAvgBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n if (vm.teamdata.userProfile.ContactNumber) {\r\n vm.teamdata.userProfile.ContactNumber = vm.teamdata.userProfile.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n\r\n if (vm.teamdata.userProfile.Reviews) {\r\n vm.teamdata.userProfile.Reviews.forEach(function (element, i) {\r\n vm.teamdata.userratingStars = vm.getUserRatingStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n vm.teamdata.userblankStars = vm.getUserBlankStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n element.arrayRating = vm.teamdata.userratingStars;\r\n element.blankRating = vm.teamdata.userblankStars;\r\n });\r\n }\r\n\r\n vm.TechnicianRating = Number(vm.teamdata.userProfile.Ratings.TechnicianRating).toFixed(1);\r\n $timeout(function () {\r\n displayTotals();\r\n }, 300);\r\n }, function () {\r\n })\r\n }\r\n\r\n vm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getAvgRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getAvgBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getUserRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getUserBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n $scope.totalWS = 0;\r\n $scope.wsPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function (userId) {\r\n $scope.wsPerPage = vm.userPageListCount;\r\n uPageSize = $scope.wsPerPage;\r\n $scope.WSTablePageChanged($scope.Userpagination.current);\r\n\r\n uPageIndex = $scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n vm.wsersFilterArray();\r\n vm.Get360WorkSummary(loggedinUser, token, userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n }\r\n\r\n uPageIndex = $scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n if (witemNames != 'Search') {\r\n vm.wsersFilterArray();\r\n }\r\n\r\n vm.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n\r\n\r\n vm.wsersFilterArray = function () {\r\n witemNames = \"\";\r\n witemValues = \"\";\r\n\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null) {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n } else {\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n }\r\n }\r\n if (vm.userNameSearch) {\r\n if (witemNames) {\r\n witemNames = witemNames + ',Search';\r\n witemValues = witemValues + \",\" + vm.userNameSearch;\r\n }\r\n else {\r\n witemNames = 'Search';\r\n witemValues = vm.userNameSearch;\r\n }\r\n }\r\n\r\n if (vm.JobcountbyStatus) {\r\n if (witemNames) {\r\n witemNames = witemNames + ',Status';\r\n witemValues = witemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else {\r\n witemNames = 'Status';\r\n witemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n // apply user rating to all displays\r\n // add star ratings to an array\r\n var starRating = document.querySelectorAll(\".fa-star\"),\r\n ratingTotal = document.querySelectorAll(\".rating-total\");\r\n\r\n // convert ratingTotal HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n // display initial rating totals\r\n // displayTotals();\r\n\r\n // use event listener to record changes to user rating\r\n starRating.forEach(function (star) {\r\n star.addEventListener(\"change\", recordRating);\r\n })\r\n\r\n function recordRating(event) {\r\n // use indexOf to identify selected user rating\r\n var userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n // define selected rating to adjust display totals\r\n var selectedIndex;\r\n\r\n starRating.forEach(function (item, index) {\r\n // add or remove .active class based upon selected user rating\r\n if (index < userRating + 1) {\r\n starRating[index].classList.add(\"active\");\r\n selectedIndex = index;\r\n } else {\r\n starRating[index].classList.remove(\"active\");\r\n }\r\n\r\n displayTotals(selectedIndex);\r\n });\r\n }\r\n vm.countForStatus = 50;\r\n // display star rating totals from html custom data-\r\n function displayTotals(selectedIndex) {\r\n var barChart = document.querySelectorAll(\".bar\"),\r\n displaySummary = document.querySelectorAll(\".summary\"),\r\n numRatings = 0,\r\n numRatingsValue = 0;\r\n\r\n // convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseBarChart = Array.from(barChart).reverse();\r\n\r\n reverseRatingTotal.forEach(function (total, index) {\r\n if (index == selectedIndex) {\r\n // add selected rating to display total\r\n total.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n // adjust selected bar width\r\n reverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n } else {\r\n // display unselected totals\r\n total.innerHTML = total.getAttribute(\"data-rating-count\");\r\n // adjust unselected bar widths\r\n reverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n }\r\n // count total number and value of ratings\r\n numRatings += parseInt(total.innerHTML);\r\n numRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n });\r\n\r\n // display rating average and total\r\n ratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n // displaySummary[0].innerHTML = ratingsAverage + \" average based on \" + numRatings + \" reviews.\";\r\n }\r\n\r\n vm.Get360VendorTeamData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedinUser, teamid, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n vm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.wsTicketList = resp.data.workSummaryData;\r\n $scope.totalWS = resp.data.WorkSummaryTotalCount;\r\n if (vm.wsTicketList.length < vm.userPageListCount)\r\n vm.wsListLength = $scope.totalWS;\r\n else\r\n vm.wsListLength = uPageIndex * vm.userPageListCount;\r\n if (uPageIndex == 1)\r\n vm.wspageindexCount = 1;\r\n else\r\n vm.wspageindexCount = (((uPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n $scope.totalFinList = 0;\r\n $scope.usersPerPage = vm.financePageListCount;\r\n $scope.Financepagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changefinancePageListCount = function () {\r\n $scope.usersPerPage = vm.financePageListCount;\r\n fPageSize = $scope.usersPerPage;\r\n $scope.FinanceTablePageChanged($scope.Financepagination.current);\r\n vm.selectAll = false;\r\n\r\n fPageIndex = $scope.Financepagination.current;\r\n $scope.FinanceTablePageChanged = function (newPage) {\r\n fPageIndex = newPage;\r\n vm.FinanceFilterArray();\r\n vm.GetFinancialSummary(loggedinUser, token, vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n }\r\n\r\n fPageIndex = $scope.Financepagination.current;\r\n $scope.FinanceTablePageChanged = function (newPage) {\r\n fPageIndex = newPage;\r\n if (uitemNames != 'Search') {\r\n vm.FinanceFilterArray();\r\n }\r\n\r\n vm.GetFinancialSummary(loggedinUser, token, vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n\r\n vm.FinanceFiltersList = [];\r\n vm.GetFinancialSummary = function () {\r\n DashboardService.GetFinancialSummary(loggedinUser, token, vm.userId, fnitemNames, fnitemValues, fPageIndex, fPageSize, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.paymentCount = resp.data.paymentsSummary;\r\n vm.FinanceFiltersList = resp.data.financialSummary360.financialLPSummaryList;\r\n $scope.totalFinList = resp.data.financialSummary360.count;\r\n if (vm.FinanceFiltersList.length < vm.financePageListCount)\r\n vm.financeListLength = $scope.totalFinList;\r\n else\r\n vm.financeListLength = fPageIndex * vm.financePageListCount;\r\n if (fPageIndex == 1)\r\n vm.fpageindexCount = 1;\r\n else\r\n vm.fpageindexCount = (((fPageIndex - 1) * vm.financePageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n // vm.ResetUserFilter();\r\n }\r\n\r\n vm.Get360SkillSummary = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for (var i = 0; i < vm.skillsetData.CertificateDetails.length; i++) {\r\n vm.CertimageServices(vm.skillsetData.CertificateDetails[i].TrainingCertificate, i);\r\n }\r\n\r\n if (vm.skillsetData.PreviousCompanyDetailsList) {\r\n for (var i = 0; i < vm.skillsetData.PreviousCompanyDetailsList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter) == 'image')\r\n vm.PreviousCompnyExperienceLetterServices(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter, i);\r\n }\r\n }\r\n\r\n if (vm.skillsetData.UserTrainingList) {\r\n for (var i = 0; i < vm.skillsetData.UserTrainingList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingImage) == 'image')\r\n vm.TrainingImageServices(vm.skillsetData.UserTrainingList[i].TrainingImage, i);\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingAttendance) == 'image')\r\n vm.TrainingAttendanceServices(vm.skillsetData.UserTrainingList[i].TrainingAttendance, i);\r\n }\r\n\r\n }\r\n\r\n // vm.ResetUserFilter();\r\n })\r\n }\r\n vm.GetOnBoardingTaskByFilters = function () {\r\n if (vm.loggedInUserRole == 'Dispatch Manager' || vm.loggedInUserRole == 'Dispatch Supervisor') {\r\n vm.CreationSource = 'Manual';\r\n }\r\n else {\r\n vm.CreationSource = '';\r\n }\r\n data = {\r\n \"Status\": vm.taskStatus,\r\n \"Skill\": vm.taskskill == \"\" ? \"\" : vm.taskskill.join(\"|\"),\r\n \"DateField\": vm.DateField,\r\n \"FromDate\": startDate,\r\n \"ToDate\": endDate,\r\n \"AccountId\": vm.accountId == \"\" ? \"\" : vm.accountId.join(\"|\"),\r\n \"PageIndex\": PageIndex,\r\n \"PageSize\": PageSize,\r\n \"State\": vm.State,\r\n \"City\": vm.City,\r\n \"Pincode\": vm.taskPincode,\r\n \"OrderBy\": vm.OrderBy,\r\n \"Sort\": vm.Sort,\r\n \"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n \"CreationSource\": vm.CreationSource,\r\n \"ExceptionType\": vm.ExceptionType == \"\" ? \"\" : vm.ExceptionType.join(\"|\"),\r\n }\r\n CapacityGapAnalysisService.GetOnBoardingTaskByFilters(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.OnBoardingList = resp.data.OnBoardingResModelList;\r\n $scope.totalTableUsersBG = resp.data.RecordCount;\r\n if (vm.OnBoardingList.length < vm.userPageListCount)\r\n vm.bGVerifyListLength = $scope.totalTableUsersBG;\r\n else\r\n vm.bGVerifyListLength = PageIndex * vm.userPageListCount;\r\n if (PageIndex == 1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n\r\n })\r\n }\r\n vm.GetOnBoardingTaskCounts = function () {\r\n if (vm.loggedInUserRole == 'Dispatch Manager' || vm.loggedInUserRole == 'Dispatch Supervisor') {\r\n vm.CreationSource = 'Manual';\r\n }\r\n else {\r\n vm.CreationSource = '';\r\n }\r\n data = {\r\n \"Status\": vm.taskStatus,\r\n \"Skill\": vm.taskskill == \"\" ? \"\" : vm.taskskill.join(\"|\"),\r\n \"DateField\": vm.DateField,\r\n \"FromDate\": startDate,\r\n \"ToDate\": endDate,\r\n \"AccountId\": vm.accountId == \"\" ? \"\" : vm.accountId.join(\"|\"),\r\n \"PageIndex\": PageIndex,\r\n \"PageSize\": PageSize,\r\n \"State\": vm.State,\r\n \"City\": vm.City,\r\n \"Pincode\": vm.taskPincode,\r\n \"OrderBy\": vm.OrderBy,\r\n \"Sort\": vm.Sort,\r\n \"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n \"CreationSource\": vm.CreationSource,\r\n \"ExceptionType\": vm.ExceptionType == \"\" ? \"\" : vm.ExceptionType.join(\"|\"),\r\n }\r\n CapacityGapAnalysisService.GetOnBoardingTaskCountsByFilters(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TotalTask = resp.data.TotalTask;\r\n vm.OpenTask = resp.data.OpenTask;\r\n vm.ClosedTask = resp.data.ClosedTask;\r\n vm.InProgressTask = resp.data.InProgressTask;\r\n }\r\n })\r\n }\r\n\r\n vm.GetOnBoardingTaskByFilters();\r\n vm.GetOnBoardingTaskCounts();\r\n\r\n vm.GetReviewAndRatings = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.GetReviewAndRatings(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.reviewData = resp.data;\r\n vm.teamdata.InstallationratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.teamdata.InstallationblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.teamdata.SafetyratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.teamdata.SafetyblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.teamdata.VisitratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.teamdata.VisitblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.teamdata.CourteousratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.teamdata.CourteousblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.teamdata.ProratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.teamdata.ProblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.teamdata.ServiceratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n vm.teamdata.ServiceblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n // vm.ResetUserFilter();\r\n })\r\n }\r\n\r\n\r\n vm.Get360VendorTeamData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n\r\n vm.GetToolsAndAssets = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.GetToolsAndAssets(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.assetData = resp.data;\r\n // vm.ResetUserFilter();\r\n })\r\n }\r\n // vm.toBeAssigned = [];\r\n vm.implementSelectItemsUsers = function (itemList, scope) {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n scope.selectRowUsers = function (i) {\r\n vm.toBeAssigned = [];\r\n scope.showMinusUsers = false;\r\n scope.selectAllUsers = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n // var TaskAssignModel = { 'TaskIdList': d.TaskId };\r\n vm.toBeAssigned.push(d.TaskId)\r\n scope.showMinusUsers = true;\r\n }\r\n\r\n });\r\n }\r\n scope.applyAllNewJobSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllUsers; \r\n });\r\n }\r\n\r\n scope.resetAllSelect = function () {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n }\r\n }\r\n\r\n vm.implementSelectItemsUsers('OnBoardingList', this);\r\n vm.toBeAssigned = [];\r\n vm.AssignTasks = function (userId) {\r\n angular.forEach(vm.OnBoardingList, function (d) {\r\n if (d.checked) {\r\n vm.toBeAssigned.push(d.TaskId)\r\n }\r\n })\r\n if (vm.toBeAssigned == [] || vm.toBeAssigned == undefined || vm.toBeAssigned.length < 1) {\r\n vm.showFailure(\"Failed\", 'Please select atleast 1 task to assign');\r\n } else {\r\n vm.assignButtonDisable = true;\r\n CapacityGapAnalysisService.AssignTaskToUser(vm.toBeAssigned, userId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\", \"Tasks assigned successfully\");\r\n $timeout(function () {\r\n vm.GetOnBoardingTaskByFilters();\r\n vm.toBeAssigned = [];\r\n vm.assignButtonDisable = false;\r\n scope.resetAllSelect();\r\n }, 2000);\r\n\r\n } else {\r\n vm.showFailure(\"Failed\", \"Tasks could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Tasks could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n })\r\n }\r\n }\r\n\r\n $scope.totalTableUsersBG = 0;\r\n $scope.userTablePerPage = vm.userPageListCount;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeUserPageListCount = function () {\r\n $scope.userTablePerPage = vm.userPageListCount;\r\n PageSize = $scope.userTablePerPage;\r\n $scope.UserTablepageChanged($scope.UserTablepagination.current);\r\n }\r\n\r\n PageIndex = $scope.UserTablepagination.current;\r\n $scope.UserTablepageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetOnBoardingTaskByFilters();\r\n };\r\n\r\n\r\n vm.GetReportingToMeUsers = function () {\r\n SlotAllocationService.GetReportingToMeUsers(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserByFiltersList = resp.data;\r\n }\r\n }, function () {\r\n });\r\n\r\n }\r\n\r\n vm.GetReportingToMeUsers();\r\n\r\n\r\n vm.ProfileEditView = function (userId) {\r\n $state.go('index.RegistrationForm', {\r\n UserId: userId\r\n })\r\n }\r\n\r\n vm.getAllUsersByType = function (value) {\r\n $scope.totalTableUsersBG = 0;\r\n vm.taskStatus = '';\r\n $scope.UserTablepagination = {};\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n $scope.showCalendar = false;\r\n vm.GetOnBoardingTaskByFilters();\r\n vm.GetOnBoardingTaskCounts();\r\n\r\n }\r\n\r\n vm.getAllSlotsByStatus = function (status) {\r\n vm.taskStatus = status;\r\n PageIndex = 1;\r\n vm.GetOnBoardingTaskByFilters();\r\n }\r\n\r\n }\r\n});\r\n\r\nangular.module('inspinia').filter('searchUser', function () {\r\n return function (items, search) {\r\n var filtered = [];\r\n if (search) {\r\n angular.forEach(items, function (item) {\r\n var searchstr = new RegExp(search, \"i\");\r\n if (item.id.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.User_Type.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.city.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.contactnumber.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.name.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.role.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.state.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n });\r\n } else {\r\n filtered = items;\r\n }\r\n return filtered;\r\n }\r\n})\nangular.module('inspinia').service('CentralHelpdeskService', function (ApiURL, FreelancerURL,LocationURL,PublicApiURL, $log, $http,$localStorage,$window) {\r\n\r\n \r\n //state api https://product.mymobiforce.com/publicapi/api/Location/GetAllStates?userId=F00000000000&country=INDIA\r\n this.getState = function (loggedInUserId,token,region) {\r\n var url = PublicApiURL+ '/api/Location/GetAllStates?userId='+loggedInUserId+ '&country='+ region;\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n }\r\n });\r\n }\r\n \r\n\r\n //update Accounts https://product.mymobiforce.com/coreapi/api/CentralHelpDesk/UpdateAllHDAccountConfig\r\n this.UpdateAllHDAccountConfig = function (loggedInUserId,token,InoviceToBillToAndShipToData) { \r\n var url = ApiURL + '/api/CentralHelpDesk/UpdateAllHDAccountConfig';\r\n return $http.put(url, InoviceToBillToAndShipToData, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n //Accounts API\r\n this.getAllAccounts = function (loggedinUser,token) { \r\n var url = ApiURL+ '/api/CentralHelpDesk/GetAllAccountHDConfig';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n }\r\n\r\n //Accounts API\r\n this.getAllAccountsExceptHD = function (loggedinUser,token) { \r\n var url = ApiURL+ '/api/CentralHelpDesk/GetAllAccountExceptHDAccount';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n }\r\n\r\n\r\n \r\n });\nangular.module('inspinia').controller('CentralHelpdeskController', function (CentralHelpdeskService, ReferService, toaster, $filter, $rootScope, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder, DTColumnDefBuilder, DTColumnBuilder, $uibModal, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n vm = this;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n\r\n vm.showAllAccountsExceptHD=[];\r\n vm.showAllAccounts=[];\r\n vm.SelectedAccountName=\"\";\r\n vm.SelectedAccount={};\r\n vm.SelectedAccountHD={};\r\n vm.AccountId=\"\";\r\n vm.AccountSkillSet=[];\r\n vm.AccountLocations=[];\r\n vm.SelectedSkill = '';\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n var token = $localStorage.token; \r\n vm.isShow=true;\r\n vm.showEditList = false;\r\n vm.addMoreAccount = function(){\r\n vm.showEditList = true;\r\n vm.getState(\"INDIA\");\r\n }\r\n vm.EditData=function()\r\n {\r\n vm.getState(\"INDIA\");\r\n }\r\n\r\n //show HD accounts\r\n vm.AccountChangeHD=function (){ \r\n for (var i = 0; i < vm.showAllAccounts.length; i++) {\r\n\t\t\t\tvar AccData = vm.showAllAccounts[i];\r\n if(AccData.AccountName == vm.SelectedAccountHD.AccountName ) {\r\n vm.SelectedAccountHD = AccData;\r\n break;\r\n }\r\n\t\t\t}\r\n\r\n }\r\n\r\n //Allaccounts\r\n vm.getAllAccounts = function ( ) { \r\n\t\r\n CentralHelpdeskService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data) { \r\n if(resp.status==200)\r\n {\r\n vm.showAllAccounts = resp.data;\r\n\r\n }\r\n }\r\n \r\n }, function () {\r\n \r\n });\r\n }\r\n vm.getAllAccounts(); \r\n \r\n \r\n vm.removeAccountDetail = function () {\r\n vm.showEditList = false;\r\n vm.AccountId = '';\r\n vm.AccountSkillSet = [];\r\n vm.AccountLocations = '';\r\n \r\n }\r\n \r\n vm.AccountChange=function (){ \r\n for (var i = 0; i < vm.showAllAccountsExceptHD.length; i++) {\r\n\t\t\t\tvar Acc = vm.showAllAccountsExceptHD[i];\r\n if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n vm.SelectedAccount = Acc;\r\n break;\r\n }\r\n\t\t\t}\r\n\r\n }\r\n\r\n //state \r\n vm.getState = function (region) {\r\n CentralHelpdeskService.getState(loggedinUser, token, region).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.stateList = resp.data.values;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n //getAllAccountsExceptHD\r\n vm.getAllAccountsExceptHD = function ( ) { \r\n\t\r\n CentralHelpdeskService.getAllAccountsExceptHD(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data) {\r\n \r\n if(resp.status==200) {\r\n vm.showAllAccountsExceptHD = resp.data;\t\t\r\n } \r\n }\r\n \r\n }, function () {\r\n \r\n });\r\n }\r\n vm.getAllAccountsExceptHD();\r\n\r\n\r\n \r\n //update accounts\r\n // var PreviewConsolidatedInvoiceList = vm.showAllAccounts;\r\n vm.UpdateAllHDAccountConfig = function(index)\r\n { \r\n \r\n // if (vm.editform.$valid) { \r\n var checkAccount = false;\r\n for (var i = 0; i < vm.showAllAccounts.length; i++) {\r\n var Acc = vm.showAllAccounts[i];\r\n if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n vm.showAllAccounts[i] == vm.SelectedAccount;\r\n vm.showAllAccounts[i].AccountSkillSet = vm.SelectedSkill;\r\n checkAccount = true;\r\n break;\r\n }\r\n }\r\n if(checkAccount == false ) {\r\n vm.SelectedAccount.AccountSkillSet = vm.SelectedSkill;\r\n vm.showAllAccounts.push(vm.SelectedAccount);\r\n }\r\n \r\n CentralHelpdeskService.UpdateAllHDAccountConfig(loggedinUser,token,vm.showAllAccounts).then(function (resp) {\r\n if (resp && resp.data) { \r\n if (resp.status == 200) { \r\n vm.showEditList = false;\r\n $timeout(function () { \r\n vm.getAllAccounts(); \r\n \r\n }, 1000); \r\n vm.showSuccess(\"Success\", \"Acoount Added successfully!\"); \r\n } \r\n }\r\n }, function () {\r\n \r\n });\r\n //}else{ \r\n // vm.customerInvoiceDetails.invoiceToDetailsModelList[index].edit=true;\r\n //}\r\n }\r\n\r\n \r\n }\r\n \r\n });\r\n \nangular.module('inspinia').controller('WestCalendarManagementController', function ($scope, $state,$http, $localStorage) {\r\n \r\n\r\n });\r\n\nangular.module('inspinia').controller('SouthCalendarManagementController', function ($scope, $state,$http, $localStorage) {\r\n \r\n\r\n });\r\n\nangular.module('inspinia').controller('NorthCalendarManagementController', function ($scope, $state,$http, $localStorage) {\r\n \r\n\r\n });\r\n\nangular.module('inspinia').controller('EastCalendarManagementController', function ($scope, $state,$http, $localStorage) {\r\n \r\n\r\n });\r\n\nangular.module('inspinia').service('CalendarManagementService', function (ApiURL, $http, FreelancerURL, LocationURL) {\r\n\r\n \r\n \r\n});\r\n\nangular.module('inspinia').service('CalendarManagementListService', function (ApiURL, $http, FreelancerURL, LocationURL) {\r\n\r\n \r\n \r\n});\r\n\nangular.module('inspinia').controller('CalendarManagementListController', function ($scope, $state, $http, $localStorage) {\r\n\r\n var vm = this;\r\n vm.RedirectToCalendarManagement = function () {\r\n $state.go('index.CalendarManagement', {\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.RedirectToNorthCalendarManagement = function () {\r\n $state.go('index.NorthCalendarManagement', {\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.RedirectToSouthCalendarManagement = function () {\r\n $state.go('index.SouthCalendarManagement', {\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.RedirectToEastCalendarManagement = function () {\r\n $state.go('index.EastCalendarManagement', {\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.RedirectToWestCalendarManagement = function () {\r\n $state.go('index.WestCalendarManagement', {\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n})\r\n\nangular.module('inspinia').controller('CalendarManagementController', function ($scope, $state,$http, $localStorage) {\r\n \r\n\r\n });\r\n\nangular.module('inspinia').service('CampaignDetailViewService', function (ApiURL, SchedulingAPI, $window, $localStorage, $http) {\r\n\r\n this.GetUserAllSalesOrderDetailforWeb = function (token, orderStatus, SearchText, category, brandName, productGroup, orderBy, sortType, fPageIndex, fPageSize, startDate, endDate, dateField) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetUserAllSalesOrderDetailforWeb?OrderStatus=' + orderStatus + '&startDate=' + startDate + '&EndDate=' + endDate + '&SearchText=' + SearchText + '&dateField=' + dateField + '&category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup + '&OrderBy=' + orderBy + '&SortType=' + sortType + '&PageSize=' + fPageSize + '&PageIndex=' + fPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetUserInventoryStockforweb = function (token, orderStatus, SearchText, category, brandName, productGroup, orderBy, sortType, userId, dPageIndex, dPageSize, startDate, endDate) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetUserInventoryStockforweb?SearchText=' + SearchText + '&Category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup + '&startDate=' + startDate + '&EndDate=' + endDate + '&OrderBy=' + orderBy + '&SortType=' + sortType + '&StockType=' + orderStatus + '&UserId=' + userId + '&PageSize=' + dPageSize + '&PageIndex=' + dPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetUserSalesOrderIntatiedByZoho = function (token, orderStatus, SearchText, category, brandName, productGroup, orderBy, sortType, ePageIndex, ePageSize, startDate, endDate) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetUserSalesOrderIntatiedByZoho?OrderStatus=' + orderStatus + '&startDate=' + startDate + '&EndDate=' + endDate + '&SearchText=' + SearchText + '&Category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup + '&OrderBy=' + orderBy + '&SortType=' + sortType + '&PageSize=' + ePageSize + '&PageIndex=' + ePageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.InventoryDefectStockList = function (token, SearchText, category, brandName, productGroup, uPageIndex, uPageSize, startDate, endDate) {\r\n var url = ApiURL + '/api/ZohoInventoryController/InventoryDefectStockList?Category=' + category + '&BrandName=' + brandName + '&ItemGroup=' + productGroup + '&SearchText=' + SearchText + '&StartDate=' + startDate + '&EndDate=' + endDate + '&PageSize=' + uPageSize + '&PageIndex=' + uPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetItemBrandName = function (token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetItemBrandName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetItemGroupName = function (brandName, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetItemGroupName?BrandName=' + brandName;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n this.GetItemListName = function (brandName, productGroup, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetItemListName?BrandName=' + brandName + '&ItemGroupName=' + productGroup;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetShipmentOrder = function (salesOrderNumber, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetShipmentOrder?salesOrderNumber=' + salesOrderNumber;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.TrackinDetailForDefectItem = function (trackingId, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/TrackinDetailForDefectItem?TrackingId=' + trackingId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetServiceCentenAndTeamStockData = function (LineItemId, SearchTag, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetServiceCentenAndTeamStockData?LineItemId=' + LineItemId + '&SearchTag=' + SearchTag;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.InventoryMangementOnServiceLevel = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/InventoryMangementOnServiceLevel';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.MarkSalesOrderasDelivered = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/MarkSalesOrderasDelivered';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetWarehouse = function (token, data) {\r\n var url = ApiURL + '/api/ItemsInventory/GetNearbyWarehouseList';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetSalesOrder = function (loggedinUser, salesOrderId, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetSalesOrder?salesOrderId=' + salesOrderId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateRequestInventoryJobLineItemStatus = function (ticketId, status, lineitemId, updateStatusRemark, token) {\r\n var url = ApiURL + '/api/JobLineItem/UpdateRequestInventoryJobLineItemStatus?TicketId=' + ticketId + '&Status=' + status + '&LineItemId=' + lineitemId + '&Remark=' + updateStatusRemark;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetRequestedLineItemDetailsByTicketId = function (loggedinUser, salesOrderId, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetRequestedLineItemDetailsByTicketId?TicketId=' + salesOrderId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.createSalesOrder = function (token, data) {\r\n var url = ApiURL + '/api/ItemsInventory/CreateSalesOrderForLineitem';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.InventoryReturnOfDefectPartsByServiceCenter = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/InventoryReturnOfDefectPartsByServiceCenter';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.TransferInventory = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/TransferInventory';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CustomerReturnInventory = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/ZohoInventoryController/CustomerReturnInventory';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.viewReportPdf = function (loggedinUser, token, fileName) {\r\n var url = ApiURL + '/api/Image?fileName=' + fileName;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetUserInventoryStockCsvDownload = function (token, orderStatus, SearchText, category, brandName, productGroup, orderBy, sortType, userId, dPageIndex, dPageSize, startDate, endDate) {\r\n var url = ApiURL + '/api/ZohoInventoryController/GetUserInventoryStockCsvDownload?SearchText=' + SearchText + '&Category=' + category + '&BrandName=' + brandName + '&ProductGroup=' + productGroup + '&startDate=' + startDate + '&EndDate=' + endDate + '&OrderBy=' + orderBy + '&SortType=' + sortType + '&StockType=' + orderStatus + '&UserId=' + userId + '&PageSize=' + dPageSize + '&PageIndex=' + dPageIndex;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('CampaignDetailViewController', function (CampaignDetailViewService, $window, PublicApiURL, ApiURL,\r\n\t$state, $localStorage, $scope, $uibModal, inventorynewService, $timeout, $stateParams) {\r\n\tvm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvm.NokiaTableHeaderChange = $localStorage.accountConfig.NokiaTableHeaderChange;\r\n\tvar loggedinUserName = $localStorage.loggedInUser_FirstName + \" \" + $localStorage.loggedInUser_LastName;\r\n\tvar token = $localStorage.token;\r\n\tvar loggedinUserImage = $localStorage.picture;\r\n\tvar uTicketId = $stateParams.ticketId;\r\n\tvm.SearchTag = \"\";\r\n\tvm.showMapPermision = false;\r\n\tvm.superPower = false;\r\n\t$scope.isCollapsed = true;\r\n\tvm.UserId = \"\";\r\n\tvm.CurrencySetting = $localStorage.accountConfig.CurrencySetting;\r\n\tvm.Role = $localStorage.loggedInUser_Role;\r\n\tvm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\tvm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n\tvar accountConfig = $localStorage.accountConfig;\r\n\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\tvm.isDefective = false;\r\n\tvm.ImageArray = [];\r\n\tvm.states = [];\r\n\tvm.cities = [];\r\n\tvm.isShow = true;\r\n\tvm.showEditList = false;\r\n\tvm.showAction = true;\r\n\tvm.dataFilters = [];\r\n\tvm.CancellationReasons = '';\r\n\tvm.IsCommissionDetect = false;\r\n\tvm.urlForNonFeasible = '';\r\n\tvm.currentStepModel = {};\r\n\tvm.dtInstanceNearBy = {};\r\n\tvm.dtInstanceFixed = {};\r\n\tvm.dtInstance = {};\r\n\tvm.dtInstancePre = {};\r\n\tvm.SparePartAddress = {};\r\n\tvm.disableBroadcastButton = false;\r\n\tvm.disableRouteButton = false;\r\n\tvm.IsChatEnabled = true;\r\n\tvm.showPrefer = '';\r\n\tvm.disabledDrop = false;\r\n\tvm.showloading = false\r\n\tvm.ComplianceDisable = true;\r\n\tvm.PincodeEnabled = true;\r\n\tvm.passSerialNum = false;\r\n\tvm.PrivateDisable = false;\r\n\tvm.messageText = \"\";\r\n\tvm.PriceLineItemList = [];\r\n\tvm.LineItemDataList = [];\r\n\tvm.lineItem = \"\";\r\n\tvm.serviceType = '';\r\n\tvm.AppointmentTime = '';\r\n\tvm.ticketPrice = \"\";\r\n\tvm.freelancerPrice = \"\";\r\n\tvm.edit = true;\r\n\tvm.BonusPenaltyList = [];\r\n\tvm.BonusList = [];\r\n\tvm.PenaltyList = [];\r\n\tvm.ShipmentDetails = \"\";\r\n\tvm.LineitemActivityList = [];\r\n\tvm.LineItemCategoryType = \"\";\r\n\tvm.projectId = \"\";\r\n\tvm.selectedprojectId = \"\";\r\n\tvm.dynamicpricing = \"\";\r\n\tvm.FreelancrPriceEnable = \"\";\r\n\tvm.PercentageEnable = \"\";\r\n\tvar price = 0;\r\n\tvar Quantity = 1;\r\n\tvar totalFPrice = 0.0;\r\n\tvm.BasePriceTotal = 0.0;\r\n\tvm.dFreelancerPriceTotal = 0.0;\r\n\tvm.PercentageTotal = 0.0;\r\n\tvm.FreelancerPriceTotal = 0.0;\r\n\tvm.MobiforceCommission = $localStorage.accountConfig.MobiforceCommissionPercentage;\r\n\tvm.IsFinalApproval = false;\r\n\tvm.disableExceptionButton = false;\r\n\t// vm.IsWithInDays = true;\r\n\tvm.StockCountToAssign = 0;\r\n\tvm.PartActionType = \"\";\r\n\tvm.feedbackremark = '';\r\n\tvm.PlannedClosureDateType = \"first\";\r\n\tvm.WithInDays = 1;\r\n\tvm.WithInDaysNumbers = [1, 2, 3, 4, 5];\r\n\tvm.IsSafetyAudit = 'Not Done';\r\n\tvm.ratingwarning = \"\";\r\n\tvm.approvalRemark = '';\r\n\tvm.MaterialStatusList = [\"Dispatched\", \"Delivered\", \"Partially Delivered\", \"Not Delivered\"];\r\n\tvm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n\tvm.SelectedMaterial = '';\r\n\tvm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n\tvm.ZOHOWarehouseName = '';\r\n\tvm.customerJobCard = [];\r\n\tvm.PageIndex = 1;\r\n\tvm.PageSize = 10;\r\n\tstartDate = '';\r\n\tendDate = '';\r\n\tvm.sortType = \"\"\r\n\tvm.orderBy = \"\";\r\n\tvm.itemValue = '';\r\n\tvm.OrderStatus = \"\";\r\n\tvm.SearchText = \"\";\r\n\tvar uPageIndex = 1;\r\n\tvar uPageSize = 10;\r\n\tvar dPageSize = 10;\r\n\tvar dPageIndex = 1;\r\n\tvar fPageIndex = 1;\r\n\tvar fPageSize = 10;\r\n\tvar ePageIndex = 1;\r\n\tvar ePageSize = 10;\r\n\tvm.userPageListCount = 10;\r\n\tvm.financePageListCount = 10;\r\n\tvm.defectedPageListCount = 10;\r\n\tvm.brandName = \"\";\r\n\tvm.partName = \"\";\r\n\tvm.productGroup = \"\";\r\n\tvm.BrandListName = \"\";\r\n\tvm.allSalesOrderPageListCount = 10;\r\n\tvm.allHistoryOrderPageListCount = 10;\r\n\tvm.pageListCounts = [10, 20, 30, 50];\r\n\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\tvm.dateField = \"CreatedOn\";\r\n\tvm.ticketdates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\tvm.ticketranges = {\r\n\t\t'Today': [moment(), moment()],\r\n\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t};\r\n\t// $scope.buttonText = 'Show';\r\n\r\n\t// // Define the toggleCollapse function\r\n\t// $scope.toggleCollapse = function () {\r\n\t// \t// Toggle the collapse state\r\n\t// \tvar collapseElement = document.getElementById('collapseSix');\r\n\t// \tvar isCollapsed = collapseElement.classList.contains('show');\r\n\t\t\r\n\t// \t// Update buttonText based on the collapse state\r\n\t// \t$scope.buttonText = isCollapsed ? 'Show' : 'Hide';\r\n\t// };\r\n\t$scope.isCollapsed = true;\r\n\r\n\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\r\n\t}\r\n\tvar chartOptions = {\r\n chart: {\r\n type: 'pie', // Set the chart type to pie\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n\t\t\theight: null,\r\n width: 600,\r\n },\r\n title: {\r\n text: ''\r\n },\r\n plotOptions: {\r\n pie: {\r\n innerSize: '50%', // Set the inner size to create a donut chart\r\n dataLabels: {\r\n enabled: true\r\n },\r\n showInLegend: true // Display the legend\r\n }\r\n },\r\n\t\tlegend: {\r\n layout: 'vertical', // Set the legend layout to vertical\r\n align: 'right', // Align the legend to the right\r\n verticalAlign: 'middle' ,// Align the legend vertically in the middle\r\n\t\t\titemMarginTop: 10, // Add space above each legend item\r\n itemMarginBottom: 10,\r\n\t\t\r\n },\r\n series: [{\r\n name: '',\r\n data: [{\r\n name: 'Scheduled : 67',\r\n y: 20 // Your data for category 1\r\n }, {\r\n name: 'In Progress : 0',\r\n y: 20 // Your data for category 2\r\n }, {\r\n name: 'Retry : 3',\r\n y: 20 // Your data for category 3\r\n },\r\n\t\t\t{\r\n name: 'Failed : 0',\r\n y: 20 // Your data for category 3\r\n },\r\n\t\t\t{\r\n name: 'Complted :0',\r\n y: 20 // Your data for category 3\r\n }]\r\n }]\r\n };\r\n\r\n // Initialize the Highcharts chart\r\n Highcharts.chart('container', chartOptions);\r\n})\r\n\nangular.module('inspinia').service('CampaignDetailViewNewService', function (CampaignURL, $window, $http) {\r\n\r\n this.GetCampaignById = function (campaignId, loggedinUser, token) {\r\n var url = CampaignURL + '/api/CallCampaign/GetCampaignById?campaignId=' + campaignId;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetCampaignDetailsById = function (campaignId,PageIndex, PageSize, CallStatus, UserNumber, loggedinUser, token) {\r\n var url = CampaignURL + '/api/CallCampaign/GetCampaignDetailsById?campaignId=' + campaignId + '&offset=' + PageIndex + '&limit=' + PageSize + '&status=' + CallStatus +'&number=' + UserNumber;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('CampaignDetailViewNewController', function (CampaignDetailViewNewService, $stateParams, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tvar CampaignId = $stateParams.CampaignId;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.contactListLength = 0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.PageindexCount = 0;\r\n\t\t$scope.totalContacts = 0;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50, 100];\r\n\t\tvm.CallStatus = \"\";\r\n\t\tvm.UserNumber = \"\";\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\tvm.createPieChart = function () {\r\n\t\t\tvar chart = new Highcharts.chart('container', {\r\n\t\t\t\tchart: {\r\n\t\t\t\t\ttype: 'pie', // Set the chart type to pie\r\n\t\t\t\t\tplotBackgroundColor: null,\r\n\t\t\t\t\tplotBorderWidth: null,\r\n\t\t\t\t\tplotShadow: false,\r\n\t\t\t\t\theight: 230,\r\n\t\t\t\t\twidth: 650,\r\n\t\t\t\t},\r\n\t\t\t\ttitle: {\r\n\t\t\t\t\ttext: ''\r\n\t\t\t\t},\r\n\t\t\t\tplotOptions: {\r\n\t\t\t\t\tpie: {\r\n\t\t\t\t\t\tinnerSize: '50%', // Set the inner size to create a donut chart\r\n\t\t\t\t\t\tdataLabels: {\r\n\t\t\t\t\t\t\tenabled: false\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tshowInLegend: true // Display the legend\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tlegend: {\r\n\t\t\t\t\tlayout: 'horizontal', // Set the legend layout to vertical\r\n\t\t\t\t\talign: 'left', // Align the legend to the right\r\n\t\t\t\t\tverticalAlign: 'bottom',// Align the legend vertically in the middle\r\n\t\t\t\t\t// itemMarginTop: 10, // Add space above each legend item\r\n\t\t\t\t\t// itemMarginBottom: 10,\r\n\r\n\t\t\t\t},\r\n\t\t\t\tseries: [{\r\n\t\t\t\t\tname: '',\r\n\t\t\t\t\tdata: [\r\n\t\t\t\t\t\t{ name: 'Created : ' + vm.created, y: vm.created },\r\n\t\t\t\t\t\t{ name: 'In Progress : ' + vm.Inprogress, y: vm.Inprogress },\r\n\t\t\t\t\t\t{ name: 'Retry : ' + vm.retry, y: vm.retry },\r\n\t\t\t\t\t\t{ name: 'Failed : ' + vm.failed, y: vm.failed },\r\n\t\t\t\t\t\t{ name: 'Completed : ' + vm.completed, y: vm.completed }\r\n\t\t\t\t\t]\r\n\t\t\t\t}]\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetCampaignById = function () {\r\n\t\t\tCampaignDetailViewNewService.GetCampaignById(CampaignId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.UserByFiltersList = resp.data.response;\r\n\t\t\t\t\tvm.created = resp.data.response[0].data.stats.created;\r\n\t\t\t\t\tvm.Inprogress = resp.data.response[0].data.stats['in-progress'];\r\n\t\t\t\t\tvm.retry = resp.data.response[0].data.stats.retry;\r\n\t\t\t\t\tvm.retrying = resp.data.response[0].data.stats.retrying;\r\n\t\t\t\t\tvm.failed = resp.data.response[0].data.stats.failed;\r\n\t\t\t\t\tvm.faileddnd = resp.data.response[0].data.stats['failed-dnd'];\r\n\t\t\t\t\tvm.invalid = resp.data.response[0].data.stats.invalid;\r\n\t\t\t\t\tvm.paused = resp.data.response[0].data.stats.paused;\r\n\t\t\t\t\tvm.failednoattempt = resp.data.response[0].data.stats['failed-no-attempt'];\r\n\t\t\t\t\tvm.completed = resp.data.response[0].data.stats.completed;\r\n\t\t\t\t\tvm.pending = resp.data.response[0].data.stats.pending;\r\n\t\t\t\t\tvm.createPieChart();\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t\tvm.GetCampaignById();\r\n\r\n\t\tvm.contactPageListCount = 10;\r\n\t\t$scope.contactTablePerPage = vm.contactPageListCount;\r\n\t\t$scope.contactTablepagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\t\tvm.changeContactTablePerPage = function () {\r\n\t\t\t$scope.contactTablePerPage = vm.contactPageListCount;\r\n\t\t\tPageSize = $scope.contactTablePerPage;\r\n\t\t\t$scope.ContactTablepageChanged($scope.contactTablepagination.current);\r\n\t\t}\r\n\r\n\t\tPageIndex = $scope.contactTablepagination.current;\r\n\t\t$scope.ContactTablepageChanged = function (newPage) {\r\n\t\t\tPageIndex = newPage;\r\n\t\t\tvm.GetCampaignDetailsById();\r\n\t\t};\r\n\r\n\t\tvm.CampaignDetails = [];\r\n\t\tvm.GetCampaignDetailsById = function () {\r\n\t\t\tPageIndex = PageIndex ? PageIndex : 1;\r\n\t\t\tCampaignDetailViewNewService.GetCampaignDetailsById(CampaignId,PageIndex, PageSize, vm.CallStatus, vm.UserNumber, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.CampaignDetails = resp.data.response;\r\n\t\t\t\t\t$scope.totalContacts = resp.data.metadata.total;\r\n\t\t\t\t\tif (vm.CampaignDetails.length < vm.contactPageListCount)\r\n\t\t\t\t\t\tvm.contactListLength = $scope.totalContacts;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.contactListLength = PageIndex * vm.contactPageListCount;\r\n\t\t\t\t\tif (PageIndex == 1)\r\n\t\t\t\t\t\tvm.PageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.PageindexCount = (((PageIndex - 1) * vm.contactPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t});\r\n\r\n\t\t}\r\n\t\tvm.GetCampaignDetailsById();\r\n\r\n\t\tvm.searchByStatus = function () {\r\n\t\t\tPageIndex = 1;\r\n\t\t\tvm.GetCampaignDetailsById();\r\n\t\t}\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('CampaignCreationService', function (CampaignURL, $http) {\r\n\r\n this.GetAllCampaigns = function (cuPageIndex, cuPageSize, CampaignName, CampaignStatus, SortBy, loggedinUser, token) {\r\n var url = CampaignURL + '/api/CallCampaign/GetAllCampaigns?offset=' + cuPageIndex + '&limit=' + cuPageSize + '&name=' + CampaignName + '&status=' + CampaignStatus + '&sort_by=' + SortBy;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetCallbackNumber = function (loggedinUser, token) {\r\n var url = CampaignURL + '/api/CallCampaign/GetCallbackNumber';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.CreateCampaign = function (data, loggedinUser, token) {\r\n var url = CampaignURL + '/api/CallCampaign/CreateCampaign';\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetContactList = function (PageIndex, PageSize, CampaignListName, loggedinUser, token) {\r\n var url = CampaignURL + '/api/CallCampaign/GetContactList?offset=' + PageIndex + '&limit=' + PageSize + '&name=' + CampaignListName + '&type=static&sort_by=';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.DeleteListById = function(listId,loggedinUser,token){\r\n var url = CampaignURL + \"/api/CallCampaign/DeleteListById?listId=\"+listId;\r\n return $http.delete(url,{\r\n headers:{'Content-Type':'application/json','Token':token, 'UserId': loggedinUser}\r\n });\r\n }\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('CampaignCreationController', function (CampaignCreationService, $state, $uibModal,$timeout, $localStorage, $scope) {\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvar currentTime = new Date().toTimeString().slice(0, 5);\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\t$scope.selectedTime = currentTime;\r\n\t\t$scope.selectedOption = \"Flow\";\r\n\t\tvm.CallbackNumber = \"\";\r\n\t\tvm.CampaignListName = \"mmf\";\r\n\t\tvm.createvalue = '';\r\n\t\tvm.NoOfRetries = 0;\r\n\t\tvm.RetryInterval = 0;\r\n\t\tvm.SortBy = \"\";\r\n\t\tvm.FlowId = \"\";\r\n\t\tvm.CallStatusBackURL = \"\";\r\n\t\tvm.CampaignName = \"\";\r\n\t\tvm.ConnectionStatus = \"\";\r\n\t\tvm.CampaignStatus = \"\";\r\n\t\tvm.ContactListId = [];\r\n\t\tvm.sendAtTime = new Date();\r\n\t\tvm.contactListLength = 0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.PageindexCount = 0;\r\n\t\t$scope.totalContacts = 0;\r\n\t\tvm.contactPageListCount = 10;\r\n\t\t$scope.contactTablePerPage = vm.contactPageListCount;\r\n\t\t$scope.contactTablepagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\t\tvm.customerListLenth = 0;\r\n\t\tvar cuPageIndex = 1;\r\n\t\tvar cuPageSize = 10;\r\n\t\tvm.cuPageindexCount = 0;\r\n\t\t$scope.totalCustomers = 0;\r\n\t\tvm.customerPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50, 100];\r\n\t\t$scope.customerTablePerPage = vm.customerPageListCount;\r\n\t\t$scope.customerTablepagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeCustomerTablePerPage = function () {\r\n\t\t\t$scope.customerTablePerPage = vm.customerPageListCount;\r\n\t\t\tcuPageSize = $scope.customerTablePerPage;\r\n\t\t\t$scope.CustomerTablepageChanged($scope.customerTablepagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t}\r\n\r\n\t\tcuPageIndex = $scope.customerTablepagination.current;\r\n\t\t$scope.CustomerTablepageChanged = function (newPage) {\r\n\t\t\tcuPageIndex = newPage;\r\n\t\t\tvm.GetAllCampaignsWithPaging();\r\n\t\t};\r\n\t\tvm.campaignList = [];\r\n\t\tvm.GetAllCampaignsWithPaging = function () {\r\n\t\t\tcuPageIndex = cuPageIndex ? cuPageIndex : 1;\r\n\t\t\tCampaignCreationService.GetAllCampaigns(cuPageIndex, cuPageSize, vm.CampaignName, vm.CampaignStatus, vm.SortBy, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.campaignList = resp.data.response;\r\n\t\t\t\t\t$scope.totalCustomers = resp.data.metadata.total;\r\n\t\t\t\t\tif (vm.campaignList.length < vm.customerPageListCount)\r\n\t\t\t\t\t\tvm.customerListLenth = $scope.totalCustomers;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.customerListLenth = cuPageIndex * vm.customerPageListCount;\r\n\t\t\t\t\tif (cuPageIndex == 1)\r\n\t\t\t\t\t\tvm.cuPageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.cuPageindexCount = (((cuPageIndex - 1) * vm.customerPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.GetAllCampaignsWithPaging();\r\n\r\n\t\tvm.searchByName = function () {\r\n\t\t\tcuPageIndex = 1;\r\n\t\t\tvm.GetAllCampaignsWithPaging();\r\n\t\t}\r\n\r\n\t\tvm.OpenDetailView = function (id) {\r\n\t\t\t$state.go('index.CampaignDetailViewNew', {\r\n\t\t\t\tCampaignId: id\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetCallbackNumber = function () {\r\n\t\t\tCampaignCreationService.GetCallbackNumber(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.callBackNumberList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.disableCreateButton = false;\r\n\r\n vm.DisableCreateButton = function (disable) {\r\n if (disable) {\r\n vm.disableCreateButton = true;\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n }\r\n }\r\n\r\n\t\tvm.OpenCampaignModel = function () {\r\n\r\n\t\t\tvm.selectedStartDate = new Date();\r\n\r\n\t\t\tvar currentTime = new Date();\r\n\t\t\tcurrentTime.setMinutes(currentTime.getMinutes() + 5);\r\n\t\t\tvar hours = currentTime.getHours();\r\n\t\t\tvar minutes = currentTime.getMinutes().toString().padStart(2, '0');\r\n\t\t\tvm.startTime = hours.toString().padStart(2, '0') + ':' + minutes;\r\n\t\t\t\r\n\t\t\tvar endTime = new Date(currentTime.getTime());\r\n\t\t\tendTime.setMinutes(endTime.getMinutes());\r\n\t\t\tvar ehours = endTime.getHours();\r\n\t\t\tvar eminutes = endTime.getMinutes().toString().padStart(2, '0');\r\n\t\t\tvm.endTime = ehours.toString().padStart(2, '0') + ':' + eminutes;\r\n\t\r\n\t\t\tvar currentDate = new Date();\r\n\t\t\tvar futureDate = new Date(currentDate);\r\n\t\t\tfutureDate.setMonth(futureDate.getMonth() + 1);\r\n\t\t\tvm.selectedEndDate = futureDate;\r\n\r\n\r\n\t\t\tvm.GetCallbackNumber();\r\n\t\t\tcampaignCreateModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: \"CampaignCreationModel.html\",\r\n\t\t\t\tsize: \"lg\",\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tvm.CloseCampaignModel = function () {\r\n\t\t\tvm.NewCampaignName = \"\";\r\n\t\t\tvm.CallbackNumber = \"\";\r\n\t\t\tvm.ContactListId = [];\r\n\t\t\tvm.FlowId = \"\";\r\n\t\t\tvm.NoOfRetries = 0;\r\n\t\t\tvm.RetryInterval = 0;\r\n\t\t\tvm.sendAtTime = new Date();\r\n\t\t\tcampaignCreateModel.close();\r\n\t\t};\r\n\r\n\t\tvm.getCurrentDate = function() {\r\n\t\t\tvar currentDate = new Date();\r\n\t\t\treturn currentDate;\r\n\t\t};\r\n\r\n\t\tvm.getMinDate = function() {\r\n\t\t\tvar endDate = new Date();\r\n\t\t\tendDate.setMonth(endDate.getMonth() + 1);\r\n\t\r\n\t\t\treturn endDate;\r\n\t\t};\r\n\t\t\r\n\r\n\t\tvm.CreateCampaign = function () {\r\n vm.campaign_form.submitted = true;\r\n\r\n\t\t\tvar originalStartDate = new Date(vm.selectedStartDate);\r\n\t\t\tvar syear = originalStartDate.getFullYear();\r\n\t\t\tvar smonth = ('0' + (originalStartDate.getMonth() + 1)).slice(-2); \r\n\t\t\tvar sday = ('0' + originalStartDate.getDate()).slice(-2);\r\n\t\t\t// var shours = ('0' + originalStartDate.getHours()).slice(-2);\r\n\t\t\t// var sminutes = ('0' + originalStartDate.getMinutes()).slice(-2);\r\n\t\t\t// var sseconds = ('0' + originalStartDate.getSeconds()).slice(-2);\r\n\t\t\tvar formattedStartDateString = syear + '-' + smonth + '-' + sday + 'T' +\r\n\t\t\tvm.startTime + ':00' +'+05:30';\r\n\r\n\t\t\tvar originalEndDate = new Date(vm.selectedEndDate);\r\n\t\t\tvar eyear = originalEndDate.getFullYear();\r\n\t\t\tvar emonth = ('0' + (originalEndDate.getMonth() + 1)).slice(-2);\r\n\t\t\tvar eday = ('0' + originalEndDate.getDate()).slice(-2);\r\n\t\t\t// var ehours = ('0' + originalEndDate.getHours()).slice(-2);\r\n\t\t\t// var eminutes = ('0' + originalEndDate.getMinutes()).slice(-2);\r\n\t\t\t// var eseconds = ('0' + originalEndDate.getSeconds()).slice(-2);\r\n\t\t\tvar formattedEndDateString = eyear + '-' + emonth + '-' + eday + 'T' +\r\n\t\t\tvm.endTime + ':00' +'+05:30';\r\n\t\t\tif(vm.IsClone){\r\n\t\t\t\tvm.createvalue = 'Copy of_';\r\n\t\t\t}\r\n\r\n var data = {\r\n\t\t\t\t\"campaigns\": [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\"name\": vm.createvalue + vm.NewCampaignName,\r\n\t\t\t\t\t\t \"type\": \"trans\",\r\n\t\t\t\t\t\t\"caller_id\": vm.CallbackNumber, \r\n\t\t\t\t\t\t\"lists\": vm.ContactListId,\r\n\t\t\t\t\t\t\"campaign_type\": \"static\",\r\n\t\t\t\t\t\t\"url\": \"http://my.exotel.com/mymobiforce2/exoml/start_voice/\" + vm.FlowId, \r\n\t\t\t\t\t\t\"retries\": {\r\n\t\t\t\t\t\t\t\"number_of_retries\": vm.NoOfRetries,\r\n\t\t\t\t\t\t\t\"interval_mins\": vm.RetryInterval,\r\n\t\t\t\t\t\t\t\"mechanism\": \"Exponential\",\r\n\t\t\t\t\t\t\t\"on_status\": [\r\n\t\t\t\t\t\t\t\t\"failed\",\r\n\t\t\t\t\t\t\t\t\"busy\"\r\n\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t \"schedule\": {\r\n\t\t\t\t\t\t\t\"send_at\": formattedStartDateString,\r\n\t\t\t\t\t\t\t\"end_at\": formattedEndDateString\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"call_duplicate_numbers\": false,\r\n\t\t\t\t\t\t\"mode\": \"auto\",\r\n\t\t\t\t\t\t\"status_callback\": \"https://webhook.site/13fb7d06-da18-4a3e-862d-b2a913f86aa1\",\r\n\t\t\t\t\t\t\"call_status_callback\": vm.CallStatusBackURL,\r\n\t\t\t\t\t\t\"call_schedule_callback\": \"https://webhook.site/13fb7d06-da18-4a3e-862d-b2a913f86aa1\"\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n if (vm.campaign_form.$valid) {\r\n vm.DisableCreateButton(true);\r\n CampaignCreationService.CreateCampaign(data, loggedinUser, token).then(function (res) {\r\n if (res && res.data.http_code == 200) {\r\n vm.showSuccess(\"Success\", \"Campaign Created Successfully\");\r\n vm.CloseCampaignModel();\r\n vm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.GetAllCampaignsWithPaging();\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Campaign Creation Failed\");\r\n vm.DisableCreateButton(false);\r\n }\r\n })\r\n }\r\n \r\n }\r\n\r\n\r\n\t\tvm.changeContactTablePerPage = function () {\r\n\t\t\t$scope.contactTablePerPage = vm.contactPageListCount;\r\n\t\t\tPageSize = $scope.contactTablePerPage;\r\n\t\t\t$scope.ContactTablepageChanged($scope.contactTablepagination.current);\r\n\t\t}\r\n\r\n\t\tPageIndex = $scope.contactTablepagination.current;\r\n\t\t$scope.ContactTablepageChanged = function (newPage) {\r\n\t\t\tPageIndex = newPage;\r\n\t\t\tvm.GetContactList();\r\n\t\t};\r\n\t\tvm.contactList = [];\r\n\t\tvm.GetContactList = function () {\r\n\t\t\tPageIndex = PageIndex ? PageIndex : 1;\r\n\t\t\tCampaignCreationService.GetContactList(PageIndex, PageSize, vm.CampaignListName, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.contactList = resp.data.response;\r\n\t\t\t\t\t$scope.totalContacts = resp.data.metadata.total;\r\n\t\t\t\t\tif (vm.contactList.length < vm.contactPageListCount)\r\n\t\t\t\t\t\tvm.contactListLength = $scope.totalContacts;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.contactListLength = PageIndex * vm.contactPageListCount;\r\n\t\t\t\t\tif (PageIndex == 1)\r\n\t\t\t\t\t\tvm.PageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.PageindexCount = (((PageIndex - 1) * vm.contactPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t vm.GetContactList();\r\n\t\t\r\n vm.ChangeListTab = function(tabName){\r\n\t\tvm.CampaignListName = tabName;\r\n\t\tvm.GetContactList();\r\n\t }\r\n\r\n\t vm.searchByListName = function () {\r\n\t\tPageIndex = 1;\r\n\t\tvm.GetContactList();\r\n\t}\r\n\r\n\tvm.IsClone = false;\r\n\r\n\tvm.OpenCampaignCloneModel = function (campaignDataToBeCloned) {\r\n\t\tvm.IsClone = true;\r\n\t\tvm.campaignDataToBeCloned = campaignDataToBeCloned.data;\r\n\t\tvm.NewCampaignName = vm.campaignDataToBeCloned.name;\r\n\t\tvm.ContactListId = vm.campaignDataToBeCloned.lists;\r\n\t\tvar lastIndex = vm.campaignDataToBeCloned.url.lastIndexOf('/');\r\n vm.FlowId = vm.campaignDataToBeCloned.url.substring(lastIndex + 1);\r\n\t\tvm.NoOfRetries = vm.campaignDataToBeCloned.retries.number_of_retries;\r\n\t\tvm.RetryInterval = vm.campaignDataToBeCloned.retries.interval_mins;\r\n\t\tvm.CallbackNumber = vm.campaignDataToBeCloned.caller_id;\r\n\t\tvm.selectedStartDate = new Date();\r\n\r\n\t\tvar currentTime = new Date();\r\n\t\tcurrentTime.setMinutes(currentTime.getMinutes() + 5);\r\n\t\tvar hours = currentTime.getHours();\r\n\t\tvar minutes = currentTime.getMinutes().toString().padStart(2, '0');\r\n\t\tvm.startTime = hours.toString().padStart(2, '0') + ':' + minutes;\r\n\t\t\r\n\t\tvar endTime = new Date(currentTime.getTime());\r\n\t\tendTime.setMinutes(endTime.getMinutes());\r\n\t\tvar ehours = endTime.getHours();\r\n\t\tvar eminutes = endTime.getMinutes().toString().padStart(2, '0');\r\n\t\tvm.endTime = ehours.toString().padStart(2, '0') + ':' + eminutes;\r\n\r\n\t\tvar currentDate = new Date();\r\n\t\tvar futureDate = new Date(currentDate);\r\n\t\tfutureDate.setMonth(futureDate.getMonth() + 1);\r\n\t\tvm.selectedEndDate = futureDate;\r\n\r\n\r\n\t\tvm.GetCallbackNumber();\r\n\t\tcampaignCloneModel = $uibModal.open({\r\n\t\t\ttemplateUrl: \"CampaignCloneModel.html\",\r\n\t\t\tsize: \"lg\",\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\r\n\tvm.CloseCampaignCloneModel = function () {\r\n\t\tcampaignCloneModel.close();\r\n\t\tvm.IsClone = false;\r\n\t};\r\n\r\n\r\n\tvm.scheduleModel = {\r\n\t\tfrequency: \"once\",\r\n\t\tonce: \"once\",\r\n\t\tdaily: \"daily\",\r\n\t\tweekly: \"weekly\",\r\n\t\tevery_15_days: \"every_15_days\",\r\n\t\tmonthly: \"monthly\",\r\n\t\tcronExpression: \"expression\",\r\n\t\tinput_for_month: {\r\n\t\t\toption: \"start_of_day\",\r\n\t\t\tstart_of_day: \"start_of_day\",\r\n\t\t\tend_of_day: \"end_of_day\",\r\n\t\t\tspecific_date: \"specific_date\",\r\n\t\t\tdate: 1\r\n\t\t},\r\n\t\tspecific_date_range: [],\r\n\t\tstart_date: moment(),\r\n\t\tend_date: moment().add(1, 'M'),\r\n\t\tattachReportInMailBody: true,\r\n\t\tattachReportInExcel: true,\r\n\t\tscheduleTime: \"\",\r\n\t\tscheduleName: \"\",\r\n\t\treportNameAlreadyExists: false,\r\n\t\treportNameMendtryErr: false,\r\n\t\ttoListMendtryErr: false,\r\n\t\ttimeMendtryErr: false,\r\n\t\tsampleDateMendtryErr: false,\r\n\t\tpull_data: {\r\n\t\t\trange: \"last_day\",\r\n\t\t\tday: \"last_day\",\r\n\t\t\tweek: \"last_week\",\r\n\t\t\tmonth: \"last_month\",\r\n\t\t\tquarter: \"last_quarter\",\r\n\t\t\tcurrent_month: \"current_month\",\r\n\t\t\tspecific: \"specific\",\r\n\t\t\tspecific_day_value: 1,\r\n\t\t\tcalculate_range: function () {\r\n\t\t\t\tvar today = new Date();\r\n\t\t\t\tif (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.day) {\r\n\t\t\t\t\tvar date = today;\r\n\t\t\t\t\treturn date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear();\r\n\t\t\t\t} if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.week) {\r\n\t\t\t\t\tvar date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);\r\n\t\t\t\t\treturn date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n\t\t\t\t} if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.month) {\r\n\t\t\t\t\tvar date = new Date(today.getFullYear(), today.getMonth() - 1, today.getDate());\r\n\t\t\t\t\treturn date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n\t\t\t\t} if (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.quarter) {\r\n\t\t\t\t\tvar date = new Date(today.getFullYear(), today.getMonth() - 3, today.getDate());\r\n\t\t\t\t\treturn date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.current_month) {\r\n\t\t\t\t\tvar date = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n\t\t\t\t\treturn 1 + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.scheduleModel.pull_data.range == vm.scheduleModel.pull_data.specific) {\r\n\t\t\t\t\tvar date = new Date(today.getFullYear(), today.getMonth(), today.getDate() - vm.scheduleModel.pull_data.specific_day_value);\r\n\t\t\t\t\treturn date.getDate() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getFullYear() + \" to \" + today.getDate() + \"-\" + (today.getMonth() + 1) + \"-\" + today.getFullYear();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tfor (var i = 1; i < 32; i++) {\r\n\t\tvm.scheduleModel.specific_date_range.push({ value: i, label: i });\r\n\t}\r\n\r\n\tvm.ScheduleReport = function () {\r\n\t\tvm.SchedulesList = \"\";\r\n\t\t vm.showSchedules = true;\r\n\t\t \r\n\t }\r\n\r\n\t vm.DeleteList = function (listId) {\r\n\t\tCampaignCreationService.DeleteListById(listId, loggedinUser, token).then(function (resp) {\r\n\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t vm.showSuccess(\"Deleted\", \"List Deleted Successfully.\");\r\n\t\t\t $timeout(function () {\r\n\t\t\t\tvm.GetContactList();\r\n\t\t\t }, 2000);\r\n\t\t\t} else {\r\n\t\t\t vm.showFailure(\"Failed\", \"List deletion failed due to server error.\");\r\n\t\t\t}\r\n \r\n\t\t })\r\n\t }\r\n\t\t\r\n\t}\r\n});\nangular.module('inspinia').service('CRMManualAssignationJobService', function (ApiURL, $window, MMFCRMURL, PublicApiURL, ActivityURL, LocationURL, $http, FreelancerURL, SchedulingAPI) {\r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/new/byStatus?reqUserId=kanika.bansal%40innotiontech.com\r\n this.GetTicketsByStatus = function (status, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/' + status + '/byStatus?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.GetActiveUser = function (status, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/' + status + '/byStatus?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Get all freelancers\r\n //http://192.168.0.80:92/FreelancerAPI/api/FreeLancerUser/kanika.bansal%40innotiontech.com/GetAllUsers\r\n // https://login.mymobiforce.com/FreelancerAPI/api/FreelancerUser/GetUserDetailsforSupervisior\r\n this.GetListAllFreelancers = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/GetUserDetailsforSupervisior';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/FreeLancerUser/Kanika.bansal%40innotiontech.com/GetAllFreLancerWithFilters?itemNames=UserStatus%2CRole&itemValues=Active%2CField%20Engineer\r\n this.GetAllFreelancersWithFilters = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllFreLancerWithFilters?itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // url = https://product.mymobiforce.com/schedulingAPI/api/AutoJobBroadcast/BroadcastJobsManualMode\r\n this.AutoBroadcastAllNewJobsManualMode = function (loginUserId, ticketIds, token) {\r\n var url = SchedulingAPI + '/api/AutoJobBroadcast/BroadcastJobsManualMode';\r\n return $http.post(url, ticketIds, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId }\r\n });\r\n\r\n /*var url = SchedulingAPI + 'api/AutoJobBroadcast/BroadcastJobsManualMode'; \r\n return $http.post(url, ticketIds, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loginUserId\r\n }\r\n });*/\r\n }\r\n\r\n this.PullBackJob = function (loginUserId, ticketIds, token) {\r\n var url = ApiURL + '/api/Ticket/PullBackFromDispatchSupervisor';\r\n return $http.put(url, ticketIds, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId }\r\n });\r\n }\r\n\r\n this.callToTechnicianApi = function (loggedinUser, userid, token) {\r\n $http.get(ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId=' + userid,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\");\r\n }\r\n else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.callToTechnicianInBroadcastState = function (loggedinUser, userid, TicketId, token) {\r\n $http.get(ApiURL + '/api/CallPatching/ClickToCallFieldTeamInTicketBroadcastState?userId=' + userid + '&TicketId=' + TicketId,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (resp) {\r\n if (resp && resp.data) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\");\r\n }\r\n else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.GetAllWorkOrderJob = function (loggedinUser, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/GetAllWorkOrderJob?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.getAccounts = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get accounts\");\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/User/Kanika/byReportingToWithJobCount?reqUserId=kanika.bansal%40innotiontech.com\r\n this.GetTicketsById = function (ticketId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + loggedinUser + '/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/CoreAPI/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=FollowUp\r\n this.GetReasonsByStatus = function (loggedinUser, token, status) {\r\n var url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + status;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n //Get Tickets by filter\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/kanika.bansal%40innotiontech.com/TicketStatus/Broadcasted/GetTicketsByUser\r\n //https://test.mymobiforce.com/coreapi/api/Ticket/reqUserId/GetTicketsForAssignation?itemNames=itemNames&itemValues=itemValues\r\n\r\n this.GetTicketsByFilter = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedinUser + '/GetTicketsForAssignation?itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n //Get Users By Filter\r\n\r\n //\r\n // http://192.168.0.80:92/CoreAPI/api/User/kanika.bansal%40innotiontech.com/UserStatus/Active/getusersbyfilters\r\n this.GetUsersByFilter = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/User/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getusersbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n //Assign Tickets\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/ass/asd/asd/AssignTicket\r\n this.AssignTickets = function (userId, loggedinUser, ticketList, token) {\r\n // var TicketId = ticketList.split(',');\r\n var url = ApiURL + '/api/Ticket/' + userId + '/' + loggedinUser + '/AssignTicketToDispatchSupervisor'\r\n return $http.put(url, ticketList, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n\r\n // Bid Recieved Api\r\n // http://192.168.0.80:92/FreelancerAPI/api/BID/T0000000039/Received/kanika.bansal@innotiontech.com/byStatus\r\n this.GetBidReceivedByStatus = function (loggedinUser, ticketId, status, token) {\r\n var url = FreelancerURL + '/api/BID/GetLeadsByStatus?TicketId' + '=' + ticketId + '&' + 'leadStatus' + '=' + status\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n //bid deny https://product.mymobiforce.com/freelancerAPI/api/BID/GetLeadsByStatus?TicketId=T1140000016977&leadStatus=Deny\r\n this.GetBidDeny = function (loggedinUser, ticketId, status, token) {\r\n var url = FreelancerURL + '/api/BID/GetLeadsByStatus?TicketId' + '=' + ticketId + '&' + 'leadStatus' + '=' + status\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n //https://product.mymobiforce.com/FreelancerAPI/api/BID/GetLeadsByStatus?TicketId=T1140000091078&leadStatus=Sent&filter=Online\r\n //https://product.mymobiforce.com/freelancerAPI/api/BID/GetLeadsByStatus?TicketId=T1140000016977&leadStatus=Sent\r\n this.GetBidSentByStatus = function (loggedinUser, ticketId, status, token, userfilter) {\r\n var url = FreelancerURL + '/api/BID/GetLeadsByStatus?TicketId' + '=' + ticketId + '&' + 'leadStatus' + '=' + status + '&' + 'filter' + '=' + userfilter\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n this.GetFeedbackByUserId = function (loggedinUser, token, userid) {\r\n var url = FreelancerURL + '/api/BID/GetFeedbackByUserId?UserId=' + userid;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/akshit.chauhan%40innotiontech.com/TicketStatus/Broadcasted/getjobsbyfilter\r\n this.GetBroadcastedBids = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = FreelancerURL + '/api/BID/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getjobsbyfilter';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Assign Bids\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/kanika.bansal%40innotiontech.com/T0000000040/pri/acceptBIDAssignJob?jobAssignRate=100&jobAssignGrossRate=0\r\n this.AssignReceivedBid = function (loggedinUser, ticketId, userId, token) {\r\n var url = FreelancerURL + '/api/BID/' + loggedinUser + '/' + ticketId + '/' + userId + '/acceptBIDAssignJob';\r\n return $http.put(url, {}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //BroadCast Jobs/Bids\r\n //http://192.168.0.80:92/FreelancerAPI/api/BID/createbidforselectedteam?reqUserId=asdasd\r\n\r\n this.BroadCastJobs = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/createbidforselectedteam?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Get Users By Role\r\n //http://115.124.122.225/coreapi/api/User/Supervisor/byRole?reqUserId=satyendratiwari124%40gmail.com\r\n //http://192.168.0.80:92/CoreAPI/api/User/Supervisor/SkillSet/AC%20Repair/byRole?reqUserId=Kanika.bansal%40innotiontech.com\r\n this.GetUsersByRole = function (loggedinUser, role, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/User/' + role + '/' + itemNames + '/' + itemValues + '/byRole?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //Get All Vendor\r\n //http://192.168.0.80:92/CoreAPI/api/Vendor/kanika.bansal%40innotiontech.com/getallvendors\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/Vendor/Kanika.bansal%40innotiontech.com/VendorLocations/Maharashtra/getvendorsbyfilters\r\n this.GetAllVendors = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getvendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetFreelancerVendorsByFilters = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getfreelancervendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n // https://perf.mymobiforce.com/coreapi/api/Vendor/U350000000001/VendorStatus/Active/getfixedvendorsbyfilters\r\n this.GetFixedVendorsByFilters = function (loggedinUser, itemNames, itemValues, token) {\r\n var url = ApiURL + '/api/Vendor/' + loggedinUser + '/' + itemNames + '/' + itemValues + '/getfixedvendorsbyfilters'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //http://192.168.0.80:92/CoreAPI/api/Ticket/ankur.sharma%40innotiontech.com/byUserId?reqUserId=akshit.chauhan%40innotiontech.com\r\n\r\n this.GetTicketsByUserId = function (loggedinUser, UserId, token) {\r\n var url = ApiURL + '/api/Ticket/' + UserId + '/byUserId?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/freelancerapi/api/BID/CreateRoutingBid?reqUserId=U350000000001\r\n this.RouteJobsforUser = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/CreateRoutingBid?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.getAllStateTech = function (loggedinUser, token) {\r\n var url = PublicApiURL + '/api/Location/GetSubRegion?userId=' + loggedinUser + '®ion=INDIA';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.ProcessJobToBeAssignedManually = function (ticketIDs, loggedInUserId, token) {\r\n var url = ApiURL + '/api/BatchProcessing/ProcessJobToBeAssignedManually';\r\n return $http.post(url, ticketIDs,\r\n {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId }\r\n })\r\n }\r\n\r\n // https://product.mymobiforce.com/coreapi/api/Ticket/TicketRejectionHistory?TicketId=T1140000092053\r\n\r\n this.getRejectHistory = function (TicketId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/TicketRejectionHistory?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n\r\n });\r\n }\r\n\r\n //http://localhost:56749/api/User/GetUserByFiltersWithDynaPage?itemNames=SkillSet%2CLocations%2CRole&itemValues=EMF%20Survey%7CGeneral_Electrician%2CBIHAR%7CUTTAR%20PRADESH%2CField Engineer&userType=Freelancer&DateField=CreatedOn&PageIndex=0&PageSize=10\r\n this.GetUserByFiltersWithDynaPage = function (loggedinUser, token, itemNames, itemValues, userType, userAvailableStatus, DateField, PageIndex, PageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/User/GetUserByFiltersWithDynaPageForCHDAccount?itemNames=' + itemNames + '&itemValues=' + itemValues + '&userType=' + userType + '&userAvailableStatus=' + userAvailableStatus + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //https://product.mymobiforce.com/coreapi/api/Ticket/GetTicketsForAssignationByCHDAccount?fromDate=2021-06-01&toDate=2021-06-10&reqUserId=U00000000412&itemNames=Search&itemValues=J009&textItemNames=&textItemValues=&templateCols=&templateItemNames=&templateItemValues=&DateField=CreatedOn&PageIndex=1&PageSize=10\r\n this.getAllJobTickets = function (supervisorId, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, DateField, PageIndex, PageSize, SortType, SortField) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRangeWithDynaPagingForCHDDashboard?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&SortType=' + SortType + '&SortField=' + SortField;\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n\r\n this.getAllJobTicketsCopyForPagging = function (supervisorId, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, DateField, PageIndex, PageSize, SortType, SortField) {\r\n var url = '';\r\n url = ApiURL + '/api/Ticket/GetTicketsbyDateRangeWithDynaPagingForCHDListing?fromDate=' + startDate + '&toDate=' + endDate + '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&SortType=' + SortType + '&SortField=' + SortField;\r\n // url = ApiURL + '/api/Ticket/GetTicketsbyDateRange?fromDate=' + startDate + '&toDate=' + endDate+ '&reqUserId=' + supervisorId + '&itemNames=' + itemNames + '&itemValues=' + itemValues+'&templateCols='+templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': supervisorId\r\n }\r\n });\r\n }\r\n\r\n //http://localhost:56749/api/Ticket/GetAssignedTicketforUser?UserId=U400000000395&reqUserId=U00000000079\r\n this.GetAssignedTicketforUser = function (UserId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/GetAssignedTicketforUser?UserId=' + UserId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n })\r\n }\r\n\r\n this.GetJobTicket = function (ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + ticketId + '/' + $localStorage.loggedInUserId + '/byTicketId';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetSchedulingEvaluationResult = function (data, reqUserId, token) {\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetFavoriteFR?reqUserId=' + reqUserId;\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': reqUserId }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetFavoriteFR?reqUserId=U400000000001\r\n this.GetAllPrefereTalentPool = function (data, reqUserId, token) {\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetPreWorkedWith?reqUserId=' + reqUserId;\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': reqUserId }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AssistedScheduling/GetPreWorkedWith?reqUserId=U400000000001\r\n this.GetAllTechnician = function (data, reqUserId, token) {\r\n var url = SchedulingAPI + '/api/AssistedScheduling/GetSchedulingEvaluationResult?reqUserId=' + reqUserId;\r\n return $http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': reqUserId }\r\n });\r\n }\r\n\r\n this.BroadCastJobsforUser = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/createBidFromAssistedScheduling?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.AcceptJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.getPdfReport = function (loggedinUser, ticketID, token) {\r\n var url = ApiURL + '/api/Report/GeneratePdfReportForApprovedJob?TicketId=' + ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GeneratePdfJobSheet = function (loggedinUser, ticketID, token) {\r\n var url = ApiURL + '/api/Report/GeneratePdfJobSheet?TicketId=' + ticketID;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.PullBackTicket = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/returnticket';\r\n return $http.put(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.RejectJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.ConvertToNewJob = function (data, token, loggedInUserId, success, failure) {\r\n var url = ApiURL + '/api/Ticket/updatestatus';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.UpdateHoldingStatus = function (loggedInUserId, ticketId, holdingStatus, reason, Remark, token) {\r\n var url = ApiURL + '/api/Ticket/' + loggedInUserId + '/' + ticketId + '/ticketholding?HoldingStatus=' + holdingStatus + '&Reason=' + reason + '&Remark=' + Remark;\r\n return $http.put(url, {}, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n })\r\n }\r\n\r\n this.downloadOnSiteReport = function (loggedInUserId, token, TicketId) {\r\n var url = ApiURL + '/api/Report/GeneratePdfOnSiteReport?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n });\r\n }\r\n\r\n this.GetCancellationReasons = function (AuditTicketId, status, loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketCancelationReasonController/' + loggedInUserId + '/getCancellationReasons?AtStatus=' + status + '&TicketId=' + AuditTicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetPullBacknReasons = function (loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + 'PullBack';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetUserFeedbackOption = function (loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TicketRemarkOnStatus/getTicketRemarkOnStatus?AtStatus=' + 'userfeedback';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetUserByReportingTo = function (loggedInUserId, token) {\r\n var url = '';\r\n url = ApiURL + '/api/TerritoryMappingUser/GetUserByReportingTo';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n this.PullBackTicketFromTechnician = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/PullBackTicketFromTechnician';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n // https://testg2.mymobiforce.com/coreapi/api/UserCallInputs/UserDataUpdateRequest\r\n\r\n this.UserDataUpdateRequest = function (data, loggedInUserId, token) {\r\n var url = ApiURL + '/api/UserCallInputs/UserDataUpdateRequest';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.UserPenaltyUpdate = function (data, loggedInUserId, token) {\r\n var url = ApiURL + '/api/BonusPenalty/ApplyPaneltyForUser';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n this.UpdateJobServerCancel = function (CancellationReasonsModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobServerCancel';\r\n return $http.put(url, CancellationReasonsModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.SendCancelCodeToCustomer = function (SendCodeModel, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/SendCancelCodeToCustomer';\r\n return $http.put(url, SendCodeModel, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.CancelTicket = function (loggedInUserId, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/CancelTicket?reqUserId=' + loggedInUserId + '&TicketId=' + ticketId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n // this.TBCCancelationAudit = function(TBCCancelationModel,ticketId,loggedInUserId, token){\r\n // var url = ApiURL + '/api/Ticket/UpdateJobAudit?TicketId='+ticketId +'&AuditValue='+TBCCancelationModel;\r\n // return $http.put(url,null, {\r\n // headers: {\r\n // 'Content-Type': 'application/json',\r\n // 'Token': token,\r\n // 'UserId': loggedInUserId\r\n // }\r\n // });\r\n // }\r\n\r\n this.TBCCancelationAudit = function (data, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Ticket/UpdateJobAudit';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.updateTicketSettlement = function (data, token, loggedInUserId, success, failure) {\r\n\r\n var url = ApiURL + \"/api/Ticket/setsettlementstatus\"\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.UpdateFollowUpReason = function (data, files, token, loggedInUserId, success, failure) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"ActivityModel\", followupdata);\r\n\r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUserId }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n this.TicketFollowUpWithoutDoc = function (data, token, loggedInUserId, success, failure) {\r\n var formdata = new FormData();\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"ActivityModel\", followupdata);\r\n\r\n var url = ActivityURL + '/api/Activity/FollowUpWithReason';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedInUserId }\r\n }).then(success, function (error) {\r\n failure(\"Failed\", \"Job status is not updated. Server is not responding correctly.\")\r\n });\r\n }\r\n\r\n this.getCustomerJobCardbyJobId = function (accountId, jobId, token, success, failure) {\r\n $http.get(ApiURL + \"/api/GetCustomerJobCardbyJobId/\" + jobId + \"/\" + accountId + \"/GetCustomerJobCardbyJobId\", {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': accountId\r\n }\r\n }).then(function (res) {\r\n if (res && res.data && success) {\r\n success(res.data);\r\n } else if (failure) {\r\n failure();\r\n }\r\n });\r\n }\r\n\r\n this.AddSiteAuditwithAttachment = function (data, files, token, loggedinUser) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files[0]);\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"AuditRequestModel\", followupdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/Upload/PostMediaFileWithAuditObject';\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.getFixedUserInfo = function (userId, loggedInUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId + '/' + loggedInUser + '/' + 'byUserIdWithJobCount';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUser }\r\n })\r\n }\r\n\r\n this.getJobsByUserId = function (status, userId, loggedinUser, token, PageIndex, PageSize, OrderBy, SortType) {\r\n var url = ApiURL + \"/api/CallPatching/\" + userId + \"/\" + status + \"/byUserIdStatusforCHDWithDynPaging?\" + 'PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&OrderBy=' + OrderBy + '&SortType=' + SortType;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.ResolveException = function (loggedinUser, ticketId, token) {\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/MarkResolveSchedulerExceptionForTicket?reqUserId=' + loggedinUser;\r\n return $http.put(url, { 'exceptionIdList': ticketId }, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n this.GetFreelancerJobs = function (userId, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerTicket/' + userId + '/' + loggedinUser + '/ByUserId'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.ResolveException = function (loggedinUser, ticketId, token) {\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/MarkResolveSchedulerExceptionForTicket?reqUserId=' + loggedinUser;\r\n return $http.put(url, { 'exceptionIdList': ticketId }, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.ConvertJobIntoNew = function (MoveSPDbyTwoDays, IsCommissionDetect, PullBackReason, loggedinUser, ticketId, token) {\r\n var url = ApiURL + '/api/Ticket/ConvertToNewFromBroadcasted?PullBackReason=' + PullBackReason + '&MoveSPDbyTwoDays=' + MoveSPDbyTwoDays + '&IsCommissionDetect=' + IsCommissionDetect;\r\n return $http.post(url, ticketId, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetCustomersByAccount = function (loggedinUser, accountId, token) {\r\n var url = ApiURL + '/api/Customer/GetCustomerByAccountId?accountId=' + accountId\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.getAllAccounts = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/CentralHelpDesk/GetAllAccountHDConfig';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n\r\n }\r\n });\r\n }\r\n\r\n this.convertScheduleException = function (ticket, loggedinUser, token) {\r\n var url = SchedulingAPI + '/api/AutoSchedulerException/MarkTicketToScheduleException';\r\n return $http.put(url, ticket, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CreateJobBundle = function (loggedinUser, data, IsSuggested, token) {\r\n var url = ApiURL + '/api/JobBundle/CreateJobBundle?IsSuggested=' + IsSuggested;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UnBundleJobs = function (loggedinUser, data, token) {\r\n var url = ApiURL + '/api/JobBundle/UnBundleJobs';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.RouteBundlesforUser = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/CreateRoutingBidForBundle?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.BroadcastJobBundle = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/BroadcastJobBundle?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.BroadCastBundlesforUser = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/BID/ScheduleBundleWithAssistedScheduling?reqUserId=' + loggedinUser;\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllBundledJobs = function (loggedinUser, bundleJobId, token) {\r\n var url = ApiURL + '/api/JobBundle/GetAllBundledJobs?bundleJobId=' + bundleJobId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getJobsSuggestion = function (loggedinUser, token, startDate, endDate, itemNames, itemValues) {\r\n var url = ApiURL + \"/api/JobBundle/GetSuggestedJobByUser?\" + 'fromDate=' + startDate + '&toDate=' + endDate + '&itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getAllCustomers = function (loginUserId, token) {\r\n var url = ApiURL + '/api/Customer?reqUserId=' + loginUserId;\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId }\r\n });\r\n }\r\n\r\n this.GetAllProjects = function (loginUserId, token) {\r\n var url = ApiURL + '/api/Project/' + loginUserId + '/' + loginUserId + '/GetProjectsByUserId'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loginUserId }\r\n })\r\n }\r\n\r\n this.GetTicketDetailsBySuggestion = function (loggedinUser, token, startDate, endDate, itemNames, itemValues) {\r\n var url = ApiURL + \"/api/JobBundle/GetTicketDetailsBySuggestion?\" + 'fromDate=' + startDate + '&toDate=' + endDate + '&itemNames=' + itemNames + '&itemValues=' + itemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.updatePlannedClosure = function (loggedinUser, data, token, success, failure) {\r\n $http.put(ApiURL + '/api/Ticket/UpdatePlannedClosureDate', data,\r\n { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (res && res.status == 200 && res) {\r\n success(res.data);\r\n } else {\r\n failure(\"Failed\", res.data.Message);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to update job, server is not responding correctly.\");\r\n });\r\n }\r\n\r\n\r\n this.DownloadAllTicketReportWithFilter = function (loggedinUser, fromDate, toDate, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, DateField) {\r\n var url = PublicApiURL + \"/api/Report/DownloadAllTicketReportWithFilter?fromDate=\" + fromDate + '&toDate=' + toDate + '&reqUserId=' + loggedinUser + \"&itemNames=\" + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues + '&templateCols=' + templateCols + '&templateItemNames=' + templateItemNames + '&templateItemValues=' + templateItemValues + '&DateField=' + DateField;\r\n $window.open(url);\r\n }\r\n\r\n\r\n this.GetAllReprotingToUsersCRM = function (ticketId, loggedInUserId, token) {\r\n var url = MMFCRMURL + '/api/UserManagement/GetAllReprotingToUsersCRM?TicketId=' + ticketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.TransferCallToServiceCentre = function (ticketId, userId, loggedInUserId, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/TransferCallToServiceCentre?TicketId=' + ticketId + '&UserId=' + userId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n this.ReopenCancelCall = function (ticketId, loggedInUserId, token) {\r\n var url = MMFCRMURL + '/api/CRMConsumer/ReopenCancelCall?TicketId=' + ticketId;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.DonwloadPDFOnSiteReportForTickets = function (loggedInUserId, token,TicketId) {\r\n var url = ApiURL + '/api/Report/DonwloadPDFOnSiteReportForTickets?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n this.DownloadPAVReprotXls = function (TicketId, loggedInUserId, token) {\r\n var url = ApiURL + '/api/Report/DownloadPAVReprotXls?TicketId=' + TicketId;\r\n return $http.get(url, {\r\n headers: {\r\n 'ContentType': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedInUserId\r\n }\r\n\r\n });\r\n }\r\n\r\n this.OnSiteReprotUploadWeb = function (data, files, token, loggedinUser) {\r\n var formdata = new FormData();\r\n formdata.append(\"files\", files);\r\n var url = ApiURL + '/api/Upload/OnSiteReprotUploadWeb?TicketId=' + data;\r\n return $http.post(url, formdata, {\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n});\nangular.module('inspinia').controller('CRMManualAssignationJobController', function (CRMManualAssignationJobService,DashboardService,MainService,JobTicketViewService,CentralHelpdeskConfigService,AllUsersListService,ReferService, ScheduleAssignService,$q, $log, $state, $localStorage,UIURL, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, uiCalendarConfig, ImageUrl, PublicApiURL,$window) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserSkill = $localStorage.loggedInUser_SkillSet;\r\n var loggedinUserRegion = $localStorage.loggedInUser_Region;\r\n vm.accountid= $localStorage.accountConfig.AccountId;\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.CallPatchEnable = $localStorage.accountConfig.CallPatchEnable;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.toggleSingleClass = function() {\r\n $scope.class_status = !$scope.class_status;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.broadcastSentUser = true;\r\n $scope.toggleForBroadcast = function() {\r\n $scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.timeLineDetail = true;\r\n $scope.openTimeLine = function() {\r\n $scope.timeLineDetail = !$scope.timeLineDetail;\r\n $scope.myvalue = true;\r\n };\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n $scope.toggleMenu = function(){\r\n if ($scope.manualAssignationWrapper === \"hide-nav\"){\r\n $scope.manualAssignationWrapper = \"show-nav\";\r\n }\r\n else{\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n }\r\n };\r\n\r\n vm.orderdetailsview = function (salesOrderDetail) {\r\n $state.go('index.WareHouseOrderDetailView', {\r\n order_id: salesOrderDetail\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n $scope.hideAllUser = true;\r\n \r\n $scope.showAllUser = function(){\r\n $scope.hideAllUser = true; \r\n };\r\n $scope.hideAllUserbutton = function(){\r\n $scope.hideAllUser = false; \r\n };\r\n $scope.userClass_status = true;\r\n $scope.hideoverlay = function(){\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.userClass_status = true;\r\n $scope.broadcastSentUser = true;\r\n $scope.timeLineDetail = true;\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n vm.closeFeedbackoption();\r\n }\r\n $scope.close360ViewBroadcaste = function(){\r\n $scope.myvalue = false;\r\n angular.element('#div1').removeClass(\"alpha\");\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userSingle = function() {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.userFilter = true;\r\n $scope.assignJobFilter = function() {\r\n $scope.userFilter = !$scope.userFilter;\r\n $scope.myvalue = true;\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n // $scope.toggleMenu();\r\n };\r\n $scope.minatureSlide = true;\r\n $scope.minatureSlideBtn = function() {\r\n $scope.minatureSlide = !$scope.minatureSlide;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.hideFilter = function(){\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n var token = $localStorage.token;\r\n vm.IsOpenBucketEnabled = $localStorage.IsOpenBucketEnabled;\r\n vm.IsAutoAssignToCHDteam = $localStorage.IsAutoAssignToCHDteam;\r\n vm.IsOpenBucketEnabled = $localStorage.IsOpenBucketEnabled;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.MobiforceCommission = vm.getAccountConfigSetting('MobiforceCommissionPercentage');\r\n vm.VendorAssignation = vm.getAccountConfigSetting('VendorAssignation');\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.FreelancerAccess = vm.getAccountConfigSetting('FreelancerAccess');\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n vm.TeamStatus = '';\r\n vm.NewJobs = [];\r\n vm.BroadcastedJobs = '';\r\n vm.Attendence = '';\r\n vm.CancellationReasons = \"\";\r\n vm.JobProfile = '';\r\n vm.GroupType = \"Individual|WorkOrderGroup\";\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.loggedinAs = $localStorage.loggedinAs;\r\n vm.skillsSearch = '';\r\n vm.locationSearch = '';\r\n vm.userlocation = '';\r\n vm.userskill = '';\r\n vm.UserAvailable='';\r\n vm.AttendenceForBid ='';\r\n vm.skillData = '';\r\n vm.applyUserFilter = '';\r\n vm.MoveSPDbyTwoDays = false;\r\n vm.IsCommissionDetect = false;\r\n vm.filter = '';\r\n vm.circleData = '';\r\n vm.checkAll = '';\r\n vm.fixedUsers = '';\r\n vm.isChecked = \"fixed\";\r\n vm.freelancerUsers = '';\r\n vm.ticketaccount = '';\r\n vm.PermanentState = '';\r\n $scope.isCollapsed = true;\r\n $scope.isOpened = true; \r\n vm.PermanentCity ='';\r\n vm.ticketskill = '';\r\n vm.ticketstatus = '';\r\n vm.FreelancerVendorUsers = [];\r\n vm.VendorUsers = '';\r\n vm.selectedJob = '';\r\n vm.newJobselectAny = '';\r\n vm.fixed_selectAll = '';\r\n vm.searchText = \"\";\r\n vm.tab = '';\r\n vm.freelancerCheckAny = '';\r\n vm.filteredProperties = {};\r\n vm.filteredFreelancer = {};\r\n var GrossRate = 1.18;\r\n vm.selectsinglebidJob = '';\r\n vm.jobselected = [];\r\n vm.freelancer_selectAll = '';\r\n vm.supervisorList = '';\r\n vm.vendorList = [];\r\n vm.eventSources = [];\r\n vm.uiConfig = {};\r\n vm.AvailableUserData = '';\r\n vm.events = [];\r\n vm.UserAvailabilityData = '';\r\n vm.routebuttonDisable=false;\r\n vm.brodcastButtonDisable=false;\r\n vm.assignButtonDisable=false;\r\n vm.CurrentState = '';\r\n vm.WorkState = '';\r\n vm.WorkCity = '';\r\n vm.UserAvailabilityList = [\"Active\",\"MMFPrimeMember\",\"NoLead\",\"Offline\",\"OneJobDone\",\"Online\"];\r\n var itemNames = '';\r\n var itemValues = '';\r\n var fnitemNames = '';\r\n var fnitemValues = '';\r\n var templateItemNames = '';\r\n var templateItemValues = '';\r\n var textItemNames = '';\r\n var textItemValues = '';\r\n var PageIndex = 1;\r\n var PageSize = 10; \r\n vm.OrderBy = \"CreatedOn\";\r\n vm.sorttype = \"desc\";\r\n vm.SortType = \"desc\";\r\n vm.SortField = 'CreatedOn';\r\n vm.IsSafetyAudit = 'Not Done'; \r\n vm.ratingwarning=\"\";\r\n vm.ticketListLength=0;\r\n vm.pageindexCount=0;\r\n vm.bpageindexCount=0;\r\n vm.wpageindexCount=0;\r\n // vm.DateField=\"StatusChangedOn\";\r\n vm.DateField= vm.accountConfig.AccountId == 0 ? 'StatusChangedOn' : 'CreatedOn';\r\n vm.searchStatusText=\"All\"; \r\n var uPageIndex = 1;\r\n var uPageSize = 10; \r\n var jPageIndex = 1;\r\n var jPageSize = 10; \r\n var fPageIndex = 1;\r\n var fPageSize = 10;\r\n var bPageIndex = 1;\r\n var bPageSize = 10; \r\n var wPageIndex = 1;\r\n var wPageSize = 10;\r\n $scope.expanded = true; \r\n vm.UsersType=\"\";\r\n vm.uType=\"\";\r\n var uitemNames=\"\";\r\n var witemNames=\"\";\r\n var witemValues=\"\";\r\n vm.ComplianceDisable = true;\r\n vm.PincodeEnabled = false;\r\n vm.OneJobDoneOnSkill = false;\r\n vm.IsMMFPrimeMember = false;\r\n var uitemValues=\"\";\r\n vm.searchUsersText=\"\";\r\n vm.TicketSelectedForAssistedSuggestion = \"\"\r\n vm.UserSuggestionList = [];\r\n vm.StoreUserSuggestionList = [];\r\n vm.UserSuggestionCount = '';\r\n vm.HDAllAccounts = [];\r\n vm.jobsCount='';\r\n vm.UserBIDCount = '';\r\n vm.showMode = 'nearBy';\r\n vm.ticketPageListCount = 10;\r\n vm.userPageListCount= 10;\r\n vm.suggestionPageListCount=10;\r\n vm.jobsPageListCount=10;\r\n vm.financePageListCount= 10;\r\n vm.disableBroadcastButton = false;\r\n vm.disableBroadcastCloseButton = false;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.reasonsForFU = '';\r\n vm.reasonsForHold = ''; \r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = ''; \r\n vm.primaryHoldReason='';\r\n vm.primaryHoldRemark=''; \r\n vm.convertNewReasons = '';\r\n vm.convertNewReasonsRemark ='';\r\n vm.disableExceptionButton = false;\r\n vm.bundleTicketArray = [];\r\n vm.unbundleTicketArray = [];\r\n vm.bundleJobId='';\r\n vm.bundleListLength=0;\r\n vm.workOrderListLength=0;\r\n vm.bundlePageListCount = 10;\r\n vm.workOrderPageListCount = 10;\r\n vm.pullBackReasons =''; \r\n vm.pullBackReasonsRemark= '';\r\n var wsSDate = ''; \r\n var wsEDate = '';\r\n $scope.IsSuggested = false;\r\n vm.closureCode = \"\";\r\n vm.IsClosuerCodeAvailable = false;\r\n vm.IsWithInDays = \"first\";\r\n vm.WithInDaysNumbers = [1,2,3,4,5];\r\n vm.PlannedClosureDate = \"\";\r\n vm.itemNamesSgtn = 'Pincode';\r\n vm.itemValuesSgtn = '';\r\n vm.ticketdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n //'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n var scdt = new Date();\r\n scdt.setMinutes(scdt.getMinutes() + 30);\r\n vm.SourceCreationDate = scdt;\r\n var pcdt = new Date();\r\n pcdt.setDate(pcdt.getDate() + 7);\r\n vm.PlannedClosureDate = pcdt;\r\n\r\n vm.openCalendar = function (e, picker) {\r\n vm.ClosureDateTime.open = true;\r\n };\r\n var plannedclosuredatelimit = new Date();\t\r\n plannedclosuredatelimit.setMinutes(plannedclosuredatelimit.getMinutes() + 1)\r\n vm.ClosureDateTime = { date: '', datepickerOptions: { minDate: plannedclosuredatelimit } };\r\n\r\n var date = new Date();\r\n var d = date.getDate();\r\n var m = date.getMonth();\r\n var y = date.getFullYear(); \r\n vm.eventsF = function (start, end, timezone, callback) {\r\n var s = new Date(start).getTime() / 1000;\r\n var e = new Date(end).getTime() / 1000;\r\n var m = new Date(start).getMonth();\r\n var events = [{\r\n title: 'Feed Me ' + m,\r\n start: s + (50000),\r\n end: s + (100000),\r\n allDay: false,\r\n className: ['customFeed']\r\n }];\r\n callback(events);\r\n };\r\n if (vm.accountConfig.AccountId === '361' || vm.accountConfig.AccountId === '364' || vm.accountConfig.AccountId === '380' || vm.accountConfig.AccountId === '383' || vm.accountConfig.AccountId === '388' || vm.accountConfig.AccountId === '390') {\r\n vm.UserAvailabilityList = vm.UserAvailabilityList.filter(function(item) {\r\n return item !== \"MMFPrimeMember\";\r\n });\r\n}\r\n vm.getSkills = function () {\r\n JobTicketViewService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills;\r\n //vm.skills.unshift({ \"SkillName\": \"All Job Types\" }); \r\n if (vm.path == 'isTicketView') {\r\n vm.searchJobTypeText = $localStorage.AllJobType;\r\n // vm.searchStatusText = $localStorage.AllJobStatus;\r\n } \r\n }, vm.showFailure);\r\n }\r\n vm.getSkills();\r\n\r\n vm.GetFinanceTicketDetail = function (paymentId,isCollapsed) {\r\n $scope.isCollapsed = !isCollapsed; \r\n DashboardService.GetFinanceTicketDetail(paymentId).then(function (resp) {\r\n vm.financedetails = resp.data;\r\n })\r\n }\r\n\r\n vm.Allapplyfilter = function(){\r\n vm.searchText='';\r\n $scope.userFilter = true;\r\n $scope.myvalue = false;\r\n vm.GroupType = 'Individual|WorkOrderGroup';\r\n $scope.$broadcast('update.daterangepicker', {date: vm.ticketdates}); \r\n $scope.UserTablepagination = {}; \r\n vm.FilterArray(); \r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n} \r\n\r\nvm.getAllAccounts = function ( ) {\r\n CRMManualAssignationJobService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data) { \r\n if(resp.status==200)\r\n {\r\n vm.HDAllAccounts = resp.data;\r\n\r\n }\r\n } \r\n }, function () { \r\n });\r\n}\r\nvm.getAllAccounts();\r\n\r\nvm.getAllCustomer = function(){ \r\n CRMManualAssignationJobService.getAllCustomers(loggedinUser,token).then(function(resp){\r\n vm.CustomerAcc = resp.data;\r\n })\r\n} \r\nvm.getAllProject= function(){ \r\n CRMManualAssignationJobService.GetAllProjects(loggedinUser,token).then(function(resp){\r\n vm.ProjectAcc = resp.data;\r\n })\r\n}\r\nvm.getAllCustomer();\r\nvm.getAllProject();\r\n\r\nvm.GetCustomerByAccount=function()\r\n{ var SelectedAccountId = ''; \r\n angular.forEach(vm.HDAllAccounts, function (account) {\r\n if (account.AccountName==vm.SearchByAccountName) {\r\n SelectedAccountId = account.AccountId; \r\n }\r\n })\r\n CRMManualAssignationJobService.GetCustomersByAccount(loggedinUser,SelectedAccountId,token).then(function(resp){\r\n vm.CustomerList = resp.data;\r\n })\r\n}\r\n\r\nvm.GetProjectByCustomer=function()\r\n{\r\n vm.ProjectListByCust=[];\r\n angular.forEach(vm.CustomerList, function (customer) {\r\n if (customer.CompanyName==vm.SearchByCName) {\r\n vm.ProjectListByCust = customer.Projects; \r\n }\r\n})\r\n}\r\n\r\nvm.GetProjectByCust=function()\r\n {\r\n vm.ProjectListByCustomer=[];\r\n angular.forEach(vm.ProjectList, function (prject) {\r\n if (prject.CustomerName==vm.SearchByCName) {\r\n vm.ProjectListByCustomer.push(prject);\r\n }\r\n })\r\n }\r\n\r\n vm.AutoBroadcastJobs = function(){\r\n vm.DisableBroadcastButtons(false); \r\n var ticketIds = ''; \r\n var count = 0; \r\n angular.forEach(vm.ticketList, function(d){\r\n if (d.checked) {\r\n count = count + 1;\r\n if(ticketIds == ''){\r\n ticketIds = d.TicketId;\r\n }\r\n else{\r\n ticketIds = ticketIds + \",\" + d.TicketId;\r\n } \r\n }\r\n })\r\n\r\n vm.confirmationMessage = 'Please confirm if you want to auto schedule ' + count + ' Jobs?';\r\n vm.autoBroadcastJobIds = ticketIds;\r\n confirmationModalInstance = $uibModal.open({\r\n templateUrl: 'auto_schedule_confirmation_model.html',\r\n scope: $scope,\r\n backdrop: 'static'\r\n });\r\n }\r\n\r\n vm.confirmationCloseModal = function () {\r\n vm.DisableBroadcastButtons(false); \r\n confirmationModalInstance.close();\r\n }\r\n\r\n\r\n vm.DisableBroadcastButtons = function (disable) {\r\n if(disable){\r\n vm.disableBroadcastButton = true;\r\n vm.disableBroadcastCloseButton = true;\r\n }\r\n else{\r\n vm.disableBroadcastButton = false;\r\n vm.disableBroadcastCloseButton = false;\r\n }\r\n }\r\n\r\n vm.AutoScheduleJobs = function () { \r\n vm.DisableBroadcastButtons(true);\r\n var data = {\r\n \"ticketIds\": vm.autoBroadcastJobIds\r\n } \r\n CRMManualAssignationJobService.AutoBroadcastAllNewJobsManualMode(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000); \r\n confirmationModalInstance.close(); \r\n vm.showSuccess(\"Success\", \"Jobs has been auto scheduled successfully\");\r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.DisableBroadcastButtons(false); \r\n confirmationModalInstance.close();\r\n }\r\n }, function () { \r\n });\r\n }\r\n\r\n CRMManualAssignationJobService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n CRMManualAssignationJobService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n \r\n vm.callToTechnician = function (userid) { \r\n CRMManualAssignationJobService.callToTechnicianApi(loggedinUser,userid, token).then(function (resp) {\r\n if(resp.status == 200) {\r\n vm.showSuccess(\"Success\",\"Call Initiated\") \r\n }\r\n else {\r\n vm.showFailure(\"Failure\",resp.data.Message)\r\n }\r\n \r\n });\r\n \r\n}\r\n\r\nvm.callToTechnicianInBroadcastState = function (userid,ticketId) { \r\n CRMManualAssignationJobService.callToTechnicianInBroadcastState(loggedinUser,userid,ticketId, token).then(function (resp) {\r\n if(resp.status == 200) {\r\n vm.showSuccess(\"Success\",\"Call Initiated\") \r\n }\r\n else {\r\n vm.showFailure(\"Failure\",resp.data.Message)\r\n }\r\n \r\n });\r\n\r\n}\r\n\r\nvm.GetAllWorkOrderJob = function (isCollapsed,workOrder) {\r\n if(vm.workOrder == workOrder){\r\n $scope.isCollapsed = !isCollapsed;\r\n } \r\n $scope.activeRow = workOrder;\r\n vm.workOrder = workOrder;\r\n vm.workOrdertList = [];\t\r\n if($scope.isCollapsed)\r\n return;\r\n CRMManualAssignationJobService.GetAllWorkOrderJob(loggedinUser,workOrder, token).then(function (resp) {\r\n if (resp && resp.data) {\t\t \r\n if(resp.status==200){\r\n vm.workOrdertList = resp.data;\r\n }\r\n }\r\n });\r\n}\r\n\r\nvm.getRejectHistory = function (ticketId) \r\n{ \r\n CRMManualAssignationJobService.getRejectHistory(ticketId,loggedinUser,token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.getDetailsList=resp.data;\r\n openHistoryModel = $uibModal.open({\r\n templateUrl: 'openHistoryModel.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n }, function () { \r\n });\r\n} \r\n\r\nvm.CloseHistoryModel = function () {\r\n openHistoryModel.close();\r\n}\r\n\r\n //pull back\r\n vm.PullBackJobs = function(){\r\n var ticketIds = ''; \r\n var count = 0; \r\n angular.forEach(vm.ticketList, function(d){\r\n if (d.checked) {\r\n count = count + 1;\r\n if(ticketIds == ''){\r\n ticketIds = d.TicketId;\r\n }\r\n else{\r\n ticketIds = ticketIds + \",\" + d.TicketId;\r\n } \r\n }\r\n })\r\n vm.pullBackJobIds = ticketIds;\r\n vm.DisableBroadcastButtons(true);\r\n var JobIdsforPull = [];\r\n JobIdsforPull.push(vm.pullBackJobIds); \r\n CRMManualAssignationJobService.PullBackJob(loggedinUser, JobIdsforPull, token).then(function (resp) {\r\n if (resp.status == 202) { \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize); \r\n vm.showSuccess(\"Success\", \"Jobs - \" + vm.pullBackJobIds + \" pulledback succesfully\"); \r\n }, 1000); \r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableBroadcastButtons(false); \r\n }\r\n }, function () { \r\n });\r\n}\r\n\r\n /* alert on dayClick */\r\n vm.ev = {};\r\n vm.alertOnDayClick = function (date) {\r\n vm.alertMessage = (date.toString());\r\n vm.ev = {\r\n from: date.format('YYYY-MM-DD'),\r\n to: date.format('YYYY-MM-DD'),\r\n title: '',\r\n allDay: true\r\n };\r\n };\r\n\r\n /* alert on eventClick */\r\n vm.alertOnEventClick = function (date, jsEvent, view) {\r\n vm.alertMessage = (date.title);\r\n };\r\n /* alert on Drop */\r\n vm.alertOnDrop = function (event, delta, revertFunc, jsEvent, ui, view) {\r\n vm.alertMessage = ('Event Dropped to make dayDelta ' + delta);\r\n };\r\n /* alert on Resize */\r\n vm.alertOnResize = function (event, delta, revertFunc, jsEvent, ui, view) {\r\n vm.alertMessage = ('Event Resized to make dayDelta ' + delta);\r\n };\r\n /* add and removes an event source of choice */\r\n vm.addRemoveEventSource = function (sources, source) {\r\n var canAdd = 0;\r\n angular.forEach(sources, function (value, key) {\r\n if (sources[key] === source) {\r\n sources.splice(key, 1);\r\n canAdd = 1;\r\n }\r\n });\r\n if (canAdd === 0) {\r\n sources.push(source);\r\n }\r\n };\r\n /* add custom event*/\r\n vm.addEvent = function () {\r\n vm.events.push({\r\n title: $scope.ev.title,\r\n start: moment($scope.ev.from),\r\n end: moment($scope.ev.to),\r\n allDay: true,\r\n className: ['openSesame']\r\n });\r\n };\r\n /* remove event */\r\n /*$scope.remove = function (index) {\r\n $scope.events.splice(index, 1);\r\n };*/\r\n /* Change View */\r\n vm.changeView = function (view, calendar) {\r\n vm.currentView = view;\r\n uiCalendarConfig.calendars[calendar].fullCalendar('changeView', view);\r\n\r\n };\r\n /* Change View */\r\n vm.renderCalender = function (calendar) {\r\n $timeout(function () {\r\n if (uiCalendarConfig.calendars[calendar]) {\r\n uiCalendarConfig.calendars[calendar].fullCalendar('render');\r\n }\r\n });\r\n };\r\n /* Render Tooltip */\r\n $scope.eventRender = function (event, element, view) {\r\n element.attr({\r\n 'tooltip': event.title,\r\n 'uib-tooltip-append-to-body': true\r\n });\r\n $compile(element)($scope);\r\n };\r\n\r\n vm.currentView = 'month';\r\n\r\n /* config object */\r\n vm.uiConfig = {\r\n calendar: {\r\n height: 450,\r\n editable: false,\r\n displayEventTime: false,\r\n header: {\r\n left: 'title',\r\n center: 'myCustomButton',\r\n right: 'prev,next'\r\n },\r\n dayClick: vm.alertOnDayClick,\r\n eventClick: vm.alertOnEventClick,\r\n eventResize: vm.alertOnResize,\r\n eventRender: function (event, element, view) {\r\n element.attr({\r\n 'uib-tooltip': event.title,\r\n 'uib-tooltip-append-to-body': true\r\n });\r\n $compile(element)($scope);\r\n },\r\n businessHours: {\r\n start: '10:00', // a start time (10am in this example)\r\n end: '18:00', // an end time (6pm in this example)\r\n\r\n dow: [1, 2, 3, 4]\r\n // days of week. an array of zero-based day of week integers (0=Sunday)\r\n // (Monday-Thursday in this example)\r\n }\r\n }\r\n };\r\n\r\n vm.events = [];\r\n\r\n /* event sources array*/\r\n vm.eventSources = [vm.events, vm.eventsF];\r\n // vm.eventSources2 = [vm.calEventsExt, vm.eventsF, vm.events];\r\n\r\n //Availablity\r\n vm.Availibility = function (data) {\r\n vm.showAvailability = true;\r\n vm.AvailableUserData = data;\r\n vm.GetAssignedTicketforUser(data.UserId, loggedinUser, token)\r\n }\r\n\r\n vm.AvailibilityUS = function (data) {\r\n vm.showAvailability = true;\r\n vm.AvailableUserData = data;\r\n }\r\n\r\n vm.getAccounts = function () {\r\n CRMManualAssignationJobService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data && resp.status==200) { \r\n vm.accounts = resp.data;\r\n } \r\n }, function () { \r\n });\r\n } \r\n vm.getAccounts();\r\n\r\n\r\n vm.DisableRouteBroadcastButtons = function (disable) {\r\n if(disable){\r\n vm.brodcastButtonDisable = true;\r\n vm.routebuttonDisable = true;\r\n }\r\n else{\r\n vm.brodcastButtonDisable = false;\r\n vm.routebuttonDisable = false;\r\n }\r\n }\r\n\r\n //Get new Jobs\r\n vm.GetNewJobs = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemName = \"Circle,SkillSet\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch;\r\n } else {\r\n var itemName = '';\r\n var itemValues = '';\r\n }\r\n\r\n if(loggedinUserSkill==\"VSAT\"){\r\n itemName+=\"Template\";\r\n itemValues+=\"VSAT CCR\";\r\n } else if(loggedinUserSkill==\"LeaseLine\"){\r\n itemName+=\"Template\";\r\n itemValues+=\"LeaseLine CCR\";\r\n }\r\n CRMManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemName, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.NewJobs = resp.data;\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n var today = moment();\r\n //var date = moment(\"2015-05-13\", \"YYYY-MM-DD\");\r\n var date2 = vm.NewJobs[index].CreationDate;//moment(vm.NewJobs[index].CreationDate,'DD/MM/YYYY').format(\"YYYY-MM-DD\");\r\n // date2 = new Date(date2);\r\n var duration = today.diff(date2, 'days');\r\n // var hours = today.diff(date2,'hours');\r\n vm.NewJobs[index].Age = duration; \r\n }\r\n vm.selectAllNewJob = false;\r\n vm.showMinusNewJob = false;\r\n if(vm.IsMaterialDelivered){\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n if(vm.NewJobs[index].MetrialDeliverStatus =='Delivered'){\r\n vm.NewJobs[index].IsDissablePermision = false;\r\n }else{\r\n vm.NewJobs[index].IsDissablePermision = true;\r\n } \r\n }\r\n }\r\n } else {\r\n vm.NewJobs = '';\r\n //$log.log('vm.NewJobs', 'List Empty')\r\n }\r\n }\r\n })\r\n }\r\n vm.GetRejectedJobs = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemName = \"Ticket Status,Circle,SkillSet\";\r\n var itemValues = 'Rejected' + ',' + vm.locationSearch + ',' + vm.skillsSearch;\r\n } else {\r\n var itemName = 'Ticket Status';\r\n var itemValues = 'Rejected';\r\n }\r\n CRMManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemName, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.NewJobs = resp.data;\r\n\r\n for (var index = 0; index < vm.NewJobs.length; index++) {\r\n var today = moment();\r\n //var date = moment(\"2015-05-13\", \"YYYY-MM-DD\");\r\n var date2 = vm.NewJobs[index].CreationDate;//moment(vm.NewJobs[index].CreationDate,'DD/MM/YYYY').format(\"YYYY-MM-DD\");\r\n // date2 = new Date(date2);\r\n\r\n var duration = today.diff(date2, 'days');\r\n // var hours = today.diff(date2,'hours');\r\n vm.NewJobs[index].Age = duration;\r\n }\r\n vm.selectAllNewJob = false;\r\n vm.showMinusNewJob = false;\r\n //$log.log('New TicketList',vm.NewJobs);\r\n\r\n } else {\r\n vm.NewJobs = '';\r\n //$log.log('vm.NewJobs', 'List Empty')\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n //Get all Active Fixed Users\r\n\r\n vm.GetAllActiveFixedUsers = function () {\r\n\r\n if (vm.loggedInUserRole == 'Administrator' || vm.loggedInUserRole == 'Project Manager' || vm.loggedinAs == 'Supervisor' || vm.loggedinAs == 'Vendor Supervisor' || vm.loggedInUserRole =='Help Desk') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n }\r\n if(vm.loggedInUserRole =='Help Desk') {\r\n itemNames+=\",SkillSet,SubRegion\";\r\n itemValues+=\",\"+loggedinUserSkill+\",\"+loggedinUserRegion;\r\n }\r\n\r\n CRMManualAssignationJobService.GetUsersByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('vm.fixedUsers', vm.fixedUsers);\r\n preprocessData(vm.fixedUsers);\r\n }\r\n })\r\n } else if (vm.loggedInUserRole == 'Vendor Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n }\r\n\r\n CRMManualAssignationJobService.GetUsersByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n preprocessData(vm.fixedUsers);\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.loadAllSkills = function(){\r\n CRMManualAssignationJobService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skillsWithPipe = '';\r\n if (resp && resp.data) {\r\n vm.skillData = resp.data;\r\n if(vm.skillData && vm.skillData.length>0){\r\n angular.forEach(vm.skillData, function(s){\r\n vm.skillsWithPipe += s.SkillName+\"|\";\r\n });\r\n vm.skillsWithPipe = vm.skillsWithPipe.length>0\r\n ? vm.skillsWithPipe.substring(0,vm.skillsWithPipe.length-1) : \"\";\r\n }\r\n }\r\n });\r\n }\r\n vm.loadAllSkills();\r\n\r\n\r\n vm.GetFollowupReasons = function(){\r\n CRMManualAssignationJobService.GetReasonsByStatus(loggedinUser, token, 'FollowUp').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForFU = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetFollowupReasons();\r\n\r\n vm.GetHoldReasons = function(){\r\n CRMManualAssignationJobService.GetReasonsByStatus(loggedinUser, token, 'Hold').then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.reasonsForHold = resp.data;\r\n }\r\n });\r\n }\r\n vm.GetHoldReasons();\r\n vm.usersStatus = 'Assigned';\r\n vm.applyFilterForUser = function(status) {\r\n vm.usersStatus = status;\r\n vm.filterType = \"\";\r\n vm.GetListAllFreelancers();\r\n }\r\n vm.GetListAllFreelancers = function () {\r\n // if(vm.filterTktStatus){\r\n // vm.usersStatus = 'Broadcasted';\r\n // }\r\n // else if(!vm.filterTktStatus && vm.usersStatus == 'Broadcasted'){\r\n // vm.usersStatus = \"Assigned\";\r\n // }\r\n // else {\r\n // vm.usersStatus;\r\n // }\r\n vm.filterToggle = true;\r\n var data = {\r\n \"itemNames\": \"Status\", \r\n \"itemValues\": vm.usersStatus, \r\n \"Type\": vm.filterType,\r\n \"toDate\": endDate,\r\n \"fromDate\": startDate,\r\n \"OrderBy\":vm.OrderBy, \r\n \"OrderSeq\":vm.OrderSeq\r\n }\r\n CRMManualAssignationJobService.GetListAllFreelancers(data,loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.listofActiveUsers = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.sortColumnUser = function(OrderBy){\r\n vm.OrderBy = OrderBy;\r\n // vm.Orderby = col;\r\n if(vm.OrderSeq=='desc'){\r\n vm.OrderSeq = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n }else{\r\n vm.OrderSeq = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.GetListAllFreelancers();\r\n };\r\n\r\n vm.sortClassUser = function(col){\r\n if(vm.OrderBy == col ){\r\n if(vm.OrderSeq == 'desc'){\r\n return 'fa fa-arrow-down'; \r\n }else{\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else{\r\n return '';\r\n }\r\n }\r\n //Get all Freelancers\r\n vm.GetAllFreelancers = function () {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"UserStatus,Locations,SkillSet,Role\";\r\n var itemValues = \"Active\" + ',' + vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Field Engineer';\r\n } else {\r\n var itemNames = \"UserStatus,Role\";\r\n var itemValues = \"Active,Field Engineer\";\r\n if(vm.skillsWithPipe && vm.skillsWithPipe.length>0){\r\n itemNames+=\",SkillSet\";\r\n itemValues+=\",\"+vm.skillsWithPipe;\r\n }\r\n }\r\n CRMManualAssignationJobService.GetAllFreelancersWithFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n // for(var i=0;i 0) {\r\n vm.FreelancerVendorUsers = resp.data;\r\n // for(var i=0;i 0) {\r\n CRMManualAssignationJobService.AssignTickets(userId, loggedinUser, itemValues, token).then(function (resp) {\r\n\r\n if (resp && resp.data && resp.data.ErrorCode == 140 && resp.data.Message) {\r\n if (mode == 'fixed') {\r\n vm.showFailure(\"Failed\", resp.data.Message + \". Please recharge your account.\");\r\n vm.assignButtonDisable = false;\r\n } else {\r\n vm.showFailure(\"Failed\", resp.data.Message + \".\");\r\n vm.assignButtonDisable = false;\r\n }\r\n } else if (resp && resp.data && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Ticket assigned successfully\"); \r\n $timeout(function () {\r\n if(vm.TicketType == 'Combo') {\r\n vm.applyComboTktFilter();\r\n }\r\n if(vm.TicketType == 'WorkOrderGroup') {\r\n vm.applyfilterWorkOrder();\r\n }\r\n else{\r\n vm.applyTicketFilter();\r\n } \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n }, 1000);\r\n vm.assignButtonDisable = false;\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data); \r\n $timeout(function () {\r\n if(vm.TicketType == 'Combo') {\r\n vm.applyComboTktFilter();\r\n }\r\n if(vm.TicketType == 'WorkOrderGroup') {\r\n vm.applyfilterWorkOrder();\r\n }\r\n else{\r\n vm.applyTicketFilter();\r\n }\r\n vm.applyUserFilter(); \r\n }, 1000);\r\n vm.assignButtonDisable = false;\r\n } else {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n }\r\n\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Ticket could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select New, Broadcasted or Assigned tickets to assign\");\r\n vm.assignButtonDisable = false;\r\n }\r\n }\r\n\r\n vm.toggleAll = function () {\r\n //$log.log('checkAll', vm.checkAll);\r\n var bool = true;\r\n if (vm.checkAll) {\r\n bool = false;\r\n }\r\n angular.forEach(vm.NewJobs, function (v, k) {\r\n // //$log.log('v',v);\r\n // //$log.log('k',k);\r\n v.checked = !bool;\r\n // //$log.log('!bool', v.checked);\r\n vm.checkAll = !bool;\r\n });\r\n }\r\n\r\n vm.checkAny = function (i) {\r\n //$log.log('newJobselectAny', vm.newJobselectAny);\r\n vm.checkAll = true;\r\n angular.forEach(vm.NewJobs, function (v, k) {\r\n\r\n if (!v.checked) {\r\n vm.checkAll = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n vm.showCheckAny = function (i) {\r\n vm.showMinus = true;\r\n angular.forEach(vm.freelancerCheckAny, function (v, k) {\r\n if (v != true && k == vm.freelancerCheckAny[i]) {\r\n vm.showMinus = false;\r\n } else {\r\n vm.showMinus = true;\r\n }\r\n });\r\n }\r\n\r\n vm.GetTicketById = function (ticketId) {\r\n CRMManualAssignationJobService.GetTicketsById(ticketId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.JobProfile = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.removeFilters = function () {\r\n if (vm.isChecked == 'fixed') {\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n\r\n CRMManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n CRMManualAssignationJobService.GetUsersByFilter(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('fixedUsers', resp.data);\r\n preprocessData(vm.fixedUsers);\r\n } else {\r\n vm.fixedUsers = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get users, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'freelancer') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n CRMManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n } else if(vm.skillsWithPipe && vm.skillsWithPipe.length>0){\r\n teamIteamNames+=\",SkillSet\";\r\n teamIteamValues+=vm.skillsWithPipe;\r\n }\r\n CRMManualAssignationJobService.GetAllFreelancersWithFilters(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n //$log.log('freelancers', vm.freelancerUsers);\r\n preprocessData(vm.freelancerUsers);\r\n } else {\r\n vm.freelancerUsers = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get freelancers, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get freelancers, server is not responding correctly.\");\r\n });\r\n\r\n var broadItemNames = 'Circle,SkillSet,TicketStatus';\r\n var broadItemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Broadcasted';\r\n\r\n CRMManualAssignationJobService.GetBroadcastedBids(loggedinUser, broadItemNames, broadItemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'vendor') {\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n\r\n CRMManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"UserStatus,Role\";\r\n var teamIteamValues = 'Active' + ',' + 'Field Engineer';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n CRMManualAssignationJobService.GetAllVendors(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.vendorList = resp.data;\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get vendors, server is not responding correctly.\");\r\n })\r\n\r\n } else if (vm.isChecked == 'supervisor') {\r\n\r\n var itemNames = \"TicketStatus\";\r\n var itemValues = 'New';\r\n\r\n if (vm.locationSearch) {\r\n itemNames += \",Circle\";\r\n itemValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n itemNames += \",SkillSet\";\r\n itemValues += \",\" + vm.skillsSearch;\r\n }\r\n CRMManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"UserStatus\";\r\n var teamIteamValues = 'Active';\r\n\r\n if (vm.locationSearch) {\r\n teamIteamNames += \",Locations\";\r\n teamIteamValues += \",\" + vm.locationSearch;\r\n }\r\n if (vm.skillsSearch) {\r\n teamIteamNames += \",SkillSet\";\r\n teamIteamValues += \",\" + vm.skillsSearch;\r\n }\r\n CRMManualAssignationJobService.GetUsersByRole(loggedinUser, 'Supervisor', teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data.length > 0) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n } else {\r\n vm.supervisorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get supervisors, server is not responding correctly.\");\r\n });\r\n }\r\n }\r\n\r\n //To Search\r\n vm.search = function () {\r\n if (vm.searchform.$valid) {\r\n if (vm.isChecked == 'fixed') {\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n CRMManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n CRMManualAssignationJobService.GetUsersByFilter(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.fixedUsers = resp.data;\r\n //$log.log('fixedUsers', resp.data);\r\n preprocessData(vm.fixedUsers);\r\n } else {\r\n vm.fixedUsers = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n })\r\n } else if (vm.isChecked == 'freelancer') {\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n CRMManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n CRMManualAssignationJobService.GetAllFreelancersWithFilters(loggedinUser, teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.freelancerUsers = resp.data;\r\n //$log.log('freelancers', vm.freelancerUsers);\r\n preprocessData(vm.freelancerUsers);\r\n } else {\r\n vm.freelancerUsers = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get field engineers, server is not responding correctly.\");\r\n });\r\n\r\n var broadItemNames = 'Circle,SkillSet,TicketStatus';\r\n var broadItemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Broadcasted';\r\n CRMManualAssignationJobService.GetBroadcastedBids(loggedinUser, broadItemNames, broadItemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BroadcastedJobs = resp.data;\r\n // vm.TeamProfile = vm.TeamProfile[0];\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get broadcasted jobs, server is not responding correctly.\");\r\n })\r\n\r\n\r\n } else if (vm.isChecked == 'vendor') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n\r\n CRMManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get jobs, server is not responding correctly.\");\r\n })\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus,Role\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + 'Field Engineer';\r\n CRMManualAssignationJobService.GetAllVendors(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n vm.vendorList = resp.data;\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get vendors, server is not responding correctly.\");\r\n });\r\n\r\n } else if (vm.isChecked == 'supervisor') {\r\n\r\n var itemNames = \"Circle,SkillSet,TicketStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'New';\r\n CRMManualAssignationJobService.GetTicketsByFilter(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data.length > 0) {\r\n vm.NewJobs = resp.data;\r\n //$log.log('filteredData', resp.data);\r\n } else {\r\n vm.NewJobs = '';\r\n }\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get supervisors, server is not responding correctly.\");\r\n });\r\n\r\n var teamIteamNames = \"Locations,SkillSet,UserStatus\";\r\n var teamIteamValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n CRMManualAssignationJobService.GetUsersByRole(loggedinUser, 'Supervisor', teamIteamNames, teamIteamValues, token).then(function (resp) {\r\n if (resp && resp.data.length > 0) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n } else {\r\n vm.supervisorList = '';\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to get users, server is not responding correctly.\");\r\n })\r\n\r\n }\r\n vm.SearchModal.close();\r\n } else {\r\n vm.searchform.submitted = true;\r\n }\r\n\r\n\r\n }\r\n\r\n \r\n vm.tabNo = function (tab) {\r\n vm.tab = tab;\r\n //$log.log('TabNo', vm.tab);\r\n }\r\n\r\n vm.ChangeMode = function (mode) {\r\n vm.tabNo('1');\r\n if (mode == 'fixed') {\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties={\"SkillSet\":\"Water Sample Collection\"};\r\n } \r\n vm.GetAllActiveFixedUsers();\r\n\r\n } else if (mode == 'freelancer') {\r\n vm.GetAllFreelancers();\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n vm.freelancer_select_all = false;\r\n vm.freelancer_selectAll = false;\r\n vm.freelancer_SelectAllJob = false;\r\n vm.freelancer_Select_All_NewJobs = false;\r\n\r\n\r\n } else if (mode == 'FixedVendors') {\r\n vm.GetAllVendors();\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties={\"SkillSet\":\"Water Lab Test\"};\r\n }\r\n } else if (mode == 'vendor') {\r\n vm.GetAllFreelancerVendors();\r\n vm.Vendor_selectedItems = [];\r\n vm.Vendor_select_single = [];\r\n vm.Vendor_NewJobSelectedItems = [];\r\n vm.Vendor_select_single_NewJob = [];\r\n vm.Vendor_select_all = false;\r\n vm.Vendor_selectAll = false;\r\n vm.Vendor_SelectAllJob = false;\r\n vm.Vendor_Select_All_NewJobs = false;\r\n\r\n\r\n }\r\n else if (mode == 'supervisor') {\r\n vm.GetUsersByRole('Supervisor');\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n if(vm.getAccountConfigSetting('CustomizeJobAssign')){\r\n vm.filteredProperties = {\"SkillSet\":\"Water Lab Test\"};\r\n }\r\n }\r\n }\r\n vm.ChangeMode('fixed');\r\n\r\n\r\n //Get Users By Role\r\n\r\n vm.GetUsersByRole = function (role) {\r\n\r\n if (vm.loggedInUserRole == 'Administrator' || vm.loggedInUserRole == 'Project Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active\";\r\n }\r\n } else if (vm.loggedinAs == 'Supervisor' || vm.loggedinAs == 'Vendor Supervisor') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus,ReportingTo\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active' + ',' + vm.loggedInUserReportingTo;\r\n } else {\r\n var itemNames = \"UserStatus,ReportingTo\";\r\n var itemValues = \"Active,\" + vm.loggedInUserReportingTo;\r\n }\r\n } else if (vm.loggedInUserRole == 'Vendor Manager') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active,\";\r\n }\r\n }\r\n else if (vm.loggedInUserRole == 'Help Desk') {\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n var itemNames = \"Locations,SkillSet,UserStatus\";\r\n var itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n var itemNames = \"UserStatus\";\r\n var itemValues = \"Active,\";\r\n }\r\n }\r\n\r\n CRMManualAssignationJobService.GetUsersByRole(loggedinUser, role, itemNames, itemValues, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.supervisorList = resp.data;\r\n preprocessData(vm.supervisorList);\r\n }\r\n })\r\n\r\n }\r\n\r\n vm.processBroadcastRouteResponse= function(data){\r\n var SuccessCount = 0;\r\n var failuremsg = '';\r\n\r\n angular.forEach(data, function (res) {\r\n if (res.BroadcastStatus=='Job Assigned') {\r\n SuccessCount = SuccessCount + 1; \r\n }\r\n else\r\n {\r\n failuremsg = failuremsg + res.JobId + ' ' + res.BroadcastStatus + ' ';\r\n }\r\n });\r\n\r\n if(SuccessCount > 0 && failuremsg)\r\n {\r\n failuremsg = SuccessCount + ' Jobs routed Successfully ' + failuremsg;\r\n vm.showFailure('Failed',failuremsg);\r\n }\r\n else if(SuccessCount > 0)\r\n {\r\n failuremsg = SuccessCount + ' Jobs routed Successfully ';\r\n vm.showSuccess('Success',failuremsg);\r\n }\r\n else\r\n {\r\n vm.showFailure('Failed',failuremsg);\r\n }\r\n }\r\n\r\n //vm.tabNo('1');\r\n // Route Jobs\r\n vm.routeTicket = function(index){\r\n vm.DisableRouteBroadcastButtons(true);\r\n var data = {};\r\n for(var i=0; i< vm.ticketList.length;i++){\r\n if(vm.ticketList[i].TicketStatus==\"New\")\r\n {\r\n if(vm.ticketList[i].checked){\r\n if(i==0){\r\n data.JobIds = vm.ticketList[i].TicketId;\r\n }else{\r\n data.JobIds = data.JobIds + ',' + vm.ticketList[i].TicketId;\r\n }\r\n }\r\n }\r\n } \r\n if(vm.workorderTkt){\r\n data.JobIds = vm.tickIdForWoL;\r\n } \r\n for(var i=0; i< vm.UserByFiltersList.length;i++){\r\n if(vm.UserByFiltersList[i].checked){\r\n data.UserId = vm.UserByFiltersList[i].UserId;\r\n break;\r\n }\r\n }\r\n if(data.JobIds){\r\n CRMManualAssignationJobService.RouteJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.processBroadcastRouteResponse(resp.data);\t\t \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n else if(resp.status == 206){\r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n });\r\n }else{\r\n vm.showFailure(\"Failed\", \"Please select tickets.\");\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n \r\n }\r\n\r\n // Route Jobs for user Suggestion\r\n vm.routeTicketUS = function (user) { \r\n vm.DisableRouteBroadcastButtons(true);\r\n var data = user; //vm.UserSuggestionList[0];\r\n var temp = [];\r\n temp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n var data = {\r\n \"JobId\": vm.broadcastTicketId,\r\n \"BIDDuration\": vm.TicketSelectedForAssistedSuggestion.BidDuration,\r\n \"MobiforceCommissionPercentage\": vm.TicketSelectedForAssistedSuggestion.MobiforceCommission,\r\n \"BroadcastType\": \"Route\",\r\n \"TechnicianSource\": 1,\r\n \"Users\": temp\r\n };\r\n if (data.Users.length > 0) {\r\n vm.showloading = true;\r\n CRMManualAssignationJobService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n \r\n if (resp.status == 201) {\r\n vm.showSuccess('Success', \"Jobs Route Successfully\");\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure('Failed', resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Users Not Found\");\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n vm.showloading = false;\r\n });\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select users.\");\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n \r\n }\r\n\r\n //brodcast ticket nearBy\r\n vm.BroadcastTicketUserSuggestion = function (i) {\r\n //vm.dissbleBroadcastButton = true;\r\n vm.DisableRouteBroadcastButtons(true);\r\n var temp = [];\r\n angular.forEach(vm.UserSuggestionList, function(d){\r\n if (d.checked) {\r\n temp.push({ \"UserId\": d.id, \"SuggestedPrice\": null, \"Price\": parseInt(d.Price), \"Distance\": parseInt(d.UserDistance) });\r\n \r\n }\r\n })\r\n var data = {\r\n \"JobId\": vm.broadcastTicketId,\r\n \"BIDDuration\": vm.TicketSelectedForAssistedSuggestion.BidDuration,\r\n \"MobiforceCommissionPercentage\": vm.TicketSelectedForAssistedSuggestion.MobiforceCommission,\r\n \"TechnicianSource\": 1,\r\n \"Users\": temp\r\n };\r\n if (data.Users.length > 0) {\r\n CRMManualAssignationJobService.BroadCastJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.BroadcastStatus);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n });\r\n } \r\n else {\r\n vm.showFailure(\"Failed\", resp.data.BroadcastStatus);\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n }\r\n\r\n\r\n // Route Jobs\r\n vm.routeTicketToFV = function(index){\r\n var data = {};\r\n for(var i=0; i< vm.NewJobs.length;i++){\r\n if(vm.NewJobs[i].checked){\r\n if(i==0){\r\n data.JobIds = vm.NewJobs[i].TicketId;\r\n }else{\r\n data.JobIds = data.JobIds + ',' + vm.NewJobs[i].TicketId;\r\n }\r\n }\r\n }\r\n for(var i=0; i< vm.FreelancerVendorUsers.length;i++){\r\n if(vm.FreelancerVendorUsers[i].checked){\r\n data.UserId = vm.FreelancerVendorUsers[i].UserId;\r\n break;\r\n }\r\n }\r\n\r\n if(data.JobIds){\r\n CRMManualAssignationJobService.RouteJobsforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess('Success',\"Jobs Route Successfully\");\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Server error.\");\r\n }\r\n });\r\n }else{\r\n vm.showFailure(\"Failed\", \"Please select tickets.\");\r\n }\r\n \r\n }\r\n\r\n //Broadcast Bids/Jobs\r\n vm.BroadCastJobs = function () {\r\n vm.DisableRouteBroadcastButtons(true);\r\n var BidData = [];\r\n angular.forEach(vm.ticketList, function (d) {\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n if(d.TicketStatus==\"New\")\r\n {\r\n if (d.checked) {\r\n obj.JobID = d.TicketId;\r\n var time = d.BidDuration.split(':');\r\n var hrs = parseInt(time[0]);\r\n var min = parseInt(time[1]);\r\n obj.BIDDuration = hrs*60 + min;\r\n obj.BroadCastRate = d.BroadcastRate\r\n obj.BroadCastGrossRate = d.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = d.MobiforceCommission\r\n obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n }\r\n }\r\n })\r\n var UserData = [];\r\n\r\n for(var i=0; i< vm.UserByFiltersList.length;i++){\r\n if(vm.UserByFiltersList[i].checked){\r\n UserData.push(vm.UserByFiltersList[i].UserId); \r\n }\r\n }\r\n\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"Bids\": BidData,\r\n \"Users\": UserData\r\n };\r\n //$log.log('BradcastedJobs', data);\r\n vm.BroadcastModal.close();\r\n\r\n CRMManualAssignationJobService.BroadCastJobs(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.processBroadcastRouteResponse(resp.data);\r\n //vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n //toaster.pop(vm.toaster_success);\r\n vm.free_NewJobSelectedItems = [];\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n }\r\n \r\n\r\n vm.BroadCastJobsFV = function () {\r\n\r\n var BidData = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n if (d.checked) {\r\n obj.JobID = d.TicketId;\r\n var time = d.BidDuration.split(':');\r\n var hrs = parseInt(time[0]);\r\n var min = parseInt(time[1]);\r\n obj.BIDDuration = hrs*60 + min;\r\n obj.BroadCastRate = d.BroadcastRate\r\n obj.BroadCastGrossRate = d.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = d.MobiforceCommission\r\n obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n }\r\n })\r\n var UserData = [];\r\n for(var i=0; i< vm.FreelancerVendorUsers.length;i++){\r\n if(vm.FreelancerVendorUsers[i].checked){\r\n UserData.push(vm.FreelancerVendorUsers[i].UserId); \r\n }\r\n }\r\n\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"Bids\": BidData,\r\n \"Users\": UserData\r\n };\r\n vm.BroadcastModalFV.close();\r\n CRMManualAssignationJobService.BroadCastJobs(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.toaster_success.body = 'Jobs Broadcasted Successfully';\r\n toaster.pop(vm.toaster_success);\r\n vm.free_NewJobSelectedItems = [];\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n }\r\n }\r\n\r\nvm.AssignReceivedBid = function(user){ \r\nvm.AllDataList =[];\r\nvar data ={\r\n\"TicketId\": vm.broadcastTicketId,\r\n \"UserId\": user.UserId,\r\n \"StartTime\":vm.broadcaststartTime,\r\n \"Endtime\": vm.broadcastEndTime,\r\n \"SuggestedPrice\": 0,\r\n \"AssignPrice\": parseInt(vm.broadcastAssignRate),\r\n \"Distance\": 0,\r\n}\r\nvm.AllDataList.push(data)\r\n ScheduleAssignService.AssignTicketsTimeline(loggedinUser,vm.AllDataList,token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.ChangeMode('freelancer');\r\n vm.BidReceivedJobs = [];\r\n $timeout(function () {\r\n $scope.hideSentUser();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 500);\r\n }\r\n }, function (err) {\r\n if (err && err.data) {\r\n vm.showFailure(\"Failed\", err.data);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to assign job, server is not responding correctly.\");\r\n }\r\n })\r\n}\r\n\r\n //Get Bid Received\r\n\r\n vm.BidReceived = function (ticket) { \r\n var status = 'Received';\r\n vm.bidStatus = status;\r\n vm.ticketStatusCheck = ticket.TicketStatus;\r\n vm.broadcastTicketId = ticket.TicketId;\r\n vm.broadcastLinkId = ticket.LinkId;\r\n vm.broadcaststartTime = ticket.StartTimeD;\r\n vm.broadcastEndTime = ticket.EndTime;\r\n vm.broadcastTicketInfo = ticket;\r\n vm.isReceived = true;\r\n vm.BIDMaxcount = 10; \r\n vm.BIDStartIndex = 0;\r\n CRMManualAssignationJobService.GetBidReceivedByStatus(loggedinUser, vm.broadcastTicketId, status, token).then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.BidReceivedJobs = resp.data;\r\n vm.UserBIDCount = vm.BidReceivedJobs.length;\r\n $scope.totalUserBID = vm.UserBIDCount; \r\n $scope.UserBIDpagination = {\r\n current: 1\r\n };\r\n angular.forEach(vm.BidReceivedJobs, function (user) {\r\n\r\n user.ratingStars = vm.getRatingStars(user.UserRating);\r\n user.blankStars = vm.getBlankStars(user.UserRating);\r\n user.exp = user.Experience > 0 ? parseFloat(user.UserExperience / 365).toFixed(1) : 0;\r\n })\r\n for(var i=0;i 0 ) {\r\n $scope.toggleForBroadcast();\r\n }\r\n }\r\n })\r\n }\r\n\r\n //deny\r\n vm.BidDeny = function (ticket) { \r\n document.getElementById(\"SendAndRecieveBid\").style.width = \"42%\";\r\n var status = 'Deny';\r\n vm.bidStatus = status;\r\n vm.ticketStatusCheck = ticket.TicketStatus;\r\n vm.broadcastTicketId = ticket.TicketId;\r\n vm.broadcastLinkId = ticket.LinkId;\r\n vm.broadcaststartTime = ticket.StartTimeD;\r\n vm.broadcastEndTime = ticket.EndTime;\r\n vm.broadcastTicketInfo = ticket;\r\n vm.isReceived = true;\r\n CRMManualAssignationJobService.GetBidDeny(loggedinUser, vm.broadcastTicketId, status, token).then(function (resp) { \r\n if (resp && resp.data) {\r\n vm.BidReceivedJobs = resp.data;\r\n vm.UserBIDCount = vm.BidReceivedJobs.length;\r\n $scope.totalUserBID = vm.UserBIDCount; \r\n $scope.UserBIDpagination = {\r\n current: 1\r\n };\r\n angular.forEach(vm.BidReceivedJobs, function (user) {\r\n user.ratingStars = vm.getRatingStars(user.UserRating);\r\n user.blankStars = vm.getBlankStars(user.UserRating);\r\n user.exp = user.Experience > 0 ? parseFloat(user.UserExperience / 365).toFixed(1) : 0;\r\n })\r\n // for(var i=0;i 0 ? parseFloat(user.UserExperience / 365).toFixed(1) : 0; \r\n })\r\n for(var i=0;ilTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n })\r\n .withOption('order', [1, 'asc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n //DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable()\r\n ];\r\n\r\n //Global Calling\r\n //vm.GetNewJobs();\r\n vm.GetAllActiveFixedUsers();\r\n //$log.log('isChecked', vm.isChecked);\r\n\r\n vm.openBroadcastmodal = function (i) {\r\n vm.broadcastError = null; \r\n vm.jobselected = [];\r\n angular.forEach(vm.ticketList, function (d) {\r\n if(d.TicketStatus==\"New\")\r\n {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n \r\n vm.jobselected.push(d);\r\n $log.log(d)\r\n // angular.forEach(vm.jobselected, function (t) {\r\n // t.PincodeArray = t.Pincode.split(\"|\");\r\n // t.Pincode = Array.from(new Set(t.PincodeArray));\r\n // t.SkillSetArray = t.SkillSet.split(\"|\");\r\n // t.SkillSet = Array.from(new Set(t.SkillSetArray));\r\n // })\r\n }\r\n }\r\n });\r\n \r\n if (vm.jobselected.length > 0) {\r\n vm.BroadcastModal = $uibModal.open({\r\n templateUrl: 'Broadcast.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n else\r\n {\r\n vm.showFailure(\"Failed\", \"Please select jobs\"); \r\n vm.broadcastError = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n vm.closeModal = function () {\r\n vm.BroadcastModal.close();\r\n }\r\n\r\n vm.openBroadcastmodalforFV = function (i) {\r\n vm.broadcastErrorFV = null; \r\n vm.jobselectedFV = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n vm.jobselectedFV.push(d);\r\n $log.log(d)\r\n }\r\n });\r\n if (vm.jobselectedFV.length > 0) {\r\n vm.BroadcastModalFV = $uibModal.open({\r\n templateUrl: 'BroadcastFV.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n } else {\r\n vm.broadcastErrorFV = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n\r\n vm.OpenBroadcastModelToFV = function (i) {\r\n vm.broadcastErrorFV = null; \r\n vm.jobselectedFV = [];\r\n angular.forEach(vm.NewJobs, function (d) {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n \r\n vm.jobselectedFV.push(d);\r\n $log.log(d)\r\n }\r\n });\r\n if (vm.jobselectedFV.length > 0) {\r\n vm.BroadcastModalFV = $uibModal.open({\r\n templateUrl: 'BroadcastFV.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n } else {\r\n vm.broadcastErrorFV = \"Please select jobs for bradcast\";\r\n }\r\n }\r\n\r\n vm.closeModalFV = function () {\r\n vm.BroadcastModalFV.close();\r\n }\r\n\r\n vm.GetAllVendors = function () {\r\n vm.vendorList = [];\r\n var itemNames = \"\";\r\n var itemValues = \"\";\r\n if (vm.locationSearch != '' && vm.skillsSearch != '') {\r\n itemNames = \"VendorLocations,VendorSkillsets,VendorStatus\";\r\n itemValues = vm.locationSearch + ',' + vm.skillsSearch + ',' + 'Active';\r\n } else {\r\n itemNames = \"VendorStatus\";\r\n itemValues = \"Active\";\r\n }\r\n if (vm.loggedInUserRole == 'Help Desk') {\r\n itemNames += \",VendorSkillsets\";\r\n itemValues += \",\"+ loggedinUserSkill; \r\n }\r\n\r\n // GetAllVendors\r\n CRMManualAssignationJobService.GetFixedVendorsByFilters(loggedinUser, itemNames, itemValues, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp && resp.data) {\r\n angular.forEach(resp.data, function(vendor){\r\n if (vendor.UserId !=loggedinUser) {\r\n vm.vendorList.push(vendor);\r\n }\r\n })\r\n preprocessData(vm.vendorList);\r\n }\r\n } else {\r\n vm.vendorList = '';\r\n }\r\n })\r\n }\r\n\r\n //Implementation of Checkboxes for all tables\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n vm.selectAllCheckboxes = function (mode, table) {\r\n if (mode == 'fixed' && table == 'fixed_NewJob') {\r\n if (vm.fixed_selectAll) {\r\n angular.forEach(vm.NewJobs, function (item) {\r\n idx = vm.selectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.fixed_select_all = true;\r\n vm.selectedItems.push(item);\r\n vm.fixed_select_single.push(\"true\");\r\n }\r\n })\r\n\r\n } else {\r\n vm.fixed_select_all = false;\r\n vm.fixed_selectAll = false;\r\n vm.selectedItems = [];\r\n vm.fixed_select_single = [];\r\n }\r\n\r\n //$log.log('selectedItems', vm.selectedItems);\r\n } else if (mode == 'freelancer' && table == 'freelancer_users') {\r\n if (vm.freelancer_selectAll) {\r\n angular.forEach(vm.freelancerUsers, function (item) {\r\n idx = vm.free_selectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.freelancer_select_all = true;\r\n vm.free_selectedItems.push(item);\r\n vm.freelancer_select_single.push(\"true\");\r\n }\r\n })\r\n } else {\r\n vm.freelancer_select_all = false;\r\n vm.freelacer_selectAll = false;\r\n vm.free_selectedItems = [];\r\n vm.freelancer_select_single = [];\r\n }\r\n\r\n } else if (mode == 'freelancer' && table == 'freelancer_NewJob') {\r\n if (vm.freelancer_SelectAllJobs) {\r\n angular.forEach(vm.NewJobs, function (item) {\r\n idx = vm.free_NewJobSelectedItems.indexOf(item);\r\n if (idx >= 0) {\r\n return true;\r\n } else {\r\n vm.freelancer_Select_All_NewJobs = true;\r\n vm.free_NewJobSelectedItems.push(item);\r\n vm.freelancer_select_single_NewJob.push(\"true\");\r\n }\r\n })\r\n } else {\r\n vm.freelancer_Select_All_NewJobs = false;\r\n vm.freelancer_SelectAllJobs = false;\r\n vm.free_NewJobSelectedItems = [];\r\n vm.freelancer_select_single_NewJob = [];\r\n }\r\n }\r\n }\r\n\r\n function preprocessData(users) {\r\n if (users && users.length > 0) {\r\n angular.forEach(users, function (user) {\r\n user.locationCount = user.Locations && user.Locations.length > 0 ? user.Locations.length : 0;\r\n user.locationToolTip = \"\";\r\n if (user.locationCount > 0) {\r\n angular.forEach(user.Locations, function (loc) {\r\n user.locationToolTip += loc + \",\";\r\n })\r\n user.locationToolTip = user.locationToolTip.substr(0, user.locationToolTip.length - 1);\r\n }\r\n\r\n user.SkillSetCount = user.SkillSet && user.SkillSet.length > 0 ? user.SkillSet.length : 0;\r\n user.SkillSetToolTip = \"\";\r\n if (user.SkillSetCount > 0) {\r\n angular.forEach(user.SkillSet, function (s) {\r\n user.SkillSetToolTip += s + \",\";\r\n })\r\n user.SkillSetToolTip = user.SkillSetToolTip.substr(0, user.SkillSetToolTip.length - 1);\r\n }\r\n user.OneJobSkillSetCount = user.OneJobDoneSkillSet && user.OneJobDoneSkillSet.length > 0 ? user.OneJobDoneSkillSet.length : 0;\r\n user.OneJobSkillSetToolTip = \"\";\r\n if (user.OneJobSkillSetCount > 0) {\r\n angular.forEach(user.OneJobDoneSkillSet, function (s) {\r\n user.OneJobSkillSetToolTip += s + \",\";\r\n })\r\n user.OneJobSkillSetToolTip = user.OneJobSkillSetToolTip.substr(0, user.OneJobSkillSetToolTip.length - 1);\r\n }\r\n\r\n user.ToolsListCount = user.Tools && user.Tools.length > 0 ? user.Tools.length : 0;\r\n user.ToolsListToolTip = \"\";\r\n if (user.ToolsListCount > 0) {\r\n angular.forEach(user.Tools , function (s) {\r\n user.ToolsListToolTip += s + \",\";\r\n })\r\n user.ToolsListToolTip = user.ToolsListToolTip.substr(0, user.ToolsListToolTip.length - 1);\r\n }\r\n user.VendorLocationsCount = user.VendorLocations && user.VendorLocations.length > 0 ? user.VendorLocations.length : 0;\r\n user.VendorLocationsToolTip = \"\";\r\n if (user.VendorLocationsCount > 0) {\r\n angular.forEach(user.VendorLocations, function (loc) {\r\n user.VendorLocationsToolTip += loc + \",\";\r\n })\r\n user.VendorLocationsToolTip = user.VendorLocationsToolTip.substr(0, user.VendorLocationsToolTip.length - 1);\r\n }\r\n\r\n user.VendorSkillsetsCount = user.VendorSkillsets && user.VendorSkillsets.length > 0 ? user.VendorSkillsets.length : 0;\r\n user.VendorSkillsetsToolTip = \"\";\r\n if (user.VendorSkillsetsCount > 0) {\r\n angular.forEach(user.VendorSkillsets, function (s) {\r\n user.VendorSkillsetsToolTip += s + \",\";\r\n })\r\n user.VendorSkillsetsToolTip = user.VendorSkillsetsToolTip.substr(0, user.VendorSkillsetsToolTip.length - 1);\r\n }\r\n user.ratingStars = vm.getRatingStars(Math.round(user.Ratings));\r\n user.blankStars = vm.getBlankStars(Math.round(user.Ratings));\r\n user.exp = user.Experience > 0 ? parseFloat(user.Experience / 365).toFixed(1) : 0;\r\n user.checked = false;\r\n });\r\n }\r\n }\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n vm.implementSelectTickets = function (itemList, scope) {\r\n scope.selectRowTicket = function (i) {\r\n vm.bundleTicketArray = []; \r\n vm.bundlePrice = [];\r\n vm.bundlesum = 0; \r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n vm.bundleTicketArray.push(d.TicketId) \r\n vm.bundlePrice.push(d.FreelancerRate)\r\n vm.bundlesum = vm.bundlePrice.reduce(function (x, y) {\r\n return x + y;\r\n }, 0); \r\n } \r\n });\r\n if(vm.bundleTicketArray.length > 5) {\r\n vm.showFailure(\"Failed\", 'Please select 5 or less than 5 tickets to create combo');\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.implementSelectTickets('jobTickets', this);\r\n\r\n vm.toBebundle = [];\r\n vm.implementSelectItemsNewJob = function (itemList, scope) {\r\n scope.selectAllNewJob = false;\r\n scope.showMinusNewJob = false;\r\n scope.PlannedClosureDateFlag = false;\r\n scope.CreateComboFlag = false;\r\n scope.AutoBroadcastedOnce = true;\r\n scope.selectRowNewJob = function (i) {\r\n scope.showMinusNewJob = false;\r\n scope.selectAllNewJob = false;\r\n scope.PlannedClosureDateFlag = false;\r\n scope.CreateComboFlag = false;\r\n scope.AutoBroadcastedOnce = true;\r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n vm.toBebundle.push(d.TicketId)\r\n vm.selctedTickets = vm.toBebundle.length;\r\n scope.showMinusNewJob = true;\r\n if(!d.ShowManualBroadcast){\r\n scope.AutoBroadcastedOnce = d.ShowManualBroadcast;\r\n }\r\n if(d.TicketStatus == 'New'){\r\n scope.PlannedClosureDateFlag = true;\r\n }\r\n if((d.TicketStatus == 'New' || d.TicketStatus == 'Broadcasted') && (vm.accountConfig.AccountId != '361' && vm.accountConfig.AccountId != '364' && vm.accountConfig.AccountId != '380' && vm.accountConfig.AccountId != '383' && vm.accountConfig.AccountId != '388' && vm.accountConfig.AccountId != '390')){\r\n scope.CreateComboFlag = true;\r\n }\r\n }\r\n \r\n });\r\n }\r\n scope.applyAllNewJobSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllNewJob;\r\n if(d.checked && d.TicketStatus == 'New' ){\r\n scope.PlannedClosureDateFlag = true;\r\n }\r\n });\r\n }\r\n\r\n scope.resetAllSelect = function () {\r\n scope.selectAllNewJob = false;\r\n scope.showMinusNewJob = false;\r\n scope.PlannedClosureDateFlag = false;\r\n scope.CreateComboFlag = false;\r\n }\r\n }\r\n\r\n vm.implementSelectItemsNewJob('ticketList', this);\r\n\r\n vm.implementSelectItemsFL = function (itemList, scope) {\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n scope.selectRowFL = function (i) {\r\n //$log.log(\"selectRow called\");\r\n scope.selectCountFL = 0;\r\n scope.showMinusFL = false;\r\n scope.selectAllFL = false;\r\n angular.forEach(vm.UserByFiltersList, function (d) {\r\n // //$log.log(d);\r\n if (d.checked) {\r\n scope.showMinusFL = true;\r\n scope.selectCountFL++;\r\n }\r\n });\r\n }\r\n scope.applyAllFLSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllFL;\r\n scope.selectCountFL++;\r\n });\r\n }\r\n }\r\n \r\n //\r\n vm.ResetUserSelection = function (scope){\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n }\r\n vm.implementSelectItemsFL('UserByFiltersList', this);\r\n\r\n\r\n //userSuggestion list\r\n vm.implementSelectItemsUS = function (itemList, scope) {\r\n scope.selectAllUS = false;\r\n scope.showMinusUS = false;\r\n scope.selectCountUS = 0;\r\n scope.selectRowUS = function (i) {\r\n scope.selectCountUS = 0;\r\n scope.showMinusUS = false;\r\n scope.selectAllUS = false;\r\n angular.forEach(vm.UserSuggestionList, function (d) {\r\n if (d.checked) {\r\n scope.showMinusUS = true;\r\n scope.selectCountUS++;\r\n }\r\n });\r\n }\r\n scope.applyAllFLSelectUS = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllUS;\r\n scope.selectCountUS++;\r\n });\r\n }\r\n }\r\n //\r\n vm.ResetUserSelectionUS = function (scope){\r\n scope.selectAllUS = false;\r\n scope.showMinusUS = false;\r\n scope.selectCountUS = 0;\r\n }\r\n\r\n vm.workorderTkt = false;\r\n vm.selectRowNewWoL = function(tktId) {\r\n vm.tickIdForWoL = tktId;\r\n vm.workorderTkt = true\r\n\r\n }\r\n\r\nvm.implementSelectItemsUS('UserSuggestionList', this);\r\n\r\n\r\nif(vm.loggedInUserRole == \"Dispatch Supervisor\" || vm.loggedInUserRole == \"OnBoarding Supervisor\")\r\n{\r\n vm.statusList=[\"Broadcasted\",\"Completed\",\"Approved\",\"Assigned\", \"New\",\"Hold\", \"ReadyToAssign\", \"Rejected\",\"Cancelled\",\"AssignedNoAction\", \"ScheduleException\",\"AddressException\",\"PriceException\"];\r\n}\r\nelse\r\n{\r\n vm.statusList=[\"Broadcasted\",\"Completed\",\"Approved\",\"Assigned\", \"New\",\"Hold\", \"ReadyToAssign\", \"Rejected\",\"Cancelled\", \"ScheduleException\",\"AddressException\",\"PriceException\"];\r\n}\r\n\r\nif(vm.loggedInUserRole == \"Dispatch Supervisor\" || vm.loggedInUserRole == \"OnBoarding Supervisor\")\r\n{\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\",\"Private\"];\r\n}\r\nelse\r\n{\r\n if(vm.loggedInUserRole == \"Dispatch Manager\"){\r\n vm.UserTypeList = [\"Freelancer\", \"Private\", \"Freelancer Vendor\", \"Dispatch Supervisor\",\"Freelancer Dispatcher\",\"Dispatch Team Lead\"];\r\n }\r\n else if(vm.loggedInUserRole == \"OnBoarding Manager\"){\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"OnBoarding Supervisor\"];\r\n }\r\n else if(vm.loggedInUserRole == \"Dispatch Team Lead\"){\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\", \"Freelancer Dispatcher\", \"Dispatch Supervisor\"];\r\n }\r\n else if(vm.loggedInUserRole == \"Administrator\") {\r\n vm.UserTypeList = [\"Project Manager\", \"Supervisor\", \"Freelancer\", \"Freelancer Vendor\",\"Private\"];\r\n }\r\n else if(vm.loggedInUserRole == \"Project Manager\"){\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Private\", \"Supervisor\"];\r\n }\r\n else if(vm.loggedInUserRole == \"Supervisor\"){\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\",\"Private\"];\r\n }\r\n \r\n}\r\n \r\n vm.getJobAllStatus = function () {\r\n CRMManualAssignationJobService.getJobAllStatus(loggedinUser, token, function (data) { \r\n angular.forEach(data, function (status) {\r\n if (status.StatusName == 'On Hold') {\r\n status.StatusName = 'Hold'; \r\n }\r\n vm.statusList.push(status.StatusName); \r\n }) \r\n }, vm.showFailure);\r\n }\r\n \r\n $scope.slideAssistedSuggestion = function(){ \r\n document.getElementById(\"assistedSuggestion\").style.width = \"25%\";\r\n }\r\n vm.closeAssistedSuggestion = function(){ \r\n document.getElementById(\"assistedSuggestion\").style.width = \"0%\";\r\n }\r\n vm.closeFLprofile = function(){ \r\n document.getElementById(\"freelancerProfile\").style.width = \"0%\";\r\n }\r\n $scope.slideF = function(){ \r\n document.getElementById(\"myNav\").style.height = \"86%\";\r\n }\r\n vm.closeSlide = function(){ \r\n document.getElementById(\"myNav\").style.height = \"0%\";\r\n }\r\n vm.FilterArray = function () { \r\n itemNames = '';\r\n itemValues = '';\r\n templateItemNames = '';\r\n templateItemValues = '';\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText.join('|');\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText.join('|');\r\n } \r\n }\r\n\r\n if (vm.ticketskill != \"\" && vm.ticketskill != null) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',Skill';\r\n itemValues = itemValues + \",\" + vm.ticketskill.join('|');;\r\n }\r\n else\r\n {\r\n itemNames = 'Skill';\r\n itemValues = vm.ticketskill.join('|');;\r\n } \r\n }\r\n\r\n if (vm.GroupType){\r\n if(itemNames){\r\n itemNames = itemNames + ',GroupType';\r\n itemValues = itemValues + ',' + vm.GroupType;\r\n }else{\r\n itemNames = 'GroupType';\r\n itemValues = vm.GroupType;\r\n } \r\n }\r\n\r\n if (vm.Priority) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',Priority';\r\n itemValues = itemValues + ',' + vm.Priority;\r\n } else {\r\n itemNames = 'Priority';\r\n itemValues = vm.Priority;\r\n }\r\n }\r\n\r\n if(vm.SearchByAccountName != \"\" && vm.SearchByAccountName != null)\r\n {\r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',AccountName';\r\n itemValues = itemValues + \",\" + vm.SearchByAccountName.join('|');\r\n }\r\n else\r\n {\r\n itemNames = 'AccountName';\r\n itemValues = vm.SearchByAccountName.join('|');\r\n } \r\n }\r\n if(vm.SearchByCName){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',CustomerName';\r\n itemValues = itemValues + ',' + vm.SearchByCName;\r\n }else{\r\n itemNames = 'CustomerName';\r\n itemValues = vm.SearchByCName;\r\n }\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',ProjectName';\r\n itemValues = itemValues + ',' + vm.SearchByPName;\r\n }else{\r\n itemNames = 'ProjectName';\r\n itemValues = vm.SearchByPName;\r\n }\r\n }\r\n\r\n if(vm.JobcountbyStatus)\r\n {\r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else\r\n {\r\n itemNames = 'Status';\r\n itemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n\r\n if (vm.userIdforStatus) {\r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',UserId';\r\n itemValues = itemValues + \",\" + vm.userIdforStatus;\r\n }\r\n else\r\n {\r\n itemNames = 'UserId';\r\n itemValues = vm.userIdforStatus;\r\n } \r\n }\r\n if (vm.filterType) {\r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',Type';\r\n itemValues = itemValues + \",\" + vm.filterType;\r\n }\r\n else\r\n {\r\n itemNames = 'Type';\r\n itemValues = vm.filterType;\r\n } \r\n }\r\n if (vm.statusForTickets) {\r\n if (itemNames) {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + \",\" + vm.statusForTickets;\r\n }\r\n else {\r\n itemNames = 'Status';\r\n itemValues = vm.statusForTickets;\r\n }\r\n }\r\n\r\n if (vm.ticketstatus) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + \",\" + vm.ticketstatus;\r\n }\r\n else\r\n {\r\n itemNames = 'Status';\r\n itemValues = vm.ticketstatus;\r\n } \r\n }\r\n\r\n if (vm.SearchByDName) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',UserId';\r\n itemValues = itemValues + \",\" + vm.SearchByDName.UserId;\r\n }\r\n else\r\n {\r\n itemNames = 'UserId';\r\n itemValues = vm.SearchByDName;\r\n } \r\n }\r\n\r\n \r\n textItemNames = '';\r\n textItemValues = '';\r\n if(vm.SearchByIs){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'CorelationValue';\r\n textItemValues = vm.SearchByIs;\r\n }else{\r\n textItemNames = textItemNames + ',CorelationValue';\r\n textItemValues = textItemValues + ',' + vm.SearchByIs;\r\n }\r\n \r\n }\r\n if(vm.SearchByDiscription){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'JobDescription';\r\n textItemValues = vm.SearchByDiscription;\r\n }else{\r\n textItemNames = textItemNames + ',JobDescription';\r\n textItemValues = textItemValues + ',' + vm.SearchByDiscription;\r\n }\r\n }\r\n if(vm.SearchByTName){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'UserName';\r\n textItemValues = vm.SearchByTName;\r\n }else{\r\n textItemNames = textItemNames + ',UserName';\r\n textItemValues = textItemValues + ',' + vm.SearchByTName;\r\n }\r\n }\r\n if(vm.SearchByConsumerName){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'ConsumerName';\r\n textItemValues = vm.SearchByConsumerName;\r\n }else{\r\n textItemNames = textItemNames + ',ConsumerName';\r\n textItemValues = textItemValues + ',' + vm.SearchByConsumerName;\r\n }\r\n }\r\n if(vm.SearchByConsumerContact){\r\n if(textItemNames.length == 0 && textItemValues.length == 0){\r\n textItemNames = 'ConsumerContact';\r\n textItemValues = vm.SearchByConsumerContact;\r\n }else{\r\n textItemNames = textItemNames + ',ConsumerContact';\r\n textItemValues = textItemValues + ',' + vm.SearchByConsumerContact;\r\n }\r\n }\r\n\r\n if (vm.State) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',State';\r\n itemValues = itemValues + \",\" + vm.State;\r\n }\r\n else\r\n {\r\n itemNames = 'State';\r\n itemValues = vm.State;\r\n } \r\n }\r\n\r\n if (vm.State && vm.City) { \r\n if(itemNames) \r\n {\r\n itemNames = itemNames + ',City';\r\n itemValues = itemValues + \",\" + vm.City;\r\n }\r\n else\r\n {\r\n itemNames = 'City';\r\n itemValues = vm.City;\r\n } \r\n }\r\n\r\n if(vm.searchText)\r\n {\r\n itemNames = 'Search';\r\n itemValues = vm.searchText;\r\n templateItemNames = '';\r\n templateItemValues = ''; \r\n textItemNames = '';\r\n textItemValues = '';\r\n startDate = startDate;\r\n endDate = endDate;\r\n }\r\n }\r\n\r\n\r\n vm.ResetTicketFilter = function () { \r\n vm.ticketaccount = '';\r\n vm.PermanentState = '';\r\n vm.ticketskill = '';\r\n vm.ticketstatus = '';\r\n vm.PermanentCity = '';\r\n vm.searchStatusText = '';\r\n }\r\n\r\n vm.ResetUserFilter = function () { \r\n vm.UsersType = '';\r\n vm.userlocation = '';\r\n vm.userskill = ''; \r\n vm.uType= ''; \r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n vm.SearchByPName = '';\r\n vm.SearchByDName = '';\r\n vm.SearchByCName = ''; \r\n vm.SearchByConsumerName = '';\r\n vm.SearchByConsumerContact = '';\r\n vm.CurrentCity = '';\r\n vm.CurrentState = '';\r\n vm.WorkState = '';\r\n vm.WorkCity = '';\r\n vm.userIdforStatus = '';\r\n vm.statusForTickets = '';\r\n vm.filterType = '';\r\n }\r\n vm.PlannedClosureDateModelOpen= function()\r\n { \r\n var ticketIdList=[];\r\n vm.IsLoadSucessfull=false;\r\n for(var j=0;j 0) {\r\n vm.teamToBeAssignedList = resp.data;\r\n reallocateModalInstance = $uibModal.open({\r\n templateUrl: 'call_reallocate_model.html',\r\n scope: $scope\r\n }); \r\n } else {\r\n vm.showFailure(\"Failed\",resp.data);\r\n }\r\n }\r\n });\r\n }\r\n vm.disableCreateButton = false;\r\n vm.reallocateTicketCloseModal = function () {\r\n reallocateModalInstance.close();\r\n vm.disableCreateButton = false;\r\n vm.toBeAssignedTicketId = \"\";\r\n vm.teamToBeAssignedList = [];\r\n }\r\n\r\n vm.TransferCallToServiceCentre = function () {\r\n vm.reallocationForm.submitted = true;\r\n if (vm.reallocationForm.$valid){\r\n vm.disableCreateButton = true;\r\n CRMManualAssignationJobService.TransferCallToServiceCentre(vm.toBeAssignedTicketId, vm.selectTechnician, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Job has reallocated successfully.\");\r\n vm.reallocateTicketCloseModal();\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000)\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n\r\n vm.UserPenaltyUpdate = function(){\r\n vm.closePenaltyPopup();\r\n vm.penaltyForm.submitted = true;\r\n if (vm.penaltyForm.$valid) { \r\n var data = {\r\n \"PenaltyReason\": vm.penaltyReason,\r\n \"PenaltyRemark\": vm.penaltyRemark,\r\n \"UserId\": vm.userId,\r\n \"Amount\" : vm.penaltyAmount\r\n }\r\n CRMManualAssignationJobService.UserPenaltyUpdate(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(\"Success\",\"Penalty applied successfully\"); \r\n vm.penaltyReason = \"\";\r\n vm.penaltyRemark = \"\";\r\n vm.penaltyAmount = 0;\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Server not responding\");\r\n vm.penaltyReason = \"\";\r\n vm.penaltyRemark = \"\";\r\n vm.penaltyAmount = 0;\r\n }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n\r\n\r\n\r\n vm.UserDataUpdateRequest = function(isCollapsed,Ticket){\r\n $scope.isCollapsed = !isCollapsed;\r\n // vm.feedbackForm.submitted = true;\r\n // vm.feedbackFormBroadCasted.submitted = true;\r\n // if (vm.feedbackForm.$valid) { \r\n var data =\r\n {\r\n \"MasterReason\": vm.MasterReason,\r\n \"Comments\": vm.Comments,\r\n \"RequestForUserId\": vm.userid,\r\n \"TicketId\":Ticket\r\n }\r\n CRMManualAssignationJobService.UserDataUpdateRequest(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(resp.data); \r\n $scope.isCollapsed = true;\r\n vm.Comments =\"\";\r\n vm.MasterReason =\"\";\r\n $timeout(function () {\r\n vm.GetFreelancerSuggestions(false,vm.showMode)\r\n }, 2000);\r\n }\r\n }, function () {\r\n \r\n }); \r\n // }\r\n }\r\n\r\n vm.BrodUserDataUpdateRequest = function(isCollapsed,Ticket){\r\n $scope.isCollapsed = !isCollapsed;\r\n // vm.feedbackFormBroadCasted.submitted = true;\r\n // if (vm.feedbackFormBroadCasted.$valid) { \r\n var data =\r\n {\r\n \"MasterReason\": vm.MasterReason,\r\n \"Comments\": vm.Comments,\r\n \"RequestForUserId\": vm.userid,\r\n \"TicketId\":Ticket\r\n }\r\n CRMManualAssignationJobService.UserDataUpdateRequest(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(resp.data); \r\n $timeout(function () {\r\n vm.BidSent(vm.tempTicketInfo,\"feedbackFlag\");\r\n $scope.myvalue = false;\r\n }, 1000);\r\n $scope.isCollapsed = true;\r\n vm.Comments =\"\";\r\n vm.MasterReason =\"\";\r\n }\r\n }, function () { \r\n }); \r\n // }\r\n }\r\n\r\n\r\n\r\n vm.CancelTicket = function(ticketId, currentJOb){\r\n vm.CurrentJob = currentJOb;\r\n vm.TicketWarrantyStatus = currentJOb.WarrantyStatus;\r\n vm.RatingOfTicket = '';\r\n vm.AuditTicketId = vm.CurrentJob.TicketId;\r\n vm.IsClosureCodeNeeded = vm.CurrentJob.IsClosuerCodeNeeded;\r\n vm.TicketPaymentNeedToProcess = vm.CurrentJob.IsTicketPaymentNeedToProcess;\r\n vm.CollectionRequired = vm.CurrentJob.CollectionRequired;\r\n vm.IsApplicableForAutoPayment = vm.CurrentJob.IsApplicableForAutoPayment;\r\n if(vm.CurrentJob.TicketStatus==\"Completed\" && vm.CurrentJob.SubStatus ==\"TBC\"){ \r\n vm.PrimaryReason = vm.CurrentJob.PrimaryReason;\r\n CRMManualAssignationJobService.GetCancellationReasons(vm.AuditTicketId,vm.CurrentJob.TicketStatus, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.CancellationReasonsList=resp.data;\r\n approveModalInstance = $uibModal.open({\r\n templateUrl: 'tbc_confirm_cancelation_model.html',\r\n scope: $scope\r\n });\r\n }\r\n }, function () { \r\n });\r\n \r\n }\r\n else\r\n {\r\n \r\n vm.IsCancelFromServer = vm.accountConfig.IsCancelFromServer;\r\n if(vm.IsCancelFromServer && (vm.CurrentJob.TicketStatus==\"Assigned\" || vm.CurrentJob.TicketStatus==\"New\" || vm.CurrentJob.TicketStatus==\"ScheduleException\")){\r\n CRMManualAssignationJobService.GetCancellationReasons(vm.AuditTicketId,vm.CurrentJob.TicketStatus, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.CancellationReasonsList=resp.data;\r\n cancellationReasonsModalInstance = $uibModal.open({\r\n templateUrl: 'cancellation_reasons_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n }, function () { \r\n });\r\n }\r\n else{\r\n CRMManualAssignationJobService.CancelTicket(loggedinUser,ticketId,token).then(function(res){\r\n if(res.status == 202 && res.statusText =='Accepted'){\r\n vm.showSuccess('Success',res.data);\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000);\r\n }\r\n }); \r\n }\r\n }\r\n }\r\n vm.JobRescheduleAudit = function()\r\n {\r\n rescheduleAuditModalInstance.close();\r\n CRMManualAssignationJobService.TBCCancelationAudit(vm.RescheduleAuditModel,vm.RescheduleAuditTicketId,loggedinUser,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000); \r\n }\r\n });\r\n }\r\n \r\n\r\n vm.TBCCancelationAudit = function()\r\n { \r\n vm.tbccancellationReasonsForm.submitted = true;\r\n if(vm.CancellationReasons == 'Customer not responding' || vm.CancellationReasons == 'Customer denied sharing code'){\r\n vm.tbccancellationReasonsForm.$valid = true\r\n if (vm.tbccancellationReasonsForm.$valid) { \r\n if(vm.closureCode){\r\n vm.IsClosuerCodeAvailable = true;\r\n }\r\n else{\r\n vm.IsClosuerCodeAvailable = false;\r\n }\r\n var data = {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"AuditValue\": vm.TBCCancelationModel,\r\n \"IsApplicableForAutoPayment\": vm.IsApplicableForAutoPayment,\r\n \"IsCommissionDetect\": vm.IsCommissionDetect,\r\n \"ClosuerCode\": vm.closureCode,\r\n \"IsClosuerCodeAvailable\" : vm.IsClosuerCodeAvailable,\r\n \"CancelReason\" : vm.CancellationReasons,\r\n }\r\n vm.IsInvoiceEnabled;\r\n approveModalInstance.close();\r\n CRMManualAssignationJobService.TBCCancelationAudit(data,loggedinUser,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n vm.closureCode = \"\";\r\n vm.IsClosureCodeNeeded = \"\";\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000); \r\n }\r\n });\r\n }\r\n }\r\n else{\r\n if (vm.tbccancellationReasonsForm.$valid) { \r\n if(vm.closureCode){\r\n vm.IsClosuerCodeAvailable = true;\r\n }\r\n else{\r\n vm.IsClosuerCodeAvailable = false;\r\n }\r\n var data = {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"AuditValue\": vm.TBCCancelationModel,\r\n \"IsApplicableForAutoPayment\": vm.IsApplicableForAutoPayment,\r\n \"IsCommissionDetect\": vm.IsCommissionDetect,\r\n \"ClosuerCode\": vm.closureCode,\r\n \"IsClosuerCodeAvailable\" : vm.IsClosuerCodeAvailable,\r\n \"CancelReason\" : vm.CancellationReasons,\r\n }\r\n vm.IsInvoiceEnabled;\r\n approveModalInstance.close();\r\n CRMManualAssignationJobService.TBCCancelationAudit(data,loggedinUser,token).then(function(res){\r\n if(res && res.status == 200){\r\n vm.showSuccess(\"Success\", \"Job cancelation audit successfully done.\"); \r\n vm.closureCode = \"\";\r\n vm.IsClosureCodeNeeded = \"\";\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000); \r\n }\r\n });\r\n }\r\n \r\n }\r\n }\r\n vm.updateFalseTBC = function (status) {\r\n if(status == 'Yes' ) {\r\n vm.IsApplicableForAutoPayment = false;\r\n }\r\n else {\r\n vm.IsApplicableForAutoPayment = true;\r\n }\r\n }\r\n\r\n vm.CloseModal = function () {\r\n approveModalInstance.close();\r\n }\r\n vm.CancellationReasonsCloseModal = function () {\r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons=\"\";\r\n vm.CancellationReasonsRemark=\"\";\r\n vm.HintDisplay=\"\";\r\n vm.closureCode = \"\";\r\n }\r\n\r\n vm.UpdateCancellationReasons = function()\r\n { \r\n vm.cancellationReasonsForm.submitted = true;\r\n if(vm.CancellationReasons == 'Customer not responding' || vm.CancellationReasons == 'Customer denied sharing code'){\r\n vm.cancellationReasonsForm.$valid = true;\r\n if (vm.cancellationReasonsForm.$valid) { \r\n if(vm.closureCode){\r\n vm.IsClosuerCodeAvailable = true;\r\n }\r\n else{\r\n vm.IsClosuerCodeAvailable = false;\r\n } \r\n var CancellationReasonsModel = {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"CancelReason\": vm.CancellationReasons,\r\n \"CancelRemark\": vm.CancellationReasonsRemark,\r\n \"ClosuerCode\": vm.closureCode,\r\n \"IsClosuerCodeAvailable\" : vm.IsClosuerCodeAvailable\r\n }\r\n CRMManualAssignationJobService.UpdateJobServerCancel(CancellationReasonsModel,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(\"Success\",resp.data); \r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n \r\n }, 2000); \r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons=\"\";\r\n vm.CancellationReasonsRemark=\"\";\r\n vm.closureCode = \"\";\r\n vm.HintDisplay=\"\";\r\n }\r\n else{\r\n vm.showFailure(\"Failed\",resp.data);\r\n }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n else {\r\n if (vm.cancellationReasonsForm.$valid) { \r\n if(vm.closureCode){\r\n vm.IsClosuerCodeAvailable = true;\r\n }\r\n else{\r\n vm.IsClosuerCodeAvailable = false;\r\n } \r\n var CancellationReasonsModel = {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"CancelReason\": vm.CancellationReasons,\r\n \"CancelRemark\": vm.CancellationReasonsRemark,\r\n \"ClosuerCode\": vm.closureCode,\r\n \"IsClosuerCodeAvailable\" : vm.IsClosuerCodeAvailable\r\n }\r\n CRMManualAssignationJobService.UpdateJobServerCancel(CancellationReasonsModel,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(\"Success\",resp.data); \r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n \r\n }, 2000); \r\n cancellationReasonsModalInstance.close();\r\n vm.CancellationReasons=\"\";\r\n vm.CancellationReasonsRemark=\"\";\r\n vm.closureCode = \"\";\r\n vm.HintDisplay=\"\";\r\n }\r\n else{\r\n vm.showFailure(\"Failed\",resp.data);\r\n }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n \r\n }\r\n \r\n vm.SendCancelCodeToCustomer = function()\r\n { \r\n if (vm.CancellationReasons != \"\") { \r\n var SendCodeModel =\r\n {\r\n \"TicketId\": vm.AuditTicketId,\r\n \"CancelReason\": vm.CancellationReasons\r\n }\r\n CRMManualAssignationJobService.SendCancelCodeToCustomer(SendCodeModel,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(\"Success\", \"Code Sent to Customer\"); \r\n }\r\n }, function () {\r\n \r\n }); \r\n }\r\n }\r\n\r\n //Cancel and clone ticket\r\n vm.CancleAndCloneTicket = function(ticket){\r\n var ticketData = ticket;\r\n $state.go('index.JobBidCreation', { cloneticketid:ticketData.TicketId },\r\n {reload: true,inherit: false,notify: true}); \r\n }\r\n\r\n vm.OpenSettlementModal = function (currentJOb) {\r\n vm.CurrentJob = currentJOb;\r\n vm.PaymentStatus = '';\r\n vm.Remarks = '';\r\n\r\n settlementModalInstance = $uibModal.open({\r\n templateUrl: 'settlement_model.html',\r\n scope: $scope\r\n });\r\n\r\n }\r\n\r\n vm.SettlementCloseModal = function () {\r\n settlementModalInstance.close();\r\n }\r\n\r\n vm.settlemenTicket = function (status, ticketId, remarks, userId) {\r\n settlementModalInstance.close();\r\n var settlementData = {};\r\n settlementData.PaymentStatus = status;\r\n settlementData.ReqUserId = loggedinUser;\r\n settlementData.TicketId = ticketId;\r\n settlementData.Remarks = remarks;\r\n settlementData.FEId = userId;\r\n settlementData.Status = \"Done\";\r\n CRMManualAssignationJobService.updateTicketSettlement(settlementData, token, loggedinUser, function (res) {\r\n \r\n if (res && res.status == 202) {\r\n vm.showSuccess(\"Success\", \"Job settlement successfully done.\")\r\n $timeout(function () {\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to settlement payment. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n\r\n }\r\n vm.makeUserMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.name + \"

\" + ' ' + vm.contactnumber);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n\r\n }\r\n vm.makeJobMarker = function (position, icon, map) {\r\n var marker = new google.maps.Marker({\r\n position: position,\r\n map: map,\r\n icon: icon\r\n });\r\n\r\n //Adding InfoWindow to the Marker.\r\n (function (marker, customerJobCard) {\r\n google.maps.event.addListener(marker, \"mouseover\", function (e) {\r\n $scope.InfoWindow.setContent(\"

\" + vm.customerJobCard.ConsumerName + \"

\" + ' ' + vm.customerJobCard.JobId + \"
\" + ' ' + moment(vm.customerJobCard.JobDateTime).format(\"YYYY-MM-DD HH:mm\") + \"
\" + ' ' + vm.customerJobCard.ConsumerContact);\r\n $scope.InfoWindow.open($scope.Map, marker);\r\n });\r\n google.maps.event.addListener(marker, \"mouseout\", function (e) {\r\n $scope.InfoWindow.close(vm.Map, marker);\r\n });\r\n })(marker, vm.customerJobCard);\r\n\r\n //Plotting the Marker on the Map.\r\n $scope.Latlngbounds.extend(marker.position);\r\n }\r\n function initMap() {\r\n var pointA = new google.maps.LatLng(vm.JobLatitude, vm.JobLongitude),\r\n pointB = new google.maps.LatLng(vm.FELatitude, vm.FELongitude),\r\n // center = new google.maps.LatLng(51.3, 0.8),\r\n myOptions = {\r\n zoom: 8,\r\n zoomControl: false,\r\n scaleControl: true,\r\n mapTypeControl: false,\r\n streetViewControl: false,\r\n gestureHandling: 'greedy',\r\n // center: center,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n },\r\n\r\n map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),\r\n // Instantiate a directions service.\r\n directionsService = new google.maps.DirectionsService,\r\n directionsDisplay = new google.maps.DirectionsRenderer({\r\n map: map\r\n }),\r\n duration = document.getElementById('duration');\r\n distance = document.getElementById('distance');\r\n flightPath = new google.maps.Polyline({\r\n path: [pointA, pointB],\r\n // geodesic: true,\r\n strokeColor: 'red',\r\n });\r\n $scope.InfoWindow = new google.maps.InfoWindow();\r\n $scope.Latlngbounds = new google.maps.LatLngBounds();\r\n // click on marker B to get route from A to B\r\n calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map);\r\n var travelMode = \"DRIVING\";\r\n var icon = \"https://img.icons8.com/color/96/000000/street-view.png\";\r\n }\r\n function calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB, distance, duration, map) {\r\n var selectedMode = \"DRIVING\";\r\n directionsService.route({\r\n origin: pointA,\r\n destination: pointB,\r\n unitSystem: google.maps.UnitSystem.METRIC,\r\n travelMode: google.maps.TravelMode[selectedMode]\r\n }, function (response, status) {\r\n if (status == google.maps.DirectionsStatus.OK) {\r\n new google.maps.DirectionsRenderer({\r\n map: map,\r\n directions: response,\r\n suppressMarkers: true,\r\n polylineOptions: {\r\n strokeColor: \"#000000\"\r\n }\r\n });\r\n var leg = response.routes[0].legs[0];\r\n //outputTxt.innerHTML =(response.routes[0].legs[0].distance.value/1000) + \" Kms\";\r\n distance.innerHTML = response.routes[0].legs[0].distance.text;\r\n duration.innerHTML = response.routes[0].legs[0].duration.text;\r\n vm.distance = response.routes[0].legs[0].distance.value / 1000;\r\n vm.makeJobMarker(leg.start_location, icons.start, map);\r\n vm.makeUserMarker(leg.end_location, icons.end, map);\r\n } else {\r\n window.alert('Directions request failed due to ' + status);\r\n }\r\n });\r\n }\r\n var icons = {\r\n start: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/JOb_icon.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32)),\r\n end: new google.maps.MarkerImage(\r\n // URL\r\n UIURL + '/assets/images/patterns/delivery-man1.png',\r\n // (width,height)\r\n new google.maps.Size(44, 32),\r\n // The origin point (x,y)\r\n new google.maps.Point(0, 0),\r\n // The anchor point (x,y)\r\n new google.maps.Point(22, 32))\r\n };\r\n\r\n vm.OpenFilterModel = function () {\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FilterModel.html',\r\n size: 'lg',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n vm.OpenReOpenCallModel = function (ticketid) {\r\n vm.TicketId = ticketid\r\n\t\t\tReopencallopen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'ReopenCancelCall.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeReOpenCallModel = function () {\r\n\t\t\tvm.disableCreateButton = false;\r\n\t\t\tReopencallopen.close();\r\n\t\t\t\r\n\t\t}\r\n\r\n vm.ReopenCancelCall = function () {\r\n vm.validationForm.submitted = true;\r\n vm.disableCreateButton = true;\r\n CRMManualAssignationJobService.ReopenCancelCall(vm.TicketId,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call has Reopened Successfully\");\r\n vm.closeReOpenCallModel();\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 2000)\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n vm.showFailure(\"Failed\", resp.data)\r\n }\r\n });\r\n \r\n }\r\n\r\n vm.OpenFollowUpModel = function (ticketId) {\r\n vm.followup = '';\r\n vm.tickId = ticketId;\r\n FollowUpModel = $uibModal.open({\r\n templateUrl: 'FollowupJob.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlFollowUp,\r\n });\r\n }\r\n\r\n vm.CloseFollowUpModel = function () {\r\n vm.primaryFollowUpReason = '';\r\n vm.primaryFollowUpRemark = '';\r\n vm.primaryHoldReason='';\r\n vm.primaryHoldRemark='';\r\n vm.followFiles = null; \r\n FollowUpModel.close();\r\n }\r\n\r\n //\r\n $scope.attachmentForFollowUp = function(files){\r\n var file = files.files[0]; \r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.jpg|\\.jpeg|\\.png|\\.msg|\\.pdf|\\.bmp|\\.xps)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.followFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png,.msg,.bmp,xps only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.DocEdit = function(index){\r\n vm.followFiles=null; \r\n }\r\n vm.ExternalUpload = function (teamid) {\r\n var newdata = {};\r\n newdata = {\r\n \"UserId\": teamid,\r\n \"Type\": \"\",\r\n \"skillName\": \"\"\r\n }\r\n AllUsersListService.UploadExternalVideoList(newdata, loggedinUser, token).then(function (resp) {\r\n vm.UploadVideoExternal = resp.data;\r\n });\r\n }\r\n var ModalInstanceCtrlFollowUp = function ($scope, $rootScope, $uibModalInstance) { \r\n vm.updateFollowUpStatus = function () {\r\n var data = {};\r\n data = {\r\n \"userId\": loggedinUser,\r\n \"dateTime\": \"\",\r\n \"activity\": \"\",\r\n \"action\": \"FOLLOW_UP\",\r\n \"userName\": \"\",\r\n \"ticketId\": vm.tickId,\r\n \"primaryReason\": vm.primaryFollowUpReason,\r\n \"SecondryReason\": \"\",\r\n \"ReasonComment\": vm.primaryFollowUpRemark\r\n }\r\n if(vm.followFiles != null) {\r\n CRMManualAssignationJobService.UpdateFollowUpReason(data,vm.followFiles, token, loggedinUser, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n vm.CloseFollowUpModel();\r\n $timeout(function () {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.filterStatusForJObs($scope.jobStatusForPaging, $scope.selectedUserId, $localStorage.loggedInUserId, token,jPageIndex,jPageSize)\r\n }, 1000); \r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to create follow up. Server is not responding correctly.\");\r\n }\r\n }, vm.showFailure);\r\n }\r\n else{\r\n CRMManualAssignationJobService.TicketFollowUpWithoutDoc(data, token, loggedinUser, function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Follow up done successfully.\");\r\n $timeout(function () {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000); \r\n } \r\n vm.CloseFollowUpModel();\r\n });\r\n }\r\n \r\n }\r\n }\r\n\r\n var ModelInstanceOfMap = function ($rootScope, $scope, $uibModal) {\r\n vm.getCustomerJobCard();\r\n }\r\n\r\n vm.getCustomerJobCard = function () {\r\n CRMManualAssignationJobService.getCustomerJobCardbyJobId(loggedinUser, vm.trackingTicketId, token, function (data) {\r\n vm.JobLatitude = data.JobLatitude;\r\n vm.JobLongitude = data.JobLongitude;\r\n vm.FELatitude = data.FELatitude;\r\n vm.FELongitude = data.FELongitude;\r\n vm.contactnumber = data.FEContactNumber;\r\n vm.jobtype = data.Description;\r\n vm.name = data.FEName;\r\n if(data.FEContactNumber){\r\n vm.contactnumber=data.FEContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n initMap();\r\n $log.log(\"res of getCustomerJobCard=\" + data);\r\n vm.customerJobCard = data;\r\n if(vm.customerJobCard.ConsumerContact){\r\n vm.customerJobCard.ConsumerContact=vm.customerJobCard.ConsumerContact.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n if ($localStorage.rateJobParams) {\r\n vm.customerJobCard.userRole = $localStorage.Role;\r\n vm.customerJobCard.JobStatus = $localStorage.rateJobParams.status;\r\n vm.customerJobCard.CustomerGivenRating = $localStorage.rateJobParams.rating;\r\n delete $localStorage.rateJobParams;\r\n }\r\n if (data && data.JobStatus == 'PaymentDone') {\r\n\r\n }\r\n }, function () {\r\n vm.showFailure(\"Failed\", \"Unable to reach server\");\r\n });\r\n }\r\n vm.TicketBreachValueconver = function(TicketBreachValue)\r\n {\r\n var TicketBreachValueInString=\"\"; \r\n if(TicketBreachValue==0)\r\n TicketBreachValueInString = \"Not Breached\";\r\n if(TicketBreachValue==1)\r\n TicketBreachValueInString = \"Breached\";\r\n \r\n return TicketBreachValueInString;\r\n }\r\n vm.OpenTracking = function (ticket) {\r\n vm.trackingTicketId = ticket;\r\n Tracking = $uibModal.open({\r\n templateUrl: 'Tracking.html',\r\n size: 'lg',\r\n scope: $scope,\r\n controller: ModelInstanceOfMap\r\n })\r\n }\r\n vm.CloseTracking = function () {\r\n Tracking.close();\r\n }\r\n\r\n vm.OpenRescheduleAuditModal = function (currentAuditJOb) \r\n { \r\n vm.CurrentAuditJob = currentAuditJOb;\r\n vm.RatingOfTicket = '';\r\n vm.RescheduleAuditTicketId = vm.CurrentAuditJob.TicketId;\r\n vm.AuditPrimaryReason = vm.CurrentAuditJob.PrimaryReason;\r\n rescheduleAuditModalInstance = $uibModal.open({\r\n templateUrl: 'reschedule_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n\r\n vm.RescheduleAuditCloseModal = function () {\r\n rescheduleAuditModalInstance.close();\r\n }\r\n\r\n vm.pavModelTicketId = \"\";\r\n vm.OpenPAVReportUploadModal = function (ticketId) {\r\n vm.pavModelTicketId = ticketId;\r\n pavModelInstance = $uibModal.open({\r\n templateUrl: 'PAV_report_upload.html',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closePAVModel = function () {\r\n if (pavModelInstance) {\r\n pavModelInstance.close();\r\n }\r\n vm.disableUploadButton = false;\r\n }\r\n\r\n $scope.attachPAVReport = function (files) {\r\n vm.PAVFileName = \"\";\r\n vm.PAVMessage = \"\";\r\n var selectedFile = files.files[0];\r\n if (!selectedFile) {\r\n vm.PAVMessage = \"No file selected.\";\r\n return;\r\n }\r\n vm.PAVFileName = selectedFile.name;\r\n if (vm.PAVFileName != \"\") {\r\n $timeout(function () {\r\n vm.PAVMessage = \"\";\r\n }, 100);\r\n }\r\n var allowedExtensions = /(\\.pdf|\\.PDF)$/i;\r\n if (!allowedExtensions.exec(selectedFile.name)) {\r\n vm.PAVMessage = \"Invalid file type. Please upload a PDF file only.\";\r\n vm.PAVFileName = \"\";\r\n vm.clear();\r\n return;\r\n }\r\n $timeout(function () {\r\n vm.PAVMessage = \"\";\r\n }, 100);\r\n\r\n vm.PAVReportFiles = selectedFile;\r\n }\r\n \r\n\r\n vm.UploadPAVReport = function () {\r\n CRMManualAssignationJobService.OnSiteReprotUploadWeb(vm.pavModelTicketId, vm.PAVReportFiles, token, loggedinUser).then(function (res) {\r\n vm.disableUploadButton = true;\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Report uploaded successfully.\");\r\n vm.closePAVModel();\r\n $timeout(function () {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000);\r\n } else {\r\n vm.disableUploadButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n\r\n vm.OpenSiteAuditModal = function (currentAuditJOb) \r\n { \r\n vm.CurrentAuditJob = currentAuditJOb; \r\n vm.SiteAuditTicketId = vm.CurrentAuditJob.TicketId; \r\n siteAuditModalInstance = $uibModal.open({\r\n templateUrl: 'site_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n vm.SiteAuditCloseModal = function () {\r\n siteAuditModalInstance.close();\r\n }\r\n\r\n $scope.attachSiteAudit = function(files){\r\n vm.SiteAuditFileName=\"\";\r\n var file = files.files[0];\r\n vm.SiteAuditFileName=file.name;\r\n if(vm.SiteAuditFileName!=\"\") \r\n { \r\n $timeout(function () {\r\n vm.SiteAuditMessage=\"\"; \r\n }, 100); \r\n } \r\n vm.followFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.followFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.doc,.docx,.xls,.xlsx only.');\r\n }\r\n }\r\n \r\n vm.SiteRescheduleAudit = function(){ \r\n if(vm.SiteAuditFileName==\"\")\r\n { \r\n return vm.SiteAuditMessage=\"Please Select Audit Report\";\r\n }\r\n else\r\n vm.SiteAuditMessage=\"\";\r\n\r\n var data = {};\r\n data = { \r\n \"AuditResult\": vm.SiteAuditModel, \r\n \"AuditObjectId\": vm.SiteAuditTicketId,\r\n \"AuditAttachmentName\": vm.SiteAuditFileName,\r\n \"AuditFor\": \"Ticket\" \r\n } \r\n siteAuditModalInstance.close(); \r\n CRMManualAssignationJobService.AddSiteAuditwithAttachment(data, vm.followFiles, token, loggedinUser).then(function(res){\r\n if (res && res.status == 202) { \r\n vm.showSuccess(\"Success\", \"Site Audit Saved successfully.\");\r\n $timeout(function () { \r\n vm.SiteAuditFileName=\"\";\r\n vm.FilterArray(); \r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to add site audit. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n \r\n // Combo Paging Start\r\n\r\n $scope.totalTableBundles = 0;\r\n $scope.bundleTablePerPage = vm.bundlePageListCount ; \r\n $scope.BundleTablepagination = {\r\n current: 1\r\n };\r\n \r\n vm.changeBundlePageListCount = function() { \r\n vm.GroupType = 'Combo';\r\n $scope.bundleTablePerPage = vm.bundlePageListCount;\r\n bPageSize = $scope.bundleTablePerPage;\r\n $scope.BundleTablepageChanged($scope.BundleTablepagination.current);\r\n vm.selectAll = false;\r\n }\r\n \r\n bPageIndex=$scope.BundleTablepagination.current;\r\n $scope.BundleTablepageChanged = function(newPage) { \r\n vm.GroupType = 'Combo'; \r\n bPageIndex = newPage;\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,bPageIndex,bPageSize); \r\n };\r\n\r\n // Combo Paging End\r\n\r\n // WorkOrder Paging Start\r\n\r\n $scope.totalTableWorkOrder = 0;\r\n $scope.workOrderTablePerPage = vm.workOrderPageListCount ;\r\n $scope.workOrderTablepagination = {\r\n current: 1\r\n };\r\n\r\n vm.changeWorkOrderListCount = function() { \r\n vm.GroupType = 'WorkOrder';\r\n $scope.workOrderTablePerPage = vm.workOrderPageListCount;\r\n wPageSize = $scope.workOrderTablePerPage;\r\n $scope.workOrderTablepageChanged($scope.workOrderTablepagination.current);\r\n vm.selectAll = false;\r\n }\r\n\r\n wPageIndex=$scope.workOrderTablepagination.current;\r\n $scope.workOrderTablepageChanged = function(newPage) { \r\n vm.GroupType = 'WorkOrder'; \r\n wPageIndex = newPage;\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,wPageIndex,wPageSize); \r\n };\r\n\r\n // WorkOrder Paging End\r\n\r\n // Ticket Paging Start\r\n\r\n $scope.totalTableTickets = 0;\r\n $scope.ticketTablePerPage = vm.ticketPageListCount ;\r\n $scope.TicketTablepagination = {\r\n current: 1\r\n }; \r\n\r\n vm.changeTicketPageListCount = function() { \r\n vm.GroupType = 'Individual|WorkOrderGroup';\r\n $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n PageSize = $scope.ticketTablePerPage;\r\n $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n vm.selectAll = false;\r\n }\r\n \r\n PageIndex=$scope.TicketTablepagination.current;\r\n $scope.TicketTablepageChanged = function(newPage) { \r\n vm.GroupType = 'Individual|WorkOrderGroup'; \r\n PageIndex = newPage;\r\n vm.FilterArray(); \r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n };\r\n\r\n // Ticket Paging End\r\n\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeAllUserPageListCount = function() { \r\n $scope.usersPerPage = vm.userPageListCount;\r\n uPageSize = $scope.usersPerPage;\r\n $scope.UserTablePageChanged($scope.Userpagination.current);\r\n vm.selectAll = false;\r\n \r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n };\r\n}\r\n\r\n $scope.totalUserSuggestions = 0;\r\n $scope.userSuggestionsPerPage = vm.suggestionPageListCount;\r\n $scope.UserSuggestionspagination = {\r\n current: 1\r\n };\r\n\r\n vm.cangeSuggestionPageListCount = function() { \r\n $scope.userSuggestionsPerPage = vm.suggestionPageListCount;\r\n uPageSize = $scope.userSuggestionsPerPage;\r\n $scope.UserSuggestionTablepageChanged($scope.Userpagination.current);\r\n vm.selectAll = false;\r\n }\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserSuggestionTablepageChanged = function(newPage) { \r\n vm.SuggestionStarIndex = (newPage-1)*vm.SuggestionMaxcount; \r\n vm.SuggestionMaxcount = newPage*vm.suggestionPageListCount \r\n };\r\n\r\n // //jobs paging (freelancer profile)\r\n $scope.totalJobs = 0;\r\n // $scope.userSuggestionsPerPage = 10; // this should match however many results your API puts on one page\r\n $scope.JobsPerPage = vm.jobsPageListCount;\r\n $scope.jobspagination = {\r\n current: 1\r\n };\r\n\r\n vm.cangeJobsPageListCount = function() { \r\n $scope.JobsPerPage = vm.jobsPageListCount;\r\n uPageSize = $scope.JobsPerPage;\r\n $scope.jobsTablepageChanged($scope.jobspagination.current);\r\n vm.selectAll = false;\r\n }\r\n uPageIndex=$scope.jobspagination.current;\r\n $scope.jobsTablepageChanged = function(newPage) { \r\n jPageIndex = newPage;\r\n vm.jobsStarIndex = (newPage-1)*vm.jobsMaxcount; \r\n vm.jobsMaxcount = newPage*vm.jobsPageListCount;\r\n vm.filterStatusForJObs($scope.jobStatusForPaging);\r\n \r\n };\r\n\r\n //pagination for BID\r\n $scope.totalUserBID = 0;\r\n $scope.userBIDPerPage = 10; // this should match however many results your API puts on one page\r\n $scope.UserBIDpagination = {\r\n current: 1\r\n };\r\n\r\n $scope.UserBIDTablepageChanged = function(newPage) {\r\n vm.BIDStartIndex = (newPage-1)*10; \r\n vm.BIDMaxcount = newPage*10\r\n };\r\n \r\n // $scope.UserTablepagination.current= $localStorage.TicketFilterModel?$localStorage.TicketFilterModel.PageIndex:1;\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n if(uitemNames != 'Search')\r\n {\r\n vm.UsersFilterArray();\r\n }\r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n\r\n };\r\n\r\n vm.ticketList=[];\r\n vm.getAllJobTickets = function(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize) { \r\n var templateCols=\"\";\r\n vm.resetAllSelect();\r\n var templateCols=\"\";\r\n PageIndex = PageIndex?PageIndex:1;\r\n // vm.DateField = vm.DateField?vm.DateField:\"CreatedOn\";\r\n vm.DateField= vm.accountConfig.AccountId == 0 ? vm.DateField : 'CreatedOn';\r\n CRMManualAssignationJobService.getAllJobTickets(loggedinUser, startDate, endDate, token, itemNames, itemValues,textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues,vm.DateField,PageIndex,PageSize,vm.SortType,vm.SortField).then(function (resp) {\r\n if (resp && resp.data) {\r\n // vm.ticketList = resp.data.LightTicketModels;\r\n $scope.totalTableTickets = resp.data.Count;\r\n $scope.totalTableUsers = resp.data.Count;\r\n vm.ApprovedJobCount = resp.data.ApprovedJobCount;\r\n vm.AssignJobCount = resp.data.AssignJobCount;\r\n vm.AssignedNCallTakenButNoAppointment = resp.data.AssignedNCallTakenButNoAppointment;\r\n vm.AppointmentNotTakenInTime = resp.data.AppointmentNotTakenInTime;\r\n vm.AppointmentNotBooked = resp.data.AppointmentNotBooked;\r\n vm.AppointmentBookedThenCancelled = resp.data.AppointmentBookedThenCancelled;\r\n vm.BroadcastJobCount = resp.data.BroadcastJobCount;\r\n vm.CancelledSourceCount = resp.data.CancelledSourceCount;\r\n vm.CancelJobCount = resp.data.CancelJobCount;\r\n vm.CompleteJobCount = resp.data.CompleteJobCount;\r\n vm.TotalJobCount = resp.data.TotalJobCount;\r\n vm.HoldJobCount = resp.data.HoldJobCount;\r\n vm.CancelCustomerVerified = resp.data.CancelCustomerVerified;\r\n vm.ProductReplacementCount = resp.data.ProductReplacementCount;\r\n vm.GasChargingRequestCount = resp.data.GasChargingRequestCount;\r\n vm.InTransitJobCount = resp.data.InTransitJobCount; \r\n vm.ItemInventoryRaised = resp.data.ItemInventoryRaised;\r\n vm.ItemInventoryDelivered = resp.data.ItemInventoryDelivered; \r\n vm.ProductReplacementRaised = resp.data.ProductReplacementRaised;\r\n vm.AssignedThenCancelled = resp.data.AssignedThenCancelled;\r\n vm.AppointmentRescheduled = resp.data.AppointmentRescheduled; \r\n vm.OnSiteJobCount = resp.data.OnSiteJobCount; \r\n vm.InProgressJobCount = resp.data.InProgressJobCount; \r\n vm.NewJobCount = resp.data.NewJobCount;\r\n vm.PriorityCount = resp.data.PriorityCount;\r\n vm.ReadyToAssigJobCount = resp.data.ReadyToAssigJobCount;\r\n vm.RejectedJobCount = resp.data.RejectedJobCount;\r\n vm.ScheduleExceptionJobCount = resp.data.ScheduleExceptionJobCount;\r\n vm.ExceptionNoUserCount =resp.data.ExceptionNoUserCount;\r\n vm.AddressExceptionCount = resp.data.AddressExceptionCount;\r\n vm.PriceExceptionCount = resp.data.PriceExceptionCount;\r\n vm.AppointmentBookedForDay0 = resp.data.AppointmentBookedForDay0;\r\n vm.AppointmentBookedForDay1 = resp.data.AppointmentBookedForDay1;\r\n vm.AppointmentBookedForDay2Plus = resp.data.AppointmentBookedForDay2Plus;\r\n vm.AppointmentBreached = resp.data.AppointmentBreached;\r\n vm.NotAssignedForD0 = resp.data.NotAssignedForD0;\r\n vm.NotAssignedForD1 = resp.data.NotAssignedForD1;\r\n vm.CustomerCallInit = resp.data.CustomerCallInit;\r\n vm.AssignedNoActionCount = resp.data.AssignedNoActionCount;\r\n vm.BroadcastCountTickets = resp.data.BroadcastCountTickets;\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n }\r\n\r\n }, function () { \r\n });\r\n\r\n }\r\n\r\n vm.getAllJobTicketsCopyForPagging = function(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize) { \r\n var templateCols=\"\";\r\n vm.resetAllSelect();\r\n var templateCols=\"\";\r\n PageIndex = PageIndex?PageIndex:1;\r\n vm.DateField = vm.DateField?vm.DateField:\"CreatedOn\";\r\n CRMManualAssignationJobService.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, token, itemNames, itemValues,textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues,vm.DateField,PageIndex,PageSize,vm.SortType,vm.SortField).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ticketList = resp.data.LightTicketModels;\r\n angular.forEach(vm.ticketList, function (t) {\r\n t.PincodeArray = t.Pincode.split(\"|\");\r\n t.Pincode = Array.from(new Set(t.PincodeArray));\r\n t.SkillSetArray = t.SkillSet.split(\"|\");\r\n t.SkillSet = Array.from(new Set(t.SkillSetArray));\r\n })\r\n $scope.totalTableBundles = resp.data.Count;\r\n $scope.totalTableWorkOrder = resp.data.Count;\r\n $scope.totalTableTickets = resp.data.Count;\r\n $scope.totalTableUsers = resp.data.Count;\r\n vm.enableFilters = true;\r\n vm.actionFlag = false;\r\n $localStorage.TList = vm.ticketList;\r\n $localStorage.AllJobType = vm.searchJobTypeText;\r\n $localStorage.AllJobStatus = vm.searchStatusText;\r\n angular.forEach(vm.ticketList, function (t) {\r\n t.StartTime = moment(t.StartTime, \"YYYY-MM-DDThh:mm:ssZ\"); \r\n t.StartTimeD = t.StartTime.format(\"YYYY-MM-DD hh:mm\");\r\n var today = moment();\r\n var date2 = t.CreationDate;\r\n var date3 = t.AssignationDate;\r\n var duration = today.diff(date2, 'days');\r\n var assignDuration = today.diff(date3, 'hour');\r\n var assignDurationMin = today.diff(date3, 'minutes');\r\n t.Age = duration;\r\n t.diffAssignation = assignDuration;\r\n t.diffAssignationMin = assignDurationMin%60;\r\n })\r\n \r\n if(vm.ticketList.length < vm.ticketPageListCount)\r\n vm.ticketListLength = $scope.totalTableTickets;\r\n else\r\n vm.ticketListLength = PageIndex * vm.ticketPageListCount;\r\n if(PageIndex==1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex-1) * vm.ticketPageListCount) + 1);\r\n\r\n if(vm.ticketList.length < vm.bundlePageListCount)\r\n vm.bundleListLength = $scope.totalTableBundles;\r\n else\r\n vm.bundleListLength = bPageIndex * vm.bundlePageListCount;\r\n if(bPageIndex==1)\r\n vm.bpageindexCount = 1;\r\n else\r\n vm.bpageindexCount = (((bPageIndex-1) * vm.bundlePageListCount) + 1);\r\n\r\n if(vm.ticketList.length < vm.workOrderPageListCount)\r\n vm.workOrderListLength = $scope.totalTableWorkOrder;\r\n else\r\n vm.workOrderListLength = wPageIndex * vm.workOrderPageListCount;\r\n if(wPageIndex==1)\r\n vm.wpageindexCount = 1;\r\n else\r\n vm.wpageindexCount = (((wPageIndex-1) * vm.workOrderPageListCount) + 1);\r\n }\r\n\r\n }, function () { \r\n });\r\n \r\n }\r\n vm.getAllTicketsByStatus = function(status)\r\n {\r\n\r\n if (status == 'P1') {\r\n vm.Priority = status;\r\n vm.JobcountbyStatus = '';\r\n }\r\n else {\r\n vm.Priority = '';\r\n vm.JobcountbyStatus = status;\r\n }\r\n\r\n if(vm.JobcountbyStatus == 'Broadcasted') {\r\n vm.SortField = 'BroadcastedOn';\r\n }\r\n else if(vm.JobcountbyStatus == 'Assigned'){\r\n vm.SortField = 'AssignationDateObj';\r\n }\r\n else if(vm.JobcountbyStatus == 'New'){\r\n vm.SortField = 'NewStatusDateObj';\r\n }\r\n else if(vm.JobcountbyStatus == 'Hold'){\r\n vm.SortField = 'HoldDateObj';\r\n }\r\n else if(vm.JobcountbyStatus == 'Completed'){\r\n vm.SortField = 'CompletionDateObj';\r\n }\r\n else if(vm.JobcountbyStatus == 'ScheduleException'){\r\n vm.SortField = 'ScheduleException';\r\n }\r\n else if(vm.JobcountbyStatus == 'Rejected'){\r\n vm.SortField = 'RejectionDateObj';\r\n }\r\n vm.GroupType = 'Individual|WorkOrderGroup'; \r\n vm.searchText='';\r\n vm.searchJobTypeText = \"\"; \r\n vm.searchStatusText=''; \r\n // vm.CustomerList = [];\r\n // vm.ProjectList = [];\r\n vm.ProjectListByCustomer=[];\r\n vm.SearchByIs = '';\r\n vm.SearchByDiscription = '';\r\n vm.SearchByTName = '';\r\n // vm.SearchByCName='';\r\n // vm.SearchByPName = '';\r\n vm.SearchByDName = '';\r\n vm.SearchByConsumerName = '';\r\n vm.SearchByConsumerContact = '';\r\n vm.SearchByState = '';\r\n vm.FilterArray(); \r\n // var startDate = moment(vm.ticketdates.startDate).format('YYYY-MM-DD');\r\n // var endDate = moment(vm.ticketdates.endDate).format('YYYY-MM-DD'); \r\n \r\n PageIndex=1;\r\n /*$scope.UserTablepagination = {\r\n current: 1\r\n };*/\r\n // vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }\r\n\r\n // vm.sortBroadcastAge = function(SortType) {\r\n // vm.SortField = \"BroadcastedOn\";\r\n // vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // }\r\n\r\n // vm.sortAge = function(SortType) {\r\n // vm.SortField = \"CreatedOn\";\r\n // vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // }\r\n\r\n vm.sortColumn = function(col){\r\n vm.SortField = col;\r\n if(vm.SortType=='desc'){\r\n vm.SortType = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n }else{\r\n vm.SortType = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // vm.filterStatusForJObs($scope.jobStatusForPaging, $scope.selectedUserId, $localStorage.loggedInUserId, token,jPageIndex,jPageSize)\r\n\r\n };\r\n \r\n // remove and change class\r\n vm.sortClass = function(col){\r\n if(vm.SortField == col ){\r\n if(vm.SortType == 'desc'){\r\n return 'fa fa-arrow-down'; \r\n }else{\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else{\r\n return '';\r\n }\r\n }\r\n\r\n\r\n vm.UserByFiltersList=[];\r\n vm.GetUserByFiltersWithDynaPage = function(loggedinUser, token, uitemNames, uitemValues, userType, UserAvailable, uPageIndex, uPageSize) { \r\n CRMManualAssignationJobService.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, userType, vm.UserAvailable, vm.DateField, uPageIndex, uPageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserByFiltersList = resp.data.ListUserResponseModel;\r\n $scope.totalUsers = resp.data.Count;\r\n preprocessData(vm.UserByFiltersList);\r\n if(vm.UserByFiltersList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = uPageIndex * vm.userPageListCount;\r\n if(uPageIndex==1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex-1) * vm.userPageListCount) + 1);\r\n\r\n for(var i=0;i 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n}else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n} \r\n}\r\n\r\nif (vm.userskill) { \r\nif(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',SkillSet';\r\n uitemValues = uitemValues + \",\" + vm.userskill;\r\n}\r\nelse\r\n{\r\n uitemNames = 'SkillSet';\r\n uitemValues = vm.userskill;\r\n} \r\n}\r\n\r\nif(vm.SearchByAccount)\r\n{\r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',CustomerAccountName';\r\n uitemValues = uitemValues + \",\" + vm.SearchByAccount;\r\n }\r\n else\r\n {\r\n uitemNames = 'CustomerAccountName';\r\n uitemValues = vm.SearchByAccount;\r\n } \r\n}\r\n\r\nif (vm.userNameSearch) { \r\nif(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.userNameSearch;\r\n}\r\nelse\r\n{\r\n uitemNames = 'Search';\r\n uitemValues = vm.userNameSearch;\r\n} \r\n}\r\n\r\nif (vm.PermanentState) { \r\nif(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',State';\r\n uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n}\r\nelse\r\n{\r\n uitemNames = 'State';\r\n uitemValues = vm.PermanentState;\r\n} \r\n}\r\n\r\nif(vm.JobcountbyStatus)\r\n{\r\n if(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',Status';\r\n uitemValues = uitemValues + \",\" + vm.JobcountbyStatus;\r\n}\r\nelse\r\n{\r\n uitemNames = 'Status';\r\n uitemValues = vm.JobcountbyStatus;\r\n}\r\n}\r\n\r\nif (vm.WorkState) \r\n{ \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',State';\r\n uitemValues = uitemValues + \",\" + vm.WorkState;\r\n }\r\n else\r\n {\r\n uitemNames = 'State';\r\n uitemValues = vm.WorkState;\r\n } \r\n }\r\n if (vm.WorkState && vm.WorkCity) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',City';\r\n uitemValues = uitemValues + \",\" + vm.WorkCity;\r\n }\r\n else\r\n {\r\n uitemNames = 'City';\r\n uitemValues = vm.WorkCity;\r\n } \r\n }\r\n\r\nif (vm.CurrentState) { \r\nif(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',CurrentState';\r\n uitemValues = uitemValues + \",\" + vm.CurrentState;\r\n}\r\nelse\r\n{\r\n uitemNames = 'CurrentState';\r\n uitemValues = vm.CurrentState;\r\n} \r\n}\r\nif (vm.CurrentState && vm.CurrentCity) { \r\nif(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.CurrentCity;\r\n}\r\nelse\r\n{\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.CurrentCity;\r\n} \r\n}\r\n\r\nif (vm.UsersType) { \r\nif(uitemNames) \r\n{\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + \",\" + vm.UsersType;\r\n}\r\nelse\r\n{\r\n uitemNames = 'Role';\r\n uitemValues = vm.UsersType;\r\n} \r\n} \r\n\r\n\r\nif(vm.UsersType==\"Freelancer\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n vm.SearchByAccount = ''\r\n }\r\n else if(vm.UsersType==\"Freelancer Vendor\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n vm.SearchByAccount = ''\r\n } \r\n else if(vm.UsersType==\"Private\")\r\n {\r\n vm.uType=\"Private\";\r\n vm.SearchByAccount = ''\r\n } \r\n else if(vm.UsersType==\"Dispatch Supervisor\" || vm.UsersType==\"OnBoarding Supervisor\" || vm.UsersType==\"Dispatch Team Lead\" || vm.UsersType==\"Project Manager\" || vm.UsersType==\"Supervisor\")\r\n {\r\n vm.uType=\"Fixed\";\r\n }\r\n else if(vm.UsersType==\"Freelancer Dispatcher\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n }\r\n else \r\n {\r\n vm.uType=\"\";\r\n vm.UsersType = '';\r\n } \r\n}\r\n\r\nvm.wsersFilterArray = function()\r\n{\r\nwitemNames=\"\";\r\nwitemValues=\"\";\r\n\r\nif (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null){\r\nif(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n}else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n} \r\n}\r\nif (vm.userNameSearch) { \r\nif(witemNames) \r\n{\r\n witemNames = witemNames + ',Search';\r\n witemValues = witemValues + \",\" + vm.userNameSearch;\r\n}\r\nelse\r\n{\r\n witemNames = 'Search';\r\n witemValues = vm.userNameSearch;\r\n} \r\n}\r\n\r\nif(vm.JobcountbyStatus)\r\n{\r\n if(witemNames) \r\n{\r\n witemNames = witemNames + ',Status';\r\n witemValues = witemValues + \",\" + vm.JobcountbyStatus;\r\n}\r\nelse\r\n{\r\n witemNames = 'Status';\r\n witemValues = vm.JobcountbyStatus;\r\n}\r\n}\r\n\r\n}\r\n\r\n\r\n// apply user rating to all displays\r\n// add star ratings to an array\r\nvar starRating = document.querySelectorAll(\".fa-star\"),\r\nratingTotal = document.querySelectorAll(\".rating-total\");\r\n\r\n// convert ratingTotal HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\nvar reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n// display initial rating totals\r\n// displayTotals();\r\n\r\n// use event listener to record changes to user rating\r\nstarRating.forEach(function(star) {\r\nstar.addEventListener(\"change\", recordRating);\r\n})\r\n\r\nfunction recordRating(event) {\r\n// use indexOf to identify selected user rating\r\nvar userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n// define selected rating to adjust display totals\r\nvar selectedIndex;\r\n\r\nstarRating.forEach(function(item, index) {\r\n// add or remove .active class based upon selected user rating\r\nif (index < userRating + 1) {\r\nstarRating[index].classList.add(\"active\");\r\nselectedIndex = index;\r\n} else {\r\nstarRating[index].classList.remove(\"active\");\r\n}\r\n\r\ndisplayTotals(selectedIndex);\r\n});\r\n}\r\nvm.countForStatus = 50;\r\n// display star rating totals from html custom data-\r\nfunction displayTotals(selectedIndex) {\r\nvar barChart = document.querySelectorAll(\".bar\"),\r\ndisplaySummary = document.querySelectorAll(\".summary\"),\r\nnumRatings = 0,\r\nnumRatingsValue = 0;\r\n\r\n// convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\nvar reverseBarChart = Array.from(barChart).reverse();\r\n\r\nreverseRatingTotal.forEach(function(total, index) {\r\nif (index == selectedIndex) {\r\n// add selected rating to display total\r\ntotal.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n// adjust selected bar width\r\nreverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n} else {\r\n// display unselected totals\r\ntotal.innerHTML = total.getAttribute(\"data-rating-count\");\r\n// adjust unselected bar widths\r\nreverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n}\r\n// count total number and value of ratings\r\nnumRatings += parseInt(total.innerHTML);\r\nnumRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n});\r\n\r\n// display rating average and total\r\nratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n// displaySummary[0].innerHTML = ratingsAverage + \" average based on \" + numRatings + \" reviews.\";\r\n}\r\n\r\nvm.Get360VendorTeamData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedinUser, teamid, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n}\r\n\r\nvm.GetUsersTicket = function (isCollapsed,status,id,type) {\r\n $scope.activeRow = id;\r\n $scope.isCollapsed = !isCollapsed;\r\n vm.userIdforStatus = id;\r\n vm.statusForTickets = status;\r\n vm.JobcountbyStatus = ''; \r\n vm.filterType = type; \r\n vm.FilterArray(); \r\n // if(!vm.filterType){\r\n // vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n // }\r\n vm.getAllJobTicketsCopyForUsers(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n}\r\n\r\nvm.getAllJobTicketsCopyForUsers = function(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize) { \r\n var templateCols=\"\";\r\n vm.resetAllSelect();\r\n var templateCols=\"\";\r\n vm.UserticketList = [];\r\n PageIndex = PageIndex?PageIndex:1;\r\n vm.DateField = vm.DateField?vm.DateField:\"CreatedOn\";\r\n CRMManualAssignationJobService.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, token, itemNames, itemValues,textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues,vm.DateField,PageIndex,PageSize,vm.SortType,vm.SortField).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserticketList = resp.data.LightTicketModels;\r\n }\r\n\r\n }, function () { \r\n });\r\n \r\n}\r\n\r\nvm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token,vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate,wsEDate,vm.OrderBy,vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.wsTicketList = resp.data.workSummaryData;\r\n $scope.totalWS = resp.data.WorkSummaryTotalCount;\r\n if(vm.wsTicketList.length < vm.userPageListCount)\r\n vm.wsListLength = $scope.totalWS;\r\n else\r\n vm.wsListLength = uPageIndex * vm.userPageListCount;\r\n if(uPageIndex==1)\r\n vm.wspageindexCount = 1;\r\n else\r\n vm.wspageindexCount = (((uPageIndex-1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n}\r\n\r\nvm.FinanceFiltersList=[];\r\nvm.GetFinancialSummary = function () { \r\n DashboardService.GetFinancialSummary(loggedinUser, token,vm.userId, fnitemNames, fnitemValues, fPageIndex, fPageSize, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.paymentCount = resp.data.paymentsSummary;\r\n vm.FinanceFiltersList = resp.data.financialSummary360.financialLPSummaryList;\r\n $scope.totalFinList = resp.data.financialSummary360.count;\r\n if(vm.FinanceFiltersList.length < vm.financePageListCount)\r\n vm.financeListLength = $scope.totalFinList;\r\n else\r\n vm.financeListLength = fPageIndex * vm.financePageListCount;\r\n if(fPageIndex==1)\r\n vm.fpageindexCount = 1;\r\n else\r\n vm.fpageindexCount = (((fPageIndex-1) * vm.financePageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n vm.ResetUserFilter();\r\n}\r\n\r\nvm.getFileType = function(url){\r\n if(url==null || url==\"\")\r\n {\r\n return \"others\";\r\n }\r\n else{\r\n if(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0 ||url.indexOf(\".JPG\")>=0 || url.indexOf(\".JPEG\")>=0 || url.indexOf(\".PNG\")>=0 || url.indexOf(\".BMP\")>=0){\r\n return \"image\";\r\n } else if(url.indexOf(\".pdf\")>=0 || url.indexOf(\".PDF\")>=0){\r\n return \"pdf\";\r\n } else if(url.indexOf(\".xls\")>=0 || url.indexOf(\".xlsx\")>=0 ||url.indexOf(\".XLS\")>=0 || url.indexOf(\".XLSX\")>=0){\r\n return \"xls\"; \r\n } else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0 || url.indexOf(\".DOC\")>=0 || url.indexOf(\".DOCX\")>=0){\r\n return \"doc\";\r\n } \r\n else {\r\n return \"others\";\r\n }\r\n }\r\n }\r\n\r\n\r\nvm.CreateBJobs = function(){\r\n vm.bundleTicketArray = []; \r\n vm.bundlePrice = [];\r\n vm.bundleData = [];\r\n vm.bundlesum = 0;\r\n angular.forEach(vm.ticketList, function(d){\r\n if (d.checked) {\r\n vm.bundleTicketArray.push(d.TicketId)\r\n vm.bundlePrice.push(d.FreelancerRate)\r\n vm.bundleData.push(d)\r\n vm.bundlesum = vm.bundlePrice.reduce(function (x, y) {\r\n return x + y;\r\n }, 0); \r\n }\r\n })\r\n if(vm.bundleTicketArray.length <= 1) {\r\n vm.showFailure(\"Failed\", 'Please choose atleast 2 tickets to create combo');\r\n }\r\n else if(vm.bundleTicketArray.length > 5) {\r\n vm.showFailure(\"Failed\", 'Please select 5 or less than 5 tickets to create combo');\r\n }\r\n else {\r\n vm.confirmationMessage = 'Please confirm if you want to create combo of mentioned tickets:';\r\n confirmationModalInstance = $uibModal.open({\r\n templateUrl: 'bundle_jobs_confirmation_model.html',\r\n scope: $scope,\r\n backdrop: 'static'\r\n });\r\n }\r\n \r\n}\r\n\r\nvm.BundleJobsCreate = function (IsSuggested) { \r\n $scope.IsSuggested = IsSuggested;\r\n if(vm.bundleTicketArray.length <= 1) {\r\n vm.showFailure(\"Failed\", 'Please choose atleast 2 tickets to create combo');\r\n }\r\n else if(vm.bundleTicketArray.length > 5) {\r\n vm.showFailure(\"Failed\", 'Please select 5 or less than 5 tickets to create combo');\r\n }\r\n else{\r\n CRMManualAssignationJobService.CreateJobBundle(loggedinUser, vm.bundleTicketArray,IsSuggested,token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.getJobsSuggestion(vm.itemNamesSgtn, vm.itemValuesSgtn);\r\n vm.FilterArray();\r\n // vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.CloseComboModel();\r\n vm.confirmationCloseModal();\r\n }, 2000); \r\n confirmationModalInstance.close(); \r\n }\r\n else { \r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.DisableBroadcastButtons(false); \r\n confirmationModalInstance.close();\r\n }\r\n });\r\n } \r\n}\r\n\r\n// Route Bundle\r\nvm.routeBundle = function(index){\r\n vm.DisableRouteBroadcastButtons(true);\r\n var data = {};\r\n for(var i=0; i< vm.ticketList.length;i++){\r\n if(vm.ticketList[i].TicketStatus==\"New\")\r\n {\r\n if(vm.ticketList[i].checked){\r\n if(i==0){\r\n data.JobIds = vm.ticketList[i].TicketId;\r\n }else{\r\n data.JobIds = data.JobIds + ',' + vm.ticketList[i].TicketId;\r\n }\r\n }\r\n }\r\n } \r\n for(var i=0; i< vm.UserByFiltersList.length;i++){\r\n if(vm.UserByFiltersList[i].checked){\r\n data.UserId = vm.UserByFiltersList[i].UserId;\r\n break;\r\n }\r\n }\r\n if(data.JobIds){\r\n CRMManualAssignationJobService.RouteBundlesforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.DisableRouteBroadcastButtons(true); \r\n vm.processBroadcastRouteResponse(resp.data); \r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n });\r\n }else{\r\n vm.showFailure(\"Failed\", \"Please select tickets.\");\r\n vm.DisableRouteBroadcastButtons(false);\r\n } \r\n }\r\n\r\n vm.BroadCastBundles = function () {\r\n vm.DisableRouteBroadcastButtons(true);\r\n var BidData = [];\r\n angular.forEach(vm.ticketList, function (d) {\r\n var obj = {};\r\n var time = '';\r\n var hrs = '';\r\n var min = '';\r\n if(d.TicketStatus==\"New\")\r\n {\r\n if (d.checked) {\r\n obj.JobID = d.TicketId;\r\n var time = d.BidDuration.split(':');\r\n var hrs = parseInt(time[0]);\r\n var min = parseInt(time[1]);\r\n obj.BIDDuration = hrs*60 + min;\r\n obj.BroadCastRate = d.BroadcastRate\r\n obj.BroadCastGrossRate = d.BroadcastGrossRate\r\n obj.MobiforceCommissionPercentage = d.MobiforceCommission\r\n obj.FixedBidPrice = true;\r\n BidData.push(obj);\r\n }\r\n }\r\n })\r\n var UserData = [];\r\n\r\n for(var i=0; i< vm.UserByFiltersList.length;i++){\r\n if(vm.UserByFiltersList[i].checked){\r\n UserData.push(vm.UserByFiltersList[i].UserId); \r\n }\r\n }\r\n\r\n if (BidData.length > 0 && UserData.length > 0) {\r\n var data = {\r\n \"Bids\": BidData,\r\n \"Users\": UserData\r\n };\r\n vm.BroadcastBundleModal.close();\r\n CRMManualAssignationJobService.BroadcastJobBundle(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201 || resp.status == 200) {\r\n vm.DisableRouteBroadcastButtons(true);\r\n vm.processBroadcastRouteResponse(resp.data);\r\n vm.free_NewJobSelectedItems = [];\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.UsersFilterArray(); \r\n vm.GetUserByFiltersWithDynaPage(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n if (resp.status == 206) {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n })\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select jobs and users.\");\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n }\r\n\r\nvm.openBroadcastBundlemodal = function (i) {\r\n vm.DisableRouteBroadcastButtons(true);\r\n vm.broadcastError = null; \r\n vm.jobselected = [];\r\n angular.forEach(vm.ticketList, function (d) {\r\n if(d.TicketStatus)\r\n {\r\n if (d.checked) {\r\n if (!d.BidDuration.includes(\":\")) {\r\n d.BidDuration = parseInt(d.BidDuration / 60) + \":\" + parseInt(d.BidDuration % 60);\r\n }\r\n vm.jobselected.push(d);\r\n $log.log(d)\r\n }\r\n }\r\n });\r\n if (vm.jobselected.length > 0) {\r\n vm.BroadcastBundleModal = $uibModal.open({\r\n templateUrl: 'BroadcastBundle.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n else\r\n {\r\n vm.showFailure(\"Failed\", \"Please select bundles\"); \r\n vm.broadcastError = \"Please select bundles for bradcast\";\r\n }\r\n}\r\n\r\nvm.closeBundleModal = function () {\r\n vm.BroadcastBundleModal.close();\r\n}\r\n\r\n\r\n//brodcast bundle to nearBy\r\n \r\nvm.BroadcastBundlesUS = function (i) {\r\n vm.DisableRouteBroadcastButtons(true);\r\n var temp = [];\r\n angular.forEach(vm.UserSuggestionList, function(d){\r\n if (d.checked) {\r\n temp.push({ \"UserId\": d.id, \"SuggestedPrice\": null, \"Price\": parseInt(d.Price), \"Distance\": parseInt(d.UserDistance) });\r\n \r\n }\r\n })\r\n var data = {\r\n \"JobId\": vm.broadcastTicketId,\r\n \"BIDDuration\": vm.TicketSelectedForAssistedSuggestion.BidDuration,\r\n \"MobiforceCommissionPercentage\": vm.TicketSelectedForAssistedSuggestion.MobiforceCommission,\r\n \"TechnicianSource\": 1,\r\n \"Users\": temp\r\n };\r\n if (data.Users.length > 0) {\r\n CRMManualAssignationJobService.BroadCastBundlesforUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess('Success', \"Jobs Broadcasted Successfully\");\r\n $timeout(function () {\r\n vm.DisableRouteBroadcastButtons(false);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n $scope.hideoverlay();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.BroadcastStatus);\r\n vm.DisableRouteBroadcastButtons(false);\r\n $scope.hideoverlay();\r\n }\r\n });\r\n } \r\n else {\r\n vm.showFailure(\"Failed\", resp.data.BroadcastStatus);\r\n $timeout(function () {\r\n $state.reload();\r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n}\r\n\r\n// Route Bundles for user Suggestion\r\nvm.routeBundlesUS = function (user) { \r\n vm.DisableRouteBroadcastButtons(true);\r\n var data = user; //vm.UserSuggestionList[0];\r\n var temp = [];\r\n temp.push({ \"UserId\": data.id, \"SuggestedPrice\": null, \"Price\": parseFloat(data.Price), \"Distance\": parseFloat(data.UserDistance) });\r\n var data = {\r\n \"JobId\": vm.broadcastTicketId,\r\n \"BIDDuration\": vm.TicketSelectedForAssistedSuggestion.BidDuration,\r\n \"MobiforceCommissionPercentage\": vm.TicketSelectedForAssistedSuggestion.MobiforceCommission,\r\n \"BroadcastType\": \"Route\",\r\n \"TechnicianSource\": 1,\r\n \"Users\": temp\r\n };\r\n if (data.Users.length > 0) {\r\n vm.showloading = true;\r\n CRMManualAssignationJobService.BroadCastBundlesforUser(loggedinUser, data, token).then(function (resp) { \r\n if (resp.status == 201) {\r\n vm.showSuccess('Success', \"Jobs Route Successfully\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.DisableRouteBroadcastButtons(false);\r\n $scope.hideoverlay();\r\n }, 2000);\r\n }\r\n else if (resp.status == 206) {\r\n vm.showFailure('Failed', resp.data.Message);\r\n vm.DisableRouteBroadcastButtons(false);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", \"Users Not Found\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n vm.showloading = false;\r\n });\r\n } else {\r\n vm.showFailure(\"Failed\", \"Please select users.\");\r\n $timeout(function () {\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n vm.DisableRouteBroadcastButtons(false);\r\n }, 2000);\r\n }\r\n\r\n}\r\n\r\nvm.UnbundleBJobs = function(bundleid){\r\n vm.unbundleTicketArray = [];\r\n if (bundleid) {\r\n vm.unbundleTicketArray.push(bundleid) \r\n }\r\n vm.confirmationMessage = 'Please confirm if you want to unbundle: ' + vm.unbundleTicketArray;\r\n confirmationModalInstance = $uibModal.open({\r\n templateUrl: 'unbundle.html',\r\n scope: $scope,\r\n backdrop: 'static'\r\n });\r\n}\r\n\r\nvm.UnBundleTkts = function () { \r\n CRMManualAssignationJobService.UnBundleJobs(loggedinUser, vm.unbundleTicketArray, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $timeout(function () {\r\n vm.FilterArray();\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues,textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize);\r\n vm.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues,PageIndex,PageSize); \r\n }, 1000); \r\n confirmationModalInstance.close(); \r\n vm.showSuccess(\"Success\", \"Job has been unbundled successfully\");\r\n }\r\n if (resp.status == 206) { \r\n vm.showFailure(\"Failed\", resp.data);\r\n vm.DisableBroadcastButtons(false); \r\n confirmationModalInstance.close();\r\n }\r\n });\r\n}\r\n\r\nvm.closeUnbundleModal = function () {\r\n confirmationModalInstance.close();\r\n}\r\n\r\n\r\nvm.GetAllBundledJobs = function(isCollapsed,bundleId){\r\n $scope.isCollapsed = !isCollapsed;\r\n $scope.activeRow = bundleId;\r\n vm.bundleJobId = bundleId;\r\n if(vm.bundleJobId){\r\n CRMManualAssignationJobService.GetAllBundledJobs(loggedinUser, vm.bundleJobId ,token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BundleTicketList=resp.data;\r\n }\r\n }, function () { \r\n });\r\n }\r\n}\r\n\r\nvm.Get360SkillSummary = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for(var i=0;i8?(user.displayName.substring(0, 8)+\"...\"):user.displayName;\r\n var locs = \"\";\r\n angular.forEach(user.Locations, function (l) {\r\n locs += l + \",\";\r\n });\r\n user.allLocations = locs.length > 0 ? locs.substring(0, locs.length - 1) : \"\";\r\n var skills = \"\";\r\n angular.forEach(user.SkillSet, function (s) {\r\n skills += s + \",\";\r\n });\r\n user.allSkills = skills.length > 0 ? skills.substring(0, skills.length - 1) : \"\";\r\n var workareas = \"\";\r\n angular.forEach(user.Locations, function (w) {\r\n workareas += w + \",\";\r\n });\r\n user.allWorkareas = workareas.length > 0 ? workareas.substring(0, workareas.length - 1) : \"\";\r\n }\r\n\r\n vm.getAllUser = function () {\r\n teamCardService.getAllUserByReportingPerson(loggedinUser,vm.filterRole, token).then(function (resp) {\r\n vm.users = resp.data;\r\n vm.imageServices(vm.users.Picture);\r\n // angular.forEach(vm.users, function (d) {\r\n // vm.preProcessUsers(d);\r\n // });\r\n // if (vm.users.length == 0) {\r\n // vm.client = 1;\r\n // } else {\r\n // vm.client = 3;\r\n // vm.userInfo = vm.users[userIndex];\r\n // }\r\n }, function () {\r\n //$log.log('not working');\r\n })\r\n }\r\n vm.getAllRole = function getAllRole() {\r\n CRMTeamFormCreationService.getAllRoleByUserId(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.RolesList = resp.data;\r\n // if(vm.RolesList){\r\n // vm.Role = vm.RolesList[0].Role;\r\n // vm.GetReportingToUser(vm.Role);\r\n // }\r\n \r\n }\r\n }\r\n })\r\n }\r\n vm.getAllRole();\r\n\r\n vm.getUserInfo = function (userId, loggedinUser) {\r\n TeamProfileService.getFixedUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n vm.userInfo = resp.data;\r\n vm.imageServices(vm.userInfo.Picture);\r\n vm.preProcessUsers(vm.userInfo);\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.getAllSkills = function () {\r\n TeamProfileService.getAllSkills().then(function (resp) {\r\n vm.skills = resp.data;\r\n for (var index = 0; index < vm.skills.length; index++) {\r\n skillsArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.getAllCircles = function (loggedinUser) {\r\n ProjectCreationService.GetAllCircles(loggedinUser).then(function (resp) {\r\n vm.circles = resp.data;\r\n for (var index = 0; index < vm.circles.length; index++) {\r\n circleArray.push({\r\n workArea: vm.circles.circle\r\n });\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n vm.UploadTeamCRM = function () {\r\n $state.go('index.bulkuploadCRMTeamMember', {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.AddTeamMember = function () {\r\n $state.go('index.CRMTeamFormCreation', {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileView = function (userid) {\r\n $state.go('index.TeamProfile', {\r\n userId: userid\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileData = function (userId) {\r\n vm.getUserInfo(userId, loggedinUser);\r\n vm.client = 3;\r\n }\r\n\r\n vm.filtermodal = function () {\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'Filter.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n\r\n\r\n vm.CloseModal = function () {\r\n ProjectModal.close();\r\n }\r\n $scope.selectedOption = '';\r\n vm.LunchSchedule = function () {\r\n UpdateLunch = $uibModal.open({\r\n templateUrl: 'LunchPopup.html',\r\n backdrop: 'static',\r\n\r\n scope: $scope\r\n });\r\n }\r\n vm.closeUpdateLunch = function () {\r\n UpdateLunch.close();\r\n }\r\n\r\n vm.editTeamMember = function (userId) {\r\n $state.go('index.CRMTeamEdit', {\r\n userId: userId\r\n });\r\n }\r\n vm.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.userClass_status = true;\r\n }\r\n $scope.userClass_status = true;\r\n vm.userSingle = function () {\r\n $scope.userClass_status = !$scope.userClass_status;\r\n $scope.myvalue = true;\r\n };\r\n $scope.close360View = function () {\r\n $scope.userClass_status = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n vm.Get360TeamProfileData = function (userId) {\r\n vm.userId = userId;\r\n DashboardService.Get360ProfileData(loggedinUser, userId, token).then(function (resp) {\r\n if (resp.data) {\r\n vm.userSingle();\r\n $scope.myvalue = false;\r\n }\r\n vm.teamdata = resp.data;\r\n vm.AvgRating = vm.teamdata.userProfile.AverageRating;\r\n vm.ReviewsList = vm.teamdata.userProfile.Reviews\r\n vm.teamdata.ratingStars = vm.getRatingStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.blankStars = vm.getBlankStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.avgratingStars = vm.getAvgRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.avgblankStars = vm.getAvgBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n if (vm.teamdata.userProfile.ContactNumber) {\r\n vm.teamdata.userProfile.ContactNumber = vm.teamdata.userProfile.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n\r\n if (vm.teamdata.userProfile.Reviews) {\r\n vm.teamdata.userProfile.Reviews.forEach(function (element, i) {\r\n vm.teamdata.userratingStars = vm.getUserRatingStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n vm.teamdata.userblankStars = vm.getUserBlankStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n element.arrayRating = vm.teamdata.userratingStars;\r\n element.blankRating = vm.teamdata.userblankStars;\r\n });\r\n }\r\n\r\n vm.TechnicianRating = Number(vm.teamdata.userProfile.Ratings.TechnicianRating).toFixed(1);\r\n $timeout(function () {\r\n displayTotals();\r\n }, 300);\r\n }, function () {\r\n })\r\n }\r\n \r\n vm.Get360TeamView = function(teamid){\r\n $state.go('index.Technician360view',{\r\n userId: teamid\r\n }, { reload: true });\r\n }\r\n\r\n\r\n $scope.totalWS = 0;\r\n $scope.wsPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function(userId) {\r\n $scope.wsPerPage = vm.userPageListCount;\r\n uPageSize = $scope.wsPerPage;\r\n $scope.WSTablePageChanged($scope.Userpagination.current);\r\n\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.wsersFilterArray(); \r\n vm.Get360WorkSummary(loggedinUser, token,userId, witemNames, witemValues, uPageIndex, uPageSize,wsSDate,wsEDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\n }\r\n\r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n if(witemNames != 'Search')\r\n {\r\n vm.wsersFilterArray();\r\n }\r\n\r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate,wsEDate,vm.OrderBy,vm.sorttype);\r\n\r\n };\r\n\r\n\r\n vm.wsersFilterArray = function()\r\n {\r\n witemNames=\"\";\r\n witemValues=\"\";\r\n\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(witemNames) \r\n {\r\n witemNames = witemNames + ',Search';\r\n witemValues = witemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n witemNames = 'Search';\r\n witemValues = vm.userNameSearch;\r\n } \r\n }\r\n\r\n if(vm.JobcountbyStatus)\r\n {\r\n if(witemNames) \r\n {\r\n witemNames = witemNames + ',Status';\r\n witemValues = witemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else\r\n {\r\n witemNames = 'Status';\r\n witemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.wsTicketList = resp.data.workSummaryData;\r\n $scope.totalWS = resp.data.WorkSummaryTotalCount;\r\n if (vm.wsTicketList.length < vm.userPageListCount)\r\n vm.wsListLength = $scope.totalWS;\r\n else\r\n vm.wsListLength = uPageIndex * vm.userPageListCount;\r\n if (uPageIndex == 1)\r\n vm.wspageindexCount = 1;\r\n else\r\n vm.wspageindexCount = (((uPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n vm.RedirectToConfiguration = function () {\r\n $state.go('index.CalendarManagement', { reload: true });\r\n }\r\n \r\n vm.Get360SkillSummary = function () {\r\n DashboardService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for(var i=0;ilTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback)\r\n .withButtons([{extend:'copy'},{extend:'csv', filename: 'CRM_Team_Members_List'},{extend:'print', title: 'CRM Team Members List' }]);\r\n\r\n function createdRow(row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n function rowCallback(nRow, aData, iDisplayIndex, iDisplayIndexFull) {\r\n $('td', nRow).unbind('click');\r\n $('td', nRow).bind('click', function () {\r\n $scope.$apply(function () {\r\n vm.ProfileData(aData.UserId);\r\n });\r\n });\r\n return nRow;\r\n }\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle((vm.accountConfig.AccountId == '380' || vm.accountConfig.AccountId == '383' || vm.accountConfig.AccountId == '390') && vm.Role == 'Service Center' \r\n ? '' \r\n : 'UserId').renderWith(function (data, type, full, meta) {\r\n if (data.Role != 'Field Engineer' && data.Role != 'Private Vendor' && data.Role != 'Service Center' && data.Role != 'Vendor Manager' && (vm.accountConfig.AccountId != '361' && vm.accountConfig.AccountId != '364' && vm.accountConfig.AccountId != '380' && vm.accountConfig.AccountId != '383' && vm.accountConfig.AccountId != '390')) {\r\n return '';\r\n }\r\n else if (data.Role != 'Field Engineer' && data.Role != 'Private Vendor' && data.Role != 'Service Center' && data.Role != 'Vendor Manager' && (vm.accountConfig.AccountId == '361' || vm.accountConfig.AccountId == '364' || vm.accountConfig.AccountId == '380' || vm.accountConfig.AccountId == '383' || vm.accountConfig.AccountId == '390')) {\r\n return '' + data.CustomUserId + '';\r\n }\r\n else if (data.Role == 'Service Center' && (vm.accountConfig.AccountId == '361' || vm.accountConfig.AccountId == '364' || vm.accountConfig.AccountId == '380' || vm.accountConfig.AccountId == '383' || vm.accountConfig.AccountId == '390')) {\r\n return '';\r\n }\r\n else if (vm.Role == 'Service Center' && (vm.accountid == '380' || vm.accountid == '383' || vm.accountid == '390')) {\r\n return '';\r\n }\r\n else {\r\n return '';\r\n }\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Name').renderWith(function (data, type, full, meta) {\r\n var address = '';\r\n if (data.Picture == null) {\r\n address = \"assets/images/patterns/photo1.png\";\r\n } else {\r\n MainService.GetImageBlob(loggedinUser, token, data.Picture).then(function (resp) {\r\n address = resp.data;\r\n });\r\n }\r\n if (data.Role == 'Service Center' && (vm.accountConfig.AccountId === '380' || vm.accountConfig.AccountId === '383' || vm.accountConfig.AccountId == '390')) {\r\n return '' + data.CompanyName + '';\r\n } else {\r\n return '' + data.FirstName + ' ' + data.LastName + '';\r\n }\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('ContactNumber').withTitle('Phone Number').notSortable(),\r\n DTColumnBuilder.newColumn('Role').withTitle('Role').notSortable(),\r\n DTColumnBuilder.newColumn('CurrentState').withTitle('State').notSortable(),\r\n DTColumnBuilder.newColumn('CurrentCity').withTitle('City').notSortable(),\r\n DTColumnBuilder.newColumn(null)\r\n .withTitle('Region')\r\n .notSortable()\r\n .renderWith(function (data, type, full) {\r\n return '
' + full.strListRegion + '
';\r\n }),\r\n DTColumnBuilder.newColumn(null)\r\n .withTitle('Sub-Region')\r\n .notSortable()\r\n .renderWith(function (data, type, full) {\r\n return '
' + full.strListSubRegion + '
';\r\n }),\r\n DTColumnBuilder.newColumn('CurrentPinCode').withTitle('Pin Code').notSortable(),\r\n ];\r\n if (vm.accountConfig.AccountId == '362') {\r\n vm.dtColumns.push(\r\n DTColumnBuilder.newColumn('VendorName').withTitle('Reporting To').notSortable(),\r\n DTColumnBuilder.newColumn('Rating').withTitle('Rating').notSortable(),\r\n DTColumnBuilder.newColumn('Expernice').withTitle('Experience').notSortable(),\r\n DTColumnBuilder.newColumn('AdharNo').withTitle('Adhaar Number').notSortable()\r\n );\r\n }\r\n\r\n if ((vm.accountConfig.AccountId == '380' || vm.accountConfig.AccountId == '383' || vm.accountConfig.AccountId == '390') && (vm.Role == 'Administrator' || vm.Role == 'Service Center')) {\r\n vm.dtColumns.push(\r\n DTColumnBuilder.newColumn('Password').withTitle('Password').notSortable()\r\n );\r\n }\r\n\r\n if (vm.Role != 'Service Center' && (vm.accountConfig.AccountId == '361' || vm.accountConfig.AccountId == '362' || vm.accountConfig.AccountId == '364')) {\r\n vm.dtColumns.push(\r\n DTColumnBuilder.newColumn('ReportingToName')\r\n .withTitle('Reporting To')\r\n .notSortable()\r\n .renderWith(function (data, type, full, meta) {\r\n var id = full.ReportingTo;\r\n return data + ' (' + id + ')';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full) {\r\n return '';\r\n })\r\n );\r\n }\r\n if (vm.Role == 'Administrator' && (vm.accountConfig.AccountId == '380' || vm.accountConfig.AccountId == '390' || vm.accountConfig.AccountId == '383')) {\r\n vm.dtColumns.push(\r\n DTColumnBuilder.newColumn(null)\r\n .withTitle('Action')\r\n .notSortable()\r\n .renderWith(function (data, type, full) {\r\n if (data.Role === 'Administrator') {\r\n return '';\r\n } else {\r\n return '';\r\n }\r\n })\r\n );\r\n }\r\n\r\n if (vm.Role !== 'Vendor Manager' && vm.Role !== 'Service Center' && vm.Role !== 'Administrator' && vm.Role !== 'Project Manager' && vm.Role !== 'Supervisor' && vm.Role !== 'Branch Service Manager' && vm.Role !== 'Regional Service Manager') {\r\n vm.dtColumns.push(\r\n DTColumnBuilder.newColumn('').withTitle('Account Name').notSortable().renderWith(function (data, type, full, meta) {\r\n if (full.TerritoryMappingModel) {\r\n vm.accNameLoac = [];\r\n vm.accIdLoac = [];\r\n angular.forEach(full.TerritoryMappingModel, function (d) {\r\n vm.accNameLoac.push(d.AccountName);\r\n });\r\n } else {\r\n vm.accNameLoac = '';\r\n }\r\n return '
' + vm.accNameLoac + '
';\r\n }),\r\n DTColumnBuilder.newColumn('').withTitle('Account Id').notSortable().renderWith(function (data, type, full, meta) {\r\n if (full.TerritoryMappingModel) {\r\n vm.accLoac = [];\r\n angular.forEach(full.TerritoryMappingModel, function (d) {\r\n vm.accLoac.push(d.AccountId);\r\n });\r\n } else {\r\n vm.accLoac = '';\r\n }\r\n return '
' + vm.accLoac + '
';\r\n })\r\n );\r\n }\r\n\r\n\r\n // vm.refreshTable = function () {\r\n // vm.dtInstance.reloadData();\r\n // };\r\n \r\n\r\n // $scope.$watchGroup(['vm.filterRole'], function (newValues, oldValues) {\r\n // if (newValues !== oldValues) {\r\n // vm.refreshTable();\r\n // }\r\n // });\r\n\r\n\r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n }\r\n});\nangular.module('inspinia').service('CRMTeamFormCreationService', function (ApiURL, AcessoriesURL,LocationURL,PublicApiURL,MMFCRMURL, $log, $http,$localStorage) {\r\n var url = ApiURL + '/api/User';\r\n\r\n this.getState = function (loggedInUserId,token,region) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n }\r\n });\r\n }\r\n\r\n this.GetTicketStatusForTerritory = function (loggedInUser, token) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetTicketStatusForTerritory';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n }\r\n \r\n \r\n this.CreateUser = function (userFormData, loggedinUser, token) {\r\n var url = ApiURL + '/api/User?reqUserId='+loggedinUser;\r\n return $http.post(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser \r\n }\r\n });\r\n }\r\n\r\n this.getAllRole = function (token) {\r\n var url = ApiURL + '/api/role';\r\n return $http.get(url, {\r\n 'Token': token, 'UserId':loggedinUser\r\n });\r\n }\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetRegion?userId=U370000000001\r\n this.GetRegion = function(loggedInUserId, token){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n this.GetTelecomCircle = function(loggedInUserId, token){\r\n var url = PublicApiURL + '/api/Location/GetTelecomCircles?userId='+ loggedInUserId;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n //https://test.mymobiforce.com/publicapi/api/Location/GetSubRegion?userId=U370000000001®ion=North\r\n this.GetSubRegion = function(loggedInUserId, token, region){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+region;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n this.GetCityBySubRegion = function(loggedInUserId, subRegion, token){\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+subRegion;\r\n return $http.get(url,{\r\n headers:{'Token':token, 'UserId':loggedInUserId}\r\n })\r\n }\r\n\r\n this.GetAllProductNames = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets/GetAllProductNames';\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n this.GetAllSkillsForProduct = function (ProductName,loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets/GetAllSkillsForProduct?ProductName=' + ProductName;\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\n\r\n this.getAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers:{'Token': token, 'UserId':loggedinUser}});\r\n }\r\n\r\nthis.getCountry = function (loggedinUser, token) {\r\n var url = PublicApiURL + '/api/Address/GetCountry?userId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\nthis.getAllState = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\nthis.getCities = function (loggedinUser,state,token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n});\r\n}\r\n\r\n this.getAllCity = function (loggedinUser,state, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n });\r\n }\r\n\r\n this.getAllPincode = function (city) {\r\n var url = LocationURL+'/api/Location/'+$localStorage.loggedinUser+'/'+city+'/GetPincodesByCity';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n //http://localhost:56749/api/User/Project%20Manager/GetReportingToUserByRole?reqUserId=saurabhgupta3371%40gmail.com\r\n\r\n this.GetReportingToUser = function(role, loggedinUser, token){\r\n var url = ApiURL + '/api/User/' + role + '/GetReportingToUserByRole?reqUserId=' + loggedinUser\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n // this.validateAllPincode = function (pin) {\r\n // var url = 'https://www.whizapi.com/api/v2/util/ui/in/indian-city-by-postal-code?project-app-key=pso222ywjvx996b93gd8wpp6&pin='+pin;\r\n // return $http.get(url, {\r\n // params: {}\r\n // });\r\n // }\r\n\r\n this.getAllReportingTo = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/User';\r\n return $http.get(url, {\r\n params: {userid: loggedinUser},\r\n headers: {'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n this.getUserData = function (userid, token) {\r\n return $http.get(url, {\r\n params: {UserId:userid},\r\n headers: {'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.updateUser = function (userFormData,loggedinUser, token) {\r\n var url = ApiURL + '/api/User/UpdateTeamUserDetails';\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser}\r\n });\r\n }\r\n //http://192.168.0.80:92/CoreAPI/api/Role/ByReqUserId?reqUserId=kanika.bansal%40innotiontech.com\r\n\r\n this.getAllRoleByUserId = function (userId, token) {\r\n var url = ApiURL + '/api/Role/ByReqUserId?reqUserId='+userId;\r\n return $http.get(url,{\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':userId}\r\n \r\n });\r\n }\r\n\r\n this.uploadProfilePic = function(loggedinUser, data, token, success, failure){\r\n $http.post(ApiURL + '/api/UploadImage', data, { \r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n \r\nthis.getAllAccounts = function (loggedInUserId,token) { \r\n var url = ApiURL+ '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedInUserId\r\n \r\n }\r\n });\r\n}\r\n\r\n//Accounts API\r\nthis.getAllAccountsConfigured = function (loggedinUser,token) { \r\n var url = ApiURL+ '/api/CentralHelpDesk/GetAllAccountHDConfig';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n}\r\n\r\n\r\n//https://product.mymobiforce.com/coreAPI/api/User/GetTeamUserDetails?UserId=U00000000413\r\nthis.getFixedUserInfo = function (userId,loggedInUser, token) {\r\n var url = ApiURL + '/api/User/GetTeamUserDetails?UserId='+ userId ;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n// http://localhost:56749/api/TerritoryMappingUser/GetStateByAccountIdAndRole?AccountId=114&Role=Administrator\r\nthis.getTerritoryStates = function (loggedInUser, token,AccountId,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetStateByAccountIdAndRole?AccountId='+ AccountId+ '&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n//http://localhost:56749/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId=144&State=Uttar%20Pradesh&Role=Administrator\r\nthis.getTerritoryCity = function (loggedInUser, token,AccountId,state,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetCityByAccountIdAndStateAndRole?AccountId='+ AccountId+'&State='+state+'&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n//https://upgrad.mymobiforce.com/coreapi/api/TerritoryMappingUser/GetPincodeByStateAndCityAndAccountIdAndRole?AccountId=144&State=Uttar%20Pradesh&City=Noida&Role=Administrator\r\nthis.getTerritoryPincodes = function (loggedInUser, token,AccountId,state,City,Role) {\r\n var url = ApiURL + '/api/TerritoryMappingUser/GetPincodeByStateAndCityAndAccountIdAndRole?AccountId='+ AccountId+'&State='+state+'&City='+City+'&Role='+ Role;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n \r\nthis.GetAllNotAllocatedWareHouse = function (loggedInUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllNotAllocatedWareHouse';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\nthis.GetItemBrandName = function (token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetItemBrandName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': $localStorage.loggedInUserId\r\n }\r\n });\r\n}\r\n\r\nthis.GetAllRegionsByRole = function (data,loggedInUser, token) {\r\n var url = MMFCRMURL + '/api/CRMZonalMapping/GetAllRegionsByRole';\r\n return $http.post(url,data,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n\r\nthis.GetAllAvailableRegion = function (loggedInUser, token) {\r\n var url = MMFCRMURL + '/api/CRMZonalMapping/GetAllAvailableRegion';\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\nthis.GetAllAvailableSubRegion = function (region,loggedInUser, token) {\r\n var url = MMFCRMURL + '/api/CRMZonalMapping/GetAllAvailableSubRegion?Region=' + region;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n })\r\n}\r\n\r\n});\r\n\nangular.module('inspinia').controller('CRMTeamFormCreationController', function (ProjectCreationService,ReferService, MainService, $state, $scope, $timeout, $stateParams, $filter, $log, $localStorage, CRMTeamFormCreationService, ServiceCenter_FormcreationService,TeamProfileService, toaster, $q, ImageUrl) {\r\n var vm = this;\r\n vm.isDisabled = false;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n var accountConfig = $localStorage.accountConfig;\r\n vm.accountId = $localStorage.accountConfig.AccountId;\r\n if ($localStorage.accountConfig) {\r\n if ($localStorage.accountConfig) {\r\n vm.EnableRegion = $localStorage.accountConfig.EnableRegion;\r\n }\r\n }else{\r\n vm.EnableRegion = false;\r\n }\r\n\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n vm.loggedinUserRole = $localStorage.loggedInUser_Role;\r\n\r\n //$log.log('Role=',vm.loggedinUserRole);\r\n angular.element(document).ready(function () {\r\n angular.element('ul[side-navigation]').find('a[ui-sref=\"index.TeamMemberForCRM\"]').parent().prop('class', 'active');\r\n // angular.element(\".chosen-select\").chosen();\r\n });\r\n\r\n ///Global variables goign to use for seeting page defaults.\r\n\r\n var userId_ForUpdate = $stateParams.userId;\r\n vm.saveAndNewFlag = false;\r\n vm.editMode = false;\r\n vm.address_option = 'Yes';\r\n vm.officeFormValidation = false;\r\n vm.isCollapsed = false;\r\n vm.isUserDetailCollapsed = false;\r\n vm.isOfficeUseCollapsed = true;\r\n vm.Role = '';\r\n vm.specialist = \"No\";\r\n vm.ReportingTo = '';\r\n vm.warehouseToBeAllocated = '';\r\n vm.AadhaarNumber = '';\r\n vm.Rating = '';\r\n vm.ExperienceInYears = '';\r\n vm.regionForRSM = [];\r\n vm.subRegionForBSM = [];\r\n vm.SubCity='';\r\n vm.allStates = [];\r\n //page binding models using\r\n vm.username = '';\r\n vm.gender = 'Male';\r\n vm.email = '';\r\n vm.phone_number = '';\r\n vm.last_name = '';\r\n vm.birth_date = moment();\r\n vm.father_name = '';\r\n vm.alternate_number = '';\r\n vm.workArea = '';\r\n vm.AccountName = '';\r\n vm.warehouseToBeAllocatedName = \"\";\r\n vm.company = '';\r\n vm.permanent_address_line1 = '';\r\n vm.permanent_state = '';\r\n vm.permanent_pincode = '';\r\n vm.permanent_address_line2 = '';\r\n vm.permanent_city = '';\r\n vm.present_address_line1 = '';\r\n vm.present_address_line2 = '';\r\n vm.present_state = '';\r\n vm.present_city = '';\r\n vm.present_pincode = '';\r\n vm.skill = '';\r\n vm.companyname = '';\r\n vm.brand = '';\r\n vm.expertise = '';\r\n vm.reportinToList = '';\r\n vm.workAreas = [];\r\n vm.CHDAccounts = [];\r\n vm.RemainingCHDAccounts = [];\r\n vm.SelectedAccount={};\r\n vm.showAction = true;\r\n // vm.multiPincode = []\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.LocationMapping = vm.getAccountConfigSetting('LocationMapping');\r\n console.log('vertical',vm.VerticalName);\r\n vm.MainRegion = '';\r\n vm.SubRegion = '';\r\n var today = new Date();\r\n var date = today.getFullYear() - 18;\r\n var age = (today.getMonth() + 1 + \"/\" + today.getDate() + \"/\" + date).toString();\r\n\r\n vm.maxDOB = new Date(age);\r\n vm.maxDOBStr = vm.maxDOB.toDateString();\r\n age = Date.parse(age);\r\n $scope.MaxDate = moment(age);\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.showEditList = false;\r\n vm.showEditLists = false;\r\n vm.isShow=true;\r\n \r\n getAllRole();\r\n\r\n function getAllRole() {\r\n CRMTeamFormCreationService.getAllRoleByUserId(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.RolesList = resp.data;\r\n if(vm.RolesList){\r\n vm.Role = vm.RolesList[0].Role;\r\n vm.GetReportingToUser(vm.Role);\r\n }\r\n \r\n }\r\n }\r\n })\r\n }\r\n var brandArray = [];\r\n vm.GetItemBrandName = function () {\r\n CRMTeamFormCreationService.GetItemBrandName(token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.BrandList = resp.data;\r\n for (var index = 0; index < vm.BrandList.length; index++) {\r\n brandArray.push({\r\n brand: vm.BrandList[index] // Correct reference\r\n });\r\n }\r\n }\r\n });\r\n };\r\n vm.GetItemBrandName();\r\n vm.checkMaxDOB = function () {\r\n if (vm.birth_date && !vm.birth_date._isAMomentObject) {\r\n var splittedDOB = vm.birth_date.split(\"/\");\r\n vm.birth_date = moment(new Date((splittedDOB[1] + \"/\" + splittedDOB[0] + \"/\" + splittedDOB[2]).toString()));\r\n }\r\n\r\n return (vm.maxDOB - vm.birth_date) < 0;\r\n }\r\n\r\n vm.GetReportingToUser = function (role) {\r\n vm.regionForRSM = [];\r\n vm.subRegionForBSM = [];\r\n vm.reportinToList=\"\";\r\n CRMTeamFormCreationService.GetReportingToUser(role, loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.reportinToList = resp.data;\r\n if(vm.Role == 'Field Engineer'){\r\n vm.ReportingTo = vm.reportinToList[0].UserId;\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.removeAddmoreEditList = function () { \r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n}\r\n \r\n // vm.selectedCountry = null;\r\n vm.countrylist = [\"INDIA\"];\r\n vm.selectedCountry = \"INDIA\";\r\n //get country of user\r\n\r\n // vm.getCountry = function () {\r\n // CRMTeamFormCreationService.getCountry(loggedinUser, token).then(function (resp) {\r\n // if(resp.status == 200){\r\n // // if(resp.data && resp.data.values.length>0){\r\n // vm.countrylist = [\"INDIA\"];\r\n // vm.selectedCountry = \"INDIA\";\r\n \r\n // //getAllCircles(loggedinUser);\r\n // // }\r\n // } \r\n // })\r\n // }\r\n\r\n\r\n vm.getAllState = function () {\r\n CRMTeamFormCreationService.getAllState(loggedinUser, token).then(function (resp) {\r\n if(resp.status == 200){\r\n if(resp.data && resp.data.length>0){\r\n vm.stateList = resp.data;\r\n if ($state.current.name == 'index.CRMTeamEdit') {\r\n vm.teamEditMode = $state.current.name;\r\n vm.editMode = true;\r\n \r\n if(userId_ForUpdate.startsWith(\"U\") || userId_ForUpdate.startsWith(\"F\")){ \r\n CRMTeamFormCreationService.getFixedUserInfo(userId_ForUpdate, loggedinUser, token).then(function (resp) {\r\n var userData = resp.data;\r\n vm.AccountName = userData.ServiceAccountIds;\r\n vm.username = userData.FirstName;\r\n vm.gender = userData.Gender;\r\n vm.email = userData.PersonalEmail;\r\n vm.CustomUserId = userData.CustomUserId;\r\n vm.phone_number = parseInt(userData.ContactNumber);\r\n vm.last_name = userData.LastName;\r\n vm.birth_date = moment(userData.DOB);\r\n vm.father_name = userData.FatherName;\r\n vm.ReportingTo = userData.ReportingTo;\r\n if(userData.AlternativeContactNumber){\r\n vm.alternate_number = parseInt(userData.AlternativeContactNumber);\r\n } \r\n vm.GetAllRegionsByRole(); \r\n if(userData.strListRegion){\r\n vm.regionForRSM = userData.strListRegion[0];\r\n }\r\n vm.GetAllAvailableSubRegion();\r\n vm.subRegionForBSM = userData.strListSubRegion; \r\n vm.specialist = userData.Specialist; \r\n vm.workArea = userData.Locations;\r\n //vm.company = userData.CompanyName;\r\n vm.userId = userData.UserId;\r\n vm.permanent_address_line1 = userData.PermanentAdd1;\r\n vm.permanent_address_line2 = userData.PermanentAdd2;\r\n vm.permanent_city = userData.PermanentCity.toUpperCase();\r\n vm.permanent_state = userData.PermanentState;\r\n vm.permanent_pincode = userData.PermanentPinCode;\r\n vm.present_address_line1 = userData.CurrentAdd1;\r\n vm.present_address_line2 = userData.CurrentAdd2;\r\n vm.present_city = userData.CurrentCity.toUpperCase();\r\n vm.present_state = userData.CurrentState;\r\n vm.warehouseToBeAllocated = userData.WareHouseId;\r\n if(vm.NotAllocatedWarehouses.length > 0){\r\n angular.forEach(vm.NotAllocatedWarehouses, function(d) {\r\n if(d.strWareHouseId === userData.WareHouseId) {\r\n vm.warehouseToBeAllocated = userData.WareHouseId;\r\n }\r\n });\r\n\r\n }\r\n else if(!vm.NotAllocatedWarehouses || vm.NotAllocatedWarehouses.length == 0){\r\n vm.warehouseToBeAllocatedName = userData.strWareHouseName; \r\n }\r\n vm.present_pincode = userData.CurrentPinCode;\r\n vm.skill = userData.SkillSet;\r\n vm.selectedSkills = userData.SkillSet;\r\n vm.productSkills = userData.SkillSet;\r\n vm.expertise = userData.Expertise;\r\n vm.Role = userData.Role;\r\n vm.brand = userData.BrandNameList ;\r\n vm.companyname = userData.CompanyName;\r\n vm.GetReportingToUser(vm.Role);\r\n vm.workAreas = userData.TerritoryConfigurations;\r\n // vm.profilePic = userData.Picture;\r\n vm.imageServices(userData.Picture);\r\n if (vm.EnableRegion) {\r\n vm.MainRegion = userData.Region;\r\n \r\n //GetSubRegionList\r\n vm.selectSubRegion(vm.MainRegion);\r\n vm.Region = userData.SubRegion;\r\n vm.selectCitySubRegion(vm.Region);\r\n vm.SubCity = userData.Locations;\r\n }else{\r\n vm.workArea = userData.Locations;\r\n }\r\n \r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n \r\n ///Get the workArea badges in edit mode \r\n var circleArray = [];\r\n if(vm.workArea){\r\n for (var pin = 0; pin < vm.workArea.length; pin++) {\r\n circleArray.push({\r\n workArea: vm.workArea\r\n });\r\n }\r\n }\r\n \r\n \r\n ///Check Present address is same as the Permanent Address.\r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n }, function () {\r\n \r\n });\r\n }\r\n else\r\n {\r\n TeamProfileService.getUserInfo(userId_ForUpdate, loggedinUser, token).then(function (resp) {\r\n var userData = resp.data;\r\n vm.username = userData.FirstName;\r\n vm.gender = userData.Gender;\r\n vm.email = userData.PersonalEmail;\r\n vm.phone_number = parseInt(userData.ContactNumber);\r\n vm.last_name = userData.LastName;\r\n vm.birth_date = moment(userData.DOB);\r\n vm.father_name = userData.FatherName;\r\n vm.alternate_number = parseInt(userData.AlternativeContactNumber);\r\n vm.specialist = userData.Specialist; \r\n //vm.workArea = userData.Locations;\r\n vm.warehouseToBeAllocated = userData.WareHouseId; \r\n vm.AadhaarNumber = userData.AadharNumber;\r\n vm.Rating = userData.Rating;\r\n vm.GetAllRegionsByRole();\r\n if(userData.strListRegion){\r\n vm.regionForRSM = userData.strListRegion[0];\r\n }\r\n vm.subRegionForBSM = userData.strListSubRegion;\r\n vm.company = userData.CompanyName;\r\n vm.userId = userData.UserId;\r\n vm.permanent_address_line1 = userData.PermanentAdd1;\r\n vm.permanent_address_line2 = userData.PermanentAdd2;\r\n vm.permanent_city = userData.PermanentCity.toUpperCase();\r\n vm.permanent_state = userData.PermanentState;\r\n vm.permanent_pincode = userData.PermanentPinCode;\r\n vm.present_address_line1 = userData.CurrentAdd1;\r\n vm.present_address_line2 = userData.CurrentAdd2;\r\n vm.present_city = userData.CurrentCity.toUpperCase();\r\n vm.present_state = userData.CurrentState;\r\n vm.present_pincode = userData.CurrentPinCode;\r\n vm.skill = userData.SkillSet;\r\n vm.selectedSkills = userData.SkillSet;\r\n vm.productSkills = userData.SkillSet;\r\n vm.expertise = userData.Expertise;\r\n vm.brand = userData.BrandNameList ;\r\n vm.companyname = userData.CompanyName;\r\n vm.Role = userData.Role;\r\n vm.CustomUserId = userData.CustomUserId;\r\n vm.GetReportingToUser(vm.Role);\r\n vm.ReportingTo = userData.ReportingTo;\r\n vm.profilePic = userData.Picture;\r\n if (vm.EnableRegion) {\r\n vm.MainRegion = userData.Region;\r\n \r\n //GetSubRegionList\r\n vm.selectSubRegion(vm.MainRegion);\r\n vm.Region = userData.SubRegion;\r\n vm.selectCitySubRegion(vm.Region);\r\n vm.SubCity = userData.Locations;\r\n }else{\r\n vm.workArea = userData.Locations;\r\n }\r\n \r\n //Get Id of state by its name \r\n for (var i = 0; i < vm.stateList.length; i++) {\r\n if (vm.stateList[i] == vm.permanent_state) {\r\n vm.permanent_state = vm.stateList[i];\r\n vm.selectState(vm.permanent_state);\r\n }\r\n if (vm.stateList[i] == vm.present_state) {\r\n vm.present_state = vm.stateList[i];\r\n vm.selectStateforPresent(vm.present_state);\r\n }\r\n }\r\n \r\n ///Get the workArea badges in edit mode \r\n var circleArray = [];\r\n for (var pin = 0; pin < vm.workArea.length; pin++) {\r\n circleArray.push({\r\n workArea: vm.workArea\r\n });\r\n }\r\n \r\n ///Check Present address is same as the Permanent Address.\r\n if ((vm.permanent_address_line1 == vm.present_address_line1) && (vm.permanent_address_line2 == vm.present_address_line2) && (vm.permanent_city == vm.present_city) &&\r\n (vm.permanent_state == vm.present_state) && (vm.permanent_pincode == vm.present_pincode)) {\r\n vm.address_option = 'Yes';\r\n } else {\r\n vm.address_option = 'No';\r\n }\r\n }, function () {\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 vm.getAllState();\r\n \r\n\r\n vm.GetInfoPinCodes = function () {\r\n ServiceCenter_FormcreationService.GetAllPinCodes(vm.permanent_state, vm.permanent_city,loggedinUser,token).then(function (resp) {\r\n vm.AddressallPincodes = resp.data;\r\n if (resp.data) {\r\n var citypincodeArray = [];\r\n citypincodeArray.push({\r\n city: state\r\n });\r\n vm.cityListForPincode = citypincodeArray;\r\n }\r\n }, function () {\r\n \r\n });\r\n }\r\n\r\n // vm.getCountry();\r\n\r\n $scope.modelOptions = {\r\n getterSetter: true\r\n };\r\n\r\n\r\n\r\n vm.getProfilePic = function(pic){\r\n return ImageUrl+\"/\"+vm.profilePic;\r\n }\r\n\r\n vm.changeFile = function(selector){\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n\r\n $scope.uploadImageFile = function(files){\r\n var file = files.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = loggedinUser+\"_ProfilePic_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if(file.type.indexOf(\"image/jpg\")>=0 || file.type.indexOf(\"image/png\")>=0 \r\n || file.type.indexOf(\"image/bmp\")>=0 || file.type.indexOf(\"image/jpeg\")>=0){\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n CRMTeamFormCreationService.uploadProfilePic(loggedinUser, data, token, function(res){\r\n if(res && res.status==201 && res.data){\r\n vm.profilePic = filename;\r\n vm.imageServices(filename);\r\n }\r\n }, function(err){\r\n vm.showFailure(\"Failed\", err.data);\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n }\r\n vm.imageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function() {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n }\r\n vm.imageServices(vm.profileImg);\r\n\r\n ///Saving User function \r\n vm.saveUser = function () {\r\n vm.isDisabled = true;\r\n if (vm.signup_form.$valid) {\r\n if (vm.address_option == 'Yes') {\r\n vm.present_address_line1 = vm.permanent_address_line1;\r\n vm.present_address_line2 = vm.permanent_address_line2;\r\n vm.present_state = vm.permanent_state;\r\n vm.present_city = vm.permanent_city;\r\n vm.present_pincode = vm.permanent_pincode;\r\n }\r\n \r\n var workArea = '';\r\n var skill = '';\r\n if((vm.loggedinUserRole != \"Dispatch Manager\") && (vm.loggedinUserRole != \"OnBoarding Manager\") && (vm.loggedinUserRole != \"Dispatch Team Lead\")&& (vm.loggedinUserRole != \"OnBoarding Team Lead\") && (vm.loggedinUserRole != \"Dispatch Supervisor\")){ \r\n workArea = vm.workArea;\r\n if(vm.Role == 'Service Center'){\r\n skill = vm.selectedSkills;\r\n }\r\n else{\r\n skill = vm.skill;\r\n }\r\n /*for (var index = 0; index < vm.workArea.length; index++) {\r\n if (index == (vm.workArea.length - 1)) {\r\n workArea = workArea + vm.workArea[index];\r\n continue;\r\n }\r\n workArea = workArea + vm.workArea[index] + ',';\r\n } \r\n for (var skillindex = 0; skillindex < vm.skill.length; skillindex++) {\r\n if (skillindex == (vm.skills.length - 1)) {\r\n skill = skill + vm.skill[skillindex];\r\n vm.selectExpertise(skill);\r\n continue;\r\n }\r\n skill = skill + vm.skill[skillindex] + ',';\r\n vm.selectExpertise(skill);\r\n }*/\r\n } \r\n if(vm.Role == 'Ware House Manager'){\r\n vm.warehouseToBeAllocated = vm.warehouseToBeAllocated;\r\n }\r\n else{\r\n vm.warehouseToBeAllocated = '';\r\n }\r\n\r\n if(vm.regionForRSM.length > 0){\r\n vm.regionForRSM = [vm.regionForRSM];\r\n }\r\n ///model to send for creating user \r\n var userFormData = { \r\n \"UserId\": vm.userId,\r\n \"FirstName\": vm.username,\r\n \"LastName\": vm.last_name,\r\n \"Gender\": vm.gender,\r\n \"DOB\": moment(vm.birth_date, 'DD/MM/YYYY').format('YYYY-MM-DDTHH:mm:ss.SSSZ'), \r\n \"PersonalEmail\": vm.email,\r\n \"ContactNumber\": vm.phone_number,\r\n \"AlternativeContactNumber\": vm.alternate_number,\r\n // \"CompanyName\": vm.company,\r\n \"Locations\": workArea,\r\n \"PermanentAdd1\": vm.permanent_address_line1,\r\n \"PermanentAdd2\": vm.permanent_address_line2,\r\n \"PermanentState\": vm.permanent_state,\r\n \"PermanentCity\": vm.permanent_city,\r\n \"PermanentPincode\": vm.permanent_pincode,\r\n \"CurrentAdd1\": vm.present_address_line1,\r\n \"CurrentAdd2\": vm.present_address_line2,\r\n \"CurrentState\": vm.present_state,\r\n \"CurrentCity\": vm.present_city,\r\n \"CurrentPincode\": vm.present_pincode,\r\n \"SkillSet\": skill,\r\n \"Expertise\": vm.expertise,\r\n \"ReportingTo\": '',\r\n \"Role\": '',\r\n \"Picture\":vm.profilePic,\r\n \"TerritoryConfigurations\":vm.workAreas,\r\n \"Specialist\":vm.specialist,\r\n \"WareHouseId\":vm.warehouseToBeAllocated,\r\n \"CompanyName\":vm.companyname,\r\n \"BrandName\": vm.brand,\r\n \"AadharNumber\":vm.AadhaarNumber,\r\n \"ExperienceInYears\":vm.ExperienceInYears,\r\n \"Rating\":vm.Rating,\r\n \"strListRegion\": vm.regionForRSM,\r\n \"strListSubRegion\":vm.subRegionForBSM,\r\n \"CustomUserId\" : vm.CustomUserId\r\n }\r\n if (vm.EnableRegion) {\r\n userFormData.Region = vm.MainRegion;\r\n \r\n var workArea = '';\r\n for (var index = 0; index < vm.SubCity.length; index++) {\r\n if (index == (vm.SubCity.length - 1)) {\r\n workArea = workArea + vm.SubCity[index];\r\n continue;\r\n }\r\n workArea = workArea + vm.SubCity[index] + ',';\r\n }\r\n userFormData.Locations = workArea;\r\n userFormData.SubRegion = vm.Region;\r\n }\r\n\r\n \r\n if (vm.loggedinUserRole == 'Administrator' || vm.loggedinUserRole == 'Project Manager' || vm.loggedinUserRole == 'Supervisor' || vm.loggedinUserRole == 'Vendor Manager' || vm.loggedinUserRole == 'Service Center'|| vm.loggedinUserRole == 'SuperAdministrator' || vm.loggedinUserRole == 'OnBoarding Manager' || vm.loggedinUserRole == 'Account Manager' || vm.loggedinUserRole == 'OnBoarding Supervisor' || vm.loggedinUserRole == 'Operation Manager' || vm.loggedinUserRole == 'Operation Supervisor' || vm.loggedinUserRole == 'Higher Management'\r\n || vm.loggedinUserRole == 'Dispatch Manager' || vm.loggedinUserRole == 'Dispatch Supervisor' || vm.loggedinUserRole == 'Dispatch Team Lead'|| vm.loggedinUserRole == 'Freelancer Dispatcher'|| vm.loggedinUserRole == 'OnBoarding Team Lead') {\r\n userFormData.ReportingTo = vm.ReportingTo;\r\n userFormData.Role = vm.Role;\r\n }\r\n // else if(vm.loggedinUserRole == 'Supervisor'){\r\n // userFormData.ReportingTo = loggedinUser;\r\n // userFormData.Role = 'Field Engineer';\r\n // }\r\n\r\n \r\n\r\n if((vm.email==null || vm.email=='') && (vm.phone_number==null || vm.phone_number=='')){\r\n vm.showFailure(\"Failed\", \"Please provide email id or mobile number\");\r\n vm.isDisabled = false;\r\n } else{\r\n // Submit as normal\r\n if (vm.editMode) {\r\n CRMTeamFormCreationService.updateUser(userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess(\"Success\", \"User Updated Successfully\");\r\n vm.isDisabled = false;\r\n $timeout(function () {\r\n // $state.reload();\r\n $state.go('index.TeamMemberForCRM', {\r\n reload: true\r\n });\r\n }, 2000);\r\n }\r\n else{\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n \r\n }, function () {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"Failed\", \"Unable to update user\");\r\n })\r\n } else {\r\n\r\n userFormData.UserId = '';\r\n CRMTeamFormCreationService.updateUser(userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 201) {\r\n vm.showSuccess(\"User Creation Status\", \"User created successfully\");\r\n vm.isDisabled = false;\r\n // $state.reload();\r\n $timeout(function () {\r\n clearFormFields();\r\n $state.go('index.TeamMemberForCRM', {\r\n reload: true\r\n });\r\n }, 2000); \r\n } else if (resp.data.ErrorCode == 104) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", resp.data.Message);\r\n } else if(resp.data && resp.data.Message) {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", resp.data.Message);\r\n } else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n vm.isDisabled = false;\r\n }, function (error) {\r\n vm.isDisabled = false;\r\n if (error.data.ErrorCode == 104) {\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n else {\r\n vm.isDisabled = false;\r\n vm.showFailure(\"User Creation Status\", \"Unable to create user, server is not responding correctly.\");\r\n }\r\n }\r\n );\r\n }\r\n }\r\n } else {\r\n vm.signup_form.submitted = true;\r\n vm.isDisabled = false;\r\n }\r\n }\r\n\r\n vm.getAccounts = function () {\r\n CRMTeamFormCreationService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data && resp.status==200) { \r\n vm.accounts = resp.data;\r\n } \r\n }, function () { \r\n });\r\n } \r\n vm.getAccounts();\r\n\r\n function clearFormFields() {\r\n vm.username = '';\r\n vm.gender = 'Male';\r\n vm.address = '';\r\n vm.email = '';\r\n vm.phone_number = '';\r\n vm.last_name = '';\r\n // vm.birth_date = '';\r\n vm.cores_address = '';\r\n vm.father_name = '';\r\n vm.alternate_number = '';\r\n vm.workArea = '';\r\n vm.city = '';\r\n // vm.reporting_to = '';\r\n vm.state = '';\r\n // vm.role = '';\r\n vm.skill = '';\r\n vm.selectedSkills = [];\r\n vm.expertise = '';\r\n vm.saveAndNewFlag = false;\r\n }\r\n\r\n var skillsArray = [];\r\n vm.getAllSkill = function () {\r\n CRMTeamFormCreationService.getAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skills = resp.data; \r\n for (var index = 0; index < vm.skills.length; index++) { \r\n skillsArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n }\r\n }); \r\n }\r\n\r\n vm.selectExpertise = function (skill) {\r\n // CRMTeamFormCreationService.getAllSkills().then(function (resp) {\r\n // vm.expertiseList = resp.data;\r\n // vm.expertiseList = [];\r\n if (!vm.skills) {\r\n var expertiseArray = [];\r\n expertiseArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n vm.expertiseList = expertiseArray;\r\n }\r\n }\r\n\r\n vm.selectedProduct = \"\";\r\n vm.selectedSkills = [];\r\n vm.ProductsList = [];\r\n\r\n vm.GetAllProductNames = function () {\r\n CRMTeamFormCreationService.GetAllProductNames(loggedinUser, token).then(function (resp) {\r\n vm.ProductsList = resp.data;\r\n }); \r\n }\r\n\r\n vm.GetAllProductNames();\r\n\r\n vm.GetAllSkillsForProduct = function () {\r\n if (vm.selectedProduct) {\r\n CRMTeamFormCreationService.GetAllSkillsForProduct(vm.selectedProduct, loggedinUser, token).then(function (resp) {\r\n vm.productSkills = resp.data;\r\n \r\n // Merge selected skills with the new product skills\r\n var allSkills = vm.productSkills.concat(vm.selectedSkills.filter(function(skill) {\r\n return !vm.productSkills.includes(skill);\r\n }));\r\n\r\n vm.productSkills = allSkills;\r\n })\r\n } else {\r\n vm.productSkills = [];\r\n } \r\n }\r\n\r\n ///get all the circles through api\r\n function getAllCircles() {\r\n vm.circles = [];\r\n vm.CircleList=[];\r\n vm.MainRegionList = '';\r\n if (vm.EnableRegion) {\r\n CRMTeamFormCreationService.GetRegion(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.MainRegionList = resp.data;\r\n $log.log('RegionList',vm.RegionList)\r\n }\r\n }\r\n })\r\n }else if (vm.LocationMapping == 'Circle') {\r\n CRMTeamFormCreationService.GetTelecomCircle(loggedinUser,token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.values.length>0) {\r\n vm.CircleList = resp.data.values;\r\n \r\n }\r\n }\r\n })\r\n }else{\r\n\r\n CRMTeamFormCreationService.getAllState(loggedinUser, token).then(function(resp){\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.circles = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n \r\n }\r\n\r\n ///Executes when the user select the state\r\n vm.selectState = function (state) {\r\n var Getstate = state;\r\n CRMTeamFormCreationService.getCities(loggedinUser,Getstate,token).then(function (resp) {\r\n vm.cityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n \r\n vm.selectSubRegion = function(region){\r\n \r\n CRMTeamFormCreationService.GetSubRegion(loggedinUser,token,region).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.SubRegionList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n vm.selectCitySubRegion = function(Subregion){\r\n \r\n CRMTeamFormCreationService.GetCityBySubRegion(loggedinUser,Subregion,token).then(function(resp){\r\n if (resp.status==200) {\r\n if (resp.data && resp.data.length>0) {\r\n vm.SubCityList = resp.data;\r\n }\r\n }\r\n })\r\n }\r\n\r\n vm.selectStateforPresent = function (state) { \r\n var Getstate = state;\r\n CRMTeamFormCreationService.getCities(loggedinUser,Getstate,token).then(function (resp) {\r\n vm.presentcityList = resp.data;\r\n if (!resp.data) {\r\n var cityArray = [];\r\n cityArray.push({\r\n city: state\r\n });\r\n vm.cityList = cityArray;\r\n }\r\n }, function () {\r\n\r\n });\r\n }\r\n\r\n //state \r\n vm.getStateList = function (region) {\r\n CRMTeamFormCreationService.getState(loggedinUser, token, region).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.allStates = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n ///Executes when the user select the city\r\n vm.selectCity = function (city) {\r\n CRMTeamFormCreationService.getAllPincode(city).then(function (resp) {\r\n vm.pincodeList = resp.data;\r\n if (!resp.data) {\r\n var pincodeArray = [];\r\n pincodeArray.push({\r\n pincode: city\r\n });\r\n vm.pincodeList = pincodeArray;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.selectCityforPresent = function (loggedinUser, city) {\r\n CRMTeamFormCreationService.getAllPincode(loggedinUser, city.ID).then(function (resp) {\r\n vm.presentpincodeList = resp.data;\r\n if (!resp.data) {\r\n var pincodeArray = [];\r\n pincodeArray.push({\r\n pincode: city\r\n });\r\n vm.pincodeList = pincodeArray;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.removeAccountDetail = function (index) {\r\n vm.workAreas.splice(index,1); \r\n vm.getAllHDAccounts(); \r\n }\r\n\r\n vm.EditData=function(index){\r\n vm.SelectedAccount = vm.workAreas[index]; \r\n vm.territoryStates(vm.SelectedAccount.AccountId);\r\n vm.selectedStateForTerritory(vm.SelectedAccount.State);\r\n vm.selectedCityForTerritory(vm.SelectedAccount.City); \r\n }\r\n\r\n vm.AccountChange=function (){ \r\n for (var i = 0; i < vm.RemainingCHDAccounts.length; i++) {\r\n var Acc = vm.RemainingCHDAccounts[i];\r\n if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n vm.SelectedAccount.AccountId = Acc.AccountId;\r\n // vm.SelectedAccount = Acc; \r\n // break;\r\n }\r\n }\r\n vm.territoryStates(vm.SelectedAccount.AccountId);\r\n }\r\n vm.territoryStates = function (AccountId) {\r\n vm.AccountIDforTerritory = AccountId;\r\n CRMTeamFormCreationService.getTerritoryStates(loggedinUser, token,AccountId,vm.Role).then(function(resp) {\r\n vm.stateListTerritory = resp.data;\r\n if(resp.status == 200) {\r\n // vm.territoryCity();\r\n }\r\n })\r\n }\r\n\r\n vm.selectedStateForTerritory = function (state) {\r\n vm.territoryCity(state,vm.AccountIDforTerritory);\r\n }\r\n vm.territoryCity = function (state,AccountId) {\r\n vm.StateForTerritoryCity = state;\r\n CRMTeamFormCreationService.getTerritoryCity(loggedinUser, token,AccountId,state,vm.Role).then(function(resp) {\r\n vm.cityListTerritory = resp.data;\r\n if(resp.status == 200) {\r\n \r\n\r\n }\r\n })\r\n }\r\n\r\n vm.selectedCityForTerritory = function (City) {\r\n vm.territoryPincodes(City);\r\n }\r\n vm.uniPin = [];\r\n vm.territoryPincodes = function (City) {\r\n CRMTeamFormCreationService.getTerritoryPincodes(loggedinUser, token,vm.AccountIDforTerritory,vm.StateForTerritoryCity,City,vm.Role).then(function(resp) {\r\n // if(resp.status == 200) {\r\n vm.pinCodeListTerritory = resp.data;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n var Acc = vm.workAreas[i];\r\n if((Acc.City == City) && (Acc.AccountId ==vm.AccountIDforTerritory) && (Acc.State == vm.StateForTerritoryCity)) {\r\n for (var j = 0; j < vm.pinCodeListTerritory.length; j++) { \r\n var pinCodeUnique = vm.pinCodeListTerritory[j];\r\n for (var k = 0; k < Acc.PinCode.length; k++) { \r\n if( pinCodeUnique == Acc.PinCode[k]) {\r\n vm.pinCodeListTerritory.splice(j,1);\r\n // break; \r\n }\r\n }\r\n \r\n }\r\n }\r\n }\r\n // }\r\n })\r\n }\r\n\r\n vm.addMoreAccount = function(){\r\n vm.SelectedAccount=[]; \r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n var Acc = vm.workAreas[i];\r\n for (var j = 0; j < vm.RemainingCHDAccounts.length; j++) { \r\n // console.log('acc = ' + Acc.AccountId + \" vm.RemainingCHDAccounts[j].AccountId \" + vm.RemainingCHDAccounts[j].AccountId + 'len ' + j) \r\n if(Acc.AccountId == vm.RemainingCHDAccounts[j].AccountId ) {\r\n // vm.RemainingCHDAccounts.splice(j,1); \r\n //break; \r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n //CHDAllaccounts\r\n vm.getAllHDAccounts = function ( ) {\r\n CRMTeamFormCreationService.getAllAccountsConfigured(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data){ \r\n if(resp.status==200){\r\n vm.CHDAccounts = resp.data;\r\n vm.RemainingCHDAccounts = vm.CHDAccounts;\r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n\r\n vm.UpdateAllHDAccountConfig = function(index){ \r\n vm.showAction = true; \r\n var checkAccount = false;\r\n for (var i = 0; i < vm.workAreas.length; i++) {\r\n if(vm.SelectedAccount.PinCode == undefined) {\r\n vm.showFailure(\"Failed\", \"Please add Account details with Locations\");\r\n vm.workAreas[index].edit = true;\r\n }\r\n // vm.workAreas[i] == vm.SelectedAccount;\r\n // vm.workAreas[i].AccountSkillSet = vm.SelectedSkills;\r\n // vm.workAreas[i].AccountLocations = vm.SelectedLocations;\r\n // var Acc = vm.workAreas[i];\r\n // if(Acc.AccountName == vm.SelectedAccount.AccountName ) {\r\n // vm.workAreas[i] == vm.SelectedAccount;\r\n // checkAccount = true;\r\n // break;\r\n // }\r\n }\r\n if(checkAccount == false && index == undefined) { \r\n vm.SelectedAccountObj = Object.assign({}, vm.SelectedAccount); \r\n if(vm.SelectedAccountObj.AccountName && vm.SelectedAccountObj.State && vm.SelectedAccountObj.City && vm.SelectedAccountObj.PinCode) {\r\n vm.workAreas.push(vm.SelectedAccountObj);\r\n } \r\n else {\r\n vm.showFailure(\"Failed\", \"Please add Account details with Locations\");\r\n vm.workAreas[i].edit = true;\r\n \r\n } \r\n \r\n }\r\n else {\r\n var Acc = vm.workAreas[i];\r\n }\r\n vm.showEditList = false; \r\n }\r\n\r\n vm.getTicketStatus = function () {\r\n CRMTeamFormCreationService.GetTicketStatusForTerritory(loggedinUser, token).then(function(resp) {\r\n vm.statusList = resp.data;\r\n })\r\n }\r\n\r\n vm.GetAllNotAllocatedWareHouse = function ( ) {\r\n CRMTeamFormCreationService.GetAllNotAllocatedWareHouse(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data){ \r\n if(resp.status==200){\r\n vm.NotAllocatedWarehouses = resp.data;\r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n\r\n vm.AllAvailableRegionList = [];\r\n vm.regionForRSM = \"\";\r\n // vm.GetAllAvailableRegion = function ( ) {\r\n // CRMTeamFormCreationService.GetAllAvailableRegion(loggedinUser, token).then(function (resp) { \r\n // if (resp && resp.data){ \r\n // if(resp.status==200){\r\n // vm.AllAvailableRegionList = resp.data;\r\n // }\r\n // } \r\n // }, function () { \r\n // });\r\n // }\r\n\r\n vm.GetAllRegionsByRole = function ( ) {\r\n var data = {\r\n \"ReportingToUserId\": vm.ReportingTo\r\n }\r\n CRMTeamFormCreationService.GetAllRegionsByRole(data,loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data){ \r\n if(resp.status==200){\r\n vm.AllAvailableRegionList = resp.data;\r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n\r\n vm.GetAllAvailableSubRegion = function ( ) {\r\n CRMTeamFormCreationService.GetAllAvailableSubRegion(vm.regionForRSM,loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data){ \r\n if(resp.status==200){\r\n vm.AllAvailableSubRegionList = resp.data;\r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n\r\n vm.checkIftheRegionIsAvailable = function(){\r\n if(vm.Role == 'Regional Service Manager'){\r\n angular.forEach(vm.AllAvailableRegionList, function(d) {\r\n if(d.Region === vm.regionForRSM) {\r\n if(!d.IsAvailable){\r\n var confirmation = confirm(\"This region is already assigned to \" + d.UserName +'('+ d.UserId + ')'+ \". Do you still want to assign this region?\");\r\n if(!confirmation) {\r\n vm.regionForRSM = \"\";\r\n }\r\n }\r\n else{\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n \r\n vm.checkIftheSubRegionIsAvailable = function() {\r\n angular.forEach(vm.subRegionForBSM, function(selectedSubRegion, index) {\r\n angular.forEach(vm.AllAvailableSubRegionList, function(d) {\r\n if (d.SubRegion === selectedSubRegion) {\r\n if (!d.IsAvailable) {\r\n var confirmation = confirm(\"This sub-region is already assigned to \" + d.UserName +'('+ d.UserId + ')'+ \". Do you still want to assign this sub-region?\");\r\n if (!confirmation) {\r\n vm.subRegionForBSM.splice(index, 1);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n };\r\n \r\n\r\n // vm.GetAllAvailableRegion();\r\n vm.GetAllNotAllocatedWareHouse();\r\n vm.getAllHDAccounts(); \r\n vm.getAllSkill();\r\n vm.getStateList(\"INDIA\");\r\n vm.getTicketStatus();\r\n }\r\n});\r\n\nangular.module('inspinia').service('BrandProductMasterCreationService', function (ApiURL, MMFCRMURL, AcessoriesURL, $http) {\r\n\r\n\tthis.GetAllBrandsMaster = function (loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllBrandsMaster';\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllActiveBrandsMaster = function (loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllActiveBrandsMaster';\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\tthis.CreateBrandsMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/CreateBrandsMaster';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.UpdateBrandsMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/UpdateBrandsMaster';\r\n\t\treturn $http.put(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllProductGroupMaster = function (loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllProductGroupMaster';\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllActiveProductGroupMaster = function (loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllActiveProductGroupMaster';\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\tthis.CreateProductGroupMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/CreateProductGroupMaster';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.UpdateProductGroupMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/UpdateProductGroupMaster';\r\n\t\treturn $http.put(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllProductMaster = function (ProductGroupName, loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllProductMaster?productGroupName=' + ProductGroupName;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllActiveProductMaster = function (ProductGroupName, loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllActiveProductMaster?productGroupName=' + ProductGroupName;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\tthis.CreateProductMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/CreateProductMaster';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.UpdateProductMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/UpdateProductMaster';\r\n\t\treturn $http.put(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.CreateProductDefectMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/CreateProductDefectMaster';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.UpdateProductDefectMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/UpdateProductDefectMaster';\r\n\t\treturn $http.put(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllProductDefectMaster = function (ProductGroupName, loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllProductDefectMaster?productGroupName=' + ProductGroupName;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllActiveProductDefectMaster = function (ProductGroupName, loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllActiveProductDefectMaster?productGroupName=' + ProductGroupName;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllActiveProductWarrantyMaster = function (data,loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllActiveProductWarrantyMaster';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\tthis.CreateBrandProductMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/CreateBrandProductMaster';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.UpdateBrandProductMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/UpdateBrandProductMaster';\r\n\t\treturn $http.put(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.CreateProductWarrantyMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/CreateProductWarrantyMaster';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.UpdateProductWarrantyMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/UpdateProductWarrantyMaster';\r\n\t\treturn $http.put(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllActiveProductModelMaster = function (ProductName, loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllActiveProductModelMaster?productName=' + ProductName;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\t// this.GetAllActiveModelMaster = function (loggedinUser, token) {\r\n\t// \tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllActiveBrandsMaster';\r\n\t// \treturn $http.get(url, {\r\n\t// \t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t// \t});\r\n\t// }\r\n\r\n\tthis.CreateProductModelMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/CreateProductModelMaster';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.UpdateProductModelMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/UpdateProductModelMaster';\r\n\t\treturn $http.put(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tthis.CreateAlternateParts = function (data, loggedInUser, token) {\r\n\t\tvar url = AcessoriesURL + '/api/MMFPart/CreateAlternateParts';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tthis.GetAllModelNo = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetModelNo';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllAlternateParts = function (data,loggedinUser, token) {\r\n\t\tvar url = AcessoriesURL + '/api/MMFPart/GetAllAlternateParts';\r\n\t\treturn $http.post(url,data, {\r\n\t\t\theaders: { 'Content-Type': 'application/json','Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllBrandProductMaster = function (data,loggedinUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMBrandProductMaster/GetAllBrandProductMaster';\r\n\t\treturn $http.post(url,data, {\r\n\t\t\theaders: { 'Token': token, 'UserId': loggedinUser }\r\n\t\t});\r\n\t}\r\n\r\n\tthis.getAllSkills = function (loggedInUser, token) {\r\n\t\tvar url = ApiURL + '/api/SkillSets?reqUserId=' + loggedInUser;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUser }\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllVisibleMasterParts = function (data,loggedInUserId, token) {\r\n var url = AcessoriesURL + '/api/MMFMasterInventory/GetAllVisibleMasterParts';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUserId\r\n }\r\n });\r\n }\r\n\tthis.CreateSubRegionMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMZonalMapping/CreateSubRegionMaster';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tthis.GetAllSubRegion = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMZonalMapping/GetAllSubRegion';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.GetAllAvailableSubRegion = function (region, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMZonalMapping/GetAllAvailableSubRegion?Region=' + region;\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUser }\r\n\t\t})\r\n\t}\r\n\r\n\tthis.GetAllSubRegionForMapping = function (loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMZonalMapping/GetAllSubRegionForMapping';\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedInUser }\r\n\t\t})\r\n\t}\r\n\r\n\tthis.CreateRegionMaster = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMZonalMapping/CreateRegionMaster';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tthis.GetAllRegions = function (data, loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMZonalMapping/GetAllRegions';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tthis.GetAllAvailableRegion = function (loggedInUser, token) {\r\n\t\tvar url = MMFCRMURL + '/api/CRMZonalMapping/GetAllAvailableRegion';\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t'Token': token,\r\n\t\t\t\t'UserId': loggedInUser\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t // this.RemoveSubRegion = function(data,loggedInUser,token){\r\n // var url=MMFCRMURL+'/api/CRMZonalMapping/RemoveSubRegion';\r\n // return $http.delete(url,data,{\r\n // headers:{'Content-Type':'application/json','token':token, 'UserId':loggedInUser}\r\n // })\r\n // }\r\n\r\n this.RemoveSubRegion = function(data,loginUserId, token){\r\n return $http({\r\n method: 'DELETE',\r\n url: MMFCRMURL + '/api/CRMZonalMapping/RemoveSubRegion',\r\n data: data,\r\n headers: {\r\n 'Content-type': 'application/json', 'token':token, 'UserId':loginUserId\r\n },\r\n })\r\n }\r\n this.RemoveRegion = function(data,loginUserId, token){\r\n return $http({\r\n method: 'DELETE',\r\n url: MMFCRMURL + '/api/CRMZonalMapping/RemoveRegion',\r\n\t data: data,\r\n headers: {\r\n 'Content-type': 'application/json', 'token':token, 'UserId':loginUserId\r\n },\r\n\t\r\n })\r\n }\r\n});\nangular.module('inspinia').controller('BrandProductMasterCreationController', function ($window, BrandProductMasterCreationService,CustomerCRMListService,InventoryItemListService, InventoryCartService,$timeout,ReferService, $rootScope, DTColumnBuilder, $compile, $q, $scope, $uibModal, $localStorage, $log, $state, DTOptionsBuilder, DTColumnDefBuilder) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.AccountId = $localStorage.accountConfig.AccountId;\r\n vm.searchBrandText = \"\";\r\n vm.searchProductText = \"\";\r\n vm.searchProductGroupText = \"\";\r\n vm.searchDefectText = \"\";\r\n vm.searchAlternatePartsText = \"\";\r\n vm.searchProductVsDefectText = \"\";\r\n vm.searchProductModelText = \"\";\r\n vm.ProductBrandId = \"\";\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.dtInstanceBrand = {};\r\n vm.dtInstanceProductGroup = {};\r\n vm.dtInstanceProduct = {};\r\n vm.dtInstanceDefect = {};\r\n vm.dtInstanceWarranty = {};\r\n vm.dtInstanceAlternate = {};\r\n vm.dtInstanceProductvsDefect = {};\r\n vm.dtInstanceProductModel = {};\r\n vm.dtInstanceSubRegionModal = {};\r\n\t\tvm.searchSubRegionModelText = \"\";\r\n vm.dtInstanceRegionModal = {};\r\n vm.dtInstanceSkillModal = {};\r\n vm.searchSkillModelText = \"\";\r\n\t\tvm.searchRegionModelText = \"\";\r\n vm.BrandName = \"\";\r\n vm.OldBrandName = \"\";\r\n vm.BrandStatus = true;\r\n vm.ProductGroupName = \"\";\r\n vm.OldProductGroupName = \"\";\r\n vm.ProductGroupStatus = true;\r\n vm.ProductName = \"\";\r\n vm.OldProductName = \"\";\r\n vm.ProductStatus = true;\r\n vm.DefectName = \"\";\r\n vm.OldDefectName = \"\";\r\n vm.DefectStatus = true;\r\n vm.ProductDefectsList = [];\r\n vm.CallTypeProduct = [];\r\n vm.ProductDefectStatus = true;\r\n vm.WarrantyStatus = true;\r\n vm.ActualWarrantyInMonths = 0;\r\n vm.VisitCharge = \"\";\r\n vm.AdditionalWarrantyInMonths = 0;\r\n vm.CoverageDescription = \"\";\r\n vm.ModelNo = \"\";\r\n vm.OldModelNo = \"\";\r\n vm.ModelDescription = \"\";\r\n vm.OldModelDescription = \"\";\r\n vm.ModelStatus = true;\r\n vm.disableCreationButton = false;\r\n vm.objAdditionalWarrantyList = [];\r\n\r\n if (vm.Role == 'Dispatch Head') {\r\n $scope.SkillConfig = 1;\r\n $scope.Brand = 0;\r\n } else {\r\n $scope.SkillConfig = 0;\r\n $scope.Brand = 1;\r\n }\r\n\r\n vm.searchBrandTable = function () {\r\n vm.dtInstanceBrand.DataTable.search(vm.searchBrandText);\r\n vm.dtInstanceBrand.DataTable.search(vm.searchBrandText).draw();\r\n };\r\n\r\n vm.searchProductGroupTable = function () {\r\n vm.dtInstanceProductGroup.DataTable.search(vm.searchProductGroupText);\r\n vm.dtInstanceProductGroup.DataTable.search(vm.searchProductGroupText).draw();\r\n };\r\n vm.searchProductTable = function () {\r\n vm.dtInstanceProduct.DataTable.search(vm.searchProductText);\r\n vm.dtInstanceProduct.DataTable.search(vm.searchProductText).draw();\r\n };\r\n vm.searchDefectTable = function () {\r\n vm.dtInstanceDefect.DataTable.search(vm.searchDefectText);\r\n vm.dtInstanceDefect.DataTable.search(vm.searchDefectText).draw();\r\n };\r\n vm.searchProductvsDefectTable = function () {\r\n vm.dtInstanceProductvsDefect.DataTable.search(vm.searchProductvsDefectText);\r\n vm.dtInstanceProductvsDefect.DataTable.search(vm.searchProductvsDefectText).draw();\r\n };\r\n\r\n vm.searchProductModelTable = function () {\r\n vm.dtInstanceProductModel.DataTable.search(vm.searchProductModelText);\r\n vm.dtInstanceProductModel.DataTable.search(vm.searchProductModelText).draw();\r\n };\r\n\r\n vm.searchWarrantyModelTable = function () {\r\n vm.dtInstanceWarranty.DataTable.search(vm.searchWarrantyModelText);\r\n vm.dtInstanceWarranty.DataTable.search(vm.searchWarrantyModelText).draw();\r\n };\r\n vm.searchAlternatePartsTable = function () {\r\n vm.dtInstanceAlternate.DataTable.search(vm.searchAlternatePartsText);\r\n vm.dtInstanceAlternate.DataTable.search(vm.searchAlternatePartsText).draw();\r\n };\r\n\r\n $scope.clearSearchFilters = function () {\r\n vm.searchBrandText = \"\";\r\n vm.searchProductText = \"\";\r\n vm.searchProductGroupText = \"\";\r\n vm.searchDefectText = \"\";\r\n vm.searchProductvsDefectText = \"\";\r\n vm.searchAlternatePartsText = \"\";\r\n vm.searchProductModelText = \"\";\r\n vm.searchRegionModelText = \"\";\r\n vm.searchSubRegionModelText = \"\";\r\n vm.searchSkillModelText = \"\";\r\n if (vm.dtInstanceBrand && vm.dtInstanceBrand.DataTable) {\r\n vm.dtInstanceBrand.DataTable.search(\"\").draw();\r\n }\r\n if (vm.dtInstanceProductGroup && vm.dtInstanceProductGroup.DataTable) {\r\n vm.dtInstanceProductGroup.DataTable.search(\"\").draw();\r\n }\r\n if (vm.dtInstanceProduct && vm.dtInstanceProduct.DataTable) {\r\n vm.dtInstanceProduct.DataTable.search(\"\").draw();\r\n }\r\n if (vm.dtInstanceDefect && vm.dtInstanceDefect.DataTable) {\r\n vm.dtInstanceDefect.DataTable.search(\"\").draw();\r\n }\r\n if (vm.dtInstanceAlternate && vm.dtInstanceAlternate.DataTable) {\r\n vm.dtInstanceAlternate.DataTable.search(\"\").draw();\r\n }\r\n if (vm.dtInstanceProductvsDefect && vm.dtInstanceProductvsDefect.DataTable) {\r\n vm.dtInstanceProductvsDefect.DataTable.search(\"\").draw();\r\n }\r\n if (vm.dtInstanceProductModel && vm.dtInstanceProductModel.DataTable) {\r\n vm.dtInstanceProductModel.DataTable.search(\"\").draw();\r\n }\r\n if (vm.dtInstanceWarranty && vm.dtInstanceWarranty.DataTable) {\r\n vm.dtInstanceWarranty.DataTable.search(\"\").draw();\r\n }\r\n if (vm.dtInstanceRegionModal && vm.dtInstanceRegionModal.DataTable) {\r\n vm.dtInstanceRegionModal.DataTable.search(\"\").draw();\r\n }\r\n if (vm.dtInstanceSkillModal && vm.dtInstanceSkillModal.DataTable) {\r\n vm.dtInstanceSkillModal.DataTable.search(\"\").draw();\r\n }\r\n if (vm.dtInstanceSubRegionModal && vm.dtInstanceSubRegionModal.DataTable) {\r\n vm.dtInstanceSubRegionModal.DataTable.search(\"\").draw();\r\n }\r\n };\r\n\r\n $scope.getStatusClass = function (status) {\r\n if (status == false) {\r\n return 'label label-danger';\r\n } else if (status == true) {\r\n return 'label label-primary';\r\n }\r\n return '';\r\n };\r\n\r\n vm.AddBrandModelOpen = function () {\r\n vm.addmodel = $uibModal.open({\r\n templateUrl: 'AddBrand.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseAddBrandModel = function () {\r\n vm.addmodel.close();\r\n vm.BrandName = \"\";\r\n vm.BrandStatus = false;\r\n vm.disableCreationButton = false;\r\n }\r\n vm.AddProductGroupModelOpen = function () {\r\n vm.productgroup = $uibModal.open({\r\n templateUrl: 'AddProductgroup.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseAddProductgroupModel = function () {\r\n vm.productgroup.close();\r\n vm.ProductGroupName = \"\";\r\n vm.ProductGroupStatus = false;\r\n vm.disableCreationButton = false;\r\n }\r\n\r\n vm.AddProductModelOpen = function () {\r\n vm.GetAllActiveProductGroupMaster();\r\n vm.addproduct = $uibModal.open({\r\n templateUrl: 'AddProduct.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseAddProductModel = function () {\r\n vm.addproduct.close();\r\n vm.ProductName = \"\";\r\n vm.ProductGroupName = \"\";\r\n vm.ProductStatus = false;\r\n vm.disableCreationButton = false;\r\n }\r\n\r\n vm.AddModelNoOpen = function () {\r\n vm.GetAllActiveProductMaster();\r\n vm.addmodel = $uibModal.open({\r\n templateUrl: 'AddModelNo.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseAddModelNo = function () {\r\n vm.addmodel.close();\r\n vm.ProductName = \"\";\r\n vm.BrandName = \"\";\r\n vm.ProductGroupName = \"\";\r\n vm.ModelNo = \"\";\r\n vm.ProductStatus = false;\r\n vm.disableCreationButton = false;\r\n }\r\n\r\n vm.AddDefectModelOpen = function () {\r\n vm.GetAllActiveProductGroupMaster();\r\n vm.adddefect = $uibModal.open({\r\n templateUrl: 'AddDefect.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseAddDefectModel = function () {\r\n vm.adddefect.close();\r\n vm.DefectName = \"\";\r\n vm.ProductGroupName = \"\";\r\n vm.DefectStatus = false;\r\n vm.disableCreationButton = false;\r\n }\r\n\r\n vm.MapDefectvsproductModelOpen = function () {\r\n vm.GetAllActiveProductMaster();\r\n vm.GetAllActiveProductGroupMaster();\r\n vm.mapdefectproduct = $uibModal.open({\r\n templateUrl: 'mapdefectvsproduct.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseMapDefectvsproductModel = function () {\r\n vm.mapdefectproduct.close();\r\n vm.disableCreationButton = false;\r\n vm.BrandName = \"\";\r\n vm.ProductDefectsList = [];\r\n vm.CallTypeProduct = [];\r\n vm.ProductName = \"\";\r\n vm.ProductGroupName = \"\";\r\n vm.DefectMMFServiceSkill = \"\";\r\n vm.DefectMMFInstallationSkill = \"\";\r\n }\r\n vm.AlternateModelOpen = function () {\r\n vm.alternateproduct = $uibModal.open({\r\n templateUrl: 'AlternateProduct.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseAlternateproductModel = function () {\r\n vm.alternateproduct.close();\r\n vm.disableCreationButton = false;\r\n vm.AlternateBrandName = \"\";\r\n vm.AlternateProductName = \"\";\r\n vm.AlternatePartName = \"\";\r\n vm.AlternateModelno = \"\";\r\n vm.AlternatePartsInstall = \"\";\r\n vm.AlternateProductGroupName = \"\";\r\n }\r\n\r\n vm.UpdateAlternateModelOpen = function (alternatebrand, alternateproductgroupname, alternateproductname,alternatepartname,alternatemodelno) {\r\n vm.UpdateAlternatebrand = alternatebrand;\r\n vm.UpdateAlternateProductGroupName = alternateproductgroupname;\r\n vm.UpadteAlternateProductName = alternateproductname;\r\n vm.UpdateAlternatePartName = alternatepartname;\r\n vm.UpdateAlternateModelNo = alternatemodelno\r\n vm.updatealternate = $uibModal.open({\r\n templateUrl: 'UpdateAlternate.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseUpdateAlternateModel = function () {\r\n vm.updatealternate.close();\r\n vm.disableCreationButton = false;\r\n vm.Alternatebrand = \"\";\r\n vm.AlternateProductGroupName = \"\";\r\n vm.AlternatePartName = \"\";\r\n vm.AlternateProductName = \"\";\r\n vm.AlternateModelNo = \"\";\r\n }\r\n\r\n vm.UpdateBrandModelOpen = function (brandName, brandStatus) {\r\n vm.OldBrandName = brandName;\r\n vm.BrandName = brandName;\r\n vm.BrandStatus = brandStatus;\r\n vm.updatemodel = $uibModal.open({\r\n templateUrl: 'UpdateBrand.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseUpdateBrandModel = function () {\r\n vm.updatemodel.close();\r\n vm.BrandName = \"\";\r\n vm.OldBrandName = \"\";\r\n vm.BrandStatus = false;\r\n vm.disableCreationButton = false;\r\n }\r\n\r\n vm.CallTypeList = [\"INSTALLATION\",\"REPAIR\",\"DEMO\",\"GAS CHARGING\",\"PRESALE REPAIR\",\"PREVENTIVE MAINTENANCE\",\"DISMANTLING\"];\r\n\r\n vm.AddWarrantyModelOpen = function () {\r\n vm.GetAllActiveProductMaster();\r\n vm.GetAllActiveProductGroupMaster();\r\n vm.addWarranty = $uibModal.open({\r\n templateUrl: 'addWarrantyModel.html',\r\n size: 'lg',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseAddWarrantyModel = function () {\r\n vm.addWarranty.close();\r\n vm.disableCreationButton = false;\r\n vm.BrandName = \"\";\r\n vm.ProductName = \"\";\r\n vm.ProductGroupName = \"\";\r\n vm.ActualWarrantyInMonths = 0;\r\n vm.AdditionalWarrantyInMonths = 0;\r\n vm.CoverageDescription = \"\";\r\n vm.VisitCharge = \"\";\r\n vm.objAdditionalWarrantyList = [];\r\n vm.PartData = \"\";\r\n vm.WarrantyMonths = 0;\r\n vm.PartMaxQuantity = 0;\r\n vm.WarrantyStatus = false;\r\n }\r\n\r\n vm.UpdateWarrantyModelOpen = function (brandName, productGroupName, productName, ActualWarrantyInMonths, AdditionalWarrantyInMonths, CoverageDescription, VisitCharge, rowIndex, warrantyStatus) {\r\n vm.BrandName = brandName;\r\n vm.ProductGroupName = productGroupName;\r\n vm.ProductName = productName;\r\n vm.GetAllVisibleMasterParts();\r\n vm.WarrantyStatus = warrantyStatus;\r\n vm.ActualWarrantyInMonths = ActualWarrantyInMonths;\r\n vm.AdditionalWarrantyInMonths = AdditionalWarrantyInMonths;\r\n vm.CoverageDescription = CoverageDescription;\r\n vm.objAdditionalWarrantyList = vm.warrantyList[rowIndex].objAdditionalWarrantyList;\r\n vm.VisitCharge = VisitCharge;\r\n vm.updateWarrantymodel = $uibModal.open({\r\n templateUrl: 'updateWarranty.html',\r\n size: 'lg',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseUpdateWarrantyModel = function () {\r\n vm.updateWarrantymodel.close();\r\n vm.BrandName = \"\";\r\n vm.ProductName = \"\";\r\n vm.ProductGroupName = \"\";\r\n vm.ActualWarrantyInMonths = 0;\r\n vm.AdditionalWarrantyInMonths = 0;\r\n vm.CoverageDescription = \"\";\r\n vm.VisitCharge = \"\";\r\n vm.objAdditionalWarrantyList = [];\r\n vm.PartData = \"\";\r\n vm.WarrantyMonths = 0;\r\n vm.PartMaxQuantity = 0;\r\n vm.WarrantyStatus = false;\r\n vm.disableCreationButton = false;\r\n }\r\n\r\n\r\n vm.UpdateProductGroupModelOpen = function (productGroupName, productgroupStatus) {\r\n vm.OldProductGroupName = productGroupName;\r\n vm.ProductGroupName = productGroupName;\r\n vm.ProductGroupStatus = productgroupStatus;\r\n vm.updateproductgroup = $uibModal.open({\r\n templateUrl: 'UpdateProductgroup.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseUpdateProductgroupModel = function () {\r\n vm.updateproductgroup.close();\r\n vm.disableCreationButton = false;\r\n vm.OldProductGroupName = \"\";\r\n vm.ProductGroupStatus = false;\r\n vm.ProductGroupName = \"\";\r\n }\r\n\r\n vm.UpdateProductModelOpen = function (productName, productGroupName, productStatus) {\r\n vm.OldProductName = productName;\r\n vm.ProductName = productName;\r\n vm.ProductStatus = productStatus;\r\n vm.ProductGroupName = productGroupName;\r\n vm.updateproduct = $uibModal.open({\r\n templateUrl: 'UpdateProduct.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseUpdateProductModel = function () {\r\n vm.updateproduct.close();\r\n vm.disableCreationButton = false;\r\n vm.OldProductName = \"\";\r\n vm.ProductStatus = false;\r\n vm.ProductGroupName = \"\";\r\n vm.ProductName = \"\";\r\n }\r\n\r\n vm.UpdateDefectModelOpen = function (defectName, productGroupName, defectStatus) {\r\n vm.OldDefectName = defectName;\r\n vm.DefectName = defectName;\r\n vm.DefectStatus = defectStatus;\r\n vm.ProductGroupName = productGroupName;\r\n vm.updatedefect = $uibModal.open({\r\n templateUrl: 'UpdateDefect.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseUpdateDefectModel = function () {\r\n vm.updatedefect.close();\r\n vm.disableCreationButton = false;\r\n vm.OldDefectName = \"\";\r\n vm.DefectStatus = false;\r\n vm.ProductGroupName = \"\";\r\n vm.DefectName = \"\";\r\n }\r\n\r\n vm.UpdateMapDefectvsproductModelOpen = function (brandProductId, brandName, productGroupName, productName, productDefectList,callTypeList, mmfSkill, mmfInstallationSkill, defectStatus) {\r\n vm.GetAllActiveProductDefectMaster();\r\n vm.getAllSkill();\r\n vm.ProductBrandId = brandProductId;\r\n vm.BrandName = brandName;\r\n vm.ProductName = productName;\r\n vm.ProductDefectStatus = defectStatus;\r\n vm.ProductGroupName = productGroupName;\r\n vm.ProductDefectsList = [];\r\n vm.CallTypeProduct = [];\r\n var defects = productDefectList.split(',');\r\n\r\n for (var i = 0; i < defects.length; i++) {\r\n vm.ProductDefectsList.push(defects[i].trim());\r\n }\r\n\r\n var callTypes = callTypeList.split(',');\r\n\r\n for (var i = 0; i < callTypes.length; i++) {\r\n vm.CallTypeProduct.push(callTypes[i].trim());\r\n }\r\n\r\n vm.DefectMMFServiceSkill = mmfSkill;\r\n vm.DefectMMFInstallationSkill = mmfInstallationSkill;\r\n vm.updatemapdefectproduct = $uibModal.open({\r\n templateUrl: 'updateMapdefectvsproduct.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseUpdateMapDefectvsproductModel = function () {\r\n vm.updatemapdefectproduct.close();\r\n vm.disableCreationButton = false;\r\n vm.BrandName = \"\";\r\n vm.ProductDefectsList = [];\r\n vm.CallTypeProduct = [];\r\n vm.ProductName = \"\";\r\n vm.ProductGroupName = \"\";\r\n vm.DefectMMFServiceSkill = \"\";\r\n vm.DefectMMFInstallationSkill = \"\";\r\n }\r\n\r\n vm.UpdateModelNoOpen = function (brandName,productName, modelNo, modelDescription, modelStatus) {\r\n vm.OldModelNo = modelNo;\r\n vm.OldModelDescription = modelDescription;\r\n vm.ModelNo = modelNo;\r\n vm.ModelDescription = modelDescription;\r\n vm.ModelStatus = modelStatus;\r\n vm.ProductName = productName;\r\n vm.BrandName = brandName;\r\n vm.updatemodel = $uibModal.open({\r\n templateUrl: 'UpdateModel.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseUpdateModelNoModel = function () {\r\n vm.updatemodel.close();\r\n vm.disableCreationButton = false;\r\n vm.OldModelNo = \"\";\r\n vm.OldModelDescription = \"\";\r\n vm.ModelNo = \"\";\r\n vm.ModelDescription = \"\";\r\n vm.ModelStatus = false;\r\n vm.ProductName = \"\";\r\n vm.BrandName = \"\";\r\n }\r\n\r\n // // FOr Brands\r\n\r\n // vm.fetchBrandsData = function () {\r\n // BrandProductMasterCreationService.GetAllBrandsMaster(loggedinUser, token).then(function (resp) {\r\n // vm.brandsLists = resp.data;\r\n // vm.dtOptionsBrand = DTOptionsBuilder.fromFnPromise(function () {\r\n // var defer = $q.defer();\r\n // defer.resolve(vm.brandsLists);\r\n // return defer.promise;\r\n // })\r\n // .withDOM('<\"html5buttons\"B>lTfgitp')\r\n // .withPaginationType('full_numbers')\r\n // .withOption('order', [])\r\n // .withOption('createdRow', createdRow)\r\n // .withOption('rowCallback', rowCallback);\r\n\r\n // vm.dtColumnsBrand = [\r\n // DTColumnBuilder.newColumn('strBrandName').withTitle('Brand Name'),\r\n // DTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data) {\r\n // return '' + data + '';\r\n // }),\r\n // DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n // return '';\r\n // })\r\n // ];\r\n // $scope.$apply();\r\n // });\r\n // };\r\n\r\n // // For Product Groups\r\n\r\n // vm.fetchProductGroupsData = function () {\r\n // BrandProductMasterCreationService.GetAllProductGroupMaster(loggedinUser, token).then(function (resp) {\r\n // vm.productGroupsList = resp.data;\r\n // vm.dtOptionsProductGroup = DTOptionsBuilder.fromFnPromise(function () {\r\n // var defer = $q.defer();\r\n // defer.resolve(vm.productGroupsList);\r\n // return defer.promise;\r\n // })\r\n // .withDOM('<\"html5buttons\"B>lTfgitp')\r\n // .withPaginationType('full_numbers')\r\n // .withOption('order', [])\r\n // .withOption('createdRow', createdRow)\r\n // .withOption('rowCallback', rowCallback);\r\n\r\n // vm.dtColumnsProductGroup = [\r\n // DTColumnBuilder.newColumn('strProductGroupName').withTitle('Product Group Name'),\r\n // DTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data) {\r\n // return '' + data + '';\r\n // }),\r\n // DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n // return '';\r\n // })\r\n // ];\r\n // $scope.$apply();\r\n // });\r\n // };\r\n // // For Products\r\n\r\n // vm.fetchProductsData = function () {\r\n // BrandProductMasterCreationService.GetAllProductMaster(vm.ProductGroupName, loggedinUser, token).then(function (resp) {\r\n // vm.productsList = resp.data;\r\n // vm.dtOptionsProduct = DTOptionsBuilder.fromFnPromise(function () {\r\n // var defer = $q.defer();\r\n // defer.resolve(vm.productsList);\r\n // return defer.promise;\r\n // })\r\n // .withDOM('<\"html5buttons\"B>lTfgitp')\r\n // .withPaginationType('full_numbers')\r\n // .withOption('order', [])\r\n // .withOption('createdRow', createdRow)\r\n // .withOption('rowCallback', rowCallback);\r\n\r\n // vm.dtColumnsProduct = [\r\n // DTColumnBuilder.newColumn('strProductName').withTitle('Product Name'),\r\n // DTColumnBuilder.newColumn('strProductGroupName').withTitle('Product Group Name'),\r\n // DTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n // return '' + data + '';\r\n // }),\r\n // DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n // return '';\r\n // })\r\n // ];\r\n // $scope.$apply();\r\n // });\r\n // };\r\n\r\n // // For Defects\r\n\r\n // vm.fetchDefectsData = function () {\r\n // BrandProductMasterCreationService.GetAllProductDefectMaster(vm.ProductGroupName, loggedinUser, token).then(function (resp) {\r\n // vm.AllDefectsList = resp.data;\r\n // vm.dtOptionsDefect = DTOptionsBuilder.fromFnPromise(function () {\r\n // var defer = $q.defer();\r\n // defer.resolve(vm.AllDefectsList);\r\n // return defer.promise;\r\n // })\r\n // .withDOM('<\"html5buttons\"B>lTfgitp')\r\n // .withPaginationType('full_numbers')\r\n // .withOption('order', [])\r\n // .withOption('createdRow', createdRow)\r\n // .withOption('rowCallback', rowCallback);\r\n\r\n // vm.dtColumnsDefect = [\r\n // DTColumnBuilder.newColumn('strProductGroupName').withTitle('Product Group Name'),\r\n // DTColumnBuilder.newColumn('strDefect').withTitle('Defect Name'),\r\n // DTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n // return '' + data + '';\r\n // }),\r\n // DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n // return '';\r\n // })\r\n // ];\r\n // $scope.$apply();\r\n // });\r\n // };\r\n\r\n // // For Product vs Defect\r\n\r\n // vm.fetchProductDefectsData = function () {\r\n // BrandProductMasterCreationService.GetAllBrandProductMaster(loggedinUser, token).then(function (resp) {\r\n // vm.productvsDefectList = resp.data;\r\n // vm.dtOptionsProductvsDefect = DTOptionsBuilder.fromFnPromise(function () {\r\n // var defer = $q.defer();\r\n // defer.resolve(vm.productvsDefectList);\r\n // return defer.promise;\r\n // })\r\n // .withDOM('<\"html5buttons\"B>lTfgitp')\r\n // .withPaginationType('full_numbers')\r\n // .withOption('order', [])\r\n // .withOption('createdRow', createdRow)\r\n // .withOption('rowCallback', rowCallback);\r\n\r\n // vm.dtColumnsProductvsDefect = [\r\n // DTColumnBuilder.newColumn('strBrandProductId').withTitle('BrandProduct ID'),\r\n // DTColumnBuilder.newColumn('strBrandName').withTitle('Brand'),\r\n // DTColumnBuilder.newColumn('strProductGroup').withTitle('Product Group Name'),\r\n // DTColumnBuilder.newColumn('strProductName').withTitle('Product Name'),\r\n // DTColumnBuilder.newColumn('strListDefectType').withTitle('Defects'),\r\n // DTColumnBuilder.newColumn('strMMFSkillMapped').withTitle('Skill'),\r\n // DTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n // return '' + data + '';\r\n // }),\r\n // DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n // return '';\r\n // })\r\n // ];\r\n // $scope.$apply();\r\n // });\r\n // };\r\n\r\n\r\n vm.getDefectsHistory = function (q) {\r\n vm.ProductDefectsList = [];\r\n var defects = q.split(',');\r\n\r\n for (var i = 0; i < defects.length; i++) {\r\n vm.ProductDefectsList.push(defects[i].trim());\r\n }\r\n openDefectModel = $uibModal.open({\r\n templateUrl: 'openDefectsModel.html',\r\n size: 'sm',\r\n scope: $scope\r\n });\r\n\r\n }\r\n\r\n vm.CloseDefectsHistoryModel = function () {\r\n openDefectModel.close();\r\n }\r\n\r\n\r\n\r\n vm.getAdditionalWarrantyHistory = function (rowIndex) {\r\n vm.AdditionWarrantyPartList = vm.warrantyList[rowIndex].objAdditionalWarrantyList;\r\n openWarratyModel = $uibModal.open({\r\n templateUrl: 'openWarratyModel.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n\r\n }\r\n\r\n vm.CloseAdditionalWarrantyHistoryModel = function () {\r\n openWarratyModel.close();\r\n }\r\n\r\n vm.dtOptionsBrand = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n BrandProductMasterCreationService.GetAllBrandsMaster(loggedinUser, token).then(function (resp) {\r\n vm.brandsLists = resp.data;\r\n defer.resolve(vm.brandsLists);\r\n })\r\n return defer.promise;\r\n\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback);\r\n\r\n\r\n vm.dtColumnsBrand = [\r\n DTColumnBuilder.newColumn(null).withTitle('S.No').notSortable().renderWith(function (data, type, full, meta) {\r\n return meta.row + 1; // meta.row gives the row index starting from 0, adding 1 to make it 1-based index\r\n }),\r\n DTColumnBuilder.newColumn('strBrandName').withTitle('Brand Name'),\r\n DTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n var displayText = data ? 'Active' : 'Inactive';\r\n return '' + displayText + '';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n return '';\r\n })\r\n ];\r\n\r\n\r\n // for Product Group\r\n\r\n vm.dtOptionsProductGroup = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n BrandProductMasterCreationService.GetAllProductGroupMaster(loggedinUser, token).then(function (resp) {\r\n vm.productGroupsList = resp.data;\r\n defer.resolve(vm.productGroupsList);\r\n })\r\n return defer.promise;\r\n\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback);\r\n vm.dtColumnsProductGroup = [\r\n DTColumnBuilder.newColumn(null).withTitle('S.No').notSortable().renderWith(function (data, type, full, meta) {\r\n return meta.row + 1; // meta.row gives the row index starting from 0, adding 1 to make it 1-based index\r\n }),\r\n DTColumnBuilder.newColumn('strProductGroupName').withTitle('Product Group Name'),\r\n DTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n var displayText = data ? 'Active' : 'Inactive';\r\n return '' + displayText + '';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n return '';\r\n })\r\n ];\r\n// For Alternate \r\n// vm.AlternateBrandName = '';\r\n// vm.AlternateProductGroupName = '';\r\n// vm.AlternateProductName = '';\r\n// vm.AlternatePartName = '';\r\n// vm.AlternateModelno = '';\r\n\r\n// vm.dtOptionsAlternate = DTOptionsBuilder.fromFnPromise(function () {\r\n// var defer = $q.defer();\r\n// var data = {\r\n// \"strBrandName\": vm.AlternateBrandName,\r\n// \"strProductGroup\": vm.AlternateProductGroupName,\r\n// \"strProduct\": vm.AlternateProductName,\r\n// \"strPartId\" : vm.AlternatePartName,\r\n// \"strModelId\" :vm.AlternateModelno\r\n// }\r\n// BrandProductMasterCreationService.GetAllAlternateParts(data, loggedinUser, token).then(function (resp) {\r\n// vm.alternateList = resp.data;\r\n// defer.resolve(vm.alternateList);\r\n// })\r\n// return defer.promise;\r\n\r\n// })\r\n// .withDOM('<\"html5buttons\"B>lTfgitp')\r\n// .withPaginationType('full_numbers')\r\n// .withOption('order', [])\r\n// .withOption('createdRow', createdRow)\r\n// .withOption('rowCallback', rowCallback);\r\n\r\n// vm.dtColumnsAlternate = [\r\n// DTColumnBuilder.newColumn(null).withTitle('S.No').notSortable().renderWith(function (data, type, full, meta) {\r\n// return meta.row + 1; // meta.row gives the row index starting from 0, adding 1 to make it 1-based index\r\n// }),\r\n// DTColumnBuilder.newColumn('Brand').withTitle('Brand'),\r\n// DTColumnBuilder.newColumn('Product').withTitle('Product Group Name'),\r\n// DTColumnBuilder.newColumn('ProductGroup').withTitle('Product Name'),\r\n// DTColumnBuilder.newColumn('PartId').withTitle('Part Name'),\r\n// DTColumnBuilder.newColumn('ModelId').withTitle('Model No.'),\r\n// DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n// return '';\r\n// })\r\n// ];\r\n\r\n //For Product\r\n\r\n vm.dtOptionsProduct = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n BrandProductMasterCreationService.GetAllProductMaster(vm.ProductGroupName, loggedinUser, token).then(function (resp) {\r\n vm.productsList = resp.data;\r\n defer.resolve(vm.productsList);\r\n })\r\n return defer.promise;\r\n\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback);\r\n\r\n vm.dtColumnsProduct = [\r\n DTColumnBuilder.newColumn(null).withTitle('S.No').notSortable().renderWith(function (data, type, full, meta) {\r\n return meta.row + 1; // meta.row gives the row index starting from 0, adding 1 to make it 1-based index\r\n }),\r\n DTColumnBuilder.newColumn('strProductGroupName').withTitle('Product Group Name'),\r\n DTColumnBuilder.newColumn('strProductName').withTitle('Product Name'),\r\n DTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n var displayText = data ? 'Active' : 'Inactive';\r\n return '' + displayText + '';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n return '';\r\n })\r\n ];\r\n // for warranty\r\n\r\n vm.FilteredWarrantyBrandName = '';\r\n vm.FilteredWarrantyProductGroupName = '';\r\n vm.FilteredWarrantyProductName = '';\r\n\r\n vm.dtOptionsWarranty = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n\r\n var data = {\r\n \"strBrandName\": vm.FilteredWarrantyBrandName,\r\n \"strProductGroup\": vm.FilteredWarrantyProductGroupName,\r\n \"strProductName\": vm.FilteredWarrantyProductName\r\n }\r\n BrandProductMasterCreationService.GetAllActiveProductWarrantyMaster(data, loggedinUser, token).then(function (resp) {\r\n vm.warrantyList = resp.data;\r\n defer.resolve(vm.warrantyList);\r\n })\r\n return defer.promise;\r\n\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback);\r\n\r\n vm.dtColumnsWarranty = [\r\n DTColumnBuilder.newColumn(null).withTitle('S.No').notSortable().renderWith(function (data, type, full, meta) {\r\n return meta.row + 1;\r\n }),\r\n DTColumnBuilder.newColumn('strBrandName').withTitle('Brand Name'),\r\n DTColumnBuilder.newColumn('strProductGroup').withTitle('Product Group Name'),\r\n DTColumnBuilder.newColumn('strProductName').withTitle('Product Name'),\r\n DTColumnBuilder.newColumn('nActualWarrantyInMonths').withTitle('Actual Warranty (In Months)'),\r\n DTColumnBuilder.newColumn('objAdditionalWarrantyList').withTitle('Additional Warranty').renderWith(function (data, type, full, meta) {\r\n if (data && data.length > 0) {\r\n return '';\r\n } else {\r\n return '';\r\n }\r\n }),\r\n\r\n // DTColumnBuilder.newColumn('nAdditionalWarrantyInMonths').withTitle('Additional Warranty (In Months)'),\r\n DTColumnBuilder.newColumn('strCoverageInAddition').withTitle('Coverage In Addition')\r\n .renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('strVisitCharge').withTitle('Visit Charge')\r\n .renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n var displayText = data ? 'Active' : 'Inactive';\r\n return '' + displayText + '';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data, type, full, meta) {\r\n return '';\r\n })\r\n ];\r\n\r\n\r\n // for model no\r\n\r\n vm.dtOptionsModel = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n BrandProductMasterCreationService.GetAllActiveProductModelMaster(vm.ProductName, loggedinUser, token).then(function (resp) {\r\n vm.productsList = resp.data;\r\n defer.resolve(vm.productsList);\r\n })\r\n return defer.promise;\r\n\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback);\r\n\r\n vm.dtColumnsModel = [\r\n DTColumnBuilder.newColumn(null).withTitle('S.No').notSortable().renderWith(function (data, type, full, meta) {\r\n return meta.row + 1; // meta.row gives the row index starting from 0, adding 1 to make it 1-based index\r\n }),\r\n DTColumnBuilder.newColumn('strBrandName').withTitle('Brand Name'),\r\n DTColumnBuilder.newColumn('strProductName').withTitle('Product Name'),\r\n DTColumnBuilder.newColumn('strModelNumber').withTitle('Model No.'),\r\n DTColumnBuilder.newColumn('strModelDescription').withTitle('Model Description'),\r\n DTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n var displayText = data ? 'Active' : 'Inactive';\r\n return '' + displayText + '';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n return ''; })\r\n ];\r\n\r\n\r\n // for Defects\r\n\r\n\r\n vm.dtOptionsDefect = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n BrandProductMasterCreationService.GetAllProductDefectMaster(vm.ProductGroupName, loggedinUser, token).then(function (resp) {\r\n vm.AllDefectsList = resp.data;\r\n defer.resolve(vm.AllDefectsList);\r\n })\r\n return defer.promise;\r\n\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback);\r\n\r\n vm.dtColumnsDefect = [\r\n DTColumnBuilder.newColumn(null).withTitle('S.No').notSortable().renderWith(function (data, type, full, meta) {\r\n return meta.row + 1; // meta.row gives the row index starting from 0, adding 1 to make it 1-based index\r\n }),\r\n DTColumnBuilder.newColumn('strProductGroupName').withTitle('Product Group Name'),\r\n DTColumnBuilder.newColumn('strDefect').withTitle('Defect Name'),\r\n DTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n var displayText = data ? 'Active' : 'Inactive';\r\n return '' + displayText + '';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n return '';\r\n })\r\n ];\r\n\r\n vm.FilteredBrandName = '';\r\n vm.FilteredProductGroupName = '';\r\n vm.FilteredProductName = '';\r\n // For Product vs Defect\r\n\r\n vm.dtOptionsProductvsDefect = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n var data = {\r\n \"strBrandName\": vm.FilteredBrandName,\r\n \"strProductGroup\": vm.FilteredProductGroupName,\r\n \"strProductName\": vm.FilteredProductName\r\n }\r\n BrandProductMasterCreationService.GetAllBrandProductMaster(data, loggedinUser, token).then(function (resp) {\r\n vm.productDefectList = resp.data;\r\n defer.resolve(vm.productDefectList);\r\n })\r\n return defer.promise;\r\n\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback);\r\n vm.dtColumnsProductvsDefect = [\r\n DTColumnBuilder.newColumn(null).withTitle('S.No').notSortable().renderWith(function (data, type, full, meta) {\r\n return meta.row + 1;\r\n }),\r\n DTColumnBuilder.newColumn('strBrandProductId').withTitle('BrandProduct ID'),\r\n DTColumnBuilder.newColumn('strBrandName').withTitle('Brand'),\r\n DTColumnBuilder.newColumn('strProductGroup').withTitle('Product Group Name'),\r\n DTColumnBuilder.newColumn('strProductName').withTitle('Product Name'),\r\n DTColumnBuilder.newColumn('strListDefectType').withTitle('Defects').renderWith(function (data, full) {\r\n if (data) {\r\n vm.Defects = [];\r\n angular.forEach(data, function (d) {\r\n vm.Defects.push(d);\r\n });\r\n } else {\r\n vm.Defects = '';\r\n }\r\n return '
' + vm.Defects + '
';\r\n }),\r\n DTColumnBuilder.newColumn('strListCallType').withTitle('Call Type').renderWith(function (data, full) {\r\n if (data) {\r\n vm.CallType = [];\r\n angular.forEach(data, function (d) {\r\n vm.CallType.push(d);\r\n });\r\n } else {\r\n vm.CallType = '';\r\n }\r\n return '
' + vm.CallType + '
';\r\n }),\r\n DTColumnBuilder.newColumn('strMMFSkillMapped').withTitle('Service Skill'),\r\n DTColumnBuilder.newColumn('strMMFSkillMappedInstallation').withTitle('Installation Skill'),\r\n DTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n var displayText = data ? 'Active' : 'Inactive';\r\n return '' + displayText + '';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n return '';\r\n })\r\n ];\r\n\r\n function createdRow(row) {\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n function rowCallback(nRow) {\r\n $('td', nRow).unbind('click');\r\n $('td', nRow).bind('click', function () {\r\n $scope.$apply(function () { });\r\n });\r\n return nRow;\r\n }\r\n\r\n vm.refreshTable = function () {\r\n vm.dtInstanceProductvsDefect.reloadData();\r\n };\r\n\r\n $scope.$watchGroup(['vm.FilteredBrandName', 'vm.FilteredProductGroupName', 'vm.FilteredProductName'], function (newValues, oldValues) {\r\n if (newValues !== oldValues) {\r\n vm.refreshTable();\r\n }\r\n });\r\n\r\n vm.refreshWarrantyTable = function () {\r\n vm.dtInstanceWarranty.reloadData();\r\n };\r\n\r\n $scope.$watchGroup(['vm.FilteredWarrantyBrandName', 'vm.FilteredWarrantyProductGroupName', 'vm.FilteredWarrantyProductName'], function (newValues, oldValues) {\r\n if (newValues !== oldValues) {\r\n vm.refreshWarrantyTable();\r\n }\r\n });\r\n////// for Alternate Parts\r\n vm.CreateBrandsMaster = function () {\r\n vm.AddBrand_form.submitted = true;\r\n if (vm.AddBrand_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strBrandName\": vm.BrandName,\r\n \"bIsActive\": vm.BrandStatus,\r\n }\r\n\r\n BrandProductMasterCreationService.CreateBrandsMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseAddBrandModel();\r\n $timeout(function () {\r\n vm.dtInstanceBrand.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n vm.UpdateBrandsMaster = function () {\r\n vm.UpdateBrand_form.submitted = true;\r\n if (vm.UpdateBrand_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strBrandName\": vm.OldBrandName,\r\n \"bIsActive\": vm.BrandStatus,\r\n \"strNewBrandName\": vm.BrandName\r\n }\r\n\r\n BrandProductMasterCreationService.UpdateBrandsMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseUpdateBrandModel();\r\n $timeout(function () {\r\n vm.dtInstanceBrand.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n\r\n vm.CreateProductGroupMaster = function () {\r\n vm.AddProductGroup_form.submitted = true;\r\n if (vm.AddProductGroup_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strProductGroupName\": vm.ProductGroupName,\r\n \"bIsActive\": vm.ProductGroupStatus\r\n }\r\n\r\n BrandProductMasterCreationService.CreateProductGroupMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseAddProductgroupModel();\r\n $timeout(function () {\r\n vm.dtInstanceProductGroup.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n vm.UpdateProductGroupMaster = function () {\r\n vm.UpdateProductGroup_form.submitted = true;\r\n if (vm.UpdateProductGroup_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strProductGroupName\": vm.OldProductGroupName,\r\n \"bIsActive\": vm.ProductGroupStatus,\r\n \"strNewProductGroupName\": vm.ProductGroupName\r\n }\r\n\r\n BrandProductMasterCreationService.UpdateProductGroupMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseUpdateProductgroupModel();\r\n $timeout(function () {\r\n vm.dtInstanceProductGroup.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n\r\n vm.CreateProductMaster = function () {\r\n vm.AddProduct_form.submitted = true;\r\n if (vm.AddProduct_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strProductGroupName\": vm.ProductGroupName,\r\n \"bIsActive\": vm.ProductStatus,\r\n \"strProductName\": vm.ProductName\r\n }\r\n\r\n BrandProductMasterCreationService.CreateProductMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseAddProductModel();\r\n $timeout(function () {\r\n vm.dtInstanceProduct.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n vm.UpdateProductMaster = function () {\r\n vm.UpdateProduct_form.submitted = true;\r\n if (vm.UpdateProduct_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strNewProductName\": vm.ProductName,\r\n \"strProductGroupName\": vm.ProductGroupName,\r\n \"bIsActive\": vm.ProductStatus,\r\n \"strProductName\": vm.OldProductName\r\n }\r\n\r\n BrandProductMasterCreationService.UpdateProductMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseUpdateProductModel();\r\n $timeout(function () {\r\n vm.dtInstanceProduct.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n\r\n vm.CreateProductDefectMaster = function () {\r\n vm.AddDefect_form.submitted = true;\r\n if (vm.AddDefect_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strProductGroupName\": vm.ProductGroupName,\r\n \"bIsActive\": vm.ProductStatus,\r\n \"strDefect\": vm.DefectName\r\n }\r\n\r\n BrandProductMasterCreationService.CreateProductDefectMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseAddDefectModel();\r\n $timeout(function () {\r\n vm.dtInstanceDefect.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n vm.UpdateProductDefectMaster = function () {\r\n vm.UpdateDefect_form.submitted = true;\r\n if (vm.UpdateDefect_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strNewDefect\": vm.DefectName,\r\n \"strProductGroupName\": vm.ProductGroupName,\r\n \"bIsActive\": vm.DefectStatus,\r\n \"strDefect\": vm.OldDefectName\r\n }\r\n\r\n BrandProductMasterCreationService.UpdateProductDefectMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseUpdateDefectModel();\r\n $timeout(function () {\r\n vm.dtInstanceDefect.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n vm.CreateBrandProductMaster = function () {\r\n vm.AddProductDefect_form.submitted = true;\r\n if (vm.AddProductDefect_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strBrandName\": vm.BrandName,\r\n \"strProductGroup\": vm.ProductGroupName,\r\n \"strProductName\": vm.ProductName,\r\n \"strListDefectType\": vm.ProductDefectsList,\r\n \"strListCallType\": vm.CallTypeProduct,\r\n \"strMMFSkillMapped\": vm.DefectMMFServiceSkill,\r\n \"strMMFSkillMappedInstallation\": vm.DefectMMFInstallationSkill,\r\n \"bIsActive\": vm.ProductDefectStatus\r\n }\r\n\r\n BrandProductMasterCreationService.CreateBrandProductMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseMapDefectvsproductModel();\r\n $timeout(function () {\r\n vm.dtInstanceProductvsDefect.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n vm.UpdateBrandProductMaster = function () {\r\n vm.UpdateMapDefectvsproduct_form.submitted = true;\r\n if (vm.UpdateMapDefectvsproduct_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strBrandProductId\": vm.ProductBrandId,\r\n \"strBrandName\": vm.BrandName,\r\n \"strProductGroup\": vm.ProductGroupName,\r\n \"strProductName\": vm.ProductName,\r\n \"strListDefectType\": vm.ProductDefectsList,\r\n \"strListCallType\": vm.CallTypeProduct,\r\n \"strMMFSkillMapped\": vm.DefectMMFServiceSkill,\r\n \"strMMFSkillMappedInstallation\": vm.DefectMMFInstallationSkill,\r\n \"bIsActive\": vm.ProductDefectStatus\r\n }\r\n\r\n BrandProductMasterCreationService.UpdateBrandProductMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseUpdateMapDefectvsproductModel();\r\n $timeout(function () {\r\n vm.dtInstanceProductvsDefect.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n\r\n vm.CreateProductWarrantyMaster = function () {\r\n vm.AddWarranty_form.submitted = true;\r\n if (vm.AddWarranty_form.$valid) {\r\n angular.forEach(vm.objAdditionalWarrantyList, function (d) {\r\n delete d.originalPartName;\r\n delete d.originalPartId;\r\n delete d.originalPartData;\r\n delete d.originalWarrantyMonths;\r\n delete d.PartData;\r\n delete d.originalSKUId;\r\n delete d.originalPartMaxQuantity;\r\n delete d.edit;\r\n });\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strBrandName\": vm.BrandName,\r\n \"strProductGroup\": vm.ProductGroupName,\r\n \"strProductName\": vm.ProductName,\r\n \"nActualWarrantyInMonths\": vm.ActualWarrantyInMonths,\r\n \"nAdditionalWarrantyInMonths\": vm.AdditionalWarrantyInMonths,\r\n \"objAdditionalWarrantyList\": vm.objAdditionalWarrantyList,\r\n \"bIsActive\": vm.ProductDefectStatus,\r\n \"strCoverageInAddition\": vm.CoverageDescription,\r\n \"strVisitCharge\": vm.VisitCharge\r\n }\r\n\r\n BrandProductMasterCreationService.CreateProductWarrantyMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseAddWarrantyModel();\r\n $timeout(function () {\r\n vm.dtInstanceWarranty.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n vm.UpdateProductWarrantyMaster = function () {\r\n vm.UpdateWarranty_form.submitted = true;\r\n if (vm.UpdateWarranty_form.$valid) {\r\n angular.forEach(vm.objAdditionalWarrantyList, function (d) {\r\n delete d.originalPartName;\r\n delete d.originalSKUId;\r\n delete d.originalPartId;\r\n delete d.originalPartData;\r\n delete d.originalWarrantyMonths;\r\n delete d.PartData;\r\n delete d.originalPartMaxQuantity;\r\n delete d.edit;\r\n });\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strBrandName\": vm.BrandName,\r\n \"strProductGroup\": vm.ProductGroupName,\r\n \"strProductName\": vm.ProductName,\r\n \"nActualWarrantyInMonths\": vm.ActualWarrantyInMonths,\r\n \"nAdditionalWarrantyInMonths\": vm.AdditionalWarrantyInMonths,\r\n \"objAdditionalWarrantyList\": vm.objAdditionalWarrantyList,\r\n \"bIsActive\": vm.ProductDefectStatus,\r\n \"strCoverageInAddition\": vm.CoverageDescription,\r\n \"strVisitCharge\": vm.VisitCharge\r\n }\r\n\r\n BrandProductMasterCreationService.UpdateProductWarrantyMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseUpdateWarrantyModel();\r\n $timeout(function () {\r\n vm.dtInstanceWarranty.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n\r\n vm.CreateProductModelMaster = function () {\r\n vm.AddModel_form.submitted = true;\r\n if (vm.AddModel_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strBrandName\": vm.BrandName,\r\n \"strProductName\": vm.ProductName,\r\n \"strModelNumber\": vm.ModelNo,\r\n \"strModelDescription\": vm.ModelDescription,\r\n \"bIsActive\": vm.ModelStatus,\r\n }\r\n\r\n BrandProductMasterCreationService.CreateProductModelMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseAddModelNo();\r\n $timeout(function () {\r\n vm.dtInstanceProductModel.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n\r\n vm.UpdateProductModelMaster = function () {\r\n vm.UpdateModel_form.submitted = true;\r\n if (vm.UpdateModel_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"strBrandName\": vm.BrandName,\r\n \"strProductName\": vm.ProductName,\r\n \"strModelNumber\": vm.OldModelNo,\r\n \"strModelDescription\": vm.OldModelDescription,\r\n \"strNewModelNumber\": vm.ModelNo,\r\n \"strNewModelDescription\": vm.ModelDescription,\r\n \"bIsActive\": vm.ModelStatus,\r\n }\r\n\r\n BrandProductMasterCreationService.UpdateProductModelMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseUpdateModelNoModel();\r\n $timeout(function () {\r\n vm.dtInstanceProductModel.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n//// Alternate Create \r\nvm.GetAllModelNo = function () {\r\n var data = {\r\n \"strBrandName\": vm.AlternateBrandName,\r\n \"strProductGroup\": vm.AlternateProductGroupName,\r\n \"strProductName\": vm.AlternateProductName,\r\n \"strPartName\": vm.AlternatePartName,\r\n }\r\n BrandProductMasterCreationService.GetAllModelNo(data, loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.AlternateModelList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n}\r\n\r\n\r\nvm.CreateAlternateParts = function () {\r\n vm.Alternatepart_form.submitted = true;\r\n if (vm.Alternatepart_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"Brand\": vm.AlternateBrandName,\r\n \"Product\": vm.AlternateProductGroupName,\r\n \"ProductGroup\": vm.AlternateProductName,\r\n \"PartId\" : vm.AlternatePartName,\r\n \"ModelIds\" : vm.AlternateModelno,\r\n \"AlternatePartIds\" : vm.AlternatePartsInstall,\r\n }\r\n\r\n BrandProductMasterCreationService.CreateAlternateParts(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseAlternateproductModel();\r\n $timeout(function () {\r\n vm.dtInstanceAlternate.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n\r\n }\r\n}\r\n\r\n vm.GetAllActiveProductModelMaster = function () {\r\n BrandProductMasterCreationService.GetAllActiveProductModelMaster(vm.ProductName, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AllActiveProductModeelNoList = resp.data;\r\n }\r\n })\r\n }\r\n vm.GetAllActiveProductModelMaster();\r\n\r\n\r\n\r\n vm.GetAllActiveBrandsMaster = function () {\r\n BrandProductMasterCreationService.GetAllActiveBrandsMaster(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AllActiveBrandList = resp.data;\r\n // if (vm.AllActiveBrandList.length > 0) {\r\n // vm.BrandName = vm.AllActiveBrandList[0].strBrandName;\r\n // }\r\n \r\n }\r\n })\r\n }\r\n\r\n vm.GetAllActiveBrandsMaster();\r\n \r\n vm.GetAllActiveProductGroupMaster = function () {\r\n BrandProductMasterCreationService.GetAllActiveProductGroupMaster(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AllActiveProductGroupList = resp.data;\r\n }\r\n })\r\n }\r\n vm.GetAllAlternateProductGroupMaster = function () {\r\n BrandProductMasterCreationService.GetAllActiveProductGroupMaster(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AllActiveAlternateProductGroupList = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllActiveProductGroupMaster();\r\n\r\n vm.GetAllActiveProductMasterForTopFilter = function () {\r\n vm.AllActiveProductList = '';\r\n BrandProductMasterCreationService.GetAllActiveProductMaster(vm.FilteredProductGroupName, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AllActiveProductList = resp.data;\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.GetAllActiveWarrantyForTopFilter = function () {\r\n vm.AllActiveProductList = '';\r\n BrandProductMasterCreationService.GetAllActiveProductMaster(vm.FilteredWarrantyProductGroupName, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AllActiveProductList = resp.data;\r\n }\r\n })\r\n }\r\n\r\n vm.GetAllActiveProductMaster = function () {\r\n vm.AllActiveProductList = '';\r\n BrandProductMasterCreationService.GetAllActiveProductMaster(vm.ProductGroupName, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AllActiveProductList = resp.data;\r\n }\r\n })\r\n }\r\n vm.GetAllActiveProductMaster();\r\n vm.GetAllAlternateProductMaster = function () {\r\n vm.AllAlternateProductList = '';\r\n BrandProductMasterCreationService.GetAllActiveProductMaster(vm.ProductGroupName, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AllAlternateProductList = resp.data;\r\n }\r\n })\r\n }\r\n vm.GetAllActiveProductDefectMaster = function () {\r\n vm.AllActiveDefectList = '';\r\n BrandProductMasterCreationService.GetAllActiveProductDefectMaster(vm.ProductGroupName, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AllActiveDefectList = resp.data;\r\n }\r\n })\r\n }\r\n vm.GetAllActiveProductDefectMaster();\r\n\r\n vm.GetAllActiveProductModelMaster = function () {\r\n\t\t\tCustomerCRMListService.GetAllActiveProductModelMaster(vm.ProductName, loggedinUser, token).then(function (resp) {\r\n\t\t\t if (resp && resp.data) {\r\n\t\t\t\tvm.AllActiveProductModelNoList = resp.data;\r\n\t\t\t }\r\n\t\t\t})\r\n\t\t }\r\n\r\n vm.clearFilter = function () {\r\n vm.FilteredBrandName = '';\r\n vm.FilteredProductGroupName = '';\r\n vm.FilteredProductName = '';\r\n vm.GetAllActiveProductMaster();\r\n vm.GetAllActiveProductGroupMaster();\r\n $scope.clearSearchFilters();\r\n vm.refreshTable();\r\n }\r\n vm.getAllSkill = function () {\r\n BrandProductMasterCreationService.getAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skills = resp.data;\r\n });\r\n }\r\n\r\n vm.clearWarrantyFilter = function () {\r\n vm.FilteredWarrantyBrandName = '';\r\n vm.FilteredWarrantyProductGroupName = '';\r\n vm.FilteredPWarrantyProductName = '';\r\n vm.GetAllActiveProductMaster();\r\n vm.GetAllActiveProductGroupMaster();\r\n $scope.clearSearchFilters();\r\n vm.refreshWarrantyTable();\r\n }\r\n vm.getAllSkill();\r\n\r\n vm.GetAllVisibleMasterParts = function () {\r\n var data = {\r\n \"PartName\": \"\",\r\n \"PartCategoryGroup\": vm.ProductGroupName,\r\n \"PartBrand\": vm.BrandName,\r\n \"PartSubGroup\": vm.ProductName,\r\n \"SearchText\": \"\"\r\n }\r\n BrandProductMasterCreationService.GetAllVisibleMasterParts(data, loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.masterInventoryList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.GetAllAlternateVisibleMasterParts = function () {\r\n var data = {\r\n \"PartName\": vm.AlternatePartName,\r\n \"PartCategoryGroup\": vm.AlternateProductGroupName,\r\n \"PartBrand\": vm.AlternateBrandName,\r\n \"PartSubGroup\": vm.AlternateProductName,\r\n \"SearchText\": \"\"\r\n }\r\n BrandProductMasterCreationService.GetAllVisibleMasterParts(data, loggedinUser, token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.alternatemasterList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n $scope.editMode = false;\r\n\r\n $scope.toggleEditMode = function () {\r\n $scope.editMode = !$scope.editMode;\r\n };\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n\r\n $scope.storeOriginalContent = function (filter) {\r\n if (filter.MMFPartId) {\r\n angular.forEach(vm.masterInventoryList, function (d) {\r\n if (d.MMFPartId == filter.MMFPartId) {\r\n filter.PartData = d;\r\n filter.originalPartData = angular.copy(d);\r\n }\r\n });\r\n }\r\n filter.originalPartName = angular.copy(filter.PartName);\r\n filter.originalPartId = angular.copy(filter.MMFPartId);\r\n filter.originalSKUId = angular.copy(filter.SKUId);\r\n filter.originalWarrantyMonths = angular.copy(filter.WarrantyMonths);\r\n filter.originalPartMaxQuantity = angular.copy(filter.PartMaxQuantity);\r\n };\r\n\r\n $scope.cancelChanges = function (filter) {\r\n filter.PartData = angular.copy(filter.originalPartData);\r\n filter.PartData.MMFPartId = angular.copy(filter.originalPartId);\r\n filter.PartData.PartName = angular.copy(filter.originalPartName);\r\n filter.PartData.SKUId = angular.copy(filter.originalSKUId);\r\n filter.WarrantyMonths = angular.copy(filter.originalWarrantyMonths);\r\n filter.PartMaxQuantity = angular.copy(filter.originalPartMaxQuantity);\r\n };\r\n\r\n\r\n vm.addMoreFilter = function () {\r\n vm.showEditList = true;\r\n vm.showAction = false;\r\n };\r\n\r\n vm.closeEditRow = function() {\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n };\r\n\r\n $scope.saveChanges = function (filter) {\r\n if (!filter.PartData || !filter.WarrantyMonths || !filter.PartMaxQuantity) {\r\n vm.partError = true;\r\n return;\r\n }\r\n filter.PartData.MMFPartId = filter.PartData.MMFPartId;\r\n filter.PartData.PartName = filter.PartData.PartName;\r\n filter.PartName = filter.PartData.PartName;\r\n filter.PartData.SKUId = filter.PartData.SKUId;\r\n filter.edit = false;\r\n vm.partError = false;\r\n };\r\n\r\n vm.addNewFilter = function (filter) {\r\n vm.partError = false;\r\n if ((!filter.PartData || !filter.PartData.MMFPartId) && (filter.WarrantyMonths || filter.PartMaxQuantity)) {\r\n vm.partError = true;\r\n return;\r\n }\r\n vm.objAdditionalWarrantyList.push({\r\n \"MMFPartId\": filter.PartData.MMFPartId,\r\n \"SKUId\": filter.PartData.SKUId,\r\n \"PartName\": filter.PartData.PartName,\r\n \"WarrantyMonths\": filter.WarrantyMonths || 0,\r\n \"PartMaxQuantity\": filter.PartMaxQuantity || 0\r\n });\r\n\r\n vm.showEditList = false;\r\n vm.showAction = true;\r\n };\r\n\r\n $scope.deleteDataFilter = function (filter) {\r\n const index = vm.objAdditionalWarrantyList.indexOf(filter);\r\n if (index !== -1) {\r\n vm.objAdditionalWarrantyList.splice(index, 1);\r\n }\r\n }\r\n\r\n////////\r\nvm.GetItemGroupName = function () {\r\n if (!vm.BrandName) {\r\n vm.BrandName = \"\";\r\n }\r\n InventoryCartService.GetItemGroupName(vm.BrandName, loggedinUser, token).then(\r\n function (resp) {\r\n if (resp && resp.data) {\r\n vm.PartNameList = resp.data;\r\n // vm.changeCategoryFilter();\r\n }\r\n }\r\n );\r\n};\r\nvm.GetItemGroupName();\r\n// vm.GetItemListName = function () {\r\n// if (!vm.ProductGroupName) {\r\n// vm.ProductGroupName = \"\";\r\n// }\r\n// InventoryCartService.GetItemListName(vm.BrandName,vm.ProductGroupName,loggedinUser, token).then(function (resp) {\r\n// if (resp && resp.data) {\r\n// vm.PartList = resp.data;\r\n// // vm.changeCategoryFilter();\r\n// }\r\n// }, vm.showFailure);\r\n// };\r\n// vm.GetItemListName();\r\n\r\nvm.PartListWithFilter = [];\r\n\r\nvm.GetItemPartName = function () {\r\n vm.PartListWithFilter = [];\r\n if (!vm.ProductName) {\r\n vm.ProductName = \"\";\r\n }\r\n InventoryItemListService.GetItemPartName(vm.BrandName,vm.ProductGroupName,vm.ProductName,loggedinUser,token).then(function (resp) {\r\n if (resp.data && resp.status == 200) {\r\n vm.PartListWithFilter = resp.data;\r\n }\r\n }, vm.showFailure);\r\n};\r\nvm.GetItemPartName();\r\n// modal for region and subregion \r\nvm.AddSubRegionModelOpen = function () {\r\n vm.addsubregion = $uibModal.open({\r\n templateUrl: 'AddSubRegion.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseAddSubRegionModel = function () {\r\n vm.addsubregion.close();\r\n vm.SubRegionName = \"\";\r\n vm.SubRegionState = \"\";\r\n vm.SubRegionCity = \"\";\r\n vm.SubRegionBranchCode = \"\";\r\n vm.disableCreationButton = false;\r\n }\r\n vm.AddRegionModelOpen = function () {\r\n vm.addregion = $uibModal.open({\r\n templateUrl: 'AddRegion.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n vm.GetAllSubRegionForMapping();\r\n }\r\n\r\n vm.CloseAddRegionModel = function () {\r\n vm.addregion.close();\r\n vm.RegionName = \"\";\r\n vm.RegionSub = \"\";\r\n vm.disableCreationButton = false;\r\n }\r\n\r\n\r\n vm.AddSkillModelOpen = function () {\r\n vm.addregion = $uibModal.open({\r\n templateUrl: 'AddSkill.html',\r\n size: 'md',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n vm.getAllSkill();\r\n }\r\n \r\n vm.CloseAddRegionModel = function () {\r\n vm.addregion.close();\r\n vm.RegionName = \"\";\r\n vm.RegionSub = \"\";\r\n vm.disableCreationButton = false;\r\n }\r\n\r\n function getAllStates() {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n\r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n\r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n// Table For Subregioncreation\r\nvm.FilterSubRegion = '';\r\nvm.FilterLocationName = '';\r\n\r\n\r\nvm.searchSubRegionModelTable = function () {\r\n vm.dtInstanceSubRegionModal.DataTable.search(vm.searchSubRegionModelText);\r\n vm.dtInstanceSubRegionModal.DataTable.search(vm.searchSubRegionModelText).draw();\r\n };\r\n\r\n vm.dtOptionsSubRegionModel = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n var data = {\r\n \"SubRegion\": vm.FilterForRegional,\r\n \"LocationName\": vm.FilterLocationName\r\n \r\n }\r\n BrandProductMasterCreationService.GetAllSubRegion(data, loggedinUser, token).then(function (resp) {\r\n vm.subregionList = resp.data;\r\n defer.resolve(vm.subregionList);\r\n })\r\n return defer.promise;\r\n\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback);\r\n\r\n vm.dtColumnsSubRegionModel = [\r\n DTColumnBuilder.newColumn('SubRegion').withTitle('Sub Region'),\r\n DTColumnBuilder.newColumn('LocationName').withTitle('Location Name'),\r\n DTColumnBuilder.newColumn('BranchCode').withTitle('BranchCode'),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n return '';\r\n })\r\n ];\r\n\r\n\r\n vm.refreshSubRegionTable = function () {\r\n vm.dtInstanceSubRegionModal.reloadData();\r\n // vm.GetAllSubregionFilterForLocation();\r\n };\r\n \r\n$scope.$watchGroup(['vm.FilterForRegional', 'vm.FilterLocationName'], function (newValues, oldValues) {\r\nif (newValues !== oldValues) {\r\n vm.refreshSubRegionTable();\r\n}\r\n});\r\nvm.FilterForRegional= '';\r\nvm.GetAllFilterSubRegion = function () {\r\n BrandProductMasterCreationService.GetAllAvailableSubRegion(vm.FilterForRegional,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AllFiltersubregion = resp.data;\r\n }\r\n})\r\n}\r\n\r\nvm.GetAllSubregionFilterForLocation = function () {\r\nvar data = {\r\n \"SubRegion\": vm.FilterForRegional,\r\n \"LocationName\": ''\r\n \r\n }\r\n BrandProductMasterCreationService.GetAllSubRegion(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AllFilterLocationname = resp.data;\r\n }\r\n})\r\n}\r\nvm.GetAllFilterSubRegion();\r\nvm.GetAllSubregionFilterForLocation();\r\n\r\nvm.FilterForRegion = '';\r\n\r\nvm.GetAllAvailableSubRegion = function ( ) {\r\n BrandProductMasterCreationService.GetAllAvailableSubRegion(vm.FilterForRegion,loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data){ \r\n if(resp.status==200){\r\n vm.AllAvailableSubRegionList = resp.data;\r\n }\r\n } \r\n }, function () { \r\n });\r\n}\r\n\r\nvm.GetAllSubRegionForMapping = function ( ) {\r\n BrandProductMasterCreationService.GetAllSubRegionForMapping(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data){ \r\n if(resp.status==200){\r\n vm.Allsubregionformapping = resp.data;\r\n }\r\n } \r\n }, function () { \r\n });\r\n}\r\nvm.GetAllSubRegionForMapping();\r\n\r\nvm.clearsubregionfilter= function(){\r\nvm.FilterForRegional = '';\r\nvm.FilterLocationName = '';\r\n$scope.clearSearchFilters();\r\n\r\nvm.refreshSubRegionTable();\r\n}\r\n vm.CreateSubRegionMaster = function () {\r\n vm.AddSubregion_form.submitted = true;\r\n if (vm.AddSubregion_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"SubRegion\": vm.SubRegionName,\r\n \"LocationName\": vm.SubRegionCity,\r\n \"BranchCode\": vm.SubRegionBranchCode,\r\n }\r\n BrandProductMasterCreationService.CreateSubRegionMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Sub-region created successfully.\");\r\n vm.CloseAddSubRegionModel();\r\n $timeout(function () {\r\n vm.dtInstanceSubRegionModal.reloadData();\r\n }, 3000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n })\r\n }\r\n }\r\n\r\n// Table for region\r\nvm.searchRegionModelTable = function () {\r\n vm.dtInstanceRegionModal.DataTable.search(vm.searchRegionModelText);\r\n vm.dtInstanceRegionModal.DataTable.search(vm.searchRegionModelText).draw();\r\n };\r\n vm.dtOptionsRegion = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n var data = {\r\n \"Region\": vm.FilterForRegion,\r\n \"SubRegion\": vm.FilterRegionSUb\r\n \r\n }\r\n BrandProductMasterCreationService.GetAllRegions(data, loggedinUser, token).then(function (resp) {\r\n vm.regionList = resp.data;\r\n defer.resolve(vm.regionList);\r\n })\r\n return defer.promise;\r\n\r\n })\r\n\r\n \r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback);\r\n\r\n vm.dtColumnsRegion = [\r\n DTColumnBuilder.newColumn('Region').withTitle('Region'),\r\n DTColumnBuilder.newColumn('SubRegion').withTitle('Sub Region'),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n return '';\r\n })\r\n ];\r\n function createdRow(row) {\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n function rowCallback(nRow) {\r\n $('td', nRow).unbind('click');\r\n $('td', nRow).bind('click', function () {\r\n $scope.$apply(function () { });\r\n });\r\n return nRow;\r\n }\r\n\r\n\r\n vm.refreshRigionTable = function () {\r\n vm.dtInstanceRegionModal.reloadData();\r\n // vm.GetAllFilterRegionSub ();\r\n };\r\n \r\n$scope.$watchGroup(['vm.FilterForRegion', 'vm.FilterRegionSUb'], function (newValues, oldValues) {\r\nif (newValues !== oldValues) {\r\n vm.refreshRigionTable();\r\n}\r\n});\r\nvm.GetAllFilterRegion = function () {\r\nvar data = {\r\n \"Region\": '',\r\n \"SubRegion\": ''\r\n \r\n }\r\n BrandProductMasterCreationService.GetAllRegions(data,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AllFilterRegional = resp.data;\r\n }\r\n})\r\n}\r\nvm.GetAllFilterRegionSub = function () {\r\n BrandProductMasterCreationService.GetAllAvailableSubRegion(vm.FilterForRegion,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AllFilterRegionalSub = resp.data;\r\n }\r\n})\r\n}\r\n\r\nvm.GetAllFilterRegion();\r\nvm.GetAllFilterRegionSub ();\r\n\r\nvm.clearregionfilter= function(){\r\nvm.FilterForRegion = '';\r\nvm.FilterRegionSUb = '';\r\nvm.refreshRigionTable();\r\n$scope.clearSearchFilters();\r\nvm.GetAllFilterRegionSub ();\r\n\r\n}\r\nvm.CreateRegionMaster = function () {\r\n vm.AddRegion_form.submitted = true;\r\n if (vm.AddRegion_form.$valid) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"Region\": vm.RegionName,\r\n \"SubRegion\": vm.RegionSub\r\n }\r\n\r\n BrandProductMasterCreationService.CreateRegionMaster(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Region created successfully\");\r\n vm.CloseAddRegionModel();\r\n $timeout(function () {\r\n vm.dtInstanceRegionModal.reloadData();\r\n }, 3000);\r\n }\r\n else {\r\n vm.disableCreationButton = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n }\r\n })\r\n\r\n }\r\n }\r\n\r\n vm.RemoveSubRegion = function (SubRegionName, Location, BranchCode) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"SubRegion\": SubRegionName,\r\n \"LocationName\": Location,\r\n \"BranchCode\": BranchCode\r\n }\r\n BrandProductMasterCreationService.RemoveSubRegion(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Sub-Region deleted successfully\");\r\n vm.disableCreationButton = false;\r\n $timeout(function () {\r\n vm.dtInstanceSubRegionModal.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.disableCreationButton = false;\r\n }\r\n })\r\n \r\n \r\n }\r\n vm.RemoveRegion = function (RegionName, SubRegionName) {\r\n vm.disableCreationButton = true;\r\n var data = {\r\n \"Region\": RegionName,\r\n \"SubRegion\": SubRegionName,\r\n }\r\n BrandProductMasterCreationService.RemoveRegion(data, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Region deleted successfully\");\r\n vm.disableCreationButton = false;\r\n $timeout(function () {\r\n vm.dtInstanceRegionModal.reloadData();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n vm.disableCreationButton = false;\r\n }\r\n })\r\n \r\n \r\n }\r\n\r\n\r\n vm.GetAllAvailableRegion = function () {\r\n BrandProductMasterCreationService.GetAllAvailableRegion(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data && resp.status == 200) {\r\n vm.regionavailable = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n vm.GetAllAvailableRegion();\r\n\r\n\r\n vm.configurableHours = 4; \r\n vm.isEditable = false;\r\n\r\n vm.updateHours = function(value) {\r\n if (vm.isEditable) {\r\n var newValue = vm.configurableHours + value;\r\n if (newValue >= 1 && newValue <= 24) {\r\n vm.configurableHours = newValue;\r\n }\r\n }\r\n};\r\n\r\nvm.toggleEdit = function() {\r\n vm.isEditable = !vm.isEditable;\r\n};\r\n\r\n vm.getSkillList = function () {\r\n return [\r\n { Skill: \"General Electrician\", FirstPriority: \"MMF\", SecondPriority: \"ASC\", State: \"Maharashtra\", City: \"Mumbai\", bIsActive: true },\r\n { Skill: \"AC Installation\", FirstPriority: \"ASC\", SecondPriority: \"MMF\", State: \"Karnataka\", City: \"Bangalore\", bIsActive: true },\r\n { Skill: \"Plumbing\", FirstPriority: \"MMF\", SecondPriority: \"ASC\", State: \"Tamil Nadu\", City: \"Chennai\", bIsActive: false },\r\n { Skill: \"Carpentry\", FirstPriority: \"ASC\", SecondPriority: \"MMF\", State: \"Delhi\", City: \"New Delhi\", bIsActive: true },\r\n { Skill: \"Painting\", FirstPriority: \"MMF\", SecondPriority: \"ASC\", State: \"West Bengal\", City: \"Kolkata\", bIsActive: true }\r\n ];\r\n };\r\n\r\n // Table for Skill\r\nvm.searchSkillModelTable = function () {\r\n vm.dtInstanceSkillModal.DataTable.search(vm.searchSkillModelText);\r\n vm.dtInstanceSkillModal.DataTable.search(vm.searchSkillModelText).draw();\r\n };\r\n vm.dtOptionsSkill = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.getSkillList());\r\n return defer.promise;\r\n})\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withOption('rowCallback', rowCallback);\r\n\r\n vm.dtColumnsSkill = [\r\n DTColumnBuilder.newColumn('Skill').withTitle('Skill'),\r\n DTColumnBuilder.newColumn('State').withTitle('State'),\r\n DTColumnBuilder.newColumn('City').withTitle('City'),\r\n DTColumnBuilder.newColumn('FirstPriority').withTitle('First Priority'),\r\n DTColumnBuilder.newColumn('SecondPriority').withTitle('Second Priority'),\r\n DTColumnBuilder.newColumn('bIsActive').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n var displayText = data ? 'Active' : 'Inactive';\r\n return '' + displayText + '';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Action').notSortable().renderWith(function (data) {\r\n return '';\r\n })\r\n ];\r\n\r\n function createdRow(row) {\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n function rowCallback(nRow) {\r\n $('td', nRow).unbind('click');\r\n $('td', nRow).bind('click', function () {\r\n $scope.$apply(function () { });\r\n });\r\n return nRow;\r\n }\r\n\r\n\r\n vm.refreshRigionTable = function () {\r\n vm.dtInstanceRegionModal.reloadData();\r\n };\r\n\r\n \r\n\r\nvm.skillList = vm.getSkillList();\r\n\r\n\r\n }\r\n});\nangular.module('inspinia').service('registerService', function (PublicApiURL, $log, $http) {\r\n\r\n\r\n // https://perf.mymobiforce.com/publicapi/api/SignUp/AccountSignUp\r\n this.registerUser = function (userData) {\r\n var url = PublicApiURL + '/api/SignUp/AccountSignUp';\r\n return $http.post(url, userData,{\r\n \theaders:{\r\n \t\t'Content-Type': 'application/json'\r\n \t}\r\n });\r\n }\r\n});\r\n\n angular.module('inspinia').controller('BusinessRegisterController', function ($document,$localStorage, $timeout, $location, $window, $state,registerService, toaster,$uibModal,$scope) {\r\n var vm = this;\r\n vm.firstname = '';\r\n vm.lastname = '';\r\n vm.email = '';\r\n vm.phone = '';\r\n vm.password = '';\r\n vm.confirmpass = '';\r\n vm.companyName = '';\r\n vm.termCheck = false;\r\n var modalInstance = {};\r\n var angular_pass = angular.element(\"#pass\");\r\n var angular_confirm_pass = angular.element(\"#confirm_pass\");\r\n var password = angular_pass[0],\r\n confirm_password = angular_confirm_pass[0];\r\n\r\nvm.Register = function (event) {\r\n /// \r\n /// Registering the New User\r\n /// \r\nif (vm.registerForm.$valid) {\r\n // console.log(\"pass\");\r\n var registerdata = {\r\n FirstName: vm.firstname,\r\n LastName:vm.lastname,\r\n EmailId: vm.email,\r\n PhoneNumber: vm.phone,\r\n Password: vm.password,\r\n Vertical:'others',\r\n CompanyName: vm.companyName\r\n \r\n }\r\n\r\n var json = angular.toJson(registerdata);\r\n if (angular.isDefined(json)) {\r\n registerService.registerUser(json)\r\n .success(function (data,status) {\r\n if (status==201) {\r\n // toaster.pop({\r\n // type: 'success',\r\n // title: data.Message,\r\n // showCloseButton: true,\r\n // body: \"Redirecting to login page\",\r\n // \"showDuration\": \"400\",\r\n // \"hideDuration\": \"1000\",\r\n // \"tapToDismiss\": true,\r\n // \"timeout\": 2000\r\n // });\r\n // fieldsEmpty();\r\n $state.go('ConfirmAccount',{userId:vm.firstname,email:vm.email},{reload:true});\r\n } else if(status==206)\r\n { \r\n toaster.pop({\r\n type: 'error',\r\n title: \"User already exist with this phone number or email id\",\r\n showCloseButton: true,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000\r\n });\r\n \r\n } \r\n })\r\n .error(function () {\r\n toaster.pop({\r\n type: 'error',\r\n title: 'Unable to register',\r\n showCloseButton: true,\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000\r\n });\r\n });\r\n }\r\n\r\n } else {\r\n vm.registerForm.submitted = true;\r\n }\r\n // if (confirm_password.validationMessage) {\r\n // return;\r\n // }\r\n\r\n // event.preventDefault();\r\n }\r\n\r\n\r\n\r\nvm.OpenTermModal=function()\r\n{\r\n modalInstance = $uibModal.open({\r\n templateUrl: 'termsAndCondition_modal.html',\r\n scope:$scope\r\n });\r\n}\r\n\r\nvm.CloseModal=function()\r\n{\r\n modalInstance.close();\r\n}\r\n\r\n // function fieldsEmpty() {\r\n // vm.firstname = '';\r\n // vm.lastname = '';\r\n // vm.email = '';\r\n // vm.phone = '';\r\n // vm.password = '';\r\n // vm.confirmpass = '';\r\n // vm.companyName = '';\r\n // } \r\n\r\n // function validatePassword() {\r\n // if (password.value != confirm_password.value) {\r\n // confirm_password.setCustomValidity(\"Passwords Doesn't Match\");\r\n // } else {\r\n // confirm_password.setCustomValidity('');\r\n // }\r\n // }\r\n // password.onchange = validatePassword;\r\n // confirm_password.onkeyup = validatePassword;\r\n });\r\n\nangular.module('inspinia').service('BonusPaneltyService', function (ApiURL, LocationURL,PublicApiURL, $log, $http,$localStorage) {\r\n var url = ApiURL + '/api/User';\r\n \r\n\r\n this.GetAllBonusPenalty = function (loggedinUser, token){\r\n var url = ApiURL + '/api/BonusPenalty/GetAllBonusPenalty';\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n\r\n this.UpdateBonusPenalty = function (BonusData,loggedinUser, token) {\r\n var url = ApiURL + '/api/BonusPenalty/UpdateBonusPenalty';\r\n return $http.put(url, BonusData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser}\r\n });\r\n }\r\n\r\n\r\n \r\n});\r\n\nangular.module('inspinia').controller('BonusController', function (BonusPaneltyService, toaster, $filter, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder, DTColumnBuilder, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n\tvm = this;\r\n\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tvm.Role = $localStorage.loggedInUser_Role;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\r\n\tvm.BonusList=[];\r\n\tvm.UpdateBonusList=[];\r\n\tvm.PenaltyList=[];\r\n\tvm.UpdatePenaltyList=[];\r\n\tvm.GetAllBonusPenalty = function () {\t\t\r\n\t\tBonusPaneltyService.GetAllBonusPenalty(loggedinUser, token).then(function (resp) {\r\n\t\t\tvm.BonusPenaltyList = resp.data;\r\n\t\t\tfor(var i = 0; i < vm.BonusPenaltyList.length; i++)\r\n\t\t\t{\r\n\t\t\t\tif(vm.BonusPenaltyList[i].RuleType == \"Bonus\")\t\t\t\t\r\n\t\t\t\t\tvm.BonusList.push(vm.BonusPenaltyList[i]);\t\t\t\t\r\n\t\t\t\telse\r\n\t\t\t\t\tvm.PenaltyList.push(vm.BonusPenaltyList[i]);\r\n\t\t\t}\t\t\t\t\t\t\r\n\t\t});\r\n\t}\r\n\tvm.GetAllBonusPenalty();\r\n\tvm.UpdateBonusAmount = function(index,bonusEnableDisable)\r\n\t{\t\t\t\r\n\t\tif(vm.BonusList[index].Amount==null || vm.BonusList[index].Amount==\"\")\r\n\t\t{\r\n\t\t\tvm.BonusList[index].edit=true;\r\n\t\t\tif(typeof(vm.BonusList[index].Amount) === \"undefined\")\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please valid amount\");\r\n\t\t\telse\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please enter amount\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar bmessage = \"\";\r\n\t\tif(vm.BonusList[index].IsEnable)\r\n\t\t\tbmessage =\"Bonus has been enable successfully\";\r\n\t\telse\r\n\t\t\tbmessage =\"Bonus has been disable successfully\";\r\n\t\t\r\n\t\tvar BonusDetails= {\r\n\t\t\t\"RuleId\": vm.BonusList[index].RuleId,\r\n\t\t\t\"RuleName\": vm.BonusList[index].RuleName,\r\n\t\t\t\"IsEnable\": vm.BonusList[index].IsEnable,\r\n\t\t\t\"Amount\": vm.BonusList[index].Amount\r\n\t\t\t}\r\n\t\t vm.UpdateBonusList.push(BonusDetails);\r\n\t\t\tBonusPaneltyService.UpdateBonusPenalty(vm.UpdateBonusList,loggedinUser, token).then(function (resp) {\r\n\t\t\tif(resp.data == \"Updated\" && resp.status == 200)\r\n\t\t\t{\t\r\n\t\t\t\tif(bonusEnableDisable==\"bonusEnableDisable\")\r\n\t\t\t\t\tvm.showSuccess(\"Success\", bmessage);\r\n\t\t\t\telse\t\t\t\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Bonus has been successfully updated\");\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Bonus not updated\");\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\tvm.UpdatePenaltyAmount = function(index,paneltyEnableDisable)\r\n\t{\t\r\n\t\tif(vm.PenaltyList[index].Amount==null || vm.PenaltyList[index].Amount==\"\")\r\n\t\t{\r\n\t\t\tvm.PenaltyList[index].edit=true;\r\n\t\t\tif(typeof(vm.PenaltyList[index].Amount) === \"undefined\")\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please valid amount\");\r\n\t\t\telse\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Please enter amount\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tvar pmessage = \"\";\r\n\t\tif(vm.PenaltyList[index].IsEnable)\r\n\t\t\tpmessage =\"Penalty has been enable successfully\";\r\n\t\telse\r\n\t\t\tpmessage =\"Penalty has been disable successfully\";\r\n\r\n\t\tvar PenaltyDetails= {\r\n\t\t\t\"RuleId\": vm.PenaltyList[index].RuleId,\r\n\t\t\t\"RuleName\": vm.PenaltyList[index].RuleName,\r\n\t\t\t\"IsEnable\": vm.PenaltyList[index].IsEnable,\r\n\t\t\t\"Amount\": vm.PenaltyList[index].Amount\r\n\t\t\t}\r\n\t\t vm.UpdatePenaltyList.push(PenaltyDetails);\r\n\t\t\tBonusPaneltyService.UpdateBonusPenalty(vm.UpdatePenaltyList,loggedinUser, token).then(function (resp) {\r\n\t\t\tif(resp.data == \"Updated\" && resp.status == 200)\r\n\t\t\t{\r\n\t\t\t\tif(paneltyEnableDisable==\"paneltyEnableDisable\")\r\n\t\t\t\t\tvm.showSuccess(\"Success\", pmessage);\r\n\t\t\t\telse\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Penalty has been successfully updated\");\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tvm.showFailure(\"Failed\", \"Penalty not updated\");\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\t\r\n}\r\n\r\n});\r\nfunction checktwodecimal(el){\r\n\tvar ex = /^\\d*\\.?\\d{0,2}$/;\r\n\tif(ex.test(el.value)==false){\r\n\t el.value = el.value.substring(0,el.value.length - 1);\r\n\t }\r\n }\nangular.module('inspinia').service('billdetailsService', function (ApiURL,SchedulingAPI,AcessoriesURL, $window, $http) {\r\n\r\n\r\n///////\r\n\r\nthis.GetAllBillsWithFilter = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/ServiceCentreBill/GetAllBillsWithFilter';\r\n return $http.put(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n}\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('billdetailsController', function (billdetailsService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.financePageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n vm.SearchText = '';\r\n\t\t $scope.dates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\t\t var startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\t var endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t\t};\r\n\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.GetAllBillsWithFilter();\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.totalInventory = 0;\r\n $scope.usersStockPageRequest = vm.financePageListCount;\r\n $scope.Requestpagination = {\r\n current: 1,\r\n };\r\n\r\n vm.changeMyStockPageListCount = function () {\r\n $scope.usersStockPageRequest = vm.financePageListCount;\r\n PageSize = $scope.usersStockPageRequest;\r\n // $scope.Requestpagination.current = 1;\r\n $scope.MystockTablePageChanged($scope.Requestpagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t\tPageIndex = $scope.Requestpagination.current;\r\n\t\t\t$scope.MystockTablePageChanged = function (newPage) {\r\n\t\t\t\tPageIndex = newPage;\r\n\t\t\t\tvm.GetAllBillsWithFilter();\r\n\t\t\t };\r\n \r\n };\r\n\t\tPageIndex = $scope.Requestpagination.current;\r\n\r\n $scope.MystockTablePageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetAllBillsWithFilter();\r\n };\r\n \r\n\r\n\t\tvm.GetAllBillsWithFilter = function () {\r\n\t\t\tvm.BillDetails = [];\r\n\t\t\tvar data = {\r\n\t\t\t \"PageIndex\": PageIndex,\r\n\t\t\t \"PageSize\": PageSize,\r\n\t\t\t \"SearchText\": vm.SearchText,\r\n\t\t\t \"FromDate\": startDate,\r\n\t\t\t \"ToDate\": endDate,\r\n\t\t\t \r\n\t\t\t};\r\n\t\t\tbilldetailsService.GetAllBillsWithFilter(data,loggedinUser, token).then(\r\n\t\t\t function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t vm.BillDetails = resp.data.billList;\r\n\t\t\t\t $scope.totalInventory = resp.data.Count;\r\n\t\t\t\t// vm.totalInventoryValue = resp.data.InventoryTotal;\r\n\t\t\t\t if (vm.BillDetails.length < vm.financePageListCount) {\r\n\t\t\t\t\tvm.myStockListLength = $scope.totalInventory;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\tvm.myStockListLength = PageIndex * vm.financePageListCount;\r\n\t\t\t\t\t}\r\n\t\t\t\t if (PageIndex == 1){\r\n\t\t\t\t\tvm.countdpageindexCount = 1;\r\n\t\t\t\t } \r\n\t\t\t\t else{\r\n\t\t\t\t\tvm.countdpageindexCount =\r\n\t\t\t\t\t (PageIndex - 1) * vm.financePageListCount + 1;\r\n\t\t\t\t }\r\n\t\t\t\t}\r\n\t\t\t },\r\n\t\t\t function (error) { }\r\n\t\t\t);\r\n\t\t };\r\n\r\nvm.GetAllBillsWithFilter();\r\n\t \r\nvar debounceTimeout;\r\nvm.searchByText = function () {\r\n if (debounceTimeout) clearTimeout(debounceTimeout);\r\n debounceTimeout = setTimeout(function () {\r\n vm.PageIndex = 1;\r\n vm.GetAllBillsWithFilter();\r\n }, 300); // Adjust delay as needed\r\n};\r\n\r\nvm.clearbilldetails = function(){\r\n\tvm.SearchText = '';\r\n\tvm.GetAllBillsWithFilter();\r\n}\r\n\r\nvm.showPartDetails = false;\r\n\r\nvm.OpenPartDetailPanel = function (s) {\r\n\tvm.PartDetails = s;\r\n\t\r\n\tvm.showPartDetails = true;\r\n}\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('BlockedUserService', function (FreelancerURL, ApiURL, LocationURL, $log, $http) {\r\n\r\n \r\n\r\n //https://login.mymobiforce.com/freelancerapi/api/FreelancerRecharge/F00000000121/getrechargehistorybyself?StartDate=&EndDate=\r\n \r\n //https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/GetBlockedFreelancersByAccount/U400000000001\r\n\r\n this.getBlockedUser = function (userId, token) {\r\n var url = FreelancerURL + \"/api/FreeLancerUser/GetBlockedFreelancersByAccount/\" + userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token, \r\n 'UserId':userId\r\n }\r\n });\r\n }\r\n\r\n //http://localhost:50144/api/FreelancerAccount/F00000000000/F00000000106/getaccountbyfreelancerid\r\n this.GetFreelancerBalance = function (loggedinUser, freelancerId, token) {\r\n var url = FreelancerURL + '/api/FreelancerAccount/' + loggedinUser + '/' + freelancerId + '/getaccountbyfreelancerid';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/Block/U400000000001/F00000000664/true\r\n this.UnBlockedSingleUser = function(loggedinUser, userId, status, token){\r\n var uservendorid = userId.charAt(0)\r\n if(uservendorid==\"F\"){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Block/' + loggedinUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n \r\n else if(uservendorid==\"V\"){\r\n//https://perf.mymobiforce.com/freelancerapi/api/FreelancerVendor/Block/U400000000001/V00000000006/true\r\n var url = FreelancerURL + '/api/FreelancerVendor/Block/' + loggedinUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n\r\n }\r\n }\r\n\r\n// //https://perf.mymobiforce.com/freelancerapi/api/FreelancerVendor/Block/U400000000001/V00000000006/true\r\n// this.UnBlockedSingleVendor = function(loggedinUser, vendorId, status, token){\r\n// debugger\r\n// var url = FreelancerURL + '/api/FreelancerVendor/Block/' + loggedinUser + '/'+ vendorId +'/'+status;\r\n// return $http.put(url, null, {\r\n// headers: { 'Content-Type': 'application/json', 'Token':token }\r\n// });\r\n// }\r\n\r\n})\nangular.module('inspinia').controller('BlockUserController', function(toaster, BlockedUserService, HelpDeskHomeAdminService, \r\n\t$state ,$localStorage, $scope, DTOptionsBuilder, DTColumnDefBuilder, PublicApiURL, $log, \r\n\tHelpDeskCustomerViewService, $uibModal, JobTicketViewService, $q, $timeout, ImageUrl) {\r\n\tvm = this;\r\n\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.BlokedUserList = [];\r\n\t\tvm.currentPage = 1;\r\n\t\tvm.pageSize = 20;\r\n\t\t\r\n\t vm.availableSearchParams = [\r\n\t { key: \"TemplateName\", name: \"TemplateName\", placeholder: \"TemplateName...\" }\r\n\t // { key: \"city\", name: \"City\", placeholder: \"City...\" },\r\n\t // { key: \"country\", name: \"Country\", placeholder: \"Country...\" },\r\n\t // { key: \"emailAddress\", name: \"E-Mail\", placeholder: \"E-Mail...\", allowMultiple: true },\r\n\t // { key: \"job\", name: \"Job\", placeholder: \"Job...\" }\r\n\t\t];\r\n\t\tvm.getPicUrl = function (profilePicName) {\r\n\t\t\treturn profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n\t\t }\r\n\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\r\n\r\n\r\n\t\tvm.getBlokedUser = function(){\r\n\t\t\tBlockedUserService.getBlockedUser(loggedinUser,token).then(function(resp){\r\n\t\t\t\tvm.BlokedUserList = [];\r\n\t\t\t\tvm.BlokedUserList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.unblockSingleUser = function(userid){\r\n\t\t\tBlockedUserService.UnBlockedSingleUser(loggedinUser,userid,true,token).then(function(resp){\r\n\t\t\t\tif(resp.status == '202'){\r\n\t\t\t\t\tvm.showSuccess('Success', \"User Unblock successfully \");\r\n\t\t\t\t\tvm.UnBlockedUserModal.close();\r\n\t\t\t\t\tvm.getBlokedUser();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// vm.UnBlockedSingleVendor = function(vendorid){\r\n\t\t// \tdebugger\r\n\t\t// \tBlockedUserService.UnBlockedSingleUser(loggedinUser,vendorid,true,token).then(function(resp){\r\n\t\t// \t\tif(resp.status == '202'){\r\n\t\t// \t\t\tvm.showSuccess('Success', \"User successfully blocked\");\r\n\t\t// \t\t\tvm.UnBlockedUserModal.close();\r\n\t\t// \t\t}\r\n\t\t// \t})\r\n\t\t// }\r\n\r\n\t\tvm.getBlokedUser();\r\n\r\n\r\n\r\n\t\tvm.Filter = function () {\r\n\t\t\tvm.AllBookingList ='';\r\n\t\t\t $scope.selected = null;\r\n\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Filter.html',\r\n\t\t\t\tsize :'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\r\n\t\t}\r\n\t\tvm.CloseFilter = function(){\r\n\t\t\tFilter.close();\r\n\t\r\n\t\t}\r\n\t\tvm.Email = function () {\r\n\t\t\tvm.AllBookingList ='';\r\n\t\t\t $scope.selected = null;\r\n\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Email.html',\r\n\t\t\t\tsize :'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\r\n\t\t}\r\n\t\r\n\t\tvm.InApp = function () {\r\n\t\t\tvm.AllBookingList ='';\r\n\t\t\t $scope.selected = null;\r\n\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'InApp.html',\r\n\t\t\t\tsize :'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\r\n\t\t}\r\n\t\tvm.Preffered = function () {\r\n\t\t\tvm.AllBookingList ='';\r\n\t\t\t $scope.selected = null;\r\n\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Preffered.html',\r\n\t\t\t\tsize:'sm',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\r\n\t\t}\r\n\t\t// vm.UnBlock = function () {\r\n\t\t// \tvm.AllBookingList ='';\r\n\t\t// \t $scope.selected = null;\r\n\r\n\t\t// \tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t// \t\ttemplateUrl: 'UnBlock.html',\r\n\t\t// \t\tsize:'sm',\r\n\t\t// \t\tscope: $scope\r\n\t\t// \t});\r\n\t\t\r\n\t\t// }\r\n\r\n\t\tvm.unblockeduser=[];\r\n\t\tvm.UnBlocked = function (UserId) {\r\n\t\t\tvm.unblockeduser=UserId;\r\n\t\t\tvm.selectedInvoice = UserId;\r\n\t\t\tvm.UnBlockedUserModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'UnBlock.html',\r\n\t\t\t\tsize:'sm',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\treload:true\r\n\t\t\t});\r\n\t\t\r\n\t\t}\r\n\r\n\t\tvm.UnBlockedUser = function () {\r\n\t\t\tvm.UnBlockedUserModal.close();\r\n\t\t}\r\n\r\n\r\n\t\tvm.Addtalent = function () {\r\n\t\t\tvm.AllBookingList ='';\r\n\t\t\t $scope.selected = null;\r\n\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Addtalent.html',\r\n\t\t\t\tsize :'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t\r\n\t\t}\r\n\r\n\t\r\n\t\r\n\r\n}\r\n});\nangular.module('inspinia').service('BGVerificationService', function (ApiURL, PublicApiURL, ActivityURL, LocationURL, $http, FreelancerURL, SchedulingAPI) {\r\n\r\n this.SendCommunicationInvite = function (UserId, type, step, loggedinUser, token) {\r\n var url = ApiURL + '/api/Ticket/SendCommunicationInviteOnBoarding?UserId=' + UserId + '&Type=' + type + '&Step=' + step;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n this.GetAllInteractions = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetAllInteractions';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllInteractionsDashboard = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetAllInteractionsDashboard';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.AssignSlotInteractionToUser = function (data, userId, InteractionType, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/AssignSlotInteractionToUser?AssignToUser=' + userId + '&InteractionType=' + InteractionType;\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAvailableSlots = function (selectedDate, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/GetAvailableSlotsForBGVerification?date=' + selectedDate;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n\r\n }\r\n });\r\n }\r\n\r\n this.BookSlotForBGVerification = function (userId, selectedDate, slotIndex, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/RescheduleslotForBGVerificationWeb?UserId=' + userId + '&date=' + selectedDate + '&SlotId=' + slotIndex;\r\n return $http.put(url, null, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n});\nangular.module('inspinia').controller('BGVerificationController', function (BGVerificationService,OnBoardingFlowService, ReferService, ScheduleAssignService, $q, $log, $filter, $state, $localStorage, UIURL, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, uiCalendarConfig, ImageUrl, PublicApiURL, $window) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n var accountid = $localStorage.accountConfig.AccountId;\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n vm.sorttype = \"desc\";\r\n vm.SortType = \"desc\";\r\n vm.SortField = 'CreatedOn';\r\n vm.InteractionList = [];\r\n vm.assignButtonDisable = false;\r\n vm.bGVerifyListLength = 0;\r\n vm.userPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.InteractionType = 'BGVerify';\r\n vm.statusList = [\"Completed\", \"Assigned\"];\r\n vm.AssignedTo = '';\r\n vm.slotStatus = 'Assigned';\r\n vm.DateField = 'CreatedOn';\r\n vm.State = '';\r\n vm.City = '';\r\n vm.userskill = '';\r\n vm.disableuploadbutton = false;\r\n var startDate = moment().subtract(7, 'day').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.bookingdates = { startDate: moment().subtract(7, 'day'), endDate: moment() };\r\n vm.bookingRanges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n // start calender\r\n var scheduleStartDate = new Date();\r\n var scheduleEndDate = new Date();\r\n scheduleEndDate.setDate(scheduleEndDate.getDate() + 6);\r\n vm.slotBookingdates = { scheduleStartDate: moment().subtract(7, 'day'), scheduleEndDate: moment() };\r\n $scope.showCalendar = false;\r\n $scope.showBookingTab = false;\r\n vm.slotDate = $filter('date')(new Date(), 'yyyy-MM-dd');\r\n $scope.toggleCalendar = function (userId) {\r\n vm.slotBookingUserId = userId;\r\n vm.GetAvailableSlots(vm.slotDate);\r\n $scope.showBookingTab = true;\r\n $scope.showCalendar = !$scope.showCalendar;\r\n };\r\n $scope.dateClicked = function () {\r\n vm.slotDate = $filter('date')(new Date(vm.slotBookingdates), 'yyyy-MM-dd');\r\n vm.GetAvailableSlots(vm.slotDate);\r\n };\r\n $scope.dateOptions = {\r\n formatYear: 'yyyy',\r\n startingDay: 1,\r\n minDate: scheduleStartDate,\r\n maxDate: scheduleEndDate\r\n };\r\n $scope.date = scheduleStartDate;\r\n\r\n\r\n\r\n ////end calender\r\n var scdt = new Date();\r\n scdt.setMinutes(scdt.getMinutes() + 30);\r\n vm.SourceCreationDate = scdt;\r\n var pcdt = new Date();\r\n pcdt.setDate(pcdt.getDate() + 7);\r\n vm.PlannedClosureDate = pcdt;\r\n\r\n vm.openCalendar = function (e, picker) {\r\n vm.ClosureDateTime.open = true;\r\n };\r\n var plannedclosuredatelimit = new Date();\r\n plannedclosuredatelimit.setMinutes(plannedclosuredatelimit.getMinutes() + 1)\r\n vm.ClosureDateTime = { date: '', datepickerOptions: { minDate: plannedclosuredatelimit } };\r\n\r\n var date = new Date();\r\n var d = date.getDate();\r\n var m = date.getMonth();\r\n var y = date.getFullYear();\r\n vm.eventsF = function (start, end, timezone, callback) {\r\n var s = new Date(start).getTime() / 1000;\r\n var e = new Date(end).getTime() / 1000;\r\n var m = new Date(start).getMonth();\r\n var events = [{\r\n title: 'Feed Me ' + m,\r\n start: s + (50000),\r\n end: s + (100000),\r\n allDay: false,\r\n className: ['customFeed']\r\n }];\r\n callback(events);\r\n };\r\n\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n if (vm.InteractionType == 'BGVerify') {\r\n vm.InteractionType = 'BGVerify'\r\n }\r\n if (vm.InteractionType == 'SMEInteration') {\r\n vm.InteractionType = 'SMEInteration'\r\n }\r\n $scope.Userpagination = {};\r\n PageIndex = 1;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n };\r\n\r\n\r\n vm.toBeAssigned = [];\r\n vm.implementSelectItemsUsers = function (itemList, scope) {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n scope.selectRowUsers = function (i) {\r\n scope.showMinusUsers = false;\r\n scope.selectAllUsers = false;\r\n angular.forEach(scope[itemList], function (d) {\r\n if (d.checked) {\r\n vm.toBeAssigned.push(d.UserId)\r\n scope.showMinusUsers = true;\r\n }\r\n\r\n });\r\n }\r\n scope.applyAllNewJobSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllUsers;\r\n });\r\n }\r\n\r\n scope.resetAllSelect = function () {\r\n scope.selectAllUsers = false;\r\n scope.showMinusUsers = false;\r\n }\r\n }\r\n\r\n vm.implementSelectItemsUsers('InteractionList', this);\r\n\r\n\r\n vm.AssignTickets = function (userId) {\r\n if (vm.toBeAssigned.length <= 1) {\r\n vm.showFailure(\"Failed\", 'Please select atleast 1 user to assign');\r\n } else {\r\n vm.assignButtonDisable = true;\r\n BGVerificationService.AssignSlotInteractionToUser(vm.toBeAssigned, userId, vm.InteractionType, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\", \"Users assigned successfully\");\r\n vm.assignButtonDisable = false;\r\n $timeout(function () {\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n vm.toBeAssigned = [];\r\n }, 2000);\r\n\r\n } else {\r\n vm.showFailure(\"Failed\", \"User could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"User could not be assigned, server is not responding correctly.\");\r\n vm.assignButtonDisable = false;\r\n })\r\n }\r\n }\r\n\r\n\r\n $scope.totalTableUsersBG = 0;\r\n $scope.userSMETablePerPage = vm.userPageListCount;\r\n $scope.UserSMETablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeUserSMEPageListCount = function () {\r\n $scope.userSMETablePerPage = vm.userPageListCount;\r\n PageSize = $scope.userSMETablePerPage;\r\n $scope.UserSMETablepageChanged($scope.UserSMETablepagination.current);\r\n }\r\n\r\n PageIndex = $scope.UserSMETablepagination.current;\r\n $scope.UserSMETablepageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetAllInteractions();\r\n };\r\n\r\n $scope.totalTableUsersBG = 0;\r\n $scope.userTablePerPage = vm.userPageListCount;\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n\r\n vm.changeUserPageListCount = function () {\r\n $scope.userTablePerPage = vm.userPageListCount;\r\n PageSize = $scope.userTablePerPage;\r\n $scope.UserTablepageChanged($scope.UserTablepagination.current);\r\n }\r\n\r\n PageIndex = $scope.UserTablepagination.current;\r\n $scope.UserTablepageChanged = function (newPage) {\r\n PageIndex = newPage;\r\n vm.GetAllInteractions();\r\n };\r\n\r\n\r\n vm.GetAllInteractions = function () {\r\n data = {\r\n \"Status\": vm.slotStatus,\r\n \"Skill\": vm.userskill == \"\" ? \"\" : vm.userskill.join(\"|\"),\r\n \"DateField\": vm.DateField,\r\n \"FromDate\": startDate,\r\n \"ToDate\": endDate,\r\n \"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n \"InteractionType\": vm.InteractionType,\r\n \"PageIndex\": PageIndex,\r\n \"PageCount\": PageSize,\r\n \"State\": vm.State,\r\n \"City\": vm.City\r\n }\r\n BGVerificationService.GetAllInteractions(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.InteractionList = resp.data.GetInteractionResModelList;\r\n $scope.totalTableUsersBG = resp.data.Count;\r\n if (vm.InteractionList.length < vm.userPageListCount)\r\n vm.bGVerifyListLength = $scope.totalTableUsersBG;\r\n else\r\n vm.bGVerifyListLength = PageIndex * vm.userPageListCount;\r\n if (PageIndex == 1)\r\n vm.pageindexCount = 1;\r\n else\r\n vm.pageindexCount = (((PageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n\r\n })\r\n }\r\n\r\n vm.GetAllInteractionsDashboard = function () {\r\n data = {\r\n \"Status\": vm.slotStatus,\r\n \"Skill\": vm.userskill == \"\" ? \"\" : vm.userskill.join(\"|\"),\r\n \"DateField\": vm.DateField,\r\n \"FromDate\": startDate,\r\n \"ToDate\": endDate,\r\n \"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n \"InteractionType\": vm.InteractionType,\r\n \"PageIndex\": PageIndex,\r\n \"PageCount\": PageSize,\r\n \"State\": vm.State,\r\n \"City\": vm.City\r\n }\r\n BGVerificationService.GetAllInteractionsDashboard(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.TotalSlots = resp.data.TotalSlots;\r\n vm.AssignedSlots = resp.data.AssignedSlots;\r\n vm.PendingSlots = resp.data.PendingSlots;\r\n vm.CompletedSlots = resp.data.CompletedSlots;\r\n vm.BreachedSlots = resp.data.BreachedSlots;\r\n }\r\n\r\n })\r\n }\r\n\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n\r\n /// video upload\r\n vm.VideoUploadPopup = function (UserId, UserSkill) {\r\n vm.UserIdForVideo = UserId;\r\n vm.UserSkillForVideo = UserSkill;\r\n VideoModel = $uibModal.open({\r\n templateUrl: 'videoupload_model.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n }, function () {\r\n });\r\n \r\n}\r\n vm.file = [];\r\n $scope.uploadVideoFile = function(files){ \r\n vm.FrontFileName=\"\";\r\n vm.FilesFrontDoc = files.files;\r\n vm.FrontFileName = vm.FilesFrontDoc[0].name; \r\n vm.file.push(vm.FilesFrontDoc);\t\r\n var allowedExtensions = /(\\.mp4|\\.mov|\\.avi|\\.webm|\\.m4v|\\.qt)$/i; \r\n if(!allowedExtensions.exec(vm.FrontFileName)){\r\n vm.FilesFrontDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .mp4,.mov,.avi,.webm,.m4v,.qt only.');\r\n }\r\n }\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n };\r\n\r\n $scope.stars = [1, 2, 3, 4, 5];\r\n $scope.skillrating = 0;\r\n\r\n $scope.setRating = function(rating) {\r\n $scope.skillrating = rating;\r\n };\r\n\r\n vm.UploadVideo = function () {\r\n var Feedback = vm.FeedbackRemarks;\r\n var Rating = $scope.skillrating;\r\n vm.disableuploadbutton = true;\r\n OnBoardingFlowService.UploadBGInteractionVideo(vm.UserIdForVideo,Rating, Feedback,vm.FrontFileName, vm.FilesFrontDoc, token, loggedinUser).then(function (res) {\r\n if (res && res.status == 201) {\r\n vm.showSuccess(\"Success\", \"Video Uploaded Successfully.\");\r\n vm.VideoUploadPop();\r\n vm.disableuploadbutton = false;\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", \"Not Uploaded\");\r\n vm.VideoUploadPop();\r\n vm.disableuploadbutton = false; \r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n });\r\n }\r\n\r\n vm.VideoUploadPop = function () {\r\n VideoModel.close();\r\n $scope.skillrating = 0;\r\n vm.FeedbackRemarks = \"\";\r\n }\r\n\r\n vm.ProfileEditView = function (userId) {\r\n $state.go('index.RegistrationForm', {\r\n UserId: userId\r\n })\r\n }\r\n\r\n vm.getAllUsersByType = function (value) {\r\n $scope.totalTableUsersBG = 0;\r\n if (value == 'BGVerify') {\r\n vm.InteractionType = 'BGVerify'\r\n }\r\n if (value == 'SMEInteration') {\r\n vm.InteractionType = 'SMEInteration'\r\n }\r\n $scope.UserTablepagination = {};\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n $scope.UserSMETablepagination = {};\r\n $scope.UserSMETablepagination = {\r\n current: 1\r\n };\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n\r\n }\r\n\r\n vm.getAllSlotsByStatus = function (status) {\r\n vm.slotStatus = status;\r\n PageIndex = 1;\r\n vm.GetAllInteractions();\r\n }\r\n\r\n vm.OpenSMEPopUp = function (userDetail) {\r\n vm.userName = userDetail.UserName;\r\n vm.userId = userDetail.UserId;\r\n SMEInteractionModel = $uibModal.open({\r\n templateUrl: 'SME_Interaction_model.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n }, function () {\r\n });\r\n }\r\n\r\n vm.closeInteractionPopUp = function () {\r\n SMEInteractionModel.close();\r\n }\r\n\r\n vm.GetAvailableSlots = function (slotDate) {\r\n vm.slotDate = slotDate\r\n BGVerificationService.GetAvailableSlots(slotDate, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.AvailableSlots = resp.data.objAvailableSlotModelList;\r\n if(vm.AvailableSlots.length != 0){\r\n $scope.showBookingTab = true;\r\n }\r\n else{\r\n $scope.showBookingTab = false;\r\n }\r\n $scope.selectedTimeSlot = vm.AvailableSlots[0];\r\n }\r\n })\r\n }\r\n vm.SlotId = '';\r\n vm.disableBookingButton = false;\r\n vm.BookSlotForBGVerification = function () {\r\n vm.disableBookingButton = true;\r\n BGVerificationService.BookSlotForBGVerification(vm.slotBookingUserId, vm.slotDate, vm.SlotId, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n $scope.toggleCalendar();\r\n vm.showSuccess(\"Success\", resp.data.Message);\r\n $timeout(function () {\r\n vm.GetAllInteractions();\r\n vm.GetAllInteractionsDashboard();\r\n }, 2000);\r\n vm.disableBookingButton = false;\r\n }\r\n else {\r\n vm.disableBookingButton = false;\r\n vm.showFailure(\"Failed\", resp.data.Message);\r\n\r\n }\r\n })\r\n }\r\n\r\n vm.SendCommunicationInvite = function (type, Step) {\r\n // if($scope.AudioCallInitiated == false && type == 'Audio') {\r\n if (type == 'Audio') {\r\n BGVerificationService.SendCommunicationInvite(UserId, type, Step, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n {\r\n vm.connectionLink = resp.data;\r\n vm.showSuccess(\"Success\", \"Audio call request initiated\");\r\n // vm.PollVideoCallFieldLocation();\t\r\n // $scope.AudioCallInitiated = true;\t\t\t\t\r\n\r\n }\r\n }\r\n });\r\n }\r\n else if (type == 'Video') {\r\n BGVerificationService.SendCommunicationInvite(UserId, type, Step, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n {\r\n vm.connectionLink = resp.data;\r\n vm.showSuccess(\"Success\", \"Video call request initiated\");\r\n // vm.PollVideoCallFieldLocation();\t\r\n // $scope.VideoCallInitiated = true;\t\t\t\t\r\n\r\n }\r\n }\r\n });\r\n }\r\n else if (type == 'Text') {\r\n BGVerificationService.SendCommunicationInvite(UserId, type, Step, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n {\r\n vm.connectionLink = resp.data;\r\n vm.showSuccess(\"Success\", \"Communication Request Initiated\");\r\n // vm.PollVideoCallFieldLocation();\t\r\n // $scope.ChatInitiated = true;\t\t\t\t\r\n\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n }\r\n});\r\n\r\nangular.module('inspinia').filter('searchUser', function () {\r\n return function (items, search) {\r\n var filtered = [];\r\n if (search) {\r\n angular.forEach(items, function (item) {\r\n var searchstr = new RegExp(search, \"i\");\r\n if (item.id.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.User_Type.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.city.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.contactnumber.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.name.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.role.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n else if (item.state.match(searchstr)) {\r\n filtered.push(item);\r\n }\r\n });\r\n } else {\r\n filtered = items;\r\n }\r\n return filtered;\r\n }\r\n})\nangular.module('inspinia').service('AutoScheduleSettingsService', function (ApiURL, FreelancerURL,LocationURL,PublicApiURL, $log, $http,$localStorage,$window) {\r\n\r\n // vm.updateSetting = function(loggedinUser, data, token){\r\n // $http.post(ApiURL + '/api/ReportSchedule/cron?userId='+loggedinUser, data, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId':loggedinUser } }).then(function (res) {\r\n \r\n // })\r\n // }\r\n});\nangular.module('inspinia').controller('AutoScheduleSettingsController', function (AutoScheduleSettingsService, ReferService, toaster, $filter, $rootScope, PublicApiURL, $window, $log, $q, $compile, DTOptionsBuilder, DTColumnDefBuilder, DTColumnBuilder, $uibModal, $localStorage, ticketTemplateService, $scope, $state, FreelancerURL, ApiURL, $timeout) {\r\n vm = this;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else { \r\n \r\n vm.showTimes=[];\r\n vm.timeSlotDay =[];\r\n vm.autoTimeWindow=\"\";\r\n vm.broadcastCount=\"\";\r\n vm.jobsBroadcast=\"\";\r\n vm.timeWindow = [];\r\n vm.timeslot =[];\r\n\r\n vm.addTimesDay = function() {\r\n vm.timeSlotDay;\r\n }\r\n\r\n vm.addTimes = function() {\r\n vm.showTimes.push(vm.timeslot);\r\n }\r\n\r\n vm.removeTime = function(index) {\r\n vm.showTimes.splice(index,1);\r\n }\r\n\r\n for (var i = 0; i <= 30; i++) {\r\n vm.timeWindow.push(i);\r\n }\r\n\r\n vm.updateSetting = function(){ \r\n var data = {};\r\n data = {\r\n\r\n \"UserId\": loggedinUser,\r\n \"time\": vm.showTimes,\r\n \"timeWindow\":vm.autoTimeWindow,\r\n \"showTime\": vm.timeSlotDay,\r\n \"jobsBroadcast\":vm.jobsBroadcast,\r\n \"broadcastCount\":vm.broadcastCount\r\n\r\n } \r\n \r\n AutoScheduleSettingsService.updateSetting(data, token, loggedinUser).then(function(res){\r\n if (res && res.status == 201) { \r\n } \r\n });\r\n }\r\n \r\n }\r\n});\r\n \nangular.module('inspinia').service('AssignationRuleService', function ($log, $http, CronUrl, SchedulingAPI, ApiURL) {\r\n\r\n vm = this;\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AutoAssignScheduler/GetSchedulerConfig?reqUserId=U350000000001\r\n vm.getAssignationRule = function(loggedinUser,token){\r\n var url = SchedulingAPI + '/api/AutoAssignScheduler/GetSchedulerConfig?reqUserId=' + loggedinUser ; \r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AutoAssignScheduler/PutSchedulerConfigList?reqUserId=U350000000001\r\n vm.SaveAssignationRule = function(loggedinUser, ruleList, token, success, failure){\r\n var url = SchedulingAPI + '/api/AutoAssignScheduler/PutSchedulerConfigList?reqUserId='+ loggedinUser;\r\n $http.put(url,ruleList,{headers: {'Content-Type': 'application/json','Token': token, 'UserId': loggedinUser}}).then(success,failure);\r\n }\r\n\r\n\r\n\r\n});\r\n\r\n\nangular.module('inspinia').controller('AssignationRuleController', function ($uibModal, DTOptionsBuilder, DTColumnBuilder, $compile, $q, DTColumnDefBuilder, $scope, $log, AssignationRuleService, $localStorage, ReportService, DashboardURL) {\r\n var vm = this;\r\n\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n\r\n var token = $localStorage.token;\r\n\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\r\n var token = $localStorage.token;\r\n vm.schedules = [];\r\n vm.selectStatus = {};\r\n \r\n // report - assignRule\r\n vm.dtInstance = {};\r\n vm.selected = {};\r\n vm.toggleOne = toggleOne;\r\n vm.changePriority = changePriority;\r\n vm.setPriorityIndex = {};\r\n // vm.getAllassignationrule = function(){\r\n // ScheduledReportService.getAssignationRule(loggedinUser, token).then(function(resp){\r\n // vm.AssignationRuleList = resp.data;\r\n // });\r\n // }\r\n // // vm.getAllassignationrule();\r\n\r\n vm.dtOption = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n AssignationRuleService.getAssignationRule(loggedinUser, token).then(function (resp) {\r\n vm.AssignationRuleList = resp.data;\r\n // console.log(vm.AssignationRuleList);\r\n defer.resolve(vm.AssignationRuleList);\r\n });\r\n\r\n return defer.promise;\r\n }).withDOM('<\"html5buttons\"B>lTfgitp').withPaginationType('full_numbers')\r\n .withOption('order', []).withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompileds) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompileds = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n vm.dtColumn = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected[meta.row] = data.IsEnable;\r\n return '';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('RuleId').renderWith(function (data) {\r\n return '' + data + '';\r\n }).notSortable(),\r\n // DTColumnBuilder.newColumn('RuleType').withTitle('RuleType').renderWith(function (data) {\r\n // return '' + data + '';\r\n // }),\r\n DTColumnBuilder.newColumn('OrderByName').withTitle('Name').notSortable(),\r\n DTColumnBuilder.newColumn('Description').withTitle('Description').renderWith(function (data) {\r\n return '' + data + '';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn(null).withTitle('Priority Index').renderWith(function (data, type, full, meta) {\r\n \r\n vm.setPriorityIndex[meta.row] = data.PriorityIndex.toString();\r\n if(full.RuleType!=\"AssignFilter\"){\r\n return ' ';\r\n }\r\n return '';\r\n // return '' + data + '';\r\n }).notSortable()\r\n // DTColumnBuilder.newColumn('IsEnable').withTitle('IsEnable'), \r\n ];\r\n\r\n function toggleOne(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.AssignationRuleList[id].IsEnable = selectedItems[id];\r\n }\r\n }\r\n \r\n }\r\n\r\n function changePriority(allActivity){\r\n for (var id in allActivity) {\r\n if (allActivity.hasOwnProperty(id)) {\r\n vm.AssignationRuleList[id].PriorityIndex = Number(allActivity[id]);\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.SaveAssignationRule = function(){\r\n if(vm.AssignationRuleList.length > 0){\r\n AssignationRuleService.SaveAssignationRule(loggedinUser, vm.AssignationRuleList, token, function (res) {\r\n if (res.data) {\r\n vm.showSuccess(\"Success\", \"Successfully Save Scheduling Rules\");\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to Save Scheduling Rule.\");\r\n });\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n});\nangular.module('inspinia').service('AssignedProfileToUserService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('AssignedProfileToUserController', function (AssignedProfileToUserService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount ; \r\n\t\t$scope.TicketTablepagination = {\r\n\t\t current: 1\r\n\t\t};\r\n\t\r\n\t\r\n\t\tvm.changeTicketPageListCount = function() { \r\n\t\t $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t PageSize = $scope.ticketTablePerPage;\r\n\t\t $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t}\r\n\r\n\t\tPageIndex=$scope.TicketTablepagination.current;\r\n\t\t$scope.TicketTablepageChanged = function(newPage) { \r\n\t\t PageIndex = newPage; \r\n\t\t vm.getAllJobForExceptionList();\r\n\t\t};\r\n\r\n\t\tvm.scheduleExceptionListNew=[];\r\n \r\n\t\tvm.AddNewProfileModalOpen = function () {\r\n\t\t\tvm.addnewprofile = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'AddNewProfile.html',\r\n\t\t\t\tsize: 'md',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n \r\n\tvm.CloseNewProfileModal = function () {\r\n\tvm.addnewprofile.close();\r\n\t}\r\n\tvm.ExistingProfile = \"Dispatch Head\"; \r\n\r\n\tvm.profiles = [\r\n\t\t{ name: \"Sumant Kumar\", username: \"SumantKumar352\", role: \"Service Center Manager\", customChecked: true, profile: \"Dispatch Head\" },\r\n\t\t{ name: \"Amit Sharma\", username: \"AmitSharma123\", role: \"Technician Lead\", customChecked: true, profile: \"Dispatch Head\" },\r\n\t\t{ name: \"Neha Verma\", username: \"NehaVerma456\", role: \"Customer Service Executive\", customChecked: true, profile: \"Dispatch Head\" },\r\n\t\t{ name: \"Rahul Mehta\", username: \"RahulMehta789\", role: \"Parts & Inventory Manager\", customChecked: true, profile: \"Dispatch Head\" }\r\n\t];\r\n\t\r\n\r\n\t// Function to Save a New Profile\r\n\tvm.SaveProfile = function() {\r\n\t\tif (vm.ProfileName) {\r\n\t\t\tvm.profiles.push({\r\n\t\t\t\tname: vm.ProfileName,\r\n\t\t\t\tcustomChecked: false ,// Default unchecked\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t\tvm.showSuccess(\"Success\",\"Profile Created Successfully\");\r\n\t\t\t// Clear input field after saving\r\n\t\t\tvm.ProfileName = \"\";\r\n\t\t\tvm.CloseNewProfileModal();\r\n\t\t}\r\n\t};\r\n\tvm.SavecloneProfile = function() {\r\n\t\tif (vm.ProfileName) {\r\n\t\t\tvm.profiles.push({\r\n\t\t\t\tname: vm.ProfileName,\r\n\t\t\t\tcustomChecked: true, \r\n\t\t\t\tisCloned: true\r\n\t\t\t});\r\n\t\t\tvm.showSuccess(\"Success\",\"Profile Clone Successfully\");\r\n\t\t\t// Clear input field after saving\r\n\t\t\tvm.ProfileName = \"\";\r\n\t\t\t\r\n\t\t\tvm.CloseCloneModal();\r\n\t\t}\r\n\t};\r\n\t \r\n\tvm.CloneProfileModalOpen = function (selectedProfile) {\r\n\t\tvm.SelectedProfile = selectedProfile;\r\n\t\tvm.ProfileName = '';\r\n\t\t// vm.SelectedProfile.isCloned = true;\r\n\t\t// vm.SelectedProfile.customChecked = true; \t\t\r\n\t\tvm.cloneprofile = $uibModal.open({\r\n\t\t\ttemplateUrl: 'CloneProfile.html',\r\n\t\t\tsize: 'md',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\r\nvm.CloseCloneModal = function () {\r\nvm.cloneprofile.close();\r\n}\r\nvm.DeleteProfile = function(profile) {\r\n if (!vm.profiles || !profile) {\r\n console.error(\"Profiles list or profile is undefined\");\r\n return;\r\n }\r\n\r\n for (var i = 0; i < vm.profiles.length; i++) {\r\n if (vm.profiles[i].name === profile.name) {\r\n vm.profiles.splice(i, 1); // Remove the row from the list\r\n vm.showSuccess(\"Success\", \"Profile Deleted Successfully\");\r\n console.log(\"Profile deleted:\", profile);\r\n return; // Stop loop after deleting\r\n }\r\n }\r\n\r\n console.warn(\"Profile not found in list\");\r\n};\r\n\r\nvm.OpenProfileOverview = function(){\r\n\t$state.go('index.ProfileManagementDetail',{\r\n\t \r\n\t}, { reload: true });\r\n \r\n}\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('Assests360ViewService', function (ApiURL, $http, FreelancerURL, LocationURL) {\r\n\r\n this.getUserInfo = function (userId,loggedInUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId +'/'+ loggedInUser+ '/'+ 'byUserIdWithJobCount' ;\r\n\t return $http.get(url,{\r\n\t headers:{'Content-Type' : 'application/json','Token':token, 'UserId':loggedInUser}\r\n\t })\r\n\t}\r\n\r\n}\r\n)\r\n\nangular.module('inspinia').controller('Assests360ViewController', function ($scope, $state, $filter,MainService,TeamProfileService, OnBoardingFormService, $log, $stateParams, $localStorage,$uibModal, DTColumnDefBuilder, DTOptionsBuilder, ImageUrl) {\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n // if (!loggedinUser || !userId) {\r\n\r\n // $state.go('Login', {\r\n // reload: true\r\n // });\r\n\r\n // } else {\r\n // var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n $scope.showOptions1 = false;\r\n $scope.showOptions2 = false;\r\n $scope.showOptions3 = false;\r\n $scope.showOptions4 = false;\r\n $scope.showOptions5 = false;\r\n $scope.showOptions6 = false;\r\n $scope.showOptions7 = false;\r\n $scope.showOptions8 = false;\r\n $scope.showOptions9 = false;\r\n $scope.showOptions10 = false;\r\n $scope.showOptions11 = false;\r\n $scope.showOptions12 = false;\r\n $scope.showOptions13 = false;\r\n $scope.showOptions14 = false;\r\n $scope.showOptions15 = false;\r\n $scope.showOptions16 = false;\r\n $scope.showOptions17 = false;\r\n $scope.showOptions18 = false;\r\n $scope.showOptions19 = false;\r\n $scope.showOptions20 = false;\r\n $scope.showOptions21 = false;\r\n $scope.showOptions22 = false;\r\n $scope.showOptions23 = false;\r\n $scope.showOptions24 = false;\r\n vm.AddAssestsModal = function () {\r\n vm.AssestsModal = $uibModal.open({\r\n templateUrl: 'addassests.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeAssetsModal = function () {\r\n vm.AssestsModal.close();\r\n \r\n }\r\n vm.ReallocateModal = function () {\r\n vm.reallocateModal = $uibModal.open({\r\n templateUrl: 'reallocate.html',\r\n backdrop: 'static',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n }\r\n\r\n vm.closeReallocateModal = function () {\r\n vm.reallocateModal.close();\r\n \r\n }\r\n vm.showPartDetails = false;\r\n vm.OpenPartDetailPanel = function () {\r\n vm.showPartDetails = true;\r\n }\r\n \r\n // }\r\n});\r\n\nangular.module('inspinia').service('AppsMenusConfigeService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('AppsMenusConfigeController', function (AppsMenusConfigeService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount ; \r\n\t\t$scope.TicketTablepagination = {\r\n\t\t current: 1\r\n\t\t};\r\n\t\r\n\t\r\n\t\tvm.changeTicketPageListCount = function() { \r\n\t\t $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t PageSize = $scope.ticketTablePerPage;\r\n\t\t $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t}\r\n\r\n\t\tPageIndex=$scope.TicketTablepagination.current;\r\n\t\t$scope.TicketTablepageChanged = function(newPage) { \r\n\t\t PageIndex = newPage; \r\n\t\t vm.getAllJobForExceptionList();\r\n\t\t};\r\n\r\n\t\tvm.isEditMode = false;\r\n\r\n\t\tvm.objectSettings = {\r\n\t\t\ttabDefault: 'Default On'\r\n\t\t};\r\n\t\tvm.permissions = [\r\n\t\t\t{ name: 'Dashboard', visible: true, default: true },\r\n\t\t\t{ name: 'Service Center Creation', visible: true,default: false },\r\n\t\t\t{ name: 'All Users List', visible: true,default: false },\r\n\t\t\t{ name: 'Users Slot Allocation', visible: true,default: false },\r\n\t\t\t{ name: 'All Active Users', visible: true,default: false },\r\n\t\t\t{ name: 'Complaint Case List', visible: true,default: false },\r\n\t\t\t{ name: 'Customer 360 Profile', visible: false,default: false },\r\n\t\t\t{ name: 'Consumer List', visible: true,default: false },\r\n\t\t\t{ name: 'Customer Booking', visible: true,default: false },\r\n\t\t\t{ name: 'Campaign Planning', visible: false,default: false },\r\n\t\t\t{ name: 'Asset List', visible: true,default: false },\r\n\t\t\t{ name: 'Asset 360 View', visible: true,default: false },\r\n\t\t\t{ name: 'Campaign List', visible: true,default: false },\r\n\t\t\t{ name: 'Tickets Planning New', visible: false,default: false },\r\n\t\t\t{ name: 'Leader Board', visible: true,default: false },\r\n\t\t\t{ name: 'Bonus Penalty', visible: false,default: false },\r\n\t\t\t{ name: 'Calender Management List', visible: true,default: false },\r\n\t\t\t{ name: 'Scheduler Confriguation', visible: false,default: false },\r\n\t\t\t{ name: 'Assignation Rule', visible: true,default: false },\r\n\t\t\t{ name: 'Customers', visible: true,default: false },\r\n\t\t\t{ name: 'Notfications', visible: true,default: false },\r\n\t\t\t{ name: 'Templates', visible: false,default: false },\r\n\t\t\t{ name: 'Platform Builders', visible: true,default: false },\r\n\t\t\t{ name: 'Territory Management', visible: false,default: false },\r\n\t\t\t{ name: 'Brand Product Master Creation', visible: false,default: false },\r\n\t\t\t{ name: 'SLA Settings', visible: true,default: false },\r\n\r\n\t\t];\r\n\t\t\r\n\t\tvm.setDefaultPermission = function () {\r\n\t\t\tfor (var i = 0; i < vm.permissions.length; i++) {\r\n\t\t\t\tif (vm.permissions[i].default) {\r\n\t\t\t\t\tvm.selectedPermission = vm.permissions[i];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\t\r\n\t\t// Call the function to set the default permission when the controller initializes\r\n\t\tvm.setDefaultPermission();\r\n\r\n\t\tvm.toggleEditMode = function() {\r\n\t\t\tif (vm.isEditMode) {\r\n\t\t\t\t// Save logic: Ensure only one item has `default: true`\r\n\t\t\t\tfor (var i = 0; i < vm.permissions.length; i++) {\r\n\t\t\t\t\tvm.permissions[i].default = (vm.permissions[i] === vm.selectedPermission);\r\n\t\t\t\t}\r\n\t\t\t\tconsole.log('Saved permissions:', vm.permissions);\r\n\t\t\t}\r\n\t\t\tvm.isEditMode = !vm.isEditMode;\r\n\t\t};\r\n\t\tvm.cancelEditMode = function() {\r\n\t\r\n\t\t\tvm.isEditMode = false;\r\n\t\t};\r\nvm.OpenProfileOverview = function(){\r\n\t$state.go('index.ProfileManagementDetail',{\r\n\t \r\n\t}, { reload: true });\r\n \r\n}\r\nvm.tabdefault = \"Default On\"\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('ApprovalFlowBuilderService', function () {\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('ApprovalFlowBuilderController', function (ApprovalFlowBuilderService, $timeout, $rootScope, $scope, $localStorage, $state) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n $scope.bpmnUrl = '/assets/images/patterns/diagram.bpmn';\r\n\r\n // $scope.bpmnModeler = null;\r\n\r\n\r\n // // Initialize BPMN Modeler\r\n // $scope.initBpmnModeler = function () {\r\n // if (!window.BpmnJS) {\r\n // return;\r\n // }\r\n\r\n // $scope.bpmnModeler = new window.BpmnJS({\r\n // container: '#bpmn-container'\r\n // });\r\n // var emptyDiagram = \"\" +\r\n // \"\" +\r\n // \"\" +\r\n // \"\" +\r\n // \"\" +\r\n // \"\" +\r\n // \"\";\r\n\r\n // // Load the empty BPMN diagram\r\n // $scope.bpmnModeler.importXML(emptyDiagram, function (err) {\r\n // if (err) {\r\n // console.log('Failed to import diagram:' + err.message);\r\n // } else {\r\n // console.log('Empty BPMN diagram loaded successfully');\r\n // }\r\n // });\r\n // };\r\n\r\n // // // Load the BPMN diagram (example diagram)\r\n // $scope.loadBpmnDiagram = function () {\r\n // var bpmnXML = \"\" +\r\n // \"\" +\r\n // \"\" +\r\n // \"\" +\r\n // \"\" +\r\n // \"\" +\r\n // \"\";\r\n\r\n // $scope.bpmnModeler.importXML(bpmnXML, function (err) {\r\n // if (err) {\r\n // console.log('Error loading BPMN diagram:', err);\r\n // } else {\r\n // console.log('BPMN Diagram loaded successfully');\r\n // $scope.bpmnModeler.get('canvas').zoom('fit-viewport');\r\n // }\r\n // });\r\n // };\r\n\r\n // // // Save the current BPMN diagram as XML\r\n // $scope.saveDiagram = function () {\r\n // $scope.bpmnModeler.saveXML({ format: true }, function (err, xml) {\r\n // if (err) {\r\n // console.error('Error saving BPMN diagram:', err);\r\n // } else {\r\n // console.log('BPMN Diagram saved as XML:', xml);\r\n // }\r\n // });\r\n // };\r\n\r\n // // Reset the BPMN canvas\r\n // $scope.resetCanvas = function () {\r\n // if ($scope.bpmnModeler) {\r\n // $scope.bpmnModeler.clear();\r\n // console.log('Canvas reset successfully');\r\n // }\r\n // };\r\n }\r\n});\r\n\nangular.module('inspinia').controller('applinkController', function ($window) {\r\n $window.location.href = 'https://play.google.com/store/search?q=MyMobiforce&c=apps&pli=1';\r\n console.log($window.location.href);\r\n});\n\r\nangular.module('inspinia').service('AllUsersListGCService', function (ApiURL, FreelancerURL, SchedulingAPI, $log, $http, $localStorage) {\r\n\r\n this.GetAllFreLancerProfile = function (loggedinUser, token, itemNames, itemValues, textItemNames, textItemValues) {\r\n var url = '';\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllFreLancerWithFiltersWithLightProfile?itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetTalentPoolForMapView = function (mapuserFormData, loggedinUser, token) {\r\n var url = FreelancerURL + \"/api/FreelancerUser/GetTalentPoolForMapView\";\r\n return $http.put(url, mapuserFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n this.GetAllAccountDetails = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/accountConfig/GetAllAccountDetails';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getSkills = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/SkillSets/' + loggedinUser + '/getmasterskillsB2C';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n this.GetAllCertificate = function (loggedinUser, token, success, failure) {\r\n var url = ApiURL + '/api/Cetrificate/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url, { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n success(res.data);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to get certificate list, server error.\");\r\n })\r\n }\r\n\r\n this.GetAllToolSets = function (loggedinUser, token, success, failure) {\r\n var url = ApiURL + '/api/Tool/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url, { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n success(res.data);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to get certificate list, server error.\");\r\n })\r\n }\r\n this.GetUsersForPinpoint = function (ticketFormData, lat, long, pincode, loggedinUser, token) {\r\n var url = ApiURL + '/api/CapacityPlanning/GetUsersForPinpoint?Latitude=' + lat + '&Longitude=' + long + \"&Pincode=\" + pincode;\r\n return $http.post(url, ticketFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n // this.Filter = function ( loggedinUser, token,userFormData) {\r\n // var url = FreelancerURL + \"/api/FreelancerUser/FreelancerByPaging?reqUserid=\" + loggedinUser;\r\n // return $http.put(url, userFormData, {\r\n // headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n // });\r\n // }\r\n\r\n this.Filter = function (loggedinUser, token, userFormData) {\r\n var url = FreelancerURL + \"/api/FreeLancerRegistration/FreelancerListingByPaging?reqUserid=\" + loggedinUser;\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UploadExternalVideoList = function (newdata, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetVideoKycData';\r\n return $http.put(url, newdata, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UserCountbyFilter = function (loggedinUser, token, userFormData) {\r\n var url = FreelancerURL + \"/api/FreeLancerRegistration/UserCountbyFilter?reqUserid=\" + loggedinUser;\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.getAllState = function (loggedinUser) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllStates';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n this.GetAllUsers = function (loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllUsers'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.callToTechnicianApi = function (loggedinUser, userid, token) {\r\n url = ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId=' + userid;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetUserData = function (loggedinUser, token, UploadId, AnalysisId, Orderby, OrderSequence, uwPageIndex, uwPageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/CapacityPlanning/GetUserAnalysisDataOnPaging?UploadId=' + UploadId + '&AnalysisId=' + AnalysisId + '&Orderby=' + Orderby + '&OrderSequence=' + OrderSequence + '&Index=' + uwPageIndex + '&PageSize=' + uwPageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n \r\n this.GetAllCampaignName = function (loggedinUser, token) {\r\n url = ApiURL + '/api/Campaign/GetAllCampaignName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllGenericCampaignName = function (loggedinUser, token) {\r\n url = ApiURL + '/api/Campaign/GetAllGenericCampaignName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.RunCampaignOnUsers = function (userFormData, loggedinUser, token) {\r\n var url = ApiURL + \"/api/Campaign/RunCampaignOnUsers\";\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetSkillRecommendationsForUser = function (userId,loggedinUser, token) {\r\n url = FreelancerURL + '/api/Recommendation/GetSkillRecommendationsForUser?UserId=' + userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.userpdfreport = function (userId,loggedinUser, token) {\r\n url = ApiURL + '/api/PDFReportMapper/GenerateUserPersonalInfo?UserId=' + userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n});\r\n\nangular.module('inspinia').controller('AllUsersListGCController', function (OnBoardingFlowService, DashboardService, DTColumnBuilder, $filter, $q, $compile, ManualAssignationJobService, AllUsersListGCService, $scope, TicketBasedPlanningService, $window, $uibModal, $timeout, $http, NgMap,\r\n ReferService, $rootScope, $q, DTColumnDefBuilder, $uibModal, $localStorage, $state, FreelancerURL, ApiURL, $timeout, ngProgressFactory, $interval) {\r\n var vm = this;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n\r\n vm.FilterSwitch = false;\r\n vm.client = 1;\r\n vm.workArea = '';\r\n var ProjectModal = {};\r\n var circleArray;\r\n vm.filteredProperties = {};\r\n var customerIndex = 0;\r\n vm.projectName = '';\r\n vm.dtInstance = {};\r\n\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.broadcastSentUser = true;\r\n $scope.toggleForBroadcast = function () {\r\n $scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n $scope.myvalue = true;\r\n };\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n $scope.toggleMenu = function () {\r\n if ($scope.manualAssignationWrapper === \"hide-nav\") {\r\n $scope.manualAssignationWrapper = \"show-nav\";\r\n }\r\n else {\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n }\r\n };\r\n $scope.hideAllUser = true;\r\n\r\n $scope.showAllUser = function () {\r\n $scope.hideAllUser = true;\r\n };\r\n $scope.hideAllUserbutton = function () {\r\n $scope.hideAllUser = false;\r\n };\r\n $scope.userClass_status = true;\r\n $scope.toggleBottom = false;\r\n $scope.open360View = function () {\r\n $scope.userClass_status = false;\r\n $scope.myvalue = true;\r\n }\r\n $scope.close360View = function () {\r\n $scope.userClass_status = true;\r\n $scope.myvalue = false;\r\n }\r\n $scope.closeSlideBottom = function () {\r\n $scope.toggleNav = false;\r\n }\r\n $scope.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.userClass_status = true;\r\n $scope.broadcastSentUser = true;\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n vm.closeFeedbackoption();\r\n }\r\n $scope.close360ViewBroadcaste = function () {\r\n $scope.myvalue = false;\r\n angular.element('#div1').removeClass(\"alpha\");\r\n $scope.userClass_status = true;\r\n }\r\n // $scope.userSingle = function() {\r\n // $scope.userClass_status = !$scope.userClass_status;\r\n\r\n // };\r\n $scope.userFilter = true;\r\n $scope.assignJobFilter = function () {\r\n $scope.userFilter = !$scope.userFilter;\r\n $scope.myvalue = true;\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n // $scope.toggleMenu();\r\n };\r\n $scope.minatureSlide = true;\r\n $scope.minatureSlideBtn = function () {\r\n $scope.minatureSlide = !$scope.minatureSlide;\r\n $scope.myvalue = true;\r\n };\r\n\r\n\r\n $scope.hideFilter = function () {\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.CurrencySymbol = $localStorage.accountConfig.CurrencySymbol;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n var token = $localStorage.token;\r\n vm.searchText = \"\";\r\n vm.searchTicket = \"\";\r\n vm.IsSearch = false;\r\n vm.DateField = \"CreatedOn\";\r\n var fnitemNames = '';\r\n var fnitemValues = '';\r\n var witemNames = \"\";\r\n var witemValues = \"\";\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n var wsSDate = '';\r\n var wsEDate = '';\r\n var fPageIndex = 1;\r\n var fPageSize = 10;\r\n vm.SearchByUserType = '';\r\n vm.searchJobTypeText = \"\";\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.TotalLocation = 0;\r\n vm.TotalMatch = 0;\r\n vm.NotMatch = 0;\r\n vm.Atleast3Match = 0;\r\n vm.Atleast2Match = 0;\r\n vm.Atleast1Match = 0;\r\n vm.RunRateInDays = 0;\r\n vm.RangeInKm = 0;\r\n vm.JobSkill = \"\";\r\n vm.RegistrationStatus = \"\";\r\n vm.UserRegistrationStatus = \"\";\r\n vm.TechRole = \"\";\r\n vm.Asset = \"\";\r\n vm.Tools = \"\";\r\n vm.Certificate = \"\";\r\n vm.PermanentCity = \"\";\r\n vm.techPincode = \"\";\r\n vm.PermanentState = \"\";\r\n vm.TicketState = \"\";\r\n vm.SearchByAccountName = \"\";\r\n vm.PreferredForAccounts = \"\";\r\n vm.TicketCity = \"\";\r\n vm.ticketStatus = \"\";\r\n vm.TicketSkill = \"\";\r\n vm.Pincode = \"\";\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.PssStatus = \"\";\r\n vm.SMEInterctionVideo = false;\r\n vm.UserDetailVerification = \"\";\r\n vm.showErrors = false;\r\n vm.showPassed = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.LocationAddressList = [];\r\n vm.TicketBasedPlanningList = {};\r\n vm.bulkuploadType = \"Location\";\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n vm.fileName = '';\r\n vm.fileDescription = '';\r\n vm.techpageindexCount = 0;\r\n vm.ticketPoolPageListCount = 10;\r\n vm.customerPageListCount = 10;\r\n vm.userPoolPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n vm.ticketPoolListLenth = 0;\r\n vm.customerListLenth = 0;\r\n vm.userPoolListLength = 0;\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.pageindexCount = 0;\r\n vm.TPpageindexCount = 0;\r\n vm.cuPageindexCount = 0;\r\n vm.UPpageindexCount = 0;\r\n vm.DateField = \"StatusChangedOn\";\r\n vm.searchStatusText = \"All\";\r\n var uPageIndex = 1;\r\n var uwPageIndex = 1;\r\n var uPageSize = 10;\r\n var uwPageSize = 10;\r\n var ulPageIndex = 1;\r\n var ulPageSize = 10;\r\n vm.AlListCount = 10;\r\n var uwtPageIndex = 1;\r\n var uwtPageSize = 10;\r\n var uwtPageSize = 10;\r\n vm.UWListCount = 10;\r\n vm.EAlListCount = 10;\r\n vm.UsersType = \"\";\r\n vm.OrderSequence = \"asc\";\r\n // vm.Orderby = \"City\";\r\n // vm.SortBy = \"Distance\";\r\n vm.Orderby = \"CreatedOn\";\r\n vm.SortType = \"desc\";\r\n var uitemNames = \"\";\r\n var uitemValues = \"\";\r\n vm.searchUsersText = \"\";\r\n vm.jobsCount = '';\r\n vm.Technicianstartingdate = '2017-01-01';\r\n vm.userPageListCount = 10;\r\n vm.financePageListCount = 10;\r\n vm.UWticketsListCount = 10;\r\n vm.pageListCountsuwt = [10, 20, 30, 50];\r\n vm.IsAuthorizedServiceCenter = false;\r\n var startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: startDate, endDate: endDate };\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment(vm.Technicianstartingdate), moment(endDate)],\r\n };\r\n\r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.getAllJobForExceptionList();\r\n vm.GetAnalysisDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uPageIndex, uPageSize);\r\n\r\n };\r\n\r\n\r\n vm.City = '';\r\n vm.Pincode = '';\r\n vm.Experience = '';\r\n vm.Ratings = '';\r\n vm.Assets_Tools = '';\r\n vm.Jobscount = '';\r\n vm.FilterAdhar = '';\r\n vm.FilterPancard = '';\r\n $localStorage.filteraddskill = '';\r\n $localStorage.filterPermanentstate = '';\r\n vm.currentPage = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n vm.pageSize = 20;\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = 20; // this should match however many results your API puts on one page\r\n $scope.pagination = {\r\n current: 1\r\n };\r\n $scope.pagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n $scope.totalTableUsers = 0;\r\n $scope.usersTablePerPage = 20; // this should match however many results your API puts on one page\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n $scope.UserTablepagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n $scope.pageChanged = function (newPage) {\r\n vm.currentPage = newPage;\r\n vm.applyfilter(newPage);\r\n\r\n };\r\n $scope.isOpen = false;\r\n $scope.isOpen1 = false;\r\n $scope.isCollapsed = true;\r\n $scope.isCollapsed0 = true;\r\n $scope.isCollapsed1 = true;\r\n $scope.isCollapsed2 = true;\r\n $scope.isCollapsed3 = true;\r\n $scope.isCollapsed4 = true;\r\n $scope.isCollapsed5 = true;\r\n $scope.isCollapsed6 = true;\r\n $scope.isCollapsed7 = true;\r\n $scope.isCollapsed8 = true;\r\n $scope.isCollapsed9 = true;\r\n $scope.isCollapsed10 = true;\r\n $scope.isCollapsed11 = true;\r\n $scope.isCollapsed12 = true;\r\n $scope.isCollapsed13 = true;\r\n $scope.isCollapsed14 = true;\r\n $scope.isCollapsed15 = true;\r\n $scope.isCollapsed16 = true;\r\n $scope.isCollapsed17 = true;\r\n $scope.isCollapsed18 = true;\r\n $scope.isCollapsed19 = true;\r\n $scope.isCollapsed20 = true;\r\n $scope.isCollapsed21 = true;\r\n $scope.isCollapsed22 = true;\r\n $scope.isCollapsed23 = true;\r\n $scope.isCollapsed24 = true;\r\n $scope.isCollapsed25 = true;\r\n $scope.isCollapsed26 = true;\r\n $scope.isCollapsed27 = true;\r\n $scope.isCollapsed28 = true;\r\n $scope.isCollapsed29 = true;\r\n $scope.isCollapsed30 = true;\r\n $scope.isCollapsed31 = true;\r\n $scope.isCollapsed32 = true;\r\n $scope.isCollapsed33 = true;\r\n $scope.isCollapsed34 = true;\r\n $scope.isCollapsed35 = true;\r\n $scope.isCollapsed36 = true;\r\n $scope.isCollapsed37 = true;\r\n $scope.isCollapsed38 = true;\r\n $scope.isCollapsed39 = true;\r\n $scope.isCollapsed40 = true;\r\n $scope.isCollapsed41 = true;\r\n $scope.isCollapsed42 = true;\r\n $scope.isCollapsed43 = true;\r\n\r\n $scope.openAnalysisReport = function (analysisDetails) {\r\n $localStorage.UploadId = analysisDetails.UploadId;\r\n $scope.showAnalysisReport = !$scope.showAnalysisReport;\r\n angular.element('#filter-visible-area').removeClass(\"filter-slider-visible\");\r\n }\r\n $scope.backScreen = function () {\r\n $scope.showAnalysisReport = false;\r\n angular.element('#filter-visible-area').addClass(\"filter-slider-visible\");\r\n }\r\n\r\n vm.techToRunCampaignOn = [];\r\n vm.implementSelectTech = function (itemList, scope) {\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n scope.selectRowFL = function (i) {\r\n scope.selectCountFL = 0;\r\n scope.showMinusFL = false;\r\n scope.selectAllFL = false;\r\n angular.forEach(vm.users, function (d) {\r\n if (d.checked) {\r\n vm.techToRunCampaignOn.push(d.UserId);\r\n scope.showMinusFL = true;\r\n scope.selectCountFL++;\r\n }\r\n });\r\n }\r\n scope.applyAllFLSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllFL;\r\n scope.selectCountFL++;\r\n if (d.checked) {\r\n vm.techToRunCampaignOn.push(d.UserId);\r\n }\r\n });\r\n }\r\n }\r\n\r\n vm.ResetUserSelection = function (scope) {\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n }\r\n vm.implementSelectTech('users', this);\r\n $scope.tools = [\r\n { id: 1, name: 'Console Cable' },\r\n { id: 2, name: 'Drill Machine' },\r\n { id: 3, name: 'LAN Cable' },\r\n { id: 4, name: 'USB Converter' },\r\n { id: 5, name: 'Dongle ' },\r\n { id: 6, name: 'Toolkit' },\r\n { id: 7, name: 'Hearing Protection EN 352 2' },\r\n { id: 8, name: 'Safety Shoes CE marked' },\r\n { id: 9, name: 'Full Body Harness EN 361 2002' },\r\n { id: 10, name: 'Laptop' },\r\n ];\r\n $scope.selectedTools = [];\r\n vm.JobSkill = \"\";\r\n vm.ActiveInMonth = \"\";\r\n vm.NoOfJobDone = \"\";\r\n vm.Asset = \"\";\r\n vm.Tools = \"\";\r\n vm.UserRole = \"\";\r\n vm.MatchCriteria = \"\";\r\n vm.TraningCertificate = \"\";\r\n vm.ToolList = \"\";\r\n vm.OneJobDone = false;\r\n vm.SearchTag = \"\";\r\n vm.MatchingSkill = false;\r\n vm.Asset_Bike = false;\r\n vm.Asset_Mobile = false;\r\n vm.Asset_Laptop = false;\r\n vm.IsBasedOnPincode = true;\r\n vm.disableCreateButton = false;\r\n vm.cities = {\r\n chicago: { population: 2714856, position: [41.878113, -87.629798] },\r\n newyork: { population: 8405837, position: [40.714352, -74.005973] },\r\n losangeles: { population: 3857799, position: [34.052234, -118.243684] },\r\n vancouver: { population: 603502, position: [49.25, -123.1] },\r\n }\r\n vm.getRadius = function (num) {\r\n return Math.sqrt(num) * 100;\r\n }\r\n\r\n NgMap.getMap().then(function (map) {\r\n vm.map = map;\r\n });\r\n\r\n\r\n // Cluster Map section start by simran\r\n\r\n vm.showMapWithFreelancers = function () {\r\n const warehouse = {\r\n url: \"../../assets/images/patterns/WH-1.png\"\r\n };\r\n const freelancer = {\r\n url: \"../../assets/images/patterns/FL.png\"\r\n };\r\n const vendor = {\r\n url: \"../../assets/images/patterns/FV.png\"\r\n };\r\n const masterwarehouse = {\r\n url: \"../../assets/images/patterns/WH.png\"\r\n }\r\n vm.dynMarkers = [];\r\n NgMap.getMap().then(function (map) {\r\n for (var i = 0; i < vm.freelancerlist.length; i++) {\r\n vm.techdetails = vm.freelancerlist[i];\r\n if (vm.freelancerlist[i].hasWareHouse == true) {\r\n icons = warehouse\r\n }\r\n else if (vm.freelancerlist[i].MasterWarehouse == true) {\r\n icons = masterwarehouse\r\n }\r\n else if (vm.freelancerlist[i].Role == 'Field Engineer') {\r\n icons = freelancer\r\n }\r\n else if (vm.freelancerlist[i].Role == 'Vendor Manager') {\r\n icons = vendor\r\n }\r\n var latLng = new google.maps.LatLng(vm.freelancerlist[i].CurrentLatitude, vm.freelancerlist[i].CurrentLongitude);\r\n const marker = new google.maps.Marker({ position: latLng, icon: icons });\r\n const contentString = \"

\" + vm.techdetails.Role + \"

\" + vm.techdetails.FirstName + \"\" + vm.techdetails.UserId + \"Skill: \" + vm.techdetails.SkillSet + \"Location: \" + vm.techdetails.Locations + \"Pincode:\" + vm.techdetails.CurrentPinCode + \"
\";\r\n var infowindow = new google.maps.InfoWindow();\r\n marker.addListener(\"click\", function () {\r\n infowindow.setContent(contentString);\r\n infowindow.open(map, marker);\r\n });\r\n vm.dynMarkers.push(marker);\r\n }\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.addMarkers(vm.dynMarkers);\r\n }\r\n else {\r\n const clusterOptions = {\r\n imagePath: \"https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m\",\r\n gridSize: 60,\r\n zoomOnClick: true,\r\n maxZoom: null,\r\n };\r\n vm.markerClusterer = new MarkerClusterer(map, vm.dynMarkers, clusterOptions);\r\n }\r\n });\r\n }\r\n vm.getRadius = function (num) {\r\n return Math.sqrt(num) * 100;\r\n }\r\n\r\n vm.GetTalentPoolForMap = function () {\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.clearMarkers();\r\n vm.dynTicketMarkers = [];\r\n }\r\n AllUsersListGCService.GetTalentPoolForMapView(vm.mapuserFormData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.freelancerlist = resp.data;\r\n vm.showMapWithFreelancers();\r\n }\r\n });\r\n }\r\n\r\n //--ENd Of Map\r\n\r\n\r\n\r\n // $scope.totalTableUserPool = 0;\r\n // $scope.userPoolTablePerPage = vm.userPoolPageListCount ; \r\n // $scope.UserPoolTablepagination = {\r\n // current: 1\r\n // };\r\n\r\n // vm.changeUserPoolPageListCount = function() { \r\n // $scope.userPoolTablePerPage = vm.userPoolPageListCount;\r\n // UPPageSize = $scope.userPoolTablePerPage;\r\n // $scope.UserPoolTablepageChanged($scope.UserPoolTablepagination.current);\r\n // vm.selectAll = false;\r\n // }\r\n\r\n // PageIndex=$scope.UserPoolTablepagination.current;\r\n // $scope.UserPoolTablepageChanged = function(newPage) { \r\n // UPPageIndex = newPage; \r\n // vm.addFilterforPincodeAnalysis(); \r\n // };\r\n\r\n\r\n\r\n vm.showUserFilter = function () {\r\n vm.IsBasedOnPincode = true;\r\n vm.chkselect = true;\r\n vm.RangeInKm = 0;\r\n vm.JobSkill = \"\";\r\n vm.OneJobDone = false;\r\n vm.MatchingSkill = false;\r\n vm.UserRegistrationStatus = \"\";\r\n vm.TechRole = \"\";\r\n }\r\n\r\n $scope.isActive = false;\r\n $scope.isActive1 = true;\r\n $scope.HideText = function () {\r\n $scope.isActive = true;\r\n $scope.isActive1 = false;\r\n }\r\n $scope.ShowText = function () {\r\n $scope.isActive = false;\r\n $scope.isActive1 = true;\r\n };\r\n\r\n\r\n $scope.isClick = false;\r\n $scope.isClick1 = false;\r\n $scope.isClick2 = false;\r\n $scope.isClick3 = false;\r\n $scope.activeButton = function () {\r\n $scope.isClick = !$scope.isClick;\r\n }\r\n $scope.activeButton1 = function () {\r\n $scope.isClick1 = !$scope.isClick1;\r\n }\r\n $scope.activeButton2 = function () {\r\n $scope.isClick2 = !$scope.isClick2;\r\n }\r\n $scope.activeButton3 = function () {\r\n $scope.isClick3 = !$scope.isClick3;\r\n }\r\n\r\n vm.getFLprofile = function () {\r\n\r\n document.getElementById(\"freelancerProfile\").style.display = \"block \";\r\n }\r\n vm.HideFLprofile = function () {\r\n\r\n document.getElementById(\"freelancerProfile\").style.display = \"none\";\r\n }\r\n\r\n\r\n\r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.getAllJobForExceptionList();\r\n };\r\n\r\n\r\n $scope.class1 = false;\r\n $scope.addRemoveRedClass = function (UploadId) {\r\n $localStorage.UploadId = UploadId;\r\n if ($scope.class1) {\r\n $scope.class1 = false;\r\n } else {\r\n $scope.class1 = true;\r\n }\r\n }\r\n\r\n $scope.slider = {\r\n value: 50,\r\n options: {\r\n floor: 0,\r\n ceil: 100,\r\n step: 1,\r\n minLimit: 10,\r\n maxLimit: 90\r\n }\r\n };\r\n\r\n $scope.myTrigger = \"outsideClick\";\r\n\r\n function getAllStates() {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n\r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n\r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n vm.analysisModel = function () {\r\n vm.analysisDetails = vm.analysisDetails;\r\n vm.analysisModelOpen = $uibModal.open({\r\n templateUrl: 'analysisModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.campaignModel = function () {\r\n vm.analysisDetails = vm.analysisDetails;\r\n vm.campaignRunModelOpen = $uibModal.open({\r\n templateUrl: 'campaignRunModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseCampaignModel = function () {\r\n vm.campaignRunModelOpen.close();\r\n }\r\n vm.dynamicCampaignModel = function () {\r\n vm.analysisDetails = vm.analysisDetails;\r\n vm.dynamicCampaignModelOpen = $uibModal.open({\r\n templateUrl: 'campaignDynamicModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n vm.CloseDynamicCampaignModel = function () {\r\n vm.dynamicCampaignModelOpen.close();\r\n }\r\n\r\n vm.CloseAnalysisModel = function () {\r\n vm.analysisModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.AnalysisName = \"\";\r\n if (vm.confirmstatus != 'update') {\r\n vm.AnalysisDescription = \"\";\r\n vm.analysisDetails.AnalysisDescription = \"\";\r\n }\r\n }\r\n\r\n vm.ConfirmAnalysis = function (status, analysisData) {\r\n vm.confirmstatus = status;\r\n vm.analysisDetails = analysisData;\r\n vm.UploadId = vm.analysisDetails.UploadId;\r\n }\r\n\r\n vm.GetUserFeedbackOption = function (toggleNav, userid) {\r\n $scope.toggleNav = !toggleNav;\r\n $scope.activeRow = userid;\r\n vm.userid = userid;\r\n ManualAssignationJobService.GetUserFeedbackOption(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.userfeedbackList = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n vm.UserDataUpdateRequest = function (toggleNav, userid) {\r\n $scope.toggleNav = !toggleNav;\r\n vm.feedbackForm.submitted = true;\r\n if (vm.feedbackForm.$valid) {\r\n var data = {\r\n \"MasterReason\": vm.MasterReason,\r\n \"Comments\": vm.Comments,\r\n \"RequestForUserId\": userid,\r\n \"TicketId\": $localStorage.UploadId\r\n }\r\n ManualAssignationJobService.UserDataUpdateRequest(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.Comments = \"\";\r\n vm.MasterReason = \"\";\r\n }\r\n }, function () {\r\n });\r\n }\r\n }\r\n vm.closeFeedbackoption = function () {\r\n $scope.toggleNav = true;\r\n vm.Comments = \"\";\r\n vm.MasterReason = \"\";\r\n\r\n }\r\n\r\n vm.GetFeedbackByUserId = function (userid) {\r\n ManualAssignationJobService.GetFeedbackByUserId(loggedinUser, token, userid).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.commentList = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n\r\n vm.callToTechnician = function (userid) {\r\n AllUsersListGCService.callToTechnicianApi(loggedinUser, userid, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\");\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", resp.data.Message);\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n vm.sortColumn = function (col) {\r\n vm.OrderBy = col;\r\n if (vm.SortType == 'desc') {\r\n vm.SortType = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n } else {\r\n vm.SortType = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.AllapplyTalentPoolfilter();\r\n };\r\n\r\n vm.sortClass = function (col) {\r\n if (vm.OrderBy == col) {\r\n if (vm.SortType == 'desc') {\r\n return 'fa fa-arrow-down';\r\n } else {\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n vm.getAllCertificate = function () {\r\n AllUsersListGCService.GetAllCertificate(loggedinUser, token, function (data) {\r\n vm.AllCertificateSets = data;\r\n }, vm.showFailure);\r\n }\r\n vm.getAllCertificate();\r\n\r\n vm.getSkills = function () {\r\n AllUsersListGCService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills;\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.getSkills();\r\n\r\n vm.GetAllAccounts = function () {\r\n AllUsersListGCService.GetAllAccountDetails(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.accountsList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAllAccounts();\r\n\r\n $scope.searchDisabled = true;\r\n\r\n vm.getAllTools = function () {\r\n AllUsersListGCService.GetAllToolSets(loggedinUser, token, function (data) {\r\n vm.Asset_ToolList = data;\r\n }, vm.showFailure);\r\n }\r\n vm.getAllTools();\r\n\r\n vm.chkselect = true;\r\n\r\n vm.pincodeCheck = function () {\r\n vm.chkselect = !vm.chkselect;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n // ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.LocationAddressList = [];\r\n\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showPassed = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n vm.MediaUploadReqModel = {\r\n \"action\": 'Create',\r\n \"UploadedFileName\": vm.fileName,\r\n \"FileDescription\": vm.fileDescription\r\n }\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n fd.append('MediaUploadReqModel', JSON.stringify(vm.MediaUploadReqModel))\r\n $http.post(ApiURL + '/api/CapacityPlanning/MediaUploadAndCreate', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n if (vm.bulkuploadType == 'Location') {\r\n vm.LocationAddressList = data.AddressList;\r\n vm.noOfRecords = data.AddressList ? data.AddressList.length : 0;\r\n }\r\n $(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n if (data.Errors.length > 0) {\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.Errors, function (v, k) {\r\n\r\n if (v.ItemErrors.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.ItemErrors, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n });\r\n if (v.Row > 0 && data.AddressList && data.AddressList.length > 0 && data.AddressList.length >= v.Row) {\r\n e1.data = data.AddressList[v.Row - 1];\r\n }\r\n vm.errorList.push(e1);\r\n }\r\n });\r\n\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.ErrorCode == 103) {\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Missing columns in excel file\";\r\n vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.Message && data.Message.length > 0) {\r\n\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Validation failed\";\r\n vm.successMsg = data.Message\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\r\n } else {\r\n vm.showPassed = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"File Uploaded\";\r\n vm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are uploaded successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found.\";\r\n $timeout(function () {\r\n vm.CloseModal();\r\n }, 2000);\r\n\r\n // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n $(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n });\r\n\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.addFiles = function () {\r\n $(\"#dropzone1\").trigger(\"click\");\r\n }\r\n\r\n\r\n //list of users\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.userchangePageListCount = function () {\r\n $scope.usersPerPage = vm.userPageListCount;\r\n ulPageSize = $scope.usersPerPage;\r\n $scope.UserTablePageChanged($scope.Userpagination.current);\r\n vm.selectAll = false;\r\n ulPageIndex = $scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function (newPage) {\r\n ulPageIndex = newPage;\r\n vm.GetUserDataPagingList(true, $localStorage.UploadId, vm.AnalysisId, vm.AddressId, vm.ListType, vm.SortBy, vm.OrderSequence, ulPageIndex, ulPageSize, loggedinUser, token);\r\n };\r\n }\r\n\r\n ulPageIndex = $scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function (newPage) {\r\n ulPageIndex = newPage;\r\n vm.GetUserDataPagingList(true, $localStorage.UploadId, vm.AnalysisId, vm.AddressId, vm.ListType, vm.SortBy, vm.OrderSequence, ulPageIndex, ulPageSize, loggedinUser, token)\r\n };\r\n\r\n\r\n vm.UWticketDataList = [];\r\n vm.GetUserDataPagingList = function (isCollapsed, UploadId, AnalysisId, AddressId, ListType) {\r\n if (vm.AddressId == AddressId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.showUserTable = AddressId;\r\n vm.UploadId = UploadId;\r\n vm.AnalysisId = AnalysisId;\r\n vm.AddressId = AddressId;\r\n vm.ListType = ListType;\r\n AllUsersListGCService.GetUserListData(vm.UploadId, vm.AnalysisId, vm.AddressId, vm.ListType, vm.SortBy, vm.OrderSequence, ulPageIndex, ulPageSize, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UWticketDataList = resp.data.UserModelResList;\r\n $scope.totalUsers = resp.data.RecordCount;\r\n preprocessData(vm.UWticketDataList);\r\n if (vm.UWticketDataList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = ulPageIndex * vm.userPageListCount;\r\n if (ulPageIndex == 1)\r\n vm.ulpageindexCount = 1;\r\n else\r\n vm.ulpageindexCount = (((ulPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n\r\n $scope.TalentPoolTablepageChanged = function (newPage) {\r\n\r\n vm.currentPage = newPage;\r\n\r\n vm.applyfilter(newPage, '');\r\n };\r\n\r\n vm.UserRoleList = [\"Field Engineer\", \"Vendor Manager\", \"VendorTeam\", \"Teacher\"];\r\n\r\n vm.applyfilter = function (index, data) {\r\n var userFormData = {};\r\n if (data) {\r\n userFormData = data;\r\n } else {\r\n var temp = [];\r\n var res = vm.Experience.split(\"-\");\r\n var jobscount = vm.Jobscount.split(\"-\");\r\n var ratings = vm.Ratings.split(\"-\");\r\n userFormData = {\r\n \"PageIndex\": index,\r\n \"PageSize\": 20,\r\n \"ActivationStartDate\": startDate,\r\n \"ActivationEnddate\": endDate,\r\n \"State\": vm.PermanentState,\r\n \"Cities\": vm.PermanentCity,\r\n \"Pincodes\": temp,\r\n \"Skill\": vm.addSkill,\r\n \"ExperienceStart\": res[0],\r\n \"ExperienceEnd\": res[1],\r\n \"Certificates\": vm.addTraningCertificateName,\r\n \"IsBikeAvailable\": vm.Asset_Bike,\r\n \"IsMobileAvailable\": vm.Asset_Mobile,\r\n \"IsLaptopAvailable\": vm.Asset_Laptop,\r\n \"Tools\": vm.Asset_Tools,\r\n \"JobCountStart\": jobscount[0],\r\n \"JobCountEnd\": jobscount[1],\r\n \"RatingStart\": Number(ratings[0]),\r\n \"RatingEnd\": Number(ratings[1]),\r\n \"PreferredTalentPool\": false,\r\n \"IsStudent\": vm.Student,\r\n \"IsCriminalVerified\": vm.Criminal,\r\n \"IsBankVarified\": vm.IsBankVerified,\r\n \"IsUPIVarified\": vm.IsUPIVarified,\r\n \"MMFPrimeMember\": $scope.Prime,\r\n \"MMFNonPrimeMember\": $scope.NonPrime,\r\n \"IsOpenForInternship\": vm.Intern,\r\n \"IsAdharVerified\": vm.Adharcard,\r\n \"IsPanVerified\": vm.Pancard,\r\n \"Source\": vm.Source,\r\n \"FreelancerRole\": \"Teacher\",\r\n \"Locations\": vm.Locations,\r\n \"UserStatus\": vm.UserStatus,\r\n \"PssStatus\": vm.PssStatus,\r\n \"SMEInterctionVideo\" : vm.SMEInterctionVideo,\r\n \"OneJobDoneForSkills\": vm.OneJobDone,\r\n \"ReportingTo\": vm.ReportingTo,\r\n \"OrderBy\": vm.OrderBy,\r\n \"SortType\": vm.SortType,\r\n \"UserVerificationStatus\": vm.UserVerificationStatus,\r\n \"IsFreelancerBidCount\": vm.IsFreelancerBidCount,\r\n \"IsFixedTeamCount\" : vm.IsFixedTeamCount,\r\n \"ContactNumber\": vm.ContactNumber,\r\n \"UserName\": vm.UserName,\r\n \"UserId\": vm.UserId,\r\n \"BrandName\": vm.ServiceBrand,\r\n \"ProductServing\": vm.ServiceProduct,\r\n \"SearchTag\": vm.SearchTag,\r\n \"IsAuthorizedServiceCenterCount\" :vm.IsAuthorizedServiceCenter\r\n }\r\n if (vm.adddaterange) {\r\n userFormData.ActivationStartDate = startDate;\r\n userFormData.ActivationEnddate = endDate;\r\n }\r\n }\r\n\r\n $localStorage.FilterData = userFormData;\r\n AllUsersListGCService.Filter(loggedinUser, token, userFormData).then(function (resp) {\r\n if (resp.data) {\r\n vm.users = [];\r\n vm.Bluserlist = [];\r\n vm.usersCounts = resp.data;\r\n vm.users = resp.data.Users;\r\n\r\n for (var i = 0; i < vm.users.length; i++) {\r\n if (vm.users[i].CustomerRating) {\r\n vm.users[i].CustomerRating = Number(vm.users[i].CustomerRating).toFixed(1);\r\n }\r\n }\r\n\r\n vm.totalTalentPoolCount = resp.data.Count;\r\n $scope.totalUsers = resp.data.Count;\r\n $scope.totalTableUsers = resp.data.Count;\r\n\r\n if (vm.users.length < 20)\r\n vm.usersLength = $scope.totalUsers;\r\n else\r\n vm.usersLength = index * 20;\r\n if (index == 1)\r\n vm.techpageindexCount = 1;\r\n else\r\n vm.techpageindexCount = (((index - 1) * 20) + 1);\r\n\r\n if (vm.users.length > 0) {\r\n for (var i = 0; i < vm.users.length; i++) {\r\n if (vm.users[i].BlockedByAccounts) {\r\n if (vm.users[i].BlockedByAccounts.length > 0) {\r\n for (var j = 0; j < vm.users[i].BlockedByAccounts.length; j++) {\r\n if (vm.users[i].BlockedByAccounts[j] == AccountID) {\r\n vm.Bluserlist.push(vm.users[i]);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n // return vm.users;\r\n })\r\n\r\n }\r\n\r\n\r\n vm.TechnicianclearFilter = function () {\r\n vm.UserName = '';\r\n vm.UserId = '';\r\n vm.ContactNumber = '';\r\n vm.Source = '';\r\n vm.Adharcard = '';\r\n vm.Pancard = '';\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.PssStatus = \"\";\r\n vm.IsBankVerified = '';\r\n vm.SMEInterctionVideo = false;\r\n vm.Criminal = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.Experience = '';\r\n vm.traningCertificateList = \"\";\r\n vm.freelancerRoleList = \"\";\r\n vm.freelancerRole = \"\";\r\n vm.Locations = \"\";\r\n vm.Asset_Laptop = '';\r\n vm.Asset_Mobile = '';\r\n vm.Asset_Bike = '';\r\n vm.Asset_Tools = '';\r\n vm.Jobscount = '';\r\n vm.Ratings = '';\r\n vm.CurrentState = '';\r\n vm.UserStatus = '';\r\n vm.userskill = [];\r\n vm.userskill = '';\r\n vm.OneJobDone = false;\r\n vm.SearchTag = '';\r\n vm.ServiceBrand = '';\r\n vm.ReportingTo = '';\r\n vm.ServiceProduct = '';\r\n vm.ReportingTo = '',\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n\r\n var startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: moment().subtract(30, 'days'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment(vm.Technicianstartingdate), moment(endDate)],\r\n };\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n };\r\n\r\n\r\n vm.pfuserlist = [];\r\n\r\n vm.filterApplied = false;\r\n\r\n\r\n vm.getAllUsersByStage = function (stage) {\r\n vm.UserVerificationStatus = stage;\r\n vm.freelancerRole = \"\";\r\n vm.UserStatus = \"\";\r\n vm.PssStatus = \"\";\r\n vm.SMEInterctionVideo = false;\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.OneJobDone = false;\r\n vm.Criminal = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.AllapplyTalentPoolfilter();\r\n\r\n }\r\n\r\n vm.getAllUsersByRole = function (role) {\r\n vm.UserVerificationStatus = \"\";\r\n if (role == 'Active') {\r\n vm.UserStatus = role;\r\n vm.freelancerRole = \"\";\r\n }\r\n else if (role == 'Inactive') {\r\n vm.UserStatus = role;\r\n vm.freelancerRole = \"\";\r\n }\r\n else if (role == '') {\r\n vm.UserStatus = role;\r\n vm.freelancerRole = \"\";\r\n }\r\n else {\r\n vm.freelancerRole = role;\r\n vm.UserStatus = \"Active\";\r\n }\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.PssStatus = \"\";\r\n vm.SMEInterctionVideo = false;\r\n vm.OneJobDone = false;\r\n vm.Criminal = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n vm.getAllUsersByLocation = function (location) {\r\n vm.UserVerificationStatus = \"\";\r\n if (location) {\r\n vm.Locations = location;\r\n vm.freelancerRole = \"\";\r\n vm.UserStatus = \"\";\r\n }\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.PssStatus = \"\";\r\n vm.SMEInterctionVideo = false;\r\n vm.OneJobDone = false;\r\n vm.Criminal = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n // vm.IsAuthorizedServiceCenter = function (role) {\r\n // vm.UserVerificationStatus = \"\";\r\n // if (role == 'Active') {\r\n // vm.UserStatus = role;\r\n \r\n // }\r\n // else if (role == 'Inactive') {\r\n // vm.UserStatus = role;\r\n \r\n // }\r\n // else if (role == '') {\r\n // vm.UserStatus = role;\r\n // vm.freelancerRole = \"\";\r\n // }\r\n // else {\r\n // vm.freelancerRole = role;\r\n // vm.UserStatus = \"Active\";\r\n // }\r\n // $scope.Prime = false;\r\n // $scope.NonPrime = false;\r\n // vm.PssStatus = \"\";\r\n // vm.OneJobDone = false;\r\n // vm.Criminal = false;\r\n // vm.IsFreelancerBidCount = false;\r\n // vm.IsFixedTeamCount = false;\r\n // vm.AllapplyTalentPoolfilter();\r\n // }\r\n\r\n\r\n vm.getAllOneJobDone = function () {\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.Criminal = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.PssStatus = \"\";\r\n vm.SMEInterctionVideo = false;\r\n vm.UserVerificationStatus = \"\";\r\n vm.freelancerRole = \"\";\r\n vm.Locations = \"\";\r\n vm.UserStatus = \"\";\r\n vm.OneJobDone = true;\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n vm.getAllFixedTeam = function () {\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.Criminal = false;\r\n vm.IsFixedTeamCount = true;\r\n vm.IsFreelancerBidCount = false;\r\n vm.PssStatus = \"\";\r\n vm.SMEInterctionVideo = false;\r\n vm.UserVerificationStatus = \"\";\r\n vm.freelancerRole = \"\";\r\n vm.Locations = \"\";\r\n vm.UserStatus = \"\";\r\n vm.OneJobDone = false;\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n vm.getAllLeadStarted = function () {\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.Criminal = false;\r\n vm.IsFreelancerBidCount = true;\r\n vm.IsFixedTeamCount = false;\r\n vm.UserVerificationStatus = \"\";\r\n vm.freelancerRole = \"\";\r\n vm.Locations = \"\";\r\n vm.PssStatus = \"\";\r\n vm.SMEInterctionVideo = false;\r\n vm.UserStatus = \"\";\r\n vm.OneJobDone = false;\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n vm.getCountByPssValue = function (pss) {\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.PssStatus = pss;\r\n vm.SMEInterctionVideo = false;\r\n vm.Criminal = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.UserVerificationStatus = \"\";\r\n vm.freelancerRole = \"\";\r\n vm.Locations = \"\";\r\n vm.UserStatus = \"\";\r\n vm.OneJobDone = false;\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n vm.authorizeDetail = function (role){\r\n vm.UserVerificationStatus = \"\";\r\n if (role == 'Active') {\r\n vm.UserStatus = role;\r\n \r\n }\r\n else if (role == 'Inactive') {\r\n vm.UserStatus = role;\r\n \r\n }\r\n else if (role == '') {\r\n vm.UserStatus = role;\r\n \r\n }\r\n // vm.UserStatus = '';\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.Criminal = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.UserVerificationStatus = \"\";\r\n vm.freelancerRole = \"\";\r\n vm.Locations = \"\";\r\n vm.OneJobDone = false;\r\n vm.IsAuthorizedServiceCenter = true;\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n vm.getAllCriminalFlag = function (criminalValue) {\r\n vm.PssStatus = \"\";\r\n vm.SMEInterctionVideo = false;\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.OneJobDone = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.Criminal = criminalValue;\r\n vm.UserVerificationStatus = \"\";\r\n vm.freelancerRole = \"\";\r\n vm.Locations = \"\";\r\n vm.UserStatus = \"\";\r\n vm.AllapplyTalentPoolfilter();\r\n\r\n }\r\n\r\n vm.getAllUsersBySME = function (SMEValue) {\r\n vm.SMEInterctionVideo = SMEValue;\r\n vm.PssStatus = \"\";\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.OneJobDone = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.Criminal = false;\r\n vm.UserVerificationStatus = \"\";\r\n vm.freelancerRole = \"\";\r\n vm.Locations = \"\";\r\n vm.UserStatus = \"\";\r\n vm.AllapplyTalentPoolfilter();\r\n\r\n }\r\n\r\n vm.getAllPrimeFlag = function (primeValue) {\r\n if (primeValue == true) {\r\n $scope.Prime = true;\r\n $scope.NonPrime = false;\r\n } else if (primeValue == false) {\r\n $scope.NonPrime = true;\r\n $scope.Prime = false;\r\n }\r\n vm.Criminal = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.UserVerificationStatus = \"\";\r\n vm.freelancerRole = \"\";\r\n vm.Locations = \"\";\r\n vm.UserStatus = \"\";\r\n vm.PssStatus = \"\";\r\n vm.SMEInterctionVideo = false;\r\n vm.OneJobDone = false;\r\n vm.AllapplyTalentPoolfilter();\r\n\r\n }\r\n\r\n\r\n vm.AllapplyTalentPoolfilter = function (filterApplied) {\r\n vm.filterApplied = filterApplied;\r\n $scope.Ticket = 1;\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.clearMarkers();\r\n vm.dynTicketMarkers = [];\r\n }\r\n vm.ticketPoolList = [];\r\n $scope.dates = { startDate: startDate, endDate: endDate };\r\n vm.adddaterange = true;\r\n $scope.UserTablepagination.current = 1;\r\n var temp = [];\r\n var tuPageIndex = '';\r\n var res = vm.Experience.split(\"-\");\r\n var jobscount = vm.Jobscount.split(\"-\");\r\n var ratings = vm.Ratings.split(\"-\");\r\n tuPageIndex = 1;\r\n // vm.freelancerRoleList = \"\";\r\n // if(vm.freelancerRole) \r\n // {\r\n // vm.freelancerRoleList = vm.freelancerRole.join('|');\r\n // }\r\n vm.traningCertificateList = \"\";\r\n if (vm.TraningCertificate) {\r\n vm.traningCertificateList = vm.TraningCertificate.join('|');\r\n }\r\n // if(vm.UserStatus != \"Active\"){\r\n // startDate = \"\";\r\n // endDate = \"\";\r\n // } \r\n // else{\r\n // startDate = startDate;\r\n // endDate = endDate;\r\n // }\r\n vm.userFormData = {\r\n \"PageIndex\": tuPageIndex,\r\n \"PageSize\": 20,\r\n \"ActivationStartDate\": startDate,\r\n \"ActivationEnddate\": endDate,\r\n \"State\": vm.PermanentState,\r\n \"Cities\": vm.PermanentCity,\r\n \"Pincodes\": temp,\r\n \"Skill\": vm.userskill,\r\n \"UserVerificationStatus\": vm.UserVerificationStatus,\r\n \"ExperienceStart\": res[0],\r\n \"ExperienceEnd\": res[1],\r\n \"Certificates\": vm.traningCertificateList,\r\n \"IsBikeAvailable\": vm.Asset_Bike,\r\n \"IsMobileAvailable\": vm.Asset_Mobile,\r\n \"IsLaptopAvailable\": vm.Asset_Laptop,\r\n \"Tools\": vm.Asset_Tools,\r\n \"JobCountStart\": jobscount[0],\r\n \"JobCountEnd\": jobscount[1],\r\n \"RatingStart\": Number(ratings[0]),\r\n \"RatingEnd\": Number(ratings[1]),\r\n \"PreferredTalentPool\": false,\r\n \"IsFreelancerBidCount\": vm.IsFreelancerBidCount,\r\n \"IsFixedTeamCount\" : vm.IsFixedTeamCount,\r\n \"FreelancerRole\": \"Teacher\",\r\n \"Locations\": vm.Locations,\r\n \"UserStatus\": vm.UserStatus,\r\n \"ContactNumber\": vm.ContactNumber,\r\n \"UserName\": vm.UserName,\r\n \"UserId\": vm.UserId,\r\n \"IsStudent\": vm.Student,\r\n \"MMFPrimeMember\": $scope.Prime,\r\n \"MMFNonPrimeMember\": $scope.NonPrime,\r\n \"IsOpenForInternship\": vm.Intern,\r\n \"IsAdharVerified\": vm.Adharcard,\r\n \"BrandName\": vm.ServiceBrand,\r\n \"ProductServing\": vm.ServiceProduct,\r\n \"IsBankVarified\": vm.IsBankVerified,\r\n \"IsCriminalVerified\": vm.Criminal,\r\n \"Source\": vm.Source,\r\n \"OneJobDoneForSkills\": vm.OneJobDone,\r\n \"PssStatus\": vm.PssStatus,\r\n \"SMEInterctionVideo\" : vm.SMEInterctionVideo,\r\n \"SearchTag\": vm.SearchTag,\r\n \"ReportingTo\": vm.ReportingTo,\r\n \"OrderBy\": vm.OrderBy,\r\n \"SortType\": vm.SortType,\r\n \"IsAuthorizedServiceCenterCount\" :vm.IsAuthorizedServiceCenter\r\n }\r\n\r\n vm.mapuserFormData = {\r\n \"PageIndex\": '',\r\n \"PageSize\": '',\r\n \"ActivationStartDate\": startDate,\r\n \"ActivationEnddate\": endDate,\r\n \"State\": vm.PermanentState,\r\n \"Cities\": vm.PermanentCity,\r\n \"Pincodes\": temp,\r\n \"Skill\": vm.userskill,\r\n \"UserVerificationStatus\": vm.UserVerificationStatus,\r\n \"IsFreelancerBidCount\": vm.IsFreelancerBidCount,\r\n \"IsFixedTeamCount\" : vm.IsFixedTeamCount,\r\n \"ExperienceStart\": res[0],\r\n \"ExperienceEnd\": res[1],\r\n \"Certificates\": vm.traningCertificateList,\r\n \"IsBikeAvailable\": vm.Asset_Bike,\r\n \"IsMobileAvailable\": vm.Asset_Mobile,\r\n \"IsLaptopAvailable\": vm.Asset_Laptop,\r\n \"Tools\": vm.Asset_Tools,\r\n \"JobCountStart\": jobscount[0],\r\n \"JobCountEnd\": jobscount[1],\r\n \"RatingStart\": Number(ratings[0]),\r\n \"RatingEnd\": Number(ratings[1]),\r\n \"PreferredTalentPool\": false,\r\n \"FreelancerRole\": \"Teacher\",\r\n \"Locations\": vm.Locations,\r\n \"UserStatus\": vm.UserStatus,\r\n \"ContactNumber\": vm.ContactNumber,\r\n \"UserName\": vm.UserName,\r\n \"UserId\": vm.UserId,\r\n \"IsStudent\": vm.Student,\r\n \"MMFPrimeMember\": $scope.Prime,\r\n \"MMFNonPrimeMember\": $scope.NonPrime,\r\n \"IsOpenForInternship\": vm.Intern,\r\n \"IsAdharVerified\": vm.Adharcard,\r\n \"IsBankVarified\": vm.IsBankVerified,\r\n \"IsCriminalVerified\": vm.Criminal,\r\n \"BrandName\": vm.ServiceBrand,\r\n \"ProductServing\": vm.ServiceProduct,\r\n \"Source\": vm.Source,\r\n \"OneJobDoneForSkills\": vm.OneJobDone,\r\n \"PssStatus\": vm.PssStatus,\r\n \"SMEInterctionVideo\" : vm.SMEInterctionVideo,\r\n \"ReportingTo\": vm.ReportingTo,\r\n \"OrderBy\": vm.OrderBy,\r\n \"SortType\": vm.SortType,\r\n \"IsAuthorizedServiceCenterCount\" :vm.IsAuthorizedServiceCenter }\r\n if (vm.filterApplied) {\r\n vm.GetTalentPoolForMap();\r\n }\r\n AllUsersListGCService.Filter(loggedinUser, token, vm.userFormData).then(function (resp) {\r\n if (resp.data) {\r\n vm.pfuserlist = [];\r\n vm.users = [];\r\n vm.usersCounts = resp.data;\r\n vm.users = resp.data.Users;\r\n if (vm.users.length == 0) {\r\n vm.showFailure('Failed', 'No User Found');\r\n }\r\n for (var i = 0; i < vm.users.length; i++) {\r\n if (vm.users[i].CustomerRating) {\r\n vm.users[i].CustomerRating = Number(vm.users[i].CustomerRating).toFixed(1);\r\n }\r\n }\r\n vm.totalTalentPoolCount = resp.data.Count;\r\n $scope.totalTalentUsers = resp.data.Count;\r\n $scope.totalTableUsers = resp.data.Count;\r\n if (vm.users.length < 20)\r\n vm.usersLength = $scope.totalTalentUsers;\r\n else\r\n vm.usersLength = tuPageIndex * 20;\r\n if (tuPageIndex == 1)\r\n vm.techpageindexCount = 1;\r\n else\r\n vm.techpageindexCount = (((tuPageIndex - 1) * 20) + 1);\r\n if (vm.users.length < 20)\r\n vm.usersLength = $scope.totalTalentUsers;\r\n else\r\n vm.usersLength = tuPageIndex * 20;\r\n if (tuPageIndex == 1)\r\n vm.techpageindexCount = 1;\r\n else\r\n vm.techpageindexCount = (((tuPageIndex - 1) * 20) + 1);\r\n if (vm.users.length > 0) {\r\n for (var i = 0; i < vm.users.length; i++) {\r\n if (vm.users[i].FavoriteForAccounts) {\r\n if (vm.users[i].FavoriteForAccounts.length > 0) {\r\n for (var j = 0; j < vm.users[i].FavoriteForAccounts.length; j++) {\r\n if (vm.users[i].FavoriteForAccounts[j] == AccountID) {\r\n vm.pfuserlist.push(vm.users[i]);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n $timeout(function () {\r\n $scope.class1 = false;\r\n }, 250);\r\n }\r\n })\r\n vm.UserCountbyFilter();\r\n }\r\n\r\n vm.ExternalUpload = function (teamid) {\r\n var newdata = {};\r\n newdata = {\r\n \"UserId\": teamid,\r\n \"Type\": \"\",\r\n \"skillName\": \"\"\r\n }\r\n AllUsersListGCService.UploadExternalVideoList(newdata, loggedinUser, token).then(function (resp) {\r\n vm.UploadVideoExternal = resp.data;\r\n });\r\n }\r\n\r\n vm.UserCountbyFilter = function () {\r\n AllUsersListGCService.UserCountbyFilter(loggedinUser, token, vm.userFormData).then(function (resp) {\r\n if (resp.data) {\r\n vm.TotalUsersCount = resp.data.Count;\r\n vm.BasicInformation = resp.data.BasicInformation;\r\n vm.LocationAndSkill = resp.data.LocationAndSkill;\r\n vm.Backgroundverified = resp.data.Backgroundverified;\r\n vm.Paymentverified = resp.data.Paymentverified;\r\n vm.PoliceVerified = resp.data.PoliceVerified;\r\n vm.CriminalVerified = resp.data.CriminalVerified;\r\n vm.SMEInteractionCount = resp.data.SMEInteractionCount;\r\n vm.TotalUserCount = resp.data.TotalUserCount;\r\n vm.TotalUKUserCount = resp.data.TotalUKUserCount;\r\n vm.TotalIndainUserCount = resp.data.TotalIndainUserCount;\r\n vm.TotalActiveFrUsersCount = resp.data.TotalActiveFrUsersCount;\r\n vm.TotalActiveFVUsersCount = resp.data.TotalActiveFVUsersCount;\r\n vm.TotalActiveFVTUsersCount = resp.data.TotalActiveFVTUsersCount;\r\n vm.FixedTeamCount = resp.data.FixedTeamCount;\r\n vm.PrimeMember = resp.data.PrimeMember;\r\n vm.NonPrimeMember = resp.data.NonPrimeMember;\r\n vm.TotalActiveUsersCount = resp.data.TotalActiveUsersCount;\r\n vm.Count = resp.data.Count;\r\n vm.TotalRegisterUser = resp.data.TotalRegisterUser;\r\n vm.TotalFreelancerBidCount = resp.data.TotalFreelancerBidCount;\r\n vm.OneJobDoneCount = resp.data.OneJobDoneCount;\r\n vm.NonPrimeMoreThanTenCount = resp.data.NonPrimeMoreThanTenCount;\r\n vm.LeadReceivedUserCount = resp.data.LeadReceivedUserCount;\r\n vm.LeadNotReceivedUserCount = resp.data.LeadNotReceivedUserCount;\r\n vm.LeadAcceptedUserCount = resp.data.LeadAcceptedUserCount;\r\n vm.LeadNotAcceptedUserCount = resp.data.LeadNotAcceptedUserCount;\r\n vm.JobRejectionBreachedCount = resp.data.JobRejectionBreachedCount;\r\n vm.JobRejectionMetCount = resp.data.JobRejectionMetCount;\r\n vm.SOPAdherenceBreachedCount = resp.data.SOPAdherenceBreachedCount;\r\n vm.SOPAdherenceMetCount = resp.data.SOPAdherenceMetCount;\r\n vm.AuthorizedServiceParnterDetailCount = resp.data.AuthorizedServiceParnterDetailCount\r\n vm.AuthorizedServiceParnterDetailCountActive = resp.data.AuthorizedServiceParnterDetailCountActive;\r\n vm.AuthorizedServiceParnterDetailCountInActive = resp.data.AuthorizedServiceParnterDetailCountInActive\r\n }\r\n })\r\n }\r\n vm.AllapplyTalentPoolfilter();\r\n\r\n vm.userOnboardingForm = function (UserId) {\r\n $localStorage.From = '';\r\n $state.go('index.NewOnboarding',{\r\n UserId: UserId\r\n }, { reload: true });\r\n }\r\n\r\n vm.DisableCreateButton = function (disable) {\r\n if (disable) {\r\n vm.disableCreateButton = true;\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n }\r\n }\r\n\r\n //user wise with pagination\r\n $scope.totalUW = 0;\r\n $scope.UWPerPage = vm.UWListCount;\r\n $scope.UWpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUWPageListCount = function () {\r\n $scope.UWPerPage = vm.UWListCount;\r\n uwPageSize = $scope.UWPerPage;\r\n $scope.UWTablePageChanged($scope.UWpagination.current);\r\n vm.selectAll = false;\r\n uwPageIndex = $scope.UWpagination.current;\r\n $scope.UWTablePageChanged = function (newPage) {\r\n uwPageIndex = newPage;\r\n vm.GetUserDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uwPageIndex, uwPageSize);\r\n };\r\n }\r\n\r\n uwPageIndex = $scope.UWpagination.current;\r\n $scope.UWTablePageChanged = function (newPage) {\r\n uwPageIndex = newPage;\r\n vm.GetUserDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uwPageIndex, uwPageSize);\r\n };\r\n\r\n vm.analysisUserList = [];\r\n vm.GetUserDataList = function (loggedinUser, token, UploadId, AnalysisId, userType, OrderSequence, uwPageIndex, uwPageSize) {\r\n AllUsersListGCService.GetUserData(loggedinUser, token, UploadId, AnalysisId, vm.Orderby, vm.OrderSequence, uwPageIndex, uwPageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.analysisUserList = resp.data.UserAnalysisResModelList;\r\n $scope.totalUW = resp.data.TotalRecords;\r\n preprocessData(vm.analysisUserList);\r\n if (vm.analysisUserList.length < vm.UWListCount)\r\n vm.analysisListUWLength = $scope.totalUW;\r\n else\r\n vm.analysisListUWLength = uwPageIndex * vm.UWListCount;\r\n if (uwPageIndex == 1)\r\n vm.uwpageindexCount = 1;\r\n else\r\n vm.uwpageindexCount = (((uwPageIndex - 1) * vm.UWListCount) + 1);\r\n }\r\n }, function (error) {\r\n })\r\n }\r\n\r\n\r\n //list of userwise\r\n $scope.totalUWtickets = 0;\r\n $scope.UWticketsPerPage = vm.UWticketsListCount;\r\n $scope.UWticketspagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.UWticketsPageListCount = function () {\r\n $scope.UWticketsPerPage = vm.UWticketsListCount;\r\n uwtPageSize = $scope.UWticketsPerPage;\r\n $scope.UWTicketTablePageChanged($scope.UWticketspagination.current);\r\n vm.selectAll = false;\r\n uwtPageIndex = $scope.UWticketspagination.current;\r\n $scope.UWTicketTablePageChanged = function (newPage) {\r\n uwtPageIndex = newPage;\r\n vm.GetUserUWDataPagingList(true, $localStorage.UploadId, vm.AnalysisId, vm.UserId, vm.ListType, vm.SortBy, vm.OrderSequence, uwtPageIndex, uwtPageSize, loggedinUser, token);\r\n };\r\n }\r\n\r\n uwtPageIndex = $scope.UWticketspagination.current;\r\n $scope.UWTicketTablePageChanged = function (newPage) {\r\n uwtPageIndex = newPage;\r\n vm.GetUserUWDataPagingList(true, $localStorage.UploadId, vm.AnalysisId, vm.UserId, vm.ListType, vm.SortBy, vm.OrderSequence, uwtPageIndex, uwtPageSize, loggedinUser, token)\r\n };\r\n\r\n\r\n vm.UWTicketList = [];\r\n vm.GetUserUWDataPagingList = function (isCollapsed, UploadId, AnalysisId, UserId, ListType) {\r\n if (vm.UserId == UserId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.showAddressTable = UserId;\r\n vm.UploadId = UploadId;\r\n vm.AnalysisId = AnalysisId;\r\n vm.UserId = UserId;\r\n vm.ListType = ListType;\r\n AllUsersListGCService.GetAddressListForUserOnPaging($localStorage.UploadId, $localStorage.AnalysisId, vm.UserId, vm.ListType, vm.SortBy, vm.OrderSequence, uwtPageIndex, uwtPageSize, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UWTicketList = resp.data.AddressModelResList;\r\n $scope.totalUWtickets = resp.data.RecordCount;\r\n if (vm.UWTicketList.length < vm.UWticketsListCount)\r\n vm.UWTicketListLength = $scope.totalUWtickets;\r\n else\r\n vm.UWTicketListLength = uwtPageIndex * vm.UWticketsListCount;\r\n if (uwtPageIndex == 1)\r\n vm.uwtPageIndexCount = 1;\r\n else\r\n vm.uwtPageIndexCount = (((uwtPageIndex - 1) * vm.UWticketsListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n vm.RunCampaignOnUsers = function () {\r\n vm.campaign_form.submitted = true;\r\n vm.userFormData.CampaignName = vm.CampaignName;\r\n if (vm.campaign_form.$valid) {\r\n AllUsersListGCService.RunCampaignOnUsers(vm.userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseCampaignModel();\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.campaignSkill = null;\r\n vm.campaignLocation = null;\r\n vm.campaignTools = null;\r\n vm.campaignLink = null;\r\n\r\n vm.DynamicRunCampaignOnUsers = function () {\r\n vm.campaign_form.submitted = true;\r\n vm.userFormData.CampaignName = vm.CampaignName;\r\n vm.userFormData.CampaignParameters = [];\r\n vm.userFormData.CampaignParameters.push(vm.campaignSkill);\r\n vm.userFormData.CampaignParameters.push(vm.campaignLocation);\r\n vm.userFormData.CampaignParameters.push(vm.campaignTools);\r\n vm.userFormData.CampaignParameters.push(vm.campaignLink);\r\n if (vm.campaign_form.$valid) {\r\n AllUsersListGCService.RunCampaignOnUsers(vm.userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseDynamicCampaignModel();\r\n }\r\n })\r\n }\r\n }\r\n\r\n // 360 profile\r\n vm.GetAllCampaignName = function () {\r\n AllUsersListGCService.GetAllCampaignName(loggedinUser, token).then(function (resp) {\r\n vm.campaignNameList = resp.data;\r\n })\r\n }\r\n\r\n vm.GetAllGenericCampaignName = function () {\r\n AllUsersListGCService.GetAllGenericCampaignName(loggedinUser, token).then(function (resp) {\r\n vm.genericCampaignNameList = resp.data;\r\n })\r\n }\r\n\r\n\r\n vm.GetFinanceTicketDetail = function (paymentId, isCollapsed) {\r\n $scope.isCollapsed = !isCollapsed;\r\n DashboardService.GetFinanceTicketDetail(paymentId).then(function (resp) {\r\n vm.financedetails = resp.data;\r\n })\r\n }\r\n\r\n vm.GetLastFollowUpOnTicketId = function (teamid) {\r\n vm.userId = teamid;\r\n vm.FollowupListArr = [];\r\n DashboardService.GetLastFollowUpOnTicketId(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.followupdata = resp.data;\r\n angular.forEach(vm.followupdata, function (fdetail, i) {\r\n if (fdetail != null) {\r\n angular.forEach(vm.followupdata[i].FollowUpOnTicket, function (fdetail, i) {\r\n vm.FollowupList = fdetail.FollowUpOnTicket;\r\n vm.FollowupListArr.push(fdetail);\r\n })\r\n\r\n }\r\n })\r\n })\r\n }\r\n\r\n vm.ReTestForSkill = function (skill) {\r\n var data = {};\r\n data = {\r\n \"UserId\": vm.userId,\r\n \"Skill\": skill\r\n }\r\n OnBoardingFlowService.ReTestForSkill(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n\r\n vm.Get360TeamProfileData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360ProfileData(loggedinUser, teamid, token).then(function (resp) {\r\n if (resp.data) {\r\n $scope.userClass_status = false;\r\n $scope.myvalue = true;\r\n }\r\n vm.teamdata = resp.data;\r\n vm.AvgRating = vm.teamdata.userProfile.AverageRating;\r\n vm.ReviewsList = vm.teamdata.userProfile.Reviews\r\n vm.teamdata.ratingStars = vm.getRatingStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.blankStars = vm.getBlankStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.avgratingStars = vm.getAvgRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.avgblankStars = vm.getAvgBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n if (vm.teamdata.userProfile.ContactNumber) {\r\n vm.teamdata.userProfile.ContactNumber = vm.teamdata.userProfile.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n\r\n if (vm.teamdata.userProfile.Reviews) {\r\n vm.teamdata.userProfile.Reviews.forEach(function (element, i) {\r\n vm.teamdata.userratingStars = vm.getUserRatingStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n vm.teamdata.userblankStars = vm.getUserBlankStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n element.arrayRating = vm.teamdata.userratingStars;\r\n element.blankRating = vm.teamdata.userblankStars;\r\n });\r\n }\r\n\r\n vm.TechnicianRating = Number(vm.teamdata.userProfile.Ratings.TechnicianRating).toFixed(1);\r\n $timeout(function () {\r\n displayTotals();\r\n }, 300);\r\n }, function () {\r\n })\r\n }\r\n\r\n vm.filterStatusForJObs = function (status) {\r\n vm.JobcountbyStatus = status;\r\n vm.wsersFilterArray();\r\n PageIndex = 1;\r\n vm.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype);\r\n }\r\n\r\n\r\n vm.Get360AuthorizedDetail = function () {\r\n DashboardService.GetAuthorizedServicePartnerDetail(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.authorizeDetail = resp.data;\r\n })\r\n }\r\n\r\n vm.brandList = [\"LG\", \"Samsung\", \"Havells & lloyds\", \"Hitachi\", \"Panasonic\", \"O general\", \"Daikin\", \"Micromax\", \"Bluestar\", \"Toshiba\", \"Glen\", \"Lifelong\", \"Whirlpool\", \"IFB\", \"Philips\", \"Godrej\", \"Bajaj\"];\r\n\r\n vm.productList = [\"Aircon\", \"Air cooler\", \"Home Appliances\", \"IT\", \"AC\", \"Multi product\", \"RO\", \"Printer\"];\r\n\r\n vm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getAvgRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getAvgBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getUserRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getUserBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n $scope.totalWS = 0;\r\n $scope.wsPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function (userId) {\r\n $scope.wsPerPage = vm.userPageListCount;\r\n uPageSize = $scope.wsPerPage;\r\n $scope.WSTablePageChanged($scope.Userpagination.current);\r\n\r\n uPageIndex = $scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n vm.wsersFilterArray();\r\n vm.Get360WorkSummary(loggedinUser, token, userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n }\r\n\r\n uPageIndex = $scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n if (witemNames != 'Search') {\r\n vm.wsersFilterArray();\r\n }\r\n\r\n vm.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n\r\n\r\n vm.wsersFilterArray = function () {\r\n witemNames = \"\";\r\n witemValues = \"\";\r\n\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null) {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n } else {\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n }\r\n }\r\n if (vm.userNameSearch) {\r\n if (witemNames) {\r\n witemNames = witemNames + ',Search';\r\n witemValues = witemValues + \",\" + vm.userNameSearch;\r\n }\r\n else {\r\n witemNames = 'Search';\r\n witemValues = vm.userNameSearch;\r\n }\r\n }\r\n\r\n if (vm.JobcountbyStatus) {\r\n if (witemNames) {\r\n witemNames = witemNames + ',Status';\r\n witemValues = witemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else {\r\n witemNames = 'Status';\r\n witemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n // apply user rating to all displays\r\n // add star ratings to an array\r\n var starRating = document.querySelectorAll(\".fa-star\"),\r\n ratingTotal = document.querySelectorAll(\".rating-total\");\r\n\r\n // convert ratingTotal HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n // display initial rating totals\r\n // displayTotals();\r\n\r\n // use event listener to record changes to user rating\r\n starRating.forEach(function (star) {\r\n star.addEventListener(\"change\", recordRating);\r\n })\r\n\r\n function recordRating(event) {\r\n // use indexOf to identify selected user rating\r\n var userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n // define selected rating to adjust display totals\r\n var selectedIndex;\r\n\r\n starRating.forEach(function (item, index) {\r\n // add or remove .active class based upon selected user rating\r\n if (index < userRating + 1) {\r\n starRating[index].classList.add(\"active\");\r\n selectedIndex = index;\r\n } else {\r\n starRating[index].classList.remove(\"active\");\r\n }\r\n\r\n displayTotals(selectedIndex);\r\n });\r\n }\r\n vm.countForStatus = 50;\r\n // display star rating totals from html custom data-\r\n function displayTotals(selectedIndex) {\r\n var barChart = document.querySelectorAll(\".bar\"),\r\n displaySummary = document.querySelectorAll(\".summary\"),\r\n numRatings = 0,\r\n numRatingsValue = 0;\r\n\r\n // convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseBarChart = Array.from(barChart).reverse();\r\n\r\n reverseRatingTotal.forEach(function (total, index) {\r\n if (index == selectedIndex) {\r\n // add selected rating to display total\r\n total.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n // adjust selected bar width\r\n reverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n } else {\r\n // display unselected totals\r\n total.innerHTML = total.getAttribute(\"data-rating-count\");\r\n // adjust unselected bar widths\r\n reverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n }\r\n // count total number and value of ratings\r\n numRatings += parseInt(total.innerHTML);\r\n numRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n });\r\n\r\n // display rating average and total\r\n ratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n // displaySummary[0].innerHTML = ratingsAverage + \" average based on \" + numRatings + \" reviews.\";\r\n }\r\n\r\n vm.Get360VendorTeamData = function (teamid) {\r\n // vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n vm.GetUsersTicket = function (isCollapsed, status, id, type) {\r\n $scope.activeRow = id;\r\n $scope.isCollapsed = !isCollapsed;\r\n vm.userIdforStatus = id;\r\n vm.statusForTickets = status;\r\n vm.JobcountbyStatus = '';\r\n vm.filterType = type;\r\n vm.FilterArray();\r\n if (!vm.filterType) {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }\r\n vm.getAllJobTicketsCopyForUsers(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }\r\n\r\n vm.getAllJobTicketsCopyForUsers = function (loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize) {\r\n var templateCols = \"\";\r\n vm.resetAllSelect();\r\n var templateCols = \"\";\r\n vm.UserticketList = [];\r\n PageIndex = PageIndex ? PageIndex : 1;\r\n vm.DateField = vm.DateField ? vm.DateField : \"CreatedOn\";\r\n ManualAssignationJobService.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, vm.DateField, PageIndex, PageSize, vm.SortType, vm.SortField).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserticketList = resp.data.LightTicketModels;\r\n }\r\n\r\n }, function () {\r\n });\r\n\r\n }\r\n\r\n vm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.wsTicketList = resp.data.workSummaryData;\r\n $scope.totalWS = resp.data.WorkSummaryTotalCount;\r\n if (vm.wsTicketList.length < vm.userPageListCount)\r\n vm.wsListLength = $scope.totalWS;\r\n else\r\n vm.wsListLength = uPageIndex * vm.userPageListCount;\r\n if (uPageIndex == 1)\r\n vm.wspageindexCount = 1;\r\n else\r\n vm.wspageindexCount = (((uPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n vm.FinanceFiltersList = [];\r\n vm.GetFinancialSummary = function () {\r\n DashboardService.GetFinancialSummary(loggedinUser, token, vm.userId, fnitemNames, fnitemValues, fPageIndex, fPageSize, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.paymentCount = resp.data.paymentsSummary;\r\n vm.FinanceFiltersList = resp.data.financialSummary360.financialLPSummaryList;\r\n $scope.totalFinList = resp.data.financialSummary360.count;\r\n if (vm.FinanceFiltersList.length < vm.financePageListCount)\r\n vm.financeListLength = $scope.totalFinList;\r\n else\r\n vm.financeListLength = fPageIndex * vm.financePageListCount;\r\n if (fPageIndex == 1)\r\n vm.fpageindexCount = 1;\r\n else\r\n vm.fpageindexCount = (((fPageIndex - 1) * vm.financePageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n $scope.totalFinList = 0;\r\n $scope.usersPerPage = vm.financePageListCount;\r\n $scope.Financepagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changefinancePageListCount = function () {\r\n $scope.usersPerPage = vm.financePageListCount;\r\n fPageSize = $scope.usersPerPage;\r\n $scope.FinanceTablePageChanged($scope.Financepagination.current);\r\n vm.selectAll = false;\r\n\r\n fPageIndex = $scope.Financepagination.current;\r\n $scope.FinanceTablePageChanged = function (newPage) {\r\n fPageIndex = newPage;\r\n vm.FinanceFilterArray();\r\n vm.GetFinancialSummary(loggedinUser, token, vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n }\r\n\r\n fPageIndex = $scope.Financepagination.current;\r\n $scope.FinanceTablePageChanged = function (newPage) {\r\n fPageIndex = newPage;\r\n if (uitemNames != 'Search') {\r\n vm.FinanceFilterArray();\r\n }\r\n\r\n vm.GetFinancialSummary(loggedinUser, token, vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n\r\n\r\n vm.Get360SkillSummary = function () {\r\n DashboardService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for (var i = 0; i < vm.skillsetData.CertificateDetails.length; i++) {\r\n vm.CertimageServices(vm.skillsetData.CertificateDetails[i].TrainingCertificate, i);\r\n }\r\n\r\n if (vm.skillsetData.PreviousCompanyDetailsList) {\r\n for (var i = 0; i < vm.skillsetData.PreviousCompanyDetailsList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter) == 'image')\r\n vm.PreviousCompnyExperienceLetterServices(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter, i);\r\n }\r\n }\r\n\r\n if (vm.skillsetData.UserTrainingList) {\r\n for (var i = 0; i < vm.skillsetData.UserTrainingList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingImage) == 'image')\r\n vm.TrainingImageServices(vm.skillsetData.UserTrainingList[i].TrainingImage, i);\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingAttendance) == 'image')\r\n vm.TrainingAttendanceServices(vm.skillsetData.UserTrainingList[i].TrainingAttendance, i);\r\n }\r\n\r\n }\r\n })\r\n }\r\n\r\n vm.Dashboard = function (user) {\r\n $state.go('index.Dashboard', {\r\n UserId: user\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.RegistrationHistory = function (user) {\r\n $state.go('index.RegistrationForm', {\r\n UserId: user\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n\r\n vm.GetReviewAndRatings = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.GetReviewAndRatings(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.reviewData = resp.data;\r\n vm.teamdata.InstallationratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.teamdata.InstallationblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.InstallationService_Avrage));\r\n vm.teamdata.SafetyratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.teamdata.SafetyblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.SafetyProtocols_Avrage));\r\n vm.teamdata.VisitratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.teamdata.VisitblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.VisitonTime_Avrage));\r\n vm.teamdata.CourteousratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.teamdata.CourteousblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.CourteousRespectful_Avrage));\r\n vm.teamdata.ProratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.teamdata.ProblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ProfessionalAppearance_Avrage));\r\n vm.teamdata.ServiceratingStars = vm.getRatingStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n vm.teamdata.ServiceblankStars = vm.getBlankStars(Math.round(vm.reviewData.behaviourRating.ServiceExperience_Avrage));\r\n })\r\n }\r\n\r\n\r\n vm.Get360VendorTeamData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n\r\n vm.GetToolsAndAssets = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.GetToolsAndAssets(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.assetData = resp.data;\r\n })\r\n }\r\n\r\n $scope.UserDetailsAvailable = true;\r\n // $scope.UserOpportunity = function(user) {\r\n\r\n // };\r\n\r\n $scope.closeNav = function () {\r\n $scope.UserDetailsAvailable = !$scope.UserDetailsAvailable;\r\n }\r\n vm.GetSkillRecommendationsForUser = function (user) {\r\n vm.newPincodeSet = [];\r\n vm.existingPincodeSet = [];\r\n vm.UserCurrentData = user\r\n vm.userIdforRec = user.UserId\r\n AllUsersListGCService.GetSkillRecommendationsForUser(vm.userIdforRec, loggedinUser, token).then(function (resp) {\r\n $scope.UserDetailsAvailable = !$scope.UserDetailsAvailable;\r\n vm.recommendationData = resp.data;\r\n vm.PincodeExistingOpportunityModelList = resp.data.PincodeExistingOpportunityModelList;\r\n vm.PincodeNewOpportunityModelList = resp.data.PincodeNewOpportunityModelList;\r\n })\r\n }\r\n vm.PDFView = function (page) {\r\n vm.pdfimage =\"\";\r\n vm.IsLoadSucessfull=false;\r\n $scope.selected = null;\r\n // $timeout(function () {\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size: 'lg',\r\n scope: $scope\r\n });\r\n // }, 1000)\r\n\r\n }\r\n vm.PDFUserModal = function () {\r\n jobAppointmentModal.close();\r\n }\r\n vm.pdfimage = \"\";\r\n vm.DocumentAvailableMessage=\"\";\t\r\n vm.downloadOnSiteReport = function (userId) {\r\n vm.PDFView();\r\n \r\n // var PreviewConsolidatedInvoiceList = previewSelectedObj;\r\n AllUsersListGCService.userpdfreport(userId,loggedinUser, token).then(function (resp) {\r\n \r\n vm.responseDataList = resp.data;\r\n var arrrayBuffer = base64ToArrayBuffer(vm.responseDataList);\r\n var blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n vm.pdfimage = URL.createObjectURL(blob);\r\n vm.IsLoadSucessfull = true;\r\n \r\n \r\n \r\n });\r\n }\r\n function base64ToArrayBuffer(base64) {\r\n var ret = base64.replace('data:application/pdf;base64,', '');\r\n var binaryString = atob(ret);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n return bytes;\r\n }\r\n\r\nvm.userpdfreport = function(userId){\r\n vm.downloadOnSiteReport(userId);\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n vm.GetPincodeOfSelectedSkill = function (skill) {\r\n vm.selectedSKill = skill;\r\n angular.forEach(vm.PincodeExistingOpportunityModelList, function (skillset) {\r\n if (skillset.SkillName == vm.selectedSKill) {\r\n vm.existingPincodeSet = skillset.PincodeOpportunityModelList;\r\n }\r\n\r\n });\r\n }\r\n\r\n vm.GetNewPincodeOfSelectedSkill = function (skill) {\r\n vm.newselectedSKill = skill;\r\n angular.forEach(vm.PincodeNewOpportunityModelList, function (newskillset) {\r\n if (newskillset.SkillName == vm.newselectedSKill) {\r\n vm.newPincodeSet = newskillset.PincodeOpportunityModelList;\r\n }\r\n\r\n });\r\n }\r\n\r\n function preprocessData(users) {\r\n if (users && users.length > 0) {\r\n angular.forEach(users, function (user) {\r\n user.locationCount = user.Locations && user.Locations.length > 0 ? user.Locations.length : 0;\r\n user.locationToolTip = \"\";\r\n if (user.locationCount > 0) {\r\n angular.forEach(user.Locations, function (loc) {\r\n user.locationToolTip += loc + \",\";\r\n })\r\n user.locationToolTip = user.locationToolTip.substr(0, user.locationToolTip.length - 1);\r\n }\r\n\r\n user.worklocationCount = user.UserWorkLocations && user.UserWorkLocations.length > 0 ? user.UserWorkLocations.length : 0;\r\n user.worklocationToolTip = \"\";\r\n if (user.worklocationCount > 0) {\r\n angular.forEach(user.UserWorkLocations, function (loc) {\r\n user.worklocationToolTip += loc + \",\";\r\n })\r\n user.worklocationToolTip = user.worklocationToolTip.substr(0, user.worklocationToolTip.length - 1);\r\n }\r\n\r\n user.SkillSetCount = user.SkillSet && user.SkillSet.length > 0 ? user.SkillSet.length : 0;\r\n user.SkillSetToolTip = \"\";\r\n if (user.SkillSetCount > 0) {\r\n angular.forEach(user.SkillSet, function (s) {\r\n user.SkillSetToolTip += s + \",\";\r\n })\r\n user.SkillSetToolTip = user.SkillSetToolTip.substr(0, user.SkillSetToolTip.length - 1);\r\n }\r\n\r\n user.OneJobSkillSetCount = user.OneJobDoneSkills && user.OneJobDoneSkills.length > 0 ? user.OneJobDoneSkills.length : 0;\r\n user.OneJobSkillSetToolTip = \"\";\r\n if (user.OneJobSkillSetCount > 0) {\r\n angular.forEach(user.OneJobDoneSkills, function (s) {\r\n user.OneJobSkillSetToolTip += s + \",\";\r\n })\r\n user.OneJobSkillSetToolTip = user.OneJobSkillSetToolTip.substr(0, user.OneJobSkillSetToolTip.length - 1);\r\n }\r\n\r\n });\r\n }\r\n }\r\n // for arrow rotate \r\n\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n };\r\n $scope.activatedButton = function () {\r\n $scope.isactivated = !$scope.isactivated;\r\n }\r\n $scope.activatedButton1 = function () {\r\n $scope.isactivated1 = !$scope.isactivated1;\r\n }\r\n $scope.activatedButton2 = function () {\r\n $scope.isactivated2 = !$scope.isactivated2;\r\n }\r\n $scope.activatedButton3 = function () {\r\n $scope.isactivated3 = !$scope.isactivated3;\r\n }\r\n $scope.activatedButton4 = function () {\r\n $scope.isactivated4 = !$scope.isactivated4;\r\n }\r\n $scope.activatedButton5 = function () {\r\n $scope.isactivated5 = !$scope.isactivated5;\r\n }\r\n $scope.activatedButton6 = function () {\r\n $scope.isactivated6 = !$scope.isactivated6;\r\n }\r\n $scope.activatedButton7 = function () {\r\n $scope.isactivated7 = !$scope.isactivated7;\r\n }\r\n $scope.activatedButton8 = function () {\r\n $scope.isactivated8 = !$scope.isactivated8;\r\n }\r\n $scope.activatedButton9 = function () {\r\n $scope.isactivated9 = !$scope.isactivated9;\r\n }\r\n $scope.activatedButton10 = function () {\r\n $scope.isactivated10 = !$scope.isactivated10;\r\n }\r\n $scope.activatedButton11 = function () {\r\n $scope.isactivated11 = !$scope.isactivated11;\r\n }\r\n $scope.activatedButton12 = function () {\r\n $scope.isactivated12 = !$scope.isactivated12;\r\n }\r\n $scope.activatedButton13 = function () {\r\n $scope.isactivated13 = !$scope.isactivated13;\r\n }\r\n $scope.activatedButton14 = function () {\r\n $scope.isactivated14 = !$scope.isactivated14;\r\n }\r\n $scope.activatedButton15 = function () {\r\n $scope.isactivated15 = !$scope.isactivated15;\r\n }\r\n $scope.activatedButton16 = function () {\r\n $scope.isactivated16 = !$scope.isactivated16;\r\n }\r\n $scope.activatedButton17 = function () {\r\n $scope.isactivated17 = !$scope.isactivated17;\r\n }\r\n $scope.activatedButton18 = function () {\r\n $scope.isactivated18 = !$scope.isactivated18;\r\n }\r\n $scope.activatedButton19 = function () {\r\n $scope.isactivated19 = !$scope.isactivated19;\r\n }\r\n\r\n $scope.activatedButton20 = function () {\r\n $scope.isactivated20 = !$scope.isactivated20;\r\n }\r\n $scope.activatedButton21 = function () {\r\n $scope.isactivated21 = !$scope.isactivated21;\r\n }\r\n $scope.activatedButton22 = function () {\r\n $scope.isactivated22 = !$scope.isactivated22;\r\n }\r\n $scope.activatedButton23 = function () {\r\n $scope.isactivated23 = !$scope.isactivated23;\r\n }\r\n $scope.activatedButton24 = function () {\r\n $scope.isactivated24 = !$scope.isactivated24;\r\n }\r\n $scope.activatedButton25 = function () {\r\n $scope.isactivated25 = !$scope.isactivated25;\r\n }\r\n $scope.activatedButton26 = function () {\r\n $scope.isactivated26 = !$scope.isactivated26;\r\n }\r\n $scope.activatedButton27 = function () {\r\n $scope.isactivated27 = !$scope.isactivated27;\r\n }\r\n $scope.activatedButton28 = function () {\r\n $scope.isactivated28 = !$scope.isactivated28;\r\n }\r\n $scope.activatedButton29 = function () {\r\n $scope.isactivated29 = !$scope.isactivated29;\r\n }\r\n $scope.activatedButton30 = function () {\r\n $scope.isactivated30 = !$scope.isactivated30;\r\n }\r\n $scope.activatedButton31 = function () {\r\n $scope.isactivated31 = !$scope.isactivated31;\r\n }\r\n $scope.activatedButton32 = function () {\r\n $scope.isactivated32 = !$scope.isactivated32;\r\n }\r\n $scope.activatedButton33 = function () {\r\n $scope.isactivated33 = !$scope.isactivated33;\r\n }\r\n $scope.activatedButton34 = function () {\r\n $scope.isactivated34 = !$scope.isactivated34;\r\n }\r\n $scope.activatedButton35 = function () {\r\n $scope.isactivated35 = !$scope.isactivated35;\r\n }\r\n $scope.activatedButton36 = function () {\r\n $scope.isactivated36 = !$scope.isactivated36;\r\n }\r\n $scope.activatedButton37 = function () {\r\n $scope.isactivated37 = !$scope.isactivated37;\r\n }\r\n $scope.activatedButton38 = function () {\r\n $scope.isactivated38 = !$scope.isactivated38;\r\n }\r\n $scope.activatedButton39 = function () {\r\n $scope.isactivated39 = !$scope.isactivated39;\r\n }\r\n $scope.activatedButton40 = function () {\r\n $scope.isactivated40 = !$scope.isactivated40;\r\n }\r\n var $range = $(\".js-range-slider\"),\r\n $from = $(\".from\"),\r\n $to = $(\".to\"),\r\n range,\r\n min = $range.data('min'),\r\n max = $range.data('max'),\r\n from,\r\n to;\r\n\r\n var updateValues = function () {\r\n $from.prop(\"value\", from);\r\n $to.prop(\"value\", to);\r\n };\r\n\r\n $range.ionRangeSlider({\r\n onChange: function (data) {\r\n from = data.from;\r\n to = data.to;\r\n updateValues();\r\n }\r\n });\r\n\r\n range = $range.data(\"ionRangeSlider\");\r\n var updateRange = function () {\r\n range.update({\r\n from: from,\r\n to: to\r\n });\r\n };\r\n\r\n $from.on(\"input\", function () {\r\n from = +$(this).prop(\"value\");\r\n if (from < min) {\r\n from = min;\r\n }\r\n if (from > to) {\r\n from = to;\r\n }\r\n updateValues();\r\n updateRange();\r\n });\r\n\r\n $to.on(\"input\", function () {\r\n to = +$(this).prop(\"value\");\r\n if (to > max) {\r\n to = max;\r\n }\r\n if (to < from) {\r\n to = from;\r\n }\r\n updateValues();\r\n updateRange();\r\n });\r\n }\r\n});\n\r\nangular.module('inspinia').service('AllUsersListService', function (ApiURL, FreelancerURL,AlertURL, CampaignURL, $log, $http, $localStorage) {\r\n\r\n this.GetAllFreLancerProfile = function (loggedinUser, token, itemNames, itemValues, textItemNames, textItemValues) {\r\n var url = '';\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllFreLancerWithFiltersWithLightProfile?itemNames=' + itemNames + '&itemValues=' + itemValues + '&textItemNames=' + textItemNames + '&textItemValues=' + textItemValues;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetTalentPoolForMapView = function (mapuserFormData, loggedinUser, token) {\r\n var url = FreelancerURL + \"/api/FreelancerUser/GetTalentPoolForMapView\";\r\n return $http.put(url, mapuserFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n this.GetAllAccountDetails = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/accountConfig/GetAllAccountDetails';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getSkills = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/SkillSets/' + loggedinUser + '/getmasterskillsB2C';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n this.GetAllCertificate = function (loggedinUser, token, success, failure) {\r\n var url = ApiURL + '/api/Cetrificate/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url, { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n success(res.data);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to get certificate list, server error.\");\r\n })\r\n }\r\n\r\n this.GetAllToolSets = function (loggedinUser, token, success, failure) {\r\n var url = ApiURL + '/api/Tool/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url, { headers: { 'Token': token, 'UserId': loggedinUser } }).then(function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n success(res.data);\r\n }\r\n }, function (err) {\r\n failure(\"Failed\", \"Unable to get certificate list, server error.\");\r\n })\r\n }\r\n this.GetUsersForPinpoint = function (ticketFormData, lat, long, pincode, loggedinUser, token) {\r\n var url = ApiURL + '/api/CapacityPlanning/GetUsersForPinpoint?Latitude=' + lat + '&Longitude=' + long + \"&Pincode=\" + pincode;\r\n return $http.post(url, ticketFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n // this.Filter = function ( loggedinUser, token,userFormData) {\r\n // var url = FreelancerURL + \"/api/FreelancerUser/FreelancerByPaging?reqUserid=\" + loggedinUser;\r\n // return $http.put(url, userFormData, {\r\n // headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n // });\r\n // }\r\n\r\n this.Filter = function (loggedinUser, token, userFormData) {\r\n var url = FreelancerURL + \"/api/FreeLancerRegistration/FreelancerListingByPaging?reqUserid=\" + loggedinUser;\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UploadExternalVideoList = function (newdata, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/GetVideoKycData';\r\n return $http.put(url, newdata, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UserCountbyFilter = function (loggedinUser, token, userFormData) {\r\n var url = FreelancerURL + \"/api/FreeLancerRegistration/UserCountbyFilter?reqUserid=\" + loggedinUser;\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.getAllState = function (loggedinUser) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllStates';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n this.GetAllUsers = function (loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllUsers'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.GetAllActiveTaskForFilter = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/OnBoardingTask/GetAllActiveTaskForFilter'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.callToTechnicianApi = function (loggedinUser, userid, token) {\r\n url = ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId=' + userid;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetUserData = function (loggedinUser, token, UploadId, AnalysisId, Orderby, OrderSequence, uwPageIndex, uwPageSize) {\r\n var url = '';\r\n url = ApiURL + '/api/CapacityPlanning/GetUserAnalysisDataOnPaging?UploadId=' + UploadId + '&AnalysisId=' + AnalysisId + '&Orderby=' + Orderby + '&OrderSequence=' + OrderSequence + '&Index=' + uwPageIndex + '&PageSize=' + uwPageSize;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n \r\n this.GetAllCampaignName = function (loggedinUser, token) {\r\n url = ApiURL + '/api/Campaign/GetAllCampaignName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAllGenericCampaignName = function (loggedinUser, token) {\r\n url = ApiURL + '/api/Campaign/GetAllGenericCampaignName';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.RunCampaignOnUsers = function (userFormData, loggedinUser, token) {\r\n var url = ApiURL + \"/api/Campaign/RunCampaignOnUsers\";\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetSkillRecommendationsForUser = function (userId,loggedinUser, token) {\r\n url = FreelancerURL + '/api/Recommendation/GetSkillRecommendationsForUser?UserId=' + userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.userpdfreport = function (userId,loggedinUser, token) {\r\n url = ApiURL + '/api/PDFReportMapper/GenerateUserPersonalInfo?UserId=' + userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CreateInternalContactList = function (ListName,userFormData, loggedinUser, token) {\r\n var url = CampaignURL + \"/api/CallCampaign/CreateInternalContactList?contactListName=mmf-\" + ListName;\r\n return $http.post(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n \r\n this.GetAllOnboardingUser = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/User/GetAllOnboardingUser'\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.CreateAutoDailerTaskManually = function (userFormData, loggedinUser, token) {\r\n var url = AlertURL + \"/api/EscalationTask/CreateAutoDailerTaskManually\";\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n});\r\n\nangular.module('inspinia').controller('AllUsersListController', function (OnBoardingFlowService, DashboardService, DTColumnBuilder, $filter, $q, $compile, DTOptionsBuilder, ManualAssignationJobService, RegisteredAllUserService, AllUsersListService, $scope, TicketBasedPlanningService, $window, $uibModal, $timeout, $http, NgMap,\r\n ReferService, $rootScope, $q, DTColumnDefBuilder, $uibModal, $localStorage, $state, AlertURL, ApiURL, $timeout, ngProgressFactory, $interval) {\r\n var vm = this;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n vm.CallPatchEnable = $localStorage.accountConfig.CallPatchEnable;\r\n var token = $localStorage.token;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n\r\n vm.FilterSwitch = false;\r\n vm.client = 1;\r\n vm.workArea = \"\";\r\n var ProjectModal = {};\r\n var circleArray;\r\n vm.filteredProperties = {};\r\n var customerIndex = 0;\r\n vm.projectName = \"\";\r\n vm.dtInstance = {};\r\n\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.broadcastSentUser = true;\r\n $scope.toggleForBroadcast = function () {\r\n $scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n $scope.myvalue = true;\r\n };\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n $scope.toggleMenu = function () {\r\n if ($scope.manualAssignationWrapper === \"hide-nav\") {\r\n $scope.manualAssignationWrapper = \"show-nav\";\r\n }\r\n else {\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n }\r\n };\r\n $scope.hideAllUser = true;\r\n\r\n $scope.showAllUser = function () {\r\n $scope.hideAllUser = true;\r\n };\r\n $scope.hideAllUserbutton = function () {\r\n $scope.hideAllUser = false;\r\n };\r\n $scope.userClass_status = true;\r\n $scope.toggleBottom = false;\r\n $scope.open360View = function () {\r\n $scope.userClass_status = false;\r\n $scope.myvalue = true;\r\n }\r\n $scope.close360View = function () {\r\n $scope.userClass_status = true;\r\n $scope.myvalue = false;\r\n }\r\n $scope.closeSlideBottom = function () {\r\n $scope.toggleNav = false;\r\n }\r\n $scope.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.userClass_status = true;\r\n $scope.broadcastSentUser = true;\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n vm.closeFeedbackoption();\r\n }\r\n $scope.close360ViewBroadcaste = function () {\r\n $scope.myvalue = false;\r\n angular.element('#div1').removeClass(\"alpha\");\r\n $scope.userClass_status = true;\r\n }\r\n // $scope.userSingle = function() {\r\n // $scope.userClass_status = !$scope.userClass_status;\r\n\r\n // };\r\n $scope.userFilter = true;\r\n $scope.assignJobFilter = function () {\r\n $scope.userFilter = !$scope.userFilter;\r\n $scope.myvalue = true;\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n // $scope.toggleMenu();\r\n };\r\n $scope.minatureSlide = true;\r\n $scope.minatureSlideBtn = function () {\r\n $scope.minatureSlide = !$scope.minatureSlide;\r\n $scope.myvalue = true;\r\n };\r\n\r\n\r\n $scope.hideFilter = function () {\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.CurrencySymbol = $localStorage.accountConfig.CurrencySymbol;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n var token = $localStorage.token;\r\n vm.searchText = \"\";\r\n vm.searchTicket = \"\";\r\n vm.IsSearch = false;\r\n vm.DateField = \"CreatedOn\";\r\n var fnitemNames = \"\";\r\n var fnitemValues = \"\";\r\n var witemNames = \"\";\r\n var witemValues = \"\";\r\n vm.TaskId = \"\";\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n var wsSDate = \"\";\r\n var wsEDate = \"\";\r\n var fPageIndex = 1;\r\n var fPageSize = 10;\r\n vm.SearchByUserType = \"\";\r\n vm.searchJobTypeText = \"\";\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.TotalLocation = 0;\r\n vm.TotalMatch = 0;\r\n vm.NotMatch = 0;\r\n vm.Atleast3Match = 0;\r\n vm.Atleast2Match = 0;\r\n vm.Atleast1Match = 0;\r\n vm.RunRateInDays = 0;\r\n vm.RangeInKm = 0;\r\n vm.JobSkill = \"\";\r\n vm.RegistrationStatus = \"\";\r\n vm.UserRegistrationStatus = \"\";\r\n vm.TechRole = \"\";\r\n vm.Asset = \"\";\r\n vm.Tools = \"\";\r\n vm.Certificate = \"\";\r\n vm.PermanentCity = \"\";\r\n vm.techPincode = \"\";\r\n vm.PermanentState = \"\";\r\n vm.TicketState = \"\";\r\n vm.SearchByAccountName = \"\";\r\n vm.PreferredForAccounts = \"\";\r\n vm.TicketCity = \"\";\r\n vm.ticketStatus = \"\";\r\n vm.TicketSkill = \"\";\r\n vm.pincode = [];\r\n vm.IsCommittedUser = false,\r\n vm.IsCommitmentInterestedUser = false,\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.PssStatus = \"\";\r\n vm.UserDetailVerification = \"\";\r\n vm.showErrors = false;\r\n vm.showPassed = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.LocationAddressList = [];\r\n vm.TicketBasedPlanningList = {};\r\n vm.bulkuploadType = \"Location\";\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n vm.fileName = \"\";\r\n vm.fileDescription = \"\";\r\n vm.techpageindexCount = 0;\r\n vm.ticketPoolPageListCount = 10;\r\n vm.customerPageListCount = 10;\r\n vm.userPoolPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n vm.ticketPoolListLenth = 0;\r\n vm.customerListLenth = 0;\r\n vm.userPoolListLength = 0;\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.pageindexCount = 0;\r\n vm.TPpageindexCount = 0;\r\n vm.cuPageindexCount = 0;\r\n vm.UPpageindexCount = 0;\r\n vm.DateField = \"StatusChangedOn\";\r\n vm.searchStatusText = \"All\";\r\n var uPageIndex = 1;\r\n var uwPageIndex = 1;\r\n var uPageSize = 10;\r\n var uwPageSize = 10;\r\n var ulPageIndex = 1;\r\n var ulPageSize = 10;\r\n vm.AlListCount = 10;\r\n var uwtPageIndex = 1;\r\n var uwtPageSize = 10;\r\n var uwtPageSize = 10;\r\n vm.UWListCount = 10;\r\n vm.EAlListCount = 10;\r\n vm.UsersType = \"\";\r\n vm.OrderSequence = \"asc\";\r\n // vm.Orderby = \"City\";\r\n // vm.SortBy = \"Distance\";\r\n vm.Orderby = \"CreatedOn\";\r\n vm.SortType = \"desc\";\r\n var uitemNames = \"\";\r\n var uitemValues = \"\";\r\n vm.searchUsersText = \"\";\r\n vm.jobsCount = \"\";\r\n vm.Technicianstartingdate = '2017-01-01';\r\n vm.userPageListCount = 10;\r\n vm.financePageListCount = 10;\r\n vm.UWticketsListCount = 10;\r\n vm.pageListCountsuwt = [10, 20, 30, 50];\r\n vm.IsAuthorizedServiceCenter = false;\r\n var startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: startDate, endDate: endDate };\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment(vm.Technicianstartingdate), moment(endDate)],\r\n };\r\n\r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.getAllJobForExceptionList();\r\n vm.GetAnalysisDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uPageIndex, uPageSize);\r\n\r\n };\r\n\r\n\r\n vm.City = \"\";\r\n vm.Experience = \"\";\r\n vm.Ratings = \"\";\r\n vm.Assets_Tools = \"\";\r\n vm.Jobscount = \"\";\r\n vm.FilterAdhar = \"\";\r\n vm.FilterPancard = \"\";\r\n $localStorage.filteraddskill = \"\";\r\n $localStorage.filterPermanentstate = \"\";\r\n vm.currentPage = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n vm.pageSize = 20;\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = 20; // this should match however many results your API puts on one page\r\n $scope.pagination = {\r\n current: 1\r\n };\r\n $scope.pagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n $scope.totalTableUsers = 0;\r\n $scope.usersTablePerPage = 20; // this should match however many results your API puts on one page\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n $scope.UserTablepagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n $scope.pageChanged = function (newPage) {\r\n vm.currentPage = newPage;\r\n vm.applyfilter(newPage);\r\n\r\n };\r\n $scope.isOpen = false;\r\n $scope.isOpen1 = false;\r\n $scope.isCollapsed = true;\r\n $scope.isCollapsed0 = true;\r\n $scope.isCollapsed1 = true;\r\n $scope.isCollapsed2 = true;\r\n $scope.isCollapsed3 = true;\r\n $scope.isCollapsed4 = true;\r\n $scope.isCollapsed5 = true;\r\n $scope.isCollapsed6 = true;\r\n $scope.isCollapsed7 = true;\r\n $scope.isCollapsed8 = true;\r\n $scope.isCollapsed9 = true;\r\n $scope.isCollapsed10 = true;\r\n $scope.isCollapsed11 = true;\r\n $scope.isCollapsed12 = true;\r\n $scope.isCollapsed13 = true;\r\n $scope.isCollapsed14 = true;\r\n $scope.isCollapsed15 = true;\r\n $scope.isCollapsed16 = true;\r\n $scope.isCollapsed17 = true;\r\n $scope.isCollapsed18 = true;\r\n $scope.isCollapsed19 = true;\r\n $scope.isCollapsed20 = true;\r\n $scope.isCollapsed21 = true;\r\n $scope.isCollapsed22 = true;\r\n $scope.isCollapsed23 = true;\r\n $scope.isCollapsed24 = true;\r\n $scope.isCollapsed25 = true;\r\n $scope.isCollapsed26 = true;\r\n $scope.isCollapsed27 = true;\r\n $scope.isCollapsed28 = true;\r\n $scope.isCollapsed29 = true;\r\n $scope.isCollapsed30 = true;\r\n $scope.isCollapsed31 = true;\r\n $scope.isCollapsed32 = true;\r\n $scope.isCollapsed33 = true;\r\n $scope.isCollapsed34 = true;\r\n $scope.isCollapsed35 = true;\r\n $scope.isCollapsed36 = true;\r\n $scope.isCollapsed37 = true;\r\n $scope.isCollapsed38 = true;\r\n $scope.isCollapsed39 = true;\r\n $scope.isCollapsed40 = true;\r\n $scope.isCollapsed41 = true;\r\n $scope.isCollapsed42 = true;\r\n $scope.isCollapsed43 = true;\r\n $scope.isCollapsed49 = true;\r\n\r\n $scope.openAnalysisReport = function (analysisDetails) {\r\n $localStorage.UploadId = analysisDetails.UploadId;\r\n $scope.showAnalysisReport = !$scope.showAnalysisReport;\r\n angular.element('#filter-visible-area').removeClass(\"filter-slider-visible\");\r\n }\r\n $scope.backScreen = function () {\r\n $scope.showAnalysisReport = false;\r\n angular.element('#filter-visible-area').addClass(\"filter-slider-visible\");\r\n }\r\n\r\n vm.techToRunCampaignOn = [];\r\n vm.implementSelectTech = function (itemList, scope) {\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n scope.selectRowFL = function (i) {\r\n scope.selectCountFL = 0;\r\n scope.showMinusFL = false;\r\n scope.selectAllFL = false;\r\n angular.forEach(vm.users, function (d) {\r\n if (d.checked) {\r\n vm.techToRunCampaignOn.push(d.UserId);\r\n scope.showMinusFL = true;\r\n scope.selectCountFL++;\r\n }\r\n });\r\n }\r\n scope.applyAllFLSelect = function () {\r\n angular.forEach(scope[itemList], function (d) {\r\n d.checked = scope.selectAllFL;\r\n scope.selectCountFL++;\r\n if (d.checked) {\r\n vm.techToRunCampaignOn.push(d.UserId);\r\n }\r\n });\r\n }\r\n }\r\n\r\n vm.ResetUserSelection = function (scope) {\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n }\r\n vm.implementSelectTech('users', this);\r\n $scope.tools = [\r\n { id: 1, name: 'Console Cable' },\r\n { id: 2, name: 'Drill Machine' },\r\n { id: 3, name: 'LAN Cable' },\r\n { id: 4, name: 'USB Converter' },\r\n { id: 5, name: 'Dongle ' },\r\n { id: 6, name: 'Toolkit' },\r\n { id: 7, name: 'Hearing Protection EN 352 2' },\r\n { id: 8, name: 'Safety Shoes CE marked' },\r\n { id: 9, name: 'Full Body Harness EN 361 2002' },\r\n { id: 10, name: 'Laptop' },\r\n ];\r\n $scope.selectedTools = [];\r\n vm.JobSkill = \"\";\r\n vm.ActiveInMonth = \"\";\r\n vm.NoOfJobDone = \"\";\r\n vm.Asset = \"\";\r\n vm.Tools = \"\";\r\n vm.UserRole = \"\";\r\n vm.MatchCriteria = \"\";\r\n vm.TraningCertificate = \"\";\r\n vm.ToolList = \"\";\r\n vm.OneJobDone = false;\r\n vm.SearchTag = \"\";\r\n vm.MatchingSkill = false;\r\n vm.Asset_Bike = false;\r\n vm.Asset_Mobile = false;\r\n vm.Asset_Laptop = false;\r\n vm.IsBasedOnPincode = true;\r\n vm.disableCreateButton = false;\r\n vm.cities = {\r\n chicago: { population: 2714856, position: [41.878113, -87.629798] },\r\n newyork: { population: 8405837, position: [40.714352, -74.005973] },\r\n losangeles: { population: 3857799, position: [34.052234, -118.243684] },\r\n vancouver: { population: 603502, position: [49.25, -123.1] },\r\n }\r\n vm.getRadius = function (num) {\r\n return Math.sqrt(num) * 100;\r\n }\r\n\r\n NgMap.getMap().then(function (map) {\r\n vm.map = map;\r\n });\r\n\r\n\r\n // Cluster Map section start by simran\r\n\r\n vm.showMapWithFreelancers = function () {\r\n const warehouse = {\r\n url: \"../../assets/images/patterns/WH-1.png\"\r\n };\r\n const freelancer = {\r\n url: \"../../assets/images/patterns/FL.png\"\r\n };\r\n const vendor = {\r\n url: \"../../assets/images/patterns/FV.png\"\r\n };\r\n const masterwarehouse = {\r\n url: \"../../assets/images/patterns/WH.png\"\r\n }\r\n vm.dynMarkers = [];\r\n NgMap.getMap().then(function (map) {\r\n for (var i = 0; i < vm.freelancerlist.length; i++) {\r\n vm.techdetails = vm.freelancerlist[i];\r\n if (vm.freelancerlist[i].hasWareHouse == true) {\r\n icons = warehouse\r\n }\r\n else if (vm.freelancerlist[i].MasterWarehouse == true) {\r\n icons = masterwarehouse\r\n }\r\n else if (vm.freelancerlist[i].Role == 'Field Engineer') {\r\n icons = freelancer\r\n }\r\n else if (vm.freelancerlist[i].Role == 'Vendor Manager') {\r\n icons = vendor\r\n }\r\n var latLng = new google.maps.LatLng(vm.freelancerlist[i].CurrentLatitude, vm.freelancerlist[i].CurrentLongitude);\r\n const marker = new google.maps.Marker({ position: latLng, icon: icons });\r\n const contentString = \"

\" + vm.techdetails.Role + \"

\" + vm.techdetails.FirstName + \"\" + vm.techdetails.UserId + \"Skill: \" + vm.techdetails.SkillSet + \"Location: \" + vm.techdetails.Locations + \"Pincode:\" + vm.techdetails.CurrentPinCode + \"
\";\r\n var infowindow = new google.maps.InfoWindow();\r\n marker.addListener(\"click\", function () {\r\n infowindow.setContent(contentString);\r\n infowindow.open(map, marker);\r\n });\r\n vm.dynMarkers.push(marker);\r\n }\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.addMarkers(vm.dynMarkers);\r\n }\r\n else {\r\n const clusterOptions = {\r\n imagePath: \"https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m\",\r\n gridSize: 60,\r\n zoomOnClick: true,\r\n maxZoom: null,\r\n };\r\n vm.markerClusterer = new MarkerClusterer(map, vm.dynMarkers, clusterOptions);\r\n }\r\n });\r\n }\r\n vm.getRadius = function (num) {\r\n return Math.sqrt(num) * 100;\r\n }\r\n\r\n vm.GetTalentPoolForMap = function () {\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.clearMarkers();\r\n vm.dynTicketMarkers = [];\r\n }\r\n AllUsersListService.GetTalentPoolForMapView(vm.mapuserFormData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.freelancerlist = resp.data;\r\n vm.showMapWithFreelancers();\r\n }\r\n });\r\n }\r\n\r\n //--ENd Of Map\r\n\r\n vm.OpenTracking = function (user) { \r\n $state.go('index.PincodeFinder', {\r\n userId : user.UserId,\r\n // lat : user.CurrentLatitude,\r\n // long: user.CurrentLongitude\r\n }, {\r\n reload: true\r\n });\r\n }\r\n // $scope.totalTableUserPool = 0;\r\n // $scope.userPoolTablePerPage = vm.userPoolPageListCount ; \r\n // $scope.UserPoolTablepagination = {\r\n // current: 1\r\n // };\r\n\r\n // vm.changeUserPoolPageListCount = function() { \r\n // $scope.userPoolTablePerPage = vm.userPoolPageListCount;\r\n // UPPageSize = $scope.userPoolTablePerPage;\r\n // $scope.UserPoolTablepageChanged($scope.UserPoolTablepagination.current);\r\n // vm.selectAll = false;\r\n // }\r\n\r\n // PageIndex=$scope.UserPoolTablepagination.current;\r\n // $scope.UserPoolTablepageChanged = function(newPage) { \r\n // UPPageIndex = newPage; \r\n // vm.addFilterforPincodeAnalysis(); \r\n // };\r\n\r\n\r\n\r\n vm.showUserFilter = function () {\r\n vm.IsBasedOnPincode = true;\r\n vm.chkselect = true;\r\n vm.RangeInKm = 0;\r\n vm.JobSkill = \"\";\r\n vm.OneJobDone = false;\r\n vm.MatchingSkill = false;\r\n vm.UserRegistrationStatus = \"\";\r\n vm.TechRole = \"\";\r\n }\r\n\r\n $scope.isActive = false;\r\n $scope.isActive1 = true;\r\n $scope.HideText = function () {\r\n $scope.isActive = true;\r\n $scope.isActive1 = false;\r\n }\r\n $scope.ShowText = function () {\r\n $scope.isActive = false;\r\n $scope.isActive1 = true;\r\n };\r\n\r\n\r\n $scope.isClick = false;\r\n $scope.isClick1 = false;\r\n $scope.isClick2 = false;\r\n $scope.isClick3 = false;\r\n $scope.activeButton = function () {\r\n $scope.isClick = !$scope.isClick;\r\n }\r\n $scope.activeButton1 = function () {\r\n $scope.isClick1 = !$scope.isClick1;\r\n }\r\n $scope.activeButton2 = function () {\r\n $scope.isClick2 = !$scope.isClick2;\r\n }\r\n $scope.activeButton3 = function () {\r\n $scope.isClick3 = !$scope.isClick3;\r\n }\r\n\r\n vm.getFLprofile = function () {\r\n\r\n document.getElementById(\"freelancerProfile\").style.display = \"block \";\r\n }\r\n vm.HideFLprofile = function () {\r\n\r\n document.getElementById(\"freelancerProfile\").style.display = \"none\";\r\n }\r\n\r\n\r\n\r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.getAllJobForExceptionList();\r\n };\r\n\r\n\r\n $scope.class1 = false;\r\n $scope.addRemoveRedClass = function (UploadId) {\r\n $localStorage.UploadId = UploadId;\r\n if ($scope.class1) {\r\n $scope.class1 = false;\r\n } else {\r\n $scope.class1 = true;\r\n }\r\n }\r\n\r\n $scope.slider = {\r\n value: 50,\r\n options: {\r\n floor: 0,\r\n ceil: 100,\r\n step: 1,\r\n minLimit: 10,\r\n maxLimit: 90\r\n }\r\n };\r\n\r\n $scope.myTrigger = \"outsideClick\";\r\n\r\n function getAllStates() {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n\r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n\r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n vm.analysisModel = function () {\r\n vm.analysisDetails = vm.analysisDetails;\r\n vm.analysisModelOpen = $uibModal.open({\r\n templateUrl: 'analysisModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.campaignModel = function () {\r\n vm.analysisDetails = vm.analysisDetails;\r\n vm.campaignRunModelOpen = $uibModal.open({\r\n templateUrl: 'campaignRunModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n\r\n vm.CloseCampaignModel = function () {\r\n vm.campaignRunModelOpen.close();\r\n }\r\n vm.dynamicCampaignModel = function () {\r\n vm.analysisDetails = vm.analysisDetails;\r\n vm.dynamicCampaignModelOpen = $uibModal.open({\r\n templateUrl: 'campaignDynamicModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n vm.CloseDynamicCampaignModel = function () {\r\n vm.dynamicCampaignModelOpen.close();\r\n }\r\n\r\n vm.DialerTaskModel = function () {\r\n vm.GetAllOnboardingUser();\r\n vm.dialertaskModelOpen = $uibModal.open({\r\n templateUrl: 'DialerTaskModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n vm.CloseDialerTaskModel = function () {\r\n vm.DialerTaskName = \"\";\r\n vm.DialerTaskDescription = \"\";\r\n vm.TaskRelatedTo = \"\";\r\n vm.AssignedTo = \"\";\r\n vm.dialertaskModelOpen.close();\r\n }\r\n\r\n vm.GetAllOnboardingUser = function () {\r\n AllUsersListService.GetAllOnboardingUser(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserByFiltersList = resp.data;\r\n }\r\n }, function () {\r\n });\r\n\r\n }\r\n\r\n vm.CloseAnalysisModel = function () {\r\n vm.analysisModelOpen.close();\r\n vm.DisableCreateButton(false);\r\n vm.AnalysisName = \"\";\r\n if (vm.confirmstatus != 'update') {\r\n vm.AnalysisDescription = \"\";\r\n vm.analysisDetails.AnalysisDescription = \"\";\r\n }\r\n }\r\n\r\n vm.ConfirmAnalysis = function (status, analysisData) {\r\n vm.confirmstatus = status;\r\n vm.analysisDetails = analysisData;\r\n vm.UploadId = vm.analysisDetails.UploadId;\r\n }\r\n\r\n vm.GetUserFeedbackOption = function (toggleNav, userid) {\r\n $scope.toggleNav = !toggleNav;\r\n $scope.activeRow = userid;\r\n vm.userid = userid;\r\n ManualAssignationJobService.GetUserFeedbackOption(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.userfeedbackList = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n vm.UserDataUpdateRequest = function (toggleNav, userid) {\r\n $scope.toggleNav = !toggleNav;\r\n vm.feedbackForm.submitted = true;\r\n if (vm.feedbackForm.$valid) {\r\n var data = {\r\n \"MasterReason\": vm.MasterReason,\r\n \"Comments\": vm.Comments,\r\n \"RequestForUserId\": userid,\r\n \"TicketId\": $localStorage.UploadId\r\n }\r\n ManualAssignationJobService.UserDataUpdateRequest(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.Comments = \"\";\r\n vm.MasterReason = \"\";\r\n }\r\n }, function () {\r\n });\r\n }\r\n }\r\n vm.closeFeedbackoption = function () {\r\n $scope.toggleNav = true;\r\n vm.Comments = \"\";\r\n vm.MasterReason = \"\";\r\n\r\n }\r\n\r\n vm.GetFeedbackByUserId = function (userid) {\r\n ManualAssignationJobService.GetFeedbackByUserId(loggedinUser, token, userid).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.commentList = resp.data;\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n\r\n vm.callToTechnician = function (userid) {\r\n AllUsersListService.callToTechnicianApi(loggedinUser, userid, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", \"Call Initiated\");\r\n }\r\n else {\r\n vm.showFailure(\"Failure\", resp.data.Message);\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n vm.sortColumn = function (col) {\r\n vm.OrderBy = col;\r\n if (vm.SortType == 'desc') {\r\n vm.SortType = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n } else {\r\n vm.SortType = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.AllapplyTalentPoolfilter();\r\n };\r\n\r\n vm.sortClass = function (col) {\r\n if (vm.OrderBy == col) {\r\n if (vm.SortType == 'desc') {\r\n return 'fa fa-arrow-down';\r\n } else {\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n vm.getAllCertificate = function () {\r\n AllUsersListService.GetAllCertificate(loggedinUser, token, function (data) {\r\n vm.AllCertificateSets = data;\r\n }, vm.showFailure);\r\n }\r\n vm.getAllCertificate();\r\n\r\n vm.getSkills = function () {\r\n AllUsersListService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills;\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.getSkills();\r\n\r\n vm.GetAllAccounts = function () {\r\n AllUsersListService.GetAllAccountDetails(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.accountsList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAllAccounts();\r\n\r\n $scope.searchDisabled = true;\r\n\r\n vm.getAllTools = function () {\r\n AllUsersListService.GetAllToolSets(loggedinUser, token, function (data) {\r\n vm.Asset_ToolList = data;\r\n }, vm.showFailure);\r\n }\r\n vm.getAllTools();\r\n\r\n vm.chkselect = true;\r\n\r\n vm.pincodeCheck = function () {\r\n vm.chkselect = !vm.chkselect;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n // vm.dtColumnDefs = [\r\n // DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n // ];\r\n\r\n vm.loaderFlag = false;\r\n vm.hideLoader = function () {\r\n if (vm.loaderFlag) {\r\n $rootScope.$broadcast(\"loader_hide\");\r\n $timeout(function () { vm.loaderFlag = false; }, 1000);\r\n $timeout(vm.hideLoader, 1);\r\n }\r\n }\r\n\r\n vm.scrollDwn = function () {\r\n $(\"html, body\").animate({ scrollTop: $(document).height() - $(window).height() }, 900);\r\n // $location.hash('error_datatable');\r\n // $anchorScroll();\r\n }\r\n vm.dzCallbacks = {\r\n 'addedfile': function (file) {\r\n vm.showErrors = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.LocationAddressList = [];\r\n\r\n $(\"#dropzone1 .dz-progress .dz-upload\").hide();\r\n $(\".bulkupload-progress\").width(0);\r\n $(\".ajax-loader\").hide();\r\n vm.progressbar.reset();\r\n vm.progressbar.start();\r\n vm.showPassed = false;\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noOfRecords = 0;\r\n\r\n var dropzoneChildren = $(\"#dropzone1\").children();\r\n $(\"#dropzone1\").empty();\r\n $(\"#dropzone1\").append(dropzoneChildren[0]);\r\n $(\"#dropzone1\").append(dropzoneChildren[dropzoneChildren.length - 1]);\r\n\r\n vm.loaderFlag = true;\r\n vm.hideLoader();\r\n vm.file = file;\r\n vm.MediaUploadReqModel = {\r\n \"action\": 'Create',\r\n \"UploadedFileName\": vm.fileName,\r\n \"FileDescription\": vm.fileDescription\r\n }\r\n var fd = new FormData();\r\n fd.append('file', file);\r\n fd.append('MediaUploadReqModel', JSON.stringify(vm.MediaUploadReqModel))\r\n $http.post(ApiURL + '/api/CapacityPlanning/MediaUploadAndCreate', fd, {\r\n transformRequest: angular.identity,\r\n headers: { 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser },\r\n timeout: vm.canceler.promise\r\n })\r\n .success(function (data) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n if (vm.bulkuploadType == 'Location') {\r\n vm.LocationAddressList = data.AddressList;\r\n vm.noOfRecords = data.AddressList ? data.AddressList.length : 0;\r\n }\r\n $(\"#dropzone1>div:last-child\").removeClass(\"dz-error\").addClass(\"dz-success\");\r\n if (data.Errors.length > 0) {\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable()\r\n ];\r\n angular.forEach(data.Errors, function (v, k) {\r\n\r\n if (v.ItemErrors.length > 0) {\r\n var e1 = {};\r\n angular.forEach(v.ItemErrors, function (v1, k1) {\r\n e1.message = e1.message != undefined && e1.message != \"undefined\" && e1.message.length > 0 ? e1.message + \",\" + v1.Message : v1.Message;\r\n });\r\n if (v.Row > 0 && data.AddressList && data.AddressList.length > 0 && data.AddressList.length >= v.Row) {\r\n e1.data = data.AddressList[v.Row - 1];\r\n }\r\n vm.errorList.push(e1);\r\n }\r\n });\r\n\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Invalid records!\";\r\n vm.successMsg = \"There are \" + vm.errorList.length + \" errors. To see them click here\";\r\n vm.noMsg = [];\r\n vm.showErrors = true;\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.ErrorCode == 103) {\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Missing columns in excel file\";\r\n vm.successMsg = \"Following columns are missing in excel file. Please add them and re-upload file\";\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n } else if (data.Message && data.Message.length > 0) {\r\n\r\n vm.showPassed = true;\r\n vm.disableUploadButton = true;\r\n vm.successTitle = \"Validation failed\";\r\n vm.successMsg = data.Message\r\n vm.noMsg = [];\r\n angular.forEach(data.MissingColumns, function (k, v) {\r\n vm.noMsg.push(k);\r\n });\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n\r\n } else {\r\n vm.showPassed = true;\r\n vm.disableUploadButton = false;\r\n vm.successTitle = \"File Uploaded\";\r\n vm.successMsg = vm.bulkuploadType.charAt(0).toUpperCase() + vm.bulkuploadType.slice(1) + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" are uploaded successfully. Total \" + vm.noOfRecords + \" \" + vm.bulkuploadType + (vm.noOfRecords > 1 ? \"s\" : \"\") + \" found.\";\r\n $timeout(function () {\r\n vm.CloseModal();\r\n }, 2000);\r\n\r\n // vm.successMsg = \"You have successfully created \"+vm.bulkuploadType+\"s in bulk\";\r\n vm.noMsg = [];\r\n $(\".alert-danger\").removeClass(\"alert-danger\").addClass(\"alert-success\");\r\n }\r\n $(\"table th:first-child\").removeClass(\"sorting_asc\");\r\n vm.progressbar.complete();\r\n })\r\n .error(function (errorMessage) {\r\n $(\"#dropzone1 .dz-error\").removeClass(\"dz-error\");\r\n vm.progressbar.complete();\r\n vm.successTitle = \"Validation of records failed\";\r\n vm.successMsg = \"Error in data validation, please correct the data and re-upload file\";\r\n $(\".alert-success\").removeClass(\"alert-success\").addClass(\"alert-danger\");\r\n });\r\n\r\n },\r\n 'success': function (file, xhr) {\r\n },\r\n 'error': function (file, errorMessage) {\r\n }\r\n };\r\n\r\n vm.addFiles = function () {\r\n $(\"#dropzone1\").trigger(\"click\");\r\n }\r\n\r\n\r\n //list of users\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.userchangePageListCount = function () {\r\n $scope.usersPerPage = vm.userPageListCount;\r\n ulPageSize = $scope.usersPerPage;\r\n $scope.UserTablePageChanged($scope.Userpagination.current);\r\n vm.selectAll = false;\r\n ulPageIndex = $scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function (newPage) {\r\n ulPageIndex = newPage;\r\n vm.GetUserDataPagingList(true, $localStorage.UploadId, vm.AnalysisId, vm.AddressId, vm.ListType, vm.SortBy, vm.OrderSequence, ulPageIndex, ulPageSize, loggedinUser, token);\r\n };\r\n }\r\n\r\n ulPageIndex = $scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function (newPage) {\r\n ulPageIndex = newPage;\r\n vm.GetUserDataPagingList(true, $localStorage.UploadId, vm.AnalysisId, vm.AddressId, vm.ListType, vm.SortBy, vm.OrderSequence, ulPageIndex, ulPageSize, loggedinUser, token)\r\n };\r\n\r\n\r\n vm.UWticketDataList = [];\r\n vm.GetUserDataPagingList = function (isCollapsed, UploadId, AnalysisId, AddressId, ListType) {\r\n if (vm.AddressId == AddressId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.showUserTable = AddressId;\r\n vm.UploadId = UploadId;\r\n vm.AnalysisId = AnalysisId;\r\n vm.AddressId = AddressId;\r\n vm.ListType = ListType;\r\n AllUsersListService.GetUserListData(vm.UploadId, vm.AnalysisId, vm.AddressId, vm.ListType, vm.SortBy, vm.OrderSequence, ulPageIndex, ulPageSize, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UWticketDataList = resp.data.UserModelResList;\r\n $scope.totalUsers = resp.data.RecordCount;\r\n preprocessData(vm.UWticketDataList);\r\n if (vm.UWticketDataList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = ulPageIndex * vm.userPageListCount;\r\n if (ulPageIndex == 1)\r\n vm.ulpageindexCount = 1;\r\n else\r\n vm.ulpageindexCount = (((ulPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n\r\n $scope.TalentPoolTablepageChanged = function (newPage) {\r\n\r\n vm.currentPage = newPage;\r\n\r\n vm.applyfilter(newPage, '');\r\n };\r\n\r\n vm.UserRoleList = [\"Field Engineer\", \"Vendor Manager\", \"VendorTeam\", \"ServiceCenter\", \"IT Engineer\", \"Network Engineer\"];\r\n\r\n vm.applyfilter = function (index, data) {\r\n var userFormData = {};\r\n if (data) {\r\n userFormData = data;\r\n } else {\r\n var temp = [];\r\n var res = vm.Experience.split(\"-\");\r\n var jobscount = vm.Jobscount.split(\"-\");\r\n var ratings = vm.Ratings.split(\"-\");\r\n userFormData = {\r\n \"PageIndex\": index,\r\n \"PageSize\": 20,\r\n \"ActivationStartDate\": startDate,\r\n \"ActivationEnddate\": endDate,\r\n \"State\": vm.PermanentState,\r\n \"Cities\": vm.PermanentCity,\r\n \"Pincodes\": temp,\r\n \"Skill\": vm.addSkill,\r\n \"ExperienceStart\": res[0],\r\n \"ExperienceEnd\": res[1],\r\n \"Certificates\": vm.addTraningCertificateName,\r\n \"IsBikeAvailable\": vm.Asset_Bike,\r\n \"IsMobileAvailable\": vm.Asset_Mobile,\r\n \"IsLaptopAvailable\": vm.Asset_Laptop,\r\n \"Tools\": vm.Asset_Tools,\r\n \"JobCountStart\": jobscount[0],\r\n \"JobCountEnd\": jobscount[1],\r\n \"RatingStart\": Number(ratings[0]),\r\n \"RatingEnd\": Number(ratings[1]),\r\n \"PreferredTalentPool\": false,\r\n \"IsStudent\": vm.Student,\r\n \"IsCriminalVerified\": vm.Criminal,\r\n \"IsBankVarified\": vm.IsBankVerified,\r\n \"IsUPIVarified\": vm.IsUPIVarified,\r\n \"MMFPrimeMember\": $scope.Prime,\r\n \"IsCommittedUser\" :vm.IsCommittedUser,\r\n \"IsCommitmentInterestedUser\" :vm.IsCommitmentInterestedUser,\r\n \"MMFNonPrimeMember\": $scope.NonPrime,\r\n \"IsOpenForInternship\": vm.Intern,\r\n \"IsAdharVerified\": vm.Adharcard,\r\n \"IsPanVerified\": vm.Pancard,\r\n \"Source\": vm.Source,\r\n \"FreelancerRole\": vm.freelancerRole,\r\n \"UserStatus\": vm.UserStatus,\r\n \"PssStatus\": vm.PssStatus,\r\n \"OneJobDoneForSkills\": vm.OneJobDone,\r\n \"ReportingTo\": vm.ReportingTo,\r\n \"OrderBy\": vm.OrderBy,\r\n \"SortType\": vm.SortType,\r\n \"UserVerificationStatus\": vm.UserVerificationStatus,\r\n \"IsFreelancerBidCount\": vm.IsFreelancerBidCount,\r\n \"IsFixedTeamCount\" : vm.IsFixedTeamCount,\r\n \"ContactNumber\": vm.ContactNumber,\r\n \"UserName\": vm.UserName,\r\n \"UserId\": vm.UserId,\r\n \"BrandName\": vm.ServiceBrand,\r\n \"ProductServing\": vm.ServiceProduct,\r\n \"SearchTag\": vm.SearchTag,\r\n \"IsAuthorizedServiceCenterCount\" :vm.IsAuthorizedServiceCenter,\r\n \"TaskId\": vm.TaskId\r\n }\r\n if (vm.adddaterange) {\r\n userFormData.ActivationStartDate = startDate;\r\n userFormData.ActivationEnddate = endDate;\r\n }\r\n }\r\n\r\n $localStorage.FilterData = userFormData;\r\n AllUsersListService.Filter(loggedinUser, token, userFormData).then(function (resp) {\r\n if (resp.data) {\r\n vm.users = [];\r\n vm.Bluserlist = [];\r\n vm.usersCounts = resp.data;\r\n vm.users = resp.data.Users;\r\n\r\n for (var i = 0; i < vm.users.length; i++) {\r\n if (vm.users[i].CustomerRating) {\r\n vm.users[i].CustomerRating = Number(vm.users[i].CustomerRating).toFixed(1);\r\n }\r\n }\r\n\r\n vm.totalTalentPoolCount = resp.data.Count;\r\n $scope.totalUsers = resp.data.Count;\r\n $scope.totalTableUsers = resp.data.Count;\r\n\r\n if (vm.users.length < 20)\r\n vm.usersLength = $scope.totalUsers;\r\n else\r\n vm.usersLength = index * 20;\r\n if (index == 1)\r\n vm.techpageindexCount = 1;\r\n else\r\n vm.techpageindexCount = (((index - 1) * 20) + 1);\r\n\r\n if (vm.users.length > 0) {\r\n for (var i = 0; i < vm.users.length; i++) {\r\n if (vm.users[i].BlockedByAccounts) {\r\n if (vm.users[i].BlockedByAccounts.length > 0) {\r\n for (var j = 0; j < vm.users[i].BlockedByAccounts.length; j++) {\r\n if (vm.users[i].BlockedByAccounts[j] == AccountID) {\r\n vm.Bluserlist.push(vm.users[i]);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n // return vm.users;\r\n })\r\n\r\n }\r\n\r\n\r\n vm.TechnicianclearFilter = function () {\r\n vm.UserName = \"\";\r\n vm.UserId = \"\";\r\n vm.ContactNumber = \"\";\r\n vm.Source = \"\";\r\n vm.Adharcard = \"\";\r\n vm.Pancard = \"\";\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.IsCommittedUser = false;\r\n vm.IsCommitmentInterestedUser = false;\r\n vm.PssStatus = \"\";\r\n vm.IsBankVerified = \"\";\r\n vm.PreferredForAccounts = \"\";\r\n vm.PssStatus = \"\";\r\n vm.Criminal = \"\";\r\n vm.PermanentState = \"\";\r\n vm.PermanentCity = \"\";\r\n vm.pincode = \"\";\r\n vm.Experience = \"\";\r\n vm.traningCertificateList = \"\";\r\n vm.freelancerRoleList = \"\";\r\n vm.freelancerRole = \"\";\r\n vm.Asset_Laptop = \"\";\r\n vm.Asset_Mobile = \"\";\r\n vm.Asset_Bike = \"\";\r\n vm.Asset_Tools = \"\";\r\n vm.Jobscount = \"\";\r\n vm.Ratings = \"\";\r\n vm.CurrentState = \"\";\r\n vm.UserStatus = \"\";\r\n vm.userskill = [];\r\n vm.userskill = \"\";\r\n vm.OneJobDone = false;\r\n vm.SearchTag = \"\";\r\n vm.ServiceBrand = \"\";\r\n vm.ReportingTo = \"\";\r\n vm.ServiceProduct = \"\";\r\n vm.ReportingTo = \"\";\r\n vm.TaskId = \"\";\r\n startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n\r\n var startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n vm.ticketdates = { startDate: moment().subtract(30, 'days'), endDate: moment() };\r\n vm.ticketranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment(vm.Technicianstartingdate), moment(endDate)],\r\n };\r\n vm.outsidedateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n };\r\n\r\n\r\n vm.pfuserlist = [];\r\n\r\n vm.filterApplied = false;\r\n\r\n\r\n vm.getAllUsersByStage = function (stage) {\r\n vm.UserVerificationStatus = stage;\r\n vm.IsAuthorizedServiceCenter = false;\r\n vm.freelancerRole = \"\";\r\n vm.IsCommittedUser = false;\r\n vm.IsCommitmentInterestedUser = false;\r\n vm.UserStatus = \"\";\r\n vm.PssStatus = \"\";\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.OneJobDone = false;\r\n vm.Criminal = false;\r\n vm.IsFreelancerBidCount = false;\r\n // vm.TaskId = \"\";\r\n vm.IsFixedTeamCount = false;\r\n vm.AllapplyTalentPoolfilter();\r\n\r\n }\r\n\r\n vm.getAllUsersByRole = function (role) {\r\n vm.UserVerificationStatus = \"\";\r\n vm.IsCommittedUser = false;\r\n vm.IsCommitmentInterestedUser = false;\r\n if (role == 'Active') {\r\n vm.UserStatus = role;\r\n vm.freelancerRole = \"\";\r\n }\r\n else if (role == 'Inactive') {\r\n vm.UserStatus = role;\r\n vm.freelancerRole = \"\";\r\n }\r\n else if (role == 'Invite') {\r\n vm.UserStatus = role;\r\n vm.freelancerRole = \"\";\r\n }\r\n else if (role == 'Blocked') {\r\n vm.UserStatus = role;\r\n vm.freelancerRole = \"\";\r\n }\r\n else if (role == '') {\r\n vm.UserStatus = role;\r\n vm.freelancerRole = \"\";\r\n }\r\n else {\r\n vm.freelancerRole = role;\r\n vm.UserStatus = \"Active\";\r\n }\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.PssStatus = \"\";\r\n vm.OneJobDone = false;\r\n vm.Criminal = false;\r\n vm.IsFreelancerBidCount = false;\r\n // vm.TaskId = \"\";\r\n vm.IsFixedTeamCount = false;\r\n vm.IsAuthorizedServiceCenter = false;\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n vm.getAllOneJobDone = function () {\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.Criminal = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.PssStatus = \"\";\r\n // vm.TaskId = \"\";\r\n vm.UserVerificationStatus = \"\";\r\n vm.IsAuthorizedServiceCenter = false;\r\n vm.IsCommittedUser = false;\r\n vm.IsCommitmentInterestedUser = false;\r\n vm.freelancerRole = \"\";\r\n vm.UserStatus = \"\";\r\n vm.OneJobDone = true;\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n vm.getAllFixedTeam = function () {\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.Criminal = false;\r\n vm.IsFixedTeamCount = true;\r\n vm.IsFreelancerBidCount = false;\r\n vm.PssStatus = \"\";\r\n vm.UserVerificationStatus = \"\";\r\n vm.IsAuthorizedServiceCenter = false;\r\n vm.IsCommittedUser = false;\r\n vm.IsCommitmentInterestedUser = false;\r\n vm.freelancerRole = \"\";\r\n vm.UserStatus = \"\";\r\n vm.OneJobDone = false;\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n vm.getAllLeadStarted = function () {\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.Criminal = false;\r\n vm.IsFreelancerBidCount = true;\r\n vm.IsFixedTeamCount = false;\r\n vm.UserVerificationStatus = \"\";\r\n vm.IsAuthorizedServiceCenter = false;\r\n vm.IsCommittedUser = false;\r\n vm.IsCommitmentInterestedUser = false;\r\n vm.freelancerRole = \"\";\r\n vm.PssStatus = \"\";\r\n vm.UserStatus = \"\";\r\n vm.OneJobDone = false;\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n vm.getCountByPssValue = function (pss) {\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.PssStatus = pss;\r\n vm.Criminal = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.UserVerificationStatus = \"\";\r\n vm.IsCommittedUser = false;\r\n vm.IsCommitmentInterestedUser = false;\r\n vm.freelancerRole = \"\";\r\n vm.UserStatus = \"\";\r\n vm.OneJobDone = false;\r\n vm.IsAuthorizedServiceCenter = false;\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n vm.authorizeDetail = function (role){\r\n if (role == 'Active') {\r\n vm.UserStatus = role;\r\n \r\n }\r\n else if (role == 'Inactive') {\r\n vm.UserStatus = role;\r\n \r\n }\r\n else if (role == '') {\r\n vm.UserStatus = role;\r\n \r\n }\r\n // vm.UserStatus = \"\";\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.Criminal = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.UserVerificationStatus = \"\";\r\n vm.IsCommittedUser = false;\r\n vm.IsCommitmentInterestedUser = false;\r\n vm.freelancerRole = \"\";\r\n vm.OneJobDone = false;\r\n vm.IsAuthorizedServiceCenter = true;\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n vm.committedDetail = function (committedvalue){\r\n if(committedvalue == true){\r\n vm.IsCommittedUser = true;\r\n vm.IsCommitmentInterestedUser = false;\r\n }\r\n else if(committedvalue == false){\r\n vm.IsCommittedUser = false;\r\n vm.IsCommitmentInterestedUser = true;\r\n }\r\n vm.PssStatus = \"\";\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.OneJobDone = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.Criminal = false;\r\n vm.UserVerificationStatus = \"\";\r\n vm.IsAuthorizedServiceCenter = false;\r\n vm.freelancerRole = \"\";\r\n vm.UserStatus = \"\";\r\n vm.AllapplyTalentPoolfilter();\r\n }\r\n\r\n vm.getAllCriminalFlag = function (criminalValue) {\r\n vm.PssStatus = \"\";\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.OneJobDone = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.Criminal = criminalValue;\r\n vm.UserVerificationStatus = \"\";\r\n vm.IsAuthorizedServiceCenter = false;\r\n vm.IsCommittedUser = false;\r\n vm.IsCommitmentInterestedUser = false;\r\n vm.freelancerRole = \"\";\r\n vm.UserStatus = \"\";\r\n vm.AllapplyTalentPoolfilter();\r\n\r\n }\r\n vm.getAllPrimeFlag = function (primeValue) {\r\n if (primeValue == true) {\r\n $scope.Prime = true;\r\n $scope.NonPrime = false;\r\n } else if (primeValue == false) {\r\n $scope.NonPrime = true;\r\n $scope.Prime = false;\r\n }\r\n vm.Criminal = false;\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n vm.UserVerificationStatus = \"\";\r\n vm.IsCommittedUser = false;\r\n vm.IsCommitmentInterestedUser = false;\r\n vm.freelancerRole = \"\";\r\n vm.UserStatus = \"\";\r\n vm.PssStatus = \"\";\r\n vm.IsAuthorizedServiceCenter = false;\r\n vm.OneJobDone = false;\r\n vm.AllapplyTalentPoolfilter();\r\n\r\n }\r\n\r\n\r\n vm.AllapplyTalentPoolfilter = function (filterApplied) {\r\n vm.filterApplied = filterApplied;\r\n $scope.Ticket = 1;\r\n if (vm.markerClusterer) {\r\n vm.markerClusterer.clearMarkers();\r\n vm.dynTicketMarkers = [];\r\n }\r\n vm.ticketPoolList = [];\r\n $scope.dates = { startDate: startDate, endDate: endDate };\r\n vm.adddaterange = true;\r\n $scope.UserTablepagination.current = 1;\r\n var temp = [];\r\n var tuPageIndex = \"\";\r\n var res = vm.Experience.split(\"-\");\r\n var jobscount = vm.Jobscount.split(\"-\");\r\n var ratings = vm.Ratings.split(\"-\");\r\n tuPageIndex = 1;\r\n // vm.freelancerRoleList = \"\";\r\n // if(vm.freelancerRole) \r\n // {\r\n // vm.freelancerRoleList = vm.freelancerRole.join('|');\r\n // }\r\n vm.traningCertificateList = \"\";\r\n if (vm.TraningCertificate) {\r\n vm.traningCertificateList = vm.TraningCertificate.join('|');\r\n }\r\n // if(vm.UserStatus != \"Active\"){\r\n // startDate = \"\";\r\n // endDate = \"\";\r\n // } \r\n // else{\r\n // startDate = startDate;\r\n // endDate = endDate;\r\n // }\r\n\r\n if(vm.PreferredForAccounts){\r\n startDate = \"\";\r\n endDate = \"\";\r\n }\r\n\r\n var temp = [];\r\n for(var i=0;i 0) {\r\n for (var i = 0; i < vm.users.length; i++) {\r\n if (vm.users[i].FavoriteForAccounts) {\r\n if (vm.users[i].FavoriteForAccounts.length > 0) {\r\n for (var j = 0; j < vm.users[i].FavoriteForAccounts.length; j++) {\r\n if (vm.users[i].FavoriteForAccounts[j] == AccountID) {\r\n vm.pfuserlist.push(vm.users[i]);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n $timeout(function () {\r\n $scope.class1 = false;\r\n }, 250);\r\n }\r\n })\r\n vm.UserCountbyFilter();\r\n }\r\n\r\n vm.ExternalUpload = function (teamid) {\r\n var newdata = {};\r\n newdata = {\r\n \"UserId\": teamid,\r\n \"Type\": \"\",\r\n \"skillName\": \"\"\r\n }\r\n AllUsersListService.UploadExternalVideoList(newdata, loggedinUser, token).then(function (resp) {\r\n vm.UploadVideoExternal = resp.data;\r\n });\r\n }\r\n\r\n vm.UserCountbyFilter = function () {\r\n AllUsersListService.UserCountbyFilter(loggedinUser, token, vm.userFormData).then(function (resp) {\r\n if (resp.data) {\r\n vm.TotalUsersCount = resp.data.Count;\r\n vm.BasicInformation = resp.data.BasicInformation;\r\n vm.TotalInvitedUserCount = resp.data.TotalInvitedUserCount;\r\n vm.LocationAndSkill = resp.data.LocationAndSkill;\r\n vm.Backgroundverified = resp.data.Backgroundverified;\r\n vm.Paymentverified = resp.data.Paymentverified;\r\n vm.PoliceVerified = resp.data.PoliceVerified;\r\n vm.CriminalVerified = resp.data.CriminalVerified;\r\n vm.TotalActiveFrUsersCount = resp.data.TotalActiveFrUsersCount;\r\n vm.TotalActiveFVUsersCount = resp.data.TotalActiveFVUsersCount;\r\n vm.TotalActiveFVTUsersCount = resp.data.TotalActiveFVTUsersCount;\r\n vm.FixedTeamCount = resp.data.FixedTeamCount;\r\n vm.PrimeMember = resp.data.PrimeMember;\r\n vm.NonPrimeMember = resp.data.NonPrimeMember;\r\n vm.TotalActiveUsersCount = resp.data.TotalActiveUsersCount;\r\n vm.Count = resp.data.Count;\r\n vm.TotalRegisterUser = resp.data.TotalRegisterUser;\r\n vm.TotalFreelancerBidCount = resp.data.TotalFreelancerBidCount;\r\n vm.OneJobDoneCount = resp.data.OneJobDoneCount;\r\n vm.NonPrimeMoreThanTenCount = resp.data.NonPrimeMoreThanTenCount;\r\n vm.LeadReceivedUserCount = resp.data.LeadReceivedUserCount;\r\n vm.LeadNotReceivedUserCount = resp.data.LeadNotReceivedUserCount;\r\n vm.LeadAcceptedUserCount = resp.data.LeadAcceptedUserCount;\r\n vm.LeadNotAcceptedUserCount = resp.data.LeadNotAcceptedUserCount;\r\n vm.JobRejectionBreachedCount = resp.data.JobRejectionBreachedCount;\r\n vm.JobRejectionMetCount = resp.data.JobRejectionMetCount;\r\n vm.SOPAdherenceBreachedCount = resp.data.SOPAdherenceBreachedCount;\r\n vm.SOPAdherenceMetCount = resp.data.SOPAdherenceMetCount;\r\n vm.AuthorizedServiceParnterDetailCount = resp.data.AuthorizedServiceParnterDetailCount;\r\n vm.AuthorizedServiceParnterDetailCountActive = resp.data.AuthorizedServiceParnterDetailCountActive;\r\n vm.AuthorizedServiceParnterDetailCountInActive = resp.data.AuthorizedServiceParnterDetailCountInActive;\r\n vm.CommitmentInterestedUserCount = resp.data.CommitmentInterestedUserCount;\r\n vm.CommittedUserCount = resp.data.CommittedUserCount\r\n vm.TotalBlockedUsersCount = resp.data.TotalBlockedUsersCount\r\n }\r\n })\r\n }\r\n vm.AllapplyTalentPoolfilter();\r\n\r\n vm.userOnboardingForm = function (UserId) {\r\n $localStorage.From = \"\";\r\n // if(vm.Role == 'Administrator'){\r\n // $state.go('index.NewOnboarding',{\r\n // UserId: UserId\r\n // }, { reload: true });\r\n // }\r\n // else{\r\n \r\n $state.go('index.RegistrationForm', {\r\n UserId: UserId\r\n }, {\r\n reload: true\r\n });\r\n // }\r\n }\r\n\r\n vm.DisableCreateButton = function (disable) {\r\n if (disable) {\r\n vm.disableCreateButton = true;\r\n }\r\n else {\r\n vm.disableCreateButton = false;\r\n }\r\n }\r\n\r\n //user wise with pagination\r\n $scope.totalUW = 0;\r\n $scope.UWPerPage = vm.UWListCount;\r\n $scope.UWpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUWPageListCount = function () {\r\n $scope.UWPerPage = vm.UWListCount;\r\n uwPageSize = $scope.UWPerPage;\r\n $scope.UWTablePageChanged($scope.UWpagination.current);\r\n vm.selectAll = false;\r\n uwPageIndex = $scope.UWpagination.current;\r\n $scope.UWTablePageChanged = function (newPage) {\r\n uwPageIndex = newPage;\r\n vm.GetUserDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uwPageIndex, uwPageSize);\r\n };\r\n }\r\n\r\n uwPageIndex = $scope.UWpagination.current;\r\n $scope.UWTablePageChanged = function (newPage) {\r\n uwPageIndex = newPage;\r\n vm.GetUserDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uwPageIndex, uwPageSize);\r\n };\r\n\r\n vm.analysisUserList = [];\r\n vm.GetUserDataList = function (loggedinUser, token, UploadId, AnalysisId, userType, OrderSequence, uwPageIndex, uwPageSize) {\r\n AllUsersListService.GetUserData(loggedinUser, token, UploadId, AnalysisId, vm.Orderby, vm.OrderSequence, uwPageIndex, uwPageSize).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.analysisUserList = resp.data.UserAnalysisResModelList;\r\n $scope.totalUW = resp.data.TotalRecords;\r\n preprocessData(vm.analysisUserList);\r\n if (vm.analysisUserList.length < vm.UWListCount)\r\n vm.analysisListUWLength = $scope.totalUW;\r\n else\r\n vm.analysisListUWLength = uwPageIndex * vm.UWListCount;\r\n if (uwPageIndex == 1)\r\n vm.uwpageindexCount = 1;\r\n else\r\n vm.uwpageindexCount = (((uwPageIndex - 1) * vm.UWListCount) + 1);\r\n }\r\n }, function (error) {\r\n })\r\n }\r\n\r\n\r\n //list of userwise\r\n $scope.totalUWtickets = 0;\r\n $scope.UWticketsPerPage = vm.UWticketsListCount;\r\n $scope.UWticketspagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.UWticketsPageListCount = function () {\r\n $scope.UWticketsPerPage = vm.UWticketsListCount;\r\n uwtPageSize = $scope.UWticketsPerPage;\r\n $scope.UWTicketTablePageChanged($scope.UWticketspagination.current);\r\n vm.selectAll = false;\r\n uwtPageIndex = $scope.UWticketspagination.current;\r\n $scope.UWTicketTablePageChanged = function (newPage) {\r\n uwtPageIndex = newPage;\r\n vm.GetUserUWDataPagingList(true, $localStorage.UploadId, vm.AnalysisId, vm.UserId, vm.ListType, vm.SortBy, vm.OrderSequence, uwtPageIndex, uwtPageSize, loggedinUser, token);\r\n };\r\n }\r\n\r\n uwtPageIndex = $scope.UWticketspagination.current;\r\n $scope.UWTicketTablePageChanged = function (newPage) {\r\n uwtPageIndex = newPage;\r\n vm.GetUserUWDataPagingList(true, $localStorage.UploadId, vm.AnalysisId, vm.UserId, vm.ListType, vm.SortBy, vm.OrderSequence, uwtPageIndex, uwtPageSize, loggedinUser, token)\r\n };\r\n\r\n\r\n vm.UWTicketList = [];\r\n vm.GetUserUWDataPagingList = function (isCollapsed, UploadId, AnalysisId, UserId, ListType) {\r\n if (vm.UserId == UserId) {\r\n $scope.isCollapsed = !isCollapsed;\r\n }\r\n $scope.showAddressTable = UserId;\r\n vm.UploadId = UploadId;\r\n vm.AnalysisId = AnalysisId;\r\n vm.UserId = UserId;\r\n vm.ListType = ListType;\r\n AllUsersListService.GetAddressListForUserOnPaging($localStorage.UploadId, $localStorage.AnalysisId, vm.UserId, vm.ListType, vm.SortBy, vm.OrderSequence, uwtPageIndex, uwtPageSize, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UWTicketList = resp.data.AddressModelResList;\r\n $scope.totalUWtickets = resp.data.RecordCount;\r\n if (vm.UWTicketList.length < vm.UWticketsListCount)\r\n vm.UWTicketListLength = $scope.totalUWtickets;\r\n else\r\n vm.UWTicketListLength = uwtPageIndex * vm.UWticketsListCount;\r\n if (uwtPageIndex == 1)\r\n vm.uwtPageIndexCount = 1;\r\n else\r\n vm.uwtPageIndexCount = (((uwtPageIndex - 1) * vm.UWticketsListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n vm.RunCampaignOnUsers = function () {\r\n vm.campaign_form.submitted = true;\r\n vm.userFormData.CampaignName = vm.CampaignName;\r\n if (vm.campaign_form.$valid) {\r\n AllUsersListService.RunCampaignOnUsers(vm.userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseCampaignModel();\r\n }\r\n })\r\n }\r\n }\r\n\r\n \r\n vm.CreateAutoDailerTaskManually = function () {\r\n if(vm.TaskRelatedTo == 'others'){\r\n vm.TaskRelatedToField = vm.othercomments;\r\n }\r\n else{\r\n vm.TaskRelatedToField = vm.TaskRelatedTo;\r\n }\r\n vm.dialertask_form.submitted = true;\r\n vm.userFormData.DialerTaskName = vm.DialerTaskName;\r\n vm.userFormData.TaskDescription = vm.DialerTaskDescription;\r\n vm.userFormData.TaskRelatedTo = vm.TaskRelatedToField;\r\n vm.userFormData.TaskForUser = vm.AssignedTo;\r\n if (vm.dialertask_form.$valid) {\r\n AllUsersListService.CreateAutoDailerTaskManually(vm.userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseDialerTaskModel();\r\n }\r\n else{\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n })\r\n }\r\n }\r\n\r\n vm.campaignSkill = null;\r\n vm.campaignLocation = null;\r\n vm.campaignTools = null;\r\n vm.campaignLink = null;\r\n\r\n vm.DynamicRunCampaignOnUsers = function () {\r\n vm.campaign_form.submitted = true;\r\n vm.userFormData.CampaignName = vm.CampaignName;\r\n vm.userFormData.CampaignParameters = [];\r\n vm.userFormData.CampaignParameters.push(vm.campaignSkill);\r\n vm.userFormData.CampaignParameters.push(vm.campaignLocation);\r\n vm.userFormData.CampaignParameters.push(vm.campaignTools);\r\n vm.userFormData.CampaignParameters.push(vm.campaignLink);\r\n if (vm.campaign_form.$valid) {\r\n AllUsersListService.RunCampaignOnUsers(vm.userFormData, loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n vm.CloseDynamicCampaignModel();\r\n }\r\n })\r\n }\r\n }\r\n\r\n // 360 profile\r\n vm.GetAllCampaignName = function () {\r\n AllUsersListService.GetAllCampaignName(loggedinUser, token).then(function (resp) {\r\n vm.campaignNameList = resp.data;\r\n })\r\n }\r\n\r\n vm.GetAllGenericCampaignName = function () {\r\n AllUsersListService.GetAllGenericCampaignName(loggedinUser, token).then(function (resp) {\r\n vm.genericCampaignNameList = resp.data;\r\n })\r\n }\r\n\r\n\r\n vm.GetFinanceTicketDetail = function (paymentId, isCollapsed) {\r\n $scope.isCollapsed = !isCollapsed;\r\n DashboardService.GetFinanceTicketDetail(paymentId).then(function (resp) {\r\n vm.financedetails = resp.data;\r\n })\r\n }\r\n\r\n vm.GetLastFollowUpOnTicketId = function (teamid) {\r\n vm.userId = teamid;\r\n vm.FollowupListArr = [];\r\n DashboardService.GetLastFollowUpOnTicketId(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.followupdata = resp.data;\r\n angular.forEach(vm.followupdata, function (fdetail, i) {\r\n if (fdetail != null) {\r\n angular.forEach(vm.followupdata[i].FollowUpOnTicket, function (fdetail, i) {\r\n vm.FollowupList = fdetail.FollowUpOnTicket;\r\n vm.FollowupListArr.push(fdetail);\r\n })\r\n\r\n }\r\n })\r\n })\r\n }\r\n\r\n vm.ReTestForSkill = function (skill) {\r\n var data = {};\r\n data = {\r\n \"UserId\": vm.userId,\r\n \"Skill\": skill\r\n }\r\n OnBoardingFlowService.ReTestForSkill(data, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n });\r\n }\r\n\r\n\r\n vm.Open360ForActiveUsers = function(teamid){\r\n if(vm.Role != 'Dispatch Head' && vm.Role != 'Dispatch Team Lead' && vm.Role != 'Dispatch Manager' && vm.Role != 'Dispatch Supervisor' && vm.Role != 'Higher Management' && vm.Role != 'Community Manager'){\r\n vm.Get360TeamProfileData(teamid);\r\n }\r\n else if(vm.Role == 'Dispatch Head' || vm.Role == 'Dispatch Team Lead' || vm.Role == 'Dispatch Manager' || vm.Role == 'Dispatch Supervisor' || vm.Role == 'Higher Management' || vm.Role == 'Community Manager'){\r\n $state.go('index.Technician360view',{\r\n userId: teamid\r\n }, { reload: true });\r\n }\r\n }\r\n\r\n vm.getPicUrl = function (pic) {\r\n\t\t\treturn ImageUrl + \"/\" + pic;\r\n\t\t}\r\n \r\n vm.Open360ForITUsers = function(teamid){\r\n $state.go('index.ITEngineer',{\r\n UserId: teamid\r\n }, { reload: true });\r\n \r\n }\r\n\r\n vm.savecampaignlistname = function () {\r\n vm.savelistcampaignRunModelOpen = $uibModal.open({\r\n templateUrl: 'savecampaignlistnameModel.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n });\r\n }\r\n vm.CampaignListName = \"\";\r\n vm.CloseSaveCampaignlistname = function () {\r\n vm.CampaignListName = \"\";\r\n vm.savelistcampaignRunModelOpen.close();\r\n }\r\n\r\n vm.Get360TeamProfileData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360ProfileData(loggedinUser, teamid, token).then(function (resp) {\r\n if (resp.data) {\r\n $scope.userClass_status = false;\r\n $scope.myvalue = true;\r\n }\r\n vm.teamdata = resp.data;\r\n vm.AvgRating = vm.teamdata.userProfile.AverageRating;\r\n vm.ReviewsList = vm.teamdata.userProfile.Reviews\r\n vm.teamdata.ratingStars = vm.getRatingStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.blankStars = vm.getBlankStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n vm.teamdata.avgratingStars = vm.getAvgRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.avgblankStars = vm.getAvgBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n // if (vm.teamdata.userProfile.ContactNumber) {\r\n // vm.teamdata.userProfile.ContactNumber = vm.teamdata.userProfile.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n // }\r\n\r\n if (vm.teamdata.userProfile.Reviews) {\r\n vm.teamdata.userProfile.Reviews.forEach(function (element, i) {\r\n vm.teamdata.userratingStars = vm.getUserRatingStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n vm.teamdata.userblankStars = vm.getUserBlankStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n element.arrayRating = vm.teamdata.userratingStars;\r\n element.blankRating = vm.teamdata.userblankStars;\r\n });\r\n }\r\n\r\n vm.TechnicianRating = Number(vm.teamdata.userProfile.Ratings.TechnicianRating).toFixed(1);\r\n $timeout(function () {\r\n displayTotals();\r\n }, 300);\r\n }, function () {\r\n })\r\n }\r\n\r\n vm.filterStatusForJObs = function (status) {\r\n vm.JobcountbyStatus = status;\r\n vm.wsersFilterArray();\r\n PageIndex = 1;\r\n vm.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype);\r\n }\r\n\r\n\r\n vm.Get360AuthorizedDetail = function () {\r\n DashboardService.GetAuthorizedServicePartnerDetail(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.authorizeDetail = resp.data;\r\n })\r\n }\r\n\r\n vm.brandList = [\"LG\", \"Samsung\", \"Havells & lloyds\", \"Hitachi\", \"Panasonic\", \"O general\", \"Daikin\", \"Micromax\", \"Bluestar\", \"Toshiba\", \"Glen\", \"Lifelong\", \"Whirlpool\", \"IFB\", \"Philips\", \"Godrej\", \"Bajaj\"];\r\n\r\n vm.productList = [\"Aircon\", \"Air cooler\", \"Home Appliances\", \"IT\", \"AC\", \"Multi product\", \"RO\", \"Printer\"];\r\n\r\n vm.getRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getAvgRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getAvgBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getUserRatingStars = function (rating) {\r\n var stars = [];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.push(i);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n vm.getUserBlankStars = function (rating) {\r\n var stars = [1, 2, 3, 4, 5];\r\n if (rating) {\r\n for (var i = 0; i < rating; i++) {\r\n stars.splice(stars.indexOf(i), 1);\r\n }\r\n }\r\n return stars;\r\n }\r\n\r\n $scope.totalWS = 0;\r\n $scope.wsPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function (userId) {\r\n $scope.wsPerPage = vm.userPageListCount;\r\n uPageSize = $scope.wsPerPage;\r\n $scope.WSTablePageChanged($scope.Userpagination.current);\r\n\r\n uPageIndex = $scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n vm.wsersFilterArray();\r\n vm.Get360WorkSummary(loggedinUser, token, userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n }\r\n\r\n uPageIndex = $scope.Userpagination.current;\r\n $scope.WSTablePageChanged = function (newPage) {\r\n uPageIndex = newPage;\r\n if (witemNames != 'Search') {\r\n vm.wsersFilterArray();\r\n }\r\n\r\n vm.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n\r\n\r\n vm.wsersFilterArray = function () {\r\n witemNames = \"\";\r\n witemValues = \"\";\r\n\r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null) {\r\n if (itemNames.length > 0 && itemValues.length > 0) {\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n } else {\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n }\r\n }\r\n if (vm.userNameSearch) {\r\n if (witemNames) {\r\n witemNames = witemNames + ',Search';\r\n witemValues = witemValues + \",\" + vm.userNameSearch;\r\n }\r\n else {\r\n witemNames = 'Search';\r\n witemValues = vm.userNameSearch;\r\n }\r\n }\r\n\r\n if (vm.JobcountbyStatus) {\r\n if (witemNames) {\r\n witemNames = witemNames + ',Status';\r\n witemValues = witemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else {\r\n witemNames = 'Status';\r\n witemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n // apply user rating to all displays\r\n // add star ratings to an array\r\n var starRating = document.querySelectorAll(\".fa-star\"),\r\n ratingTotal = document.querySelectorAll(\".rating-total\");\r\n\r\n // convert ratingTotal HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n // display initial rating totals\r\n // displayTotals();\r\n\r\n // use event listener to record changes to user rating\r\n starRating.forEach(function (star) {\r\n star.addEventListener(\"change\", recordRating);\r\n })\r\n\r\n function recordRating(event) {\r\n // use indexOf to identify selected user rating\r\n var userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n // define selected rating to adjust display totals\r\n var selectedIndex;\r\n\r\n starRating.forEach(function (item, index) {\r\n // add or remove .active class based upon selected user rating\r\n if (index < userRating + 1) {\r\n starRating[index].classList.add(\"active\");\r\n selectedIndex = index;\r\n } else {\r\n starRating[index].classList.remove(\"active\");\r\n }\r\n\r\n displayTotals(selectedIndex);\r\n });\r\n }\r\n vm.countForStatus = 50;\r\n // display star rating totals from html custom data-\r\n function displayTotals(selectedIndex) {\r\n var barChart = document.querySelectorAll(\".bar\"),\r\n displaySummary = document.querySelectorAll(\".summary\"),\r\n numRatings = 0,\r\n numRatingsValue = 0;\r\n\r\n // convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\n var reverseBarChart = Array.from(barChart).reverse();\r\n\r\n reverseRatingTotal.forEach(function (total, index) {\r\n if (index == selectedIndex) {\r\n // add selected rating to display total\r\n total.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n // adjust selected bar width\r\n reverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n } else {\r\n // display unselected totals\r\n total.innerHTML = total.getAttribute(\"data-rating-count\");\r\n // adjust unselected bar widths\r\n reverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n }\r\n // count total number and value of ratings\r\n numRatings += parseInt(total.innerHTML);\r\n numRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n });\r\n\r\n // display rating average and total\r\n ratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n // displaySummary[0].innerHTML = ratingsAverage + \" average based on \" + numRatings + \" reviews.\";\r\n }\r\n\r\n vm.Get360VendorTeamData = function (teamid) {\r\n // vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n }\r\n\r\n vm.GetUsersTicket = function (isCollapsed, status, id, type) {\r\n $scope.activeRow = id;\r\n $scope.isCollapsed = !isCollapsed;\r\n vm.userIdforStatus = id;\r\n vm.statusForTickets = status;\r\n vm.JobcountbyStatus = \"\";\r\n vm.filterType = type;\r\n vm.FilterArray();\r\n if (!vm.filterType) {\r\n vm.getAllJobTickets(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }\r\n vm.getAllJobTicketsCopyForUsers(loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize);\r\n }\r\n\r\n vm.getAllJobTicketsCopyForUsers = function (loggedinUser, startDate, endDate, itemNames, itemValues, textItemNames, textItemValues, templateItemNames, templateItemValues, PageIndex, PageSize) {\r\n var templateCols = \"\";\r\n vm.resetAllSelect();\r\n var templateCols = \"\";\r\n vm.UserticketList = [];\r\n PageIndex = PageIndex ? PageIndex : 1;\r\n vm.DateField = vm.DateField ? vm.DateField : \"CreatedOn\";\r\n ManualAssignationJobService.getAllJobTicketsCopyForPagging(loggedinUser, startDate, endDate, token, itemNames, itemValues, textItemNames, textItemValues, templateCols, templateItemNames, templateItemValues, vm.DateField, PageIndex, PageSize, vm.SortType, vm.SortField).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserticketList = resp.data.LightTicketModels;\r\n }\r\n\r\n }, function () {\r\n });\r\n\r\n }\r\n\r\n vm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token, vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate, wsEDate, vm.OrderBy, vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.wsTicketList = resp.data.workSummaryData;\r\n $scope.totalWS = resp.data.WorkSummaryTotalCount;\r\n if (vm.wsTicketList.length < vm.userPageListCount)\r\n vm.wsListLength = $scope.totalWS;\r\n else\r\n vm.wsListLength = uPageIndex * vm.userPageListCount;\r\n if (uPageIndex == 1)\r\n vm.wspageindexCount = 1;\r\n else\r\n vm.wspageindexCount = (((uPageIndex - 1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n vm.FinanceFiltersList = [];\r\n vm.GetFinancialSummary = function () {\r\n DashboardService.GetFinancialSummary(loggedinUser, token, vm.userId, fnitemNames, fnitemValues, fPageIndex, fPageSize, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.paymentCount = resp.data.paymentsSummary;\r\n vm.FinanceFiltersList = resp.data.financialSummary360.financialLPSummaryList;\r\n $scope.totalFinList = resp.data.financialSummary360.count;\r\n if (vm.FinanceFiltersList.length < vm.financePageListCount)\r\n vm.financeListLength = $scope.totalFinList;\r\n else\r\n vm.financeListLength = fPageIndex * vm.financePageListCount;\r\n if (fPageIndex == 1)\r\n vm.fpageindexCount = 1;\r\n else\r\n vm.fpageindexCount = (((fPageIndex - 1) * vm.financePageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n\r\n $scope.totalFinList = 0;\r\n $scope.usersPerPage = vm.financePageListCount;\r\n $scope.Financepagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changefinancePageListCount = function () {\r\n $scope.usersPerPage = vm.financePageListCount;\r\n fPageSize = $scope.usersPerPage;\r\n $scope.FinanceTablePageChanged($scope.Financepagination.current);\r\n vm.selectAll = false;\r\n\r\n fPageIndex = $scope.Financepagination.current;\r\n $scope.FinanceTablePageChanged = function (newPage) {\r\n fPageIndex = newPage;\r\n vm.FinanceFilterArray();\r\n vm.GetFinancialSummary(loggedinUser, token, vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n }\r\n\r\n fPageIndex = $scope.Financepagination.current;\r\n $scope.FinanceTablePageChanged = function (newPage) {\r\n fPageIndex = newPage;\r\n if (uitemNames != 'Search') {\r\n vm.FinanceFilterArray();\r\n }\r\n\r\n vm.GetFinancialSummary(loggedinUser, token, vm.userId, uitemNames, uitemValues, fPageIndex, fPageSize, startDate, endDate, vm.OrderBy, vm.sorttype);\r\n\r\n };\r\n\r\n\r\n vm.Get360SkillSummary = function () {\r\n DashboardService.Get360SkillSummary(loggedinUser, vm.userId, token).then(function (resp) {\r\n vm.skillsetData = resp.data;\r\n for (var i = 0; i < vm.skillsetData.CertificateDetails.length; i++) {\r\n vm.CertimageServices(vm.skillsetData.CertificateDetails[i].TrainingCertificate, i);\r\n }\r\n\r\n if (vm.skillsetData.PreviousCompanyDetailsList) {\r\n for (var i = 0; i < vm.skillsetData.PreviousCompanyDetailsList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter) == 'image')\r\n vm.PreviousCompnyExperienceLetterServices(vm.skillsetData.PreviousCompanyDetailsList[i].ExperienceLetter, i);\r\n }\r\n }\r\n\r\n if (vm.skillsetData.UserTrainingList) {\r\n for (var i = 0; i < vm.skillsetData.UserTrainingList.length; i++) {\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingImage) == 'image')\r\n vm.TrainingImageServices(vm.skillsetData.UserTrainingList[i].TrainingImage, i);\r\n if (vm.getFileType(vm.skillsetData.UserTrainingList[i].TrainingAttendance) == 'image')\r\n vm.TrainingAttendanceServices(vm.skillsetData.UserTrainingList[i].TrainingAttendance, i);\r\n }\r\n\r\n }\r\n })\r\n }\r\n\r\n // vm.Dashboard = function (user) {\r\n // $state.go('index.Dashboard', {\r\n // UserId: user\r\n // }, {\r\n // reload: true\r\n // });\r\n // }\r\n\r\n vm.Dashboard = function () {\r\n $state.go('index.Technician360view', {\r\n userId: vm.userId\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.RegistrationHistory = function () {\r\n $state.go('index.RegistrationForm', {\r\n UserId: vm.userId\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.CreateInternalContactList = function () {\r\n vm.campaignList_form.submitted = true;\r\n if (vm.campaignList_form.$valid) {\r\n var temp = [];\r\n for(var i=0;i 0) {\r\n angular.forEach(users, function (user) {\r\n user.locationCount = user.Locations && user.Locations.length > 0 ? user.Locations.length : 0;\r\n user.locationToolTip = \"\";\r\n if (user.locationCount > 0) {\r\n angular.forEach(user.Locations, function (loc) {\r\n user.locationToolTip += loc + \",\";\r\n })\r\n user.locationToolTip = user.locationToolTip.substr(0, user.locationToolTip.length - 1);\r\n }\r\n\r\n user.worklocationCount = user.UserWorkLocations && user.UserWorkLocations.length > 0 ? user.UserWorkLocations.length : 0;\r\n user.worklocationToolTip = \"\";\r\n if (user.worklocationCount > 0) {\r\n angular.forEach(user.UserWorkLocations, function (loc) {\r\n user.worklocationToolTip += loc + \",\";\r\n })\r\n user.worklocationToolTip = user.worklocationToolTip.substr(0, user.worklocationToolTip.length - 1);\r\n }\r\n\r\n user.SkillSetCount = user.SkillSet && user.SkillSet.length > 0 ? user.SkillSet.length : 0;\r\n user.SkillSetToolTip = \"\";\r\n if (user.SkillSetCount > 0) {\r\n angular.forEach(user.SkillSet, function (s) {\r\n user.SkillSetToolTip += s + \",\";\r\n })\r\n user.SkillSetToolTip = user.SkillSetToolTip.substr(0, user.SkillSetToolTip.length - 1);\r\n }\r\n\r\n user.OneJobSkillSetCount = user.OneJobDoneSkills && user.OneJobDoneSkills.length > 0 ? user.OneJobDoneSkills.length : 0;\r\n user.OneJobSkillSetToolTip = \"\";\r\n if (user.OneJobSkillSetCount > 0) {\r\n angular.forEach(user.OneJobDoneSkills, function (s) {\r\n user.OneJobSkillSetToolTip += s + \",\";\r\n })\r\n user.OneJobSkillSetToolTip = user.OneJobSkillSetToolTip.substr(0, user.OneJobSkillSetToolTip.length - 1);\r\n }\r\n\r\n });\r\n }\r\n }\r\n // for arrow rotate \r\n\r\n vm.GetAllActiveTaskForFilter = function (){\r\n AllUsersListService.GetAllActiveTaskForFilter(loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.ActiveTaskList = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.GetAllActiveTaskForFilter();\r\n\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n };\r\n $scope.activatedButton = function () {\r\n $scope.isactivated = !$scope.isactivated;\r\n }\r\n $scope.activatedButton1 = function () {\r\n $scope.isactivated1 = !$scope.isactivated1;\r\n }\r\n $scope.activatedButton2 = function () {\r\n $scope.isactivated2 = !$scope.isactivated2;\r\n }\r\n $scope.activatedButton3 = function () {\r\n $scope.isactivated3 = !$scope.isactivated3;\r\n }\r\n $scope.activatedButton4 = function () {\r\n $scope.isactivated4 = !$scope.isactivated4;\r\n }\r\n $scope.activatedButton5 = function () {\r\n $scope.isactivated5 = !$scope.isactivated5;\r\n }\r\n $scope.activatedButton6 = function () {\r\n $scope.isactivated6 = !$scope.isactivated6;\r\n }\r\n $scope.activatedButton7 = function () {\r\n $scope.isactivated7 = !$scope.isactivated7;\r\n }\r\n $scope.activatedButton8 = function () {\r\n $scope.isactivated8 = !$scope.isactivated8;\r\n }\r\n $scope.activatedButton9 = function () {\r\n $scope.isactivated9 = !$scope.isactivated9;\r\n }\r\n $scope.activatedButton10 = function () {\r\n $scope.isactivated10 = !$scope.isactivated10;\r\n }\r\n $scope.activatedButton11 = function () {\r\n $scope.isactivated11 = !$scope.isactivated11;\r\n }\r\n $scope.activatedButton12 = function () {\r\n $scope.isactivated12 = !$scope.isactivated12;\r\n }\r\n $scope.activatedButton13 = function () {\r\n $scope.isactivated13 = !$scope.isactivated13;\r\n }\r\n $scope.activatedButton14 = function () {\r\n $scope.isactivated14 = !$scope.isactivated14;\r\n }\r\n $scope.activatedButton15 = function () {\r\n $scope.isactivated15 = !$scope.isactivated15;\r\n }\r\n $scope.activatedButton16 = function () {\r\n $scope.isactivated16 = !$scope.isactivated16;\r\n }\r\n $scope.activatedButton17 = function () {\r\n $scope.isactivated17 = !$scope.isactivated17;\r\n }\r\n $scope.activatedButton18 = function () {\r\n $scope.isactivated18 = !$scope.isactivated18;\r\n }\r\n $scope.activatedButton19 = function () {\r\n $scope.isactivated19 = !$scope.isactivated19;\r\n }\r\n\r\n $scope.activatedButton20 = function () {\r\n $scope.isactivated20 = !$scope.isactivated20;\r\n }\r\n $scope.activatedButton21 = function () {\r\n $scope.isactivated21 = !$scope.isactivated21;\r\n }\r\n $scope.activatedButton22 = function () {\r\n $scope.isactivated22 = !$scope.isactivated22;\r\n }\r\n $scope.activatedButton23 = function () {\r\n $scope.isactivated23 = !$scope.isactivated23;\r\n }\r\n $scope.activatedButton24 = function () {\r\n $scope.isactivated24 = !$scope.isactivated24;\r\n }\r\n $scope.activatedButton25 = function () {\r\n $scope.isactivated25 = !$scope.isactivated25;\r\n }\r\n $scope.activatedButton26 = function () {\r\n $scope.isactivated26 = !$scope.isactivated26;\r\n }\r\n $scope.activatedButton27 = function () {\r\n $scope.isactivated27 = !$scope.isactivated27;\r\n }\r\n $scope.activatedButton28 = function () {\r\n $scope.isactivated28 = !$scope.isactivated28;\r\n }\r\n $scope.activatedButton29 = function () {\r\n $scope.isactivated29 = !$scope.isactivated29;\r\n }\r\n $scope.activatedButton30 = function () {\r\n $scope.isactivated30 = !$scope.isactivated30;\r\n }\r\n $scope.activatedButton31 = function () {\r\n $scope.isactivated31 = !$scope.isactivated31;\r\n }\r\n $scope.activatedButton32 = function () {\r\n $scope.isactivated32 = !$scope.isactivated32;\r\n }\r\n $scope.activatedButton33 = function () {\r\n $scope.isactivated33 = !$scope.isactivated33;\r\n }\r\n $scope.activatedButton34 = function () {\r\n $scope.isactivated34 = !$scope.isactivated34;\r\n }\r\n $scope.activatedButton35 = function () {\r\n $scope.isactivated35 = !$scope.isactivated35;\r\n }\r\n $scope.activatedButton36 = function () {\r\n $scope.isactivated36 = !$scope.isactivated36;\r\n }\r\n $scope.activatedButton37 = function () {\r\n $scope.isactivated37 = !$scope.isactivated37;\r\n }\r\n $scope.activatedButton38 = function () {\r\n $scope.isactivated38 = !$scope.isactivated38;\r\n }\r\n $scope.activatedButton39 = function () {\r\n $scope.isactivated39 = !$scope.isactivated39;\r\n }\r\n $scope.activatedButton40 = function () {\r\n $scope.isactivated40 = !$scope.isactivated40;\r\n }\r\n var $range = $(\".js-range-slider\"),\r\n $from = $(\".from\"),\r\n $to = $(\".to\"),\r\n range,\r\n min = $range.data('min'),\r\n max = $range.data('max'),\r\n from,\r\n to;\r\n\r\n var updateValues = function () {\r\n $from.prop(\"value\", from);\r\n $to.prop(\"value\", to);\r\n };\r\n\r\n $range.ionRangeSlider({\r\n onChange: function (data) {\r\n from = data.from;\r\n to = data.to;\r\n updateValues();\r\n }\r\n });\r\n\r\n range = $range.data(\"ionRangeSlider\");\r\n var updateRange = function () {\r\n range.update({\r\n from: from,\r\n to: to\r\n });\r\n };\r\n\r\n $from.on(\"input\", function () {\r\n from = +$(this).prop(\"value\");\r\n if (from < min) {\r\n from = min;\r\n }\r\n if (from > to) {\r\n from = to;\r\n }\r\n updateValues();\r\n updateRange();\r\n });\r\n\r\n $to.on(\"input\", function () {\r\n to = +$(this).prop(\"value\");\r\n if (to > max) {\r\n to = max;\r\n }\r\n if (to < from) {\r\n to = from;\r\n }\r\n updateValues();\r\n updateRange();\r\n });\r\n }\r\n});\nangular.module('inspinia').service('AllTasksOpsService', function (ApiURL,FreelancerURL, $http) {\r\n\r\n this.CommittmentFollowUp = function (data, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/MMFServicePack/UpdateUserCommittmetStatus';\r\n return $http.put(url, data, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetAllNegativeWalletsWithPaging = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/Task/GetAllNegativeWalletsWithPaging';\r\n return $http.put(url, data, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetAllActivitiesForUser = function (userId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Timeline/GetAllCallRecordingForUser?UserId=' + userId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetDetailByUserId = function (userId, loggedinUser, token) {\r\n var url = ApiURL + '/api/Task/GetDetailByUserId?UserId=' + userId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.CloseOnBoardingTask = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/OnBoardingTask/CloseOnBoardingTask';\r\n return $http.post(url, data,{\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UpdateTask = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/Task/UpdateTask';\r\n return $http.put(url, data,{\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.callToTechnicianApi = function (loggedinUser, userid, token) {\r\n url = ApiURL + '/api/CallPatching/ClickToCallFieldTeam?userId=' + userid + '&CallFor=CommitmentCall';\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetOnBoardingTaskByFilters = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/OnBoardingTask/GetOnBoardingTATBreachedTaskByFilters';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetOnBoardingTaskCountsByFilters = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/OnBoardingTask/GetTatTaskCountsByFilters';\r\n return $http.post(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.GetAllNegativeWalletsWithPaging_CSV = function (data, loggedinUser, token) {\r\n var url = ApiURL + '/api/Task/GetAllNegativeWalletsWithPaging_CSV';\r\n return $http.put(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('AllTasksOpsController', function (AllTasksOpsService,DashboardService, AllUsersListService, ReferService, CommittmentOpsService, $resource, SlotAllocationService, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvar Closuredatelimit = new Date();\r\n\t\tvm.ClosureDateTime = { date: '', datepickerOptions: { minDate: Closuredatelimit } };\r\n\t\tvar datelimit = new Date();\r\n\t\tdatelimit.setMinutes(datelimit.getMinutes() + 1)\r\n\t\t// vm.AppointmentsDate = { date: '', datepickerOptions: { minDate: datelimit }, dateFormat: \"yy/mm/dd\" };\r\n\t\tvm.userCommittmentDate = new Date();\r\n\t\tvm.AppointmentsDate = {\r\n\t\t\tdatepickerOptions: {\r\n\t\t\t\tminDate: new Date()\r\n\t\t\t}\r\n\t\t};\r\n\t\tvm.userComments = \"\";\r\n\t\tvm.userCommittmentStatus = \"\";\r\n\t\tvm.closeuserCommittmentStatus = \"Interested\";\r\n\t\tvm.userCommittmentId = \"\";\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.ExceptionType = 'COMMITMENT_FOLLOWUP';\r\n\t\tvm.UserId = '';\r\n\t\tvm.OnBoardingList = [];\r\n\t\tvm.bGVerifyListLength = 0;\r\n\t\tvm.userPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.npageListCounts = [10, 20, 30, 50];\r\n\t\tvm.allOrdersPageListCount = 10;\r\n\t\tvar oPageIndex = 1;\r\n\t\tvar oPageSize = 10;\r\n\t\tvm.AssignedTo = '';\r\n\t\tvm.taskStatus = '';\r\n\t\tvm.DateField = 'CreatedOn';\r\n\t\tvm.State = '';\r\n\t\tvm.City = '';\r\n\t\tvm.taskPincode = '';\r\n\t\tvm.CreationSource = '';\r\n\t\tvm.taskskill = '';\r\n\t\tvm.accountId = '';\r\n\t\tvm.capacityCount = '';\r\n\t\tvm.cityOfTask = \"\";\r\n\t\tvm.accountIdOfTask = \"\";\r\n\t\tvm.stateOfTask = \"\";\r\n\t\tvm.skillOfTask = \"\";\r\n\t\tvm.descriptionOfTask = \"\";\r\n\t\tvm.Technicianstartingdate = '2017-01-01';\r\n\t\tvm.TaskId = \"\";\r\n\t\tvm.IsFreelancerBidCount = false;\r\n\t\tvm.IsFixedTeamCount = false;\r\n\t\tvm.Asset = \"\";\r\n\t\tvm.Tools = \"\";\r\n\t\tvm.Certificate = \"\";\r\n\t\tvm.PermanentCity = \"\";\r\n\t\tvm.techPincode = \"\";\r\n\t\tvm.PermanentState = \"\";\r\n\t\tvm.TicketState = \"\";\r\n\t\tvm.SearchByAccountName = \"\";\r\n\t\tvm.PreferredForAccounts = \"\";\r\n\t\tvm.TicketCity = \"\";\r\n\t\tvm.ticketStatus = \"\";\r\n\t\tvm.IsCommittedUser = false,\r\n\t\tvm.IsCommitmentInterestedUser = false,\r\n\t\t$scope.Prime = false;\r\n\t\t$scope.NonPrime = false;\r\n\t\tvm.PssStatus = \"\";\r\n\t\t$scope.selectedTools = [];\r\n\t\tvm.JobSkill = \"\";\r\n\t\tvm.ActiveInMonth = \"\";\r\n\t\tvm.NoOfJobDone = \"\";\r\n\t\tvm.Asset = \"\";\r\n\t\tvm.Tools = \"\";\r\n\t\tvm.UserRole = \"\";\r\n\t\tvm.MatchCriteria = \"\";\r\n\t\tvm.TraningCertificate = \"\";\r\n\t\tvm.ToolList = \"\";\r\n\t\tvm.OneJobDone = false;\r\n\t\tvm.TwoJobDoneForSkills = false;\r\n\t\tvm.SearchTag = \"\";\r\n\t\tvm.MatchingSkill = false;\r\n\t\tvm.Asset_Bike = false;\r\n\t\tvm.Asset_Mobile = false;\r\n\t\tvm.Asset_Laptop = false;\r\n\t\tvm.disableCreateButton = false;\r\n\t\tvm.Sort = \"desc\";\r\n\t\tvm.Pincode = \"\";\r\n\t\tvm.Experience = \"\";\r\n\t\tvm.Ratings = \"\";\r\n\t\tvm.Assets_Tools = \"\";\r\n\t\tvm.Jobscount = \"\";\r\n\t\tvm.FilterAdhar = \"\";\r\n\t\tvm.FilterPancard = \"\";\r\n\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t$localStorage.filteraddskill = \"\";\r\n\t\t$localStorage.filterPermanentstate = \"\";\r\n\t\tvm.currentPage = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n\t\t$scope.totalUsers = 0;\r\n\t\t$scope.pagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\t\t$scope.pagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n\t\t$scope.totalTableUsers = 0;\r\n\t\t$scope.usersTablePerPage = 10;\r\n\t\t$scope.UserTablepagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\t$scope.UserTablepagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n\t\t$scope.pageChanged = function (newPage) {\r\n\t\t\tvm.currentPage = newPage;\r\n\t\t\tvm.applyfilter(newPage);\r\n\r\n\t\t};\r\n\t\t$scope.dates = { startDate: moment().subtract(30, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\tvm.ticketdates = { startDate: moment().subtract(30, 'days'), endDate: moment() };\r\n\t\tvm.ticketranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')],\r\n\t\t\t'Till now': [moment(vm.Technicianstartingdate), moment(endDate)],\r\n\t\t};\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t};\r\n\t\tvm.negativewalletdateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.GetAllNegativeWalletsWithPaging();\r\n\t\t};\r\n\r\n\t\tvm.isSidebarOpen = false;\r\n vm.selectedUser = {};\r\n\r\n // Open Sidebar with user details\r\n vm.openSidebar = function (user) {\r\n vm.selectedUser = user;\r\n vm.isSidebarOpen = true;\r\n };\r\n\r\n // Close Sidebar\r\n vm.closeSidebar = function () {\r\n vm.isSidebarOpen = false;\r\n };\r\n//////negative pagination\r\n\r\n$scope.totalOrderList = 0;\r\n$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n$scope.OrdersPagination = {\r\n\tcurrent: 1\r\n};\r\n\r\nvm.changeAllOrderPageListCount = function () {\r\n\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\toPageSize = $scope.ordersPerPage;\r\n\t$scope.AllOrderTablePageChanged($scope.OrdersPagination.current);\r\n\toPageIndex = $scope.OrdersPagination.current;\r\n\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\toPageIndex = newPage;\r\n\t\tvm.GetAllNegativeWalletsWithPaging();\r\n\r\n\t};\r\n\r\n}\r\noPageIndex = $scope.OrdersPagination.current;\r\n\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\toPageIndex = newPage;\r\n\t\t\tvm.GetAllNegativeWalletsWithPaging();\r\n\r\n\t\t};\r\n\t\tvm.orderInvetoryList = [];\r\n\t\tvm.SearchText =\"\";\r\n\t\tvm.GetAllNegativeWalletsWithPaging = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize,\r\n\t\t\t\t\"UserId\": \"\",\r\n\t\t\t\t\"UserName\": \"\",\r\n\t\t\t\t\"SearchText\" : vm.SearchText,\r\n \"StartDate\" : startDate,\r\n\t\t\t\t\"EndDate\" : endDate,\t\t\t\t\r\n\t\t\t}\r\n\t\t\tAllTasksOpsService.GetAllNegativeWalletsWithPaging(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.orderInvetoryList = resp.data.returnList;\r\n\t\t\t\t\t$scope.totalOrderList = resp.data.Count;\r\n\t\t\t\t\tif (vm.orderInvetoryList.length < vm.allOrdersPageListCount)\r\n\t\t\t\t\t\tvm.orderListLength = $scope.totalOrderList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.orderListLength = oPageIndex * vm.allOrdersPageListCount;\r\n\t\t\t\t\tif (oPageIndex == 1)\r\n\t\t\t\t\t\tvm.opageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.opageindexCount = (((oPageIndex - 1) * vm.allOrdersPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllNegativeWalletsWithPaging();\r\n\r\n\t\tvm.searchByText = function () {\r\n\t\t\t\r\n\t\t\tvm.GetAllNegativeWalletsWithPaging();\r\n\t\t}\r\n\t\tvm.resetFilters = function(){\r\n\t\t\tvm.SearchText = \"\";\r\n\t\t\tvm.ticketdates = '';\r\n\t\t\tvm.GetAllNegativeWalletsWithPaging();\r\n\t\t}\r\n\r\n\t\tvm.GetAllNegativeWalletsWithPaging_CSV = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize,\r\n\t\t\t\t\"UserId\": \"\",\r\n\t\t\t\t\"UserName\": \"\",\r\n\t\t\t\t\"SearchText\" : vm.SearchText,\r\n\t\t\t\t\"StartDate\" : startDate,\r\n\t\t\t\t\"EndDate\" : endDate,\r\n\r\n\t\t\t}\r\n\t\t\tAllTasksOpsService.GetAllNegativeWalletsWithPaging_CSV(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvar csvData = resp.data;\r\n\t\t\t\t\tvar blob = new Blob([csvData], { type: 'text/csv' });\r\n\t\t\t\t\tvar url = window.URL.createObjectURL(blob);\r\n\t\t\t\t\tvar a = document.createElement('a');\r\n\t\t\t\t\ta.href = url;\r\n\t\t\t\t\ta.download = 'All_NegativeWallet.csv';\r\n\t\t\t\t\ta.click();\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n///////end\r\n\r\n\t\tvm.GetAllActiveTaskForFilter = function () {\r\n\t\t\tAllUsersListService.GetAllActiveTaskForFilter(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.ActiveTaskList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllActiveTaskForFilter();\r\n\r\n\t\tvm.UserRoleList = [\"Field Engineer\", \"Vendor Manager\", \"VendorTeam\", \"ServiceCenter\"];\r\n\r\n\t\tvm.getSkills = function () {\r\n\t\t\tAllUsersListService.getSkills(loggedinUser, token, function (skills) {\r\n\t\t\t\tvm.skills = skills;\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.getSkills();\r\n\r\n\t\tvm.GetAllAccounts = function () {\r\n\t\t\tAllUsersListService.GetAllAccountDetails(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.accountsList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.GetAllAccounts();\r\n\r\n\t\tvm.getAllSlotsByStatus = function (status) {\r\n\t\t\tvm.taskStatus = status;\r\n\t\t\tPageIndex = 1;\r\n\t\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\t}\r\n\t\t\r\n\t\tvm.activeTab = \"FollowUp\";\r\n\r\n\t\t$scope.changeBackgroundColor = function (event, activeTab) {\r\n\t\t\tvm.activeTab = activeTab;\r\n\t\t\tif ($scope.selectedElement) {\r\n\t\t\t\t$scope.selectedElement.style.backgroundColor = 'white';\r\n\t\t\t}\r\n\t\t\tvar targetElement = event.currentTarget;\r\n\t\t\ttargetElement.style.backgroundColor = '#b3b3b966';\r\n\t\t\t// targetElement.style.color = '#fff';\r\n\r\n\t\t\t$scope.selectedElement = targetElement;\r\n\t\t\t$scope.isParagraphVisible = (activeTab === 'Negative_Wallet');\r\n\r\n\t\t\tif (vm.activeTab == \"CommitmentMain\") {\r\n\t\t\t\tvm.ExceptionType = \"CAPACITY_GAP_COMMITMENT\";\r\n\t\t\t\tvm.TaskId = \"\";\r\n\t\t\t\t// startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\t\t\t// endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\t\t\tvm.GetOnBoardingTaskCounts();\r\n\t\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t\t}\r\n\t\t\tif (vm.activeTab == \"Commitment\") {\r\n\t\t\t\tvm.ExceptionType = \"CAPACITY_GAP_COMMITMENT\";\r\n\t\t\t}\r\n\t\t\tif (vm.activeTab == \"FollowUp\") {\r\n\t\t\t\tvm.ExceptionType = \"COMMITMENT_FOLLOWUP\";\r\n\t\t\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\t\t\tvm.GetOnBoardingTaskCounts();\r\n\t\t\t}\r\n\t\t\tif (vm.activeTab != \"FollowUp\" && vm.activeTab != \"Commitment\" && vm.activeTab != \"CommitmentMain\") {\r\n\t\t\t\tvm.ExceptionType = vm.activeTab;\r\n\t\t\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\t\t\tvm.GetOnBoardingTaskCounts();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t$timeout(function () {\r\n\t\t\t$scope.changeBackgroundColor({ currentTarget: document.getElementById('FollowUp') }, 'FollowUp');\r\n\t\t}, 0);\r\n\r\n\t\tvm.callToTechnician = function (userid) {\r\n\t\t\tAllTasksOpsService.callToTechnicianApi(loggedinUser, userid, token).then(function (resp) {\r\n\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Call Initiated\");\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failure\", resp.data.Message);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.ApplyTaskfilter = function () {\r\n\t\t\t// $scope.UserTablepagination = {};\r\n\t\t\t// $scope.UserTablepagination = {\r\n\t\t\t// current: 1\r\n\t\t\t// };\r\n\t\t\t// $scope.hideFilter();\r\n\t\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\t\tvm.GetOnBoardingTaskCounts();\r\n\t\t}\r\n\r\n\t\tvm.editJobAppointment = function () {\r\n\t\t\tvm.jobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'editJobAppointment.html',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tvm.closeJobAppointment = function () {\r\n\t\t\tvm.jobAppointmentModal.close();\r\n\t\t}\r\n\r\n\t\t$scope.userFilter = true;\r\n\t\t$scope.assignJobFilter = function () {\r\n\t\t\t$scope.userFilter = !$scope.userFilter;\r\n\t\t\t$scope.myvalue = false;\r\n\t\t\t$scope.manualAssignationWrapper = \"hide-nav\";\r\n\t\t};\r\n\t\t$scope.broadcastSentUser = true;\r\n\t\t$scope.toggleForBroadcast = function () {\r\n\t\t\t$scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n\t\t\t$scope.myvalue = false;\r\n\r\n\t\t};\r\n\r\n\t\t$scope.calltrack = function () {\r\n\t\t\t$scope.myvalue = false;\r\n\t\t\t$scope.class_status = true;\r\n\t\t\t$scope.broadcastSentUser = true;\r\n\r\n\t\t}\r\n\r\n\t\t$scope.hideoverlay = function () {\r\n\t\t\t$scope.myvalue = false;\r\n\t\t\t$scope.broadcastSentUser = true;\r\n\t\t\t\r\n\t\t }\r\n\r\n\r\n\t\t$scope.customSearch = function (item) {\r\n\t\tif (!vm.SearchTagNew) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar lowerCaseSearchText = vm.SearchTagNew.toLowerCase();\r\n\t\tfor (var prop in item) {\r\n\t\t\tif (item.hasOwnProperty(prop) && angular.isString(item[prop])) {\r\n\t\t\tvar lowerCaseProp = item[prop].toLowerCase();\r\n\t\t\tif (lowerCaseProp.includes(lowerCaseSearchText)) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t\t};\r\n\r\n\r\n\t\tvm.GetOnBoardingTaskByFilters = function () {\r\n\t\t\tif (vm.loggedInUserRole == 'Dispatch Manager' || vm.loggedInUserRole == 'Dispatch Supervisor') {\r\n\t\t\t\tvm.CreationSource = 'Manual';\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.CreationSource = '';\r\n\t\t\t}\r\n\t\t\tdata = {\r\n\t\t\t\t\"Status\": vm.taskStatus,\r\n\t\t\t\t\"Skill\": vm.taskskill == \"\" ? \"\" : vm.taskskill.join(\"|\"),\r\n\t\t\t\t\"DateField\": vm.DateField,\r\n\t\t\t\t\"FromDate\": moment().subtract(5, 'years').format(\"YYYY-MM-DD\"),\r\n\t\t\t\t\"ToDate\": endDate,\r\n\t\t\t\t\"AccountId\": vm.accountId == \"\" ? \"\" : vm.accountId.join(\"|\"),\r\n\t\t\t\t\"PageIndex\": PageIndex,\r\n\t\t\t\t\"PageSize\": 500,\r\n\t\t\t\t\"State\": vm.State,\r\n\t\t\t\t\"City\": vm.City,\r\n\t\t\t\t\"Pincode\": vm.taskPincode,\r\n\t\t\t\t\"OrderBy\": vm.OrderBy,\r\n\t\t\t\t\"Sort\": vm.Sort,\r\n\t\t\t\t\"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n\t\t\t\t\"CreationSource\": vm.CreationSource,\r\n\t\t\t\t\"ExceptionType\": vm.ExceptionType,\r\n\t\t\t}\r\n\t\t\tAllTasksOpsService.GetOnBoardingTaskByFilters(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.OnBoardingList = resp.data.OnBoardingResModelList;\r\n\t\t\t\t\t$scope.totalTableUsersBG = resp.data.RecordCount;\r\n\t\t\t\t\tif (vm.OnBoardingList.length < vm.userPageListCount)\r\n\t\t\t\t\t\tvm.bGVerifyListLength = $scope.totalTableUsersBG;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.bGVerifyListLength = PageIndex * vm.userPageListCount;\r\n\t\t\t\t\tif (PageIndex == 1)\r\n\t\t\t\t\t\tvm.pageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.pageindexCount = (((PageIndex - 1) * vm.userPageListCount) + 1);\r\n\t\t\t\t}\r\n\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.GetOnBoardingTaskCounts = function () {\r\n\t\t\tif (vm.loggedInUserRole == 'Dispatch Manager' || vm.loggedInUserRole == 'Dispatch Supervisor') {\r\n\t\t\t\tvm.CreationSource = 'Manual';\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.CreationSource = '';\r\n\t\t\t}\r\n\t\t\tdata = {\r\n\t\t\t\t\"Status\": vm.taskStatus,\r\n\t\t\t\t\"Skill\": vm.taskskill == \"\" ? \"\" : vm.taskskill.join(\"|\"),\r\n\t\t\t\t\"DateField\": vm.DateField,\r\n\t\t\t\t\"FromDate\": moment().subtract(5, 'years').format(\"YYYY-MM-DD\"),\r\n\t\t\t\t\"ToDate\": endDate,\r\n\t\t\t\t\"AccountId\": vm.accountId == \"\" ? \"\" : vm.accountId.join(\"|\"),\r\n\t\t\t\t\"PageIndex\": PageIndex,\r\n\t\t\t\t\"PageSize\": 500,\r\n\t\t\t\t\"State\": vm.State,\r\n\t\t\t\t\"City\": vm.City,\r\n\t\t\t\t\"Pincode\": vm.taskPincode,\r\n\t\t\t\t\"OrderBy\": vm.OrderBy,\r\n\t\t\t\t\"Sort\": vm.Sort,\r\n\t\t\t\t\"AssignedTo\": vm.AssignedTo == \"\" ? \"\" : vm.AssignedTo.join(\"|\"),\r\n\t\t\t\t\"CreationSource\": vm.CreationSource,\r\n\t\t\t\t\"ExceptionType\": vm.ExceptionType,\r\n\t\t\t}\r\n\t\t\tAllTasksOpsService.GetOnBoardingTaskCountsByFilters(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.TotalTask = resp.data.TotalTask;\r\n\t\t\t\t\tvm.OpenTask = resp.data.OpenTask;\r\n\t\t\t\t\tvm.ClosedTask = resp.data.ClosedTask;\r\n\t\t\t\t\tvm.InProgressTask = resp.data.InProgressTask;\r\n\t\t\t\t\tvm.FollowUpTask = resp.data.FollowUpTask;\r\n\t\t\t\t\tvm.CommitmentTask = resp.data.CommitmentTask;\r\n\t\t\t\t\tvm.PickupTAT = resp.data.PickupTAT;\r\n\t\t\t\t\tvm.EstimateTAT = resp.data.EstimateTAT;\r\n\t\t\t\t\tvm.EstimateApprovalTAT = resp.data.EstimateApprovalTAT;\r\n\t\t\t\t\tvm.RepairTAT = resp.data.RepairTAT;\r\n\t\t\t\t\tvm.DeliveryTAT = resp.data.DeliveryTAT;\r\n\t\t\t\t\tvm.OverallClosedTask = resp.data.OverallClosedTask;\r\n\t\t\t\t\tvm.OverallTotalTask = resp.data.OverallTotalTask;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tvm.GetOnBoardingTaskByFilters();\r\n\t\tvm.GetOnBoardingTaskCounts();\r\n\r\n\t\tvm.getAllCertificate = function () {\r\n\t\t\tAllUsersListService.GetAllCertificate(loggedinUser, token, function (data) {\r\n\t\t\t\tvm.AllCertificateSets = data;\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.getAllCertificate();\r\n\r\n\t\tvm.brandList = [\"LG\", \"Samsung\", \"Havells & lloyds\", \"Hitachi\", \"Panasonic\", \"O general\", \"Daikin\", \"Micromax\", \"Bluestar\", \"Toshiba\", \"Glen\", \"Lifelong\", \"Whirlpool\", \"IFB\", \"Philips\", \"Godrej\", \"Bajaj\"];\r\n\r\n\t\tvm.productList = [\"Aircon\", \"Air cooler\", \"Home Appliances\", \"IT\", \"AC\", \"Multi product\", \"RO\", \"Printer\"];\r\n\r\n\t\tfunction getAllStates() {\r\n\t\t\tvar defered = $q.defer();\r\n\t\t\tReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tdefered.resolve(resp);\r\n\t\t\t}, function (error) {\r\n\t\t\t\tdefered.reject(error);\r\n\t\t\t});\r\n\t\t\treturn defered.promise;\r\n\t\t}\r\n\r\n\t\tvar allStatePromise = getAllStates(loggedinUser);\r\n\t\tallStatePromise.then(function (resp) {\r\n\t\t\tvm.StateList = resp.data;\r\n\r\n\t\t});\r\n\t\tfunction getallCities(state) {\r\n\t\t\tReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n\t\t\t\tvm.CityList = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.selectedState = function (state) {\r\n\t\t\tgetallCities(state);\r\n\t\t}\r\n\r\n\t\tvm.taskBasedFilter = function (task) {\r\n\t\t\tvm.TaskId = task;\r\n\t\t\tstartDate = moment().subtract(5, 'years').format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.Open360ForActiveUsers = function (teamid) {\r\n\t\t\tif (vm.loggedInUserRole != 'Dispatch Head' && vm.loggedInUserRole != 'Higher Management' && vm.loggedInUserRole != 'Community Manager') {\r\n\t\t\t\t$state.go('index.Dashboard', {\r\n\t\t\t\t\tUserId: teamid\r\n\t\t\t\t}, { reload: true });\r\n\t\t\t}\r\n\t\t\telse if (vm.loggedInUserRole == 'Dispatch Head' || vm.loggedInUserRole == 'Higher Management' || vm.loggedInUserRole == 'Community Manager') {\r\n\t\t\t\t$state.go('index.Technician360view', {\r\n\t\t\t\t\tuserId: teamid\r\n\t\t\t\t}, { reload: true });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t$scope.TalentPoolTablepageChanged = function (newPage) {\r\n\r\n\t\t\tvm.currentPage = newPage;\r\n\r\n\t\t\tvm.applyfilter(newPage, '');\r\n\t\t};\r\n\r\n\t\tvm.applyfilter = function (index, data) {\r\n\t\t\tvar userFormData = {};\r\n\t\t\tif (data) {\r\n\t\t\t\tuserFormData = data;\r\n\t\t\t} else {\r\n\t\t\t\tvar temp = [];\r\n\t\t\t\tvar res = vm.Experience.split(\"-\");\r\n\t\t\t\tvar jobscount = vm.Jobscount.split(\"-\");\r\n\t\t\t\tvar ratings = vm.Ratings.split(\"-\");\r\n\t\t\t\tuserFormData = {\r\n\t\t\t\t\t\"PageIndex\": index,\r\n\t\t\t\t\t\"PageSize\": 10,\r\n\t\t\t\t\t\"ActivationStartDate\": startDate,\r\n\t\t\t\t\t\"ActivationEnddate\": endDate,\r\n\t\t\t\t\t\"State\": vm.PermanentState,\r\n\t\t\t\t\t\"Cities\": vm.PermanentCity,\r\n\t\t\t\t\t\"Pincodes\": temp,\r\n\t\t\t\t\t\"Skill\": vm.addSkill,\r\n\t\t\t\t\t\"ExperienceStart\": res[0],\r\n\t\t\t\t\t\"ExperienceEnd\": res[1],\r\n\t\t\t\t\t\"Certificates\": vm.addTraningCertificateName,\r\n\t\t\t\t\t\"IsBikeAvailable\": vm.Asset_Bike,\r\n\t\t\t\t\t\"IsMobileAvailable\": vm.Asset_Mobile,\r\n\t\t\t\t\t\"IsLaptopAvailable\": vm.Asset_Laptop,\r\n\t\t\t\t\t\"Tools\": vm.Asset_Tools,\r\n\t\t\t\t\t\"JobCountStart\": jobscount[0],\r\n\t\t\t\t\t\"JobCountEnd\": jobscount[1],\r\n\t\t\t\t\t\"RatingStart\": Number(ratings[0]),\r\n\t\t\t\t\t\"RatingEnd\": Number(ratings[1]),\r\n\t\t\t\t\t\"PreferredTalentPool\": false,\r\n\t\t\t\t\t\"IsStudent\": vm.Student,\r\n\t\t\t\t\t\"IsCriminalVerified\": vm.Criminal,\r\n\t\t\t\t\t\"IsBankVarified\": vm.IsBankVerified,\r\n\t\t\t\t\t\"IsUPIVarified\": vm.IsUPIVarified,\r\n\t\t\t\t\t\"MMFPrimeMember\": $scope.Prime,\r\n\t\t\t\t\t\"IsCommittedUser\": vm.IsCommittedUser,\r\n\t\t\t\t\t\"IsCommitmentInterestedUser\": vm.IsCommitmentInterestedUser,\r\n\t\t\t\t\t\"MMFNonPrimeMember\": $scope.NonPrime,\r\n\t\t\t\t\t\"IsOpenForInternship\": vm.Intern,\r\n\t\t\t\t\t\"IsAdharVerified\": vm.Adharcard,\r\n\t\t\t\t\t\"IsPanVerified\": vm.Pancard,\r\n\t\t\t\t\t\"Source\": vm.Source,\r\n\t\t\t\t\t\"FreelancerRole\": vm.freelancerRole,\r\n\t\t\t\t\t\"UserStatus\": vm.UserStatus,\r\n\t\t\t\t\t\"PssStatus\": vm.PssStatus,\r\n\t\t\t\t\t\"OneJobDoneForSkills\": vm.OneJobDone,\r\n\t\t\t\t\t\"TwoJobDoneForSkills\": vm.TwoJobDoneForSkills,\r\n\t\t\t\t\t\"ReportingTo\": vm.ReportingTo,\r\n\t\t\t\t\t\"OrderBy\": vm.OrderBy,\r\n\t\t\t\t\t\"SortType\": vm.SortType,\r\n\t\t\t\t\t\"UserVerificationStatus\": vm.UserVerificationStatus,\r\n\t\t\t\t\t\"IsFreelancerBidCount\": vm.IsFreelancerBidCount,\r\n\t\t\t\t\t\"IsFixedTeamCount\": vm.IsFixedTeamCount,\r\n\t\t\t\t\t\"ContactNumber\": vm.ContactNumber,\r\n\t\t\t\t\t\"UserName\": vm.UserName,\r\n\t\t\t\t\t\"UserId\": vm.UserId,\r\n\t\t\t\t\t\"BrandName\": vm.ServiceBrand,\r\n\t\t\t\t\t\"ProductServing\": vm.ServiceProduct,\r\n\t\t\t\t\t\"SearchTag\": vm.SearchTag,\r\n\t\t\t\t\t\"IsAuthorizedServiceCenterCount\": vm.IsAuthorizedServiceCenter,\r\n\t\t\t\t\t\"TaskId\": vm.TaskId\r\n\t\t\t\t}\r\n\t\t\t\tif (vm.adddaterange) {\r\n\t\t\t\t\tuserFormData.ActivationStartDate = startDate;\r\n\t\t\t\t\tuserFormData.ActivationEnddate = endDate;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t$localStorage.FilterData = userFormData;\r\n\t\t\tAllUsersListService.Filter(loggedinUser, token, userFormData).then(function (resp) {\r\n\t\t\t\tif (resp.data) {\r\n\t\t\t\t\tvm.users = [];\r\n\t\t\t\t\tvm.Bluserlist = [];\r\n\t\t\t\t\tvm.usersCounts = resp.data;\r\n\t\t\t\t\tvm.users = resp.data.Users;\r\n\r\n\t\t\t\t\tfor (var i = 0; i < vm.users.length; i++) {\r\n\t\t\t\t\t\tif (vm.users[i].CustomerRating) {\r\n\t\t\t\t\t\t\tvm.users[i].CustomerRating = Number(vm.users[i].CustomerRating).toFixed(1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvm.totalTalentPoolCount = resp.data.Count;\r\n\t\t\t\t\t$scope.totalUsers = resp.data.Count;\r\n\t\t\t\t\t$scope.totalTableUsers = resp.data.Count;\r\n\r\n\t\t\t\t\tif (vm.users.length < 10)\r\n\t\t\t\t\t\tvm.usersLength = $scope.totalUsers;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.usersLength = index * 10;\r\n\t\t\t\t\tif (index == 1)\r\n\t\t\t\t\t\tvm.techpageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.techpageindexCount = (((index - 1) * 10) + 1);\r\n\r\n\t\t\t\t\tif (vm.users.length > 0) {\r\n\t\t\t\t\t\tfor (var i = 0; i < vm.users.length; i++) {\r\n\t\t\t\t\t\t\tif (vm.users[i].BlockedByAccounts) {\r\n\t\t\t\t\t\t\t\tif (vm.users[i].BlockedByAccounts.length > 0) {\r\n\t\t\t\t\t\t\t\t\tfor (var j = 0; j < vm.users[i].BlockedByAccounts.length; j++) {\r\n\t\t\t\t\t\t\t\t\t\tif (vm.users[i].BlockedByAccounts[j] == AccountID) {\r\n\t\t\t\t\t\t\t\t\t\t\tvm.Bluserlist.push(vm.users[i]);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t}\r\n\r\n\t\tvm.GetReportingToMeUsers = function () {\r\n\t\t\tSlotAllocationService.GetReportingToMeUsers(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.data) {\r\n\t\t\t\t\tvm.UserByFiltersList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, function () {\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.GetReportingToMeUsers();\r\n\r\n\r\n\t\tvm.TechnicianclearFilter = function () {\r\n\t\t\tvm.UserName = \"\";\r\n\t\t\tvm.UserId = \"\";\r\n\t\t\tvm.ContactNumber = \"\";\r\n\t\t\tvm.Source = \"\";\r\n\t\t\tvm.Adharcard = \"\";\r\n\t\t\tvm.Pancard = \"\";\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.IsBankVerified = \"\";\r\n\t\t\tvm.PreferredForAccounts = \"\";\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.Criminal = \"\";\r\n\t\t\tvm.PermanentState = \"\";\r\n\t\t\tvm.PermanentCity = \"\";\r\n\t\t\tvm.Experience = \"\";\r\n\t\t\tvm.traningCertificateList = \"\";\r\n\t\t\tvm.freelancerRoleList = \"\";\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.Asset_Laptop = \"\";\r\n\t\t\tvm.Asset_Mobile = \"\";\r\n\t\t\tvm.Asset_Bike = \"\";\r\n\t\t\tvm.Asset_Tools = \"\";\r\n\t\t\tvm.Jobscount = \"\";\r\n\t\t\tvm.Ratings = \"\";\r\n\t\t\tvm.CurrentState = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.userskill = [];\r\n\t\t\tvm.userskill = \"\";\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.TwoJobDoneForSkills = false;\r\n\t\t\tvm.SearchTag = \"\";\r\n\t\t\tvm.ServiceBrand = \"\";\r\n\t\t\tvm.ReportingTo = \"\";\r\n\t\t\tvm.ServiceProduct = \"\";\r\n\t\t\tvm.ReportingTo = \"\";\r\n\t\t\tvm.TaskId = \"\";\r\n\t\t\tstartDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.getAllUsersByStage = function (stage) {\r\n\t\t\tvm.UserVerificationStatus = stage;\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.TwoJobDoneForSkills = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\r\n\t\t}\r\n\r\n\t\tvm.getAllUsersByRole = function (role) {\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tif (role == 'Active') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\t\t\t\tvm.freelancerRole = \"\";\r\n\t\t\t}\r\n\t\t\telse if (role == 'Inactive') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\t\t\t\tvm.freelancerRole = \"\";\r\n\t\t\t}\r\n\t\t\telse if (role == 'Invite') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\t\t\t\tvm.freelancerRole = \"\";\r\n\t\t\t}\r\n\t\t\telse if (role == '') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\t\t\t\tvm.freelancerRole = \"\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.freelancerRole = role;\r\n\t\t\t\tvm.UserStatus = \"Active\";\r\n\t\t\t}\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.TwoJobDoneForSkills = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.getAllOneJobDone = function () {\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.OneJobDone = true;\r\n\t\t\tvm.TwoJobDoneForSkills = false;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.getAllTwoJobDone = function () {\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.TwoJobDoneForSkills = true;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.getAllFixedTeam = function () {\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFixedTeamCount = true;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.TwoJobDoneForSkills = false;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.getAllLeadStarted = function () {\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFreelancerBidCount = true;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.TwoJobDoneForSkills = false;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.getCountByPssValue = function (pss) {\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.PssStatus = pss;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.TwoJobDoneForSkills = false;\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\t\tvm.authorizeDetail = function (role) {\r\n\t\t\tif (role == 'Active') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\r\n\t\t\t}\r\n\t\t\telse if (role == 'Inactive') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\r\n\t\t\t}\r\n\t\t\telse if (role == '') {\r\n\t\t\t\tvm.UserStatus = role;\r\n\r\n\t\t\t}\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.TwoJobDoneForSkills = false;\r\n\t\t\tvm.IsAuthorizedServiceCenter = true;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.committedDetail = function (committedvalue) {\r\n\t\t\tif (committedvalue == true) {\r\n\t\t\t\tvm.IsCommittedUser = true;\r\n\t\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\t}\r\n\t\t\telse if (committedvalue == false) {\r\n\t\t\t\tvm.IsCommittedUser = false;\r\n\t\t\t\tvm.IsCommitmentInterestedUser = true;\r\n\t\t\t}\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.TwoJobDoneForSkills = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t}\r\n\r\n\t\tvm.getAllCriminalFlag = function (criminalValue) {\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\t$scope.Prime = false;\r\n\t\t\t$scope.NonPrime = false;\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.TwoJobDoneForSkills = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.Criminal = criminalValue;\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\r\n\t\t}\r\n\t\tvm.getAllPrimeFlag = function (primeValue) {\r\n\t\t\tif (primeValue == true) {\r\n\t\t\t\t$scope.Prime = true;\r\n\t\t\t\t$scope.NonPrime = false;\r\n\t\t\t} else if (primeValue == false) {\r\n\t\t\t\t$scope.NonPrime = true;\r\n\t\t\t\t$scope.Prime = false;\r\n\t\t\t}\r\n\t\t\tvm.Criminal = false;\r\n\t\t\tvm.IsFreelancerBidCount = false;\r\n\t\t\tvm.IsFixedTeamCount = false;\r\n\t\t\tvm.UserVerificationStatus = \"\";\r\n\t\t\tvm.IsCommittedUser = false;\r\n\t\t\tvm.IsCommitmentInterestedUser = false;\r\n\t\t\tvm.freelancerRole = \"\";\r\n\t\t\tvm.UserStatus = \"\";\r\n\t\t\tvm.PssStatus = \"\";\r\n\t\t\tvm.IsAuthorizedServiceCenter = false;\r\n\t\t\tvm.OneJobDone = false;\r\n\t\t\tvm.TwoJobDoneForSkills = false;\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\r\n\t\t}\r\n\r\n\r\n\t\tvm.AllapplyTalentPoolfilter = function () {\r\n\t\t\t$scope.Ticket = 1;\r\n\t\t\t$scope.dates = { startDate: startDate, endDate: endDate };\r\n\t\t\tvm.adddaterange = true;\r\n\t\t\t$scope.UserTablepagination.current = 1;\r\n\t\t\tvar temp = [];\r\n\t\t\tvar tuPageIndex = \"\";\r\n\t\t\tvar res = vm.Experience.split(\"-\");\r\n\t\t\tvar jobscount = vm.Jobscount.split(\"-\");\r\n\t\t\tvar ratings = vm.Ratings.split(\"-\");\r\n\t\t\ttuPageIndex = 1;\r\n\t\t\tvm.traningCertificateList = \"\";\r\n\t\t\tif (vm.TraningCertificate) {\r\n\t\t\t\tvm.traningCertificateList = vm.TraningCertificate.join('|');\r\n\t\t\t}\r\n\t\t\tif (vm.PreferredForAccounts) {\r\n\t\t\t\tstartDate = \"\";\r\n\t\t\t\tendDate = \"\";\r\n\t\t\t}\r\n\t\t\tvm.userFormData = {\r\n\t\t\t\t\"PageIndex\": tuPageIndex,\r\n\t\t\t\t\"PageSize\": 10,\r\n\t\t\t\t\"ActivationStartDate\": startDate,\r\n\t\t\t\t\"ActivationEnddate\": endDate,\r\n\t\t\t\t\"State\": vm.PermanentState,\r\n\t\t\t\t\"Cities\": vm.PermanentCity,\r\n\t\t\t\t\"Pincodes\": temp,\r\n\t\t\t\t\"Skill\": vm.userskill,\r\n\t\t\t\t\"UserVerificationStatus\": vm.UserVerificationStatus,\r\n\t\t\t\t\"ExperienceStart\": res[0],\r\n\t\t\t\t\"ExperienceEnd\": res[1],\r\n\t\t\t\t\"Certificates\": vm.traningCertificateList,\r\n\t\t\t\t\"IsBikeAvailable\": vm.Asset_Bike,\r\n\t\t\t\t\"IsMobileAvailable\": vm.Asset_Mobile,\r\n\t\t\t\t\"IsLaptopAvailable\": vm.Asset_Laptop,\r\n\t\t\t\t\"Tools\": vm.Asset_Tools,\r\n\t\t\t\t\"JobCountStart\": jobscount[0],\r\n\t\t\t\t\"JobCountEnd\": jobscount[1],\r\n\t\t\t\t\"RatingStart\": Number(ratings[0]),\r\n\t\t\t\t\"RatingEnd\": Number(ratings[1]),\r\n\t\t\t\t\"PreferredTalentPool\": false,\r\n\t\t\t\t\"IsFreelancerBidCount\": vm.IsFreelancerBidCount,\r\n\t\t\t\t\"IsFixedTeamCount\": vm.IsFixedTeamCount,\r\n\t\t\t\t\"FreelancerRole\": vm.freelancerRole,\r\n\t\t\t\t\"UserStatus\": vm.UserStatus,\r\n\t\t\t\t\"ContactNumber\": vm.ContactNumber,\r\n\t\t\t\t\"UserName\": vm.UserName,\r\n\t\t\t\t\"UserId\": vm.UserId,\r\n\t\t\t\t\"IsStudent\": vm.Student,\r\n\t\t\t\t\"MMFPrimeMember\": $scope.Prime,\r\n\t\t\t\t\"MMFNonPrimeMember\": $scope.NonPrime,\r\n\t\t\t\t\"IsOpenForInternship\": vm.Intern,\r\n\t\t\t\t\"IsAdharVerified\": vm.Adharcard,\r\n\t\t\t\t\"BrandName\": vm.ServiceBrand,\r\n\t\t\t\t\"ProductServing\": vm.ServiceProduct,\r\n\t\t\t\t\"IsBankVarified\": vm.IsBankVerified,\r\n\t\t\t\t\"IsCriminalVerified\": vm.Criminal,\r\n\t\t\t\t\"Source\": vm.Source,\r\n\t\t\t\t\"OneJobDoneForSkills\": vm.OneJobDone,\r\n\t\t\t\t\"TwoJobDoneForSkills\": vm.TwoJobDoneForSkills,\r\n\t\t\t\t\"PssStatus\": vm.PssStatus,\r\n\t\t\t\t\"SearchTag\": vm.SearchTag,\r\n\t\t\t\t\"ReportingTo\": vm.ReportingTo,\r\n\t\t\t\t\"OrderBy\": vm.OrderBy,\r\n\t\t\t\t\"SortType\": vm.SortType,\r\n\t\t\t\t\"IsCommittedUser\": vm.IsCommittedUser,\r\n\t\t\t\t\"IsCommitmentInterestedUser\": vm.IsCommitmentInterestedUser,\r\n\t\t\t\t\"IsAuthorizedServiceCenterCount\": vm.IsAuthorizedServiceCenter,\r\n\t\t\t\t\"PreferredForAccount\": vm.PreferredForAccounts,\r\n\t\t\t\t\"TaskId\": vm.TaskId\r\n\t\t\t}\r\n\t\t\tAllUsersListService.Filter(loggedinUser, token, vm.userFormData).then(function (resp) {\r\n\t\t\t\tif (resp.data) {\r\n\t\t\t\t\tvm.pfuserlist = [];\r\n\t\t\t\t\tvm.users = [];\r\n\t\t\t\t\tvm.usersCounts = resp.data;\r\n\t\t\t\t\tvm.users = resp.data.Users;\r\n\t\t\t\t\tif (vm.users.length == 0) {\r\n\t\t\t\t\t\tvm.showFailure('Failed', 'No User Found');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (var i = 0; i < vm.users.length; i++) {\r\n\t\t\t\t\t\tif (vm.users[i].CustomerRating) {\r\n\t\t\t\t\t\t\tvm.users[i].CustomerRating = Number(vm.users[i].CustomerRating).toFixed(1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvm.totalTalentPoolCount = resp.data.Count;\r\n\t\t\t\t\t$scope.totalTalentUsers = resp.data.Count;\r\n\t\t\t\t\t$scope.totalTableUsers = resp.data.Count;\r\n\t\t\t\t\tif (vm.users.length < 10)\r\n\t\t\t\t\t\tvm.usersLength = $scope.totalTalentUsers;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.usersLength = tuPageIndex * 10;\r\n\t\t\t\t\tif (tuPageIndex == 1)\r\n\t\t\t\t\t\tvm.techpageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.techpageindexCount = (((tuPageIndex - 1) * 10) + 1);\r\n\t\t\t\t\tif (vm.users.length < 10)\r\n\t\t\t\t\t\tvm.usersLength = $scope.totalTalentUsers;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.usersLength = tuPageIndex * 10;\r\n\t\t\t\t\tif (tuPageIndex == 1)\r\n\t\t\t\t\t\tvm.techpageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.techpageindexCount = (((tuPageIndex - 1) * 10) + 1);\r\n\t\t\t\t\tif (vm.users.length > 0) {\r\n\t\t\t\t\t\tfor (var i = 0; i < vm.users.length; i++) {\r\n\t\t\t\t\t\t\tif (vm.users[i].FavoriteForAccounts) {\r\n\t\t\t\t\t\t\t\tif (vm.users[i].FavoriteForAccounts.length > 0) {\r\n\t\t\t\t\t\t\t\t\tfor (var j = 0; j < vm.users[i].FavoriteForAccounts.length; j++) {\r\n\t\t\t\t\t\t\t\t\t\tif (vm.users[i].FavoriteForAccounts[j] == AccountID) {\r\n\t\t\t\t\t\t\t\t\t\t\tvm.pfuserlist.push(vm.users[i]);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t$scope.class1 = false;\r\n\t\t\t\t\t}, 250);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tvm.UserCountbyFilter();\r\n\t\t}\r\n\r\n\t\tvm.UserCountbyFilter = function () {\r\n\t\t\tAllUsersListService.UserCountbyFilter(loggedinUser, token, vm.userFormData).then(function (resp) {\r\n\t\t\t\tif (resp.data) {\r\n\t\t\t\t\tvm.TotalUsersCount = resp.data.Count;\r\n\t\t\t\t\tvm.BasicInformation = resp.data.BasicInformation;\r\n\t\t\t\t\tvm.TotalInvitedUserCount = resp.data.TotalInvitedUserCount;\r\n\t\t\t\t\tvm.LocationAndSkill = resp.data.LocationAndSkill;\r\n\t\t\t\t\tvm.Backgroundverified = resp.data.Backgroundverified;\r\n\t\t\t\t\tvm.Paymentverified = resp.data.Paymentverified;\r\n\t\t\t\t\tvm.PoliceVerified = resp.data.PoliceVerified;\r\n\t\t\t\t\tvm.CriminalVerified = resp.data.CriminalVerified;\r\n\t\t\t\t\tvm.TotalActiveFrUsersCount = resp.data.TotalActiveFrUsersCount;\r\n\t\t\t\t\tvm.TotalActiveFVUsersCount = resp.data.TotalActiveFVUsersCount;\r\n\t\t\t\t\tvm.TotalActiveFVTUsersCount = resp.data.TotalActiveFVTUsersCount;\r\n\t\t\t\t\tvm.FixedTeamCount = resp.data.FixedTeamCount;\r\n\t\t\t\t\tvm.PrimeMember = resp.data.PrimeMember;\r\n\t\t\t\t\tvm.NonPrimeMember = resp.data.NonPrimeMember;\r\n\t\t\t\t\tvm.TotalActiveUsersCount = resp.data.TotalActiveUsersCount;\r\n\t\t\t\t\tvm.Count = resp.data.Count;\r\n\t\t\t\t\tvm.TotalRegisterUser = resp.data.TotalRegisterUser;\r\n\t\t\t\t\tvm.TotalFreelancerBidCount = resp.data.TotalFreelancerBidCount;\r\n\t\t\t\t\tvm.OneJobDoneCount = resp.data.OneJobDoneCount;\r\n\t\t\t\t\tvm.TwoJobDoneCount = resp.data.TwoJobDoneCount;\r\n\t\t\t\t\tvm.NonPrimeMoreThanTenCount = resp.data.NonPrimeMoreThanTenCount;\r\n\t\t\t\t\tvm.LeadReceivedUserCount = resp.data.LeadReceivedUserCount;\r\n\t\t\t\t\tvm.LeadNotReceivedUserCount = resp.data.LeadNotReceivedUserCount;\r\n\t\t\t\t\tvm.LeadAcceptedUserCount = resp.data.LeadAcceptedUserCount;\r\n\t\t\t\t\tvm.LeadNotAcceptedUserCount = resp.data.LeadNotAcceptedUserCount;\r\n\t\t\t\t\tvm.JobRejectionBreachedCount = resp.data.JobRejectionBreachedCount;\r\n\t\t\t\t\tvm.JobRejectionMetCount = resp.data.JobRejectionMetCount;\r\n\t\t\t\t\tvm.SOPAdherenceBreachedCount = resp.data.SOPAdherenceBreachedCount;\r\n\t\t\t\t\tvm.SOPAdherenceMetCount = resp.data.SOPAdherenceMetCount;\r\n\t\t\t\t\tvm.AuthorizedServiceParnterDetailCount = resp.data.AuthorizedServiceParnterDetailCount;\r\n\t\t\t\t\tvm.AuthorizedServiceParnterDetailCountActive = resp.data.AuthorizedServiceParnterDetailCountActive;\r\n\t\t\t\t\tvm.AuthorizedServiceParnterDetailCountInActive = resp.data.AuthorizedServiceParnterDetailCountInActive;\r\n\t\t\t\t\tvm.CommitmentInterestedUserCount = resp.data.CommitmentInterestedUserCount;\r\n\t\t\t\t\tvm.CommittedUserCount = resp.data.CommittedUserCount\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tvm.AllapplyTalentPoolfilter();\r\n\r\n\t\t$scope.isOpen = false;\r\n\t\t$scope.isOpen1 = false;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsed0 = true;\r\n\t\t$scope.isCollapsed1 = true;\r\n\t\t$scope.isCollapsed2 = true;\r\n\t\t$scope.isCollapsed3 = true;\r\n\t\t$scope.isCollapsed4 = true;\r\n\t\t$scope.isCollapsed19 = true;\r\n\t\t$scope.isCollapsed21 = true;\r\n\t\t$scope.isCollapsed23 = true;\r\n\t\t$scope.isCollapsed24 = true;\r\n\t\t$scope.isCollapsed26 = true;\r\n\t\t$scope.isCollapsed35 = true;\r\n\t\t$scope.isCollapsed36 = true;\r\n\t\t$scope.isCollapsed40 = true;\r\n\t\t$scope.isCollapsed41 = true;\r\n\t\t$scope.isCollapsed42 = true;\r\n\t\t$scope.isCollapsed43 = true;\r\n\t\t$scope.isCollapsed49 = true;\r\n\r\n\t\t$scope.activatedButton = function () {\r\n\t\t\t$scope.isactivated = !$scope.isactivated;\r\n\t\t}\r\n\t\t$scope.activatedButton1 = function () {\r\n\t\t\t$scope.isactivated1 = !$scope.isactivated1;\r\n\t\t}\r\n\t\t$scope.activatedButton2 = function () {\r\n\t\t\t$scope.isactivated2 = !$scope.isactivated2;\r\n\t\t}\r\n\t\t$scope.activatedButton3 = function () {\r\n\t\t\t$scope.isactivated3 = !$scope.isactivated3;\r\n\t\t}\r\n\t\t$scope.activatedButton4 = function () {\r\n\t\t\t$scope.isactivated4 = !$scope.isactivated4;\r\n\t\t}\r\n\t\t$scope.activatedButton5 = function () {\r\n\t\t\t$scope.isactivated5 = !$scope.isactivated5;\r\n\t\t}\r\n\t\t$scope.activatedButton6 = function () {\r\n\t\t\t$scope.isactivated6 = !$scope.isactivated6;\r\n\t\t}\r\n\t\t$scope.activatedButton7 = function () {\r\n\t\t\t$scope.isactivated7 = !$scope.isactivated7;\r\n\t\t}\r\n\t\t$scope.activatedButton8 = function () {\r\n\t\t\t$scope.isactivated8 = !$scope.isactivated8;\r\n\t\t}\r\n\t\t$scope.activatedButton9 = function () {\r\n\t\t\t$scope.isactivated9 = !$scope.isactivated9;\r\n\t\t}\r\n\t\t$scope.activatedButton10 = function () {\r\n\t\t\t$scope.isactivated10 = !$scope.isactivated10;\r\n\t\t}\r\n\t\t$scope.activatedButton11 = function () {\r\n\t\t\t$scope.isactivated11 = !$scope.isactivated11;\r\n\t\t}\r\n\t\t$scope.activatedButton12 = function () {\r\n\t\t\t$scope.isactivated12 = !$scope.isactivated12;\r\n\t\t}\r\n\t\t$scope.activatedButton13 = function () {\r\n\t\t\t$scope.isactivated13 = !$scope.isactivated13;\r\n\t\t}\r\n\t\t$scope.activatedButton14 = function () {\r\n\t\t\t$scope.isactivated14 = !$scope.isactivated14;\r\n\t\t}\r\n\t\t$scope.activatedButton15 = function () {\r\n\t\t\t$scope.isactivated15 = !$scope.isactivated15;\r\n\t\t}\r\n\t\t$scope.activatedButton16 = function () {\r\n\t\t\t$scope.isactivated16 = !$scope.isactivated16;\r\n\t\t}\r\n\t\t$scope.activatedButton17 = function () {\r\n\t\t\t$scope.isactivated17 = !$scope.isactivated17;\r\n\t\t}\r\n\t\t$scope.activatedButton18 = function () {\r\n\t\t\t$scope.isactivated18 = !$scope.isactivated18;\r\n\t\t}\r\n\t\t$scope.activatedButton19 = function () {\r\n\t\t\t$scope.isactivated19 = !$scope.isactivated19;\r\n\t\t}\r\n\r\n\t\t$scope.activatedButton20 = function () {\r\n\t\t\t$scope.isactivated20 = !$scope.isactivated20;\r\n\t\t}\r\n\t\t$scope.activatedButton21 = function () {\r\n\t\t\t$scope.isactivated21 = !$scope.isactivated21;\r\n\t\t}\r\n\t\t$scope.activatedButton22 = function () {\r\n\t\t\t$scope.isactivated22 = !$scope.isactivated22;\r\n\t\t}\r\n\t\t$scope.activatedButton23 = function () {\r\n\t\t\t$scope.isactivated23 = !$scope.isactivated23;\r\n\t\t}\r\n\t\t$scope.activatedButton24 = function () {\r\n\t\t\t$scope.isactivated24 = !$scope.isactivated24;\r\n\t\t}\r\n\t\t$scope.activatedButton25 = function () {\r\n\t\t\t$scope.isactivated25 = !$scope.isactivated25;\r\n\t\t}\r\n\t\t$scope.activatedButton26 = function () {\r\n\t\t\t$scope.isactivated26 = !$scope.isactivated26;\r\n\t\t}\r\n\t\t$scope.activatedButton27 = function () {\r\n\t\t\t$scope.isactivated27 = !$scope.isactivated27;\r\n\t\t}\r\n\t\t$scope.activatedButton28 = function () {\r\n\t\t\t$scope.isactivated28 = !$scope.isactivated28;\r\n\t\t}\r\n\t\t$scope.activatedButton29 = function () {\r\n\t\t\t$scope.isactivated29 = !$scope.isactivated29;\r\n\t\t}\r\n\t\t$scope.activatedButton30 = function () {\r\n\t\t\t$scope.isactivated30 = !$scope.isactivated30;\r\n\t\t}\r\n\t\t$scope.activatedButton31 = function () {\r\n\t\t\t$scope.isactivated31 = !$scope.isactivated31;\r\n\t\t}\r\n\t\t$scope.activatedButton32 = function () {\r\n\t\t\t$scope.isactivated32 = !$scope.isactivated32;\r\n\t\t}\r\n\t\t$scope.activatedButton33 = function () {\r\n\t\t\t$scope.isactivated33 = !$scope.isactivated33;\r\n\t\t}\r\n\t\t$scope.activatedButton34 = function () {\r\n\t\t\t$scope.isactivated34 = !$scope.isactivated34;\r\n\t\t}\r\n\t\t$scope.activatedButton35 = function () {\r\n\t\t\t$scope.isactivated35 = !$scope.isactivated35;\r\n\t\t}\r\n\t\t$scope.activatedButton36 = function () {\r\n\t\t\t$scope.isactivated36 = !$scope.isactivated36;\r\n\t\t}\r\n\t\t$scope.activatedButton37 = function () {\r\n\t\t\t$scope.isactivated37 = !$scope.isactivated37;\r\n\t\t}\r\n\t\t$scope.activatedButton38 = function () {\r\n\t\t\t$scope.isactivated38 = !$scope.isactivated38;\r\n\t\t}\r\n\t\t$scope.activatedButton39 = function () {\r\n\t\t\t$scope.isactivated39 = !$scope.isactivated39;\r\n\t\t}\r\n\t\t$scope.activatedButton40 = function () {\r\n\t\t\t$scope.isactivated40 = !$scope.isactivated40;\r\n\t\t}\r\n\r\n\t\t\r\n\t\tvm.sortColumn = function (col) {\r\n\t\t\tvm.OrderBy = col;\r\n\t\t\tif (vm.SortType == 'desc') {\r\n\t\t\t vm.SortType = 'asc';\r\n\t\t\t vm.reverseclass = 'fa fa-arrow-up';\r\n\t\t\t} else {\r\n\t\t\t vm.SortType = 'desc';\r\n\t\t\t vm.reverseclass = 'fa fa-arrow-down';\r\n\t\t\t}\r\n\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t };\r\n\t \r\n\t\t vm.sortClass = function (col) {\r\n\t\t\tif (vm.OrderBy == col) {\r\n\t\t\t if (vm.SortType == 'desc') {\r\n\t\t\t\treturn 'fa fa-arrow-down';\r\n\t\t\t } else {\r\n\t\t\t\treturn 'fa fa-arrow-up';\r\n\t\t\t }\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t return \"\";\r\n\t\t\t}\r\n\t\t }\r\n\r\n\t\t $scope.isPlaying = false;\r\n\r\n\t\t $scope.togglePlayPause = function() {\r\n\t\t\t $scope.isPlaying = !$scope.isPlaying;\r\n\t\t };\r\n\t\tvm.GetAllActivitiesForUser = function (userId) {\r\n\t\t\tvm.CallingUser = userId;\r\n\t\t\tAllTasksOpsService.GetAllActivitiesForUser(userId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.UserActivityInfo = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.GetDetailByUserId = function (userId) {\r\n\t\t\tvm.Userdetails = userId;\r\n\t\t\tAllTasksOpsService.GetDetailByUserId(userId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tvm.UserDetailsInfo = resp.data;\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.CommittmentModelOpen = function (userid) {\r\n\t\t\tvm.userCommittmentId = userid;\r\n\t\t\tvm.CommittmentModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'committmentmodel.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.CloseCommittmentModel = function () {\r\n\t\t\tvm.CommittmentModel.close();\r\n\t\t\tvm.userCommittmentDate = new Date();\r\n\t\t\tvm.userCommittmentStatus = \"Interested\";\r\n\t\t\tvm.userCommittmentId = \"\";\r\n\t\t\tvm.userComments = \"\";\r\n\t\t\tvm.userCommittmentReason = \"\";\r\n\t\t}\r\n\r\n\t\tvm.CommittmentFollowUp = function () {\r\n\t\t\tvm.committment_form.submitted = true;\r\n\t\t\t// if (vm.userCommittmentStatus) {\r\n\t\t\t\tif(vm.committment_form.$valid){\r\n\t\t\t\tif (vm.userCommittmentStatus == 'NotInterested') {\r\n\t\t\t\t\tvm.userCommittmentDate = \"\";\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.userCommittmentDate = moment(vm.userCommittmentDate).format(\"YYYY-MM-DD\");\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"CommittmentStatus\": vm.userCommittmentStatus,\r\n\t\t\t\t\t\"CommittmentReason\": vm.userCommittmentReason,\r\n\t\t\t\t\t\"UserComment\": vm.userComments,\r\n\t\t\t\t\t\"Date\": vm.userCommittmentDate,\r\n\t\t\t\t\t\"UserId\": vm.userCommittmentId,\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\r\n\r\n\t\t\t\tAllTasksOpsService.CommittmentFollowUp(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t\t\t\t\tvm.CloseCommittmentModel();\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\tvm.AllapplyTalentPoolfilter();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\r\n\t\t// }\r\n\t\t\t// else {\r\n\t\t\t// \tvm.showFailure(\"Failed\", \"Please select committment status.\");\r\n\t\t\t// }\r\n}\r\n\t\t}\r\n\r\n\t\t$scope.userClass_status = true;\r\n\t\t$scope.toggleBottom = false;\r\n\t\t$scope.open360View = function (userID) {\r\n\t\t $scope.userClass_status = false;\r\n\t\t $scope.myvalue = true;\r\n\t\t vm.Get360TeamProfileData(userID);\r\n\t\t}\r\n\t\t$scope.close360View = function () {\r\n\t\t $scope.userClass_status = true;\r\n\t\t $scope.myvalue = false;\r\n\t\t}\r\n\t\tvm.Get360TeamProfileData = function (teamid) {\r\n\t\t\tvm.UserId = teamid;\r\n\t\t\tDashboardService.Get360ProfileData(loggedinUser, teamid, token).then(function (resp) {\r\n\t\t\t if (resp.data) {\r\n\t\t\t\t$scope.userClass_status = false;\r\n\t\t\t\t$scope.myvalue = true;\r\n\t\t\t }\r\n\t\t\t vm.teamdata = resp.data;\r\n\t\t\t vm.AvgRating = vm.teamdata.userProfile.AverageRating;\r\n\t\t\t vm.ReviewsList = vm.teamdata.userProfile.Reviews\r\n\t\t\t vm.teamdata.ratingStars = vm.getRatingStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n\t\t\t vm.teamdata.blankStars = vm.getBlankStars(Math.round(vm.teamdata.userProfile.Ratings.TechnicianRating));\r\n\t\t\t vm.teamdata.avgratingStars = vm.getAvgRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n\t\t\t vm.teamdata.avgblankStars = vm.getAvgBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n\t\t\t if (vm.teamdata.userProfile.ContactNumber) {\r\n\t\t\t\tvm.teamdata.userProfile.ContactNumber = vm.teamdata.userProfile.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n\t\t\t }\r\n\t \r\n\t\t\t if (vm.teamdata.userProfile.Reviews) {\r\n\t\t\t\tvm.teamdata.userProfile.Reviews.forEach(function (element, i) {\r\n\t\t\t\t vm.teamdata.userratingStars = vm.getUserRatingStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n\t\t\t\t vm.teamdata.userblankStars = vm.getUserBlankStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n\t\t\t\t element.arrayRating = vm.teamdata.userratingStars;\r\n\t\t\t\t element.blankRating = vm.teamdata.userblankStars;\r\n\t\t\t\t});\r\n\t\t\t }\r\n\t \r\n\t\t\t vm.TechnicianRating = Number(vm.teamdata.userProfile.Ratings.TechnicianRating).toFixed(1);\r\n\t\t\t $timeout(function () {\r\n\t\t\t\tdisplayTotals();\r\n\t\t\t }, 300);\r\n\t\t\t}, function () {\r\n\t\t\t})\r\n\t\t }\r\n\r\n\r\n\t\tvm.OpenTracking = function (user) {\r\n\t\t\t$state.go('index.PincodeFinder', {\r\n\t\t\t\tuserId: user.UserId,\r\n\t\t\t}, {\r\n\t\t\t\treload: true\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t$scope.followupmodal = true;\r\n\t\t$scope.toggleForBroadcastnew = function () {\r\n\t\t\t$scope.followupmodal = !$scope.followupmodal;\r\n\t\t\t$scope.myvalue = true;\r\n\r\n\t\t};\r\n\r\n\t\tvm.CloseingRemark = \"\";\r\n\t\tvm.OnBoardingTaskModelOpen = function (taskid) {\r\n\t\t\tvm.CommitmentTaskId = taskid;\r\n\t\t\tvm.OnBoardingTaskmodel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'OnBoardingTaskmodel.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseOnBoardingTaskModel = function () {\r\n\t\t\tvm.OnBoardingTaskmodel.close();\r\n\t\t\tvm.CommitmentTaskId = \"\";\r\n\t\t\tvm.CloseingRemark = \"\";\r\n\t\t\tvm.closeuserCommittmentStatus = \"Interested\";\r\n\t\t}\r\n\r\n\r\n\t\tvm.CloseOnBoardingTask = function () {\r\n\t\t\tif (vm.closeuserCommittmentStatus == 'NotInterested') {\r\n\t\t\t\tvm.userCommittmentDate = \"\";\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.userCommittmentDate = moment(vm.userCommittmentDate).format(\"YYYY-MM-DD\");\r\n\t\t\t}\r\n\t\t\tvar data = {\r\n\t\t\t\t\"TaskId\": vm.CommitmentTaskId,\r\n\t\t\t\t\"CloseingRemark\": vm.CloseingRemark,\r\n\t\t\t\t\"CommittmentStatus\": vm.closeuserCommittmentStatus,\r\n\t\t\t\t\"Date\": vm.userCommittmentDate,\r\n\t\t\t}\r\n\t\t\tAllTasksOpsService.CloseOnBoardingTask(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t\t\t\tvm.CloseOnBoardingTaskModel();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.NegativeWalletModalOpen = function (taskid) {\r\n\t\t\tvm.TaskId = taskid;\r\n\t\t\tvm.negativemodal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'NegativewalletRemark.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.CloseNegativeWalletModal = function () {\r\n\t\t\tvm.negativemodal.close();\r\n\t\t\tvm.TaskId = \"\";\r\n\t\t\tvm.CloseingNegativeRemark = \"\";\r\n\t\t\tvm.updatenegativemessage = \"\";\r\n\t\t\tvm.GetAllNegativeWalletsWithPaging();\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\tvm.UpdateTask = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"TaskId\": vm.TaskId,\r\n\t\t\t\t\"UpdatedReason\": vm.updatenegativemessage,\r\n\t\t\t\t\"UpdatedRemark\" : vm.CloseingNegativeRemark\r\n\t\t\t}\r\n\t\t\tAllTasksOpsService.UpdateTask(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", resp.data.Message);\r\n\t\t\t\t\tvm.CloseNegativeWalletModal();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('AllUserNewService',function(ApiURL,FreelancerURL, PublicApiURL,ActivityURL,LocationURL,$http, FreelancerURL, SchedulingAPI){\r\n\r\n this.GetAllSkills = function (loggedinUser, token) { \r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url,{\r\n headers:{'Content-Type' : 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n\r\n this.getAllState = function (loggedinUser,token) { \r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url,{\r\n headers:{\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n this.GetAllRegisteredUser = function (loggedinUser,token,itemNames,itemValues,userType,userAvailableStatus,DateField,PageIndex,PageSize, startDate, endDate,OrderBy,SortType) {\r\n var url = '';\r\n url = FreelancerURL + '/api/FreeLancerRegistration/GetRegisteredUsersByFiltersWithDynaPage?itemNames=' + itemNames + '&itemValues=' + itemValues + '&userType=' + userType+ '&userAvailableStatus=' + userAvailableStatus + '&DateField=' + DateField + '&PageIndex=' + PageIndex + '&PageSize=' + PageSize + '&FromDate=' + startDate + '&ToDate=' + endDate+ '&OrderBy=' + OrderBy + '&SortType=' + SortType;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getAllState = function (loggedinUser) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllStates';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n //http://192.168.0.80:92/LocationAPI/api/Location/saurabhgupta3371%40gmail.com/UTTAR%20PRADESH/GetCitiesByState\r\n \r\n this.getCityByState = function (loggedinUser, state) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/' + state + '/GetCitiesByState';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n});\nangular.module('inspinia').controller('AllUserNewController', function (AllUserNewService,DashboardService,MainService,ReferService,$q,CentralHelpdeskConfigService, ScheduleAssignService, $log, $state, $localStorage, $stateParams, $uibModal, $scope, DTOptionsBuilder, DTColumnDefBuilder, toaster, $timeout, $compile, uiCalendarConfig, ImageUrl,ApiURL, PublicApiURL,$window) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserSkill = $localStorage.loggedInUser_SkillSet;\r\n var loggedinUserRegion = $localStorage.loggedInUser_Region;\r\n var accountid= $localStorage.accountConfig.AccountId;\r\n \r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n var token = $localStorage.token;\r\n \r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.IsMaterialDelivered = $localStorage.accountConfig.IsMaterialDelivered;\r\n vm.MobiforceCommission = vm.getAccountConfigSetting('MobiforceCommissionPercentage');\r\n vm.VendorAssignation = vm.getAccountConfigSetting('VendorAssignation');\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n vm.FreelancerAccess = vm.getAccountConfigSetting('FreelancerAccess');\r\n //Global Variable Declaration\r\n vm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n vm.loggedInUserVendorId = $localStorage.loggedInUser_VendorId;\r\n vm.loggedInUserReportingTo = $localStorage.loggedInUser_ReportingTo;\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n vm.loggedinAs = $localStorage.loggedinAs;\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.userskill = '';\r\n vm.pincode = '';\r\n vm.userNameSearch = '';\r\n vm.contactNumberSearch = '';\r\n vm.userSource = '';\r\n vm.CriminalVerified='';\r\n vm.IdVerified='';\r\n vm.PANVerified='';\r\n vm.UserAvailable=''\r\n vm.skillData = '';\r\n vm.circleData = '';\r\n vm.isChecked = \"fixed\";\r\n vm.searchText = \"\";\r\n vm.Technicianstartingdate = '2017-01-01';\r\n vm.tab = '';\r\n vm.pageindexCount=0;\r\n vm.DateField=\"StatusChangedOn\";\r\n vm.searchStatusText=\"All\"; \r\n var uPageIndex = 1;\r\n var uPageSize = 10; \r\n vm.UsersType=\"\";\r\n vm.uType=\"\";\r\n var uitemNames=\"\";\r\n var uitemValues=\"\";\r\n vm.searchUsersText=\"\";\r\n vm.jobsCount='';\r\n vm.SortType = 'desc';\r\n vm.SortField = 'CreatedOn';\r\n vm.userPageListCount= 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n var witemNames=\"\";\r\n var witemValues=\"\";\r\n var wsSDate = ''; \r\n var wsEDate = '';\r\n vm.OrderBy = \"CreatedOn\";\r\n vm.sorttype = \"desc\";\r\n var fnitemNames = '';\r\n var fnitemValues = '';\r\n var fPageIndex = 1;\r\n var fPageSize = 10;\r\n vm.CertificateImg=[];\r\n vm.kycVideo='';\r\n // var startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n // var endDate = moment().format(\"YYYY-MM-DD\");\r\n var startDate = moment(vm.Technicianstartingdate).format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: startDate, endDate:endDate};\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment(vm.Technicianstartingdate), moment(endDate)],\r\n };\r\n \r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n };\r\n vm.searchText = '';\r\n vm.RegistrationNo = '';\r\n\r\n vm.preProcessData = function (vendor) {\r\n var locations = \"\";\r\n angular.forEach(vendor.WorkLocationList, function (l) {\r\n locations += l + \",\";\r\n });\r\n vendor.allLocations = locations.length > 0 ? locations.substring(0, locations.length - 1) : \"\";\r\n\r\n var skills = \"\";\r\n angular.forEach(vendor.SkillData, function (s) {\r\n skills += s.Skill + \",\";\r\n });\r\n vendor.allSkills = skills.length > 0 ? skills.substring(0, skills.length - 1) : \"\";\r\n }\r\n\r\n vm.creationForm = function (RegistrationNo) {\r\n $localStorage.From = '';\r\n $state.go('index.OnBoardingForm', {\r\n RegistrationNo: RegistrationNo\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.loadAllSkills = function(){ \r\n AllUserNewService.GetAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skillsWithPipe = '';\r\n if (resp && resp.data) {\r\n vm.skillData = resp.data;\r\n if(vm.skillData && vm.skillData.length>0){\r\n angular.forEach(vm.skillData, function(s){\r\n vm.skillsWithPipe += s.SkillName+\"|\";\r\n });\r\n vm.skillsWithPipe = vm.skillsWithPipe.length>0\r\n ? vm.skillsWithPipe.substring(0,vm.skillsWithPipe.length-1) : \"\";\r\n }\r\n }\r\n });\r\n }\r\n vm.loadAllSkills();\r\n \r\n vm.getProfilePic = function (profilePicName) {\r\n return profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n \r\n vm.ResetUserSelection = function (scope){\r\n scope.selectAllFL = false;\r\n scope.showMinusFL = false;\r\n scope.selectCountFL = 0;\r\n }\r\n\r\n if(vm.loggedInUserRole == \"SuperAdministrator\")\r\n {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Freelancer Team\"];\r\n }\r\n else\r\n {\r\n vm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Freelancer Team\"];\r\n }\r\n \r\n vm.ResetUserFilter = function () { \r\n vm.UsersType = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.userskill = ''; \r\n vm.uType= ''; \r\n vm.CriminalVerified='';\r\n vm.IdVerified='';\r\n vm.PANVerified=''; \r\n vm.userSource = ''; \r\n vm.pincode ='';\r\n vm.userNameSearch ='';\r\n vm.contactNumberSearch = '';\r\n startDate = '';\r\n endDate = '';\r\n vm.applyUserFilter();\r\n // vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n }\r\n\r\n vm.UsersFilterArray = function()\r\n {\r\n vm.ResetUserSelection(this);\r\n uitemNames=\"\";\r\n uitemValues=\"\";\r\n\r\n if (vm.userskill) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',SkillSet';\r\n uitemValues = uitemValues + \",\" + vm.userskill;\r\n }\r\n else\r\n {\r\n uitemNames = 'SkillSet';\r\n uitemValues = vm.userskill;\r\n } \r\n }\r\n if (vm.userSource) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Source';\r\n uitemValues = uitemValues + \",\" + vm.userSource;\r\n }\r\n else\r\n {\r\n uitemNames = 'Source';\r\n uitemValues = vm.userSource;\r\n } \r\n }\r\n if (vm.pincode) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.pincode;\r\n }\r\n else\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.pincode;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Search';\r\n uitemValues = uitemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.userNameSearch;\r\n } \r\n }\r\n if (vm.contactNumberSearch) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',ContactNumber';\r\n uitemValues = uitemValues + \",\" + vm.contactNumberSearch;\r\n }\r\n else\r\n {\r\n uitemNames = 'ContactNumber';\r\n uitemValues = vm.contactNumberSearch;\r\n } \r\n }\r\n \r\n if (vm.CriminalVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsCriminalVerified';\r\n uitemValues = uitemValues + \",\" + true;\r\n }\r\n else\r\n {\r\n uitemNames = 'IsCriminalVerified';\r\n uitemValues = true;\r\n } \r\n }\r\n if (vm.IdVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsAdharVerified';\r\n uitemValues = uitemValues + \",\" + true;\r\n }\r\n else\r\n {\r\n uitemNames = 'IsAdharVerified';\r\n uitemValues = true;\r\n } \r\n }\r\n if (vm.PANVerified == true) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',IsPanVerified';\r\n uitemValues = uitemValues + \",\" + true;\r\n }\r\n else\r\n {\r\n uitemNames = 'IsPanVerified';\r\n uitemValues = true;\r\n } \r\n }\r\n if (vm.PermanentState) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Locations';\r\n uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n }\r\n else\r\n {\r\n uitemNames = 'Locations';\r\n uitemValues = vm.PermanentState;\r\n } \r\n }\r\n if (vm.PermanentState && vm.PermanentCity) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',CurrentCity';\r\n uitemValues = uitemValues + \",\" + vm.PermanentCity;\r\n }\r\n else\r\n {\r\n uitemNames = 'CurrentCity';\r\n uitemValues = vm.UsersType;\r\n } \r\n }\r\n if (vm.UsersType) { \r\n if(uitemNames) \r\n {\r\n uitemNames = uitemNames + ',Role';\r\n uitemValues = uitemValues + \",\" + vm.UsersType;\r\n }\r\n else\r\n {\r\n uitemNames = 'Role';\r\n uitemValues = vm.UsersType;\r\n } \r\n } \r\n\r\n if(vm.UsersType==\"Freelancer\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n }\r\n else if(vm.UsersType==\"Freelancer Vendor\")\r\n {\r\n vm.uType=\"Freelancer\";\r\n } \r\n else if(vm.UsersType==\"Freelancer Team\")\r\n {\r\n vm.uType=\"Fixed\";\r\n }\r\n else \r\n {\r\n vm.uType=\"\";\r\n vm.UsersType = '';\r\n } \r\n\r\n }\r\n\r\n function getAllStates(loggedinUser) {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser,token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n \r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n \r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = vm.userPageListCount;\r\n $scope.Userpagination = {\r\n current: 1\r\n };\r\n\r\n //left show page 10 20 30\r\n vm.changeUserPageListCount = function() { \r\n $scope.usersPerPage = vm.userPageListCount;\r\n uPageSize = $scope.usersPerPage;\r\n $scope.UserTablePageChanged($scope.Userpagination.current);\r\n vm.selectAll = false;\r\n \r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n vm.UsersFilterArray(); \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n };\r\n }\r\n \r\n uPageIndex=$scope.Userpagination.current;\r\n $scope.UserTablePageChanged = function(newPage) { \r\n uPageIndex = newPage;\r\n if(uitemNames != 'Search')\r\n {\r\n vm.UsersFilterArray();\r\n }\r\n \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n };\r\n\r\n vm.ticketList=[];\r\n\r\n vm.UserByFiltersList=[];\r\n vm.GetAllRegisteredUser = function (loggedinUser, token, uitemNames, uitemValues, userType, UserAvailable, uPageIndex, uPageSize) {\r\n AllUserNewService.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, userType, vm.UserAvailable, vm.DateField, uPageIndex, uPageSize, startDate, endDate,vm.SortField,vm.SortType).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.UserByFiltersList = resp.data.ListUserResponseModel;\r\n $scope.totalUsers = resp.data.Count;\r\n // preprocessData(vm.UserByFiltersList);\r\n angular.forEach(vm.UserByFiltersList, function (t) {\r\n t.totalJobs = Math.floor(Math.random() * 10);\r\n t.assignedJobs = Math.floor(Math.random() * 10);\r\n t.completed = Math.floor(Math.random() * 10);\r\n t.rejected = Math.floor(Math.random() * 10);\r\n t.leadAcceptance = Math.floor(Math.random() * 10);\r\n t.averageCompletionSpeed = Math.floor(Math.random() * 10);\r\n t.jobCompletionRate = Math.floor(Math.random() * 10);\r\n t.jobRejectionRate = Math.floor(Math.random() * 10);\r\n })\r\n if(vm.UserByFiltersList.length < vm.userPageListCount)\r\n vm.userListLength = $scope.totalUsers;\r\n else\r\n vm.userListLength = uPageIndex * vm.userPageListCount;\r\n if(uPageIndex==1)\r\n vm.upageindexCount = 1;\r\n else\r\n vm.upageindexCount = (((uPageIndex-1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n }\r\n vm.UsersFilterArray(); \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n }\r\n vm.searchTicket = function () { \r\n vm.ResetTicketFilter(); \r\n };\r\n vm.searchUser = function () { \r\n vm.ResetUserSelection(this);\r\n vm.ResetUserFilter(); \r\n if(vm.searchUsersText)\r\n {\r\n uitemNames = 'Search';\r\n uitemValues = vm.searchUsersText;\r\n } \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n };\r\n \r\n\r\n vm.closeUserSearchText = function()\r\n { \r\n vm.ResetUserSelection(this);\r\n vm.ResetUserFilter(); \r\n vm.searchUsersText=\"\";\r\n uitemNames = '';\r\n uitemValues = ''; \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n\r\n }\r\n vm.applyUserFilter=function()\r\n { \r\n vm.UsersFilterArray(); \r\n \r\n uPageIndex=1;\r\n $scope.Userpagination = {\r\n current: 1\r\n }; \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n\r\n }\r\n vm.SubmitFilter = function () { \r\n\r\n $scope.Userpagination = {};\r\n vm.UsersFilterArray();\r\n uPageIndex=1;\r\n $scope.Userpagination = {\r\n current: 1\r\n }; \r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n\r\n\r\n }\r\n\r\n\r\n $scope.userClassNew_status = true;\r\n $scope.hideoverlay = function(){\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.userClassNew_status = true;\r\n $scope.broadcastSentUser = true;\r\n $scope.timeLineDetail = true;\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n vm.closeFeedbackoption();\r\n }\r\n $scope.close360ViewBroadcaste = function(){\r\n $scope.myvalue = false;\r\n angular.element('#div1').removeClass(\"alpha\");\r\n $scope.userClassNew_status = true;\r\n }\r\n $scope.userSingle = function() {\r\n $scope.userClassNew_status = !$scope.userClassNew_status;\r\n $scope.myvalue = true;\r\n};\r\n vm.Get360TeamProfileData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360ProfileData(loggedinUser, teamid, token).then(function (resp) {\r\n if(resp.data) {\r\n $scope.userSingle();\r\n }\r\n vm.teamdata = resp.data;\r\n vm.AvgRating = vm.teamdata.userProfile.AverageRating;\r\n vm.ReviewsList = vm.teamdata.userProfile.Reviews\r\n vm.teamdata.ratingStars = vm.getRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.blankStars = vm.getBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.avgratingStars = vm.getAvgRatingStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n vm.teamdata.avgblankStars = vm.getAvgBlankStars(Math.round(vm.teamdata.userProfile.AverageRating.AverageRating));\r\n if(vm.teamdata.userProfile.ContactNumber){\r\n vm.teamdata.userProfile.ContactNumber=vm.teamdata.userProfile.ContactNumber.replace(/\\d(?=\\d{4})/g, '*');\r\n }\r\n \r\n if(vm.teamdata.userProfile.Reviews) {\r\n vm.teamdata.userProfile.Reviews.forEach(function (element,i) {\r\n vm.teamdata.userratingStars= vm.getUserRatingStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n vm.teamdata.userblankStars = vm.getUserBlankStars(Math.round(vm.teamdata.userProfile.Reviews[i].Average));\r\n element.arrayRating =vm.teamdata.userratingStars;\r\n element.blankRating = vm.teamdata.userblankStars;\r\n });\r\n }\r\n if(vm.teamdata.userProfile.videokycName != '') {\r\n vm.videokyc = ApiURL+\"/Video/\" + vm.teamdata.userProfile.videokycName;\r\n // vm.CertVideoServices(vm.teamdata.userProfile.videokycName);\r\n }\r\n for(var i=0;i 0 && itemValues.length > 0){\r\n // itemNames = itemNames + ',Status';\r\n // itemValues = itemValues + ',' + vm.searchStatusText;\r\n // }else{\r\n // itemNames = 'Status';\r\n // itemValues = vm.searchStatusText;\r\n // } \r\n // }\r\n \r\n // if (vm.userskill) { \r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',SkillSet';\r\n // uitemValues = uitemValues + \",\" + vm.userskill;\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'SkillSet';\r\n // uitemValues = vm.userskill;\r\n // } \r\n // }\r\n \r\n // if(vm.SearchByAccount)\r\n // {\r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',CustomerAccountName';\r\n // uitemValues = uitemValues + \",\" + vm.SearchByAccount;\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'CustomerAccountName';\r\n // uitemValues = vm.SearchByAccount;\r\n // } \r\n // }\r\n \r\n // if (vm.userNameSearch) { \r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',Search';\r\n // uitemValues = uitemValues + \",\" + vm.userNameSearch;\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'Search';\r\n // uitemValues = vm.userNameSearch;\r\n // } \r\n // }\r\n \r\n // if (vm.PermanentState) { \r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',State';\r\n // uitemValues = uitemValues + \",\" + vm.PermanentState;\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'State';\r\n // uitemValues = vm.PermanentState;\r\n // } \r\n // }\r\n \r\n // if(vm.JobcountbyStatus)\r\n // {\r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',Status';\r\n // uitemValues = uitemValues + \",\" + vm.JobcountbyStatus;\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'Status';\r\n // uitemValues = vm.JobcountbyStatus;\r\n // }\r\n // }\r\n \r\n // if (vm.WorkState) \r\n // { \r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',State';\r\n // uitemValues = uitemValues + \",\" + vm.WorkState;\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'State';\r\n // uitemValues = vm.WorkState;\r\n // } \r\n // }\r\n // if (vm.WorkState && vm.WorkCity) { \r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',City';\r\n // uitemValues = uitemValues + \",\" + vm.WorkCity;\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'City';\r\n // uitemValues = vm.WorkCity;\r\n // } \r\n // }\r\n \r\n // if (vm.CurrentState) { \r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',CurrentState';\r\n // uitemValues = uitemValues + \",\" + vm.CurrentState;\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'CurrentState';\r\n // uitemValues = vm.CurrentState;\r\n // } \r\n // }\r\n // if (vm.CurrentState && vm.CurrentCity) { \r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',CurrentCity';\r\n // uitemValues = uitemValues + \",\" + vm.CurrentCity;\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'CurrentCity';\r\n // uitemValues = vm.CurrentCity;\r\n // } \r\n // }\r\n \r\n // if (vm.UsersType) { \r\n // if(uitemNames) \r\n // {\r\n // uitemNames = uitemNames + ',Role';\r\n // uitemValues = uitemValues + \",\" + vm.UsersType;\r\n // }\r\n // else\r\n // {\r\n // uitemNames = 'Role';\r\n // uitemValues = vm.UsersType;\r\n // } \r\n // } \r\n \r\n \r\n // if(vm.UsersType==\"Freelancer\")\r\n // {\r\n // vm.uType=\"Freelancer\";\r\n // vm.SearchByAccount = ''\r\n // }\r\n // else if(vm.UsersType==\"Freelancer Vendor\")\r\n // {\r\n // vm.uType=\"Freelancer\";\r\n // vm.SearchByAccount = ''\r\n // } \r\n // else if(vm.UsersType==\"Private\")\r\n // {\r\n // vm.uType=\"Private\";\r\n // vm.SearchByAccount = ''\r\n // } \r\n // else if(vm.UsersType==\"Dispatch Supervisor\" || vm.UsersType==\"OnBoarding Supervisor\" || vm.UsersType==\"Dispatch Team Lead\" || vm.UsersType==\"Project Manager\" || vm.UsersType==\"Supervisor\")\r\n // {\r\n // vm.uType=\"Fixed\";\r\n // }\r\n // else if(vm.UsersType==\"Freelancer Dispatcher\")\r\n // {\r\n // vm.uType=\"Freelancer\";\r\n // }\r\n // else \r\n // {\r\n // vm.uType=\"\";\r\n // vm.UsersType = '';\r\n // } \r\n // }\r\n \r\n vm.wsersFilterArray = function()\r\n {\r\n witemNames=\"\";\r\n witemValues=\"\";\r\n \r\n if (vm.searchStatusText != \"\" && vm.searchStatusText != \"All\" && vm.searchStatusText != null){\r\n if(itemNames.length > 0 && itemValues.length > 0){\r\n itemNames = itemNames + ',Status';\r\n itemValues = itemValues + ',' + vm.searchStatusText;\r\n }else{\r\n itemNames = 'Status';\r\n itemValues = vm.searchStatusText;\r\n } \r\n }\r\n if (vm.userNameSearch) { \r\n if(witemNames) \r\n {\r\n witemNames = witemNames + ',Search';\r\n witemValues = witemValues + \",\" + vm.userNameSearch;\r\n }\r\n else\r\n {\r\n witemNames = 'Search';\r\n witemValues = vm.userNameSearch;\r\n } \r\n }\r\n \r\n if(vm.JobcountbyStatus)\r\n {\r\n if(witemNames) \r\n {\r\n witemNames = witemNames + ',Status';\r\n witemValues = witemValues + \",\" + vm.JobcountbyStatus;\r\n }\r\n else\r\n {\r\n witemNames = 'Status';\r\n witemValues = vm.JobcountbyStatus;\r\n }\r\n }\r\n \r\n }\r\n\r\n vm.sortColumn = function(col){\r\n vm.SortField = col;\r\n if(vm.SortType=='desc'){\r\n vm.SortType = 'asc';\r\n vm.reverseclass = 'fa fa-arrow-up';\r\n }else{\r\n vm.SortType = 'desc';\r\n vm.reverseclass = 'fa fa-arrow-down';\r\n }\r\n vm.GetAllRegisteredUser(loggedinUser, token, uitemNames, uitemValues, vm.uType, vm.UserAvailable, uPageIndex, uPageSize, startDate, endDate);\r\n };\r\n\r\n\r\n/////\r\n\r\nvm.filterStatusForJObs = function(status)\r\n{\r\n vm.JobcountbyStatus=status;\r\n vm.wsersFilterArray(); \r\n PageIndex=1;\r\n vm.Get360WorkSummary(loggedinUser, token,vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate,wsEDate,vm.OrderBy,vm.sorttype); \r\n}\r\n//////\r\n\r\n\r\n// apply user rating to all displays\r\n// add star ratings to an array\r\nvar starRating = document.querySelectorAll(\".fa-star\"),\r\nratingTotal = document.querySelectorAll(\".rating-total\");\r\n\r\n// convert ratingTotal HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\nvar reverseRatingTotal = Array.from(ratingTotal).reverse();\r\n\r\n// display initial rating totals\r\n// displayTotals();\r\n\r\n// use event listener to record changes to user rating\r\nstarRating.forEach(function(star) {\r\nstar.addEventListener(\"change\", recordRating);\r\n})\r\n\r\nfunction recordRating(event) {\r\n// use indexOf to identify selected user rating\r\nvar userRating = Array.from(starRating).indexOf(event.target);\r\n\r\n// define selected rating to adjust display totals\r\nvar selectedIndex;\r\n\r\nstarRating.forEach(function(item, index) {\r\n// add or remove .active class based upon selected user rating\r\nif (index < userRating + 1) {\r\nstarRating[index].classList.add(\"active\");\r\nselectedIndex = index;\r\n} else {\r\nstarRating[index].classList.remove(\"active\");\r\n}\r\n\r\ndisplayTotals(selectedIndex);\r\n});\r\n}\r\nvm.countForStatus = 50;\r\n// display star rating totals from html custom data-\r\nfunction displayTotals(selectedIndex) {\r\nvar barChart = document.querySelectorAll(\".bar\"),\r\ndisplaySummary = document.querySelectorAll(\".summary\"),\r\nnumRatings = 0,\r\nnumRatingsValue = 0;\r\n\r\n// convert barChart HTMLCollection to array and reverse its order (5 star <-> 1 star)\r\nvar reverseBarChart = Array.from(barChart).reverse();\r\n\r\nreverseRatingTotal.forEach(function(total, index) {\r\nif (index == selectedIndex) {\r\n// add selected rating to display total\r\ntotal.innerHTML = (parseInt(total.getAttribute(\"data-rating-count\")) + 1);\r\n// adjust selected bar width\r\nreverseBarChart[index].style.width = (((parseInt(total.getAttribute(\"data-rating-count\")) + 1) / 20) * 100) + \"%\";\r\n} else {\r\n// display unselected totals\r\ntotal.innerHTML = total.getAttribute(\"data-rating-count\");\r\n// adjust unselected bar widths\r\nreverseBarChart[index].style.width = ((total.getAttribute(\"data-rating-count\") / 20) * 100) + \"%\";\r\n}\r\n// count total number and value of ratings\r\nnumRatings += parseInt(total.innerHTML);\r\nnumRatingsValue += (parseInt(total.innerHTML) * (index + 1));\r\n});\r\n\r\n// display rating average and total\r\nratingsAverage = (numRatingsValue / numRatings).toFixed(2);\r\n// displaySummary[0].innerHTML = ratingsAverage + \" average based on \" + numRatings + \" reviews.\";\r\n}\r\n\r\nvm.Get360VendorTeamData = function (teamid) {\r\n vm.userId = teamid;\r\n DashboardService.Get360VendorTeamData(loggedinUser, teamid, token).then(function (resp) {\r\n vm.vendorteam = resp.data;\r\n })\r\n}\r\n\r\n\r\nvm.FinanceFiltersList=[];\r\nvm.GetFinancialSummary = function () { \r\n DashboardService.GetFinancialSummary(loggedinUser, token,vm.userId, fnitemNames, fnitemValues, fPageIndex, fPageSize, startDate, endDate).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.paymentCount = resp.data.paymentsSummary;\r\n vm.FinanceFiltersList = resp.data.financialSummary360.financialLPSummaryList;\r\n $scope.totalFinList = resp.data.financialSummary360.count;\r\n if(vm.FinanceFiltersList.length < vm.financePageListCount)\r\n vm.financeListLength = $scope.totalFinList;\r\n else\r\n vm.financeListLength = fPageIndex * vm.financePageListCount;\r\n if(fPageIndex==1)\r\n vm.fpageindexCount = 1;\r\n else\r\n vm.fpageindexCount = (((fPageIndex-1) * vm.financePageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n vm.ResetUserFilter();\r\n}\r\n\r\nvm.Get360WorkSummary = function () {\r\n DashboardService.Get360WorkSummary(loggedinUser, token,vm.userId, witemNames, witemValues, uPageIndex, uPageSize, wsSDate,wsEDate,vm.OrderBy,vm.sorttype).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.statusCount = resp.data;\r\n vm.wsTicketList = resp.data.workSummaryData;\r\n $scope.totalWS = resp.data.WorkSummaryTotalCount;\r\n if(vm.wsTicketList.length < vm.userPageListCount)\r\n vm.wsListLength = $scope.totalWS;\r\n else\r\n vm.wsListLength = uPageIndex * vm.userPageListCount;\r\n if(uPageIndex==1)\r\n vm.wspageindexCount = 1;\r\n else\r\n vm.wspageindexCount = (((uPageIndex-1) * vm.userPageListCount) + 1);\r\n }\r\n }, function (error) {\r\n\r\n })\r\n}\r\n//// \r\n$scope.isCollapsed = true;\r\nvm.GetAllNewUploadId = function(isCollapsed,UserId){\r\n // if(vm.UserId == UserId){\r\n $scope.isCollapsed = !isCollapsed;\r\n // } \r\n $scope.showRow = UserId;\r\n}\r\n\r\n\r\n //slider\r\n // var slidesInSlideshow = 2;\r\n // var slidesTimeIntervalInMs = 4000; \r\n \r\n // $scope.slideshow = 1;\r\n // var slideTimer =\r\n // $timeout(function interval() {\r\n // $scope.slideshow = ($scope.slideshow % slidesInSlideshow) + 1;\r\n // slideTimer = $timeout(interval, slidesTimeIntervalInMs);\r\n // }, slidesTimeIntervalInMs);\r\n\r\n //end slider\r\n\r\n // remove and change class\r\n vm.sortClass = function(col){\r\n if(vm.SortField == col ){\r\n if(vm.SortType == 'desc'){\r\n return 'fa fa-arrow-down'; \r\n }else{\r\n return 'fa fa-arrow-up';\r\n }\r\n }\r\n else{\r\n return '';\r\n }\r\n }\r\n\r\n /// Slider on certificate\r\n vm.getFileType = function(url){\r\n if(url==null || url==\"\")\r\n {\r\n return \"others\";\r\n }\r\n else{\r\n if(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 || url.indexOf(\".png\")>=0 || url.indexOf(\".bmp\")>=0 ||url.indexOf(\".JPG\")>=0 || url.indexOf(\".JPEG\")>=0 || url.indexOf(\".PNG\")>=0 || url.indexOf(\".BMP\")>=0){\r\n return \"image\";\r\n } else if(url.indexOf(\".pdf\")>=0 || url.indexOf(\".PDF\")>=0){\r\n return \"pdf\";\r\n } else if(url.indexOf(\".xls\")>=0 || url.indexOf(\".xlsx\")>=0 ||url.indexOf(\".XLS\")>=0 || url.indexOf(\".XLSX\")>=0){\r\n return \"xls\"; \r\n } else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0 || url.indexOf(\".DOC\")>=0 || url.indexOf(\".DOCX\")>=0){\r\n return \"doc\";\r\n } \r\n else {\r\n return \"others\";\r\n }\r\n }\r\n }\r\n\r\n vm.CertificateimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.CertificateImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.CertificateImg[index] = resp.data;\r\n }\r\n }, function() {\r\n vm.CertificateImg[index] = 'assets/images/patterns/image_placeholder.png';\r\n });\r\n \r\n }\r\n \r\n vm.CertVideoServices = function(video){\r\n MainService.GetVideoBlob(loggedinUser, token, video).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.kycVideo = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.kycVideo = resp.data;\r\n } \r\n }, function() {\r\n vm.kycVideo = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n \r\n $scope.currentImageIndex = 0;\r\n \r\n $scope.images = [\r\n // 'https://via.placeholder.com/300/09f/fff.png',\r\n // 'https://www.gstatic.com/webp/gallery3/1.sm.png',\r\n // 'https://via.placeholder.com/300/09f/fff.png',\r\n // 'https://www.gstatic.com/webp/gallery3/1.sm.png',\r\n // 'https://via.placeholder.com/300/09f/fff.png'\r\n 'assets/images/patterns/demo2.PNG',\r\n 'assets/images/patterns/certificatentt2.jpg'\r\n\r\n ];\r\n \r\n $scope.nextImage = function() {\r\n $scope.currentImageIndex++;\r\n if ($scope.currentImageIndex >= $scope.images.length) {\r\n $scope.currentImageIndex = 0;\r\n }\r\n };\r\n \r\n $scope.prevImage = function() {\r\n $scope.currentImageIndex--;\r\n if ($scope.currentImageIndex < 0) {\r\n $scope.currentImageIndex = $scope.images.length - 1;\r\n }\r\n };\r\n \r\n\r\n\r\n});\nangular.module('inspinia').service('AllOrdersReceivedListService', function (AcessoriesURL, ApiURL, SchedulingAPI, $window, $http) {\r\n\r\n this.GetAllWareHouse = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllWareHouse';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetAllOrdersByFilter = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/GetWarehouseRequestedActiveOrders';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.UpdateInvoiceDetails = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/UpdateInvoiceDetails';\r\n return $http.put(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetWarehouseRequestedActiveOrders_CSV = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/GetWarehouseRequestedActiveOrders_CSV';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GetOrdersDashboardByFilter = function (data, loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/MMFOrder/GetRequestedOrdersDashboardByFilter';\r\n return $http.post(url, data, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n this.GetAllWareHouseForExploration = function (loggedinUser, token) {\r\n var url = AcessoriesURL + '/api/WareHouse/GetAllWareHouseForExploration';\r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.UpdateOrderStatus = function (token,loggedinUser,file,FileName, data) {\r\n var formdata = new FormData();\r\n formdata.append(FileName, file);\r\n var FiltersData = JSON.stringify(data);\r\n formdata.append(\"FiltersData\", FiltersData);\r\n var url = AcessoriesURL + '/api/MMFOrder/UpdateOrderStatusWithAttachment';\r\n return $http.put(url, formdata, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.ReturnOrderAction = function (token, loggedinUser, data) {\r\n var url = AcessoriesURL + '/api/MMFReturnOrder/ReturnOrderAction';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.RejectReturnPart = function (data,token, loggedinUser) {\r\n var url = AcessoriesURL + '/api/MMFReturnOrder/RejectReturnPart';\r\n return $http.put(url, data, {\r\n headers: {\r\n 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n this.GeneratePdfChallan = function (loggedinUser, token, OrderId) {\r\n var url = ApiURL + '/api/Report/GeneratePdfChallan?OrderId=' + OrderId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.GeneratePdfTaxInvoice = function (loggedinUser, token, InvoiceId) {\r\n var url = ApiURL + '/api/Report/GeneratePdfTaxInvoice?OrderId=' + InvoiceId;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('AllOrdersReceivedListController', function (AllOrdersReceivedListService,MainService, $resource, $stateParams, toaster,$window, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout,$stateParams,$q ,ReferService, $rootScope,$http) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\t// var warehouseId = $stateParams.warehouseId;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\tvm.AccountId = $localStorage.accountConfig.AccountId;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvar oPageIndex = 1;\r\n\t\tvar oPageSize = 10;\r\n\t\tvm.allOrdersPageListCount = 10;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10;\r\n\t\tvm.allInventoryPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.UserId = '';\r\n\t\tvm.FileName = \"\";\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\t$scope.dates = { startDate: moment().subtract(30, 'day'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(30, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment().endOf('month')]\r\n\t\t};\r\n\r\n\t\tvm.outsidedateRangeChange = function (ev, picker) {\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t};\r\n\r\n\r\n\t\tvm.UploadUpdateOrder = function () {\r\n\t\t\t$state.go('index.bulkUploadUpdateOrder', {\r\n\t\t\t reload: true\r\n\t\t\t});\r\n\t\t }\r\n\r\n\t\t$scope.item = {\r\n\t\t\tquantity: 1 // Initial quantity\r\n\t\t};\r\n\r\n\t\t$scope.increaseQuantity = function (item) {\r\n\t\t\titem.quantity++;\r\n\t\t};\r\n\r\n\t\t$scope.decreaseQuantity = function (item) {\r\n\t\t\tif (item.quantity > 1) {\r\n\t\t\t\titem.quantity--;\r\n\t\t\t}\r\n\t\t};\r\n\t\t$scope.removeItem = function (item) {\r\n\t\t\tvar index = $scope.cartItems.indexOf(item);\r\n\t\t\t$scope.cartItems.splice(index, 1);\r\n\t\t};\r\n\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t$scope.TicketTablepagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\t\tvm.GetAllWareHouse = function () {\r\n\t\t\tAllOrdersReceivedListService.GetAllWareHouse(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.warehouseitemlist = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllWareHouse();\r\n\r\n\t\tvm.GetAllWareHouseForExploration = function () {\r\n\t\t\tAllOrdersReceivedListService.GetAllWareHouseForExploration(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.warehouseExploreList = resp.data;\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllWareHouseForExploration();\r\n\t\tvm.OpenUseerDetails = function(orderid){\r\n\t\t\t$state.go('index.WareHouseOrderDetailView',{\r\n\t\t\t\torder_id : orderid\r\n\t\t\t}, { reload: true });\r\n\t\t}\r\n\r\n\t\tvm.OpenTicketView = function(ticket){\r\n\t\t\t$state.go('index.JobDetailView',{\r\n\t\t\t\tticketId: ticket\r\n\t\t\t}, { reload: true });\r\n\t\t }\r\n\t\t \r\n\t\t$scope.totalInvList = 0;\r\n\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t$scope.InventoryPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\r\n\t\tvm.changeAllInventoryPageListCount = function () {\r\n\t\t\t$scope.inventoryPerPage = vm.allInventoryPageListCount;\r\n\t\t\tPageSize = $scope.inventoryPerPage;\r\n\t\t\t$scope.AllInventoryTablePageChanged($scope.InventoryPagination.current);\r\n\t\t\tvm.selectAll = false;\r\n\t\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\t\tPageIndex = newPage;\r\n\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tPageIndex = $scope.InventoryPagination.current;\r\n\t\t$scope.AllInventoryTablePageChanged = function (newPage) {\r\n\t\t\tPageIndex = newPage;\r\n\t\t\tvm.GetAllOrdersByFilter();\r\n\r\n\t\t};\r\n\t\tvm.SearchText = '';\r\n\t\tvm.warehouselist = \"\";\r\n\t\tvm.warehouseInvetoryList = [];\r\n\r\n\r\n\t\tvm.clearFilter = function () {\r\n\t\t\tvm.SearchText = '';\r\n\t\t\tvm.warehouselist = '';\r\n\r\n\t\t}\r\n\r\n\r\n\r\n\t\tvm.IsWarehouseAlreadySelected = false;\r\n\r\n\t\tvm.addCartMoreModal = function (partData) {\r\n\t\t\tvm.IsWarehouseAlreadySelected = false;\r\n\t\t\tvm.partId = partData.strMMFPartId;\r\n\t\t\tvm.partSKUId = partData.strSKUId;\r\n\t\t\tvm.partName = partData.strPartName;\r\n\t\t\tif (vm.warehouselist != '') {\r\n\t\t\t\tvm.IsWarehouseAlreadySelected = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.IsWarehouseAlreadySelected = false;\r\n\t\t\t\tvm.GetWareHouseByPartId(vm.partId);\r\n\t\t\t}\r\n\t\t\tvm.openAddToCartModal();\r\n\r\n\t\t}\r\n\t\tvm.GetOrdersDashboardByFilter = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"OrderStatus\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"PaymentStatus\": \"\",\r\n\t\t\t\t\"WareHouseId\": vm.warehouselist,\r\n\t\t\t\t\"DateField\": \"dateOrderDate\",\r\n\t\t\t\t\"OrderStartDate\": startDate,\r\n\t\t\t\t\"OrderEndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tAllOrdersReceivedListService.GetOrdersDashboardByFilter(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.orderDashboardCount = resp.data\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetOrdersDashboardByFilter();\r\n\t\tvm.AddPartToMyCart = function () {\r\n\t\t\tvar addPartData = {\r\n\t\t\t\t\"MMFPartId\": vm.partId,\r\n\t\t\t\t\"SKUId\": vm.partSKUId,\r\n\t\t\t\t\"QuantityAdded\": $scope.item.quantity,\r\n\t\t\t\t\"WareHoueId\": vm.warehouselist\r\n\t\t\t}\r\n\t\t\tAllOrdersReceivedListService.AddPartToMyCart(addPartData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Item added to cart successfully.\");\r\n\t\t\t\t\tvm.closecreateCartMoreModal();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.AddSinglePartToMyCart = function (partData) {\r\n\t\t\tvar addPartData = {\r\n\t\t\t\t\"MMFPartId\": partData.strItemId,\r\n\t\t\t\t\"SKUId\": partData.strSKUId,\r\n\t\t\t\t\"QuantityAdded\": 1,\r\n\t\t\t\t\"WareHoueId\": partData.strWareHouseId,\r\n\t\t\t}\r\n\t\t\tAllOrdersReceivedListService.AddPartToMyCart(addPartData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetMyCart();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tvm.ReducePartQuantityInMyCart = function (partData) {\r\n\t\t\tvar reducePartData = {\r\n\t\t\t\t\"MMFPartId\": partData.strItemId,\r\n\t\t\t\t\"SKUId\": partData.strSKUId,\r\n\t\t\t\t\"QuantityAdded\": 1\r\n\t\t\t}\r\n\t\t\tAllOrdersReceivedListService.ReducePartQuantityInMyCart(reducePartData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetMyCart();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.RemovePartFromMyCart = function (partData) {\r\n\t\t\tvar removePartData = {\r\n\t\t\t\t\"MMFPartId\": partData.strItemId,\r\n\t\t\t\t\"SKUId\": partData.strSKUId\r\n\t\t\t}\r\n\t\t\tAllOrdersReceivedListService.RemovePartFromMyCart(removePartData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Part removed from cart successfully.\");\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetMyCart();\r\n\t\t\t\t\t}, 1000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.ClearMyCart = function () {\r\n\t\t\tAllOrdersReceivedListService.ClearMyCart(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Cart cleared successfully.\");\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetMyCart();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.PlaceOrder = function () {\r\n\t\t\tAllOrdersReceivedListService.PlaceOrder(loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Order placed successfully.\");\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetMyCart();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.SelectedOrderStatus = 'Pending';\r\n\r\n\t\tvm.setSelectedItem = function (item,orderType) {\r\n\t\t\tvm.SelectedOrderStatus = item;\r\n\t\t\tvm.SelectedOrderType = orderType || '';\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t};\r\n\t\t// vm.setSelectedItem = function (status, orderType) {\r\n\t\t// \tif (status === '') {\r\n\t\t// \t\t// Special case for the \"Total\" tab where we want to clear any specific status\r\n\t\t// \t\tvm.SelectedOrderStatus = '';\r\n\t\t// \t\tvm.SelectedOrderType = '';\r\n\t\t// \t} else if (status === 'ReturnOrder') {\r\n\t\t// \t\t// Special case for the \"Return Order\" tab\r\n\t\t// \t\tvm.SelectedOrderStatus = '';\r\n\t\t// \t\tvm.SelectedOrderType = orderType;\r\n\t\t// \t} else {\r\n\t\t// \t\t// General case for other tabs\r\n\t\t// \t\tvm.SelectedOrderStatus = status;\r\n\t\t// \t\tvm.SelectedOrderType = orderType || ''; // Assign orderType if provided, otherwise set to empty\r\n\t\t// \t}\r\n\t\t// \tvm.applyOrderFilter();\r\n\t\t// };\r\n\r\n\t\tvm.clearMyOrderFilter = function () {\r\n\t\t\tvm.SelectedOrderStatus = '';\r\n\t\t\tvm.warehouselist = '';\r\n\t\t\tvm.SearchTextforOrderId = '';\r\n\t\t\tvm.applyOrderFilter();\r\n\t\t}\r\n\r\n\t\tvm.PartImagebase64 = [];\r\n\r\n\t\tvm.PartImageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.PartImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.PartImagebase64[index] = resp.data;\r\n } \r\n }, function() {\r\n vm.PartImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }); \r\n }\r\n\t\t\r\n\t\t $scope.checkPDF = function (path) {\r\n\t\t\tif (path) {\r\n\t\t\t\tvar pt = path.substr(path.length - 4);\r\n\t\t\t\tif (pt == '.pdf') {\r\n\t\t\t\t\tvm.error = function () {\r\n\t\t\t\t\t\t$(\".pdf\").attr({ \"target\": \"_blank\" })\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.TrainingImageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n }\r\n else{\r\n vm.TrainingImagebase64[index] = resp.data;\r\n } \r\n\t\t\t\t$scope.filesArray.push({\r\n\t\t\t\t\tname: img,\r\n\t\t\t\t\tsrc: vm.TrainingImagebase64[index],\r\n\t\t\t\t}); \r\n }, function() {\r\n vm.TrainingImagebase64[index] = 'assets/images/patterns/image_placeholder.png';\r\n\t\t\t\t$scope.filesArray.push({\r\n\t\t\t\t\tname: img,\r\n\t\t\t\t\tsrc: vm.TrainingImagebase64[index],\r\n\t\t\t\t});\r\n }); \r\n }\r\n\t\t vm.showPartDetails = false;\r\n\t\tvm.OpenPartDetailPanel = function (s) {\r\n\t\t\tvm.PartDetails = s;\r\n\t\t\tvm.sideViewPartImage = s.strListItemImage;\r\n\t\t\tif(s.strListItemImage){\r\n\t\t\t\tvm.sideViewPartLength = s.strListItemImage.length;\r\n\t\t\t\tvm.TrainingImagebase64 = [];\r\n\t\t\t\tfor (var i = 0; i < vm.sideViewPartImage.length; i++) {\r\n\t\t\t\t\tvm.TrainingImageServices(vm.sideViewPartImage[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvm.showPartDetails = true;\r\n\t\t}\r\n\t\tvm.OpenClearCartConfirmation = function () {\r\n\t\t\tClearCartModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'clearCart.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeClearCartConfirmation = function () {\r\n\t\t\tClearCartModel.close();\r\n\t\t}\r\n\r\n\t\tvm.OpenOrderCancelConfirmation = function (orderId) {\r\n\t\t\tvm.orderId = orderId;\r\n\t\t\tCancelOrderModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'cancelOrder.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeOrderCancelConfirmation = function () {\r\n\t\t\tCancelOrderModel.close();\r\n\t\t}\r\n\r\n\t\r\n\t\tvm.CancelMyOrder = function () {\r\n\t\t\tAllOrdersReceivedListService.CancelMyOrder(vm.orderId, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Order cancelled successfully.\");\r\n\t\t\t\t\tvm.closeOrderCancelConfirmation();\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetAllOrdersByFilter();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.openAddToCartModal = function () {\r\n\t\t\tvm.morecartModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'AddMoreItemModal.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tscope: $scope\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closecreateCartMoreModal = function () {\r\n\t\t\tvm.morecartModal.close();\r\n\t\t\tvm.partId = '';\r\n\t\t\tvm.partSKUId = '';\r\n\t\t\tvm.partSKUId = '';\r\n\t\t\t$scope.item.quantity = 1;\r\n\t\t}\r\n\r\n\t\t$scope.totalOrderList = 0;\r\n\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t$scope.OrdersPagination = {\r\n\t\t\tcurrent: 1\r\n\t\t};\r\n\r\n\t\tvm.changeAllOrderPageListCount = function () {\r\n\t\t\t$scope.ordersPerPage = vm.allOrdersPageListCount;\r\n\t\t\toPageSize = $scope.ordersPerPage;\r\n\t\t\t$scope.AllOrderTablePageChanged($scope.OrdersPagination.current);\r\n\t\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\t\toPageIndex = newPage;\r\n\t\t\t\tvm.GetAllOrdersByFilter();\r\n\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\toPageIndex = $scope.OrdersPagination.current;\r\n\t\t$scope.AllOrderTablePageChanged = function (newPage) {\r\n\t\t\toPageIndex = newPage;\r\n\t\t\tvm.GetAllOrdersByFilter();\r\n\r\n\t\t};\r\n\t\tvm.SearchTextforOrder = '';\r\n\t\tvm.orderInvetoryList = [];\r\n\t\tvm.GetOrdersDashboardByFilter = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"OrderStatus\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"PaymentStatus\": \"\",\r\n\t\t\t\t\"WareHouseId\": vm.warehouselist,\r\n\t\t\t\t\"DateField\": \"dateOrderDate\",\r\n\t\t\t\t\"OrderStartDate\": startDate,\r\n\t\t\t\t\"OrderEndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize\r\n\t\t\t}\r\n\t\t\tAllOrdersReceivedListService.GetOrdersDashboardByFilter(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.orderDashboardCount = resp.data\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.applyOrderFilter = function () {\r\n\t\t\tvm.GetAllOrdersByFilter();\r\n\t\t\tvm.GetOrdersDashboardByFilter();\r\n\t\t}\r\n\r\n\t\tvm.ExpandOrderList = function(isCollapsed,orderId){\r\n\t\t\tif (vm.orderId == orderId) {\r\n\t\t\t\t$scope.isCollapsed = !isCollapsed;\r\n\t\t\t}\r\n\t\t\t$scope.activeRow = orderId;\r\n\t\t\tvm.orderId = orderId;\r\n\t\t}\r\n \r\n\r\n\r\n\r\n\t\tvm.GetAllOrdersByFilter = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"OrderType\" : vm.SelectedOrderType || '',\r\n\t\t\t\t\"OrderStatus\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"PaymentStatus\": \"\",\r\n\t\t\t\t\"WareHouseId\": vm.warehouselist,\r\n\t\t\t\t\"DateField\": \"dateOrderDate\",\r\n\t\t\t\t\"OrderStartDate\": startDate,\r\n\t\t\t\t\"OrderEndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize,\r\n\t\t\t\t\"OrderId\" : vm.SearchTextforOrderId\r\n\t\t\t}\r\n\t\t\tAllOrdersReceivedListService.GetAllOrdersByFilter(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.orderInvetoryList = resp.data.OrderList;\r\n\t\t\t\t\t$scope.totalOrderList = resp.data.Count;\r\n\t\t\t\t\t\tvm.PartImagebase64 = [];\r\n\t\t\t\t\t\tfor (var i = 0; i < vm.orderInvetoryList.length; i++) {\r\n\t\t\t\t\t\t\tvar item = vm.orderInvetoryList[i];\r\n\t\t\t\t\t\t\tvm.PartImageServices(item.Attachement, i);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\tif (vm.orderInvetoryList.length < vm.allOrdersPageListCount)\r\n\t\t\t\t\t\tvm.orderListLength = $scope.totalOrderList;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.orderListLength = oPageIndex * vm.allOrdersPageListCount;\r\n\t\t\t\t\tif (oPageIndex == 1)\r\n\t\t\t\t\t\tvm.opageindexCount = 1;\r\n\t\t\t\t\telse\r\n\t\t\t\t\t\tvm.opageindexCount = (((oPageIndex - 1) * vm.allOrdersPageListCount) + 1);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\t\tvm.GetAllOrdersByFilter();\r\n\r\n\t\tvm.GetWarehouseRequestedActiveOrders_CSV = function () {\r\n\t\t\tvar data = {\r\n\t\t\t\t\"OrderType\" : vm.SelectedOrderType || '',\r\n\t\t\t\t\"OrderStatus\": vm.SelectedOrderStatus,\r\n\t\t\t\t\"PaymentStatus\": \"\",\r\n\t\t\t\t\"WareHouseId\": vm.warehouselist,\r\n\t\t\t\t\"DateField\": \"dateOrderDate\",\r\n\t\t\t\t\"OrderStartDate\": startDate,\r\n\t\t\t\t\"OrderEndDate\": endDate,\r\n\t\t\t\t\"PageIndex\": oPageIndex,\r\n\t\t\t\t\"PageSize\": oPageSize,\r\n\t\t\t\t\"OrderId\" : vm.SearchTextforOrderId\r\n\t\t\t}\r\n\t\t\tAllOrdersReceivedListService.GetWarehouseRequestedActiveOrders_CSV(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvar csvData = resp.data;\r\n\t\t\t\t\tvar blob = new Blob([csvData], { type: 'text/csv' });\r\n\t\t\t\t\tvar url = window.URL.createObjectURL(blob);\r\n\t\t\t\t\tvar a = document.createElement('a');\r\n\t\t\t\t\ta.href = url;\r\n\t\t\t\t\ta.download = 'All_Orders_Received_List.csv';\r\n\t\t\t\t\ta.click();\r\n\t\t\t\t\twindow.URL.revokeObjectURL(url);\r\n\t\t\t\t}\r\n\t\t\t}, vm.showFailure);\r\n\t\t}\r\n\r\n\t\tvm.disableCreateButton = false;\r\n\r\n\t\tvm.DisableCreateButton = function (disable) {\r\n\t\t\tif (disable) {\r\n\t\t\t\tvm.disableCreateButton = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvm.disableCreateButton = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvm.InvoiceUpdateDetails = function (invoicedetails) {\r\n\t\t\tvm.InvoiceData = invoicedetails;\r\n\t\t\tvm.OrderId = vm.InvoiceData.OrderId\r\n\t\t\tvm.InvoiceNumber = vm.InvoiceData.InvoiceNumber\r\n\t\t\tvm.PONumber = vm.InvoiceData.PONumber\r\n\t\t\tvm.InvoiceDate = vm.InvoiceData.InvoiceDate ? new Date(vm.InvoiceData.InvoiceDate) : null;\r\n\t\t\tvm.POdate = vm.InvoiceData.PODate ? new Date(vm.InvoiceData.PODate) : null;\r\n\t\t\tvm.updateInvoiceModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'InvoiceDetailsUpdate.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\t\tvm.CloseInvoiceDetails = function(){\r\n vm.updateInvoiceModelOpen.close();\r\n\t\t vm.isUpdateDisabled = false;\r\n\t\t}\r\n\t\tvm.isUpdateDisabled = false;\r\n\t\tvm.UpdateInvoiceDetails = function(){\r\n\t\t\tvm.updateinvoiceForm.submitted = true;\r\n\t\t\tif (vm.updateinvoiceForm.$valid) {\r\n\t\t\t\tvm.isUpdateDisabled = true; \r\n\t\t\tvar data = {\r\n\t\t\t\t\"OrderId\" : vm.OrderId,\r\n\t\t\t\t\"InvoiceNumber\" : vm.InvoiceNumber,\r\n\t\t\t\t\"InvoiceDate\" : vm.InvoiceDate,\r\n\t\t\t\t\"PODate\" : vm.POdate,\r\n\t\t\t\t\"PONumber\" : vm.PONumber\r\n\t\t\t}\r\n\t\t\tAllOrdersReceivedListService.UpdateInvoiceDetails(data, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif (resp.data && resp.status == 200) {\r\n\t\t\t\t\tvm.showSuccess(\"Success\", \"Invoice Order Details Updated successfully.\");\r\n\t\t\t\t\tvm.isUpdateDisabled = true; \r\n\t\t\t\t\tvm.CloseInvoiceDetails();\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\tvm.GetAllOrdersByFilter();\r\n\t\t\t\t\t}, 2000);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvm.showFailure(\"Failed\", resp.data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.Acceptancemodel = function (requestDetails) {\r\n\t\t\tvm.showPartDetails=false;\r\n\t\t\tvm.AllRequestDetail = requestDetails;\r\n\t\t\tvm.updateStatusModelOpen = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'acceptancepopup.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\t\t$scope.openTrackingLink = function(trackingLink) {\r\n\t\t\t// Open the tracking link in a new tab\r\n\t\t\t$window.open(trackingLink, '_blank');\r\n\t\t};\r\n\t\tvm.CloseAcceptanceModel = function () {\r\n\t\t\tvm.updateStatusModelOpen.close();\r\n\t\t\tvm.DisableCreateButton(false);\r\n\t\t\tvm.UpdateOrderStatus = \"\";\r\n\t\t\tvm.TrackingLink = \"\";\r\n\t\t\tvm.strPackageId = \"\";\r\n\t\t\tvm.strPackageStatus = \"\";\r\n\t\t\tvm.GRNumber = \"\";\r\n\t\t\tvm.strPackageTrackingId = \"\";\r\n\t\t\tvm.strShipmentId = \"\";\r\n\t\t\tvm.PackageDetails = [];\r\n\t\t\tvm.datePackedOn = moment().format(\"YYYY-MM-DD\");\r\n\t\t\tvm.FileName = \"\";\r\n\t\t\tvm.FilesDoc = [];\r\n\t\t\tvm.clear();\r\n\t\t}\r\n\r\n\t\t$scope.uploadImageForNotice = function (files) {\r\n\t\t\tvm.FileName = \"\";\r\n\t\t\tvm.FilesDoc = files.files[0];\r\n\t\t\tvm.FileName = vm.FilesDoc.name;\r\n\t\t\tvm.FileSize = vm.FilesDoc.size;\r\n\t\t \r\n\t\t\t// Allowed file extensions (Images: jpg, jpeg, png, jfif and Documents: pdf, doc, docx)\r\n\t\t\tvar allowedExtensions = /(\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png|\\.JFIF|\\.jfif|\\.PDF|\\.pdf|\\.DOC|\\.doc|\\.DOCX|\\.docx)$/i;\r\n\t\t \r\n\t\t\t// Validate file extension\r\n\t\t\tif (!allowedExtensions.exec(vm.FileName)) {\r\n\t\t\t vm.FilesDoc = [];\r\n\t\t\t vm.clear();\r\n\t\t\t alert('Please upload a file with extensions .jpg, .jpeg, .png, .jfif, .pdf, .doc, or .docx only.');\r\n\t\t\t}\r\n\t\t \r\n\t\t\t// Optional: You can re-enable the file size check if needed (e.g., for 1MB max file size)\r\n\t\t\t// var allowedFileSize = 1000000; // 1MB\r\n\t\t\t// if(vm.FileSize > allowedFileSize) {\r\n\t\t\t// vm.FilesDoc = [];\r\n\t\t\t// vm.clear(); \r\n\t\t\t// alert('File size cannot exceed 1MB');\r\n\t\t\t// }\r\n\t\t };\r\n\t\t \r\n\t\t // Function to clear the file input\r\n\t\t vm.clear = function () {\r\n\t\t\tangular.element(\"input[type='file']\").val(null);\r\n\t\t };\r\n\t\t \r\n\t \r\n\t\t vm.clear = function () {\r\n\t\t\tangular.element(\"input[type='file']\").val(null);\r\n\t\t };\r\n\t\tvm.UpdateCartOrderStatus = function () {\r\n\t\t\tvm.CartOrder_Form.submitted = true;\r\n\t\t\tif (vm.CartOrder_Form.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tif(vm.UpdateOrderStatus == \"Cancelled\"){\r\n\t\t\t\t\tvm.PackageDetails = [{\r\n\t\t\t\t\t\t\"strPackageId\": \"\",\r\n\t\t\t\t\t\t\"strPackageStatus\": \"\",\r\n\t\t\t\t\t\t\"strPackageTrackingId\": \"\",\r\n\t\t\t\t\t\t\"strShipmentId\": \"\",\r\n\t\t\t\t\t\t\"datePackedOn\": moment().format(\"YYYY-MM-DD\")\r\n\t\t\t\t\t}]\r\n\t\t\t\t\tvm.CancelComment = vm.resaonOfCancellation;\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tvm.PackageDetails = [{\r\n\t\t\t\t\t\t\"strPackageId\": vm.strPackageId,\r\n\t\t\t\t\t\t\"strPackageStatus\": \"Shipped\",\r\n\t\t\t\t\t\t\"strPackageTrackingId\": vm.strPackageTrackingId,\r\n\t\t\t\t\t\t\"strShipmentId\": vm.strShipmentId,\r\n\t\t\t\t\t\t\"datePackedOn\": moment().format(\"YYYY-MM-DD\")\r\n\t\t\t\t\t}]\r\n\t\t\t\t\tvm.CancelComment = '';\r\n\t\t\t\t}\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"OrderId\": vm.AllRequestDetail.OrderId,\r\n\t\t\t\t\t\"OrderStatus\": vm.UpdateOrderStatus,\r\n\t\t\t\t\t\"TrackingLink\": vm.TrackingLink,\r\n\t\t\t\t\t\"PackageDetails\": vm.PackageDetails,\r\n\t\t\t\t\t\"CancelComment\": vm.CancelComment,\r\n\t\t\t\t\t\"GRNumber\" : vm.GRNumber,\r\n\t\t\t\t\t\"Attachement\" : vm.FileName\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\tAllOrdersReceivedListService.UpdateOrderStatus(token,loggedinUser,vm.FilesDoc,vm.FileName, data).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.CloseAcceptanceModel();\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", 'Order Updated Successfully.');\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.GetAllOrdersByFilter();\r\n\t\t\t\t\t\t\tvm.GetOrdersDashboardByFilter();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\tvm.OpenOrderReturnCancelConfirmation = function (orderData,actionType) {\r\n\t\t\tvm.returnOrderToBeUpdated = orderData;\r\n\t\t\tvm.returnOrderId = orderData.OrderId;\r\n\t\t\tvm.ActionType = actionType;\r\n\t\t\tCancelReturnOrderModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'CancelReturnOrder.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closeOrderReturnModel = function () {\r\n\t\t\tCancelReturnOrderModel.close();\r\n\t\t\tvm.ActionType = \"\";\r\n\t\t\tvm.returnUpdateReason = \"\";\r\n\t\t\tvm.returnOrderId = \"\";\r\n\t\t}\r\n\r\n\t\tvm.OpenPartOrderReturnCancelConfirmation = function (partorderData) {\r\n\t\t\tvm.partreturnOrderToBeUpdated = partorderData;\r\n\t\t\tvm.partOrderId = vm.partreturnOrderToBeUpdated.OrderId\r\n\t\t\tvm.partreturnOrderId = partorderData.ListItemsInOrder;\r\n\t\t\tvm.partidreturn = vm.partreturnOrderId[0].strItemId\r\n\t\t\t// vm.ActionType = actionType;\r\n\t\t\tCancelPartReturnOrderModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'PartCancelReturnOrder.html',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvm.closePartOrderReturnModel = function () {\r\n\t\t\tCancelPartReturnOrderModel.close();\r\n\t\t\tvm.partOrderId = \"\";\r\n\t\t\tvm.partidreturn = \"\"\r\n\t\t}\r\n\r\n\r\n\t\tvm.RejectReturnPart = function () {\r\n\t\t\t// vm.Return_Confirmation.submitted = true;\r\n\t\t\t// if (vm.Return_Confirmation.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"OrderId\": vm.partOrderId,\r\n\t\t\t\t\t\"PartId\": vm.partidreturn,\r\n\t\t\t\t}\r\n\t\t\t\tAllOrdersReceivedListService.RejectReturnPart(data,token,loggedinUser).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.closePartOrderReturnModel();\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", ' Part Reject Successfully.');\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.GetAllOrdersByFilter();\r\n\t\t\t\t\t\t\tvm.GetOrdersDashboardByFilter();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t// }\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\tvm.ReturnOrderAction = function () {\r\n\t\t\tvm.Return_Confirmation.submitted = true;\r\n\t\t\tif (vm.Return_Confirmation.$valid) {\r\n\t\t\t\tvm.DisableCreateButton(true);\r\n\t\t\t\tvar data = {\r\n\t\t\t\t\t\"ReturnOrderId\": vm.returnOrderId,\r\n\t\t\t\t\t\"ActionType\": vm.ActionType,\r\n\t\t\t\t\t\"Reason\": vm.returnUpdateReason\r\n\t\t\t\t}\r\n\t\t\t\tAllOrdersReceivedListService.ReturnOrderAction(token,loggedinUser, data).then(function (resp) {\r\n\t\t\t\t\tif (resp.status == 200) {\r\n\t\t\t\t\t\tvm.closeOrderReturnModel();\r\n\t\t\t\t\t\tvm.showSuccess(\"Success\", 'Order Status Updated Successfully.');\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvm.GetAllOrdersByFilter();\r\n\t\t\t\t\t\t\tvm.GetOrdersDashboardByFilter();\r\n\t\t\t\t\t\t}, 2000);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tvm.DisableCreateButton(false);\r\n\t\t\t\t\t\tvm.showFailure('Failed', resp.data);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\r\n\r\n\t\tvm.ViewJob = function (ticket) {\r\n\t\t\t$state.go('index.JobDetailView', {\r\n\t\t\t ticketId: ticket\r\n\t\t\t}, {\r\n\t\t\t reload: true\r\n\t\t\t});\r\n\t\t }\r\n\r\n\r\n\t\t// vm.RejectReturnPart = function () {\r\n\t\t// \tvm.PartReturn_Confirmation.submitted = true;\r\n\t\t// \tif (vm.PartReturn_Confirmation.$valid) {\r\n\t\t// \t\tvm.DisableCreateButton(true);\r\n\t\t// \t\tvar data = {\r\n\t\t// \t\t\t\"ReturnOrderId\": vm.returnOrderId,\r\n\t\t// \t\t\t\"ActionType\": vm.ActionType,\r\n\t\t// \t\t\t\"Reason\": vm.returnUpdateReason\r\n\t\t// \t\t}\r\n\t\t// \t\tAllOrdersReceivedListService.RejectReturnPart(token,loggedinUser, data).then(function (resp) {\r\n\t\t// \t\t\tif (resp.status == 200) {\r\n\t\t// \t\t\t\tvm.closeOrderReturnModel();\r\n\t\t// \t\t\t\tvm.showSuccess(\"Success\", 'Order Status Updated Successfully.');\r\n\t\t// \t\t\t\tsetTimeout(function () {\r\n\t\t// \t\t\t\t\tvm.GetAllOrdersByFilter();\r\n\t\t// \t\t\t\t\tvm.GetOrdersDashboardByFilter();\r\n\t\t// \t\t\t\t}, 2000);\r\n\t\t// \t\t\t}\r\n\t\t// \t\t\telse {\r\n\t\t// \t\t\t\tvm.DisableCreateButton(false);\r\n\t\t// \t\t\t\tvm.showFailure('Failed', resp.data);\r\n\t\t// \t\t\t}\r\n\t\t// \t\t})\r\n\t\t// \t}\r\n\t\t\t\r\n\t\t// }\r\n\r\n\t\tvm.PDFViewOfShipmentDoc = function (page) {\r\n\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\tMainService.GetImageBlob(loggedinUser, token, page).then(function (resp) {\r\n\t\t\t vm.pdfimage = resp.data;\r\n\t\t\t vm.IsLoadSucessfull = true;\r\n\t\t\t});\r\n\t\t\t$timeout(function () {\r\n\t\t\t taxInvoiceModel = $uibModal.open({\r\n\t\t\t\ttemplateUrl: \"PDFView.html\",\r\n\t\t\t\tsize: \"lg\",\r\n\t\t\t\tscope: $scope,\r\n\t\t\t });\r\n\t\t\t}, 1000);\r\n\t\t };\r\n\r\n\t\t \r\n\r\n\t\tvm.PDFView = function () {\r\n\t\t\tvm.pdfimage = \"\";\r\n\t\t\tvm.IsLoadSucessfull = false;\r\n\t\t\ttaxInvoiceModel = $uibModal.open({\r\n\t\t\t templateUrl: 'PDFView.html',\r\n\t\t\t size: 'lg',\r\n\t\t\t scope: $scope\r\n\t\t\t});\t \r\n\t\t }\r\n\t\t vm.PDFUserModal = function () {\r\n\t\t\ttaxInvoiceModel.close();\r\n\t\t }\r\n\r\n\t\t vm.viewChallanPdf = function (OrderId) {\r\n\t\t\tvm.PDFView();\r\n\t\t\tAllOrdersReceivedListService.GeneratePdfChallan(loggedinUser, token, OrderId).then(function (resp) {\r\n\t\t\t if (resp.status == 200) {\r\n\t\t\t\tvm.ChallanData = resp.data;\r\n\t\t\t\tvar arrrayBuffer = base64ToArrayBuffer(vm.ChallanData);\r\n\t\t\t\tvar blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n\t\t\t\tvm.pdfimage = URL.createObjectURL(blob);\r\n\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t }\r\n\t\t\t});\r\n\t \r\n\t\t }\r\n\r\n\t\t vm.viewPOPdf = function (OrderId) {\r\n\t\t\tvm.PDFView();\r\n\t\t\tAllOrdersReceivedListService.GeneratePdfTaxInvoice(loggedinUser, token, OrderId).then(function (resp) {\r\n\t\t\t if (resp.status == 200) {\r\n\t\t\t\tvm.InvoiceData = resp.data;\r\n\t\t\t\tvar arrrayBuffer = base64ToArrayBuffer(vm.InvoiceData);\r\n\t\t\t\tvar blob = new Blob([arrrayBuffer], { type: \"application/pdf\" });\r\n\t\t\t\tvm.pdfimage = URL.createObjectURL(blob);\r\n\t\t\t\tvm.IsLoadSucessfull = true;\r\n\t\t\t }\r\n\t\t\t});\r\n\t \r\n\t\t }\r\n\r\n\t\t function base64ToArrayBuffer(base64) \r\n\t\t {\r\n\t\t\t var ret = base64.replace('data:application/pdf;base64,','');\r\n\t\t\t\t var binaryString = atob(ret);\r\n\t\t\t\t var binaryLen = binaryString.length;\r\n\t\t\t\t var bytes = new Uint8Array(binaryLen);\r\n\t\t\t\t for (var i = 0; i < binaryLen; i++) {\r\n\t\t\t\t var ascii = binaryString.charCodeAt(i);\r\n\t\t\t\t bytes[i] = ascii;\r\n\t\t\t\t }\r\n\t\t\t\t return bytes;\r\n\t\t }\r\n\t\t \r\n\r\n\t}\r\n});\n\r\nangular.module('inspinia').service('AllAssetsListService', function (ApiURL, FreelancerURL, SchedulingAPI, $log, $http, $localStorage) {\r\n\r\n\r\n\r\n\r\n});\r\n\nangular.module('inspinia').controller('AllAssetsListController', function (OnBoardingFlowService, DashboardService, DTColumnBuilder, $filter, $q, $compile, ManualAssignationJobService, AllAssetsListService, $scope, TicketBasedPlanningService, $window, $uibModal, $timeout, $http, NgMap,\r\n ReferService, $rootScope, $q, DTColumnDefBuilder, $uibModal, $localStorage, $state, FreelancerURL, ApiURL, $timeout, ngProgressFactory, $interval) {\r\n var vm = this;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n\r\n vm.FilterSwitch = false;\r\n vm.client = 1;\r\n vm.workArea = '';\r\n var ProjectModal = {};\r\n var circleArray;\r\n vm.filteredProperties = {};\r\n var customerIndex = 0;\r\n vm.projectName = '';\r\n vm.dtInstance = {};\r\n\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.toggleSingleClass = function () {\r\n $scope.class_status = !$scope.class_status;\r\n $scope.myvalue = true;\r\n };\r\n\r\n $scope.broadcastSentUser = true;\r\n $scope.toggleForBroadcast = function () {\r\n $scope.broadcastSentUser = !$scope.broadcastSentUser;\r\n $scope.myvalue = true;\r\n };\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n $scope.toggleMenu = function () {\r\n if ($scope.manualAssignationWrapper === \"hide-nav\") {\r\n $scope.manualAssignationWrapper = \"show-nav\";\r\n }\r\n else {\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n }\r\n };\r\n $scope.hideAllUser = true;\r\n\r\n $scope.showAllUser = function () {\r\n $scope.hideAllUser = true;\r\n };\r\n $scope.hideAllUserbutton = function () {\r\n $scope.hideAllUser = false;\r\n };\r\n $scope.userClass_status = true;\r\n $scope.toggleBottom = false;\r\n $scope.open360View = function () {\r\n $scope.userClass_status = false;\r\n $scope.myvalue = true;\r\n }\r\n $scope.close360View = function () {\r\n $scope.userClass_status = true;\r\n $scope.myvalue = false;\r\n }\r\n $scope.closeSlideBottom = function () {\r\n $scope.toggleNav = false;\r\n }\r\n $scope.hideoverlay = function () {\r\n $scope.myvalue = false;\r\n $scope.class_status = true;\r\n $scope.userClass_status = true;\r\n $scope.broadcastSentUser = true;\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n vm.closeFeedbackoption();\r\n }\r\n $scope.close360ViewBroadcaste = function () {\r\n $scope.myvalue = false;\r\n angular.element('#div1').removeClass(\"alpha\");\r\n $scope.userClass_status = true;\r\n }\r\n // $scope.userSingle = function() {\r\n // $scope.userClass_status = !$scope.userClass_status;\r\n\r\n // };\r\n $scope.userFilter = true;\r\n $scope.assignJobFilter = function () {\r\n $scope.userFilter = !$scope.userFilter;\r\n $scope.myvalue = true;\r\n $scope.manualAssignationWrapper = \"hide-nav\";\r\n // $scope.toggleMenu();\r\n };\r\n $scope.minatureSlide = true;\r\n $scope.minatureSlideBtn = function () {\r\n $scope.minatureSlide = !$scope.minatureSlide;\r\n $scope.myvalue = true;\r\n };\r\n\r\n\r\n $scope.hideFilter = function () {\r\n $scope.userFilter = true;\r\n $scope.minatureSlide = true;\r\n $scope.myvalue = false;\r\n }\r\n\r\n vm.CustomDateformat = $localStorage.CustomDateformat;\r\n vm.FreelancerAccess = $localStorage.accountConfig.FreelancerAccess;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.confirmTagModal = $scope.$parent.$parent.main.confirmTagModal;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n vm.CurrencySymbol = $localStorage.accountConfig.CurrencySymbol;\r\n vm.EnableRegion = vm.getAccountConfigSetting('EnableRegion');\r\n vm.VerticalName = vm.getAccountConfigSetting('Vertical');\r\n var token = $localStorage.token;\r\n vm.searchText = \"\";\r\n vm.searchTicket = \"\";\r\n vm.IsSearch = false;\r\n vm.DateField = \"CreatedOn\";\r\n var fnitemNames = '';\r\n var fnitemValues = '';\r\n var witemNames = \"\";\r\n var witemValues = \"\";\r\n vm.IsFreelancerBidCount = false;\r\n vm.IsFixedTeamCount = false;\r\n var wsSDate = '';\r\n var wsEDate = '';\r\n var fPageIndex = 1;\r\n var fPageSize = 10;\r\n vm.SearchByUserType = '';\r\n vm.searchJobTypeText = \"\";\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.TotalLocation = 0;\r\n vm.TotalMatch = 0;\r\n vm.NotMatch = 0;\r\n vm.Atleast3Match = 0;\r\n vm.Atleast2Match = 0;\r\n vm.Atleast1Match = 0;\r\n vm.RunRateInDays = 0;\r\n vm.RangeInKm = 0;\r\n vm.JobSkill = \"\";\r\n vm.RegistrationStatus = \"\";\r\n vm.UserRegistrationStatus = \"\";\r\n vm.TechRole = \"\";\r\n vm.Asset = \"\";\r\n vm.Tools = \"\";\r\n vm.Certificate = \"\";\r\n vm.PermanentCity = \"\";\r\n vm.techPincode = \"\";\r\n vm.PermanentState = \"\";\r\n vm.TicketState = \"\";\r\n vm.SearchByAccountName = \"\";\r\n vm.PreferredForAccounts = \"\";\r\n vm.TicketCity = \"\";\r\n vm.ticketStatus = \"\";\r\n vm.TicketSkill = \"\";\r\n vm.Pincode = \"\";\r\n $scope.Prime = false;\r\n $scope.NonPrime = false;\r\n vm.PssStatus = \"\";\r\n vm.SMEInterctionVideo = false;\r\n vm.UserDetailVerification = \"\";\r\n vm.showErrors = false;\r\n vm.showPassed = false;\r\n vm.errorList = [];\r\n vm.disableUploadButton = true;\r\n vm.LocationAddressList = [];\r\n vm.TicketBasedPlanningList = {};\r\n vm.bulkuploadType = \"Location\";\r\n vm.progressbar = ngProgressFactory.createInstance();\r\n vm.canceler = $q.defer();\r\n vm.successTitle = \"\";\r\n vm.successMsg = \"\";\r\n vm.noMsg = [];\r\n vm.noOfRecords = 0;\r\n vm.file = null;\r\n vm.fileName = '';\r\n vm.fileDescription = '';\r\n vm.techpageindexCount = 0;\r\n vm.ticketPoolPageListCount = 10;\r\n vm.customerPageListCount = 10;\r\n vm.userPoolPageListCount = 10;\r\n vm.pageListCounts = [10, 20, 30, 50];\r\n vm.ticketPoolListLenth = 0;\r\n vm.customerListLenth = 0;\r\n vm.userPoolListLength = 0;\r\n var PageIndex = 1;\r\n var PageSize = 10;\r\n vm.pageindexCount = 0;\r\n vm.TPpageindexCount = 0;\r\n vm.cuPageindexCount = 0;\r\n vm.UPpageindexCount = 0;\r\n vm.DateField = \"StatusChangedOn\";\r\n vm.searchStatusText = \"All\";\r\n var uPageIndex = 1;\r\n var uwPageIndex = 1;\r\n var uPageSize = 10;\r\n var uwPageSize = 10;\r\n var ulPageIndex = 1;\r\n var ulPageSize = 10;\r\n vm.AlListCount = 10;\r\n var uwtPageIndex = 1;\r\n var uwtPageSize = 10;\r\n var uwtPageSize = 10;\r\n vm.UWListCount = 10;\r\n vm.EAlListCount = 10;\r\n vm.UsersType = \"\";\r\n vm.OrderSequence = \"asc\";\r\n // vm.Orderby = \"City\";\r\n // vm.SortBy = \"Distance\";\r\n vm.Orderby = \"CreatedOn\";\r\n vm.SortType = \"desc\";\r\n var uitemNames = \"\";\r\n var uitemValues = \"\";\r\n vm.searchUsersText = \"\";\r\n vm.jobsCount = '';\r\n vm.Technicianstartingdate = '2017-01-01';\r\n vm.userPageListCount = 10;\r\n vm.financePageListCount = 10;\r\n vm.UWticketsListCount = 10;\r\n vm.pageListCountsuwt = [10, 20, 30, 50];\r\n vm.IsAuthorizedServiceCenter = false;\r\n var startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n var endDate = moment().format(\"YYYY-MM-DD\");\r\n $scope.dates = { startDate: startDate, endDate: endDate };\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment(vm.Technicianstartingdate), moment(endDate)],\r\n };\r\n\r\n $scope.dateRangeChange = function (ev, picker) {\r\n startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n endDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n vm.getAllJobForExceptionList();\r\n vm.GetAnalysisDataList(loggedinUser, token, vm.UploadId, vm.AnalysisId, vm.Orderby, vm.OrderSequence, uPageIndex, uPageSize);\r\n\r\n };\r\n\r\n\r\n vm.City = '';\r\n vm.Pincode = '';\r\n vm.Experience = '';\r\n vm.Ratings = '';\r\n vm.Assets_Tools = '';\r\n vm.Jobscount = '';\r\n vm.FilterAdhar = '';\r\n vm.FilterPancard = '';\r\n $localStorage.filteraddskill = '';\r\n $localStorage.filterPermanentstate = '';\r\n vm.currentPage = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n vm.pageSize = 20;\r\n $scope.totalUsers = 0;\r\n $scope.usersPerPage = 20; // this should match however many results your API puts on one page\r\n $scope.pagination = {\r\n current: 1\r\n };\r\n $scope.pagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n $scope.totalTableUsers = 0;\r\n $scope.usersTablePerPage = 20; // this should match however many results your API puts on one page\r\n $scope.UserTablepagination = {\r\n current: 1\r\n };\r\n\r\n $scope.UserTablepagination.current = $localStorage.PageIndex ? $localStorage.PageIndex : 1;\r\n $scope.pageChanged = function (newPage) {\r\n vm.currentPage = newPage;\r\n vm.applyfilter(newPage);\r\n\r\n };\r\n $scope.isOpen = false;\r\n $scope.isOpen1 = false;\r\n $scope.isCollapsed = true;\r\n $scope.isCollapsed0 = true;\r\n $scope.isCollapsed1 = true;\r\n $scope.isCollapsed2 = true;\r\n $scope.isCollapsed3 = true;\r\n $scope.isCollapsed4 = true;\r\n $scope.isCollapsed5 = true;\r\n $scope.isCollapsed6 = true;\r\n $scope.isCollapsed7 = true;\r\n $scope.isCollapsed8 = true;\r\n $scope.isCollapsed9 = true;\r\n $scope.isCollapsed10 = true;\r\n $scope.isCollapsed11 = true;\r\n $scope.isCollapsed12 = true;\r\n $scope.isCollapsed13 = true;\r\n $scope.isCollapsed14 = true;\r\n $scope.isCollapsed15 = true;\r\n $scope.isCollapsed16 = true;\r\n $scope.isCollapsed17 = true;\r\n $scope.isCollapsed18 = true;\r\n $scope.isCollapsed19 = true;\r\n $scope.isCollapsed20 = true;\r\n $scope.isCollapsed21 = true;\r\n $scope.isCollapsed22 = true;\r\n $scope.isCollapsed23 = true;\r\n $scope.isCollapsed24 = true;\r\n $scope.isCollapsed25 = true;\r\n $scope.isCollapsed26 = true;\r\n $scope.isCollapsed27 = true;\r\n $scope.isCollapsed28 = true;\r\n $scope.isCollapsed29 = true;\r\n $scope.isCollapsed30 = true;\r\n $scope.isCollapsed31 = true;\r\n $scope.isCollapsed32 = true;\r\n $scope.isCollapsed33 = true;\r\n $scope.isCollapsed34 = true;\r\n $scope.isCollapsed35 = true;\r\n $scope.isCollapsed36 = true;\r\n $scope.isCollapsed37 = true;\r\n $scope.isCollapsed38 = true;\r\n $scope.isCollapsed39 = true;\r\n $scope.isCollapsed40 = true;\r\n $scope.isCollapsed41 = true;\r\n $scope.isCollapsed42 = true;\r\n $scope.isCollapsed43 = true;\r\n\r\n $scope.openAnalysisReport = function (analysisDetails) {\r\n $localStorage.UploadId = analysisDetails.UploadId;\r\n $scope.showAnalysisReport = !$scope.showAnalysisReport;\r\n angular.element('#filter-visible-area').removeClass(\"filter-slider-visible\");\r\n }\r\n $scope.backScreen = function () {\r\n $scope.showAnalysisReport = false;\r\n angular.element('#filter-visible-area').addClass(\"filter-slider-visible\");\r\n }\r\n vm.showUserFilter = function () {\r\n vm.IsBasedOnPincode = true;\r\n vm.chkselect = true;\r\n vm.RangeInKm = 0;\r\n vm.JobSkill = \"\";\r\n vm.OneJobDone = false;\r\n vm.MatchingSkill = false;\r\n vm.UserRegistrationStatus = \"\";\r\n vm.TechRole = \"\";\r\n }\r\n\r\n $scope.isActive = false;\r\n $scope.isActive1 = true;\r\n $scope.HideText = function () {\r\n $scope.isActive = true;\r\n $scope.isActive1 = false;\r\n }\r\n $scope.ShowText = function () {\r\n $scope.isActive = false;\r\n $scope.isActive1 = true;\r\n };\r\n\r\n\r\n $scope.isClick = false;\r\n $scope.isClick1 = false;\r\n $scope.isClick2 = false;\r\n $scope.isClick3 = false;\r\n $scope.activeButton = function () {\r\n $scope.isClick = !$scope.isClick;\r\n }\r\n $scope.activeButton1 = function () {\r\n $scope.isClick1 = !$scope.isClick1;\r\n }\r\n $scope.activeButton2 = function () {\r\n $scope.isClick2 = !$scope.isClick2;\r\n }\r\n $scope.activeButton3 = function () {\r\n $scope.isClick3 = !$scope.isClick3;\r\n }\r\n\r\n $scope.class1 = false;\r\n $scope.addRemoveRedClass = function (UploadId) {\r\n $localStorage.UploadId = UploadId;\r\n if ($scope.class1) {\r\n $scope.class1 = false;\r\n } else {\r\n $scope.class1 = true;\r\n }\r\n }\r\n function getAllStates() {\r\n var defered = $q.defer();\r\n ReferService.getAllState(loggedinUser, token).then(function (resp) {\r\n defered.resolve(resp);\r\n }, function (error) {\r\n defered.reject(error);\r\n });\r\n return defered.promise;\r\n }\r\n\r\n var allStatePromise = getAllStates(loggedinUser);\r\n allStatePromise.then(function (resp) {\r\n vm.StateList = resp.data;\r\n\r\n });\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state, token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n \r\n }\r\n});\nangular.module('inspinia').controller('AdvancedDashboardShareController', function ($state, $stateParams, DTColumnBuilder, $q,$compile, $scope, AdvancedDashboardService, CentralHelpdeskConfigService, $stateParams, $q, $log, $localStorage, DTOptionsBuilder, DTColumnDefBuilder, ReportService, $timeout) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n vm.matrixName = '';\r\n\r\n if(!loggedinUser)\r\n {\r\n loggedinUser = $stateParams.userid;\r\n }\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n var token = $localStorage.token;\r\n\r\n if(!token)\r\n {\r\n token = $stateParams.token;\r\n }\r\n\r\n\r\n vm.createCallback = function (modelObj, callbacks) {\r\n return function (data) {\r\n if (modelObj && data) {\r\n modelObj.extend(data);\r\n }\r\n if (callbacks) {\r\n angular.forEach(callbacks, function (d) {\r\n if (d) {\r\n d(data);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n vm.getAccountConfigSetting = function(name){\r\n return ($localStorage.accountConfig && $localStorage.accountConfig[name]!=null) ? $localStorage.accountConfig[name] : null; \r\n }\r\n\r\n vm.showSuccess = function (title, body) {\r\n if (title) {\r\n vm.toaster_success.title = title;\r\n } if (body) {\r\n vm.toaster_success.body = body;\r\n }\r\n toaster.pop(vm.toaster_success);\r\n }\r\n\r\n vm.showFailure = function (title, body) {\r\n if (title) {\r\n vm.toaster_fail.title = title;\r\n } if (body) {\r\n vm.toaster_fail.body = body;\r\n }\r\n toaster.pop(vm.toaster_fail);\r\n }\r\n\r\n AdvancedDashboardService.setShowSuccess(vm.showSuccess);\r\n AdvancedDashboardService.setShowFailure(vm.showFailure);\r\n vm.dashboard_data = {};\r\n vm.metricsCharts = {};\r\n vm.tableCharts = {};\r\n vm.lineCharts = {};\r\n vm.pieCharts = {};\r\n vm.barCharts = {};\r\n vm.stackedCharts ={};\r\n vm.deepLink = {};\r\n vm.selectDimension = {};\r\n vm.states = [];\r\n var start_date = '';\r\n vm.BusinessUnit = '';\r\n vm.State = '';\r\n vm.Skill = '';\r\n vm.Account = '';\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n var thisFiscalStart = '';\r\n var thisFiscalEnd = '';\r\n var intialLoad = true;\r\n vm.districts = [];\r\n vm.District = '';\r\n //vm.enableFilter = false;\r\n vm.filters = [];\r\n var total = 'Total';\r\n\r\n if (moment().quarter() === 2) {\r\n thisFiscalStart = moment().month('April').startOf('month');\r\n thisFiscalEnd = moment().add(1, 'year').month('March').endOf('month');\r\n } else {\r\n thisFiscalStart = moment().subtract(1, 'year').month('April').startOf('month');\r\n thisFiscalEnd = moment().month('March').endOf('month');\r\n };\r\n\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()], \r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], \r\n 'Payment week': [moment().startOf('week').isoWeekday(1), moment().endOf('week').isoWeekday(0)], \r\n // 'Last week': [moment().subtract(1, 'weeks').startOf('week').isoWeekday(1), moment().subtract(1, 'weeks').endOf('week').isoWeekday(0)], \r\n 'This week': [moment().startOf('week'), moment().endOf('week')], \r\n 'Last week': [moment().subtract(1, 'weeks').startOf('week'), moment().subtract(1, 'weeks').endOf('week')], \r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n // 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This quater': [moment().startOf('quarter'), moment().endOf('quarter')],\r\n 'Last quater': [moment().subtract(1, 'quarters').startOf('quarter'), moment().subtract(1, 'quarters').endOf('quarter')], \r\n 'This year': [thisFiscalStart, thisFiscalEnd], \r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n $scope.dateRangeChange = function(ev, picker){\r\n var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n var endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n vm.tableCharts = {};\r\n vm.loadSpecificDashboard($stateParams.name);\r\n intialLoad = false;\r\n };\r\n\r\n// $scope.dateRangeChange = function(ev, picker){\r\n// var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n// var endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n \r\n// var duration = picker.endDate.diff(picker.startDate, 'days');\r\n// vm.Age = duration;\r\n// vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n// vm.tableCharts = {};\r\n// if(vm.Age <= 31) {\r\n// vm.loadSpecificDashboard($stateParams.name);\r\n// intialLoad = false;\r\n// }\r\n// else {\r\n// // vm.showFailure(\"Please Select date range within 30 days\");\r\n// alert(\"Please Select date range within 30 days\");\r\n// }\r\n\r\n// };\r\n \r\n $scope.dates = { startDate: thisFiscalStart, endDate: thisFiscalEnd};\r\n vm.rollup = \"Range(\"+thisFiscalStart.format(\"YYYY-MM-DD\")+\"|\"+thisFiscalEnd.format(\"YYYY-MM-DD\")+\")\";\r\n\r\n vm.getSkills = function () {\r\n AdvancedDashboardService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills; \r\n }, vm.showFailure);\r\n } \r\n vm.getSkills();\r\n\r\n vm.getAccounts = function () {\r\n if(loggedinUserRole == \"Dispatch Manager\")\r\n {\r\n CentralHelpdeskConfigService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data && resp.status==200) {\r\n vm.accounts = resp.data; \r\n } \r\n }, vm.showFailure);\r\n }\r\n else\r\n {\r\n AdvancedDashboardService.getAccounts(loggedinUser, token, function (accounts) {\r\n vm.accounts = accounts; \r\n }, vm.showFailure);\r\n } \r\n } \r\n vm.getAccounts();\r\n\r\n\r\n vm.updateDefaultDateFilter = function( dasahboardFilter){ \r\n if(intialLoad){ \r\n var startDate = '';\r\n var endDate = '';\r\n if(dasahboardFilter && dasahboardFilter.DefaultDateFilter)\r\n { \r\n startDate = $scope.ranges[dasahboardFilter.DefaultDateFilter][0];\r\n endDate = $scope.ranges[dasahboardFilter.DefaultDateFilter][1]; \r\n $scope.dates = { startDate: startDate, endDate: endDate};\r\n $scope.$broadcast('update.daterangepicker', {date: $scope.dates});\r\n vm.rollup = \"Range(\"+startDate.format(\"YYYY-MM-DD\")+\"|\"+endDate.format(\"YYYY-MM-DD\")+\")\"; \r\n } \r\n }\r\n }\r\n\r\n vm.getBusinessUnits = function () {\r\n AdvancedDashboardService.getBusinessUnits(loggedinUser, token, function (businessUnits) {\r\n vm.businessUnits = businessUnits; \r\n }, vm.showFailure);\r\n } \r\n vm.getBusinessUnits();\r\n\r\n vm.getStates = function () {\r\n AdvancedDashboardService.getAllState(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.states = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n vm.getStates();\r\n\r\n vm.getDistrictByState = function () {\r\n AdvancedDashboardService.getDistrictsByState(loggedinUser, token, vm.State, function (districts) {\r\n vm.districts = districts; \r\n }, vm.showFailure);\r\n }\r\n\r\n vm.getCitiesByState = function () {\r\n AdvancedDashboardService.getCitiesByState(loggedinUser, token, vm.State).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.districts = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n // vm.getCitiesByState();\r\n\r\n vm.Allapplyfilter = function(){\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n prepareFilters('BusinessUnit', vm.BusinessUnit);\r\n prepareFilters('AccountName', vm.Account);\r\n prepareFilters('Skill', vm.Skill);\r\n prepareFilters('State', vm.State);\r\n prepareFilters('City', vm.District);\r\n vm.tableCharts = {};\r\n vm.loadSpecificDashboard($stateParams.name); \r\n }\r\n\r\n var prepareFilters = function(filterkey, filervalue){ \r\n if(filervalue)\r\n {\r\n if(vm.filterKeys)\r\n {\r\n vm.filterKeys = vm.filterKeys + ',' + filterkey;\r\n vm.filterValues = vm.filterValues + ',' + filervalue;\r\n }\r\n else\r\n {\r\n vm.filterKeys = filterkey;\r\n vm.filterValues = filervalue;\r\n\r\n }\r\n }\r\n }\r\n\r\n vm.ResetFilter = function(){\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n vm.BusinessUnit = '';\r\n vm.Account = '';\r\n vm.Skill = '';\r\n vm.State = '';\r\n vm.District = '';\r\n vm.tableCharts = {};\r\n vm.loadSpecificDashboard($stateParams.name);\r\n }\r\n\r\n\r\n\r\n vm.getChart = function (chartId, chartType, metrics, dimensions, subtitle, YAxis, rollup) {\r\n vm.selectDimension[chartId] = {};\r\n AdvancedDashboardService.getChart1(loggedinUser, token, chartType, metrics, dimensions, rollup, vm.filterKeys, vm.filterValues,\"\",false, total, vm.createCallback(null, [function (data) {\r\n if (chartType == 'Metrics' || chartType == 'OneServMetrics') {\r\n vm.metricsCharts[chartId] = {};\r\n vm.metricsCharts[chartId].value = data;\r\n vm.metricsCharts[chartId].subtitles = subtitle.split(\",\");\r\n vm.metricsCharts[chartId].ChartId = chartId;\r\n } else if (chartType == 'Table') {\r\n vm.tableCharts[chartId] = {};\r\n vm.tableCharts[chartId].value = data;\r\n vm.tableCharts[chartId].ChartId = chartId;\r\n vm.createTableChart(chartId, data.Categories.length , data); \r\n\r\n //vm.buildColumnBuilder(chartId, data.Categories.length);\r\n } else if (chartType == 'Line') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n } else if (chartType == 'Bar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n }else if (chartType == 'StackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n } else if (chartType == 'Pie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomPie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.pieCharts[chartId].selectedDimension=dimensions;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomLine') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n }else if (chartType == 'CustomBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n }else if (chartType == 'DrillDownBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createDrilledDownBarChart(chartId, YAxis);\r\n }else if (chartType == 'CustomStackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n }\r\n }]));\r\n }\r\n\r\n vm.dashboardCallback = vm.createCallback(null, [function (data) {\r\n vm.dashboard_data = data;\r\n\r\n if(data && data.DashboardFilters){\r\n vm.enableFilter = true; \r\n vm.updateDefaultDateFilter(data.DashboardFilters); \r\n //vm.getFilerValues(data.DashboardFilters.FilterList); \r\n }\r\n else\r\n {\r\n vm.enableFilter = false;\r\n vm.updateDefaultDateFilter(null); \r\n } \r\n \r\n angular.forEach(data.ChartModel, function (d) {\r\n\r\n if (d.ClickableColumns != null && d.ClickableColumns.length > 0) {\r\n angular.forEach(d.ClickableColumns, function(cl){\r\n if (cl.Link==\"ProjectSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function () { \r\n return \"index.Report({report_name:'ProjectSummary', key:'\"+cl.KeyName+\"'})\";\r\n }\r\n }else if (cl.Link==\"CustomerSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function () { \r\n \r\n return \"index.Report({report_name:'CustomerSummary', key:'\"+cl.KeyName+\"'})\";\r\n }\r\n }else if (cl.Link==\"DashboardReport\") {\r\n \r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function (filterValue,filterName) {\r\n var Keyfilter = cl.KeyName; \r\n \r\n // else\r\n // {\r\n // start_date = vm.rollup;\r\n // }\r\n if (cl.KeyName.indexOf(\"|\")>=0) {\r\n var stringArray = cl.KeyName.split('|');\r\n filterName = stringArray[1];\r\n Keyfilter = stringArray[0];\r\n }\r\n if (filterValue == undefined && filterName ==undefined) {\r\n filterValue = '';\r\n filterName = '';\r\n }\r\n if (d.ChartType == 'Metrics' || d.chartType == 'OneServMetrics') {\r\n //console.log('start_date',start_date);\r\n if (d.Rollups && d.Rollups.length>0) {\r\n angular.forEach(d.Rollups, function(d){\r\n if (d == 'Today') {\r\n var sDate = moment().format(\"YYYY-MM-DD\");\r\n var eDate = moment().format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n }\r\n else if (d == 'Yesterday') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\"; }\r\n else if (d == 'Monthly') {\r\n var sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n var eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n }else if (d == 'Week1') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week1');\r\n }else if (d == 'Week2') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week2');\r\n }else if (d == 'Week3') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week3');\r\n }else if (d == 'Week4') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week4');\r\n }\r\n })\r\n }else{\r\n start_date = vm.rollup;\r\n }\r\n var obj = {\r\n \"report_name\":'LinkTicketReport',\r\n \"key\":Keyfilter,\r\n \"filter_key\":filterName,\r\n \"filter_name\":filterValue,\r\n \"start_date\":start_date,\r\n \"isData\":true\r\n } \r\n return obj;\r\n }else{\r\n return \"index.DashboardReport({report_name:'LinkTicketReport', key:'\"+Keyfilter+\"',filter_key:'\"+filterName+\"', filter_name:'\"+filterValue+\"', start_date:'\"+vm.rollup+\"', isData:'\"+true+\"'})\";\r\n } \r\n }\r\n }else{\r\n \t\t\t\t\t\tif (cl.Link){ \r\n \t\t\t\t\t\t\tvm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function (filterValue,filterName) {\r\n \t\t\t\t\t\t\t\tvar Keyfilter = cl.KeyName; \r\n \t\t\t\t\t\t\t if (cl.KeyName.indexOf(\"|\")>=0) {\r\n \t\t\t\t\t\t\t\t\tvar stringArray = cl.KeyName.split('|');\r\n \t\t\t\t\t\t\t\t\tfilterName = stringArray[1];\r\n \t\t\t\t\t\t\t\t\tKeyfilter = stringArray[0];\r\n \t\t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t\t\tif (filterValue == undefined && filterName ==undefined) {\r\n \t\t\t\t\t\t\t\t\tfilterValue = '';\r\n \t\t\t\t\t\t\t\t\tfilterName = '';\r\n \t\t\t\t\t\t\t\t}\r\n\r\n filterName = filterName + ',' + vm.filterKeys;\r\n filterValue = filterValue + ',' + vm.filterValues;\r\n\r\n\r\n \t\t\t\t\t\t\t\tif (d.ChartType == 'Metrics' || d.chartType == 'OneServMetrics') {\r\n \t\t\t\t\t\t\t\t\t//console.log('start_date',start_date);\r\n \t\t\t\t\t\t\t\t\tif (d.Rollups && d.Rollups.length>0) {\r\n \t\t\t\t\t\t\t\tangular.forEach(d.Rollups, function(d){\r\n \t\t\t\t\t\t\t\t\tif (d == 'Today') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n \t\t\t\t\t\t\t\t\t}\r\n else if (d == 'Yesterday') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Monthly') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week1') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week1');\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week2') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week2');\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week3') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week3');\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week4') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week4');\r\n \t\t\t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t\t\t})\r\n \t\t\t\t\t\t\t\t}else{\r\n \t\t\t\t\t\t\t\t\tstart_date = vm.rollup;\r\n \t\t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t\t\t var obj = { \r\n \t\t\t\t\t\t\t\t\t\t\"report_name\":cl.Link,\r\n \t\t\t\t\t\t\t\t\t\t\"key\":Keyfilter,\r\n \t\t\t\t\t\t\t\t\t\t\"filter_key\":filterName,\r\n \t\t\t\t\t\t\t\t\t\t\"filter_name\":filterValue,\r\n \t\t\t\t\t\t\t\t\t\t\"start_date\":start_date,\r\n \t\t\t\t\t\t\t\t\t\t\"isData\":true\r\n \t\t\t\t\t\t\t\t\t} \r\n \t\t\t\t\t\t\t\t\treturn obj;\r\n \t\t\t\t\t\t\t\t}else{\r\n \t\t\t\t\t\t\t\t\treturn \"index.DashboardReport({report_name:'\" + cl.Link + \"', key:'\"+Keyfilter+\"',filter_key:'\"+filterName+\"', filter_name:'\"+filterValue+\"', start_date:'\"+vm.rollup+\"', isData:'\"+true+\"'})\";\r\n \t\t\t\t\t\t\t\t} \r\n \t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t} \r\n })\r\n }\r\n if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Today\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Yesterday\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week1\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week1\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week2\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week2\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week3\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week3\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week4\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week4\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly-6\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly-6\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Monthly\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Today\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Yesterday\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if(d.ChartType == 'CustomBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'DrillDownBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'CustomStackedBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'CustomPie' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }\r\n else {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, vm.rollup);\r\n }\r\n\r\n });\r\n // console.log('vm.deepLink',vm.deepLink);\r\n }])\r\n\r\n vm.GetDateRange = function(month,year,week){\r\n var weeks=[],\r\n firstDate=new Date(year, month, 1),\r\n lastDate=new Date(year, month+1, 0), \r\n numDays= lastDate.getDate();\r\n if (week == 'week1') {\r\n var start=1;\r\n var end=7;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }else if (week == 'week2') {\r\n var start = 8;\r\n var end = 14;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }else if (week == 'week3') {\r\n var start = 15;\r\n var end = 21;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }else if (week == 'week4') {\r\n var start = 22;\r\n var end = numDays;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }\r\n }\r\n\r\n vm.getDashboard = function (name) {\r\n AdvancedDashboardService.getDashboard(loggedinUser, name, token, vm.dashboardCallback);\r\n }\r\n\r\n\r\n vm.loadDefaultDashboard = function(){\r\n if ($stateParams.name == 'account') {\r\n vm.getDashboard('Account Dashboard');\r\n } else if ($stateParams.name == 'accountDetails') {\r\n vm.getDashboard('Account Dashboard');\r\n }else if ($stateParams.name == 'admin') {\r\n vm.getDashboard('Admin Dashboard');\r\n }else if ($stateParams.name == 'manager') {\r\n vm.getDashboard('Manager Dashboard');\r\n }else if ($stateParams.name == 'supervisor') {\r\n vm.getDashboard('Supervisor Dashboard');\r\n }else if ($stateParams.name == 'vendor') {\r\n vm.getDashboard('Vendor Dashboard');\r\n } else if ($stateParams.name == \"servicecenter\") {\r\n vm.getDashboard('Service Center Dashboard');\r\n }\r\n else {\r\n vm.getDashboard($stateParams.name);\r\n }\r\n }\r\n\r\n vm.loadSpecificDashboard = function(name){\r\n var DashboardListModel = vm.getAccountConfigSetting('DashboardListModel');\r\n var isLoaded = false;\r\n if(DashboardListModel && DashboardListModel.length>0){\r\n angular.forEach(DashboardListModel, function(d){\r\n if(d.DashboardType == name){\r\n vm.getDashboard(d.DashboardName);\r\n isLoaded = true;\r\n }\r\n })\r\n }\r\n if(isLoaded==false){\r\n vm.loadDefaultDashboard(name);\r\n }\r\n }\r\n\r\n vm.loadSpecificDashboard($stateParams.name);\r\n\r\n vm.LinkClick = function(url){\r\n // console.log(url);\r\n var i = vm.deepLink[url]('','');\r\n // console.log('i',i);\r\n var key ='';\r\n var filter_key='';\r\n var filter_name = '';\r\n var start_date='';\r\n var report_name = '';\r\n key = i.key;\r\n report_name = i.report_name;\r\n filter_key = i.filter_key;\r\n filter_name = i.filter_name;\r\n start_date = i.start_date;\r\n // console.log('params',key,report_name,filter_key,filter_name,start_date);\r\n $state.go('index.DashboardReport', {\r\n report_name: report_name,\r\n key: key,\r\n filter_key: filter_key,\r\n filter_name: filter_name,\r\n start_date: start_date,\r\n isData: true\r\n }, \r\n {\r\n reload: true\r\n });\r\n }\r\n \r\n //$log.log(\"$stateParams.name\",$stateParams.name);\r\n\r\n vm.saveRollup = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n if (chartType == 'Line') {\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis); \r\n }else if(chartType == 'Bar'){\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createBarChart(chartId, yAxis); \r\n }else if(chartType == 'CustomLine'){\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n dimensions = vm.lineCharts[chartId].selectedDimension;\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis); \r\n }else if(chartType == 'CustomBar'){\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n //$log.log(\"rollup\", rollup);\r\n if (vm.selectDimension && vm.selectDimension[chartId].dimension.length>0) {\r\n dimensions = vm.selectDimension[chartId].dimension; \r\n }else{\r\n dimensions = vm.lineCharts[chartId].selectedDimension;\r\n } \r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis); \r\n } \r\n }\r\n\r\n vm.ChangeDimensions = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.lineCharts[chartId].selectedDimension = dimensions;\r\n rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n $timeout(function(){\r\n vm.createLineChart(chartId, yAxis);\r\n },1000) \r\n }\r\n\r\n //For CustomPieChart\r\n vm.ChangeDimensionsPie = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.pieCharts[chartId].selectedDimension = dimensions;\r\n // vm.selectDimension[chartId].dimension = dimensions;\r\n //console.log('selectDimension',vm.selectDimension);\r\n // vm.lineCharts[chartId].selectedRollup = rollup;\r\n //rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, \"\");\r\n $timeout(function(){\r\n vm.createPieChart(chartId, yAxis);\r\n },1000)\r\n \r\n }\r\n\r\n //For CustomBarChart\r\n vm.ChangeDimensionsBar = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n // vm.selectDimension[chartId].dimension = dimensions;\r\n //console.log('selectDimension',vm.selectDimension);\r\n // vm.lineCharts[chartId].selectedRollup = rollup;\r\n //rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, \"\");\r\n $timeout(function(){\r\n vm.createBarChart(chartId, yAxis);\r\n },1000)\r\n \r\n }\r\n\r\n //For CustomStackedChart\r\n vm.ChangeDimensionsCustomStackedBar = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.stackedCharts[chartId].selectedDimension = dimensions;\r\n // vm.selectDimension = dimensions;\r\n // console.log('selectDimension',vm.selectDimension);\r\n // vm.lineCharts[chartId].selectedRollup = rollup;\r\n //rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, \"\");\r\n $timeout(function(){\r\n vm.createStackedChart(chartId, yAxis);\r\n },1000)\r\n \r\n }\r\n\r\n vm.isActiveRollbackCustomPie = function(chartId, dimension){\r\n if(vm.pieCharts[chartId] && vm.pieCharts[chartId].selectedDimension){\r\n return vm.pieCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackCustomBar = function(chartId, dimension){\r\n if(vm.barCharts[chartId] && vm.barCharts[chartId].selectedDimension){\r\n return vm.barCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackCustomStackedBar = function(chartId, dimension){\r\n if(vm.stackedCharts[chartId] && vm.stackedCharts[chartId].selectedDimension){\r\n return vm.stackedCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n\r\n vm.isActiveRollbackBar = function(chartId, rollup){\r\n if(vm.barCharts[chartId] && vm.barCharts[chartId].selectedRollup){\r\n return vm.barCharts[chartId].selectedRollup == rollup;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackStackedBar = function(chartId, rollup){\r\n if(vm.stackedCharts[chartId] && vm.stackedCharts[chartId].selectedRollup){\r\n return vm.stackedCharts[chartId].selectedRollup == rollup;\r\n }\r\n return false;\r\n }\r\n\r\n vm.isActiveRollback = function(chartId, rollup){\r\n if(vm.lineCharts[chartId] && vm.lineCharts[chartId].selectedRollup){\r\n return vm.lineCharts[chartId].selectedRollup == rollup;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackCustome = function(chartId, dimension){\r\n if(vm.lineCharts[chartId] && vm.lineCharts[chartId].selectedDimension){\r\n return vm.lineCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n\r\n vm.createLineChart = function (chartId, yAxis) {\r\n vm.chartOptions = vm.chartOptions ? vm.chartOptions : {};\r\n $timeout(function () {\r\n if (vm.lineCharts[chartId] && vm.lineCharts[chartId].value) {\r\n vm.chartOptions[chartId] = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'line'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n categories: vm.lineCharts[chartId].value.Categories\r\n },\r\n // legend: {\r\n // layout: 'horizontal',\r\n // align: 'left',\r\n // itemWidth: 100,\r\n // verticalAlign: 'bottom',\r\n // //y: 30,\r\n // navigation: {\r\n // activeColor: '#3E576F',\r\n // animation: true,\r\n // arrowSize: 12,\r\n // inactiveColor: '#CCC',\r\n // style: {\r\n // fontWeight: 'bold',\r\n // color: '#333',\r\n // fontSize: '12px'\r\n // }\r\n // }\r\n // },\r\n // legend: {\r\n // align: 'right',\r\n // verticalAlign: 'top',\r\n // layout: 'vertical',\r\n // x: 0,\r\n // y: 100\r\n // },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n },\r\n scrollbar: {\r\n enabled: true\r\n }\r\n },\r\n plotOptions: {\r\n line: {\r\n dataLabels: {\r\n enabled: true\r\n },\r\n enableMouseTracking: true\r\n }\r\n },\r\n series: GetSeries()\r\n\r\n };\r\n function GetSeries(){\r\n\r\n if (vm.lineCharts[chartId].value.Series.length>10) {\r\n \r\n for(var i=0; i10) {\r\n var legend = {\r\n layout: 'horizontal',\r\n align: 'left',\r\n itemWidth: 100,\r\n verticalAlign: 'bottom',\r\n //y: 30,\r\n navigation: {\r\n activeColor: '#3E576F',\r\n animation: true,\r\n arrowSize: 12,\r\n inactiveColor: '#CCC',\r\n style: {\r\n fontWeight: 'bold',\r\n color: '#333',\r\n fontSize: '12px'\r\n }\r\n }\r\n }\r\n vm.chartOptions[chartId].legend = legend;\r\n }\r\n\r\n var chart = new Highcharts.chart(chartId, vm.chartOptions[chartId]);\r\n \r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n }\r\n }, 1000);\r\n }\r\n vm.createBarChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.barCharts[chartId] && vm.barCharts[chartId].value) {\r\n var chartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n // type : 'category',\r\n categories: vm.barCharts[chartId].value.Categories \r\n },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n \r\n }\r\n }\r\n },\r\n \r\n series: vm.barCharts[chartId].value.Series\r\n // drilldown:vm.barCharts[chartId].value.drilldown\r\n \r\n };\r\n \r\n if (chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]) {\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true;\r\n }\r\n \r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 2000);\r\n }\r\n\r\n //Create DrillDown Bar Chart\r\n vm.createDrilledDownBarChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.barCharts[chartId] && vm.barCharts[chartId].value) {\r\n var chartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n type : 'category'\r\n \r\n },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n \r\n }\r\n }\r\n },\r\n \r\n series: vm.barCharts[chartId].value.Series,\r\n drilldown:vm.barCharts[chartId].value.drilldown\r\n \r\n };\r\n \r\n if (chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]) {\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true;\r\n }\r\n \r\n \r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 2000);\r\n }\r\n\r\n //Stacked Chart\r\n vm.createStackedChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.stackedCharts[chartId] && vm.stackedCharts[chartId].value) {\r\n var stackedchartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n categories: vm.stackedCharts[chartId].value.Categories \r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n legend: {\r\n\r\n reversed: true\r\n },\r\n tooltip: {\r\n formatter: function () {\r\n return '' + this.x + '
' +\r\n this.series.name + ': ' + this.y + '
' +\r\n 'Total: ' + this.point.stackTotal;\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n align: 'right',\r\n color: 'black',\r\n x: -10\r\n },\r\n enableMouseTracking: true\r\n },\r\n series: {\r\n\r\n stacking: 'normal'\r\n }\r\n },\r\n series: vm.stackedCharts[chartId].value.Series\r\n };\r\n if (stackedchartData && stackedchartData.series && stackedchartData.series.length>0 && stackedchartData.series[0].data \r\n && stackedchartData.series[0].data.length>0 && stackedchartData.series[0].data[0]) {\r\n stackedchartData.series[0].data[0].sliced=true;\r\n stackedchartData.series[0].data[0].selected=true;\r\n }\r\n \r\n var chart = new Highcharts.chart(chartId, stackedchartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 2000);\r\n }\r\n\r\n vm.createPieChart = function (chartId, title) {\r\n vm.showPieChart = vm.showPieChart || {};\r\n vm.tempShowPieChart = vm.tempShowPieChart || {};\r\n vm.showPieChart[chartId] = true;\r\n $timeout(function () {\r\n vm.tempShowPieChart[chartId] = false;\r\n if (vm.pieCharts[chartId] && vm.pieCharts[chartId].value) {\r\n\r\n for(var i=0; i0){\r\n vm.tempShowPieChart[chartId]=true;\r\n }\r\n }\r\n vm.showPieChart[chartId]=vm.tempShowPieChart[chartId];\r\n var chartData = {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie'\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n title: {\r\n text: ''\r\n },\r\n tooltip: {\r\n headerFormat: ' {series.name} : {point.name}
',\r\n pointFormat: ' {point.name}: {point.y:,.0f}
',\r\n footerFormat: ' Percentage : {point.percentage:,.1f}% ', shared: true, useHTML: true\r\n //pointFormat: '{series.name}: {point.y:.1f}%'\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n dataLabels: {\r\n enabled: false\r\n },\r\n showInLegend: true\r\n }\r\n },\r\n series: [{\r\n name: title,\r\n colorByPoint: true,\r\n data: vm.pieCharts[chartId].value\r\n }]\r\n };\r\n if(chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]){\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true; \r\n }\r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 1000);\r\n }\r\n\r\n\r\n\r\n $scope.changeFunction = function() {\r\n alert('change');\r\n }\r\n\r\n var makeDynamicTable = function(chartId, dataSet){\r\n\r\n if(dataSet.Values.length >= 10)\r\n {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n }\r\n else\r\n {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('Tfgt')\r\n //.withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n\r\n }\r\n \r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n vm.tableCharts[chartId].dtInstance = {};\r\n vm.tableCharts[chartId].dtColumns = [];\r\n var columnList = Object.keys(dataSet.Categories);\r\n for(var index = 0; index < columnList.length; index++ ){\r\n\r\n var temp = '';\r\n var colunId = columnList[index];\r\n temp = DTColumnBuilder.newColumn(colunId).withTitle(dataSet.Categories[colunId]).renderWith(function(data,type,full,meta){\r\n var colKey = '';\r\n function getKeyByIndex(object, col) {\r\n var colList = Object.keys(object);\r\n colKey = colList[col]; \r\n }\r\n\r\n getKeyByIndex(full,meta.col)\r\n var firstColumntKey = Object.values(full)[0];\r\n var fixedCatogries = Object.values(vm.tableCharts[chartId].value.Categories)[0];\r\n var t = vm.tableCharts[chartId].value.Categories;\r\n var n = t[colKey]; \r\n if(data > 0 && vm.deepLink[n +' '+ vm.tableCharts[chartId].ChartId]){\r\n return \"' + data + \" \";\r\n // return \"\" + data + \" \";\r\n }else{\r\n return \"\"+data+\"\";\r\n }\r\n });\r\n vm.tableCharts[chartId].dtColumns.push(temp);\r\n } \r\n }\r\n \r\n vm.createTableChart = function (chartId, lenth , data) {\r\n makeDynamicTable(chartId, data);\r\n }\r\n\r\n $scope.$on('fullscreen', function () {\r\n setTimeout(function () {\r\n $(element).highcharts().reflow();\r\n }, 0);\r\n }); \r\n\r\n}\r\n});\r\n\nangular.module('inspinia').service('AdvancedDashboardService', function (ApiURL, PublicApiURL, $log, $http, DashboardURL, ActivityURL) {\r\n \r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n \r\n vm.getDashboard = function (loggedinUser, dashbardName, token, callback) {\r\n $http.get(DashboardURL+'/api/Dashboard/'+loggedinUser+'/'+ dashbardName + '/GetDashboardByName', {\r\n headers: {'Token': token, 'UserId': loggedinUser}\r\n }).then(function(res){\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.getChart = function (loggedinUser, chartType, metrics, dimensions, token, callback) {\r\n $http.get(DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP=null', {\r\n headers: {'Token': token, 'UserId': loggedinUser}\r\n }).then(function (res) {\r\n if (callback && (res.status == 200)) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n this.getSkills = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n\r\n this.getAccounts = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get accounts\");\r\n });\r\n }\r\n\r\n\r\n this.getBusinessUnits = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/accountConfig/GetAllEnterpriseType';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get business units\");\r\n });\r\n }\r\n\r\n\r\n this.getAllState = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n } \r\n });\r\n }\r\n\r\n this.getDistrictsByState = function (loggedinUser, token, state, callback, failure) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser }}).then(function (res) {\r\n callback(res.data.values);\r\n }, function () {\r\n failure(\"states\", \"Unable to get district\");\r\n });\r\n }\r\n\r\n this.getCitiesByState = function (loggedinUser, token, state) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n });\r\n }\r\n\r\n vm.getChart1 = function (loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData,total, callback) {\r\n //$log.log(\"in service\", DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP='+rollUp+\"&FilterKeys=\"+filterKeys+\"&FilterValues=\"+filterValues);\r\n $http.get(DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP='+encodeURI(rollUp)+\"&FilterKeys=\"+filterKeys+\"&FilterValues=\"+filterValues+\"&isData=\"+isData+\"&total=\"+total, {headers:{'Token': token, 'UserId': loggedinUser}}).then(function (res) {\r\n if (callback) {\r\n res.data['chartName'] = chartName;\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n});\nangular.module('inspinia').service('VendorTeamService', function (FreelancerURL, $http, $localStorage) {\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/FreeLancerRegistration/srachit46%40gmail.com/GetAllUserRegistration\r\n\r\n this.GetAllRegisteredVendor = function (loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration/' + loggedinUser + '/GetAllVendorRegistration'\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n // http://localhost:50144/api/FreelancerVendor/getallActivevendorsteam?reqUserId=F00000000000\r\n this.GetAllNotActiveVendorRegistrations = function (loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreelancerVendor/getallActivevendorsteam?reqUserId=' + loggedinUser;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.uploadProfilePic = function (loggedinUser, data, token, success, failure) {\r\n $http.post(ApiURL + '/api/User/PostUserPic?reqUserId=' + loggedinUser, data, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n\r\n})\nangular.module('inspinia').controller('VendorTeamController', function ($localStorage, $filter, $compile, DTColumnBuilder, $state, $scope, VendorTeamService, DTOptionsBuilder, DTColumnDefBuilder, $q, ImageUrl) {\r\n\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n vm.Users = '';\r\n vm.searchText = '';\r\n vm.RegistrationNo = '';\r\n vm.dtInstance = {};\r\n vm.vendorUser = [];\r\n $localStorage.RedirecttoActivevendorteam='';\r\n vm.preProcessData = function (vendor) {\r\n var locations = \"\";\r\n angular.forEach(vendor.WorkLocationList, function (l) {\r\n locations += l + \",\";\r\n });\r\n vendor.allLocations = locations.length > 0 ? locations.substring(0, locations.length - 1) : \"\";\r\n\r\n var skills = \"\";\r\n angular.forEach(vendor.SkillData, function (s) {\r\n skills += s.Skill + \",\";\r\n });\r\n vendor.allSkills = skills.length > 0 ? skills.substring(0, skills.length - 1) : \"\";\r\n }\r\n\r\n vm.creationForm = function (RegistrationNo) {\r\n $state.go('index.OnBoardingVendorForm', {\r\n RegistrationNo: RegistrationNo\r\n }, {\r\n reload: true\r\n });\r\n }\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n VendorTeamService.GetAllNotActiveVendorRegistrations(loggedinUser, token).then(function (resp) {\r\n \r\n vm.vendorUser = resp.data;\r\n angular.forEach(vm.vendorUser, function (v) {\r\n vm.preProcessData(v);\r\n });\r\n\r\n defer.resolve(vm.vendorUser);\r\n }); return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withOption('order', [0, 'asc'])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle('Action').renderWith(ActionLink),\r\n DTColumnBuilder.newColumn(null).withTitle('Id').renderWith(createLink),\r\n DTColumnBuilder.newColumn(null).withTitle('Name').renderWith(createImage_Name),\r\n // DTColumnBuilder.newColumn('CompanyName').withTitle('Company Name').notSortable(),\r\n DTColumnBuilder.newColumn('DOB').withTitle('DOB').notSortable().renderWith(function (data) {\r\n var date = $filter('date')(new Date(data), \"dd/MMM/yyyy\");\r\n return date;\r\n }),\r\n DTColumnBuilder.newColumn('Role').withTitle('Role').notSortable(),\r\n DTColumnBuilder.newColumn('ReportingTo').withTitle('Reporting To').notSortable(),\r\n DTColumnBuilder.newColumn('ContactNumber').withTitle('Contact Number').notSortable(),\r\n DTColumnBuilder.newColumn('PersonalEmail').withTitle('Email').notSortable(),\r\n DTColumnBuilder.newColumn('PermanentAdd1').withTitle('Permanent Add1').notSortable(),\r\n DTColumnBuilder.newColumn('PermanentAdd2').withTitle('Permanent Add2').notSortable(),\r\n DTColumnBuilder.newColumn('PermanentCity').withTitle('City').notSortable(),\r\n DTColumnBuilder.newColumn('PermanentState').withTitle('State').notSortable(),\r\n DTColumnBuilder.newColumn('PermanentPinCode').withTitle('PinCode').notSortable(),\r\n DTColumnBuilder.newColumn('FirstTimeLogin').withTitle('First Login').notSortable(),\r\n // DTColumnBuilder.newColumn('IsStudent').withTitle('Student').renderWith(function (data, type, full, meta) {\r\n // var title = '';\r\n \r\n // if (full.IsStudent) {\r\n // var pancard = \"assets/images/patterns/correct.png\";\r\n // title= 'Student';\r\n // } else {\r\n // var pancard = \"assets/images/patterns/close.png\";\r\n // title= 'Not Student';\r\n // }\r\n // return ''\r\n \r\n // }),\r\n DTColumnBuilder.newColumn('IsAdharVerified').withTitle('Adhar Card').renderWith(function (data, type, full, meta) {\r\n var Adhartitle = '';\r\n if (full.IsAdharVerified) {\r\n var address = \"assets/images/patterns/correct.png\";\r\n Adhartitle = 'Submitted';\r\n } else {\r\n var address = \"assets/images/patterns/close.png\";\r\n Adhartitle = 'Not Submitted';\r\n }\r\n return ''\r\n \r\n }),\r\n DTColumnBuilder.newColumn('IsPanVerified').withTitle('Pan Card').renderWith(function (data, type, full, meta) {\r\n var title = '';\r\n \r\n if (full.IsPanVerified) {\r\n var pancard = \"assets/images/patterns/correct.png\";\r\n title= 'Submitted';\r\n } else {\r\n var pancard = \"assets/images/patterns/close.png\";\r\n title= 'Not Submitted';\r\n }\r\n return ''\r\n \r\n }),\r\n DTColumnBuilder.newColumn('CVerficationStatus').withTitle('Criminal Check').renderWith(function (data, type, full, meta) {\r\n var title = '';\r\n \r\n if (full.CVerficationStatus==\"Pass\") {\r\n var pancard = \"assets/images/patterns/correct.png\";\r\n title= 'Submitted';\r\n } else {\r\n var pancard = \"assets/images/patterns/close.png\";\r\n title= 'Not Submitted';\r\n }\r\n return ''\r\n \r\n }),\r\n // DTColumnBuilder.newColumn('IsOpenForInternship').withTitle('Internship').renderWith(function (data, type, full, meta) {\r\n // var title = '';\r\n \r\n // if (full.IsOpenForInternship) {\r\n // var pancard = \"assets/images/patterns/correct.png\";\r\n // title= 'Open for Internship';\r\n // } else {\r\n // var pancard = \"assets/images/patterns/close.png\";\r\n // title= 'Not open for Internship';\r\n // }\r\n // return ''\r\n \r\n // }),\r\n // DTColumnBuilder.newColumn('Role').withTitle('Role').notSortable(),\r\n // DTColumnBuilder.newColumn('SkillSet', 'Skill').withTitle('Skill').notSortable().renderWith(function (data, type, full, meta) {\r\n // var skills = '';\r\n // if(full.SkillSet){\r\n // for (var i = 0; i < full.SkillSet.length; i++) {\r\n // if (i == 0) {\r\n // skills = full.SkillSet[i];\r\n // } else {\r\n // skills = skills + ' ,' + full.SkillSet[i];\r\n // }\r\n // }\r\n // }\r\n // return '
' + skills + '
';\r\n // }),\r\n\r\n DTColumnBuilder.newColumn('IsSkillsVerified').withTitle('Skill Verified').notSortable().renderWith(function (data, type, full, meta) {\r\n var vendorStatus='';\r\n var status ='';\r\n if (full.IsSkillsVerified) {\r\n vendorStatus = 'label label-primary';\r\n status= 'Pass';\r\n } else{\r\n vendorStatus = 'label label-danger';\r\n status ='Fail';\r\n }\r\n return \"\" + status + \"\";\r\n \r\n }),\r\n DTColumnBuilder.newColumn('UserStatus').withTitle('Status').notSortable().renderWith(function (data, type, full, meta) {\r\n if (full.UserStatus == 'Active') {\r\n var VendorStatus = 'label label-default';\r\n } else if (full.UserStatus == 'Inactive') {\r\n VendorStatus = 'label label-primary'\r\n } else if (full.UserStatus == 'Location Verified') {\r\n VendorStatus = 'label label-info'\r\n } else if (full.UserStatus == 'Docs Verified') {\r\n VendorStatus = 'label label-danger'\r\n }else if(full.UserStatus == 'Asset Verified'){\r\n VendorStatus = 'label label-warning';\r\n }else if(full.UserStatus == 'Skill Verified'){\r\n VendorStatus = 'label label-success' ;\r\n }\r\n return \"\" + full.UserStatus + \"\";\r\n }),\r\n DTColumnBuilder.newColumn('Tools').withTitle('Tools').notSortable().renderWith(function(data,type,full,meta){\r\n var skills = '';\r\n if(full.Tools){\r\n for (var i = 0; i < full.Tools.length; i++) {\r\n if(full.Tools[i]){\r\n if (i == 0) {\r\n skills = full.Tools[i];\r\n } else {\r\n skills = skills + ' ,' + full.Tools[i];\r\n }\r\n }\r\n }\r\n }\r\n return '
' + skills + '
';\r\n }),\r\n // DTColumnBuilder.newColumn('UpdatedById').withTitle('UpdatedById').notSortable(),\r\n // DTColumnBuilder.newColumn('UpdatedByName').withTitle('UpdatedByName').notSortable(),\r\n DTColumnBuilder.newColumn('Source').withTitle('Source').notSortable(),\r\n // DTColumnBuilder.newColumn('IsMobileAvailable').withTitle('IsMobileAvailable').notSortable(),\r\n DTColumnBuilder.newColumn('PAN').withTitle('PAN').notSortable(),\r\n DTColumnBuilder.newColumn('AdharNo').withTitle('AdharNo').notSortable(),\r\n DTColumnBuilder.newColumn('CurrentLatitude').withTitle('Latitude').notSortable(),\r\n DTColumnBuilder.newColumn('CurrentLongitude').withTitle('Longitude').notSortable(),\r\n // DTColumnBuilder.newColumn('FirstAidCertification').withTitle('First Aid Certification').notSortable(),\r\n // DTColumnBuilder.newColumn('FARMTOCLI').withTitle('FARM TOCLI').notSortable(),\r\n // DTColumnBuilder.newColumn('OHS').withTitle('OHS').notSortable()\r\n DTColumnBuilder.newColumn('AuditResult').withTitle('Equipment Audit Status').notSortable(),\r\n DTColumnBuilder.newColumn('AuditDate').withTitle('Equipment Audit Date').notSortable().renderWith(function (data, type, full, meta) {\r\n if (full.AuditDate == '0001-01-01T00:00:00') \r\n return \"\";\r\n else\r\n return \"\" + $filter('date')(new Date(full.AuditDate), \"dd/MMM/yyyy\") + \"\";\r\n }),\r\n DTColumnBuilder.newColumn('AuditorName').withTitle('Equipment Audit By').notSortable()\r\n ];\r\n\r\n function createLink(data, type, full, meta) {\r\n return ' ' + data.UserId + '';\r\n // return ' ' + data.UserId + '';\r\n }\r\n function ActionLink(data, type, full, meta) {\r\n var userroleshow = 'SuperAdministrator';\r\n var userroleshow1 = 'OnBoarding Manager';\r\n var userroleshow2 = 'Onboarding Supervisor';\r\n\t\t\tif(loggedinUserRole==userroleshow || loggedinUserRole==userroleshow1 || loggedinUserRole==userroleshow2){\r\n return ' ';\r\n // return ' ' + data.UserId + '';\r\n }\r\n else{\r\n return '';\r\n }\r\n }\r\n\r\n function createImage_Name(data, type, full, meta) {\r\n if (data.Picture == null) {\r\n var address = \"assets/images/patterns/photo1.png\";\r\n } else {\r\n address = vm.getProfilePic(data.Picture);\r\n }\r\n ''\r\n return '' + data.FirstName + ' ' + data.LastName + '';\r\n }\r\n\r\n\r\n vm.getProfilePic = function (pic) {\r\n return ImageUrl + \"/\" + pic;\r\n }\r\n\r\n vm.ProfileView = function(userid){\r\n $localStorage.RedirecttoActivevendorteam='AVTeam';\r\n $state.go('index.FreelancerTechnicianProfile', {\r\n UserId: userid\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.EditVTeam = function(RegistrationNo){\r\n $localStorage.EditVendorTeam = 'yes';\r\n $localStorage.ActiveFVT='Active';\r\n $state.go('index.ActiveUserUpdate', {\r\n RegistrationNo: RegistrationNo\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n }\r\n})\nangular.module('inspinia').service('AdvancedDashboardService', function (ApiURL, PublicApiURL, $log, $http, DashboardURL, ActivityURL) {\r\n \r\n var vm = this;\r\n\r\n vm.setShowSuccess = function (success) {\r\n vm.showSuccess = success;\r\n }\r\n\r\n vm.setShowFailure = function (failure) {\r\n vm.showFailure = failure;\r\n }\r\n \r\n vm.getDashboard = function (loggedinUser, dashbardName, token, callback) {\r\n $http.get(DashboardURL+'/api/Dashboard/'+loggedinUser+'/'+ dashbardName + '/GetDashboardByName', {\r\n headers: {'Token': token, 'UserId': loggedinUser}\r\n }).then(function(res){\r\n if (callback) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n vm.getChart = function (loggedinUser, chartType, metrics, dimensions, token, callback) {\r\n $http.get(DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP=null', {\r\n headers: {'Token': token, 'UserId': loggedinUser}\r\n }).then(function (res) {\r\n if (callback && (res.status == 200)) {\r\n callback(res.data);\r\n }\r\n })\r\n }\r\n\r\n this.getSkills = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get skills\");\r\n });\r\n }\r\n\r\n\r\n this.getAccounts = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/account/GetAllAccountsMiniModel';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get accounts\");\r\n });\r\n }\r\n\r\n\r\n this.getBusinessUnits = function (loggedinUser, token, callback, failure) {\r\n var url = ApiURL + '/api/accountConfig/GetAllEnterpriseType';\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json', 'Token': token,'UserId': loggedinUser } }).then(function (res) {\r\n if(callback){\r\n callback(res.data);\r\n }\r\n }, function () {\r\n failure(\"skills\", \"Unable to get business units\");\r\n });\r\n }\r\n\r\n\r\n this.getAllState = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n } \r\n });\r\n }\r\n\r\n this.getDistrictsByState = function (loggedinUser, token, state, callback, failure) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, { headers: { 'Content-Type': 'application/json',\r\n 'Token': token, 'UserId': loggedinUser }}).then(function (res) {\r\n callback(res.data.values);\r\n }, function () {\r\n failure(\"states\", \"Unable to get district\");\r\n });\r\n }\r\n\r\n this.getCitiesByState = function (loggedinUser, token, state) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllCities?State='+state;\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedinUser \r\n } \r\n });\r\n }\r\n\r\n vm.getChart1 = function (loggedinUser, token, chartType, metrics, dimensions, rollUp, filterKeys, filterValues,chartName,isData,total, callback) {\r\n //$log.log(\"in service\", DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP='+rollUp+\"&FilterKeys=\"+filterKeys+\"&FilterValues=\"+filterValues);\r\n $http.get(DashboardURL + '/api/Chart?ReqUserId=' + loggedinUser + '&ChartType=' + chartType + '&Metrics=' + metrics + '&DimensionList=' + dimensions + '&RollsUP='+encodeURI(rollUp)+\"&FilterKeys=\"+filterKeys+\"&FilterValues=\"+filterValues+\"&isData=\"+isData+\"&total=\"+total, {headers:{'Token': token, 'UserId': loggedinUser}}).then(function (res) {\r\n if (callback) {\r\n res.data['chartName'] = chartName;\r\n callback(res.data);\r\n }\r\n });\r\n }\r\n\r\n});\nangular.module('inspinia').controller('AdvancedDashboardController', function ($state, $stateParams, DTColumnBuilder, $q,$compile, $scope, AdvancedDashboardService, CentralHelpdeskConfigService, $stateParams, $q, $log, $localStorage, DTOptionsBuilder, DTColumnDefBuilder, ReportService, $timeout) {\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n vm.matrixName = '';\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n var token = $localStorage.token;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.getAccountConfigSetting = $scope.$parent.$parent.main.getAccountConfigSetting;\r\n AdvancedDashboardService.setShowSuccess($scope.$parent.$parent.main.showSuccess);\r\n AdvancedDashboardService.setShowFailure($scope.$parent.$parent.main.showFailure);\r\n vm.dashboard_data = {};\r\n vm.metricsCharts = {};\r\n vm.tableCharts = {};\r\n vm.lineCharts = {};\r\n vm.pieCharts = {};\r\n vm.barCharts = {};\r\n vm.stackedCharts ={};\r\n vm.gaugeCharts ={};\r\n vm.deepLink = {};\r\n vm.selectDimension = {};\r\n vm.states = [];\r\n var start_date = '';\r\n vm.BusinessUnit = '';\r\n vm.State = '';\r\n vm.Skill = '';\r\n vm.Account = '';\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n var thisFiscalStart = '';\r\n var thisFiscalEnd = '';\r\n var intialLoad = true;\r\n vm.districts = [];\r\n vm.District = '';\r\n //vm.enableFilter = false;\r\n vm.filters = [];\r\n var total = 'Total';\r\n\r\n if (moment().quarter() === 2) {\r\n thisFiscalStart = moment().month('April').startOf('month');\r\n thisFiscalEnd = moment().add(1, 'year').month('March').endOf('month');\r\n } else {\r\n thisFiscalStart = moment().subtract(1, 'year').month('April').startOf('month');\r\n thisFiscalEnd = moment().month('March').endOf('month');\r\n };\r\n\r\n $scope.ranges = {\r\n 'Today': [moment(), moment()], \r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], \r\n 'Payment week': [moment().startOf('week').isoWeekday(1), moment().endOf('week').isoWeekday(0)], \r\n // 'Last week': [moment().subtract(1, 'weeks').startOf('week').isoWeekday(1), moment().subtract(1, 'weeks').endOf('week').isoWeekday(0)], \r\n 'This week': [moment().startOf('week'), moment().endOf('week')], \r\n 'Last week': [moment().subtract(1, 'weeks').startOf('week'), moment().subtract(1, 'weeks').endOf('week')], \r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Last month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This quater': [moment().startOf('quarter'), moment().endOf('quarter')],\r\n 'Last quater': [moment().subtract(1, 'quarters').startOf('quarter'), moment().subtract(1, 'quarters').endOf('quarter')], \r\n 'This year': [thisFiscalStart, thisFiscalEnd], \r\n 'Till now': [moment().subtract(5, 'years'), moment()]\r\n };\r\n\r\n vm.IsDashboardFilterCheckRun = false;\r\n vm.DateRangeSelectedKey = \"Yesterday\";\r\n vm.ActualSelectedKey = 'Today';\r\n $scope.dateRangeChange = function(ev, picker){\r\n if (picker.chosenLabel == 'Today') {\r\n vm.DateRangeSelectedKey = 'Yesterday';\r\n vm.ActualSelectedKey = 'Today';\r\n } else if (picker.chosenLabel == 'This week') {\r\n vm.DateRangeSelectedKey = 'Last Week';\r\n vm.ActualSelectedKey = 'This Week';\r\n } else if (picker.chosenLabel == 'This month') {\r\n vm.DateRangeSelectedKey = 'Last Month';\r\n vm.ActualSelectedKey = 'This Month';\r\n } else {\r\n vm.DateRangeSelectedKey = picker.chosenLabel;\r\n }\r\n var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n var endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n vm.tableCharts = {};\r\n vm.loadSpecificDashboard($stateParams.name);\r\n intialLoad = false;\r\n };\r\n\r\n// $scope.dateRangeChange = function(ev, picker){\r\n// var startDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n// var endDate = picker.endDate.format(\"YYYY-MM-DD\"); \r\n \r\n// var duration = picker.endDate.diff(picker.startDate, 'days');\r\n// vm.Age = duration;\r\n// vm.rollup = \"Range(\"+startDate+\"|\"+endDate+\")\";\r\n// vm.tableCharts = {};\r\n// if(vm.Age <= 31) {\r\n// vm.loadSpecificDashboard($stateParams.name);\r\n// intialLoad = false;\r\n// }\r\n// else {\r\n// // vm.showFailure(\"Please Select date range within 30 days\");\r\n// alert(\"Please Select date range within 30 days\");\r\n// }\r\n\r\n// };\r\n \r\n $scope.dates = { startDate: thisFiscalStart, endDate: thisFiscalEnd};\r\n vm.rollup = \"Range(\"+thisFiscalStart.format(\"YYYY-MM-DD\")+\"|\"+thisFiscalEnd.format(\"YYYY-MM-DD\")+\")\";\r\n\r\n vm.getSkills = function () {\r\n AdvancedDashboardService.getSkills(loggedinUser, token, function (skills) {\r\n vm.skills = skills; \r\n }, vm.showFailure);\r\n } \r\n vm.getSkills();\r\n\r\n vm.getAccounts = function () {\r\n if(loggedinUserRole == \"Dispatch Manager\")\r\n {\r\n CentralHelpdeskConfigService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data && resp.status==200) {\r\n vm.accounts = resp.data; \r\n } \r\n }, vm.showFailure);\r\n }\r\n else\r\n {\r\n AdvancedDashboardService.getAccounts(loggedinUser, token, function (accounts) {\r\n vm.accounts = accounts; \r\n }, vm.showFailure);\r\n } \r\n } \r\n vm.getAccounts();\r\n\r\n\r\n vm.updateDefaultDateFilter = function( dasahboardFilter){ \r\n if(intialLoad){ \r\n var startDate = '';\r\n var endDate = '';\r\n if(dasahboardFilter && dasahboardFilter.DefaultDateFilter)\r\n { \r\n startDate = $scope.ranges[dasahboardFilter.DefaultDateFilter][0];\r\n endDate = $scope.ranges[dasahboardFilter.DefaultDateFilter][1]; \r\n $scope.dates = { startDate: startDate, endDate: endDate};\r\n $scope.$broadcast('update.daterangepicker', {date: $scope.dates});\r\n vm.rollup = \"Range(\"+startDate.format(\"YYYY-MM-DD\")+\"|\"+endDate.format(\"YYYY-MM-DD\")+\")\"; \r\n }\r\n }\r\n }\r\n\r\n vm.getBusinessUnits = function () {\r\n AdvancedDashboardService.getBusinessUnits(loggedinUser, token, function (businessUnits) {\r\n vm.businessUnits = businessUnits; \r\n }, vm.showFailure);\r\n } \r\n vm.getBusinessUnits();\r\n\r\n vm.getStates = function () {\r\n AdvancedDashboardService.getAllState(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.states = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n vm.getStates();\r\n\r\n vm.getDistrictByState = function () {\r\n AdvancedDashboardService.getDistrictsByState(loggedinUser, token, vm.State, function (districts) {\r\n vm.districts = districts; \r\n }, vm.showFailure);\r\n }\r\n\r\n vm.getCitiesByState = function () {\r\n AdvancedDashboardService.getCitiesByState(loggedinUser, token, vm.State).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.districts = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n // vm.getCitiesByState();\r\n\r\n vm.Allapplyfilter = function(){\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n prepareFilters('BusinessUnit', vm.BusinessUnit);\r\n prepareFilters('AccountName', vm.Account);\r\n prepareFilters('Skill', vm.Skill);\r\n prepareFilters('State', vm.State);\r\n prepareFilters('City', vm.District);\r\n vm.tableCharts = {};\r\n vm.loadSpecificDashboard($stateParams.name); \r\n }\r\n\r\n var prepareFilters = function(filterkey, filervalue){ \r\n if(filervalue)\r\n {\r\n if(vm.filterKeys)\r\n {\r\n vm.filterKeys = vm.filterKeys + ',' + filterkey;\r\n vm.filterValues = vm.filterValues + ',' + filervalue;\r\n }\r\n else\r\n {\r\n vm.filterKeys = filterkey;\r\n vm.filterValues = filervalue;\r\n\r\n }\r\n }\r\n }\r\n\r\n vm.ResetFilter = function(){\r\n vm.filterKeys = '';\r\n vm.filterValues = '';\r\n vm.BusinessUnit = '';\r\n vm.Account = '';\r\n vm.Skill = '';\r\n vm.State = '';\r\n vm.District = '';\r\n vm.tableCharts = {};\r\n vm.loadSpecificDashboard($stateParams.name);\r\n }\r\n\r\n\r\n\r\n vm.getChart = function (chartId, chartType, metrics, dimensions, subtitle, YAxis, rollup) {\r\n vm.selectDimension[chartId] = {};\r\n AdvancedDashboardService.getChart1(loggedinUser, token, chartType, metrics, dimensions, rollup, vm.filterKeys, vm.filterValues,\"\",false, total, vm.createCallback(null, [function (data) {\r\n if (chartType == 'Metrics' || chartType == 'OneServMetrics' || chartType == 'metricscompare') {\r\n vm.metricsCharts[chartId] = {};\r\n vm.metricsCharts[chartId].value = data;\r\n vm.metricsCharts[chartId].subtitles = subtitle.split(\",\");\r\n vm.metricsCharts[chartId].ChartId = chartId;\r\n } else if (chartType == 'Table') {\r\n vm.tableCharts[chartId] = {};\r\n vm.tableCharts[chartId].value = data;\r\n vm.tableCharts[chartId].ChartId = chartId;\r\n vm.createTableChart(chartId, data.Categories.length , data); \r\n\r\n //vm.buildColumnBuilder(chartId, data.Categories.length);\r\n } else if (chartType == 'Line') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n } else if (chartType == 'Bar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n }else if (chartType == 'StackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n } else if (chartType == 'Pie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomPie') {\r\n vm.pieCharts[chartId] = {};\r\n vm.pieCharts[chartId].value = data;\r\n vm.pieCharts[chartId].selectedDimension=dimensions;\r\n vm.createPieChart(chartId, subtitle);\r\n } else if (chartType == 'CustomLine') {\r\n vm.lineCharts[chartId] = {};\r\n vm.lineCharts[chartId].value = data;\r\n vm.lineCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n vm.createLineChart(chartId, YAxis);\r\n }else if (chartType == 'CustomBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createBarChart(chartId, YAxis);\r\n }else if (chartType == 'DrillDownBar') {\r\n vm.barCharts[chartId] = {};\r\n vm.barCharts[chartId].value = data;\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n vm.createDrilledDownBarChart(chartId, YAxis);\r\n }else if (chartType == 'CustomStackedBar') {\r\n vm.stackedCharts[chartId] = {};\r\n vm.stackedCharts[chartId].value = data;\r\n vm.stackedCharts[chartId].selectedDimension = dimensions;\r\n vm.selectDimension[chartId].dimension = dimensions;\r\n vm.stackedCharts[chartId].selectedRollup = rollup;\r\n vm.createStackedChart(chartId, YAxis);\r\n }\r\n else if (chartType == 'metricskpi') {\r\n vm.gaugeCharts[chartId] = {};\r\n vm.gaugeCharts[chartId].value = data;\r\n vm.gaugeCharts[chartId].selectedRollup = rollup;\r\n vm.createGaugeChart(chartId);\r\n }\r\n }]));\r\n }\r\n\r\n vm.dashboardCallback = vm.createCallback(null, [function (data) {\r\n vm.dashboard_data = data;\r\n\r\n if(data && data.DashboardFilters){\r\n vm.enableFilter = true; \r\n vm.updateDefaultDateFilter(data.DashboardFilters); \r\n //vm.getFilerValues(data.DashboardFilters.FilterList); \r\n }\r\n else\r\n {\r\n vm.enableFilter = false;\r\n vm.updateDefaultDateFilter(null); \r\n } \r\n // if (data && data.DashboardFilters && (data.DashboardFilters.DateFilterList == null|| data.DashboardFilters.DateFilterList.length == 0)) {\r\n // vm.IsDashboardFilterCheckRun = true;\r\n // } \r\n // else if (data && data.DashboardFilters && data.DashboardFilters.DateFilterList.length > 0) {\r\n // var dateFilterList = data.DashboardFilters.DateFilterList;\r\n // var filteredRanges = {};\r\n // Object.keys($scope.ranges).forEach(function(key) {\r\n // if (dateFilterList.includes(key)) {\r\n // filteredRanges[key] = $scope.ranges[key];\r\n // }\r\n // });\r\n // $scope.ranges = filteredRanges;\r\n // vm.IsDashboardFilterCheckRun = true;\r\n // }\r\n \r\n angular.forEach(data.ChartModel, function (d) {\r\n\r\n if (d.ClickableColumns != null && d.ClickableColumns.length > 0) {\r\n angular.forEach(d.ClickableColumns, function(cl){\r\n if (cl.Link==\"ProjectSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function () { \r\n return \"index.Report({report_name:'ProjectSummary', key:'\"+cl.KeyName+\"'})\";\r\n }\r\n }else if (cl.Link==\"CustomerSummary\") {\r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function () { \r\n \r\n return \"index.Report({report_name:'CustomerSummary', key:'\"+cl.KeyName+\"'})\";\r\n }\r\n }else if (cl.Link==\"DashboardReport\") {\r\n \r\n vm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function (filterValue,filterName) {\r\n var Keyfilter = cl.KeyName; \r\n \r\n // else\r\n // {\r\n // start_date = vm.rollup;\r\n // }\r\n if (cl.KeyName.indexOf(\"|\")>=0) {\r\n var stringArray = cl.KeyName.split('|');\r\n filterName = stringArray[1];\r\n Keyfilter = stringArray[0];\r\n }\r\n if (filterValue == undefined && filterName ==undefined) {\r\n filterValue = '';\r\n filterName = '';\r\n }\r\n if (d.ChartType == 'Metrics' || d.chartType == 'OneServMetrics' || d.chartType == 'metricscompare') {\r\n //console.log('start_date',start_date);\r\n if (d.Rollups && d.Rollups.length>0) {\r\n angular.forEach(d.Rollups, function(d){\r\n if (d == 'Today') {\r\n var sDate = moment().format(\"YYYY-MM-DD\");\r\n var eDate = moment().format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n }\r\n else if (d == 'Yesterday') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\"; }\r\n else if (d == 'Monthly') {\r\n var sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n var eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n start_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n }else if (d == 'Week1') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week1');\r\n }else if (d == 'Week2') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week2');\r\n }else if (d == 'Week3') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week3');\r\n }else if (d == 'Week4') {\r\n var getCurrentMonth = new Date().getMonth();\r\n var getCurrentYear = new Date().getFullYear();\r\n start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week4');\r\n }\r\n })\r\n }else{\r\n start_date = vm.rollup;\r\n }\r\n var obj = {\r\n \"report_name\":'LinkTicketReport',\r\n \"key\":Keyfilter,\r\n \"filter_key\":filterName,\r\n \"filter_name\":filterValue,\r\n \"start_date\":start_date,\r\n \"isData\":true\r\n } \r\n return obj;\r\n }else{\r\n return \"index.DashboardReport({report_name:'LinkTicketReport', key:'\"+Keyfilter+\"',filter_key:'\"+filterName+\"', filter_name:'\"+filterValue+\"', start_date:'\"+vm.rollup+\"', isData:'\"+true+\"'})\";\r\n } \r\n }\r\n }else{\r\n \t\t\t\t\t\tif (cl.Link){ \r\n \t\t\t\t\t\t\tvm.deepLink[cl.ColumnName + \" \"+ d.ChartId] = function (filterValue,filterName) {\r\n \t\t\t\t\t\t\t\tvar Keyfilter = cl.KeyName; \r\n \t\t\t\t\t\t\t if (cl.KeyName.indexOf(\"|\")>=0) {\r\n \t\t\t\t\t\t\t\t\tvar stringArray = cl.KeyName.split('|');\r\n \t\t\t\t\t\t\t\t\tfilterName = stringArray[1];\r\n \t\t\t\t\t\t\t\t\tKeyfilter = stringArray[0];\r\n \t\t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t\t\tif (filterValue == undefined && filterName ==undefined) {\r\n \t\t\t\t\t\t\t\t\tfilterValue = '';\r\n \t\t\t\t\t\t\t\t\tfilterName = '';\r\n \t\t\t\t\t\t\t\t}\r\n\r\n filterName = filterName + ',' + vm.filterKeys;\r\n filterValue = filterValue + ',' + vm.filterValues;\r\n\r\n\r\n \t\t\t\t\t\t\t\tif (d.ChartType == 'Metrics' || d.chartType == 'OneServMetrics' || d.chartType == 'metricscompare') {\r\n \t\t\t\t\t\t\t\t\t//console.log('start_date',start_date);\r\n \t\t\t\t\t\t\t\t\tif (d.Rollups && d.Rollups.length>0) {\r\n \t\t\t\t\t\t\t\tangular.forEach(d.Rollups, function(d){\r\n \t\t\t\t\t\t\t\t\tif (d == 'Today') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n \t\t\t\t\t\t\t\t\t}\r\n else if (d == 'Yesterday') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().subtract(1, 'days').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Monthly') {\r\n \t\t\t\t\t\t\t\t\t\tvar sDate = moment().startOf('month').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tvar eDate = moment().endOf('month').format(\"YYYY-MM-DD\");\r\n \t\t\t\t\t\t\t\t\t\tstart_date = \"Range(\"+sDate+\"|\"+eDate+\")\";\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week1') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week1');\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week2') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week2');\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week3') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week3');\r\n \t\t\t\t\t\t\t\t\t}else if (d == 'Week4') {\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentMonth = new Date().getMonth();\r\n \t\t\t\t\t\t\t\t\t\tvar getCurrentYear = new Date().getFullYear();\r\n \t\t\t\t\t\t\t\t\t start_date= vm.GetDateRange(getCurrentMonth,getCurrentYear,'week4');\r\n \t\t\t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t\t\t})\r\n \t\t\t\t\t\t\t\t}else{\r\n \t\t\t\t\t\t\t\t\tstart_date = vm.rollup;\r\n \t\t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t\t\t var obj = { \r\n \t\t\t\t\t\t\t\t\t\t\"report_name\":cl.Link,\r\n \t\t\t\t\t\t\t\t\t\t\"key\":Keyfilter,\r\n \t\t\t\t\t\t\t\t\t\t\"filter_key\":filterName,\r\n \t\t\t\t\t\t\t\t\t\t\"filter_name\":filterValue,\r\n \t\t\t\t\t\t\t\t\t\t\"start_date\":start_date,\r\n \t\t\t\t\t\t\t\t\t\t\"isData\":true\r\n \t\t\t\t\t\t\t\t\t} \r\n \t\t\t\t\t\t\t\t\treturn obj;\r\n \t\t\t\t\t\t\t\t}else{\r\n \t\t\t\t\t\t\t\t\treturn \"index.DashboardReport({report_name:'\" + cl.Link + \"', key:'\"+Keyfilter+\"',filter_key:'\"+filterName+\"', filter_name:'\"+filterValue+\"', start_date:'\"+vm.rollup+\"', isData:'\"+true+\"'})\";\r\n \t\t\t\t\t\t\t\t} \r\n \t\t\t\t\t\t\t}\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t} \r\n })\r\n }\r\n if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Today\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Yesterday\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week1\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week1\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week2\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week2\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week3\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week3\");\r\n }else if(d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Week4\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Week4\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if (d.Rollups && d.Rollups.length > 0 && d.Rollups.indexOf(\"Monthly-6\")>=0 && d.ChartType!='CustomLine') {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, \"Monthly-6\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Monthly\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Monthly\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Today\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Today\");\r\n }\r\n else if(d.ChartType == 'CustomLine' && d.Dimensions.length>0 && d.Rollups.indexOf(\"Yesterday\")>=0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, \"Yesterday\");\r\n }\r\n else if(d.ChartType == 'CustomBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'DrillDownBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'CustomStackedBar' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }else if(d.ChartType == 'CustomPie' && d.Dimensions.length>0){\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions[0], d.ChartSubtitle, d.YAxis, '');\r\n }\r\n else {\r\n vm.getChart(d.ChartId, d.ChartType, d.Metrics, d.Dimensions, d.ChartSubtitle, d.YAxis, vm.rollup);\r\n }\r\n\r\n });\r\n // console.log('vm.deepLink',vm.deepLink);\r\n }])\r\n\r\n vm.GetDateRange = function(month,year,week){\r\n var weeks=[],\r\n firstDate=new Date(year, month, 1),\r\n lastDate=new Date(year, month+1, 0), \r\n numDays= lastDate.getDate();\r\n if (week == 'week1') {\r\n var start=1;\r\n var end=7;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }else if (week == 'week2') {\r\n var start = 8;\r\n var end = 14;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }else if (week == 'week3') {\r\n var start = 15;\r\n var end = 21;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }else if (week == 'week4') {\r\n var start = 22;\r\n var end = numDays;\r\n month = month+1\r\n var startRange = moment(year+\"-\"+month+\"-\"+start).format(\"YYYY-MM-DD\");\r\n var endRange = moment(year+\"-\"+month+\"-\"+end).format(\"YYYY-MM-DD\");\r\n return (\"Range(\"+startRange+\"|\"+endRange+\")\");\r\n }\r\n }\r\n\r\n vm.getDashboard = function (name) {\r\n AdvancedDashboardService.getDashboard(loggedinUser, name, token, vm.dashboardCallback);\r\n }\r\n\r\n\r\n vm.loadDefaultDashboard = function(){\r\n if ($stateParams.name == 'account') {\r\n vm.getDashboard('Account Dashboard');\r\n } else if ($stateParams.name == 'accountDetails') {\r\n vm.getDashboard('Account Dashboard');\r\n }else if ($stateParams.name == 'admin') {\r\n vm.getDashboard('Admin Dashboard');\r\n }else if ($stateParams.name == 'manager') {\r\n vm.getDashboard('Manager Dashboard');\r\n }else if ($stateParams.name == 'supervisor') {\r\n vm.getDashboard('Supervisor Dashboard');\r\n }else if ($stateParams.name == 'vendor') {\r\n vm.getDashboard('Vendor Dashboard');\r\n } else {\r\n vm.getDashboard($stateParams.name);\r\n }\r\n }\r\n\r\n vm.loadSpecificDashboard = function(name){\r\n var DashboardListModel = vm.getAccountConfigSetting('DashboardListModel');\r\n var isLoaded = false;\r\n if(DashboardListModel && DashboardListModel.length>0){\r\n angular.forEach(DashboardListModel, function(d){\r\n if(d.DashboardType == name){\r\n vm.getDashboard(d.DashboardName);\r\n isLoaded = true;\r\n }\r\n })\r\n }\r\n if(isLoaded==false){\r\n vm.loadDefaultDashboard(name);\r\n }\r\n }\r\n\r\n if(vm.accountConfig.AccountId != '362'){\r\n vm.loadSpecificDashboard($stateParams.name);\r\n\r\n }\r\n\r\n\r\n vm.LinkClick = function(url){\r\n // console.log(url);\r\n var i = vm.deepLink[url]('','');\r\n // console.log('i',i);\r\n var key ='';\r\n var filter_key='';\r\n var filter_name = '';\r\n var start_date='';\r\n var report_name = '';\r\n key = i.key;\r\n report_name = i.report_name;\r\n filter_key = i.filter_key;\r\n filter_name = i.filter_name;\r\n start_date = i.start_date;\r\n // console.log('params',key,report_name,filter_key,filter_name,start_date);\r\n $state.go('index.DashboardReport', {\r\n report_name: report_name,\r\n key: key,\r\n filter_key: filter_key,\r\n filter_name: filter_name,\r\n start_date: start_date,\r\n isData: true\r\n }, \r\n {\r\n reload: true\r\n });\r\n }\r\n \r\n //$log.log(\"$stateParams.name\",$stateParams.name);\r\n\r\n vm.saveRollup = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n if (chartType == 'Line') {\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis); \r\n }else if(chartType == 'Bar'){\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createBarChart(chartId, yAxis); \r\n }else if(chartType == 'CustomLine'){\r\n vm.lineCharts[chartId].selectedRollup = rollup;\r\n dimensions = vm.lineCharts[chartId].selectedDimension;\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis); \r\n }else if(chartType == 'CustomBar'){\r\n vm.barCharts[chartId].selectedRollup = rollup;\r\n //$log.log(\"rollup\", rollup);\r\n if (vm.selectDimension && vm.selectDimension[chartId].dimension.length>0) {\r\n dimensions = vm.selectDimension[chartId].dimension; \r\n }else{\r\n dimensions = vm.lineCharts[chartId].selectedDimension;\r\n } \r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n vm.createLineChart(chartId, yAxis); \r\n } \r\n }\r\n\r\n vm.ChangeDimensions = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.lineCharts[chartId].selectedDimension = dimensions;\r\n rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup);\r\n $timeout(function(){\r\n vm.createLineChart(chartId, yAxis);\r\n },1000) \r\n }\r\n\r\n //For CustomPieChart\r\n vm.ChangeDimensionsPie = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.pieCharts[chartId].selectedDimension = dimensions;\r\n // vm.selectDimension[chartId].dimension = dimensions;\r\n //console.log('selectDimension',vm.selectDimension);\r\n // vm.lineCharts[chartId].selectedRollup = rollup;\r\n //rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, \"\");\r\n $timeout(function(){\r\n vm.createPieChart(chartId, yAxis);\r\n },1000)\r\n \r\n }\r\n\r\n //For CustomBarChart\r\n vm.ChangeDimensionsBar = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.barCharts[chartId].selectedDimension = dimensions;\r\n // vm.selectDimension[chartId].dimension = dimensions;\r\n //console.log('selectDimension',vm.selectDimension);\r\n // vm.lineCharts[chartId].selectedRollup = rollup;\r\n //rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, \"\");\r\n $timeout(function(){\r\n vm.createBarChart(chartId, yAxis);\r\n },1000)\r\n \r\n }\r\n\r\n //For CustomStackedChart\r\n vm.ChangeDimensionsCustomStackedBar = function (chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, rollup) {\r\n vm.stackedCharts[chartId].selectedDimension = dimensions;\r\n // vm.selectDimension = dimensions;\r\n // console.log('selectDimension',vm.selectDimension);\r\n // vm.lineCharts[chartId].selectedRollup = rollup;\r\n //rollup = 'Monthly';\r\n //$log.log(\"rollup\", rollup);\r\n vm.getChart(chartId, chartType, metrics, dimensions, chartSubtitle, yAxis, \"\");\r\n $timeout(function(){\r\n vm.createStackedChart(chartId, yAxis);\r\n },1000)\r\n \r\n }\r\n\r\n vm.isActiveRollbackCustomPie = function(chartId, dimension){\r\n if(vm.pieCharts[chartId] && vm.pieCharts[chartId].selectedDimension){\r\n return vm.pieCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackCustomBar = function(chartId, dimension){\r\n if(vm.barCharts[chartId] && vm.barCharts[chartId].selectedDimension){\r\n return vm.barCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackCustomStackedBar = function(chartId, dimension){\r\n if(vm.stackedCharts[chartId] && vm.stackedCharts[chartId].selectedDimension){\r\n return vm.stackedCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n\r\n vm.isActiveRollbackBar = function(chartId, rollup){\r\n if(vm.barCharts[chartId] && vm.barCharts[chartId].selectedRollup){\r\n return vm.barCharts[chartId].selectedRollup == rollup;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackStackedBar = function(chartId, rollup){\r\n if(vm.stackedCharts[chartId] && vm.stackedCharts[chartId].selectedRollup){\r\n return vm.stackedCharts[chartId].selectedRollup == rollup;\r\n }\r\n return false;\r\n }\r\n\r\n vm.isActiveRollback = function(chartId, rollup){\r\n if(vm.lineCharts[chartId] && vm.lineCharts[chartId].selectedRollup){\r\n return vm.lineCharts[chartId].selectedRollup == rollup;\r\n }\r\n return false;\r\n }\r\n vm.isActiveRollbackCustome = function(chartId, dimension){\r\n if(vm.lineCharts[chartId] && vm.lineCharts[chartId].selectedDimension){\r\n return vm.lineCharts[chartId].selectedDimension == dimension;\r\n }\r\n return false;\r\n }\r\n\r\n vm.createLineChart = function (chartId, yAxis) {\r\n vm.chartOptions = vm.chartOptions ? vm.chartOptions : {};\r\n $timeout(function () {\r\n if (vm.lineCharts[chartId] && vm.lineCharts[chartId].value) {\r\n vm.chartOptions[chartId] = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'line'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n categories: vm.lineCharts[chartId].value.Categories\r\n },\r\n // legend: {\r\n // layout: 'horizontal',\r\n // align: 'left',\r\n // itemWidth: 100,\r\n // verticalAlign: 'bottom',\r\n // //y: 30,\r\n // navigation: {\r\n // activeColor: '#3E576F',\r\n // animation: true,\r\n // arrowSize: 12,\r\n // inactiveColor: '#CCC',\r\n // style: {\r\n // fontWeight: 'bold',\r\n // color: '#333',\r\n // fontSize: '12px'\r\n // }\r\n // }\r\n // },\r\n // legend: {\r\n // align: 'right',\r\n // verticalAlign: 'top',\r\n // layout: 'vertical',\r\n // x: 0,\r\n // y: 100\r\n // },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n },\r\n scrollbar: {\r\n enabled: true\r\n }\r\n },\r\n plotOptions: {\r\n line: {\r\n dataLabels: {\r\n enabled: true\r\n },\r\n enableMouseTracking: true\r\n }\r\n },\r\n series: GetSeries()\r\n\r\n };\r\n function GetSeries(){\r\n\r\n if (vm.lineCharts[chartId].value.Series.length>10) {\r\n \r\n for(var i=0; i10) {\r\n var legend = {\r\n layout: 'horizontal',\r\n align: 'left',\r\n itemWidth: 100,\r\n verticalAlign: 'bottom',\r\n //y: 30,\r\n navigation: {\r\n activeColor: '#3E576F',\r\n animation: true,\r\n arrowSize: 12,\r\n inactiveColor: '#CCC',\r\n style: {\r\n fontWeight: 'bold',\r\n color: '#333',\r\n fontSize: '12px'\r\n }\r\n }\r\n }\r\n vm.chartOptions[chartId].legend = legend;\r\n }\r\n\r\n var chart = new Highcharts.chart(chartId, vm.chartOptions[chartId]);\r\n \r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n }\r\n }, 1000);\r\n }\r\n vm.createBarChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.barCharts[chartId] && vm.barCharts[chartId].value) {\r\n var chartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n legend: {\r\n enabled: true\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n // type : 'category',\r\n categories: vm.barCharts[chartId].value.Categories \r\n },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n \r\n }\r\n }\r\n },\r\n \r\n series: vm.barCharts[chartId].value.Series\r\n // drilldown:vm.barCharts[chartId].value.drilldown\r\n \r\n };\r\n \r\n if (chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]) {\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true;\r\n }\r\n \r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 2000);\r\n }\r\n\r\n //Create DrillDown Bar Chart\r\n vm.createDrilledDownBarChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.barCharts[chartId] && vm.barCharts[chartId].value) {\r\n var chartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n legend: {\r\n enabled: false\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n type : 'category'\r\n \r\n },\r\n yAxis: {\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n \r\n }\r\n }\r\n },\r\n \r\n series: vm.barCharts[chartId].value.Series,\r\n drilldown:vm.barCharts[chartId].value.drilldown\r\n \r\n };\r\n \r\n if (chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]) {\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true;\r\n }\r\n \r\n \r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 2000);\r\n }\r\n\r\n //Stacked Chart\r\n vm.createStackedChart = function (chartId, yAxis) {\r\n $timeout(function () {\r\n if (vm.stackedCharts[chartId] && vm.stackedCharts[chartId].value) {\r\n var stackedchartData = {\r\n credits: {\r\n enabled: true\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n chart: {\r\n type: 'column',\r\n inverted: false\r\n },\r\n title: {\r\n text: ''\r\n },\r\n subtitle: {\r\n text: ''\r\n },\r\n xAxis: {\r\n categories: vm.stackedCharts[chartId].value.Categories \r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: yAxis\r\n }\r\n },\r\n legend: {\r\n\r\n reversed: true\r\n },\r\n tooltip: {\r\n formatter: function () {\r\n return '' + this.x + '
' +\r\n this.series.name + ': ' + this.y + '
' +\r\n 'Total: ' + this.point.stackTotal;\r\n }\r\n },\r\n plotOptions: {\r\n column: {\r\n dataLabels: {\r\n enabled: true,\r\n align: 'right',\r\n color: 'black',\r\n x: -10\r\n },\r\n enableMouseTracking: true\r\n },\r\n series: {\r\n\r\n stacking: 'normal'\r\n }\r\n },\r\n series: vm.stackedCharts[chartId].value.Series\r\n };\r\n if (stackedchartData && stackedchartData.series && stackedchartData.series.length>0 && stackedchartData.series[0].data \r\n && stackedchartData.series[0].data.length>0 && stackedchartData.series[0].data[0]) {\r\n stackedchartData.series[0].data[0].sliced=true;\r\n stackedchartData.series[0].data[0].selected=true;\r\n }\r\n \r\n var chart = new Highcharts.chart(chartId, stackedchartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 2000);\r\n }\r\n\r\n vm.createPieChart = function (chartId, title) {\r\n vm.showPieChart = vm.showPieChart || {};\r\n vm.tempShowPieChart = vm.tempShowPieChart || {};\r\n vm.showPieChart[chartId] = true;\r\n $timeout(function () {\r\n vm.tempShowPieChart[chartId] = false;\r\n if (vm.pieCharts[chartId] && vm.pieCharts[chartId].value) {\r\n\r\n for(var i=0; i0){\r\n vm.tempShowPieChart[chartId]=true;\r\n }\r\n }\r\n vm.showPieChart[chartId]=vm.tempShowPieChart[chartId];\r\n var chartData = {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie'\r\n },\r\n colors: ['#3093d1', '#fcb631', '#9ad631', '#f34ea8', '#30bfdd', '#fc9532', '#9f4bc7', '#304ec6', '#fcd731', '#f08576', '#418842'],\r\n title: {\r\n text: ''\r\n },\r\n tooltip: {\r\n headerFormat: ' {series.name} : {point.name}
',\r\n pointFormat: ' {point.name}: {point.y:,.0f}
',\r\n footerFormat: ' Percentage : {point.percentage:,.1f}% ', shared: true, useHTML: true\r\n //pointFormat: '{series.name}: {point.y:.1f}%'\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n dataLabels: {\r\n enabled: false\r\n },\r\n showInLegend: true\r\n }\r\n },\r\n series: [{\r\n name: title,\r\n colorByPoint: true,\r\n data: vm.pieCharts[chartId].value\r\n }]\r\n };\r\n if(chartData && chartData.series && chartData.series.length>0 && chartData.series[0].data \r\n && chartData.series[0].data.length>0 && chartData.series[0].data[0]){\r\n chartData.series[0].data[0].sliced=true;\r\n chartData.series[0].data[0].selected=true; \r\n }\r\n var chart = new Highcharts.chart(chartId, chartData);\r\n\r\n chart.reflowNow = function () {\r\n this.containerHeight = this.options.chart.height || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'height');\r\n this.containerWidth = this.options.chart.width || window.window.HighchartsAdapter.adapterRun(this.renderTo, 'width');\r\n this.setSize(this.containerWidth, this.containerHeight, false);\r\n this.hasUserSize = null;\r\n }\r\n } \r\n }, 1000);\r\n }\r\n\r\n var gaugeInstances = {};\r\n vm.createGaugeChart = function (chartId) {\r\n if (gaugeInstances[chartId]) {\r\n gaugeInstances[chartId].destroy();\r\n }\r\n vm.showGaugeChart = vm.showGaugeChart || {};\r\n vm.tempshowGaugeChart = vm.tempshowGaugeChart || {};\r\n vm.showGaugeChart[chartId] = true;\r\n vm.tempshowGaugeChart[chartId] = false;\r\n \r\n if (vm.gaugeCharts[chartId] && vm.gaugeCharts[chartId].value) {\r\n vm.tempshowGaugeChart[chartId] = true;\r\n vm.showGaugeChart[chartId] = vm.tempshowGaugeChart[chartId];\r\n var label = \"(\" + vm.gaugeCharts[chartId].value[0].AcheivedPercentage + \"% of the target)\";\r\n var chartData = {\r\n id: chartId,\r\n value: vm.gaugeCharts[chartId].value[0].Value,\r\n min: 0,\r\n max: vm.gaugeCharts[chartId].value[0].TargetValue,\r\n decimals: 0,\r\n gaugeWidthScale: 0.6,\r\n pointer: true,\r\n pointerOptions: {\r\n toplength: -15,\r\n bottomlength: 10,\r\n bottomwidth: 12,\r\n color: '#333333',\r\n stroke: '#ffffff',\r\n stroke_width: 3,\r\n stroke_linecap: 'round'\r\n },\r\n customSectors: {\r\n ranges: [{\r\n color: \"#ff3b30\",\r\n lo: 0,\r\n hi: vm.gaugeCharts[chartId].value[0].TargetValue * 0.25\r\n }, {\r\n color: \"#FFA500\",\r\n lo: vm.gaugeCharts[chartId].value[0].TargetValue * 0.25,\r\n hi: vm.gaugeCharts[chartId].value[0].TargetValue * 0.50\r\n }, {\r\n color: \"#eccd28\",\r\n lo: vm.gaugeCharts[chartId].value[0].TargetValue * 0.50,\r\n hi: vm.gaugeCharts[chartId].value[0].TargetValue * 0.75\r\n }, {\r\n color: \"#43bf58\",\r\n lo: vm.gaugeCharts[chartId].value[0].TargetValue * 0.75,\r\n hi: vm.gaugeCharts[chartId].value[0].TargetValue\r\n }]\r\n },\r\n label: label,\r\n labelFontColor: \"#333333\",\r\n labelFontFamily: \"Arial\",\r\n labelFontSize: \"20px\",\r\n textRenderer: function (val) {\r\n return (vm.gaugeCharts[chartId].value[0].ValueType == 'INR'?(vm.gaugeCharts[chartId].value[0].strValue): vm.gaugeCharts[chartId].value[0].Value);\r\n },\r\n };\r\n gaugeInstances[chartId] = new JustGage(chartData);\r\n }\r\n };\r\n\r\n// var intervalId = setInterval(function() {\r\n// gauge.refresh(Math.random() * 1000);\r\n// }, 5000);\r\n\r\n\r\n\r\n $scope.changeFunction = function() {\r\n alert('change');\r\n }\r\n\r\n var makeDynamicTable = function(chartId, dataSet){\r\n\r\n if(dataSet.Values.length >= 10)\r\n {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n }\r\n else\r\n {\r\n vm.tableCharts[chartId].dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n var defer = $q.defer();\r\n defer.resolve(dataSet.Values);\r\n return defer.promise;\r\n })\r\n .withDOM('Tfgt')\r\n //.withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n\r\n }\r\n \r\n\r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n vm.tableCharts[chartId].dtInstance = {};\r\n vm.tableCharts[chartId].dtColumns = [];\r\n var columnList = Object.keys(dataSet.Categories);\r\n for(var index = 0; index < columnList.length; index++ ){\r\n\r\n var temp = '';\r\n var colunId = columnList[index];\r\n temp = DTColumnBuilder.newColumn(colunId).withTitle(dataSet.Categories[colunId]).renderWith(function(data,type,full,meta){\r\n var colKey = '';\r\n function getKeyByIndex(object, col) {\r\n var colList = Object.keys(object);\r\n colKey = colList[col]; \r\n }\r\n\r\n getKeyByIndex(full,meta.col)\r\n var firstColumntKey = Object.values(full)[0];\r\n var fixedCatogries = Object.values(vm.tableCharts[chartId].value.Categories)[0];\r\n var t = vm.tableCharts[chartId].value.Categories;\r\n var n = t[colKey]; \r\n if(data > 0 && vm.deepLink[n +' '+ vm.tableCharts[chartId].ChartId]){\r\n return \"' + data + \" \";\r\n // return \"\" + data + \" \";\r\n }else{\r\n return \"\"+data+\"\";\r\n }\r\n });\r\n vm.tableCharts[chartId].dtColumns.push(temp);\r\n } \r\n }\r\n \r\n vm.createTableChart = function (chartId, lenth , data) {\r\n makeDynamicTable(chartId, data);\r\n }\r\n\r\n $scope.$on('fullscreen', function () {\r\n setTimeout(function () {\r\n $(element).highcharts().reflow();\r\n }, 0);\r\n }); \r\n\r\n}\r\n});\r\n\nangular.module('inspinia').service('ActiveVendorUpdateService', function($http, FreelancerURL,ApiURL,PublicApiURL){\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/FreeLancerRegistration/srachit46%40gmail.com/UR0000000002/GetUserByRegistrationNumber\r\n this.GetUserByRegistrationNo = function (loggedinUser, registrationNo, token) {\r\n var url = FreelancerURL + '/api/FreelancerRegistration/' + loggedinUser + '/' + registrationNo + '/GetUserByRegistrationNumber'\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n this.SaveBackgroundChecks = function(BGDocList, files, token, loggedinUser){ \r\n var formdata = new FormData();\t\t\r\n formdata.append(\"files\", files[0]);\t\r\n var followupdata = JSON.stringify(BGDocList);\r\n formdata.append(\"BackgroundData\", followupdata);\r\n // formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/Upload/BackgroundDoc';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n }\r\n \r\n\r\n this.getAllState = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n } \r\n });\r\n }\r\n //http://192.168.0.80:92/LocationAPI/api/Location/saurabhgupta3371%40gmail.com/UTTAR%20PRADESH/GetCitiesByState\r\n\r\n this.getCityByState = function (loggedinUser, state) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/' + state + '/GetCitiesByState';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n this.updateuUser = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration?reqUserId=' + loggedinUser;\r\n return $http.put(url, data, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.uploadProfilePic = function (loggedinUser, data, token, success, failure) {\r\n $http.post(ApiURL + '/api/UploadDoc', data, { \r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n\r\n this.getAllSkills = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers: {'Token': token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 200 && res.data){\r\n success(res.data);\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get skill list, server error.\")\r\n })\r\n }\r\n\r\n //https://db.mymobiforce.com/publicapi/api/Address/GetCountry?userId=U420000000001\r\nthis.getCountry = function (userId) {\r\n var url = PublicApiURL + '/api/Address/GetCountry?userId=' + userId;\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n}\r\n\r\nthis.getStates = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n } \r\n});\r\n}\r\n\r\n\r\n//https://db.mymobiforce.com/publicapi/api/Address/GetCities?userId=U420000000001&state=DOHA\r\n// this.getCities = function (userId, state) {\r\n// var url = PublicApiURL + '/api/Address/GetCities?userId=' + userId + '&state=' + state;\r\n// return $http.get(url, {\r\n// params: {}\r\n// });\r\n// }\r\n\r\n\r\n this.GetAllCircles = function (loggedinUser, success, failure) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllCircles'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json' }\r\n }).then(function(res){\r\n if(res && res.status ==200 && res.data){\r\n success(res.data);\r\n } \r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get locations, server is not responding correctly\");\r\n });\r\n }\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/Cetrificate/GetAll?reqUserId=F00000000000\r\n// https://perf.mymobiforce.com/coreapi/api/Cetrificate/GetAllMaster?reqUserId=F00000000000\r\nthis.GetAllCertificate = function(loggedinUser, token, success, failure){\r\n // var url = ApiURL + '/api/Cetrificate/GetAll?reqUserId=' + loggedinUser;\r\n var url = ApiURL + '/api/Cetrificate/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url,{headers:{'Token':token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 201 && res.data){\r\n success(res.data);\r\n }\r\n },function(err){\r\n failure(\"Failed\",\"Unable to get certificate list, server error.\");\r\n })\r\n}\r\n\r\n// https://perf.mymobiforce.com/coreapi/api/Tool/GetAllMaster?reqUserId=F00000000000\r\nthis.GetAllToolSets = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/Tool/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url,{headers:{'Token':token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 201 && res.data){\r\n success(res.data);\r\n }\r\n },function(err){\r\n failure(\"Failed\",\"Unable to get certificate list, server error.\");\r\n })\r\n}\r\nthis.UserAciveDeactive = function (loggedinUser,userId, token) {\r\n var url = ApiURL + '/api/User/'+userId+'/activate?reqUserId='+loggedinUser;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser}\r\n });\r\n}\r\nthis.AddToolAuditwithAttachment = function(data, files, token, loggedinUser){ \r\n var formdata = new FormData();\t\t\r\n formdata.append(\"files\", files[0]);\t\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"AuditRequestModel\", followupdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/Upload/PostMediaFileWithAuditObject';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n}\r\n//https://product.mymobiforce.com/coreapi/api/UserTraining/PostMediaFileWithTrainingObject\r\nthis.PostMediaFileWithTrainingObject = function(data, files,files1, token, loggedinUser){ \r\n var formdata = new FormData();\t\t\r\n formdata.append(\"files\", files[0]);\t\r\n formdata.append(\"files1\", files1[0]);\t\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"UserTrainingRequestModel\", followupdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/UserTraining/PostMediaFileWithTrainingObject';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n}\r\n//https://product.mymobiforce.com/coreapi/api/UserTraining/PostMediaFileWithCriminalVerificationObject\r\nthis.AddCriminalVerificationwithAttachment = function(data, files, token, loggedinUser){ \r\n var formdata = new FormData();\t\t\r\n formdata.append(\"files\", files[0]);\t\r\n var CriminalVerificationdata = JSON.stringify(data);\r\n formdata.append(\"CriminalVerificationRequestModel\", CriminalVerificationdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/UserTraining/PostMediaFileWithCriminalVerificationObject';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n}\r\n})\nangular.module('inspinia').controller('ActiveVendorUpdateController', function (ActiveVendorUpdateService, MainService, $q, $filter, ReferService, FreelancerURL, $window, $location, $rootScope, $stateParams, $uibModal, $scope, $log, ImageUrl, $sce, toaster, $localStorage, $timeout, InvoiceUrl, $state) {\r\n\r\n var vm = this;\r\n var RegistrationNo = $stateParams.RegistrationNo;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n vm.dissbleUpdateButton = false;\r\n vm.dissableMobile = true;\r\n vm.searchButtonText = 'Update';\r\n vm.editmode = false;\r\n vm.RegisteredUser = '';\r\n vm.FirstName = '';\r\n vm.isnonindeximage='';\r\n vm.LastName = '';\r\n vm.MobileNo = '';\r\n vm.Email = '';\r\n vm.DOB = moment();\r\n vm.Gender = '';\r\n vm.PAN = '';\r\n vm.Aadhar = '';\r\n vm.AddressLine1 = '';\r\n vm.AddressLine2 = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.PermanentPincode = '';\r\n vm.BaseAddressLine1 = '';\r\n vm.BaseAddressLine2 = '';\r\n vm.BaseState = '';\r\n vm.BaseCity = '';\r\n vm.BasePincode = '';\r\n vm.UserId = '';\r\n vm.Picture = '';\r\n vm.DocprofileImg =[];\r\n vm.CertprofileImg=[];\r\n vm.RegistrationStatus = '';\r\n vm.UserInfoCheck = false;\r\n vm.UserLocationCheck = false;\r\n vm.UserDocumentCheck = false;\r\n vm.UserTraningCheck = false;\r\n vm.UserAvailableAssestCheck = false;\r\n vm.UserSkillCheck = false;\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.verifyAll = false;\r\n vm.CompanyRegisterration ='';\r\n vm.GST='';\r\n vm.CompanyGSTNO ='';\r\n vm.MSME ='';\r\n vm.MSMECertificateNO ='';\r\n vm.TPI ='';\r\n vm.Supplier ='';\r\n vm.Asset_Mobile = '';\r\n vm.Asset_Laptop = '';\r\n vm.Asset_Bike = '';\r\n vm.Asset_Tools = '';\r\n vm.Work_Location=[];\r\n vm.Asset_ToolList = [];\r\n // vm.UpdatedToolList = [];\r\n vm.PreferredLocationList = [];\r\n vm.BGDocList = [];\r\n vm.experienceYearList = [];\r\n vm.AllSkillSets = [];\r\n vm.SkillList = [];\r\n vm.QualificationList = [];\r\n vm.TrainingList = [];\r\n vm.addSkill = '';\r\n vm.addExprence = '';\r\n vm.error = {};\r\n vm.profileImg='';\r\n vm.UserRole=\"\";\r\n var $container = $('.basicwizard1');\r\n var $p = $('.referalwizard');\r\n var currentIndex = 0;\r\n vm.TeamSize = '';\r\n vm.CoverageDistance = '';\r\n vm.ToolsDetailList=[];\r\n vm.PreviousCompanyDetailsList=[];\r\n vm.VerificationCertprofileImg = [];\r\n vm.Verificationpathtcertificate = '';\r\n vm.IsUserActive=false;\r\n vm.UserExperience='';\r\n vm.CompanyName = '';\r\n vm.FatherName = '';\r\n vm.Designation='';\r\n vm.ToolAuditFileName=\"\"; \r\n vm.AuditList=[];\r\n vm.PreviousCompanyAuditList=[];\r\n vm.UserTrainingList =[];\r\n vm.ExperienceAuditFiles=[];\r\n vm.ToolAuditFiles = [];\r\n vm.TrainingImageFiles=[];\r\n vm.TrainingAttendanceFiles=[];\r\n vm.TrainingImagebase64=[];\r\n vm.TrainingAttendancebase64=[];\r\n vm.PCExperienceLetterbase64=[];\r\n vm.ExperienceVerificationReportbase64=[];\r\n vm.CriminalVerificationbase64=\"\";\r\n vm.CriminalVarificationObj={};\r\n vm.TrainingDate = moment();\r\n vm.FloorList = [\"Basement\",\"1st Floor\",\"2nd Floor\",\"3rd Floor\",\"4th Floor\",\"5th Floor\"];\r\n vm.InfraDetailsList = [{\r\n \"SpaceAvailable\": 1,\r\n \"FloorsAvailable\": \"\",\r\n \"InfraLocation\": {\r\n \"Address\": \"\",\r\n \"State\": \"\",\r\n \"City\": \"\"\r\n }\r\n }];\r\n vm.TrainersDetailsList = [{\r\n \"SeatsCapacity\": 1,\r\n \"NoOfTrainers\": 1,\r\n \"TrainingLocation\": {\r\n \"Address\": \"\",\r\n \"State\": \"\",\r\n \"City\": \"\"\r\n },\r\n \"TrainersSkills\": []\r\n }];\r\n vm.InfraCityList=[];\r\n vm.TrainersCityList = [];\r\n vm.IsInfraTable = false;\r\n var today = new Date();\r\n var date = today.getFullYear() - 18;\r\n var age = (today.getMonth() + 1 + \"/\" + today.getDate() + \"/\" + date).toString();\r\n vm.maxDOB = new Date(age);\r\n vm.maxDOBStr = vm.maxDOB.toDateString();\r\n age = Date.parse(age);\r\n $scope.MaxDate = moment(age);\r\n vm.checkMaxDOB = function () {\r\n if (vm.DOB && !vm.DOB._isAMomentObject) {\r\n var splittedDOB = vm.DOB.split(\"/\");\r\n vm.DOB = moment(new Date((splittedDOB[1] + \"/\" + splittedDOB[0] + \"/\" + splittedDOB[2]).toString()));\r\n }\r\n return (vm.maxDOB - vm.DOB) < 0;\r\n }\r\n\r\n\r\n vm.TeamSizeList = [\"0\",\"0-10\", \"11-20\", \"21-50\", \"51-100\", \"MoreThan 100\"];\r\n vm.qualificationList = [\"10th\", \"12th\", \"Graduation Degree/Deploma\", \"PG Degree/Deploma\"];\r\n vm.BGDocType = ['Aadhar Card', 'Address Proof', 'Pan Card','Court Information', 'Education Certificate','Police Verification','Resume','Cancelled Check','Experience Letter'];\r\n // vm.BGDocType = ['Aadhar Card', 'Address Proof', 'Pan Card', 'Education Certificate', 'Police Verification', 'Resume', 'Cancelled Check', 'GST Certificate', 'Non GST Certificate','MSME Certificate', 'Non MSME Certificate', 'SAIACC Certificate','Compnay Registration Certificate','Experience Letter'];\r\n vm.BDDocSubType = {};\r\n vm.BDDocSubType['Aadhar Card'] = ['Aadhar Card', 'Voter Id Card', 'Driving License'];\r\n vm.BDDocSubType['Address Proof'] = [\"Aadhar Card\", \"Voter Id Card\", \"Driving License\", \"Passport\", \"Rent Agreement\", \"Telephone/Gas Bill\", \"Bank Passbook\"];\r\n vm.BDDocSubType['Pan Card'] = ['Pan Card'];\r\n vm.BDDocSubType['Education Certificate'] = vm.qualificationList;\r\n vm.BDDocSubType['Police Verification'] = [\"Police Verification\"];\r\n vm.BDDocSubType['Resume'] = [\"Resume\"];\r\n vm.BDDocSubType['Cancelled Check'] = [\"Cancelled Check\"];\r\n vm.BDDocSubType['GST Certificate'] = [\"GST Certificate\"];\r\n vm.BDDocSubType['Non GST Certificate'] = [\"Non GST Certificate\"];\r\n vm.BDDocSubType['MSME Certificate'] = [\"MSME Certificate\"];\r\n vm.BDDocSubType['Non MSME Certificate'] = [\"Non MSME Certificate\"];\r\n vm.BDDocSubType['SAIACC Certificate'] = [\"SAIACC Certificate\"];\r\n vm.BDDocSubType['Compnay Registration Certificate'] = [\"Compnay Registration Certificate\"];\r\n vm.BDDocSubType['Experience Letter'] = [\"Experience Letter\"];\r\n\r\n vm.GetUserByRegistrationNo = function () {\r\n ActiveVendorUpdateService.GetUserByRegistrationNo(loggedinUser, RegistrationNo, token).then(function (resp) {\r\n var RegisteredUser = resp.data;\r\n vm.UserId = RegisteredUser.UserId;\r\n vm.FirstName = RegisteredUser.FirstName;\r\n vm.LastName = RegisteredUser.LastName;\r\n vm.UserRole = RegisteredUser.Role;\r\n vm.DOB = moment(RegisteredUser.DOB);\r\n vm.Email = RegisteredUser.PersonalEmail;\r\n vm.Gender = RegisteredUser.Gender;\r\n vm.PAN = RegisteredUser.PAN;\r\n vm.Aadhar = RegisteredUser.AdharNo;\r\n vm.MobileNo = RegisteredUser.ContactNumber;\r\n vm.AddressLine1 = RegisteredUser.PermanentAdd1;\r\n vm.AddressLine2 = RegisteredUser.PermanentAdd2;\r\n vm.PermanentState = RegisteredUser.PermanentState;\r\n vm.PermanentCity = RegisteredUser.PermanentCity?RegisteredUser.PermanentCity.toUpperCase():RegisteredUser.PermanentCity;\r\n // vm.PermanentCity = RegisteredUser.PermanentCity.toUpperCase();\r\n vm.PermanentPincode = RegisteredUser.PermanentPinCode;\r\n vm.BaseAddressLine1 = RegisteredUser.CurrentAdd1;\r\n vm.BaseAddressLine2 = RegisteredUser.CurrentAdd2;\r\n vm.BaseState = RegisteredUser.CurrentState;\r\n vm.BaseCity = RegisteredUser.CurrentCity?RegisteredUser.CurrentCity.toUpperCase():RegisteredUser.CurrentCity;\r\n vm.BasePincode = RegisteredUser.CurrentPinCode;\r\n vm.Picture = RegisteredUser.Picture;\r\n vm.RegistrationStatus = RegisteredUser.RegistrationStatus;\r\n vm.Asset_Mobile = RegisteredUser.IsMobileAvailable;\r\n vm.Asset_Bike = RegisteredUser.IsBikeAvailable;\r\n vm.Asset_Laptop = RegisteredUser.IsLaptopAvailable;\r\n vm.QualificationList = RegisteredUser.UserQualification;\r\n // vm.TrainingList = RegisteredUser.TrainingAssessment;\r\n vm.UserInfoCheck = RegisteredUser.IsBasicVerified;\r\n vm.UserLocationCheck = RegisteredUser.IsLocVerified;\r\n vm.UserDocumentCheck = RegisteredUser.IsDocsVerified;\r\n vm.UserTraningCheck = RegisteredUser.IsCertificationVerified;\r\n vm.UserAvailableAssestCheck = RegisteredUser.IsAssetsVerified;\r\n vm.UserSkillCheck = RegisteredUser.IsSkillsVerified;\r\n vm.CoverageDistance = RegisteredUser.CoverageDistance;\r\n vm.Asset_Tools = RegisteredUser.Tools;\r\n vm.TeamSize = RegisteredUser.TeamSize;\r\n vm.Work_Location =RegisteredUser.Locations;\r\n vm.CompanyRegisterration =RegisteredUser.CompanyRegistrationNumber;\r\n vm.GST =RegisteredUser.IsGSTCertified;\r\n vm.CompanyGSTNO =RegisteredUser.GSTCertificateNumber;\r\n vm.MSME =RegisteredUser.IsMSMECertified;\r\n vm.MSMECertificateNO =RegisteredUser.MSMECertificateNumber;\r\n vm.TPI=RegisteredUser.IsPartnerThirdPartyInternediary;\r\n vm.Supplier=RegisteredUser.IsPartnerIncludeAntiCorruptionClause;\r\n vm.imageServices(RegisteredUser.Picture);\r\n vm.ToolsDetailList = RegisteredUser.ToolsDetailList;\r\n vm.PreviousCompanyDetailsList = RegisteredUser.PreviousCompanyDetailsList;\r\n vm.UserExperience = RegisteredUser.Experience;\r\n vm.CompanyName = RegisteredUser.CompanyName;\r\n vm.FatherName = RegisteredUser.FatherName;\r\n vm.Designation = RegisteredUser.Designation;\r\n vm.AuditList=RegisteredUser.AuditList;\r\n vm.PreviousCompanyAuditList = RegisteredUser.PreviousCompanyAuditList;\r\n vm.UserTrainingList = RegisteredUser.UserTrainingList;\r\n vm.CriminalVarificationObj = RegisteredUser.CriminalVarificationObj;\r\n if(RegisteredUser.UserStatus == \"Active\")\r\n vm.IsUserActive=true;\r\n else\r\n vm.IsUserActive=false;\r\n // vm.InfraDetailsList = RegisteredUser.InfraDetailsList.length>=1?RegisteredUser.InfraDetailsList:vm.InfraDetailsList;\r\n // vm.TrainersDetailsList = RegisteredUser.TrainersDetailsList.length>=1?RegisteredUser.TrainersDetailsList:vm.TrainersDetailsList;\r\n if(vm.GST == true ){\r\n vm.GST = \"GSTYES\";\r\n $(\"#GSTNO\").hide();\r\n $(\"#GSTYES\").show();\r\n \r\n \r\n }\r\n else{\r\n vm.GST = \"GSTNO\";\r\n $(\"#GSTNO\").show();\r\n $(\"#GSTYES\").hide();\r\n }\r\n if(vm.TPI == true){\r\n vm.TPI = \"TPIYES\";\r\n $(\"#TPIYES\").show();\r\n $(\"#TPIYNO\").hide();\r\n \r\n \r\n }\r\n else{\r\n vm.TPI = \"TPINO\";\r\n $(\"#TPIYES\").hide();\r\n $(\"#TPIYNO\").show();\r\n }\r\n if(vm.Supplier == true){\r\n vm.Supplier = \"SuppYES\";\r\n }\r\n else{\r\n vm.Supplier = \"SuppNO\";\r\n }\r\n if(vm.MSME == true){\r\n vm.MSME = \"MSMEYES\";\r\n $(\"#MSMENO\").hide();\r\n $(\"#MSMEYES\").show();\r\n\r\n \r\n }\r\n else{\r\n vm.MSME = \"MSMENO\";\r\n $(\"#MSMENO\").show();\r\n $(\"#MSMEYES\").hide();\r\n }\r\n // vm.InfraDetailsList = RegisteredUser.InfraDetailsList?RegisteredUser.InfraDetailsList:vm.InfraDetailsList;\r\n // vm.TrainersDetailsList = RegisteredUser.TrainersDetailsList?RegisteredUser.TrainersDetailsList:vm.TrainersDetailsList;\r\n if(RegisteredUser.InfraDetailsList && RegisteredUser.InfraDetailsList.length>=1){\r\n vm.InfraDetailsList = RegisteredUser.InfraDetailsList;\r\n }\r\n if(RegisteredUser.TrainersDetailsList && RegisteredUser.TrainersDetailsList.length>=1){\r\n vm.TrainersDetailsList = RegisteredUser.TrainersDetailsList;\r\n }\r\n\r\n $(\"#example_id\").ionRangeSlider({\r\n grid: true,\r\n min: 0,\r\n max: 400,\r\n from: vm.CoverageDistance,\r\n step : 1,\r\n skin: \"round\",\r\n postfix: \" Kms\"\r\n });\r\n\r\n \r\n\r\n if (RegisteredUser.BGVerificationDocPath) {\r\n angular.forEach(vm.BGDocType, function (d, i) {\r\n vm.BGDocList[i] = {\r\n // \"DocumentType\": e,\r\n \"DocumentName\": d,\r\n \"DocumentNo\":\"\",\r\n \"VerificationMode\":\"\",\r\n \"DocumentPath\": \"\",\r\n \"ThirdPartyDocumentPath\": \"\",\r\n \"DocumentPath\": \"\",\r\n \"ThirdPartyDocumentPath\": \"\"\r\n };\r\n \r\n for (var imageIndex = 0; imageIndex < RegisteredUser.BGVerificationDocPath.length; imageIndex++) {\r\n if (d == RegisteredUser.BGVerificationDocPath[imageIndex].DocumentName ) {\r\n vm.BGDocList[i] = RegisteredUser.BGVerificationDocPath[imageIndex];\r\n vm.BGDocList[i].DocumentNo = vm.BGDocList[i].DocumentNo;\r\n vm.BGDocList[i].DocumentPath = vm.BGDocList[i].DocumentPath;\r\n vm.BGDocList[i].ThirdPartyDocumentPath = vm.BGDocList[i].ThirdPartyDocumentPath;\r\n vm.DocumentimageServices(vm.BGDocList[i].DocumentPath,i);\r\n vm.DocumentimageServices(vm.BGDocList[i].ThirdPartyDocumentPath,i);\r\n \r\n }\r\n }\r\n })\r\n }\r\n\r\n $scope.attachThirdPartyReport = function(files){ \r\n vm.ToolAuditFileName=\"\";\r\n var file = files.files[0];\r\n vm.ToolAuditFileName=file.name; \r\n vm.ToolAuditFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.ToolAuditFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.SiteRescheduleAudit = function(index){ \r\n // vm.ToolAuditFiles=[];\r\n var data = {};\r\n data = { \r\n \"UserId\": vm.UserId, \r\n \"docName\": vm.BGDocList[index].DocumentName,\r\n \"docType\": \"\",\r\n \"DocumentNo\":vm.BGDocList[index].DocumentNo,\r\n \"VerificationMode\":vm.BGDocList[index].VerificationMode,\r\n \"VerificationAuthority\":vm.BGDocList[index].VerificationAuthority,\r\n \"VerificationStatus\":vm.BGDocList[index].VerificationStatus,\r\n \"ThirdPartyDocumentPath\":vm.BGDocList[index].ThirdPartyDocumentPath\r\n } \r\n \r\n ActiveVendorUpdateService.SaveBackgroundChecks(data, vm.ToolAuditFiles, token, loggedinUser).then(function(res){\r\n if (res && res.status == 201) { \r\n vm.data=\"\"; \r\n vm.showSuccess(\"Success\", \"Document verified successfully.\");\r\n \r\n $timeout(function () {\r\n // vm.ToolAuditFileName=\"\";\r\n vm.GetUserByRegistrationNo();\r\n \r\n \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\",\"not verified\");\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n },vm.showFailure);\r\n }\r\n\r\n // angular.forEach(vm.BGDocType, function(d,i){\r\n // vm.BGDocList[i] = {\r\n // \"DocumentType\": d,\r\n // \"DocumentName\": \"\",\r\n // \"DocumentPath\": \"\",\r\n // \"DocumentName1\": \"\",\r\n // \"DocumentPath1\": \"\"\r\n // };\r\n // })\r\n \r\n // if(RegisteredUser.BGVerificationDocPath.length > 0){\r\n \r\n // for(var doc = 0; doc< RegisteredUser.BGVerificationDocPath.length;doc++){\r\n // for(var index = 0 ; index < vm.BGDocList.length; index ++ ){\r\n // if(RegisteredUser.BGVerificationDocPath[doc].DocumentType == vm.BGDocList[index].DocumentType){\r\n // vm.BGDocList[index] = RegisteredUser.BGVerificationDocPath[doc];\r\n // }\r\n // }\r\n \r\n \r\n // }\r\n // console.log(vm.BGDocList);\r\n \r\n // for( var m = 0; m 0){\r\n for(var i=0;i< RegisteredUser.InfraDetailsList.length;i++){\r\n if(RegisteredUser.InfraDetailsList[i].InfraLocation.State){\r\n vm.getInfraCity(RegisteredUser.InfraDetailsList[i].InfraLocation.State,i);\r\n }\r\n }\r\n }\r\n\r\n if(RegisteredUser.TrainersDetailsList && RegisteredUser.TrainersDetailsList.length > 0){\r\n for(var i=0;i< RegisteredUser.TrainersDetailsList.length;i++){\r\n if(RegisteredUser.TrainersDetailsList[i].TrainingLocation.State){\r\n vm.getTrainersCity(RegisteredUser.TrainersDetailsList[i].TrainingLocation.State,i);\r\n }\r\n }\r\n }\r\n\r\n if (vm.UserInfoCheck == true) {\r\n // vm.UserInfoCheck = true;\r\n vm.changeStatus('Basic');\r\n }\r\n if (vm.UserLocationCheck == true) {\r\n // vm.UserInfoCheck = true;\r\n // vm.UserLocationCheck = true;\r\n vm.changeStatus('Basic');\r\n vm.changeStatus('Location');\r\n\r\n } \r\n if (vm.UserDocumentCheck == true) {\r\n // vm.UserInfoCheck = true;\r\n // vm.UserLocationCheck = true;\r\n // vm.UserDocumentCheck = true;\r\n vm.changeStatus('Basic');\r\n vm.changeStatus('Location');\r\n vm.changeStatus(\"Document\");\r\n\r\n }\r\n if (vm.UserTraningCheck == true) {\r\n // vm.UserInfoCheck = true;\r\n // vm.UserLocationCheck = true;\r\n // vm.UserDocumentCheck = true;\r\n vm.changeStatus('Basic');\r\n vm.changeStatus('Location');\r\n vm.changeStatus(\"Document\");\r\n vm.changeStatus(\"Traning\");\r\n \r\n }\r\n if (vm.UserAvailableAssestCheck == true) {\r\n // vm.UserInfoCheck = true;\r\n // vm.UserLocationCheck = true;\r\n // vm.UserDocumentCheck = true;\r\n // vm.UserAvailableAssestCheck = true;\r\n vm.changeStatus('Basic');\r\n vm.changeStatus('Location');\r\n vm.changeStatus(\"Document\");\r\n vm.changeStatus(\"Traning\");\r\n vm.changeStatus(\"Assets\");\r\n }\r\n if (vm.UserSkillCheck == true) {\r\n // vm.UserInfoCheck = true;\r\n // vm.UserLocationCheck = true;\r\n // vm.UserDocumentCheck = true;\r\n // vm.UserAvailableAssestCheck = true;\r\n // vm.UserSkillCheck = true;\r\n vm.changeStatus('Basic');\r\n vm.changeStatus('Location');\r\n vm.changeStatus(\"Document\");\r\n vm.changeStatus(\"Traning\");\r\n vm.changeStatus(\"Assets\");\r\n vm.changeStatus(\"Skill\");\r\n }\r\n if(RegisteredUser.PreviousCompanyDetailsList){\r\n for(var i=0;i 0) {\r\n vm.countrylist = resp.data.values;\r\n vm.selectedCountry = vm.countrylist[0];\r\n vm.GetAllCircles();\r\n }\r\n }\r\n })\r\n }\r\n vm.getCountry();\r\n\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n\r\n function getallBaseCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.BaseCityList = resp.data;\r\n });\r\n }\r\n\r\n function getallInfraCities(state,index) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.InfraCityList[index] = resp.data;\r\n });\r\n }\r\n function getallTrainersCities(state,index) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.TrainersCityList[index] = resp.data;\r\n });\r\n }\r\n\r\n vm.getInfraCity = function(state,index){\r\n getallInfraCities(state,index);\r\n }\r\n vm.getTrainersCity = function(state,index){\r\n getallTrainersCities(state,index);\r\n }\r\n\r\n \r\n vm.AddInfraPartner = function(){\r\n var current = vm.InfraDetailsList[vm.InfraDetailsList.length-1];\r\n if(current.SpaceAvailable && current.FloorsAvailable && current.InfraLocation.Address && current.InfraLocation.State && current.InfraLocation.City){\r\n var temp = {\r\n \"SpaceAvailable\": 1,\r\n \"FloorsAvailable\": \"\",\r\n \"InfraLocation\": {\r\n \"Address\": \"\",\r\n \"State\": \"\",\r\n \"City\": \"\"\r\n }\r\n };\r\n vm.InfraDetailsList.push(temp);\r\n }else{\r\n vm.showFailure('Failed','Please select SpaceAvailable, FloorsAvailable, Address, State & City ');\r\n }\r\n \r\n }\r\n vm.DeleteInfraPartner = function(index){\r\n if(vm.InfraDetailsList.length <=1){\r\n var temp2 = {\r\n \"SpaceAvailable\": 1,\r\n \"FloorsAvailable\": \"\",\r\n \"InfraLocation\": {\r\n \"Address\": \"\",\r\n \"State\": \"\",\r\n \"City\": \"\"\r\n }\r\n };\r\n vm.InfraDetailsList.splice(index,1);\r\n vm.InfraDetailsList.push(temp2);\r\n }else{\r\n vm.InfraDetailsList.splice(index,1);\r\n }\r\n \r\n }\r\n\r\n vm.AddTrainersPartner = function(){\r\n var currentValue = vm.TrainersDetailsList[vm.TrainersDetailsList.length-1];\r\n if(currentValue.SeatsCapacity && currentValue.NoOfTrainers && currentValue.TrainingLocation.Address && currentValue.TrainingLocation.State && currentValue.TrainingLocation.City){\r\n var temp = {\r\n \"SeatsCapacity\": 1,\r\n \"NoOfTrainers\": 1,\r\n \"TrainingLocation\": {\r\n \"Address\": \"\",\r\n \"State\": \"\",\r\n \"City\": \"\"\r\n },\r\n \"TrainersSkills\": []\r\n };\r\n vm.TrainersDetailsList.push(temp);\r\n }else{\r\n vm.showFailure('Failed','Please select SeatsCapacity, NoOfTrainers, Address, State & City ');\r\n }\r\n \r\n }\r\n vm.DeleteTrainersPartner = function(index){\r\n if(vm.TrainersDetailsList.length <=1){\r\n var temp2 = {\r\n \"SeatsCapacity\": 1,\r\n \"NoOfTrainers\": 1,\r\n \"TrainingLocation\": {\r\n \"Address\": \"\",\r\n \"State\": \"\",\r\n \"City\": \"\"\r\n },\r\n \"TrainersSkills\": []\r\n };\r\n vm.TrainersDetailsList.splice(index,1);\r\n vm.TrainersDetailsList.push(temp2);\r\n }else{\r\n vm.TrainersDetailsList.splice(index,1);\r\n }\r\n }\r\n\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n vm.emptyPincode = function () {\r\n vm.PermanentPincode = '';\r\n }\r\n\r\n vm.selectedBaseState = function (bstate) {\r\n getallBaseCities(bstate);\r\n }\r\n vm.emptyBasePincode = function () {\r\n vm.BasePincode = '';\r\n }\r\n\r\n vm.getPicUrl = function (pic) {\r\n return ImageUrl + \"/\" + pic;\r\n }\r\n vm.PDFView = function (page) {\r\n MainService.GetImageBlob(loggedinUser, token, page).then(function(resp) {\r\n \r\n vm.pdfimage = resp.data;\r\n });\r\n $scope.selected = null;\r\n $timeout(function(){\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size :'lg',\r\n scope: $scope\r\n });\r\n },1000)\r\n \r\n }\r\n vm.PDFUserModal = function(){\r\n jobAppointmentModal.close();\r\n }\r\n vm.getGSTPicUrl = function (pic) {\r\n return InvoiceUrl + \"/\" + \"NonGSTDecTemplate.doc\";\r\n }\r\n vm.getMSMEPicUrl = function (pic) {\r\n return InvoiceUrl + \"/\" + \"NonMSMEDecTemplate.doc\";\r\n }\r\n $scope.checkPDF = function(path){\r\n \r\n var pt = path.substr(path.length - 4);\r\n var dt = path.substr(path.length - 4);\r\n\r\n if(pt == '.pdf' || dt == '.doc'){\r\n vm.error = function(){\r\n $(\".pdf\").attr({\"target\" : \"_blank\"})\r\n }\r\n return true;\r\n }\r\n else\r\n {\r\n return false;\r\n }\r\n }\r\n\r\n vm.changeFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n vm.changeCertificateFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n vm.VerificationchangeCertificateFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n $scope.uploadImageFile = function (files, type) {\r\n var file = files.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId+\"_ProfilePic_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if (file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n ActiveVendorUpdateService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm[type] = filename;\r\n vm.imageServices(filename);\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n }\r\n vm.imageServices = function(img){ \r\n vm.Picture=img;\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function() {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n }\r\n vm.DocumentimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n vm.DocprofileImg[index] = resp.data;\r\n \r\n });\r\n \r\n }\r\n vm.CertificateimageServices = function(cert,index){\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function(resp) {\r\n vm.CertprofileImg[index] = resp.data;\r\n \r\n });\r\n \r\n }\r\n vm.UploadCertificateimageServices = function(cert){\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function(resp) {\r\n vm.UploadCertprofileImg = resp.data;\r\n vm.isnonindeximage = \"1\";\r\n \r\n });\r\n \r\n }\r\n vm.VerificationCertificateimageServices = function(cert,index){\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function(resp) {\r\n vm.VerificationCertprofileImg[index] = resp.data; \r\n }); \r\n }\r\n vm.VerificationUploadCertificateimageServices = function(cert){\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function(resp) {\r\n vm.VerificationUploadCertprofileImg = resp.data;\r\n vm.Verificationisnonindeximage = \"1\"; \r\n }); \r\n }\r\n\r\n //background Checks\r\n $scope.uploadBGFilenew = function (elem) {\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n var doc = vm.BGDocList[index];\r\n vm.error[doc.DocumentType] = '';\r\n var file = elem.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId+\"_\"+doc.DocumentName.replace(/[^a-zA-Z0-9]/g, '') +\"_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n ActiveVendorUpdateService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n doc.DocumentPath = doc.DocumentPath = filename;\r\n doc.ThirdPartyDocumentPath = doc.ThirdPartyDocumentPath = filename;\r\n doc.DocumentName = doc.DocumentName;\r\n doc.DocumentNo = doc.DocumentNo;\r\n // doc.UpdatedOn = doc.UpdatedOn;\r\n vm.DocumentimageServices(doc.DocumentPath,index);\r\n vm.DocumentimageServices(doc.ThirdPartyDocumentPath,index);\r\n doc.editnew = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"File name is invalid, unable to upload document\");\r\n });\r\n } else {\r\n vm.error[doc.DocumentType] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n\r\n // $scope.uploadBGFile = function (elem) {\r\n // var index = (angular.element(elem).attr(\"data-index\"));\r\n // var doc = vm.BGDocList[index];\r\n // vm.error[doc.DocumentType] = '';\r\n // var file = elem.files[0];\r\n\r\n // var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n // filename = vm.UserId+\"_\"+doc.DocumentName.replace(/[^a-zA-Z0-9]/g, '') +\"_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n // var file = new File([file], filename, {type:file.type});\r\n\r\n // if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n // || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n // || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n\r\n // var data = new FormData();\r\n // data.append(\"files\", file);\r\n // ActiveVendorUpdateService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n // if (res && res.status == 201 && res.data) {\r\n // doc.DocumentPath = doc.DocumentPath1 = filename;\r\n // doc.DocumentName = doc.DocumentName;\r\n // vm.DocumentimageServices(doc.DocumentPath,index);\r\n // doc.edit = false;\r\n // }\r\n // }, function (err) {\r\n // vm.showFailure(\"Failed\", \"Unable to upload document, server error\");\r\n // });\r\n // } else {\r\n // vm.error[doc.DocumentType] = \"You can upload image, pdf or word document only\";\r\n // }\r\n // }\r\n\r\n\r\n $scope.uploadCertificateFile = function (elem) {\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n // var doc = vm.BGDocList[index];\r\n var traning = vm.TrainingList[index];\r\n // vm.error[traning.CertificateName] = '';\r\n var file = elem.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId+\"_TraningCertificate_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n ActiveVendorUpdateService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.pathtcertificate = filename;\r\n vm.UploadCertificateimageServices(filename);\r\n if(vm.pathtcertificate){\r\n vm.tempCertificateAdd = false;\r\n }\r\n traning.TrainingCertificate = traning.TrainingCertificate = filename;\r\n traning.CertificateName = traning.CertificateName;\r\n \r\n\r\n traning.edit = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload certificate, server error\");\r\n });\r\n } else {\r\n vm.error[traning.CertificateName] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n\r\n $scope.VerificationuploadCertificateFile = function (elem) {\r\n \r\n var index = (angular.element(elem).attr(\"data-index\")); \r\n var traning = vm.TrainingList[index]; \r\n var file = elem.files[0];\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId+\"_VerificationTraningCertificate_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n ActiveVendorUpdateService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.Verificationpathtcertificate = filename;\r\n vm.VerificationUploadCertificateimageServices(filename);\r\n \r\n if(vm.Verificationpathtcertificate){\r\n vm.VerificationtempCertificateAdd = false;\r\n }\r\n traning.VerificationReportPath = traning.VerificationReportPath = filename;\r\n traning.CertificateName = traning.CertificateName;\r\n \r\n traning.edit = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload verification doc, server error\");\r\n });\r\n } else {\r\n vm.error[traning.CertificateName] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n\r\n var tempPLocation = {\r\n PreferredState: \"\",\r\n PreferredCity: \"\",\r\n PreferredPincode: \"\"\r\n }\r\n vm.PreferredLocationList.push(tempPLocation);\r\n vm.AddPreferredLocation = function () {\r\n var temp = {};\r\n vm.PreferredLocationList.push(temp);\r\n }\r\n vm.DeletePreferredLocation = function (i) {\r\n vm.PreferredLocationList.splice(i, 1);\r\n }\r\n\r\n for (var i = 0; i <= 30; i++) {\r\n vm.experienceYearList.push(i);\r\n }\r\n\r\n vm.getAllSkills = function () {\r\n ActiveVendorUpdateService.getAllSkills(loggedinUser, token, function (data) {\r\n vm.AllSkillSets = data;\r\n }, vm.showFailure);\r\n }\r\n vm.getAllSkills();\r\n\r\n vm.getSkillSets = function () {\r\n var RemoveSkills = [];\r\n var remainingSkills = Array.from(vm.AllSkillSets);\r\n angular.forEach(remainingSkills, function (d) {\r\n for (var i = 0; i < vm.SkillList.length; i++) {\r\n if (d.SkillName == vm.SkillList[i].Skill) {\r\n RemoveSkills.push(d);\r\n return;\r\n }\r\n }\r\n });\r\n angular.forEach(RemoveSkills, function (s) {\r\n remainingSkills.splice(remainingSkills.indexOf(s), 1);\r\n })\r\n return remainingSkills;\r\n }\r\n\r\n vm.getTrainersSkillSets = function () {\r\n var RemoveSkills = [];\r\n var remainingSkills = Array.from(vm.AllSkillSets);\r\n angular.forEach(remainingSkills, function (d) {\r\n for (var i = 0; i < vm.TrainersDetailsList.length; i++) {\r\n for(var j=0;j= CertificateExpiryDate ){\r\n vm.showFailure(\"Expiry date should be greater than Issue Date\");\r\n vm.showTCList = false;\r\n vm.pathtcertificate = '';\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = ''; \r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.VerificationAgency ='';\r\n vm.Verificationpathtcertificate='';\r\n }else{\r\n var tData = {\r\n CertificateName: vm.addTraningCertificateName,\r\n TrainingCertificate: vm.pathtcertificate,\r\n CertificateNo : vm.CertificateNo,\r\n VerificationAgency : vm.VerificationAgency,\r\n CertificateIssueDate: CertificateIssueDate,\r\n CertificateExpiryDate: CertificateExpiryDate,\r\n CertificationYear: '',\r\n AssessmentLevel: '',\r\n Description : '',\r\n VerificationReportPath : vm.Verificationpathtcertificate\r\n }\r\n \r\n if(tData.CertificateName && tData.TrainingCertificate && tData.CertificateIssueDate && tData.CertificateExpiryDate ){\r\n vm.TrainingList.push(tData);\r\n vm.showTCList = false;\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.VerificationAgency ='';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.pathtcertificate = '';\r\n vm.Verificationpathtcertificate = '';\r\n }else{\r\n vm.showTCList = false;\r\n vm.pathtcertificate = '';\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.VerificationAgency ='';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.Verificationpathtcertificate = '';\r\n vm.showFailure(\"Warning\", \"You must select Certificate Name,CertificateIssueDate,CertificateExpiryDate & Upload File\");\r\n }\r\n }\r\n }\r\n\r\n\r\n vm.showTCList = false;\r\n vm.tempCertificateAdd = false;\r\n\r\n vm.addMoreCertificateInTable = function(){\r\n vm.showTCList = true;\r\n vm.tempCertificateAdd = true;\r\n }\r\n\r\n vm.tempCertificateAdd = false;\r\n vm.removeCertificate = function(index){\r\n vm.TrainingList.splice(index,1);\r\n }\r\n vm.removeCurrentCertificate = function () {\r\n vm.showTCList = false;\r\n vm.addTraningCertificateName = '';\r\n vm.pathtcertificate = '';\r\n }\r\n\r\n vm.getCertificateSets = function () {\r\n var RemoveCertificate = [];\r\n var remainingCertificate = Array.from(vm.AllCertificateSets);\r\n angular.forEach(remainingCertificate, function (d) {\r\n for (var i = 0; i < vm.TrainingList.length; i++) {\r\n if (d.Name == vm.TrainingList[i].CertificateName) {\r\n RemoveCertificate.push(d);\r\n return;\r\n }\r\n }\r\n });\r\n angular.forEach(RemoveCertificate, function (s) {\r\n remainingCertificate.splice(remainingCertificate.indexOf(s), 1);\r\n })\r\n return remainingCertificate;\r\n }\r\n\r\n\r\n\r\n $p.on('click', function (e) {\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n vm.changeStatus = function (status) {\r\n //$log.log(\"status\", status);\r\n if (status == 'Basic') {\r\n //$log.log(\"status\", status);\r\n // vm.RegistrationStatus = \"Basic Checked\";\r\n $('.referalwizard[id=\"2\"]').trigger('click', function (e) {\r\n vm.UserInfoCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Location') {\r\n // vm.RegistrationStatus = \"Location Checked\";\r\n $('.referalwizard[id=\"3\"]').trigger('click', function (e) {\r\n vm.UserLocationCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Document') {\r\n // vm.RegistrationStatus = \"Document Checked\";\r\n $('.referalwizard[id=\"4\"]').trigger('click', function (e) {\r\n vm.UserDocumentCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Traning') {\r\n // vm.RegistrationStatus = \"Document Checked\";\r\n $('.referalwizard[id=\"5\"]').trigger('click', function (e) {\r\n vm.UserTraningCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Assets') {\r\n // vm.RegistrationStatus = \"Assets Checked\";\r\n $('.referalwizard[id=\"6\"]').trigger('click', function (e) {\r\n vm.UserAvailableAssestCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Skill') {\r\n // vm.RegistrationStatus = \"Skill Checked\";\r\n $('.referalwizard[id=\"7\"]').trigger('click', function (e) {\r\n vm.UserSkillCheck = true;\r\n vm.verifyAll = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n }\r\n\r\n vm.VerifyAllUserInfo = function () {\r\n vm.verifyAll = true;\r\n vm.changeStatus('Basic');\r\n vm.changeStatus('Location');\r\n vm.changeStatus(\"Document\");\r\n vm.changeStatus(\"Traning\");\r\n vm.changeStatus(\"Assets\");\r\n vm.changeStatus(\"Skill\");\r\n vm.UserInfoCheck = true;\r\n vm.UserLocationCheck = true;\r\n vm.UserDocumentCheck = true;\r\n vm.UserTraningCheck = true;\r\n vm.UserAvailableAssestCheck = true;\r\n vm.UserSkillCheck = true;\r\n\r\n // vm.UserInfoCheck == true ? vm.UserInfoCheck = false : vm.UserInfoCheck = true;\r\n // vm.UserLocationCheck == true ? vm.UserLocationCheck = false : vm.UserLocationCheck = true;\r\n // vm.UserDocumentCheck == true ? vm.UserDocumentCheck = false : vm.UserDocumentCheck = true;\r\n // vm.UserAvailableAssestCheck == true ? vm.UserAvailableAssestCheck = false : vm.UserAvailableAssestCheck = true;\r\n // vm.UserSkillCheck == true ? vm.UserSkillCheck = false : vm.UserSkillCheck = true;\r\n }\r\n vm.ApprovedAndRejectTool=function(IsApproved, index)\r\n { \r\n \r\n if(IsApproved==\"Approved\")\r\n vm.ApprovedRejectTool = \"Approved\";\r\n else\r\n vm.ApprovedRejectTool = \"Rejected\";\r\n \r\n vm.ToolsDetailList[index].VerificationStatus=vm.ApprovedRejectTool;\r\n }\r\n vm.ApprovedAndRejectCertificate=function(IsApproved, index)\r\n { \r\n if(IsApproved==\"Approved\")\r\n vm.ApprovedRejectCertificate = \"Approved\";\r\n else\r\n vm.ApprovedRejectCertificate = \"Rejected\";\r\n \r\n vm.TrainingList[index].VerificationStatus=vm.ApprovedRejectCertificate;\r\n }\r\n vm.updateUser = function () {\r\n \r\n vm.searchButtonText = 'Updating';\r\n vm.dissbleUpdateButton = true;\r\n if (vm.VendorForm.$valid) {\r\n // if(vm.UserRole==\"Head Hunter\")\r\n // {\r\n // if(vm.Aadhar =='' || vm.Aadhar == null)\r\n // {\r\n // vm.showFailure(\"Failure\", \"Please enter valid aadhar no.\");\r\n // return;\r\n // }\r\n // if(vm.PAN =='' || vm.PAN == null)\r\n // {\r\n // vm.showFailure(\"Failure\", \"Please enter valid pan card no.\");\r\n // return;\r\n // }\r\n // }\r\n var SkillSetModel = [];\r\n for (var skillIndex = 0; skillIndex < vm.SkillList.length; skillIndex++) {\r\n SkillSetModel.push(vm.SkillList[skillIndex]);\r\n }\r\n\r\n if(vm.InfraDetailsList && vm.InfraDetailsList.length > 0){\r\n var lastRecord = vm.InfraDetailsList[vm.InfraDetailsList.length-1];\r\n if(lastRecord.SpaceAvailable && lastRecord.FloorsAvailable && lastRecord.InfraLocation.Address && lastRecord.InfraLocation.Address && lastRecord.InfraLocation.City){\r\n \r\n }else{\r\n vm.InfraDetailsList.splice(vm.InfraDetailsList.length-1,1);\r\n }\r\n }\r\n if(vm.TrainersDetailsList && vm.TrainersDetailsList.length > 0){\r\n var lastRecord = vm.TrainersDetailsList[vm.TrainersDetailsList.length-1];\r\n if(lastRecord.SeatsCapacity && lastRecord.NoOfTrainers && lastRecord.TrainingLocation.Address && lastRecord.TrainingLocation.Address && lastRecord.TrainingLocation.City){\r\n \r\n }else{\r\n vm.TrainersDetailsList.splice(vm.TrainersDetailsList.length-1,1);\r\n }\r\n }\r\n // for(var i = 0; i< vm.BGDocList.length; i++){\r\n // if(vm.BGDocList[i].DocumentType == 'Id Prof'){\r\n // vm.BGDocList[i].DocumentType = 'Aadhar Card';\r\n // vm.BGDocList[i].DocumentName = vm.BGDocList[i].DocumentName;\r\n // vm.BGDocList[i].DocumentPath = vm.BGDocList[i].DocumentPath; \r\n // }\r\n // }\r\n\r\n var ToolsDetailListModel = [];\r\n angular.forEach(vm.ToolsDetailList, function (d) {\r\n ToolsDetailListModel.push({\r\n \"ToolName\": d.ToolName,\r\n \"ToolImagePath\": d.ToolImagePath,\r\n \"ToolImageBase64\": [], \r\n \"VerificationStatus\": d.VerificationStatus,\r\n \"VerificationDate\": d.VerificationDate,\r\n \"ItemSerialNumber\": d.ItemSerialNumber,\r\n \"DateOfManufacturing\": d.DateOfManufacturing\r\n });\r\n })\r\n\r\n var BGVerificationDocPathModel = [];\r\n angular.forEach(vm.BGDocList, function (d) {\r\n BGVerificationDocPathModel.push({\r\n \"DocumentType\": d.DocumentType,\r\n \"DocumentName\": d.DocumentName,\r\n \"DocumentPath\": d.DocumentPath\r\n });\r\n })\r\n if(vm.GST == \"GSTYES\"){\r\n vm.GST = true;\r\n }\r\n else{\r\n vm.CompanyGSTNO ='';\r\n vm.GST = false;\r\n }\r\n if(vm.TPI == \"TPIYES\"){\r\n vm.TPI = true;\r\n }\r\n else{\r\n vm.TPI = false;\r\n }\r\n if(vm.Supplier == \"SuppYES\"){\r\n vm.Supplier = true;\r\n }\r\n else{\r\n vm.Supplier = false;\r\n }\r\n if(vm.MSME == \"MSMEYES\"){\r\n vm.MSME = true;\r\n }\r\n else{\r\n vm.MSMECertificateNO='';\r\n vm.MSME = false;\r\n }\r\n\r\n\r\n var data = {\r\n \"UserId\": vm.UserId,\r\n \"FirstName\": vm.FirstName,\r\n \"LastName\": vm.LastName,\r\n \"Gender\": vm.Gender,\r\n \"PAN\" : vm.PAN,\r\n \"AdharNo\" : vm.Aadhar,\r\n \"DOB\": vm.DOB,\r\n \"RegistrationStatus\": vm.RegistrationStatus,\r\n \"FatherName\": vm.FatherName,\r\n \"PersonalEmail\": vm.Email,\r\n \"ContactNumber\": vm.MobileNo,\r\n \"AlternativeContactNumber\": \"\",\r\n \"CompanyName\": vm.CompanyName,\r\n \"AddressLine1\": '',\r\n \"AddressLine2\": '',\r\n \"State\": '',\r\n \"City\": '',\r\n \"PinCode\": '',\r\n \"CurAddressLine1\": vm.BaseAddressLine1,\r\n \"CurAddressLine2\": vm.BaseAddressLine2,\r\n \"CurState\": vm.BaseState,\r\n \"CurCity\": vm.BaseCity,\r\n \"CurPinCode\": vm.BasePincode,\r\n \"PerAddressLine1\": vm.AddressLine1,\r\n \"PerAddressLine2\": vm.AddressLine2,\r\n \"PerState\": vm.PermanentState,\r\n \"PerCity\": vm.PermanentCity,\r\n \"PerPinCode\": vm.PermanentPincode,\r\n \"Picture\": vm.Picture,\r\n \"UserQualification\": vm.QualificationList,\r\n \"SkillData\": SkillSetModel,\r\n // \"Locations\": vm.PreferredLocation,\r\n // \"Expertise\": vm.Expertise,\r\n // \"BGVerificationStatus\": vm.BGVerificationStatus,\r\n \"TrainingAssessment\": vm.TrainingList,\r\n \"BGVerificationDocPath\": BGVerificationDocPathModel,\r\n \"VerificationsRemarks\": null,\r\n \"IsBasicVerified\": vm.UserInfoCheck,\r\n \"IsLocVerified\": vm.UserLocationCheck,\r\n \"IsDocsVerified\": vm.UserDocumentCheck,\r\n \"IsCertificationVerified\" : vm.UserTraningCheck,\r\n \"IsAssetsVerified\": vm.UserAvailableAssestCheck,\r\n \"IsSkillsVerified\": vm.UserSkillCheck,\r\n \"IsMobileAvailable\": vm.Asset_Mobile,\r\n \"IsLaptopAvailable\": vm.Asset_Laptop,\r\n \"IsBikeAvailable\": vm.Asset_Bike,\r\n \"Tools\": vm.Asset_Tools,\r\n \"TeamSize\": vm.TeamSize,\r\n \"Locations\":vm.Work_Location,\r\n \"InfraDetailsList\": vm.InfraDetailsList,\r\n \"TrainersDetailsList\" : vm.TrainersDetailsList,\r\n \"CoverageDistance\" : parseFloat(vm.CoverageDistance),\r\n \"CompanyRegistrationNumber\" : vm.CompanyRegisterration,\r\n \"IsGSTCertified\":vm.GST,\r\n \"GSTCertificateNumber\":vm.CompanyGSTNO,\r\n \"IsMSMECertified\":vm.MSME,\r\n \"MSMECertificateNumber\" :vm.MSMECertificateNO,\r\n \"IsPartnerThirdPartyInternediary\":vm.TPI,\r\n \"IsPartnerIncludeAntiCorruptionClause\" :vm.Supplier,\r\n \"ToolsDetailList\": ToolsDetailListModel,\r\n \"Experience\" : vm.UserExperience,\r\n \"Designation\" : vm.Designation\r\n \r\n }\r\n\r\n ActiveVendorUpdateService.updateuUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n vm.showSuccess(\"Registration Status\", \"User Updated Successfully.\");\r\n $timeout(function () {\r\n $state.go(\"index.NewTalentPool\", {\r\n type:'Vendor', \r\n reload: true });\r\n }, 2000);\r\n } else if (resp.data && resp.data.Message) {\r\n \r\n vm.showFailure(\"Registration Status\", resp.data.Message);\r\n } else {\r\n vm.showFailure(\"Registration Status\", \"User could not be updated, server is not responding correctly.\");\r\n }\r\n }, function (error) {\r\n vm.showFailure(\"Registration Status\", \"User could not be updated, server is not responding correctly.\");\r\n });\r\n\r\n }\r\n else {\r\n vm.VendorForm.submitted = true;\r\n vm.searchButtonText = 'Update';\r\n vm.showFailure(\"Failed\", \"Please enter correct details.\");\r\n vm.dissbleUpdateButton = false;\r\n }\r\n }\r\n\r\n vm.markActive = function () {\r\n if(vm.SkillList.length > 0 && vm.SkillList != null){\r\n\r\n if((vm.BGDocList[1] && vm.BGDocList[1].DocumentPath!=null && vm.BGDocList[1].DocumentPath.length>0) && \r\n \r\n vm.BGDocList[0] && vm.BGDocList[0].DocumentPath!=null && vm.BGDocList[0].DocumentPath.length>0 \r\n // &&\r\n // vm.BGDocList[2] && vm.BGDocList[2].DocumentPath!=null && vm.BGDocList[2].DocumentPath.length>0 && \r\n // vm.BGDocList[6] && vm.BGDocList[6].DocumentPath!=null && vm.BGDocList[6].DocumentPath.length>0\r\n ){\r\n vm.RegistrationStatus = 'Active';\r\n vm.updateUser();\r\n }\r\n else {\r\n \r\n if(vm.BGDocList[0].DocumentPath==''){\r\n vm.showFailure(\"Failed\", \"Please Upload Aadhar Card \");\r\n }else if(vm.BGDocList[1].DocumentPath==''){\r\n vm.showFailure(\"Failed\", \"Please upload Address Proof details\");\r\n }\r\n // else if(vm.BGDocList[2].DocumentPath==''){\r\n // vm.showFailure(\"Failed\", \"Please upload Pan Card details\");\r\n // }else if(vm.BGDocList[6].DocumentPath==''){\r\n // vm.showFailure(\"Failed\", \"Please upload Cancelled Cheque\");\r\n // }\r\n }\r\n }else{\r\n vm.showFailure(\"Failed\", \"Please enter at least one skill\");\r\n }\r\n \r\n \r\n }\r\n \r\n\r\n\r\n vm.CircleList = [];\r\n vm.GetAllCircles = function () {\r\n ActiveVendorUpdateService.getStates(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.CircleList = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n vm.UserAciveDeactive = function()\r\n { \r\n ActiveVendorUpdateService.UserAciveDeactive(loggedinUser, vm.UserId, token).then(function (resp) {\r\n if(resp.status == 202)\r\n { \t\t\t\r\n vm.showSuccess(\"Success\", \"User has been \"+ resp.data +\" successfully\");\r\n } \r\n });\r\n }\r\n vm.OpenPdfModal= function(PdfPathName)\r\n\t\t{\r\n vm.IsLoadSucessfull=false;\t\r\n MainService.GetImageBlob(loggedinUser, token, PdfPathName).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data);\r\n vm.IsLoadSucessfull=true;\t\r\n });\r\n\t\t\tjobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'SiteAuditPDFView.html',\r\n\t\t\t\tsize :'lg',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\twindowClass: 'zindex'\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t}\r\n\t vm.SiteAuditPDFUserModal = function(){\r\n\t\tjobAppointmentModal.close();\r\n\t }\r\n\t\r\n\tvm.ConvertBase64ToBlob = function(response)\r\n\t{\r\n vm.Auditpdf=\"\";\r\n\t\tif(response !=null){\r\n\t\t\tvar arrrayBuffer = base64ToArrayBuffer(response); //data is the base64 encoded string\r\n\t\t\tvar blob = new Blob([arrrayBuffer], {type: \"application/pdf\"});\r\n\t\t\tvm.Auditpdf = URL.createObjectURL(blob);\t\t\t\t\r\n\t\t\tvm.IsLoadSucessfull=true;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tvm.DocumentAvailableMessage=\"Document is not available\";\r\n\t\t\tvm.IsLoadSucessfull=true;\r\n\t\t}\r\n\t}\r\n\tfunction base64ToArrayBuffer(base64) \r\n\t{\r\n\t\tvar ret = base64.replace('data:application/pdf;base64,','');\r\n\t\t\tvar binaryString = atob(ret);\r\n\t\t\tvar binaryLen = binaryString.length;\r\n\t\t\tvar bytes = new Uint8Array(binaryLen);\r\n\t\t\tfor (var i = 0; i < binaryLen; i++) {\r\n\t\t\tvar ascii = binaryString.charCodeAt(i);\r\n\t\t\tbytes[i] = ascii;\r\n\t\t\t}\r\n\t\t\treturn bytes;\r\n\t}\r\n vm.OpenSiteAuditModal = function () \r\n { \r\n siteAuditModalInstance = $uibModal.open({\r\n templateUrl: 'site_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n vm.SiteAuditCloseModal = function () {\r\n siteAuditModalInstance.close();\r\n }\r\n $scope.attachSiteAudit = function(files){ \r\n vm.ToolAuditFileName=\"\";\r\n var file = files.files[0];\r\n vm.ToolAuditFileName=file.name;\r\n // if(vm.ToolAuditFileName!=\"\") \r\n // { \r\n // $timeout(function () {\r\n // vm.SiteAuditMessage=\"\"; \r\n // }, 100); \r\n // } \r\n vm.ToolAuditFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.ToolAuditFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.doc,.docs,.xls,.xlsx,.png,.jpeg,.jpg only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.SiteRescheduleAudit = function(){\r\n // if(vm.ToolAuditFileName==\"\") \r\n // return vm.SiteAuditMessage=\"Please Select Audit Report\";\r\n // else\r\n // vm.SiteAuditMessage=\"\";\r\n\r\n var data = {};\r\n data = { \r\n \"AuditResult\": vm.SiteAuditModel, \r\n \"AuditObjectId\": vm.UserId,\r\n \"AuditAttachmentName\": vm.ToolAuditFileName,\r\n \"AuditFor\": \"User\",\r\n \"AuditPurpose\": \"Tools\" \r\n } \r\n siteAuditModalInstance.close(); \r\n ActiveVendorUpdateService.AddToolAuditwithAttachment(data, vm.ToolAuditFiles, token, loggedinUser).then(function(res){\r\n if (res && res.status == 202) { \r\n vm.showSuccess(\"Success\", \"Tool Audit Saved successfully.\");\r\n $timeout(function () {\r\n vm.ToolAuditFileName=\"\";\r\n vm.GetUserByRegistrationNo();\r\n \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to add tool audit. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n ////Exprience Audit\r\n \r\n vm.OpenExperienceAuditModal = function () \r\n { \r\n experienceAuditModalInstance = $uibModal.open({\r\n templateUrl: 'experience_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n vm.ExperienceAuditCloseModal = function () {\r\n experienceAuditModalInstance.close();\r\n }\r\n $scope.attachExperienceAudit = function(files){\r\n \r\n vm.ExperienceAuditFileName=\"\";\r\n var file = files.files[0];\r\n vm.ExperienceAuditFileName=file.name;\r\n if(vm.ExperienceAuditFileName!=\"\") \r\n { \r\n $timeout(function () {\r\n vm.ExperienceAuditMessage=\"\"; \r\n }, 100); \r\n } \r\n vm.ExperienceAuditFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.jpg|\\.jpeg|\\.png|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX|\\.JPG|\\.JPEG|\\.PNG)$/i; \r\n if(!allowedExtensions.exec(file.name)){ \r\n vm.ExperienceAuditFiles=[]; \r\n vm.clear(); \r\n alert('Please upload file having extensions .jpg,.jpeg,.png,.pdf,.doc,.docs,.xls,.xlsx only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.ExperienceAuditSave = function(){ \r\n if(vm.ExperienceAuditFileName==\"\") \r\n return vm.ExperienceAuditMessage=\"Please Select Audit Report\";\r\n else\r\n vm.ExperienceAuditMessage=\"\";\r\n\r\n var data = {};\r\n data = { \r\n \"AuditResult\": vm.ExperienceAuditModel, \r\n \"AuditObjectId\": vm.UserId,\r\n \"AuditAttachmentName\": vm.ExperienceAuditFileName,\r\n \"AuditFor\": \"User\",\r\n \"AuditPurpose\": \"Previous Company\" \r\n } \r\n experienceAuditModalInstance.close(); \r\n ActiveVendorUpdateService.AddToolAuditwithAttachment(data, vm.ExperienceAuditFiles, token, loggedinUser).then(function(res){\r\n if (res && res.status == 202) { \r\n vm.ExperienceAuditFileName=\"\"; \r\n vm.showSuccess(\"Success\", \"Experience varification details saved successfully.\");\r\n $timeout(function () {\r\n vm.GetUserByRegistrationNo();\r\n \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to add experience varification details. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n \r\n /* Start Training Audit */\r\n vm.OpenTrainingAuditModal = function () \r\n { \r\n TrainingAuditModalInstance = $uibModal.open({\r\n templateUrl: 'Training_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n vm.TrainingAuditCloseModal = function () {\r\n TrainingAuditModalInstance.close();\r\n }\r\n vm.TrainingImageFileName=\"\";\r\n vm.TrainingAttendanceFileName=\"\";\r\n $scope.attachTrainingImage = function(files){ \r\n \r\n vm.TrainingImageFileName=\"\";\r\n var file = files.files[0];\r\n vm.TrainingImageFileName=file.name; \r\n vm.TrainingImageFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.jpg|\\.jpeg|\\.png|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX|\\.JPG|\\.JPEG|\\.PNG)$/i; \r\n if(!allowedExtensions.exec(file.name)){ \r\n vm.TrainingImageFiles = []; \r\n vm.clear(); \r\n alert('Please upload file having extensions .jpg,.pdf,.doc,.docs,.xls,.xlsx only.');\r\n }\r\n }\r\n $scope.attachTrainingAttendance = function(files){ \r\n \r\n vm.TrainingAttendanceFileName=\"\";\r\n var file = files.files[0];\r\n vm.TrainingAttendanceFileName=file.name; \r\n vm.TrainingAttendanceFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.jpg|\\.jpeg|\\.png|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX|\\.JPG|\\.JPEG|\\.PNG)$/i; \r\n if(!allowedExtensions.exec(file.name)){ \r\n vm.TrainingAttendanceFiles = []; \r\n vm.clear(); \r\n alert('Please upload file having extensions jpg,.pdf,.doc,.docs,.xls,.xlsx only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.TrainingAuditSave = function(){ \r\n var modelDate= $filter('date')(new Date(vm.TrainingDate),'yyyy-MM-dd');\r\n var currentDate=$filter('date')(new Date(),'yyyy-MM-dd');\r\n if(modelDate>currentDate)\r\n {\r\n vm.showFailure(\"Failed\",\"You can't be select future date\");\r\n return\r\n } \r\n var data = {};\r\n data = {\r\n \"UserId\":vm.UserId,\r\n \"TrainingNo\":\"\",\r\n \"TrainingName\": vm.TrainingName,\r\n \"TrainingDate\": $filter('date')(new Date(vm.TrainingDate),'yyyy-MM-ddThh:mm:ss'),\r\n \"TrainingExpireDate\": \"0001-01-01T00:00:00\",\r\n \"TrainingImage\": vm.TrainingImageFileName,\r\n \"TrainingAttendance\": vm.TrainingAttendanceFileName\r\n } \r\n TrainingAuditModalInstance.close(); \r\n ActiveVendorUpdateService.PostMediaFileWithTrainingObject(data, vm.TrainingImageFiles, vm.TrainingAttendanceFiles, token, loggedinUser).then(function(res){\r\n if (res && res.status == 202) { \r\n vm.TrainingAuditFileName=\"\"; \r\n vm.TrainingName=\"\"; \r\n vm.showSuccess(\"Success\", \"Training details Saved successfully.\");\r\n $timeout(function () {\r\n vm.GetUserByRegistrationNo();\r\n \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to add training details. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n /* End Training Audit */\r\n vm.getFileType = function(url){\r\n if(url==null || url==\"\")\r\n {\r\n return \"others\";\r\n }\r\n else{\r\n if(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 ||url.indexOf(\".png\")>=0 || url.indexOf(\".JPG\")>=0 || url.indexOf(\".JPEG\")>=0 || url.indexOf(\".PNG\")>=0){\r\n return \"Image\";\r\n } else if(url.indexOf(\".xls\")>=0 || url.indexOf(\".xlsx\")>=0 ||url.indexOf(\".XLS\")>=0 || url.indexOf(\".XLSX\")>=0){\r\n return \"xls\";\r\n } else if(url.indexOf(\".pdf\")>=0 || url.indexOf(\".PDF\")>=0){\r\n return \"pdf\";\r\n } else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0 || url.indexOf(\".DOC\")>=0 || url.indexOf(\".DOCX\")>=0){\r\n return \"doc\";\r\n } else {\r\n return \"others\";\r\n }\r\n }\r\n }\r\n vm.WordDownloadtoView = function (page) { \r\n MainService.GetImageBlob(loggedinUser, token, page).then(function(resp) {\r\n window.location.href = resp.data;\r\n }); \r\n \r\n }\r\n\r\n ////Start Criminal Audit \r\n vm.OpenCriminalAuditModal = function () \r\n { \r\n CriminalAuditModalInstance = $uibModal.open({\r\n templateUrl: 'criminal_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n vm.CriminalAuditCloseModal = function () {\r\n CriminalAuditModalInstance.close();\r\n }\r\n \r\n $scope.attachCriminalAudit = function(files){\r\n \r\n vm.CriminalAuditFileName=\"\";\r\n var file = files.files[0];\r\n vm.CriminalAuditFileName=file.name;\r\n \r\n vm.CriminalAuditFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.jpg|\\.jpeg|\\.png|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX|\\.JPG|\\.JPEG|\\.PNG)$/i; \r\n if(!allowedExtensions.exec(file.name)){ \r\n vm.CriminalAuditFiles=[]; \r\n vm.clear(); \r\n alert('Please upload file having extensions .jpg,.jpeg,.png,.pdf,.doc,.docs,.xls,.xlsx only.');\r\n }\r\n }\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.CriminalAuditSave = function(){\r\n \r\n var data = {};\r\n data = {\r\n \"UserId\": vm.UserId,\r\n \"DocumentNo\": vm.DocumentNo,\r\n \"VerificationAuthority\": vm.VerificationAuthority,\r\n \"verificationStatus\": vm.CriminalAuditModel,\r\n \"verificationReport\": vm.CriminalAuditFileName \r\n } \r\n CriminalAuditModalInstance.close(); \r\n ActiveVendorUpdateService.AddCriminalVerificationwithAttachment(data, vm.CriminalAuditFiles, token, loggedinUser).then(function(res){\r\n if (res && res.status == 202) { \r\n vm.CriminalAuditFileName=\"\"; \r\n vm.DocumentNo=\"\"; \r\n vm.VerificationAuthority=\"\" \r\n vm.showSuccess(\"Success\", \"Criminal varification details saved successfully.\");\r\n $timeout(function () {\r\n vm.GetUserByRegistrationNo();\r\n \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to add Criminal varification details. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n \r\n ////End Criminal Audit\r\n\r\n }\r\n $(function() {\r\n $('#GSTSelector').change(function(){\r\n $('.colors').hide();\r\n $('#' + $(this).val()).show();\r\n });\r\n });\r\n $(function() {\r\n $('#TPISelector').change(function(){\r\n $('.TPI').hide();\r\n $('#' + $(this).val()).show();\r\n });\r\n });\r\n $(function() {\r\n $('#MSMESelector').change(function(){\r\n $('.MSME').hide();\r\n $('#' + $(this).val()).show();\r\n });\r\n });\r\n \r\n});\r\n\r\nfunction CheckRegExOnKeyPress(e) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\,\\\\-\\\\/]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\r\nfunction CheckRegExOnKeyPressCertificate(e) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\-\\\\\\\\]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\nangular.module('inspinia').service('AddMilestoneService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('AddMilestoneController', function (AddMilestoneService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t\r\n\r\n\t\tvm.AddMilestoneModal = function () {\r\n\t\t\tvm.addmilestone = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'Addmilestone.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n \r\n\tvm.CloseMilestone = function () {\r\n\tvm.addmilestone.close();\r\n\t}\r\n\r\n\tvm.SaveMilestone = function(){\r\n\t\tvm.showSuccess(\"Success\",\"Milestone Created Successfully\");\r\n\t\tvm.CloseMilestone();\r\n\t}\r\n\t$scope.milestones = [\r\n {\r\n order: 1,\r\n name: \"Initial Response\",\r\n criteria: \"Ticket Status-Equals-Assigned\",\r\n minutes: 120,\r\n startTime: \"Entity Process\",\r\n businessHours: \"Default\"\r\n },\r\n {\r\n order: 2,\r\n name: \"Final Resolution\",\r\n criteria: \"Ticket Priority - Equals-High\",\r\n minutes: 180,\r\n startTime: \"Entity Process\",\r\n businessHours: \"Default\"\r\n }\r\n ];\r\n\r\n // Function to delete a row\r\n $scope.deleteMilestone = function (index) {\r\n $scope.milestones.splice(index, 1);\r\n\t\tvm.showSuccess(\"Success\",\"Deleted Successfully\");\r\n\r\n };\r\n\r\n vm.editMilestone = function (row) {\r\n\t\tvm.selectedMilestone = angular.copy(row); // Copy data to avoid direct changes\r\n\t\tvm.editmilestone = $uibModal.open({\r\n\t\t\ttemplateUrl: 'EditMilestone.html',\r\n\t\t\tsize: 'lg',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\t\r\n\tvm.closeEditMilestone = function () {\r\n\t\tvm.editmilestone.close();\r\n\t};\r\n\t\r\n\tvm.updateMilestone = function () {\r\n\t\t// Loop through milestones to find and update the matching one\r\n\t\tfor (var i = 0; i < vm.milestones.length; i++) {\r\n\t\t\tif (vm.milestones[i].Order === vm.selectedMilestone.Order) {\r\n\t\t\t\tvm.milestones[i] = vm.selectedMilestone; // Directly assign the edited object\r\n\t\t\t\tbreak; // Exit loop once found\r\n\t\t\t}\r\n\t\t}\r\n\t\tvm.closeEditMilestone();\r\n\t};\r\n\t\r\n\tvm.AlertMilestoneModal = function () {\r\n\t\tvm.alertmilestone = $uibModal.open({\r\n\t\t\ttemplateUrl: 'AlertMilestone.html',\r\n\t\t\tsize: 'lg',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\r\nvm.CloseAlertMilestone = function () {\r\nvm.alertmilestone.close();\r\n}\r\n\t\r\n\t$scope.rows = [\r\n\t\t{ CaseEnters: '', Operator: '', Value: '', isEditable: false }\r\n\t];\r\n\t\r\n\t// Function to add a new row\r\n\t$scope.addRow = function () {\r\n\t\t$scope.rows.push({ CaseEnters: '', Operator: '', Value: '', isEditable: true });\r\n\t};\r\n\t\r\n\t// Function to remove a row\r\n\t$scope.removeRow = function (index) {\r\n\t\tif ($scope.rows.length > 1) {\r\n\t\t\t$scope.rows.splice(index, 1);\r\n\t\t}\r\n\t};\r\n\t\r\n\r\n // Function to remove user\r\n vm.removeUser = function (index) {\r\n vm.userList.splice(index, 1);\r\n };\r\n \r\n\tvm.OpenDetailMilestone = function(){\r\n\t\t$state.go('index.MilestoneDetailView',{\r\n\t\t \r\n\t\t}, { reload: true });\r\n\t \r\n\t}\r\n\r\n\t$scope.slaobjectiveList = {\r\n name: \"Ticket_SLA\",\r\n SLAProcessType: \"Ticket\",\r\n slaDescription: \"Defines the time limits for resolving support tickets, ensuring timely responses and resolutions.\",\r\n CaseEnters: \"When Entity is created\",\r\n CaseExits: \"Based on custom criteria\",\r\n createdBy: \"Pankaj Sharma 20/01/2025, 10:13 AM\",\r\n\t\tbusinessHours:\"Default\"\r\n };\r\n\r\n $scope.isEditing = false; // Flag to track edit mode\r\n $scope.backupSLAObjective = {}; // Store backup before editing\r\n\r\n // Edit Function\r\n $scope.editSLA = function () {\r\n $scope.backupSLAObjective = angular.copy($scope.slaobjectiveList);\r\n $scope.isEditing = true;\r\n };\r\n // Save Function\r\n $scope.saveChanges = function () {\r\n console.log(\"Saving changes...\", $scope.slaobjectiveList);\r\n $scope.isEditing = false;\r\n };\r\n\r\n\r\n\t}\r\n});\nangular.module('inspinia').service('ActiveUserUpdateService', function($http, FreelancerURL,ApiURL,PublicApiURL,IntegrationAPI){\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/FreeLancerRegistration/srachit46%40gmail.com/UR0000000002/GetUserByRegistrationNumber\r\n this.GetUserByRegistrationNo = function (loggedinUser, registrationNo, token) {\r\n var url = FreelancerURL + '/api/FreelancerRegistration/' + loggedinUser + '/' + registrationNo + '/GetUserByRegistrationNumber'\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n this.SaveBackgroundChecks = function(BGDocList, files,files2,files3, token, loggedinUser){\r\n var formdata = new FormData();\t\t\r\n formdata.append(\"FrontDocFile\", files[0]);\r\n formdata.append(\"BackDocFile\", files2[0]);\r\n formdata.append(\"ThirdPartyDocFile\", files3[0]);\t\r\n var followupdata = JSON.stringify(BGDocList);\r\n formdata.append(\"BackgroundData\", followupdata);\r\n // formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/Upload/UpdateBackgroundDoc';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n // http://localhost:56749/api/Upload/UpdateServicePartnerDetailsDoc?UserId=F00000033960\r\n\r\n this.SaveAuthorizationData = function(AuthDocList,userid,authFile,trainingFile,workFile,token,loggedinUser){\r\n var formdata = new FormData();\t\t\r\n formdata.append(\"CertificateOfAuthorization\", authFile[0]);\r\n formdata.append(\"TrainingCertificate\", trainingFile[0]);\r\n formdata.append(\"PhotoOfWorkPlace\", workFile[0]);\t\r\n var authrizedData = JSON.stringify(AuthDocList);\r\n formdata.append(\"BackgroundData\", authrizedData);\r\n var url = ApiURL + '/api/Upload/UpdateServicePartnerDetailsDoc?UserId=' + userid;\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n this.GetAllVerticalMasterData = function (loggedinUser,token) {\r\n var url = ApiURL + '/api/ServiceParnterMaster/GetAllVerticalMasterData';\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n this.GetMasterDataOfServiceCenterByVerticalName = function (vertical,loggedinUser,token) {\r\n var url = ApiURL + '/api/ServiceParnterMaster/GetMasterDataOfServiceCenterByVerticalName?VerticalName=' + vertical;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n this.GetMasterDataOfServiceProductByBrandName = function (brand,loggedinUser,token) {\r\n var url = ApiURL + '/api/ServiceParnterMaster/GetMasterDataOfServiceProductByBrandName?BrandName=' + brand;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n \r\n this.getAllState = function (loggedinUser) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllStates';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n }\r\n\r\n this.updateuUser = function (loggedinUser, data, token) {\r\n var url = FreelancerURL + '/api/FreeLancerRegistration?reqUserId=' + loggedinUser;\r\n return $http.put(url, data, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.uploadProfilePic = function (loggedinUser, data, token, success, failure) {\r\n $http.post(ApiURL + '/api/UploadDoc', data, { \r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId':loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n// https://perf.mymobiforce.com/coreapi/api/Cetrificate/GetAll?reqUserId=F00000000000\r\n// https://perf.mymobiforce.com/coreapi/api/Cetrificate/GetAllMaster?reqUserId=F00000000000\r\n this.GetAllCertificate = function(loggedinUser, token, success, failure){\r\n // var url = ApiURL + '/api/Cetrificate/GetAll?reqUserId=' + loggedinUser;\r\n var url = ApiURL + '/api/Cetrificate/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url,{headers:{'Token':token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 201 && res.data){\r\n success(res.data);\r\n }\r\n },function(err){\r\n failure(\"Failed\",\"Unable to get certificate list, server error.\");\r\n })\r\n }\r\n\r\n// https://perf.mymobiforce.com/coreapi/api/Tool/GetAllMaster?reqUserId=F00000000000\r\n this.GetAllToolSets = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/Tool/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url,{headers:{'Token':token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 201 && res.data){\r\n success(res.data);\r\n }\r\n },function(err){\r\n failure(\"Failed\",\"Unable to get certificate list, server error.\");\r\n })\r\n }\r\n\r\n this.getAllSkills = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers: {'Token': token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 200 && res.data){\r\n success(res.data);\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get skill list, server error.\")\r\n })\r\n }\r\n\r\n this.getAllAccounts = function (loggedinUser,token) { \r\n var url = FreelancerURL+ '/api/FreeLancerUser/Administrator/' + loggedinUser + '/Account';\r\n return $http.get(url, {\r\n headers: { \r\n 'Content-Type': 'application/json',\r\n 'Token':token , \r\n 'UserId':loggedinUser\r\n \r\n }\r\n });\r\n }\r\n\r\n\r\n this.getCountry = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n } \r\n });\r\n }\r\n\r\n this.getStates = function (loggedInUserId, token) {\r\n var url = ApiURL + '/api/TerritoryMaster/GetAllStates';\r\n return $http.get(url, {\r\n headers: { \r\n 'ContentType': 'application/json', \r\n 'Token':token, \r\n 'UserId':loggedInUserId \r\n } \r\n });\r\n }\r\n\r\n//https://db.mymobiforce.com/publicapi/api/Address/GetCities?userId=U420000000001&state=DOHA\r\n// this.getCities = function (userId, state) {\r\n// var url = PublicApiURL + '/api/Address/GetCities?userId=' + userId + '&state=' + state;\r\n// return $http.get(url, {\r\n// params: {}\r\n// });\r\n// }\r\n\r\n // https://perf.mymobiforce.com/publicapi/api/TestSkill/SendSkillTestLink?reqUserId=F00000000000&ContactNumber=9711845000&skill=Water_Purifier_Service\r\n this.sendBoatLink = function(loggedinUser, mobileNo, skill, token, success, failure){\r\n var url = PublicApiURL + '/api/TestSkill/SendSkillTestLink?reqUserId=' +loggedinUser + '&ContactNumber=' + mobileNo + '&skill='+skill ;\r\n $http.post(url,null,{headers: { 'Content-Type': 'application/json','Token': token, 'UserId':loggedinUser }}).then(success, failure);\r\n }\r\n \r\n this.UserAciveDeactive = function (loggedinUser,userId, token) {\r\n var url = ApiURL + '/api/User/'+userId+'/activate?reqUserId='+loggedinUser;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser}\r\n });\r\n }\r\n\r\n this.AddToolAuditwithAttachment = function(data, files, token, loggedinUser){ \r\n var formdata = new FormData();\t\t\r\n formdata.append(\"files\", files[0]);\t\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"AuditRequestModel\", followupdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/Upload/PostMediaFileWithAuditObject';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n}\r\n\r\n//https://product.mymobiforce.com/coreapi/api/UserTraining/PostMediaFileWithTrainingObject\r\nthis.PostMediaFileWithTrainingObject = function(data, files,files1, token, loggedinUser){ \r\n var formdata = new FormData();\t\t\r\n formdata.append(\"files\", files[0]);\t\r\n formdata.append(\"files1\", files1[0]);\t\r\n var followupdata = JSON.stringify(data);\r\n formdata.append(\"UserTrainingRequestModel\", followupdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/UserTraining/PostMediaFileWithTrainingObject';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n}\r\n//https://product.mymobiforce.com/coreapi/api/UserTraining/PostMediaFileWithCriminalVerificationObject\r\nthis.AddCriminalVerificationwithAttachment = function(data, files, token, loggedinUser){ \r\n var formdata = new FormData();\t\t\r\n formdata.append(\"files\", files[0]);\t\r\n var CriminalVerificationdata = JSON.stringify(data);\r\n formdata.append(\"CriminalVerificationRequestModel\", CriminalVerificationdata);\r\n formdata.append(\"reqUserId\", loggedinUser);\r\n var url = ApiURL + '/api/UserTraining/PostMediaFileWithCriminalVerificationObject';\r\n return $http.post(url,formdata,{\r\n headers:{'Content-Type':undefined,'Token':token, 'UserId': loggedinUser}\r\n });\r\n}\r\n\r\nthis.callToInitCverification = function(loggedinUser,UserId,token, success, failure){ \r\n var url = IntegrationAPI + '/api/VerficationIntegration/CreateCriminalVerificationRequest?UserId=' +UserId;\r\n return $http.get(url, {headers: {'Token': token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 200 && res.data){\r\n success(res.data);\r\n }\r\n }, function(err){\r\n failure(\"Failed\")\r\n }) }\r\n\r\n this.RejectUserProfile = function (userId,rejectRemark,loggedinUser,token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/RejectUserProfile?userId=' + userId + '&ProfileReviewComment=' + rejectRemark;\r\n return $http.put(url, null, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n this.VerifyUserProfile = function (userId,loggedinUser,token) {\r\n var url = FreelancerURL + '/api/FreelancerUser/VerifyUserProfile?userId=' + userId;\r\n return $http.put(url, null, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n})\nangular.module('inspinia').controller('ActiveUserUpdateController', function (AdvancedDashboardService,ActiveUserUpdateService,$filter, MainService, $q, ReferService, FreelancerURL, $window, $location, $rootScope, $stateParams, $uibModal, $scope, $log, ImageUrl, $sce, toaster, $localStorage, $timeout, $state) {\r\n\r\n var vm = this;\r\n var RegistrationNo = $stateParams.RegistrationNo;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n vm.EditVendorTeam=$localStorage.EditVendorTeam;\r\n vm.VendorId= $localStorage.VendorId;\r\n vm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n vm.ActiveFVT = $localStorage.ActiveFVT;\r\n \r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n vm.searchButtonText = 'Update';\r\n vm.rejectButtonStatus = 'Reject';\r\n vm.dissbleUpdateButton = false;\r\n vm.disableRejectButton = false;\r\n vm.dissableMobile = true;\r\n vm.editmode = false;\r\n vm.RegisteredUser = '';\r\n vm.FirstName = '';\r\n vm.isnonindeximage = '';\r\n vm.LastName = '';\r\n vm.MobileNo = '';\r\n vm.Email = '';\r\n vm.DOB = moment();\r\n vm.Gender = '';\r\n vm.Designation='';\r\n vm.PAN = '';\r\n vm.Aadhar = '';\r\n vm.AddressLine1 = '';\r\n vm.AddressLine2 = '';\r\n vm.PermanentState = '';\r\n vm.PermanentCity = '';\r\n vm.PermanentPincode = '';\r\n vm.BaseAddressLine1 = '';\r\n vm.BaseAddressLine2 = '';\r\n vm.BaseState = '';\r\n vm.BaseCity = '';\r\n vm.BasePincode = '';\r\n vm.Role = '';\r\n vm.UserType = '';\r\n vm.UserId = '';\r\n vm.Picture = '';\r\n vm.RegistrationStatus = '';\r\n vm.UserInfoCheck = false;\r\n vm.UserLocationCheck = false;\r\n vm.UserDocumentCheck = false;\r\n vm.UserTraningCheck = false;\r\n vm.UserAvailableAssestCheck = false;\r\n vm.UserSkillCheck = false;\r\n vm.verifyAll = false;\r\n vm.Asset_Mobile = '';\r\n vm.Asset_Laptop = '';\r\n vm.Asset_Bike = '';\r\n vm.Asset_Tools = '';\r\n vm.Asset_ToolList = [];\r\n vm.Work_Location=[];\r\n vm.PreferredLocationList = [];\r\n vm.BGDocList = [];\r\n vm.AllCertificateSets = [];\r\n vm.experienceYearList = [];\r\n vm.AllSkillSets = [];\r\n vm.AllAccounts=[];\r\n vm.AllAccountNames = [];\r\n vm.AccountList = [];\r\n vm.SkillList = [];\r\n vm.QualificationList = [];\r\n vm.TrainingList = [];\r\n vm.DocprofileImg =[];\r\n vm.CertprofileImg=[];\r\n vm.WorkPlaceFileName = \"\";\r\n vm.AuthFileName = \"\";\r\n vm.TrainingFileName = \"\";\r\n vm.BrandName= \"\";\r\n vm.BrandNameOther= \"\";\r\n vm.Tenure = 0;\r\n vm.ProductServing = \"\";\r\n vm.ProductServingOther = \"\";\r\n vm.ServiceCenterAddress= \"\";\r\n vm.TeamSize = 0;\r\n vm.VerificationCertprofileImg = [];\r\n vm.ToolDocumentImg=[];\r\n vm.addTraningCertificateName = '';\r\n vm.tempTCertificateFile = '';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.addSkill = '';\r\n vm.AccountName = '';\r\n vm.addExprence = '';\r\n vm.pathtcertificate = '';\r\n vm.Verificationpathtcertificate = '';\r\n vm.error = {};\r\n vm.CoverageDistance = '';\r\n vm.IsStudent = '';\r\n vm.IsOpenForInternship = '';\r\n vm.IsPanVerified = '';\r\n vm.IsAdharVerified = '';\r\n vm.Source = '';\r\n vm.ToolsDetailList=[];\r\n vm.AuditList=[];\r\n vm.PreviousCompanyAuditList=[];\r\n vm.PreviousCompanyDetailsList=[];\r\n var $container = $('.basicwizard1');\r\n var $p = $('.referalwizard');\r\n var currentIndex = 0;\r\n vm.IsUserActive=false;\r\n var today = new Date();\r\n vm.UserExperience='';\r\n vm.CompanyName = '';\r\n vm.FatherName = '';\r\n vm.ToolAuditFileName=\"\"; \r\n vm.BackFileName=\"\";\r\n vm.FrontFileName=\"\";\r\n vm.UserTrainingList =[];\r\n vm.ExperienceAuditFiles=[];\r\n vm.ToolAuditFiles = [];\r\n vm.FilesAuthDoc= [];\r\n vm.FilesTrainingDoc= [];\r\n vm.FilesWorkPlaceDoc = [];\r\n vm.ThirdPartyDocs = [];\r\n vm.FilesBackDoc = [];\r\n vm.FilesFrontDoc = [];\r\n vm.TrainingImageFiles=[];\r\n vm.TrainingAttendanceFiles=[];\r\n vm.TrainingImagebase64=[];\r\n vm.TrainingAttendancebase64=[];\r\n vm.PCExperienceLetterbase64=[];\r\n vm.ExperienceVerificationReportbase64=[];\r\n vm.CriminalVerificationbase64=\"\";\r\n vm.CriminalVarificationObj={};\r\n vm.DocumentNo=\"\"; \r\n vm.VerificationAuthority=\"\";\r\n vm.CriminalAuditModel=\"\";\r\n vm.TrainingDate = moment();\r\n var date = today.getFullYear() - 18;\r\n var age = (today.getMonth() + 1 + \"/\" + today.getDate() + \"/\" + date).toString();\r\n vm.maxDOB = new Date(age);\r\n vm.maxDOBStr = vm.maxDOB.toDateString();\r\n age = Date.parse(age);\r\n $scope.MaxDate = moment(age);\r\n vm.checkMaxDOB = function () {\r\n if (vm.DOB && !vm.DOB._isAMomentObject) {\r\n var splittedDOB = vm.DOB.split(\"/\");\r\n vm.DOB = moment(new Date((splittedDOB[1] + \"/\" + splittedDOB[0] + \"/\" + splittedDOB[2]).toString()));\r\n }\r\n return (vm.maxDOB - vm.DOB) < 0;\r\n }\r\n\r\n vm.qualificationList = [\"10th\", \"12th\", \"Graduation Degree/Deploma\", \"PG Degree/Deploma\"];\r\n vm.BGDocType = ['Aadhar Card', 'Address Proof', 'Pan Card','Court Information', 'Education Certificate','Police Verification','Resume','Cancelled Check','Experience Letter'];\r\n // vm.BGDocType = ['Aadhar Card', 'Address Proof', 'Pan Card', 'Education Certificate', 'Police Verification', 'Resume', 'Cancelled Check','Experience Letter'];\r\n vm.BDDocSubType = {};\r\n vm.BDDocSubType['Aadhar Card'] = ['Aadhar Card', 'Voter Id Card', 'Driving License'];\r\n vm.BDDocSubType['Address Proof'] = [\"Aadhar Card\", \"Voter Id Card\", \"Driving License\", \"Passport\", \"Rent Agreement\", \"Telephone/Gas Bill\", \"Bank Passbook\"];\r\n vm.BDDocSubType['Pan Card'] = ['Pan Card'];\r\n vm.BDDocSubType['Education Certificate'] = vm.qualificationList;\r\n vm.BDDocSubType['Police Verification'] = [\"Police Verification\"];\r\n vm.BDDocSubType['Resume'] = [\"Resume\"];\r\n vm.BDDocSubType['Cancelled Check'] = [\"Cancelled Check\"];\r\n vm.BDDocSubType['Experience Letter'] = [\"Experience Letter\"];\r\n vm.GetUserByRegistrationNo = function () {\r\n ActiveUserUpdateService.GetUserByRegistrationNo(loggedinUser, RegistrationNo, token).then(function (resp) {\r\n var RegisteredUser = resp.data;\r\n vm.UserId = RegisteredUser.UserId;\r\n vm.BGVerificationStatus = RegisteredUser.BGVerificationStatus;\r\n vm.FirstName = RegisteredUser.FirstName;\r\n vm.LastName = RegisteredUser.LastName;\r\n vm.ProfileRejectDate = RegisteredUser.ProfileRejectDate;\r\n vm.ProfileRejectedBy = RegisteredUser.ProfileRejectedBy;\r\n vm.ProfileResubmitDate = RegisteredUser.ProfileResubmitDate;\r\n vm.ProfileReviewComment = RegisteredUser.ProfileReviewComment;\r\n vm.DOB = moment(RegisteredUser.DOB);\r\n vm.Email = RegisteredUser.PersonalEmail;\r\n vm.Gender = RegisteredUser.Gender;\r\n vm.Designation = RegisteredUser.Designation;\r\n vm.PAN = RegisteredUser.PAN;\r\n vm.Aadhar = RegisteredUser.AdharNo;\r\n vm.MobileNo = RegisteredUser.ContactNumber;\r\n vm.AddressLine1 = RegisteredUser.PermanentAdd1;\r\n vm.AddressLine2 = RegisteredUser.PermanentAdd2;\r\n vm.PermanentState = RegisteredUser.PermanentState;\r\n vm.PermanentCity = RegisteredUser.PermanentCity?RegisteredUser.PermanentCity.toUpperCase():RegisteredUser.PermanentCity;\r\n vm.PermanentPincode = RegisteredUser.PermanentPinCode;\r\n vm.BaseAddressLine1 = RegisteredUser.CurrentAdd1;\r\n vm.BaseAddressLine2 = RegisteredUser.CurrentAdd2;\r\n vm.BaseState = RegisteredUser.CurrentState;\r\n vm.BaseCity = RegisteredUser.CurrentCity?RegisteredUser.CurrentCity.toUpperCase():RegisteredUser.CurrentCity;\r\n vm.BasePincode = RegisteredUser.CurrentPinCode;\r\n vm.Picture = RegisteredUser.Picture;\r\n vm.Role= RegisteredUser.Role;\r\n vm.UserType= RegisteredUser.UserType;\r\n vm.AccountList = RegisteredUser.AccountDetails;\r\n vm.RegistrationStatus = RegisteredUser.RegistrationStatus;\r\n vm.Asset_Mobile = RegisteredUser.IsMobileAvailable;\r\n vm.Asset_Bike = RegisteredUser.IsBikeAvailable;\r\n vm.Asset_Laptop = RegisteredUser.IsLaptopAvailable;\r\n vm.QualificationList = RegisteredUser.UserQualification;\r\n // vm.TrainingList = RegisteredUser.TrainingAssessment;\r\n vm.UserInfoCheck = RegisteredUser.IsBasicVerified;\r\n vm.UserLocationCheck = RegisteredUser.IsLocVerified;\r\n vm.UserDocumentCheck = RegisteredUser.IsDocsVerified;\r\n vm.UserTraningCheck = RegisteredUser.IsCertificationVerified;\r\n vm.UserAvailableAssestCheck = RegisteredUser.IsAssetsVerified;\r\n vm.UserSkillCheck = RegisteredUser.IsSkillsVerified;\r\n vm.CoverageDistance = RegisteredUser.CoverageDistance;\r\n vm.Asset_Tools = RegisteredUser.Tools;\r\n vm.Work_Location =RegisteredUser.Locations;\r\n vm.IsStudent = RegisteredUser.IsStudent;\r\n vm.IsOpenForInternship = RegisteredUser.IsOpenForInternship;\r\n vm.IsPanVerified = RegisteredUser.IsPanVerified;\r\n vm.IsAdharVerified = RegisteredUser.IsAdharVerified;\r\n vm.Source = RegisteredUser.Source;\r\n vm.imageServices(RegisteredUser.Picture);\r\n vm.ToolsDetailList=RegisteredUser.ToolsDetailList;\r\n vm.ServicePartnerModel =RegisteredUser.ServicePartnerModel;\r\n vm.PreviousCompanyDetailsList = RegisteredUser.PreviousCompanyDetailsList;\r\n vm.UserExperience = RegisteredUser.Experience;\r\n vm.CompanyName = RegisteredUser.CompanyName;\r\n vm.FatherName = RegisteredUser.FatherName;\r\n vm.AuditList=RegisteredUser.AuditList;\r\n vm.PreviousCompanyAuditList = RegisteredUser.PreviousCompanyAuditList;\r\n vm.UserTrainingList = RegisteredUser.UserTrainingList;\r\n vm.CriminalVarificationObj = RegisteredUser.CriminalVarificationObj;\r\n if(RegisteredUser.UserStatus == \"Active\")\r\n vm.IsUserActive=true;\r\n else\r\n vm.IsUserActive=false;\r\n $(\"#example_id\").ionRangeSlider({\r\n grid: true,\r\n min: 0,\r\n max: 400,\r\n from: vm.CoverageDistance,\r\n step : 1,\r\n skin: \"round\",\r\n postfix: \" Kms\"\r\n });\r\n\r\n // if (RegisteredUser.BGVerificationDocPath) {\r\n // angular.forEach(vm.BGDocType, function (d, i) {\r\n // vm.BGDocList[i] = {\r\n // \"DocumentType\": d,\r\n // \"DocumentName\": \"\",\r\n // \"DocumentPath\": \"\",\r\n // \"DocumentName1\": \"\",\r\n // \"DocumentPath1\": \"\"\r\n // };\r\n // // vm.error[d] = null;\r\n // for (var imageIndex = 0; imageIndex < RegisteredUser.BGVerificationDocPath.length; imageIndex++) {\r\n // if (d == RegisteredUser.BGVerificationDocPath[imageIndex].DocumentType) {\r\n // vm.BGDocList[i] = RegisteredUser.BGVerificationDocPath[imageIndex];\r\n // vm.BGDocList[i].DocumentName1 = vm.BGDocList[i].DocumentName;\r\n // vm.BGDocList[i].DocumentPath1 = vm.BGDocList[i].DocumentPath;\r\n // vm.DocumentimageServices(vm.BGDocList[i].DocumentPath,i);\r\n // break;\r\n // }\r\n \r\n // }\r\n // })\r\n // }\r\n\r\n if (RegisteredUser.BGVerificationDocPath) {\r\n angular.forEach(vm.BGDocType, function (d, i) {\r\n vm.BGDocList[i] = {\r\n // \"DocumentType\": e,\r\n \"DocumentName\": d,\r\n \"DocumentNo\":\"\",\r\n \"VerificationMode\":\"\",\r\n \"DocumentPath\": \"\",\r\n \"ThirdPartyDocumentPath\": \"\",\r\n \"DocumentPath\": \"\",\r\n \"ThirdPartyDocumentPath\": \"\"\r\n };\r\n \r\n for (var imageIndex = 0; imageIndex < RegisteredUser.BGVerificationDocPath.length; imageIndex++) {\r\n if (d == RegisteredUser.BGVerificationDocPath[imageIndex].DocumentName ) {\r\n vm.BGDocList[i] = RegisteredUser.BGVerificationDocPath[imageIndex];\r\n vm.BGDocList[i].DocumentNo = vm.BGDocList[i].DocumentNo;\r\n vm.BGDocList[i].DocumentPath = vm.BGDocList[i].DocumentPath;\r\n vm.BGDocList[i].ThirdPartyDocumentPath = vm.BGDocList[i].ThirdPartyDocumentPath;\r\n vm.DocumentimageServices(vm.BGDocList[i].DocumentPath,i);\r\n vm.DocumentimageServices(vm.BGDocList[i].ThirdPartyDocumentPath,i);\r\n \r\n }\r\n }\r\n })\r\n }\r\n\r\n $scope.attachThirdPartyReport = function(files){ \r\n vm.ToolAuditFileName=\"\";\r\n var file = files.files[0];\r\n vm.ToolAuditFileName=file.name; \r\n vm.ThirdPartyDocs = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.ThirdPartyDocs = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n $scope.attachBackDoc = function(files){ \r\n vm.BackFileName=\"\";\r\n var file = files.files[0];\r\n vm.BackFileName=file.name; \r\n vm.FilesBackDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesBackDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n $scope.uploadBGFilenew = function(files){ \r\n vm.FrontFileName=\"\";\r\n var file = files.files[0];\r\n vm.FrontFileName=file.name; \r\n vm.FilesFrontDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesFrontDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.SiteRescheduleAudit = function(index){\r\n var data = {};\r\n data = { \r\n \"UserId\": vm.UserId, \r\n \"docName\": vm.BGDocList[index].DocumentName,\r\n \"docType\": \"\",\r\n \"DocumentNo\":vm.BGDocList[index].DocumentNo,\r\n \"VerificationMode\":vm.BGDocList[index].VerificationMode,\r\n \"VerificationAuthority\":vm.BGDocList[index].VerificationAuthority,\r\n \"VerificationStatus\":vm.BGDocList[index].VerificationStatus,\r\n \"ThirdPartyDocumentPath\":vm.BGDocList[index].ThirdPartyDocumentPathName\r\n } \r\n \r\n ActiveUserUpdateService.SaveBackgroundChecks(data,vm.FilesFrontDoc,vm.FilesBackDoc, vm.ThirdPartyDocs, token, loggedinUser).then(function(res){\r\n if (res && res.status == 201) { \r\n vm.data=\"\"; \r\n vm.showSuccess(\"Success\", \"Document verified successfully.\");\r\n \r\n $timeout(function () {\r\n // vm.ToolAuditFileName=\"\";\r\n vm.GetUserByRegistrationNo();\r\n \r\n \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\",\"not verified\");\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n },vm.showFailure);\r\n }\r\n\r\n $scope.attachAuthCertiDoc = function(files){ \r\n vm.AuthFileName = \"\";\r\n var file = files.files[0];\r\n vm.AuthFileName = file.name; \r\n vm.FilesAuthDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesAuthDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n $scope.attachTrainingDoc = function(files){ \r\n vm.TrainingFileName = \"\";\r\n var file = files.files[0];\r\n vm.TrainingFileName = file.name; \r\n vm.FilesTrainingDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesTrainingDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n $scope.attachWorkPlaceDoc = function(files){ \r\n vm.WorkPlaceFileName = \"\";\r\n var file = files.files[0];\r\n vm.WorkPlaceFileName = file.name; \r\n vm.FilesWorkPlaceDoc = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.PDF|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.FilesWorkPlaceDoc = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.jpg,.jpeg,.png only.');\r\n }\r\n }\r\n\r\n vm.UpdateAuthorizedServiceDetails = function(index){\r\n var data = {};\r\n data = {\r\n \"ServicePartnerId\": vm.ServicePartnerModel[index].ServicePartnerId,\r\n \"BrandName\": vm.BrandName,\r\n \"BrandNameOther\": vm.BrandNameOther,\r\n \"Tenure\": vm.ServicePartnerModel[index].Tenure,\r\n \"ProductServing\": vm.ProductServing,\r\n \"ProductServingOther\": vm.ProductServingOther,\r\n \"TeamSize\": vm.ServicePartnerModel[index].TeamSize,\r\n \"ServiceCenterAddress\": vm.ServicePartnerModel[index].ServiceCenterAddress,\r\n \"CertificateOfAuthorization\": vm.AuthFileName,\r\n \"TrainingCertificate\": vm.TrainingFileName,\r\n \"PhotoOfWorkPlace\":vm.WorkPlaceFileName\r\n } \r\n ActiveUserUpdateService.SaveAuthorizationData(data,vm.UserId,vm.FilesAuthDoc,vm.FilesTrainingDoc,vm.FilesWorkPlaceDoc, token, loggedinUser).then(function(res){\r\n if (res && res.status == 201) { \r\n vm.data=\"\"; \r\n vm.showSuccess(\"Success\", \"Document verified successfully.\");\r\n $timeout(function () {\r\n vm.GetUserByRegistrationNo();\r\n vm.BrandName = '';\r\n vm.BrandNameOther = '';\r\n vm.ProductServing = '';\r\n vm.ProductServingOther = '';\r\n }, 2500);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\",\"not verified\");\r\n } else {\r\n vm.showFailure(\"Failed\");\r\n }\r\n },vm.showFailure);\r\n }\r\n \r\n\r\n if (RegisteredUser.TrainingAssessment) {\r\n for (var trainingIndex = 0; trainingIndex < RegisteredUser.TrainingAssessment.length; trainingIndex++) {\r\n vm.TrainingList[trainingIndex] = RegisteredUser.TrainingAssessment[trainingIndex];\r\n \r\n vm.CertificateimageServices(vm.TrainingList[trainingIndex].TrainingCertificate,trainingIndex);\r\n if(vm.TrainingList[trainingIndex].VerificationReportPath !=null)\r\n vm.VerificationCertificateimageServices(vm.TrainingList[trainingIndex].VerificationReportPath,trainingIndex);\r\n }\r\n \r\n }\r\n\r\n\r\n // if(RegisteredUser.BGVerificationDocPath.length > 0){\r\n \r\n // for(var doc = 0; doc< RegisteredUser.BGVerificationDocPath.length;doc++){\r\n // vm.BGDocList[doc] = RegisteredUser.BGVerificationDocPath[doc];\r\n // }\r\n // console.log(vm.BGDocList);\r\n\r\n // for( var m = 0; m 0) {\r\n vm.countrylist = resp.data;\r\n vm.selectedCountry = vm.countrylist[0];\r\n vm.GetAllCircles();\r\n }\r\n }\r\n });\r\n }\r\n vm.getCountry();\r\n\r\n function getallCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.CityList = resp.data;\r\n });\r\n }\r\n\r\n vm.GetAllVerticalMasterData = function () {\r\n ActiveUserUpdateService.GetAllVerticalMasterData(loggedinUser, token).then(function (resp) {\r\n if (resp.status == 200) {\r\n vm.verticalList = resp.data.VerticalName;\r\n }\r\n });\r\n }\r\n\r\n vm.GetAllVerticalMasterData();\r\n\r\n \r\n vm.selectedVertical = function (vertical) {\r\n getAllBrands(vertical);\r\n }\r\n\r\n function getAllBrands(vertical) {\r\n ActiveUserUpdateService.GetMasterDataOfServiceCenterByVerticalName(vertical,loggedinUser,token).then(function (resp) {\r\n vm.BrandList = resp.data.BrandNameList;\r\n vm.BrandList.push('Other');\r\n });\r\n }\r\n \r\n vm.selectedBrand = function (brand) {\r\n getAllProducts(brand);\r\n }\r\n\r\n function getAllProducts(brand) {\r\n ActiveUserUpdateService.GetMasterDataOfServiceProductByBrandName(brand,loggedinUser,token).then(function (resp) {\r\n vm.ProductList = resp.data.ProductNameList;\r\n vm.ProductList.push('Other');\r\n });\r\n }\r\n\r\n function getallBaseCities(state) {\r\n ReferService.getAllCity(loggedinUser, state,token).then(function (resp) {\r\n vm.BaseCityList = resp.data;\r\n });\r\n }\r\n\r\n vm.selectedState = function (state) {\r\n getallCities(state);\r\n }\r\n\r\n vm.emptyPincode = function () {\r\n vm.PermanentPincode = '';\r\n }\r\n\r\n vm.selectedBaseState = function (bstate) {\r\n getallBaseCities(bstate);\r\n }\r\n vm.emptyBasePincode = function () {\r\n vm.BasePincode = '';\r\n }\r\n\r\n vm.getPicUrl = function (pic) {\r\n return ImageUrl + \"/\" + pic;\r\n }\r\n\r\n $scope.checkPDF = function(path){\r\n \r\n var pt = path.substr(path.length - 4);\r\n if(pt == '.pdf'){\r\n vm.error = function(){\r\n $(\".pdf\").attr({\"target\" : \"_blank\"})\r\n }\r\n return true;\r\n }\r\n else\r\n {\r\n return false;\r\n }\r\n }\r\n vm.PDFView = function (page) {\r\n MainService.GetImageBlob(loggedinUser, token, page).then(function(resp) {\r\n \r\n vm.pdfimage = resp.data;\r\n });\r\n $scope.selected = null;\r\n $timeout(function(){\r\n jobAppointmentModal = $uibModal.open({\r\n templateUrl: 'PDFView.html',\r\n size :'lg',\r\n scope: $scope\r\n });\r\n },1000)\r\n \r\n }\r\n vm.PDFUserModal = function(){\r\n jobAppointmentModal.close();\r\n }\r\n\r\n vm.changeFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n\r\n vm.changeCertificateFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n vm.VerificationchangeCertificateFile = function (selector) {\r\n angular.element(selector).trigger(\"click\");\r\n }\r\n $scope.uploadImageFile = function (files, type) {\r\n var file = files.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId+\"_ProfilePic_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if (file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n ActiveUserUpdateService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm[type] = filename;\r\n vm.imageServices(filename);\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.fileUploadError = \"Please upload image only as profile picture.\";\r\n }\r\n }\r\n vm.imageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n if(resp.data == null || resp.data == '' ){\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n }\r\n else{\r\n vm.profileImg = resp.data;\r\n }\r\n console.log(vm.profileImg);\r\n }, function() {\r\n vm.profileImg = 'assets/images/patterns/photo1.png';\r\n });\r\n \r\n }\r\n vm.DocumentimageServices = function(img,index){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n vm.DocprofileImg[index] = resp.data;\r\n \r\n });\r\n \r\n }\r\n // vm.DocumentUploadimageServices = function(img){\r\n // MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n // vm.DocprofileImg[index] = resp.data;\r\n \r\n // });\r\n \r\n // }\r\n \r\n vm.CertificateimageServices = function(cert,index){\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function(resp) {\r\n vm.CertprofileImg[index] = resp.data;\r\n \r\n });\r\n \r\n }\r\n vm.VerificationCertificateimageServices = function(cert,index){\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function(resp) {\r\n vm.VerificationCertprofileImg[index] = resp.data;\r\n \r\n });\r\n \r\n }\r\n vm.UploadCertificateimageServices = function(cert){\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function(resp) {\r\n vm.UploadCertprofileImg = resp.data;\r\n vm.isnonindeximage = \"1\";\r\n \r\n }); \r\n }\r\n vm.VerificationUploadCertificateimageServices = function(cert){\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function(resp) {\r\n vm.VerificationUploadCertprofileImg = resp.data;\r\n vm.Verificationisnonindeximage = \"1\";\r\n \r\n });\r\n \r\n }\r\n vm.ToolimageServices = function(cert,index){\r\n MainService.GetImageBlob(loggedinUser, token, cert).then(function(resp) {\r\n vm.ToolDocumentImg[index] = resp.data;\r\n \r\n });\r\n \r\n }\r\n\r\n //background Checks\r\n // $scope.uploadBGFilenew = function (elem) {\r\n // var index = (angular.element(elem).attr(\"data-index\"));\r\n // var doc = vm.BGDocList[index];\r\n // vm.error[doc.DocumentType] = '';\r\n // var file = elem.files[0];\r\n\r\n // var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n // filename = vm.UserId+\"_\"+doc.DocumentName.replace(/[^a-zA-Z0-9]/g, '') +\"_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n // var file = new File([file], filename, {type:file.type});\r\n\r\n // if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n // || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n // || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n // var data = new FormData();\r\n // data.append(\"files\", file);\r\n // ActiveUserUpdateService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n // if (res && res.status == 201 && res.data) {\r\n // doc.DocumentPath = doc.DocumentPath = filename;\r\n // doc.ThirdPartyDocumentPath = doc.ThirdPartyDocumentPath = filename;\r\n // doc.DocumentName = doc.DocumentName;\r\n // doc.DocumentNo = doc.DocumentNo;\r\n // // doc.UpdatedOn = doc.UpdatedOn;\r\n // vm.DocumentimageServices(doc.DocumentPath,index);\r\n // vm.DocumentimageServices(doc.ThirdPartyDocumentPath,index);\r\n // doc.editnew = false;\r\n // }\r\n // }, function (err) {\r\n // vm.showFailure(\"Failed\", \"File name is invalid, unable to upload document\");\r\n // });\r\n // } else {\r\n // vm.error[doc.DocumentType] = \"You can upload image, pdf or word document only\";\r\n // }\r\n // }\r\n \r\n\r\n // $scope.uploadBGFile = function (elem) {\r\n // var index = (angular.element(elem).attr(\"data-index\"));\r\n // var doc = vm.BGDocList[index];\r\n // vm.error[doc.DocumentType] = '';\r\n // var file = elem.files[0];\r\n\r\n // var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n // filename = vm.UserId+\"_\"+doc.DocumentName.replace(/[^a-zA-Z0-9]/g, '') +\"_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n // var file = new File([file], filename, {type:file.type});\r\n\r\n // if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n // || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n // || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n // var data = new FormData();\r\n // data.append(\"files\", file);\r\n // ActiveUserUpdateService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n // if (res && res.status == 201 && res.data) {\r\n // doc.DocumentPath = doc.DocumentPath1 = filename;\r\n // doc.DocumentName = doc.DocumentName;\r\n // vm.DocumentimageServices(doc.DocumentPath,index);\r\n // doc.edit = false;\r\n // }\r\n // }, function (err) {\r\n // vm.showFailure(\"Failed\", \"Unable to upload document, server error\");\r\n // });\r\n // } else {\r\n // vm.error[doc.DocumentType] = \"You can upload image, pdf or word document only\";\r\n // }\r\n // }\r\n\r\n $scope.uploadCertificateFile = function (elem) {\r\n \r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n // var doc = vm.BGDocList[index];\r\n var traning = vm.TrainingList[index];\r\n // vm.error[traning.CertificateName] = '';\r\n var file = elem.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId+\"_TraningCertificate_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n ActiveUserUpdateService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.pathtcertificate = filename;\r\n vm.UploadCertificateimageServices(filename);\r\n \r\n if(vm.pathtcertificate){\r\n vm.tempCertificateAdd = false;\r\n }\r\n traning.TrainingCertificate = traning.TrainingCertificate = filename;\r\n traning.CertificateName = traning.CertificateName;\r\n \r\n traning.edit = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload certificate, server error\");\r\n });\r\n } else {\r\n vm.error[traning.CertificateName] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n\r\n $scope.VerificationuploadCertificateFile = function (elem) {\r\n var index = (angular.element(elem).attr(\"data-index\"));\r\n // var doc = vm.BGDocList[index];\r\n var traning = vm.TrainingList[index];\r\n // vm.error[traning.CertificateName] = '';\r\n var file = elem.files[0];\r\n\r\n var rendomnumber = Math.floor(1000 + Math.random() * 9999);\r\n filename = vm.UserId+\"_VerificationTraningCertificate_\" + rendomnumber +\".\"+ file.name.split(\".\")[1];\r\n var file = new File([file], filename, {type:file.type});\r\n\r\n if (file.type == \"application/pdf\" || file.type == \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n || file.type == \"application/msword\" || file.type.indexOf(\"image/jpg\") >= 0 || file.type.indexOf(\"image/png\") >= 0\r\n || file.type.indexOf(\"image/bmp\") >= 0 || file.type.indexOf(\"image/jpeg\") >= 0) {\r\n var data = new FormData();\r\n data.append(\"files\", file);\r\n ActiveUserUpdateService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.Verificationpathtcertificate = filename;\r\n vm.VerificationUploadCertificateimageServices(filename);\r\n \r\n if(vm.Verificationpathtcertificate){\r\n vm.VerificationtempCertificateAdd = false;\r\n }\r\n traning.VerificationReportPath = traning.VerificationReportPath = filename;\r\n traning.CertificateName = traning.CertificateName;\r\n \r\n traning.edit = false;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload verification doc, server error\");\r\n });\r\n } else {\r\n vm.error[traning.CertificateName] = \"You can upload image, pdf or word document only\";\r\n }\r\n }\r\n var tempPLocation = {\r\n PreferredState: \"\",\r\n PreferredCity: \"\",\r\n PreferredPincode: \"\"\r\n }\r\n vm.PreferredLocationList.push(tempPLocation);\r\n vm.AddPreferredLocation = function () {\r\n var temp = {};\r\n vm.PreferredLocationList.push(temp);\r\n }\r\n vm.DeletePreferredLocation = function (i) {\r\n vm.PreferredLocationList.splice(i, 1);\r\n }\r\n\r\n for (var i = 0; i <= 30; i++) {\r\n vm.experienceYearList.push(i);\r\n }\r\n\r\n vm.getAllCertificate = function(){\r\n ActiveUserUpdateService.GetAllCertificate(loggedinUser,token,function(data){\r\n vm.AllCertificateSets = data;\r\n },vm.showFailure);\r\n }\r\n vm.getAllCertificate();\r\n\r\n vm.getAllTools = function(){\r\n ActiveUserUpdateService.GetAllToolSets(loggedinUser,token,function(data){\r\n vm.Asset_ToolList = data;\r\n },vm.showFailure);\r\n }\r\n vm.getAllTools();\r\n\r\n vm.addMoreTCertificate = function(){\r\n \r\n var CertificateIssueDate = $filter('date')(new Date(vm.CertificateIssueDate),'yyyy-MM-dd');\r\n var CertificateExpiryDate = $filter('date')(new Date(vm.CertificateExpiryDate),'yyyy-MM-dd');\r\n if(CertificateIssueDate >= CertificateExpiryDate ){\r\n vm.showFailure(\"Expiry date should be greater than Issue Date\");\r\n vm.showTCList = false;\r\n vm.pathtcertificate = '';\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.VerificationAgency='';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.Verificationpathtcertificate='';\r\n }else{\r\n var tData = {\r\n CertificateName: vm.addTraningCertificateName,\r\n TrainingCertificate: vm.pathtcertificate,\r\n CertificateNo : vm.CertificateNo,\r\n VerificationAgency: vm.VerificationAgency,\r\n CertificateIssueDate: CertificateIssueDate,\r\n CertificateExpiryDate: CertificateExpiryDate,\r\n CertificationYear: '',\r\n AssessmentLevel: '',\r\n Description : '',\r\n VerificationReportPath : vm.Verificationpathtcertificate\r\n }\r\n \r\n if(tData.CertificateName && tData.TrainingCertificate && tData.CertificateIssueDate && tData.CertificateExpiryDate ){\r\n vm.TrainingList.push(tData);\r\n vm.showTCList = false;\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.VerificationAgency ='';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.pathtcertificate = '';\r\n vm.Verificationpathtcertificate = '';\r\n }else{\r\n vm.showTCList = false;\r\n vm.pathtcertificate = '';\r\n vm.Verificationpathtcertificate = '';\r\n vm.addTraningCertificateName = '';\r\n vm.CertificateNo = '';\r\n vm.VerificationAgency ='';\r\n vm.CertificateIssueDate = moment();\r\n vm.CertificateExpiryDate = moment();\r\n vm.showFailure(\"Warning\", \"You must select Certificate Name,CertificateIssueDate,CertificateExpiryDate & Upload File\");\r\n }\r\n }\r\n }\r\n vm.removeCertificate = function(index){\r\n vm.TrainingList.splice(index,1);\r\n }\r\n\r\n vm.removeCurrentCertificate = function () {\r\n vm.showTCList = false;\r\n vm.addTraningCertificateName = '';\r\n vm.pathtcertificate = '';\r\n vm.Verificationpathtcertificate = '';\r\n }\r\n\r\n vm.showTCList = false;\r\n vm.addMoreCertificateInTable = function(){\r\n vm.showTCList = true;\r\n vm.tempCertificateAdd = true;\r\n }\r\n\r\n //Auth service center\r\n vm.showASCTList = false;\r\n vm.addMoreAuthServiceCenterInTable = function(){\r\n vm.showASCTList = true;\r\n vm.tempCertificateAdd = true;\r\n }\r\n //\r\n\r\n vm.tempCertificateAdd = false;\r\n // vm.enableCertificateAddButton = function(){\r\n // vm.tempCertificateAdd = true;\r\n // }\r\n\r\n vm.getCertificateSets = function () {\r\n var RemoveCertificate = [];\r\n var remainingCertificate = Array.from(vm.AllCertificateSets);\r\n angular.forEach(remainingCertificate, function (d) {\r\n for (var i = 0; i < vm.TrainingList.length; i++) {\r\n if (d.Name == vm.TrainingList[i].CertificateName) {\r\n RemoveCertificate.push(d);\r\n return;\r\n }\r\n }\r\n });\r\n angular.forEach(RemoveCertificate, function (s) {\r\n remainingCertificate.splice(remainingCertificate.indexOf(s), 1);\r\n })\r\n return remainingCertificate;\r\n }\r\n\r\n\r\n vm.getAllSkills = function () {\r\n ActiveUserUpdateService.getAllSkills(loggedinUser, token, function (data) {\r\n vm.AllSkillSets = data;\r\n }, vm.showFailure);\r\n }\r\n vm.getAllSkills();\r\n\r\n vm.getSkillSets = function () {\r\n var RemoveSkills = [];\r\n var remainingSkills = Array.from(vm.AllSkillSets);\r\n angular.forEach(remainingSkills, function (d) {\r\n for (var i = 0; i < vm.SkillList.length; i++) {\r\n if (d.SkillName == vm.SkillList[i].Skill) {\r\n RemoveSkills.push(d);\r\n return;\r\n }\r\n }\r\n });\r\n angular.forEach(RemoveSkills, function (s) {\r\n remainingSkills.splice(remainingSkills.indexOf(s), 1);\r\n })\r\n return remainingSkills;\r\n }\r\n\r\n vm.getAllAccounts = function () {\r\n ActiveUserUpdateService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data) { \r\n vm.AllAccounts = resp.data;\r\n } \r\n }, function () { \r\n });\r\n } \r\n vm.getAllAccounts();\r\n\r\n vm.AccountChange=function (){\r\n for (var i = 0; i < vm.AllAccounts.length; i++) {\r\n var Acc = vm.AllAccounts[i];\r\n if(Acc.CompanyName == vm.AccountName ) {\r\n vm.SelectedAccount = Acc;\r\n vm.AccountId = vm.SelectedAccount.AccountId;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n vm.getAccounts = function () {\r\n vm.AccountChange();\r\n var RemoveAccounts = [];\r\n var remainingAccounts = Array.from(vm.AllAccounts);\r\n angular.forEach(remainingAccounts, function (d) {\r\n for (var i = 0; i < vm.AccountList.length; i++) {\r\n if (d.CompanyName == vm.AccountList[i].Account) {\r\n RemoveAccounts.push(d);\r\n return;\r\n }\r\n }\r\n });\r\n angular.forEach(RemoveAccounts, function (s) {\r\n remainingAccounts.splice(remainingAccounts.indexOf(s), 1);\r\n })\r\n return remainingAccounts;\r\n }\r\n \r\n\r\n vm.showRow = false;\r\n vm.addMoreSkill = function () {\r\n var skillData = {\r\n Skill: vm.addSkill,\r\n Experience: vm.addExprence,\r\n PercentageScore :'0',\r\n Brand: [],\r\n SelfRatingOnSkill: ''\r\n }\r\n \r\n if(skillData.Skill){\r\n vm.SkillList.push(skillData);\r\n vm.showRow = false;\r\n vm.addExprence = '';\r\n vm.addSkill = '';\r\n }else{\r\n vm.showRow = false;\r\n vm.addExprence = '';\r\n vm.addSkill = '';\r\n vm.showFailure(\"Warning\", \"You must select SKILL & EXPERIENCE\");\r\n }\r\n\r\n }\r\n\r\n vm.removeCurrentSkill = function () {\r\n vm.showRow = false;\r\n vm.addSkill = '';\r\n vm.addExprence = '';\r\n }\r\n\r\n vm.removeSkill = function (index) {\r\n vm.SkillList.splice(index, 1);\r\n }\r\n\r\n vm.addMoreSkillInTable = function () {\r\n vm.showRow = true;\r\n }\r\n\r\n vm.tempSkillList = [];\r\n var skillData = {\r\n Skill: \"\",\r\n Experience: \"\",\r\n Brand: [],\r\n SelfRatingOnSkill: ''\r\n }\r\n vm.tempSkillList.push(skillData);\r\n\r\n vm.tempAddMoreSkill = function () {\r\n var blank = {}\r\n vm.tempSkillList.push(blank);\r\n }\r\n\r\n vm.tempDeleteMoreSkill = function (index) {\r\n vm.tempSkillList.splice(index, 1);\r\n }\r\n\r\n vm.pushTempTOOriginal = function () {\r\n vm.closeSkillModel()\r\n for (var i = 0; i < vm.tempSkillList.length; i++) {\r\n vm.SkillList.push(vm.tempSkillList[i]);\r\n }\r\n console.log(vm.SkillList);\r\n\r\n }\r\n\r\n\r\n vm.showRow1 = false;\r\n vm.addMoreAccounts = function () {\r\n var accountData = {\r\n Account: vm.AccountName,\r\n AccountId: vm.AccountId,\r\n }\r\n \r\n if(accountData.Account){\r\n vm.AccountList.push(accountData);\r\n vm.showRow1 = false;\r\n vm.AccountName = '';\r\n vm.AccountId = '';\r\n }else{\r\n vm.showRow1 = false;\r\n vm.AccountName = '';\r\n vm.AccountId = '';\r\n vm.showFailure(\"Warning\", \"You must select Account\");\r\n }\r\n\r\n }\r\n\r\n vm.removeCurrentAccount = function () {\r\n vm.showRow1 = false;\r\n vm.Account = '';\r\n }\r\n\r\n vm.removeAccount = function (index) {\r\n vm.AccountList.splice(index, 1);\r\n }\r\n\r\n vm.addMoreAccountsInTable = function () {\r\n vm.showRow1 = true;\r\n }\r\n\r\n\r\n vm.sendBoatLink = function(skill){\r\n console.log(skill);\r\n ActiveUserUpdateService.sendBoatLink(loggedinUser, vm.MobileNo, skill, token, function(res){\r\n if (res && res.status == 201){\r\n vm.showSuccess('Success', \"Successfully send link\");\r\n }\r\n },function(err){\r\n vm.showFailure(\"Failed\", \"Unable to send link, server error\");\r\n })\r\n }\r\n\r\n\r\n // vm.Addskill = function () {\r\n // vm.AllBookingList = '';\r\n // $scope.selected = null;\r\n // vm.addSkillModal = $uibModal.open({\r\n // templateUrl: 'Addskill.html',\r\n // size: 'lg',\r\n // scope: $scope\r\n // });\r\n\r\n // }\r\n\r\n // vm.closeSkillModel = function () {\r\n // vm.addSkillModal.close();\r\n // }\r\n\r\n // vm.ToolLists = function (tool) {\r\n // vm.UpdatedToolList.push(tool);\r\n // }\r\n\r\n $p.on('click', function (e) {\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n vm.changeStatus = function (status) {\r\n //$log.log(\"status\", status);\r\n if (status == 'Basic') {\r\n //$log.log(\"status\", status);\r\n // vm.RegistrationStatus = \"Basic Checked\";\r\n $('.referalwizard[id=\"2\"]').trigger('click', function (e) {\r\n vm.UserInfoCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Location') {\r\n // vm.RegistrationStatus = \"Location Checked\";\r\n $('.referalwizard[id=\"3\"]').trigger('click', function (e) {\r\n vm.UserLocationCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Document') {\r\n // vm.RegistrationStatus = \"Document Checked\";\r\n $('.referalwizard[id=\"4\"]').trigger('click', function (e) {\r\n vm.UserDocumentCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Traning') {\r\n // vm.RegistrationStatus = \"Document Checked\";\r\n $('.referalwizard[id=\"5\"]').trigger('click', function (e) {\r\n vm.UserTraningCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Assets') {\r\n // vm.RegistrationStatus = \"Assets Checked\";\r\n $('.referalwizard[id=\"6\"]').trigger('click', function (e) {\r\n vm.UserAvailableAssestCheck = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n else if (status == 'Skill') {\r\n // vm.RegistrationStatus = \"Skill Checked\";\r\n $('.referalwizard[id=\"7\"]').trigger('click', function (e) {\r\n vm.UserSkillCheck = true;\r\n vm.verifyAll = true;\r\n var $current = $(e.currentTarget);\r\n var index = $p.index($current);\r\n if (index > currentIndex) {\r\n $container.addClass('forward');\r\n } else {\r\n $container.removeClass('forward');\r\n }\r\n currentIndex = index;\r\n $container.attr('data-step', index);\r\n });\r\n }\r\n }\r\n\r\n vm.VerifyAllUserInfo = function () {\r\n vm.verifyAll = true;\r\n vm.changeStatus('Basic');\r\n vm.changeStatus('Location');\r\n vm.changeStatus(\"Document\");\r\n vm.changeStatus(\"Traning\");\r\n vm.changeStatus(\"Assets\");\r\n vm.changeStatus(\"Skill\");\r\n vm.UserInfoCheck = true;\r\n vm.UserLocationCheck = true;\r\n vm.UserDocumentCheck = true;\r\n vm.UserTraningCheck = true;\r\n vm.UserAvailableAssestCheck = true;\r\n vm.UserSkillCheck = true;\r\n\r\n // vm.UserInfoCheck == true ? vm.UserInfoCheck = false : vm.UserInfoCheck = true;\r\n // vm.UserLocationCheck == true ? vm.UserLocationCheck = false : vm.UserLocationCheck = true;\r\n // vm.UserDocumentCheck == true ? vm.UserDocumentCheck = false : vm.UserDocumentCheck = true;\r\n // vm.UserAvailableAssestCheck == true ? vm.UserAvailableAssestCheck = false : vm.UserAvailableAssestCheck = true;\r\n // vm.UserSkillCheck == true ? vm.UserSkillCheck = false : vm.UserSkillCheck = true;\r\n }\r\n vm.ApprovedAndRejectTool=function(IsApproved, index)\r\n { \r\n \r\n if(IsApproved==\"Approved\")\r\n vm.ApprovedRejectTool = \"Approved\";\r\n else\r\n vm.ApprovedRejectTool = \"Rejected\";\r\n \r\n vm.ToolsDetailList[index].VerificationStatus=vm.ApprovedRejectTool;\r\n }\r\n vm.ApprovedAndRejectCertificate=function(IsApproved, index)\r\n { \r\n if(IsApproved==\"Approved\")\r\n vm.ApprovedRejectCertificate = \"Approved\";\r\n else\r\n vm.ApprovedRejectCertificate = \"Rejected\";\r\n \r\n vm.TrainingList[index].VerificationStatus=vm.ApprovedRejectCertificate;\r\n }\r\n vm.updateUser = function () {\r\n vm.searchButtonText = 'Updating';\r\n vm.dissbleUpdateButton = true;\r\n if (vm.form1.$valid) {\r\n \r\n var SkillSetModel = [];\r\n for (var skillIndex = 0; skillIndex < vm.SkillList.length; skillIndex++) {\r\n SkillSetModel.push(vm.SkillList[skillIndex]);\r\n }\r\n var AccountSetModel = [];\r\n for (var accountIndex = 0; accountIndex < vm.AccountList.length; accountIndex++) {\r\n AccountSetModel.push(vm.AccountList[accountIndex]);\r\n }\r\n\r\n var TrainingAssessmentModel = [];\r\n for (var trainingIndex = 0; trainingIndex < vm.TrainingList.length; trainingIndex++) {\r\n vm.TrainingList[trainingIndex].Description = null;\r\n TrainingAssessmentModel.push(vm.TrainingList[trainingIndex]);\r\n }\r\n\r\n // console.log(vm.BGDocList);\r\n // for(var i = 0; i< vm.BGDocList.length; i++){\r\n // if(vm.BGDocList[i].DocumentType == 'Id Prof'){\r\n // vm.BGDocList[i].DocumentType = 'Aadhar Card';\r\n // vm.BGDocList[i].DocumentName = vm.BGDocList[i].DocumentName;\r\n // vm.BGDocList[i].DocumentPath = vm.BGDocList[i].DocumentPath; \r\n // }\r\n // }\r\n // console.log('After Update')\r\n // console.log(vm.BGDocList);\r\n\r\n var ToolsDetailListModel = [];\r\n angular.forEach(vm.ToolsDetailList, function (d) {\r\n ToolsDetailListModel.push({\r\n \"ToolName\": d.ToolName,\r\n \"ToolImagePath\": d.ToolImagePath,\r\n \"ToolImageBase64\": [], \r\n \"VerificationStatus\": d.VerificationStatus,\r\n \"VerificationDate\": d.VerificationDate,\r\n \"ItemSerialNumber\": d.ItemSerialNumber,\r\n \"DateOfManufacturing\": d.DateOfManufacturing\r\n });\r\n })\r\n\r\n var BGVerificationDocPathModel = [];\r\n angular.forEach(vm.BGDocList, function (d) {\r\n BGVerificationDocPathModel.push({\r\n \"DocumentType\": d.DocumentType,\r\n \"DocumentName\": d.DocumentName,\r\n \"DocumentPath\": d.DocumentPathName\r\n });\r\n })\r\n // console.log(BGVerificationDocPathModel);\r\n var data = {\r\n \"UserId\": vm.UserId,\r\n \"FirstName\": vm.FirstName,\r\n \"LastName\": vm.LastName,\r\n \"Gender\": vm.Gender,\r\n \"PAN\" : vm.PAN,\r\n \"AdharNo\" : vm.Aadhar,\r\n \"DOB\": vm.DOB,\r\n \"RegistrationStatus\": vm.RegistrationStatus,\r\n \"FatherName\": vm.FatherName,\r\n \"PersonalEmail\": vm.Email,\r\n \"ContactNumber\": vm.MobileNo,\r\n \"AlternativeContactNumber\": \"\",\r\n \"CompanyName\": vm.CompanyName,\r\n \"AddressLine1\": '',\r\n \"AddressLine2\": '',\r\n \"State\": '',\r\n \"City\": '',\r\n \"PinCode\": '',\r\n \"CurAddressLine1\": vm.BaseAddressLine1,\r\n \"CurAddressLine2\": vm.BaseAddressLine2,\r\n \"CurState\": vm.BaseState,\r\n \"CurCity\": vm.BaseCity,\r\n \"CurPinCode\": vm.BasePincode,\r\n \"PerAddressLine1\": vm.AddressLine1,\r\n \"PerAddressLine2\": vm.AddressLine2,\r\n \"PerState\": vm.PermanentState,\r\n \"PerCity\": vm.PermanentCity,\r\n \"PerPinCode\": vm.PermanentPincode,\r\n \"Picture\": vm.Picture,\r\n \"UserQualification\": vm.QualificationList,\r\n \"SkillData\": SkillSetModel,\r\n \"accountData\": AccountSetModel,\r\n // \"Locations\": vm.PreferredLocation,\r\n // \"Expertise\": vm.Expertise,\r\n // \"BGVerificationStatus\": vm.BGVerificationStatus,\r\n \"TrainingAssessment\": TrainingAssessmentModel,\r\n \"BGVerificationDocPath\": BGVerificationDocPathModel,\r\n \"VerificationsRemarks\": null,\r\n \"IsBasicVerified\": vm.UserInfoCheck,\r\n \"IsLocVerified\": vm.UserLocationCheck,\r\n \"IsDocsVerified\": vm.UserDocumentCheck,\r\n \"IsCertificationVerified\" : vm.UserTraningCheck,\r\n \"IsAssetsVerified\": vm.UserAvailableAssestCheck,\r\n \"IsSkillsVerified\": vm.UserSkillCheck,\r\n \"IsMobileAvailable\": vm.Asset_Mobile,\r\n \"IsLaptopAvailable\": vm.Asset_Laptop,\r\n \"IsBikeAvailable\": vm.Asset_Bike,\r\n \"Tools\": vm.Asset_Tools,\r\n \"Locations\":vm.Work_Location,\r\n \"CoverageDistance\" : parseFloat(vm.CoverageDistance),\r\n \"IsStudent\": vm.IsStudent,\r\n \"IsOpenForInternship\": vm.IsOpenForInternship,\r\n \"IsPanVerified\" : vm.IsPanVerified,\r\n \"IsAdharVerified\" : vm.IsAdharVerified,\r\n \"Source\" : vm.Source,\r\n \"Designation\" : vm.Designation,\r\n \"ToolsDetailList\" : ToolsDetailListModel,\r\n \"Experience\" : vm.UserExperience,\r\n \"AccountDetails\":vm.AccountList\r\n \r\n }\r\n\r\n ActiveUserUpdateService.updateuUser(loggedinUser, data, token).then(function (resp) {\r\n if (resp.status == 202) {\r\n vm.showSuccess(\"Registration Status\", \"User Updated Successfully.\");\r\n \r\n $timeout(function () {\r\n if(vm.EditVendorTeam == 'yes'){\r\n $state.go('index.ActiveVendorTeam', { reload: true });\r\n }\r\n else if(vm.EditVendorTeam == 'vendorteam'){\r\n $state.go('index.NewVendorProfile', { \r\n VendorId: vm.VendorId,\r\n type:'Vendor',\r\n reload: true });\r\n }\r\n else{\r\n $state.go(\"index.ActiveAllUser\", {\r\n type:'Technician', \r\n reload: true });\r\n }\r\n \r\n }, 2000);\r\n \r\n \r\n \r\n } else if (resp.data && resp.data.Message) {\r\n vm.showFailure(\"Registration Status\", resp.data.Message);\r\n } else {\r\n vm.showFailure(\"Registration Status\", \"User could not be updated, server is not responding correctly.\");\r\n }\r\n }, function (error) {\r\n vm.showFailure(\"Registration Status\", \"User could not be updated, server is not responding correctly.\");\r\n });\r\n\r\n }\r\n else {\r\n vm.form1.submitted = true;\r\n vm.searchButtonText = 'Update';\r\n vm.showFailure(\"Failed\", \"Please enter correct details.\");\r\n vm.dissbleUpdateButton = false;\r\n }\r\n }\r\n vm.callforCriminalVerification = function(){\r\n ActiveUserUpdateService.callToInitCverification(loggedinUser,vm.UserId, token, function(res){\r\n if (res){\r\n $timeout(function () {\r\n vm.showSuccess('Success', res);\r\n vm.GetUserByRegistrationNo();\r\n }, 1000);\r\n }\r\n else\r\n {\r\n vm.showFailure(\"Failed\", res)\r\n }\r\n },function(){\r\n vm.showFailure(\"Failed\");\r\n })\r\n }\r\n\r\n vm.markActive = function () {\r\n if(vm.SkillList.length > 0 && vm.SkillList != null){\r\n\r\n if ((vm.BGDocList[1] && vm.BGDocList[1].DocumentPath!=null && vm.BGDocList[1].DocumentPath.length>0) && \r\n vm.BGDocList[0] && vm.BGDocList[0].DocumentPath!=null && vm.BGDocList[0].DocumentPath.length>0 ) {\r\n \r\n vm.RegistrationStatus = 'Active';\r\n vm.updateUser();\r\n } else {\r\n if(vm.BGDocList[1].DocumentPath==''){\r\n vm.showFailure(\"Failed\", \"Please upload Address Proof details\");\r\n }else if(vm.BGDocList[0].DocumentPath==''){\r\n vm.showFailure(\"Failed\", \"Please Upload Aadhar Card\");\r\n }\r\n }\r\n }else{\r\n vm.showFailure(\"Failed\", \"Please enter at least one skill\");\r\n } \r\n }\r\n\r\n\r\n vm.CircleList = [];\r\n vm.GetAllCircles = function () {\r\n ActiveUserUpdateService.getStates(loggedinUser,token).then(function (resp) {\r\n if (resp.status == 200) {\r\n if (resp.data && resp.data.length > 0) {\r\n vm.CircleList = resp.data;\r\n }\r\n }\r\n });\r\n }\r\n vm.UserAciveDeactive = function()\r\n { \r\n ActiveUserUpdateService.UserAciveDeactive(loggedinUser, vm.UserId, token).then(function (resp) {\r\n if(resp.status == 202)\r\n { \t\t\t\r\n vm.showSuccess(\"Success\", \"User has been \"+ resp.data +\" successfully\");\r\n } \r\n });\r\n }\r\n\r\n vm.OpenPdfModal= function(PdfPathName)\r\n\t\t{\r\n vm.IsLoadSucessfull=false;\t\r\n MainService.GetImageBlob(loggedinUser, token, PdfPathName).then(function(resp) { \r\n vm.ConvertBase64ToBlob(resp.data);\r\n vm.IsLoadSucessfull=true;\t\r\n });\r\n\t\t\tjobAppointmentModal = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'SiteAuditPDFView.html',\r\n\t\t\t\tsize :'lg',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t\twindowClass: 'zindex'\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t}\r\n\t vm.SiteAuditPDFUserModal = function(){\r\n\t\tjobAppointmentModal.close();\r\n\t }\r\n\t\r\n\tvm.ConvertBase64ToBlob = function(response)\r\n\t{\r\n vm.Auditpdf=\"\";\r\n\t\tif(response !=null){\r\n\t\t\tvar arrrayBuffer = base64ToArrayBuffer(response); //data is the base64 encoded string\r\n\t\t\tvar blob = new Blob([arrrayBuffer], {type: \"application/pdf\"});\r\n\t\t\tvm.Auditpdf = URL.createObjectURL(blob);\t\t\t\t\r\n\t\t\tvm.IsLoadSucessfull=true;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tvm.DocumentAvailableMessage=\"Document is not available\";\r\n\t\t\tvm.IsLoadSucessfull=true;\r\n\t\t}\r\n\t}\r\n\tfunction base64ToArrayBuffer(base64) \r\n\t{\r\n\t\tvar ret = base64.replace('data:application/pdf;base64,','');\r\n\t\t\tvar binaryString = atob(ret);\r\n\t\t\tvar binaryLen = binaryString.length;\r\n\t\t\tvar bytes = new Uint8Array(binaryLen);\r\n\t\t\tfor (var i = 0; i < binaryLen; i++) {\r\n\t\t\tvar ascii = binaryString.charCodeAt(i);\r\n\t\t\tbytes[i] = ascii;\r\n\t\t\t}\r\n\t\t\treturn bytes;\r\n\t}\r\n vm.OpenSiteAuditModal = function () \r\n { \r\n siteAuditModalInstance = $uibModal.open({\r\n templateUrl: 'site_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n vm.SiteAuditCloseModal = function () {\r\n siteAuditModalInstance.close();\r\n }\r\n \r\n $scope.attachSiteAudit = function(files){\r\n \r\n vm.ToolAuditFileName=\"\";\r\n var file = files.files[0];\r\n vm.ToolAuditFileName=file.name;\r\n // if(vm.ToolAuditFileName!=\"\") \r\n // { \r\n // $timeout(function () {\r\n // vm.SiteAuditMessage=\"\"; \r\n // }, 100); \r\n // } \r\n vm.ToolAuditFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX|\\.JPG|\\.jpg|\\.JPEG|\\.jpeg|\\.PNG|\\.png)$/i; \r\n if(!allowedExtensions.exec(file.name)){\r\n vm.ToolAuditFiles = [];\r\n vm.clear(); \r\n alert('Please upload file having extensions .pdf,.doc,.docs,.xls,.xlsx,.png,.jpeg,.jpg only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.SiteRescheduleAuditWithoutIndex = function(){ \r\n // if(vm.ToolAuditFileName==\"\") \r\n // return vm.SiteAuditMessage=\"Please Select Audit Report\";\r\n // else\r\n // vm.SiteAuditMessage=\"\";\r\n\r\n var data = {};\r\n data = { \r\n \"AuditResult\": vm.SiteAuditModel, \r\n \"AuditObjectId\": vm.UserId,\r\n \"AuditAttachmentName\": vm.ToolAuditFileName,\r\n \"AuditFor\": \"User\",\r\n \"AuditPurpose\": \"Tools\" \r\n } \r\n siteAuditModalInstance.close(); \r\n ActiveUserUpdateService.AddToolAuditwithAttachment(data, vm.ToolAuditFiles, token, loggedinUser).then(function(res){\r\n if (res && res.status == 202) { \r\n vm.ToolAuditFileName=\"\"; \r\n vm.showSuccess(\"Success\", \"Tool Audit Saved successfully.\");\r\n $timeout(function () {\r\n vm.GetUserByRegistrationNo();\r\n \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to add tool audit. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n\r\n ////Exprience Audit\r\n \r\n vm.OpenExperienceAuditModal = function () \r\n { \r\n experienceAuditModalInstance = $uibModal.open({\r\n templateUrl: 'experience_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n vm.ExperienceAuditCloseModal = function () {\r\n experienceAuditModalInstance.close();\r\n }\r\n \r\n $scope.attachExperienceAudit = function(files){\r\n \r\n vm.ExperienceAuditFileName=\"\";\r\n var file = files.files[0];\r\n vm.ExperienceAuditFileName=file.name;\r\n if(vm.ExperienceAuditFileName!=\"\") \r\n { \r\n $timeout(function () {\r\n vm.ExperienceAuditMessage=\"\"; \r\n }, 100); \r\n } \r\n vm.ExperienceAuditFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.jpg|\\.jpeg|\\.png|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX|\\.JPG|\\.JPEG|\\.PNG)$/i; \r\n if(!allowedExtensions.exec(file.name)){ \r\n vm.ExperienceAuditFiles=[]; \r\n vm.clear(); \r\n alert('Please upload file having extensions .jpg,.jpeg,.png,.pdf,.doc,.docs,.xls,.xlsx only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.ExperienceAuditSave = function(){ \r\n if(vm.ExperienceAuditFileName==\"\") \r\n return vm.ExperienceAuditMessage=\"Please Select Audit Report\";\r\n else\r\n vm.ExperienceAuditMessage=\"\";\r\n\r\n var data = {};\r\n data = { \r\n \"AuditResult\": vm.ExperienceAuditModel, \r\n \"AuditObjectId\": vm.UserId,\r\n \"AuditAttachmentName\": vm.ExperienceAuditFileName,\r\n \"AuditFor\": \"User\",\r\n \"AuditPurpose\": \"Previous Company\" \r\n } \r\n experienceAuditModalInstance.close(); \r\n ActiveUserUpdateService.AddToolAuditwithAttachment(data, vm.ExperienceAuditFiles, token, loggedinUser).then(function(res){\r\n if (res && res.status == 202) { \r\n vm.ExperienceAuditFileName=\"\"; \r\n vm.showSuccess(\"Success\", \"Experience varification details saved successfully.\");\r\n $timeout(function () {\r\n vm.GetUserByRegistrationNo();\r\n \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to add experience varification details. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n \r\n /* Start Training Audit */\r\n vm.OpenTrainingAuditModal = function () \r\n { \r\n TrainingAuditModalInstance = $uibModal.open({\r\n templateUrl: 'Training_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n vm.TrainingAuditCloseModal = function () {\r\n TrainingAuditModalInstance.close();\r\n }\r\n vm.TrainingImageFileName=\"\";\r\n vm.TrainingAttendanceFileName=\"\";\r\n $scope.attachTrainingImage = function(files){ \r\n vm.TrainingImageFileName=\"\";\r\n var file = files.files[0];\r\n vm.TrainingImageFileName=file.name; \r\n vm.TrainingImageFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.jpg|\\.jpeg|\\.png|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX|\\.JPG|\\.JPEG|\\.PNG)$/i; \r\n if(!allowedExtensions.exec(file.name)){ \r\n vm.TrainingImageFiles = []; \r\n vm.clear(); \r\n alert('Please upload file having extensions .jpg,.pdf,.doc,.docs,.xls,.xlsx only.');\r\n }\r\n }\r\n $scope.attachTrainingAttendance = function(files){\r\n vm.TrainingAttendanceFileName=\"\";\r\n var file = files.files[0];\r\n vm.TrainingAttendanceFileName=file.name; \r\n vm.TrainingAttendanceFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.jpg|\\.jpeg|\\.png|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX|\\.JPG|\\.JPEG|\\.PNG)$/i; \r\n if(!allowedExtensions.exec(file.name)){ \r\n vm.TrainingAttendanceFiles = []; \r\n vm.clear(); \r\n alert('Please upload file having extensions jpg,.pdf,.doc,.docs,.xls,.xlsx only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.TrainingAuditSave = function(){\r\n var modelDate= $filter('date')(new Date(vm.TrainingDate),'yyyy-MM-dd');\r\n var currentDate=$filter('date')(new Date(),'yyyy-MM-dd');\r\n if(modelDate>currentDate)\r\n {\r\n vm.showFailure(\"Failed\",\"You can't be select future date\");\r\n return\r\n }\r\n var data = {};\r\n data = {\r\n \"UserId\":vm.UserId,\r\n \"TrainingNo\":\"\",\r\n \"TrainingName\": vm.TrainingName,\r\n \"TrainingDate\": $filter('date')(new Date(vm.TrainingDate),'yyyy-MM-ddThh:mm:ss'),\r\n \"TrainingExpireDate\": \"0001-01-01T00:00:00\",\r\n \"TrainingImage\": vm.TrainingImageFileName,\r\n \"TrainingAttendance\": vm.TrainingAttendanceFileName\r\n } \r\n TrainingAuditModalInstance.close(); \r\n ActiveUserUpdateService.PostMediaFileWithTrainingObject(data, vm.TrainingImageFiles, vm.TrainingAttendanceFiles, token, loggedinUser).then(function(res){\r\n if (res && res.status == 202) { \r\n vm.TrainingAuditFileName=\"\"; \r\n vm.TrainingName=\"\"; \r\n vm.showSuccess(\"Success\", \"Training details Saved successfully.\");\r\n $timeout(function () {\r\n vm.GetUserByRegistrationNo();\r\n \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to add training details. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n /* End Training Audit */\r\n vm.getFileType = function(url){\r\n if(url==null || url==\"\")\r\n {\r\n return \"others\";\r\n }\r\n else{\r\n if(url.indexOf(\".jpg\")>=0 || url.indexOf(\".jpeg\")>=0 ||url.indexOf(\".png\")>=0 || url.indexOf(\".JPG\")>=0 || url.indexOf(\".JPEG\")>=0 || url.indexOf(\".PNG\")>=0){\r\n return \"Image\";\r\n } else if(url.indexOf(\".xls\")>=0 || url.indexOf(\".xlsx\")>=0 ||url.indexOf(\".XLS\")>=0 || url.indexOf(\".XLSX\")>=0){\r\n return \"xls\";\r\n } else if(url.indexOf(\".pdf\")>=0 || url.indexOf(\".PDF\")>=0){\r\n return \"pdf\";\r\n } else if(url.indexOf(\".doc\")>=0 || url.indexOf(\".docx\")>=0 || url.indexOf(\".DOC\")>=0 || url.indexOf(\".DOCX\")>=0){\r\n return \"doc\";\r\n } else {\r\n return \"others\";\r\n }\r\n }\r\n }\r\n \r\n vm.WordDownloadtoView = function (page) { \r\n MainService.GetImageBlob(loggedinUser, token, page).then(function(resp) {\r\n window.location.href = resp.data;\r\n }); \r\n }\r\n\r\n ////Start Criminal Audit\r\n \r\n vm.OpenCriminalAuditModal = function () \r\n { \r\n CriminalAuditModalInstance = $uibModal.open({\r\n templateUrl: 'criminal_audit_model.html',\r\n scope: $scope\r\n }); \r\n }\r\n vm.CriminalAuditCloseModal = function () {\r\n CriminalAuditModalInstance.close();\r\n }\r\n \r\n $scope.attachCriminalAudit = function(files){\r\n \r\n vm.CriminalAuditFileName=\"\";\r\n var file = files.files[0];\r\n vm.CriminalAuditFileName=file.name;\r\n \r\n vm.CriminalAuditFiles = files.files;\r\n var allowedExtensions = /(\\.pdf|\\.doc|\\.docx|\\.xls|\\.xlsx|\\.jpg|\\.jpeg|\\.png|\\.PDF|\\.DOC|\\.DOCX|\\.XLS|\\.XLSX|\\.JPG|\\.JPEG|\\.PNG)$/i; \r\n if(!allowedExtensions.exec(file.name)){ \r\n vm.CriminalAuditFiles=[]; \r\n vm.clear(); \r\n alert('Please upload file having extensions .jpg,.jpeg,.png,.pdf,.doc,.docs,.xls,.xlsx only.');\r\n }\r\n }\r\n \r\n vm.clear = function () {\r\n angular.element(\"input[type='file']\").val(null);\r\n }; \r\n \r\n vm.CriminalAuditSave = function(){\r\n var data = {};\r\n data = {\r\n \"UserId\": vm.UserId,\r\n \"DocumentNo\": vm.DocumentNo,\r\n \"VerificationAuthority\": vm.VerificationAuthority,\r\n \"verificationStatus\": vm.CriminalAuditModel,\r\n \"verificationReport\": vm.CriminalAuditFileName \r\n } \r\n CriminalAuditModalInstance.close(); \r\n ActiveUserUpdateService.AddCriminalVerificationwithAttachment(data, vm.CriminalAuditFiles, token, loggedinUser).then(function(res){\r\n if (res && res.status == 202) { \r\n vm.CriminalAuditFileName=\"\"; \r\n vm.DocumentNo=\"\"; \r\n vm.VerificationAuthority=\"\" \r\n vm.showSuccess(\"Success\", \"Criminal varification details saved successfully.\");\r\n $timeout(function () {\r\n vm.GetUserByRegistrationNo();\r\n \r\n }, 1000);\r\n } else if (res && res.data && res.data.Message) {\r\n vm.showFailure(\"Failed\", res.data.Message);\r\n } else {\r\n vm.showFailure(\"Failed\", \"Unable to add Criminal varification details. Server is not responding correctly.\");\r\n }\r\n },vm.showFailure);\r\n }\r\n \r\n ////End Criminal Audit\r\n \r\n\r\n vm.OpenRejectionPopUp = function(){\r\n\t\tvm.userId = vm.UserId;\r\n vm.RejectModel = $uibModal.open({\r\n templateUrl: 'rejectUser_model.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n\t\t\t}, function () { \r\n\t\t\t});\r\n\t\t }\r\n\r\n vm.RejectUserProfile = function(){\r\n vm.rejectForm.submitted = true;\r\n if (vm.rejectForm.$valid) { \r\n vm.rejectButtonStatus = 'Rejecting';\r\n vm.disableRejectButton = true; \r\n ActiveUserUpdateService.RejectUserProfile(vm.userId,vm.rejectRemark,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(\"Success\", resp.data); \r\n vm.closeRejectionPopup();\r\n $timeout(function () {\r\n vm.GetUserByRegistrationNo(); \r\n }, 2000);\r\n }\r\n else{\r\n vm.showFailure(\"Failed\", resp.data); \r\n vm.closeRejectionPopup();\r\n }\r\n }); \r\n }\r\n }\r\n\r\n vm.closeRejectionPopup = function () {\r\n vm.RejectModel.close();\r\n vm.rejectRemark = \"\";\r\n vm.disableRejectButton = false; \r\n vm.rejectButtonStatus = 'Reject';\r\n }\r\n\r\n vm.VerifyUserProfile = function(){\r\n vm.disableRejectButton = true; \r\n ActiveUserUpdateService.VerifyUserProfile(vm.UserId,loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) { \r\n vm.showSuccess(\"Success\", resp.data); \r\n $timeout(function () {\r\n vm.GetUserByRegistrationNo(); \r\n }, 2000);\r\n }\r\n else{\r\n vm.showFailure(\"Failed\", resp.data); \r\n }\r\n }); \r\n }\r\n\r\n }\r\n})\r\n\r\nfunction CheckRegExOnKeyPress(e) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\-]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\r\nfunction CheckRegExOnKeyPressCertificate(e) {\r\n \r\n var regex = new RegExp(\"^[a-zA-Z0-9\\\\s\\\\.\\\\-\\\\\\\\]+$\");\r\n var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\r\n if (regex.test(str)) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n return false;\r\n};\nangular.module('inspinia').service('ActiveAllUserService', function (FreelancerURL, ApiURL, LocationURL, PublicApiURL, $log, $http) {\r\n\r\n this.GetAllUsers = function (loggedinUser, token) {\r\n\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllUsers'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n })\r\n }\r\n\r\n this.getUserInfo = function (userId, loggedinUser, token) {\r\n var url = FreelancerURL + \"/api/FreeLancerUser/\" + userId + \"/\" + loggedinUser + \"/byUserId\";\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser\r\n }\r\n });\r\n }\r\n// https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/GetFavoriteFreelancersByAccount/U400000000001\r\n this.getPreferredUser = function (userId, token) {\r\n var url = FreelancerURL + \"/api/FreeLancerUser/GetFavoriteFreelancersByAccount/\" + userId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':userId\r\n }\r\n });\r\n }\r\n this.getAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {\r\n headers: {'Token': token, 'UserId':loggedinUser}\r\n });\r\n }\r\n // https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/Block/U400000000001/F00000000664/true\r\n this.BlockedSingleUser = function(loggedinUser, userId, status, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Block/' + loggedinUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n }\r\n\r\n//https://perf.mymobiforce.com/freelancerapi/api/FreeLancerUser/Favorite/U400000000001/F00000000657/true\r\n \r\nthis.PreferredSingleUser = function(loggedinUser, userId, status, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Favorite/' + loggedinUser + '/'+ userId +'/'+status;\r\n return $http.put(url, null, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n}\r\n\r\n\r\nthis.getAllState = function (loggedinUser) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllStates';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n}\r\n//http://192.168.0.80:92/LocationAPI/api/Location/saurabhgupta3371%40gmail.com/UTTAR%20PRADESH/GetCitiesByState\r\n\r\nthis.getCityByState = function (loggedinUser, state) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/' + state + '/GetCitiesByState';\r\n return $http.get(url, {\r\n params: {}\r\n });\r\n}\r\n\r\nthis.getAllSkills = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {headers: {'Token': token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 200 && res.data){\r\n success(res.data);\r\n }\r\n }, function(err){\r\n failure(\"Failed\", \"Unable to get skill list, server error.\")\r\n })\r\n}\r\nthis.GetAllCertificate = function(loggedinUser, token, success, failure){\r\n // var url = ApiURL + '/api/Cetrificate/GetAll?reqUserId=' + loggedinUser;\r\n var url = ApiURL + '/api/Cetrificate/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url,{headers:{'Token':token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 201 && res.data){\r\n success(res.data);\r\n }\r\n },function(err){\r\n failure(\"Failed\",\"Unable to get certificate list, server error.\");\r\n })\r\n}\r\n\r\nthis.GetAllToolSets = function(loggedinUser, token, success, failure){\r\n var url = ApiURL + '/api/Tool/GetAllMaster?reqUserId=' + loggedinUser;\r\n return $http.get(url,{headers:{'Token':token, 'UserId':loggedinUser}}).then(function(res){\r\n if(res && res.status == 201 && res.data){\r\n success(res.data);\r\n }\r\n },function(err){\r\n failure(\"Failed\",\"Unable to get certificate list, server error.\");\r\n })\r\n}\r\n \r\n//https://perf.mymobiforce.com/freelancerapi/api/FreelancerUser/FilterFrUsers?reqUserid=U400000000001\r\n//https://product.mymobiforce.com/freelancerapi/api/FreelancerUser/GetActiveUsersByFiltersWithDynaPage\r\n\r\nthis.Filter = function ( loggedinUser, token,userFormData) {\r\n var url = FreelancerURL + \"/api/FreelancerUser/GetActiveUsersByFiltersWithDynaPage\";\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId':loggedinUser }\r\n });\r\n}\r\n})\r\n\nangular.module('inspinia').controller('ActiveAllUserController', function(toaster, UIURL, ActiveAllUserService, \r\n\t$state ,$localStorage, $filter ,$compile, $scope, DTOptionsBuilder, TeamFormCreationService, DTColumnDefBuilder, DTColumnBuilder, PublicApiURL, $log, \r\n\tHelpDeskCustomerViewService,ReferService, $stateParams, $uibModal, JobTicketViewService,$rootScope, NgMap, $q, $timeout, ImageUrl) {\r\n\tvm = this;\r\n\tvm.showAdvanceFilter = false;\r\n\tvm.CustomDateformat = $localStorage.CustomDateformat;\r\n\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar AccountID = $localStorage.accountConfig.AccountId;\r\n\tvar accountcreationDate = $localStorage.accountConfig.AccountCreationDate;\r\n\tvm.loggedInUser_Role=$localStorage.loggedInUser_Role;\r\n\tvm.Technicianstartingdate = '2017-01-01';\r\n\tvm.UserType=$stateParams.type?$stateParams.type:\"Technician\"; //$stateParams.type;\r\n\tvar token = $localStorage.token;\r\n\tvm.dtInstanceUser={};\r\n\tvm.dtInstancePreferredUserTable={};\r\n\t// vm.dtInstancePreferredUser={};\r\n\tvm.adddaterange=false;\r\n\tvm.Bluserlist=[];\r\n\tvm.showtechnician=true;\r\n\tvm.technicianlistview=true;\r\n\tvm.selectedInvoice = '';\r\n\tvm.users=[];\r\n\tvm.searchText = '';\r\n\tvm.PermanentState='';\r\n\tvm.UserName='';\r\n\tvm.UserId = '';\r\n\tvm.ContactNumber='';\r\n\tvm.FreelancerRoleFilter='';\r\n\tvm.StateList=[];\r\n\tvm.PermanentCity='';\r\n\tvm.CityList=[];\r\n\tvm.addSkill='';\r\n\tvm.AllCertificateSets=[];\r\n\tvm.addTraningCertificateName='';\r\n\tvm.Asset_Tools='';\r\n\tvm.Asset_Bike=false;\r\n\tvm.Asset_Mobile=false;\r\n\tvm.Asset_Laptop=false;\r\n\tvm.Student=false;\r\n\tvm.Intern=false;\r\n\tvm.Adharcard=false;\r\n\tvm.IsAthorizedServicePartner = false;\r\n\tvm.Pancard=false;\r\n\tvm.pincode=[];\r\n\tvm.AlredayPreferred = [];\r\n\tvm.pageindexCount=0;\r\n\tvm.usersLength=0;\r\n\tvm.techpageindexCount=0;\r\n\tvm.selectedFreelancerUserRole=\"\";\r\n\tvm.SortType = 'desc';\r\n vm.SortField = 'CreatedOn';\r\n\t// var startDate = moment(vm.Technicianstartingdate).format(\"YYYY-MM-DD\");\r\n\tvar startDate = moment().subtract(7, 'days').format(\"YYYY-MM-DD\");\r\n\tvar endDate = moment();\r\n\t$scope.dates = { startDate: startDate, endDate:endDate};\r\n\t$scope.ranges = {\r\n\t\t'Today': [moment(), moment()],\r\n // 'Yesterday': [moment().subtract(1, 'days'), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n 'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n 'This month': [moment().startOf('month'), moment().endOf('month')],\r\n 'Till now': [moment(vm.Technicianstartingdate), moment(endDate)],\r\n\t// 'Till now': [startDate ='', startDate ='']\r\n\t};\r\n\r\n$scope.dateRangeChange = function (ev, picker) {\r\n\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n};\r\n$scope.dateRangeChange = function (ev, picker) {\r\n\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n};\r\n\r\nvm.City='';\r\nvm.Pincode='';\r\nvm.Experience='';\r\nvm.Ratings='';\r\nvm.Assets_Tools='';\r\nvm.Jobscount='';\r\nvm.FilterAdhar='';\r\nvm.FilterPancard='';\r\n$localStorage.filteraddskill ='';\r\n$localStorage.filterPermanentstate ='';\r\nvm.PreferredUsers=[];\r\nif (!loggedinUser) {\r\n\t$state.go('Login', {\r\n\t\treload: true\r\n\t});\r\n} else {\r\n\r\n\tif($localStorage.TechnicianDetailsView =='TechnicianDetails'){\r\n\t\tvm.currentPage = $localStorage.PageIndex?$localStorage.PageIndex:1;\r\n\t}\r\n\telse{\r\n\t\tvm.currentPage = 1;\r\n\t}\r\n\r\n\tvm.currentPage = $localStorage.PageIndex?$localStorage.PageIndex:1;\r\n\tvm.pageSize = 20;\r\n\r\n\t$scope.totalUsers = 0;\r\n\t$scope.usersPerPage = 20; // this should match however many results your API puts on one page\r\n\t$scope.pagination = {\r\n\t\tcurrent: 1\r\n\t};\r\n\r\n\t$scope.pagination.current = $localStorage.PageIndex?$localStorage.PageIndex:1;\r\n\t$scope.totalTableUsers = 0;\r\n\t$scope.usersTablePerPage = 20; // this should match however many results your API puts on one page\r\n\t$scope.UserTablepagination = {\r\n\t\tcurrent: 1\r\n\t};\r\n\r\n\t$scope.UserTablepagination.current = $localStorage.PageIndex?$localStorage.PageIndex:1;\r\n\r\n\t$scope.UserTablepageChanged = function(newPage) {\r\n\t\t\r\n\t\tvm.currentPage = newPage;\r\n\r\n\t\tvm.applyfilter(newPage,'');\r\n //vm.Allapplyfilter(newPage);\r\n };\r\n\r\n\r\n $scope.PreferredUserTablepageChanged = function(newPage) {\r\n\r\n\t\t// vm.GetAllUsers(newPage);\r\n\t\tvm.applyfilter(newPage);\r\n\r\n\t};\r\n\tvm.availableSearchParams = [\r\n\t{ key: \"TemplateName\", name: \"TemplateName\", placeholder: \"TemplateName...\" }\r\n // { key: \"city\", name: \"City\", placeholder: \"City...\" },\r\n // { key: \"country\", name: \"Country\", placeholder: \"Country...\" },\r\n // { key: \"emailAddress\", name: \"E-Mail\", placeholder: \"E-Mail...\", allowMultiple: true },\r\n // { key: \"job\", name: \"Job\", placeholder: \"Job...\" }\r\n ];\r\n\r\n vm.getPicUrl = function (profilePicName) {\r\n \treturn profilePicName ? ImageUrl + \"/\" + profilePicName : null;\r\n }\r\n\r\n\r\n vm.selectState = function (state) {\r\n \tvar Getstate = state;\r\n \tTeamFormCreationService.getCities(loggedinUser,Getstate).then(function (resp) {\r\n \t\tvm.cityList = resp.data.values;\r\n \t\tif (!resp.data) {\r\n \t\t\tvar cityArray = [];\r\n \t\t\tcityArray.push({\r\n \t\t\t\tcity: state\r\n \t\t\t});\r\n \t\t\tvm.cityList = cityArray;\r\n \t\t}\r\n \t}, function () {\r\n\r\n \t});\r\n }\r\n\r\n\t if(vm.loggedInUserRole == \"SuperAdministrator\")\r\n\t {\r\n\t\tvm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Vendor Team\"];\r\n\t }\r\n\t else\r\n\t {\r\n\t\tvm.UserTypeList = [\"Freelancer\", \"Freelancer Vendor\", \"Vendor Team\"];\r\n\t }\r\n\r\n vm.FreelancerUserRoles = [\r\n {\r\n \tname: 'Freelancer Technician',\r\n \tvalue: 'Technician'\r\n }, \r\n {\r\n \tname: 'Freelancer Vendor',\r\n \tvalue: 'Vendor'\r\n }];\r\n\r\n\r\n\r\n vm.userlayout = vm.selectedFreelancerUserRole;\r\n vm.Checkuserrole=\"\";\r\n vm.userroletype = function (userrole) {\r\n \tif(vm.globalsearch == 'List'){\r\n\r\n \t}else if(vm.globalsearch == 'List1'){\r\n\r\n \t}else{\r\n \t\tvm.globalsearch = '';\r\n \t}\r\n\r\n \tif(userrole == 'Technician'){\r\n \t\tvm.Checkuserrole=\"Technician\";\r\n \t\tvm.showtechnician=true;\r\n \t\tvm.showvendor = false;\t\r\n \t\tvm.UserType = \"Technician\";\r\n \t}\r\n\t\t else if(userrole == 'Vendor'){\r\n \t\tvm.Checkuserrole=\"Technician\";\r\n \t\tvm.showtechnician=false;\r\n \t\tvm.showvendor=true;\r\n \t\tif($localStorage.VendorDetailsView !='VendorDetails'){\r\n \t\t\tvm.AllVendorfilter(null);\r\n \t\t}\r\n \t\tvm.UserType = \"Vendor\";\r\n \t}\r\n\r\n }\r\n\r\n if(vm.UserType){\r\n \tvm.userroletype(vm.UserType);\r\n }\r\n// Freelancer Technician Layout\r\nvm.Technicianviewtypes = [\r\n{\r\n\tname: 'List View',\r\n\tvalue: 'List'\r\n},\r\n{\r\n\tname: 'Card View',\r\n\tvalue: 'Card'\r\n},\r\n\r\n{\r\n\tname: 'Map View',\r\n\tvalue: 'Map'\r\n}\r\n\r\n];\r\n\r\nvm.technicianuserviewtype = vm.Technicianviewtypes[0].value;\r\nvm.userviewlayout = vm.technicianuserviewtype;\r\nvm.globalsearch='';\r\nvm.userviewtype = function (userview) {\r\n\tvm.globalsearch=userview;\r\n\tif(userview == 'Card'){\r\n\t\tif(checkTalentandPreferred=='Preferred')\r\n\t\t{\r\n\t\t\tvm.PreferredUser = true;\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.preferredtechnicianmapview=false;\t\r\n\t\t}\r\n\t\telse if(checkTalentandPreferred=='TalentPool')\r\n\t\t{\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.techniciancardview=true;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.preferredtechnicianmapview=false;\r\n\r\n\t\t}\r\n\t}else if(userview == 'List'){\r\n\t\tif(checkTalentandPreferred=='Preferred')\r\n\t\t{\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.PreferredUserlist=true;\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.preferredtechnicianmapview=false;\t\r\n\t\t}\r\n\t\telse if(checkTalentandPreferred=='TalentPool')\r\n\t\t{\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.technicianlistview = true;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.preferredtechnicianmapview=false;\t\r\n\t\t}\r\n\t}\r\n\telse if(userview == 'Map'){\r\n\t\tif(checkTalentandPreferred=='Preferred')\r\n\t\t{\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.preferredtechnicianmapview=true;\t\r\n\t\t}\r\n\t\telse if(checkTalentandPreferred=='TalentPool')\r\n\t\t{\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=true;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.preferredtechnicianmapview=false;\t\r\n\t\t}\r\n\t}\r\n}\r\n\r\nvar checkTalentandPreferred=\"TalentPool\";\r\nvm.preferredtechnicianview = function (PreferredUser,PreferredTalentPool) {\r\n\tif(PreferredUser=='Preferred'){\r\n\t\tcheckTalentandPreferred='Preferred';\r\n\t\tvm.techniciancardview=false;\r\n\t\tvm.PreferredUser = true;\r\n\t\tvm.technicianlistview = false;\r\n\t\tvm.technicianmapview=false;\r\n\t\tvm.PreferredUserlist=false;\r\n\t\tvm.preferredtechnicianmapview=false;\r\n\r\n\t\tif(PreferredTalentPool=='Card'){\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.PreferredUser = true;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.preferredtechnicianmapview=false;\r\n\t\t}\r\n\t\telse if(PreferredTalentPool=='List'){\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.PreferredUserlist=true;\r\n\t\t\tvm.preferredtechnicianmapview=false;\r\n\t\t}\r\n\t\telse if(PreferredTalentPool=='Map'){\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.preferredtechnicianmapview=true;\r\n\t\t\t$(\"#Map\").hide();\r\n\t\t\t$(\"#Map2\").show();\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\nvm.allTechnicianview= function(TalentPool,AllTalentPool){\r\n\tif(TalentPool=='TalentPool'){\r\n\t\tcheckTalentandPreferred='TalentPool';\r\n\t\tvm.techniciancardview=true;\r\n\t\tvm.PreferredUser = false;\r\n\t\tvm.technicianlistview = false;\r\n\t\tvm.technicianmapview=false;\r\n\t\tvm.PreferredUserlist=false;\r\n\t\tvm.preferredtechnicianmapview=false;\r\n\r\n\t\tif(AllTalentPool=='Card'){\r\n\t\t\tvm.techniciancardview=true;\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.preferredtechnicianmapview=false;\r\n\t\t}\r\n\t\telse if(AllTalentPool=='List'){\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.technicianlistview = true;\r\n\t\t\tvm.technicianmapview=false;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.preferredtechnicianmapview=false;\r\n\t\t}\r\n\t\telse if(AllTalentPool=='Map'){\r\n\t\t\tvm.techniciancardview=false;\r\n\t\t\tvm.PreferredUser = false;\r\n\t\t\tvm.technicianlistview = false;\r\n\t\t\tvm.technicianmapview=true;\r\n\t\t\tvm.PreferredUserlist=false;\r\n\t\t\tvm.PreferredUsermapview=false;\r\n\t\t\tvm.preferredtechnicianmapview=false;\r\n\t\t\t$(\"#Map\").show();\r\n\t\t\t$(\"#Map2\").hide();\r\n\t\t}\r\n\t}\r\n}\r\n\r\nif($localStorage.selectedFreelancerUserRole){\r\n\tvm.selectedFreelancerUserRole=$localStorage.selectedFreelancerUserRole;\r\n\tvm.userroletype(vm.selectedFreelancerUserRole);\r\n}\r\nelse{\r\n\tvm.selectedFreelancerUserRole = vm.FreelancerUserRoles[0].value;\r\n}\r\n\r\n$scope.isNavCollapsed = true;\r\n$scope.isCollapsed = true;\r\n$scope.isCollapsedHorizontal = false;\r\nvm.getPreferredUser = function(){\r\n\tActiveAllUserService.getPreferredUser(loggedinUser,token).then(function(resp){\r\n\t\tvm.PreferredUsers = resp.data;\r\n\t});\r\n}\r\n\r\n\tvm.Dashboard = function (user) {\r\n\t\t$localStorage.PageIndex = vm.currentPage;\r\n\t\t$localStorage.TechnicianDetailsView ='TechnicianDetails';\r\n\t\tif(vm.technicianuserviewtype =='List'){\r\n\t\t\t$localStorage.Technicianviewtype ='List'\r\n\t\t}\r\n\t\telse{\r\n\t\t\t$localStorage.Technicianviewtype ='Card'\r\n\r\n\t\t}\r\n\t\t// $localStorage.Technicianview ='List'\r\n\t\t$localStorage.FilterData={};\r\n\t\tvar temp = [];\r\n\t\tfor(var i=0;i0)\r\n\t\t\t {\r\n\t\t\t \tfor(var i=0; i 0){\r\n\t\t\t \t\t\t\tfor(var j=0;j0)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tfor(var i=0; i 0){\r\n\t\t\t\t\t\t\t\t\t\tfor(var j=0;j 0){\r\n vm.buildTable(resp.data);\r\n }\r\n });\r\n } \r\n vm.GetAllAccountsRecharge();\r\n\r\n if(vm.CurrencySetting == 'Credits'){\r\n var RechargeAmount = 'Recharge Amount(Credits)';\r\n var gst = 'GST(Credits)';\r\n var ProcessingFeeAmount = 'Transaction Processing(Credits)';\r\n var TotalAmount = 'Total Amount(Credits)';\r\n }else{\r\n var RechargeAmount = 'Recharge Amount(INR)';\r\n var gst = 'GST(INR)';\r\n var ProcessingFeeAmount = 'Transaction Processing(INR)';\r\n var TotalAmount = 'Total Amount(INR)';\r\n }\r\n // vm.ConverttoDecimal = function(value) {\r\n // return (parseFloat(value).toFixed(2))\r\n // }\r\n \r\n vm.buildTable = function (data) {\r\n vm.dtColumns = [ \r\n DTColumnBuilder.newColumn('RechargeAmount').withTitle(RechargeAmount).renderWith(function (data, type, full, meta) { \r\n return (parseFloat(full.RechargeAmount).toFixed(2));\r\n }),\r\n DTColumnBuilder.newColumn('GST').withTitle(gst),\r\n DTColumnBuilder.newColumn('ProcessingFeeAmount').withTitle(ProcessingFeeAmount), \r\n DTColumnBuilder.newColumn('TotalAmount').withTitle(TotalAmount),\r\n DTColumnBuilder.newColumn('CreatedOn').withTitle('Recharge On').withOption('type','date').renderWith(function (data, type, full, meta) { \r\n if ( type === 'display' || type === 'filter' ) {\r\n return moment(full.CreatedOn).format('DD/MMM/YYYY hh:mm:ss A');\r\n }\r\n return data;\r\n }),\r\n DTColumnBuilder.newColumn('PaymentId').withTitle('Payment Id'),\r\n DTColumnBuilder.newColumn('PaymentType').withTitle('Payment Type'),\r\n DTColumnBuilder.newColumn('RechargeBy').withTitle('User Id'),\r\n DTColumnBuilder.newColumn('Description').withTitle('Description')\r\n ];\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function() { \r\n var defer = $q.defer();\r\n defer.resolve(data);\r\n return defer.promise; \r\n }).withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('order', [4]); \r\n } \r\n }\r\n });\nangular.module('inspinia').service('AccountService',function(FreelancerURL , $http, ApiURL){\r\n \r\n //http://192.168.0.80:92/FreelancerAPI/api/FreeLancerUser/srachit46%40gmail.com/srachit46%40gmail.com/byReportingToWithJobCount\r\n this.GetAllFreelancers = function(loggedinUser, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/' + loggedinUser + '/byReportingToWithJobCount'\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser}\r\n })\r\n }\r\n\r\n //http://localhost:50035/api/FreeLancerUser/Administrator/srachit46%40gmail.com/Account\r\n this.GetAllAccounts = function(loggedinUser, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/Administrator/' + loggedinUser + '/Account'\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId': loggedinUser}\r\n })\r\n }\r\n //http://localhost:50035/api/FreeLancerUser/jitendra.gangwar%40innotiontech.com/srachit46%40gmail.com/byAccountUserId\r\n this.GetUsersByUserId = function(userId,loggedinUser, token){\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + userId + '/' + loggedinUser + '/byAccountUserId'\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId': loggedinUser}\r\n })\r\n }\r\n\r\n //http://localhost:50035/api/FreeLancerUser/saurabhgupta3371%40gmail.com/srachit46%40gmail.com/ActivateByAccountId\r\n // this.UpdateUserList = function(accountId,loggedinUser, token){\r\n // var url = FreelancerURL + '/api/FreeLancerUser/' + accountId + '/' + loggedinUser + '/ActivateByAccountId'\r\n // return $http.put(url, {}, {\r\n // headers:{'Content-Type': 'application/json','Token':token, 'UserId': loggedinUser}\r\n // })\r\n // } \r\n this.UpdateUserList = function(accountId,loggedinUser, token,bActive){\r\n var url = ApiURL + '/api/account/ActivateByAccountId?AccountId=' + accountId + '&bActivate=' + bActive;\r\n return $http.put(url, {}, {\r\n headers:{'Content-Type': 'application/json','Token':token, 'UserId': loggedinUser}\r\n })\r\n } \r\n //http://192.168.0.80:92/FreelancerAPI/api/PaymentAccount/GetAvailableBalanceByreqUserId?reqUserId=kanika.bansal%40innotiontech.com\r\n\r\n this.GetAccountBalance = function(userId,loggedinUser, token){\r\n var url = FreelancerURL + '/api/PaymentAccount/GetAvailableBalanceByreqUserId?reqUserId=' + userId;\r\n return $http.get(url,{\r\n headers:{'Content-Type': 'application/json','Token':token,'UserId': loggedinUser}\r\n })\r\n }\r\n\r\n //http://192.168.0.80:92/FreelancerAPI/api/PaymentAccount?reqUserId=sadasd\r\n this.UpdateRechargeAccount = function(loggedinUser, rechargedata,token){\r\n var url = FreelancerURL + '/api/PaymentAccount?reqUserId=' + loggedinUser;\r\n return $http.post(url, rechargedata, \r\n { \r\n headers: { 'Content-Type': 'application/json','Token':token, 'UserId': loggedinUser} \r\n })\r\n }\r\n\r\n //http://192.168.0.80/CoreAPI/api/account/asdasdasdassdasd/updateaccount\r\n this.UpdateAccountConfiguration = function(loggedinUser, data, token){\r\n var url = ApiURL + '/api/account/'+loggedinUser+'/updateaccount'\r\n return $http.put(url, data, \r\n { \r\n headers: { 'Content-Type': 'application/json','Token':token, 'UserId': loggedinUser} \r\n })\r\n }\r\n\r\n // //http://192.168.0.80/CoreAPI/api/account/innotiontechnologies%40gmail.com/sandip.chaturvedi%40innotiontech.com/getaccountbyid\r\n this.GetAccountConfigInfo = function(loggedinUser, accountId, token){\r\n var url = ApiURL + '/api/account/'+loggedinUser+'/' + accountId + '/getaccountbyid';\r\n return $http.get(url, { \r\n headers: { 'Content-Type': 'application/json','Token':token, 'UserId': loggedinUser} \r\n })\r\n }\r\n\r\n //http://localhost:50144/api/PaymentAccount/innotiontechnologies%40gmail.com/sandip.chaturvedi%40innotiontech.com/getrechargehistorybyaccountid?StartDate=&EndDate=\r\n this.GetAccountRechargeHistory = function(loggedinUser, accountId, token){\r\n var url = FreelancerURL + '/api/PaymentAccount/'+loggedinUser+'/' + accountId + '/getrechargehistorybyaccountid?StartDate=&EndDate=';\r\n return $http.get(url, { \r\n headers: { 'Content-Type': 'application/json','Token':token, 'UserId': loggedinUser} \r\n })\r\n }\r\n\r\n });\nangular.module('inspinia').controller('AccountController', function(teamCardService, MainService, $localStorage, $stateParams, $log, $uibModal,TeamProfileService,AccountService, ProjectCreationService,$scope, $state,registerService,toaster,$timeout,DTColumnDefBuilder, DTOptionsBuilder){\r\n var vm = this;\r\n var userId = $stateParams.userId;\r\n var token = $localStorage.token;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var loggedinUserRole = $localStorage.loggedInUser_Role;\r\n if (!loggedinUser) {\r\n $state.go('Login',{\r\n reload:true\r\n });\r\n }else{\r\n vm.users = [];\r\n vm.FilterSwitch = false;\r\n vm.client = 1;\r\n vm.tab = 1;\r\n vm.skill = '';\r\n vm.workArea = '';\r\n var skillsArray;\r\n var circleArray;\r\n var ProjectModal={};\r\n var userIndex = 0;\r\n vm.filteredProperties={};\r\n vm.userInfo = '';\r\n var userInfo = '';\r\n vm.FirstName ='';\r\n vm.LastName = '';\r\n vm.Email = '';\r\n vm.Phone = '';\r\n vm.Password = '';\r\n vm.ConfirmPassword = '';\r\n vm.CompanyName = '';\r\n vm.AvailableBalance = '';\r\n vm.rechargeAmount = '';\r\n vm.description = '';\r\n vm.Vertical ='';\r\n vm.pocData = '';\r\n var items = '';\r\n vm.GST = 18;\r\n vm.BaseAmount = '';\r\n vm.FreelancerPercentage='',\r\n vm.FixedTeamPrice = '',\r\n vm.CreditLimit='',\r\n vm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n vm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n vm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.profileImg='';\r\n\r\n \r\n vm.imageServices = function(img){\r\n MainService.GetImageBlob(loggedinUser, token, img).then(function(resp) {\r\n vm.profileImg = resp.data;\r\n console.log(vm.profileImg);\r\n }, function() {\r\n vm.profileImg = 'assets/images/patterns/a4.jpg';\r\n });\r\n } \r\n\r\n vm.imageServices('test2.png'); \r\n\r\n vm.exportData = function(){\r\n var blob = new Blob([document.getElementById('tab-1').innerHTML],{\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8\"\r\n });\r\n saveAs(blob,\"Report.xls\");\r\n };\r\n vm.updateBaseAmount = function(){\r\n var amount = ((parseInt(vm.rechargeAmount) * 100) / ( 100 + parseInt(vm.GST)));\r\n vm.BaseAmount = amount.toFixed(2);\r\n return vm.BaseAmount;\r\n }\r\n\r\n vm.GetAccountBalance = function(userId){\r\n AccountService.GetAccountBalance(userId,loggedinUser, token).then(function(resp){\r\n vm.AvailableBalance = resp.data;\r\n },function(error){\r\n //$log.log(\"error occured in GetAccountBalance\");\r\n })\r\n }\r\n\r\n vm.VerticalList = [\r\n {\r\n 'Vertical':'IMS'\r\n },\r\n {\r\n Vertical:'Telecom'\r\n },\r\n {\r\n Vertical:'White Goods'\r\n },\r\n {\r\n Vertical:'Spectro Labs'\r\n }\r\n ]\r\n \r\n\r\n vm.getAllUser = function () {\r\n AccountService.GetAllAccounts(loggedinUser, token).then(function(resp){\r\n vm.users = resp.data;\r\n if(vm.users.length == 0) {\r\n vm.client = 1;\r\n } else {\r\n vm.client = 3; \r\n vm.userInfo = vm.users[userIndex];\r\n if (vm.userInfo.UserStatus == 'Active') {\r\n vm.isActive = true;\r\n }else{\r\n vm.isActive = false;\r\n }\r\n vm.GetAccountBalance(vm.userInfo.UserId);\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n }) \r\n\r\n }\r\n \r\n \r\n\r\n vm.getUserInfo = function (userId,loggedinUser) {\r\n AccountService.GetUsersByUserId(userId,loggedinUser, token).then(function(resp)\r\n {\r\n vm.userInfo = resp.data;\r\n if (vm.userInfo.UserStatus == 'Active') {\r\n vm.isActive = true;\r\n }else{\r\n vm.isActive = false;\r\n }\r\n items = {\r\n \"AccountName\":userInfo.CompanyName,\r\n \"AccountId\":userInfo.PersonalEmail\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.getAllSkills = function(){\r\n TeamProfileService.getAllSkills().then(function(resp) {\r\n vm.skills = resp.data;\r\n for (var index = 0; index < vm.skills.length; index++) {\r\n skillsArray.push({\r\n skill: vm.skills.SkillName\r\n });\r\n }\r\n }, function() {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.getAllCircles = function(loggedinUser){\r\n ProjectCreationService.GetAllCircles(loggedinUser).then(function(resp) {\r\n vm.circles = resp.data;\r\n for (var index = 0; index < vm.circles.length; index++) {\r\n circleArray.push({\r\n workArea: vm.circles.circle\r\n });\r\n }\r\n }, function() {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.AddTeamMember = function () {\r\n $state.go('index.TeamCreate', {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileView = function (userid) {\r\n $state.go('index.TeamProfile', {\r\n userId: userid\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileData = function (userId) {\r\n vm.getUserInfo(userId,loggedinUser);\r\n vm.GetAccountBalance(userId);\r\n vm.client = 3;\r\n }\r\n\r\n vm.filtermodal = function() {\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'Filter.html',\r\n backdrop: 'static',\r\n windowClass: \"animated pulse\",\r\n scope: $scope\r\n }); \r\n}\r\nvm.CreateAccount = function() {\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'signUp.html',\r\n backdrop: 'static',\r\n scope: $scope\r\n}); \r\n}\r\n\r\nvm.openRecharge = function() {\r\n vm.BaseAmount = '';\r\n vm.rechargeAmount='';\r\n vm.description='';\r\n ProjectModal = $uibModal.open({\r\n templateUrl: 'recharge.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrl,\r\n resolve : {\r\n items : function(){\r\n return {\r\n AccountName:vm.CompanyName,\r\n AccountId:vm.Email\r\n };\r\n }\r\n },\r\n}); \r\n}\r\n\r\nvar ModalInstanceCtrl = function($scope, $rootScope, $uibModalInstance, items) {\r\n $scope.items = items;\r\n vm.recharge = function(){\r\n if (vm.recharge_form.$valid) {\r\n // console.log(\"pass\");\r\n var rechargedata = {\r\n AccountName: vm.userInfo.CompanyName,\r\n AccountId: vm.userInfo.AccountId,\r\n RechargeAmount: vm.BaseAmount,\r\n RechargeBy: loggedinUser,\r\n Description: vm.description,\r\n GST: (vm.rechargeAmount - vm.BaseAmount).toFixed(2),\r\n TotalAmount: vm.rechargeAmount\r\n } \r\n if (angular.isDefined(rechargedata)) {\r\n AccountService.UpdateRechargeAccount(loggedinUser,rechargedata, token)\r\n .success(function (data,status) {\r\n if(status == 201){\r\n toaster.pop({\r\n type: 'success',\r\n title: data.Message,\r\n showCloseButton: true,\r\n body: \"Recharge Successfully\",\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000\r\n });\r\n vm.getAllUser(loggedinUser);\r\n }\r\n })\r\n }\r\n } else {\r\n vm.recharge_form.submitted = true;\r\n return;\r\n }\r\n vm.CloseModal();\r\n }\r\n}\r\n\r\n\r\n //Account Configuration\r\n vm.openConfiguration = function() {\r\n vm.FreelancerPercentage = '';\r\n vm.FixedTeamPrice = '';\r\n vm.CreditLimit = '';\r\n AccountModal = $uibModal.open({\r\n templateUrl: 'AccountSetting.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlAccount,\r\n resolve : {\r\n items : function(){\r\n return {\r\n AccountName:vm.CompanyName,\r\n AccountId:vm.Email\r\n };\r\n }\r\n },\r\n}); \r\n}\r\n\r\nvar ModalInstanceCtrlAccount = function($scope, $rootScope, $uibModalInstance, items) {\r\n $scope.items = items;\r\n AccountService.GetAccountConfigInfo(loggedinUser, vm.userInfo.PersonalEmail, token).then(function(resp){\r\n\r\n if (resp.data) {\r\n vm.accountConfigData = resp.data;\r\n vm.FixedTeamPrice = vm.accountConfigData.FixedTeamPrice.toString();\r\n vm.FreelancerPercentage = vm.accountConfigData.FreelancerPercentage.toString();\r\n vm.CreditLimit = vm.accountConfigData.CreditLimit.toString();\r\n }\r\n });\r\n vm.updateAccountConfig = function(){\r\n if (vm.accountConfig_form.$valid) {\r\n // console.log(\"pass\");\r\n var data = { \r\n AccountId: vm.userInfo.AccountId,\r\n AccountName: vm.userInfo.CompanyName,\r\n AvailableBalance: vm.AvailableBalance,\r\n FixedTeamPrice: parseInt(vm.FixedTeamPrice),\r\n FreelancerPercentage: parseInt(vm.FreelancerPercentage),\r\n CreditLimit:parseInt(vm.CreditLimit)\r\n \r\n } \r\n if (angular.isDefined(data)) {\r\n AccountService.UpdateAccountConfiguration(loggedinUser,data, token)\r\n .success(function (data,status) {\r\n if(status == 202){\r\n vm.toaster_success.body = \"Account Updated Successfully\";\r\n toaster.pop(vm.toaster_success);\r\n vm.getAllUser(loggedinUser);\r\n }else{\r\n vm.toaster_fail.body =\"Something went wrong, please try again\";\r\n toaster.pop(vm.toaster_fail);\r\n }\r\n })\r\n }\r\n } else {\r\n vm.accountConfig_form.submitted = true;\r\n return;\r\n }\r\n vm.CloseAccountModal();\r\n }\r\n}\r\n\r\nvm.CloseAccountModal = function () {\r\n AccountModal.close();\r\n }\r\n\r\n\r\n\r\n ///Recharge History\r\n vm.RechargeHistory = function() {\r\n RechargeModal = $uibModal.open({\r\n templateUrl: 'rechargeHistory.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlHistory,\r\n resolve : {\r\n items : function(){\r\n return {\r\n AccountName:vm.CompanyName,\r\n AccountId:vm.Email\r\n };\r\n }\r\n },\r\n size:'lg' \r\n\r\n\r\n}); \r\n}\r\n\r\nvar ModalInstanceCtrlHistory = function($scope, $rootScope, $uibModalInstance, items) { \r\nAccountService.GetAccountRechargeHistory(loggedinUser, vm.userInfo.AccountId, token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.AccountHistoryData = resp.data;\r\n }\r\n}) \r\n vm.CloseRechargeModal();\r\n }\r\n\r\n\r\nvm.CloseRechargeModal = function () {\r\n RechargeModal.close();\r\n }\r\n\r\n /// \r\n /// Registering the New User\r\n /// \r\n vm.saveUser = function(){\r\n if (vm.signup_form.$valid) {\r\n // console.log(\"pass\");\r\n var registerdata = {\r\n Request_Code:0,\r\n FirstName: vm.FirstName,\r\n CompanyName: vm.CompanyName,\r\n EmailId: vm.Email,\r\n PhoneNumber: vm.Phone,\r\n Password: vm.Password,\r\n LastName:vm.LastName,\r\n Vertical:vm.Vertical\r\n }\r\n\r\n var json = angular.toJson(registerdata);\r\n if (angular.isDefined(json)) {\r\n registerService.registerUser(json, token)\r\n .success(function (data,status) {\r\n if(status == 201){\r\n toaster.pop({\r\n type: 'success',\r\n title: data.Message,\r\n showCloseButton: true,\r\n body: \"User Created Successfully\",\r\n \"showDuration\": \"400\",\r\n \"hideDuration\": \"1000\",\r\n \"tapToDismiss\": true,\r\n \"timeout\": 2000\r\n });\r\n \r\n } else {\r\n vm.showFailure(\"Failed\", data.Message);\r\n }\r\n vm.getAllUser();\r\n })\r\n}\r\n} else {\r\n vm.signup_form.submitted = true;\r\n return;\r\n }\r\n clearFormFields();\r\n vm.CloseModal();\r\n}\r\n\r\nfunction clearFormFields(){\r\n vm.FirstName = '';\r\n vm.LastName = '';\r\n vm.Email = '';\r\n vm.Phone = '';\r\n vm.Password = '';\r\n vm.ConfirmPassword = '';\r\n vm.CompanyName = '';\r\n}\r\n\r\n vm.CloseModal = function () {\r\n ProjectModal.close();\r\n }\r\n\r\n \r\n\r\n vm.editTeamMember = function (userName) {\r\n $state.go('index.TeamEdit', {\r\n userId: userName\r\n });\r\n }\r\n // vm.Updateuser = function(accountId){\r\n // AccountService.UpdateUserList(accountId,loggedinUser, token).then(function(resp){\r\n // if (resp.status == 202) {\r\n // vm.toaster_success.body = \"User Updated Successfully\";\r\n // toaster.pop(vm.toaster_success);\r\n // // vm.getAllUser();\r\n // $timeout(function(){\r\n // vm.getAllUser();\r\n // },3000);\r\n // }else{\r\n // vm.toaster_fail.body = \"Something went wrong, please try again\";\r\n // toaster.pop(vm.toaster_fail);\r\n // }\r\n\r\n // $log.log('vm.isActive', vm.isActive);\r\n \r\n // })\r\n // }\r\n vm.Updateuser = function(accountId){\r\n AccountService.UpdateUserList(accountId,loggedinUser, token,vm.isActive).then(function(resp){\r\n if (resp.status == 202) {\r\n vm.toaster_success.body = \"User Updated Successfully\";\r\n toaster.pop(vm.toaster_success);\r\n // vm.getAllUser();\r\n $timeout(function(){\r\n vm.getAllUser();\r\n },3000);\r\n }else{\r\n vm.toaster_fail.body = \"Something went wrong, please try again\";\r\n toaster.pop(vm.toaster_fail);\r\n }\r\n\r\n $log.log('vm.isActive', vm.isActive);\r\n \r\n })\r\n }\r\n\r\n vm.search = function() {\r\n\r\n if(angular.isDefined(vm.teamMember_name)){\r\n vm.filteredProperties.FirstName = vm.teamMember_name;\r\n }\r\n if(angular.isDefined(vm.company_name)){\r\n vm.filteredProperties.CompanyName = vm.company_name;\r\n }\r\n if(angular.isDefined(vm.phone_number)){\r\n vm.filteredProperties.PhoneNumber = vm.phone_number;\r\n }\r\n if(angular.isDefined(vm.location)){\r\n vm.filteredProperties.Location = vm.location;\r\n }\r\n if(angular.isDefined(vm.status)){\r\n vm.filteredProperties.UserStatus = vm.status;\r\n }\r\n\r\n ProjectModal.close();\r\n }\r\n\r\n vm.AddTeamMember = function () {\r\n $state.go('index.TeamCreate', {\r\n reload: true\r\n });\r\n }\r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withButtons([]).withPaginationType('full_numbers')\r\n .withOption('order', [1, 'desc']);\r\n\r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable()\r\n ];\r\n\r\n\r\n vm.getAllUser(loggedinUser);\r\n // vm.getAllSkills();\r\n // vm.getAllCircles(loggedinUser);\r\n\r\n }\r\n \r\n \r\n });\nangular.module('inspinia').service('LayoutService', function (ApiURL, PublicApiURL, $http) {\r\n\r\n\tthis.createAccount = function(data,loggedinUser,token) {\r\n\t\tvar url = ApiURL + '/api/SignUpWithPlan';\r\n\t\treturn $http.post(url, data, {\r\n\t\t\theaders: { 'Content-Type': 'application/json', 'Token': token , 'UserId': loggedinUser}\r\n\t\t});\r\n\t}\r\n\r\n\tthis.getVertical = function() {\r\n\t\tvar url = PublicApiURL + '/api/GetSkillsWithCategory';\r\n\t\treturn $http.get(url, {\r\n\t\t\theaders: { 'Content-Type': 'application/json' },\r\n\t\t\tparams:{}\r\n\t\t});\r\n\t}\r\n\r\n})\nangular.module('inspinia').controller('LayoutController', function(LayoutService, $scope, $rootScope, $log, $timeout, $state, $localStorage) {\r\n\tvar vm = this;\r\n\tvar token = $localStorage.token;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvm.vertical = '';\r\n\tvm.company_name = '';\r\n\tvm.first_name = '';\r\n\tvm.last_name = '';\r\n\tvm.mobile = '';\r\n\tvm.email = '';\r\n\tvm.password = '';\r\n\tvm.confirmPass = '';\r\n\tvm.tickets = '';\r\n\tvm.skills = '';\r\n\tvm.recharge_amount = '';\r\n\tvm.month = '';\r\n\tvm.grace_period = '';\r\n\tvm.verticalList = '';\r\n\tvm.skillList = '';\r\n\tvm.isCollapsed = false;\r\n\tvm.freelancerAccess = false;\r\n\tvm.vendorAccess = false;\r\n\tvm.account_type = '';\r\n\tvm.commissionInPercentage = false;\r\n\tvm.mobiforceCommission = '';\r\n\tvm.credit_limit = '';\r\n\tvm.topUp_amount = '';\r\n\tvm.skillBasedList = [];\r\n\tvm.remarks = '';\r\n\tvar angular_pass = angular.element(\"#pass\");\r\n\tvar angular_confirm_pass = angular.element(\"#confirm_pass\");\r\n\tvar password = angular_pass[0],\r\n\t\tconfirm_password = angular_confirm_pass[0];\r\n\r\n\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.main.showFailure;\r\n\r\n\t// vm.accountType = function(type) {\r\n\t// \tif (type == 'fixed') {\r\n\t// \t\tvm.account_type = 0;\r\n\t// \t}\r\n\t// \telse if(type == 'transactional') {\r\n\t// \t\tvm.account_type = 1;\r\n\t// \t}\r\n\t// }\r\n\r\n\tvm.saveUser = function(planType, accType) {\r\n\r\n\t\tvar SkillSetModel = [];\r\n\t\tfor (var skillIndex = 0; skillIndex < vm.skillBasedList.length; skillIndex++) {\r\n\t\t\tSkillSetModel.push(vm.skillBasedList[skillIndex]);\r\n\t\t}\r\n\r\n\t\tvar accountPlanData = {\r\n\t\t\t\"CompanyName\": vm.company_name,\r\n\t\t\t\"FirstName\": vm.first_name,\r\n\t\t\t\"LastName\": vm.last_name,\r\n\t\t\t\"PhoneNumber\": vm.mobile,\r\n\t\t\t\"EmailId\": vm.email,\r\n\t\t\t\"Password\": vm.password,\r\n\t\t\t\"Vertical\": vm.vertical,\r\n\t\t\t\"SkillBasedCommissions\": SkillSetModel\r\n\t\t}\r\n\r\n\t\tif(accType == 'fixed') {\r\n\t\t\tvm.account_type = 0;\r\n\t\t\taccountPlanData.AccountType = vm.account_type\r\n\t\t} else if(accType == 'transactional') {\r\n\t\t\tvm.account_type = 1;\r\n\t\t\taccountPlanData.AccountType = vm.account_type\r\n\t\t}\r\n\r\n\t\tif(planType == 'basic' || planType == 'advance') {\r\n\t\t\taccountPlanData.Skills = vm.skills,\r\n\t\t\taccountPlanData.NoOfTickets = vm.tickets,\r\n\t\t\taccountPlanData.Month = vm.month,\r\n\t\t\taccountPlanData.GracePeriod = vm.grace_period\r\n\t\t}\r\n\r\n\t\tif (planType == 'advance' || planType == 'ultimate') {\r\n\t\t\taccountPlanData.FreelancerAccess = true,\r\n\t\t\taccountPlanData.VendorAccess = true,\r\n\t\t\taccountPlanData.CreditLimit = vm.credit_limit,\r\n\t\t\taccountPlanData.TopUpBalance = ''\r\n\t\t}\r\n\t\t\r\n\t\tif(vm.accountPlan.$valid) {\r\n\t\t\tLayoutService.createAccount(accountPlanData, loggedinUser, token).then(function (resp) {\r\n\t\t\t\tif(resp.status == 201) {\r\n\t\t\t\t\tvm.showSuccess(\"Account Creation Status\", \"Account Created Successfully\" );\r\n\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t$state.go('index.AccountHome');\r\n\t\t\t\t\t}, 2000);\t\t\t\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvm.showFailure(\"Account Creation Failed\", \"Account not created. Please try again later.\")\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tvm.accountPlan.submitted = true;\r\n\t\t}\r\n\t}\r\n\r\n\tvm.selectVertical = function() {\r\n\t\tLayoutService.getVertical().then(function (resp) {\r\n\t\t\tvm.verticalList = resp.data;\r\n\t\t})\r\n\t}\r\n\tvm.selectVertical();\r\n\r\n\tvm.selectSkills = function(verticalName) {\r\n\t\tif(verticalName!='') {\r\n\t\t\tvm.skillList = ''; \r\n\t\t\tangular.forEach(vm.verticalList, function(d) {\r\n\t\t\t\tif(d.Category == verticalName) {\r\n\t\t\t\t\tvm.skillList = d.ListSkillSet;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\tvm.skillListSet = function(previousIndex) {\r\n\t\tvar RemoveSkills = [];\r\n\t\tvar remainingSkills = Array.from(vm.skillList);\r\n\t\tangular.forEach(remainingSkills, function (d) {\r\n\t\t\tfor (var i = 0; i < previousIndex; i++) {\r\n\t\t\t\tif (d.SkillName == vm.skillBasedList[i].Name) {\r\n\t\t\t\t\tRemoveSkills.push(d);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tangular.forEach(RemoveSkills, function (s) {\r\n\t\t\tremainingSkills.splice(remainingSkills.indexOf(s), 1);\r\n\t\t})\r\n\t\treturn remainingSkills;\r\n\t}\r\n\r\n\tvm.addSkills = function() {\r\n var element = {};\r\n vm.skillBasedList.push(element);\r\n }\r\n\r\n\tvm.removeSkills = function(index) {\r\n\t\tvm.skillBasedList.splice(index, 1);\r\n\t}\r\n\r\n\tvar skill_1 = {\r\n Name: '',\r\n MobiforceCommission: '',\r\n //remarks: ''\r\n };\r\n vm.skillBasedList.push(skill_1);\r\n\r\n})\nangular.module('inspinia').service('ActiveUserService', function (FreelancerURL, ApiURL, LocationURL, $log, $http) {\r\n\r\n this.GetAllUsers = function (loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/GetAllUsers'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId': loggedinUser }\r\n })\r\n }\r\n\r\n this.getUserInfo = function (userId, loggedinUser, token) {\r\n var url = FreelancerURL + \"/api/FreeLancerUser/\" + userId + \"/\" + loggedinUser + \"/byUserId\";\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n //https://login.mymobiforce.com/freelancerapi/api/FreelancerRecharge/F00000000121/getrechargehistorybyself?StartDate=&EndDate=\r\n \r\n this.getFreelancerHistory = function (userId, loggedinUser,token) {\r\n var url = FreelancerURL + \"/api/FreelancerRecharge/\" + userId + \"/getrechargehistorybyself?StartDate=&EndDate=\";\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token':token, \r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.getAllSkills = function (loggedinUser, token) {\r\n var url = ApiURL + '/api/SkillSets?reqUserId='+loggedinUser;\r\n return $http.get(url, {\r\n headers: {'Token': token, 'UserId': loggedinUser}\r\n });\r\n }\r\n\r\n this.GetAllCircles = function (loggedinUser) {\r\n var url = LocationURL + '/api/Location/' + loggedinUser + '/GetAllCircles'\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json' }\r\n });\r\n }\r\n\r\n this.updateUser = function (userFormData, loggedinUser, token) {\r\n var url = FreelancerURL + '/api/FreeLancerUser/' + loggedinUser + '/PutUser';\r\n return $http.put(url, userFormData, {\r\n headers: { 'Content-Type': 'application/json', 'Token':token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n this.uploadProfilePic = function (loggedinUser, data, token, success, failure) {\r\n $http.post(ApiURL + '/api/User/PostUserPic?reqUserId=' + loggedinUser, data, {\r\n headers: {\r\n 'Content-Type': undefined, 'Token': token, 'UserId': loggedinUser\r\n }\r\n }).then(success, failure);\r\n }\r\n\r\n //http://localhost:50144/api/FreelancerAccount/F00000000000/F00000000106/getaccountbyfreelancerid\r\n this.GetFreelancerBalance = function (loggedinUser, freelancerId, token) {\r\n var url = FreelancerURL + '/api/FreelancerAccount/' + loggedinUser + '/' + freelancerId + '/getaccountbyfreelancerid';\r\n return $http.get(url, {\r\n headers: { 'Content-Type': 'application/json', 'Token': token, 'UserId': loggedinUser }\r\n });\r\n }\r\n\r\n\r\n})\nangular.module('inspinia').controller('ActiveUserController', function ($log, $uibModal,$filter, $compile,$scope, $timeout,ActiveUserService, ReferService, $localStorage, $state, ImageUrl, $scope, DTOptionsBuilder, $q, DTColumnBuilder, DTColumnDefBuilder) {\r\n\r\n var vm = this;\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n var token = $localStorage.token;\r\n\r\n if (!loggedinUser) {\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n } else {\r\n var userIndex = 0;\r\n vm.userData = '';\r\n vm.isEdit = false;\r\n vm.dtInstance = {};\r\n vm.searchText = '';\r\n vm.freelancerBalance = '';\r\n\r\n vm.GetAllUsers = function () {\r\n ActiveUserService.GetAllUsers(loggedinUser, token).then(function (resp) {\r\n vm.users = [];\r\n var userList = resp.data;\r\n if (userList.length == 0) {\r\n vm.client = 1;\r\n } else {\r\n angular.forEach(userList, function (d) {\r\n if (d.UserId != loggedinUser) {\r\n d.activationDate = moment(d.CreatedOn, \"YYYY-MM-DDTHH:mm:ss.SSSZ\").format(\"DD MMM YYYY HH:mm:ss \")\r\n vm.users.push(d);\r\n }\r\n })\r\n vm.client = 3;\r\n vm.userInfo = vm.users[userIndex];\r\n vm.GetFreelancerBalance(vm.userInfo.UserId);\r\n }\r\n }, function () {\r\n //$log.log('not working');\r\n })\r\n }\r\n\r\n vm.GetFreelancerBalance = function(freelancerId){\r\n ActiveUserService.GetFreelancerBalance(loggedinUser, freelancerId, token).then(function(resp){\r\n if(resp.status == 200){\r\n vm.freelancerBalance = resp.data.AvailableBalance;\r\n }\r\n \r\n })\r\n }\r\n\r\n vm.getAllSkill = function () {\r\n ActiveUserService.getAllSkills(loggedinUser, token).then(function (resp) {\r\n vm.skills = resp.data;\r\n });\r\n }\r\n\r\n vm.getAllSkill();\r\n\r\n vm.getAllStates = function () {\r\n ReferService.getAllState('U310000000001',token).then(function (resp) {\r\n vm.circles = resp.data.values;\r\n })\r\n }\r\n vm.getAllStates();\r\n\r\n vm.AddTeamMember = function () {\r\n $state.go('index.TeamCreate', {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.getUserInfo = function (userId, loggedinUser) {\r\n ActiveUserService.getUserInfo(userId, loggedinUser, token).then(function (resp) {\r\n vm.userInfo = resp.data;\r\n vm.GetFreelancerBalance(vm.userInfo.UserId);\r\n vm.skill = vm.userInfo.SkillSet;\r\n vm.circle = vm.userInfo.Locations;\r\n }, function () {\r\n //$log.log('not working');\r\n });\r\n }\r\n\r\n vm.ProfileView = function(userid){\r\n $state.go('index.TeamProfile', {\r\n userId: userid\r\n }, {\r\n reload: true\r\n });\r\n }\r\n\r\n vm.ProfileData = function (userId) {\r\n vm.getUserInfo(userId, loggedinUser);\r\n vm.client = 3;\r\n }\r\n\r\n vm.UpdateTeamMember = function (userId) {\r\n var user = {};\r\n user.UserId = vm.userInfo.UserId;\r\n user.Password = vm.userInfo.Password;\r\n user.FirstName = vm.userInfo.FirstName;\r\n user.LastName = vm.userInfo.LastName;\r\n user.Gender = vm.userInfo.Gender;\r\n user.DOB = vm.userInfo.DOB;\r\n user.FatherName = \"\"; //vm.userInfo.FatherName ; t \r\n user.PersonalEmail = vm.userInfo.PersonalEmail;\r\n user.ContactNumber = vm.userInfo.ContactNumber;\r\n user.AlternativeContactNumber = vm.userInfo.AlternativeContactNumber;\r\n user.CompanyName = vm.userInfo.CompanyName;\r\n user.ReportingTo = vm.userInfo.ReportingTo;\r\n user.Role = vm.userInfo.Role;\r\n user.PermanentAdd1 = vm.userInfo.PermanentAdd1;\r\n user.PermanentAdd2 = vm.userInfo.PermanentAdd2;\r\n user.PermanentState = vm.userInfo.PermanentState;\r\n user.PermanentCity = vm.userInfo.PermanentCity;\r\n user.PermanentPinCode = vm.userInfo.PermanentPinCode;\r\n user.CurrentAdd1 = vm.userInfo.CurrentAdd1;\r\n user.CurrentAdd2 = vm.userInfo.CurrentAdd2;\r\n user.CurrentState = vm.userInfo.CurrentState;\r\n user.CurrentCity = vm.userInfo.CurrentCity;\r\n user.CurrentPincode = vm.userInfo.CurrentPinCode;\r\n user.DateOfJoin = vm.userInfo.DateOfJoin;\r\n user.UniqueKey = vm.userInfo.UniqueId;\r\n user.TokenId = vm.userInfo.TokenId;\r\n user.DeviceOS = vm.userInfo.DeviceOS;\r\n user.Expertise = vm.userInfo.Expertise;\r\n user.SkillSet = vm.skill;\r\n user.Locations = vm.circle;\r\n vm.userInfo.SkillSet = vm.skill;\r\n vm.userInfo.Locations = vm.circle;\r\n user.Picture = vm.userInfo.Picture;\r\n ActiveUserService.updateUser(user, loggedinUser, token);\r\n $timeout(function () {\r\n vm.GetAllUsers();\r\n }, 1500);\r\n }\r\n\r\n vm.GetAllUsers();\r\n\r\n vm.getProfilePic = function (pic) {\r\n return ImageUrl + \"/\" + pic;\r\n }\r\n\r\n vm.changeProfilePic = function () {\r\n angular.element(\"#profilePicFile\").trigger(\"click\");\r\n }\r\n\r\n $scope.uploadImageFile = function (files) {\r\n vm.userInfo.PictureError = null;\r\n var file = files.files[0];\r\n if(file.type.indexOf(\"image/jpg\")>=0 || file.type.indexOf(\"image/png\")>=0 \r\n || file.type.indexOf(\"image/bmp\")>=0 |searchTable| file.type.indexOf(\"image/jpeg\")>=0){\r\n var data = new FormData();\r\n $log.log(files.files[0]);\r\n data.append(\"files\", files.files[0]);\r\n ActiveUserService.uploadProfilePic(loggedinUser, data, token, function (res) {\r\n if (res && res.status == 201 && res.data) {\r\n vm.userInfo.Picture = res.data;\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to upload profile pic, server error\");\r\n });\r\n } else {\r\n vm.userInfo.PictureError = \"Please upload image only as profile picture.\";\r\n }\r\n }\r\n vm.searchTable = function () {\r\n vm.dtInstance.DataTable.search(vm.searchText);\r\n vm.dtInstance.DataTable.search(vm.searchText).draw();\r\n };\r\n\r\n vm.RechargeHistory = function() {\r\n RechargeModal = $uibModal.open({\r\n templateUrl: 'rechargeHistory.html',\r\n backdrop: 'static',\r\n scope: $scope,\r\n controller: ModalInstanceCtrlHistory,\r\n resolve : {\r\n items : function(){\r\n return {\r\n AccountName:vm.CompanyName,\r\n AccountId:vm.Email\r\n };\r\n }\r\n },\r\n size:'lg' \r\n}); \r\n}\r\n\r\nvm.CloseRechargeModal = function(){\r\n RechargeModal.close();\r\n}\r\n\r\nvar ModalInstanceCtrlHistory = function($scope, $rootScope, $uibModalInstance, items) { \r\nActiveUserService.getFreelancerHistory(vm.userInfo.UserId,loggedinUser, token).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.AccountHistoryData = resp.data;\r\n }\r\n}) \r\n }\r\n\r\n /* vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withButtons([]).withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n $('.dataTable tbody tr:first-child').trigger(\"click\");\r\n })\r\n .withOption('order', []);*/\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function(){\r\n var defer = $q.defer();\r\n ActiveUserService.GetAllUsers(loggedinUser, token).then(function(resp){\r\n vm.activeUserList = resp.data;\r\n defer.resolve(vm.activeUserList);\r\n })\r\n return defer.promise;\r\n \r\n })\r\n .withDOM('<\"html5buttons\"B>lTfgitp')\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [0,'desc'])\r\n .withOption('rowCallback', rowCallback)\r\n .withOption('createdRow', createdRow)\r\n .withBootstrap();\r\n \r\n function createdRow(row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n }\r\n\r\n function rowCallback(nRow, aData, iDisplayIndex, iDisplayIndexFull) {\r\n $('td', nRow).unbind('click');\r\n $('td', nRow).bind('click', function() {\r\n $scope.$apply(function() {\r\n vm.ProfileData(aData.EnrollNo);\r\n });\r\n });\r\n return nRow;\r\n }\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle('UserId').renderWith(function(data, type, full, meta){\r\n return ' ' + data.EnrollNo + '';\r\n // return ''+full.EnrollNo+'';\r\n //return ''+full.EnrollNo +'';\r\n }),\r\n DTColumnBuilder.newColumn(null).withTitle('Name').renderWith(function(data, type, full, meta){\r\n if(data.Picture == null){\r\n var address = \"assets/images/patterns/photo1.png\";\r\n }else{\r\n address= vm.getProfilePic(data.Picture);\r\n }\r\n return ''\r\n +''+ data.FirstName + ' ' + data.LastName +'';\r\n // return ''\r\n // +''+full.FirstName +' '+ full.LastName+''; \r\n }),\r\n DTColumnBuilder.newColumn('ContactNumber').withTitle('MobileNo').notSortable(),\r\n DTColumnBuilder.newColumn('CreatedOn').withTitle('Activation Date').withOption('type', 'date').renderWith(function(data,type, full){\r\n // var date = $filter('date')(full.CreatedOn, \"MM/dd/yyyy\");\r\n // return ''+dt +'';\r\n var dt = $filter('date')(new Date(data), \"dd/MM/yyyy\");\r\n return dt;\r\n }),\r\n DTColumnBuilder.newColumn('PermanentAdd1').withTitle('Address Line1').notSortable(),\r\n DTColumnBuilder.newColumn('PermanentAdd2').withTitle('Address Line2').notSortable(),\r\n DTColumnBuilder.newColumn('PermanentCity').withTitle('City').notSortable(),\r\n DTColumnBuilder.newColumn('PermanentState').withTitle('State').notSortable(),\r\n DTColumnBuilder.newColumn('PermanentPinCode').withTitle('PinCode').notSortable(),\r\n DTColumnBuilder.newColumn('PersonalEmail').withTitle('Email').notSortable(),\r\n DTColumnBuilder.newColumn('UpdatedById').withTitle('Updated By Id').notSortable(),\r\n DTColumnBuilder.newColumn('UpdatedByName').withTitle('Updated By Name').notSortable(),\r\n \r\n DTColumnBuilder.newColumn('SkillSet').withTitle('Skill').notSortable().renderWith(function(data, type, full, meta){\r\n if(!full.SkillSet)\r\n {\r\n full.SkillSet = [];\r\n } \r\n var skill = full.SkillSet.join(' , ');\r\n return '
'+skill+'
';\r\n }),\r\n DTColumnBuilder.newColumn('Locations').withTitle('Location').notSortable().renderWith(function(data, type,full, meta){\r\n if(!full.Locations)\r\n {\r\n full.Locations = [];\r\n }\r\n var location = full.Locations.join(' , ');\r\n return '
'+location+'
'\r\n }\r\n )\r\n \r\n ];\r\n\r\n \r\n vm.dtOption = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfgitp').withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('order', []);\r\n\r\n vm.dtColumnDefs = [\r\n //DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable().withClass('td-small-with-panel'),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(3).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(4).notSortable()];\r\n }\r\n})\nangular.module('inspinia').service('AccountSettingService', function ($log, $http, CronUrl, SchedulingAPI, ApiURL) {\r\n\r\n this.GetDataForMenu = function (dataType, accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetDataForMenu?Type=' + dataType + '&AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetProjectSettings = function (ProjectId, accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetProjectSettings?ProjectId=' + ProjectId + '&AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetAccountConfigSettings = function (accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetAccountConfigSettings?AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.GetTemplateSettings = function (DocId, accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetTemplateSettings?DocId=' + DocId + '&AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateAccountConfigSettings = function (accountId, accountConfigData, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/UpdateAccountConfigSettings?AccountId=' + accountId;\r\n return $http.put(url, accountConfigData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateProjectSettings = function (projectId, accountId, projectConfigData, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/UpdateProjectSettings?ProjectId=' + projectId + '&AccountId=' + accountId;\r\n return $http.put(url, projectConfigData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n this.UpdateTemplateSettings = function (docId, accountId, templateConfigData, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/UpdateTemplateSettings?DocId=' + docId + '&AccountId=' + accountId;\r\n return $http.put(url, templateConfigData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n // https://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/GetAllMaster?UserId=F00000000000\r\nthis.GetAllSecheculingRules = function(loginUser, token){\r\n var url = ApiURL + '/api/MasterSelectionCriteria/GetAllMaster?UserId=' + loginUser;\r\n return $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loginUser }\r\n });\r\n}\r\n\r\nhttps://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/EnableInMyAccount?UserId=U400000000001&RuleIds=Rule_01\r\nthis.SaveSchedulingRule = function(loginUser, ruleidlist,token, success, failure){\r\nvar url = ApiURL +'/api/MasterSelectionCriteria/EnableInMyAccount?UserId='+ loginUser +'&RuleIds='+ruleidlist;\r\n$http.post(url, null, { headers: {'Content-Type': undefined, 'Token': token, 'UserId':loginUser}\r\n}).then(success, failure);\r\n}\r\n\r\n // https://perf.mymobiforce.com/schedulingapi/api/AutoAssignScheduler/GetSchedulerConfig?reqUserId=U350000000001\r\n this.getAssignationRule = function(loggedinUser,token){\r\n var url = SchedulingAPI + '/api/AutoAssignScheduler/GetSchedulerConfig?reqUserId=' + loggedinUser ; \r\n return $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n });\r\n}\r\n\r\n// https://perf.mymobiforce.com/schedulingapi/api/AutoAssignScheduler/PutSchedulerConfigList?reqUserId=U350000000001\r\nthis.SaveAssignationRule = function(loggedinUser, ruleList, token, success, failure){\r\n var url = SchedulingAPI + '/api/AutoAssignScheduler/PutSchedulerConfigList?reqUserId='+ loggedinUser;\r\n $http.put(url,ruleList,{headers: {'Content-Type': 'application/json','Token': token, 'UserId': loggedinUser}}).then(success,failure);\r\n}\r\nthis.GetAllBonusPenalty = function (loggedinUser, token){\r\n var url = ApiURL + '/api/BonusPenalty/GetAllBonusPenalty';\r\n return $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n });\r\n}\r\n\r\n this.UpdateBonusPenalty = function (BonusData,loggedinUser, token) {\r\n var url = ApiURL + '/api/BonusPenalty/UpdateBonusPenalty';\r\n return $http.put(url, BonusData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser}\r\n });\r\n}\r\n\r\nthis.GetDataForMenu = function (dataType, accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetDataForMenu?Type=' + dataType + '&AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.GetProjectSettings = function (ProjectId, accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetProjectSettings?ProjectId=' + ProjectId + '&AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.GetAccountConfigSettings = function (accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetAccountConfigSettings?AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.GetTemplateSettings = function (DocId, accountId, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/GetTemplateSettings?DocId=' + DocId + '&AccountId=' + accountId;\r\n return $http.get(url, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.UpdateAccountConfigSettings = function (accountId, accountConfigData, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/UpdateAccountConfigSettings?AccountId=' + accountId;\r\n return $http.put(url, accountConfigData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.UpdateProjectSettings = function (projectId, accountId, projectConfigData, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/UpdateProjectSettings?ProjectId=' + projectId + '&AccountId=' + accountId;\r\n return $http.put(url, projectConfigData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\nthis.UpdateTemplateSettings = function (docId, accountId, templateConfigData, loggedinUser, token) {\r\n var url = ApiURL + '/api/SystemSettings/UpdateTemplateSettings?DocId=' + docId + '&AccountId=' + accountId;\r\n return $http.put(url, templateConfigData, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Token': token,\r\n 'UserId': loggedinUser\r\n }\r\n });\r\n}\r\n\r\n\r\n\r\n// https://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/GetAllMaster?UserId=F00000000000\r\nthis.GetAllSecheculingRules = function(loginUser, token){\r\nvar url = ApiURL + '/api/MasterSelectionCriteria/GetAllMaster?UserId=' + loginUser;\r\nreturn $http.get(url, {\r\n headers: { 'ContentType': 'application/json', 'Token':token, 'UserId':loginUser }\r\n });\r\n}\r\n\r\nhttps://perf.mymobiforce.com/coreapi/api/MasterSelectionCriteria/EnableInMyAccount?UserId=U400000000001&RuleIds=Rule_01\r\nthis.SaveSchedulingRule = function(loginUser, ruleidlist,token, success, failure){\r\nvar url = ApiURL +'/api/MasterSelectionCriteria/EnableInMyAccount?UserId='+ loginUser +'&RuleIds='+ruleidlist;\r\n$http.post(url, null, { headers: {'Content-Type': undefined, 'Token': token, 'UserId':loginUser}\r\n}).then(success, failure);\r\n}\r\n\r\n// https://perf.mymobiforce.com/schedulingapi/api/AutoAssignScheduler/GetSchedulerConfig?reqUserId=U350000000001\r\nthis.getAssignationRule = function(loggedinUser,token){\r\nvar url = SchedulingAPI + '/api/AutoAssignScheduler/GetSchedulerConfig?reqUserId=' + loggedinUser ; \r\nreturn $http.get(url, {\r\n headers: { 'Token': token, 'UserId': loggedinUser }\r\n});\r\n}\r\n\r\nthis.CreateTransactionalAlert = function(reqUserId,token,data){\r\n var url = ApiURL+'/api/alertconfiguration/'+reqUserId+'/CreateTransactionalAlert';\r\n return $http.post(url,data,{\r\n headers:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n });\r\n}\r\n\r\nthis.GetAllAlertConfiguration = function(reqUserId,token){\r\n\tvar url=ApiURL+'/api/alertconfiguration/'+reqUserId+'/GetAllAlertConfiguration';\r\n\treturn $http.get(url,{\r\n\t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n\t})\r\n}\r\nthis.DeleteAlertConfiguration = function(reqUserId,id,type,token){\r\n return $http({\r\n method: 'DELETE',\r\n url: ApiURL + \"/api/alertconfiguration/\"+reqUserId+ \"/\"+id+\"/\"+type+\"/DeleteAlertConfiguration\",\r\n data: { \r\n },\r\n headers: {\r\n 'Content-type': 'application/json', 'token':token, 'UserId':reqUserId\r\n }\r\n })\r\n }\r\n\r\nthis.GetAlertConfiguration = function(reqUserId,id,type,token){\r\n\tvar url=ApiURL+'/api/alertconfiguration/'+reqUserId+'/'+id+'/'+type+'/GetAlertConfiguration';\r\n\treturn $http.get(url,{\r\n\t\theaders:{'Content-Type':'application/json','token':token, 'UserId':reqUserId}\r\n\t})\r\n}\r\n\r\n// https://perf.mymobiforce.com/schedulingapi/api/AutoAssignScheduler/PutSchedulerConfigList?reqUserId=U350000000001\r\nthis.SaveAssignationRule = function(loggedinUser, ruleList, token, success, failure){\r\nvar url = SchedulingAPI + '/api/AutoAssignScheduler/PutSchedulerConfigList?reqUserId='+ loggedinUser;\r\n$http.put(url,ruleList,{headers: {'Content-Type': 'application/json','Token': token, 'UserId': loggedinUser}}).then(success,failure);\r\n}\r\nthis.GetAllBonusPenalty = function (loggedinUser, token){\r\nvar url = ApiURL + '/api/BonusPenalty/GetAllBonusPenalty';\r\nreturn $http.get(url,{\r\n headers:{'Content-Type':'application/json',\r\n 'Token': token, 'UserId':loggedinUser}\r\n});\r\n}\r\n\r\nthis.UpdateBonusPenalty = function (BonusData,loggedinUser, token) {\r\n var url = ApiURL + '/api/BonusPenalty/UpdateBonusPenalty';\r\nreturn $http.put(url, BonusData, {\r\n headers: { 'Content-Type': 'application/json',\r\n 'Token':token, 'UserId':loggedinUser}\r\n});\r\n}\r\n\r\n});\r\n\r\n\nangular.module('inspinia').controller('AccountSettingController', function (AccountSettingService,CentralHelpdeskConfigService,$stateParams,MailUrl, $localStorage, $state, $timeout, $uibModal, DTOptionsBuilder, DTColumnBuilder, $compile, $q, DTColumnDefBuilder, $scope, $log, AccountSettingService, $localStorage, ReportService, DashboardURL) {\r\n var vm = this;\r\n\r\n var loggedinUser = $localStorage.loggedInUserId;\r\n if (!loggedinUser) {\r\n\r\n $state.go('Login', {\r\n reload: true\r\n });\r\n\r\n } else {\r\n vm.AlertType = $stateParams.alertType;\r\n var token = $localStorage.token;\r\n vm.accountConfig = $localStorage.accountConfig;\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.accountId = \"\";\r\n vm.ProjectId = \"\";\r\n // vm.DocId = \"\";\r\n $scope.distance = 0;\r\n $scope.updateBikePosition = function () {\r\n var rangeSlider = document.getElementById('distanceRange');\r\n var bikeIcon = document.getElementById('bikeIcon');\r\n var rangeWidth = rangeSlider.offsetWidth;\r\n var rangeValue = rangeSlider.value;\r\n var bikePosition = (rangeValue / rangeSlider.max) * rangeWidth;\r\n bikeIcon.style.transform = 'translateX(' + bikePosition + 'px)';\r\n }\r\n\r\n vm.getAllAccounts = function ( ) {\r\n CentralHelpdeskConfigService.getAllAccounts(loggedinUser, token).then(function (resp) { \r\n if (resp && resp.data) { \r\n if(resp.status==200)\r\n {\r\n vm.HDAllAccounts = resp.data;\r\n\r\n }\r\n } \r\n }, function () { \r\n });\r\n }\r\n\r\n vm.getAllAccounts(); \r\n\r\n\r\n vm.headingName = \"Account Settings\";\r\n\r\n vm.GetDataForMenu = function (dataType) {\r\n AccountSettingService.GetDataForMenu(dataType, vm.accountId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.dataForMenu = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.GetProjectSettings = function (ProjectId) {\r\n if (ProjectId) {\r\n vm.ProjectId = ProjectId;\r\n }\r\n vm.headingName = 'Project Settings';\r\n AccountSettingService.GetProjectSettings(vm.ProjectId, vm.accountId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.currentConfig = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n vm.GetAccountConfigSettings = function () {\r\n if(vm.accountId == null)\r\n {\r\n vm.accountId = \"\";\r\n }\r\n vm.headingName = 'Account Settings';\r\n AccountSettingService.GetAccountConfigSettings(vm.accountId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.currentConfig = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n vm.GetAccountConfigSettings();\r\n\r\n vm.GetTemplateSettings = function (DocId) {\r\n if (DocId) {\r\n vm.DocId = DocId;\r\n }\r\n vm.headingName = 'Template Settings';\r\n AccountSettingService.GetTemplateSettings(vm.DocId, vm.accountId, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.data) {\r\n vm.currentConfig = resp.data;\r\n }\r\n }, vm.showFailure);\r\n }\r\n\r\n var accountConfigData = [];\r\n vm.UpdateAccountConfigSettings = function () {\r\n var updatedConfig = {}\r\n for (var index = 0; index < vm.currentConfig.length; index++) {\r\n var updatedConfig = {\r\n \"ItemName\": vm.currentConfig[index].ItemName,\r\n \"ItemDisplayName\": vm.currentConfig[index].ItemDisplayName,\r\n \"ItemValue\": vm.currentConfig[index].ItemValue,\r\n \"ItemType\": vm.currentConfig[index].ItemType,\r\n \"ItemFrom\": \"AccountConfig\",\r\n \"ItemDescription\": vm.currentConfig[index].ItemDescription,\r\n }\r\n accountConfigData.push(updatedConfig);\r\n }\r\n AccountSettingService.UpdateAccountConfigSettings(vm.accountId, accountConfigData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.GetAccountConfigSettings();\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n var projectConfigData = [];\r\n vm.UpdateProjectSettings = function () {\r\n var updatedConfig = {}\r\n for (var index = 0; index < vm.currentConfig.length; index++) {\r\n var updatedConfig = {\r\n \"ItemName\": vm.currentConfig[index].ItemName,\r\n \"ItemDisplayName\": vm.currentConfig[index].ItemDisplayName,\r\n \"ItemValue\": vm.currentConfig[index].ItemValue,\r\n \"ItemType\": vm.currentConfig[index].ItemType,\r\n \"ItemFrom\": \"Project\",\r\n \"ItemDescription\": vm.currentConfig[index].ItemDescription,\r\n }\r\n projectConfigData.push(updatedConfig);\r\n }\r\n AccountSettingService.UpdateProjectSettings(vm.ProjectId, vm.accountId, projectConfigData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.GetProjectSettings(vm.ProjectId);\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n }, function () {\r\n });\r\n }\r\n\r\n var templateConfigData = [];\r\n vm.UpdateTemplateSettings = function () {\r\n var updatedConfig = {}\r\n for (var index = 0; index < vm.currentConfig.length; index++) {\r\n var updatedConfig = {\r\n \"ItemName\": vm.currentConfig[index].ItemName,\r\n \"ItemDisplayName\": vm.currentConfig[index].ItemDisplayName,\r\n \"ItemValue\": vm.currentConfig[index].ItemValue,\r\n \"ItemType\": vm.currentConfig[index].ItemType,\r\n \"ItemFrom\": \"Template\",\r\n \"ItemDescription\": vm.currentConfig[index].ItemDescription,\r\n }\r\n templateConfigData.push(updatedConfig);\r\n }\r\n AccountSettingService.UpdateTemplateSettings(vm.DocId, vm.accountId, templateConfigData, loggedinUser, token).then(function (resp) {\r\n if (resp && resp.status == 200) {\r\n vm.showSuccess(\"Success\", resp.data);\r\n $timeout(function () {\r\n vm.GetTemplateSettings(vm.DocId);\r\n }, 2000);\r\n }\r\n else {\r\n vm.showFailure(\"Failed\", resp.data);\r\n }\r\n }, function () {\r\n });\r\n }\r\n///////// Scheduling rule \r\nvm.activeTab = ''; \r\n\r\nvm.activateTab = function(tab) {\r\n vm.activeTab = tab;\r\n vm.headingName =tab;\r\n };\r\n vm.toolScRuleList = [];\r\n vm.assetScRuleList = [];\r\n vm.certificateScRuleList = [];\r\n vm.roleScRuleList = [];\r\n vm.TalentPoolScRuleList = [];\r\n vm.dtInstance = {};\r\n vm.dtInstance_Certi = {};\r\n vm.dtInstance_Asset = {};\r\n vm.dtInstance_Tool = {};\r\n vm.dtInstance_TalentPool = {};\r\n vm.getAllSchedulingRules = function () {\r\n AccountSettingService.GetAllSecheculingRules(loggedinUser, token).then(function (res) {\r\n vm.ruleList = res.data;\r\n vm.toolScRuleList = [];\r\n vm.assetScRuleList = [];\r\n vm.certificateScRuleList = [];\r\n vm.roleScRuleList = [];\r\n vm.TalentPoolScRuleList = [];\r\n for (var i = 0; i < vm.ruleList.length; i++) {\r\n if (vm.ruleList[i].RuleType == 'Certificate') {\r\n vm.certificateScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'Asset') {\r\n vm.assetScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'Tool') {\r\n vm.toolScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'Role') {\r\n vm.roleScRuleList.push(vm.ruleList[i]);\r\n } else if (vm.ruleList[i].RuleType == 'TalentPool') {\r\n vm.TalentPoolScRuleList.push(vm.ruleList[i]);\r\n }\r\n \r\n }\r\n if (vm.roleScRuleList) {\r\n vm.GenerateRoleTable();\r\n }\r\n if (vm.certificateScRuleList) {\r\n vm.GenerateCertificateTable();\r\n }\r\n if (vm.assetScRuleList) {\r\n vm.GenerateAssetsTable();\r\n }\r\n if (vm.toolScRuleList) {\r\n vm.GenerateToolTable();\r\n }\r\n if (vm.TalentPoolScRuleList) {\r\n vm.GenerateTalentPoolTable();\r\n }\r\n })\r\n }\r\n vm.getAllSchedulingRules();\r\n\r\n\r\n vm.GenerateRoleTable = function () {\r\n\r\n vm.headerCompiled = false;\r\n vm.selected = {};\r\n vm.selectAll = false;\r\n vm.toggleAll = toggleAll;\r\n vm.toggleOne = toggleOne;\r\n // var titleHtml = '
';\r\n\r\n vm.dtOptions = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.roleScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Role Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.roleScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll = false;\r\n // \treturn;\r\n // }\r\n }\r\n\r\n }\r\n vm.selectAll = true;\r\n }\r\n\r\n }\r\n\r\n\r\n vm.GenerateCertificateTable = function () {\r\n\r\n vm.headerCompiled_Certi = false;\r\n vm.selected_Certi = {};\r\n vm.selectAll_Certi = false;\r\n vm.toggleAll_Certi = toggleAll_Certi;\r\n vm.toggleOne_Certi = toggleOne_Certi;\r\n // var titleHtml_Certi = '
';\r\n\r\n vm.dtOptions_Certi = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.certificateScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled_Certi) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_Certi = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns_Certi = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_Certi[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Certificate Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll_Certi(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_Certi(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.certificateScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_Certi = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_Certi = true;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n vm.GenerateAssetsTable = function () {\r\n\r\n vm.headerCompiled_Asset = false;\r\n vm.selected_Asset = {};\r\n vm.selectAll_Asset = false;\r\n vm.toggleAll_Asset = toggleAll_Asset;\r\n vm.toggleOne_Asset = toggleOne_Asset;\r\n // var titleHtml_Asset = '
';\r\n\r\n vm.dtOptions_Asset = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.assetScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompiled_Asset) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_Asset = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns_Asset = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_Asset[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Assets Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n\r\n function toggleAll_Asset(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_Asset(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.assetScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_Asset = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_Asset = true;\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n vm.GenerateToolTable = function () {\r\n\r\n vm.headerCompiled_Tool = false;\r\n vm.selected_Tool = {};\r\n vm.selectAll_Tool = false;\r\n vm.toggleAll_Tool = toggleAll_Tool;\r\n vm.toggleOne_Tool = toggleOne_Tool;\r\n // var titleHtml_Tool = '
';\r\n\r\n vm.dtOptions_Tool = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.toolScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallbacks', function (header) {\r\n if (!vm.headerCompiled_Tool) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_Tool = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n vm.dtColumns_Tool = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_Tool[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Tools Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n \r\n function toggleAll_Tool(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_Tool(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.toolScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_Tool = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_Tool = true;\r\n }\r\n\r\n }\r\n\r\n vm.GenerateTalentPoolTable = function () {\r\n\r\n vm.headerCompiled_TalentPool = false;\r\n vm.selected_TalentPool = {};\r\n vm.selectAll_TalentPool = false;\r\n vm.toggleAll_TalentPool = toggleAll_TalentPool;\r\n vm.toggleOne_TalentPool = toggleOne_TalentPool;\r\n // var titleHtml_TalentPool = '
';\r\n\r\n vm.dtOptions_TalentPool = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n defer.resolve(vm.TalentPoolScRuleList);\r\n return defer.promise;\r\n })\r\n .withPaginationType('full_numbers')\r\n .withOption('order', [])\r\n .withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallbacks', function (header) {\r\n if (!vm.headerCompiled_TalentPool) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompiled_TalentPool = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n\r\n \r\n vm.dtColumns_TalentPool = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected_TalentPool[meta.row] = data.IsEnable;\r\n return '
';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('Rule Id').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n }),\r\n DTColumnBuilder.newColumn('Description').withTitle('Talent Pool Description').notSortable().renderWith(function (data) {\r\n return '' + data + '';\r\n })\r\n\r\n\r\n ];\r\n function toggleAll_TalentPool(selectAll, selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n selectedItems[id] = selectAll;\r\n }\r\n }\r\n }\r\n function toggleOne_TalentPool(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.TalentPoolScRuleList[id].IsEnable = selectedItems[id];\r\n // if (!selectedItems[id]) {\r\n // \tvm.selectAll_TalentPool = false;\r\n // \treturn;\r\n // }\r\n }\r\n }\r\n vm.selectAll_TalentPool = true;\r\n }\r\n\r\n }\r\n vm.reloadData = function () {\r\n var resetPaging = true;\r\n vm.dtInstance.reloadData(resetPaging);\r\n vm.dtInstance_Certi.reloadData(resetPaging);\r\n vm.dtInstance_Asset.reloadData(resetPaging);\r\n vm.dtInstance_Tool.reloadData(resetPaging);\r\n vm.dtInstance_TalentPool.reloadData(resetPaging);\r\n\r\n }\r\n\r\n vm.SaveSchedulingRule = function () {\r\n\r\n var RuleIdList = '';\r\n for (var i = 0; i < vm.roleScRuleList.length; i++) {\r\n if (vm.selected[i] == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.roleScRuleList[i].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.roleScRuleList[i].RuleId;\r\n }\r\n }\r\n }\r\n for (var j = 0; j < vm.certificateScRuleList.length; j++) {\r\n if (vm.certificateScRuleList[j].IsEnable == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.certificateScRuleList[j].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.certificateScRuleList[j].RuleId;\r\n }\r\n }\r\n }\r\n for (var k = 0; k < vm.assetScRuleList.length; k++) {\r\n if (vm.assetScRuleList[k].IsEnable == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.assetScRuleList[k].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.assetScRuleList[k].RuleId;\r\n }\r\n }\r\n }\r\n for (var l = 0; l < vm.toolScRuleList.length; l++) {\r\n if (vm.toolScRuleList[l].IsEnable == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.toolScRuleList[l].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.toolScRuleList[l].RuleId;\r\n }\r\n }\r\n }\r\n for (var l = 0; l < vm.TalentPoolScRuleList.length; l++) {\r\n if (vm.TalentPoolScRuleList[l].IsEnable == true) {\r\n if (!RuleIdList) {\r\n RuleIdList = vm.TalentPoolScRuleList[l].RuleId;\r\n } else {\r\n RuleIdList = RuleIdList + \",\" + vm.TalentPoolScRuleList[l].RuleId;\r\n }\r\n }\r\n }\r\n AccountSettingService.SaveSchedulingRule(loggedinUser, RuleIdList, token, function (res) {\r\n if (res.data) {\r\n vm.showSuccess(\"Success\", \"Successfully Save Scheduling Rules\");\r\n // vm.getAllSchedulingRules();\r\n // // vm.reloadData();\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to Save Scheduling Rule.\");\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n //// Assignation Rule\r\n vm.dtInstance = {};\r\n vm.selected = {};\r\n vm.toggleOne = toggleOne;\r\n vm.changePriority = changePriority;\r\n vm.setPriorityIndex = {};\r\n // vm.getAllassignationrule = function(){\r\n // ScheduledReportService.getAssignationRule(loggedinUser, token).then(function(resp){\r\n // vm.AssignationRuleList = resp.data;\r\n // });\r\n // }\r\n // // vm.getAllassignationrule();\r\n\r\n vm.dtOption = DTOptionsBuilder.fromFnPromise(function () {\r\n var defer = $q.defer();\r\n AccountSettingService.getAssignationRule(loggedinUser, token).then(function (resp) {\r\n vm.AssignationRuleList = resp.data;\r\n // console.log(vm.AssignationRuleList);\r\n defer.resolve(vm.AssignationRuleList);\r\n });\r\n\r\n return defer.promise;\r\n }).withDOM('<\"html5buttons\"B>lTfgitp').withPaginationType('full_numbers')\r\n .withOption('order', []).withBootstrap()\r\n .withOption('createdRow', function (row, data, dataIndex) {\r\n // Recompiling so we can bind Angular directive to the DT\r\n $compile(angular.element(row).contents())($scope);\r\n })\r\n .withOption('headerCallback', function (header) {\r\n if (!vm.headerCompileds) {\r\n // Use this headerCompiled field to only compile header once\r\n vm.headerCompileds = true;\r\n $compile(angular.element(header).contents())($scope);\r\n }\r\n });\r\n\r\n vm.dtColumn = [\r\n DTColumnBuilder.newColumn(null).withTitle(null).renderWith(function (data, type, full, meta) {\r\n vm.selected[meta.row] = data.IsEnable;\r\n return '';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn('RuleId').withTitle('RuleId').renderWith(function (data) {\r\n return '' + data + '';\r\n }).notSortable(),\r\n // DTColumnBuilder.newColumn('RuleType').withTitle('RuleType').renderWith(function (data) {\r\n // return '' + data + '';\r\n // }),\r\n DTColumnBuilder.newColumn('OrderByName').withTitle('Name').notSortable(),\r\n DTColumnBuilder.newColumn('Description').withTitle('Description').renderWith(function (data) {\r\n return '' + data + '';\r\n }).notSortable(),\r\n DTColumnBuilder.newColumn(null).withTitle('Priority Index').renderWith(function (data, type, full, meta) {\r\n \r\n vm.setPriorityIndex[meta.row] = data.PriorityIndex.toString();\r\n if(full.RuleType!=\"AssignFilter\"){\r\n return ' ';\r\n }\r\n return '';\r\n // return '' + data + '';\r\n }).notSortable()\r\n // DTColumnBuilder.newColumn('IsEnable').withTitle('IsEnable'), \r\n ];\r\n\r\n function toggleOne(selectedItems) {\r\n for (var id in selectedItems) {\r\n if (selectedItems.hasOwnProperty(id)) {\r\n vm.AssignationRuleList[id].IsEnable = selectedItems[id];\r\n }\r\n }\r\n \r\n }\r\n\r\n function changePriority(allActivity){\r\n for (var id in allActivity) {\r\n if (allActivity.hasOwnProperty(id)) {\r\n vm.AssignationRuleList[id].PriorityIndex = Number(allActivity[id]);\r\n }\r\n }\r\n\r\n }\r\n\r\n vm.SaveAssignationRule = function(){\r\n if(vm.AssignationRuleList.length > 0){\r\n AccountSettingService.SaveAssignationRule(loggedinUser, vm.AssignationRuleList, token, function (res) {\r\n if (res.data) {\r\n vm.showSuccess(\"Success\", \"Successfully Save Scheduling Rules\");\r\n $timeout(function () {\r\n $state.reload();\r\n }, 2000);\r\n }\r\n }, function (err) {\r\n vm.showFailure(\"Failed\", \"Unable to Save Scheduling Rule.\");\r\n });\r\n }\r\n\r\n }\r\n\r\n////// Bonus and penality\r\n\r\n vm.BonusList=[];\r\n vm.UpdateBonusList=[];\r\n vm.PenaltyList=[];\r\n vm.UpdatePenaltyList=[];\r\n vm.GetAllBonusPenalty = function () {\t\t\r\n AccountSettingService.GetAllBonusPenalty(loggedinUser, token).then(function (resp) {\r\n vm.BonusPenaltyList = resp.data;\r\n for(var i = 0; i < vm.BonusPenaltyList.length; i++)\r\n {\r\n if(vm.BonusPenaltyList[i].RuleType == \"Bonus\")\t\t\t\t\r\n vm.BonusList.push(vm.BonusPenaltyList[i]);\t\t\t\t\r\n else\r\n vm.PenaltyList.push(vm.BonusPenaltyList[i]);\r\n }\t\t\t\t\t\t\r\n });\r\n }\r\n vm.GetAllBonusPenalty();\r\n \r\n vm.UpdatePenaltyAmount = function(index,paneltyEnableDisable)\r\n {\t\r\n if(vm.PenaltyList[index].Amount==null || vm.PenaltyList[index].Amount==\"\")\r\n {\r\n vm.PenaltyList[index].edit=true;\r\n if(typeof(vm.PenaltyList[index].Amount) === \"undefined\")\r\n vm.showFailure(\"Failed\", \"Please valid amount\");\r\n else\r\n vm.showFailure(\"Failed\", \"Please enter amount\");\r\n return;\r\n }\r\n var pmessage = \"\";\r\n if(vm.PenaltyList[index].IsEnable)\r\n pmessage =\"Penalty has been enable successfully\";\r\n else\r\n pmessage =\"Penalty has been disable successfully\";\r\n \r\n var PenaltyDetails= {\r\n \"RuleId\": vm.PenaltyList[index].RuleId,\r\n \"RuleName\": vm.PenaltyList[index].RuleName,\r\n \"IsEnable\": vm.PenaltyList[index].IsEnable,\r\n \"Amount\": vm.PenaltyList[index].Amount\r\n }\r\n vm.UpdatePenaltyList.push(PenaltyDetails);\r\n AccountSettingService.UpdateBonusPenalty(vm.UpdatePenaltyList,loggedinUser, token).then(function (resp) {\r\n if(resp.data == \"Updated\" && resp.status == 200)\r\n {\r\n if(paneltyEnableDisable==\"paneltyEnableDisable\")\r\n vm.showSuccess(\"Success\", pmessage);\r\n else\r\n vm.showSuccess(\"Success\", \"Penalty has been successfully updated\");\r\n }\r\n else\r\n {\r\n vm.showFailure(\"Failed\", \"Penalty not updated\");\r\n }\r\n })\r\n }\r\n\r\n\r\n vm.UpdateBonusAmount = function(index,bonusEnableDisable){\t\t\t\r\n if(vm.BonusList[index].Amount==null || vm.BonusList[index].Amount==\"\")\r\n {\r\n vm.BonusList[index].edit=true;\r\n if(typeof(vm.BonusList[index].Amount) === \"undefined\")\r\n vm.showFailure(\"Failed\", \"Please valid amount\");\r\n else\r\n vm.showFailure(\"Failed\", \"Please enter amount\");\r\n return;\r\n }\r\n var bmessage = \"\";\r\n if(vm.BonusList[index].IsEnable)\r\n bmessage =\"Bonus has been enable successfully\";\r\n else\r\n bmessage =\"Bonus has been disable successfully\";\r\n \r\n var BonusDetails= {\r\n \"RuleId\": vm.BonusList[index].RuleId,\r\n \"RuleName\": vm.BonusList[index].RuleName,\r\n \"IsEnable\": vm.BonusList[index].IsEnable,\r\n \"Amount\": vm.BonusList[index].Amount\r\n }\r\n vm.UpdateBonusList.push(BonusDetails);\r\n AccountSettingService.UpdateBonusPenalty(vm.UpdateBonusList,loggedinUser, token).then(function (resp) {\r\n if(resp.data == \"Updated\" && resp.status == 200)\r\n {\t\r\n if(bonusEnableDisable==\"bonusEnableDisable\")\r\n vm.showSuccess(\"Success\", bmessage);\r\n else\t\t\t\r\n vm.showSuccess(\"Success\", \"Bonus has been successfully updated\");\r\n }\r\n else\r\n {\r\n vm.showFailure(\"Failed\", \"Bonus not updated\");\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n //// Notification\r\n vm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n if (vm.AlertType == 'main') {\r\n vm.eventType ='';\r\n }else if(vm.AlertType == 'transactional'){\r\n vm.eventType =$stateParams.eventType; \r\n }\r\n vm.mode = $stateParams.mode;\r\n vm.channelList = [\"SMS\",\"Email\",\"Notification\",\"WebNotification\"];\r\n vm.RoleList = [\"Project Manager\",\"Help Desk\",\"Supervisor\",\"Field Engineer\",\"Consumer\",\"Vendor Manager\"];\r\n vm.selectedRolesList = [];\r\n vm.channelList = [\"SMS\",\"Notifications\",\"Email\",\"WebNotification\"];\r\n vm.selectedChannelArray = '';\r\n vm.Role = $localStorage.loggedInUser_Role;\r\n vm.eventConfigurationArray = [];\r\n vm.dtInstance = {};\r\n vm.users=[];\r\n vm.toUsers=[];\r\n vm.toList=[];\r\n vm.mobileNo = '';\r\n vm.outsiderTransText = '';\r\n vm.showSuccess = $scope.$parent.$parent.main.showSuccess;\r\n vm.showFailure = $scope.$parent.$parent.main.showFailure;\r\n vm.showInfo =$scope.$parent.$parent.main.showInfo;\r\n vm.confirmTagModal =$scope.$parent.$parent.main.confirmTagModal;\r\n vm.outSidecheck1 = false;\r\n vm.AllConfigurayionList = '';\r\n //https://test.mymobiforce.com/assets/templates/36/JOB_ASSIGNED.html\r\n vm.mailMessagePath = MailUrl+'/assets/templates/'+'36'+'/';\r\n \r\n vm.GetAlertConfiguration = function(name,type){\r\n AccountSettingService.GetAlertConfiguration(loggedinUser,name,type,token).then(function(resp){\r\n if (resp && resp.status == 200) {\r\n vm.singleNotificationAlert = resp.data;\r\n vm.eventConfigurationArray = [];\r\n angular.forEach(vm.singleNotificationAlert.ListAlertTemplate, function(d){\r\n var editObject = {};\r\n editObject.channel = [];\r\n if (d) {\r\n editObject.check=true;\r\n editObject.role = d.Role;\r\n if (d.Role!='Outsider') {\r\n if (d.SMSEnabled) {\r\n editObject.channel.push(\"SMS\");\r\n editObject.smsText = d.SMSText;\r\n \r\n }if (d.EmailEnabled) {\r\n editObject.channel.push(\"Email\")\r\n }if (d.NotificationEnabled) {\r\n editObject.channel.push(\"Notifications\");\r\n editObject.smsText = d.NotificationText;\r\n }\r\n if (d.WebNotificationEnabled) {\r\n editObject.channel.push(\"WebNotification\");\r\n editObject.smsText = d.WebNotificationText;\r\n }\r\n vm.eventConfigurationArray.push(editObject);\r\n }else if (d.Role == 'Outsider') {\r\n vm.outSidecheck1 = true;\r\n vm.outsiderTransText = d.SMSText\r\n vm.toList = [];\r\n angular.forEach(d.UserOutSideContact, function(d){\r\n var objOutsider = {};\r\n if (d) {\r\n objOutsider.PersonalEmail = d.UserOutSideEmail;\r\n objOutsider.ContactNumber = d.UserOutSidePhone;\r\n vm.toList.push(objOutsider);\r\n }\r\n })\r\n // var emailArray = d.UserOutsideSystemEmail.split(\",\");\r\n // var mobileArray = d.UserOutSideSystemPhone.split(\",\");\r\n // vm.toList = [];\r\n // angular.forEach(emailArray,function(d){\r\n // var emailObj = [];\r\n // if (d!=\"\") {\r\n // emailObj.PersonalEmail = d;\r\n // vm.toList.push(emailObj);\r\n // }\r\n // })\r\n }\r\n \r\n }\r\n \r\n //console.log('vm.eventConfigurationArray',vm.eventConfigurationArray);\r\n })\r\n }\r\n })\r\n }\r\n \r\n vm.showTransactionalEdit =false;\r\n vm.EditAlerts = function(alertType,alertId,mode){\r\n if (alertType == 'transactional') {\r\n vm.alertType = alertType,\r\n vm.eventType = alertId,\r\n vm.mode = mode;\r\n if(vm.mode == true){\r\n vm.GetAlertConfiguration(vm.eventType,vm.alertType);\r\n }\r\n // $state.go('index.NotificationSettings',{\r\n // alertType:alertType,\r\n // eventType:alertId,\r\n // mode:true\r\n // },{\r\n // reload:true\r\n // })\r\n vm.showTransactionalEdit = true;\r\n }else if (alertType == 'SLA') {\r\n $state.go('index.SLASettings',{\r\n mode:true\r\n },{\r\n reload:true\r\n })\r\n \r\n }else if (alertType == 'Escalation') {\r\n $state.go('index.EscalationSettings',{\r\n mode:true,\r\n alertId:alertId\r\n },{\r\n reload:true\r\n })\r\n }\r\n \r\n }\r\n \r\n \r\n \r\n if (vm.mode == \"true\") {\r\n vm.mode = true;\r\n if(vm.AlertType == 'transactional'){\r\n vm.GetAlertConfiguration(vm.eventType,vm.AlertType);\r\n }\r\n \r\n }else{\r\n vm.mode = false;\r\n }\r\n vm.OpenTransactionalModal = function(){\r\n TransactionalModal = $uibModal.open({\r\n templateUrl: 'transactional-alert',\r\n scope: $scope,\r\n size:'lg'\r\n })\r\n }\r\n vm.CloseTransactionalModal = function(){\r\n TransactionalModal.close();\r\n }\r\n var confObject = {\r\n // check_1:'',\r\n // role_1:'',\r\n // channel_1:'',\r\n // emailP_1:'',\r\n // smsText_1:''\r\n }\r\n //vm.eventConfigurationArray.push(confObject);\r\n \r\n vm.AddEventsConfiguration = function(){\r\n var ele={};\r\n vm.eventConfigurationArray.push(ele);\r\n }\r\n vm.RemoveEventsConfiguration = function (index){\r\n vm.eventConfigurationArray.splice(index, 1);\r\n }\r\n \r\n \r\n \r\n \r\n // vm.GetEvent = function(event){\r\n // vm.eventType = event;\r\n // console.log('vm.eventType before',vm.eventType); \r\n // vm.CloseTransactionalModal();\r\n // console.log('vm.eventType after',vm.eventType); \r\n // }\r\n \r\n vm.OpenMailModal = function(){\r\n MailModal = $uibModal.open({\r\n templateUrl: 'mail-modal',\r\n scope: $scope,\r\n size:'lg'\r\n })\r\n }\r\n vm.CloseMailModal = function(){\r\n MailModal.close();\r\n }\r\n \r\n var confObject = {\r\n \r\n }\r\n vm.eventConfigurationArray.push(confObject);\r\n \r\n vm.AddEventsConfiguration = function(){\r\n var ele={};\r\n vm.eventConfigurationArray.push(ele);\r\n }\r\n vm.RemoveEventsConfiguration = function (index){\r\n vm.eventConfigurationArray.splice(index, 1);\r\n }\r\n // vm.storeSelectedRoles = function(role){\r\n \r\n // vm.selectedRolesList.push(vm.RoleList[role]);\r\n // }\r\n \r\n // vm.removeSelectedRoles = function (element) {\r\n // var matched = false;\r\n // angular.forEach(vm.selectedRolesList, function (d) {\r\n // if (d == element) {\r\n // matched = true;\r\n // return;\r\n // }\r\n // });\r\n // if (!matched) {\r\n // return element;\r\n // }\r\n // }\r\n vm.getUserSuggestion = function (val) {\r\n \r\n // vm.scheduleModel.toListMendtryErr=false;\r\n \r\n var re = /^[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*@[A-Za-z0-9]+([\\.\\-_]*[A-Za-z0-9]+)*\\.([A-Za-z]{2}|[A-Za-z]{3})$/;\r\n if (vm.users.length > 0) {\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}].concat(vm.users):vm.users;\r\n }\r\n vm.getUsers();\r\n return re.test(val)?[{FirstName:val.split(\"@\")[0], LastName:\"\", UserId:val}]:[];\r\n }\r\n \r\n vm.getUsers = function () {\r\n vm.users = [];\r\n ReportService.getUsers(loggedinUser, token, vm.createCallback(vm.users, [function (data) {\r\n //$log.log(data);\r\n }]));\r\n }\r\n \r\n vm.searchAsOr = function (searchText1) {\r\n return function (entry) {\r\n var splittedText = searchText1.split(\";\");\r\n if (splittedText != null && splittedText.length > 0) {\r\n var searchText = splittedText[splittedText.length - 1].trim();\r\n if (entry.FirstName.toLowerCase().indexOf(searchText.toLowerCase()) > -1\r\n || (entry.LastName !=null && entry.LastName.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n || entry.UserId.toLowerCase().indexOf(searchText.toLowerCase()) > -1)\r\n return entry;\r\n }\r\n }\r\n }\r\n vm.removeSelectedUsers = function (element) {\r\n var matched = false;\r\n angular.forEach(vm.toList, function (d) {\r\n if (d.PersonalEmail == element.PersonalEmail) {\r\n matched = true;\r\n return;\r\n }\r\n });\r\n if (!matched) {\r\n return element;\r\n }\r\n }\r\n vm.selectUserNameInToList = function (item,mobile) {\r\n if (item == '' && mobile == '') {\r\n vm.showInfo(\"Information\",\"Please enter email or mobile\");\r\n return;\r\n }\r\n var obj=[];\r\n if (item && item.length!=0) {\r\n obj.PersonalEmail = item;\r\n }\r\n \r\n if (mobile && mobile.length>0) {\r\n obj.ContactNumber = mobile; \r\n }else{\r\n angular.forEach(vm.users, function(d){\r\n if (d.PersonalEmail == item) {\r\n obj.ContactNumber = d.ContactNumber;\r\n }\r\n })\r\n }\r\n vm.toList.push(obj);\r\n vm.toUsers = [];\r\n vm.mobileNo = '';\r\n }\r\n vm.RemovefromList = function(index){\r\n vm.toList.splice(index,1);\r\n }\r\n \r\n vm.SaveEventConfiguration = function(){\r\n \r\n if (vm.config_form.$valid) {\r\n var obj = {};\r\n obj.AlertType = vm.AlertType;\r\n obj.AlertId = vm.eventType;\r\n var alertArray = [];\r\n angular.forEach(vm.eventConfigurationArray, function(d){\r\n var alertObject = {};\r\n if (d && d.check) {\r\n if (d.channel.indexOf('SMS')!=-1) {\r\n alertObject.SMSEnabled = true;\r\n alertObject.SMSText = d.smsText;\r\n }else{\r\n alertObject.SMSEnabled = false;\r\n alertObject.SMSText = \"\";\r\n }\r\n if (d.channel.indexOf('Email')!=-1) {\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailTemplateName =vm.eventType;\r\n alertObject.EmailSubject = vm.eventType;\r\n }else{\r\n alertObject.EmailEnabled = false;\r\n alertObject.EmailTemplateName =\"\";\r\n alertObject.EmailSubject = \"\";\r\n }if (d.channel.indexOf('Notifications')!=-1) {\r\n alertObject.NotificationEnabled = true;\r\n alertObject.NotificationText =d.smsText;\r\n }else{\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText =\"\";\r\n }if (d.channel.indexOf('WebNotification')!=-1) {\r\n alertObject.WebNotificationEnabled = true;\r\n alertObject.WebNotificationText =d.smsText;\r\n }else{\r\n alertObject.WebNotificationEnabled = false;\r\n alertObject.WebNotificationText =\"\";\r\n }if (d.channel.indexOf('WhatsApp')!=-1) {\r\n alertObject.WhatsAppEnabled = true;\r\n alertObject.WhatsAppText =d.smsText;\r\n }else{\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText =\"\";\r\n }\r\n alertObject.Role = d.role;\r\n alertObject.UserOutSideContact=[];\r\n alertObject.UserOutSideContact.UserOutSideEmail = \"\";\r\n alertObject.UserOutSideContact.UserOutSidePhone = \"\";\r\n alertArray.push(alertObject);\r\n }\r\n })\r\n \r\n if (vm.outSidecheck1) {\r\n if (vm.toList && vm.toList.length>0) {\r\n var alertObject = {}\r\n var outSiderModel = [];\r\n angular.forEach(vm.toList, function(d){\r\n var objModel = {};\r\n if (d) {\r\n objModel.UserOutSideEmail = d.PersonalEmail;\r\n objModel.UserOutSidePhone = d.ContactNumber;\r\n outSiderModel.push(objModel);\r\n }\r\n })\r\n \r\n alertObject.UserOutSideContact = outSiderModel;\r\n alertObject.Role = \"Outsider\";\r\n alertObject.SMSText = vm.outsiderTransText;\r\n alertObject.SMSEnabled = true;\r\n alertObject.EmailEnabled = true;\r\n alertObject.EmailSubject = vm.eventType;\r\n alertObject.EmailTemplateName = vm.eventType;\r\n alertObject.NotificationEnabled = false;\r\n alertObject.NotificationText = \"\";\r\n alertObject.WhatsAppEnabled = false;\r\n alertObject.WhatsAppText = \"\";\r\n alertArray.push(alertObject);\r\n }else{\r\n vm.showInfo(\"Information\",\"Please select outside users or uncheck the button\");\r\n return;\r\n }\r\n }\r\n obj.ListAlertTemplate = alertArray;\r\n //console.log('obj',obj);\r\n AccountSettingService.CreateTransactionalAlert(loggedinUser,token,obj).then(function(resp){\r\n if (resp && resp.data) {\r\n vm.showSuccess(\"Success\",vm.eventType +\"-Transactional Alert has been created\");\r\n $timeout(function(){\r\n vm.showTransactionalEdit = false;\r\n // $state.go('index.NotificationSettings',{\r\n // alertType:'main',\r\n // eventType:'',\r\n // mode:''\r\n // },{\r\n // reload:true\r\n // });\r\n },1000)\r\n }else{\r\n vm.showFailure(\"Failure\",vm.eventType +\"-Transactional Alert creation failed due to some technical error\");\r\n }\r\n })\r\n }else{\r\n vm.config_form.submitted = true;\r\n }\r\n \r\n }\r\n \r\n \r\n vm.GetAllAlertConfiguration = function(){\r\n AccountSettingService.GetAllAlertConfiguration(loggedinUser,token).then(function(resp){\r\n if (resp && resp.status == 200 && resp.data && resp.data.length>0) {\r\n vm.AllConfigurationList = resp.data;\r\n //console.log('vm.AllConfigurayionList',vm.AllConfigurationList);\r\n }else{\r\n vm.showFailure(\"Error\",\"No Configuration found\")\r\n }\r\n })\r\n }\r\n \r\n vm.DeleteAlertConfiguration = function(name,type){\r\n if(name){\r\n vm.confirmTagModal(\"Do you want to delete selected configuration?\",function(){\r\n if (type=='transactional') {\r\n AccountSettingService.DeleteAlertConfiguration(loggedinUser,name,type,token).then(function(resp){\r\n if (resp) {\r\n vm.showSuccess(\"Success\",\"Alert has been deleted successfully\");\r\n $timeout(function(){\r\n vm.GetAllAlertConfiguration();\r\n },2000)\r\n \r\n }else{\r\n vm.showFailure(\"Error\",\"Technical error occured\")\r\n }\r\n })\r\n }else if(type == 'Escalation'){\r\n AccountSettingService.DeleteEscalationAlertConfiguration(loggedinUser,name,type,token).then(function(resp){\r\n if (resp) {\r\n vm.showSuccess(\"Success\",\"Alert has been deleted successfully\");\r\n $timeout(function(){\r\n vm.GetAllAlertConfiguration();\r\n },2000)\r\n \r\n }else{\r\n vm.showFailure(\"Error\",\"Technical error occured\")\r\n }\r\n })\r\n \r\n }else if(type == 'SLA'){\r\n AccountSettingService.DeleteSLAAlertConfiguration(loggedinUser,name,type,token).then(function(resp){\r\n if (resp) {\r\n vm.showSuccess(\"Success\",\"Alert has been deleted successfully\");\r\n $timeout(function(){\r\n vm.GetAllAlertConfiguration();\r\n },2000)\r\n \r\n }else{\r\n vm.showFailure(\"Error\",\"Technical error occured\")\r\n }\r\n })\r\n }\r\n })\r\n }\r\n \r\n }\r\n \r\n //Global Call functions\r\n // if (vm.AlertType == 'main') {\r\n // vm.GetAllAlertConfiguration();\r\n // }\r\n \r\n \r\n vm.dtOptions = DTOptionsBuilder.newOptions().withDOM(\r\n '<\"html5buttons\"B>lTfrgitp')\r\n .withButtons([]).withPaginationType(\r\n 'full_numbers').withOption('lengthChange', false)\r\n .withOption('searching',true)\r\n .withOption('initComplete', function () {\r\n $('.dataTables_filter input').unbind();\r\n });\r\n // .withOption('order', [1, 'asc']);\r\n \r\n vm.dtColumnDefs = [\r\n DTColumnDefBuilder.newColumnDef(0).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(1).notSortable(),\r\n DTColumnDefBuilder.newColumnDef(2).notSortable()\r\n ];\r\n \r\n\r\n }\r\n});\r\nfunction checktwodecimal(el){\r\n\tvar ex = /^\\d*\\.?\\d{0,2}$/;\r\n\tif(ex.test(el.value)==false){\r\n\t el.value = el.value.substring(0,el.value.length - 1);\r\n\t }\r\n }\nangular.module('inspinia').service('AccessUserViewService', function (ApiURL,SchedulingAPI, $window, $http) {\r\n\r\n \r\n\r\n\r\n})\r\n\r\n\r\n\nangular.module('inspinia').controller('AccessUserViewController', function (AccessUserViewService, $resource, toaster, $filter, $compile, $q, $state, $localStorage, $scope, DTOptionsBuilder, DTColumnBuilder, $uibModal, $timeout) {\r\n\r\n\tvar vm = this;\r\n\tvar loggedinUser = $localStorage.loggedInUserId;\r\n\tvar token = $localStorage.token;\r\n\tif (!loggedinUser) {\r\n\t\t$state.go('Login', {\r\n\t\t\treload: true\r\n\t\t});\r\n\t} else {\r\n\t\tvm.showSuccess = $scope.$parent.main.showSuccess;\r\n\t\tvm.showFailure = $scope.$parent.main.showFailure;\r\n\t\tvm.toaster_success = $scope.$parent.$parent.main.toaster_success;\r\n\t\tvm.toaster_fail = $scope.$parent.$parent.main.toaster_fail;\r\n\t\tvm.toaster_info = $scope.$parent.$parent.main.toaster_info;\r\n\t\tvm.createCallback = $scope.$parent.$parent.main.createCallback;\r\n\t\tvm.loggedInUserRole = $localStorage.loggedInUser_Role;\r\n\t\t$scope.isNavCollapsed = true;\r\n\t\t$scope.isCollapsed = true;\r\n\t\t$scope.isCollapsedHorizontal = false;\r\n\t\tvm.dtInstance = {};\r\n\t\tvm.selectSingle = false;\r\n\t\tvm.disableExceptionButton = false;\r\n\t\tvm.ticketPageListCount = 10;\r\n\t\tvm.pageListCounts = [10, 20, 30, 50];\r\n\t\tvm.scheduleExceptionListNewLength=0;\r\n\t\tvar PageIndex = 1;\r\n\t\tvar PageSize = 10; \r\n\t\tvm.SearchByAccountName = '';\r\n\t\tvm.ExceptionType = '';\r\n\t\tvm.exceptionState = '';\r\n\t\tvm.showAllAccounts = [];\r\n\t\tvm.UserId='';\r\n\r\n\t\t$scope.dates = { startDate: moment().subtract(0, 'days'), endDate: moment() };\r\n\t\tvar startDate = moment().subtract(0, 'days').format(\"YYYY-MM-DD\");\r\n\t\tvar endDate = moment().format(\"YYYY-MM-DD\");\r\n\r\n\t\t$scope.ranges = {\r\n\t\t\t'Today': [moment(), moment()],\r\n\t\t\t'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n\t\t\t'Last 7 days': [moment().subtract(7, 'days'), moment()],\r\n\t\t\t'Last 30 days': [moment().subtract(30, 'days'), moment()],\r\n\t\t\t'This month': [moment().startOf('month'), moment()]\r\n\t\t};\r\n\r\n\t\t$scope.dateRangeChange = function (ev, picker) {\r\n\t\t\t// console.log(ev, picker);\r\n\t\t\tstartDate = picker.startDate.format(\"YYYY-MM-DD\");\r\n\t\t\tendDate = picker.endDate.format(\"YYYY-MM-DD\");\r\n\t\t\tvm.getAllJobForExceptionList();\r\n\r\n\r\n\t\t};\r\n\r\n\t\t\r\n\t\t$scope.totalTableTickets = 0;\r\n\t\t$scope.ticketTablePerPage = vm.ticketPageListCount ; \r\n\t\t$scope.TicketTablepagination = {\r\n\t\t current: 1\r\n\t\t};\r\n\t\r\n\t\r\n\t\tvm.changeTicketPageListCount = function() { \r\n\t\t $scope.ticketTablePerPage = vm.ticketPageListCount;\r\n\t\t PageSize = $scope.ticketTablePerPage;\r\n\t\t $scope.TicketTablepageChanged($scope.TicketTablepagination.current);\r\n\t\t vm.selectAll = false;\r\n\t\t}\r\n\r\n\t\tPageIndex=$scope.TicketTablepagination.current;\r\n\t\t$scope.TicketTablepageChanged = function(newPage) { \r\n\t\t PageIndex = newPage; \r\n\t\t vm.getAllJobForExceptionList();\r\n\t\t};\r\n\r\n\t\tvm.scheduleExceptionListNew=[];\r\n \r\n\t\tvm.AddNewProfileModalOpen = function () {\r\n\t\t\tvm.addnewprofile = $uibModal.open({\r\n\t\t\t\ttemplateUrl: 'AddNewProfile.html',\r\n\t\t\t\tsize: 'lg',\r\n\t\t\t\tbackdrop: 'static',\r\n\t\t\t\tscope: $scope,\r\n\t\t\t});\r\n\t\t};\r\n \r\n\tvm.CloseNewProfileModal = function () {\r\n\tvm.addnewprofile.close();\r\n\tvm.clearForm();\r\n\t}\r\n\tvm.ExistingProfile = \"Dispatch Head\"; \r\n\r\n\tvm.EditProfile = function (index) {\r\n\t\t// Get the selected profile data\r\n\t\tvm.EditedProfile = angular.copy(vm.Assignedprofile[index]);\r\n\t\tvm.editedProfileIndex = index;\r\n\t\r\n\t\t// Populate modal fields\r\n\t\tvm.FirstName = vm.EditedProfile.name.split(\" \")[0];\r\n\t\tvm.LastName = vm.EditedProfile.name.split(\" \")[1];\r\n\t\tvm.Username = vm.EditedProfile.username;\r\n\t\tvm.Role = vm.EditedProfile.role;\r\n\t\tvm.Profile = vm.EditedProfile.profile;\r\n\t\tvm.IsActive = vm.EditedProfile.customChecked;\r\n\t\r\n\t\t// Open the modal for editing\r\n\t\tvm.addnewprofile = $uibModal.open({\r\n\t\t\ttemplateUrl: 'AddNewProfile.html',\r\n\t\t\tsize: 'lg',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tscope: $scope,\r\n\t\t});\r\n\t};\r\n\tvm.profile = [\r\n\t\t{ name: \"Dispatch Head\" },\r\n\t\t{ name: \"Account Manager\" },\r\n\t\t{ name: \"Administrator\" },\r\n\t\t{ name: \"Branch Service Manager\" },\r\n\t\t{ name: \"Category Manager\" },\r\n\t\t{ name: \"Community Manager\" },\r\n\t\t{ name: \"Customer\" },\r\n\t\t{ name: \"Defective Management\" },\r\n\t\t{ name: \"Dispatch Manager\" },\r\n\t\t{ name: \"Dispatch Supervisor\" },\r\n\t\t{ name: \"Dispatch Team Lead\" },\r\n\t\t{ name: \"Field Engineer\" },\r\n\t\t{ name: \"Freelancer Dispatcher\" },\r\n\t\t{ name: \"Help Desk\" },\r\n\t\t{ name: \"Higher Management\" },\r\n\t\t{ name: \"Invoice Manager\" },\r\n\t\t{ name: \"Onboarding Head\" },\r\n\t\t{ name: \"Onboarding Manager\" },\r\n\t\t{ name: \"Onboarding Team Lead\" },\r\n\t\t{ name: \"Project Manager\" },\r\n\t\t{ name: \"Regional Service Manager\" },\r\n\t\t{ name: \"Supervisor\" },\r\n\t\t{ name: \"Vendor Manager\" },\r\n\t\t{ name: \"Warehouse Manager\" }\r\n\t];\r\n\t\r\n\r\n\t// vm.SaveProfile = function () {\r\n\t// \t// Create or update profile\r\n\t// \tvar newProfile = {\r\n\t// \t\tname: vm.FirstName + \" \" + vm.LastName,\r\n\t// \t\tusername: vm.Username,\r\n\t// \t\trole: vm.Role,\r\n\t// \t\tcustomChecked: vm.IsActive,\r\n\t// \t\tprofile: vm.selectedProfile.name || vm.selectedProfile,\r\n\t// \t\taddress: vm.Address + \", \" + vm.City + \", \" + vm.State + \" - \" + vm.Pincode,\r\n\t// \t\tmailid: vm.MailID,\r\n\r\n\t// \t};\r\n\t\r\n\t// \tif (vm.editedProfileIndex !== undefined) {\r\n\t// \t\t// Update existing profile\r\n\t// \t\tvm.Assignedprofile[vm.editedProfileIndex] = newProfile;\r\n\t// \t} else {\r\n\t// \t\t// Add new profile\r\n\t// \t\tvm.Assignedprofile.push(newProfile);\r\n\t// \t}\r\n\t\r\n\t// \tvm.CloseNewProfileModal();\r\n\t// };\r\n\r\n\tvm.SaveProfile = function () {\r\n\t\t// Prepare the address conditionally\r\n\t\tvar addressParts = [];\r\n\t\tif (vm.Address) addressParts.push(vm.Address);\r\n\t\tif (vm.City) addressParts.push(vm.City);\r\n\t\tif (vm.State) addressParts.push(vm.State);\r\n\t\tif (vm.Pincode) addressParts.push(vm.Pincode);\r\n\t\r\n\t\tvar fullAddress = addressParts.length ? addressParts.join(\", \") : \"\"; // Set \"N/A\" if no address\r\n\t\r\n\t\t// Create or update profile\r\n\t\tvar newProfile = {\r\n\t\t\tname: vm.FirstName + \" \" + vm.LastName,\r\n\t\t\tusername: vm.Username,\r\n\t\t\trole: vm.Role,\r\n\t\t\tcustomChecked: vm.IsActive,\r\n\t\t\tprofile: vm.selectedProfile.name || vm.selectedProfile,\r\n\t\t\taddress: fullAddress,\r\n\t\t\tmailid: vm.MailID,\r\n\t\t};\r\n\t\r\n\t\tif (vm.editedProfileIndex !== undefined) {\r\n\t\t\t// Update existing profile\r\n\t\t\tvm.Assignedprofile[vm.editedProfileIndex] = newProfile;\r\n\t\t} else {\r\n\t\t\t// Add new profile\r\n\t\t\tvm.Assignedprofile.push(newProfile);\r\n\t\t}\r\n\t\r\n\t\tvm.CloseNewProfileModal();\r\n\t};\r\n\t\r\n\r\n\tvm.clearForm = function () {\r\n\t\tvm.FirstName = '';\r\n\t\tvm.LastName = '';\r\n\t\tvm.Username = '';\r\n\t\tvm.Role = '';\r\n\t\tvm.selectedProfile = '';\r\n\t\tvm.IsActive = false;\r\n\t\tvm.editedProfileIndex = undefined;\r\n\t};\r\n\tvm.Assignedprofile = [\r\n\t\t{ name: \"Akshay Singh\", username: \"akshaysingh44\", role: \"Dispatch Head\", customChecked: true, profile: \"Logistics Management\", isSelected: false },\r\n\t\t{ name: \"Amit Sharma\", username: \"AmitSharma123\", role: \"Account Manager\", customChecked: true, profile: \"Finance & Accounting\", isSelected: false },\r\n\t\t{ name: \"Ajay Kumar\", username: \"ajaykumar\", role: \"Administrator\", customChecked: true, profile: \"System Administration\", isSelected: false },\r\n\t\t{ name: \"Sanjay Pal\", username: \"sanjaypal66\", role: \"Branch Service Manager\", customChecked: true, profile: \"Branch Operations\", isSelected: false },\r\n\t\t{ name: \"Ravi Verma\", username: \"raviverma99\", role: \"Category Manager\", customChecked: false, profile: \"Product & Category Management\", isSelected: false },\r\n\t\t{ name: \"Pooja Mishra\", username: \"poojamishra11\", role: \"Community Manager\", customChecked: true, profile: \"Customer Engagement & Support\", isSelected: false },\r\n\t\t{ name: \"Rohit Sharma\", username: \"rohitsharma23\", role: \"Customer\", customChecked: false, profile: \"Client Relations\", isSelected: false },\r\n\t\t{ name: \"Suresh Yadav\", username: \"sureshyadav77\", role: \"Defective Management\", customChecked: false, profile: \"Quality Assurance\", isSelected: false },\r\n\t\t{ name: \"Nitin Chawla\", username: \"nitinchawla55\", role: \"Dispatch Manager'\", customChecked: true, profile: \"Logistics & Distribution\", isSelected: false },\r\n\t\t{ name: \"Anjali Kapoor\", username: \"anjalikapoor\", role: \"Dispatch Supervisor\", customChecked: true, profile: \"Fleet Operations\", isSelected: false },\r\n\t\t{ name: \"Vikas Mehra\", username: \"vikasmehra88\", role: \"Dispatch Team Lead\", customChecked: false, profile: \"Supply Chain & Logistics\", isSelected: false },\r\n\t\t{ name: \"Kiran Joshi\", username: \"kiranjoshi22\", role: \"Field Engineer\", customChecked: true, profile: \"Technical Services\", isSelected: false },\r\n\t\t{ name: \"Deepak Thakur\", username: \"deepakthakur\", role: \"Freelancer Dispatcher\", customChecked: true, profile: \"IT & Customer Support\", isSelected: false },\r\n\t\t{ name: \"Meera Nair\", username: \"meeranair55\", role: \"Help Desk\", customChecked: false, profile: \"Human Resources\", isSelected: false },\r\n\t\t{ name: \"Arjun Malhotra\", username: \"arjunmalhotra\", role: \"Invoice Manager'\", customChecked: true, profile: \"Billing & Accounts\", isSelected: false }\r\n\t ];\r\n\r\n\t\r\n\r\n\t \r\n\r\n\r\nvm.CloseCloneModal = function () {\r\nvm.cloneprofile.close();\r\n}\r\nvm.DeleteProfile = function(profile) {\r\n var index = vm.profiles.indexOf(profile);\r\n if (index !== -1) {\r\n vm.profiles.splice(index, 1);\r\n }\r\n};\r\n\r\n// vm.OpenProfileOverview = function(){\r\n// \t$state.go('index.PermissionSetDetailView',{\r\n\t \r\n// \t}, { reload: true });\r\n \r\n// }\r\n \r\nvm.states = {\r\n\t\"Uttar Pradesh\": {\r\n\t \"Lucknow\": [\"226001\", \"226002\"],\r\n\t \"Kanpur\": [\"208001\", \"208002\"]\r\n\t},\r\n\t\"Maharashtra\": {\r\n\t \"Mumbai\": [\"400001\", \"400002\"],\r\n\t \"Pune\": [\"411001\", \"411002\"]\r\n\t},\r\n\t\"Karnataka\": {\r\n\t \"Bangalore\": [\"560001\", \"560002\"],\r\n\t \"Mysore\": [\"570001\", \"570002\"]\r\n\t}\r\n };\r\n\r\n vm.filteredCities = [];\r\n vm.filteredPincodes = [];\r\n\r\n vm.updateCities = function() {\r\n\tvar selectedState = vm.State;\r\n\tvm.filteredCities = Object.keys(vm.states[selectedState] || {});\r\n\tvm.City = \"\";\r\n\tvm.Pincode = \"\";\r\n\tvm.filteredPincodes = [];\r\n };\r\n\r\n vm.updatePincodes = function() {\r\n\tvar selectedState = vm.State;\r\n\tvar selectedCity = vm.City;\r\n\tvm.filteredPincodes = vm.states[selectedState][selectedCity] || [];\r\n\tvm.Pincode = \"\";\r\n };\r\n\r\n\r\n\t}\r\n});\n/**\r\n * INSPINIA - Responsive Admin Theme\r\n * 2.7.1\r\n *\r\n * Custom scripts\r\n */\r\n\r\nangular.element(document).ready(function ($timeout) {\r\n\r\n\r\n // Full height of sidebar\r\n function fix_height() {\r\n var heightWithoutNavbar = angular.element(\"body > #wrapper\").height() - 61;\r\n angular.element(\".sidebar-panel\").css(\"min-height\", heightWithoutNavbar + \"px\");\r\n\r\n var navbarHeight = angular.element('nav.navbar-default').height();\r\n var wrapperHeight = angular.element('#page-wrapper').height();\r\n\r\n if(navbarHeight > wrapperHeight){\r\n angular.element('#page-wrapper').css(\"min-height\", navbarHeight + \"px\");\r\n }\r\n\r\n if(navbarHeight < wrapperHeight){\r\n angular.element('#page-wrapper').css(\"min-height\", angular.element(window).height() + \"px\");\r\n }\r\n\r\n if (angular.element('body').hasClass('fixed-nav')) {\r\n if (navbarHeight > wrapperHeight) {\r\n angular.element('#page-wrapper').css(\"min-height\", navbarHeight + \"px\");\r\n } else {\r\n angular.element('#page-wrapper').css(\"min-height\", angular.element(window).height() - 60 + \"px\");\r\n }\r\n }\r\n\r\n }\r\n\r\n angular.element(window).bind(\"load resize scroll\", function() {\r\n if(!angular.element(\"body\").hasClass('body-small')) {\r\n fix_height();\r\n }\r\n });\r\n\r\n // Move right sidebar top after scroll\r\n angular.element(window).scroll(function(){\r\n if (angular.element(window).scrollTop() > 0 && !angular.element('body').hasClass('fixed-nav') ) {\r\n angular.element('#right-sidebar').addClass('sidebar-top');\r\n } else {\r\n angular.element('#right-sidebar').removeClass('sidebar-top');\r\n }\r\n });\r\n\r\n $timeout(function(){\r\n fix_height();\r\n });\r\n\r\n // Minimalize menu when screen is less than 768px\r\n angular.element(window).bind(\"load resize\", function() {\r\n if (angular.element(document).width() < 769) {\r\n angular.element('body').addClass('body-small')\r\n } else {\r\n angular.element('body').removeClass('body-small')\r\n }\r\n })\r\n\r\n});\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('inspinia')\r\n .run(runBlock);\r\n\r\n /** @ngInject */\r\n function runBlock($log, $localStorage, $state, $rootScope) {\r\n\r\n $log.debug('runBlock end');\r\n $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {\r\n if(fromState.name == 'Login') {\r\n if (toState.name == 'VerifyUser') {\r\n return;\r\n } else if (toState.name == 'Register') {\r\n return;\r\n }\r\n else if (angular.isUndefined($localStorage.loggedInUserId)) {\r\n event.preventDefault();\r\n }\r\n }\r\n });\r\n }\r\n\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n var url = 'https://login.mymobiforce.com';\r\n var nonsslurl = 'http://login.mymobiforce.com';\r\n var rurl = 'https://login.mymobiforce.com';\r\n var rocketUrl = 'https://msg.mymobiforce.com';\r\n var wsRocketUrl = 'wss://msg.mymobiforce.com/websocket';\r\n angular\r\n .module('inspinia').constant('ApiURL', url + '/coreapi')\r\n .constant('DashboardURL', rurl + '/DashboardAPI')\r\n .constant('RocketChatURL', rocketUrl)\r\n .constant('WsRocketUrl', wsRocketUrl)\r\n .constant('ActivityURL', url + '/ActivityAPI')\r\n .constant('LocationURL', url + '/LocationAPI')\r\n .constant('MMFCRMURL', url + '/MMFCRMAPI')\r\n .constant('FreelancerURL', url + '/FreelancerAPI')\r\n .constant('PublicApiURL', url + '/publicapi')\r\n .constant('SchedulingAPI', url + '/SchedulingAPI')\r\n .constant('CMSURL', nonsslurl + ':8082')\r\n .constant('UIURL', url)\r\n .constant('CMSMediaUrl', url + '/assets/images/')\r\n .constant('CMSToken', 'IHocN6TvVxQGe4PdHdA7eLlcTiN3i8kS')\r\n .constant('CMSAminToken', 'STgP0RZT2Vh5FaTFSPPnCK4gJHtLa0ue')\r\n .constant('ImageUrl', url + '/coreapi/Test')\r\n .constant('InvoiceUrl', url + '/coreapi/Reports')\r\n .constant('userauthURL', url + '/userauthapi')\r\n .constant('referalapi', url + '/smsreferalapi')\r\n .constant('CronUrl', nonsslurl + ':8083')\r\n .constant('MailUrl', url)\r\n .constant('paymentsapi', url + '/paymentsapi')\r\n .constant('IntegrationAPI', url + '/integrationAPI')\r\n .constant('RocketURl', url + '/RocketChatIntegrationAPI')\r\n .constant('AcessoriesURL', url + '/MMFAcessoriesPartsAPI')\r\n .constant('CampaignURL', url + '/CampaignAPI')\r\n .constant('StaffSchedulingAPI', url + '/StaffSchedulingAPI')\r\n .constant('IntegrationHubURL', url + '/IntegrationHubKenstarAPI')\r\n .constant('IntegrationHubTestURL', url + '/IntegrationHubTestAPI')\r\n .constant('AckoURL', url + '/acko')\r\n .constant('AlertURL', url + '/AlertScheduleHandlerAPI');\r\n\r\n angular\r\n .module('inspinia')\r\n .config(routerConfig);\r\n\r\n /** @ngInject */\r\n // function routerConfig($stateProvider, $urlRouterProvider, $httpProvider, dropzoneOpsProvider, $sceProvider, $crypthmacProvider) {\r\n function routerConfig($stateProvider, $urlRouterProvider, $httpProvider, dropzoneOpsProvider, $sceProvider, $compileProvider) {\r\n\r\n $compileProvider.aHrefSanitizationWhitelist(/^\\s*(https?|http?|local|data):/);\r\n\r\n $stateProvider\r\n .state('index', {\r\n abstract: true,\r\n url: \"/index\",\r\n templateUrl: \"app/components/common/content.html\"\r\n })\r\n .state('public', {\r\n abstract: true,\r\n url: \"/index\",\r\n templateUrl: \"app/components/common/public_content.html\"\r\n })\r\n .state('Login', {\r\n url: \"/Login\",\r\n templateUrl: \"app/Login/login.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n }\r\n })\r\n .state('FreelancerLogin', {\r\n url: \"/FreelancerLogin\",\r\n templateUrl: \"app/Login2Factor/Login2Factor.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n }\r\n })\r\n .state('ConsumerLogin', {\r\n url: \"/ConsumerLogin\",\r\n templateUrl: \"app/ConsumerLogin/consumerlogin.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n }\r\n })\r\n .state('index.ConsumerQuery', {\r\n url: \"/ConsumerQuery\",\r\n templateUrl: \"app/ConsumerQuery/ConsumerQuery.html\",\r\n controller: 'ConsumerQueryController as cntrlconsumerquery'\r\n })\r\n .state('Forgot', {\r\n url: \"/Forgot\",\r\n templateUrl: \"app/Forgot password/forgot_password.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n }\r\n })\r\n .state('MobiEngage', {\r\n url: \"/MobiEngage/\",\r\n templateUrl: \"app/MobiEngage/MobiEngage.html\",\r\n })\r\n .state('index.bulkuploadCMS', {\r\n url: \"/bulkuploadCMS\",\r\n templateUrl: \"app/bulkuploadCMS/bulkupload.html\",\r\n controller: 'BulkUploadCMSController as bulkupload'\r\n })\r\n .state('index.bulkuploadUser', {\r\n url: \"/bulkuploadUser\",\r\n templateUrl: \"app/bulkuploadUser/bulkupload.html\",\r\n controller: 'BulkUploadUserController as bulkupload'\r\n })\r\n .state('index.bulkuploadCustomer', {\r\n url: \"/bulkuploadCustomer\",\r\n templateUrl: \"app/bulkuploadCustomer/bulkupload.html\",\r\n controller: 'BulkUploadCustomerController as bulkupload'\r\n })\r\n .state('index.bulkuploadCustomerLatest', {\r\n url: \"/bulkuploadCustomerLatest\",\r\n templateUrl: \"app/bulkuploadCustomerLatest/bulkuploadLatest.html\",\r\n controller: 'BulkUploadCustomerLatestController as bulkupload'\r\n })\r\n .state('index.bulkuploadinvitation', {\r\n url: \"/bulkuploadinvitation\",\r\n templateUrl: \"app/bulkuploadinvitation/bulkuploadinvite.html\",\r\n controller: 'BulkUploadInviteController as bulkupload'\r\n })\r\n .state('Business_Register', {\r\n url: \"/BusinessRegister\",\r\n templateUrl: \"app/Business Register/businessRegister.html\",\r\n controller: 'BusinessRegisterController as register'\r\n })\r\n //AutoScheduleSettings\r\n .state('index.AutoScheduleSettings', {\r\n url: \"/AutoScheduleSettings\",\r\n templateUrl: \"app/AutoScheduleSettings/AutoScheduleSettings.html\",\r\n controller: 'AutoScheduleSettingsController as AutoScheduleSettingsCtrl'\r\n })\r\n\r\n //OpenBucketSettings\r\n .state('index.OpenBucketSettings', {\r\n url: \"/OpenBucketSettings\",\r\n templateUrl: \"app/OpenBucketSettings/OpenBucketSettings.html\",\r\n controller: 'OpenBucketSettingsController as OpenBucketSettingsCtrl'\r\n })\r\n //CentralHelpdesk \r\n .state('index.CentralHDConfig', {\r\n url: \"/CentralHDConfig\",\r\n templateUrl: \"app/CentralHDConfig/CentralHelpdeskConfig.html\",\r\n controller: 'CentralHelpdeskConfigController as CentralHelpdeskCtrl'\r\n })\r\n .state('index.CentralHDManualAssignation', {\r\n url: \"/Jobs/CentralHDManualAssignation\",\r\n templateUrl: \"app/CentralHDManualAssignation/CentralHDManualAssignation.html\",\r\n controller: 'CentralHDManualAssignationController as manualAssignation'\r\n })\r\n .state('index.CentralHDTicketsView', {\r\n url: \"/Jobs/CentralHDTicketsView\",\r\n templateUrl: \"app/CentralHDTicketsView/CentralHDTicketsView.html\",\r\n controller: 'CentralHDTicketsViewController as jobTicketCopy'\r\n })\r\n .state('index.CapacityGapAnalysis', {\r\n url: \"/CapacityGapAnalysis\",\r\n templateUrl: \"app/CapacityGapAnalysis/CapacityGapAnalysis.html\",\r\n controller: 'CapacityGapAnalysisController as capacitygapanalysis'\r\n })\r\n .state('index.ComplaintCaseList', {\r\n url: \"/ComplaintCaseList\",\r\n templateUrl: \"app/ComplaintCaseList/ComplaintCaseList.html\",\r\n controller: 'ComplaintCaseListController as complaintCtrl'\r\n })\r\n .state('index.DashboardReportList', {\r\n url: \"/DashboardReportList\",\r\n templateUrl: \"app/DashboardReportList/dashboardReportList.html\",\r\n controller: 'dashboardReportListController as dashReportCtrl'\r\n })\r\n .state('index.WidgetCanvas', {\r\n url: \"/WidgetCanvas\",\r\n templateUrl: \"app/WidgetCanvas/widgetCanvas.html\",\r\n controller: 'widgetCanvasController as widgetCtrl'\r\n })\r\n .state('index.ServiceCenterList', {\r\n url: \"/ServiceCenterList\",\r\n templateUrl: \"app/ServiceCenterList/ServiceCenterList.html\",\r\n controller: 'ServiceCenterListController as Servicelistlistctrl'\r\n })\r\n .state('index.CustomerCRMList', {\r\n url: \"/CustomerCallBooking\",\r\n templateUrl: \"app/CustomerCRMList/CustomerCRMList.html\",\r\n controller: 'CustomerCRMListController as customercrmlistctrl'\r\n })\r\n .state('index.DirectSaleToCustomer', {\r\n url: \"/DirectSaleToCustomer\",\r\n templateUrl: \"app/DirectSaleToCustomer/DirectSaleToCustomer.html\",\r\n controller: 'DirectSaleToCustomerController as directsalecntrl'\r\n })\r\n .state('index.OrderDetailView', {\r\n url: \"/OrderDetailView/:order_id\",\r\n templateUrl: \"app/OrderDetailView/OrderDetailView.html\",\r\n controller: 'OrderDetailViewController as OrderDetailsCtrl'\r\n })\r\n .state('index.WareHouseOrderDetailView', {\r\n url: \"/WareHouseOrderDetailView/:order_id\",\r\n templateUrl: \"app/WareHouseOrderDetailView/WareHouseOrderDetailView.html\",\r\n controller: 'WareHouseOrderDetailViewController as WareOrderDetailsCtrl'\r\n })\r\n .state('index.ReportDetail', {\r\n url: \"/Detail/:Type/:report_id\",\r\n templateUrl: \"app/ReportDetail/reportDetail.html\",\r\n controller: 'reportDetailController as advance'\r\n })\r\n .state('ReportDetailShare', {\r\n url: \"/DetailShare/:Type/:report_id/:start_date/:userid/:token\",\r\n templateUrl: \"app/ReportDetailShare/reportDetailShare.html\",\r\n controller: 'reportDetailShareController as advance'\r\n })\r\n .state('index.DashboardDetail', {\r\n url: \"/DashboardDetail/:Type/:dashboard_id\",\r\n templateUrl: \"app/DashboardDetail/dashboardDetail.html\",\r\n controller: 'dashboardDetailController as dashboardCtrl'\r\n })\r\n // .state('index.WorkOrder', {\r\n // url: \"/Jobs/WorkOrder\",\r\n // templateUrl: \"app/WorkOrderList/WorkOrder.html\",\r\n // controller: 'WorkOrderController as WorkOrderCtrl'\r\n // })\r\n .state('index.TaskPriorityOps', {\r\n url: \"/TaskPriorityOps\",\r\n templateUrl: \"app/TaskPriorityOps/TaskPriorityOps.html\",\r\n controller: 'TaskPriorityOpsController as Tspcntrl'\r\n })\r\n .state('index.CommittmentOps', {\r\n url: \"/CommittmentOps\",\r\n templateUrl: \"app/CommittmentOps/CommittmentOps.html\",\r\n controller: 'CommittmentOpsController as CmtmntOpsCtrl'\r\n })\r\n .state('index.AllTasksOps', {\r\n url: \"/AllTasksOps\",\r\n templateUrl: \"app/AllTasksOps/AllTasksOps.html\",\r\n controller: 'AllTasksOpsController as ALTOSCtrl'\r\n })\r\n .state('index.OperationTATBreached', {\r\n url: \"/TATBreachedOps\",\r\n templateUrl: \"app/OperationTATBreached/OperationTATBreached.html\",\r\n controller: 'OperationTATBreachedController as OTATBCtrl'\r\n })\r\n .state('index.CentralHDAllTicketList', {\r\n url: \"/Jobs/CentralHDAllTicketList\",\r\n templateUrl: \"app/CentralHDAllTicketList/CentralHDAllTicketList.html\",\r\n controller: 'CentralHDAllTicketListController as jobTicketCopy'\r\n })\r\n .state('index.bulkuploadJob', {\r\n url: \"/bulkuploadJob/:type\",\r\n templateUrl: \"app/bulkuploadJob/bulkupload.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'BulkUploadJobController as bulkupload'\r\n })\r\n .state('index.Dashboard', {\r\n url: \"/Dashboard/:UserId\",\r\n templateUrl: \"app/Dashboard/Dashboard.html\",\r\n controller: 'DashboardController as UserDashboard'\r\n })\r\n .state('index.IT360Profile', {\r\n url: \"/IT360Profile/\",\r\n templateUrl: \"app/IT360Profile/IT360Profile.html\",\r\n controller: 'IT360ProfileController as CntrlITProfile'\r\n })\r\n .state('index.ITEngineer', {\r\n url: \"/ITEngineer/:UserId\",\r\n templateUrl: \"app/ITEngineer/ITEngineer.html\",\r\n controller: 'ITEngineerController as CntrlITEngineerProfile'\r\n })\r\n .state('index.mForce-job-list', {\r\n url: \"/mForce-job-list\",\r\n templateUrl: \"app/mForce-job-list/job-list.html\",\r\n controller: 'userjobController as Mjob'\r\n })\r\n .state('index.mForce-job-detail', {\r\n url: \"/mForce-job-detail/:ticketId\",\r\n templateUrl: \"app/mForce-job-detail/job-detail.html\",\r\n controller: 'bidDetailController as MjobDetail'\r\n })\r\n .state('index.PlanningBulkUpload', {\r\n url: \"/PlanningBulkUpload\",\r\n templateUrl: \"app/PlanningBulkUpload/PlanningBulkUpload.html\",\r\n controller: 'PlanningBulkUploadController as PlanningBulkUpload'\r\n })\r\n .state('index.PlanningUploadJobs', {\r\n url: \"/PlanningUploadJobs\",\r\n templateUrl: \"app/PlanningUploadJobs/PlanningUploadJobs.html\",\r\n controller: 'PlanningUploadJobsController as PlanningUploadJobs'\r\n })\r\n .state('index.PlanningTemplates', {\r\n url: \"/PlanningTemplates\",\r\n templateUrl: \"app/PlanningTemplates/PlanningTemplates.html\",\r\n controller: 'PlanningTemplatesController as PlanningTemplates'\r\n })\r\n .state('index.PlanningResource', {\r\n url: \"/PlanningResource\",\r\n templateUrl: \"app/PlanningResource/PlanningResource.html\",\r\n controller: 'PlanningResourceController as plannerResource'\r\n })\r\n .state('index.PlanningTicket', {\r\n url: \"/PlanningTicket\",\r\n templateUrl: \"app/PlanningTicket/PlanningTicket.html\",\r\n controller: 'PlanningTicketController as PlanningTicket'\r\n })\r\n .state('index.PlanningReport', {\r\n url: \"/PlanningReport\",\r\n templateUrl: \"app/PlanningReport/PlanningReport.html\",\r\n controller: 'PlanningReportController as PlanningReport'\r\n })\r\n .state('index.TeamPartRequest', {\r\n url: \"/TeamPartRequest\",\r\n templateUrl: \"app/TeamPartRequest/TeamPartRequest.html\",\r\n controller: 'TeamPartRequestController as requestcntrl'\r\n })\r\n .state('index.TeamMyStock', {\r\n url: \"/MyStock\",\r\n templateUrl: \"app/TeamMyStock/TeamMyStock.html\",\r\n controller: 'TeamMyStockController as mystockcntrl'\r\n })\r\n .state('index.TeamMember', {\r\n url: \"/TeamMember\",\r\n templateUrl: \"app/TeamMember/TeamMember.html\",\r\n controller: 'TeamMemberController as team'\r\n })\r\n .state('index.CRMTeamMember', {\r\n url: \"/CRMTeamMember\",\r\n templateUrl: \"app/CRMTeamMember/CRMTeamMember.html\",\r\n controller: 'CRMTeamMemberController as CRMteamCntrl'\r\n })\r\n .state('index.TeamMemberForCRM', {\r\n url: \"/TeamMemberForCRM\",\r\n templateUrl: \"app/TeamMemberForCRM/TeamMemberForCRM.html\",\r\n controller: 'TeamMemberForCRMController as TeamCRMCntrl'\r\n })\r\n .state('index.CRMTeamEdit', {\r\n url: \"/CRMTeamEdit/:userId\",\r\n templateUrl: \"app/CRMTeamFormCreation/CRMTeamFormCreation.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'CRMTeamFormCreationController as crmteamcreation'\r\n })\r\n .state('index.WareHouseList', {\r\n url: \"/WareHouseList\",\r\n templateUrl: \"app/WareHouseList/WareHouseList.html\",\r\n controller: 'WareHouseListController as CntrlWareHouse'\r\n })\r\n .state('index.WareHouseItemList', {\r\n url: \"/WareHouseItemList/:warehouseId\",\r\n templateUrl: \"app/WareHouseItemList/WareHouseItemList.html\",\r\n controller: 'WareHouseItemListController as CntrlWareHouseItemList'\r\n })\r\n .state('index.CustomerDetailList', {\r\n url: \"/CRMCustomersList\",\r\n templateUrl: \"app/CustomerDetailList/CustomerDetailList.html\",\r\n controller: 'CustomerDetailListController as CntrlCustomerList'\r\n })\r\n .state('index.RoasterTeamMember', {\r\n url: \"/RoasterTeamMember\",\r\n templateUrl: \"app/RoasterTeamMember/RoasterTeamMember.html\",\r\n controller: 'RoasterTeamMemberController as teamroaster'\r\n })\r\n .state('index.customerProfileView', {\r\n url: \"/customerProfileView\",\r\n templateUrl: \"app/customerProfileView/customerProfileView.html\",\r\n controller: 'customerProfileViewController as customerProfileView'\r\n })\r\n .state('index.PepsicoCustomerProfileView', {\r\n url: \"/PepsicoCustomerProfileView\",\r\n templateUrl: \"app/PepsicoCustomerProfileView/PepsicoCustomerProfileView.html\",\r\n controller: 'PepsicoCustomerProfileViewController as pepsicocustomerProfileView'\r\n })\r\n .state('index.CustomerCRM360', {\r\n url: \"/CustomerCRM360/:ContactNo\",\r\n templateUrl: \"app/CustomerCRM360/CustomerCRM360.html\",\r\n controller: 'CustomerCRM360Controller as ctrlCRM360'\r\n })\r\n\r\n // for pepsico demo we did this on JD no.\r\n \r\n .state('index.CustomerCRM360ForDH', {\r\n url: \"/CustomerCRM360/9811421122\",\r\n templateUrl: \"app/CustomerCRM360/CustomerCRM360.html\",\r\n controller: 'CustomerCRM360Controller as ctrlCRM360'\r\n })\r\n \r\n .state('index.ClientView360', {\r\n url: \"/ClientView360/:ContactNo\",\r\n templateUrl: \"app/ClientView360/ClientView360.html\",\r\n controller: 'ClientView360Controller as ctrlclientCRM360'\r\n })\r\n\t .state('index.ServiceCenter360', {\r\n url: \"/ServiceCenter360/\",\r\n templateUrl: \"app/ServiceCenter360/ServiceCenter360.html\",\r\n controller: 'ServiceCenter360Controller as ctrlserviceCenter'\r\n })\r\n\t \r\n .state('index.customerProfileView1', {\r\n url: \"/customerProfileViewB2C\",\r\n templateUrl: \"app/customerProfileView1/customerProfileView1.html\",\r\n controller: 'customerProfileView1Controller as ctrlcustomerProfil'\r\n })\r\n .state('index.Assests360View', {\r\n url: \"/Assests360View\",\r\n templateUrl: \"app/Assests360View/Assests360View.html\",\r\n controller: 'Assests360ViewController as CntrlAssestView'\r\n })\r\n .state('index.Technician360view', {\r\n url: \"/Technician360view/:userId\",\r\n templateUrl: \"app/Technician360view/Technician360view.html\",\r\n controller: 'TechnicianViewController as TechnicianView'\r\n })\r\n .state('index.plannerTool', {\r\n url: \"/plannerTool\",\r\n templateUrl: \"app/plannerTool/plannerTool.html\",\r\n controller: 'plannerToolController as planner'\r\n })\r\n .state('index.CustomerNew', {\r\n url: \"/CustomerNew\",\r\n templateUrl: \"app/CustomerNew/CustomerNew.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'CustomerController as customer'\r\n })\r\n .state('index.CustomerNewLatest', {\r\n url: \"/CustomerNewLatest\",\r\n templateUrl: \"app/CustomerNewLatest/CustomerNewLatest.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'CustomerLatestController as customer'\r\n })\r\n .state('index.Customer_Detail_View', {\r\n url: \"/Customer_Detail_View/:customerId\",\r\n templateUrl: \"app/CustomerDetailView/CustomerDetailView.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'CustomerDetailViewController as custdetailview'\r\n })\r\n .state('index.Customer_Detail_View_Latest', {\r\n url: \"/Customer_Detail_View_Latest/:customerId\",\r\n templateUrl: \"app/CustomerDetailViewLatest/CustomerDetailViewLatest.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'CustomerDetailViewLatestController as custdetailviewLatest'\r\n })\r\n .state('ConfirmAccount', {\r\n url: \"/ConfirmAccount/:userId/:email\",\r\n templateUrl: \"app/Confirm Account/confirm_account.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'ConfirmAccountController as confirm'\r\n })\r\n .state('index.TeamView', {\r\n url: \"/TeamView\",\r\n templateUrl: \"app/Team card View/Team_view.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'TeamCardController as team'\r\n })\r\n .state('index.TeamCreate', {\r\n url: \"/TeamCreate\",\r\n templateUrl: \"app/Team Form Creation/Team_creation_form.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'TeamFormCreationController as createUser'\r\n })\r\n .state('index.CRMTeamFormCreation', {\r\n url: \"/CRMTeamFormCreation\",\r\n templateUrl: \"app/CRMTeamFormCreation/CRMTeamFormCreation.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'CRMTeamFormCreationController as crmteamcreation'\r\n })\r\n .state('index.ServiceCenterFormCreation', {\r\n url: \"/ServiceCenterFormCreation\",\r\n templateUrl: \"app/ServiceCenter_Form creation/ServiceCenter_Form creation.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'ServiceCenter_FormcreationController as servicecntrl'\r\n })\r\n .state('index.ServiceCenterCreation', {\r\n url: \"/ServiceCenterCreation\",\r\n templateUrl: \"app/ServiceCenterCreation/ServiceCenterCreation.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'ServiceCenterCreationController as SrvcCntr'\r\n })\r\n\r\n .state('index.VendorTeamCreate', {\r\n url: \"/VendorTeamCreate\",\r\n templateUrl: \"app/VendorTeamCreate/VendorTeamCreate.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'VendorTeamCreateController as VTCcntrl'\r\n })\r\n .state('index.VendorTeamCreation', {\r\n url: \"/VendorTeamCreation\",\r\n templateUrl: \"app/VendorTeamCreation/VendorTeamCreation.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'VendorTeamCreationController as VTCreationCntrl'\r\n })\r\n .state('index.BrandProductMasterCreation', {\r\n url: \"/MasterCreation\",\r\n templateUrl: \"app/BrandProductMasterCreation/BrandProductMasterCreation.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'BrandProductMasterCreationController as BPDMasterCntrl'\r\n })\r\n // .state('index.Servicefomedit', {\r\n // url: \"/Servicefomedit\",\r\n // templateUrl: \"app/Servicefomedit/Servicefomedit.html\",\r\n // data: {\r\n // pageTitle: 'Example view'\r\n // },\r\n // controller: 'ServicefomeditController as Scfntrl'\r\n // })\r\n .state('index.RoasterTeamCreate', {\r\n url: \"/RoasterTeamCreate\",\r\n templateUrl: \"app/RoasterTeamCreation/Roaster_Team_creation_form.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'RoasterTeamFormCreationController as roastercreateUser'\r\n })\r\n .state('index.TeamProfile', {\r\n url: \"/TeamProfile/:userId\",\r\n templateUrl: \"app/Team Profile/Team_profile.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'TeamProfileController as teamProfile'\r\n })\r\n .state('index.TeamEdit', {\r\n url: \"/TeamEdit/:userId\",\r\n templateUrl: \"app/Team Form Creation/Team_creation_form.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'TeamFormCreationController as createUser'\r\n })\r\n .state('index.ServiceCenter_FormEdit', {\r\n url: \"/ServiceCenterFormEdit/:userId\",\r\n templateUrl: \"app/ServiceCenter_Form creation/ServiceCenter_Form creation.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'ServiceCenter_FormcreationController as servicecntrl'\r\n })\r\n .state('index.RoasterTeamEdit', {\r\n url: \"/RoasterTeamEdit/:userId\",\r\n templateUrl: \"app/RoasterTeamCreation/Roaster_Team_creation_form.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'RoasterTeamFormCreationController as roastercreateUser'\r\n })\r\n .state('index.CustomerView', {\r\n url: \"/CustomerView\",\r\n templateUrl: \"app/Customer Card View/customer_Card_view.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'CustomerCardController as cust'\r\n })\r\n .state('index.CustomerCreate', {\r\n url: \"/CustomerCreate\",\r\n templateUrl: \"app/Customer Form Creation/customer_form_creation.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: \"CustomerFormController as createCustomer\"\r\n })\r\n .state('index.CustomerCreateLatest', {\r\n url: \"/CustomerCreateLatest\",\r\n templateUrl: \"app/Customer Form Creation Latest/customer_form_creation_Latest.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: \"CustomerFormLatestController as createCustomer\"\r\n })\r\n\r\n .state('index.CustomerProfile', {\r\n url: \"/CustomerProfile/:customerId\",\r\n templateUrl: \"app/Customer Profile/Customer_profile.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'CustomerProfileController as customerProfile'\r\n })\r\n .state('index.CustomerEdit', {\r\n url: \"/CustomerEdit/:customerId\",\r\n templateUrl: \"app/Customer Form Creation/customer_form_creation.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: \"CustomerFormController as createCustomer\"\r\n })\r\n .state('index.JobTickets', {\r\n url: \"/Jobs/JobTickets\",\r\n templateUrl: \"app/Job Ticket View/Job_Ticket_view.html\",\r\n controller: 'JobTicketViewController as jobTicket'\r\n })\r\n .state('index.ServiceCenterTicketList', {\r\n url: \"/Jobs/ServiceCenterTicketList\",\r\n templateUrl: \"app/ServiceCenterTicketList/ServiceCenterTicketList.html\",\r\n controller: 'ServiceCenterTicketListController as servicecenterticketcntrl'\r\n })\r\n .state('index.JobTicketsCopy', {\r\n url: \"/Jobs/JobTicketsCopy\",\r\n templateUrl: \"app/Job Ticket View/Job_Ticket_view_Copy.html\",\r\n controller: 'JobTicketViewControllerCopy as jobTicketCopy'\r\n })\r\n .state('index.PlanningTool', {\r\n url: \"/Jobs/PlanningTool\",\r\n templateUrl: \"app/PlanningTool/PlanningTool.html\",\r\n controller: 'PlanningToolController as PlanningTool'\r\n })\r\n .state('index.JobView', {\r\n url: \"/JobView/:ticketId/:type\",\r\n templateUrl: \"app/jobview/jobview.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'JobViewController as jobView'\r\n })\r\n .state('index.TemplateList', {\r\n url: \"/Jobs/TemplateList\",\r\n templateUrl: \"app/Template_grid/template_grid.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'TicketTemplateController as ticketTemp'\r\n })\r\n .state('index.FormEdit', {\r\n url: \"/FormEdit/:templateName\",\r\n templateUrl: \"app/form_builder/sortable.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'TemplateController'\r\n })\r\n .state('VerifyUser', {\r\n url: \"/VerifyUser/:userId/:uniqueKey\",\r\n templateUrl: \"app/Thankyou/Thankyou.html\",\r\n controller: 'ThankyouController as thanku'\r\n })\r\n .state('TicketForm', {\r\n url: \"/TicketForm\",\r\n templateUrl: \"app/Ticket_form/ticketform.html\",\r\n controller: 'TicketFormController as formTicket'\r\n })\r\n .state('index.ProjectCreation', {\r\n url: \"/ProjectCreation\",\r\n templateUrl: \"app/ProjectCreation/ProjectCreation.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'ProjectCreationController as projectcreate'\r\n })\r\n .state('index.ProjectCreationLatest', {\r\n url: \"/ProjectCreationLatest\",\r\n templateUrl: \"app/ProjectCreationLatest/ProjectCreationLatest.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: 'ProjectCreationLatestController as projectcreate'\r\n })\r\n .state('index.Project_Details', {\r\n url: \"/Project_Detail/:projectId/:pocLocation/:projectName\",\r\n templateUrl: \"app/Project_Details/Project_Details.html\",\r\n controller: 'ProjectDetailController as projectdetail'\r\n })\r\n .state('index.ProjectEdit', {\r\n url: \"/ProjectEdit/:projectId\",\r\n templateUrl: \"app/ProjectCreation/ProjectCreation.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: \"ProjectCreationController as projectcreate\"\r\n })\r\n .state('index.ProjectEditLatest', {\r\n url: \"/ProjectEditLatest/:projectId\",\r\n templateUrl: \"app/ProjectCreationLatest/ProjectCreationLatest.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: \"ProjectCreationLatestController as projectcreate\"\r\n })\r\n .state('index.JobBidCreation', {\r\n url: \"/Jobs/JobBidCreation/:cloneticketid\",\r\n templateUrl: \"app/job_Bid_Creation/Job_Bid_creation.html\",\r\n controller: 'JobBidCreationController as bidCreate'\r\n })\r\n .state('index.NewJobCreation', {\r\n url: \"/Jobs/NewJobCreation\",\r\n templateUrl: \"app/job_Bid_Creation/NewJobCreation.html\",\r\n controller: 'JobCreationController as jobCreateCtrl'\r\n })\r\n .state('index.SortableExample', {\r\n url: \"/SortableExample/:userId\",\r\n templateUrl: \"app/form_builder/sortable.html\",\r\n controller: 'TemplateController'\r\n })\r\n .state('public.mobileCms', {\r\n url: \"/mobile/cms/:userId\",\r\n templateUrl: \"app/cmsMobile/cmsList.html\",\r\n controller: 'CMSMobileController as cmsMobile'\r\n })\r\n .state('public.mobileCmsview', {\r\n url: \"/mobile/cmsview/:postId/:userId\",\r\n templateUrl: \"app/cmsMobile/cmsView.html\",\r\n controller: 'CMSMobileViewController as cmsMobileView'\r\n })\r\n .state('public.mobileCmsDirectview', {\r\n url: \"/mobile/cmsdirectview/:keyword/:userId\",\r\n templateUrl: \"app/cmsMobile/cmsView.html\",\r\n controller: 'CMSMobileDirectViewController as cmsMobileView'\r\n })\r\n .state('index.cms', {\r\n url: \"/cms\",\r\n templateUrl: \"app/cms/index.html\",\r\n controller: 'CMSController as cms'\r\n })\r\n .state('index.cmsview', {\r\n url: \"/cmsview/:postId\",\r\n templateUrl: \"app/cms/view.html\",\r\n controller: 'CMSController as cms'\r\n })\r\n .state('index.Project', {\r\n url: \"/Project\",\r\n templateUrl: \"app/projects/project.html\",\r\n controller: 'ProjectController as project'\r\n })\r\n .state('index.Accounts', {\r\n url: \"/Account\",\r\n templateUrl: \"app/Account/Account.html\",\r\n controller: 'AccountController as account'\r\n })\r\n .state('index.BaseReport', {\r\n url: \"/Report/:report_name/\",\r\n templateUrl: \"app/Report/report.html\",\r\n controller: 'ReportController as report'\r\n })\r\n .state('index.DashboardReport', {\r\n url: \"/DashboardReport/:report_name/:key/:filter_key/:filter_name/:start_date/:isData\",\r\n templateUrl: \"app/Report/report.html\",\r\n controller: 'ReportController as report'\r\n })\r\n .state('index.Report', {\r\n url: \"/Report/:report_name/:filter_key/:filter_name/:start_date/:end_date\",\r\n templateUrl: \"app/Report/report.html\",\r\n controller: 'ReportController as report',\r\n notify: false,\r\n reload: false,\r\n inherit: false\r\n })\r\n .state('index.ScheduledReport', {\r\n url: \"/ScheduledReport\",\r\n templateUrl: \"app/ScheduledReport/ScheduledReport.html\",\r\n controller: 'ScheduledReportController as report'\r\n })\r\n .state('index.SchedulerRuleConfig', {\r\n url: \"/SchedulerRule\",\r\n templateUrl: \"app/SchedulerRule/SchedulerRule.html\",\r\n controller: 'SchedulerRuleController as rule'\r\n })\r\n .state('index.AppsMenusConfige', {\r\n url: \"/AppsMenusConfige\",\r\n templateUrl: \"app/AppsMenusConfige/AppsMenusConfige.html\",\r\n controller: 'AppsMenusConfigeController as appmenuscntrl'\r\n })\r\n .state('index.SystemConfig', {\r\n url: \"/SystemConfiguration\",\r\n templateUrl: \"app/SystemConfig/SystemConfig.html\",\r\n controller: 'SystemConfigController as systemconfig'\r\n })\r\n .state('index.AccountSetting', {\r\n url: \"/AccountSetting\",\r\n templateUrl: \"app/AccountSetting/AccountSetting.html\",\r\n controller: 'AccountSettingController as account'\r\n })\r\n .state('index.AdvancedDashboard', {\r\n url: \"/AdvancedDashboard/:name\",\r\n templateUrl: \"app/AdvancedDashboard/advancedDashboard.html\",\r\n controller: 'AdvancedDashboardController as dashboard'\r\n })\r\n .state('index.KPIAdvancedDashboard', {\r\n url: \"/KPIAdvancedDashboard/:name\",\r\n templateUrl: \"app/KPIAdvancedDashboard/KPIAdvancedDashboard.html\",\r\n controller: 'KPIAdvancedDashboardController as KPIdashboard'\r\n })\r\n .state('index.TabAdvancedDashboard', {\r\n url: \"/TabAdvancedDashboard/:name/:vertical\",\r\n templateUrl: \"app/TabAdvancedDashboard/TabAdvancedDashboard.html\",\r\n controller: 'TabAdvancedDashboardController as tabadvancedashboard'\r\n })\r\n .state('AdvancedDashboardShare', {\r\n url: \"/AdvancedDashboardShare/:name/:userid/:token\",\r\n templateUrl: \"app/AdvancedDashboardShare/advancedDashboard.html\",\r\n controller: 'AdvancedDashboardShareController as dashboard'\r\n })\r\n .state('index.InvitedUser', {\r\n url: \"/Freelancers/InvitedUser\",\r\n templateUrl: \"app/InvitedUser/InvitedUser.html\",\r\n controller: 'invitedUserController as inviteUser'\r\n })\r\n .state('index.InvoiceAcceptance', {\r\n url: \"/InvoiceAcceptance\",\r\n templateUrl: \"app/InvoiceAcceptance/InvoiceAcceptance.html\",\r\n controller: 'InvoiceAcceptanceController as InvoiceAcceptCntrl'\r\n })\r\n .state('index.ProductReplacementOrders', {\r\n url: \"/ProductReplacementOrders\",\r\n templateUrl: \"app/ProductReplacementOrders/ProductReplacementOrders.html\",\r\n controller: 'ProductReplacementOrdersController as ProductReplaceCntrl'\r\n })\r\n .state('index.ProductReplacementApproval', {\r\n url: \"/ProductReplacementApproval\",\r\n templateUrl: \"app/ProductReplacementApproval/ProductReplacementApproval.html\",\r\n controller: 'ProductReplacementApprovalController as ProductReplaceApprovalCntrl'\r\n })\r\n .state('index.FivePointIntegration', {\r\n url: \"/FivePointIntegrationCheckList\",\r\n templateUrl: \"app/FivePointIntegration/FivePointIntegration.html\",\r\n controller: 'FivePointIntegrationController as FivePointIntegrationCntrl'\r\n })\r\n .state('index.GasChargingRequestList', {\r\n url: \"/GasChargingRequestList\",\r\n templateUrl: \"app/GasChargingApproval/GasChargingApproval.html\",\r\n controller: 'GasChargingApprovalController as GasChargeApprovalCntrl'\r\n })\r\n .state('index.WrongProductReceivedOrders', {\r\n url: \"/WrongProductReceivedOrders\",\r\n templateUrl: \"app/WrongProductReceivedOrders/WrongProductReceivedOrders.html\",\r\n controller: 'WrongProductReceivedOrdersController as WrongProductRcvCntrl'\r\n }) \r\n .state('index.NonReturnablePartConsumeList', {\r\n url: \"/NonReturnablePartConsumeList\",\r\n templateUrl: \"app/NonReturnablePartConsumeList/NonReturnablePartConsumeList.html\",\r\n controller: 'NonReturnablePartConsumeListController as NonReturnPartCntrl'\r\n }) \r\n .state('index.ReturnablePartConsumeList', {\r\n url: \"/ReturnablePartConsumeList\",\r\n templateUrl: \"app/ReturnablePartConsumeList/ReturnablePartConsumeList.html\",\r\n controller: 'ReturnablePartConsumeListController as ReturnPartCntrl'\r\n }) \r\n .state('index.AllOrdersReceivedList', {\r\n url: \"/AllOrdersReceivedList\",\r\n templateUrl: \"app/AllOrdersReceivedList/AllOrdersReceivedList.html\",\r\n controller: 'AllOrdersReceivedListController as AllOrderListCntrl'\r\n })\r\n .state('index.ActiveUser', {\r\n url: \"/Freelancers/ActiveUser\",\r\n templateUrl: \"app/ActiveUser/ActiveUser.html\",\r\n controller: 'ActiveUserController as activeUser'\r\n })\r\n .state('index.ActiveVendorTeam', {\r\n url: \"/Vendor/ActiveVendorTeam\",\r\n templateUrl: \"app/ActiveVendorTeamList/ActiveVendorTeam.html\",\r\n controller: 'VendorTeamController as registerVendor'\r\n })\r\n .state('index.ManualAssignation', {\r\n url: \"/Jobs/ManualAssignation\",\r\n templateUrl: \"app/ManualAssignation/ManualAssignation.html\",\r\n controller: 'ManualAssignationController as manualAssignation'\r\n })\r\n .state('index.ManualAssignationJob', {\r\n url: \"/Jobs/ManualAssignationJob\",\r\n templateUrl: \"app/ManualAssignationJob/ManualAssignationJob.html\",\r\n controller: 'ManualAssignationJobController as manualAssignationJob'\r\n })\r\n .state('index.CRMManualAssignationJob', {\r\n url: \"/Jobs/CRMManualAssignationJob\",\r\n templateUrl: \"app/CRMManualAssignationJob/CRMManualAssignationJob.html\",\r\n controller: 'CRMManualAssignationJobController as crmmanualAssignationJob'\r\n })\r\n .state('index.NewScheduling', {\r\n url: \"/Jobs/NewScheduling\",\r\n templateUrl: \"app/ScheduleJobAssignation/NewJobAssign.html\",\r\n controller: 'ScheduleJobAssigne as jobAssign'\r\n })\r\n .state('index.AutoScheduling', {\r\n url: \"/Jobs/AutoScheduling\",\r\n templateUrl: \"app/ScheduleJobAssignation/AutoAssign.html\",\r\n controller: 'AutoAssignedController as jobAssign'\r\n })\r\n .state('Refer', {\r\n url: \"/Refer/:reference_key\",\r\n templateUrl: \"app/Refer Freelancer/refer.html\",\r\n controller: 'ReferFreelancerController as registerForm'\r\n })\r\n .state('ReferVendor', {\r\n url: \"/ReferVendor/:reference_key\",\r\n templateUrl: \"app/Refer Vendor/refervendor.html\",\r\n controller: 'ReferVendorController as registerForm'\r\n })\r\n .state('cmssearchview', {\r\n url: \"/cmssearchview\",\r\n templateUrl: \"app/cms search view/cms search view.html\",\r\n\r\n })\r\n .state('cmsdetail', {\r\n url: \"/cmsdetail\",\r\n templateUrl: \"app/cms detail/cms_detail.html\",\r\n\r\n })\r\n .state('cms_home', {\r\n url: \"/cms_home\",\r\n templateUrl: \"app/Cms Home/cms_home.html\",\r\n\r\n })\r\n .state('Thankyou', {\r\n url: \"/Thankyou\",\r\n templateUrl: \"app/Thankyou/Thankyou.html\",\r\n controller: 'ThankyouController as thanku'\r\n })\r\n .state('ThankyouTicket', {\r\n url: \"/ThankyouTicket\",\r\n templateUrl: \"app/Thankyou/Thankyou_ticket.html\",\r\n controller: 'ThankyouTicketController as thanku'\r\n })\r\n .state('ThankyouBooking', {\r\n url: \"/Thankyoubooking\",\r\n templateUrl: \"app/Thankyou/Thankyou_Booking.html\",\r\n controller: 'ThankyouTicketController as thanku'\r\n })\r\n .state('index.Vendor_Creation_form', {\r\n url: \"/Vendor_Creation_form\",\r\n templateUrl: \"app/Vendor Creation Form/Vendor_Creation_form.html\",\r\n controller: \"VendorCreationController as vendorCreate\"\r\n })\r\n .state('index.Vendor Form Creation', {\r\n url: \"/Vendor-Form-Creation\",\r\n templateUrl: \"app/Vendor Form Creation/Vendor Form Creation.html\",\r\n controller: \"VendorFormCreationController as ctrlvendorCreate\"\r\n })\r\n .state('index.Vendor_list', {\r\n url: \"/Vendor_list\",\r\n templateUrl: \"app/Vendor/VendorList.html\",\r\n controller: \"VendorListController as vendorList\"\r\n })\r\n .state('index.VendorEdit', {\r\n url: \"/VendorEdit/:vendorId\",\r\n templateUrl: \"app/Vendor Creation Form/Vendor_Creation_form.html\",\r\n controller: \"VendorCreationController as vendorCreate\"\r\n })\r\n .state('index.VendorProfile', {\r\n url: \"/VendorProfile/:vendorId\",\r\n templateUrl: \"app/Vendor Profile/VendorProfile.html\",\r\n controller: \"VendorProfileController as vendorProfile\"\r\n })\r\n .state('TalentRagister', {\r\n url: \"/TalentRegister\",\r\n templateUrl: \"app/Talent Register/TalentRegister.html\",\r\n controller: \"TalentRegisterController as register\"\r\n })\r\n .state('PaymentSection', {\r\n url: \"/PaymentSection/:accountId/:jobCardId\",\r\n templateUrl: \"app/PaymentSection/PaymentSection.html\",\r\n controller: \"PaymentSectionController as payment\"\r\n })\r\n .state('PayOnline', {\r\n url: \"/PayOnline/:jobCardId\",\r\n templateUrl: \"app/PayOnline/PayOnline.html\",\r\n controller: \"PayOnlineController as onlinePayment\"\r\n })\r\n .state('RateJob', {\r\n url: \"/RateJob/:jobCardId\",\r\n templateUrl: \"app/RateJob/RateJob.html\",\r\n controller: \"RateJobController as rateJob\"\r\n })\r\n .state('index.EmailAdapterHistory', {\r\n url: \"/EmailAdapterHistory\",\r\n templateUrl: \"app/EmailAdapterHistory/EmailAdapterHistory.html\",\r\n controller: \"EmailAdapterHistoryController as EmailHistory\"\r\n })\r\n .state('index.AccountsRechargeHistory', {\r\n url: \"/AccountsRechargeHistory\",\r\n templateUrl: \"app/AccountsRechargeHistory/AccountsRechargeHistory.html\",\r\n controller: \"AccountsRechargeHistoryController as rechargeHistory\"\r\n })\r\n .state('index.DeviceInfo', {\r\n url: \"/DeviceInfo/\",\r\n templateUrl: \"app/DeviceInfo/DeviceInfo.html\",\r\n controller: \"DeviceInfoController as info\"\r\n })\r\n .state('index.HelpDesk_Home', {\r\n url: \"/HelpDesk_Home/\",\r\n templateUrl: \"app/HelpDesk Home/HelpDesk_Home.html\",\r\n controller: \"HelpDeskHomeController as ctrl\"\r\n })\r\n .state('index.HelpDesk', {\r\n url: \"/HelpDesk\",\r\n templateUrl: \"app/HelpDesk_Admin/Helpdesk_Admin.html\",\r\n controller: \"HelpDeskHomeAdminController as ctrl\"\r\n })\r\n .state('index.LeaveManagement', {\r\n url: \"/LeaveManagement/\",\r\n templateUrl: \"app/LeaveManagement/LeaveManagement.html\",\r\n controller: \"LeaveManagementController as leaveMgmt\"\r\n })\r\n .state('index.KnowledgeManagementUpload', {\r\n url: \"/KnowledgeManagementUpload/\",\r\n templateUrl: \"app/KnowledgeManagementUpload/KnowledgeManagementUpload.html\",\r\n })\r\n .state('index.KnowledgeManagementView', {\r\n url: \"/KnowledgeManagementView/\",\r\n templateUrl: \"app/KnowledgeManagementView/KnowledgeManagementView.html\",\r\n })\r\n .state('index.KnowledgeManagementSkillView', {\r\n url: \"/KnowledgeManagementSkillView/\",\r\n templateUrl: \"app/KnowledgeManagementSkillView/KnowledgeManagementSkillView.html\",\r\n })\r\n .state('index.KnowledgeManagementListView', {\r\n url: \"/KnowledgeManagementListView/\",\r\n templateUrl: \"app/KnowledgeManagementListView/KnowledgeManagementListView.html\",\r\n })\r\n .state('index.TrainingUserList', {\r\n url: \"/TrainingUserList/\",\r\n templateUrl: \"app/TrainingUserList/TrainingUserList.html\",\r\n controller: 'TrainingUserListController as traininguserlist'\r\n })\r\n .state('index.NewJobDetails1', {\r\n url: \"/NewJobDetails1/:ticketId/:type\",\r\n templateUrl: \"app/NewJobDetails1/NewJobDetails.html\",\r\n controller: \"NewJobDetailController as NewjobDetailCtrl\"\r\n })\r\n .state('index.JobList', {\r\n url: \"/Jobs/JobList\",\r\n templateUrl: \"app/JobList/JobList.html\",\r\n controller: \"JobListController as JobListCtrl\"\r\n })\r\n .state('index.JobDetailView', {\r\n url: \"/JobDetailView/:ticketId/:type\",\r\n templateUrl: \"app/JobDetailView/JobDetailView.html\",\r\n controller: \"JobDetailViewController as JobDetailViewCtrl\"\r\n })\r\n .state('index.ViewJobDetail', {\r\n url: \"/ViewJobDetail/:ticketId/:type\",\r\n templateUrl: \"app/ViewJobDetail/ViewJobDetail.html\",\r\n controller: \"ViewJobDetailController as DetailViewCtrl\"\r\n })\r\n .state('index.JobDetailViewCombo', {\r\n url: \"/JobDetailViewCombo/:ticketId/:type\",\r\n templateUrl: \"app/JobDetailViewCombo/JobDetailViewCombo.html\",\r\n controller: \"JobDetailViewComboController as JobDetailViewComboCtrl\"\r\n })\r\n .state('index.IntegrationPointDetailView', {\r\n url: \"/IntegrationPointDetailView/:ticketId\",\r\n templateUrl: \"app/IntegrationPointDetailView/IntegrationPointDetailView.html\",\r\n controller: \"IntegrationPointDetailViewController as IntegrationPointDetailViewCtrl\"\r\n }) \r\n .state('index.JobDetailViewNew', {\r\n url: \"/JobDetailViewNew/:ticketId/:type\",\r\n templateUrl: \"app/JobDetailViewNew/JobDetailViewNew.html\",\r\n controller: \"JobDetailViewNewController as JobDetailViewNewCtrl\"\r\n })\r\n .state('index.SchedulingRules', {\r\n url: \"/SchedulingRules/\",\r\n templateUrl: \"app/SchedulingRules/SchedulingRules.html\",\r\n controller: \"SchedulingRuleController as scRuleCtrl\"\r\n })\r\n .state('index.shiftmanagement', {\r\n url: \"/shiftmanagement\",\r\n templateUrl: \"app/ShiftManagement/shift_management.html\",\r\n controller: \"shiftManagementController as shiftManagementCntrl\"\r\n })\r\n .state('Signup', {\r\n url: \"/Signup\",\r\n templateUrl: \"app/Signup/Signup.html\",\r\n controller: \"SignupController as signupCntrl\"\r\n })\r\n .state('index.EmployeeShiftMapping', {\r\n url: \"/EmployeeShiftMapping\",\r\n templateUrl: \"app/EmployeeShiftMapping/EmployeeShiftMap.html\",\r\n controller: \"EmployeeShiftMapController as ESMCntrl\"\r\n })\r\n .state('index.StaffShiftCampaign', {\r\n url: \"/StaffShiftCampaign\",\r\n templateUrl: \"app/StaffShiftCampaign/StaffShiftCampaign.html\",\r\n controller: \"StaffShiftCampaignController as StaffShiftCntrl\"\r\n })\r\n .state('index.ShiftLeaveManagement', {\r\n url: \"/ShiftLeaveManagement\",\r\n templateUrl: \"app/ShiftLeaveManagement/ShiftLeave.html\",\r\n controller: \"ShiftLeaveController as leaveCntrl\"\r\n })\r\n .state('index.AssignationRule', {\r\n url: \"/AssignationRule/\",\r\n templateUrl: \"app/AssignationRule/AssignationRule.html\",\r\n controller: \"AssignationRuleController as assignRule\"\r\n })\r\n .state('index.SchedulingExceptionsPaging', {\r\n url: \"/SchedulingExceptionsPaging/\",\r\n templateUrl: \"app/ScheduleExceptionListPaging/ScheduleExceptionList.html\",\r\n controller: \"ScheduleExceptionListPagingController as scheduleExceptionList\"\r\n })\r\n .state('index.TerritoryMapping', {\r\n url: \"/TerritoryMapping\",\r\n templateUrl: \"app/TerritoryMapping/TerritoryMapping.html\",\r\n controller: \"TerritoryMappingController as territorymapCntrl\"\r\n })\r\n .state('index.inventory', {\r\n url: \"/inventory\",\r\n templateUrl: \"app/inventory/inventory.html\",\r\n controller: \"inventoryController as inventoryCntrl\"\r\n })\r\n .state('index.RoleAccessManagement', {\r\n url: \"/RoleAccessManagement\",\r\n templateUrl: \"app/RoleAccessManagement/RoleAccessManagement.html\",\r\n controller: \"RoleAccessManagementController as RoleAccessManagementCntrl\"\r\n })\r\n .state('index.AccessUserView', {\r\n url: \"/AccessUserView\",\r\n templateUrl: \"app/AccessUserView/AccessUserView.html\",\r\n controller: \"AccessUserViewController as AccessUserviewcntrl\"\r\n })\r\n .state('index.TerritoryMangement', {\r\n url: \"/TerritoryMangement\",\r\n templateUrl: \"app/TerritoryMangement/TerritoryMangement.html\",\r\n controller: \"TerritoryMangementController as TerritoryCntrl\"\r\n })\r\n .state('index.PlatformBuilders', {\r\n url: \"/PlatformBuilders\",\r\n templateUrl: \"app/ScreenBuilders/ScreenBuilders.html\",\r\n controller: 'ScreenBuildersController as ScreenBuildersCtrl'\r\n })\r\n .state('index.ApprovalFlowBuilders', {\r\n url: \"/ApprovalFlowBuilder\",\r\n templateUrl: \"app/ApprovalFlowBuilder/ApprovalFlowBuilder.html\",\r\n controller: 'ApprovalFlowBuilderController as ApprovalFlowBuilderCtrl'\r\n })\r\n .state('index.BillDetails', {\r\n url: \"/BillDetails\",\r\n templateUrl: \"app/BillDetails/BillDetails.html\",\r\n controller: \"billdetailsController as billdetailscntrl\"\r\n })\r\n .state('index.NoticeCampaignDetails', {\r\n url: \"/NoticeCampaignDetails\",\r\n templateUrl: \"app/NoticeCampaignDetails/NoticeCampaignDetails.html\",\r\n controller: \"NoticeCampaignDetailsController as NoticeCampaignCntrl\"\r\n })\r\n .state('index.InventoryItemList', {\r\n url: \"/InventoryItemList\",\r\n templateUrl: \"app/InventoryItemList/InventoryItemList.html\",\r\n controller: \"InventoryItemListController as CntrlInventory\"\r\n })\r\n .state('index.InventoryCart', {\r\n url: \"/InventoryCart\",\r\n templateUrl: \"app/InventoryCart/InventoryCart.html\",\r\n controller: \"InventoryCartController as InventoryCartCntrl\"\r\n })\r\n .state('index.LeaderBoard', {\r\n url: \"/LeaderBoard\",\r\n templateUrl: \"app/LeaderBoard/LeaderBoard.html\",\r\n controller: \"LeaderBoardController as leaderctrl\"\r\n })\r\n .state('index.LoadBalancer', {\r\n url: \"/LoadBalancer\",\r\n templateUrl: \"app/LoadBalancer/LoadBalancer.html\",\r\n controller: \"LoadBalancerController as LoadCntrl\"\r\n })\r\n .state('index.employeshiftattendance', {\r\n url: \"/employeshiftattendance\",\r\n templateUrl: \"app/employeshiftattendance/employeshiftattendance.html\",\r\n controller: \"employeshiftattendanceController as ESACntrl\"\r\n })\r\n .state('index.InvigilatorShiftAttendance', {\r\n url: \"/InvigilatorShiftAttendance\",\r\n templateUrl: \"app/InvigilatorShiftAttendance/InvigilatorShiftAttendance.html\",\r\n controller: \"InvigilatorShiftAttendanceController as ISACntrl\"\r\n })\r\n .state('index.ConsentOfUser', {\r\n url: \"/ConsentOfUser/:UserId/:CampaignId\",\r\n templateUrl: \"app/ConsentOfUser/ConsentOfUser.html\",\r\n controller: \"ConsentOfUserController as ConsentOfUserCntrl\"\r\n })\r\n .state('index.KPIConfiguration', {\r\n url: \"/KPIConfiguration\",\r\n templateUrl: \"app/KPIconfiguration/KPIconfiguration.html\",\r\n controller: \"KPIconfigurationController as KPICntrl\"\r\n })\r\n .state('index.CampaignCreation', {\r\n url: \"/CampaignCreation\",\r\n templateUrl: \"app/CampaignCreation/CampaignCreation.html\",\r\n controller: \"CampaignCreationController as CmpgnCntrl\"\r\n })\r\n .state('index.CampaignDetailView', {\r\n url: \"/CampaignDetailView\",\r\n templateUrl: \"app/CampaignDetailView/CampaignDetailView.html\",\r\n controller: \"CampaignDetailViewController as CmpgnDetailViewCntrl\"\r\n })\r\n .state('index.CampaignDetailViewNew', {\r\n url: \"/CampaignDetailViewNew/:CampaignId\",\r\n templateUrl: \"app/CampaignDetailViewNew/CampaignDetailViewNew.html\",\r\n controller: \"CampaignDetailViewNewController as CmpgnDetailViewNewCntrl\"\r\n })\r\n .state('index.DialerList', {\r\n url: \"/DialerList\",\r\n templateUrl: \"app/DialerList/DialerList.html\",\r\n controller: \"DialerListController as DetailCntrl\"\r\n })\r\n .state('index.inventory_new', {\r\n url: \"/inventory_new\",\r\n templateUrl: \"app/Inventory_new/inventory_new.html\",\r\n controller: \"inventorynewController as inventorynewCntrl\"\r\n })\r\n .state('index.PersistentReport', {\r\n url: \"/PersistentReport/\",\r\n templateUrl: \"app/PersistentReport/PersistentReport.html\",\r\n controller: \"PersistentReportController as PersistentReport\"\r\n })\r\n .state('index.ALLTalentPool', {\r\n url: \"/ALLTalentPool/\",\r\n templateUrl: \"app/NewTalentPool/NewTalentPool.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: \"NewTalentPoolController as NewtalentPool\"\r\n })\r\n .state('index.AllPreferredTalentPool', {\r\n url: \"/PreferredTalentPool/\",\r\n templateUrl: \"app/PreferredTalentPool/PreferredTalentPool.html\",\r\n controller: \"PreferredTalentPoolController as PreferredPoolCtrl\"\r\n })\r\n .state('index.ActiveAllUser', {\r\n url: \"/ActiveAllUser/\",\r\n templateUrl: \"app/ActiveAllUser/ActiveAllUser.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: \"ActiveAllUserController as ActiveAllUser\"\r\n })\r\n .state('index.RegisteredAllUser', {\r\n url: \"/RegisteredAllUser\",\r\n templateUrl: \"app/RegisteredAllUser/RegisteredAllUser.html\",\r\n controller: 'RegisteredAllUserController as RegisteredAllUserCtrl'\r\n })\r\n .state('index.AllUserNew', {\r\n url: \"/AllUserNew\",\r\n templateUrl: \"app/AllUserNew/AllUserNew.html\",\r\n controller: 'AllUserNewController as AllUserNewCtrl'\r\n })\r\n .state('index.AllUsersList', {\r\n url: \"/AllUsersList\",\r\n templateUrl: \"app/AllUsersList/AllUsersList.html\",\r\n controller: 'AllUsersListController as AllUserListCtrl'\r\n })\r\n .state('index.AllUsersListGC', {\r\n url: \"/AllUsersListGC\",\r\n templateUrl: \"app/AllUsersListGC/AllUsersListGC.html\",\r\n controller: 'AllUsersListGCController as AllUserListGCCtrl'\r\n })\r\n .state('index.AllAssetsList', {\r\n url: \"/AllAssetsList\",\r\n templateUrl: \"app/AllAssetsList/AllAssetsList.html\",\r\n controller: 'AllAssetsListController as CntrlAllAssestList'\r\n })\r\n .state('index.InvitedAllUser', {\r\n url: \"/InvitedAllUser\",\r\n templateUrl: \"app/InvitedAllUser/InvitedAllUser.html\",\r\n controller: 'InvitedAllUserController as InvitedAllUserCtrl'\r\n })\r\n .state('index.PreferredTechnicianTalentPool', {\r\n url: \"/PreferredTechnicianTalentPool/\",\r\n templateUrl: \"app/PreferredTechnicianTalentPool/PreferredTechnicianTalentPool.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: \"PreferredTechnicianTalentPoolController as PreferredTechnicianTalentPool\"\r\n })\r\n .state('index.PreferredVendorTalentPool', {\r\n url: \"/PreferredVendorTalentPool/\",\r\n templateUrl: \"app/PreferredVendorTalentPool/PreferredVendorTalentPool.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: \"PreferredVendorTalentPoolController as PreferredVendorTalentPool\"\r\n })\r\n .state('index.BlockedUser', {\r\n url: \"/BlockedUser/\",\r\n templateUrl: \"app/BlockedUser/BlockedUser.html\",\r\n controller: \"BlockUserController as blockuser\"\r\n })\r\n .state('HardwareDetails', {\r\n url: \"/HardwareDetails/:ticketId\",\r\n templateUrl: \"app/HardwareDetails/HardwareDetails.html\",\r\n controller: \"HardwareDetailsController as hwCtrl\"\r\n })\r\n .state('index.NewVendorProfile', {\r\n url: \"/NewVendorProfile/:VendorId\",\r\n templateUrl: \"app/VendorProfile1/NewVendorProfile.html\",\r\n controller: \"NewVendorProfileController as NewVendorProfile\"\r\n })\r\n .state('index.RegistrationForm', {\r\n url: \"/NewOnBoardingForm/:UserId\",\r\n templateUrl: \"app/OnBoardingFormLatest/OnBoardingFlow.html\",\r\n controller: \"OnBoardingFlowController as OBFCtrl\"\r\n })\r\n .state('index.NewOnboarding', {\r\n url: \"/NewOnboardingFlow/:UserId\",\r\n templateUrl: \"app/NewOnboardingFlow/NewOnboardingFlow.html\",\r\n controller: \"NewOnboardingFlowController as NOBFCtrl\"\r\n })\r\n .state('index.SMEInteraction', {\r\n url: \"/SMEInteraction\",\r\n templateUrl: \"app/SMEInteraction/SMEInteraction.html\",\r\n controller: \"SMEInteractionController as SMECtrl\"\r\n })\r\n .state('index.BGVerification', {\r\n url: \"/BGVerification\",\r\n templateUrl: \"app/BGVerification/BGVerification.html\",\r\n controller: \"BGVerificationController as BGVCtrl\"\r\n })\r\n .state('index.VerificationSlotAllocation', {\r\n url: \"/VerificationSlotAllocation\",\r\n templateUrl: \"app/VerificationSlotAllocation/SlotAllocation.html\",\r\n controller: \"SlotAllocationController as slotAllocationCtrl\"\r\n })\r\n .state('index.OnBoardingForm', {\r\n url: \"/OnBoardingForm/:RegistrationNo\",\r\n templateUrl: \"app/OnBoardingForm/OnBoardingForm.html\",\r\n controller: \"OnBoardingFormController as OBCtrl\"\r\n })\r\n .state('index.ActiveUserUpdate', {\r\n url: \"/ActiveUserUpdate/:RegistrationNo\",\r\n templateUrl: \"app/ActiveUserUpdate/ActiveUserUpdate.html\",\r\n controller: \"ActiveUserUpdateController as ActiveUserUpdate\"\r\n })\r\n .state('index.ActiveVendorUpdate', {\r\n url: \"/ActiveVendorUpdate/:RegistrationNo\",\r\n templateUrl: \"app/ActiveVendorUpdate/ActiveVendorUpdate.html\",\r\n controller: \"ActiveVendorUpdateController as ActiveVendorUpdate\"\r\n })\r\n .state('index.OnBoardingVendorForm', {\r\n url: \"/OnBoardingVendorForm/:RegistrationNo\",\r\n templateUrl: \"app/OnBoardingVendorForm/OnBoardingVendorForm.html\",\r\n controller: \"OnBoardingVendorFormController as OBVendorCtrl\"\r\n })\r\n .state('index.Bonus', {\r\n url: \"/Bonus/\",\r\n templateUrl: \"app/Bonus/Bonus.html\",\r\n controller: \"BonusController as bonusPaneltyCtrl\"\r\n })\r\n .state('index.FVLocationConfiguration', {\r\n url: \"/FVLocationConfiguration/\",\r\n templateUrl: \"app/FVLocationConfiguration/FVLocationConfiguration.html\",\r\n controller: \"FVLocationConfigurationController as fvlocationConfigurationCtrl\"\r\n })\r\n .state('index.HealthAndSafety', {\r\n url: \"/HealthAndSafety/\",\r\n templateUrl: \"app/HealthAndSafety/HealthAndSafety.html\",\r\n controller: \"HealthAndSafetyController as healthAndSafetyCtrl\"\r\n })\r\n .state('index.SearchUserInfo', {\r\n url: \"/SearchUserInfo/\",\r\n templateUrl: \"app/SearchUserInfo/SearchUserInfo.html\",\r\n controller: \"SearchUserInfoController as searchUserInfoCtrl\"\r\n })\r\n .state('index.TicketBasedPlanning', {\r\n url: \"/TicketBasedPlanning/\",\r\n templateUrl: \"app/PlanningTool/TicketBasedPlanning.html\",\r\n controller: \"TicketBasedPlanningController as ticketBasedPlanningCtrl\"\r\n })\r\n // .state('index.FinanceFreelancerInvoice', { \r\n // url: \"/FinanceFreelancerInvoice/\",\r\n // templateUrl: \"app/Invoice/FinanceFreelancerInvoice.html\",\r\n // controller:\"FinanceFreelancerInvoiceController as financeFreelancerInvoiceCtrl\"\r\n // })\r\n // .state('index.FinanceCustomerInvoice', { \r\n // url: \"/FinanceCustomerInvoice/\",\r\n // templateUrl: \"app/Invoice/FinanceCustomerInvoice.html\",\r\n // controller:\"FinanceCustomerInvoiceController as financeCustomerInvoiceCtrl\"\r\n // })\r\n .state('index.InvoiceConfigurations', {\r\n url: \"/InvoiceConfigurations/\",\r\n templateUrl: \"app/InvoiceConfigurations/InvoiceConfigurations.html\",\r\n controller: \"InvoiceConfigurationsController as InvoiceConfigurationsCtrl\"\r\n })\r\n .state('index.CustomerInvoice', {\r\n url: \"/CustomerInvoice/\",\r\n templateUrl: \"app/InvoiceAccount/CustomerInvoice.html\",\r\n controller: \"CustomerInvoiceController as CustomerInvoiceCtrl\"\r\n })\r\n .state('index.PriceModelMapping', {\r\n url: \"/PriceModelMapping/\",\r\n templateUrl: \"app/PriceModelMapping/PriceModelMapping.html\",\r\n controller: \"PriceModelMappingController as PriceModelMappingCtrl\"\r\n })\r\n .state('index.skillCreation', {\r\n url: \"/skillCreation/\",\r\n templateUrl: \"app/skillCreation/skillCreation.html\",\r\n controller: \"skillCreationController as skillCreationCtrl\"\r\n })\r\n .state('index.ReportDownload', {\r\n url: \"/ReportDownload\",\r\n templateUrl: \"app/ReportDownload/ReportDownload.html\",\r\n controller: 'ReportDownloadController as reportdownload'\r\n })\r\n .state('index.ConsumerList', {\r\n url: \"/ConsumerList\",\r\n templateUrl: \"app/ConsumerList/ConsumerList.html\",\r\n controller: 'ConsumerListController as ConsumerListCtrl'\r\n })\r\n .state('index.AllConsumerList', {\r\n url: \"/AllConsumerList\",\r\n templateUrl: \"app/AllConsumerList/AllConsumerList.html\",\r\n controller: 'AllConsumerListController as CtrlAllConsumerList'\r\n })\r\n .state('index.PlanningResourceMap', {\r\n url: \"/PlanningResourceMap\",\r\n templateUrl: \"app/PlanningResourceMap/PlanningResourceMap.html\",\r\n controller: 'PlanningResourceMapController as plannerResourceMap'\r\n })\r\n .state('index.InvoiceConsolidated', {\r\n url: \"/InvoiceConsolidated/\",\r\n templateUrl: \"app/InvoiceConsolidated/InvoiceConsolidated.html\",\r\n controller: \"InvoiceConsolidatedController as InvoiceConsolidatedCtrl\"\r\n })\r\n .state('index.InvoiceItemized', {\r\n url: \"/InvoiceItemized/\",\r\n templateUrl: \"app/InvoiceItemized/InvoiceItemized.html\",\r\n controller: \"InvoiceItemizedController as InvoiceItemizedCtrl\"\r\n })\r\n .state('index.DemoJobAssign', {\r\n url: \"/Jobs/DemoJobAssign\",\r\n templateUrl: \"app/ScheduleJobAssignation/DemoJobAssign.html\",\r\n controller: 'DemoAssignedController as jobAssign'\r\n })\r\n .state('index.RosterManagement', {\r\n url: \"/RosterManagement\",\r\n templateUrl: \"app/RosterManagement/RosterShift.html\",\r\n controller: 'RosterShiftController as rosterShift'\r\n })\r\n .state('index.ToolUtility', {\r\n url: \"/Jobs/ToolUtility\",\r\n templateUrl: \"app/ToolUtility/ToolUtility.html\",\r\n controller: 'ToolUtilityController as toolUtilityCtrl'\r\n })\r\n .state('index.CalendarManagement', {\r\n url: \"/Jobs/CalendarManagement\",\r\n templateUrl: \"app/CalendarManagement/CalendarManagement.html\",\r\n controller: 'CalendarManagementController as calendarMgmtCtrl'\r\n })\r\n .state('index.NorthCalendarManagement', {\r\n url: \"/Jobs/NorthCalendarManagement\",\r\n templateUrl: \"app/CalendarManagement/NorthCalendarManagement.html\",\r\n controller: 'NorthCalendarManagementController as calendarMgmtNorthCtrl'\r\n })\r\n .state('index.EastCalendarManagement', {\r\n url: \"/Jobs/NepalCalendarManagement\",\r\n templateUrl: \"app/CalendarManagement/EastCalendarManagement.html\",\r\n controller: 'EastCalendarManagementController as calendarMgmtEastCtrl'\r\n })\r\n .state('index.WestCalendarManagement', {\r\n url: \"/Jobs/SriLankaCalendarManagement\",\r\n templateUrl: \"app/CalendarManagement/WestCalendarManagement.html\",\r\n controller: 'WestCalendarManagementController as calendarMgmtWestCtrl'\r\n })\r\n .state('index.SouthCalendarManagement', {\r\n url: \"/Jobs/SouthCalendarManagement\",\r\n templateUrl: \"app/CalendarManagement/SouthCalendarManagement.html\",\r\n controller: 'SouthCalendarManagementController as calendarMgmtSouthCtrl'\r\n })\r\n .state('index.CalendarManagementList', {\r\n url: \"/Jobs/CalendarManagementList\",\r\n templateUrl: \"app/CalendarManagement/CalendarManagementList.html\",\r\n controller: 'CalendarManagementListController as calendarMgmtListCtrl'\r\n })\r\n .state('index.FVLeadManagement', {\r\n url: \"/FVLeadManagement/\",\r\n templateUrl: \"app/FVLeadManagement/FVLeadManagement.html\",\r\n controller: \"FVLeadManagementController as FVLeadManagementCtrl\"\r\n })\r\n .state('index.recharge', {\r\n url: \"/recharge/\",\r\n templateUrl: \"app/Recharge/recharge.html\",\r\n controller: \"RechargeController as rechargeCtrl\"\r\n })\r\n .state('index.Company_Profile', {\r\n url: \"/Company_Profile/\",\r\n templateUrl: \"app/Company_Profile/Company_Profile.html\"\r\n })\r\n .state('index.FreelancerTechnicianProfile', {\r\n url: \"/FreelancerTechnicianProfile/:UserId\",\r\n templateUrl: \"app/FreelancerTechnicianProfile/FreelancerTechnicianProfile.html\",\r\n controller: \"FreelancerTechnicianProfileController as FreelancerTechnicianProfile\"\r\n })\r\n .state('index.PreferredVendorTechnicianProfile', {\r\n url: \"/PreferredVendorTechnicianProfile/:VendorId\",\r\n templateUrl: \"app/PreferredVendorTechnicianProfile/PreferredVendorTechnicianProfile.html\",\r\n controller: \"PreferredVendorTechnicianProfileController as PreferredVendorTechnicianProfile\"\r\n })\r\n .state('index.PreferredFreelancerTechnicianProfile', {\r\n url: \"/PreferredFreelancerTechnicianProfile/:UserId\",\r\n templateUrl: \"app/PreferredFreelancerTechnicianProfile/PreferredFreelancerTechnicianProfile.html\",\r\n controller: \"PreferredFreelancerTechnicianProfileController as PreferredFreelancerTechnicianProfile\"\r\n })\r\n .state('Thanku_Recharge', {\r\n url: \"/Thanku_Recharge/\",\r\n templateUrl: \"app/Thanku_Recharge/Thanku_Recharge.html\"\r\n })\r\n .state('index.HelpDesk_Customer_View', {\r\n url: \"/HelpDesk_Customer_View/:cust_loc_id/:asst_name/:asst_id\",\r\n templateUrl: \"app/HelpDeskCustomerView/HelpDesk_Customer_View.html\",\r\n controller: \"HelpDeskCustomerViewController as ctrl\"\r\n })\r\n .state('RedirectPayment', {\r\n url: \"/RedirectPaymentUrl/:job/:ta\",\r\n templateUrl: \"app/RedirectPayment/RedirectPayment.html\",\r\n controller: \"RedirectPaymentController as payment\"\r\n })\r\n .state('index.RedirectUserPayment', {\r\n url: \"/RedirectUserPaymentUrl/:user/:rAmt/:proFeeAmt/:gstAmt/:tAmt/:proFee/:gstFee\",\r\n templateUrl: \"app/RedirectUserPayment/RedirectUserPayment.html\",\r\n controller: \"RedirectUserPaymentController as userpayment\"\r\n })\r\n .state('ConsumerForm', {\r\n url: \"/ConsumerForm/:ticketId\",\r\n templateUrl: \"app/ConsumerForm/ConsumerForm.html\",\r\n controller: \"ConsumerFormController as consumerform\"\r\n })\r\n .state('NewTracking', {\r\n url: \"/NT/:accountId/:jobCardId\",\r\n // url: \"/Tracking/\",\r\n templateUrl: \"app/Tracking/NewTracking.html\",\r\n controller: \"TrackingController as tracking\"\r\n })\r\n .state('index.NotificationSettings', {\r\n url: \"/NotificationSettings/:alertType/:eventType/:mode\",\r\n templateUrl: \"app/NotificationList/NotificationList.html\",\r\n controller: \"NotificationSettingController as notification\"\r\n })\r\n .state('index.EscalationSettings', {\r\n url: \"/EscalationSettings/:mode/:alertId\",\r\n templateUrl: \"app/EscalationAlert/EscalationAlert.html\",\r\n controller: \"EscalationController as escalation\"\r\n })\r\n .state('index.SLASettings', {\r\n url: \"/SLASettings/:mode\",\r\n templateUrl: \"app/SlaAlert/SlaAlertNew.html\",\r\n controller: \"SLAController as sla\"\r\n })\r\n\r\n .state('index.Slalisting', {\r\n url: \"/Slalisting\",\r\n templateUrl: \"app/SLAManagement/Slalisting.html\",\r\n controller: \"SLAListingController as slaList\"\r\n })\r\n .state('index.SlaObjectiveDetails', {\r\n url: \"/SlaObjectiveDetails\",\r\n templateUrl: \"app/SlaObjectiveDetails/SlaObjectiveDetails.html\",\r\n controller: \"SlaObjectiveDetailsController as slaobjdetailscntrl\"\r\n })\r\n .state('index.AddMilestone', {\r\n url: \"/AddMilestone\",\r\n templateUrl: \"app/AddMilestone/AddMilestone.html\",\r\n controller: \"AddMilestoneController as milestonecntrl\"\r\n })\r\n .state('index.MilestoneDetailView', {\r\n url: \"/MilestoneDetailView\",\r\n templateUrl: \"app/MilestoneDetailView/MilestoneDetailView.html\",\r\n controller: \"MilestoneDetailViewController as viewmilestonecntrl\"\r\n })\r\n .state('index.SLAObjectiveList', {\r\n url: \"/SLAObjectiveList\",\r\n templateUrl: \"app/SLAObjectiveList/SLAObjectiveList.html\",\r\n controller: \"SLAObjectiveListController as slaobjectiveList\"\r\n })\r\n .state('index.AssignedProfileToUser', {\r\n url: \"/AssignedProfileToUser\",\r\n templateUrl: \"app/AssignedProfileToUser/AssignedProfileToUser.html\",\r\n controller: \"AssignedProfileToUserController as assignedprofileusercntrl\"\r\n })\r\n .state('index.PermissionSet', {\r\n url: \"/PermissionSet\",\r\n templateUrl: \"app/PermissionSet/PermissionSet.html\",\r\n controller: \"PermissionSetController as permissionsercntrl\"\r\n })\r\n .state('index.SlaCreation', {\r\n url: \"/SlaCreation/:slaId\",\r\n templateUrl: \"app/SLAManagement/SlaCreation.html\",\r\n controller: \"SLACrationController as slaCreate\"\r\n })\r\n .state('index.ProfileManagement', {\r\n url: \"/ProfileManagement\",\r\n templateUrl: \"app/ProfileManagement/ProfileManagement.html\",\r\n controller: \"ProfileManagementController as profilemangementcntrl\"\r\n })\r\n .state('index.ProfileManagementDetail', {\r\n url: \"/ProfileManagementDetail\",\r\n templateUrl: \"app/ProfileManagementDetail/ProfileManagementDetail.html\",\r\n controller: \"ProfileManagementDetailController as profilemangementviewcntrl\"\r\n })\r\n .state('index.ProfileObjectDetail', {\r\n url: \"/ProfileObjectDetail\",\r\n templateUrl: \"app/ProfileObjectDetail/ProfileObjectDetail.html\",\r\n controller: \"ProfileObjectDetailController as profileobjectcntrl\"\r\n })\r\n .state('index.PermissionSetDetailView', {\r\n url: \"/PermissionSetDetailView\",\r\n templateUrl: \"app/PermissionSetDetailView/PermissionSetDetailView.html\",\r\n controller: \"PermissionSetDetailViewController as permissionviewcntrl\"\r\n })\r\n .state('index.PermissionSetAssignedUser', {\r\n url: \"/PermissionSetAssignedUser\",\r\n templateUrl: \"app/PermissionSetAssignedUser/PermissionSetAssignedUser.html\",\r\n controller: \"PermissionSetAssignedUserController as permissionassignedusercntrl\"\r\n })\r\n .state('index.ObjectSettingsDetails', {\r\n url: \"/ObjectSettingsDetails\",\r\n templateUrl: \"app/ObjectSettingsDetails/ObjectSettingsDetails.html\",\r\n controller: \"ObjectSettingsDetailsController as objectsettingsdetailscntrl\"\r\n })\r\n .state('index.AccountHome', {\r\n url: \"/AccountHome\",\r\n templateUrl: \"app/Account Configuration/Account_Home.html\",\r\n controller: \"LayoutController as layout\"\r\n })\r\n .state('index.Fixed_Layout_Basic', {\r\n url: \"/Basic\",\r\n templateUrl: \"app/Account Configuration/Fixed_Layout_Basic.html\",\r\n controller: \"LayoutController as layout\"\r\n })\r\n .state('index.Fixed_Layout_Advanced', {\r\n url: \"/Advanced\",\r\n templateUrl: \"app/Account Configuration/Fixed_Layout_Advanced.html\",\r\n controller: \"LayoutController as layout\"\r\n })\r\n .state('index.Transactional_layout_Professional', {\r\n url: \"/Professional\",\r\n templateUrl: \"app/Account Configuration/Transactional_layout_Professional.html\",\r\n controller: \"LayoutController as layout\"\r\n })\r\n .state('index.Transactional_layout_Ultimate', {\r\n url: \"/Ultimate\",\r\n templateUrl: \"app/Account Configuration/Transactional_layout_Ultimate.html\",\r\n controller: \"LayoutController as layout\"\r\n })\r\n .state('ecommerce_cart', {\r\n url: \"/ecommerce_cart\",\r\n templateUrl: \"app/ECommerce/ecommerce_cart.html\"\r\n })\r\n .state('ecommerce_ariel_cart', {\r\n url: \"/ecommerce_ariel_cart\",\r\n templateUrl: \"app/ECommerce/ecommerce_ariel_cart.html\"\r\n })\r\n .state('ecommerce_product_details', {\r\n url: \"/ecommerce_product_details\",\r\n templateUrl: \"app/ECommerce/ecommerce_product_details.html\"\r\n })\r\n .state('ecommerce_Ariel_product_details', {\r\n url: \"/ecommerce_ariel_product_details\",\r\n templateUrl: \"app/ECommerce/ecommerce_Ariel_product_details.html\"\r\n })\r\n .state('ecommerce_products_grid', {\r\n url: \"/ecommerce_products_grid\",\r\n templateUrl: \"app/ECommerce/ecommerce_products_grid.html\"\r\n })\r\n .state('ecommerce_HomeBrand', {\r\n url: \"/ecommerce_HomeBrand\",\r\n templateUrl: \"app/ECommerce/ecommerce_Home.html\"\r\n })\r\n .state('ecommerce_Home', {\r\n url: \"/ecommerce_Home\",\r\n templateUrl: \"app/ECommerce/ecommerce_HomeBrand.html\"\r\n })\r\n .state('ecommerce_placeorder', {\r\n url: \"/ecommerce_placeorder\",\r\n templateUrl: \"app/ECommerce/ecommerce_placeorder.html\"\r\n })\r\n .state('ecommerce_ordersummary', {\r\n url: \"/ecommerce_ordersummary\",\r\n templateUrl: \"app/ECommerce/ecommerce_ordersummary.html\"\r\n })\r\n .state('ecommerce_Payment', {\r\n url: \"/ecommerce_Payment\",\r\n templateUrl: \"app/ECommerce/ecommerce_Payment.html\"\r\n })\r\n .state('ecommerce_Thnku', {\r\n url: \"/ecommerce_Thnku\",\r\n templateUrl: \"app/ECommerce/ecommerce_Thnku.html\"\r\n })\r\n .state('ExtendedWarranty', {\r\n url: \"/ExtendedWarranty\",\r\n templateUrl: \"app/ECommerce/ExtendedWarranty.html\"\r\n })\r\n .state('ExtendedWarrantySummary', {\r\n url: \"/ExtendedWarrantySummary\",\r\n templateUrl: \"app/ECommerce/ExtendedWarrantySummary.html\"\r\n })\r\n .state('ExtendedWarrantyPayment', {\r\n url: \"/ExtendedWarrantyPayment\",\r\n templateUrl: \"app/ECommerce/ExtendedWarrantyPayment.html\"\r\n })\r\n .state('ExtendedWarrantyThnku', {\r\n url: \"/ExtendedWarrantyThnku\",\r\n templateUrl: \"app/ECommerce/ExtendedWarrantyThnku.html\"\r\n })\r\n .state('index.AutoSchedularConfig', {\r\n url: \"/AutoSchedularConfig\",\r\n templateUrl: \"app/AutoSchedularConfig/AutoSchedularConfig.html\"\r\n })\r\n .state('index.Project1', {\r\n url: \"/ProjectLatest\",\r\n templateUrl: \"app/ProjectLatest/ProjectLatest.html\",\r\n controller: 'ProjectLatestController as ProjectLatest'\r\n })\r\n .state('index.ReportCreation', {\r\n url: \"/ReportCreation\",\r\n templateUrl: \"app/ReportCreation/ReportCreation.html\",\r\n controller: 'ReportCreationController as ReportCreation'\r\n })\r\n .state('index.ReportEdit', {\r\n url: \"/ReportEdit/:Reportid\",\r\n templateUrl: \"app/ReportCreation/ReportCreation.html\",\r\n data: {\r\n pageTitle: 'Example view'\r\n },\r\n controller: \"ReportCreationController as ReportCreation\"\r\n })\r\n .state('index.ReportLatest', {\r\n url: \"/ReportLatest\",\r\n templateUrl: \"app/ReportLatest/ReportLatest.html\",\r\n controller: 'ReportLatestController as ReportLatest'\r\n })\r\n .state('index.bulkuploadshiftmap', {\r\n url: \"/bulkuploadshiftmap\",\r\n templateUrl: \"app/bulkuploadshiftmap/BulkUploadShiftMapping.html\",\r\n controller: 'BulkUploadShiftMappingController as bulkuploadshift'\r\n }) \r\n .state('index.bulkuploadmasterinventory', {\r\n url: \"/bulkuploadmasterinventory\",\r\n templateUrl: \"app/bulkuploadMasterInventory/BulkUploadMasterInventory.html\",\r\n controller: 'BulkUploadMasterInventoryController as bulkuploadinventory'\r\n }) \r\n .state('index.bulkuploadCRMTeamMember', {\r\n url: \"/bulkuploadCRMTeamMember\",\r\n templateUrl: \"app/bulkuploadCRMTeamMember/bulkuploadCRMTeamMember.html\",\r\n controller: 'bulkuploadCRMTeamMemberController as bulkuploadcrmteam'\r\n }) \r\n .state('index.bulkuploadServiceCenter', {\r\n url: \"/bulkuploadServiceCenter\",\r\n templateUrl: \"app/bulkuploadServiceCenter/bulkuploadServiceCenter.html\",\r\n controller: 'bulkuploadServiceCenterController as bulkuploadservicenter'\r\n }) \r\n .state('index.bulkUploadUpdateOrder', {\r\n url: \"/bulkUploadUpdateOrder\",\r\n templateUrl: \"app/bulkUploadUpdateOrder/bulkUploadUpdateOrder.html\",\r\n controller: 'bulkUploadUpdateOrderController as bulkuploadupdateorder'\r\n }) \r\n .state('index.bulkCallBooking', {\r\n url: \"/bulkCallBooking\",\r\n templateUrl: \"app/bulkCallBooking/bulkCallBooking.html\",\r\n controller: 'bulkCallBookingController as bulkuploadcallbooking'\r\n }) \r\n .state('index.PincodeFinder', {\r\n // url: \"/PincodeFinder/:userId/:lat/:long\",\r\n url: \"/PincodeFinder/:userId\",\r\n templateUrl: \"app/PincodeFinder/PincodeFinder.html\",\r\n controller: 'PincodeFinderController as pincodefndrCtrl'\r\n })\r\n .state('index.OrdersList', {\r\n url: \"/OrdersList\",\r\n templateUrl: \"app/OrdersList/OrdersList.html\",\r\n controller: \"OrdersListController as ordersCntrl\"\r\n })\r\n .state('servicePack', {\r\n url: \"/AppLink/servicePack\",\r\n templateUrl: \"app/AppLink/applink.html\",\r\n controller: \"applinkController as applinkCtrl\"\r\n })\r\n .state('appLogin', {\r\n url: \"/AppLink/appLogin\",\r\n templateUrl: \"app/AppLink/applink.html\",\r\n controller: \"applinkController as applinkCtrl\"\r\n })\r\n .state('index.Project_Details_Latest', {\r\n url: \"/Project_Details_Latest/:projectId/:pocLocation/:projectName\",\r\n templateUrl: \"app/Project_Details_Latest/Project_Details_Latest.html\",\r\n controller: 'Project_Details_LatestController as Project_Details_Latest'\r\n });\r\n\r\n $sceProvider.enabled(false);\r\n\r\n $urlRouterProvider.otherwise('/Login');\r\n\r\n $httpProvider.interceptors.push('httpInterceptor');\r\n // $crypthmacProvider.setCryptoSecret('jfoiwjfwoifje83');\r\n }\r\n})();\r\n\n/**\r\n * slimScroll - Directive for slimScroll with custom height\r\n */\r\nfunction slimScroll($timeout) {\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n boxHeight: '@'\r\n },\r\n link: function (scope, element) {\r\n $timeout(function () {\r\n element.slimscroll({\r\n height: scope.boxHeight,\r\n railOpacity: 0.9\r\n });\r\n\r\n });\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * sideNavigation - Directive for run metsiMenu on sidebar navigation\r\n */\r\n function sideNavigation($timeout) {\r\n return {\r\n restrict: 'A',\r\n link: function (scope, element) {\r\n // Call metsi to build when user signup\r\n scope.$watch('authentication.user', function () {\r\n $timeout(function () {\r\n element.metisMenu();\r\n });\r\n });\r\n\r\n // Colapse menu in mobile mode after click on element\r\n var menuElement = angular.element('#side-menu a:not([href$=\"\\\\#\"])');\r\n menuElement.click(function () {\r\n if (angular.element(window).width() < 769) {\r\n angular.element(\"body\").toggleClass(\"mini-navbar\");\r\n }\r\n });\r\n\r\n // Enable initial fixed sidebar\r\n if (angular.element(\"body\").hasClass('fixed-sidebar')) {\r\n var sidebar = element.parent();\r\n sidebar.slimScroll({\r\n height: '100%',\r\n railOpacity: 0.9\r\n });\r\n }\r\n }\r\n };\r\n}\r\n\r\n/**\r\n * minimalizaSidebar - Directive for minimalize sidebar\r\n */\r\n function minimalizaSidebar($timeout) {\r\n return {\r\n restrict: 'A',\r\n template: '',\r\n controller: function ($scope) {\r\n $scope.minimalize = function () {\r\n angular.element('body').toggleClass('mini-navbar');\r\n if (!angular.element('body').hasClass('mini-navbar') || angular.element('body').hasClass('body-small')) {\r\n // Hide menu in order to smoothly turn on when maximize menu\r\n angular.element('#side-menu').hide();\r\n // For smoothly turn on menu\r\n $timeout(function () {\r\n angular.element('#side-menu').fadeIn(400);\r\n }, 200);\r\n } else {\r\n // Remove all inline style from jquery fadeIn function to reset menu state\r\n angular.element('#side-menu').removeAttr('style');\r\n }\r\n };\r\n }\r\n };\r\n}\r\n\r\n/// Directive for the chart in profile page\r\nfunction sparkline() {\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n sparkData: '=',\r\n sparkOptions: '='\r\n },\r\n link: function (scope, element, attrs) {\r\n scope.$watch(scope.sparkData, function () {\r\n render();\r\n });\r\n scope.$watch(scope.sparkOptions, function(){\r\n render();\r\n });\r\n var render = function () {\r\n angular.element(element).sparkline(scope.sparkData, scope.sparkOptions);\r\n };\r\n }\r\n }\r\n}\r\n\r\nfunction compile($compile)\r\n{\r\n return function(scope, element, attrs) {\r\n scope.$watch(\r\n function(scope) {\r\n // watch the 'compile' expression for changes\r\n return scope.$eval(attrs.compile);\r\n },\r\n function(value) {\r\n // when the 'compile' expression changes\r\n // assign it into the current DOM\r\n element.html(value);\r\n\r\n // compile the new DOM and link it to the current\r\n // scope.\r\n // NOTE: we only compile .childNodes so that\r\n // we don't get into infinite loop compiling ourselves\r\n $compile(element.contents())(scope);\r\n }\r\n );\r\n };\r\n}\r\n\r\nfunction loaderProgress($rootScope, ngProgressFactory) {\r\n var loader = ngProgressFactory.createInstance();\r\n return function ($scope, element, attrs) {\r\n $scope.$on(\"loader_show\", function () {\r\n loader.reset();\r\n loader.start();\r\n // return element.show();\r\n });\r\n return $scope.$on(\"loader_hide\", function () {\r\n loader.complete();\r\n return \"\";\r\n });\r\n };\r\n}\r\n\r\nfunction loader($rootScope, ngProgressFactory) {\r\n return function ($scope, element, attrs) {\r\n $scope.$on(\"loader_gif_show\", function () {\r\n return element.show();\r\n });\r\n return $scope.$on(\"loader_gif_hide\", function () {\r\n return element.hide();\r\n });\r\n };\r\n}\r\n\r\nfunction customValid(){\r\n return {\r\n require: 'ngModel',\r\n link: function(scope, ele, attrs, c) {\r\n scope.$watch(attrs.ngModel, function() {\r\n var validText = scope.register.password;\r\n if(scope.register.confirmpass == validText) {\r\n c.$setValidity('cvalid', true);\r\n } else {\r\n c.$setValidity('cvalid', false);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nfunction hcLineChart() {\r\n return {\r\n restrict: 'E',\r\n template: '
',\r\n scope: {\r\n options: '='\r\n },\r\n link: function (scope, element) {\r\n Highcharts.chart(element[0], scope.options);\r\n }\r\n };\r\n}\r\n\r\n// Directive for pie charts, pass in title and data only \r\nfunction hcPieChart() {\r\n return {\r\n restrict: 'E',\r\n template: '
',\r\n scope: {\r\n title: '@',\r\n data: '='\r\n },\r\n link: function (scope, element) {\r\n Highcharts.chart(element[0], {\r\n chart: {\r\n type: 'pie'\r\n },\r\n title: {\r\n text: scope.title\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n dataLabels: {\r\n enabled: true,\r\n format: '{point.name}: {point.percentage:.1f} %'\r\n }\r\n }\r\n },\r\n series: [{\r\n data: scope.data\r\n }]\r\n });\r\n }\r\n };\r\n}\r\n\r\nfunction clockPicker() {\r\n return {\r\n restrict: 'A',\r\n link: function(scope, element) {\r\n element.clockpicker();\r\n }\r\n };\r\n};\r\n\r\nfunction ngChart() {\r\n return {\r\n restrict: 'E',\r\n template: '
',\r\n replace: true,\r\n scope: {\r\n options: '='\r\n },\r\n link: function (scope, element) {\r\n //var chart = new Highcharts.chart(element[0], scope.options);\r\n $(window).resize(function () {\r\n $(element).highcharts().reflow();\r\n });\r\n\r\n scope.$watch(function(){\r\n return {\r\n width: element.parent().width(),\r\n height: element.parent().height(),\r\n }\r\n }, function(){ \r\n var chart = new Highcharts.chart(element[0], scope.options); \r\n //chart.reflow();\r\n setTimeout(function () { \r\n // $(element).highcharts().setsize(width, height); \r\n }, 10);\r\n\r\n } , true); // to compare the object value.\r\n\r\n }\r\n }\r\n}\r\n\r\nfunction filesInput() {\r\n return {\r\n require: \"ngModel\",\r\n link: function postLink(scope,elem,attrs,ngModel) {\r\n angular.forEach(elem, function(e){\r\n angular.element(e).on(\"change\", function(event){\r\n //console.log(scope.$parent.$parent, scope.$parent.$parent.$parent, scope.$parent.$parent.$parent.jobView.ImageArray);\r\n var fileUrls = [];\r\n event.setFilesToNgModel = function(){\r\n ngModel.$setViewValue(fileUrls);\r\n }\r\n angular.forEach(event.target.files, function(f){\r\n console.log('attrs',attrs);\r\n if(scope.$parent.$parent.$parent.jobView)\r\n {\r\n scope.$parent.$parent.$parent.jobView.ImageArray[attrs.name]=f;\r\n }\r\n else if (scope.$parent.$parent.$parent.NewjobDetailCtrl)\r\n {\r\n scope.$parent.$parent.$parent.NewjobDetailCtrl.ImageArray[attrs.name]=f;\r\n }\r\n else if (scope.$parent.$parent.$parent.JobDetailViewCtrl)\r\n {\r\n scope.$parent.$parent.$parent.JobDetailViewCtrl.ImageArray[attrs.name]=f;\r\n \r\n }\r\n \r\n var reader = new FileReader();\r\n reader.onload = function(event1)\r\n {\r\n fileUrls.push(event1.target.result);\r\n event.setFilesToNgModel();\r\n scope.$parent.$parent.$parent.JobDetailViewCtrl.getTempImgList(fileUrls);\r\n }\r\n reader.readAsDataURL(f); \r\n })\r\n \r\n })\r\n })\r\n }\r\n }\r\n}\r\n\r\nfunction fileModel($parse){\r\n return {\r\n restrict:'A',\r\n link: function(scope, element, attrs) {\r\n var model = $parse(attrs.fileModel);\r\n var modelSetter = model.assign;\r\n element.bind('change', function(){\r\n scope.$apply(function(){\r\n modelSetter(scope, element[0].files[0]);\r\n });\r\n });\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction validPass(){\r\n return {\r\n require: 'ngModel',\r\n link: function(scope, ele, attrs, c) {\r\n scope.$watch(attrs.ngModel, function() {\r\n var validText = scope.layout.password;\r\n if(scope.layout.confirmPass == validText) {\r\n c.$setValidity('pvalid', true);\r\n } else {\r\n c.$setValidity('pvalid', false);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n\r\nfunction backButton($state,$localStorage){\r\nreturn {\r\n restrict: 'A',\r\n link: function(scope, element, attrs) {\r\n element.bind('click', goBack);\r\n function goBack() {\r\n if ($localStorage.prevState.state !== undefined) {\r\n $state.go($localStorage.prevState.state,$localStorage.prevState.params);\r\n } \r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n *\r\n * Pass all functions into module\r\n */\r\n angular\r\n .module('inspinia')\r\n .directive('minimalizaSidebar', minimalizaSidebar)\r\n .directive('slimScroll', slimScroll)\r\n .directive('sideNavigation', sideNavigation)\r\n .directive('sparkline', sparkline)\r\n .directive('compile',compile)\r\n .directive('loader',loader)\r\n .directive('customValid', customValid)\r\n .directive('hcLineChart', hcLineChart)\r\n .directive('hcPieChart', hcPieChart)\r\n .directive('clockPicker', clockPicker)\r\n .directive('ngChart', ngChart)\r\n .directive(\"filesInput\", filesInput)\r\n .directive('validPass', validPass)\r\n .directive(\"backButton\", ['$state','$localStorage', backButton]);\nangular.module(\"inspinia\").run([\"$templateCache\", function($templateCache) {$templateCache.put(\"app/AccessUserView/AccessUserView.html\",\"
  1. Home
  2. All Users
Full NameUsernameMail IDRoleActiveProfileAddressAction
{{profileuser.name}}{{profileuser.username}}{{profileuser.mailid}}{{profileuser.role}}{{profileuser.profile.name || profileuser.profile}}{{profileuser.address}}
\");\n$templateCache.put(\"app/ActiveAllUser/ActiveAllUser.html\",\"
{{SearchTagsData.SearchTagDisplay}}
  1. Home
  2. All Active User
Showing {{ActiveAllUser.techpageindexCount}} to {{ActiveAllUser.usersLength}} of {{ActiveAllUser.totalTalentPoolCount}} entries
ActionUserIdNameStatusBadgesMobile No.RoleUser TypeActivation Date Activation Age(dd:hh:mm:ss)Activated ByFather\\'s NameAddress Line1Address Line2CityStatePinCode IsVideoKYC DoneIsAuthorized PartnerPrimeEmailFirst LoginStudentInternshipAdhar cardPancardCriminal CheckUPI VarifiedBank VarifiedProfile Rejection DateProfile Reviewed ByProfile Review CommentProfile Resubmit DateSkillSkill VerifiedAadhar NumberPAN NumberReporting ToDOBLast LoginWork LocationUpdated by IDUpdated by NameSourceLatitudeLongitudeToolsEquipment Audit StatusEquipment Audit DateEquipment Audit ByMSME CertifiedMSME Certified NO.
{{user.FirstName}} {{user.LastName}}
\\\"image\\\" \\\"image\\\"
{{user.PersonalEmail}}
{{user.SkillSet.toString()}}
{{user.Locations.toString()}}
{{user.UpdatedById}}{{user.UpdatedByName}}{{user.Source}}
{{user.Tools.toString()}}
{{user.AuditResult}}
{{user.AuditDate | date:\\'dd/MMM/yy\\'}}
{{user.AuditorName}}
\\\"image\\\" \\\"image\\\"

{{user.FirstName}} {{user.LastName}}

 {{user.EnrollNo}}
{{user.CustomerRating}} 
{{user.ContactNumber}}

Address :-

{{user.CurrentAdd1}}
{{user.CurrentAdd2}}
{{user.CurrentCity}}
{{user.CurrentState}}

\");\n$templateCache.put(\"app/AccountSetting/AccountSetting.html\",\"

Account Configuration

Select Account
Account Settings
Project Settings
  • {{projects.Name}}
Template Settings
  • {{template.Name}}
Scheduling Rules Settings
Assignation Rules Settings
Bonuses & Penalties Settings
Notification Settings
Please Select Account For Configuration
{{account.headingName}}
Edit
Attribute NameDescriptionCurrent ValueUpdate Value
{{config.ItemDisplayName }}{{config.ItemDescription }}Enabled Disabled {{config.ItemValue}}
Systems Role
Skills Certificate
Assets
Tools
Talent Pool
Bonus
Rule IDRule NameStageScenarioTriggerGradeAmountAction
{{bonus.RuleId}}{{bonus.RuleName}}{{bonus.Stage}}{{bonus.Scenario}}{{bonus.Trigger}}{{bonus.Grade}}{{bonus.Amount}}
Penalties
Rule IDRule NameStageScenarioTriggerGradeAmountAction
{{panelty.RuleId}}{{panelty.RuleName}}{{panelty.Stage}}{{panelty.Scenario}}{{panelty.Trigger}}{{panelty.Grade}}{{panelty.Amount}}

Alerts allow you to automatically send email or SMS notifications when certain events occur. For example, mail the dispatcher if a job is declined, mail the accounts dept when a job is completed, SMS the warehouse manager when an inbound delivery has been picked up, etc…


Alert NameAlert TypeAction
{{config.AlertId}}{{config.AlertType | uppercase}} 
  1. Transactional Alert
  Create an Alert
Create A Permission
Please select Role
Please select Channel




{{userList.PersonalEmail}}{{userList.ContactNumber}}
Please enter message.

  1. Home
  2. Escalation Alert
  Create an Alert
Create A Permission
Email Preview



Aditya.kaushik28@gmail.com898767656540 min
Aditya.kaushik28@gmail.com898767656540 min
Aditya.kaushik28@gmail.com898767656540 min
Aditya.kaushik28@gmail.com898767656540 min
Please enter message.
\");\n$templateCache.put(\"app/Account Configuration/Account_Home.html\",\"
  1. Home
  2. Account Team
  3. Account Configuration Plan

Easily Create YourOwn Account Configuration

Basic Basic Fixed payout Plan Features included!
  • No. of Tickets
  • Only Fixed Team Support
  • 7 days Grace Period
  • On Page SEO
  • 24/6 Support
Get Started
Advanced Advanced Fixed payout Plan Features included!
  • Unlimited No. of Jobs
  • Fixed With Freelancer Support
  • Freelancer Engineer Support
  • Freelancer Vendor Support
  • 24/6 Support
Get Started
Professional Basic Transactional Plan Features included!
  • Unlimited No. of Jobs
  • Only Fixed Team Support
  • Grace Period Minimum 500
  • On Page SEO
  • 24/6 Support
Get Started
Ultimate Advanced Transactional Plan Features included!
  • Unlimited No. of Jobs
  • Fixed With Freelancer Support
  • Fixed With Freelancer Support
  • Grace Period Minimum 500
  • 24/6 Support
Get Started
\");\n$templateCache.put(\"app/Account Configuration/Fixed_Layout_Advanced.html\",\"
  1. Home
  2. Fixed Layout Advanced Plan
Accounts Details
Please select vertical
Please enter company name Please enter Space, dot, hypen and only alphanumeric Please enter maximum 50 characters
Please enter first name Please enter only alphabets with space.
Please enter last name Please enter only alphabets with space.
Please enter email id Please enter valid email id
= 48 && event.charCode <= 57\\\" ng-maxlength=\\\"10\\\" required=\\\"\\\" ng-pattern=\\\"/^(?:(?:\\\\+|0{0,2})91(\\\\s*[\\\\-]\\\\s*)?|[0]?)?[789]\\\\d{9}$/\\\">
Please enter mobile no. Please enter 10 digit mobile no. Please enter valid mobile no.
Please enter passwordPassword must consists of at least 8 characters and not more than 12 characters and allowed spacial characters(@*#%?)
Please confirm password Passwords doesn\\'t match
Please select skills
Please enter no. of tickets Please enter only number
Fixed Layout Plan Only Support Fixed Team
= 48 && event.charCode <= 57\\\" required=\\\"\\\">
Please enter recharge amount
Please select month
Please select grace period
Fixed Layout Plan with freelancer Team Support
= 48 && event.charCode <= 57\\\">
Please enter Top up recharge amount
= 48 && event.charCode <= 57\\\">
Please enter minimum credit balance
\");\n$templateCache.put(\"app/Account Configuration/Fixed_Layout_Basic.html\",\"
  1. Home
  2. Fixed Layout Basic Plan
Accounts Details
Please select vertical
Please enter company name Please enter Space, dot, hypen and only alphanumeric. Please enter maximum 50 characters
Please enter first name Please enter only alphabets with space.
Please enter last name Please enter only alphabets with space.
Please enter email id Please enter valid email id
= 48 && event.charCode <= 57\\\" ng-maxlength=\\\"10\\\" required=\\\"\\\" ng-pattern=\\\"/^(?:(?:\\\\+|0{0,2})91(\\\\s*[\\\\-]\\\\s*)?|[0]?)?[789]\\\\d{9}$/\\\">
Please enter mobile no. Please enter 10 digit mobile no. Please enter valid mobile no.
Please enter passwordPassword must consists of at least 8 characters and not more than 12 characters and allowed spacial characters(@*#%?)
Please confirm password Passwords doesn\\'t match
Please select skills
Please enter no. of tickets Please enter only number
Fixed Layout Plan Only Support Fixed Team
= 48 && event.charCode <= 57\\\" required=\\\"\\\">
Please enter recharge amount
Please select month
Please select grace period
\");\n$templateCache.put(\"app/Account Configuration/Transactional_layout_Professional.html\",\"
  1. Home
  2. Transactional Layout Professioanl Plan
Accounts Details
Please select vertical
Please enter company name Company name shouldn\\'t exceed 50 characters Please enter Space, dot, hypen and only alphanumeric.
Please enter first name Your first name should contain alphabets only
Please enter last name Your last name should contain alphabets only
Please enter email id Please enter valid email id
= 48 && event.charCode <= 57\\\" ng-maxlength=\\\"10\\\">
Please enter mobile no. Please enter 10 digit mobile no. Please enter valid mobile no.
Please enter passwordPassword must consists of at least 8 characters and not more than 12 characters and allowed spacial characters(@*#%?)
Please confirm your password Passwords doesn\\'t match
Skills Commission
Please enter only alphanumeric with space, hyphen, slace, comma
Transactional Layout Plan with only fixed Team Support
= 48 && event.charCode <= 57\\\" required=\\\"\\\">
Please enter recharge amount
= 48 && event.charCode <= 57\\\" required=\\\"\\\">
Please enter minimum credit balance
\");\n$templateCache.put(\"app/Account Configuration/Transactional_layout_Ultimate.html\",\"
  1. Home
  2. Transactional Layout Ultimate Plan
Accounts Details
Please select vertical
Please enter company name Company name shouldn\\'t exceed 50 characters Please enter Space, dot, hypen and only alphanumeric.
Please enter first name Your first name should contain alphabets only
Please enter last name Your last name should contain alphabets only
Please enter email id Please enter valid email id
= 48 && event.charCode <= 57\\\" required=\\\"\\\" ng-maxlength=\\\"10\\\">
Please enter mobile no. Please enter 10 digit mobile no. Please enter valid mobile no.
Please enter passwordPassword must consists of at least 8 characters and not more than 12 characters and allowed spacial characters(@*#%?)
Please confirm your password Passwords doesn\\'t match
Skills Commission
Please enter only alphanumeric with space, hyphen, slace, comma
Transactional Layout Plan with Freelancer & fixed Team Support
= 48 && event.charCode <= 57\\\" required=\\\"\\\">
Please enter recharge amount
= 48 && event.charCode <= 57\\\" required=\\\"\\\">
Please enter minimum credit balance
\");\n$templateCache.put(\"app/Account/Account.html\",\"
  1. Home
  2. Accounts
Filters
IdCompany NameAdmin UserContact NumberEmailCreated OnActivated OnStatus
{{teamMember.UserStatus}}
{{account.userInfo.CompanyName}}
\\\"image\\\"

{{account.userInfo.FirstName}} {{account.userInfo.LastName}}

{{account.userInfo.ContactNumber}}

Current Location
{{account.userInfo.CurrentAdd1}}
{{account.userInfo.CurrentAdd2}}
{{account.userInfo.CurrentCity}}, {{account.userInfo.CurrentState}}
Not Available
Available Balance

Activate

\");\n$templateCache.put(\"app/ActiveUser/ActiveUser.html\",\"
  1. Home
  2. Active User
Filters
{{activeUser.userInfo.FirstName}} {{activeUser.userInfo.LastName}}

Change Pic
{{activeUser.userInfo.PictureError}}

{{activeUser.userInfo.Role}}

{{activeUser.userInfo.ContactNumber}}

Current Location
{{activeUser.userInfo.CurrentAdd1}}
{{activeUser.userInfo.CurrentAdd2}}
{{activeUser.userInfo.CurrentCity}}, {{activeUser.userInfo.CurrentState}}
Activate

Available Balance


Skills
{{skill}}
Please select skills
Work Area
{{workArea}}
Please select locations
Total Jobs {{activeUser.userInfo.JobTotal}}Assigned Jobs {{activeUser.userInfo.JobAssigned}}
Approved Jobs {{activeUser.userInfo.JobApproved}}Completed Jobs {{activeUser.userInfo.JobCompleted}}
Rejected Jobs {{activeUser.userInfo.JobRejected}}Cancelled Jobs {{activeUser.userInfo.JobCancelled}}

\");\n$templateCache.put(\"app/AccountsRechargeHistory/AccountsRechargeHistory.html\",\"
  1. Home
  2. Account Recharge History
\");\n$templateCache.put(\"app/ActiveUserUpdate/ActiveUserUpdate.html\",\"
  1. Home
  2. Active User Update

Basic Information

Location

Documents

Training Certificate

Assets

Skill Set and Assessment

UPDATE ACTIVE USER

Save as Draft
Deactivate User
Registered User Information
Step 1

{{ActiveUserUpdate.fileUploadError}}

{{ActiveUserUpdate.FirstName}} {{ActiveUserUpdate.LastName}}

{{ActiveUserUpdate.MobileNo}}
Criminal Verification :


Please enter first name Your first name cannot be longer than 50 characters Your first name should only contain alphabets
Please enter last name Your last name cannot be longer than 50 characters Your last name should only contain alphabets
= 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\">
Please enter Mobile number Please enter valid Mobile number
Please enter valid email id

Please enter date of birth

Please select valid date of birth

Date of birth should be less than {{ActiveUserUpdate.maxDOBStr}}

Please select your gender
Please enter valid PAN NUMBER
= 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{12}$/\\\">
Please enter valid AADHAR NUMBER
Please select your designation
Please enter father\\'s name Father\\'s name cannot be longer than 50 characters Father\\'s name should only contain alphabets
Locations
Step 2

Please enter address line 1 Please enter only alphanumeric with space, hyphen, slace, comma
Please enter address line 2 Please enter only alphanumeric with space, hyphen, slace, comma
Please select state
Please select city
Please enter pincode Please enter valid pincode

Please enter address line 1 Please enter only alphanumeric with space, hyphen, slace, comma
Please enter address line 2 Please enter only alphanumeric with space, hyphen, slace, comma
Please select state
Please select city
Please enter valid pincode
Please Select Work Location
Please enter only alphanumeric with space, hyphen, slace, comma
Background Checks
Step 3

TypeDocument NameDocument NumberDocumentDocument BackStatusVerification ModeVerification authorityUpdated ByUpdated OnThird-party ReportAction
{{doc.DocumentType}}{{doc.DocumentName}}{{doc.DocumentNo}} Not Submitted Upload File
View Document View Document Upload File
Not Submitted Upload File
View Document View Document Upload File
{{doc.VerificationStatus}}{{doc.VerificationMode}}
{{doc.VerificationAuthority}}
{{doc.UpdatedBy}}{{doc.UpdatedOn | date}}
Documents
Step 3

Document TypeDocument NameView DocumentRequirementAction
{{doc.DocumentType}}{{doc.DocumentName}}Not Submitted Upload File
View Document Upload File
Yes Not MandatoryYes Not Mandatory
Training Certificates
Step 4

Certificate NameCertificate No.Certificate IssuedCertificate ExpiryIsCertificateExpiredCertificateVerification DocStatusCertificate AgencyAction
{{traning.CertificateName}}{{traning.CertificateNo}} {{traning.CertificateIssueDate | date:\\'dd-MM-yyyy\\'}}
{{traning.CertificateExpiryDate | date:\\'dd-MM-yyyy\\'}}
{{traning.IsCertificateExpired}}
Not Submitted Upload File
Not Submitted Upload File
{{traning.VerificationStatus}} {{traning.VerificationStatus}}{{traning.VerificationAgency}}         
  
Training
Training NameTraining DateTraining ImageTraining Attendance
{{Audittraining.TrainingName}}{{Audittraining.TrainingDate | date:\\'dd/MM/yyyy hh:mm a\\'}} \\\"\\\" \\\"\\\"
Criminal Check Verification
TypeDocument TypeVerifications TypeDocument NumberVerification ModeVerification AuthorityUpdated byUpdated OnStatusCrimnal Report
CriminalThird Party Assessment ReportOptional{{ActiveUserUpdate.CriminalVarificationObj.DocumentNo}}Third Party{{ActiveUserUpdate.CriminalVarificationObj.VerificationAuthority}}{{ActiveUserUpdate.CriminalVarificationObj.UpdatedBy}}{{ActiveUserUpdate.CriminalVarificationObj.UpdatedOn | date:\\'dd/MM/yyyy hh:mm a\\'}}{{ActiveUserUpdate.CriminalVarificationObj.verificationStatus}}
\\\"\\\"
Available Asset
Step 5

Skills
Step 6

SkillsExperiencePercentageResultAssessment Link
{{skilldata.Skill}}{{skilldata.Experience}}{{skilldata.PercentageScore}} %{{skilldata.Status}}Send Link
Private for the accounts
Account NameAccount Id
{{accountdata.Account}}{{accountdata.AccountId}}
{{ActiveUserUpdate.AccountId}}
Tools/Equipments
Equipment NameVerification StatusView ToolActionItem Serial NumberDate Of Manufacturing
{{assettool.ToolName}}{{assettool.VerificationStatus}} {{assettool.VerificationStatus}} {{assettool.VerificationStatus}} {{assettool.ItemSerialNumber}}{{assettool.DateOfManufacturing}}

Equipment Audit StatusEquipment Audited OnEquipment Audited ByEquipment Audit Report
{{Audittool.AuditResult}} {{Audittool.AuditResult}}{{Audittool.AuditDate | date:\\'dd/MM/yyyy hh:mm a\\'}}{{Audittool.AuditorDetails.AuditorName}}
Previous Company Details
Company NameWork LocationProject NameDesignationAccountDate of JoiningDate of RelievingExperience Letter
{{previousCompanyDetail.CompanyName}}{{previousCompanyDetail.WorkLocation}}{{previousCompanyDetail.ProjectName}}{{previousCompanyDetail.Designation}}{{previousCompanyDetail.AccountName}}{{previousCompanyDetail.DateOfJoining | date:\\'dd/MM/yyyy hh:mm a\\'}}{{previousCompanyDetail.DateOfRelieving | date:\\'dd/MM/yyyy hh:mm a\\'}} \\\"\\\"

Experience Verification StatusExperience Verified OnExperience Verified ByExperience Verification Report
{{AuditExperience.AuditResult}} {{AuditExperience.AuditResult}}{{AuditExperience.AuditDate | date:\\'dd/MM/yyyy hh:mm a\\'}}{{AuditExperience.AuditorDetails.AuditorName}} \\\"\\\"
Authorized for service centre
Service Partner IdVertical NameBrand NameAdditional Brand NameProduct ServingAdditional Product ServingTenureTeam SizeService Center AddressCertificate of AuthorizationTraining CertificatePhoto of Shop/office/Service CenterAction
{{doc.ServicePartnerId}}{{doc.VerticalName}}{{doc.BrandName}}{{doc.BrandNameOther}} {{doc.ProductServing}}{{doc.ProductServingOther}} {{doc.Tenure}} {{doc.TeamSize}} {{doc.ServiceCenterAddress}} Not Submitted Upload File
View Document View Document Upload File
Not Submitted Upload File
View Document View Document Upload File
Not Submitted Upload File
View Document View Document Upload File
\");\n$templateCache.put(\"app/ActiveVendorTeamList/ActiveVendorTeam.html\",\"
  1. Home
  2. Vendor Team
Filters
\");\n$templateCache.put(\"app/ActiveVendorUpdate/ActiveVendorUpdate.html\",\"
  1. Home
  2. On Boarding Form

Basic Information

Location

Documents

Training Certificate

Assets

Skill Set and Assessment

UPDATE ACTIVE VENDOR

Save as Draft
Deactivate User
Registered User Information
Step 1

{{ActiveVendorUpdate.fileUploadError}}

{{ActiveVendorUpdate.FirstName}} {{ActiveVendorUpdate.LastName}}

{{ActiveVendorUpdate.MobileNo}}

Please enter first name Your first name cannot be longer than 50 characters Your first name should only contain alphabets
Please enter last name Your last name cannot be longer than 50 characters Your last name should only contain alphabets
= 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\">
Please enter valid Mobile number
Please enter valid email id
Please enter date of birthDate of birth should be less than {{ActiveVendorUpdate.maxDOBStr}}
Please select your gender
= 48 && event.charCode <= 57\\\">
Please select Team Size
Please enter valid PAN NUMBER
= 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{12}$/\\\">
Please enter valid AADHAR NUMBER (12-Digits)
Please select your designation
Space Available in (Sq.ft)Floors AvailableAddressStateCityAction
= 48 && event.charCode <= 57\\\" class=\\\"form-control input-sm\\\" ng-model=\\\"infra.SpaceAvailable\\\">
Seats CapacityNo. of TrainersAddressStateCitySkillsAction
= 48 && event.charCode <= 57\\\" class=\\\"form-control input-sm\\\" ng-model=\\\"trainers.SeatsCapacity\\\">= 48 && event.charCode <= 57\\\" ng-model=\\\"trainers.NoOfTrainers\\\">
Locations
Step 2

Please enter address line 1 Please enter only alphanumeric with space, hyphen, slace, comma
Please enter address line 2 Please enter only alphanumeric with space, hyphen, slace, comma
Please select state
Please select city
Please enter pincode Please enter valid pincode

Please enter address line 1 Please enter only alphanumeric with space, hyphen, slace, comma
Please enter address line 2 Please enter only alphanumeric with space, hyphen, slace, comma
Please select state
Please select city
Please enter valid pincode
Please Select Work Location
Please enter only alphanumeric with space, hyphen, slace, comma
Background Checks
Step 3

TypeDocument NameDocument NumberDocumentStatusVerification ModeVerification authorityUpdated ByUpdated OnThird-party ReportAction
{{doc.DocumentType}}{{doc.DocumentName}}{{doc.DocumentNo}} Not Submitted Upload File
View Document View Document Upload File
{{doc.VerificationStatus}}{{doc.VerificationMode}}
{{doc.VerificationAuthority}}
{{doc.UpdatedBy}}{{doc.UpdatedOn | date}}
Company Details

Please enter valid company registeration no.
Please enter bank a/c number Please enter valid account no(9-18 Digits)
Please enter valid company Gst no.
Please enter bank a/c number Please enter valid account no(9-18 Digits)
Please enter bank a/c number Please enter valid account no(9-18 Digits)
Please enter bank a/c number Please enter valid account no(9-18 Digits)
Please enter valid msme no.
Documents
Step 3

Document TypeDocument NameView DocumentRequirementAction
{{doc.DocumentType}}{{doc.DocumentName}}Not Submitted Upload File
View Document View Document Upload File
YesNot Mandatory
Training Certificates
Step 4

Certificate NameCertificate No.Certificate IssuedCertificate ExpiryIsCertificateExpiredCertificateVerification DocStatusCertificate AgencyAction
{{traning.CertificateName}}{{traning.CertificateNo}} {{traning.CertificateIssueDate | date:\\'dd-MM-yyyy\\' }}
{{traning.CertificateExpiryDate | date:\\'dd-MM-yyyy\\' }}
{{traning.IsCertificateExpired}}
Not Submitted Upload File
Not Submitted Upload File
{{traning.VerificationStatus}} {{traning.VerificationStatus}}{{traning.VerificationAgency}}         
  
Training
Training NameTraining DateTraining ImageTraining Attendance
{{Audittraining.TrainingName}}{{Audittraining.TrainingDate | date:\\'dd/MM/yyyy hh:mm a\\'}} \\\"\\\" \\\"\\\"
Criminal Check Verification
TypeDocument TypeVerifications TypeDocument NumberVerification ModeVerification AuthorityUpdated byUpdated OnStatusCrimnal Report
CriminalThird Party Assessment ReportOptional{{ActiveVendorUpdate.CriminalVarificationObj.DocumentNo}}Third Party{{ActiveVendorUpdate.CriminalVarificationObj.VerificationAuthority}}{{ActiveVendorUpdate.CriminalVarificationObj.UpdatedBy}}{{ActiveVendorUpdate.CriminalVarificationObj.UpdatedOn | date:\\'dd/MM/yyyy hh:mm a\\'}}{{ActiveVendorUpdate.CriminalVarificationObj.verificationStatus}}
\\\"\\\"
Available Asset
Step 5

Skills
Step 6

SkillsExperience
{{skilldata.Skill}}{{skilldata.Experience}}
Tools/Equipments
Equipment NameVerification StatusView ToolActionItem Serial NumberDate Of Manufacturing
{{assettool.ToolName}}{{assettool.VerificationStatus}} {{assettool.VerificationStatus}} {{assettool.VerificationStatus}} {{assettool.ItemSerialNumber}}{{assettool.DateOfManufacturing}}

Equipment Audit StatusEquipment Audited OnEquipment Audited ByEquipment Audit Report
{{Audittool.AuditResult}} {{Audittool.AuditResult}}{{Audittool.AuditDate | date:\\'dd/MM/yyyy hh:mm a\\'}}{{Audittool.AuditorDetails.AuditorName}}
Previous Company Details
Company NameWork LocationProject NameDesignationAccountDate of JoiningDate of RelievingExperience Letter
{{previousCompanyDetail.CompanyName}}{{previousCompanyDetail.WorkLocation}}{{previousCompanyDetail.ProjectName}}{{previousCompanyDetail.Designation}}{{previousCompanyDetail.AccountName}}{{previousCompanyDetail.DateOfJoining | date:\\'dd/MM/yyyy hh:mm a\\'}}{{previousCompanyDetail.DateOfRelieving | date:\\'dd/MM/yyyy hh:mm a\\'}} \\\"\\\"

Experience Verification StatusExperience Verified OnExperience Verified ByExperience Verification Report
{{AuditExperience.AuditResult}} {{AuditExperience.AuditResult}}{{AuditExperience.AuditDate | date:\\'dd/MM/yyyy hh:mm a\\'}}{{AuditExperience.AuditorDetails.AuditorName}} \\\"\\\"
\");\n$templateCache.put(\"app/AddMilestone/AddMilestone.html\",\"
  1. Home
  2. SLA Objective Process Detail
SLA Objective Process Detail

{{ slaobjectiveList.name }}

{{ slaobjectiveList.SLAProcessType }}

{{ slaobjectiveList.slaDescription }}

When Entity is Created

Based on custom criteria

Default

Pankaj Sharma 20/01/2025, 10:13 AM

Milestone
ActionOrderNameCriteriaMinutes To Complete MilestoneStart TimeBusiness Hours
Edit | Del{{milestone.order}}{{milestone.name}}{{milestone.criteria}}{{milestone.minutes}}{{milestone.startTime}}{{milestone.businessHours}}
\");\n$templateCache.put(\"app/AdvancedDashboardShare/advancedDashboard.html\",\"
{{rollup}}
{{chart.ChartTitle}}

{{dashboard.metricsCharts[chart.ChartId].value&&dashboard.metricsCharts[chart.ChartId].value.length>0?(dashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(dashboard.metricsCharts[chart.ChartId].value[$index].Value|currency:\\'₹\\'):dashboard.metricsCharts[chart.ChartId].value[$index].Value):\\\"NA\\\"}} 0\\\" class=\\\"text-success font-bold\\\">{{dashboard.metricsCharts[chart.ChartId].value[$index].ValueUnitAbbr}}

{{dashboard.metricsCharts[chart.ChartId].value&&dashboard.metricsCharts[chart.ChartId].value.length>0?(dashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(main.round2Decimal(dashboard.metricsCharts[chart.ChartId].value[$index].Value)|currency:\\'₹\\'):main.round2Decimal(dashboard.metricsCharts[chart.ChartId].value[$index].Value)):\\\"NA\\\"}}

{{dashboard.metricsCharts[chart.ChartId].value[$index].timevalue}}

0) && dashboard.metricsCharts[chart.ChartId].value[$index].CompareResult\\\" class=\\\"matrix-number text-green\\\"> {{dashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(dashboard.metricsCharts[chart.ChartId].value[$index].ComparisonValue|currency:\\'₹\\'):dashboard.metricsCharts[chart.ChartId].value[$index].ComparisonValue}} 0\\\" class=\\\"text-green font-bold\\\">{{dashboard.metricsCharts[chart.ChartId].value[$index].ValueUnitAbbr}} 0) && !dashboard.metricsCharts[chart.ChartId].value[$index].CompareResult\\\" class=\\\"matrix-number text-danger\\\"> {{dashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(dashboard.metricsCharts[chart.ChartId].value[$index].ComparisonValue|currency:\\'₹\\'):dashboard.metricsCharts[chart.ChartId].value[$index].ComparisonValue}} 0\\\" class=\\\"text-danger font-bold\\\">{{dashboard.metricsCharts[chart.ChartId].value[$index].ValueUnitAbbr}} {{dashboard.metricsCharts[chart.ChartId].subtitles[$index]}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{col}}
{{val}} {{val}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{col}}
{{val}} {{val}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}

{{chart.ChartTitle}}

{{chart.ChartTitle}}

{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
\");\n$templateCache.put(\"app/AdvancedDashboard/advancedDashboard.html\",\"
{{rollup}}
{{chart.ChartTitle}}

{{dashboard.metricsCharts[chart.ChartId].value&&dashboard.metricsCharts[chart.ChartId].value.length>0?(dashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(dashboard.metricsCharts[chart.ChartId].value[$index].Value|currency:\\'₹\\'):dashboard.metricsCharts[chart.ChartId].value[$index].Value):\\\"NA\\\"}} 0\\\" class=\\\"text-success font-bold\\\">{{dashboard.metricsCharts[chart.ChartId].value[$index].ValueUnitAbbr}}

{{dashboard.metricsCharts[chart.ChartId].value&&dashboard.metricsCharts[chart.ChartId].value.length>0?(dashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(main.round2Decimal(dashboard.metricsCharts[chart.ChartId].value[$index].Value)|currency:\\'₹\\'):main.round2Decimal(dashboard.metricsCharts[chart.ChartId].value[$index].Value)):\\\"NA\\\"}}

{{dashboard.metricsCharts[chart.ChartId].value[$index].timevalue}}

0) && dashboard.metricsCharts[chart.ChartId].value[$index].CompareResult\\\" class=\\\"matrix-number text-green\\\"> {{dashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(dashboard.metricsCharts[chart.ChartId].value[$index].ComparisonValue|currency:\\'₹\\'):dashboard.metricsCharts[chart.ChartId].value[$index].ComparisonValue}} 0\\\" class=\\\"text-green font-bold\\\">{{dashboard.metricsCharts[chart.ChartId].value[$index].ValueUnitAbbr}} 0) && !dashboard.metricsCharts[chart.ChartId].value[$index].CompareResult\\\" class=\\\"matrix-number text-danger\\\"> {{dashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(dashboard.metricsCharts[chart.ChartId].value[$index].ComparisonValue|currency:\\'₹\\'):dashboard.metricsCharts[chart.ChartId].value[$index].ComparisonValue}} 0\\\" class=\\\"text-danger font-bold\\\">{{dashboard.metricsCharts[chart.ChartId].value[$index].ValueUnitAbbr}} {{dashboard.metricsCharts[chart.ChartId].subtitles[$index]}}
{{rollup}}
{{chart.ChartTitle}} -
{{chart.ChartSubtitle}}

{{dashboard.metricsCharts[chart.ChartId].value&&dashboard.metricsCharts[chart.ChartId].value.length>0?(dashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(dashboard.metricsCharts[chart.ChartId].value[$index].strValue): dashboard.metricsCharts[chart.ChartId].value[$index].Value):\\\"NA\\\"}} {{dashboard.metricsCharts[chart.ChartId].value[$index].AcheivedPercentage}} % {{dashboard.metricsCharts[chart.ChartId].value[$index].AcheivedPercentage}} %

{{dashboard.DateRangeSelectedKey}} : {{dashboard.metricsCharts[chart.ChartId].value&&dashboard.metricsCharts[chart.ChartId].value.length>0?(dashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(dashboard.metricsCharts[chart.ChartId].value[$index].strTargetValue):dashboard.metricsCharts[chart.ChartId].value[$index].TargetValue):\\\"NA\\\"}}

{{dashboard.DateRangeSelectedKey}} : {{dashboard.metricsCharts[chart.ChartId].value&&dashboard.metricsCharts[chart.ChartId].value.length>0?(dashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(dashboard.metricsCharts[chart.ChartId].value[$index].strValue):dashboard.metricsCharts[chart.ChartId].value[$index].Value):\\\"NA\\\"}}

{{chart.ChartTitle}} -
{{chart.ChartSubtitle}}
{{dashboard.ActualSelectedKey}}
Target : {{(dashboard.gaugeCharts[chart.ChartId].value[0].ValueType == \\'INR\\'?(dashboard.gaugeCharts[chart.ChartId].value[0].strTargetValue):dashboard.gaugeCharts[chart.ChartId].value[0].TargetValue)}}
Remaining : {{(dashboard.gaugeCharts[chart.ChartId].value[0].ValueType == \\'INR\\'?(dashboard.gaugeCharts[chart.ChartId].value[0].strRemainingValue):dashboard.gaugeCharts[chart.ChartId].value[0].RemainingValue)}}
Exceed : {{(dashboard.gaugeCharts[chart.ChartId].value[0].ValueType == \\'INR\\'?(dashboard.gaugeCharts[chart.ChartId].value[0].strRemainingValue):dashboard.gaugeCharts[chart.ChartId].value[0].RemainingValue)}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{col}}
{{val}} {{val}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{col}}
{{val}} {{val}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}

{{chart.ChartTitle}}

{{chart.ChartTitle}}

{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
{{chart.ChartTitle}}
\");\n$templateCache.put(\"app/AllAssetsList/AllAssetsList.html\",\"
10

Total Assests

6

Total Active Assests

4

Total Defective Assests

3

Service Due Request

5

End Of Life

2

WarrantyExpire In 30 Days

3

Transfer Request

Assets IDProduct DetailsBrandPurchase OnWarrantyWarranty StatusService Due RequestsTransfer RequestsActions
A40000002388
\\\"Single
Single Door Refrigerator
M12772727272727
\\\"Brand\\\"20 July 202010 days beforeActive21
A40000002389
\\\"Double
Double Door Refrigerator
M177272727272711
\\\"Brand\\\"21 July 20209 days beforeExpiring Soon30
A40000002390
\\\"Microwave
Double Door Refrigerator
MO123456789
\\\"LG15 June 20191 year leftActive12
A40000002391
\\\"Air
Single Door Refrigerator
M567891234
\\\"Samsung\\\"10 April 20182 months leftWarning40
A40000002392
\\\"Air
Single Door Refrigerator
M5678912889
\\\"Samsung\\\"1 March 20215 years leftActive01
A40000002393
\\\"Air
Double Door Refrigerator
M5678912865
\\\"Samsung\\\"15 Jan 20201 year leftActive10
A40000002394
\\\"Air
Double Door Refrigerator
M56789128899
\\\"Samsung\\\"20 Aug 20212 years leftActive20
A40000002395
\\\"Air
Double Door Refrigerator
M56644242411
\\\"Samsung\\\"12 Dec 2019ExpiredExpired02
A40000002396
\\\"Air
Single Door Refrigerator
M56644242411
\\\"Samsung\\\"10 Feb 20201 month leftExpiring Soon11
A40000002397
\\\"Air
Single Door Refrigerator
M5664426880
\\\"Samsung\\\"18 May 2018ExpiredExpired30
Showing {{CntrlAllAssestList.techpageindexCount}} to {{CntrlAllAssestList.usersLength}} of {{CntrlAllAssestList.totalTalentPoolCount}} entries
Assests Filters
Clear
\");\n$templateCache.put(\"app/AllOrdersReceivedList/AllOrdersReceivedList.html\",\"
  1. Home
  2. All Orders List
Showing {{AllOrderListCntrl.opageindexCount}} to {{AllOrderListCntrl.orderListLength}} of {{totalOrderList}} entries
Order IDOrder StatusOrder SourceCall IDParent Order IDActionUpdate OrderOrder DateOrder QuantityOrder Amount (₹)Order Amount (with GST) (₹)Billing AddressRequest ByOrder TypeInvoice No.Invoice DatePO NO.PO DatePackaging IDPackaging DatePackage Tracking IDShipment IDShipment DateShipment Doc.Tracking LinkGR No.Expected Delivery DateComment
{{orderList.OrderId}}{{orderList.OrderStatus}}{{orderList.OrderTicketType}}{{orderList.TicketId}}{{orderList.ParentOrderId}} {{orderList.OrderDate | date:\\'dd/MMM/yy h:mm:ss a\\'}}{{orderList.OrderItemCount}}{{orderList.OrderTotalAmount}}{{orderList.OrderTotalAmountWithGST}}{{orderList.BillingAddress}}{{orderList.RequestBy}}{{orderList.OrderType}}{{orderList.InvoiceNumber }}{{orderList.InvoiceDate | date:\\'dd/MMM/yy h:mm:ss a\\' }}{{orderList.PONumber}}{{orderList.PODate | date:\\'dd/MMM/yy h:mm:ss a\\' }}{{orderList.objPackageDetails[0].strPackageId}}{{orderList.objPackageDetails[0].datePackedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}{{orderList.objPackageDetails[0].strPackageTrackingId}}{{orderList.objPackageDetails[0].strShipmentId}}{{orderList.ShipmentDate | date:\\'dd/MMM/yy h:mm:ss a\\'}}{{orderList.Attachement}} \\\"No{{trackingLink}}{{orderList.GRNumber}}{{orderList.ExpectedDeliveryDate | date:\\'dd/MMM/yy h:mm:ss a\\'}}{{orderList.CancelComment}}
Call IDPart IDPart NameActionPart ImageBrandPart CodePart DescriptionItem QuantityItem UnitService Center Price Per Unit (₹)Total Amount (₹)Total Amount (with GST) (₹)
{{tickets.strTicketId}}{{lineitem.strItemId}}{{lineitem.strItemName}}\\\"image-1\\\"{{lineitem.strItemBrand}}{{lineitem.strSKUId}}
  • {{orderdesc}}
{{lineitem.nItemQuantity}}{{lineitem.strItemUnit}}{{lineitem.dItemPriceAfterDiscount}}{{lineitem.dItemTotalPrice}}{{lineitem.dItemTotalPriceWithGST}}

Part Details

Part ID:{{AllOrderListCntrl.PartDetails.strItemId}}
Part Name:{{AllOrderListCntrl.PartDetails.strItemName}}
Part Code:{{AllOrderListCntrl.PartDetails.strSKUId}}
BrandName :{{AllOrderListCntrl.PartDetails.strItemBrand}}
Unit :{{AllOrderListCntrl.PartDetails.strItemUnit}}
Part Price (₹):{{AllOrderListCntrl.PartDetails.dItemActualPrice}}
Service Center Price (₹):{{AllOrderListCntrl.PartDetails.dItemPriceAfterDiscount}}

About

  • {{description}}
\");\n$templateCache.put(\"app/AllTasksOps/AllTasksOps.html\",\"
  1. Home
  2. Task Priority
Task Type
( {{ALTOSCtrl.OverallClosedTask }} / {{ ALTOSCtrl.OverallTotalTask}} )

Follow Up {{ALTOSCtrl.FollowUpTask}}

Negative Wallet {{totalOrderList}}

{{onboardingTask.TaskId}} ( {{onboardingTask.TotalHiredUsers}}/{{onboardingTask.ExpectedCapacity}} )

PICKUP TAT BREACH {{ALTOSCtrl.PickupTAT}}

ESTIMATE TAT BREACH {{ALTOSCtrl.EstimateTAT}}

ESTIMATE APPROVAL TAT
BREACH {{ALTOSCtrl.EstimateApprovalTAT}}

REPAIR TAT BREACH {{ALTOSCtrl.RepairTAT}}

DELIVERY TAT BREACH {{ALTOSCtrl.DeliveryTAT}}

My Day

Start My Day

30

Call Attempted

21

Call Connected

45 Min

Talk Time

Showing {{ALTOSCtrl.opageindexCount}} to {{ALTOSCtrl.orderListLength}} of {{totalOrderList}} entries
ActionTask IdUser IdUser NameUser Contact NumberRoleCash Collection AmountPayable AmountTotal AmountLast UpdatedCommunicate DateCreated OnStateCityPincodeSkill
{{orderList.strTaskId}}{{orderList.strUserId}}{{orderList.strUserName}}\\\"image\\\" {{orderList.strUserContactNumber}}{{orderList.strUserRole}}{{orderList.dCashCollection}}{{orderList.dPayableAmount}}{{orderList.dAmount}}{{orderList.strUpdatedRemark}}{{ orderList.CommunicateDate | date: \\'dd/MM/yyyy hh:mm a\\' }}{{ orderList.CreatedOn | date: \\'dd/MM/yyyy hh:mm a\\' }}{{orderList.strState}}{{orderList.strCity}}{{orderList.strPincode}}
{{orderList.strListSkill.toString()}}
{{ALTOSCtrl.TotalTask}}

Total Task

{{ALTOSCtrl.OpenTask}}

Open Task

{{ALTOSCtrl.ClosedTask}}

Close Task

ActionTask IdTicket IDUser IdUser NameStateCityPincodeSkillDescription
Task Age (DD:HH:MM)
Created OnCreated ByTask Due DateTask Breached Status
Task Completed On
Task Completion DateAssigned ToTask Status
{{onboardingTask.TaskId | limitTo: 20 }}...{{onboardingTask.ListTotalTicketIds[0]}}{{ onboardingTask.TaskId.split(\\'_\\').pop() }} {{onboardingTask.ListCurrentCapacityUser[0].split(\\'|\\')[0]}}\\\"image\\\" {{ onboardingTask.Description.split(\\':\\')[0].trim() }} {{onboardingTask.ListCurrentCapacityUser[0].split(\\'|\\')[1]}}{{onboardingTask.State}}{{onboardingTask.City}}{{onboardingTask.Pincode}}{{onboardingTask.Skill}}{{onboardingTask.Description | limitTo: 10}}...{{onboardingTask.TaskAge}}{{onboardingTask.CreatedOn| date:\\'dd/MM/yyyy hh:mm a\\'}}{{onboardingTask.CreatedBy}}{{onboardingTask.TaskDueDate| date:\\'dd/MM/yyyy hh:mm a\\'}}{{onboardingTask.TaskBreached}}{{onboardingTask.TaskCompletedOn}}{{onboardingTask.TaskClosingDate}}{{onboardingTask.AssignedTo}}{{onboardingTask.GapStatus}}

P1

{{ALTOSCtrl.CommitmentInterestedUserCount}}

Commitment Interested Users

P2

{{ALTOSCtrl.OneJobDoneCount}}

One Job Done Users

P3

{{ALTOSCtrl.TwoJobDoneCount}}

Two Job Done Users

Invited Users

{{ALTOSCtrl.TotalInvitedUserCount}}

Invited

Activated Profiles

{{ALTOSCtrl.Count}}

Total Users

{{ALTOSCtrl.TotalRegisterUser}}

Total Registered Users

{{ALTOSCtrl.TotalActiveUsersCount}}

Total Active Users

{{ALTOSCtrl.TotalActiveFrUsersCount}}

Total Active Freelancers

{{ALTOSCtrl.TotalActiveFVUsersCount}}

Total Active Freelancer Vendors

{{ALTOSCtrl.TotalActiveFVTUsersCount}}

Total Active Vendor Team

{{ALTOSCtrl.FixedTeamCount}}

Total Fixed Team

Activated Profiles

{{ALTOSCtrl.PrimeMember}}

Prime Members

{{ALTOSCtrl.NonPrimeMember}}

Non-Prime Members (<= 10=\\\"\\\" jobs)=\\\"\\\" <=\\\"\\\" p=\\\"\\\">

10 Jobs)\\\" class=\\\"perfomance-detail\\\" ng-click=\\\"ALTOSCtrl.getCountByPssValue(\\'NonPrimeMoreThanTenCount\\')\\\">
{{ALTOSCtrl.NonPrimeMoreThanTenCount}}

Non-Prime Members (> 10 Jobs)

{{ALTOSCtrl.AuthorizedServiceParnterDetailCount }}

Total Authorized Service Center

{{ALTOSCtrl.AuthorizedServiceParnterDetailCountActive }}

Active Authorized Service Center

{{ALTOSCtrl.AuthorizedServiceParnterDetailCountInActive}}

Registered Authorized Service Center

{{ALTOSCtrl.CommittedUserCount}}

Committed Users

UserIdNameStatusMobile No.
Commitment Calls
Commitment Status
Not Interested ReasonCommitment RemarkCommitment Creation DateCommitment FollowUp DateSourceRegistration DateActivation DateReporting ToCityStatePinCodeRoleUser TypeIsAuthorized PartnerAdhar cardPancardCriminal CheckPrimeOne Job Done
Customer Rating
BrandProduct ServicingSkillLast ActivationWork LocationTools
\\\"image\\\" {{user.FirstName}} {{user.LastName}}
\\\"image\\\" \\\"image\\\"
= 4}\\\">{{user.CustomerRating}}
{{user.BrandName}}
{{user.ProductName}}
{{user.SkillSet.toString()}}
{{user.LastLocationUpdateTime | date:\\'dd/MMM/yy hh:mm\\'}}
{{user.Locations.toString()}}
{{user.Tools.toString()}}
Showing {{ALTOSCtrl.techpageindexCount}} to {{ALTOSCtrl.usersLength}} of {{ALTOSCtrl.totalTalentPoolCount}} entries

{{ALTOSCtrl.UserDetailsInfo.strUserId}}

{{ALTOSCtrl.UserDetailsInfo.strUserName}}

₹ {{ALTOSCtrl.UserDetailsInfo.dPayableAmount}}

Ticket IDs Causing Wallet Negative Balance
Ticket IdSkillStatusCash Collection amountPayable AmountTotal AmountStateCityPincodeCreated On
{{ticketlist.strTicketId}}
{{ticketlist.strTicketSKill.toString()}}
{{ticketlist.strTicketStatus}}{{ticketlist.CashCollection}}{{ticketlist.PayableAmount}}{{ticketlist.Amount}}{{ticketlist.strState}}{{ticketlist.strCity}}{{ticketlist.strPincode}}{{ticketlist.datetimeCreatedOn | date: \\'dd/MM/yyyy hh:mm a\\' }}
\");\n$templateCache.put(\"app/AllUserNew/AllUserNew.html\",\"
  1. Home
  2. All Registered User
33

Mobile No.

23

Basic Information

23

Location

12

Background verified

12

Payment verified

12

Active Freelancer

12

Free Trial Freelancer
(Less than 10 Jobs )

12

Prime Freelancer

{{AllUserNewCtrl.UsersType}}
  {{AllUserNewCtrl.upageindexCount}} - {{AllUserNewCtrl.userListLength}} of {{totalUsers}}
Registration IdUser IdNameContact NumberCurrent Add1 Registered Age(dd:hh:mm:ss)CityStatePin CodeTotal JobsAssigned JobsCompletedRejectedLead Acceptance(%)Average Completion SpeedJob Completion Rate(%)Job Rejection Rate(%)RoleUserTypeAdharPanCriminalUPIBankSkillSkill VerifiedFirst LoginstatusReferred ByTeam SizeSourceInventory StatusWork LocationRegistration DateReportingToDOBCompany NameCompany Registration NumberGST AvailableGST Certified NoMSME CertifiedMSME Certified NO.Partner (TPI)
{{users.SkillDataNew}}
{{location}} YES NO
UserIdNameStatusMobile No.RoleUser TypeActivation DateActivation Age(dd:hh:mm:ss)Activated ByAddress Line1Address Line2CityStatePinCodeTotal JobsAssigned JobsCompletedRejectedLead Acceptance(%)Average Completion SpeedJob Completion Rate(%)Job Rejection Rate(%)PrimeEmailFirst LoginAdhar cardPancardCriminal CheckUPI verifiedBank verifiedSkillSkill VerifiedAadhar NumberPAN NumberDOBLast LoginWork LocationSourceLatitudeLongitudeToolsEquipment Audit StatusEquipment Audit DateEquipment Audit ByMSME CertifiedMSME Certified NO
FVT0000000002008Riya MathurActive8845463416Field EngineerFixed Team10/Mar/2312:04:48:41MyMobiForce Technologiessector 57sector 57NOIDAUttar Pradesh20130123863790Yesmmmf123@gmail.comYesYesYesYesYesYesAC_Installation_Serviceverified243345335t464646423/Aug/199117/Mar/23 10:00201301,UTTAR PRADESHAmit28.608958377.35158184YesYesYesYesYesYes
FVT0000000002005AkashActive7689564222Field EngineerFixed Team15/Mar/2308:04:48:41MyMobiForce Technologiessector 15sector 15NOIDAUttar Pradesh20130193574925Yesakashyad@gmail.comYesYesYesYesYesYesAC_Installation_Serviceverified243435335t234567705/july/199618/Mar/23 11:00201301,UTTAR PRADESHAmit28.608958373.35158184YesYesYesYesYesYes
FVT0000000002002SantoshActive8845567845Field EngineerFixed Team12/Mar/2305:04:48:41MyMobiForce Technologiessector 51sector 51NOIDAUttar Pradesh20130186934682YessantoshFree123@gmail.comYesYesYesYesYesYesAC_Installation_Serviceverified2434353785t345678207/June/199417/Mar/23 12:00201301,UTTAR PRADESHAkash24.608958377.35158184YesYesYesYesYesYes
FVT0000000002009OmActive9789345653Field EngineerFixed Team13/Mar/2305:04:48:41MyMobiForce Technologiessector 57sector 57NOIDAUttar Pradesh20130137258193Yesom562@gmail.comYesYesYesYesYesYesAC_Installation_Serviceverified243423635t467892201/Jan/199218/Mar/23 11:10201301,UTTAR PRADESHAmit28.608958378.35158184YesYesYesYesYesYes
No User Found

\");\n$templateCache.put(\"app/AllUsersList/AllUsersList.html\",\"

Invited Users

{{AllUserListCtrl.TotalInvitedUserCount}}

Invited

Registration In Progress Attributes

{{AllUserListCtrl.BasicInformation}}

Basic Info

{{AllUserListCtrl.LocationAndSkill}}

Location & Skill

{{AllUserListCtrl.Backgroundverified}}

Background Verified

{{AllUserListCtrl.Paymentverified}}

Payment Verified

{{AllUserListCtrl.PoliceVerified}}

Police Verified

Activated Profiles

{{AllUserListCtrl.Count}}

Total Users

{{AllUserListCtrl.TotalRegisterUser}}

Total Registered Users

{{AllUserListCtrl.TotalActiveUsersCount}}

Total Active Users

{{AllUserListCtrl.TotalActiveFrUsersCount}}

Total Active Freelancers

{{AllUserListCtrl.TotalActiveFVUsersCount}}

Total Active Freelancer Vendors

{{AllUserListCtrl.TotalActiveFVTUsersCount}}

Total Active Vendor Team

{{AllUserListCtrl.FixedTeamCount}}

Total Fixed Team

Active User\\'s Attributes
{{AllUserListCtrl.PrimeMember}}

Prime Members

{{AllUserListCtrl.NonPrimeMember}}

Non-Prime Members (<= 10=\\\"\\\" jobs)=\\\"\\\" <=\\\"\\\" p=\\\"\\\">

10 Jobs)\\\" class=\\\"perfomance-detail-other\\\" ng-click=\\\"AllUserListCtrl.getCountByPssValue(\\'NonPrimeMoreThanTenCount\\')\\\">
{{AllUserListCtrl.NonPrimeMoreThanTenCount}}

Non-Prime Members (> 10 Jobs)

{{AllUserListCtrl.TotalFreelancerBidCount}}

Lead Received Users

{{AllUserListCtrl.OneJobDoneCount}}

One Job Done Users

{{AllUserListCtrl.LeadReceivedUserCount}}

Received Leads (last 15 days)

{{AllUserListCtrl.LeadNotReceivedUserCount}}

Not Received Leads (last 15 days)

{{AllUserListCtrl.LeadAcceptedUserCount}}

Lead Accepted (last 15 days)

{{AllUserListCtrl.LeadNotAcceptedUserCount}}

Lead Not Accepted (last 15 days)

30(%)\\\" class=\\\"perfomance-detail-other\\\" ng-click=\\\"AllUserListCtrl.getCountByPssValue(\\'JobRejectionBreachedCount\\')\\\">
{{AllUserListCtrl.JobRejectionBreachedCount}}

Job Rejection > 30(%)

{{AllUserListCtrl.JobRejectionMetCount}}

Job Rejection<= 30(%)<=\\\"\\\" p=\\\"\\\">

70(%)\\\" class=\\\"perfomance-detail-other\\\" ng-click=\\\"AllUserListCtrl.getCountByPssValue(\\'SOPAdherenceMetCount\\')\\\">
{{AllUserListCtrl.SOPAdherenceMetCount}}

SOP Adherence > 70(%)

{{AllUserListCtrl.SOPAdherenceBreachedCount}}

SOP Adherence<= 70(%)<=\\\"\\\" p=\\\"\\\">

{{AllUserListCtrl.AuthorizedServiceParnterDetailCount }}

Total Authorized Service Center

{{AllUserListCtrl.AuthorizedServiceParnterDetailCountActive }}

Active Authorized Service Center

{{AllUserListCtrl.AuthorizedServiceParnterDetailCountInActive}}

Registered Authorized Service Center

{{AllUserListCtrl.CommitmentInterestedUserCount}}

Commitment Interested Users

{{AllUserListCtrl.CommittedUserCount}}

Committed Users

{{AllUserListCtrl.TotalBlockedUsersCount}}

Blocked Users

UserIdNameCommitment StatusStatusMobile No.Registration DateActivation DateReporting ToCityStatePinCodeBrandProduct ServicingRoleUser TypeCommitment PlanNo. Of Commitment PlanAmount Of Pack(₹)Pack Expiry DatePack StatusBlock CommentBlock DateIs Committed UserIsAuthorized PartnerAdhar cardPancardCriminal CheckPrimeOne Job DoneTotal Jobs Done
Started Receiving Leads (last 15 Days)
Lead Accepted (last 15 Days)
Job Rejection (%)
SOP Adherence (%)
Customer Rating
SkillLast ActivationWork LocationToolsDownload Report
\\\"image\\\" {{user.FirstName}} {{user.LastName}}
\\\"image\\\" \\\"image\\\"
{{user.BrandName}}
{{user.ProductName}}
{{user.PackExpiryDate | date:\\'dd/MMM/yy\\'}} {{user.TotalJobs}} ({{user.TotalLeadsReceived}}) 30,\\'label label-primary\\':user.JobRecjectionPerctange <= 30}\\\">{{user.JobRecjectionPerctange}}= 70}\\\">{{user.SOPAdherence}}= 4}\\\">{{user.CustomerRating}}
{{user.SkillSet.toString()}}
{{user.LastLocationUpdateTime | date:\\'dd/MMM/yy hh:mm\\'}}
{{user.Locations.toString()}}
{{user.Tools.toString()}}
Showing {{AllUserListCtrl.techpageindexCount}} to {{AllUserListCtrl.usersLength}} of {{AllUserListCtrl.totalTalentPoolCount}} entries
Technician Filters
Clear
Atleast One Job Done
\");\n$templateCache.put(\"app/AppLink/applink.html\",\"\");\n$templateCache.put(\"app/AllUsersListGC/AllUsersListGC.html\",\"

Registration In Progress Attributes

{{AllUserListGCCtrl.BasicInformation}}

Basic Info

{{AllUserListGCCtrl.LocationAndSkill}}

Location & Skill

{{AllUserListGCCtrl.Backgroundverified}}

Background Verified

{{AllUserListGCCtrl.PoliceVerified}}

Police Verified

{{AllUserListGCCtrl.SMEInteractionCount}}

SME Interaction

Activated Profiles

{{AllUserListGCCtrl.TotalUserCount}}

Total Users

{{AllUserListGCCtrl.TotalIndainUserCount}}

India Users

{{AllUserListGCCtrl.TotalUKUserCount}}

UK Users

UserIdNameStatusMobile No.Registration DateActivation DateCityStatePinCodeRoleSME InteractionAdhar cardPancardCriminal CheckDownload Report
\\\"image\\\" {{user.FirstName}} {{user.LastName}}
\\\"image\\\" \\\"image\\\"
Showing {{AllUserListGCCtrl.techpageindexCount}} to {{AllUserListGCCtrl.usersLength}} of {{AllUserListGCCtrl.totalTalentPoolCount}} entries
Technician Filters
Clear
Atleast One Job Done
\");\n$templateCache.put(\"app/AppsMenusConfige/AppsMenusConfige.html\",\"
  1. Home
  2. Configure Apps Menu

Configure Apps Menu

Menu NameVisibleDefault
{{ permission.name }}

\");\n$templateCache.put(\"app/ApprovalFlowBuilder/ApprovalFlowBuilder.html\",\"
  1. Approval Flow Builder
\");\n$templateCache.put(\"app/Assests360View/Assests360View.html\",\"
  1. Home
  2. Assests Profile
\\\"Avatar\\\"

Dell New Inspiron i3583 15.6\\\" HD Touch-Screen Laptop - Intel i5-

i3583-i5-8gb-256gb



Assests Details
Date of Purchase:
21-Oct-2023
Type :
Laptop
Screen Size :
15.6 Inches
Brand :
Dell
Hard Disk Size :
256 GB
CPU Model:
Core i5
RAM Memory :
256 GB
Special Feature :
Webcam, Thin
Graphics Card :
Integrated
Current Location :
C 34 Noida Sector 51 Uttar Pradesh
Status :
InWarranty
End Of Life :
22-Oct-2025
Value :
₹ 56,0000

Next Service Date

10-Dec-2024

Last Inspection Date

10-Oct-2024

Last Service Date

02-Sep-2024
Associated Software
Software IdSoftware NameActivation DateExpiry Date
McA63773777763McAfee Antivirus2024-01-102025-05-10
NO63636633A73Norton Security2024-02-152025-02-15
Micro2772772S8383Microsoft Office 3652023-12-012025-12-01
Contracts
Contract IDCompany NameLaptop ModelSpecificationsConditionContract Start DateContract End DatePayment TermsWarranty PeriodMaintenance ResponsibilityInsurance DetailsDelivery DateInstallation DateContract ValuePoint of ContactNotesStatusActions
L001\\\"CompanyDell Latitude 7420Intel i7, 16GB RAM, 512GB SSDNew2023-01-102024-01-10Monthly Payment3 Years\\\"CompanyCovered by Dell2023-02-012023-02-05₹ 1,20,000Rahul SharmaFor corporate usePending
L002\\\"CompanyDell Latitude E7480 A++Intel i5, 8GB RAM, 256GB SSDNew2023-02-152024-02-15Quarterly Payment2 Years\\\"CompanyCovered by dell2023-03-102023-03-15₹ 1,00,000Neha VermaFor software developmentClosed
Service Management
Service IDService DetailsBrandDate & TimeTechnicianStatusActions
A40000002388
\\\"Company
Dell Latitude 5420
M637373773799
\\\"Avatar\\\"20 July 2020 4:20PMSanjay SinghCompleted
A400000023338
\\\"Avatar\\\"
Dell XPS 15 9500
M637373773799
\\\"Avatar\\\"20 August 2021 2:20PMRohit KumarCompleted
A40000003412
\\\"Avatar\\\"
Dell XPS 13 9300
M637373774001
\\\"Avatar\\\"15 March 2022 3:10PMAnil SharmaCompleted
A40000004567
\\\"Avatar\\\"
Dell Inspiron 14 5000
M637373774002
\\\"Avatar\\\"12 June 2022 11:30AMPooja KumariCompleted
A40000005678
\\\"Avatar\\\"
Dell Inspiron 15 3000
M637373774003
\\\"Avatar\\\"25 Novenber 2024 6:45PMVikash GuptaCompleted
SDR
Service IDLaptop ModelBrandDefectSymptomsCauseResolutionTechnician NameDate ResolvedRemarksActions
SRV001Latitude 7420
DellBattery IssueBattery drains quicklyBattery degradationReplaced batteryRavi Kumar2024-02-20New battery installed successfully.
SRV002Inspiron 15 3000DellOverheatingFrequent shutdownsClogged cooling fanCleaned fan and applied new thermal pasteAmit Sharma2024-02-18Temperature now stable.
SRV003XPS 13DellScreen FlickeringUnstable displayLoose display cableReconnected display cableNeha Verma2024-02-15Screen issue resolved.
SRV004Vostro 3400DellKeyboard Not WorkingUnresponsive keysDamaged keyboard circuitReplaced keyboardSuresh Patel2024-02-12New keyboard installed successfully.
SRV005G5 15DellSlow PerformanceLagging applicationsInsufficient RAMUpgraded RAM to 16GBRahul Singh2024-02-10Performance improved significantly.
SRV006Alienware M15DellGPU OverheatingGraphics artifactsPoor thermal paste applicationReapplied thermal pasteVikas Yadav2024-02-08GPU temperatures are now stable.
SRV007Precision 5560DellUSB Ports Not WorkingUnrecognized devicesFaulty USB controllerReplaced motherboardAnita Das2024-02-05All USB ports functional now.
SRV008Latitude 3520DellWi-Fi Connectivity IssueIntermittent connectionOutdated network driversUpdated driversPriya Nair2024-02-03Wi-Fi connectivity restored.
SRV009XPS 15DellSpeaker DistortionCrackling soundSpeaker damageReplaced speakersDeepak Reddy2024-02-01Audio quality restored.
Inspection Report
Inspection IDLaptop ModelInspection DateInspector NameConditionBattery Health (%)Issues FoundMaintenance RequiredCommentsNext Inspection DateActions
DL001Dell XPS 152024-08-10Amit VermaGood95%NoneNoAll functions working properly.2024-11-10
DL002Dell Latitude 74202024-07-15Neha SharmaFair85%Minor keyboard lagYesRecommended keyboard cleaning.2024-10-15
DL003Dell Inspiron 54062024-09-20Rajat MehraGood90%NoneNoSystem runs smoothly.2024-12-20
DL004Dell Vostro 35002024-06-30Vivek TiwariPoor60%Battery drains quicklyYesBattery replacement recommended.2024-09-30
DL005Dell Precision 55502024-10-05Karan JoshiGood92%NoneNoPerformance is optimal.2025-01-05
DL006Dell XPS 132024-05-18Pooja SinghFair78%Screen flickeringYesDisplay panel inspection needed.2024-08-18
DL007Dell G15 Gaming2024-08-22Suman RajPoor50%Overheating, fan noiseYesFan cleaning and thermal paste reapplication required.2024-11-22
DL008Dell Alienware M152024-07-10Rohit MalhotraGood89%NoneNoGaming performance is stable.2024-10-10
Maintenance Plan
>
Plan IDLaptop ModelSerial NumberNext Scheduled MaintenanceActions
MP001Dell Vostro35102025-02-20
MP002Dell Precision77602025-05-22
MP003Dell Latitude73202025-08-25
Warranty AMC
Tracking IDLaptop ModelSerial NumberBrandPurchase DateWarranty Expiry DateAMC Start DateAMC End DateService ProviderLast Service DateNext Service DateRemarksAMC StatusActions
WT001
\\\"Avatar\\\"
Dell Precision 7760
SN456789\\\"Avatar\\\"2023-01-152025-01-142025-01-152026-01-14Dell2024-11-102025-05-10Warranty active; AMC begins post-expiry.Active
WT002
\\\"Avatar\\\"
Dell Precision 5560
SN123456\\\"Avatar\\\"2022-12-202024-12-19N/AN/ADell2024-11-152025-05-15AMC not yet activated; warranty about to expire.Renewal Pending
WT003
\\\"Avatar\\\"
Dell Inspiron 15 3000
SN123456\\\"Avatar\\\"2021-08-102023-08-092023-08-102024-08-09Dell2024-10-052025-04-05AMC ongoing; regular servicing on schedule.Active
WT004
\\\"Avatar\\\"
Dell XPS 15 9500
SN654321\\\"Avatar\\\"2020-05-102022-05-092022-05-102023-05-09Dell2023-11-052024-05-05AMC expired; renewal required for continued services.Expired
WT005
\\\"Avatar\\\"
Dell Latitude 7320
SN987321\\\"Avatar\\\"2023-03-202025-03-192025-03-202026-03-19Dell2024-10-202025-04-20Under warranty; AMC scheduled post expiry.Active
WT006
\\\"Avatar\\\"
Dell Precision 5560
SN159753\\\"Avatar\\\"2019-11-152021-11-142021-11-152022-11-14Dell2022-10-102023-04-10Service due; AMC expired. Customer informed.Expired

Activity for M637373773799

2024-04-12

Warranty Started

Model: M637373773799

Status: Active

2024-06-22

Defect Reported

Issue: Compressor Failure

Technician: Sunil Kumar

2024-06-25

Service Performed

Action: Replaced Compressor

Status: Completed

2024-08-10

Inspection Completed

Technician: Yashwant Sinha

Outcome: Unit Functioning Optimally

2024-11-10

Warranty to be Expired

Model: M637373773799

Status: Expiring Soon

2024-11-15

AMC Started

Provider: Dell Service Center

Status: Active
\");\n$templateCache.put(\"app/AssignationRule/AssignationRule.html\",\"

Assignation Rules

\");\n$templateCache.put(\"app/AssignedProfileToUser/AssignedProfileToUser.html\",\"
  1. Home
  2. All Users
Full NameUsernameRoleActiveProfileAction
{{profile.name}}{{profile.username}}{{profile.role}}{{profile.profile}}Edit
\");\n$templateCache.put(\"app/AutoScheduleSettings/AutoScheduleSettings.html\",\"
  1. Home
  2. Auto Schedule Settigs
Auto Schedule Settigs
 {{timing | date: \\\"HH:mm\\\"}}
Minutes
Broadcast to 10 KM if at least 10 users found or Increment the Distance by 10 KM for 3 times
Jobs Broadcast
Assignation Mode
Give prefrence to users sith security sayments
Broadcast Mode
Broadcast Tickets to only criminally verified users


Broadcast to only preferred users
NO Freelancer Found Exception to Onboarding/Dispatcher


Broadcast to only preferred users
\");\n$templateCache.put(\"app/AutoSchedularConfig/AutoSchedularConfig.html\",\"
  1. Home
  2. Auto Scheduler Config
Auto Scheduler Configuration
\");\n$templateCache.put(\"app/BGVerification/BGVerification.html\",\"
\\\"image\\\"

User Name: {{fixedUsers.UserName}}

User Id: {{fixedUsers.UserId}}

Role: {{fixedUsers.UserRole}}

User IdNameSlot Booked DateAssigned To (UserId)Assigned To (Name)Assigned OnInteraction ResultStatusBooking StatusReschedule CountAction
{{bGverifySlot.UserId}} {{bGverifySlot.UserId}}{{bGverifySlot.UserName}}{{bGverifySlot.SlotBookingDate | date:\\'dd/MM/yy hh:mm a\\'}}{{bGverifySlot.InteractionWithUserId}}{{bGverifySlot.InteractionWithUserName}}{{bGverifySlot.AssignedOnDate | date:\\'dd/MM/yy hh:mm a\\'}}{{bGverifySlot.InteractionResult}}{{bGverifySlot.Status}}{{bGverifySlot.BookingStatus}}{{bGverifySlot.RescheduleCount}}
 {{BGVCtrl.pageindexCount}} - {{BGVCtrl.bGVerifyListLength}} of {{totalTableUsersBG}}
\");\n$templateCache.put(\"app/BillDetails/BillDetails.html\",\"
  1. Home
  2. Bill Details
 Showing {{billdetailscntrl.countdpageindexCount}} to {{billdetailscntrl.myStockListLength}} of {{totalInventory}} entries
Bill IDService Center InfoConsumer InfoConsumer Contact No.Total AmountTotal GST Amount
{{totalbilldetails.BillId }}{{totalbilldetails.ServiceCentreName }} ( {{totalbilldetails.ServiceCentreUserId }} ){{totalbilldetails.ConsumerName}} ( {{totalbilldetails.ConsumerId}} ){{totalbilldetails.ConsumerContact }}{{totalbilldetails.BillTotalAmount }}{{totalbilldetails.TotalGSTAmount }}

Bill Id - {{billdetailscntrl.PartDetails.BillId }}

PartQuantityPrice (₹)GSTAmountTotal (₹)
{{itemdetails.PartName}}{{itemdetails.Quantity}}{{itemdetails.PartPrice}}{{itemdetails.GSTAmount}}{{itemdetails.PartTotalPrice}}
Total Amount (₹){{billdetailscntrl.PartDetails.BillTotalAmount}}
\");\n$templateCache.put(\"app/BlockedUser/BlockedUser.html\",\"

Blocked User

\\\"profile\\\" \\\"profile\\\"

{{user.FirstName}} {{user.LastName}} | {{user.UserId}}

{{user.CustomerRating}} 
\");\n$templateCache.put(\"app/Bonus/Bonus.html\",\"
  1. Home
  2. Penalties and Bonuses
Rule IDRule NameStageScenarioTriggerGradeAmountAction
{{bonus.RuleId}}{{bonus.RuleName}}{{bonus.Stage}}{{bonus.Scenario}}{{bonus.Trigger}}{{bonus.Grade}}{{bonus.Amount}}
Rule IDRule NameStageScenarioTriggerGradeAmountAction
{{panelty.RuleId}}{{panelty.RuleName}}{{panelty.Stage}}{{panelty.Scenario}}{{panelty.Trigger}}{{panelty.Grade}}{{panelty.Amount}}
\");\n$templateCache.put(\"app/BrandProductMasterCreation/BrandProductMasterCreation.html\",\"
  1. Home
  2. Master Creation
If Assigned to First Priority and Not Served in hours, then assign to Second Priority.
SKILL
\");\n$templateCache.put(\"app/Business Register/businessRegister.html\",\"

Crowdsourcing Platform

Service Marketplace to connect Field Engineers with Businesses.

Sign UP

Please enter first name Your first name cannot be longer than 20 characters Your first name should only contain alphabets
Please enter last name Your last name cannot be longer than 20 characters Your last name should only contain alphabets
= 48 && event.charCode <= 57\\\" class=\\\"form-control refrelinput inputheight\\\" ng-pattern=\\\"/^(?:(?:\\\\+|0{0,2})91(\\\\s*[\\\\-]\\\\s*)?|[0]?)?[789]\\\\d{9}$/\\\" placeholder=\\\"Mobile Number*\\\" required=\\\"\\\" ng-model=\\\"register.phone\\\" name=\\\"phone\\\">
Please enter 10 digit phone number Please enter valid phone number
Please enter password Password must be at least 6 characters
Please confirm your password Passwords Doesn\\'t Match
Please enter company name Your company name cannot be longer than 40 characters

View our Terms and Conditions
Already Registered? Sign In

Copyright MyMobiforce © 2019

\");\n$templateCache.put(\"app/CRMManualAssignationJob/CRMManualAssignationJob.html\",\"
{{crmmanualAssignationJob.UsersType}}
  {{crmmanualAssignationJob.upageindexCount}} - {{crmmanualAssignationJob.userListLength}} of {{totalUsers}}
\\\"image\\\"

({{fixedUsers.Role}})

N P

{{fixedUsers.UserId}}

{{fixedUsers.ContactNumber}}

Last Login

{{fixedUsers.LastLoginUpdateTime | date:\\'dd/MMM/yy hh:mm a\\'}}

Today Jobs : {{fixedUsers.TodayJobs}}

Approved Jobs : {{fixedUsers.TotalJobs}}

Total Bids :{{fixedUsers.TotalBids}}

Acceptance Jobs (%) :{{fixedUsers.AvgAcceptanceJobs}}

Total Jobs : {{fixedUsers.DispatcherTotalJobs}}

Total New Jobs(Till Date) : {{fixedUsers.DispatcherTotalNewJobs}}

Total New Jobs(Till Date) : {{fixedUsers.DispatcherTotalNewJobs}}

Availability :{{fixedUsers.TeamAvailability}}

Availability :{{fixedUsers.TeamAvailability}}

First Response Time (%) :{{fixedUsers.FirstResponseRate}}

Appointment Met Rate (%) :{{fixedUsers.AppointmentMetRate}}

Job Completion (%) :{{fixedUsers.AvgJobCompeltionRate}}

0\\\">{{fixedUsers.CurrentPinCode}}

{{fixedUsers.SkillSet[0]+(fixedUsers.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}

  • Jobs
  • Combo Suggestion
Call ID Job IDAsset Serial NumberStatusSub StatusActionCityPincodeSentAcceptedRejectedProductPart Order IDPart Order StatusWarranty StatusDistance (KM)Consumer NameConsumer ContactDealer NameDealer Contact
Total New Age(dd:hh:mm:ss)
Total Broadcast Age(dd:hh:mm:ss)
Total Assigned Age (dd:hh:mm:ss)
Total Hold Age(dd:hh:mm:ss)
Total Completed Age(dd:hh:mm:ss)
Total Exception Age(dd:hh:mm:ss)
Total Rejected Age (dd:hh:mm:ss)
Total Age(dd:hh:mm:ss)
Broadcast CountRevisit CountRevisit RemarkOpen Queries CountAppointment DateAppointment Taken ByAppointment TATCompletion TATTicket SourceAgeing (Days)Account NameSkillService ByAppointment RescheduleByAppointment RescheduleOnTechnician NamePartner NameField Support TeamAssign DateCancellation DatePlanned Closure DateEstimate Share StateEstimation AttachementEstimation Share RemarkTech Payment StatusTech Payment DateCall Attempts(Tech-Customer)Call Attempts(Backend-Customer)Call Attempts(Backend-Tech)Completion DateApproved DatePrimary ReasonGroup IdSiteIDSiteNameCityStateCancelled ByCancel ReasonCustomer RatingFollowUp ReasonReject CountException TypeProject NameRejection Remarkclone ReasonSecondary StatusCreated DateFreelancer RateDispatcher NameStart TimeBroadcasted DatePriceDurationPincodeAmt CollectedAmt to Be CollectedReplacement IDReplacement StatusGasCharging Request IDGasCharging StatusLocation Type
{{newJob.City}}{{pincode}}{{newJob.BIDSend}} {{newJob.BIDSend}}{{newJob.BIDReceived}} {{newJob.BIDReceived}}{{newJob.DenyCount}}{{newJob.ProductName}}{{newJob.PartOrderId}}{{newJob.PartOrderStatus}}{{newJob.WarrantyStatus}}{{newJob.Distance}}{{newJob.ConsumerName}}{{newJob.ConsumerContact}}{{newJob.strDealerName }}{{newJob.strDealerContact }}{{newJob.NewAge}}{{newJob.BroadcastedAge}}{{newJob.AssignedAge}}{{newJob.HoldAge}}{{newJob.CompletedAge}}{{newJob.ScheduleExceptionAge}}{{newJob.RejectedAge}}{{newJob.TotalTicketAge}}{{newJob.BroadcastCount}}{{newJob.PlannedStartDate | date:\\'dd/MM/yy hh:mm a\\'}}{{newJob.AppointmentTakenBy}}{{newJob.dAppointmentTAT}}{{newJob.dCompletionTAT}}{{newJob.TicketSource}}{{newJob.intAging}}{{newJob.AccountName}}{{skill}}{{ newJob.BrandName }}{{newJob.AppointmentRescheduleBy}}{{newJob.Assignee}}{{fTeam.SupportEngineerName}}{{newJob.AssignationDate | date:\\'dd/MMM/yy hh:mm a\\'}}{{newJob.CancellationDate | date:\\'dd/MMM/yy hh:mm a\\'}}{{newJob.PlannedClosureDate | date:\\'dd/MMM/yy hh:mm a\\'}}{{newJob.EstimateShareState}}{{newJob.EstimationAttachement}}{{newJob.EstimationShareRemark}}{{newJob.TechnicianPaymentStatus}}{{newJob.TechncianPaymentDate | date:\\'dd/MMM/yy hh:mm a\\'}}{{newJob.CallAttempTechToCustomer}}{{newJob.CallAttempBackendToCustomer}}{{newJob.CallAttempBackendToTech}}{{newJob.CompletionDate | date:\\'dd/MMM/yy hh:mm a\\'}}{{newJob.ApprovedDate | date:\\'dd/MMM/yy hh:mm a\\'}}{{newJob.PrimaryReason}}{{newJob.GroupId}}{{newJob.JobId}}{{newJob.SiteName}}{{newJob.City}}{{newJob.State}}{{newJob.CancelledBy}}{{newJob.TicketCancelReason}}{{newJob.CustomerRating}}{{newJob.LastFollowUpMsg}}{{newJob.TicketRejectionCount}}{{newJob.SecondryStatus}}{{newJob.ProjectName}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date:\\'dd/MM/yyyy hh:mm a\\'}}{{newJob.FreelancerRate}}{{newJob.DispatchSupervisorName}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BroadcastRate}} INR{{newJob.BidDuration}} hrs{{pincode}}{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}{{newJob.ReplacementId}}{{newJob.ProductReplacementStatus}}{{newJob.strGasChargeRequestID}}{{newJob.strGasChargerApprovalStatus}} Local UpCountry
 Showing {{crmmanualAssignationJob.pageindexCount}} to {{crmmanualAssignationJob.ticketListLength}} of {{totalTableTickets}} entries
PincodeSite IdConsumer Contact No.CountAction
{{suggestion.GroupWiseJobVariable}}{{suggestion.JobCount}}
PincodeTicketIdJobIdConsumer NameConsumer ContactSkillSetStatusStateCity
{{ticketDetails.Pincode}}{{ticketDetails.TicketId}}{{ticketDetails.JobId}}{{ticketDetails.ConsumerName}}{{ticketDetails.ConsumerContact}}{{ticketDetails.SkillSet}}{{ticketDetails.TicketStatus}}{{ticketDetails.State}}{{ticketDetails.City}}
JobIDStatusStageSiteIDSiteNameCityStatePincodeException TypeAppointment Date Broadcast Age(dd:hh:mm:ss)
Total Age(dd:hh:mm:ss)
Field Age(dd:hh:mm:ss)
Project NameSecondary StatusPrimary ReasonFollowUp ReasonCancel ReasonRejection Remarkclone ReasonCreated DateLatitudeLongitudeStart TimeBroadcasted DatePriceDurationAmt CollectedAmt to Be Collected
{{newJob.TicketId}}{{newJob.JobId}}{{newJob.SiteName}}{{newJob.City}}{{newJob.State}}{{pincode}}{{newJob.PlannedStartDate | date:\\'dd/MM/yy hh:mm a\\'}}{{newJob.TicketBroadcastAge}}{{newJob.TotalTicketAge}}{{newJob.FieldAge}}{{newJob.ProjectName}}{{newJob.PrimaryReason}}{{newJob.LastFollowUpMsg}}{{newJob.TicketCancelReason}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.Latitude}}{{newJob.Longitude}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BroadcastRate}} INR{{newJob.BidDuration}} hrs{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}
JobIDActionSiteIDSiteNameSkillCityStateGroupIdEstimate Share StateEstimation AttachementEstimation Share RemarkTechnician NameFollowUp ReasonReject CountException TypeAppointment DateCall DateTimeCall Duration Broadcast Age(dd:hh:mm:ss)
Total Age(dd:hh:mm:ss)
StatusSub StatusSentAcceptedRejectedAssign DateAssign Age(hr)Broadcast Count
Field Age(dd:hh:mm:ss)
Project NameTechnician NameSupervisor NamePrimary ReasonCancel ReasonRejection Remarkclone ReasonSecondary StatusCreated DateLatitudeLongitudeStart TimeBroadcasted DatePricePincodeAmt CollectedAmt to Be CollectedFreelancer Rate
{{newJob.JobId}}{{newJob.SiteName}}{{newJob.SkillSet}}{{newJob.City}}{{newJob.State}}{{newJob.GroupId}}{{newJob.EstimateShareState}}{{newJob.EstimationAttachement}}{{newJob.EstimationShareRemark}}\\\"image\\\" {{newJob.Assignee}}{{newJob.LastFollowUpMsg}}{{newJob.TicketRejectionCount}}{{newJob.SecondryStatus}}{{newJob.PlannedStartDate | date:\\'dd/MM/yy hh:mm a\\'}}{{newJob.TicketBroadcastAge}}{{newJob.TotalTicketAge}}{{newJob.BIDSend}} {{newJob.BIDSend}}{{newJob.BIDReceived}} {{newJob.BIDReceived}}{{newJob.DenyCount}}{{newJob.AssignationDate | date: \\'dd/MM/yyyy\\'}}:{{newJob.BroadcastCount}}{{newJob.FieldAge}}{{newJob.ProjectName}}{{newJob.Assignee}}{{newJob.SupervisorName}}{{newJob.PrimaryReason}}{{newJob.TicketCancelReason}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.Latitude}}{{newJob.Longitude}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BidDuration}} hrs{{pincode}}{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}{{newJob.FreelancerRate}}
 {{crmmanualAssignationJob.wpageindexCount}} - {{crmmanualAssignationJob.workOrderListLength}} of {{totalTableWorkOrder}}
UserID ({{crmmanualAssignationJob.listofActiveUsers.length}})NameCallPatichingTicketId AssignedJobCount AppointmentBookedCount AppointmentNotBookedCount BreachedCount BroadcastCount CancelledCount
\\\"image\\\" {{user.Name}}{{user.AssignedJobCount}}{{user.AppointmentBookedCount}}{{user.BreachedCount}}{{user.BroadcastJobCount}}{{user.SourceCancelledCount}}
Ticket IdJob TypeProject NameProject IdStatusActionStateCityCustomer Name
{{userSjob.TicketId}}{{userSjob.JobType}}{{userSjob.ProjectName}}{{userSjob.ProjectId}}
{{userSjob.State}}{{userSjob.City}}{{userSjob.ConsumerName}}
10\\\"> {{crmmanualAssignationJob.pageindexCount}} - {{crmmanualAssignationJob.ticketListLength}} of {{totalTableTickets}}
Combo IdNo. of Ticket CountActionCreated OnCombo StatusTechnician NamePartner NameField Support TeamSentAcceptedPinCodeSkillsFreelancer RateDispatcher Name
{{newJob.TicketId}} {{newJob.JobCountInBundle}} {{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.Assignee}}{{fTeam.SupportEngineerName}}{{newJob.BIDSend}} {{newJob.BIDSend}}{{newJob.BIDReceived}} {{newJob.BIDReceived}}{{pincode}}{{skill}}{{newJob.FreelancerRate}}{{newJob.DispatchSupervisorName}}
JobIDActionSiteIDSiteNameSkillCityStateTechnician NameFollowUp ReasonReject CountException TypeAppointment DateCall DateTimeCall Duration Broadcast Age(dd:hh:mm:ss)
Total Age(dd:hh:mm:ss)
StatusSentAcceptedRejectedAssign DateAssign Age(hr)Broadcast Count
Field Age(dd:hh:mm:ss)
Project NameTechnician NamePrimary ReasonCancel ReasonRejection Remarkclone ReasonSub StatusSecondary StatusCreated DateLatitudeLongitudeStart TimeBroadcasted DatePricePincodeAmt CollectedAmt to Be CollectedFreelancer Rate
{{newJob.JobId}}{{newJob.SiteName}}{{newJob.SkillSet}}{{newJob.City}}{{newJob.State}}\\\"image\\\" {{newJob.Assignee}}{{newJob.LastFollowUpMsg}}{{newJob.TicketRejectionCount}}{{newJob.SecondryStatus}}{{newJob.PlannedStartDate | date:\\'dd/MM/yy hh:mm a\\'}}{{newJob.TicketBroadcastAge}}{{newJob.TotalTicketAge}}{{newJob.BIDSend}} {{newJob.BIDSend}}{{newJob.BIDReceived}} {{newJob.BIDReceived}}{{newJob.DenyCount}}{{newJob.AssignationDate | date: \\'dd/MM/yyyy\\'}}:{{newJob.BroadcastCount}}{{newJob.FieldAge}}{{newJob.ProjectName}}{{newJob.Assignee}}{{newJob.PrimaryReason}}{{newJob.TicketCancelReason}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.Latitude}}{{newJob.Longitude}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BidDuration}} hrs{{pincode}}{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}{{newJob.FreelancerRate}}
 {{crmmanualAssignationJob.bpageindexCount}} - {{crmmanualAssignationJob.bundleListLength}} of {{totalTableBundles}}

All User

\");\n$templateCache.put(\"app/CRMTeamFormCreation/CRMTeamFormCreation.html\",\"
  1. Home
  2. Team
  3. Create Team
Roles Information
Please select Role
Please select ReportingTo
Please enter User id User ID must be alphanumeric and up to 12 characters
No regions available for the selected role.
0\\\">
Please select a region
No sub-regions available for the selected region.
0\\\">
Please select a sub-region
{{chip}}
.

{{ crmteamcreation.warehouseToBeAllocatedName }}

0\\\">
Please select a warehouse to allocate
= 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{1,2}$/\\\">
Please enter a valid number of years Please enter years of experience
= 48 && event.charCode <= 53\\\" ng-pattern=\\\"/^[0-5]$/\\\">
Please enter a valid rating Please enter a rating
= 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{12}$/\\\">
Please enter a valid 12-digit Aadhaar number Please enter Aadhaar number
Work Area
Account Name
Account Id
States
City
Pin Code
Status
Action
{{AccountDetail.AccountName}}

{{crmteamcreation.SelectedAccount.AccountName}}

{{AccountDetail.AccountId}}

{{crmteamcreation.SelectedAccount.AccountId}}

{{AccountDetail.State}}
{{AccountDetail.City}}
{{locations}}
{{AccountDetail.Status}}

{{crmteamcreation.SelectedAccount.AccountId}}

User Details
Please enter first name Your first name is required to be at least 2 characters Your first name cannot be longer than 50 characters Your first name should only contain alphabets with space
Please enter last name Your last name cannot be longer than 50 characters Your last name should only contain alphabets with space
Please select your gender

Please enter date of birth

Please select valid date of birth

Date of birth should be less than {{crmteamcreation.maxDOBStr}}

Please enter valid email id Please enter email id
= 48 && event.charCode <= 57\\\" maxlength=\\\"10\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\">
Please enter valid number
= 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\">
Please enter valid Mobile number Please enter mobile number
Please enter address line 1 Your address line 1 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
Please enter address line 2 Your address line 2 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
Please select state
Please select city
Please select country
= 48 && event.charCode <= 57\\\" ng-blur=\\\"crmteamcreation.validateAllPincodes(crmteamcreation.permanent_pincode)\\\">
Please select or enter a pincode Please enter a valid 6-digit number
Please select option for present address
Please enter address line 1 Your address line 1 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
Please enter address line 2 Your address line 2 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
Please select state
Please select city
=48 && event.charCode <=57\\\">
Please enter pincode Please enter 6 digit number
\");\n$templateCache.put(\"app/CRMTeamMember/CRMTeamMember.html\",\"
  1. Home
  2. Team Members
{{CRMteamCntrl.userInfo.FirstName}} {{CRMteamCntrl.userInfo.LastName}}s
\\\"image\\\"

{{CRMteamCntrl.userInfo.Role}}

{{CRMteamCntrl.userInfo.ContactNumber}}

Current Location
{{CRMteamCntrl.userInfo.CurrentAdd1}}
{{CRMteamCntrl.userInfo.CurrentAdd2}}
{{CRMteamCntrl.userInfo.CurrentCity}}, {{CRMteamCntrl.userInfo.CurrentState}}
Activate
Detach from account

AccountsState ( City )PinCodes
{{account.AccountName}} ({{account.AccountId}}){{account.State}} {{account.City}}{{account.PinCode}}
Total Jobs{{CRMteamCntrl.userInfo.JobTotal}}Assigned Jobs{{CRMteamCntrl.userInfo.JobAssigned}}
Approved Jobs{{CRMteamCntrl.userInfo.JobApproved}}Completed Jobs{{CRMteamCntrl.userInfo.JobCompleted}}
Rejected Jobs{{CRMteamCntrl.userInfo.JobRejected}}Cancelled Jobs{{CRMteamCntrl.userInfo.JobCancelled}}

\");\n$templateCache.put(\"app/CampaignCreation/CampaignCreation.html\",\"
  1. Home
  2. Campaign List
Campaign NameActionScheduled TimeStatusPerformanceCreated ByCreated On
{{campaignData.data.name}} {{campaignData.data.schedule.send_at | date: \\'dd/MMM/yyyy h:mm:ss a\\' }}{{campaignData.data.status}} {{campaignData.data.stats.completed}} {{campaignData.data.stats.failed + campaignData.data.stats[\\'failed-dnd\\'] + campaignData.data.stats.invalid}} {{campaignData.data.stats.retry + campaignData.data.stats.retrying + campaignData.data.stats[\\'in-progress\\']}}{{campaignData.data.agent_name}}{{campaignData.data.date_created | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}
 {{CmpgnCntrl.cuPageindexCount}} - {{CmpgnCntrl.customerListLenth}} of {{totalCustomers}}
List NameNumber of ContactsDate CreatedAction
{{contactData.data.name}}{{contactData.data.contact_count}}{{contactData.data.date_created | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}
 {{CmpgnCntrl.PageindexCount}} - {{CmpgnCntrl.contactListLength}} of {{totalContacts}}

Schedule Campaign {{ CmpgnCntrl.scheduleModel.uniqueId}}

{{schedules.uniqueId}}
Schedule Campaign Name:
Please enter schedule campaign name.
Schedule Frequency
Please select time.
Please select time.
Please select time.
Please select time.
  • {{userActivity.primaryReason}}
    {{userActivity.ReasonComment}}
    {{userActivity.userName}} {{userActivity.dateTime}}
\");\n$templateCache.put(\"app/CampaignDetailView/CampaignDetailView.html\",\"
  1. Home
  2. Campaign Details View
Campaign Deatils
Campaign Stats

NumberNameTotal Call DurationTimeStatusDigitsRecordingAction
+9198786543Avinsh Gupta00:02:3229th January 2024 , 01.00 PMCompleted1-2-3
+9198786543Avinsh Gupta00:02:3229th January 2024 , 01.00 PMCompleted1-2-3
+9198786543Avinsh Gupta00:02:3229th January 2024 , 01.00 PMCompleted1-2-3
+9198786543Avinsh Gupta00:02:3229th January 2024 , 01.00 PMCompleted1-2-3
+9198786543Avinsh Gupta00:02:3229th January 2024 , 01.00 PMCompleted1-2-3
\");\n$templateCache.put(\"app/CalendarManagement/CalendarManagement.html\",\"
  1. Home
  2. Calendar
Event
to
DateNameTypeDescription
01/Jan/2025New Year\\'s DayRestricted HolidayStart of the new year
06/Jan/2025Guru Govind Singh JayantiRestricted HolidayBirthday of the 10th Sikh Guru
13/Jan/2025LohriObservanceHarvest festival in Punjab
14/Jan/2025PongalRestricted HolidayHarvest festival in Tamil Nadu
14/Jan/2025Makar SankrantiRestricted HolidayHindu harvest festival
26/Jan/2025Republic DayGazetted HolidayIndian Constitution came into effect
29/Jan/2025Lunar New YearObservanceStart of the Lunar calendar
02/Feb/2025Vasant PanchamiRestricted HolidayFestival of Goddess Saraswati
12/Feb/2025Guru Ravidas JayantiRestricted HolidayBirthday of Guru Ravidas
19/Feb/2025Shivaji JayantiRestricted HolidayBirth anniversary of Chhatrapati Shivaji Maharaj
23/Feb/2025Maharishi Dayanand Saraswati JayantiRestricted HolidayBirth anniversary of Maharishi Dayanand Saraswati
26/Feb/2025Maha ShivaratriGazetted HolidayFestival dedicated to Lord Shiva
02/Mar/2025Ramadan StartObservanceIslamic fasting month begins
13/Mar/2025Holika DahanaRestricted HolidayBonfire festival before Holi
14/Mar/2025HoliGazetted HolidayFestival of colors
14/Mar/2025DolyatraRestricted HolidayBengali Holi festival
30/Mar/2025Chaitra SukhladiRestricted HolidayHindu New Year
30/Mar/2025UgadiRestricted HolidayNew Year in Andhra Pradesh, Karnataka
30/Mar/2025Gudi PadwaRestricted HolidayMaharashtrian New Year
31/Mar/2025Ramzan Id/Eid-ul-FitarGazetted HolidayIslamic festival after Ramadan
06/Apr/2025Rama NavamiRestricted HolidayBirthday of Lord Rama
10/Apr/2025Mahavir JayantiGazetted HolidayJain festival
18/Apr/2025Good FridayGazetted HolidayCommemoration of Jesus\\' crucifixion
01/May/2025Labour DayObservanceWorkers\\' day
15/Aug/2025Independence DayGazetted HolidayIndia\\'s independence from Britain
02/Oct/2025Gandhi JayantiGazetted HolidayBirth anniversary of Mahatma Gandhi
20/Oct/2025Diwali/DeepavaliGazetted HolidayFestival of lights
25/Dec/2025Christmas DayGazetted HolidayBirth of Jesus Christ

Shift Timings
9 Am to 5 Pm
+
Over Timings
5 Pm to 8 Pm
+
Lunch Timings
12 Pm to 2 Pm
30 Mins
\");\n$templateCache.put(\"app/CalendarManagement/CalendarManagementList.html\",\"
  1. Home
  2. Calendar List
Calendar IdNameTypeDescriptionCreated On
CAL001Company CalendarOrg CalendarThis calendar is created to hold all the national holidays27 Jan, 25
CAL002North India CalendarRegional CalendarThis calendar inherits from the org calendar and includes holidays specific to North India.27 Jan, 25
CAL003South India CalendarRegional CalendarThis calendar inherits from the org calendar and includes holidays specific to South India.27 Jan, 25
CAL004Sri Lanka CalendarCountry CalendarThis calendar inherits from the org calendar and includes holidays observed in Sri Lanka.27 Jan, 25
CAL005Nepal CalendarCountry CalendarThis calendar is inherited by org calendar and includes holidays observed in Nepal.27 Jan, 25
\");\n$templateCache.put(\"app/CalendarManagement/EastCalendarManagement.html\",\"
  1. Home
  2. Calendar
Event
to
DateNameTypeDescription
11/Jan/2025Prithvi JayantiNational HolidayCommemorates the birth of King Prithvi Narayan Shah, the founder of modern Nepal.
14/Jan/2025Maghe SankrantiPublic HolidayMarks the end of the winter solstice; celebrated with ritual baths and feasts.
28/Feb/2025Gyalpo LhosarPublic HolidayTibetan New Year celebrated by the Sherpa community.
29/Mar/2025Holi (Phagu Purnima)Public HolidayFestival of colors celebrated with vibrant festivities.
13/Apr/2025Nepali New YearNational HolidayMarks the first day of the Bikram Sambat calendar year.
17/Apr/2025Ram NavamiPublic HolidayCelebrates the birth of Lord Rama.
10/May/2025Buddha JayantiPublic HolidayCommemorates the birth, enlightenment, and death of Gautama Buddha.
15/Aug/2025Gai JatraPublic Holiday (Kathmandu Valley)A festival honoring deceased family members, celebrated with processions and humor.
29/Sep/2025Dashain (Ghatasthapana)National HolidayMarks the beginning of the Dashain festival, the longest and most significant festival in Nepal.
06/Oct/2025Dashain (Bijaya Dashami)National HolidayCelebration of the victory of Goddess Durga over evil, marked by family gatherings and blessings.
01/Nov/2025Tihar (Laxmi Puja)Public HolidayFestival of Lights dedicated to Goddess Laxmi, celebrated with oil lamps and decorations.
03/Nov/2025Bhai TikaPublic HolidayPart of the Tihar festival, where sisters bless their brothers for prosperity and long life.
25/Dec/2025ChristmasPublic HolidayCelebration of the birth of Jesus Christ, mainly observed by the Christian community.

Shift Timings
10 AM to 6 PM
+
Over Timings
6 PM to 9 PM
+
Lunch Timings
1 PM to 2 PM
30 Mins
\");\n$templateCache.put(\"app/CalendarManagement/NorthCalendarManagement.html\",\"
  1. Home
  2. Calendar
Event
to
DateNameTypeDescription
01/Jan/2025New Year\\'s DayNational Holiday
01/May/2025Labour DayNational HolidayInternational Worker\\'s Day
27/Jun/2025Rath YatraRestricted HolidayHindu Festival
10/Jul/2025Guru PurnimaObservanceHindu festival dedicated to spiritual teachers
15/Aug/2025Independence DayGazetted HolidayCelebration of India\\'s independence
15/Aug/2025Janmashtami (Smarta)Restricted HolidayHindu festival celebrating Lord Krishna\\'s birth
09/Aug/2025Raksha BandhanRestricted HolidayHindu festival celebrating the bond between brothers and sisters
27/Aug/2025Ganesh ChaturthiRestricted HolidayCelebration of Lord Ganesha\\'s birth
02/Oct/2025Mahatma Gandhi JayantiGazetted HolidayCommemorating Mahatma Gandhi\\'s birthday
02/Oct/2025DussehraGazetted HolidayCelebration of the victory of good over evil
10/Oct/2025Karaka Chaturthi (Karva Chauth)Restricted HolidayHindu festival observed by married women
20/Oct/2025Diwali/DeepavaliGazetted HolidayCelebration of the victory of light over darkness
23/Oct/2025Bhai DujRestricted HolidayCelebrating the bond between brothers and sisters
05/Nov/2025Guru Nanak JayantiGazetted HolidayCommemorating the birth of Guru Nanak
25/Dec/2025ChristmasGazetted HolidayCelebration of the birth of Jesus Christ

Shift Timings
9 AM to 6 PM
+
Over Timings
6 PM to 9 PM
+
Lunch Timings
1 PM to 2 PM
30 Mins
\");\n$templateCache.put(\"app/CalendarManagement/SouthCalendarManagement.html\",\"
  1. Home
  2. Calendar
Event
to
DateNameTypeDescription
01/Jan/2025New Year\\'s DayNational Holiday
14/Jan/2025PongalPublic Holiday (TN)Harvest festival celebrated in Tamil Nadu
15/Jan/2025Thiruvalluvar DayPublic Holiday (TN)Honors Tamil poet and philosopher Thiruvalluvar
16/Jan/2025Uzhavar ThirunalPublic Holiday (TN)Farmers\\' Day, recognizing their contributions
11/Feb/2025ThaipusamPublic Holiday (TN, KL)Hindu festival dedicated to Lord Murugan
01/May/2025Labour DayNational HolidayInternational Worker\\'s Day
30/Mar/2025UgadiPublic Holiday (AP, TS, KA)New Year\\'s Day as per the Hindu lunisolar calendar
14/Apr/2025VishuPublic Holiday (KL)Malayalam New Year celebration
09/Aug/2025OnamPublic Holiday (KL)Harvest festival commemorating King Mahabali
27/Jun/2025Rath YatraRestricted HolidayHindu Festival
10/Jul/2025Guru PurnimaObservanceHindu festival dedicated to spiritual teachers
15/Aug/2025Independence DayGazetted HolidayCelebration of India\\'s independence
15/Aug/2025Janmashtami (Smarta)Restricted HolidayHindu festival celebrating Lord Krishna\\'s birth
27/Aug/2025Ganesh ChaturthiRestricted HolidayCelebration of Lord Ganesha\\'s birth
02/Oct/2025Mahatma Gandhi JayantiGazetted HolidayCommemorating Mahatma Gandhi\\'s birthday
02/Oct/2025DussehraGazetted HolidayCelebration of the victory of good over evil
10/Oct/2025Karaka Chaturthi (Karva Chauth)Restricted HolidayHindu festival observed by married women
20/Oct/2025Diwali/DeepavaliGazetted HolidayCelebration of the victory of light over darkness
23/Oct/2025Bhai DujRestricted HolidayCelebrating the bond between brothers and sisters
05/Nov/2025Guru Nanak JayantiGazetted HolidayCommemorating the birth of Guru Nanak
25/Dec/2025ChristmasGazetted HolidayCelebration of the birth of Jesus Christ

Shift Timings
8 AM to 5 PM
+
Over Timings
5 PM to 8 PM
+
Lunch Timings
12:30 PM to 1:30 PM
30 Mins
\");\n$templateCache.put(\"app/CalendarManagement/WestCalendarManagement.html\",\"
  1. Home
  2. Calendar
Event
to
DateNameTypeDescription
01/Jan/2025New Year\\'s DayPublic HolidayCelebration of the new year
15/Jan/2025Thai PongalPublic HolidayTamil harvest festival
04/Feb/2025Independence DayNational HolidayCelebration of Sri Lanka’s independence
24/Feb/2025Navam Full Moon PoyaPublic HolidayReligious Buddhist observance
14/Apr/2025Sinhala & Tamil New YearPublic HolidayTraditional new year for Sinhalese and Tamil communities
01/May/2025Labour DayPublic HolidayInternational Workers’ Day
15/May/2025Vesak Full Moon PoyaPublic HolidayCommemoration of Buddha’s birth, enlightenment, and passing
16/May/2025Day after VesakPublic HolidayContinuation of Vesak celebrations
11/Jun/2025Poson Full Moon PoyaPublic HolidayCommemorates the introduction of Buddhism to Sri Lanka
19/Jul/2025Esala Full Moon PoyaPublic HolidayMarks Buddha’s first sermon
10/Sep/2025Binara Full Moon PoyaPublic HolidayCelebrates Buddha’s visit to heaven
11/Oct/2025Vap Full Moon PoyaPublic HolidayMarks the end of Buddhist retreat season
11/Nov/2025DeepavaliPublic HolidayHindu festival of lights
09/Dec/2025Unduvap Full Moon PoyaPublic HolidayArrival of the sacred Bo tree sapling
25/Dec/2025Christmas DayPublic HolidayChristian festival celebrating Jesus\\' birth

Shift Timings
9 AM to 5 PM
+
Over Timings
5 PM to 8 PM
+
Lunch Timings
12:30 PM to 1:30 PM
30 Mins
\");\n$templateCache.put(\"app/Central HelpDesk/CentralHelpdesk.html\",\"
  1. Home
  2. Account Settigs
Account Settigs
Account Name
Account Id
Skills
States
Action
{{AccountDetail.AccountName}}
{{AccountDetail.AccountId}}

{{CentralHelpdeskCtrl.SelectedAccountHD.AccountId}}

{{AccountDetail.AccountSkillSet}}

{{AccountDetail.AccountLocations}}

{{CentralHelpdeskCtrl.SelectedAccount.AccountId}}

{{CentralHelpdeskCtrl.SelectedSkill}}
\");\n$templateCache.put(\"app/CapacityGapAnalysis/CapacityGapAnalysis.html\",\"

All Team List

\\\"image\\\"

User Name: {{fixedUsers.UserName}}

User Id: {{fixedUsers.UserId}}

Role: {{fixedUsers.UserRole}}

Capacity Open Task: {{fixedUsers.CapacityOpenTask}}

Capacity Closed Task: {{fixedUsers.CapacityClosedTask}}

ActionTask IdStateCityPincodeSkillAccount NameDescription
Task Age (DD:HH:MM)
Exception TypeIsPreferredPool OnException CountCurrent CapacityExpected CapacityTotal TicketsTotal Users WorkedTotal OneJob Done UsersTotal Active UsersTotal Users HiredCreated OnCreated ByCreation SourceTask Due DateTask Breached Status
Task Completed On
Assigned ToGap Status
{{onboardingTask.TaskId | limitTo: 20 }}...{{onboardingTask.State}}{{onboardingTask.City}}{{onboardingTask.Pincode}}{{onboardingTask.Skill}}{{onboardingTask.AccountName}}{{onboardingTask.Description | limitTo: 10}}...{{onboardingTask.TaskAge}}{{onboardingTask.ExceptionType}}{{onboardingTask.IsPreferredPoolOn}}{{onboardingTask.ExceptionCount}}{{onboardingTask.CurrentCapacity}}{{onboardingTask.ExpectedCapacity}}{{onboardingTask.TotalTickets}}{{onboardingTask.TotalUsersWorked}}{{onboardingTask.TotalOneJobDoneUsers}}{{onboardingTask.TotalActiveUser}}{{onboardingTask.TotalHiredUsers}}{{onboardingTask.CreatedOn| date:\\'dd/MM/yyyy hh:mm a\\'}}{{onboardingTask.CreatedBy}}{{onboardingTask.CreationSource}}{{onboardingTask.TaskDueDate| date:\\'dd/MM/yyyy hh:mm a\\'}}{{onboardingTask.TaskBreached}}{{onboardingTask.TaskCompletedOn}}{{onboardingTask.AssignedTo}}{{onboardingTask.GapStatus}}
User IdNameSkillSetLocations
{{exception.UserId}}{{exception.UserName}}
{{exception.Skills.toString()}}
{{exception.Locations.toString()}}
User IdNameRoleSkillSetLocationsStateCity
{{exception.UserId}}{{exception.UserName}}{{exception.UserRole}}
{{exception.UserSkills.toString()}}
{{exception.UserLocations.toString()}}
{{exception.State}}{{exception.City}}
Ticket IdAccount NameAddressSkillUser IdUser Name
{{exceptionList.TicketId}}{{exceptionList.AccountName}}{{exceptionList.Address}}{{exceptionList.Skills.toString()}}{{exceptionList.UserId}}{{exceptionList.UserName}}
 {{capacitygapanalysis.pageindexCount}} - {{capacitygapanalysis.bGVerifyListLength}} of {{totalTableUsersBG}}
\");\n$templateCache.put(\"app/CampaignDetailViewNew/CampaignDetailViewNew.html\",\"
  1. Home
  2. Campaign Details List

List Name - {{CmpgnDetailViewNewCntrl.UserByFiltersList[0].data.name}}  

Flow Name -     {{CmpgnDetailViewNewCntrl.UserByFiltersList[0].data.flow_type}}  

Start At - - {{CmpgnDetailViewNewCntrl.UserByFiltersList[0].data.schedule.send_at | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}  

End At -     {{CmpgnDetailViewNewCntrl.UserByFiltersList[0].data.schedule.end_at | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}  

Caller Type - {{CmpgnDetailViewNewCntrl.UserByFiltersList[0].data.type}}  

Caller ID -     {{CmpgnDetailViewNewCntrl.UserByFiltersList[0].data.caller_id}}  

No. of Retries - {{CmpgnDetailViewNewCntrl.UserByFiltersList[0].data.retries.number_of_retries}}  

Retry Interval -     {{CmpgnDetailViewNewCntrl.UserByFiltersList[0].data.retries.interval_mins}} min  

Retry Call with Status -     {{retries}},  

  • Call Details View
  • 0 Failed 1 Success 2 In-Progress 3 Completed 4 Paused

NumberNameTotal Call DurationTimeStatusDigitsRecording
{{campaigndetails.data.number}}{{campaigndetails.data.name}}{{campaigndetails.data.on_call_duration}}{{campaigndetails.data.start_time | date: \\'dd/MMM/yyyy h:mm:ss a\\' }}{{campaigndetails.data.status}}{{campaigndetails.data.digit}}
 {{CmpgnDetailViewNewCntrl.PageindexCount}} - {{CmpgnDetailViewNewCntrl.contactListLength}} of {{totalContacts}}
\");\n$templateCache.put(\"app/CentralHDAllTicketList/CentralHDAllTicketList.html\",\"
  • Action
  • Progress Bar
  • Job ID
  • Accounts Name
  • Site Id
  • Site Name
  • Job Description
  • Job step Approval
  • Job Type
  • Project
  • Customer
  • Location
  • Tecnician Name
  • Partner Name
  • Field Support Team
  • Publish Date
  • Assign Date
  • Latitude
  • Longitude
  • Follow Up Reason
  • Customer Satisfaction
  • Status
  • Sub Status
  • Settlement Status
  • Appointment Time
  • Invoice Status
  • Actual Start Date
  • Completion Date
  • SLA Status
  • TAT
  • Tecnician Date
  • Customer Rating
  • Consumer Name
  • Consumer Contact
  • Address 1
  • Address 2
  • Pincode
  • Supervisor Name
  • Approved Date
  • Freelacer Price
  • Bill Amount
  • schedule Mode
  • Material Delivery Status
  • Material Delivery Date
  • Primary Reason
  • Clone Reason
  • Audit
  • Clone Counter
  • Source Creation Date
  • Planned Closure Date
  • Breach Status
  • Cancellation Reasons
  • Collection Required
  • Collection Mode
  • Amount Collected
  • Amount To Be Collected
  • Region
  • Dispatcher Name
  1. Home
  2. Jobs
{{jobTicketCopy.pageindexCount}} - {{jobTicketCopy.ticketListLength}} of {{totalTableUsers}}
ActionProgress BarJob IDAccount NameSite IDSite NameJob DescriptionJob Step ApprovalJob TypeProjectCustomerLocationTechnician NameEngineer NamePartner NameField Support TeamPublish DateAssign DateLatitudeLongitudeFollow Up ReasonCustomer SatisfactionStatusSub StatusSettlement StatusAppointment TimeInvoiceStatusActual Start DateCompletion DateSLA StatusTATTechnician RatingCustomer RatingConsumer NameConsumer ContactAddress1Address2PincodeSupervisor NameApproved DateFreelancer PriceBill AmountSchedule ModeMaterial Delivery StatusMaterial Delivery DatePrimary ReasonClone ReasonAuditClone CounterSource Creation DatePlanned Closure DateBreach StatusCancellation ReasonsCollection RequiredCollection ModeAmount CollectedAmount To Be CollectedRegionSite Audit StatusSite Audit DateSite Audit ByDispatcher Name
    • Job Approved

    • Accept Job

    • Download

    • Download Pdf Report

    • Pull back job

    • Reject Job

    • Reject Job

    • Convert to New

    • On Hold

    • Onsite Report

    • Cancel

    • Clone Job

    • UnHold

    • Settlement

    • Follow Up

    • Tracking

    • Reschedule Audit

    • Site Audit

    • Convert To New from Broadcast

    • New
    • Assigned
    • Completed
    • Approved
    {{ticket.UserName}}0\\\" ng-repeat=\\\"fTeam in ticket.ListFieldSupportTeam\\\">{{fTeam.SupportEngineerName}}

    \");\n$templateCache.put(\"app/CentralHDConfig/CentralHelpdeskConfig.html\",\"
    1. Home
    2. Account Settings
    Account Settings
    Territory Mapping Settings
    Account Name
    Account Id
    City
    PinCode
    States
    Action
    {{AccountDetail.AccountName}}
    {{AccountDetail.AccountId}}

    {{CentralHelpdeskCtrl.SelectedAccount.AccountId}}

    {{AccountDetail.City}}
    {{AccountDetail.PinCode}}
    {{state}}

    {{CentralHelpdeskCtrl.SelectedAccount.AccountId}}

    Territory Mapping Settings
    Account Name
    Account Id
    City
    District
    PinCode
    States
    {{AccountDetail.AccountName}}
    {{AccountDetail.AccountId}}
    {{AccountDetail.City}}
    {{AccountDetail.District}}
    {{AccountDetail.PinCode}}
    {{AccountDetail.State}}
    \");\n$templateCache.put(\"app/CentralHDTicketsView/CentralHDTicketsView.html\",\"
    1. Home
    2. Jobs
    Job IDProjectAccount NameActionAttachmentGroup IDSite IDSite NameAsset Serial NumberStatusSub StatusPincodeTicket SourceService ByJob DescriptionJob TypeConsumer NameConsumer ContactCustomer SatisfactionTechnician NameEngineer NamePartner NameField Support TeamFace Match StatusEstimate Share StateEstimation AttachementEstimation Share RemarkTech Payment StatusTech Payment DateJob DescriptionJob TypeCustomerLocationCirclePublish DateAssign DateBroadcast CountRevisit CountRevisit RemarkReject CountBroadcast Age(dd:hh:mm:ss)LatitudeLongitudeFollow Up ReasonSecondary StatusSettlement StatusJob Step ApprovalAppointment TimeInvoiceStatusInvoice IDInvoice Creation DateIs Invoice CreatedPO NumberActual Start DateCompletion DateSLA StatusTATTechnician RatingCustomer RatingConsumer NameConsumer ContactAddress1Address2PincodeStateSupervisor NameApproved DateApproved ByCancellation DateCancelled ByFreelancer PriceBill AmountSchedule ModeMaterial Delivery StatusMaterial Delivery DatePrimary ReasonCompletion RemarkClone ReasonAuditClone CounterSource Creation DatePlanned Closure DateBreach StatusCancellation ReasonsRejection RemarksCollection RequiredCollection ModeAmount CollectedAmount To Be CollectedRegionSite Audit StatusSite Audit DateSite Audit ByDispatcher Name
    {{ticket.TicketSource}}{{ ticket.BrandName }}{{ticket.Assignee}}{{ticket.VendorName}}0\\\" ng-repeat=\\\"fTeam in ticket.ListFieldSupportTeam\\\">{{fTeam.SupportEngineerName}}No Yes{{PO}}
     {{jobTicketCopy.pageindexCount}} - {{jobTicketCopy.ticketListLength}} of {{totalTableUsers}}
    Combo IDNo.of ticketsStatusStageSiteIDSiteNameCityStatePincodeException TypeAppointment Date Broadcast Age(dd:hh:mm:ss)
    Total Age(dd:hh:mm:ss)
    Field Age(dd:hh:mm:ss)
    Project NameSecondary StatusPrimary ReasonFollowUp ReasonCancel ReasonRejection Remarkclone ReasonCreated DateLatitudeLongitudeStart TimeBroadcasted DatePriceDurationAmt CollectedAmt to Be Collected
    {{newJob.TicketId}}{{newJob.JobCountInBundle}}{{newJob.JobId}}{{newJob.SiteName}}{{newJob.City}}{{newJob.State}}{{newJob.Pincode}}{{newJob.PlannedStartDate | date:\\'dd/MM/yy hh:mm a\\'}}{{newJob.TicketBroadcastAge}}{{newJob.TotalTicketAge}}{{newJob.FieldAge}}{{newJob.ProjectName}}{{newJob.PrimaryReason}}{{newJob.LastFollowUpMsg}}{{newJob.TicketCancelReason}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.Latitude}}{{newJob.Longitude}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BroadcastRate}} INR{{newJob.BidDuration}} hrs{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}
    JobIDSiteIDSiteNameSkillCityStateTechnician NameFollowUp ReasonReject CountException TypeAppointment DateCall DateTimeCall Duration Broadcast Age(dd:hh:mm:ss)
    Total Age(dd:hh:mm:ss)
    StatusActionSentAcceptedRejectedAssign DateAssign Age(hr)Broadcast Count
    Field Age(dd:hh:mm:ss)
    Project NameTechnician NamePrimary ReasonCancel ReasonRejection Remarkclone ReasonSub StatusSecondary StatusCreated DateLatitudeLongitudeStart TimeBroadcasted DatePricePincodeAmt CollectedAmt to Be CollectedFreelancer Rate
    {{newJob.JobId}}{{newJob.SiteName}}{{newJob.SkillSet}}{{newJob.City}}{{newJob.State}}\\\"image\\\" {{newJob.Assignee}}{{newJob.LastFollowUpMsg}}{{newJob.TicketRejectionCount}}{{newJob.SecondryStatus}}{{newJob.PlannedStartDate | date:\\'dd/MM/yy hh:mm a\\'}}{{newJob.TicketBroadcastAge}}{{newJob.TotalTicketAge}}
    {{newJob.BIDSend}}{{newJob.BIDReceived}}{{newJob.DenyCount}}{{newJob.AssignationDate | date: \\'dd/MM/yyyy\\'}}:{{newJob.BroadcastCount}}{{newJob.FieldAge}}{{newJob.ProjectName}}{{newJob.Assignee}}{{newJob.PrimaryReason}}{{newJob.TicketCancelReason}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.Latitude}}{{newJob.Longitude}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BidDuration}} hrs{{pincode}}{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}{{newJob.FreelancerRate}}
    {{jobTicketCopy.pageindexCount}} - {{jobTicketCopy.ticketListLength}} of {{totalTableBundles}}
    JobIDStatusStageSiteIDSiteNameCityStatePincodeException TypeAppointment Date Broadcast Age(dd:hh:mm:ss)
    Total Age(dd:hh:mm:ss)
    Field Age(dd:hh:mm:ss)
    Project NameSecondary StatusPrimary ReasonFollowUp ReasonCancel ReasonRejection Remarkclone ReasonCreated DateLatitudeLongitudeStart TimeBroadcasted DatePriceDurationAmt CollectedAmt to Be Collected
    {{newJob.TicketId}}{{newJob.JobId}}{{newJob.SiteName}}{{newJob.City}}{{newJob.State}}{{newJob.Pincode}}{{newJob.PlannedStartDate | date:\\'dd/MM/yy hh:mm a\\'}}{{newJob.TicketBroadcastAge}}{{newJob.TotalTicketAge}}{{newJob.FieldAge}}{{newJob.ProjectName}}{{newJob.PrimaryReason}}{{newJob.LastFollowUpMsg}}{{newJob.TicketCancelReason}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.Latitude}}{{newJob.Longitude}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BroadcastRate}} INR{{newJob.BidDuration}} hrs{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}
    JobIDActionSiteIDSiteNameSkillCityStateGroupIdEstimate Share StateEstimation AttachementEstimation Share RemarkTechnician NameFollowUp ReasonReject CountException TypeAppointment DateCall DateTimeCall Duration Broadcast Age(dd:hh:mm:ss)
    Total Age(dd:hh:mm:ss)
    StatusSub StatusSentAcceptedRejectedAssign DateAssign Age(hr)Broadcast Count
    Field Age(dd:hh:mm:ss)
    Project NameTechnician NamePrimary ReasonCancel ReasonRejection Remarkclone ReasonSecondary StatusCreated DateLatitudeLongitudeStart TimeBroadcasted DatePricePincodeAmt CollectedAmt to Be CollectedFreelancer Rate
    {{newJob.JobId}}{{newJob.SiteName}}{{newJob.SkillSet}}{{newJob.City}}{{newJob.State}}{{newJob.GroupId}}{{newJob.EstimateShareState}}{{newJob.EstimationAttachement}}{{newJob.EstimationShareRemark}}\\\"image\\\" {{newJob.Assignee}}{{newJob.LastFollowUpMsg}}{{newJob.TicketRejectionCount}}{{newJob.SecondryStatus}}{{newJob.PlannedStartDate | date:\\'dd/MM/yy hh:mm a\\'}}{{newJob.TicketBroadcastAge}}{{newJob.TotalTicketAge}}{{newJob.BIDSend}}{{newJob.BIDReceived}}{{newJob.DenyCount}}{{newJob.AssignationDate | date: \\'dd/MM/yyyy\\'}}:{{newJob.BroadcastCount}}{{newJob.FieldAge}}{{newJob.ProjectName}}{{newJob.Assignee}}{{newJob.PrimaryReason}}{{newJob.TicketCancelReason}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.Latitude}}{{newJob.Longitude}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BidDuration}} hrs{{pincode}}{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}{{newJob.FreelancerRate}}
    {{jobTicketCopy.pageindexCount}} - {{jobTicketCopy.ticketListLength}} of {{totalTableBundles}}

    • {{attachment.replace(\\'.pdf\\', \\'\\')}}
    -->
    \");\n$templateCache.put(\"app/CentralHDTicketsView/Dashboard-small.html\",\"
    • {{jobTicketCopy.teamdata.jobsSummary.TotalJobs}}

      Total Jobs

    • ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalEarned}}

      Total Earning

    • {{jobTicketCopy.teamdata.userProfile.venderTeamCount}}

      Total Team

    Background Verified
    • {{VerificationDoc.DocumentName}}
    Skill Verified
    • {{skills.Skill}}
    One Job Done
    • {{oneJobskills}}
    \\\"profile\\\"
    {{jobTicketCopy.teamdata.userProfile.FirstName}} {{jobTicketCopy.teamdata.userProfile.LastName}}
    {{jobTicketCopy.teamdata.userProfile.Ratings.UserId}}

    ({{jobTicketCopy.teamdata.userProfile.Role}})

    {{jobTicketCopy.teamdata.userProfile.Address}}
    {{jobTicketCopy.TechnicianRating}}
    Member Since {{jobTicketCopy.teamdata.userProfile.TechnicianActivationDate| date:\\'MMM dd, yyyy\\'}}
    {{jobTicketCopy.teamdata.userProfile.LastFollowUpReason}} ({{jobTicketCopy.teamdata.userProfile.LastFollowUpRemark}})

    Last follow up on {{jobTicketCopy.teamdata.userProfile.LastFollowUpDateTimeObj | date:\\'dd/MMM/yyyy h:mm:ss a\\'}}

    by \\\"{{jobTicketCopy.teamdata.userProfile.LastFollowUpTakenBy}}\\\"

    Jobs Summary

    {{jobTicketCopy.teamdata.jobsSummary.TotalJobs}}

    Total Jobs

    {{jobTicketCopy.teamdata.jobsSummary.Assignedjobs}}

    Assigned

    {{jobTicketCopy.teamdata.jobsSummary.Completed}}

    Completed

    {{jobTicketCopy.teamdata.jobsSummary.Rejected}}

    Rejected

    {{jobTicketCopy.teamdata.jobsSummary.LeadAcceptance}} (%

    Lead Acceptance

    {{jobTicketCopy.teamdata.jobsSummary.CompletionSpeed}}

    Average Completion Speed

    {{jobTicketCopy.teamdata.jobsSummary.JobCompletionRate}} (%)

    Job Completion Rate

    {{jobTicketCopy.teamdata.jobsSummary.FirstResponseRate}} (%)

    First Response Time

    {{jobTicketCopy.teamdata.jobsSummary.AppointmentMetRate}} (%)

    Appointment Met Rate

    Payments Summary

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalEarned}}

    Total Earned

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalDueAmount}}

    Total Due Amount

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalPaid}}

    Total Paid

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalReject}}

    Total Reject

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalFailed}}

    Total Failed

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalInitial}}

    Total Initial

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalCollection}}

    Total Collection

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalService}}

    Total Service

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalHardware}}

    Total Hardware

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalBonus}}

    Total Bonus

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalPanelty}}

    Total Panelty

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalAllowance}}

    Total Allowance

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.SecurityAmount}}

    Security Amount

    {{jobTicketCopy.teamdata.paymentsSummary.SecurityExpiryDate | date:\\'dd/MM/yy\\'}}

    Security Expiry Date

    {{jobTicketCopy.teamdata.paymentsSummary.SecurityDepositDate | date:\\'dd/MM/yy\\'}}

    ReCharge On

    Execution Summary

    {{jobTicketCopy.teamdata.executionSummary.AssignedNoAction}}

    Assigned No Action

    {{jobTicketCopy.teamdata.executionSummary.CCNAB}}

    CCNAB

    {{jobTicketCopy.teamdata.executionSummary.Cancelled}}

    Cancelled

    {{jobTicketCopy.teamdata.executionSummary.AppointmentBookedDay0}}

    Appointment Booked Day 0

    {{jobTicketCopy.teamdata.executionSummary.AppointmentBookedDay1}}

    Appointment Booked Day 1

    {{jobTicketCopy.teamdata.executionSummary.AppointmentBookedDay1Plus}}

    Appointment Booked Day1+

    {{jobTicketCopy.teamdata.executionSummary.AppointmentBreached}}

    Appointment Breached

    {{jobTicketCopy.teamdata.executionSummary.InTransit}}

    InTransit

    {{jobTicketCopy.teamdata.executionSummary.OnSite}}

    On Site

    {{jobTicketCopy.teamdata.executionSummary.OnHold}}

    On Hold

    Ratings

    {{jobTicketCopy.teamdata.userProfile.AverageRating.AverageRating}} average based on {{jobTicketCopy.teamdata.userProfile.AverageRating.totalCount}} reviews.


    5 star
    {{jobTicketCopy.AvgRating.FiveStar}}
    4 star
    {{jobTicketCopy.AvgRating.FourStar}}
    3 star
    {{jobTicketCopy.AvgRating.ThreeStar}}
    2 star
    {{jobTicketCopy.AvgRating.TwoStar}}
    1 star
    {{jobTicketCopy.AvgRating.OneStar}}
    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusInteraction VideoCatagoryCertificate
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate}}{{skills.BrandList}}{{skills.Status}}

    Total Jobs

    Assigned

    Completed

    Approved

    Rejected

    ANA

    CCNAB

    Cancelled

    ABD0

    ABD1

    ABD1+

    ABR

    InTransit

    On Site

    On Hold

     {{jobTicketCopy.upageindexCount}} - {{jobTicketCopy.userListLength}} of {{totalUsers}}
    Ticket IDTicket TypeAccountLocationAssigned DateTATJobs StatusCreation DateStatus Date
    {{workList.TicketID}}{{workList.TicketType}}{{workList.Account}}{{workList.Location}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.TAT}}{{workList.JobsStatus}}{{workList.JobsCreationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.InTransitDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnSiteDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AppointmentBookedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CompletionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnHoldDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.RejectionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CancellationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.ApprovedDate | date:\\'dd/MM/yy hh:mm a\\'}}
    ₹ {{jobTicketCopy.paymentCount.TotalCollection}}

    Total Collection

    ₹ {{jobTicketCopy.paymentCount.TotalService}}

    Total Service

    ₹ {{jobTicketCopy.paymentCount.TotalHardware}}

    Total Hardware

    ₹ {{jobTicketCopy.paymentCount.TotalBonus}}

    Total Bonus

    ₹ {{jobTicketCopy.paymentCount.TotalPanelty}}

    Total Panelty

    ₹ {{jobTicketCopy.paymentCount.TotalAllowance}}

    Total Allowance

     {{jobTicketCopy.fpageindexCount}} - {{jobTicketCopy.financeListLength}} of {{totalFinList}}
    Total Base PriceTotal Payable AmountTotal CommissionTotal ServiceTotal HardwareTotal BonusTotal PaneltyTotal CollectionTotal AwallanceCashfree IdFailed ReasonStatus
    {{financeList.TotalBasePrice}}{{financeList.TotalPayableAmount}}{{financeList.TotalCommission}}{{financeList.TotalService}}{{financeList.TotalHardware}}{{financeList.TotalBonus}}{{financeList.TotalPanelty}}{{financeList.TotalCollection}}{{financeList.TotalAwallance}}{{financeList.CashfreeId}}{{financeList.FailedReason}}{{financeList.Status}}
    Job IDJob TypeProjectCustomerLocationTechnician NameFollow Up ReasonCreation DateStatusTATRating
    {{financesmry.jobID}}{{financesmry.jobType}}{{financesmry.project}}{{financesmry.customer}}{{financesmry.location}}{{financesmry.technicianName}}{{financesmry.followUpReason}}{{financesmry.creationDate | date: \\'dd-MMM-yyyy hh:mm:ss a\\'}}{{financesmry.status}}{{financesmry.tat}}{{financesmry.rating}}
    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusInteraction VideoCatagoryCertificate
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate}}{{skills.BrandList}}{{skills.Status}}
    Previous Company Details
    Company NameProject NameDesignationAccountDate of JoiningDate of RelievingExperience Letter
    {{previousCompany.CompanyName}}{{previousCompany.ProjectName}}{{previousCompany.Designation}}{{previousCompany.AccountName}}{{previousCompany.DateOfJoining | date:\\'dd-MMM-yyyy\\'}}{{previousCompany.DateOfRelieving | date:\\'dd-MMM-yyyy\\'}} \\\"\\\"
    Training Details
    Training NameTraining DateTraining ImageTraining Attendence
    {{Audittraining.TrainingName}}{{Audittraining.TrainingDate | date:\\'dd-MMM-yyyy\\'}} \\\"\\\" \\\"\\\"
    Ratings

    {{jobTicketCopy.reviewData.OverAllRating.AverageRating}} average based on {{jobTicketCopy.reviewData.OverAllRating.totalCount}} reviews.


    {{Reviews.CustomerName}}Source : MyMobiforce
    (Reviewed on {{Reviews.ReviewDate}})

    {{Reviews.AdditionalRemark}}

    Assets
    Equipment Details
    Equipment NameBrand NameView EquipmentItem Serial NumberManufactured OnExpired On
    {{toolDetail.ToolName}}{{toolDetail.BrandName}}{{toolDetail.ItemSerialNumber}}NA {{toolDetail.DateOfManufacturing}}{{toolDetail.ExpireDate}}
    Audit Details
    Audit SummaryAuditorAudited OnStatusReport
    {{auditDetail.AuditPurpose}}{{auditDetail.AuditorDetails.AuditorName}}{{auditDetail.AuditDate | date: \\'dd-MMM-yyyy\\'}}{{auditDetail.AuditResult}} {{auditDetail.AuditResult}} {{auditDetail.AuditResult}}
    All Team List
    User IDNameTotal CountOpen CountClose CountRoleAddress line 1CityStatePincodeStatusD-1 AvailabilityD-0 Attendance
    {{TeamDetail.UserId}}{{TeamDetail.Name}}{{TeamDetail.TotalCount}}{{TeamDetail.OpenCount}}{{TeamDetail.CloseCount}}{{TeamDetail.Role}}{{TeamDetail.Addressline1}}{{TeamDetail.PermanentCity}}{{TeamDetail.State}}{{TeamDetail.PermanentPinCode}}Inactive ActiveNot Available AvailableNot Available Available
    Interaction Videos List
    TypeSkillUploaded ByUploaded OnVideo
    {{videoupload.Type}}{{videoupload.SkillName}}
    Ticket IDPrimary ReasonReason CommentFollow up On
    {{followupDetail.ticketId}}{{followupDetail.ticketId}}{{followupDetail.PrimaryReason}}{{followupDetail.ReasonComment}}{{followupDetail.dateTime | date:\\'dd/MMM/yyyy h:mm:ss a\\'}}
    \");\n$templateCache.put(\"app/CentralHDManualAssignation/CentralHDManualAssignation.html\",\"
    1. Home
    2. Job Assign
    Job IDDecriptionCustomerSkillLocationAge (Days)PriorityCreated DateProjectPincode
    {{newJob.LinkId || newJob.TicketId}} {{newJob.TicketId}}{{newJob.JobDescription}}{{newJob.CustomerName}}{{newJob.SkillSet}}{{newJob.Circle}}{{newJob.Age}}{{newJob.Priority}} NA{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.AssignationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.ProjectName}}{{newJob.Pincode}}
    Job IDStart TimeBroadcasted DatePriceDurationSentRecieved
    {{broadcast.LinkId || broadcast.JobId}}{{broadcast.StartDateTime | date: \\'dd/MM/yyyy\\'}}{{broadcast.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{broadcast.BroadcastRate}} INR{{broadcast.BIDDuration}} hrs{{broadcast.BIDSend}}{{broadcast.BIDReceived}}
    {{manualAssignation.broadcastError}}

    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"freeUser in manualAssignation.freelancerUsers | filter: manualAssignation.searchUserText | orderBy : orderProperty\\\" ng-class=\\'{\\\"selectedRow\\\":(manualAssignation.selectedJob==freeUser)}\\'>
    \\\"image\\\" \\\"image\\\"

    {{freeUser.exp}} Years

    0 Total Jobs

    Online Offline

    {{freeUser.exp}} Years

    0\\\">{{freeUser.SkillSet[0]+(freeUser.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{freeUser.Locations[0]+(freeUser.locationCount>1?\\\"...\\\":\\\"\\\")}}

    {{freeUser.Pincode}}

    No data found
    TicketId:-{{manualAssignation.broadcastLinkId || manualAssignation.broadcastTicketId}}

    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"bidUsers in manualAssignation.BidReceivedJobs |filter: searchUserText | orderBy : orderProperty\\\">
    \\\"image\\\"

    {{bidUsers.BIDStatus}}

    2 Kms

    {{bidUsers.JobsCompletedCount}} 0  Total Jobs

    {{bidUsers.exp}} Years

    0\\\">{{bidUsers.SkillSet}}

    0\\\">{{bidUsers.Locations)}}

    No data found
    {{manualAssignation.broadcastErrorFV}}

    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"vendors in manualAssignation.FreelancerVendorUsers | filter: manualAssignation.searchUserText | orderBy : orderProperty\\\">
    \\\"image\\\" \\\"image\\\"

    0 Total Jobs

    Online Offline

    {{vendors.exp}} Years

    0\\\">{{vendors.SkillSet[0]+(vendors.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{vendors.Locations[0]+(vendors.locationCount>1?\\\"...\\\":\\\"\\\")}}

    {{vendors.Pincode}}

    No data found
    TicketId:-{{manualAssignation.broadcastLinkId || manualAssignation.broadcastTicketId}}

    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"bidUsers in manualAssignation.BidReceivedJobs |filter: searchUserText | orderBy : orderProperty\\\">
    \\\"image\\\"

    Satyaver

    {{bidUsers.BIDStatus}}

    2 Kms

    {{bidUsers.JobsCompletedCount}} 0  Total Jobs

    {{bidUsers.exp}} Years

    0\\\">{{bidUsers.SkillSet}}

    0\\\">{{bidUsers.Locations)}}

    No data found
     {{manualAssignation.pageindexCount}} - {{manualAssignation.ticketListLength}} of {{totalTableTickets}}
    JobIDSiteIDSiteNameSkillCityStateTechnician NameFollowUp ReasonReject CountException TypeAppointment DateCall DateTimeCall Duration Broadcast Age(dd:hh:mm:ss)
    Total Age(dd:hh:mm:ss)
    StatusActionSentAcceptedRejectedAssign DateAssign Age(hr)Broadcast Count
    Field Age(dd:hh:mm:ss)
    Project NamePrimary ReasonCancel ReasonRejection Remarkclone ReasonSub StatusSecondary StatusCreated DateLatitudeLongitudeStart TimeBroadcasted DatePriceDurationPincodeAmt CollectedAmt to Be CollectedDispatcher Name
    {{newJob.JobId}}{{newJob.SiteName}}{{newJob.SkillSet}}{{newJob.City}}{{newJob.State}}\\\"image\\\" {{newJob.Assignee}}{{newJob.LastFollowUpMsg}}{{newJob.TicketRejectionCount}}{{newJob.SecondryStatus}}{{newJob.PlannedStartDate | date:\\'dd/MM/yy hh:mm a\\'}}{{newJob.TicketBroadcastAge}}{{newJob.TotalTicketAge}}
    {{newJob.BIDSend}}{{newJob.BIDReceived}}{{newJob.DenyCount}}{{newJob.AssignationDate | date: \\'dd/MM/yyyy\\'}}:{{newJob.BroadcastCount}}{{newJob.FieldAge}}{{newJob.ProjectName}}{{newJob.PrimaryReason}}{{newJob.TicketCancelReason}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.Latitude}}{{newJob.Longitude}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BroadcastRate}} INR{{newJob.BidDuration}} hrs{{newJob.Pincode}}{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}{{newJob.DispatchSupervisorName}}
    {{manualAssignation.UsersType}}
      {{manualAssignation.upageindexCount}} - {{manualAssignation.userListLength}} of {{totalUsers}}
       \\\"image\\\" \\\"image\\\" N P


    {{fixedUsers.UserId}}

    {{fixedUsers.ContactNumber}}

    Online Offline

    Today Jobs :

    Approved Jobs :

    Total Bids :

    {{fixedUsers.exp}} Years

    Acceptance Jobs (%) :

    First Response Time (%) :{{fixedUsers.FirstResponseRate}}

    Appointment Met Rate (%) :{{fixedUsers.AppointmentMetRate}}

    0\\\">{{fixedUsers.Locations[0]+(fixedUsers.locationCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{fixedUsers.CurrentPinCode}}

    0\\\">{{fixedUsers.SkillSet[0]+(fixedUsers.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}
    No User Found
    {{main.getVisibleLabel(\\'Vendor\\')}}
    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"vendors in manualAssignation.vendorList | filter: manualAssignation.searchUserText | orderBy : orderProperty\\\">
    \\\"image\\\"

    {{vendors.CompanyName}} {{vendors.AddressLine2}}

    {{vendors.MobileNumber}}

    0 Total Jobs

    {{vendors.TotalJobs}} Total Jobs

    0\\\">{{vendors.VendorSkillsets[0]+(vendors.VendorSkillsetsCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{vendors.VendorLocations[0]+(vendors.VendorLocationsCount>1?\\\"...\\\":\\\"\\\")}}

    {{vendors.Pincode}}

    No data found
    {{main.getRoleName(\\'Supervisor\\')}}
    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"supervisors in manualAssignation.supervisorList | filter: manualAssignation.searchUserText | filter : manualAssignation.filteredProperties | orderBy : orderProperty\\\">
    \\\"image\\\" \\\"image\\\"

    {{supervisors.FirstName + \\' \\' + supervisors.LastName}}

    {{supervisors.ContactNumber}}

    {{supervisors.JobTotal}} Total Jobs

    0 Total Jobs

    0\\\">{{supervisors.SkillSet[0]+(supervisors.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{supervisors.Locations[0]+(supervisors.locationCount>1?\\\"...\\\":\\\"\\\")}}

    No data found
    × Ticket Id - {{manualAssignation.broadcastTicketId}}
    {{manualAssignation.BIDStartIndex+1}} - {{manualAssignation.BIDMaxcount>manualAssignation.UserBIDCount?manualAssignation.UserBIDCount:manualAssignation.BIDMaxcount}} of {{manualAssignation.UserBIDCount}}
    \\\"image\\\" \\\"image\\\" N

    {{bidUsers.BIDStatus}}

    {{bidUsers.UserPhoneNumber}}

    slots :

    Approved Jobs :

    Total Bids :

    {{bidUsers.Distance}} km

    Acceptance Jobs (%) :

    First Response Time (%) :{{bidUsers.FirstResponseRate}}

    Appointment Met Rate (%) :{{bidUsers.AppointmentMetRate}}

    Attendence:

    Online Offline

    Last Login:

    No data found
    × Ticket Id - {{manualAssignation.TicketSelectedForAssistedSuggestion.TicketId}}
    DistanceRanked
      {{manualAssignation.SuggestionStarIndex+1}} - {{manualAssignation.SuggestionMaxcount>manualAssignation.UserSuggestionCount?manualAssignation.UserSuggestionCount:manualAssignation.SuggestionMaxcount}} of {{manualAssignation.UserSuggestionCount}}
    Compliance  
    \\\"image\\\" \\\"image\\\" N

    {{userSuggestion.name}}

    Today Jobs :

    Approved Jobs :

    Total Bids :

    {{userSuggestion.UserDistance}} km

    Acceptance Jobs (%) : {{userSuggestion.AvgAcceptanceJobs}}

    First Response Time (%) :{{userSuggestion.FirstResponseRate}}

    Appointment Met Rate (%) :{{userSuggestion.AppointmentMetRate}}

    Online Offline

    Last Login:

    No user found with matching criteria

    ×
    \\\"image\\\" \\\"image\\\"

    {{manualAssignation.TicketSelectedForAssistedSuggestion.UserId}}

    {{manualAssignation.TicketSelectedForAssistedSuggestion.PersonalEmail}}

    , , , -

    {{manualAssignation.TicketSelectedForAssistedSuggestion.LastFollowUpReason}} ({{manualAssignation.TicketSelectedForAssistedSuggestion.LastFollowUpRemark}})

    Last follow up on {{manualAssignation.TicketSelectedForAssistedSuggestion.LastFollowUpDateTimeObj | date:\\'dd/MMM/yyyy h:mm:ss a\\'}}

    by \\\"{{manualAssignation.TicketSelectedForAssistedSuggestion.LastFollowUpTakenBy}}\\\"

    Skills
    {{skills.Skill}}
    Work Area
    {{workArea}}

    TodayJobs

    Total Bids

    Acceptance (%)

    Rejection (%)

    Tools
    {{tools}}


    • Broadcast
    • Assigned
    • ANA
    • CCNAB
    • ABR
    • ABD0
    • Completed
    • Approved
    • Rejected
    • Cancelled
    • Total
    Basic Interaction
    Save

    Qualifications

    Skills

    Preferences


      {{manualAssignation.jobsStarIndex}} - {{manualAssignation.jobsMaxcount}} of {{totalJobs}}
    Job IDJob TypeProjectCustomerLocationTechnician NameActionFollow Up ReasonCreation DateAssignation DateAppointment DateApproved Date Broadcast Age(dd:hh:mm:ss)Field AgeDistanceStatusSLAStatusTATRating
    ×
    \\\"image\\\" \\\"image\\\"

    {{bidUsers.BIDStatus}}

    2 Kms

    {{bidUsers.JobsCompletedCount}} 0  Total Jobs

    {{bidUsers.exp}} Years

    0\\\">{{bidUsers.SkillSet}}

    0\\\">{{bidUsers.Locations)}}

    No data found
    \");\n$templateCache.put(\"app/Cms Home/cms_home.html\",\"
    You don\\'t have any content to shown here. Please connect your admin to add content for you.
    Monica Smith
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
    Monica Smith
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
    Monica Smith
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
    Monica Smith
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
    Monica Smith
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
    \");\n$templateCache.put(\"app/ClientView360/ClientView360.html\",\"
    1. Home
    2. Customer Profile
    \\\"Avatar\\\"

    {{ctrlclientCRM360.consumerData.strConsumerTitle}} {{ctrlclientCRM360.consumerData.strConsumerFirstName}} {{ctrlclientCRM360.consumerData.strConsumerLastName}}

    {{ctrlclientCRM360.consumerData.strConsumerId}}


    {{ctrlclientCRM360.consumerData.strConsumerType}}


    Personal Details
    Name :
    {{ctrlclientCRM360.consumerData.strConsumerTitle}} {{ctrlclientCRM360.consumerData.strConsumerFirstName}} {{ctrlclientCRM360.consumerData.strConsumerLastName}}
    Contact No. :
    {{ctrlclientCRM360.consumerData.strConsumerContact}}
    Alternate Contact :
    {{ctrlclientCRM360.consumerData.strConsumerAlternateContact}}
    Email :
    {{ctrlclientCRM360.consumerData.strPersonalEmail}}
    Address Type :
    {{ctrlclientCRM360.consumerAddressData.strAddressType}}
    Address :
    {{ctrlclientCRM360.consumerAddressData.strAddress1}} {{ctrlclientCRM360.consumerAddressData.strAddress2}}
    State :
    {{ctrlclientCRM360.consumerAddressData.strState}}
    City :
    {{ctrlclientCRM360.consumerAddressData.strCity}}
    Pincode :
    {{ctrlclientCRM360.consumerAddressData.strPostalCode}}
    Consumer Type :
    {{ctrlclientCRM360.consumerData.strConsumerType}}
    Business Type :
    {{ctrlclientCRM360.consumerData.strBusinessType}}
    Status :
    {{ctrlclientCRM360.consumerData.strConsumerStatus}}
    Registered On :
    {{ctrlclientCRM360.consumerData.dateRegisteredOn | date:\\'dd/MM/yyyy hh:mm a\\'}}

    Quick Actions

    \\\"Avatar\\\"
    Crompton Geyser - 25ltr
    Warranty Expiring in 29 days
    \\\"Avatar\\\"
    Samsung LED - 52 Inch
    Warranty Expiring in 6 days
    \\\"Avatar\\\"
    Samsung Washing Machin...
    Warranty Expiring in 4 days
    {{ctrlclientCRM360.consumerAssetDataLength}}

    Assets

    12

    Orders

    {{ctrlclientCRM360.ticketLength}}

    Ticket

    7,000

    Payments Amounts

    \\\"Avatar\\\"

    All Activity

    Complaint #4455

    AC is not cooling properly after installation done. Please resolve my cooling issue as soon as possible.

    9:30 AM

    Another meeting with UK client today, at 3:00 PM

    Yet another one, at 5:00 PM

    12:25 PM

    MMF Admin

    Technician assigner for Voltas 5 Start inverter AC installation

    6:00 PM

    Discussion with marketing team

    Discussion with marketing team about the popularity of last product

    9:00 AM

    Purchase new hosting plan

    Purchase new hosting plan as discussed with development team, today at 10:00 AM

    10:30 PM

    Another conference call today, at 11:00 AM

    Yet another one, at 1:00 PM

    12:25 PM

    Another meeting with UK client today, at 3:00 PM

    Yet another one, at 5:00 PM

    12:25 PM

    Discussion with team about new product launch

    meeting with team mates about the launch of new product. and tell them about new features

    6:00 PM

    Discussion with marketing team

    Discussion with marketing team about the popularity of last product

    9:00 AM

    Purchase new hosting plan

    Purchase new hosting plan as discussed with development team, today at 10:00 AM

    10:30 PM

    Another conference call today, at 11:00 AM

    Yet another one, at 1:00 PM

    12:25 PM
    Quick Questions

    1. My AC making strange noises
    2. Why is my air conditioner increasing my energy bills
    3. my air conditioner leaking water
    4. Why does my air conditioner keep turning on and off frequently

    Here is the attached PDF file:

    \\\"PDF

    sample.pdf

    There could be several reasons why your air conditioner is not cooling effectively:
    1. Dirty Air Filter: A dirty air filter can block airflow, reducing the AC\\'s efficiency. Check and replace the air filter if it\\'s clogged.
    2. Low Refrigerant Levels: If the refrigerant levels are low, it could indicate a leak. Refrigerant is crucial for cooling, so low levels can affect performance. A professional should check and recharge the refrigerant.
    3. Thermostat Issues: Ensure your thermostat is set correctly and functioning properly. If it’s malfunctioning, it might not be signaling the AC to cool.
    4. Clogged Condenser Unit: Debris or dirt around the outdoor condenser unit can affect cooling efficiency. Clean the unit and remove any obstructions.

    It\\'s recommended to schedule maintenance for your air conditioner at least once a year, ideally before the cooling season begins. Regular maintenance can help ensure your AC operates efficiently, prolong its lifespan, and prevent unexpected breakdowns. During a maintenance visit, a technician will:
    1. Clean or Replace the Air Filter: A clean air filter is crucial for proper airflow and efficiency.
    2. Check Refrigerant Levels: Ensuring the refrigerant is at the correct level is essential for effective cooling.
    3. Check Thermostat Settings: Ensuring the thermostat is calibrated correctly will maintain your desired temperature.
    4. Inspect Electrical Components: Checking wiring, capacitors, and other electrical components can prevent potential electrical issues.
    5. Lubricate Moving Parts: Proper lubrication of moving parts reduces friction and wear.

    If your refrigerator is making loud or unusual noises, consider the following steps to diagnose and address the issue:
    1. Check the Leveling: Ensure the refrigerator is level. If it\\'s not, vibrations may cause noise. Adjust the leveling legs at the bottom of the refrigerator if needed.
    2. Inspect the Condenser Fan: A noisy condenser fan could indicate dirt buildup or a malfunctioning fan motor. Clean any debris around the fan and check if it spins freely. If the noise persists, you may need to replace the fan motor.
    3. Look at the Evaporator Fan: Inside the freezer, the evaporator fan can sometimes cause noise if it\\'s faulty or obstructed by ice. Defrosting the freezer might help, but if the noise continues, the fan might need replacement.
    4. Check the Compressor: A loud compressor could indicate it\\'s struggling or failing. While compressors do make some noise, any sudden changes or excessive noise should be checked by a professional technician.
    If the noise persists after checking these areas, it\\'s best to call a professional technician to diagnose and repair the issue.

    For optimal performance and hygiene, it\\'s recommended to clean your refrigerator every 3-4 months. Here’s what you should focus on:
    1. Interior Shelves and Drawers: Remove all food items and wipe down the shelves and drawers with a mixture of mild soap and warm water. Rinse and dry them thoroughly before placing them back.
    2. Door Seals: Clean the door gaskets with a mixture of baking soda and water to remove dirt and ensure a good seal. This prevents cool air from escaping.
    3. Condenser Coils: Dust and vacuum the condenser coils at least twice a year. This is especially important for efficient operation and can help prevent the refrigerator from overheating.
    4. Exterior: Wipe down the exterior of the refrigerator with a mild detergent and water. Use a stainless steel cleaner if your refrigerator has a stainless steel finish.
    5. Drip Pan: Check and clean the drip pan located underneath the refrigerator, if applicable. Ensure it is clean to prevent odors and mold growth.
    Regular cleaning helps maintain the efficiency of your refrigerator and extends its lifespan.
    Assets TypeBrandProduct GroupAssets Purchase OnModel NumberSerial NumberWarranty Expiry DateWarranty Purchase DateWarranty StatusAction
    {{ assets.AssetType}}{{ assets.Brand}}{{ assets.ProductGroup}}{{ assets.AssetPurchaseDate | date:\\'dd/MM/yyyy\\'}}{{ assets.ModelNumber}}{{ assets.SerialNumber}}{{ assets.WarrantyExpiryDate | date:\\'dd/MM/yyyy\\'}}{{ assets.WarrantyPurchaseDate | date:\\'dd/MM/yyyy\\'}}{{ assets.AssetWarranty}}
    Service Management
    Service IDService DetailsBrandDate & TimeTechnicianStatusActions
    A40000002388
    \\\"Avatar\\\"
    Voltas Window AC
    Installation
    \\\"Avatar\\\"20 July 2020 4:20PMN/ARequested
    A40000002388
    \\\"Avatar\\\"
    Refrigerator
    MDF786
    \\\"Avatar\\\"20 July 2020 4:20PMRohit KumarCancelled
    A40000002388
    \\\"Avatar\\\"
    Air Purifier
    MDF786
    \\\"Avatar\\\"20 July 2020 4:20PMSunil YadavAssigned
    A40000002388
    \\\"Avatar\\\"
    Room Heater 240 Watt
    MDF786
    \\\"Avatar\\\"20 July 2020 4:20PMMohit ChauhanCompleted
    Order Management
    Purchased OnProduct DetailsBrandPriceWarrantyWarranty StatusActions
    10 July 2023
    \\\"Avatar\\\"
    Chimney Hose
    MDF786
    \\\"Avatar\\\"₹69910 days beforeExpired
    10 July 2023
    \\\"Avatar\\\"
    Smart Key Sw...
    MDF786
    \\\"Avatar\\\"₹1,469In 5 daysExpiring Soon
    10 July 2023
    \\\"Avatar\\\"
    Protection Plan 1 Y...
    MDF786
    \\\"Avatar\\\"₹69922 June 2022Under Warranty
    Case NumberCall TypeCall SourceStatusBrand NameProduct NameDefect DescriptionOpened DateClosed Date
    {{ticketData.TicketId}}{{ticketData.CallType}}{{ticketData.CallSource}}{{ticketData.TicketStatus}}{{ticketData.BrandName}}{{ticketData.ProductName}}{{ticketData.DefectDescription}}{{ticketData.CreatedOn}}{{ticketData.CompletedOn}}
    Payments
    Transaction IDDate & TimeService/ Product DetailsAmount PaidPartner AmountPayment ViaStatusActions
    TRNS87907610 Jul 2023 | 5:20 PM
    \\\"Avatar\\\"
    Voltas Window AC
    Installation
    ₹820₹420Net BankingRefund Pending
    TRNS78352419 Apr 2023 | 4:58 PM
    \\\"Avatar\\\"
    Voltas Window AC
    Installation
    ₹1399₹899Debit CardFailed
    TRNS09786214 Apr 2023 | 2:16 PM
    \\\"Avatar\\\"
    Dish Washer 25 liter
    Breakdown Request
    ₹1650₹1150UPICompleted
    \");\n$templateCache.put(\"app/Company_Profile/Company_Profile.html\",\"
    1. Home
    2. Company Profile
    \\\"profile\\\"

    HopeFloats Technologies Pvt. Ltd.


    Crowdsourcing Platform

    Service Marketplace to connect Field Engineers with Businesses .

    HopeFloats Technologies
    C-22 A, Sector 57, Noida
    Uttar Pradesh , 201301
    Ankur Sharma
    Ankur.sharma@innotontech.com
    P: (123) 456-7890
    Job TypeJob PricePrice per Kms
    Vsat Installation5005
    Vsat Maintenece9005
    \");\n$templateCache.put(\"app/CommittmentOps/CommittmentOps.html\",\"
    1. Home
    2. Task Priority
    Task Type

    {{onboardingTask.TaskId}} ( {{onboardingTask.TotalHiredUsers}}/{{onboardingTask.ExpectedCapacity}} )

    Follow Up {{CmtmntOpsCtrl.FollowUpTask}}

    {{CmtmntOpsCtrl.TotalTask}}

    Total Task

    {{CmtmntOpsCtrl.OpenTask}}

    Open Task

    {{CmtmntOpsCtrl.ClosedTask}}

    Close Task

    ActionTask IdUser IdUser NameStateCityPincodeSkillDescription
    Task Age (DD:HH:MM)
    Created OnCreated ByTask Due DateTask Breached Status
    Task Completed On
    Task Completion DateAssigned ToTask Status
    {{onboardingTask.TaskId | limitTo: 20 }}...{{ onboardingTask.TaskId.split(\\'_\\').pop() }}\\\"image\\\" {{ onboardingTask.Description.split(\\':\\')[0].trim() }}{{onboardingTask.State}}{{onboardingTask.City}}{{onboardingTask.Pincode}}{{onboardingTask.Skill}}{{onboardingTask.Description | limitTo: 10}}...{{onboardingTask.TaskAge}}{{onboardingTask.CreatedOn| date:\\'dd/MM/yyyy hh:mm a\\'}}{{onboardingTask.CreatedBy}}{{onboardingTask.TaskDueDate| date:\\'dd/MM/yyyy hh:mm a\\'}}{{onboardingTask.TaskBreached}}{{onboardingTask.TaskCompletedOn}}{{onboardingTask.TaskClosingDate}}{{onboardingTask.AssignedTo}}{{onboardingTask.GapStatus}}

    Invited Users

    {{CmtmntOpsCtrl.TotalInvitedUserCount}}

    Invited

    Activated Profiles

    {{CmtmntOpsCtrl.Count}}

    Total Users

    {{CmtmntOpsCtrl.TotalRegisterUser}}

    Total Registered Users

    {{CmtmntOpsCtrl.TotalActiveUsersCount}}

    Total Active Users

    {{CmtmntOpsCtrl.TotalActiveFrUsersCount}}

    Total Active Freelancers

    {{CmtmntOpsCtrl.TotalActiveFVUsersCount}}

    Total Active Freelancer Vendors

    {{CmtmntOpsCtrl.TotalActiveFVTUsersCount}}

    Total Active Vendor Team

    {{CmtmntOpsCtrl.FixedTeamCount}}

    Total Fixed Team

    Active User\\'s Attributes
    {{CmtmntOpsCtrl.PrimeMember}}

    Prime Members

    {{CmtmntOpsCtrl.NonPrimeMember}}

    Non-Prime Members (<= 10=\\\"\\\" jobs)=\\\"\\\" <=\\\"\\\" p=\\\"\\\">

    10 Jobs)\\\" class=\\\"perfomance-detail-other\\\" ng-click=\\\"CmtmntOpsCtrl.getCountByPssValue(\\'NonPrimeMoreThanTenCount\\')\\\">
    {{CmtmntOpsCtrl.NonPrimeMoreThanTenCount}}

    Non-Prime Members (> 10 Jobs)

    {{CmtmntOpsCtrl.AuthorizedServiceParnterDetailCount }}

    Total Authorized Service Center

    {{CmtmntOpsCtrl.AuthorizedServiceParnterDetailCountActive }}

    Active Authorized Service Center

    {{CmtmntOpsCtrl.AuthorizedServiceParnterDetailCountInActive}}

    Registered Authorized Service Center

    {{CmtmntOpsCtrl.CommitmentInterestedUserCount}}

    Commitment Interested Users

    {{CmtmntOpsCtrl.CommittedUserCount}}

    Committed Users

    UserIdNameStatusMobile No.
    Commitment Calls
    Commitment Status
    Not Interested ReasonCommitment RemarkCommitment Creation DateCommitment FollowUp DateSourceRegistration DateActivation DateReporting ToCityStatePinCodeRoleUser TypeIsAuthorized PartnerAdhar cardPancardCriminal CheckPrimeOne Job Done
    Customer Rating
    BrandProduct ServicingSkillLast ActivationWork LocationTools
    \\\"image\\\" {{user.FirstName}} {{user.LastName}}
    \\\"image\\\" \\\"image\\\"
    = 4}\\\">{{user.CustomerRating}}
    {{user.BrandName}}
    {{user.ProductName}}
    {{user.SkillSet.toString()}}
    {{user.LastLocationUpdateTime | date:\\'dd/MMM/yy hh:mm\\'}}
    {{user.Locations.toString()}}
    {{user.Tools.toString()}}
    Showing {{CmtmntOpsCtrl.techpageindexCount}} to {{CmtmntOpsCtrl.usersLength}} of {{CmtmntOpsCtrl.totalTalentPoolCount}} entries
    \");\n$templateCache.put(\"app/ComplaintCaseList/ComplaintCaseList.html\",\"

    All Team List

    \\\"image\\\"

    User Name: {{fixedUsers.UserName}}

    User Id: {{fixedUsers.UserId}}

    Role: {{fixedUsers.UserRole}}

    Capacity Open Task: {{fixedUsers.CapacityOpenTask}}

    Capacity Closed Task: {{fixedUsers.CapacityClosedTask}}

    Case IDTechnician IDTicket IDIssue Related ToActual IssueIssue DescriptionCase Resolution RemarkCase Raised OnCase SourceCase Created ByAssigned TeamAssigned DepartmentCase Status
    {{TeamDetail.CaseId}}{{TeamDetail.ConsumerId}}{{TeamDetail.ConsumerId}}{{TeamDetail.ConsumerId}}{{TeamDetail.IssueRelatedTo}}{{TeamDetail.ActualIssue}}{{ showFullText ? TeamDetail.IssueDescription : (TeamDetail.IssueDescription | limitTo : 50) }}{{ showFullText ? \\'\\' : \\'...\\' }}{{TeamDetail.CaseResolution}}{{TeamDetail.CaseRaisedOn | date:\\'dd/MM/yy hh:mm a\\'}}{{TeamDetail.CaseSource}}{{TeamDetail.CaseCreatedBy}}{{TeamDetail.AssignedToUserName}} ({{TeamDetail.AssignedTo}}){{TeamDetail.CaseOwnerName}} ({{TeamDetail.CaseOwnerRole}})
     {{complaintCtrl.pageindexCount}} - {{complaintCtrl.bGVerifyListLength}} of {{totalTableUsersBG}}
    \");\n$templateCache.put(\"app/ConsentOfUser/ConsentOfUser.html\",\"
    1. Home
    2. Consent Of User

    User Consent


    Open

    Closed

    {{ConsentOfUserCntrl.ShiftData.CampaignName}}

    {{ConsentOfUserCntrl.ShiftData.CampaignDescription}}

    {{ConsentOfUserCntrl.ShiftData.CampaignDescription}}

    {{ConsentOfUserCntrl.ShiftData.Location}}

    {{ConsentOfUserCntrl.ShiftData.ShiftStartDate | date:\\'dd/MM/yyyy\\'}}

    {{ConsentOfUserCntrl.ShiftData.ShiftEndDate | date:\\'dd/MM/yyyy\\'}}

    {{ConsentOfUserCntrl.ShiftData.RequiredStaffCount}}

    {{ConsentOfUserCntrl.ShiftData.AppliedCount}}

    \");\n$templateCache.put(\"app/ConsumerForm/ConsumerForm.html\",\"

    Hello , {{consumerform.ticketDetails.ConusmerName}}

    {{consumerform.ticketDetails.ConsumerContact}}

    Please enter address line 1 Your address line 1 cannot be longer than 50 characters
    Please enter address line 2 Your address line 2 cannot be longer than 50 characters
    Please select state
    Please select city
    Please enter pincode Please enter valid pincode
    Please select appointment slot
    \");\n$templateCache.put(\"app/ConsumerList/ConsumerList.html\",\"
    • {{skills}}
    • {{certificate}}
    • {{tools}}
    • {{role}}
    {{ConsumerListCtrl.consumerCount.TotalRecords}}

    Total Customer

    {{ConsumerListCtrl.consumerCount.VoltasConsumerCount}}

    Voltas

    {{ConsumerListCtrl.consumerCount.SamsungConsumerCount}}

    Samsung

    {{ConsumerListCtrl.consumerCount.BluestarConsumerCount}}

    Bluestar

    {{ConsumerListCtrl.consumerCount.ACConsumerCount}}

    Air Conditioner

    {{ConsumerListCtrl.consumerCount.GeyserConsumerCount}}

    Water Heater

    {{ConsumerListCtrl.consumerCount.MobileConsumerCount}}

    Mobile

    {{ConsumerListCtrl.consumerCount.TelevisionConsumerCount}}

    Television

    Customer IDCustomer NameAddressCityStatePincodeBrandsProductsDate
    {{consumerData.ConsumerId}}{{consumerData.ConsumerName}}{{consumerData.ConsumerAddress | limitTo : 40}}{{consumerData.ConsumerCity}}{{consumerData.ConsumerState}}{{consumerData.ConsumerPincode}}{{consumerData.Brands}}{{consumerData.Products}}{{consumerData.Date}}
    ProductIdProductBrandProduct GroupProduct ModelProduct Serial NumberDate
    {{brands.ProductId}}{{brands.Product}}{{brands.Brand}}{{brands.ProductGroup}}{{brands.ProductModel}}{{brands.ProductSerialNumber}}{{brands.Date}}
     {{ConsumerListCtrl.cuPageindexCount}} - {{ConsumerListCtrl.customerListLenth}} of {{totalCustomers}}
    Customer Filters
    Clear
    \");\n$templateCache.put(\"app/ConsumerLogin/consumerlogin.html\",\"

    Login

    Please enter mobile number. Please enter a valid 10-digit mobile number.

    OTP Verification

    Please enter the OTP.
    OTP should be exactly 4 digits.

    You can Resend Code in 00:{{countDown}}

    Basic Info

    Name is required.
    Location is required.

    Copyright MyMobiforce © 2025

    \");\n$templateCache.put(\"app/Confirm Account/confirm_account.html\",\"
    \\\"image\\\"

    Almost there !

    We need to confirm your email address.


    To complete your registration, please click the link in the email we just sent you, also look in your spam folder, you never know


    Note: Please use your email as username.

    if you don\\'t recieve anything 5 minutes, click here for us to resend the confirmation or you can submit a support requestto let us know


    Back to Home

    Copyright MyMobiforce © 2025


    \");\n$templateCache.put(\"app/ConsumerQuery/ConsumerQuery.html\",\"
    1. Home
    2. Counsumer query
    Ticket Details
    Ticket IDSource Ticket IDStatusConsumer ContactAddressCreated OnAppointment DateVisit StatusPlanned Closure DateIssue IdentifiedAction
    {{ticketData.MMFTicketId}}{{ticketData.SoruceTicketId}}{{ticketData.Status}}{{ticketData.ConsumerContact}}{{ticketData.Address}}{{ticketData.TicketCreateDate}}{{ticketData.AppointmentDate}}{{ticketData.VisitStatus}}{{ticketData.PlannedClosureDate}}{{ticketData.IssueIdentified}}

    No Ticket Found

    • {{ timeline.activity}}
      {{timeline.userName}} {{timeline.dateTime}}
      {{ timeline.activity}}
      {{timeline.userName}} {{ timeline.EventDateTime | date:\\'dd/MM/yyyy hh:mm a\\' }}
      {{chat.UserName}}
      {{chat.MessageTime | date:\\'dd/MMM/yy h:mm:ss a\\'}}
      {{chat.Message}} \\\"image-1\\\" {{chat.AttachmentLink}}
    • \\\"User
      {{case.strQueryBy}} {{case.dateQueryOn | date:\\'dd/MM/yyyy hh:mm a\\' }}

      {{case.strQuery}}

    • \\\"User
      {{case.dateResponseOn | date:\\'dd/MM/yyyy hh:mm a\\' }} {{case.strResponseBy}}

      {{case.strResponse}}

    \");\n$templateCache.put(\"app/Customer Card View/customer_Card_view.html\",\"

    Customer

    1. Home
    2. Customer


    \\\"image\\\"

    ,

    Point Of Contact :-


    Total Jobs New Jobs
    Approved Jobs Completed Jobs
    \");\n$templateCache.put(\"app/Customer Card View/dirPagination.tpl.html\",\"\");\n$templateCache.put(\"app/Customer Form Creation/customer_form_creation.html\",\"
    1. Home
    2. Customer
    3. Create Customer
    Customer Information
    Please enter company name Please enter Space, dot, hypen and only alphanumeric. Company name cannot be longer than 50 characters
    Please enter company url Please enter valid url
    Please enter valid GST number
    Please enter description Description should not be greater than 250 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Customer Location {{$index+1}}
    Please enter only alphanumeric with space, hyphen, slace, comma
    Please select Region
    Please select Region
    Please enter only alphanumeric with space, hyphen, slace, comma
    Please select SubRegion
    Please enter 6 digit number
    Point of Contact {{$index+1}}
    Your first name should only contain alphabets with space
    Please enter valid email
    = 48 && event.charCode <=57\\\" ng-model-options=\\\"{ allowInvalid: true}\\\">
    Please enter valid number
    Your first name should only contain alphabets with space
    =48 && event.charCode <=57\\\" maxlength=\\\"10\\\" ng-model-options=\\\"{ allowInvalid: true}\\\">
    Please enter valid mobile number
    \");\n$templateCache.put(\"app/Customer Form Creation Latest/customer_form_creation_Latest.html\",\"
    1. Home
    2. Customer
    3. Create Customer
    1

    Customer Information

    2

    Customer Location

    3

    Point of Contact

    Customer Information
    Please enter company name Please enter Space, dot, hypen and only alphanumeric. Company name cannot be longer than 50 characters
    Please enter company url Please enter valid url
    Please enter valid GST number
    Please enter description Description should not be greater than 250 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Customer Location {{$index+1}}
    Please enter only alphanumeric with space, hyphen, slace, comma
    Please select Region
    Please select Region
    Please enter only alphanumeric with space, hyphen, slace, comma
    Please select SubRegion
    Please enter 6 digit number
    Point of Contact {{$index+1}}
    Your first name should only contain alphabets with space
    Please enter valid email
    = 48 && event.charCode <=57\\\" ng-model-options=\\\"{ allowInvalid: true}\\\">
    Please enter valid number
    Your first name should only contain alphabets with space
    =48 && event.charCode <=57\\\" maxlength=\\\"10\\\" ng-model-options=\\\"{ allowInvalid: true}\\\">
    Please enter valid mobile number
    \");\n$templateCache.put(\"app/CustomerCRM360/CustomerCRM360.html\",\"
    1. Home
    2. Customer Profile
    \\\"Avatar\\\"
    \\\"Avatar\\\"

    {{ctrlCRM360.consumerData.strConsumerTitle}} {{ctrlCRM360.consumerData.strConsumerFirstName}} {{ctrlCRM360.consumerData.strConsumerLastName}}

    {{ctrlCRM360.consumerData.strConsumerId}}


    {{ctrlCRM360.consumerData.strConsumerType}}


    Personal Details
    Name :
    {{ctrlCRM360.consumerData.strConsumerTitle}} {{ctrlCRM360.consumerData.strConsumerFirstName}} {{ctrlCRM360.consumerData.strConsumerLastName}}
    Contact No. :
    {{ctrlCRM360.consumerData.strConsumerContact}}
    Alternate Contact :
    {{ctrlCRM360.consumerData.strConsumerAlternateContact}}
    Email :
    {{ctrlCRM360.consumerData.strPersonalEmail}}
    Address Type :
    {{ctrlCRM360.consumerAddressData.strAddressType}}
    Address :
    {{ctrlCRM360.consumerAddressData.strAddress1}} {{ctrlCRM360.consumerAddressData.strAddress2}}
    State :
    {{ctrlCRM360.consumerAddressData.strState}}
    City :
    {{ctrlCRM360.consumerAddressData.strCity}}
    Pincode :
    {{ctrlCRM360.consumerAddressData.strPostalCode}}
    Consumer Type :
    {{ctrlCRM360.consumerData.strConsumerType}}
    Business Type :
    {{ctrlCRM360.consumerData.strBusinessType}}
    Status :
    {{ctrlCRM360.consumerData.strConsumerStatus}}
    Registered On :
    {{ctrlCRM360.consumerData.dateRegisteredOn | date:\\'dd/MM/yyyy hh:mm a\\'}}

    Quick Actions

    \\\"Avatar\\\"
    Crompton Geyser - 25ltr
    Warranty Expiring in 29 days
    \\\"Avatar\\\"
    Samsung LED - 52 Inch
    Warranty Expiring in 6 days
    \\\"Avatar\\\"
    Samsung Washing Machin...
    Warranty Expiring in 4 days
    {{ctrlCRM360.consumerAssetDataLength}}

    Assets

    12

    Orders

    {{ctrlCRM360.ticketLength}}

    Ticket

    7,000

    Payments Amounts

    \\\"Avatar\\\"

    Complaint and Service Activity

    Complaint #12345

    Switch is not working properly after installation. Asset: SwitchLink 5X Switch.
    Logged by: Neeraj Kumar

    9:00 AM

    Service Booked

    Service appointment booked.
    Service Date: 15th July 2024
    Service Type: Regular Maintenance
    Charges: ₹1200

    10:00 AM

    Payment Completed

    Payment for the service has been received.
    Payment Mode: Credit Card
    Transaction ID: TXN9876543210
    Amount: ₹1200

    10:15 AM

    Technician Assigned

    Technician Yogesh Sinha assigned to address the service request.
    Tools Required: Coolant Tester, Thermometer, Screwdriver Set.

    10:30 AM

    Service Performed

    Technician replaced faulty parts and refilled coolant.
    Used Assets: Replacement Cooling Coil, Coolant (Type R410a).
    Additional Charges: ₹500 for replacement parts.

    12:30 PM

    Additional Payment Required

    Additional payment processed for parts replacement.
    Payment Mode: UPI
    Transaction ID: TXN5678901234
    Amount: ₹500

    1:00 PM

    Complaint Resolved

    Complaint marked as resolved. Cooling restored to optimal levels.
    Feedback: Customer rated 5/5 for service.

    3:00 PM
    Quick Questions

    1. My AC making strange noises
    2. Why is my air conditioner increasing my energy bills
    3. my air conditioner leaking water
    4. Why does my air conditioner keep turning on and off frequently

    Here is the attached PDF file:

    sample.pdf

    There could be several reasons why your air conditioner is not cooling effectively:
    1. Dirty Air Filter: A dirty air filter can block airflow, reducing the AC\\'s efficiency. Check and replace the air filter if it\\'s clogged.
    2. Low Refrigerant Levels: If the refrigerant levels are low, it could indicate a leak. Refrigerant is crucial for cooling, so low levels can affect performance. A professional should check and recharge the refrigerant.
    3. Thermostat Issues: Ensure your thermostat is set correctly and functioning properly. If it’s malfunctioning, it might not be signaling the AC to cool.
    4. Clogged Condenser Unit: Debris or dirt around the outdoor condenser unit can affect cooling efficiency. Clean the unit and remove any obstructions.

    It\\'s recommended to schedule maintenance for your air conditioner at least once a year, ideally before the cooling season begins. Regular maintenance can help ensure your AC operates efficiently, prolong its lifespan, and prevent unexpected breakdowns. During a maintenance visit, a technician will:
    1. Clean or Replace the Air Filter: A clean air filter is crucial for proper airflow and efficiency.
    2. Check Refrigerant Levels: Ensuring the refrigerant is at the correct level is essential for effective cooling.
    3. Check Thermostat Settings: Ensuring the thermostat is calibrated correctly will maintain your desired temperature.
    4. Inspect Electrical Components: Checking wiring, capacitors, and other electrical components can prevent potential electrical issues.
    5. Lubricate Moving Parts: Proper lubrication of moving parts reduces friction and wear.

    If your refrigerator is making loud or unusual noises, consider the following steps to diagnose and address the issue:
    1. Check the Leveling: Ensure the refrigerator is level. If it\\'s not, vibrations may cause noise. Adjust the leveling legs at the bottom of the refrigerator if needed.
    2. Inspect the Condenser Fan: A noisy condenser fan could indicate dirt buildup or a malfunctioning fan motor. Clean any debris around the fan and check if it spins freely. If the noise persists, you may need to replace the fan motor.
    3. Look at the Evaporator Fan: Inside the freezer, the evaporator fan can sometimes cause noise if it\\'s faulty or obstructed by ice. Defrosting the freezer might help, but if the noise continues, the fan might need replacement.
    4. Check the Compressor: A loud compressor could indicate it\\'s struggling or failing. While compressors do make some noise, any sudden changes or excessive noise should be checked by a professional technician.
    If the noise persists after checking these areas, it\\'s best to call a professional technician to diagnose and repair the issue.

    For optimal performance and hygiene, it\\'s recommended to clean your refrigerator every 3-4 months. Here’s what you should focus on:
    1. Interior Shelves and Drawers: Remove all food items and wipe down the shelves and drawers with a mixture of mild soap and warm water. Rinse and dry them thoroughly before placing them back.
    2. Door Seals: Clean the door gaskets with a mixture of baking soda and water to remove dirt and ensure a good seal. This prevents cool air from escaping.
    3. Condenser Coils: Dust and vacuum the condenser coils at least twice a year. This is especially important for efficient operation and can help prevent the refrigerator from overheating.
    4. Exterior: Wipe down the exterior of the refrigerator with a mild detergent and water. Use a stainless steel cleaner if your refrigerator has a stainless steel finish.
    5. Drip Pan: Check and clean the drip pan located underneath the refrigerator, if applicable. Ensure it is clean to prevent odors and mold growth.
    Regular cleaning helps maintain the efficiency of your refrigerator and extends its lifespan.

    There could be several reasons why your air conditioner is not cooling effectively:
    1. Dirty Air Filter: A dirty air filter can block airflow, reducing the AC\\'s efficiency. Check and replace the air filter if it\\'s clogged.
    2. Low Refrigerant Levels: If the refrigerant levels are low, it could indicate a leak. Refrigerant is crucial for cooling, so low levels can affect performance. A professional should check and recharge the refrigerant.
    3. Thermostat Issues: Ensure your thermostat is set correctly and functioning properly. If it’s malfunctioning, it might not be signaling the AC to cool.
    4. Clogged Condenser Unit: Debris or dirt around the outdoor condenser unit can affect cooling efficiency. Clean the unit and remove any obstructions.

    It\\'s recommended to schedule maintenance for your air conditioner at least once a year, ideally before the cooling season begins. Regular maintenance can help ensure your AC operates efficiently, prolong its lifespan, and prevent unexpected breakdowns. During a maintenance visit, a technician will:
    1. Clean or Replace the Air Filter: A clean air filter is crucial for proper airflow and efficiency.
    2. Check Refrigerant Levels: Ensuring the refrigerant is at the correct level is essential for effective cooling.
    3. Check Thermostat Settings: Ensuring the thermostat is calibrated correctly will maintain your desired temperature.
    4. Inspect Electrical Components: Checking wiring, capacitors, and other electrical components can prevent potential electrical issues.
    5. Lubricate Moving Parts: Proper lubrication of moving parts reduces friction and wear.

    If your refrigerator is making loud or unusual noises, consider the following steps to diagnose and address the issue:
    1. Check the Leveling: Ensure the refrigerator is level. If it\\'s not, vibrations may cause noise. Adjust the leveling legs at the bottom of the refrigerator if needed.
    2. Inspect the Condenser Fan: A noisy condenser fan could indicate dirt buildup or a malfunctioning fan motor. Clean any debris around the fan and check if it spins freely. If the noise persists, you may need to replace the fan motor.
    3. Look at the Evaporator Fan: Inside the freezer, the evaporator fan can sometimes cause noise if it\\'s faulty or obstructed by ice. Defrosting the freezer might help, but if the noise continues, the fan might need replacement.
    4. Check the Compressor: A loud compressor could indicate it\\'s struggling or failing. While compressors do make some noise, any sudden changes or excessive noise should be checked by a professional technician.
    If the noise persists after checking these areas, it\\'s best to call a professional technician to diagnose and repair the issue.

    For optimal performance and hygiene, it\\'s recommended to clean your refrigerator every 3-4 months. Here’s what you should focus on:
    1. Interior Shelves and Drawers: Remove all food items and wipe down the shelves and drawers with a mixture of mild soap and warm water. Rinse and dry them thoroughly before placing them back.
    2. Door Seals: Clean the door gaskets with a mixture of baking soda and water to remove dirt and ensure a good seal. This prevents cool air from escaping.
    3. Condenser Coils: Dust and vacuum the condenser coils at least twice a year. This is especially important for efficient operation and can help prevent the refrigerator from overheating.
    4. Exterior: Wipe down the exterior of the refrigerator with a mild detergent and water. Use a stainless steel cleaner if your refrigerator has a stainless steel finish.
    5. Drip Pan: Check and clean the drip pan located underneath the refrigerator, if applicable. Ensure it is clean to prevent odors and mold growth.
    Regular cleaning helps maintain the efficiency of your refrigerator and extends its lifespan.
    Assets TypeBrandProduct GroupAssets Purchase OnModel NumberSerial NumberDealer NameDealer Contact No.Warranty Expiry DateWarranty Purchase DateWarranty StatusAction
    {{ assets.AssetType}}{{ assets.Brand}}{{ assets.ProductGroup}}{{ assets.AssetPurchaseDate | date:\\'dd/MM/yyyy\\'}}{{ assets.ModelNumber}}{{ assets.SerialNumber}}{{ assets.strDealerName}}{{ assets.strDealerContact}}{{ assets.WarrantyExpiryDate | date:\\'dd/MM/yyyy\\'}}{{ assets.WarrantyPurchaseDate | date:\\'dd/MM/yyyy\\'}}{{ assets.AssetWarranty}}
    Service Management
    Service IDService DetailsBrandDate & TimeTechnicianStatusActions
    A40000002388
    \\\"Avatar\\\"
    Voltas Window AC
    Installation
    \\\"Avatar\\\"20 July 2020 4:20PMN/ARequested
    A40000002388
    \\\"Avatar\\\"
    Refrigerator
    MDF786
    \\\"Avatar\\\"20 July 2020 4:20PMRohit KumarCancelled
    A40000002388
    \\\"Avatar\\\"
    Air Purifier
    MDF786
    \\\"Avatar\\\"20 July 2020 4:20PMSunil YadavAssigned
    A40000002388
    \\\"Avatar\\\"
    Room Heater 240 Watt
    MDF786
    \\\"Avatar\\\"20 July 2020 4:20PMMohit ChauhanCompleted
    Order Management
    Purchased OnProduct DetailsBrandPriceWarrantyWarranty StatusActions
    10 July 2024
    \\\"Avatar\\\"
    Router
    RXR-500
    \\\"Avatar\\\"₹2,49910 days beforeExpired
    10 July 2024
    \\\"Avatar\\\"
    Port Switch
    SF1005LP
    \\\"Avatar\\\"₹2,699In 5 daysExpiring Soon
    10 September 2024
    \\\"Avatar\\\"
    15.6-inch HD LED LCD Screen...
    E5550
    \\\"Avatar\\\"₹8.80022 June 2024Under Warranty
    ActionCase NumberCall TypeCall SourceStatusBrand NameProduct NameDefect DescriptionOpened DateClosed Date
    {{ticketData.TicketId}}{{ticketData.CallType}}{{ticketData.CallSource}}{{ticketData.TicketStatus}}{{ticketData.BrandName}}{{ticketData.ProductName}}{{ticketData.DefectDescription}} {{ticketData.CreatedOn}} {{ticketData.CompletedOn}}
    Payments
    Transaction IDDate & TimeService/ Product DetailsAmount PaidPartner AmountPayment ViaStatusActions
    TRNS87907610 Jul 2024 | 5:20 PM
    \\\"Avatar\\\"
    Acer LiteBook X
    Installation
    ₹820₹420Net BankingRefund Pending
    TRNS78352419 Apr 2024 | 4:58 PM
    \\\"Avatar\\\"
    D-Link WaveX Router
    Installation
    ₹999₹899Debit CardFailed
    TRNS09786214 Apr 2023 | 2:16 PM
    \\\"Avatar\\\"
    SwitchLink 5X
    Breakdown Request
    ₹950₹650UPICompleted
    ActionUser IDService Center NameAddressServing LocationContact InfoRegionSub-RegionBrandsCategoryProductsSkillsCreated On
    {{servicecenterData.UserId}}{{servicecenterData.UserId}}{{servicecenterData.ServiceCenterName}}{{servicecenterData.Address}}
    {{servicecenterData.ServiceAreaList.toString()}}
    {{servicecenterData.ContactInfo}}
    {{servicecenterData.strListRegion.toString()}}
    {{servicecenterData.strListSubRegion.toString()}}
    {{servicecenterData.Brands}}{{servicecenterData.ServiceCentreType}}
    {{servicecenterData.ListProducts.toString()}}
    {{servicecenterData.Products.toString()}}
    {{servicecenterData.CreatedOn | date : \\'dd/MM/yyyy hh:mm a\\'}}
    ActionPart IDNameSKU IDBrandPart GroupPart Sub GroupManufacturerModel NumberHSNCodeIs ReturnableService Center Price (₹)Dealer Price (₹)Dealer Customer Price (₹)Customer Price (₹)Warehouse Price (₹)IGST (%)CGST(%)SGST(%)
    {{inventoryList.MMFPartId}}{{inventoryList.PartName}}{{inventoryList.SKUId}}{{inventoryList.PartBrand}}{{inventoryList.PartCategoryGroup}}{{partsubgroup}}{{inventoryList.Manufacturer}}{{inventoryList.ModelNumber}}{{inventoryList.HSNCode}}Yes No{{inventoryList.PartDiscountedPrice}}{{inventoryList.PartDealerPrice}}{{inventoryList.PartDealerCustomerPrice}}{{inventoryList.PartCustomerPrice}}{{inventoryList.PartWareHousePrice}}{{inventoryList.dIGSTTax}}{{inventoryList.dCGSTTax}}{{inventoryList.dSGSTTax}}
     {{ctrlCRM360.countdpageindexCount}} - {{ctrlCRM360.myStockListLength}} of {{totalInventory}}
    Bill IDService Center InfoConsumer InfoConsumer Contact No.Total AmountTotal GST Amount
    {{totalbilldetails.BillId }}{{totalbilldetails.ServiceCentreName }} ( {{ totalbilldetails.ServiceCentreUserId }} ){{totalbilldetails.ConsumerName}} ( {{totalbilldetails.ConsumerId}} ){{totalbilldetails.ConsumerContact }}{{totalbilldetails.BillTotalAmount }}{{totalbilldetails.TotalGSTAmount }}

    Bill Id - {{ctrlCRM360.PartDetails.BillId }}

    PartQuantityPrice (₹)GSTAmountTotal (₹)
    {{itemdetails.PartName}}{{itemdetails.Quantity}}{{itemdetails.PartPrice}}{{itemdetails.GSTAmount}}{{itemdetails.PartTotalPrice}}
    Total Amount (₹){{ctrlCRM360.PartDetails.BillTotalAmount}}
    \");\n$templateCache.put(\"app/Customer Profile/Customer_profile.html\",\"

    Customer Profile

    1. Home
    2. Customer Profile
    \\\"profile\\\"

    Id : {{customerProfile.customerInfo.CustomerId}}

    Contract Date :



    ,
    P:
    Total Jobs New Jobs Assigned Jobs 0
    Approved Jobs Completed Jobs Rejected Jobs 0
    Cancelled Jobs 0
    First NameLast NameEmailMobile NumberOther Number
    Job TypePublished DateTechnicianStatusCompletion DateApproved Date
    \");\n$templateCache.put(\"app/CustomerDetailView/CustomerDetailView.html\",\"
    1. Home
    2. Customer
    3. {{custdetailview.CustomerFullDetail.CompanyName}}
    {{custdetailview.CustomerFullDetail.CompanyName}}
    \\\"image\\\"

    SLA Status

    Customer Details




    {{custdetailview.CustomerFullDetail.CompanyName}}

    {{custdetailview.CustomerFullDetail.CustomerId}}

    {{custdetailview.CustomerFullDetail.Description}}

    Ticket Status

    RegionSub-RegionCityPocMobile No.Address
    {{locations.Region}}{{locations.SubRegion}}{{locations.City}}{{locations.CustomerLocationContactModels[0].FirstName+\\\" \\\"+locations.CustomerLocationContactModels[0].LastName}}{{locations.CustomerLocationContactModels[0].Mobile?locations.CustomerLocationContactModels[0].Mobile:\\'NA\\'}}{{locations.Address1+\\\" \\\"+locations.Address2}}
    TicketIdJob TypeSub RegionCityAddressDateAgeStatus
    {{tickets.TicketId}}{{tickets.JobType}}{{tickets.SubRegion}}{{tickets.City}}{{tickets.Address1+\\\" \\\"+tickets.Address2}}{{tickets.TAT}}{{tickets.TicketStatus}}
    \");\n$templateCache.put(\"app/CustomerCRMList/CustomerCRMList.html\",\"
    1. Home
    2. Call Booking
    Please enter a valid 10-digit consumer contact.
    Consumer Details
    Create CaseConsumer IDAccount NameContact NumberAlternate Consumer No.EmailAccount TypeConsumer TypeAddressCityStatePinCodeAddress Type
    {{customercrmlistctrl.consumerData.ConsumerId}}{{customercrmlistctrl.consumerData.ConsumerFirstName}} {{customercrmlistctrl.consumerData.ConsumerLastName}}{{customercrmlistctrl.consumerData.ConsumerContact}}{{customercrmlistctrl.consumerData.ConsumerAlternateContact}}{{customercrmlistctrl.consumerData.PersonalEmail}}{{customercrmlistctrl.consumerData.ConsumerAccountType}}{{customercrmlistctrl.consumerData.ConsumerType}}{{customercrmlistctrl.consumerAddress.strAddress1}}, {{customercrmlistctrl.consumerAddress.strAddress2}}{{customercrmlistctrl.consumerAddress.strCity}}{{customercrmlistctrl.consumerAddress.strState}}{{customercrmlistctrl.consumerAddress.strPostalCode}}{{customercrmlistctrl.consumerAddress.strAddressType}}

    No Account Found

    Assets Details
    Create CaseAssets TypeBrandProduct GroupAssets Purchase OnModel NumberSerial NumberWarranty Expiry DateWarranty Purchase DateWarranty Status
    {{ assets.AssetType}}{{ assets.Brand}}{{ assets.ProductGroup}}{{ assets.AssetPurchaseDate | date:\\'dd/MM/yyyy\\'}}{{ assets.ModelNumber}}{{ assets.SerialNumber}}{{ assets.WarrantyExpiryDate | date:\\'dd/MM/yyyy\\'}}{{ assets.WarrantyPurchaseDate | date:\\'dd/MM/yyyy\\'}}{{ assets.AssetWarranty}}
    Cases Details
    ActionCall IDCall TypeCall SourceStatusSub StatusReplacement StatusGasCharging Request IDGasCharging StatusAssigneeDealer NameDealer Contact No.Contact InfoBrand NameProduct NamePart Order StatusModel NumberDate of PurchaseDefect DescriptionWarranty StatusAppointmentOpened DateClosed DateAppointment TATCompletion TATLocation Type
    {{ticketData.TicketId}}{{ticketData.CallType}}{{ticketData.CallSource}}{{ticketData.TicketStatus}}{{ticketData.SubStatus}}{{ticketData.ProductReplacementStatus}}{{ticketData.ServiceCenterName}}{{ticketData.strDealerName}}{{ticketData.strDealerContact}}{{ticketData.ContactInfo}}{{ticketData.BrandName}}{{ticketData.ProductName}}{{ticketData.PartOrderStatus}}{{ticketData.ModelNumber}}{{ticketData.ProductPurchaseDate | date:\\'yyyy-MM-dd\\'}}{{ticketData.DefectDescription}}{{ticketData.WarrantyStatus}}{{ticketData.AppointmentTime | date:\\'yyyy-MM-dd hh:mm:ss a\\'}}{{ticketData.CreatedOn}}{{ticketData.CompletedOn}}{{ticketData.dAppointmentTAT}}{{ticketData.dCompletionTAT}} Local UpCountry
    Create Consumer
    Please select a Title.
    Please enter a First Name.
    Please enter a Last Name.
    Please enter a Contact No.
    Please enter a valid email
    Please select a consumer type
    Please select a Address Type
    Please enter address line 1
    Please enter address line 2
    Select an Option

    Fetch State & City
    =48 && event.charCode <=57\\\">
    Please enter pincode Please enter 6 digit number
    Please Select State.
    Please Select City.

    Fetch Pincode
    Please Select State.
    Please Select City.
    Please Select Area.
    Please Select Pincode.
    \");\n$templateCache.put(\"app/CustomerDetailViewLatest/CustomerDetailViewLatest.html\",\"

    Customer Details View

    Customer Details

    {{custdetailviewLatest.CustomerFullDetail.CompanyName}}
    {{custdetailviewLatest.CustomerFullDetail.CustomerId}}
    {{custdetailviewLatest.CustomerFullDetail.Description}}

    SLA Status

    Ticket Status

    {{name}}

    {{custdetailviewLatest.CustomerFullDetail.SkillSet}}

    Customer Details

    {{custdetailviewLatest.CustomerFullDetail.CompanyName}}
    {{custdetailviewLatest.CustomerFullDetail.CustomerId}}
    BL034321
    NO
    {{custdetailviewLatest.CustomerFullDetail.Description}}

    SLA Status

    Ticket Status

    {{name}}

    {{custdetailviewLatest.CustomerFullDetail.SkillSet}}

    \\\"image\\\"

    {{name.FirstName +\\\" \\\"+ name.LastName}}

    {{name.Mobile}}

    Email-id

    {{name.Email}}

    Other No

    {{name.OtherMobile}}

    Serving Location

    {{name}}

    \\\"image\\\"

    {{custdetailviewLatest.CustomerFullDetail.CompanyName}}

    {{name.Mobile}}

    Email-id

    {{name.Email}}

    Other No

    {{name.OtherMobile}}

    Address

    C22 A sector 57, Noida 201301

    Address

    C22 A sector 57, Noida 201301

    {{name}}

    Project NameProject IdDescriptionProject StatusStartDateEndDate
    {{customer.ProjectName}}{{customer.ProjectId}}{{customer.Description}}{{customer.ProjectStatus}}{{customer.StartDate | date}}{{customer.EndDate | date}}
    RegionSub-RegionCityPocMobile No.Address
    {{locations.Region}}{{locations.SubRegion}}{{locations.City}}{{locations.CustomerLocationContactModels[0].FirstName+\\\" \\\"+locations.CustomerLocationContactModels[0].LastName}}{{locations.CustomerLocationContactModels[0].Mobile?locations.CustomerLocationContactModels[0].Mobile:\\'NA\\'}}{{locations.Address1+\\\" \\\"+locations.Address2}}
    ActionAsset IdAsset NameCategoryProduct NameSite NameCustomerLocationIdCustomerNameCreatedOnUpdatedOnRegionSubRegionAddressLatitudeLongitudePincode
    {{AssetList.AssetId}}{{AssetList.AssetName}}{{AssetList.Category}}{{AssetList.ProductName}}{{AssetList.SiteName}}{{AssetList.CustomerLocationId}}{{AssetList.CustomerName}}{{AssetList.CreatedOn | date: custdetailviewLatest.CustomDateformat}}{{AssetList.UpdatedOn | date: custdetailviewLatest.CustomDateformat}}{{AssetList.Region}}{{AssetList.SubRegion}}{{AssetList.Address1}} {{AssetList.Address2}}{{AssetList.Latitude}}{{AssetList.Longitude}}{{AssetList.Pincode}}

    Asset Name :- {{AssetList.AssetName}}

     {{AssetList.AssetId}}
    {{AssetList.CustomerName}}
    Customer Location ID {{AssetList.CustomerLocationId}}

    Address :-

    {{AssetList.Address1}}
    {{AssetList.Address2}}
    {{AssetList.string}}
    {{AssetList.Region}}
    TicketIdProject NameTemplateSkill SetStart TimeStateUser NameAddressAgeStatus
    {{tickets.TicketId}}{{tickets.ProjectName}}{{tickets.Template}}{{tickets.SkillSet}}{{tickets.StartTime | date: custdetailviewLatest.CustomDateformat}}{{tickets.State}}{{tickets.UserName}}{{tickets.Address1+\\\" \\\"+tickets.Address2}}{{tickets.TAT}}{{tickets.TicketStatus}}
    SelectSerial NumberProductProduct CategoryProduct WarrantyInvoice DateInvoice No.Invoice v..
    BS-AP250RAPAir PurifierBluestar Air PurifierInWarranty15-01-2023INV-15-01-0097,776
    BS-AP250RAPAir PurifierBluestar Air PurifierInWarranty15-01-2023INV-15-01-0097,776
    BS-AP250RAPAir PurifierBluestar Air PurifierInWarranty15-01-2023INV-15-01-0097,776
    BS-AP300DAIAIR CONDITIONERSBluestar WindowInWarranty14-01-2023INV-14-01-0097,776
    BS-AP300DAIAIR CONDITIONERSBluestar WindowInWarranty14-01-2023INV-14-01-0097,776
    BS-AP420OANAIR CONDITIONERSBluestar Inverter SplitOut Of Warranty16-01-2023INV-16-01-0097,776
    BS-AP420OANWATER PURIFIERSAlkaline PurifiersOut Of Warranty19-01-2023INV-19-01-0097,776
    \\\"\\\"
    Modified on : 14/Jan/23 6:11:25 PM
    Admin

    Survey Link

    View More

    https://login.mymobiforce.com/Customer_Detail_View_Latest/C0000000012
    \\\"\\\"
    Modified on : 15/Jan/23 6:11:30 PM
    Admin

    How can I help you, sir

    View More

    https://login.mymobiforce.com/Customer_Detail_View_Latest/C0000000012
    \\\"\\\"
    Modified on : 15/Jan/23 6:15:45 PM
    Customer

    Actually, my Water Purifier not working properly, so could you please help me with that.

    \\\"\\\"
    Modified on : 16/Jan/23 6:11:33 AM
    Admin

    can you please send me the invoice, it will help full for me to give you solution

    View More

    https://login.mymobiforce.com/Customer_Detail_View_Latest/C0000000012
    \\\"\\\"
    Modified on : 16/Jan/23 7:11:35 AM
    Customer

    blue_star_invoice_29012023.pdf

    View More

    https://login.mymobiforce.com/Customer_Detail_View_Latest/C0000000012

    \");\n$templateCache.put(\"app/CustomerDetailList/CustomerDetailList.html\",\"
    1. Home
    2. Customer List
    \");\n$templateCache.put(\"app/CustomerNewLatest/CustomerNewLatest.html\",\"

    Customers

    \");\n$templateCache.put(\"app/CustomerNewLatest/CustomerProjectLatest.html\",\"
    1. Home
    2. Project list
    All projects assigned to this account
    ActiveRFLOS
    Created 14.08.2014
    Completion with: 48%
    \\\"image\\\" \\\"image\\\" \\\"image\\\" \\\"image\\\" \\\"image\\\" View Edit
    ActiveIWAN
    Created 11.08.2014
    Completion with: 28%
    \\\"image\\\" \\\"image\\\" \\\"image\\\" View Edit
    UnactiveFEASIBILITY
    Created 10.08.2014
    Completion with: 8%
    \\\"image\\\" \\\"image\\\" View Edit
    ActiveIWAN
    Created 22.07.2014
    Completion with: 83%
    \\\"image\\\" \\\"image\\\" \\\"image\\\" \\\"image\\\" View Edit
    ActiveIWAN
    Created 14.07.2014
    Completion with: 97%
    \\\"image\\\" View Edit
    ActiveFEASIBILITY
    Created 14.08.2014
    Completion with: 48%
    \\\"image\\\" \\\"image\\\" \\\"image\\\" \\\"image\\\" View Edit
    ActiveThere are many variations of passages
    Created 11.08.2014
    Completion with: 28%
    \\\"image\\\" \\\"image\\\" \\\"image\\\" View Edit
    UnactiveMany desktop publishing packages and web
    Created 10.08.2014
    Completion with: 8%
    \\\"image\\\" \\\"image\\\" View Edit
    ActiveLetraset sheets containing
    Created 22.07.2014
    Completion with: 83%
    \\\"image\\\" \\\"image\\\" \\\"image\\\" View Edit
    ActiveContrary to popular belief
    Created 14.07.2014
    Completion with: 97%
    \\\"image\\\" View Edit
    ActiveThere are many variations of passages
    Created 11.08.2014
    Completion with: 28%
    \\\"image\\\" \\\"image\\\" \\\"image\\\" View Edit
    \");\n$templateCache.put(\"app/CustomerNewLatest/Customer_Project_Detail_Latest.html\",\"
    1. Home
    2. Project detail

    Status:
    Active
    Start Date:
    26.04.2017
    Customer:
    Airtel
    Project Manager:
    Supervisor:
    End Date:
    Location:
    Gurgaon
    Point of Contact :
    Akshit Chauhan

    8375860288

    Completed:
    Project completed in 0%. Remaining close the project, sign a contract and invoice.
    Filters

    Job IDJob TypeTechnicianDurationStatus
    4 hrs

    Project description

    Project Skills



    \");\n$templateCache.put(\"app/Dashboard/Dashboard-small.html\",\"
    • {{UserDashboard.teamdata.jobsSummary.TotalJobs}}

      Total Jobs

    • ₹ {{UserDashboard.teamdata.paymentsSummary.TotalEarned}}

      Total Earning

    • 5

      Total Team

    Background Verified
    • {{VerificationDoc.DocumentName}}
    Skill Verified
    • {{skills.Skill}}
    \\\"profile\\\" \\\"profile\\\"

    {{UserDashboard.teamdata.userProfile.FirstName}} {{UserDashboard.teamdata.userProfile.LastName}}

    {{UserDashboard.teamdata.userProfile.Ratings.UserId}}

    ({{UserDashboard.teamdata.userProfile.Role}})

    • {{UserDashboard.TechnicianRating}}
    • Member Since {{UserDashboard.teamdata.userProfile.TechnicianActivationDate| date:\\'MMM dd, yyyy\\'}}
    {{UserDashboard.teamdata.userProfile.Address}}
    {{UserDashboard.teamdata.userProfile.State}}
    Jobs Summary

    {{UserDashboard.teamdata.jobsSummary.TotalJobs}}

    Total Jobs

    {{UserDashboard.teamdata.jobsSummary.Assignedjobs}}

    Assigned jobs

    {{UserDashboard.teamdata.jobsSummary.Completed}}

    Completed

    {{UserDashboard.teamdata.jobsSummary.Rejected}}

    Rejected

    {{UserDashboard.teamdata.jobsSummary.LeadAcceptance}} (%

    Lead Acceptance

    {{UserDashboard.teamdata.jobsSummary.CompletionSpeed}}

    Average Completion Speed

    {{UserDashboard.teamdata.jobsSummary.JobCompletionRate}} (%)

    Job Completion Rate

    {{UserDashboard.teamdata.jobsSummary.FirstResponseRate}} (%)

    First Response Time

    {{UserDashboard.teamdata.jobsSummary.AppointmentMetRate}} (%)

    Appointment Met Rate

    Payments Summary

    ₹ {{UserDashboard.teamdata.paymentsSummary.TotalEarned}}

    Total Earned

    ₹ {{UserDashboard.teamdata.paymentsSummary.TotalDueAmount}}

    Total Due Amount

    ₹ {{UserDashboard.teamdata.paymentsSummary.TotalPaid}}

    Total Paid

    ₹ {{UserDashboard.teamdata.paymentsSummary.TotalReject}}

    Total Reject

    ₹ {{UserDashboard.teamdata.paymentsSummary.TotalFailed}}

    Total Failed

    ₹ {{UserDashboard.teamdata.paymentsSummary.TotalInitial}}

    Total Initial

    ₹ {{UserDashboard.teamdata.paymentsSummary.TotalCollection}}

    Total Collection

    ₹ {{UserDashboard.teamdata.paymentsSummary.TotalService}}

    Total Service

    ₹ {{UserDashboard.teamdata.paymentsSummary.TotalHardware}}

    Total Hardware

    ₹ {{UserDashboard.teamdata.paymentsSummary.TotalBonus}}

    Total Bonus

    ₹ {{UserDashboard.teamdata.paymentsSummary.TotalPanelty}}

    Total Panelty

    ₹ {{UserDashboard.teamdata.paymentsSummary.TotalAllowance}}

    Total Allowance

    ₹ {{UserDashboard.teamdata.paymentsSummary.SecurityAmount}}

    Security Amount

    {{UserDashboard.teamdata.paymentsSummary.SecurityExpiryDate | date:\\'dd/MM/yy\\'}}

    Security Expiry Date

    {{UserDashboard.teamdata.paymentsSummary.SecurityDepositDate | date:\\'dd/MM/yy\\'}}

    ReCharge On

    Execution Summary

    {{UserDashboard.teamdata.executionSummary.AssignedNoAction}}

    Assigned No Action

    {{UserDashboard.teamdata.executionSummary.CCNAB}}

    CCNAB

    {{UserDashboard.teamdata.executionSummary.Cancelled}}

    Cancelled

    {{UserDashboard.teamdata.executionSummary.AppointmentBookedDay0}}

    Appointment Booked Day 0

    {{UserDashboard.teamdata.executionSummary.AppointmentBookedDay1}}

    Appointment Booked Day 1

    {{UserDashboard.teamdata.executionSummary.AppointmentBookedDay1Plus}}

    Appointment Booked Day1+

    {{UserDashboard.teamdata.executionSummary.AppointmentBreached}}

    Appointment Breached

    {{UserDashboard.teamdata.executionSummary.InTransit}}

    InTransit

    {{UserDashboard.teamdata.executionSummary.OnSite}}

    On Site

    {{UserDashboard.teamdata.executionSummary.OnHold}}

    On Hold

    Ratings

    {{UserDashboard.teamdata.userProfile.AverageRating.AverageRating}} average based on {{UserDashboard.teamdata.userProfile.AverageRating.totalCount}} reviews.


    5 star
    {{UserDashboard.AvgRating.FiveStar}}
    4 star
    {{UserDashboard.AvgRating.FourStar}}
    3 star
    {{UserDashboard.AvgRating.ThreeStar}}
    2 star
    {{UserDashboard.AvgRating.TwoStar}}
    1 star
    {{UserDashboard.AvgRating.OneStar}}
    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusCatagoryCertificate
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate}}{{skills.BrandList}}{{skills.Status}}

    Total Jobs

    Assigned Jobs

    Completed

    Approved

    Rejected

    ANA

    CCNAB

    Cancelled

    ABD0

    ABD1

    ABD1+

    ABR

    InTransit

    On Site

    On Hold

     {{UserDashboard.upageindexCount}} - {{UserDashboard.userListLength}} of {{totalUsers}}
    Ticket IDTicket TypeAccountLocationAssigned DateTATJobs StatusCreation DateStatus Date
    {{workList.TicketID}}{{workList.TicketType}}{{workList.Account}}{{workList.Location}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.TAT}}{{workList.JobsStatus}}{{workList.JobsCreationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.InTransitDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnSiteDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AppointmentBookedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CompletionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnHoldDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.RejectionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CancellationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.ApprovedDate | date:\\'dd/MM/yy hh:mm a\\'}}
     {{UserDashboard.fpageindexCount}} - {{UserDashboard.financeListLength}} of {{totalFinList}}
    Total Base PriceTotal Payable AmountTotal CommissionTotal ServiceTotal HardwareTotal BonusTotal PaneltyTotal CollectionTotal AwallanceCashfree IdFailed ReasonStatus
    {{financeList.TotalBasePrice}}{{financeList.TotalPayableAmount}}{{financeList.TotalCommission}}{{financeList.TotalService}}{{financeList.TotalHardware}}{{financeList.TotalBonus}}{{financeList.TotalPanelty}}{{financeList.TotalCollection}}{{financeList.TotalAwallance}}{{financeList.CashfreeId}}{{financeList.FailedReason}}{{financeList.Status}}
    Job IDJob TypeProjectCustomerLocationTechnician NameFollow Up ReasonCreation DateStatusTATRating
    {{financesmry.jobID}}{{financesmry.jobType}}{{financesmry.project}}{{financesmry.customer}}{{financesmry.location}}{{financesmry.technicianName}}{{financesmry.followUpReason}}{{financesmry.creationDate | date: \\'dd-MMM-yyyy hh:mm:ss a\\'}}{{financesmry.status}}{{financesmry.tat}}{{financesmry.rating}}
    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusCatagoryCertificate
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate}}{{skills.BrandList}}{{skills.Status}}
    Previous Company Details
    Company NameProject NameDesignationAccountDate of JoiningDate of RelievingExperience Letter
    {{previousCompany.CompanyName}}{{previousCompany.ProjectName}}{{previousCompany.Designation}}{{previousCompany.AccountName}}{{previousCompany.DateOfJoining | date:\\'dd-MMM-yyyy\\'}}{{previousCompany.DateOfRelieving | date:\\'dd-MMM-yyyy\\'}} \\\"\\\"
    Training Details
    Training NameTraining DateTraining ImageTraining Attendence
    {{Audittraining.TrainingName}}{{Audittraining.TrainingDate | date:\\'dd-MMM-yyyy\\'}} \\\"\\\" \\\"\\\"
    Ratings

    {{UserDashboard.reviewData.OverAllRating.AverageRating}} average based on {{UserDashboard.reviewData.OverAllRating.totalCount}} reviews.


    {{Reviews.CustomerName}}Source : MyMobiforce
    (Reviewed on {{Reviews.ReviewDate}})

    {{Reviews.AdditionalRemark}}

    Assets
    Equipment Details
    Equipment NameBrand NameView EquipmentItem Serial NumberManufactured OnExpired On
    {{toolDetail.ToolName}}{{toolDetail.BrandName}}{{toolDetail.ItemSerialNumber}}NA {{toolDetail.DateOfManufacturing}}{{toolDetail.ExpireDate}}
    Audit Details
    Audit SummaryAuditorAudited OnStatusReport
    {{auditDetail.AuditPurpose}}{{auditDetail.AuditorDetails.AuditorName}}{{auditDetail.AuditDate | date: \\'dd-MMM-yyyy\\'}}{{auditDetail.AuditResult}} {{auditDetail.AuditResult}} {{auditDetail.AuditResult}}
    \");\n$templateCache.put(\"app/Dashboard/Dashboard.html\",\"
    \\\"profile\\\" \\\"image-1\\\"
    {{UserDashboard.users.userProfile.FirstName}} {{UserDashboard.users.userProfile.LastName}}
    {{UserDashboard.users.userProfile.Ratings.UserId}}

    ({{UserDashboard.users.userProfile.Role}})

    {{UserDashboard.users.userProfile.Address}}, {{UserDashboard.users.userProfile.Pincode}}
    {{UserDashboard.TechnicianRating}}

    Verified & Activated by  {{UserDashboard.users.userProfile.ActivatedByName}} on {{UserDashboard.users.userProfile.TechnicianActivationDate | date: \\'dd MMM yyyy\\' }}

    Member since {{UserDashboard.users.userProfile.TechnicianActivationDate| date:\\'MMM dd, yyyy\\'}}
    Jobs Summary

    {{UserDashboard.users.jobsSummary.TotalJobs}}

    Total Jobs

    {{UserDashboard.users.jobsSummary.Assignedjobs}}

    Assigned jobs

    {{UserDashboard.users.jobsSummary.Completed}}

    Completed

    {{UserDashboard.users.jobsSummary.Rejected}}

    Rejected

    {{UserDashboard.users.jobsSummary.LeadAcceptance}} (%)

    Lead Acceptance

    {{UserDashboard.users.jobsSummary.CompletionSpeed}}

    Average Completion Speed

    {{UserDashboard.users.jobsSummary.JobCompletionRate}} (%)

    Job Completion Rate

    {{UserDashboard.users.jobsSummary.FirstResponseRate}} (%)

    First Response Time

    {{UserDashboard.users.jobsSummary.AppointmentMetRate}} (%)

    Appointment Met Rate

    Payments Summary

    ₹ {{UserDashboard.users.paymentsSummary.TotalEarned}}

    Total Earned

    ₹ {{UserDashboard.users.paymentsSummary.TotalDueAmount}}

    Total Due Amount

    ₹ {{UserDashboard.users.paymentsSummary.TotalPaid}}

    Total Paid

    ₹ {{UserDashboard.users.paymentsSummary.TotalReject}}

    Total Reject

    ₹ {{UserDashboard.users.paymentsSummary.TotalFailed}}

    Total Failed

    ₹ {{UserDashboard.users.paymentsSummary.TotalInitial}}

    Total Initial

    ₹ {{UserDashboard.users.paymentsSummary.TotalCollection}}

    Total Collection

    ₹ {{UserDashboard.users.paymentsSummary.TotalService}}

    Total Service

    ₹ {{UserDashboard.users.paymentsSummary.TotalHardware}}

    Total Hardware

    ₹ {{UserDashboard.users.paymentsSummary.TotalBonus}}

    Total Bonus

    ₹ {{UserDashboard.users.paymentsSummary.TotalPanelty}}

    Total Panelty

    ₹ {{UserDashboard.users.paymentsSummary.TotalAllowance}}

    Total Allowance

    ₹ {{UserDashboard.users.paymentsSummary.SecurityAmount}}

    Security Amount

    {{UserDashboard.users.paymentsSummary.SecurityExpiryDate | date:\\'dd/MM/yy\\'}}

    Security Expiry Date

    {{UserDashboard.users.paymentsSummary.SecurityDepositDate | date:\\'dd/MM/yy\\'}}

    ReCharge On

    Execution Summary

    {{UserDashboard.users.executionSummary.AssignedNoAction}}

    Assigned No Action

    {{UserDashboard.users.executionSummary.CCNAB}}

    CCNAB

    {{UserDashboard.users.executionSummary.Cancelled}}

    Cancelled

    {{UserDashboard.users.executionSummary.AppointmentBookedDay0}}

    Appointment Booked Day 0

    {{UserDashboard.users.executionSummary.AppointmentBookedDay1}}

    Appointment Booked Day 1

    {{UserDashboard.users.executionSummary.AppointmentBookedDay1Plus}}

    Appointment Booked Day1+

    {{UserDashboard.users.executionSummary.AppointmentBreached}}

    Appointment Breached

    {{UserDashboard.users.executionSummary.InTransit}}

    InTransit

    {{UserDashboard.users.executionSummary.OnSite}}

    On Site

    {{UserDashboard.users.executionSummary.OnHold}}

    On Hold

    Reviews
    {{Reviews.CustomerName}}
    {{Reviews.Average}}

    {{Reviews.AdditionalRemark}}

    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusRe-TestInteraction VideoCertificate
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate | date:\\'dd-MMM-yyyy h:mm a\\'}}{{skills.BrandList}}{{skills.Status}}
    Legal Contract Details
    Legal Contract NameSigned DateSigned StatusView Document
    {{legalContract.LegalContractName}}{{legalContract.SignedDateTime | date:\\'dd-MMM-yyyy h:mm a\\'}}{{legalContract.SignedStatus}}
    End User License Agreement{{UserDashboard.users.userProfile.EndUserLicenseAgreement.CreatedOn | date:\\'dd-MMM-yyyy h:mm a\\'}}SignedNot Signed
    Self Declaration Agreement{{UserDashboard.users.userProfile.SelfDeclarationSignDate | date:\\'dd-MMM-yyyy h:mm a\\'}}SignedNot Signed
    Certificate
    \\\"\\\" \\\"profile\\\" \\\"profile\\\"
    • Cert. Name- {{TrainingAssessment.CertificateName}}
    • Cert. No- {{TrainingAssessment.CertificateNo}}
    • Cert. Issue Date- {{TrainingAssessment.CertificateIssueDate | date:\\'dd-MMM-yyyy\\' }}
    • Cert. Expiry Date- {{TrainingAssessment.CertificateExpiryDate | date:\\'dd-MMM-yyyy\\'}}
    • Cert. Name- example-1
    • Cert. No- 12331122
    • Cert. Issue Date- 23-12-2-20
    • Cert. Expiry Date- 23-12-2-22
    Ratings

    {{UserDashboard.users.userProfile.AverageRating.AverageRating}} average based on {{UserDashboard.users.userProfile.AverageRating.totalCount}} reviews.


    5 star
    4 star
    3 star
    2 star
    1 star
    Background Verification
    VerificationDocuments NameDocuments NumberVerification DateStatusDocument FrontDocument Back
    {{VerificationDoc.DocumentType}}{{VerificationDoc.DocumentName}}{{VerificationDoc.DocumentNo}}{{VerificationDoc.UpdatedOn| date:\\'dd-MMM-yyyy h:mm a\\'}} \\\"\\\"
    \\\"profile\\\"
    \\\"profile\\\"
    \\\"\\\"
    \\\"profile\\\"
    \\\"profile\\\"
    BankBank Information

    {{UserDashboard.users.userProfile.BankDetails.AccountHolderName}}

    {{UserDashboard.users.userProfile.BankDetails.bankName}}

    AC No- {{UserDashboard.users.userProfile.BankDetails.AccountNo}}

    IFSC No- {{UserDashboard.users.userProfile.BankDetails.IFSC}}

    UPI IDUPI Id{{UserDashboard.users.userProfile.BankDetails.UPIID}}{{UserDashboard.users.userProfile.BankDetails.VerifiedOn}}
    ₹ {{UserDashboard.paymentCount.TotalCollection}}

    Total Collection

    ₹ {{UserDashboard.paymentCount.TotalService}}

    Total Service

    ₹ {{UserDashboard.paymentCount.TotalHardware}}

    Total Hardware

    ₹ {{UserDashboard.paymentCount.TotalBonus}}

    Total Bonus

    ₹ {{UserDashboard.paymentCount.TotalPanelty}}

    Total Panelty

    ₹ {{UserDashboard.paymentCount.TotalAllowance}}

    Total Allowance

     {{UserDashboard.fpageindexCount}} - {{UserDashboard.financeListLength}} of {{totalFinList}}
    Total Base PriceTotal Payable AmountTotal CommissionTotal ServiceTotal HardwareTotal BonusTotal PaneltyTotal CollectionTotal AwallanceCashfree IdFailed ReasonStatus
    {{financeList.TotalBasePrice}}{{financeList.TotalPayableAmount}}{{financeList.TotalCommission}}{{financeList.TotalService}}{{financeList.TotalHardware}}{{financeList.TotalBonus}}{{financeList.TotalPanelty}}{{financeList.TotalCollection}}{{financeList.TotalAwallance}}{{financeList.CashfreeId}}{{financeList.FailedReason}}{{financeList.Status}}
    Job IDJob TypeProjectCustomerLocationTechnician NameFollow Up ReasonCreation DateStatusTATRating
    {{financesmry.jobID}}{{financesmry.jobType}}{{financesmry.project}}{{financesmry.customer}}{{financesmry.location}}{{financesmry.technicianName}}{{financesmry.followUpReason}}{{financesmry.creationDate | date: \\'dd-MMM-yyyy hh:mm:ss a\\'}}{{financesmry.status}}{{financesmry.tat}}{{financesmry.rating}}
    of 252 records

    Total Jobs

    Assigned Jobs

    Completed

    Approved

    Rejected

    ANA

    CCNAB

    Cancelled

    ABD0

    ABD1

    ABD1+

    ABR

    InTransit

    On Site

    On Hold

     {{UserDashboard.upageindexCount}} - {{UserDashboard.userListLength}} of {{totalUsers}}
    Ticket IDTicket TypeAccountLocationAssigned DateTATJobs StatusCreation DateStatus Date
    {{workList.TicketID}}{{workList.TicketType}}{{workList.Account}}{{workList.Location}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.TAT}}{{workList.JobsStatus}}{{workList.JobsCreationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.InTransitDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnSiteDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AppointmentBookedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CompletionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnHoldDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.RejectionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CancellationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.ApprovedDate | date:\\'dd/MM/yy hh:mm a\\'}}
    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusRe-TestInteraction VideoCertificate
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate | date:\\'dd-MMM-yyyy h:mm a\\'}}{{skills.BrandList}}{{skills.Status}}
    Previous Company Details
    Company NameProject NameDesignationAccountDate of JoiningDate of RelievingExperience Letter
    {{previousCompany.CompanyName}}{{previousCompany.ProjectName}}{{previousCompany.Designation}}{{previousCompany.AccountName}}{{previousCompany.DateOfJoining | date:\\'dd-MMM-yyyy\\'}}{{previousCompany.DateOfRelieving | date:\\'dd-MMM-yyyy\\'}} \\\"\\\"
    Training Details
    Training NameTraining DateTraining ImageTraining Attendence
    {{Audittraining.TrainingName}}{{Audittraining.TrainingDate | date:\\'dd-MMM-yyyy\\'}} \\\"\\\" \\\"\\\"
    Authorized for Service Center
    Brand NameAdditional Brand NameProduct ServiceAdditional Product ServingTeam SizeTenureService Center AddressCertificate of AuthorizationTraining CertificatePhoto of Shop/office/Service Center
    {{AuthoDetail.BrandName}}{{AuthoDetail. BrandNameOther}}{{AuthoDetail.ProductServing}}{{AuthoDetail.ProductServingOther}}{{AuthoDetail.TeamSize}}{{AuthoDetail.Tenure}}{{AuthoDetail.ServiceCenterAddress}}\\\"\\\"\\\"\\\"\\\"\\\"
    Certificate
    \\\"\\\" \\\"profile\\\" \\\"profile\\\"
    Interaction Videos List
    TypeSkillUploaded ByUploaded OnVideo
    {{videoupload.Type}}{{videoupload.SkillName}}
    Ratings

    {{UserDashboard.reviewData.OverAllRating.AverageRating}} average based on {{UserDashboard.reviewData.OverAllRating.totalCount}} reviews.


    Overall Rating
    5 star
    {{UserDashboard.AvgRating.FiveStar}}
    4 star
    {{UserDashboard.AvgRating.FourStar}}
    3 star
    {{UserDashboard.AvgRating.ThreeStar}}
    2 star
    {{UserDashboard.AvgRating.TwoStar}}
    1 star
    {{UserDashboard.AvgRating.OneStar}}
    By Behaviour Rating
    Installation Service
    Safety Protocols
    Visit on Time
    Courteous & Respectful
    Professional Appearance
    Service Experience
    {{Reviews.CustomerName}}Source : MyMobiforce
    (Reviewed on {{Reviews.ReviewDate}})

    {{Reviews.AdditionalRemark}}

    Assets
    Equipment Details
    Equipment NameBrand NameView EquipmentItem Serial NumberManufactured OnExpired On
    {{toolDetail.ToolName}}{{toolDetail.BrandName}}{{toolDetail.ItemSerialNumber}}NA {{toolDetail.DateOfManufacturing}}{{toolDetail.ExpireDate}}
    Audit Details
    Audit SummaryAuditorAudited OnStatusReport
    {{auditDetail.AuditPurpose}}{{auditDetail.AuditorDetails.AuditorName}}{{auditDetail.AuditDate | date: \\'dd-MMM-yyyy\\'}}{{auditDetail.AuditResult}} {{auditDetail.AuditResult}} {{auditDetail.AuditResult}}
    All Team List
    ActionUser IDNameTotal CountOpen CountClose CountRoleAddress line 1CityStatePincodeStatusD-1 AvailabilityD-0 Attendance
    {{TeamDetail.UserId}}{{TeamDetail.Name}}{{TeamDetail.TotalCount}}{{TeamDetail.OpenCount}}{{TeamDetail.CloseCount}}{{TeamDetail.Role}}{{TeamDetail.Addressline1}}{{TeamDetail.PermanentCity}}{{TeamDetail.State}}{{TeamDetail.PermanentPinCode}}Inactive ActiveNot Available AvailableNot Available Available
    \");\n$templateCache.put(\"app/CustomerNew/CustomerNew.html\",\"
    1. Home
    2. Customers
    \");\n$templateCache.put(\"app/DashboardDetail/dashboardDetail.html\",\"
    1. Home
    2. {{dashboardCtrl.report_title}}
               
               

    Click \\'Edit\\', then \\'Add Chart\\' to start creating your metrics and dimensions

    {{dashboardCtrl.tableCharts[tableId].ChartTitle}}
     
    {{rollup}}
    {{chart.ChartTitle}}

    {{dashboardCtrl.metricsCharts[chart.ChartId].value&&dashboardCtrl.metricsCharts[chart.ChartId].value.length>0?(dashboardCtrl.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(dashboardCtrl.metricsCharts[chart.ChartId].value[$index].Value|currency:\\'₹\\'):dashboardCtrl.metricsCharts[chart.ChartId].value[$index].Value):\\\"NA\\\"}} 0\\\" class=\\\"text-success font-bold\\\">{{dashboardCtrl.metricsCharts[chart.ChartId].value[$index].ValueUnitAbbr}}

    {{dashboardCtrl.metricsCharts[chart.ChartId].value&&dashboardCtrl.metricsCharts[chart.ChartId].value.length>0?(dashboardCtrl.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(main.round2Decimal(dashboardCtrl.metricsCharts[chart.ChartId].value[$index].Value)|currency:\\'₹\\'):main.round2Decimal(dashboardCtrl.metricsCharts[chart.ChartId].value[$index].Value)):\\\"NA\\\"}}

    {{dashboardCtrl.metricsCharts[chart.ChartId].value[$index].timevalue}}

    0) && dashboardCtrl.metricsCharts[chart.ChartId].value[$index].CompareResult\\\" class=\\\"matrix-number text-green\\\"> {{dashboardCtrl.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(dashboardCtrl.metricsCharts[chart.ChartId].value[$index].ComparisonValue|currency:\\'₹\\'):dashboardCtrl.metricsCharts[chart.ChartId].value[$index].ComparisonValue}} 0\\\" class=\\\"text-green font-bold\\\">{{dashboardCtrl.metricsCharts[chart.ChartId].value[$index].ValueUnitAbbr}} 0) && !dashboardCtrl.metricsCharts[chart.ChartId].value[$index].CompareResult\\\" class=\\\"matrix-number text-danger\\\"> {{dashboardCtrl.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(dashboardCtrl.metricsCharts[chart.ChartId].value[$index].ComparisonValue|currency:\\'₹\\'):dashboardCtrl.metricsCharts[chart.ChartId].value[$index].ComparisonValue}} 0\\\" class=\\\"text-danger font-bold\\\">{{dashboardCtrl.metricsCharts[chart.ChartId].value[$index].ValueUnitAbbr}} {{dashboardCtrl.metricsCharts[chart.ChartId].subtitles[$index]}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{col}}
    {{val}} {{val}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{col}}
    {{val}} {{val}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}

    {{chart.ChartTitle}}

    {{chart.ChartTitle}}

    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    \");\n$templateCache.put(\"app/DashboardReportList/dashboardReportList.html\",\"
    • All {{dashReportCtrl.ReportsList.All}}
    • Favourites {{dashReportCtrl.ReportsList.Favourites}}
    • Shared {{dashReportCtrl.ReportsList.Shared}}
    • Scheduled {{dashReportCtrl.ReportsList.Scheduled}}
    Cancel
    By Skill
    Date Information


    By Exception Type
    Assigned UserName
    By State
    By City
    By Pincode
    Invalid PIN code. Please enter a 6-digit code.

    Share Report {{dashReportCtrl.SharedReportName}}

    Please enter the email id -

    \\' for user in dashReportCtrl.shareModel.getUserSuggestion($viewValue) | filter:dashReportCtrl.shareModel.removeSelectedUsers | filter:dashReportCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"dashReportCtrl.shareModel.selectUserNameInToList($item)\\\">
    Please enter email whom to schedule this report.
    CC:
    \\' for user in dashReportCtrl.shareModel.getUserSuggestion($viewValue) | filter:dashReportCtrl.shareModel.removeSelectedUsers | filter:dashReportCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"dashReportCtrl.shareModel.selectUserNameInCCList($item)\\\">
    BCC:
    \\' for user in dashReportCtrl.shareModel.getUserSuggestion($viewValue) | filter:dashReportCtrl.shareModel.removeSelectedUsers | filter:dashReportCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"dashReportCtrl.shareModel.selectUserNameInBCCList($item)\\\">
    \\\"image\\\"

    {{user.FirstName}} {{user.LastName}} ({{user.UserId}})

    {{user.PersonalEmail}}

    {{user.UserId}}

    {{user.Role}} External
    0\\\">CC:
    \\\"image\\\"{{user.FirstName}} {{user.LastName}} ({{user.Role}}) {{user.PersonalEmail}}{{user.UserId}}
    0\\\">BCC:
    \\\"image\\\"{{user.FirstName}} {{user.LastName}} ({{user.Role}}) {{user.PersonalEmail}}{{user.UserId}}
    Please enter message.
    Attach report asin mail body
    Attach report in mail body

    Share Report to Others

    To:
    \\' for user in dashReportCtrl.shareModel.getUserSuggestion($viewValue) | filter:dashReportCtrl.shareModel.removeSelectedUsers | filter:dashReportCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"dashReportCtrl.shareModel.selectUserNameInToList($item)\\\">
    Please enter email whom to schedule this report.
    CC:
    \\' for user in dashReportCtrl.shareModel.getUserSuggestion($viewValue) | filter:dashReportCtrl.shareModel.removeSelectedUsers | filter:dashReportCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"dashReportCtrl.shareModel.selectUserNameInCCList($item)\\\">
    BCC:
    \\' for user in dashReportCtrl.shareModel.getUserSuggestion($viewValue) | filter:dashReportCtrl.shareModel.removeSelectedUsers | filter:dashReportCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"dashReportCtrl.shareModel.selectUserNameInBCCList($item)\\\">
    \\\"image\\\"

    {{user.FirstName}} {{user.LastName}} ({{user.UserId}})

    {{user.PersonalEmail}}

    {{user.UserId}}

    {{user.Role}} External
    0\\\">CC:
    \\\"image\\\"{{user.FirstName}} {{user.LastName}} ({{user.Role}}) {{user.PersonalEmail}}{{user.UserId}}
    0\\\">BCC:
    \\\"image\\\"{{user.FirstName}} {{user.LastName}} ({{user.Role}}) {{user.PersonalEmail}}{{user.UserId}}
    Please enter message.
    Attach report in mail body

    Schedule Report {{ dashReportCtrl.scheduleModel.uniqueId}}

    {{schedules.uniqueId}}
    Schedule Report Name:
    Please enter schedule report name.
    Schedule Frequency
    Please select time.
    Please select time.
    Please select time.
    Please select time.
    Pull Data In Report

    {{dashReportCtrl.scheduleModel.pull_data.calculate_range()}}

    {{dashReportCtrl.scheduleModel.pull_data.calculate_range()}}

    {{dashReportCtrl.scheduleModel.pull_data.calculate_range()}}

    {{dashReportCtrl.scheduleModel.pull_data.calculate_range()}}

    {{dashReportCtrl.scheduleModel.pull_data.calculate_range()}}

    {{dashReportCtrl.scheduleModel.pull_data.calculate_range()}}
    Please enter valid day value.
    To
    \\' for user in dashReportCtrl.shareModel.getUserSuggestion($viewValue) | filter:dashReportCtrl.shareModel.removeSelectedUsers | filter:dashReportCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"dashReportCtrl.shareModel.selectUserNameInToList($item)\\\">
    Please enter email whom to schedule this report.
    CC
    \\' for user in dashReportCtrl.shareModel.getUserSuggestion($viewValue) | filter:dashReportCtrl.shareModel.removeSelectedUsers | filter:dashReportCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"dashReportCtrl.shareModel.selectUserNameInCCList($item)\\\">
    BCC
    \\' for user in dashReportCtrl.shareModel.getUserSuggestion($viewValue) | filter:dashReportCtrl.shareModel.removeSelectedUsers | filter:dashReportCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"dashReportCtrl.shareModel.selectUserNameInBCCList($item)\\\">
    0\\\">To
    \\\"image\\\"

    {{user.FirstName}} {{user.LastName}} ({{user.UserId}})

    {{user.PersonalEmail}}

    {{user.UserId}}

    {{user.Role}} External
    0\\\">CC
    \\\"image\\\"

    {{user.FirstName}} {{user.LastName}} ({{user.UserId}})

    {{user.PersonalEmail}}

    {{user.UserId}}

    {{user.Role}} External
    0\\\">BCC
    \\\"image\\\"

    {{user.FirstName}} {{user.LastName}} ({{user.UserId}})

    {{user.PersonalEmail}}

    {{user.UserId}}

    {{user.Role}} External
    Please enter message.
    Attach report in mail body
    Attach report in Excel
    • {{userActivity.primaryReason}}
      {{userActivity.ReasonComment}}
      {{userActivity.userName}} {{userActivity.dateTime}}
    To
    \\' for user in dashReportCtrl.shareModel.getUserSuggestion($viewValue) | filter:dashReportCtrl.shareModel.removeSelectedUsers | filter:dashReportCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"dashReportCtrl.shareModel.selectUserNameInToList($item)\\\">
    Please enter email whom to schedule this report.
    CC
    \\' for user in dashReportCtrl.shareModel.getUserSuggestion($viewValue) | filter:dashReportCtrl.shareModel.removeSelectedUsers | filter:dashReportCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"dashReportCtrl.shareModel.selectUserNameInCCList($item)\\\">
    BCC
    \\' for user in dashReportCtrl.shareModel.getUserSuggestion($viewValue) | filter:dashReportCtrl.shareModel.removeSelectedUsers | filter:dashReportCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"dashReportCtrl.shareModel.selectUserNameInBCCList($item)\\\">
    0\\\">To
    \\\"image\\\"

    {{user.FirstName}} {{user.LastName}} ({{user.UserId}})

    {{user.PersonalEmail}}

    {{user.UserId}}

    {{user.Role}} External
    0\\\">CC
    \\\"image\\\"

    {{user.FirstName}} {{user.LastName}} ({{user.UserId}})

    {{user.PersonalEmail}}

    {{user.UserId}}

    {{user.Role}} External
    0\\\">BCC
    \\\"image\\\"

    {{user.FirstName}} {{user.LastName}} ({{user.UserId}})

    {{user.PersonalEmail}}

    {{user.UserId}}

    {{user.Role}} External
    Please enter message.
    \");\n$templateCache.put(\"app/DeviceInfo/DeviceInfo.html\",\"

    Device Information

    \");\n$templateCache.put(\"app/DirectSaleToCustomer/DirectSaleToCustomer.html\",\"
    1. Home
    2. Direct Sale To Customer
    = 48 && event.charCode <= 57\\\" aria-invalid=\\\"false\\\">
    Consumer Details
    Consumer IDAccount NameContact NumberAlternate Consumer No.EmailAccount TypeConsumer TypeAddressCityStatePinCodeAddress Type
    {{directsalecntrl.consumerData.ConsumerId}}{{directsalecntrl.consumerData.ConsumerFirstName}} {{directsalecntrl.consumerData.ConsumerLastName}}{{directsalecntrl.consumerData.ConsumerContact}}{{directsalecntrl.consumerData.ConsumerAlternateContact}}{{directsalecntrl.consumerData.PersonalEmail}}{{directsalecntrl.consumerData.ConsumerAccountType}}{{directsalecntrl.consumerData.ConsumerType}}{{directsalecntrl.consumerAddress.strAddress1}}, {{directsalecntrl.consumerAddress.strAddress2}}{{directsalecntrl.consumerAddress.strCity}}{{directsalecntrl.consumerAddress.strState}}{{directsalecntrl.consumerAddress.strPostalCode}}{{directsalecntrl.consumerAddress.strAddressType}}

    No Account Found

    Parts Details
    Bill View
     {{directsalecntrl.countdpageindexCount}} - {{directsalecntrl.myStockListLength}} of {{totalInventory}}
    Part IDBrandPart GroupPart Sub-groupPart NameSKU IDGood StockService Center Price (₹)Customer Price (₹)Action
    {{inventorystock.strMMFPartId}}{{inventorystock.strPartBrand}}{{inventorystock.strPartCategoryGroup}}{{partsubgroup}}{{inventorystock.strPartName}}{{ inventorystock.strSKUId}}{{inventorystock.nTotalGoodStock}}{{inventorystock.dPartDiscountedPrice}}{{inventorystock.dPartCustomerPrice}}

    S.No.PartQuantityPrice (₹)Total (₹)Action
    {{ $index + 1 }}{{ item.strPartName }}{{ item.dPartDiscountedPrice}}{{ (item.dPartDiscountedPrice * (item.selectedQuantity || 0)) | number:2 }}
    Total Amount (₹){{ directsalecntrl.totalAmount }}
    GST (18%){{ directsalecntrl.gst }}
    Grand Total (₹){{ directsalecntrl.finalTotal}}
    Create Consumer
    Please select a Title.
    Please enter a First Name.
    Please enter a Last Name.
    Please enter a Contact No.
    Please enter a valid email
    Please select a consumer type
    Please select a Address Type
    Please enter address line 1
    Please enter address line 2
    =48 && event.charCode <=57\\\">
    Please enter pincode Please enter 6 digit number
    Please Select State
    Please Select City

    Fetch Pincode By Area
    Please Select State.
    Please Select City.
    Please Select Area.
    Please Select Pincode.
    \");\n$templateCache.put(\"app/DialerList/DialerList.html\",\"
    1. Home
    2. Dialer List
    NumberNameTotal Call DurationTimeStatusDigitsRecording
    +9198786543Avinsh Gupta00:02:3229th January 2024 , 01.00 PMCompleted1-2-3
    +9198786543Avinsh Gupta00:02:3229th January 2024 , 01.00 PMCompleted1-2-3
    +9198786543Avinsh Gupta00:02:3229th January 2024 , 01.00 PMCompleted1-2-3
    +9198786543Avinsh Gupta00:02:3229th January 2024 , 01.00 PMCompleted1-2-3
    +9198786543Avinsh Gupta00:02:3229th January 2024 , 01.00 PMCompleted1-2-3
    \");\n$templateCache.put(\"app/EmailAdapterHistory/EmailAdapterHistory.html\",\"
    1. Home
    2. Email History Management
    \");\n$templateCache.put(\"app/ECommerce/ExtendedWarranty.html\",\"

    Extended Warranty

    Available Plan

    Plan Duration

    ₹ 699 

    The plan only covers washing machine purchased on or after 27 Dec 2019

    Extended Warranty Features

    Extends your manufacturer\\'s warranty to make your Washing Machine last longer

    Covers Malfunctions & Breakdowns

    Free @Home Service

    Repair or replacement guaranteed. If we cant repair it in time, you get a Free Replacement

    PLAN Coverage
    1st YEAR2nd YEAR3rd YEAR4th YEAR
    Manufacturer Warranty1 Year Extended Warranty
    \");\n$templateCache.put(\"app/ECommerce/ExtendedWarrantyPayment.html\",\"

      Payment

    Rs 699

    View Price Details

    \");\n$templateCache.put(\"app/ECommerce/ExtendedWarrantySummary.html\",\"

      Order Summary

    Extended Warranty Plan
    BrandWhirlpool
    CategoryWashing Machine
    TechnologyAutomatic
    Size6.5 Kg
    Price Range10001 -20000
    Protection Duration1 Year
    Amount₹ 699

    ₹ 699

    Personnal Details for Certificate

      The Washing Machine has been purchased on or after 27 Dec 2019

     The purchased device is not broken and is in working condition before the plan purchase.

    \");\n$templateCache.put(\"app/ECommerce/ExtendedWarrantyThnku.html\",\"

    Order Confirmed

    Hi Ankur Sharma ,

    Order Successfully Placed

    We are pleased to confirm your extended warranty for 1 Year plan order no.
    MMF676345787454
    Thankyou for shipping with MYMobiforce !

    \");\n$templateCache.put(\"app/ECommerce/ecommerce_Ariel_product_details.html\",\"

    Ariel Complete Detergent Washing Powder - 1 kg with Free Detergent Washing Powder - 500 g

    4.3
      12,955 Ratings & 3440 Reviews

    ₹248  ₹372  33% off


    Product description

    Ariel Complete Detergent Powder has been especially designed for semi-automatic washing machines and hand wash.Ariel Complete provides brilliant cleaning by removing tough stains in just 1 wash .Ariel Colour Care has New Oxi-stain fighters for clothes to stay clean and stain-free wash after wash.Ariel is the world’s no. 1 brand recommended by washing machine manufacturers like LG, Whirlpool, Panasonic, etc

    Warranty
    Month & Year of Mnufactured 06-2999
    Description lists
    • Item Form : Powder
    • Scent : Fresh
    • Specific Uses For Product: Stain Remover, Cleaning
    • Skin Type : All
    \");\n$templateCache.put(\"app/ECommerce/ecommerce_Home.html\",\"

      Product Category

    WASHING
    MACHINE
    TELEVISION
    KITCHEN
    APPLIANCES
    AIR
    CONDITIONERS
    HOME
    APPLIANCES
    REFRIGERATORS
    GEYSER
    INVERTORS
    Vaccum Cleaners

    Home

    Cart

    Setting

    Profile

      Filters

    Clear Filters

    \");\n$templateCache.put(\"app/ECommerce/ecommerce_HomeBrand.html\",\"

    Product Brands

    Home

    Cart

    Setting

    Profile

    \");\n$templateCache.put(\"app/ECommerce/ecommerce_Payment.html\",\"

      Payment

    Address

    Order Summary

    Payment

    Rs 386

    View Price Details

    \");\n$templateCache.put(\"app/ECommerce/ecommerce_Thnku.html\",\"

    Order Confirmed

    Hi Ankur Sharma ,

    Order Successfully Placed

    Your order will be delivered by Tue 30 June
    2020
    We are pleased to confirm your order no.
    MMF676345787454
    Thankyou for shipping with MYMobiforce !

    \");\n$templateCache.put(\"app/ECommerce/ecommerce_cart.html\",\"

      My Cart (1)

    (1) items
    Items in your cart
    KingMatters Front Loading Washing...

    ₹ 386  ₹ 999   65% off

    KingMatters Washing machine covers
    your washing machine clean when
    Foldable to small size when not.

    Description lists

    Made of: PVC

    Type: Front Loading Washing Machine

    Size: 62 cm x 82 cm x 61 cm

      Save for Later   Remove item
    Price Details
    Price ( 1 items )Rs 386
    Delivery FeeFREE
    Total Amount386

    Rs 386

    View Price Details

    \");\n$templateCache.put(\"app/ECommerce/ecommerce_ordersummary.html\",\"

      Order Summary

    Address

    Order Summary

    Payment

    Ankur Sharma

    1/1579 A New Patel Nagar
    Saharanpur - 247001
    8987674653

    KingMatters Front Loading Washing...

    ₹ 386  ₹ 999   65% off

    KingMatters Washing machine covers
    your washing machine clean when
    Foldable to small size when not.

    Description lists

    Made of: PVC

    Type: Front Loading Washing Machine

    Size: 62 cm x 82 cm x 61 cm

    Price Details
    Price ( 1 items )Rs 386
    Delivery FeeFREE
    Total Amount386

    Rs 386

    View Price Details

    \");\n$templateCache.put(\"app/ECommerce/ecommerce_placeorder.html\",\"

      Address

    Address

    Order Summary

    Payment

    Tap to auto fill the address fields

    \");\n$templateCache.put(\"app/ECommerce/ecommerce_product_details.html\",\"

    KingMatters Front Loading Washing Machine Cover (Brown, Multi)

    4.6
      8 Ratings & 1 Reviews

    ₹358  ₹999  64% off


    Product description

    KingMatters Washing machine covers Keep your washing machine clean when not in use with this convenient cover. Made in India made with polyester makes it longlasting. Zipper on top which make it easily remove and put on. Foldable to small size when not in use to store on a shelf or in a cabinet. Suitable for Top load automatic machine. Gaurnteed Geniune Top quality than other brand.

    Warranty
    Month & Year of Mnufactured 06-2999
    Description lists
    • Made of: PVC
    • Type: Front Loading Washing Machine
    • Size: 62 cm x 82 cm x 61 cm
    • Sales Package: 1 PCwashing machine cover for IFB 7.5 kg Front Loading Elite WX (Multicolour)
    \");\n$templateCache.put(\"app/ECommerce/ecommerce_products_grid.html\",\"

      Washing Machine Accesories

    \\\"image\\\"

    Ariel Complete Detergent Washing Powder - 1 kg with Free Detergent Washing Powder - 500 g

    Pack of 1
    4.3
    (955)

    ₹248  ₹372   33% off

    \\\"image\\\"

    KingMatters Front Loading Washing Machine Cover (Brown, Multi)

    Pack of 1
    4.2
    (351)

    ₹120  ₹150   20% off

    \\\"image\\\"

    KingMatters Front Loading Washing Machine Cover (Brown, Multi)

    Pack of 1
    4.2
    (351)

    ₹120  ₹150   20% off

    \\\"image\\\"

    KingMatters Front Loading Washing Machine Cover (Brown, Multi)

    Pack of 1
    4.2
    (351)

    ₹120  ₹150   20% off

    \\\"image\\\"

    KingMatters Front Loading Washing Machine Cover (Brown, Multi)

    Pack of 1
    4.2
    (351)

    ₹120  ₹150   20% off

    \\\"image\\\"

    KingMatters Front Loading Washing Machine Cover (Brown, Multi)

    Pack of 1
    4.2
    (351)

    ₹120  ₹150   20% off

    \\\"image\\\"

    KingMatters Front Loading Washing Machine Cover (Brown, Multi)

    Pack of 1
    4.2
    (351)

    ₹120  ₹150   20% off

    \\\"image\\\"

    KingMatters Front Loading Washing Machine Cover (Brown, Multi)

    Pack of 1
    4.2
    (351)

    ₹120  ₹150   20% off

    \\\"image\\\"

    KingMatters Front Loading Washing Machine Cover (Brown, Multi)

    Pack of 1
    4.2
    (351)

    ₹120  ₹150   20% off

    \\\"image\\\"

    KingMatters Front Loading Washing Machine Cover (Brown, Multi)

    Pack of 1
    4.2
    (351)

    ₹120  ₹150   20% off

    \\\"image\\\"

    KingMatters Front Loading Washing Machine Cover (Brown, Multi)

    Pack of 1
    4.2
    (351)

    ₹120  ₹150   20% off

    \\\"image\\\"

    KingMatters Front Loading Washing Machine Cover (Brown, Multi)

    Pack of 1
    4.2
    (351)

    ₹120  ₹150   20% off

    \\\"image\\\"

    KingMatters Front Loading Washing Machine Cover (Brown, Multi)

    Pack of 1
    4.2
    (351)

    ₹120  ₹150   20% off

    Home

    Setting

    Profile

      Filters

    Clear Filters

    \");\n$templateCache.put(\"app/ECommerce/newyearclock.html\",\"
    \\\"Italian
    Rohit Kumar from Product Says: Can\\'t wait for the New Year scene. Join me for the New Year Bash, Guys
    Deepika Singh from HR says: This is the place to be. Join us in welcoming the New Year, party people.
    Sunil Kumar from Onboarding says: Can\\'t wait. Bring it on.
    Click Here to Attend the Function
    \");\n$templateCache.put(\"app/EmployeeShiftMapping/EmployeeShiftMap.html\",\"

    All User\\'s List

    \\\"image\\\"

    User Name: {{fixedUsers.UserName}}

    User Id: {{fixedUsers.UserId}}

    Experienced : Yes

    Experienced : No

    • Normal Shifts
    • OverTime
    Shift IDShift NameLocationDepartmentRoleStatusStart TimeEnd TimeAssigned ToShift Running TimeAction
    {{bGverifySlot.ShiftId}}{{bGverifySlot.ShiftName}}{{bGverifySlot.LocationName}}{{bGverifySlot.DepartmentName}}{{bGverifySlot.Role}}{{bGverifySlot.ShiftStatus}}{{bGverifySlot.StartDate | date:\\'dd/MMM/yyyy HH:mm:ss\\'}}{{bGverifySlot.EndDate | date:\\'dd/MMM/yyyy HH:mm:ss\\'}}{{bGverifySlot.AssignedTo}}{{bGverifySlot.ShiftRunningTime}}
     {{ESMCntrl.pageindexCount}} - {{ESMCntrl.shiftsListLength}} of {{totalTableShifts}}
    Shift IDShift NameLocationDepartmentRoleStatusStart TimeEnd TimeAssigned ToShift Running TimeAction
    {{bGverifySlot.ShiftId}}{{bGverifySlot.ShiftName}}{{bGverifySlot.LocationName}}{{bGverifySlot.DepartmentName}}{{bGverifySlot.Role}}{{bGverifySlot.ShiftStatus}}{{bGverifySlot.StartDate | date:\\'dd/MMM/yyyy HH:mm:ss\\'}}{{bGverifySlot.EndDate | date:\\'dd/MMM/yyyy HH:mm:ss\\'}}{{bGverifySlot.AssignedTo}}{{bGverifySlot.ShiftRunningTime}}
     {{ESMCntrl.pageindexCount}} - {{ESMCntrl.shiftsListLength}} of {{totalTableShifts}}
    \");\n$templateCache.put(\"app/EscalationAlert/EscalationAlert.html\",\"
    1. Home
    2. Escalation Alert
      Create an Alert
    Create A Permission
    Please select role
    Please select time
    Please select channel



    Please enter valid phone no.
    {{userList.PersonalEmail}}{{userList.ContactNumber}}{{userList.TimeDuration}}
    Please enter message
    Please enter message.
    Create A Permission
    Email Preview



    Please enter message.
    \");\n$templateCache.put(\"app/EscalationAlert/LinkedTicket.html\",\"
    1. Home
    2. Escalation Alert
      Create an Alert
    Create A Permission
    Email Preview



    Aditya.kaushik28@gmail.com898767656540 min
    Aditya.kaushik28@gmail.com898767656540 min
    Aditya.kaushik28@gmail.com898767656540 min
    Aditya.kaushik28@gmail.com898767656540 min
    Please enter message.
    \");\n$templateCache.put(\"app/FLTechnicianProfile/FLTechnicianProfile.html\",\"
    1. Home
    2. Team Profile
    \\\"profile\\\" \\\"profile\\\"

    Freelancer with 100 Jobs

    From ,

    Member Since - 10 Aug, 19

    Avg Response Rate - 90%

    Affiliated By -

    \\\"profile\\\" \\\"profile\\\" \\\"profile\\\"

    \\\"image\\\" \\\"image\\\"

    Job Dashboard

    150

    Total Jobs

    75

    Assigned Job

    50

    Total Points Earned
    90%

    Lead Acceptance

    82%

    Job Completion

    10%

    Job Rejection

    Earning Dashboard

    INR 10000

    Total Earning

    INR 8000

    This Month

    INR 3000

    Avg Job Price

    Background verified by MMF

    Identity
    Address
    Criminal
    Insured

    Skills verified by MMF

    RFLOS Survey
    IWAN Survey
    RFI_Survey
    More...

    {{NewTeamProfile.averageRate}} out of 5 stars

    Average Ratings  

    4.7


    \\\"image\\\"
    Ajay Kumar

    \\\"Great job\\\"

    More Comments

    \\\"profile\\\"

    5 Times

    Mr. Performer of the Day

    \\\"profile\\\"

    2 Times

    Man of the Match

    \\\"profile\\\"

    4 Times

    Mr Consistent

    \\\"profile\\\"

    14 Times

    Mr Responsive

    Broadband Survey
    Beginner
    DRIVE TEST AND OPTIMIJATION
    Intermediate
    SCVT_Drive_Test
    Beginner
    RFI_Survey
    Advanced
    RFLOS Survey
    Intermediate
    IWAN Survey
    Advanced
    Job IDJob TypeProjectCustomerLocationPublish DateAssign DateStatusPlannedStartDateActualStartDateSLAStatusTATRating
    Invoice NoStatusInvoice DateTicket idProject NameDescriptionAccount NameFreelancer PriceCompleted dateAgeRemark
    IN_11420121700000085New17/12/2020T1140000010052Cycle InstalaltionInstallation and DemoJeeves Consumer Services460.0001/01/00010Test Remark
    IN_11420121700000083New17/12/2020T1140000010177Cycle InstalaltionInstallation and DemoJeeves Consumer Services460.0001/01/00010My Test Remark
    IN_11420121700000081New17/12/2020T1140000010193Fan Geyser Inverter ServicesInstallation and DemoJeeves Consumer Services364.8001/01/00010New Remark
    IN_11420121700000079New17/12/2020T1140000010201Fan Geyser Inverter ServicesInstallation and DemoJeeves Consumer Services364.8001/01/00010Test Remark

    SkillSet _____________________________________________________________________________

    SkillExprienceBrandsStatusMarksCertificate
    RFLOS Survey2 Year\\\"profile\\\"Pass8/10
    RFI_Survey2.5 Year\\\"profile\\\"Pass7/10\\\"profile\\\"
    IWAN Survey1 YearFail3/10
    Broadband Survey3 Year\\\"profile\\\"Pass8/10

    Certificates _____________________________________________________________________________

    1 / 2
    2 / 2

    \\\"Skill
    \\\"MyMobiforce

    Address ______________________________________

    C22 A

    Indirapuram

    Ghaziabad

    Uttar Padesh 201301

    Bank Account Deatils _________________________

    Account No. - 123124134

    IFSC Code - IFC0001

    Account Holder Name - Dinesh Chaurasiya

    Bank Name - ICICI Bank

    Equipments _______________________________

    Hachsaw
    Safety Goggles
    File
    Ball and hex key sets

    Assets _____________________________________

    Laptop
    Smart Phone
    Bike
    ×
    \\\"profile\\\"
    \");\n$templateCache.put(\"app/FVLeadManagement/FVLeadManagement.html\",\"
    1. Home
    2. Lead Management
    Total Leads
    Incoming Leads
    Accepted Bids
    Rejected Bids
    {{FVLeadManagementCtrl.pageindexCount}} to {{FVLeadManagementCtrl.ticketListLength}} of {{totalTicketUsers}}
    SelectTicket idDistance (KM)Rate (INR)SkillStateCityPINReceived OnExpired OnStatusBonus & PenaltyClosure Date
    View Bonus & Panelties

    \");\n$templateCache.put(\"app/FivePointIntegration/FivePointIntegration.html\",\"
    1. Home
    2. Five-Point Integration Status Overview
    Showing {{FivePointIntegrationCntrl.opageindexCount}} to {{FivePointIntegrationCntrl.orderListLength}} of {{totalOrderList}} entries
    MMF Ticket IDBrand Ticket IDTotal Integration PointsCurrent Order IndexCurrent Fail IndexOverall StatusCreated On
    {{orderList.MMFTicketId}}{{orderList.BrandTicketId}}{{orderList.TotalIntgrationPoint}}{{orderList.CurrentOrderIndex}}{{orderList.CurrentFailIndex}}{{orderList.OverAllFinalStatus}}{{orderList.CreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}
    \");\n$templateCache.put(\"app/FVLocationConfiguration/FVLocationConfiguration.html\",\"
    1. Home
    2. Freelancer Vendor Location Configuration
    Please Select Location Type
    Please Select Location
    {{uniquestate}}{{$last ? \\'\\' : \\', \\'}}
    \");\n$templateCache.put(\"app/Forgot password/forgot_password.html\",\"

    Forgot password

    Enter your email address.Your password will be sent to your registered mobile number and email address.

    Copyright MobiForce © 2025
    \");\n$templateCache.put(\"app/FreelancerProfile/FreelancerProfile.html\",\"
    1. Home
    2. Freelancer Profile
    \\\"Planning
    \");\n$templateCache.put(\"app/FreelancerTechnicianProfile/FreelancerTechnicianProfile.html\",\"

    Freelancer Technician Profile

    User - {{FreelancerTechnicianProfile.users.UserStatus}}
    \\\"profile\\\" \\\"profile\\\"

    {{FreelancerTechnicianProfile.users.FirstName}} {{FreelancerTechnicianProfile.users.LastName}}
    {{FreelancerTechnicianProfile.users.UserId}}

    Designation  -

    Email  -

    Phone No.  -

    {{FreelancerTechnicianProfile.users.Experience}} Year of Experience

    Source  -

    {{FreelancerTechnicianProfile.users.JobApproved}}


    Total Jobs

    {{FreelancerTechnicianProfile.userbalance.AvailableBalance.toFixed(2)}}


    Balance

    {{FreelancerTechnicianProfile.customerrating}}


    Average Rating


    End User License Agreement


    Self Declaration Agreement


    Self Declaration Agreement - Not Submitted


    Background Verification Report


    Background Verification Report - Not Done


    Certificate No: {{FreelancerTechnicianProfile.users.InsuranceCertificateNumber}}
    Policy No: {{FreelancerTechnicianProfile.users.InsurancePolicyNumber}}
    Start date:{{FreelancerTechnicianProfile.users.InsuranceStartDate}}
    End date:{{FreelancerTechnicianProfile.users.InsuranceEndDate}}
    {{FreelancerTechnicianProfile.users.ContractSignDate | date: FreelancerTechnicianProfile.CustomDateformat}}
    Contract Not Sign

    Contract Sign Date
    {{FreelancerTechnicianProfile.users.ContractSignDate | date: FreelancerTechnicianProfile.CustomDateformat}}
    Contract Not Sign

    Contract Sign Date

    Verified & Activated by  {{FreelancerTechnicianProfile.users.UpdatedByName}} on {{FreelancerTechnicianProfile.users.ActivationDate | date: \\'dd MMM yyyy\\' }}

    \\\"image\\\"

    Reliability

    \\\"image\\\"

    About

    {{FreelancerTechnicianProfile.users.Experience}} Year of Experience

    \\\"image\\\"

    Address

    {{FreelancerTechnicianProfile.users.CurrentAdd1}} , {{FreelancerTechnicianProfile.users.CurrentAdd2}} , {{FreelancerTechnicianProfile.users.CurrentCity}} , {{FreelancerTechnicianProfile.users.CurrentState}} , {{FreelancerTechnicianProfile.users.CurrentPinCode}}

    \\\"image\\\"

    Skill Set

    \\\"image\\\"

    Equipments

    \\\"image\\\"

    Assets

    \\\"image\\\"

    Type of Work

    \\\"image\\\"

    Work Locations

    \\\"image\\\"

    Equipment Details

    Equipment NameVerification StatusView EquipmentItem Serial NumberDate Of Manufacturing
    {{assettool.ToolName}}{{assettool.VerificationStatus}} {{assettool.VerificationStatus}} {{assettool.VerificationStatus}}{{assettool.ItemSerialNumber}}NA {{assettool.DateOfManufacturing}}
    Equipment Audit StatusEquipment Audited OnEquipment Audited ByEquipment Audit Report
    {{Audittool.AuditResult}} {{Audittool.AuditResult}}{{Audittool.AuditDate | date:\\'dd/MM/yyyy\\'}}{{Audittool.AuditorDetails.AuditorName}}
    \\\"image\\\"

    Previous Company Details

    Company NameWork LocationProject NameDesignationAccountDate of JoiningDate of RelievingExperience Letter
    {{previousCompanyDetail.CompanyName}}{{previousCompanyDetail.WorkLocation}}{{previousCompanyDetail.ProjectName}}{{previousCompanyDetail.Designation}}{{previousCompanyDetail.AccountName}}{{previousCompanyDetail.DateOfJoining | date:\\'dd/MM/yyyy\\'}}{{previousCompanyDetail.DateOfRelieving | date:\\'dd/MM/yyyy\\'}} \\\"\\\"
    Experience Verification StatusExperience Verified OnExperience Verified ByExperience Verification Report
    {{AuditExperience.AuditResult}} {{AuditExperience.AuditResult}}{{AuditExperience.AuditDate | date:\\'dd/MM/yyyy\\'}}{{AuditExperience.AuditorDetails.AuditorName}} \\\"\\\"
    \\\"image\\\"

    Contract Details

    Legal Contract NameSigned DateSigned StatusView Document
    Health and Safety Agreement {{legalContract.LegalContractName}}{{legalContract.SignedDateTime | date: FreelancerTechnicianProfile.OnlyDateformat}}{{legalContract.SignedStatus}}\\\"profile\\\"
    \\\"image\\\"

    Criminal Verification

    TypeDocument TypeVerifications TypeDocument NumberVerification ModeVerification AuthorityUpdated byUpdated OnStatusCriminal Report
    CriminalThird Party Assessment ReportOptional{{FreelancerTechnicianProfile.users.CriminalVarificationObj.DocumentNo}}Third Party{{FreelancerTechnicianProfile.users.CriminalVarificationObj.VerificationAuthority}}{{FreelancerTechnicianProfile.users.CriminalVarificationObj.UpdatedBy}}{{FreelancerTechnicianProfile.users.CriminalVarificationObj.UpdatedOn | date:\\'dd/MM/yyyy\\'}}{{FreelancerTechnicianProfile.users.CriminalVarificationObj.verificationStatus}}
    \\\"\\\"
    Training
    Training NameTraining DateTraining ImageTraining Attendance
    {{Audittraining.TrainingName}}{{Audittraining.TrainingDate | date:\\'dd/MM/yyyy\\'}} \\\"\\\" \\\"\\\"
    \\\"image\\\"

    Insaurance Details

    Insurance Name  -
    Policy Number  -
    Issue Date   -
    Expiry Date   -
    Insaurance Image   -
    View Link \\\"profile\\\"
    \\\"image\\\"

    Bank Account Details

    Account No  -
    IFSC Code  -
    Account Holder Name   -
    Bank Name   -
    \");\n$templateCache.put(\"app/GasChargingApproval/GasChargingApproval.html\",\"
    1. Home
    2. Gas Charging Request List
    Showing {{GasChargeApprovalCntrl.opageindexCount}} to {{GasChargeApprovalCntrl.orderListLength}} of {{totalOrderList}} entries
    Gas Charge Request IDTicket IDStatusStageActionProduct BrandProduct NameRequest Raised OnRequest Raised ByReasonRemark
    Age
    {{orderList.GasChargeRequestID}}{{orderList.TicketId}}{{orderList.ApprovalStatus}}{{orderList.strApprovalStage}} {{orderList.ProductBrand}}{{orderList.ProductName}}{{orderList.RequestRaisedDate}}{{orderList.RequestedRaiseBy}}{{orderList.Reason}}{{orderList.Comment}}{{orderList.strRequestAge}}

    {{GasChargeApprovalCntrl.PartDetails.PartName}}

    Part ID:{{GasChargeApprovalCntrl.PartDetails.strItemId}}
    SKU ID :{{GasChargeApprovalCntrl.PartDetails.strSKUId}}
    Product ID :{{GasChargeApprovalCntrl.PartDetails.ProjectId}}
    Project Name:{{GasChargeApprovalCntrl.PartDetails.ProjectName}}
    Unit :{{GasChargeApprovalCntrl.PartDetails.strItemUnit}}
    BrandName :{{GasChargeApprovalCntrl.PartDetails.strItemBrand}}

    Description

    • {{description}}

    Activity Trace ( {{GasChargeApprovalCntrl.trackingDetails.TicketId}} )

    Product Name : {{GasChargeApprovalCntrl.trackingDetails.ProductName}}
    Ticket ID : {{GasChargeApprovalCntrl.trackingDetails.TicketId}}
    Request Status : {{GasChargeApprovalCntrl.trackingDetails.ApprovalStatus}}
    • {{timeline.strUserName}} {{timeline.strUserRole}} {{timeline.dateCreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}
      {{ timeline.strComment || \\'No comments available\\'}}
      Status moved to: {{ timeline.strStage }}
    \");\n$templateCache.put(\"app/Freelancer_Fixed_Team/Freelancer_Fixed_Team.html\",\"
    1. Home
    2. Job Assign
    Location: {{freelancerFixed.locationSearch}} SkillSet: {{freelancerFixed.skillsSearch}} Filter
    Job IDDecriptionCustomerSkillLocationAge (Days)PriorityCreated DateProjectPincode
    {{newJob.LinkId || newJob.TicketId}} {{newJob.TicketId}}{{newJob.JobDescription}}{{newJob.CustomerName}}{{newJob.SkillSet}}{{newJob.Circle}}{{newJob.Age}}{{newJob.Priority}} NA{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.ProjectName}}{{newJob.Pincode}}
    Job IDStart TimeBroadcasted DatePriceDurationSentRecieved
    {{broadcast.LinkId || broadcast.JobId}}{{broadcast.StartDateTime | date: \\'dd/MM/yyyy\\'}}{{broadcast.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{broadcast.BroadcastRate}} INR{{broadcast.BIDDuration}} hrs{{broadcast.BIDSend}}{{broadcast.BIDReceived}}
    {{freelancerFixed.broadcastError}}

    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"freeUser in freelancerFixed.freelancerUsers | filter: freelancerFixed.searchUserText | orderBy : orderProperty\\\" ng-class=\\'{\\\"selectedRow\\\":(freelancerFixed.selectedJob==freeUser)}\\'>
    \\\"image\\\" \\\"image\\\"

    {{freeUser.exp}} Years

    0 Total Jobs

    0)\\\" class=\\\"label label-primary\\\">Online Offline

    {{freeUser.exp}} Years

    0\\\">{{freeUser.SkillSet[0]+(freeUser.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{freeUser.Locations[0]+(freeUser.locationCount>1?\\\"...\\\":\\\"\\\")}}

    {{freeUser.Pincode}}

    No data found
    TicketId:-{{freelancerFixed.broadcastLinkId || freelancerFixed.broadcastTicketId}}

    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"bidUsers in freelancerFixed.BidReceivedJobs |filter: searchUserText | orderBy : orderProperty\\\">
    \\\"image\\\"

    {{bidUsers.BIDStatus}}

    2 Kms

    {{bidUsers.JobsCompletedCount}} 0  Total Jobs

    {{bidUsers.exp}} Years

    0\\\">{{bidUsers.SkillSet}}

    0\\\">{{bidUsers.Locations)}}

    No data found
    {{freelancerFixed.broadcastErrorFV}}

    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"vendors in freelancerFixed.FreelancerVendorUsers | filter: freelancerFixed.searchUserText | orderBy : orderProperty\\\">
    \\\"image\\\" \\\"image\\\"

    0 Total Jobs

    0)\\\" class=\\\"label label-primary\\\">Online Offline

    {{vendors.exp}} Years

    0\\\">{{vendors.SkillSet[0]+(vendors.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{vendors.Locations[0]+(vendors.locationCount>1?\\\"...\\\":\\\"\\\")}}

    {{vendors.Pincode}}

    No data found
    TicketId:-{{freelancerFixed.broadcastLinkId || freelancerFixed.broadcastTicketId}}

    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"bidUsers in freelancerFixed.BidReceivedJobs |filter: searchUserText | orderBy : orderProperty\\\">
    \\\"image\\\"

    {{bidUsers.BIDStatus}}

    2 Kms

    {{bidUsers.JobsCompletedCount}} 0  Total Jobs

    {{bidUsers.exp}} Years

    0\\\">{{bidUsers.SkillSet}}

    0\\\">{{bidUsers.Locations)}}

    No data found
    Job IDDescriptionCustomerSkillLocationAge (Days)PriorityCreated DateProjectPincode
    {{newJob.LinkId || newJob.TicketId}} {{newJob.TicketId}}{{newJob.JobDescription}}{{newJob.CustomerName}}{{newJob.SkillSet}}{{newJob.Circle}}{{newJob.Age}}{{newJob.Priority}} NA{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.ProjectName}}{{newJob.Pincode}}
    {{main.getVisibleLabel(\\'Fixed Team\\')}}
    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"fixedUsers in freelancerFixed.fixedUsers | filter: freelancerFixed.searchUserText | filter : freelancerFixed.filteredProperties | orderBy : fixedUserOrderProperty\\\">
    \\\"image\\\" \\\"image\\\"

    S

    Today Jobs

    Jobs

    Availibility

    {{fixedUsers.exp}} Years

    0\\\">{{fixedUsers.SkillSet[0]+(fixedUsers.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{fixedUsers.Locations[0]+(fixedUsers.locationCount>1?\\\"...\\\":\\\"\\\")}}

    No data found
    {{main.getVisibleLabel(\\'Vendor\\')}}
    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"vendors in freelancerFixed.vendorList | filter: freelancerFixed.searchUserText | orderBy : orderProperty\\\">
    \\\"image\\\"

    {{vendors.CompanyName}} {{vendors.AddressLine2}}

    {{vendors.MobileNumber}}

    0 Total Jobs

    {{vendors.TotalJobs}} Total Jobs

    0\\\">{{vendors.VendorSkillsets[0]+(vendors.VendorSkillsetsCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{vendors.VendorLocations[0]+(vendors.VendorLocationsCount>1?\\\"...\\\":\\\"\\\")}}

    {{vendors.Pincode}}

    No data found
    {{main.getRoleName(\\'Supervisor\\')}}
    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"supervisors in freelancerFixed.supervisorList | filter: freelancerFixed.searchUserText | filter : freelancerFixed.filteredProperties | orderBy : orderProperty\\\">
    \\\"image\\\" \\\"image\\\"

    {{supervisors.FirstName + \\' \\' + supervisors.LastName}}

    {{supervisors.ContactNumber}}

    {{supervisors.JobTotal}} Total Jobs

    0 Total Jobs

    0\\\">{{supervisors.SkillSet[0]+(supervisors.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{supervisors.Locations[0]+(supervisors.locationCount>1?\\\"...\\\":\\\"\\\")}}

    No data found

    {{freelancerFixed.AvailableUserData.FirstName + \\' \\' + freelancerFixed.AvailableUserData.LastName}}

    \\\"profile\\\" \\\"profile\\\"

    NA | Total Jobs | Today Jobs

    Job Information


    • {{freelancerFixed.alertMessage}}
    Availibility

    \");\n$templateCache.put(\"app/HardwareDetails/HardwareDetails.html\",\"
    1. Hardware Details
    \");\n$templateCache.put(\"app/HealthAndSafety/HealthAndSafety.html\",\"
    1. Home
    2. Health And Safety Guidlines
    CategoryDocument Name
    {{safetyguidelineList.Category}}
    \");\n$templateCache.put(\"app/HelpDesk Home/HelpDesk_Home.html\",\"
    Ticket IDIssueVsat IDVsat IPCityCustomer NameContact No.DateSLAAge (Hrs.min)StatusOnHold ReasonsAction
    {{ticket.TAT}}{{ticket.PrimaryReason}}
    Ticket IDIssueVsat IDVsat IPCityCustomer NameDateAge (Hrs)SLAAssigneeStatusContact No.Action
    {{ticket.LinkId || ticket.TicketId}}
    1}}\\\" heading=\\\"{{ctrl.skills[1]}} TroubleShooting Tickets\\\" ng-click=\\\"ctrl.searchText=\\'\\';ctrl.searchTable();ctrl.loadMetrix(\\'TRBL\\',ctrl.skills[1])\\\">
    Ticket IDIssueVsat IDVsat IPCityCustomer NameContact No.DateSLAAge (Hrs)StatusOnHold ReasonsAction
    {{ticket.TAT}}{{ticket.PrimaryReason}}
    1}}\\\" heading=\\\"{{ctrl.skills[1]}} Field Tickets\\\" ng-click=\\\"ctrl.searchText=\\'\\';ctrl.searchTable();ctrl.loadMetrix(\\'Field\\',ctrl.skills[1])\\\">
    Ticket IDIssueVsat IDVsat IPCityCustomer NameDateAge (Hrs)SLAAssigneeStatusContact No.Action
    {{ticket.LinkId || ticket.TicketId}}
    \");\n$templateCache.put(\"app/HelpDeskCustomerView/HelpDesk_Customer_View.html\",\"
    \\\"profile\\\"

    {{ctrl.customer.CustomerName}}

    {{ctrl.customer.CustomerLocationContactModels[0].FirstName+ \\' \\' +ctrl.customer.CustomerLocationContactModels[0].LastName}}

      {{ctrl.customer.CustomerLocationContactModels[0].Mobile}}

    {{ctrl.customer.CustomerLocationContactModels[0].Email}}

    {{ctrl.AssetName}}

    {{ctrl.customer.Address1}}
    {{ctrl.customer.Address2}}
    {{ctrl.customer.Region}}, {{ctrl.customer.SubRegion}}
    Total Jobs{{ctrl.jobcount[\\\"Total Jobs\\\"]}}New Jobs{{ctrl.jobcount[\\\"New Jobs\\\"]}}Assigned Jobs{{ctrl.jobcount[\\\"Assigned Jobs\\\"]}}
    Completed Jobs{{ctrl.jobcount[\\\"Completed Jobs\\\"]}}Rejected Jobs By Field Engineer{{ctrl.jobcount[\\\"Rejected Jobs\\\"]}}Cancelled Jobs By Customer{{ctrl.jobcount[\\\"Cancelled Jobs\\\"]}}On Hold Jobs{{ctrl.jobcount[\\\"On Hold Jobs\\\"]}}Open Jobs{{ctrl.jobcount[\\\"Open Jobs\\\"]}}
    Approved Jobs{{ctrl.jobcount[\\\"Approved Jobs\\\"]}}
    Ticket IDIssueVsat IDVsat IPCityCustomer NameContact No.Call TypeLogging DateSLAAge (Hrs.min)StatusAction
    Ticket IDIssueVsat IDVsat IPCityCustomer NameContact No.Call TypeDateSLAAge (Hrs)AssigneeStatus
    {{ticket.LinkId || ticket.TicketId}}
    Assets
    Asset NameAsset IDDate
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Contracts
    Asset NameAsset IDDate
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Asset1A-12456324/04/2017
    Activities
    Add new note to the Martex project.
    Add new files to own file sharing place.
    Sent email to all users participating in new project.
    Has been taged in the latest comments about the new project.
    Changed status of second stage in the latest project.
    Add new files to own file sharing place.
    Add new files to own file sharing place.
    Sent email to all users participating in new project.
    Has been taged in the latest comments about the new project.
    Changed status of second stage in the latest project.
    Add new files to own file sharing place.
    Changed status of third stage in the Vertex project.
    Add new files to own file sharing place.
    \");\n$templateCache.put(\"app/HelpDesk_Admin/Helpdesk_Admin.html\",\"
    1\\\" class=\\\"row wrapper border-bottom white-bg\\\" style=\\\"margin-top:10px;box-shadow: 0 3px 7px 0 #a8a8a8;\\\">
    Ticket IDIssueAssetRemote Ticket IDVsat IDVsat IPCityCustomer NameContact No.DateSource TypePartner TatReceipt DatePriorityLogging RemarkSLAAge (Hrs.min)StatusOnHold ReasonsAssigneeCall TypeActionFieldStatusBill Amount
    {{ticket.TAT}}{{ticket.PrimaryReason}}
    1\\\" ng-click=\\\"ctrl.searchText=\\'\\';ctrl.searchTable();ctrl.loadMetrix(\\'TRBL\\',ctrl.skills[0])\\\">
    Ticket IDIssueAssetRemote Ticket IDVsat IDVsat IPCityCustomer NameContact No.Logging DateSource TypePartner TatReceipt DateLogging RemarkSLAAge (Hrs.min)PriorityStatusOnHold ReasonsAssigneeCall TypeActionFieldStatusBill Amount
    {{ticket.TAT}}{{ticket.PrimaryReason}}
    \");\n$templateCache.put(\"app/IT360Profile/IT360Profile.html\",\"
    \\\"Profile

    Kishan Kumar

    Software Engineer

    4.5

    (123  reviews)

    +91-7866555252

    abc123@gmail.com

    Noida Sector 57,

    Uttar Pradesh.

    Overall Experience - 2+ Years

    $5.00/hr

    English , Hindi , Tamil

    Profile Strength
    {{ profileProgress }}%
    Top Skill

    HTML

    CSS

    BOOTSTRAP

    Angular

    About

    As an Angular Developer, I Developed and designed amazing user interfaces using the Angular framework. Collaborated with backend developers to create high-performing, responsive, and highly interactive web applications. Wrote and documented clean JavaScript, HTML, and CSS.

    Bank Details
    Background Details
    Java Interview
    Date: February 23, 2023
    Feedback: Positive feedback received
    Skill: Web Development
    Angular Interview
    Date: March 13, 2021
    Feedback: Positive feedback received
    Skill: Web Development
    .NET Interview
    Date: June 23, 2023
    Feedback: Positive feedback received
    Skill: Web Development
    C# Interview
    Date: November 23, 2022
    Feedback: Positive feedback received
    Skill: Web Development
    Kotlin Interview
    Date: February 23, 2024
    Feedback: Positive feedback received
    Skill: Web Development

    Education

    Master of Computer Application

    Year of Passing 2022

    7 CGPA

    Delhi University ,India

    Bachelor of Computer Application

    Year of Passing 2019

    7.5 CGPA

    Delhi University ,India

    12th

    Year of Passing 2016

    8.5 CGPA

    CBSE Board ,India

    Previous Expercience

    Company NameDesignationDate of JoiningDate of RelievingExperience Letter
    HCL TechSoftware Developer12-03-201910-09-2022\\\"\\\"

    Project

    Project NameCompany NameRoleTeam SizeProject DetailsLanguage & Tools UseDuration
    E-commereceMeeshoFronted Developer12Create pages and design of product where show products.HTML , CSS, BOOTSTRAP, Angular PHP, LARAVEL,10 Month

    Projects With MMF

    Project IDProject NameProject DescriptionProject MangerStart DateCompletion DateCompletion DurationSkills UsedStatus
    P0000000001PansonicPansonic Inventnory Mangement10/11/202301/12/202320 DaysAngular Js , .NETClosed
    P0000000002AssurantEstimate Warrenty09/02/202414 DaysAngular Js , .NETIn-Progress

    Training Details

    Training NameTraining DateTraining AttendenceTraining DurationTraining Image
    Digital Marketing by Google12-09-20225 months\\\"\\\"

    Certificate

    • Cert. Name- example-1
    • Cert. No- 12331122
    • Cert. Issue Date- 23-12-2-20
    • Cert. Expiry Date- 23-12-2-22

    Your Post

    As an Angular Developer, I Developed and designed amazing user interfaces using the Angular framework. Collaborated with backend developers to create high-performing, responsive, and highly interactive web applications. Wrote and documented clean JavaScript, HTML, and CSS.

    User reviews

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquam pariatur officia, aperiam quidem quasi, tenetur molestiae. Architecto mollitia laborum possimus iste esse. Perferendis tempora consectetur, quae qui nihil voluptas. Maiores debitis repellendus excepturi quisquam temporibus quam nobis voluptatem, reiciendis distinctio deserunt vitae! Maxime provident, distinctio animi commodi nemo, eveniet fugit porro quos nesciunt quidem a, corporis nisi dolorum minus sit eaque error sequi ullam. Quidem ut fugiat, praesentium velit aliquam!

    Acount Setting

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Reprehenderit omnis eaque, expedita nostrum, facere libero provident laudantium. Quis, hic doloribus! Laboriosam nemo tempora praesentium. Culpa quo velit omnis, debitis maxime, sequi animi dolores commodi odio placeat, magnam, cupiditate facilis impedit veniam? Soluta aliquam excepturi illum natus adipisci ipsum quo, voluptatem, nemo, commodi, molestiae doloribus magni et. Cum, saepe enim quam voluptatum vel debitis nihil, recusandae, omnis officiis tenetur, ullam rerum.

    \");\n$templateCache.put(\"app/IT360Profile/IT360Profilesmall.html\",\"
    • {{CntrlITProfile.teamdata.jobsSummary.TotalJobs}}

      Total Jobs

    • ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalEarned}}

      Total Earning

    • 5

      Total Team

    Background Verified
    • {{VerificationDoc.DocumentName}}
    Skill Verified
    • {{skills.Skill}}
    \\\"profile\\\" \\\"profile\\\"

    {{CntrlITProfile.teamdata.userProfile.FirstName}} {{CntrlITProfile.teamdata.userProfile.LastName}}

    {{CntrlITProfile.teamdata.userProfile.Ratings.UserId}}

    ({{CntrlITProfile.teamdata.userProfile.Role}})

    • {{CntrlITProfile.TechnicianRating}}
    • Member Since {{CntrlITProfile.teamdata.userProfile.TechnicianActivationDate| date:\\'MMM dd, yyyy\\'}}
    {{CntrlITProfile.teamdata.userProfile.Address}}
    {{CntrlITProfile.teamdata.userProfile.State}}
    Jobs Summary

    {{CntrlITProfile.teamdata.jobsSummary.TotalJobs}}

    Total Jobs

    {{CntrlITProfile.teamdata.jobsSummary.Assignedjobs}}

    Assigned jobs

    {{CntrlITProfile.teamdata.jobsSummary.Completed}}

    Completed

    {{CntrlITProfile.teamdata.jobsSummary.Rejected}}

    Rejected

    {{CntrlITProfile.teamdata.jobsSummary.LeadAcceptance}} (%

    Lead Acceptance

    {{CntrlITProfile.teamdata.jobsSummary.CompletionSpeed}}

    Average Completion Speed

    {{CntrlITProfile.teamdata.jobsSummary.JobCompletionRate}} (%)

    Job Completion Rate

    {{CntrlITProfile.teamdata.jobsSummary.FirstResponseRate}} (%)

    First Response Time

    {{CntrlITProfile.teamdata.jobsSummary.AppointmentMetRate}} (%)

    Appointment Met Rate

    Payments Summary

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalEarned}}

    Total Earned

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalDueAmount}}

    Total Due Amount

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalPaid}}

    Total Paid

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalReject}}

    Total Reject

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalFailed}}

    Total Failed

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalInitial}}

    Total Initial

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalCollection}}

    Total Collection

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalService}}

    Total Service

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalHardware}}

    Total Hardware

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalBonus}}

    Total Bonus

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalPanelty}}

    Total Panelty

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalAllowance}}

    Total Allowance

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.SecurityAmount}}

    Security Amount

    {{CntrlITProfile.teamdata.paymentsSummary.SecurityExpiryDate | date:\\'dd/MM/yy\\'}}

    Security Expiry Date

    {{CntrlITProfile.teamdata.paymentsSummary.SecurityDepositDate | date:\\'dd/MM/yy\\'}}

    ReCharge On

    Execution Summary

    {{CntrlITProfile.teamdata.executionSummary.AssignedNoAction}}

    Assigned No Action

    {{CntrlITProfile.teamdata.executionSummary.CCNAB}}

    CCNAB

    {{CntrlITProfile.teamdata.executionSummary.Cancelled}}

    Cancelled

    {{CntrlITProfile.teamdata.executionSummary.AppointmentBookedDay0}}

    Appointment Booked Day 0

    {{CntrlITProfile.teamdata.executionSummary.AppointmentBookedDay1}}

    Appointment Booked Day 1

    {{CntrlITProfile.teamdata.executionSummary.AppointmentBookedDay1Plus}}

    Appointment Booked Day1+

    {{CntrlITProfile.teamdata.executionSummary.AppointmentBreached}}

    Appointment Breached

    {{CntrlITProfile.teamdata.executionSummary.InTransit}}

    InTransit

    {{CntrlITProfile.teamdata.executionSummary.OnSite}}

    On Site

    {{CntrlITProfile.teamdata.executionSummary.OnHold}}

    On Hold

    Ratings

    {{CntrlITProfile.teamdata.userProfile.AverageRating.AverageRating}} average based on {{CntrlITProfile.teamdata.userProfile.AverageRating.totalCount}} reviews.


    5 star
    {{CntrlITProfile.AvgRating.FiveStar}}
    4 star
    {{CntrlITProfile.AvgRating.FourStar}}
    3 star
    {{CntrlITProfile.AvgRating.ThreeStar}}
    2 star
    {{CntrlITProfile.AvgRating.TwoStar}}
    1 star
    {{CntrlITProfile.AvgRating.OneStar}}
    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusCatagoryCertificate
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate}}{{skills.BrandList}}{{skills.Status}}

    Total Jobs

    Assigned Jobs

    Completed

    Approved

    Rejected

    ANA

    CCNAB

    Cancelled

    ABD0

    ABD1

    ABD1+

    ABR

    InTransit

    On Site

    On Hold

     {{CntrlITProfile.upageindexCount}} - {{CntrlITProfile.userListLength}} of {{totalUsers}}
    Ticket IDTicket TypeAccountLocationAssigned DateTATJobs StatusCreation DateStatus Date
    {{workList.TicketID}}{{workList.TicketType}}{{workList.Account}}{{workList.Location}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.TAT}}{{workList.JobsStatus}}{{workList.JobsCreationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.InTransitDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnSiteDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AppointmentBookedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CompletionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnHoldDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.RejectionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CancellationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.ApprovedDate | date:\\'dd/MM/yy hh:mm a\\'}}
     {{CntrlITProfile.fpageindexCount}} - {{CntrlITProfile.financeListLength}} of {{totalFinList}}
    Total Base PriceTotal Payable AmountTotal CommissionTotal ServiceTotal HardwareTotal BonusTotal PaneltyTotal CollectionTotal AwallanceCashfree IdFailed ReasonStatus
    {{financeList.TotalBasePrice}}{{financeList.TotalPayableAmount}}{{financeList.TotalCommission}}{{financeList.TotalService}}{{financeList.TotalHardware}}{{financeList.TotalBonus}}{{financeList.TotalPanelty}}{{financeList.TotalCollection}}{{financeList.TotalAwallance}}{{financeList.CashfreeId}}{{financeList.FailedReason}}{{financeList.Status}}
    Job IDJob TypeProjectCustomerLocationTechnician NameFollow Up ReasonCreation DateStatusTATRating
    {{financesmry.jobID}}{{financesmry.jobType}}{{financesmry.project}}{{financesmry.customer}}{{financesmry.location}}{{financesmry.technicianName}}{{financesmry.followUpReason}}{{financesmry.creationDate | date: \\'dd-MMM-yyyy hh:mm:ss a\\'}}{{financesmry.status}}{{financesmry.tat}}{{financesmry.rating}}
    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusCatagoryCertificate
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate}}{{skills.BrandList}}{{skills.Status}}
    Previous Company Details
    Company NameProject NameDesignationAccountDate of JoiningDate of RelievingExperience Letter
    {{previousCompany.CompanyName}}{{previousCompany.ProjectName}}{{previousCompany.Designation}}{{previousCompany.AccountName}}{{previousCompany.DateOfJoining | date:\\'dd-MMM-yyyy\\'}}{{previousCompany.DateOfRelieving | date:\\'dd-MMM-yyyy\\'}} \\\"\\\"
    Training Details
    Training NameTraining DateTraining ImageTraining Attendence
    {{Audittraining.TrainingName}}{{Audittraining.TrainingDate | date:\\'dd-MMM-yyyy\\'}} \\\"\\\" \\\"\\\"
    Ratings

    {{CntrlITProfile.reviewData.OverAllRating.AverageRating}} average based on {{CntrlITProfile.reviewData.OverAllRating.totalCount}} reviews.


    {{Reviews.CustomerName}}Source : MyMobiforce
    (Reviewed on {{Reviews.ReviewDate}})

    {{Reviews.AdditionalRemark}}

    Assets
    Equipment Details
    Equipment NameBrand NameView EquipmentItem Serial NumberManufactured OnExpired On
    {{toolDetail.ToolName}}{{toolDetail.BrandName}}{{toolDetail.ItemSerialNumber}}NA {{toolDetail.DateOfManufacturing}}{{toolDetail.ExpireDate}}
    Audit Details
    Audit SummaryAuditorAudited OnStatusReport
    {{auditDetail.AuditPurpose}}{{auditDetail.AuditorDetails.AuditorName}}{{auditDetail.AuditDate | date: \\'dd-MMM-yyyy\\'}}{{auditDetail.AuditResult}} {{auditDetail.AuditResult}} {{auditDetail.AuditResult}}
    \");\n$templateCache.put(\"app/ITEngineer/ITEngineer.html\",\"
    \\\"Profile

    {{CntrlITEngineerProfile.userInfo.FirstName}} {{CntrlITEngineerProfile.userInfo.LastName}}

    {{CntrlITEngineerProfile.userInfo.Designation}}

    {{CntrlITEngineerProfile.TechnicianRating}}

    {{CntrlITEngineerProfile.userInfo.ContactNumber}}

    {{CntrlITEngineerProfile.userInfo.PersonalEmail}}

    {{CntrlITEngineerProfile.userInfo.Address}}

    Overall Experience - {{CntrlITEngineerProfile.userInfo.Experience}} Years

    ${{CntrlITEngineerProfile.userInfo.HourlyRate}}/hr

    {{language}},

    Top Skill
    • {{skills}}
    Bank Details
    Background Details

    Projects

    \\\"College

    {{project.ProjectName}}

    {{project.CompanyName}}

    {{project.StartDate | date:\\'dd/MMM/yyyy\\'}} - {{project.EndDate | date:\\'dd/MMM/yyyy\\'}}

    Skills : {{skill}},

    • {{desc}}

    Education

    \\\"College

    {{education.CollegeName}}

    {{education.Class}}

    {{education.StartDate | date:\\'yyyy\\'}} - {{education.EndDate | date:\\'yyyy\\'}}

    Grade: {{education.Grade}}

    Previous Expercience

    \\\"Company

    {{experience.Designation}}

    {{experience.CompanyName}}

    {{experience.DateOfJoining | date:\\'dd/MMM/yyyy\\'}} - {{experience.DateOfRelieving | date:\\'dd/MMM/yyyy\\'}} . {{experience.Tenure}}

    {{experience.WorkLocation}}

    Project Name : {{experience.ProjectName}}

    • {{des}}

    About

    {{about}}

    Expertise

    • {{expertise}}

    Certificate

    \\\"profile\\\" \\\"profile\\\" \\\"profile\\\"
    • Cert. Name: {{certificate.CertificateName}}
    • Cert. No: {{certificate.CertificateNo}}
    • Cert. Issue Date: {{certificate.CertificateIssueDate}}
    • Cert. Expiry Date: {{certificate.CertificateExpiryDate}}
    Previous Next
    \");\n$templateCache.put(\"app/ITEngineer/ITEngineersmall.html\",\"
    • {{CntrlITProfile.teamdata.jobsSummary.TotalJobs}}

      Total Jobs

    • ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalEarned}}

      Total Earning

    • 5

      Total Team

    Background Verified
    • {{VerificationDoc.DocumentName}}
    Skill Verified
    • {{skills.Skill}}
    \\\"profile\\\" \\\"profile\\\"

    {{CntrlITProfile.teamdata.userProfile.FirstName}} {{CntrlITProfile.teamdata.userProfile.LastName}}

    {{CntrlITProfile.teamdata.userProfile.Ratings.UserId}}

    ({{CntrlITProfile.teamdata.userProfile.Role}})

    • {{CntrlITProfile.TechnicianRating}}
    • Member Since {{CntrlITProfile.teamdata.userProfile.TechnicianActivationDate| date:\\'MMM dd, yyyy\\'}}
    {{CntrlITProfile.teamdata.userProfile.Address}}
    {{CntrlITProfile.teamdata.userProfile.State}}
    Jobs Summary

    {{CntrlITProfile.teamdata.jobsSummary.TotalJobs}}

    Total Jobs

    {{CntrlITProfile.teamdata.jobsSummary.Assignedjobs}}

    Assigned jobs

    {{CntrlITProfile.teamdata.jobsSummary.Completed}}

    Completed

    {{CntrlITProfile.teamdata.jobsSummary.Rejected}}

    Rejected

    {{CntrlITProfile.teamdata.jobsSummary.LeadAcceptance}} (%

    Lead Acceptance

    {{CntrlITProfile.teamdata.jobsSummary.CompletionSpeed}}

    Average Completion Speed

    {{CntrlITProfile.teamdata.jobsSummary.JobCompletionRate}} (%)

    Job Completion Rate

    {{CntrlITProfile.teamdata.jobsSummary.FirstResponseRate}} (%)

    First Response Time

    {{CntrlITProfile.teamdata.jobsSummary.AppointmentMetRate}} (%)

    Appointment Met Rate

    Payments Summary

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalEarned}}

    Total Earned

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalDueAmount}}

    Total Due Amount

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalPaid}}

    Total Paid

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalReject}}

    Total Reject

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalFailed}}

    Total Failed

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalInitial}}

    Total Initial

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalCollection}}

    Total Collection

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalService}}

    Total Service

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalHardware}}

    Total Hardware

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalBonus}}

    Total Bonus

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalPanelty}}

    Total Panelty

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.TotalAllowance}}

    Total Allowance

    ₹ {{CntrlITProfile.teamdata.paymentsSummary.SecurityAmount}}

    Security Amount

    {{CntrlITProfile.teamdata.paymentsSummary.SecurityExpiryDate | date:\\'dd/MM/yy\\'}}

    Security Expiry Date

    {{CntrlITProfile.teamdata.paymentsSummary.SecurityDepositDate | date:\\'dd/MM/yy\\'}}

    ReCharge On

    Execution Summary

    {{CntrlITProfile.teamdata.executionSummary.AssignedNoAction}}

    Assigned No Action

    {{CntrlITProfile.teamdata.executionSummary.CCNAB}}

    CCNAB

    {{CntrlITProfile.teamdata.executionSummary.Cancelled}}

    Cancelled

    {{CntrlITProfile.teamdata.executionSummary.AppointmentBookedDay0}}

    Appointment Booked Day 0

    {{CntrlITProfile.teamdata.executionSummary.AppointmentBookedDay1}}

    Appointment Booked Day 1

    {{CntrlITProfile.teamdata.executionSummary.AppointmentBookedDay1Plus}}

    Appointment Booked Day1+

    {{CntrlITProfile.teamdata.executionSummary.AppointmentBreached}}

    Appointment Breached

    {{CntrlITProfile.teamdata.executionSummary.InTransit}}

    InTransit

    {{CntrlITProfile.teamdata.executionSummary.OnSite}}

    On Site

    {{CntrlITProfile.teamdata.executionSummary.OnHold}}

    On Hold

    Ratings

    {{CntrlITProfile.teamdata.userProfile.AverageRating.AverageRating}} average based on {{CntrlITProfile.teamdata.userProfile.AverageRating.totalCount}} reviews.


    5 star
    {{CntrlITProfile.AvgRating.FiveStar}}
    4 star
    {{CntrlITProfile.AvgRating.FourStar}}
    3 star
    {{CntrlITProfile.AvgRating.ThreeStar}}
    2 star
    {{CntrlITProfile.AvgRating.TwoStar}}
    1 star
    {{CntrlITProfile.AvgRating.OneStar}}
    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusCatagoryCertificate
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate}}{{skills.BrandList}}{{skills.Status}}

    Total Jobs

    Assigned Jobs

    Completed

    Approved

    Rejected

    ANA

    CCNAB

    Cancelled

    ABD0

    ABD1

    ABD1+

    ABR

    InTransit

    On Site

    On Hold

     {{CntrlITProfile.upageindexCount}} - {{CntrlITProfile.userListLength}} of {{totalUsers}}
    Ticket IDTicket TypeAccountLocationAssigned DateTATJobs StatusCreation DateStatus Date
    {{workList.TicketID}}{{workList.TicketType}}{{workList.Account}}{{workList.Location}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.TAT}}{{workList.JobsStatus}}{{workList.JobsCreationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.InTransitDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnSiteDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AppointmentBookedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CompletionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnHoldDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.RejectionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CancellationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.ApprovedDate | date:\\'dd/MM/yy hh:mm a\\'}}
     {{CntrlITProfile.fpageindexCount}} - {{CntrlITProfile.financeListLength}} of {{totalFinList}}
    Total Base PriceTotal Payable AmountTotal CommissionTotal ServiceTotal HardwareTotal BonusTotal PaneltyTotal CollectionTotal AwallanceCashfree IdFailed ReasonStatus
    {{financeList.TotalBasePrice}}{{financeList.TotalPayableAmount}}{{financeList.TotalCommission}}{{financeList.TotalService}}{{financeList.TotalHardware}}{{financeList.TotalBonus}}{{financeList.TotalPanelty}}{{financeList.TotalCollection}}{{financeList.TotalAwallance}}{{financeList.CashfreeId}}{{financeList.FailedReason}}{{financeList.Status}}
    Job IDJob TypeProjectCustomerLocationTechnician NameFollow Up ReasonCreation DateStatusTATRating
    {{financesmry.jobID}}{{financesmry.jobType}}{{financesmry.project}}{{financesmry.customer}}{{financesmry.location}}{{financesmry.technicianName}}{{financesmry.followUpReason}}{{financesmry.creationDate | date: \\'dd-MMM-yyyy hh:mm:ss a\\'}}{{financesmry.status}}{{financesmry.tat}}{{financesmry.rating}}
    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusCatagoryCertificate
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate}}{{skills.BrandList}}{{skills.Status}}
    Previous Company Details
    Company NameProject NameDesignationAccountDate of JoiningDate of RelievingExperience Letter
    {{previousCompany.CompanyName}}{{previousCompany.ProjectName}}{{previousCompany.Designation}}{{previousCompany.AccountName}}{{previousCompany.DateOfJoining | date:\\'dd-MMM-yyyy\\'}}{{previousCompany.DateOfRelieving | date:\\'dd-MMM-yyyy\\'}} \\\"\\\"
    Training Details
    Training NameTraining DateTraining ImageTraining Attendence
    {{Audittraining.TrainingName}}{{Audittraining.TrainingDate | date:\\'dd-MMM-yyyy\\'}} \\\"\\\" \\\"\\\"
    Ratings

    {{CntrlITProfile.reviewData.OverAllRating.AverageRating}} average based on {{CntrlITProfile.reviewData.OverAllRating.totalCount}} reviews.


    {{Reviews.CustomerName}}Source : MyMobiforce
    (Reviewed on {{Reviews.ReviewDate}})

    {{Reviews.AdditionalRemark}}

    Assets
    Equipment Details
    Equipment NameBrand NameView EquipmentItem Serial NumberManufactured OnExpired On
    {{toolDetail.ToolName}}{{toolDetail.BrandName}}{{toolDetail.ItemSerialNumber}}NA {{toolDetail.DateOfManufacturing}}{{toolDetail.ExpireDate}}
    Audit Details
    Audit SummaryAuditorAudited OnStatusReport
    {{auditDetail.AuditPurpose}}{{auditDetail.AuditorDetails.AuditorName}}{{auditDetail.AuditDate | date: \\'dd-MMM-yyyy\\'}}{{auditDetail.AuditResult}} {{auditDetail.AuditResult}} {{auditDetail.AuditResult}}
    \");\n$templateCache.put(\"app/IntegrationPointDetailView/IntegrationPointDetailView.html\",\"
    1. Home
    2. Integration Check Details
    • {{status.IntegrationPoint}}

    Ticket ID - {{IntegrationPointDetailViewCtrl.TicketInfo.MMFTicketId}}  

    on {{IntegrationPointDetailViewCtrl.TicketInfo.CreatedOn | date:\\'dd/MMM/yyyy h:mm:ss a\\' }}

    Brand Ticket ID - {{ IntegrationPointDetailViewCtrl.TicketInfo.BrandTicketId }}

    Current Step - {{ IntegrationPointDetailViewCtrl.TicketInfo.CurrentOrderIndex }}

    Failed Steps - {{ IntegrationPointDetailViewCtrl.TicketInfo.CurrentFailIndex }}

    Total Integration Points - {{ IntegrationPointDetailViewCtrl.TicketInfo.TotalIntgrationPoint }}

    Overall Status - {{ IntegrationPointDetailViewCtrl.TicketInfo.OverAllFinalStatus }}

    Integration Point List
    Integration PointIntegration UrlIP Point TypeOrder IndexRetry CountStatus
    {{newJob.IntegrationPoint}}{{newJob.IntegrationUrl}}{{newJob.IPPointType}}{{newJob.OrderIndex}}{{newJob.RetryCount}}
    \");\n$templateCache.put(\"app/InventoryCart/InventoryCart.html\",\"
    1. Home
    2. Inventory List
    Showing {{InventoryCartCntrl.pageindexCount}} to {{InventoryCartCntrl.inventoryListLength}} of {{totalInvList}} entries
    Part IDPart NamePart CodePart TypeBrandPart GroupPart Sub-GroupService Center Price (₹)Dealer Price (₹)Dealer Customer Price (₹)Customer Price (₹)Warehouse Price (₹)UnitAdd to cart
    {{inventoryList.strMMFPartId}}{{inventoryList.strPartName}}{{inventoryList.strSKUId}}{{inventoryList.strPartType}}{{inventoryList.strPartBrand}}{{inventoryList.strPartCategoryGroup}}{{partsubgroup}}{{inventoryList.dPartDiscountedPrice}}{{inventoryList.dPartDealerPrice}}{{inventoryList.dPartDealerCustomerPrice}}{{inventoryList.dPartCustomerPrice}}{{inventoryList.dPartWareHousePrice}}{{inventoryList.strPartUnit}}
    Part IDPart NamePart CodeBrandWarehouseService Center Price (₹)Customer Price (₹)Total PriceTotal Price(with GST)QuantityUnitRemove Item
    {{cartItem.strItemId}}{{cartItem.strItemName}}{{cartItem.strSKUId}}{{cartItem.strItemBrand}}{{cartItem.strWareHouseId}}{{cartItem.dItemPriceAfterDiscount}}{{cartItem.dPartCustomerPrice}}{{cartItem.dItemTotalPrice}}{{cartItem.dItemTotalPriceWithGST}}
    {{cartItem.strItemUnit}}
    Total Items{{InventoryCartCntrl.cartList.CartItemCount}}
    SubTotal₹ {{InventoryCartCntrl.cartList.TotalAmount}}
    Showing {{InventoryCartCntrl.opageindexCount}} to {{InventoryCartCntrl.orderListLength}} of {{totalOrderList}} entries
    Order IDCall IDParent Order IDOrder StatusActionOrder SourcePart ListOrder DateOrder QuantityOrder Amount (₹)Order Amount(with GST) (₹)Packaging IDPackaging DatePackage Tracking IDShipment IDExpected Delivery DateShipment DateGR No.Shipment Doc.Tracking LinkBilling AddressComment
    {{orderList.OrderId}}{{orderList.TicketId}}{{orderList.ParentOrderId}}{{orderList.OrderStatus}} {{orderList.OrderTicketType}}{{orderList.PartList}}{{orderList.OrderDate | date:\\'dd/MMM/yy h:mm:ss a\\'}}{{orderList.OrderItemCount}}{{orderList.OrderTotalAmount}}{{orderList.OrderTotalAmountWithGST}}{{orderList.objPackageDetails[0].strPackageId}}{{orderList.objPackageDetails[0].datePackedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}{{orderList.objPackageDetails[0].strPackageTrackingId}}{{orderList.objPackageDetails[0].strShipmentId}}{{orderList.ExpectedDeliveryDate | date:\\'dd/MMM/yy h:mm:ss a\\'}}{{orderList.ShipmentDate | date:\\'dd/MMM/yy h:mm:ss a\\'}}{{orderList.GRNumber}}{{orderList.Attachement}} \\\"No{{trackingLink}}{{orderList.BillingAddress}}{{orderList.CancelComment}}
    Call IDPart IDPart NamePart ImageBrandPart CodePart DescriptionItem QuantityItem UnitService Center Price Per Unit (₹)Total Amount (₹)Total Amount(with GST) (₹)
    {{tickets.strTicketId}}{{lineitem.strItemId}}{{lineitem.strItemName}}\\\"image-1\\\"{{lineitem.strItemBrand}}{{lineitem.strSKUId}}
    • {{orderdesc}}
    {{lineitem.nItemQuantity}}{{lineitem.strItemUnit}}{{lineitem.dItemPriceAfterDiscount}}{{lineitem.dItemTotalPrice}}{{lineitem.dItemTotalPriceWithGST}}

    Part Details

    Part ID:{{InventoryCartCntrl.PartDetails.strMMFPartId}}
    Part Name:{{InventoryCartCntrl.PartDetails.strPartName}}
    Part Code:{{InventoryCartCntrl.PartDetails.strSKUId}}
    BrandName :{{InventoryCartCntrl.PartDetails.strPartBrand}}
    Unit :{{InventoryCartCntrl.PartDetails.strPartUnit}}

    About

    • {{description}}

    Part Details

    Part ID:{{InventoryCartCntrl.CartPartDetails.strItemId}}
    Part Name:{{InventoryCartCntrl.CartPartDetails.strItemName}}
    Part Code:{{InventoryCartCntrl.CartPartDetails.strSKUId}}
    BrandName :{{InventoryCartCntrl.CartPartDetails.strItemBrand}}
    Unit :{{InventoryCartCntrl.CartPartDetails.strItemUnit}}

    About

    • {{cartdescription}}
    \");\n$templateCache.put(\"app/Inventory_new/inventory_new.html\",\"
    1. Home
    2. Inventory List
     {{inventorynewCntrl.fpageindexCount}} - {{inventorynewCntrl.financeListLength}} of {{totalFinList}}
    Ticket IdProduct IdBrandPart GroupPart NameSKU CodePart DescriptionAging (Days)Item QuantityOrder QuantityOrder Amount (₹)Order StatusShipment DateTechnician NameAction
    {{ticketorderlist.ItemImage}}{{ticketorderlist.BrandName}}{{itemGroup}}{{name}}{{ticketorderlist.SKUId}}{{ticketorderlist.Description | limitTo:20 }}...{{ ticketorderlist.Aging}}{{ticketorderlist.ItemQuantity}}{{ticketorderlist.OrderQuantity}}{{ticketorderlist.OrderAmount}} Delivered{{ticketorderlist.Shipment_date}}{{ticketorderlist.TechnicianName}}
    BrandPart GroupPart NameSKU CodePart DescriptionItem QuantityOrder Amount (₹)Approval StatusAction
    {{order.Brand}}{{order.ItemGroup}}{{order.LineItemDescription}}{{order.LineItemCode}}{{order.LineItemDescription | limitTo:40}}...{{order.LineItemQuantity}}{{order.dLineItemWinPrice}}{{order.BackendApprovalStatus}}
     {{inventorynewCntrl.fpageindexCount}} - {{inventorynewCntrl.financeListLength}} of {{totalFinList}}
    ZOHO OrderIdTicket IdProduct IdBrandPart GroupPart NameSKU CodeTracking IdPart DescriptionAging (Days)Item QuantityOrder QuantityOrder StatusPart Consumed DateShipment DateTechnician Name
    {{ticketorderlist.ZOHOSalesOrderId}}{{ticketorderlist.BrandName}}{{itemGroup}}{{name}}{{ticketorderlist.SKUId}}{{ticketorderlist.TrackingId}}{{ticketorderlist.Description | limitTo:20 }}...{{ ticketorderlist.Aging}}{{ticketorderlist.ItemQuantity}}{{ticketorderlist.OrderQuantity}} Delivered{{ticketorderlist.PartConsumedDate}}{{ticketorderlist.Shipment_date}}{{ticketorderlist.TechnicianName}}
     {{inventorynewCntrl.fpageindexCount}} - {{inventorynewCntrl.financeListLength}} of {{totalFinList}}
    Ticket IdProduct IdBrandPart GroupPart NameSKU CodePart DescriptionOrder StatusItem QuantityOrder QuantityTechnician Name
    {{ticketorderlist.BrandName}}{{ticketorderlist.ItemGroup}}{{ticketorderlist.ItemName}}{{ticketorderlist.SKUId}}{{ticketorderlist.Description | limitTo:20}}...{{ ticketorderlist.OrderStatus}}{{ticketorderlist.ItemQuantity}}{{ticketorderlist.OrderQuantity}}{{ticketorderlist.TechnicianName}}
     {{inventorynewCntrl.epageindexCount}} - {{inventorynewCntrl.historyListLength}} of {{totalSalesorder}}
    ZOHO OrderIdTicket IdProduct IdBrandPart GroupPart NamePart DescriptionSKU IdTracking IdOrder DateAging (Days)Item QuantityOrder QuantityOrder StatusInvoice Value (₹)Shipment DateAction
    {{TeamDetail.ZOHOSalesOrderId}}{{TeamDetail.TicketId}}{{TeamDetail.ItemImage}}{{TeamDetail.BrandName}}{{TeamDetail.ItemGroup}}{{name}}{{TeamDetail.Description | limitTo:20 }}...{{TeamDetail.SKUId}}{{TeamDetail.TrackingId}}{{ TeamDetail.CreatedOn}}{{ TeamDetail.Aging}}{{TeamDetail.ItemQuantity}}{{TeamDetail.OrderQuantity}} Delivered{{TeamDetail.OrderAmount}}{{TeamDetail.Shipment_date}}
    Part NameSKU CodePart DescriptionValue (₹)Quantity Ordered
    {{order.name}}{{order.sku}}{{order.description | limitTo:60}}...{{order.item_total}}{{order.quantity}}
     {{inventorynewCntrl.epageindexCount}} - {{inventorynewCntrl.historyListLength}} of {{totalSalesorder}}
    ZOHO OrderIdTicket IdProduct IdBrandPart GroupPart NamePart DescriptionSKU IdOrder DateAging(Days)Item QuantityOrder QuantityOrder StatusInvoice Value (₹)Shipment DateAction
    {{PartOrderData.ZOHOSalesOrderId}}{{PartOrderData.TicketId}}{{PartOrderData.ItemImage}}{{PartOrderData.BrandName}}{{PartOrderData.ItemGroup}}{{name}}{{PartOrderData.Description | limitTo:20}}...{{ PartOrderData.SKUId}}{{ PartOrderData.CreatedOn}}{{ PartOrderData.Aging}}{{PartOrderData.ItemQuantity}}{{PartOrderData.OrderQuantity}} Accepted{{PartOrderData.OrderAmount}}{{PartOrderData.Shipment_date}}
    Part NameSKU CodePart DescriptionValue (₹)Quantity Ordered
    {{order.name}}{{order.sku}}{{order.description | limitTo:60}}...{{order.item_total}}{{order.quantity}}
     {{inventorynewCntrl.dpageindexCount}} - {{inventorynewCntrl.myDefectedListLength}} of {{totalDefected}}
    Return IdTracking IdBrandPart GroupPart NamePart DescriptionReturn DateReturn TypeProduct TypeDamage TypeQuantityAction
    {{defectedstock.DefectItemId}}{{defectedstock.TrackingId}}{{defectedstock.BrandName}}{{defectedstock.ItemGroup}}{{defectedstock.LineItemDescription}}{{defectedstock.LineItemDisplayDescription| limitTo:20 }}...{{defectedstock.CreatedDate}}{{defectedstock.DefectStockType}}{{defectedstock.ReturnType}}{{defectedstock.DamgeStockType}}{{defectedstock.DefectStockCount}}
    Inventory Value: ₹ {{inventorynewCntrl.totalInventoryValue}}
     {{inventorynewCntrl.dpageindexCount}} - {{inventorynewCntrl.myStockListLength}} of {{totalInventory}}
    Technician IDTechnician NameBrandPart GroupPart NamePart DescriptionSKU CodeActionValue of Inventory (₹)Allocated StockConsumed StockAvailable Stock
    {{inventorystock.UserId}}{{inventorystock.UserName}}{{inventorystock.Brand}}{{inventorystock.ItemGroup}}{{ inventorystock.LineItemDescription}}{{ inventorystock.LineItemDisplayDescription| limitTo:20 }}...{{ inventorystock.LineItemCode}} {{ inventorystock.dLineItemWinPrice}}
    Inventory Value: ₹ {{inventorynewCntrl.totalInventoryValue}}
     {{inventorynewCntrl.dpageindexCount}} - {{inventorynewCntrl.myStockListLength}} of {{totalInventory}}
    Product Serial No.BrandPart GroupPart NamePart DescriptionSKU CodeActionValue of Inventory (₹)Open StockCurrent Stock
    {{inventorystock.LineItemId}}{{inventorystock.Brand}}{{inventorystock.ItemGroup}}{{ inventorystock.LineItemDescription}}{{ inventorystock.LineItemDisplayDescription| limitTo:20 }}...{{ inventorystock.LineItemCode}} {{ inventorystock.dLineItemWinPrice}}
    Inventory Value: ₹ {{inventorynewCntrl.totalInventoryValue}}
     {{inventorynewCntrl.dpageindexCount}} - {{inventorynewCntrl.myStockListLength}} of {{totalInventory}}
    Product Serial No.BrandPart GroupPart NamePart DescriptionSKU CodeActionValue of Inventory (₹)Created OnDamage TypeDefective Stock
    {{inventorystock.LineItemId}}{{inventorystock.Brand}}{{inventorystock.ItemGroup}}{{inventorystock.LineItemDescription}}{{ inventorystock.LineItemDisplayDescription| limitTo:20 }}...{{ inventorystock.LineItemCode}}{{ inventorystock.dLineItemWinPrice}}{{inventorystock.stockAcceptDate}}{{inventorystock.DamgeStockType}}{{inventorystock.DefectStockCount}}

    {{inventorynewCntrl.CountDetails.LineItemDescription}} ( {{ inventorynewCntrl.CountDetails.LineItemCode}} )

    All Team List

    \\\"image\\\"

    User Name: {{user.UserName}}

    User Id: {{user.UserId}}

    Role:{{user.Role}}

    Current Stock: {{user.StockCount}}

    Hardware Tracking

    \\\"image\\\"
    Part Name : {{inventorynewCntrl.TrackDetails. ItemName}}
    SKU Code : {{inventorynewCntrl.TrackDetails. SKUId}}
    Order Status: {{inventorynewCntrl.TrackDetails.OrderStatus}}
    Tracking# - {{inventorynewCntrl.TrackingDetails.tracking_number}}
    • {{orderStatus.date | date: \\'dd/MMM/yyyy\\'}}

      {{orderStatus.time |date: \\'h:mm a\\'}}
    • {{orderStatus.notes}} Delivered

    {{inventorynewCntrl.PartDetails.LineItemDescription}}

    \\\"Part

    Current Stock : {{inventorynewCntrl.PartDetails.StockCount}}


    Open Stock :   {{inventorynewCntrl.PartDetails.TotalAcceptStockCount}}
    Current Stock :   {{inventorynewCntrl.PartDetails.StockCount}}
    Consumed Stock :   {{inventorynewCntrl.PartDetails.TotalAcceptStockCount - inventorynewCntrl.PartDetails.StockCount}}
    \");\n$templateCache.put(\"app/InventoryItemList/InventoryItemList.html\",\"
    1. Home
    2. Find Price
     Showing {{CntrlInventory.pageindexCount}} to {{CntrlInventory.inventoryListLength}} of {{totalInvList}} entries
    ActionPart IDNamePart CodeBrandPart GroupPart Sub GroupManufacturerModel NumberHSNCodeIs ReturnableService Center Price (₹)Dealer Price (₹)Dealer Customer Price (₹)Customer Price (₹)Warehouse Price (₹)IGST (%)CGST(%)SGST(%)
    {{inventoryList.MMFPartId}}{{inventoryList.PartName}}{{inventoryList.SKUId}}{{inventoryList.PartBrand}}{{inventoryList.PartCategoryGroup}}{{partsubgroup}}{{inventoryList.Manufacturer}}{{inventoryList.ModelNumber}}{{inventoryList.HSNCode}}Yes No{{inventoryList.PartDiscountedPrice}}{{inventoryList.PartDealerPrice}}{{inventoryList.PartDealerCustomerPrice}}{{inventoryList.PartCustomerPrice}}{{inventoryList.PartWareHousePrice}}{{inventoryList.dIGSTTax}}{{inventoryList.dCGSTTax}}{{inventoryList.dSGSTTax}}

    Part Details

    Part ID:{{CntrlInventory.PartDetails.MMFPartId}}
    Part Name:{{CntrlInventory.PartDetails.PartName}}
    Part Code :{{CntrlInventory.PartDetails.SKUId}}
    BrandName :{{CntrlInventory.PartDetails.PartBrand}}
    Unit :{{CntrlInventory.PartDetails.PartUnit}}

    About

    • {{description}}
    \");\n$templateCache.put(\"app/InvigilatorShiftAttendance/InvigilatorShiftAttendance.html\",\"
    1. Home
    2. Invigilators Shift Attendance
    Invigilator IDInvigilator NameCampaign IDCampaign NameMark AttandanceTotal Days WorkedTotal Amount EarnedDay{{ date.day }}
    Date{{ date.date | date : \\'dd-MMM\\'}}
    {{staff.users.UserId}}{{staff.users.UserName}}{{staff.users.CampaignId}}{{staff.users.LocationName}}{{staff.users.TotalDaysWorked}}{{staff.users.AmountEarned}}{{shifts.ActualStartTime | date:\\'HH:mm\\'}} - {{shifts.ActualEndTime | date:\\'HH:mm\\'}} OFF -
    \");\n$templateCache.put(\"app/InvitedAllUser/InvitedAllUser.html\",\"
    1. Home
    2. All Registered User
    {{InvitedAllUserCtrl.UsersType}}
      {{InvitedAllUserCtrl.upageindexCount}} - {{InvitedAllUserCtrl.userListLength}} of {{totalUsers}}
    Registration IdUser IdNameContact NumberCurrent Add1CityStatePin CodeRoleUserTypeAdharPanCriminalUPIBankSkillSkill VerifiedFirst LoginstatusReferred ByTeam SizeSourceInventory StatusWork LocationRegistration DateReportingToDOBCompany NameCompany Registration NumberGST AvailableGST Certified NoMSME CertifiedMSME Certified NO.Partner (TPI)
    {{users.SkillDataNew}}
    {{location}} YES NO
    No User Found

    \");\n$templateCache.put(\"app/InvitedUser/InvitedUser.html\",\"
    1. Home
    2. Invited User
      
    ActionInvitee NameInvitee MobileEmailSkillCityStateInvitation DateRegistration StatusReferred IdReferred By
    {{user.RegistrationStatus}}
    Choose Filters

    \");\n$templateCache.put(\"app/Invoice/FinanceCustomerInvoice.html\",\"

    All Customer Invoice


    SelectInvoice NoStatusTicket idProject NameCustomer NameUser TypeDescriptionTechnician IdAccount NameGross Base PriceBase PriceService TaxCompleted dateInvoice DateAgeRemark

    \");\n$templateCache.put(\"app/Invoice/FinanceFreelancerInvoice.html\",\"

    All Freelancer Invoice


    SelectInvoice NoStatusInvoice DateTicket idProject NameDescriptionUser TypeTechnician IdTechnician NameAccount NameFreelancer PriceCompleted dateAgeRemark

    \");\n$templateCache.put(\"app/InvoiceAccount/CustomerInvoice.html\",\"
    1. Home
    2. Customer Invoice
    All Invoices
    Invoice pending Amount
    Invoice pending for Submission
    Invoice submitted for Payment
    Payment Received
    Invoice Rejected
    Invoice Breached
    of {{totalTicketUsers}} records
    {{CustomerInvoiceCtrl.pageindexCount}} to {{CustomerInvoiceCtrl.ticketListLength}} of {{totalTicketUsers}}
    of {{totalTableUsersInvoice}} records
    {{CustomerInvoiceCtrl.pageindexCountInvoice}} to {{CustomerInvoiceCtrl.ticketListLengthInvoice}} of {{totalTableUsersInvoice}}
    of {{totalTableUsersAdvice}} records
    {{CustomerInvoiceCtrl.pageindexCountAdvice}} to {{CustomerInvoiceCtrl.ticketListLengthAdvice}} of {{totalTableUsersAdvice}}
    {{CustomerInvoiceCtrl.pageindexCountCredit}} to {{CustomerInvoiceCtrl.ticketListLengthCredit}} of {{totalCreditNotes}}
    Ticket idPO NumberAmountAccountCityStateInvoice StatusTicket StatusJob TypeJob DescriptionCreated OnReady to Raised On
    ReadyToRaise Age (days)
    Approved On
    Approved Age (days)
    {{customerInvoice.TicketId}}
    ActionInvoice IDTicket CountAttach InvoiceReGenerate IRNCustomer InvoicePO NumberCloned InvoiceAmountInvoice Amount DueAccountStateInvoice StatusJob DescriptionDue Date
    Age(dd:hh)
    Breach StatusCreated OnSubmitted OnPaid OnRejected On
    • Submit

    • Reject

    • Payment Received

    • Clone

    • Mail Invoice

  • {{customerInvoice.InvoiceNumber}}
    {{customerInvoice.CustomerInvoiceAttachment.substring(0, 20)}} {{customerInvoice.CustomerInvoiceAttachment.substring(0, 20)}}
    Account NameAdvice Received OnAmountInvoice No.Payment ModeReference No.Remittance OnNarration
    {{advice.AccountName}}{{advice.AdviceReceivedOn}}{{advice.Amount}}{{advice.InvoiceNo}}{{advice.PaymentMode}}{{advice.ReferenceNo}}{{advice.RemittanceOn}}{{advice.Narration}}
    Account NameAdvice Received OnAmountInvoice No.Payment ModeReference No.Remittance OnNarration
    {{advice.AccountName}}{{advice.AdviceReceivedOn}}{{advice.Amount}}{{advice.InvoiceNo}}{{advice.PaymentMode}}{{advice.ReferenceNo}}{{advice.RemittanceOn}}{{advice.Narration}}
    SelectCredit Note NumberPO NumberInvoice NumberAmountAccountStateDescriptionInvoice StatusCreated OnRejected On
    {{customerInvoice.CreditNoteNumber}}

    \");\n$templateCache.put(\"app/InvoiceAcceptance/InvoiceAcceptance.html\",\"
    1. Home
    2. Inventory List
    Order IDInvoice NoInvoice DateInvoice Item QTYInvoice Total Value (₹)Invoice Total Value(with GST) (₹)StatusAction
    {{invoices.strOrderId}}{{invoices.strInvoiceId}}{{invoices.dateInvoiceDate | date:\\'dd/MMM/yy h:mm:ss a\\'}}{{invoices.nInvoiceItemCount}}₹ {{invoices.dInvoiceTotalAmount}}₹ {{invoices.dInvoiceTotalAmountWithGST}}{{invoices.strInvoiceStatus}}
    Settled Credit :200
    UnSettled Credit :100
    Total Credit :300
    Part IDPart NameSKU IDBrand
    \");\n$templateCache.put(\"app/InvoiceConfigurations/InvoiceConfigurations.html\",\"
    1. Home
    2. Customer Invoice Configurations
    Invoice From
    Company NameStateTax Registration DetailsBank Details
    {{InvoiceConfigurationsCtrl.invoiceFromDetailsModelList.CompanyName}}{{InvoiceConfigurationsCtrl.invoiceFromDetailsModelList.RegisterState}}

    PAN:{{InvoiceConfigurationsCtrl.invoiceFromDetailsModelList.TaxRegistrationDetails.PAN}}

    STATE CODE:{{InvoiceConfigurationsCtrl.invoiceFromDetailsModelList.TaxRegistrationDetails.StateCode}}

    CIN:{{InvoiceConfigurationsCtrl.invoiceFromDetailsModelList.TaxRegistrationDetails.CIN}}

    TAN:{{InvoiceConfigurationsCtrl.invoiceFromDetailsModelList.TaxRegistrationDetails.TAN}}

    GSTN:{{InvoiceConfigurationsCtrl.invoiceFromDetailsModelList.TaxRegistrationDetails.GSTN}}

    HSN CODE:{{InvoiceConfigurationsCtrl.invoiceFromDetailsModelList.TaxRegistrationDetails.HSNCode}}

    {{InvoiceConfigurationsCtrl.invoiceFromDetailsModelList.CompanyBankDetails.CompanyName}}

    A/C No:{{InvoiceConfigurationsCtrl.invoiceFromDetailsModelList.CompanyBankDetails.AccountNumber}}

    Bank:{{InvoiceConfigurationsCtrl.invoiceFromDetailsModelList.CompanyBankDetails.BankName}}

    IFSC Code:{{InvoiceConfigurationsCtrl.invoiceFromDetailsModelList.CompanyBankDetails.IFSCCode}}

    Branch:{{InvoiceConfigurationsCtrl.invoiceFromDetailsModelList.CompanyBankDetails.Branch}}

    Invoice To
    State
    Bill To
    Ship To
    Action
    {{invoiceDetail.RegisterState}}

    {{invoiceDetail.BillToDetails.CompanyName}}

    {{invoiceDetail.BillToDetails.AddressLine}}

    {{invoiceDetail.BillToDetails.City}} - {{invoiceDetail.BillToDetails.PinCode}} ({{invoiceDetail.BillToDetails.State}})

    PAN: {{invoiceDetail.BillToDetails.PAN}}

    GST Number: {{invoiceDetail.BillToDetails.GSTN}}

    State Code: {{invoiceDetail.BillToDetails.StateCode}}

    {{invoiceDetail.ShipToDetails.CompanyName}}

    {{invoiceDetail.ShipToDetails.AddressLine}}

    {{invoiceDetail.ShipToDetails.City}} - {{invoiceDetail.ShipToDetails.PinCode}} ({{invoiceDetail.ShipToDetails.State}})

    PAN: {{invoiceDetail.ShipToDetails.PAN}}

    GST Number: {{invoiceDetail.ShipToDetails.GSTN}}

    State Code: {{invoiceDetail.ShipToDetails.StateCode}}

    Enter a name
    Invoice Reminder To Client
    Account Name:

    Please Select Account For Configuration
    Payments Term

    {{InvoiceConfigurationsCtrl.PaymentTerms}} Days

    days

    Customer Email (External)
    \\' for user in InvoiceConfigurationsCtrl.shareModel.getUserSuggestion($viewValue) | filter:InvoiceConfigurationsCtrl.shareModel.removeSelectedUsers | filter:InvoiceConfigurationsCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"InvoiceConfigurationsCtrl.shareModel.selectUserNameInToList($item)\\\" aria-autocomplete=\\\"list\\\" aria-expanded=\\\"false\\\" aria-owns=\\\"typeahead-2821-255\\\" aria-invalid=\\\"false\\\" style=\\\"\\\" ng-disabled=\\\"!editMode\\\">
    Please enter External Team email whom to send this reminder.
    MMF Email (Internal Team)
    \\' for user in InvoiceConfigurationsCtrl.shareModel.getUserSuggestion($viewValue) | filter:InvoiceConfigurationsCtrl.shareModel.removeSelectedUsers | filter:InvoiceConfigurationsCtrl.shareModel.searchAsOr($viewValue)\\\" typeahead-focus-first=\\\"false\\\" typeahead-on-select=\\\"InvoiceConfigurationsCtrl.shareModel.selectUserNameInCCList($item)\\\" aria-autocomplete=\\\"list\\\" aria-expanded=\\\"false\\\" aria-owns=\\\"typeahead-2822-7687\\\" aria-invalid=\\\"false\\\" style=\\\"\\\" ng-disabled=\\\"!editMode\\\">
    Please enter Internal Team email whom to send this reminder.
    0\\\">Customer Email (External):
    \\\"image\\\"

    {{user.FirstName}} {{user.LastName}} ({{user.UserId}})

    {{user.PersonalEmail}}

    {{user.UserId}}

    {{user.Role}} External
    0\\\">MMF Email (Internal Team):
    \\\"image\\\"

    {{user.FirstName}} {{user.LastName}} ({{user.UserId}})

    {{user.PersonalEmail}}

    {{user.UserId}}

    {{user.Role}} External
    Auto Reminder Schedule
    Reminder NameSend When invoice isSubjectContentAction
    {{filter.strReminderName}} {{filter.nReminderdays}} Days
    \");\n$templateCache.put(\"app/InvoiceItemized/InvoiceItemized.html\",\"
    1. Home
    2. Itemized Invoice
    Bill ToShip ToTicket ID

    {{InvoiceItemizedCtrl.SelectedInvoiceObj.BillTo.CompanyName}}

    {{InvoiceItemizedCtrl.SelectedInvoiceObj.BillTo.AddressLine}}

    {{InvoiceItemizedCtrl.SelectedInvoiceObj.BillTo.City}} - {{InvoiceItemizedCtrl.SelectedInvoiceObj.BillTo.PinCode}} {{InvoiceItemizedCtrl.SelectedInvoiceObj.BillTo.State}}

    PAN:{{InvoiceItemizedCtrl.SelectedInvoiceObj.BillTo.PAN}}

    GST No.:{{InvoiceItemizedCtrl.SelectedInvoiceObj.BillTo.GSTN}}

    State Code:{{InvoiceItemizedCtrl.SelectedInvoiceObj.BillTo.StateCode}}

    {{InvoiceItemizedCtrl.SelectedInvoiceObj.ShipTo.CompanyName}}

    {{InvoiceItemizedCtrl.SelectedInvoiceObj.ShipTo.AddressLine}}

    {{InvoiceItemizedCtrl.SelectedInvoiceObj.ShipTo.City}} - {{InvoiceItemizedCtrl.SelectedInvoiceObj.ShipTo.PinCode}} {{InvoiceItemizedCtrl.SelectedInvoiceObj.ShipTo.State}}

    PAN:{{InvoiceItemizedCtrl.SelectedInvoiceObj.ShipTo.PAN}}

    State Code:{{InvoiceItemizedCtrl.SelectedInvoiceObj.ShipTo.StateCode}}

    GST No.:{{InvoiceItemizedCtrl.SelectedInvoiceObj.ShipTo.GSTN}}


    ItemCategoryDescriptionPO NumberStateHSN CodeUOMQtyUnit RateAmount

    {{ItemizedInvoice.SerialNo}}

    \");\n$templateCache.put(\"app/InvoiceConsolidated/InvoiceConsolidated.html\",\"
    1. Home
    2. Consolidated Invoice
    Bill ToShip ToTicket ID

    {{InvoiceConsolidatedCtrl.SelectedInvoiceObj.BillTo.CompanyName}}

    {{InvoiceConsolidatedCtrl.SelectedInvoiceObj.BillTo.AddressLine}}

    {{InvoiceConsolidatedCtrl.SelectedInvoiceObj.BillTo.City}} - {{InvoiceConsolidatedCtrl.SelectedInvoiceObj.BillTo.PinCode}} {{InvoiceConsolidatedCtrl.SelectedInvoiceObj.BillTo.State}}

    PAN:{{InvoiceConsolidatedCtrl.SelectedInvoiceObj.BillTo.PAN}}

    GST No.:{{InvoiceConsolidatedCtrl.SelectedInvoiceObj.BillTo.GSTN}}

    State Code:{{InvoiceConsolidatedCtrl.SelectedInvoiceObj.BillTo.StateCode}}

    {{InvoiceConsolidatedCtrl.SelectedInvoiceObj.ShipTo.CompanyName}}

    {{InvoiceConsolidatedCtrl.SelectedInvoiceObj.ShipTo.AddressLine}}

    {{InvoiceConsolidatedCtrl.SelectedInvoiceObj.ShipTo.City}} - {{InvoiceConsolidatedCtrl.SelectedInvoiceObj.ShipTo.PinCode}} {{InvoiceConsolidatedCtrl.SelectedInvoiceObj.ShipTo.State}}

    PAN:{{InvoiceConsolidatedCtrl.SelectedInvoiceObj.ShipTo.PAN}}

    State Code:{{InvoiceConsolidatedCtrl.SelectedInvoiceObj.ShipTo.StateCode}}

    GST No.:{{InvoiceConsolidatedCtrl.SelectedInvoiceObj.ShipTo.GSTN}}


    ItemCategoryDescriptionUOMHSN CodePO NumberStateQtyUnit RateAmount

    \");\n$templateCache.put(\"app/InvoiceLists/InvoiceList.html\",\"
    1. Home
    2. Invoice Listing
    Invoice Listings
    \");\n$templateCache.put(\"app/Job Ticket View/Dashboard-small.html\",\"
    • {{jobTicketCopy.teamdata.jobsSummary.TotalJobs}}

      Total Jobs

    • ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalEarned}}

      Total Earning

    • {{jobTicketCopy.teamdata.userProfile.venderTeamCount}}

      Total Team

    Background Verified
    • {{VerificationDoc.DocumentName}}
    Skill Verified
    • {{skills.Skill}}
    \\\"profile\\\"
    {{jobTicketCopy.teamdata.userProfile.FirstName}} {{jobTicketCopy.teamdata.userProfile.LastName}}
    {{jobTicketCopy.teamdata.userProfile.Ratings.UserId}}
    {{jobTicketCopy.teamdata.userProfile.Address}}
    {{jobTicketCopy.TechnicianRating}}
    Member Since {{jobTicketCopy.teamdata.userProfile.TechnicianActivationDate| date:\\'MMM dd, yyyy\\'}}
    {{jobTicketCopy.teamdata.userProfile.LastFollowUpReason}} ({{jobTicketCopy.teamdata.userProfile.LastFollowUpRemark}})

    Last follow up on {{jobTicketCopy.teamdata.userProfile.LastFollowUpDateTimeObj | date:\\'dd/MMM/yyyy h:mm:ss a\\'}}

    by \\\"{{jobTicketCopy.teamdata.userProfile.LastFollowUpTakenBy}}\\\"

    Jobs Summary

    {{jobTicketCopy.teamdata.jobsSummary.TotalJobs}}

    Total Jobs

    {{jobTicketCopy.teamdata.jobsSummary.Assignedjobs}}

    Assigned jobs

    {{jobTicketCopy.teamdata.jobsSummary.Completed}}

    Completed

    {{jobTicketCopy.teamdata.jobsSummary.Rejected}}

    Rejected

    {{jobTicketCopy.teamdata.jobsSummary.LeadAcceptance}} (%

    Lead Acceptance

    {{jobTicketCopy.teamdata.jobsSummary.CompletionSpeed}}

    Average Completion Speed

    {{jobTicketCopy.teamdata.jobsSummary.JobCompletionRate}} (%)

    Job Completion Rate

    {{jobTicketCopy.teamdata.jobsSummary.FirstResponseRate}} (%)

    First Response Time

    {{jobTicketCopy.teamdata.jobsSummary.AppointmentMetRate}} (%)

    Appointment Met Rate

    Payments Summary

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalEarned}}

    Total Earned

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalDueAmount}}

    Total Due Amount

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalPaid}}

    Total Paid

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalReject}}

    Total Reject

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalFailed}}

    Total Failed

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalInitial}}

    Total Initial

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalCollection}}

    Total Collection

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalService}}

    Total Service

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalHardware}}

    Total Hardware

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalBonus}}

    Total Bonus

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalPanelty}}

    Total Panelty

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.TotalAllowance}}

    Total Allowance

    ₹ {{jobTicketCopy.teamdata.paymentsSummary.SecurityAmount}}

    Security Amount

    {{jobTicketCopy.teamdata.paymentsSummary.SecurityExpiryDate | date:\\'dd/MM/yy\\'}}

    Security Expiry Date

    {{jobTicketCopy.teamdata.paymentsSummary.SecurityDepositDate | date:\\'dd/MM/yy\\'}}

    ReCharge On

    Execution Summary

    {{jobTicketCopy.teamdata.executionSummary.AssignedNoAction}}

    Assigned No Action

    {{jobTicketCopy.teamdata.executionSummary.CCNAB}}

    CCNAB

    {{jobTicketCopy.teamdata.executionSummary.Cancelled}}

    Cancelled

    {{jobTicketCopy.teamdata.executionSummary.AppointmentBookedDay0}}

    Appointment Booked Day 0

    {{jobTicketCopy.teamdata.executionSummary.AppointmentBookedDay1}}

    Appointment Booked Day 1

    {{jobTicketCopy.teamdata.executionSummary.AppointmentBookedDay1Plus}}

    Appointment Booked Day1+

    {{jobTicketCopy.teamdata.executionSummary.AppointmentBreached}}

    Appointment Breached

    {{jobTicketCopy.teamdata.executionSummary.InTransit}}

    InTransit

    {{jobTicketCopy.teamdata.executionSummary.OnSite}}

    On Site

    {{jobTicketCopy.teamdata.executionSummary.OnHold}}

    On Hold

    Ratings

    {{jobTicketCopy.teamdata.userProfile.AverageRating.AverageRating}} average based on {{jobTicketCopy.teamdata.userProfile.AverageRating.totalCount}} reviews.


    5 star
    {{jobTicketCopy.AvgRating.FiveStar}}
    4 star
    {{jobTicketCopy.AvgRating.FourStar}}
    3 star
    {{jobTicketCopy.AvgRating.ThreeStar}}
    2 star
    {{jobTicketCopy.AvgRating.TwoStar}}
    1 star
    {{jobTicketCopy.AvgRating.OneStar}}
    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusCatagoryCertificate
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate}}{{skills.BrandList}}{{skills.Status}}

    Total Jobs

    Assigned Jobs

    Completed

    Approved

    Rejected

    ANA

    CCNAB

    Cancelled

    ABD0

    ABD1

    ABD1+

    ABR

    InTransit

    On Site

    On Hold

     {{jobTicketCopy.upageindexCount}} - {{jobTicketCopy.userListLength}} of {{totalUsers}}
    Ticket IDTicket TypeAccountLocationAssigned DateTATJobs StatusCreation DateStatus Date
    {{workList.TicketID}}{{workList.TicketType}}{{workList.Account}}{{workList.Location}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.TAT}}{{workList.JobsStatus}}{{workList.JobsCreationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.InTransitDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnSiteDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AppointmentBookedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CompletionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnHoldDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.RejectionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CancellationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.ApprovedDate | date:\\'dd/MM/yy hh:mm a\\'}}
    ₹ {{jobTicketCopy.paymentCount.TotalCollection}}

    Total Collection

    ₹ {{jobTicketCopy.paymentCount.TotalService}}

    Total Service

    ₹ {{jobTicketCopy.paymentCount.TotalHardware}}

    Total Hardware

    ₹ {{jobTicketCopy.paymentCount.TotalBonus}}

    Total Bonus

    ₹ {{jobTicketCopy.paymentCount.TotalPanelty}}

    Total Panelty

    ₹ {{jobTicketCopy.paymentCount.TotalAllowance}}

    Total Allowance

     {{jobTicketCopy.fpageindexCount}} - {{jobTicketCopy.financeListLength}} of {{totalFinList}}
    Total Base PriceTotal Payable AmountTotal CommissionTotal ServiceTotal HardwareTotal BonusTotal PaneltyTotal CollectionTotal AwallanceCashfree IdFailed ReasonStatus
    {{financeList.TotalBasePrice}}{{financeList.TotalPayableAmount}}{{financeList.TotalCommission}}{{financeList.TotalService}}{{financeList.TotalHardware}}{{financeList.TotalBonus}}{{financeList.TotalPanelty}}{{financeList.TotalCollection}}{{financeList.TotalAwallance}}{{financeList.CashfreeId}}{{financeList.FailedReason}}{{financeList.Status}}
    Job IDJob TypeProjectCustomerLocationTechnician NameFollow Up ReasonCreation DateStatusTATRating
    {{financesmry.jobID}}{{financesmry.jobType}}{{financesmry.project}}{{financesmry.customer}}{{financesmry.location}}{{financesmry.technicianName}}{{financesmry.followUpReason}}{{financesmry.creationDate | date: \\'dd-MMM-yyyy hh:mm:ss a\\'}}{{financesmry.status}}{{financesmry.tat}}{{financesmry.rating}}
    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusCatagoryCertificate
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate}}{{skills.BrandList}}{{skills.Status}}
    Previous Company Details
    Company NameProject NameDesignationAccountDate of JoiningDate of RelievingExperience Letter
    {{previousCompany.CompanyName}}{{previousCompany.ProjectName}}{{previousCompany.Designation}}{{previousCompany.AccountName}}{{previousCompany.DateOfJoining | date:\\'dd-MMM-yyyy\\'}}{{previousCompany.DateOfRelieving | date:\\'dd-MMM-yyyy\\'}} \\\"\\\"
    Training Details
    Training NameTraining DateTraining ImageTraining Attendence
    {{Audittraining.TrainingName}}{{Audittraining.TrainingDate | date:\\'dd-MMM-yyyy\\'}} \\\"\\\" \\\"\\\"
    Ratings

    {{jobTicketCopy.reviewData.OverAllRating.AverageRating}} average based on {{jobTicketCopy.reviewData.OverAllRating.totalCount}} reviews.


    {{Reviews.CustomerName}}Source : MyMobiforce
    (Reviewed on {{Reviews.ReviewDate}})

    {{Reviews.AdditionalRemark}}

    Assets
    Equipment Details
    Equipment NameBrand NameView EquipmentItem Serial NumberManufactured OnExpired On
    {{toolDetail.ToolName}}{{toolDetail.BrandName}}{{toolDetail.ItemSerialNumber}}NA {{toolDetail.DateOfManufacturing}}{{toolDetail.ExpireDate}}
    Audit Details
    Audit SummaryAuditorAudited OnStatusReport
    {{auditDetail.AuditPurpose}}{{auditDetail.AuditorDetails.AuditorName}}{{auditDetail.AuditDate | date: \\'dd-MMM-yyyy\\'}}{{auditDetail.AuditResult}} {{auditDetail.AuditResult}} {{auditDetail.AuditResult}}
    All Team List
    User IDNameTotal CountOpen CountClose CountRoleAddress line 1CityStatePincodeStatusD-1 AvailabilityD-0 Attendance
    {{TeamDetail.UserId}}{{TeamDetail.Name}}{{TeamDetail.TotalCount}}{{TeamDetail.OpenCount}}{{TeamDetail.CloseCount}}{{TeamDetail.Role}}{{TeamDetail.Addressline1}}{{TeamDetail.PermanentCity}}{{TeamDetail.State}}{{TeamDetail.PermanentPinCode}}Inactive ActiveNot Available AvailableNot Available Available
    Ticket IDPrimary ReasonReason CommentFollow up On
    {{followupDetail.ticketId}}{{followupDetail.ticketId}}{{followupDetail.PrimaryReason}}{{followupDetail.ReasonComment}}{{followupDetail.dateTime | date:\\'dd/MMM/yyyy h:mm:ss a\\'}}
    \");\n$templateCache.put(\"app/Job Ticket View/Job_Ticket_view.html\",\"
    1. Home
    2. Jobs
    Job IDActionJob DescriptionJob TypeDealer NameDealer ContactProductModel NumberSerial NumberProjectCustomerLocationTechnicianNameEngineer NamePartner NameField Support TeamPublish DateAgeing (Days)Assign DateStatusSub StatusPart Order IDPart Order StatusSettlement StatusPlanned Start DateActual Start DateCompletion DateSLA StatusTATTechnician RatingCustomer RatingConsumer NameConsumer ContactAddress1Address2PincodeSupervisor NameApproved DateFreelancer PriceFreelancer Price CreditsBill AmountSchedule ModeMaterial Delivery StatusMaterial Delivery DatePrimary ReasonAuditClone CounterSource Creation DatePlanned Closure DateBreach StatusCancellation ReasonsCollection RequiredCollection ModeAmount CollectedAmount To Be CollectedReplacement IDReplacement Status
    {{ticket.UserName}}0\\\" ng-repeat=\\\"fTeam in ticket.ListFieldSupportTeam\\\">{{fTeam.SupportEngineerName}}{{ticket.PartOrderId}}
    \");\n$templateCache.put(\"app/Job Ticket View/Job_Ticket_view_Copy.html\",\"
    1. Home
    2. Jobs
    Showing {{jobTicketCopy.pageindexCount}} to {{jobTicketCopy.ticketListLength}} of {{totalTableUsers}}
    Job IDProjectSite IDSite NameActionJob DescriptionStatusSub StatusTechnician NameEngineer NamePartner NameField Support TeamJob Step ApprovalReject CountJob TypeCustomerLocationPublish DateAssign DateBroadcast CountBroadcast Age(dd:hh:mm:ss)LatitudeLongitudeCustomer SatisfactionSecondary StatusSettlement StatusAppointment TimeInvoiceStatusActual Start DateCompletion DateSLA StatusTATTechnician RatingCustomer RatingConsumer NameConsumer ContactAddress1Address2PincodeSupervisor NameApproved DateFreelancer PriceBill AmountSchedule ModeMaterial Delivery StatusMaterial Delivery DatePrimary ReasonClone ReasonAuditClone CounterSource Creation DatePlanned Closure DateBreach StatusCancellation ReasonsRejection RemarksCollection RequiredCollection ModeAmount CollectedAmount To Be CollectedRegionSite Audit StatusSite Audit DateSite Audit By
    {{ticket.UserName}} {{ticket.UserName}}0\\\" ng-repeat=\\\"fTeam in ticket.ListFieldSupportTeam\\\">{{fTeam.SupportEngineerName}}

    • {{attachment.replace(\\'.pdf\\', \\'\\')}}
    -->
    \");\n$templateCache.put(\"app/InvoicePayment/InvoicePayment.html\",\"
    1. Home
    2. Invoice Listing
    Invoice Listings
    \");\n$templateCache.put(\"app/JobDetailViewCombo/JobDetailViewCombo.html\",\"
    1. Home
    2. Job Details
    Technician Denied Your Job Request
    • {{JobDetailViewComboCtrl.FreelancerBidCount}}  Technicians
    • \\\"image\\\"
      {{rUser.Username}}

      Job {{rUser.JobTotal}} | Distance {{rUser.Distance}} | Assigned Jobs {{rUser.TotalAssignedJobs}}

      {{rUser.DenyReason}}

    Technician Accepted Your Job Request
    • {{JobDetailViewComboCtrl.ReadyUserLength}}  Technicians
    • \\\"image\\\"
      {{rUser.name}}

      Jobs {{rUser.JobTotal}} | Distance {{rUser.UserDistance}} | Assigned Jobs {{rUser.TotalAssignedJobs}}

    • {{status.WorkOrderType}} {{status.DurationToComplete}} days

    Work Order Id - {{JobDetailViewComboCtrl.TicketInfo.TicketId}}  

    on {{JobDetailViewComboCtrl.TicketInfo.CreationDate | date:\\'dd/MMM/yyyy h:mm:ss a\\' }}

    {{JobDetailViewComboCtrl.TicketInfo.SkillSet}}    

    {{JobDetailViewComboCtrl.TicketInfo.JobDescription}}  

    Customer Satisfaction    

    {{JobDetailViewComboCtrl.TicketInfo.HappyCodeResult}}  
    {{JobDetailViewComboCtrl.TicketInfo.TicketStatus}}
    {{JobDetailViewComboCtrl.TicketInfo.SubStatus}}

    Schedule : Complete Work By {{JobDetailViewComboCtrl.TicketInfo.PlannedClosureDate | date:\\'dd/MMM/yyyy h:mm a\\'}} Complete Work By {{JobDetailViewComboCtrl.TicketInfo.PlannedClosureDate | date: \\'dd/MMM/yyyy h:mm a\\'}} Complete Work By {{JobDetailViewComboCtrl.TicketInfo.PlannedClosureDate | date:\\'dd/MMM/yyyy h:mm a\\'}}

    Appointment Time: {{JobDetailViewComboCtrl.TicketInfo.PlannedStartDate | date:\\'dd/MMM/yyyy h:mm a\\'}}

    {{JobDetailViewComboCtrl.TicketInfo.CustomerName}}
    {{JobDetailViewComboCtrl.TicketInfo.Address1}}, {{JobDetailViewComboCtrl.TicketInfo.Address2}},{{JobDetailViewComboCtrl.TicketInfo.City}}
    {{JobDetailViewComboCtrl.TicketInfo.State}} , {{JobDetailViewComboCtrl.TicketInfo.Pincode}}
    Call to customer
    \\\"image\\\"

    Technician : {{JobDetailViewComboCtrl.TicketInfo.VendorName}} ({{JobDetailViewComboCtrl.TicketInfo.VendorId}})    \\\"image\\\"

    Technician : {{JobDetailViewComboCtrl.TicketInfo.UserName}} ({{JobDetailViewComboCtrl.TicketInfo.UserId}})    \\\"image\\\"

    Technician : UnAssigned

    Engineer Name : {{JobDetailViewComboCtrl.TicketInfo.UserName}} ({{JobDetailViewComboCtrl.TicketInfo.UserId}})

    Engineer Name : UnAssigned

    0\\\" ng-repeat=\\\"fTeam in JobDetailViewComboCtrl.TicketInfo.ListFieldSupportTeam\\\">{{fTeam.SupportEngineerName}}
    Tickets List
    JobIDSiteIDSiteNameSkillCityStateTechnician NameFollowUp ReasonStatusAssign DateField Age(dd:hh:mm:ss)Project NamePrimary ReasonCancel ReasonRejection Remarkclone ReasonSub StatusSecondary StatusCreated DateStart TimeBroadcasted DatePincodeAmt CollectedAmt to Be CollectedFreelancer Rate
    {{newJob.TicketId}}{{newJob.JobId}}{{newJob.SiteName}}{{newJob.SkillSet}}{{newJob.City}}{{newJob.State}}\\\"image\\\" {{newJob.Assignee}}{{newJob.LastFollowUpMsg}}{{newJob.AssignationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.FieldAge}}{{newJob.ProjectName}}{{newJob.PrimaryReason}}{{newJob.TicketCancelReason}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date:\\'dd/MM/yyyy\\'}}{{newJob.Pincode}}{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}{{newJob.FreelancerRate}}
    Work Order List
    JobIDSiteIDSiteNameSkillActionCityStateEstimate Share StateEstimation AttachementEstimation Share RemarkTechnician NameFollowUp ReasonStatusAssign DateField Age(dd:hh:mm:ss)Project NamePrimary ReasonCancel ReasonRejection Remarkclone ReasonSub StatusSecondary StatusCreated DateStart TimeBroadcasted DatePincodeAmt CollectedAmt to Be CollectedFreelancer Rate
    {{newJob.JobId}}{{newJob.SiteName}}{{newJob.SkillSet}}
    {{newJob.City}}{{newJob.State}}{{newJob.EstimateShareState}}{{newJob.EstimationAttachement}}{{newJob.EstimationShareRemark}}\\\"image\\\" {{newJob.Assignee}}{{newJob.LastFollowUpMsg}}{{newJob.AssignationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.FieldAge}}{{newJob.ProjectName}}{{newJob.PrimaryReason}}{{newJob.TicketCancelReason}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date:\\'dd/MM/yyyy\\'}}{{newJob.Pincode}}{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}{{newJob.FreelancerRate}}
    \\\"\\\"

    {{status.userName}}  {{status.CreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{status.activity}} Follow Up - {{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }} {{\\\"( \\\" + status.ThirdReason + \\\" )\\\" }}
    {{\\\"Remark: \\\" + status.CompletionRemark + \\\" \\\" }}
    \\\"\\\"

    {{status.userName}}  {{status.CreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{status.activity}} Follow UP --{{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }}
    0 && status.ReasonComment!=\\'null\\'\\\">-{{status.ReasonComment}}
    \\\"\\\"

    {{status.userName}}  {{status.CreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{status.activity}} Follow UP --{{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }}
    0 && status.ReasonComment!=\\'null\\'\\\">-{{status.ReasonComment}}
    {{\\\"Remark: \\\" + status.CompletionRemark + \\\" \\\" }}

    {{JobDetailViewComboCtrl.lastTag}}

    Tracking# - {{JobDetailViewComboCtrl.trackNo}}
    • {{orderStatus.checkpoint_time | date: \\'dd/MMM/yyyy\\'}}

      {{orderStatus.checkpoint_time | date: \\'h:mm a\\'}}
    • {{orderStatus.message}}
    \");\n$templateCache.put(\"app/JobDetailView/JobDetailView.html\",\"
    1. Home
    2. Job Details
    >by pass serial number
    Technician Denied Your Job Request
    • {{JobDetailViewCtrl.FreelancerBidCount}}  Technicians
    • \\\"image\\\"
      {{rUser.Username}}

      Job {{rUser.JobTotal}} | Distance {{rUser.Distance}} | Assigned Jobs {{rUser.TotalAssignedJobs}}

      {{rUser.DenyReason}}

    Technician Accepted Your Job Request
    • {{JobDetailViewCtrl.ReadyUserLength}}  Technicians
    • \\\"image\\\"
      {{rUser.name}}

      Jobs {{rUser.JobTotal}} | Distance {{rUser.UserDistance}} | Assigned Jobs {{rUser.TotalAssignedJobs}}

    Call ID - Ticket ID -  {{JobDetailViewCtrl.TicketInfo.TicketId}}  

    on {{JobDetailViewCtrl.TicketInfo.CreationDate | date:\\'dd/MMM/yyyy h:mm:ss a\\' }}

    Work Order ID - {{JobDetailViewCtrl.TicketInfo.GroupId}}  

    0\\\" class=\\\"text-black\\\" style=\\\"font-weight: 600;\\\">Order ID -  {{orderId}} {{orderId}}

    Product Name - {{JobDetailViewCtrl.TicketInfo.ProductName}}  

    Warranty Status - {{JobDetailViewCtrl.TicketInfo.WarrantyStatus}}  

    Call Source - {{JobDetailViewCtrl.TicketInfo.TicketSource}}

    Job Type - {{JobDetailViewCtrl.TicketInfo.SkillSet}}  

    Job Desc - {{JobDetailViewCtrl.TicketInfo.JobDescription}}  

    Model No. - {{JobDetailViewCtrl.TicketInfo.ModelNumber}}  

    Customer Rating -    

    {{JobDetailViewCtrl.TicketInfo.CustomerRating}}

    Customer Satisfaction    

    {{JobDetailViewCtrl.TicketInfo.HappyCodeResult}}  

    Brand Name -  {{JobDetailViewCtrl.TicketInfo.BrandName}}  

    Part Order Status - {{JobDetailViewCtrl.TicketInfo.PartOrderStatus}}  

    {{JobDetailViewCtrl.TicketInfo.TicketStatus}} {{JobDetailViewCtrl.TicketInfo.SubStatus}}
    {{JobDetailViewCtrl.TicketInfo.JobStartApprovalState}}

    Location Type -  Local UpCountry  

    Distance - {{JobDetailViewCtrl.TicketInfo.Distance}} Km  

    Customer Feedback -    

    {{JobDetailViewCtrl.TicketInfo.CustomerFeedback}}

    EW Status -    

    {{JobDetailViewCtrl.TicketInfo.EWStatus}}

    Schedule : Complete Work By {{JobDetailViewCtrl.TicketInfo.PlannedClosureDate | date:\\'dd/MMM/yyyy h:mm a\\'}} Complete Work By {{JobDetailViewCtrl.TicketInfo.PlannedClosureDate | date: \\'dd/MMM/yyyy h:mm a\\'}} Complete Work By {{JobDetailViewCtrl.TicketInfo.PlannedClosureDate | date:\\'dd/MMM/yyyy h:mm a\\'}}

    Appointment Time: {{JobDetailViewCtrl.TicketInfo.PlannedStartDate | date:\\'dd/MMM/yyyy h:mm a\\'}}

    Planned Start Date: {{JobDetailViewCtrl.TicketInfo.StartDate | date:\\'dd/MMM/yyyy h:mm a\\'}}

    {{JobDetailViewCtrl.TicketInfo.ConsumerName}} {{JobDetailViewCtrl.TicketInfo.CustomerName}}
    {{JobDetailViewCtrl.TicketInfo.Address1}}, {{JobDetailViewCtrl.TicketInfo.Address2}},{{JobDetailViewCtrl.TicketInfo.City}}
    {{JobDetailViewCtrl.TicketInfo.State}} , {{JobDetailViewCtrl.TicketInfo.Pincode}}
    Call to customer
    \\\"image\\\"
    Call to Alternate No.
    \\\"image\\\"

    Technician : {{JobDetailViewCtrl.TicketInfo.VendorName}} ({{JobDetailViewCtrl.TicketInfo.VendorId}})    \\\"image\\\"

    Technician : {{JobDetailViewCtrl.TicketInfo.UserName}} ({{JobDetailViewCtrl.TicketInfo.UserId}})    \\\"image\\\"

    Technician : UnAssigned

    Engineer Name : {{JobDetailViewCtrl.TicketInfo.UserName}} ({{JobDetailViewCtrl.TicketInfo.UserId}})

    Engineer Name : UnAssigned

    0 && JobDetailViewCtrl.Role !=\\'Customer\\'\\\" ng-repeat=\\\"fTeam in JobDetailViewCtrl.TicketInfo.ListFieldSupportTeam\\\">{{fTeam.SupportEngineerName}} {{fTeam.SupportEngineerName}} 0 && JobDetailViewCtrl.Role ==\\'Customer\\'\\\" ng-repeat=\\\"fTeam in JobDetailViewCtrl.TicketInfo.ListFieldSupportTeam\\\">{{fTeam.SupportEngineerName}} {{JobDetailViewCtrl.TicketInfo.TechnicianContactNumber}}
    New Part NumberNew Part NameNew Serial NumberNew Hardware PhotoOld Part NumberOld Part NameOld Serial NumberOld Hardware PhotoReplaced/NewPart Return TypeStatusAction
    {{report.NewPartNumber}}{{report.NewName}}{{report.NewSerialNumber}}\\\"image-1\\\"{{report.OldPartNumber}}{{report.OldName}}{{report.OldSerialNumber}}\\\"image-1\\\"Replaced New{{report.PartReturnType}}{{report.NewPartStatus}}

    Sales Order ID : {{orders.OrderId}}

    Part NamePart CodePrice Per Unit (₹)Quantity OrderedPart Status
    {{order.group_name}}{{order.sku}}{{order.rate}}{{order.quantity}}{{order.PartStatus}}
    TAT

    Please click here to see the given and updated customer location on map.

    Schedule
    Appointment Time
    {{JobDetailViewCtrl.getReadableTime(JobDetailViewCtrl.TicketInfo.PlannedStartDate)}}
    {{JobDetailViewCtrl.TicketInfo.AppointmentTakenDate| date:\\'yyyy/MM/dd h:mm:ss a\\'}}
    {{JobDetailViewCtrl.getReadableTime(JobDetailViewCtrl.TicketInfo.EndTime)}}
    Your ticket is scheduled on {{JobDetailViewCtrl.getReadableTime(JobDetailViewCtrl.TicketInfo.PlannedStartDate | date:\\'dd/MMM/yyyy h:mm:ss a\\')}} from {{JobDetailViewCtrl.getReadableTime(JobDetailViewCtrl.TicketInfo.PlannedStartDate | date:\\'dd/MMM/yyyy h:mm:ss a\\')}}
    Complete Ticket by
    Job Overview
    Spare Parts
    Collection
    Payment
    Scope Of Work
    Showing {{JobDetailViewCtrl.FixedUserLength}} Technician with inKms   ranked by
    Showing {{JobDetailViewCtrl.NearByUserLength}} Technicianwith inKms   ranked by
    Private User
    Pincode Based
    Showing {{JobDetailViewCtrl.PrefreUserLength}} Technicianwith inKms   ranked by
    Showing {{JobDetailViewCtrl.PreviousUserLength}} Technician with inKms   ranked by
    Supervisior

    Appointment time
    {{JobDetailViewCtrl.getReadableTime(JobDetailViewCtrl.TicketInfo.StartTime)}}
    {{JobDetailViewCtrl.getReadableTime(JobDetailViewCtrl.TicketInfo.EndTime)}}
    Your ticket is scheduled from {{JobDetailViewCtrl.getReadableTime(JobDetailViewCtrl.TicketInfo.StartTime)}} to {{JobDetailViewCtrl.getReadableTime(JobDetailViewCtrl.TicketInfo.EndTime)}}
    Material Delivered Status
    Ticket Detail

    {{JobDetailViewCtrl.TicketInfo.TechnicianRating}}

    Rate Detail
    {{JobDetailViewCtrl.ConverttoDecimal(JobDetailViewCtrl.TicketInfo.BroadcastRate)}}
    {{JobDetailViewCtrl.ConverttoDecimal(JobDetailViewCtrl.TicketInfo.BroadcastGrossRate)}}
    {{JobDetailViewCtrl.ConverttoDecimal(JobDetailViewCtrl.TicketInfo.MobiforceCommission)}}%
    {{JobDetailViewCtrl.TicketInfo.BidDuration}} Min
    Field Team List
    NameUser IdRolePhoto
    {{superField.SupportEngineerName}}{{superField.SupportEngineerUserId}}{{superField.SupportEngineerRole}}\\\"image-1\\\"
    Face Comparision Details
    PhotoAttempted OnSimilarity (%)StatusRemark
    \\\"image-1\\\"{{faceAttempt.AttemptedOn | date:\\'dd/MMM/yyyy h:mm:ss a\\' }}{{faceAttempt.Similarity}}{{faceAttempt.Status}}{{faceAttempt.Remark | limitTo:50}}...
    \\\"image-1\\\"
    Status :
    Percentage Matched :
    Reason :

    pass

    95%

    Face Not Recognize Proper

    Supervisor View

    Field Data Capture
    Product Details
    Product Group
    {{JobDetailViewCtrl.TicketInfo.ProductGroup }}
    Product Name
    {{JobDetailViewCtrl.TicketInfo.ProductType}}
    Model Name
    {{JobDetailViewCtrl.TicketInfo.ModelName}}
    Model No.
    {{JobDetailViewCtrl.TicketInfo.ModelNumber }}
    SDR Details
    Symptom
    {{JobDetailViewCtrl.TicketInfo.SymptomName }} ( {{JobDetailViewCtrl.TicketInfo.SymptomCode }} )
    Defect
    {{JobDetailViewCtrl.TicketInfo.DefectName}} ( {{JobDetailViewCtrl.TicketInfo.DefectCode }} )
    Resolution
    {{JobDetailViewCtrl.TicketInfo.ResolutionName }} ( {{JobDetailViewCtrl.TicketInfo.ResolutionCode }} )
    Communication Mode
    NameUser IdRolePhoto
    {{superField.SupportEngineerName}}{{superField.SupportEngineerUserId}}{{superField.SupportEngineerRole}}\\\"image-1\\\"
    Activity Trace

    • {{ timeline.activity}}
      {{timeline.userName}} {{timeline.dateTime}}
    • {{ Chathistory.activity}}
      {{Chathistory.userName}} {{ Chathistory.EventDateTime | date:\\'dd/MM/yyyy hh:mm a\\' }}
      {{chat.UserName}}
      {{chat.MessageTime | date:\\'dd/MMM/yy h:mm:ss a\\'}}
      {{chat.Message}} \\\"image-1\\\" {{chat.AttachmentLink}}
    • {{ timeline.activity}}
      {{timeline.userName}} {{timeline.dateTime}}
      {{timeline.CallFrom }} intiated Audio call to @{{timeline.CallTo }}
      {{ timeline.EventDateTime | date:\\'dd/MM/yyyy hh:mm a\\' }}
      Call Duration : {{timeline.Duration }} Call Status : {{timeline.CallStatus }} Service Interpretation :
      {{ timeline.activity}}
      {{timeline.userName}} {{ timeline.EventDateTime | date:\\'dd/MM/yyyy hh:mm a\\' }}
      {{chat.UserName}}
      {{chat.MessageTime | date:\\'dd/MMM/yy h:mm:ss a\\'}}
      {{chat.Message}} \\\"image-1\\\" {{chat.AttachmentLink}}
    • {{callDE.CallFrom}} intiated Audio call to @{{callDE.CallTo }}
      {{ callDE.EventDateTime | date:\\'dd/MM/yyyy hh:mm a\\' }}
      Call Duration : {{callDE.Duration }} Call Status : {{callDE.CallStatus }} Service Interpretation :
    Field Team List
    NameUser IdRolePhoto
    {{superField.SupportEngineerName}}{{superField.SupportEngineerUserId}}{{superField.SupportEngineerRole}}\\\"image-1\\\"
    Field Data Capture
    Select All
    SelectItem NameDataUpdated OnUpdate HistoryReject / commentStatus

    \\\"image-1\\\"
    0\\\" ng-repeat=\\\"imgsss in docList.ItemValues track by $index\\\">\\\"image-1\\\"
    {{docList.ItemValue}} {{skill}}
    link{{docList.ItemUpdateDate |date:\\'dd/MMM/yy h:mm:ss a\\'}}{{docList.ItemComment}}

    {{docList.ItemComment}}

    {{docList.ItemStatus}}
    Site Data Capture
    Select All
    SelectItem NameDataUpdated OnReject / commentStatus

    {{docListValue.ItemName}}

    \\\"image-1\\\"
    0\\\" ng-repeat=\\\"imgsss in docListValue.ItemValues track by $index\\\">\\\"image-1\\\"
    {{docListValue.ItemValue}}
    {{docListValue.ItemUpdateDate |date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{docListValue.ItemComment}}

    {{docListValue.ItemStatus}}
    \\\"\\\"

    {{status.userName}}  {{status.CreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{status.activity}} Follow Up - {{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }} {{\\\"( \\\" + status.ThirdReason + \\\" )\\\" }}
    {{\\\"Remark: \\\" + status.CompletionRemark + \\\" \\\" }}

    {{status.activity}} at {{status.CreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{chat.UserName}}  {{chat.MessageTime | date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{chat.Message}}
    \\\"image-1\\\" {{chat.AttachmentLink}}
    \\\"\\\"

    {{status.userName}}  {{status.CreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{status.activity}} Follow UP --{{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }}
    0 && status.ReasonComment!=\\'null\\'\\\">-{{status.ReasonComment}}
    \\\"\\\"

    {{status.userName}}  {{status.CreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{status.activity}} Follow UP --{{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }}
    0 && status.ReasonComment!=\\'null\\'\\\">-{{status.ReasonComment}}
    {{\\\"Remark: \\\" + status.CompletionRemark + \\\" \\\" }}

    \\\"image\\\"
    • Add New Members
    Last Updated on :

    Ticket is Pending for Assignation to Vendor Field Engineer, Tracking Map appears when Ticket is assigned to Field Engineer

    Rule NameStageScenarioGradeApplicableAmount
    {{BonusPenalty.Name}}{{BonusPenalty.Stage}}{{BonusPenalty.Scenario}}{{BonusPenalty.Grade}}{{BonusPenalty.Applied}}{{BonusPenalty.Amount}}

    Total Bonus

    {{JobDetailViewCtrl.TicketInfo.TotalBonus}}

    Rule NameStageScenarioGradeApplicableAmount
    {{Penalty.Name}}{{Penalty.Stage}}{{Penalty.Scenario}}{{Penalty.Grade}}{{Penalty.Applied}}{{Penalty.Amount}}

    Total Penalty

    {{JobDetailViewCtrl.TicketInfo.TotalPenalty}}

    FromToCall StatusStart TimeDuration(mins) / Distance(mtr)RecordingStatusField EventService Interpretation
    {{callD.CallFrom}}{{callD.CallTo}} {{callD.CallStartTime | date:\\'dd/MM/yyyy hh:mm a\\'}}{{callD.Duration}}
    {{callD.FieldRemark}}

    {{callD.ServiceRemark}}
    • Tracking No

      {{trackingData.TrackingStatusModel.TrackingNumber}}
    • To

      {{trackingData.TrackingStatusModel.ShipmentTo}}
    • From

      {{trackingData.TrackingStatusModel.ShipmentFrom}}
    • Date of Shipment

      {{trackingData.TrackingStatusModel.DateOfShipment}}
    • Deliver Date

      {{trackingData.TrackingStatusModel.ItemDeliveredDate | date:\\'dd/MMM/yyyy h:mm a\\'}}
    • Deliver Status

      {{trackingData.TrackingStatusModel.TrackingStatus}}
    LineItem IdHardware DescriptionQuantityCompany ProvidedBase PriceFreelancer PriceSalesOrder StatusRemarks
    {{hwDetail.LineItemId}}{{hwDetail.LineItemDescription}}{{hwDetail.LineItemQuantity}}{{hwDetail.LineItemCompanyProvided}}{{hwDetail.dLineItemWinPrice}}{{hwDetail.dLineItemFreelancerPrice}}{{hwDetail.ZOHOSalesOrderStatus}}{{hwDetail.LineItemRemark}}
    • Tracking No

      9938
    • To

      No. 3, Ground Floor, Part 1 Market,Greater Kailash I, Greater Kailash, Delhi - 110048
    • From

      HCL Technologies Limited, C-22A, Sector 57, Noida, Uttar Pradesh 201301
    • Date of Shipment

      15/Apr/2022
    • Deliver Date

      18/Apr/2022
    • Deliver Status

      Delivered
    S.NOHardware DescriptionQuantityCompany ProvidedBase PriceFreelancer PriceRemarks
    1P_10_823No776556446Service
    2HWCollection6No672564HW_collected_1
    3HW_17656No755643HW_collected_2
    4dHW_13No666564HW_collected_3
    Site Audit StatusSite Audited OnSite Audited BySite Audit Report
    {{Audittool.AuditResult}} {{Audittool.AuditResult}}{{Audittool.AuditDate | date:\\'dd/MM/yyyy hh:mm a\\'}}{{Audittool.AuditorDetails.AuditorName}}
    Collection
    Payment
    TypeActivity DescriptionQuantityCompany ProvidedWarehouseBase PriceFreelancer PriceSalesOrder StatusRemarksSourceApproval StatusAction
    {{priceLineItem.LineItemCategory}}{{priceLineItem.LineItemDescription}}{{priceLineItem.LineItemQuantity}} {{priceLineItem.LineItemCompanyProvided}}{{priceLineItem.ZOHOWarehouseName}}{{(priceLineItem.LineItemQuantity)*(priceLineItem.dLineItemWinPrice)}} {{(priceLineItem.LineItemQuantity)*(priceLineItem.dLineItemFreelancerPrice)}} {{priceLineItem.ZOHOSalesOrderStatus}} {{priceLineItem.AddedFromField}}{{priceLineItem.CustomerApprovalStatus}} {{priceLineItem.BackendApprovalStatus}} init View Document Upload File

    Total

    TypeActivity DescriptionQuantityCompany ProvidedWarehouseBase PriceFreelancer PriceSalesOrder StatusRemarksSourceApproval StatusAction
    {{priceLineItem.LineItemCategory}}{{priceLineItem.LineItemDescription}}{{priceLineItem.LineItemQuantity}} {{priceLineItem.LineItemCompanyProvided}}{{priceLineItem.ZOHOWarehouseName}}{{(priceLineItem.LineItemQuantity)*(priceLineItem.dLineItemWinPrice)}} {{(priceLineItem.LineItemQuantity)*(priceLineItem.dLineItemFreelancerPrice)}} {{priceLineItem.ZOHOSalesOrderStatus}} {{priceLineItem.AddedFromField}}{{priceLineItem.CustomerApprovalStatus}} {{priceLineItem.BackendApprovalStatus}}
    • {{Steps}}
    Select All

    {{Sections.SectionName}}

    3 3 4
    Item NameDataUpdated OnReject / commentStatusAction

    {{items.ItemName}}

    \\\"image-1\\\"
    0\\\" ng-repeat=\\\"imgsss in items.ItemValues track by $index\\\">\\\"image-1\\\"

    View full pdf
    {{items.ItemValue}} {{items.ItemValue |date:\\'dd/MMM/yy h:mm:ss a\\'}}
    0\\\" ng-repeat=\\\"imgsss in items.ItemValues track by $index\\\">\\\"image-1\\\"
    Wrong Serial Number or Pattern!
    {{items.ItemUpdateDate |date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{items.ItemComment}}

    {{items.ItemStatus}}

    Basic Details

    3 3 4
    Site ID.VbKRR108
    Circle.Vbdjjs
    CustomerYes
    ASP Name.Navneet
    CityGhsj
    ActivityVbdjjs
    PTW Applied Time.Nov 26, 2022
    Valid FromNov 27, 2022
    Valid ToNov 28, 2022

    Project Checklist

    3 3 4
    Is complete PPE available with team and defect free.Yes
    Photo of complete PPE available with team and defect free.
    Remarks for PPE available with team and defect freeYes
    Is the complete tool kit available with team.Navneet
    Photo of complete tool kit available with team.
    Remarks complete tool kit available with teamVbdjjs
    Is the complete First Aid Box available with team.Yes
    Photo of complete First Aid Box available with team.Yes
    Remarks for complete First Aid Box available with team.Yes
    Is certified First Aider available with team.Yes
    Photo of certified First Aider available with team.Yes
    Remarks for certified First Aider available with team.Yes

    Risk Assessment Template

    3 3 4
    Select the appropriate risk levels for the below mentioned aspects after site verification Site conditions and justification of risk rating can be entered in comment wherever applicable.
    Vegetation at site.Yes
    Photo of Vegetation at site.
    Remarks for Vegetation at site.Yes
    Water logging at site.Yes
    Photo of Water logging at site.
    Remarks complete tool kit available with teamVbdjjs
    Is the complete First Aid Box available with team.Yes
    Photo of complete First Aid Box available with team.Yes
    Remarks for complete First Aid Box available with team.Yes
    Is certified First Aider available with team.Yes
    Photo of certified First Aider available with team.Yes
    Remarks for certified First Aider available with team.Yes

    Verification of Team

    3 3 4
    This is just some content to illustrate fancy headings.

    Pre Task PTW Approver

    3 3 4
    This is just some content to illustrate fancy headings.

    Pre Task PTW Approver

    3 3 4
    This is just some content to illustrate fancy headings.

    OHS APPROVAL

    3 3 4
    This is just some content to illustrate fancy headings.
    Static Header, initially expanded This content is straight in the template.
    Dynamic Body Content

    The body of the uib-accordion group grows to fit the contents

    I can have markup, too! This is just some content to illustrate fancy headings.
    I can have markup, too! This is just some content to illustrate fancy headings.
    I can have markup, too! This is just some content to illustrate fancy headings.
    I can have markup, too! This is just some content to illustrate fancy headings.
    I can have markup, too! This is just some content to illustrate fancy headings.
    I can have markup, too! This is just some content to illustrate fancy headings.

    No Queries Found

    • \\\"User
      {{case.strQueryBy}} {{case.dateQueryOn | date:\\'dd/MM/yyyy hh:mm a\\' }}

      {{case.strQuery}}

    • \\\"User
      {{case.dateResponseOn | date:\\'dd/MM/yyyy hh:mm a\\' }} {{case.strResponseBy}}

      {{case.strResponse}}

    {{JobDetailViewCtrl.lastTag}}

    Tracking# - {{JobDetailViewCtrl.trackNo}}
    • {{orderStatus.checkpoint_time | date: \\'dd/MMM/yyyy\\'}}

      {{orderStatus.checkpoint_time | date: \\'h:mm a\\'}}
    • {{orderStatus.message}}
    \");\n$templateCache.put(\"app/JobDetailViewNew/JobDetailViewNew.html\",\"
    1. Home
    2. Job Details
    by pass serial number
    Technician Denied Your Job Request
    • {{JobDetailViewNewCtrl.FreelancerBidCount}}  Technicians
    • \\\"image\\\"
      {{rUser.Username}}

      Job {{rUser.JobTotal}} | Distance {{rUser.Distance}} | Assigned Jobs {{rUser.TotalAssignedJobs}}

      {{rUser.DenyReason}}

    Technician Accepted Your Job Request
    • {{JobDetailViewNewCtrl.ReadyUserLength}}  Technicians
    • \\\"image\\\"
      {{rUser.name}}

      Jobs {{rUser.JobTotal}} | Distance {{rUser.UserDistance}} | Assigned Jobs {{rUser.TotalAssignedJobs}}

    Ticket ID - {{JobDetailViewNewCtrl.TicketInfo.TicketId}}  

    on {{JobDetailViewNewCtrl.TicketInfo.CreationDate | date:\\'dd/MMM/yyyy h:mm:ss a\\' }}

    Work Order ID - {{JobDetailViewNewCtrl.TicketInfo.GroupId}}  

    {{JobDetailViewNewCtrl.TicketInfo.SkillSet}}    

    {{JobDetailViewNewCtrl.TicketInfo.JobDescription}}  

    Customer Satisfaction    

    {{JobDetailViewNewCtrl.TicketInfo.HappyCodeResult}}  

    {{JobDetailViewNewCtrl.TicketInfo.TicketStatus}} {{JobDetailViewNewCtrl.TicketInfo.JobStartApprovalState}}
    {{JobDetailViewNewCtrl.TicketInfo.SubStatus}}

    Schedule : Complete Work By {{JobDetailViewNewCtrl.TicketInfo.PlannedClosureDate | date:\\'dd/MMM/yyyy h:mm a\\'}} Complete Work By {{JobDetailViewNewCtrl.TicketInfo.PlannedClosureDate | date: \\'dd/MMM/yyyy h:mm a\\'}} Complete Work By {{JobDetailViewNewCtrl.TicketInfo.PlannedClosureDate | date:\\'dd/MMM/yyyy h:mm a\\'}}

    Appointment Time: {{JobDetailViewNewCtrl.TicketInfo.PlannedStartDate | date:\\'dd/MMM/yyyy h:mm a\\'}}

    {{JobDetailViewNewCtrl.TicketInfo.CustomerName}}
    {{JobDetailViewNewCtrl.TicketInfo.Address1}}, {{JobDetailViewNewCtrl.TicketInfo.Address2}},{{JobDetailViewNewCtrl.TicketInfo.City}}
    {{JobDetailViewNewCtrl.TicketInfo.State}} , {{JobDetailViewNewCtrl.TicketInfo.Pincode}}
    Call to customer
    \\\"image\\\"
    Call to Alternate No.
    \\\"image\\\"

    Technician : {{JobDetailViewNewCtrl.TicketInfo.VendorName}} ({{JobDetailViewNewCtrl.TicketInfo.VendorId}})    \\\"image\\\"

    Technician : {{JobDetailViewNewCtrl.TicketInfo.UserName}} ({{JobDetailViewNewCtrl.TicketInfo.UserId}})    \\\"image\\\"

    Technician : UnAssigned

    Engineer Name : {{JobDetailViewNewCtrl.TicketInfo.UserName}} ({{JobDetailViewNewCtrl.TicketInfo.UserId}})

    Engineer Name : UnAssigned

    0 && JobDetailViewNewCtrl.Role !=\\'Customer\\'\\\" ng-repeat=\\\"fTeam in JobDetailViewNewCtrl.TicketInfo.ListFieldSupportTeam\\\">{{fTeam.SupportEngineerName}} 0 && JobDetailViewNewCtrl.Role ==\\'Customer\\'\\\" ng-repeat=\\\"fTeam in JobDetailViewNewCtrl.TicketInfo.ListFieldSupportTeam\\\">{{fTeam.SupportEngineerName}}
    Job Overview
    Spare Parts
    Collection
    Payment
    Scope Of Work
    Customer Details

    Please click here to see the given and updated customer location on map.

    Tracking Only Allowed During Business Hours

    Schedule
    Appointment Time
    {{JobDetailViewNewCtrl.getReadableTime(JobDetailViewNewCtrl.TicketInfo.PlannedStartDate)}}
    {{JobDetailViewNewCtrl.TicketInfo.AppointmentTakenDate| date:\\'yyyy/MM/dd h:mm:ss a\\'}}
    {{JobDetailViewNewCtrl.getReadableTime(JobDetailViewNewCtrl.TicketInfo.EndTime)}}
    Your ticket is scheduled on {{JobDetailViewNewCtrl.getReadableTime(JobDetailViewNewCtrl.TicketInfo.PlannedStartDate | date:\\'dd/MMM/yyyy h:mm:ss a\\')}} from {{JobDetailViewNewCtrl.getReadableTime(JobDetailViewNewCtrl.TicketInfo.PlannedStartDate | date:\\'dd/MMM/yyyy h:mm:ss a\\')}}
    Complete Ticket by
    Showing {{JobDetailViewNewCtrl.FixedUserLength}} Technician with inKms   ranked by
    Showing {{JobDetailViewNewCtrl.NearByUserLength}} Technicianwith inKms   ranked by
    Private User
    Compliance
    Pincode Based
    Showing {{JobDetailViewNewCtrl.PrefreUserLength}} Technicianwith inKms   ranked by
    Showing {{JobDetailViewNewCtrl.PreviousUserLength}} Technician with inKms   ranked by
    Supervisior

    Appointment time
    {{JobDetailViewNewCtrl.getReadableTime(JobDetailViewNewCtrl.TicketInfo.StartTime)}}
    {{JobDetailViewNewCtrl.getReadableTime(JobDetailViewNewCtrl.TicketInfo.EndTime)}}
    Your ticket is scheduled from {{JobDetailViewNewCtrl.getReadableTime(JobDetailViewNewCtrl.TicketInfo.StartTime)}} to {{JobDetailViewNewCtrl.getReadableTime(JobDetailViewNewCtrl.TicketInfo.EndTime)}}
    Material Delivered Status
    Ticket Detail

    {{JobDetailViewNewCtrl.TicketInfo.TechnicianRating}}

    Rate Detail
    {{JobDetailViewNewCtrl.ConverttoDecimal(JobDetailViewNewCtrl.TicketInfo.BroadcastRate)}}
    {{JobDetailViewNewCtrl.ConverttoDecimal(JobDetailViewNewCtrl.TicketInfo.BroadcastGrossRate)}}
    {{JobDetailViewNewCtrl.ConverttoDecimal(JobDetailViewNewCtrl.TicketInfo.MobiforceCommission)}}%
    {{JobDetailViewNewCtrl.TicketInfo.BidDuration}} Min
    Field Team List
    NameUser IdRolePhoto
    {{superField.SupportEngineerName}}{{superField.SupportEngineerUserId}}{{superField.SupportEngineerRole}}\\\"image-1\\\"
    Supervisor View

    Field Data Capture
    Field Team List
    NameUser IdRolePhoto
    {{superField.SupportEngineerName}}{{superField.SupportEngineerUserId}}{{superField.SupportEngineerRole}}\\\"image-1\\\"
    Field Data Capture
    Select All
    SelectItem NameDataUpdated OnUpdate HistoryReject / commentStatus

    \\\"image-1\\\"
    0\\\" ng-repeat=\\\"imgsss in docList.ItemValues track by $index\\\">\\\"image-1\\\"
    {{docList.ItemValue}} {{skill}}
    link{{docList.ItemUpdateDate |date:\\'dd/MMM/yy h:mm:ss a\\'}}{{docList.ItemComment}}

    {{docList.ItemComment}}

    {{docList.ItemStatus}}
    \\\"\\\"

    {{status.userName}}  {{status.CreatedOn |date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{status.activity}} Follow Up - {{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }} {{\\\"( \\\" + status.ThirdReason + \\\" )\\\" }}
    {{\\\"Remark: \\\" + status.CompletionRemark + \\\" \\\" }}
    \\\"\\\"

    {{status.userName}}  {{status.CreatedOn |date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{status.activity}} Follow UP --{{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }}
    0 && status.ReasonComment!=\\'null\\'\\\">-{{status.ReasonComment}}
    \\\"\\\"

    {{status.userName}}  {{status.CreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{status.activity}} Follow UP --{{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }}
    0 && status.ReasonComment!=\\'null\\'\\\">-{{status.ReasonComment}}
    {{\\\"Remark: \\\" + status.CompletionRemark + \\\" \\\" }}

    \\\"image\\\"
    • Add New Members
    Last Updated on :

    Ticket is Pending for Assignation to Vendor Field Engineer, Tracking Map appears when Ticket is assigned to Field Engineer

    Tracking Only Allowed During Business Hours

    Rule NameStageScenarioGradeApplicableAmount
    {{BonusPenalty.Name}}{{BonusPenalty.Stage}}{{BonusPenalty.Scenario}}{{BonusPenalty.Grade}}{{BonusPenalty.Applied}}{{BonusPenalty.Amount}}

    Total Bonus

    {{JobDetailViewNewCtrl.TicketInfo.TotalBonus}}

    Rule NameStageScenarioGradeApplicableAmount
    {{Penalty.Name}}{{Penalty.Stage}}{{Penalty.Scenario}}{{Penalty.Grade}}{{Penalty.Applied}}{{Penalty.Amount}}

    Total Penalty

    {{JobDetailViewNewCtrl.TicketInfo.TotalPenalty}}

    FromToCall StatusStart TimeDuration(mins) / Distance(mtr)RecordingStatusField EventService Interpretation
    {{callD.CallFrom}}{{callD.CallTo}} {{callD.CallStartTime | date:\\'dd/MM/yyyy hh:mm a\\'}}{{callD.Duration}}
    {{callD.FieldRemark}}

    {{callD.ServiceRemark}}
    • Tracking No

      {{trackingData.TrackingStatusModel.TrackingNumber}}
    • To

      {{trackingData.TrackingStatusModel.ShipmentTo}}
    • From

      {{trackingData.TrackingStatusModel.ShipmentFrom}}
    • Date of Shipment

      {{trackingData.TrackingStatusModel.DateOfShipment}}
    • Deliver Date

      {{trackingData.TrackingStatusModel.ItemDeliveredDate | date:\\'dd/MMM/yyyy h:mm a\\'}}
    • Deliver Status

      {{trackingData.TrackingStatusModel.TrackingStatus}}
    LineItem IdHardware DescriptionQuantityCompany ProvidedBase PriceFreelancer PriceSalesOrder StatusRemarks
    {{hwDetail.LineItemId}}{{hwDetail.LineItemDescription}}{{hwDetail.LineItemQuantity}}{{hwDetail.LineItemCompanyProvided}}{{hwDetail.dLineItemWinPrice}}{{hwDetail.dLineItemFreelancerPrice}}{{hwDetail.ZOHOSalesOrderStatus}}{{hwDetail.LineItemRemark}}
    Site Audit StatusSite Audited OnSite Audited BySite Audit Report
    {{Audittool.AuditResult}} {{Audittool.AuditResult}}{{Audittool.AuditDate | date:\\'dd/MM/yyyy hh:mm a\\'}}{{Audittool.AuditorDetails.AuditorName}}
    Collection
    Payment
    TypeActivity DescriptionQuantityCompany ProvidedWarehouseBase PriceFreelancer PriceSalesOrder StatusRemarksSourceAction
    {{priceLineItem.LineItemCategory}}{{priceLineItem.LineItemDescription}}{{priceLineItem.LineItemQuantity}} {{priceLineItem.LineItemCompanyProvided}}{{priceLineItem.ZOHOWarehouseName}}{{(priceLineItem.LineItemQuantity)*(priceLineItem.dLineItemWinPrice)}} {{(priceLineItem.LineItemQuantity)*(priceLineItem.dLineItemFreelancerPrice)}} {{priceLineItem.ZOHOSalesOrderStatus}}{{priceLineItem.LineItemRemark}} {{priceLineItem.AddedFromField}} init View Document Upload File

    Total

    • {{Steps}}
    Select All

    {{Sections.SectionName}}

    3 3 4
    Item NameDataUpdated OnReject / commentStatusAction

    {{items.ItemName}}

    \\\"image-1\\\"
    0\\\" ng-repeat=\\\"imgsss in items.ItemValues track by $index\\\">\\\"image-1\\\"

    {{items.ItemValue}} {{items.ItemValue |date:\\'dd/MMM/yy h:mm:ss a\\'}}
    0\\\" ng-repeat=\\\"imgsss in items.ItemValues track by $index\\\">\\\"image-1\\\"
    Wrong Serial Number or Pattern!
    {{items.ItemUpdateDate |date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{items.ItemComment}}

    {{items.ItemStatus}}

    Basic Details

    3 3 4
    Site ID.VbKRR108
    Circle.Vbdjjs
    CustomerYes
    ASP Name.Navneet
    CityGhsj
    ActivityVbdjjs
    PTW Applied Time.Nov 26, 2022
    Valid FromNov 27, 2022
    Valid ToNov 28, 2022

    Project Checklist

    3 3 4
    Is complete PPE available with team and defect free.Yes
    Photo of complete PPE available with team and defect free.
    Remarks for PPE available with team and defect freeYes
    Is the complete tool kit available with team.Navneet
    Photo of complete tool kit available with team.
    Remarks complete tool kit available with teamVbdjjs
    Is the complete First Aid Box available with team.Yes
    Photo of complete First Aid Box available with team.Yes
    Remarks for complete First Aid Box available with team.Yes
    Is certified First Aider available with team.Yes
    Photo of certified First Aider available with team.Yes
    Remarks for certified First Aider available with team.Yes

    Risk Assessment Template

    3 3 4
    Select the appropriate risk levels for the below mentioned aspects after site verification Site conditions and justification of risk rating can be entered in comment wherever applicable.
    Vegetation at site.Yes
    Photo of Vegetation at site.
    Remarks for Vegetation at site.Yes
    Water logging at site.Yes
    Photo of Water logging at site.
    Remarks complete tool kit available with teamVbdjjs
    Is the complete First Aid Box available with team.Yes
    Photo of complete First Aid Box available with team.Yes
    Remarks for complete First Aid Box available with team.Yes
    Is certified First Aider available with team.Yes
    Photo of certified First Aider available with team.Yes
    Remarks for certified First Aider available with team.Yes

    Verification of Team

    3 3 4
    This is just some content to illustrate fancy headings.

    Pre Task PTW Approver

    3 3 4
    This is just some content to illustrate fancy headings.

    Pre Task PTW Approver

    3 3 4
    This is just some content to illustrate fancy headings.

    OHS APPROVAL

    3 3 4
    This is just some content to illustrate fancy headings.
    Static Header, initially expanded This content is straight in the template.
    Dynamic Body Content

    The body of the uib-accordion group grows to fit the contents

    I can have markup, too! This is just some content to illustrate fancy headings.
    I can have markup, too! This is just some content to illustrate fancy headings.
    I can have markup, too! This is just some content to illustrate fancy headings.
    I can have markup, too! This is just some content to illustrate fancy headings.
    I can have markup, too! This is just some content to illustrate fancy headings.
    I can have markup, too! This is just some content to illustrate fancy headings.

    {{JobDetailViewNewCtrl.lastTag}}

    Tracking# - {{JobDetailViewNewCtrl.trackNo}}
    • {{orderStatus.checkpoint_time | date: \\'dd/MMM/yyyy\\'}}

      {{orderStatus.checkpoint_time | date: \\'h:mm a\\'}}
    • {{orderStatus.message}}
    \");\n$templateCache.put(\"app/JobList/JobList.html\",\"
    • T1410000010577_1
    • Fan (Fan Service)
    • Cancelled
    • TBC
    Job Overview
    Customer Details
    Schedule
    Supervisor View
    Payment
    Rohit
    12:45
    Job has been created

    Yesterday

    Sajad
    12:46
    Hey, I bought something yesterdat but haven\\'t gotten any confirmation. Do you know I if the order went through?
    Sajad
    12:46
    You can change your name in JS section!
    Sajad
    12:46
    You can change your name in JS section!
    Rohit
    12:45
    Job(s) uploaded successfully
    Rohit
    12:45
    Hi, welcome to SimpleChat! Go ahead and send me a message. 😄

    Today

    Rohit
    12:45
    Rohit
    12:45
    Rohit
    12:45
    Rohit
    12:45
    Rohit (T)
    12:45

    Few Hours Ago

    Rohit (C)
    12:45
    TypeActivity DescriptionQuantityCompany ProvidedBase PriceFreelancer Price
    ServiceP_192_1601No190162
    BonusBonus1No08
    HWInverter Capacitors1No801716
    GeneralTicket Price Too Low1No014

    Total

    • Action
    • Progress Bar
    • Job ID
    • Accounts Name
    • Site Id
    • Site Name
    • Job Description
    • Job step Approval
    • Job Type
    • Project
    • Customer
    • Location
    • Tecnician Name
    • Partner Name
    • Field Support Team
    • Publish Date
    • Assign Date
    • Latitude
    • Longitude
    • Follow Up Reason
    • Customer Satisfaction
    • Status
    • Sub Status
    • Settlement Status
    • Appointment Time
    • Invoice Status
    • Actual Start Date
    • Completion Date
    • SLA Status
    • TAT
    • Tecnician Date
    • Customer Rating
    • Consumer Name
    • Consumer Contact
    • Address 1
    • Address 2
    • Pincode
    • Supervisor Name
    • Approved Date
    • Freelacer Price
    • Bill Amount
    • schedule Mode
    • Material Delivery Status
    • Material Delivery Date
    • Primary Reason
    • Clone Reason
    • Audit
    • Clone Counter
    • Source Creation Date
    • Planned Closure Date
    • Breach Status
    • Cancellation Reasons
    • Collection Required
    • Collection Mode
    • Amount Collected
    • Amount To Be Collected
    • Region
    • Dispatcher Name
    1. Home
    2. Jobs
    {{JobListCtrl.pageindexCount}} - {{JobListCtrl.ticketListLength}} of {{totalTableUsers}}
    ActionJob IDAccount NameSite IDSite NameJob DescriptionJob Step ApprovalJob TypeProjectCustomerLocationTechnician NameEngineer NamePartner NameField Support TeamPublish DateAssign DateLatitudeLongitudeFollow Up ReasonCustomer SatisfactionStatusSub StatusSettlement StatusAppointment TimeInvoiceStatusActual Start DateCompletion DateSLA StatusTATTechnician RatingCustomer RatingConsumer NameConsumer ContactAddress1Address2PincodeSupervisor NameApproved DateFreelancer PriceBill AmountSchedule ModeMaterial Delivery StatusMaterial Delivery DatePrimary ReasonClone ReasonAuditClone CounterSource Creation DatePlanned Closure DateBreach StatusCancellation ReasonsCollection RequiredCollection ModeAmount CollectedAmount To Be CollectedRegionSite Audit StatusSite Audit DateSite Audit ByDispatcher Name
    • Job Approved

    • Accept Job

    • Download

    • Ticket Report

    • Download Pdf Report

    • Pull back job

    • Reject Job

    • Reject Job

    • Convert to New

    • On Hold

    • Onsite Report

    • Cancel

    • Clone Job

    • UnHold

    • Settlement

    • Follow Up

    • Tracking

    • Reschedule Audit

    • Site Audit

    • Convert To New from Broadcast

  • {{ticket.UserName}}0\\\" ng-repeat=\\\"fTeam in ticket.ListFieldSupportTeam\\\">{{fTeam.SupportEngineerName}}

    \");\n$templateCache.put(\"app/KPIAdvancedDashboard/KPIAdvancedDashboard.html\",\"
    {{rollup}}
    {{chart.ChartTitle}} -
    {{chart.ChartSubtitle}}

    {{KPIdashboard.metricsCharts[chart.ChartId].value&&KPIdashboard.metricsCharts[chart.ChartId].value.length>0?(KPIdashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(KPIdashboard.metricsCharts[chart.ChartId].value[$index].strValue): KPIdashboard.metricsCharts[chart.ChartId].value[$index].Value):\\\"NA\\\"}} {{KPIdashboard.metricsCharts[chart.ChartId].value[$index].AcheivedPercentage}} % {{KPIdashboard.metricsCharts[chart.ChartId].value[$index].AcheivedPercentage}} %

    {{KPIdashboard.DateRangeSelectedKey}} : {{KPIdashboard.metricsCharts[chart.ChartId].value&&KPIdashboard.metricsCharts[chart.ChartId].value.length>0?(KPIdashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(KPIdashboard.metricsCharts[chart.ChartId].value[$index].strTargetValue):KPIdashboard.metricsCharts[chart.ChartId].value[$index].TargetValue):\\\"NA\\\"}}

    {{KPIdashboard.DateRangeSelectedKey}} : {{KPIdashboard.metricsCharts[chart.ChartId].value&&KPIdashboard.metricsCharts[chart.ChartId].value.length>0?(KPIdashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(KPIdashboard.metricsCharts[chart.ChartId].value[$index].strValue):KPIdashboard.metricsCharts[chart.ChartId].value[$index].Value):\\\"NA\\\"}}

    {{chart.ChartTitle}} -
    {{chart.ChartSubtitle}}
    {{KPIdashboard.ActualSelectedKey}}
    Target : {{(KPIdashboard.gaugeCharts[chart.ChartId].value[0].ValueType == \\'INR\\'?(KPIdashboard.gaugeCharts[chart.ChartId].value[0].strTargetValue):KPIdashboard.gaugeCharts[chart.ChartId].value[0].TargetValue)}}
    Remaining : {{(KPIdashboard.gaugeCharts[chart.ChartId].value[0].ValueType == \\'INR\\'?(KPIdashboard.gaugeCharts[chart.ChartId].value[0].strRemainingValue):KPIdashboard.gaugeCharts[chart.ChartId].value[0].RemainingValue)}}
    Exceed : {{(KPIdashboard.gaugeCharts[chart.ChartId].value[0].ValueType == \\'INR\\'?(KPIdashboard.gaugeCharts[chart.ChartId].value[0].strRemainingValue):KPIdashboard.gaugeCharts[chart.ChartId].value[0].RemainingValue)}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}} -
    {{chart.ChartSubtitle}}
    {{col}}
    {{val}} {{val}}
    \");\n$templateCache.put(\"app/KPIconfiguration/KPIconfiguration.html\",\"
    1. Home
    2. KPI Configuration
    • Account KPI
    • Organisation KPI
    S.No.Acount NameAccount IdBusiness Unit
    {{serialNumber + $index}}{{accounts.AccountName}}{{accounts.AccountId}}{{accounts.BusinessUnit}}
    Business HeadOperationsTech Automation Index
    {{BusinessKPIname.Name}}{{OperationKPIname.Name}}{{TechKPIname.Name}}
    {{businessValue.TargetValue}} {{businessValue.Unit}} %{{operationsValue.TargetValue}} {{operationsValue.Unit}} %{{techAutomateValue.TargetValue}} {{techAutomateValue.Unit}} %
    Sales
    {{SalesKPIname.Name}}{{SalesKPIname.TargetValue}} {{SalesKPIname.Unit}} %
    Network Strength
    {{NetworkKPIname.Name}}{{NetworkKPIname.TargetValue}} {{NetworkKPIname.Unit}} %
    Partner Engagement
    {{partnerKPIname.Name}}{{partnerKPIname.TargetValue}} {{partnerKPIname.Unit}} %
    Consumers
    {{consumerKPIname.Name}}{{consumerKPIname.TargetValue}} {{consumerKPIname.Unit}} %
    Oneserve -VAS
    {{OneservKPIname.Name}}{{OneservKPIname.TargetValue}} {{OneservKPIname.Unit}} %
    Platform Partners
    {{platformKPIname.Name}}{{platformKPIname.TargetValue}} {{platformKPIname.Unit}} %
    \");\n$templateCache.put(\"app/KnowledgeManagementListView/KnowledgeManagementListView.html\",\"
    Sequence No.FileDescriptionTagging
    1
    2
    \");\n$templateCache.put(\"app/KnowledgeManagementSkillView/KnowledgeManagementSkillView.html\",\"

    Video 1

    RF & LOS Survey is the process of planning and designing a wireless network, in particular an 802.11 Wi-Fi wireless network, to provide a wireless solution that will deliver the required wireless coverage.

    Video 2

    Intelligent WAN (iWAN) is a Cisco SD-WAN product that was built from an existing Cisco product (also called iWAN). ... Cisco suggests that customers use the iWAN in conjunction with its integrated services router (ISR) so that they can then dynamically route traffic based on application, endpoint, and network conditions.

    Video 3

    Drive testing is a method of measuring and assessing the coverage, capacity and Quality of Service (QoS) of a mobile radio network.

    Video 4

    A leased line is a private bidirectional or symmetric telecommunications circuit between two or more locations provided according to a commercial contract. It is sometimes also known as a private circuit, and as a data line in the UK.

    Video 5

    VSAT stands for Very Small Aperture Terminal and refers to receive/transmit terminals installed at dispersed sites connecting to a central hub via satellite using small diameter antenna dishes (0.6 to 3.8 meter).

    Video 6

    Single cell functionality test or single site verification that is static test which collect each sector information of the cell site in terms of coverage and quality parameters depends upon the technology in the cellular mobile network.

    Video 7

    broadband is wide bandwidth data transmission which transports multiple signals and traffic types. ... In the context of Internet access, broadband is used to mean any high-speed Internet access that is always on and faster than dial-up access over traditional analog or ISDN PSTN services.

    Video 8

    A very small aperture terminal (VSAT) is a two-way ground station that transmits and receives data from satellites. A VSAT is less than three meters tall and is capable of both narrow and broadband data to satellites in orbit in real-time.

    Video 9

    A base transceiver station (BTS) is a piece of equipment that facilitates wireless communication between user equipment (UE) and a network. UEs are devices like mobile phones (handsets), WLL phones, computers with wireless Internet connectivity.
    \");\n$templateCache.put(\"app/KnowledgeManagementUpload/KnowledgeManagementUpload.html\",\"
    1. Home
    2. App Views
    3. Knowledge Management Upload
    Please upload only jpeg, jpg, png, mp4, mp3 files.

    Course Name :

    Description :

    Tagging :

    Cover Picture :

    FileDescriptionTagging
    \");\n$templateCache.put(\"app/KnowledgeManagementView/KnowledgeManagementView.html\",\"
    1. Home
    2. Knowledge Management
    3. Knowledge Management List

    RFLOS Survey

    RF & LOS Survey is the process of planning and designing a wireless network, in particular an 802.11 Wi-Fi wireless network, to provide a wireless solution that will deliver the required wireless coverage.

    Iwan Survey

    Intelligent WAN (iWAN) is a Cisco SD-WAN product that was built from an existing Cisco product (also called iWAN). ... Cisco suggests that customers use the iWAN in conjunction with its integrated services router (ISR).

    Drive Test

    Drive testing is a method of measuring and assessing the coverage, capacity and Quality of Service (QoS) of a mobile radio network upon the technology in the cellular mobile network and broadband data to satellites in orbit.

    Lease Line

    A leased line is a private bidirectional or symmetric telecommunications circuit between two or more locations provided according to a commercial contract. It is sometimes also known as a private circuit.

    VSAT Installation

    VSAT stands for Very Small Aperture Terminal and refers to receive/transmit terminals installed at dispersed sites connecting to a central hub via satellite using small diameter antenna dishes (0.6 to 3.8 meter).

    SCFT Survey

    Single cell functionality test or single site verification that is static test which collect each sector information of the cell site in terms of coverage and quality parameters depends upon the technology in the cellular.

    Broadband Survey

    broadband is wide bandwidth data transmission which transports multiple signals and traffic types. ... In the context of Internet access, broadband is used to mean any high-speed Internet access.that will deliver coverage.

    VSAT Crosspole

    A very small aperture terminal (VSAT) is a two-way ground station that transmits and receives data from satellites. A VSAT is less than three meters tall and is capable of both narrow and broadband data to satellites in orbit wireless.

    BTS Site Survey

    A base transceiver station (BTS) is a piece of equipment that facilitates wireless communication between user equipment (UE) and a network. UEs are devices like mobile phones (handsets), WLL phones, computers with wireless Internet connectivity.
    \");\n$templateCache.put(\"app/LeaderBoard/LeaderBoard.html\",\"
    MMF LeaderBoard
    {{leaders.Title}}

    of 100

    {{ leaders.LeaderName }}
    NA

    {{leaders.ChartName}} {{leaders.Number}}

    Best Team
    RankName (Department)Revenue
    #{{$index + 1}}{{bestTeam.LeaderName}}{{bestTeam.Number}}
    Money Maker
    RankName (Department)MMF Revenue
    #{{$index + 1}}{{highestRevenue.LeaderName}}{{highestRevenue.Number}}
    PROFIT MACHINE
    RankName (Department)Take Rate
    #{{$index + 1}}{{takeRate.LeaderName}}{{takeRate.Number}}
    Task Master
    RankName (Department)No. of Tickets
    #{{$index + 1}}{{highestJobs.LeaderName}}{{highestJobs.Number}}
    BEST PROFIT AND LOSS
    RankName (Department)Profit
    #{{$index + 1}}{{highestProfit.LeaderName}}{{highestProfit.Number}}
    \");\n$templateCache.put(\"app/LoadBalancer/LoadBalancer.html\",\"
    1. Home
    2. Load Balance Configuration
    Reporting ToTeamTotal LoadTicket StatusDay 1Day 2Day 3+All DaysAction
    John Doe (DTL)2 Team Members425All21014035385
    TeamTotal LoadTicket StatusDay 1Day 2Day 3+All Days
    Dispatch Supervisor 1315In Progress1008020200
    Pending40301080
    Completed2010535
    Dispatch Supervisor 2110In Progress30101050
    Pending155020
    Completed55515
    Jane Smith (DTL)1 Team Member425All21014035385
    Michael Johnson (DTL)2 Team Members425All21014035385
    \");\n$templateCache.put(\"app/Login2Factor/Login2Factor.html\",\"

    Login

    Please fill the username. Please fill the valid username.

    Authentication

    You can Resend Code in 00:{{countDown}}

    Copyright MyMobiforce © 2025

    \");\n$templateCache.put(\"app/Login/login.html\",\"

    Login

    Please fill the username.
    Please fill the password.
    Forgot password?

    Two Step Authentication

    You can Resend Code in 00:{{countDown}}

    Copyright MyMobiforce © 2025

    Login

    Please fill the username.
    Please fill the password.
    Forgot password?

    Two Step Authentication

    You can Resend Code in 00:{{countDown}}

    Copyright MyMobiforce © 2025

    \");\n$templateCache.put(\"app/LeaveManagement/LeaveManagement.html\",\"
    1. Home
    2. Leave Management
    Select AllLeave DateUser NameUser IDStatusApplied DateApproval DateCancellation DateRejection Date
    \");\n$templateCache.put(\"app/ManualAssignation/ManualAssignation.html\",\"
    1. Home
    2. Job Assign
    Submit
    Job IDDecriptionCustomerSkillLocationAge (Days)PriorityCreated DateProjectPincode
    {{newJob.LinkId || newJob.TicketId}} {{newJob.TicketId}}{{newJob.JobDescription}}{{newJob.CustomerName}}{{newJob.SkillSet}}{{newJob.Circle}}{{newJob.Age}}{{newJob.Priority}} NA{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.ProjectName}}{{newJob.Pincode}}
    Job IDStart TimeBroadcasted DatePriceDurationSentRecieved
    {{broadcast.LinkId || broadcast.JobId}}{{broadcast.StartDateTime | date: \\'dd/MM/yyyy\\'}}{{broadcast.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{broadcast.BroadcastRate}} INR{{broadcast.BIDDuration}} hrs{{broadcast.BIDSend}}{{broadcast.BIDReceived}}
    {{manualAssignation.broadcastError}}

    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"freeUser in manualAssignation.freelancerUsers | filter: manualAssignation.searchUserText | orderBy : orderProperty\\\" ng-class=\\'{\\\"selectedRow\\\":(manualAssignation.selectedJob==freeUser)}\\'>
    \\\"image\\\" \\\"image\\\"

    {{freeUser.exp}} Years

    0 Total Jobs

    0)\\\" class=\\\"label label-primary\\\">Online Offline

    {{freeUser.exp}} Years

    0\\\">{{freeUser.SkillSet[0]+(freeUser.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{freeUser.Locations[0]+(freeUser.locationCount>1?\\\"...\\\":\\\"\\\")}}

    {{freeUser.Pincode}}

    No data found
    TicketId:-{{manualAssignation.broadcastLinkId || manualAssignation.broadcastTicketId}}

    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"bidUsers in manualAssignation.BidReceivedJobs |filter: searchUserText | orderBy : orderProperty\\\">
    \\\"image\\\"

    {{bidUsers.BIDStatus}}

    2 Kms

    {{bidUsers.JobsCompletedCount}} 0  Total Jobs

    {{bidUsers.exp}} Years

    0\\\">{{bidUsers.SkillSet}}

    0\\\">{{bidUsers.Locations)}}

    No data found
    {{manualAssignation.broadcastErrorFV}}

    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"vendors in manualAssignation.FreelancerVendorUsers | filter: manualAssignation.searchUserText | orderBy : orderProperty\\\">
    \\\"image\\\" \\\"image\\\"

    0 Total Jobs

    0)\\\" class=\\\"label label-primary\\\">Online Offline

    {{vendors.exp}} Years

    0\\\">{{vendors.SkillSet[0]+(vendors.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{vendors.Locations[0]+(vendors.locationCount>1?\\\"...\\\":\\\"\\\")}}

    {{vendors.Pincode}}

    No data found
    TicketId:-{{manualAssignation.broadcastLinkId || manualAssignation.broadcastTicketId}}

    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"bidUsers in manualAssignation.BidReceivedJobs |filter: searchUserText | orderBy : orderProperty\\\">
    \\\"image\\\"

    Satyaver

    {{bidUsers.BIDStatus}}

    2 Kms

    {{bidUsers.JobsCompletedCount}} 0  Total Jobs

    {{bidUsers.exp}} Years

    0\\\">{{bidUsers.SkillSet}}

    0\\\">{{bidUsers.Locations)}}

    No data found
    {{manualAssignation.pageindexCount}} - {{manualAssignation.ticketListLength}} of {{totalTableUsers}}
    Job IDSite IDSite NameRegionDescriptionCustomerBroadcast CountSkillLocationAge (Days)PriorityStatusSentAcceptedRejectedCreated DateStart TimeBroadcasted DatePriceDurationProjectPincode
    {{newJob.LinkId || newJob.TicketId}} {{newJob.TicketId}}{{newJob.JobId}}{{newJob.SiteName}}{{newJob.Region}}{{newJob.JobDescription}}{{newJob.CustomerName}}{{newJob.BroadcastCount}}{{newJob.SkillSet}}{{newJob.Circle}}{{newJob.Age}}{{newJob.Priority}} NA{{newJob.BIDSend}}{{newJob.BIDReceived}}{{newJob.DenyCount}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BroadcastRate}} INR{{newJob.BidDuration}} hrs{{newJob.ProjectName}}{{newJob.Pincode}}
    {{manualAssignation.UsersType}}
    {{manualAssignation.upageindexCount}} - {{manualAssignation.userListLength}} of {{totalUsers}}
       \\\"image\\\" \\\"image\\\" N P

    0)\\\" class=\\\"label label-primary\\\">Online Offline

    {{fixedUsers.ContactNumber}}

    Today Jobs :

    {{fixedUsers.exp}} Years

    0\\\">{{fixedUsers.SkillSet[0]+(fixedUsers.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}
    0\\\">{{fixedUsers.Locations[0]+(fixedUsers.locationCount>1?\\\"...\\\":\\\"\\\")}}

    {{fixedUsers.CurrentPinCode}}

    No data found
    {{main.getVisibleLabel(\\'Vendor\\')}}
    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"vendors in manualAssignation.vendorList | filter: manualAssignation.searchUserText | orderBy : orderProperty\\\">
    \\\"image\\\"

    {{vendors.CompanyName}} {{vendors.AddressLine2}}

    {{vendors.MobileNumber}}

    0 Total Jobs

    {{vendors.TotalJobs}} Total Jobs

    0\\\">{{vendors.VendorSkillsets[0]+(vendors.VendorSkillsetsCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{vendors.VendorLocations[0]+(vendors.VendorLocationsCount>1?\\\"...\\\":\\\"\\\")}}

    {{vendors.Pincode}}

    No data found
    {{main.getRoleName(\\'Supervisor\\')}}
    0\\\" class=\\\"project-list ng-scope\\\" style=\\\"border-bottom: 1px solid rgb(238, 238, 238); cursor: pointer;\\\" ng-repeat=\\\"supervisors in manualAssignation.supervisorList | filter: manualAssignation.searchUserText | filter : manualAssignation.filteredProperties | orderBy : orderProperty\\\">
    \\\"image\\\" \\\"image\\\"

    {{supervisors.FirstName + \\' \\' + supervisors.LastName}}

    {{supervisors.ContactNumber}}

    {{supervisors.JobTotal}} Total Jobs

    0 Total Jobs

    0\\\">{{supervisors.SkillSet[0]+(supervisors.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}

    0\\\">{{supervisors.Locations[0]+(supervisors.locationCount>1?\\\"...\\\":\\\"\\\")}}

    No data found
    \\\"profile\\\" \\\"profile\\\"

    {{manualAssignation.AvailableUserData.FirstName + \\' \\' + manualAssignation.AvailableUserData.LastName}}

    {{manualAssignation.AvailableUserData.UserId}}
    {{manualAssignation.AvailableUserData.PhoneNumber==null?\\\"...\\\":manualAssignation.AvailableUserData.PhoneNumber}}
    Satyaver@gmail.com
    0\\\">{{manualAssignation.AvailableUserData.SkillSet[0]+(manualAssignation.AvailableUserData.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}
    0\\\">{{manualAssignation.AvailableUserData.Locations[0]+(manualAssignation.AvailableUserData.locationCount>1?\\\"...\\\":\\\"\\\")}}
    NA | Total Jobs | Today Jobs

    Job Information

    • {{manualAssignation.alertMessage}}

    Todays Job

    Job IDDescriptionSkillLocation
    {{ticket.TicketId}}{{ticket.JobDescription}}{{ticket.SkillSet}}{{ticket.State}}
    ×
    Availibility
    ×
    \\\"image\\\"

    {{bidUsers.BIDStatus}}

    2 Kms

    {{bidUsers.JobsCompletedCount}} 0  Total Jobs

    {{bidUsers.exp}} Years

    0\\\">{{bidUsers.SkillSet}}

    0\\\">{{bidUsers.Locations)}}

    No data found
    \");\n$templateCache.put(\"app/MobiEngage/MobiEngage.html\",\"
    \\\"image\\\"
    Ajay Kumar Today 4:21 pm - 27.05.2020

    Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Packages and web page editors now use Lorem Ipsum as their default model text.

    \\\"image\\\"
    Ajay Kumar Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words.
    26 Like this! - 27.05.2020
    \\\"image\\\"
    Vijay Saxena Making this the first true generator on the Internet. It uses a dictionary of.
    11 Like this! - 27.05.2020
    \\\"image\\\"
    \\\"image\\\"
    Vikas Gupta Today 5:23 pm - 27.05.2020

    Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Packages and web page editors now use Lorem Ipsum as their default model text.

    \\\"image\\\"
    Vikas Gupta Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words.
    26 Like this! - 27.05.2020
    \\\"image\\\"
    Arun Mehra Making this the first true generator on the Internet. It uses a dictionary of.
    11 Like this! - 27.05.2020
    \\\"image\\\"
    \\\"image\\\"
    Narendra Joshi Today 11:21 pm - 27.05.2020

    Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Packages and web page editors now use Lorem Ipsum as their default model text.

    \\\"image\\\"
    Narendra Joshi Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words.
    26 Like this! - 27.05.2020
    \\\"image\\\"
    Vinay Kumar Making this the first true generator on the Internet. It uses a dictionary of.
    11 Like this! - 10.07.2014
    \\\"image\\\"
    \\\"image\\\"
    Varun Kumar Today 4:21 pm - 12.06.2014

    Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Packages and web page editors now use Lorem Ipsum as their default model text.

    \\\"image\\\"
    Varun Kumar Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words.
    26 Like this! - 12.06.2014
    \\\"image\\\"
    Ranjeet Kumar Making this the first true generator on the Internet. It uses a dictionary of.
    11 Like this! - 10.07.2014
    \\\"image\\\"
    \");\n$templateCache.put(\"app/ManualAssignationJob/ManualAssignationJob.html\",\"
    {{manualAssignationJob.UsersType}}
      {{manualAssignationJob.upageindexCount}} - {{manualAssignationJob.userListLength}} of {{totalUsers}}
    \\\"image\\\"

    ({{fixedUsers.Role}})

    N P

    {{fixedUsers.UserId}}

    {{fixedUsers.CommittmentStatus}}

    {{fixedUsers.ContactNumber}}

    Last Login

    {{fixedUsers.LastLoginUpdateTime | date:\\'dd/MMM/yy hh:mm a\\'}}

    Today Jobs : {{fixedUsers.TodayJobs}}

    Approved Jobs : {{fixedUsers.TotalJobs}}

    Total Bids :{{fixedUsers.TotalBids}}

    Acceptance Jobs (%) :{{fixedUsers.AvgAcceptanceJobs}}

    Total Jobs : {{fixedUsers.DispatcherTotalJobs}}

    Total New Jobs(Till Date) : {{fixedUsers.DispatcherTotalNewJobs}}

    Total New Jobs(Till Date) : {{fixedUsers.DispatcherTotalNewJobs}}

    Availability :{{fixedUsers.TeamAvailability}}

    Availability :{{fixedUsers.TeamAvailability}}

    First Response Time (%) :{{fixedUsers.FirstResponseRate}}

    Appointment Met Rate (%) :{{fixedUsers.AppointmentMetRate}}

    Job Completion (%) :{{fixedUsers.AvgJobCompeltionRate}}

    0\\\">{{fixedUsers.CurrentPinCode}}

    {{fixedUsers.SkillSet[0]+(fixedUsers.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}

    • Jobs
    • Combo Suggestion
    Call ID Job IDAsset Serial NumberStatusSub StatusActionCityPincodeSentAcceptedRejectedRegionProductPart Order IDPart Order StatusWarranty StatusDistance (KM)Consumer NameConsumer ContactDealer NameDealer Contact
    Total New Age(dd:hh:mm:ss)
    Total Broadcast Age(dd:hh:mm:ss)
    Total Assigned Age (dd:hh:mm:ss)
    Total Hold Age(dd:hh:mm:ss)
    Total Completed Age(dd:hh:mm:ss)
    Total Exception Age(dd:hh:mm:ss)
    Total Rejected Age (dd:hh:mm:ss)
    Total Age(dd:hh:mm:ss)
    Broadcast CountRevisit CountRevisit RemarkOpen Queries CountAppointment DateAppointment Taken ByAppointment TAT (Hours) (Minutes)Completion TAT (Hours) (Days)Ticket SourceAgeing (Days)Account NameSkillService ByAppointment RescheduleByAppointment RescheduleOnTechnician NamePartner NameField Support TeamCommitment StatusAssign DateCancellation DatePlanned Closure DateEstimate Share StateEstimation AttachementEstimation Share RemarkTech Payment StatusTech Payment DateCall Attempts(Tech-Customer)Call Attempts(Backend-Customer)Call Attempts(Backend-Tech)Completion DateApproved DatePrimary ReasonGroup IdSiteIDSiteNameCityStateCancelled ByCancel ReasonCustomer RatingFollowUp ReasonReject CountException TypeProject NameRejection Remarkclone ReasonSecondary StatusCreated DateFreelancer RateDispatcher NameStart TimeBroadcasted DatePriceDurationPincodeAmt CollectedAmt to Be CollectedReplacement IDReplacement StatusGasCharging Request IDGasCharging StatusLocation Type
    {{newJob.City}}{{pincode}}{{newJob.BIDSend}} {{newJob.BIDSend}}{{newJob.BIDReceived}} {{newJob.BIDReceived}}{{newJob.DenyCount}}{{newJob.Region}}{{newJob.ProductName}}{{newJob.PartOrderId}}{{newJob.PartOrderStatus}}{{newJob.WarrantyStatus}}{{newJob.Distance}}{{newJob.ConsumerName}}{{newJob.ConsumerContact}}{{newJob.strDealerName }}{{newJob.strDealerContact }}{{newJob.NewAge}}{{newJob.BroadcastedAge}}{{newJob.AssignedAge}}{{newJob.HoldAge}}{{newJob.CompletedAge}}{{newJob.ScheduleExceptionAge}}{{newJob.RejectedAge}}{{newJob.TotalTicketAge}}{{newJob.BroadcastCount}}{{newJob.PlannedStartDate | date:\\'dd/MM/yy hh:mm a\\'}}{{newJob.AppointmentTakenBy}}{{newJob.dAppointmentTAT}}{{newJob.dCompletionTAT}}{{newJob.TicketSource}}{{newJob.intAging}}{{newJob.AccountName}}{{skill}}{{ newJob.BrandName }}{{newJob.AppointmentRescheduleBy}}{{newJob.Assignee}}{{fTeam.SupportEngineerName}}{{newJob.CommittmentStatus}}{{newJob.AssignationDate | date:\\'dd/MMM/yy hh:mm a\\'}}{{newJob.CancellationDate | date:\\'dd/MMM/yy hh:mm a\\'}}{{newJob.PlannedClosureDate | date:\\'dd/MMM/yy hh:mm a\\'}}{{newJob.EstimateShareState}}{{newJob.EstimationAttachement}}{{newJob.EstimationShareRemark}}{{newJob.TechnicianPaymentStatus}}{{newJob.TechncianPaymentDate | date:\\'dd/MMM/yy hh:mm a\\'}}{{newJob.CallAttempTechToCustomer}}{{newJob.CallAttempBackendToCustomer}}{{newJob.CallAttempBackendToTech}}{{newJob.CompletionDate | date:\\'dd/MMM/yy hh:mm a\\'}}{{newJob.ApprovedDate | date:\\'dd/MMM/yy hh:mm a\\'}}{{newJob.PrimaryReason}}{{newJob.GroupId}}{{newJob.JobId}}{{newJob.SiteName}}{{newJob.City}}{{newJob.State}}{{newJob.CancelledBy}}{{newJob.TicketCancelReason}}{{newJob.CustomerRating}}{{newJob.LastFollowUpMsg}}{{newJob.TicketRejectionCount}}{{newJob.SecondryStatus}}{{newJob.ProjectName}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date:\\'dd/MM/yyyy hh:mm a\\'}}{{newJob.FreelancerRate}}{{newJob.DispatchSupervisorName}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BroadcastRate}} INR{{newJob.BidDuration}} hrs{{pincode}}{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}{{newJob.ReplacementId}}{{newJob.ProductReplacementStatus}}{{newJob.strGasChargeRequestID}}{{newJob.strGasChargerApprovalStatus}} Local UpCountry
     Showing {{manualAssignationJob.pageindexCount}} to {{manualAssignationJob.ticketListLength}} of {{totalTableTickets}} entries
    PincodeSite IdConsumer Contact No.CountAction
    {{suggestion.GroupWiseJobVariable}}{{suggestion.JobCount}}
    PincodeTicketIdJobIdConsumer NameConsumer ContactSkillSetStatusStateCity
    {{ticketDetails.Pincode}}{{ticketDetails.TicketId}}{{ticketDetails.JobId}}{{ticketDetails.ConsumerName}}{{ticketDetails.ConsumerContact}}{{ticketDetails.SkillSet}}{{ticketDetails.TicketStatus}}{{ticketDetails.State}}{{ticketDetails.City}}
    JobIDStatusStageSiteIDSiteNameCityStatePincodeException TypeAppointment Date Broadcast Age(dd:hh:mm:ss)
    Total Age(dd:hh:mm:ss)
    Field Age(dd:hh:mm:ss)
    Project NameSecondary StatusPrimary ReasonFollowUp ReasonCancel ReasonRejection Remarkclone ReasonCreated DateLatitudeLongitudeStart TimeBroadcasted DatePriceDurationAmt CollectedAmt to Be Collected
    {{newJob.TicketId}}{{newJob.JobId}}{{newJob.SiteName}}{{newJob.City}}{{newJob.State}}{{pincode}}{{newJob.PlannedStartDate | date:\\'dd/MM/yy hh:mm a\\'}}{{newJob.TicketBroadcastAge}}{{newJob.TotalTicketAge}}{{newJob.FieldAge}}{{newJob.ProjectName}}{{newJob.PrimaryReason}}{{newJob.LastFollowUpMsg}}{{newJob.TicketCancelReason}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.Latitude}}{{newJob.Longitude}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BroadcastRate}} INR{{newJob.BidDuration}} hrs{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}
    JobIDActionSiteIDSiteNameSkillCityStateGroupIdEstimate Share StateEstimation AttachementEstimation Share RemarkTechnician NameFollowUp ReasonReject CountException TypeAppointment DateCall DateTimeCall Duration Broadcast Age(dd:hh:mm:ss)
    Total Age(dd:hh:mm:ss)
    StatusSub StatusSentAcceptedRejectedAssign DateAssign Age(hr)Broadcast Count
    Field Age(dd:hh:mm:ss)
    Project NameTechnician NameSupervisor NamePrimary ReasonCancel ReasonRejection Remarkclone ReasonSecondary StatusCreated DateLatitudeLongitudeStart TimeBroadcasted DatePricePincodeAmt CollectedAmt to Be CollectedFreelancer Rate
    {{newJob.JobId}}{{newJob.SiteName}}{{newJob.SkillSet}}{{newJob.City}}{{newJob.State}}{{newJob.GroupId}}{{newJob.EstimateShareState}}{{newJob.EstimationAttachement}}{{newJob.EstimationShareRemark}}\\\"image\\\" {{newJob.Assignee}}{{newJob.LastFollowUpMsg}}{{newJob.TicketRejectionCount}}{{newJob.SecondryStatus}}{{newJob.PlannedStartDate | date:\\'dd/MM/yy hh:mm a\\'}}{{newJob.TicketBroadcastAge}}{{newJob.TotalTicketAge}}{{newJob.BIDSend}} {{newJob.BIDSend}}{{newJob.BIDReceived}} {{newJob.BIDReceived}}{{newJob.DenyCount}}{{newJob.AssignationDate | date: \\'dd/MM/yyyy\\'}}:{{newJob.BroadcastCount}}{{newJob.FieldAge}}{{newJob.ProjectName}}{{newJob.Assignee}}{{newJob.SupervisorName}}{{newJob.PrimaryReason}}{{newJob.TicketCancelReason}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.Latitude}}{{newJob.Longitude}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BidDuration}} hrs{{pincode}}{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}{{newJob.FreelancerRate}}
     {{manualAssignationJob.wpageindexCount}} - {{manualAssignationJob.workOrderListLength}} of {{totalTableWorkOrder}}
    UserID ({{manualAssignationJob.listofActiveUsers.length}})NameCallPatichingTicketId AssignedJobCount AppointmentBookedCount AppointmentNotBookedCount BreachedCount BroadcastCount CancelledCount
    \\\"image\\\" {{user.Name}}{{user.AssignedJobCount}}{{user.AppointmentBookedCount}}{{user.BreachedCount}}{{user.BroadcastJobCount}}{{user.SourceCancelledCount}}
    Ticket IdJob TypeProject NameProject IdStatusActionStateCityCustomer Name
    {{userSjob.TicketId}}{{userSjob.JobType}}{{userSjob.ProjectName}}{{userSjob.ProjectId}}
    {{userSjob.State}}{{userSjob.City}}{{userSjob.ConsumerName}}
    10\\\"> {{manualAssignationJob.pageindexCount}} - {{manualAssignationJob.ticketListLength}} of {{totalTableTickets}}
    Combo IdNo. of Ticket CountActionCreated OnCombo StatusTechnician NamePartner NameField Support TeamSentAcceptedPinCodeSkillsFreelancer RateDispatcher Name
    {{newJob.TicketId}} {{newJob.JobCountInBundle}} {{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.Assignee}}{{fTeam.SupportEngineerName}}{{newJob.BIDSend}} {{newJob.BIDSend}}{{newJob.BIDReceived}} {{newJob.BIDReceived}}{{pincode}}{{skill}}{{newJob.FreelancerRate}}{{newJob.DispatchSupervisorName}}
    JobIDActionSiteIDSiteNameSkillCityStateTechnician NameFollowUp ReasonReject CountException TypeAppointment DateCall DateTimeCall Duration Broadcast Age(dd:hh:mm:ss)
    Total Age(dd:hh:mm:ss)
    StatusSentAcceptedRejectedAssign DateAssign Age(hr)Broadcast Count
    Field Age(dd:hh:mm:ss)
    Project NameTechnician NamePrimary ReasonCancel ReasonRejection Remarkclone ReasonSub StatusSecondary StatusCreated DateLatitudeLongitudeStart TimeBroadcasted DatePricePincodeAmt CollectedAmt to Be CollectedFreelancer Rate
    {{newJob.JobId}}{{newJob.SiteName}}{{newJob.SkillSet}}{{newJob.City}}{{newJob.State}}\\\"image\\\" {{newJob.Assignee}}{{newJob.LastFollowUpMsg}}{{newJob.TicketRejectionCount}}{{newJob.SecondryStatus}}{{newJob.PlannedStartDate | date:\\'dd/MM/yy hh:mm a\\'}}{{newJob.TicketBroadcastAge}}{{newJob.TotalTicketAge}}{{newJob.BIDSend}} {{newJob.BIDSend}}{{newJob.BIDReceived}} {{newJob.BIDReceived}}{{newJob.DenyCount}}{{newJob.AssignationDate | date: \\'dd/MM/yyyy\\'}}:{{newJob.BroadcastCount}}{{newJob.FieldAge}}{{newJob.ProjectName}}{{newJob.Assignee}}{{newJob.PrimaryReason}}{{newJob.TicketCancelReason}}{{newJob.RejectionRemark}}{{newJob.CloneReason}}{{newJob.CreationDate | date: \\'dd/MM/yyyy\\'}}{{newJob.Latitude}}{{newJob.Longitude}}{{newJob.StartTimeD}}{{newJob.JobBroadcastDateTime | date: \\'dd/MM/yyyy\\'}}{{newJob.BidDuration}} hrs{{pincode}}{{newJob.AmountCollected}}{{newJob.AmountToBeCollected}}{{newJob.FreelancerRate}}
     {{manualAssignationJob.bpageindexCount}} - {{manualAssignationJob.bundleListLength}} of {{totalTableBundles}}

    All User

    \");\n$templateCache.put(\"app/MilestoneDetailView/MilestoneDetailView.html\",\"
    1. Home
    2. Milestone Detail
    Milestone Detail

    Ticket_Sla

    Initial Response

    {{ milestone.TimeTrigger }}

    {{ milestone.StartTime }}

    {{ milestone.BusinessHours }}

    {{ milestone.Order }}

    Criteria Meet
    ActionsFieldsOperatorValue
    Edit Save | Del{{ row.TicketDetails }}{{ row.Operator }}{{ row.Value }}

    AND

    Actions
    Success Actions
    ActionsTypeChannel NameCase NameDescription

    No Workflow Action Added

    Edit | Del{{ milestone.type }}{{ milestone.channelName }}{{ milestone.caseName }}{{ milestone.description }}
    Warning Actions
    ⏳ {{trigger.warningTimeValue}} {{trigger.warningTimeUnit}} Before Edit | Delete
    ActionsTypeChannel NameCase NameDescription

    No workflow actions have been added to this time trigger.

    Edit | Del{{ milestone.type }}{{ milestone.channelName }}{{ milestone.caseName }}{{ milestone.description }}
    Violation Actions
    ⏳ {{trigger.timeValue}} {{trigger.timeUnit}} After Edit | Delete
    ActionsTypeChannel NameCase NameDescription

    No workflow actions have been added to this time trigger.

    Edit | Del{{ milestone.type }}{{ milestone.channelName }}{{ milestone.caseName }}{{ milestone.description }}
    \");\n$templateCache.put(\"app/NewOnboardingFlow/NewOnboardingFlow.html\",\"
    1. WELCOME TO ONBOARDING
    \\\"image-1\\\" \\\"image-1\\\"

    {{NOBFCtrl.UserBasicInfo.FirstName}} {{NOBFCtrl.UserBasicInfo.LastName}} from {{NOBFCtrl.UserBasicInfo.City}}

    Registred On :{{NOBFCtrl.UserBasicInfo.RegistrationDateTime}}

    Current Address-

    Address:{{NOBFCtrl.UserBasicInfo.Address}}, {{NOBFCtrl.UserBasicInfo.City}}, {{NOBFCtrl.UserBasicInfo.State}} - {{NOBFCtrl.UserBasicInfo.PINCode}}

    Onboarding Status

    Verification Status

    Connect with {{NOBFCtrl.UserBasicInfo.FirstName}} {{NOBFCtrl.UserBasicInfo.LastName}} \\\"image\\\"

    Onboarding Done {{NOBFCtrl.UserBasicInfo.FEDataFillPercentage}}%{{NOBFCtrl.UserBasicInfo.FEDataFillPercentage}}%Verification Done {{NOBFCtrl.UserBasicInfo.BackendVerifyPercentage}} %{{NOBFCtrl.UserBasicInfo.BackendVerifyPercentage}}%
    Onboarding % Verification %

    Basic Details

    {{basicField.ItemValue}}

    \\\"image-1\\\"
    Background Checks

    Type

    Document Type

    Document No.

    {{doc.ItemDisplayName}}

    {{doc.DocumentName}}

    {{doc.DocumentNo}}

    Document Front

    Document Back

    Bank Details

    {{NOBFCtrl.UserBankInfo.bankName}}

    {{NOBFCtrl.UserBankInfo.AccountHolderName}}

    {{NOBFCtrl.UserBankInfo.AccountNo}}

    {{NOBFCtrl.UserBankInfo.IFSC}}

    External Videos List
    TypeSkillFeedback RemarkRatingUploaded ByUploaded OnVideo

    {{videoupload.Type}}

    {{videoupload.SkillName}}

    {{videoupload.Feedback}}

    {{videoupload.Rating}}

    Skills
    Skill SetScoreTest ResultRe-Test

    {{skillData.Skill}}

    {{skillData.ResultScore}}

    {{skillData.Status}}

    Work Experience
    Company NameWork LocationProject NameTenureDesignationDate Of JoiningDate Of RelievingExperience Letter

    {{experience.CompanyName}}

    {{experience.WorkLocation}}

    {{experience.ProjectName}}

    {{experience.Tenure}}

    {{experience.Designation}}

    {{experience.DateOfJoining | date:\\'dd/MMM/yyyy\\'}}

    {{experience.DateOfRelieving | date:\\'dd/MMM/yyyy\\'}}

    Certifications
    Certificate NameCertificate NoCertificate Issue DateCertificate Expiry DateTraining CertificateVerification ReportVerification StatusVerification AgencyValidation Report Date

    {{certificate.CertificateName}}

    {{certificate.CertificateNo}}

    {{certificate.CertificateIssueDate | date:\\'dd/MMM/yyyy\\'}}

    {{certificate.CertificateExpiryDate | date:\\'dd/MMM/yyyy\\'}}

    {{certificate.VerificationStatus}}

    {{certificate.VerificationAgency}}

    {{certificate.ValidationReportDate | date:\\'dd/MMM/yyyy\\'}}

    Invited Team
    \\\"image\\\"
    {{teamData.ContactName}} with contact no. {{teamData.ContactNumber}} invited on {{teamData.InvitationDateTime | date:\\'dd/MMM/yyyy h:mm a\\'}} (Status - {{teamData.Status}})
    Profile Updation History
    \\\"image-1\\\"

    {{userActivity.activity}}

    {{userActivity.action}}

    {{userActivity.FileName}}

    \");\n$templateCache.put(\"app/NewJobDetails1/NewJobDetails.html\",\"
    1. Home
    2. Job Details
    Technician Denied Your Job Request
    • {{NewjobDetailCtrl.FreelancerBidCount}}  Technicians
    • \\\"image\\\"
      {{rUser.Username}}

      Job {{rUser.JobTotal}} | Distance {{rUser.Distance}} | Assigned Jobs {{rUser.TotalAssignedJobs}}

      {{rUser.DenyReason}}

    Technician Accepted Your Job Request
    • {{NewjobDetailCtrl.ReadyUserLength}}  Technicians
    • \\\"image\\\"
      {{rUser.name}}

      Jobs {{rUser.JobTotal}} | Distance {{rUser.UserDistance}} | Assigned Jobs {{rUser.TotalAssignedJobs}}

    Ticket ID - {{NewjobDetailCtrl.TicketInfo.TicketId}}  

    on {{NewjobDetailCtrl.TicketInfo.CreationDate | date:\\'yyyy/MM/dd h:mm:ss a\\' }}

    {{NewjobDetailCtrl.TicketInfo.SkillSet}}    

    {{NewjobDetailCtrl.TicketInfo.JobDescription}}  

    Customer Satisfaction    

    {{NewjobDetailCtrl.TicketInfo.HappyCodeResult}}  

    {{NewjobDetailCtrl.TicketInfo.TicketStatus}}
    {{NewjobDetailCtrl.TicketInfo.SubStatus}}

    Schedule : Arrive at a Specific date and time Complete work between specific hours Complete work anytime over a date range

    Start Time {{NewjobDetailCtrl.TicketInfo.StartTime | date:\\'yyyy/MM/dd h:mm:ss a\\'}}

    Any day Between {{NewjobDetailCtrl.TicketInfo.StartTime | date:\\'yyyy/MM/dd h:mm:ss a\\'}} and {{NewjobDetailCtrl.TicketInfo.EndTime | date:\\'yyyy/MM/dd h:mm:ss a\\'}}

    Between {{NewjobDetailCtrl.TicketInfo.StartTime | date:\\'yyyy/MM/dd h:mm:ss a\\'}} Through {{NewjobDetailCtrl.TicketInfo.EndTime | date:\\'yyyy/MM/dd h:mm:ss a\\'}}

    {{NewjobDetailCtrl.TicketInfo.CustomerName}}
    {{NewjobDetailCtrl.TicketInfo.Address1}}, {{NewjobDetailCtrl.TicketInfo.Address2}},{{NewjobDetailCtrl.TicketInfo.City}}
    {{NewjobDetailCtrl.TicketInfo.State}} , {{NewjobDetailCtrl.TicketInfo.Pincode}}
    Call to customer
    \\\"image\\\"

    Technician : {{NewjobDetailCtrl.TicketInfo.UserName}} ({{NewjobDetailCtrl.TicketInfo.UserId}})    \\\"image\\\"

    Technician : UnAssigned

    Engineer Name : {{NewjobDetailCtrl.TicketInfo.UserName}} ({{NewjobDetailCtrl.TicketInfo.UserId}})

    Engineer Name : UnAssigned

    0\\\" ng-repeat=\\\"fTeam in NewjobDetailCtrl.TicketInfo.ListFieldSupportTeam\\\">{{fTeam.SupportEngineerName}}
    Job Overview
    Spare Parts
    Collection
    Payment
    Scope Of Work
    Customer Details
    Schedule
    Complete Ticket by
    Showing {{NewjobDetailCtrl.FixedUserLength}} Technician with inKms ranked by
    Showing {{NewjobDetailCtrl.NearByUserLength}} Technician with inKms ranked by
    Compliance
    Showing {{NewjobDetailCtrl.PrefreUserLength}} Technician with inKms ranked by
    Showing {{NewjobDetailCtrl.PreviousUserLength}} Technician with inKms ranked by
    Supervisior

    Appointment time
    {{NewjobDetailCtrl.getReadableTime(NewjobDetailCtrl.TicketInfo.StartTime)}}
    {{NewjobDetailCtrl.getReadableTime(NewjobDetailCtrl.TicketInfo.EndTime)}}
    Your ticket is scheduled from {{NewjobDetailCtrl.getReadableTime(NewjobDetailCtrl.TicketInfo.StartTime)}} to {{NewjobDetailCtrl.getReadableTime(NewjobDetailCtrl.TicketInfo.EndTime)}}
    Material Delivered Status
    Ticket Detail

    {{NewjobDetailCtrl.TicketInfo.TechnicianRating}}

    Rate Detail
    {{NewjobDetailCtrl.ConverttoDecimal(NewjobDetailCtrl.TicketInfo.BroadcastRate)}}
    {{NewjobDetailCtrl.ConverttoDecimal(NewjobDetailCtrl.TicketInfo.BroadcastGrossRate)}}
    {{NewjobDetailCtrl.ConverttoDecimal(NewjobDetailCtrl.TicketInfo.MobiforceCommission)}}%
    {{NewjobDetailCtrl.TicketInfo.BidDuration}} Min
    Supervisor View

    Field Data Capture
    List of Field Support Team
    NameUser IdRoleContactPhoto
    {{superField.SupportEngineerName}}.{{superField.SupportEngineerUserId}}.{{superField.SupportEngineerRole}}.{{superField.SupportEngineerContact}}.\\\"image-1\\\"
    Field Data Capture


    \\\"\\\"

    {{status.userName}}  {{status.CreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{status.activity}} Follow Up - {{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }} {{\\\"( \\\" + status.ThirdReason + \\\" )\\\" }}
    {{\\\"Remark: \\\" + status.CompletionRemark + \\\" \\\" }}
    \\\"\\\"

    {{status.userName}}  {{status.CreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{status.activity}} Follow UP --{{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }}
    0 && status.ReasonComment!=\\'null\\'\\\">-{{status.ReasonComment}}
    \\\"\\\"

    {{status.userName}}  {{status.CreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}

    {{status.activity}} Follow UP --{{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }}
    0 && status.ReasonComment!=\\'null\\'\\\">-{{status.ReasonComment}}
    {{\\\"Remark: \\\" + status.CompletionRemark + \\\" \\\" }}

    \\\"image\\\"
    • Add New Members
    Last Updated on :

    Ticket is Pending for Assignation to Vendor Field Engineer, Tracking Map appears when Ticket is assigned to Field Engineer

    Rule NameStageScenarioGradeApplicableAmount
    {{BonusPenalty.Name}}{{BonusPenalty.Stage}}{{BonusPenalty.Scenario}}{{BonusPenalty.Grade}}{{BonusPenalty.Applied}}{{BonusPenalty.Amount}}

    Total Bonus

    {{NewjobDetailCtrl.TicketInfo.TotalBonus}}

    Rule NameStageScenarioGradeApplicableAmount
    {{Penalty.Name}}{{Penalty.Stage}}{{Penalty.Scenario}}{{Penalty.Grade}}{{Penalty.Applied}}{{Penalty.Amount}}

    Total Penalty

    {{NewjobDetailCtrl.TicketInfo.TotalPenalty}}

    FromToCall StatusStart TimeDuration(mins) / Distance(mtr)RecordingStatusField EventService Interpretation
    {{callD.CallFrom}}{{callD.CallTo}} {{callD.CallStartTime | date:\\'dd/MM/yyyy hh:mm a\\'}}{{callD.Duration}}
    {{callD.FieldRemark}}

    {{callD.ServiceRemark}}
    Site Audit StatusSite Audited OnSite Audited BySite Audit Report
    {{Audittool.AuditResult}} {{Audittool.AuditResult}}{{Audittool.AuditDate | date:\\'dd/MM/yyyy hh:mm a\\'}}{{Audittool.AuditorDetails.AuditorName}}
    Collection
    Payment
    TypeActivity DescriptionQuantityCompany ProvidedBase PriceFreelancer PriceAction
    {{priceLineItem.LineItemCategory}}{{priceLineItem.LineItemDescription}}{{priceLineItem.LineItemQuantity}} {{priceLineItem.LineItemCompanyProvided}}{{(priceLineItem.LineItemQuantity)*(priceLineItem.dLineItemWinPrice)}} {{(priceLineItem.LineItemQuantity)*(priceLineItem.dLineItemFreelancerPrice)}} View Document Upload File

    Total

    \");\n$templateCache.put(\"app/NewTalentPool/NewTalentPool.html\",\"

    Talent Pool -

    Showing {{NewtalentPool.techpageindexCount}} to {{NewtalentPool.usersLength}} of {{NewtalentPool.totalTalentPoolCount}} entries
    ActionUserIdNameStatusBadgesMobile No.Activation DateActivated ByAddress Line1Address Line2CityStatePinCodePrimeEmailStudentInternshipAdhar cardPancardCriminal CheckSkillAadhar NumberPAN NumberLast ActivationWork LocationStarted Receiving Leads (last 15 Days)Lead Accepted (last 15 Days)Job Rejection (%)SOP Adherence (%)Customer RatingUpdated by IDUpdated by NameSourceEquipment Audit StatusEquipment Audit DateEquipment Audit By
    {{user.FirstName}} {{user.LastName}}
    \\\"image\\\" \\\"image\\\"
    {{user.PersonalEmail}}
    {{user.SkillSet.toString()}}
    {{user.Locations.toString()}}
    ( {{user.TotalLeadsReceived}} ) 30,\\'label label-primary\\':user.JobRecjectionPerctange <= 30}\\\">{{user.JobRecjectionPerctange}}= 70}\\\">{{user.SOPAdherence}}= 4}\\\">{{user.CustomerRating}}{{user.UpdatedById}}{{user.UpdatedByName}}{{user.Source}}{{user.AuditResult}}
    {{user.AuditDate | date:\\'dd/MMM/yy\\'}}
    {{user.AuditorName}}
    \\\"image\\\" \\\"image\\\"

    {{user.FirstName}} {{user.LastName}}

     {{user.EnrollNo}}
    {{user.CustomerRating}} 
    {{user.ContactNumber}}

    Address :-

    {{user.CurrentAdd1}}
    {{user.CurrentAdd2}}
    {{user.CurrentCity}}
    {{user.CurrentState}}
    Showing {{NewtalentPool.pageindexCount}} to {{NewtalentPool.vendorListLength}} of {{NewtalentPool.totalVendorPoolCount}} entries
    ActionActionVendor IdNameVendor StatusBadgesMobile No.Company NameRoleAdhar cardPancardCriminal CheckCompany Registration NumberGST AvailableGST Certified NoMSME CertifiedMSME Certified NO.Partner (TPI)Partner Anti corruption clauseActivation DateActivation ByAddress Line1Address Line2CityStatePinCodeInfra PartnerTraining PartnerPrimeEmailVerticalSkillAadhar NumberPAN NumberLast ActivationWork LocationsLatitudeLongitudeUpdated by IDUpdated by NameSourceEquipment Audit StatusEquipment Audit DateEquipment Audit By
    {{vendor.FirstName}} {{vendor.LastName}}
    \\\"image\\\" \\\"image\\\"
    YES NOYES NOYES NOYES NO
    {{vendor.SkillSet.toString()}}
    {{vendor.Locations.toString()}}
    {{vendor.UpdatedById}}{{vendor.UpdatedByName}}{{vendor.Source}}{{vendor.AuditResult}}
    {{vendor.AuditDate | date:\\'dd/MMM/yy\\'}}
    {{vendor.AuditorName}}
    \\\"image\\\" \\\"image\\\"

    {{vendor.CompanyName}}

    {{vendor.FirstName}} {{vendor.LastName}}

    {{vendor.VendorId}}
    {{vendor.CustomerRating}} 
    {{vendor.ContactNumber}}

    Address :-

    {{vendor.PermanentAdd1}}
    {{vendor.PermanentAdd2}}
    {{vendor.PermanentCity}}
    {{vendor.PermanentState}}
    Choose Filters

    Choose Filters

    \");\n$templateCache.put(\"app/NonReturnablePartConsumeList/NonReturnablePartConsumeList.html\",\"
    1. Home
    2. Non Returnable Parts Consumed List
    Showing {{NonReturnPartCntrl.opageindexCount}} to {{NonReturnPartCntrl.orderListLength}} of {{TotalRecord}} entries
    Call IDPart CodePart IDProduct BrandProduct GroupProduct Sub GroupPart NameCreated OnReturn Status
    {{orderList.TicketId}}{{orderList.SKUId}}{{orderList.PartId}}{{orderList.ProductBrand}}{{orderList.ProductGroup}}{{orderList.ProductSubGroup}}{{orderList.PartName}}{{orderList.CreatedOn | date:\\'dd/MMM/yy hh:mm a\\' }}{{orderList.PartOrderStatus}}
    \");\n$templateCache.put(\"app/NotificationList/NotificationList.html\",\"
    1. Home
    2. Notification List
      My Notification

    Alerts allow you to automatically send email or SMS notifications when certain events occur. For example, mail the dispatcher if a job is declined, mail the accounts dept when a job is completed, SMS the warehouse manager when an inbound delivery has been picked up, etc…


    Alert NameAlert TypeAction
    {{config.AlertId}}{{config.AlertType | uppercase}} 
    1. Home
    2. Transactional Alert
      Create an Alert
    Create A Permission
    Please select Role
    Please select Channel




    {{userList.PersonalEmail}}{{userList.ContactNumber}}
    Please enter message.

    1. Home
    2. Escalation Alert
      Create an Alert
    Create A Permission
    Email Preview



    Aditya.kaushik28@gmail.com898767656540 min
    Aditya.kaushik28@gmail.com898767656540 min
    Aditya.kaushik28@gmail.com898767656540 min
    Aditya.kaushik28@gmail.com898767656540 min
    Please enter message.
    \");\n$templateCache.put(\"app/ObjectSettingsDetails/ObjectSettingsDetails.html\",\"
    1. Home
    2. Object Settings

    User Creation

    Tab Settings
    Object Permissions
    Permission NameEnabled
    {{ permission.name }}
    \");\n$templateCache.put(\"app/OnBoardingForm/OnBoardingForm.html\",\"
    1. Home
    2. On Boarding Form

    Basic Information

    Location

    Documents

    Bank Details

    Training Certificate

    Assets

    Skill Set and Assessment

    WELCOME TO ONBOARDING

    Save as Draft
    Registered User Information
    Step 1

    {{OBCtrl.fileUploadError}}

    {{OBCtrl.FirstName}} {{OBCtrl.LastName}}

    {{OBCtrl.MobileNo}}
    Criminal Verification :


    Please enter first name Your first name cannot be longer than 50 characters Your first name should only contain alphabets
    Please enter last name Your last name cannot be longer than 50 characters Your last name should only contain alphabets
    = 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\">
    Please enter Mobile number Please enter valid Mobile number
    Please enter valid email id

    Please enter date of birth

    Please select valid date of birth

    Date of birth should be less than {{OBCtrl.maxDOBStr}}

    Please select your gender
    Please enter valid PAN NUMBER
    = 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{12}$/\\\">
    Please enter valid AADHAR NUMBER
    Please enter father\\'s name Your name cannot be longer than 50 characters Your name should only contain alphabets
    Background Checks
    Step 2

    TypeDocument NameDocument NumberDocumentDocument BackStatusVerification ModeVerification authorityUpdated ByUpdated OnThird-party ReportAction
    {{doc.DocumentType}}{{doc.DocumentName}}{{doc.DocumentNo}} Not Submitted Upload File
    View Document View Document Upload File
    Not Submitted Upload File
    View Document View Document Upload File
    {{doc.VerificationStatus}}{{doc.VerificationMode}}
    {{doc.VerificationAuthority}}
    {{doc.UpdatedBy}}{{doc.UpdatedOn | date}}
    Locations
    Step 3

    Please enter address line 1 Please enter only alphanumeric with space, hyphen, slace, comma Please enter only 150 chars address line
    Please enter address line 2 Please enter only alphanumeric with space, hyphen, slace, comma Please enter only 150 chars address line
    Please select state
    Please select city
    Please enter pincode Please enter valid pincode

    Please enter address line 1 Please enter only alphanumeric with space, hyphen, slace, comma
    Please enter address line 2 Please enter only alphanumeric with space, hyphen, slace, comma
    Please select state
    Please select city
    Please enter valid pincode
    Please Select Work Location
    Please enter only alphanumeric with space, hyphen, slace, comma
    Bank Details
    Step 4

    Please enter valid account no(9-18 Digits)
    Please specify a valid IFSC CODE(4 Alphabet and 6-7 numeric)
    Account holder name should only contain alphabets Account holder name cannot be longer than 50 characters
    Bank name cannot be longer than 50 characters Bank name should only contain alphabets
    Training Certificates
    Step 5

    Certificate NameCertificate No.Certificate IssuedCertificate ExpiryIsCertificateExpiredCertificateVerification DocStatusCertificate AgencyAction
    {{traning.CertificateName}}{{traning.CertificateNo}} {{traning.CertificateIssueDate | date:\\'dd-MM-yyyy\\'}}
    {{traning.CertificateExpiryDate | date:\\'dd-MM-yyyy\\'}}
    {{traning.IsCertificateExpired}}
    Not Submitted Upload File
    Not Submitted Upload File
    {{traning.VerificationStatus}} {{traning.VerificationStatus}}{{traning.VerificationAgency}}         
      
    Available Asset
    Step 6

    Skills
    Step 7

    SkillsExperienceResultAssessment Link
    {{skilldata.Skill}}{{skilldata.Experience}}{{skilldata.Status}}Send Link
    Private for the accounts
    Account NameAccount Id
    {{accountdata.Account}}{{accountdata.AccountId}}
    {{OBCtrl.AccountId}}
    Tools
    Tool NameVerification StatusView ToolAction
    {{assettool.ToolName}}{{assettool.VerificationStatus}} {{assettool.VerificationStatus}} {{assettool.VerificationStatus}}
    Previous Company Details
    Company NameWork LocationProject Name
    {{previousCompanyDetail.CompanyName}}{{previousCompanyDetail.WorkLocation}}{{previousCompanyDetail.ProjectName}}
    Insurance Details
    Policy No.Issue DateExpiry DateInsurance ImageAction
    {{OBCtrl.InsuranceDetails.PolicyNumber}} {{OBCtrl.InsuranceDetails.IssueDate | date:\\'dd/MMM/yy\\'}}
    {{OBCtrl.InsuranceDetails.ExpiryDate | date:\\'dd/MMM/yy\\'}}
    Not Submitted Upload File
    View Document Upload File
    Legal Contract
    Contract Signed DateImage
    {{OBCtrl.ContractSignDate | date:\\'dd/MMM/yy\\'}}\\\"profile\\\"
    Authorized for service centre
    Service Partner IdVertical NameBrand NameAdditional Brand NameProduct ServingAdditional Product ServingTenureTeam SizeService Center AddressCertificate of AuthorizationTraining CertificatePhoto of Shop/office/Service CenterAction
    {{doc.ServicePartnerId}}{{doc.VerticalName}}{{doc.BrandName}}{{doc.BrandNameOther}} {{doc.ProductServing}}{{doc.ProductServingOther}} {{doc.Tenure}} {{doc.TeamSize}} {{doc.ServiceCenterAddress}} Not Submitted Upload File
    View Document View Document Upload File
    Not Submitted Upload File
    View Document View Document Upload File
    Not Submitted Upload File
    View Document View Document Upload File
    \");\n$templateCache.put(\"app/NoticeCampaignDetails/NoticeCampaignDetails.html\",\"
    1. Home
    2. Notice Details
    Notice TitleNotice TypeLinkLanding ActivityNotice DescriptionRoleBrandCampaign PossibilityStart DateEnd DateCampaign ModeCampaign Banner
    New Product Launch_KenstarImageCustomer\\\"Introducing our latest innovation – designed for peak performance, unmatched quality, and an unforgettable experience!\\\"
    Customer
    KenstarNew Product Launch13-11-2415-11-24WhatsApp\\\"No
    Extend WarrantyImageCustomer\\\"Extend your warranty for added peace of mind and long-term protection on your purchase!\\\"
    Customer
    VoltasService is use, AMC/Warranty sell13-11-2415-11-24WhatsApp\\\"No
    Your Old Tech, A New Life!ImageCustomer\\\"Dispose of outdated products the right way – recycle with us.\\\"
    Customer
    BluestarEnd Of Life (EWaste)13-11-2416-11-24E-mail\\\"No
    Refresh your Space With smart UpgradeImagewww.gaoogle.comCustomer\\\"Refresh your Space With smart Upgrade\\\"
    Customer
    BluestarUpgrade (Buy New Produuct)13-11-2416-11-24WhatsApp\\\"No
    \");\n$templateCache.put(\"app/OnBoardingFormLatest/OnBoardingFlow.html\",\"
    1. WELCOME TO ONBOARDING
    \\\"image-1\\\" \\\"image-1\\\"

    {{OBFCtrl.UserBasicInfo.FirstName}} {{OBFCtrl.UserBasicInfo.LastName}} From {{OBFCtrl.UserBasicInfo.City}}

    Registred On :{{OBFCtrl.UserBasicInfo.RegistrationDateTime}}

    Current Address-

    Address:{{OBFCtrl.UserBasicInfo.Address}}, {{OBFCtrl.UserBasicInfo.City}}, {{OBFCtrl.UserBasicInfo.State}} - {{OBFCtrl.UserBasicInfo.PINCode}}

    Onboarding Status

    Verification Status

    Connect with {{ OBFCtrl.UserBasicInfo.FirstName }} {{ OBFCtrl.UserBasicInfo.LastName }} \\\"image\\\"

    Onboarding Done {{OBFCtrl.UserBasicInfo.FEDataFillPercentage}}%{{OBFCtrl.UserBasicInfo.FEDataFillPercentage}}%Verification Done {{OBFCtrl.UserBasicInfo.BackendVerifyPercentage}} %{{OBFCtrl.UserBasicInfo.BackendVerifyPercentage}}%
    Onboarding % Verification %

    Basic Details

    {{basicField.ItemValue}}

    \\\"image-1\\\"
    Background Checks

    Type

    Document Type

    Document No.

    {{doc.ItemDisplayName}}

    {{doc.DocumentName}}

    {{doc.DocumentNo}}

    Document Front

    Document Back

    Bank Details

    {{OBFCtrl.UserBankInfo.bankName}}

    {{OBFCtrl.UserBankInfo.AccountHolderName}}

    {{OBFCtrl.UserBankInfo.AccountNo}}

    {{OBFCtrl.UserBankInfo.IFSC}}

    External Videos List
    TypeSkillFeedback RemarkRatingUploaded ByUploaded OnVideo

    {{videoupload.Type}}

    {{videoupload.SkillName}}

    {{videoupload.Feedback}}

    {{videoupload.Rating}}

    Skills
    Skill SetScoreTest ResultRe-Test

    {{skillData.Skill}}

    {{skillData.ResultScore}}

    {{skillData.Status}}

    Work Locations
    • {{Location}}
    Invited Team
    \\\"image\\\"
    {{teamData.ContactName}} with contact no. {{teamData.ContactNumber}} invited on {{teamData.InvitationDateTime | date:\\'dd/MMM/yyyy h:mm a\\'}} (Status - {{teamData.Status}})
    Profile Updation History
    \\\"image-1\\\"

    {{userActivity.activity}}

    {{userActivity.action}}

    {{userActivity.FileName}}

    \");\n$templateCache.put(\"app/OpenBucketSettings/OpenBucketSettings.html\",\"
    1. Home
    2. Open Bucket Settings
    Open Bucket Settings
    All newly created tickets moved to open bucket state
    Show only to user with security payment
    Assignation Mode
    Give prefrence to users sith security sayments
    \");\n$templateCache.put(\"app/OperationTATBreached/OperationTATBreached.html\",\"
    1. Home
    2. Breached TAT List
    Ticket Breach Type

    PICKUP TAT BREACH {{OTATBCtrl.PickupTAT}}

    ESTIMATE TAT BREACH {{OTATBCtrl.EstimateTAT}}

    ESTIMATE APPROVAL TAT
    BREACH {{OTATBCtrl.EstimateApprovalTAT}}

    REPAIR TAT BREACH {{OTATBCtrl.RepairTAT}}

    DELIVERY TAT BREACH {{OTATBCtrl.DeliveryTAT}}

    {{OTATBCtrl.TotalTask}}

    Total Task

    {{OTATBCtrl.OpenTask}}

    Open Task

    {{OTATBCtrl.ClosedTask}}

    Close Task

    Task IdTicket IdUser IdUser NameStateCityPincodeSkillDescription
    Task Age (DD:HH:MM)
    Created OnCreated ByTask Due DateTask Breached StatusTask Completion DateAssigned ToTask Status
    {{onboardingTask.TaskId | limitTo: 20 }}...{{ onboardingTask.TaskId.split(\\'_\\')[0].trim()}}{{ onboardingTask.TaskId.split(\\'_\\').pop() }}\\\"image\\\" {{ onboardingTask.Description.split(\\':\\')[0].trim() }}{{onboardingTask.State}}{{onboardingTask.City}}{{onboardingTask.Pincode}}{{onboardingTask.Skill}}{{onboardingTask.Description | limitTo: 10}}...{{onboardingTask.TaskAge}}{{onboardingTask.CreatedOn| date:\\'dd/MM/yyyy hh:mm a\\'}}{{onboardingTask.CreatedBy}}{{onboardingTask.TaskDueDate| date:\\'dd/MM/yyyy hh:mm a\\'}}{{onboardingTask.TaskBreached}}{{onboardingTask.TaskClosingDate}}{{onboardingTask.AssignedTo}}{{onboardingTask.GapStatus}}
    \");\n$templateCache.put(\"app/OpenBucketAssignation/OpenBucketAssignation.html\",\"
    1. Home
    2. Open Bucket Assignation
    Open Bucket Assignation
    All newly created tickets moved to open bucket state





    Show only to user with security payment
    Assignation Mode
    Give prefrence to ssers sith security sayments
    \");\n$templateCache.put(\"app/OrderDetailView/OrderDetailView.html\",\"
    1. Home
    2. Order Details

    Order ID :

    {{OrderDetailsCtrl.Ticketdetails.SalesOrderId}} 

    Created On :

    {{OrderDetailsCtrl.Ticketdetails.Order_Date |date:\\'dd/MMM/yyyy\\'}}

    Assigned To :

    {{OrderDetailsCtrl.Ticketdetails.VendorName}}

    Order Status :

    {{OrderDetailsCtrl.Ticketdetails.ZohoOrderStatus | uppercase}}

    Order Type :

    {{OrderDetailsCtrl.Ticketdetails.OrderType}} 

    Created By :

    {{OrderDetailsCtrl.Ticketdetails.Technician_Name}} 

    \\\"image\\\"

    Total Amount :

    ₹ {{OrderDetailsCtrl.Ticketdetails.customerResponsemodel1.salesorder.sub_total}} 

    Ticket Id :

    {{OrderDetailsCtrl.Ticketdetails.customerResponsemodel1.salesorder.reference_number}}

    Service Type :

    {{OrderDetailsCtrl.Ticketdetails.Service_Type}}

    Shipment Date :

    {{OrderDetailsCtrl.Ticketdetails.Shipment_date| date:\\'dd/MMM/yyyy h:mm a\\'}}

    Customer :

    {{OrderDetailsCtrl.Ticketdetails.customerResponsemodel1.salesorder.customer_name}}   \\\"image\\\"

    Appointment Date and Time : {{OrderDetailsCtrl.Ticketdetails.Appointmentdate|date:\\'dd/MMM/yyyy\\'}}

    Planned Start Date: {{OrderDetailsCtrl.Ticketdetails.Planned_Start_Date|date:\\'dd/MMM/yyyy\\'}}

    {{OrderDetailsCtrl.Ticketdetails.Customer_Name}}
    {{OrderDetailsCtrl.Ticketdetails.Address}}, {{OrderDetailsCtrl.Ticketdetails.city}}, {{OrderDetailsCtrl.Ticketdetails.State}}, {{OrderDetailsCtrl.Ticketdetails.Pincode}}
    Part NameSKU CodePart DescriptionValue (₹)RemarkQuantity Ordered
    {{order.group_name}}{{order.sku}}{{ order.description | limitTo:100}}...{{order.rate}}Approved{{order.quantity}}
    Tracking Details
    Tracking# - {{OrderDetailsCtrl.TrackingDetails.tracking_number}}
    • {{orderStatus.date | date: \\'dd/MMM/yyyy\\'}}

      {{orderStatus.time |date: \\'h:mm a\\'}}
    • {{orderStatus.notes}} Delivered
    Bill To :Ship To :
    Hopefloats Technologies Pvt Ltd C-22A, Sector-57, Gautam Buddha Nagar,, Noida, UP-201301. Uttar Pradesh 201301 UTTAR PRADESHKinger Plast India Private Limited 99, Udhyog Kendra - I, Ecotech - III, Greater Noida Uttar Pradesh Place of Supply: UTTAR PRADESH 201306 UTTAR PRADESH

    GST No - 09AAECH3958F1ZE

    PAN - P00976

    State Code - 00023

    GST No - 09AAACK3882H2ZB

    PAN - Z094994

    State Code - 0006

    Inv. dateInv. NoPart NamePart DescriptionSKU CodeCustomer NameStatusWarehouse NameQuantityRateSGSTCGSTAmount (₹)
    15/10/2023662772888383337STEP MOTOR IR183GNO IDU- 28BYJ48 HORZ{{invoicedetail.description | limitTo:40}}...{{invoicedetail.sku}}{{OrderDetailsCtrl.Ticketdetails.Customer_Name}}{{OrderDetailsCtrl.Ticketdetails.Order_status}}{{invoicedetail.warehouse_name}}{{invoicedetail.quantity}}{{invoicedetail.rate}}{{OrderDetailsCtrl.Ticketdetails.customerResponsemodel1.salesorder.taxes[0].tax_amount}}{{OrderDetailsCtrl.Ticketdetails.customerResponsemodel1.salesorder.taxes[0].tax_amount}}{{invoicedetail.item_total}}

    Total Amount

    \");\n$templateCache.put(\"app/OrdersList/OrdersList.html\",\"
    1. Home
    2. Orders List
    {{ordersCntrl.OrderCountData.TotalCount}}

    Total

    {{ordersCntrl.OrderCountData.ConfirmedCount}}

    Confirmed

    {{ordersCntrl.OrderCountData.ReceivedCount}}

    Received

    {{ordersCntrl.OrderCountData.ShippedCount}}

    Shipped

    {{ordersCntrl.OrderCountData.DeliveredCount}}

    Delivered

    {{ordersCntrl.OrderCountData.CancelledCount}}

    Cancelled

    {{ordersCntrl.OrderCountData.PaymentFailedCount}}

    Payment Failed

    {{ordersCntrl.OrderCountData.RefundInitiatedCount}}

    Refund Initiated

    {{ordersCntrl.OrderCountData.RefundDoneCount}}

    Refund Done

    {{ordersCntrl.OrderCountData.PaymentInitiatedCount}}

    Payment Inititated

    {{ordersCntrl.OrderCountData.PaymentReceivedCount}}

    Payment Received

     {{ordersCntrl.fpageindexCount}} - {{ordersCntrl.financeListLength}} of {{totalFinList}}
    Order IdOrder StatusOrder Sub-StatusActionItem CountTotal AmountOrder DateShipment DateRequested ByExpected Delivery DateDelivery AddressBilling AddressDispatch AddressPayment StatusPayment IdAmount From WalletAmount From Online Payment
    {{ticketorderlist.OrderSubStatus}} {{ticketorderlist.OrderItemCount}}{{ticketorderlist.OrderTotalAmount}}{{onboardingTask.OrderDate| date:\\'dd/MM/yyyy hh:mm a\\'}}{{onboardingTask.ShipmentDate| date:\\'dd/MM/yyyy hh:mm a\\'}}{{onboardingTask.RequestBy}}{{onboardingTask.ExpectedDeliveryDate| date:\\'dd/MM/yyyy hh:mm a\\'}}{{ticketorderlist.DeliveryAddress}}{{ticketorderlist.BillingAddress}}{{ticketorderlist.DispatchAddress}}{{ticketorderlist.PaymentId}}{{ticketorderlist.AmountFromWallet}}{{ticketorderlist.AmountFromOnlinePayment}}
    Item IdItem NameBrandSKU IdItem QuantityUnitOrder Amount (₹)Actual Price (₹)Actual Price(with GST) (₹)Discount (%)After Discount Price (₹)
    {{order.strItemId}}{{order.strItemName}}{{order.strItemBrand}}{{order.strSKUId}}{{order.nItemQuantity}}{{order.strItemUnit}}{{order.dItemTotalPrice}}{{order.dItemTotalPriceWithGST}}{{order.dItemActualPrice}}{{order.dItemDiscount}}{{order.dItemPriceAfterDiscount}}

    Hardware Tracking

    \\\"image\\\"
    Part Name : {{ordersCntrl.TrackDetails. ItemName}}
    SKU Code : {{ordersCntrl.TrackDetails. SKUId}}
    Order Status: {{ordersCntrl.TrackDetails.OrderStatus}}
    Tracking# - {{ordersCntrl.TrackingDetails.tracking_number}}
    • {{orderStatus.date | date: \\'dd/MMM/yyyy\\'}}

      {{orderStatus.time |date: \\'h:mm a\\'}}
    • {{orderStatus.notes}} Delivered

    List of Items

    \\\"{{items.strListItemImage[0]}}\\\"

    {{items.strItemName}}

    About this item

    • {{description}}

    Qty : {{items.nItemQuantity}}

    \");\n$templateCache.put(\"app/PayOnline/PayOnline.html\",\"
    \\\"profile\\\" \\\"profile\\\"

    {{onlinePayment.customerJobCard.FEName}}

    Authorised by

    {{onlinePayment.customerJobCard.FERating || 0}} Star

    Track

    Job Information
    Job ID
    Job Type
    Job Description
    Appointment time
    Total Amount
    • You can pay using COD mode to the technician
    • You can make online payments after job is completed
    • Payment has been done successfully
    \");\n$templateCache.put(\"app/PepsicoCustomerProfileView/PepsicoCustomerProfileView.html\",\"
    1. Home
    2. Customer Profile
    \\\"Avatar\\\"
    Noida Retail Shop
    U6800000789
    Sector 58, Noida, U.P

    Personal Details Edit
    Name : Noida Retail Shop
    Mobile : 91-8007689096
    City : Noida
    Plateform / Device : IOS
    Last Login : 12Nov 12:20pm

    Quick Actions

    \\\"Avatar\\\"
    Double Door Refrigerator
    Warranty Expiring in 29 days
    \\\"Avatar\\\"
    Single Door Refrigerator
    Warranty Expiring in 6 days
    2

    Assets

    2

    Services

    2

    Orders

    10

    Ticket

    7,000

    Payments Amounts

    Recent Activity
    \\\"Avatar\\\"
    Send

    All Activity

    Complaint #4455

    AC is not cooling properly after installation done. Please resolve my cooling issue as soon as possible.

    9:30 AM

    Another meeting with UK client today, at 3:00 PM

    Yet another one, at 5:00 PM

    12:25 PM

    MMF Admin

    Technician assigner for Voltas 5 Start inverter AC installation

    6:00 PM

    Discussion with marketing team

    Discussion with marketing team about the popularity of last product

    9:00 AM

    Purchase new hosting plan

    Purchase new hosting plan as discussed with development team, today at 10:00 AM

    10:30 PM

    Another conference call today, at 11:00 AM

    Yet another one, at 1:00 PM

    12:25 PM

    Another meeting with UK client today, at 3:00 PM

    Yet another one, at 5:00 PM

    12:25 PM

    Discussion with team about new product launch

    meeting with team mates about the launch of new product. and tell them about new features

    6:00 PM

    Discussion with marketing team

    Discussion with marketing team about the popularity of last product

    9:00 AM

    Purchase new hosting plan

    Purchase new hosting plan as discussed with development team, today at 10:00 AM

    10:30 PM

    Another conference call today, at 11:00 AM

    Yet another one, at 1:00 PM

    12:25 PM
    Quick Questions

    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\\'s standard dummy text ever. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters

    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using \\'Content here, content here\\', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\\'s standard dummy text ever. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters

    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using \\'Content here, content here\\', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using \\'Content here, content here\\', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
    Assets Management
    Assets IDProduct DetailsBrandPurchase OnWarrantyWarranty StatusActions
    A40000002388
    \\\"Avatar\\\"
    Single Door Refrigerator
    CS-360
    \\\"Avatar\\\"20 July 202010 days beforeExpired
    A40000002388
    \\\"Avatar\\\"
    Double Door Refrigerator
    CS-360
    \\\"Avatar\\\"20 July 202010 days beforeExpiring Soon
    Service Management
    Service IDService DetailsBrandDate & TimeTechnicianStatusActions
    A40000002388
    \\\"Avatar\\\"
    Single Door Refrigerator
    Installation
    \\\"Avatar\\\"20 July 2020 4:20PMN/ARequested
    A40000002388
    \\\"Avatar\\\"
    Double Door Refrigerator
    CS-360
    \\\"Avatar\\\"20 July 2020 4:20PMRohit KumarCancelled
    Order Management
    Purchased OnProduct DetailsBrandPriceWarrantyWarranty StatusActions
    10 July 2023
    \\\"Avatar\\\"
    Single Door Refrigerator
    CS-360
    \\\"Avatar\\\"₹69910 days beforeExpired
    10 July 2023
    \\\"Avatar\\\"
    Double Door Refrigerator
    CS-360
    \\\"Avatar\\\"₹1,469In 5 daysExpiring Soon
    Support Tickets
    Ticket IDProduct/ServiceDescriptionDate & TimeSourceIssue TypeAssigned toStatusActions
    MMF783524Refrigerator ServiceMy Refrigerator is not cooling properly. after service done.10 Jul 2023 | 5:20 PMCallCoolingN/AExpired
    MMF987655Water LeakageA clogged defrost drain can cause water buildup. Clear any blockages.24 Mar 2023 | 10:52 AMCallDisplayVivek SharmaIn Progress
    Payments
    Transaction IDDate & TimeService/ Product DetailsAmount PaidPartner AmountPayment ViaStatusActions
    TRNS87907610 Jul 2023 | 5:20 PM
    \\\"Avatar\\\"
    Single Door Refrigerator
    Installation
    ₹820₹420Net BankingRefund Pending
    TRNS78352419 Apr 2023 | 4:58 PM
    \\\"Avatar\\\"
    Double Door Refrigerator
    Installation
    ₹1399₹899Debit CardFailed
    \");\n$templateCache.put(\"app/PaymentSection/PaymentSection.html\",\"
    \\\"profile\\\" \\\"profile\\\"

    {{payment.customerJobCard.FEName}}

    Authorised by

    {{payment.customerJobCard.FERating || 0}} Star

    Track

    Job Information
    Job ID
    Job Type
    Job Description
    Service Type
    Appointment time
    Job Status
    You rated

    Cancel

    Re-schedule

    Payment Information
    Invoice
    Service Charge
    GST
    Accessories
    Please enter valid rate
    Total Amount
    Select Payment Mode
    Cash on Delivery
    9\\\">Pay Online
    9\\\">
    Payment Details
    Product Info*:
    First Name*:
    Last Name:
    Email*:
    Phone*:
    Wallet
    • You can cancel or reschedule jobs 30 mins before start time ({{payment.getReadableDate() }})
    • You can make online payments after job is completed
    \");\n$templateCache.put(\"app/PermissionSet/PermissionSet.html\",\"
    1. Home
    2. Access Permission Sets
    Access Permission Set NameDescriptionAction
    {{profile.name}}{{profile.description}}
    \");\n$templateCache.put(\"app/PermissionSetAssignedUser/PermissionSetAssignedUser.html\",\"
    1. Home
    2. All Users
    Full NameUsernameRoleActiveProfileAction
    {{profile.name}}{{profile.username}}{{profile.role}}{{profile.profile}}Edit
    \");\n$templateCache.put(\"app/PersistentReport/PersistentReport.html\",\"
    1. Home
    2. Persistent Report
    Persistent Report
    \");\n$templateCache.put(\"app/PermissionSetDetailView/PermissionSetDetailView.html\",\"
    1. Home
    2. Permission Set
    Access Permission Set Overview

    Transfer and Delete Leads

    Manage lead transfers between users and remove outdated leads to maintain a clean and efficient database

    Admin11/03/2025, 11:10 AM

    Admin18/03/2025, 10:13 AM

    Apps

    Configure App Menu
    Settings that specify which apps are visible in the app menu

    Object Settings
    Permissions to access objects and fields...

    System

    System Permissions
    Permissions to perform actions that apply across apps , such as \\\"Modify All Data\\\"

    Passwords Policies
    Profile Based password policies

    Manage Assignments
    Full NameUsernameRoleActiveProfile
    {{profile.name}}{{profile.username}}{{profile.role}}{{profile.profile}}
    Full NameUsernameRoleActiveProfileAction
    {{profile.name}}{{profile.username}}{{profile.role}}{{profile.profile}}
    \");\n$templateCache.put(\"app/PlanningBulkUpload/PlanningBulkUpload.html\",\"

    Customer

    Nokia India Pvt.Ltd

    Project

    RF Project

    Upload From Device
    or Drag your file here

    Document supported .xlsx, .xls and max. size is 8MB.

    12Jan-Jobs.xlsx

    12Jan-Jobs.xlsx

    Something went wrong.

    \");\n$templateCache.put(\"app/PlanningResource/PlanningResource.html\",\"
    Filters
    2360

    Freelancers (FL)

    980

    Freelancer Vendors (FV)

    1960

    Freelancer Vendor Teams (FVT)

    3500

    All Active Technicians

    50

    Warehouses

    15

    Training centers

    StateDistrictPinSkillsFreelancers (FL)Freelance Vendors (FV)Freelance Vendor Team (FVT)Total Technicians MMF Units Total Technicians
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Mohit7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    of 252 records
    \");\n$templateCache.put(\"app/PincodeFinder/PincodeFinder.html\",\"
    1. Home
    2. Pncode Finder
    {{pincodefndrCtrl.OverAllInfo.TotalPinCode}}

    Total Pincodes

    {{pincodefndrCtrl.OverAllInfo.PinCodeInProfile}}

    In Profile

    {{pincodefndrCtrl.OverAllInfo.PinCodeNotInProfile}}

    Not In Profile

    {{pincodefndrCtrl.OverAllInfo.PincodeInProfileOutsideRange}}

    In Profile Outside Range

    {{pincodefndrCtrl.OverAllInfo.PincodeWithJobsInProfile}}

    In Profile | With Jobs

    {{pincodefndrCtrl.OverAllInfo.PincodeWithoutJobsInProfile}}

    In Profile | No Jobs

    {{pincodefndrCtrl.OverAllInfo.PincodeWithJobsNotInProfile}}

    Not In Profile | With Jobs

    {{pincodefndrCtrl.OverAllInfo.PincodeWithoutJobsNotInProfile}}

    Not In Profile | No Jobs

    • {{key}} - ({{value}})
    In Profile PincodeAddressNo. of Jobs Distance
    {{pincodefind.PinCode}}{{pincodefind.Address}}{{pincodefind.JobCount}}{{pincodefind.Distance}} KM
    \");\n$templateCache.put(\"app/PlanningReport/PlanningReport.html\",\"
    Filters
    Report NameDateCreated ByAction
    June 21, HCL, Max Tickets12 Jun, 2021Vinodh Mahajan
    June 21, HCL, Max Tickets12 Jun, 2021Vinodh Mahajan
    June 21, HCL, Max Tickets12 Jun, 2021Vinodh Mahajan
    June 21, HCL, Max Tickets12 Jun, 2021Vinodh Mahajan
    June 21, HCL, Max Tickets12 Jun, 2021Vinodh Mahajan
    June 21, HCL, Max Tickets12 Jun, 2021Vinodh Mahajan
    June 21, HCL, Max Tickets12 Jun, 2021Vinodh Mahajan
    June 21, HCL, Max Tickets12 Jun, 2021Vinodh Mahajan
    \");\n$templateCache.put(\"app/PlanningTemplates/PlanningTemplates.html\",\"
    Template Name*SkillCustomer*Project*Date of CreationActions
    RF Survey TemplateRF SurveyNokiaRF Project26May,2019
    RF Survey TemplateRF SurveyNokiaRF Project26May,2019
    RF Survey TemplateRF SurveyNokiaRF Project26May,2019
    RF Survey TemplateRF SurveyNokiaRF Project26May,2019
    RF Survey TemplateRF SurveyNokiaRF Project26May,2019
    RF Survey TemplateRF SurveyNokiaRF Project26May,2019
    RF Survey TemplateRF SurveyNokiaRF Project26May,2019
    RF Survey TemplateRF SurveyNokiaRF Project26May,2019
    RF Survey TemplateRF SurveyNokiaRF Project26May,2019
    RF Survey TemplateRF SurveyNokiaRF Project26May,2019
    RF Survey Template

    Job Details

    Project & Customer

    Job Address

    Planned Clouser

    \");\n$templateCache.put(\"app/PlanningResourceMap/PlanningResourceMap.html\",\"
    • Technicians
    • Warehouse
    • TrainingCenters
    • {{skills}}
    • {{certificate}}
    • {{tools}}
    • {{role}}
    {{plannerResourceMap.usersCounts.TotalFECount}}

    Freelancers (FL)

    {{plannerResourceMap.usersCounts.TotalFLVCount}}

    Freelancer Vendors (FV)

    {{plannerResourceMap.usersCounts.TotalFVTCount}}

    Freelancer Vendor Teams (FVT)

    {{plannerResourceMap.usersCounts.TotalActiveUsersCount}}

    All Active Technicians

    {{plannerResourceMap.usersCounts.TotalServiceCenterCount}}

    Total Service Center

    {{plannerResourceMap.usersCounts.TotalMicroWarehouseCount}}

    Warehouses

    {{plannerResourceMap.usersCounts.TotalWarehouseCount}}

    Master Warehouse

    UserIdNameStatusBadgesMobile No.Activation DateCityStatePinCodeRoleUser TypeIsAuthorized PartnerAdhar cardPancardCriminal CheckPrimeStarted Receiving Leads (last 15 Days)Lead Accepted (last 15 Days)Job Rejection (%)SOP Adherence (%)Customer RatingBrandProduct ServicingSkillAadhar NumberPAN NumberLast ActivationWork Location
    \\\"image\\\" {{user.FirstName}} {{user.LastName}}
    \\\"image\\\" \\\"image\\\"
    ( {{user.TotalLeadsReceived}} ) 30,\\'label label-primary\\':user.JobRecjectionPerctange <= 30}\\\">{{user.JobRecjectionPerctange}}= 70}\\\">{{user.SOPAdherence}}= 4}\\\">{{user.CustomerRating}}
    {{user.BrandName}}
    {{user.ProductName}}
    {{user.SkillSet.toString()}}
    {{user.Locations.toString()}}
    Showing {{plannerResourceMap.techpageindexCount}} to {{plannerResourceMap.usersLength}} of {{plannerResourceMap.totalTalentPoolCount}} entries
    {{plannerResourceMap.exceptionPoolList.TotalUsers}}

    Total Users

    {{plannerResourceMap.exceptionPoolList.TotalFieldEngineer}}

    Total Field Engineer

    {{plannerResourceMap.exceptionPoolList.TotalVendors}}

    Total Vendors

    {{plannerResourceMap.exceptionPoolList.TotalOneJobDone}}

    Total One JobDone

    User IdUser NameUser RoleAddressSkillSetWork Locations
    {{userTktData.UserId}}{{userTktData.UserName}}{{userTktData.UserRole}}{{userTktData.Address}}{{userTktData.SkillSet[0]+(userTktData.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}{{userTktData.UserWorkLocations[0]+(userTktData.worklocationCount>1?\\\"...\\\":\\\"\\\")}}
    PincodeCityStateFL User CountFLV User CountFLT User CountTotal User Count
    {{usersData.City}}{{usersData.State}}{{usersData.FLUserCount}}{{usersData.FLVUserCount}}{{usersData.FLTUserCount}}{{usersData.TotalUserCount}}
    Ticket IdStatusAccountNameSkillAddressCityStatePincodeLatitudeLongitude
    {{ticketData.Status}}{{ticketData.AccountName}}{{ticketData.Skill}}{{ticketData.Address}}{{ticketData.City}}{{ticketData.State}}{{ticketData.Pincode}}{{ticketData.Latitude}}{{ticketData.Longitude}}
     {{plannerResourceMap.TPpageindexCount}} - {{plannerResourceMap.ticketPoolListLenth}} of {{totalTableTicketPool}}
    CustomerNameService TypeAddressCityStatePincodeLatitudeLongitudeTicket IdTicket Date
    {{ticketData.CustomerName}}{{ticketData.ServiceType}}{{ticketData.CustomerAddress}}{{ticketData.CustomerCity}}{{ticketData.CustomerState}}{{ticketData.CustomerPincode}}{{ticketData.Latitude}}{{ticketData.Longitude}}{{ticketData.TicketId}}{{ticketData.TicketDate}}
     {{plannerResourceMap.cuPageindexCount}} - {{plannerResourceMap.customerListLenth}} of {{totalCustomers}}
    {{plannerResourceMap.analysisCount.TotalLocations}}

    Total Locations/Tickets

    {{plannerResourceMap.analysisCount.TotalMatchedLocations}}

    Total Match (Found Freelancers)

    {{plannerResourceMap.analysisCount.TotalNotMatchedLocations}}

    Total No Match (No Freelancer Found)

    {{plannerResourceMap.analysisCount.FoundAtleastOneFE}}

    Found Atleast 1 Freelancer

    {{plannerResourceMap.analysisCount.FoundMoreThanOneFE}}

    Found More than 1 Freelancers

    {{plannerResourceMap.analysisCount.DailyRunRate}}

    Daily Run Rate

    [{{plannerResourceMap.analysisCount.TotalUniqueFE}} / {{plannerResourceMap.analysisCount.TotalUniqueFV}} / {{plannerResourceMap.analysisCount.TotalUniqueFVT}}]

    Total Unique Freelancers [FL/FV(FVT)]

    [{{plannerResourceMap.analysisCount.TotalSameSkillActive}} / {{plannerResourceMap.analysisCount.TotalSameSkillActiveMoreThanOneJob}} / {{plannerResourceMap.analysisCount.TotalSameSkillActiveOneJob}}]

    Total Same Skill Active [1 or more Job/No Job]

    [{{plannerResourceMap.analysisCount.TotalRelatableSkillActive}} / {{plannerResourceMap.analysisCount.TotalRelatableSkillActiveMoreThanOneJob}} / {{plannerResourceMap.analysisCount.TotalRelatableSkillActiveOneJob}}]

    Total Similar Skill Active [1 or more Job/No Job]

    {{plannerResourceMap.analysisCount.TotalActiveUsers}}

    Total Active

    {{plannerResourceMap.analysisCount.TotalRegisteredUsers}}

    Total Registered

    {{plannerResourceMap.analysisCount.TotalInvitedUsers}}

    Total Invited

    Uploaded IdUploaded ReportUpload TypeCreated OnCreated ByTotal RecordsSuccess CountException CountActions
    {{capacity.UploadId}}{{capacity.UploadName}}{{capacity.UploadType}}{{capacity.CreatedOn | date:\\'dd/MM/yyyy hh:mm a\\'}}{{capacity.UserName}}{{capacity.TotalRecords}}{{capacity.SuccessRecords}}{{capacity.ExceptionRecords}}
    Analysis IdAnalysis NameAnalysis DescriptionSuccess Rate(%)Created OnCreated ByActions
    {{analysis.AnalysisId}}{{analysis.AnalysisName}}{{analysis.AnalysisDescription}}{{analysis.SuccessRate}}{{analysis.AnalysisDate | date:\\'dd/MM/yyyy hh:mm a\\'}}{{analysis.UserName}}
    of 252 records
    Upload IdAnalysis IdAddress IdSite IdEdit AddressUploaded AddressException StatusFormatted Address CityStatePin codeDistrictLatLongSame Skill (1 or more Job)Same Skill (No Job)Relatable Skill (1 or more Job)Relatable Skill (No Job)Active FreelancersRegistered FreelancersInvited FreelancersTotal Freelancers
    {{users.SameSkillOneJob}}{{users.SameSkillNoJob}}{{users.RelatableSkillOneJob}}{{users.RelatableSkillNoJob}}{{users.ActiveUsers}}{{users.RegisteredUsers}}{{users.InvitedUsers}}{{users.TotalUsers}}
    User IdNameAddressDistance(KM)SkillOne job done skills
    {{users.UserId}}{{users.UserName}}{{users.Address}}{{((users.Distance /1000).toFixed(3))}}{{users.SkillSet[0]+(users.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}{{users.OneJobSkill[0]+(users.OneJobSkillSetCount>1?\\\"...\\\":\\\"\\\")}}
      {{plannerResourceMap.ulpageindexCount}} - {{plannerResourceMap.userListLength}} of {{totalUsers}}
      {{plannerResourceMap.upageindexCount}} - {{plannerResourceMap.analysisListLength}} of {{totalAL}}
    UserId Name StatusSkillOneJobDone SkillNo. of MatchTotal Jobs DoneWithin Range (km) Job Match Criteria
    \\\"image\\\" {{users.UserName}}{{users.SkillSet[0]+(users.SkillSetCount>1?\\\"...\\\":\\\"\\\")}}{{users.OneJobDoneSkills[0]+(users.OneJobSkillSetCount>1?\\\"...\\\":\\\"\\\")}}{{users.NumberOfAddressMatched}}{{(((users.MinDistance)/1000).toFixed(2))}} - {{(((users.MaxDistance) /1000).toFixed(2))}}Same Pincode
    Address IdSite IdUploaded AddressFormatted AddressCityStatePincode Distance(km)Freelancer PricePlannedClosure DateClouserType
    {{addresses.AddressId}}{{addresses.SiteId}}{{addresses.UploadedAddress}}{{addresses.Formatted_Address}}{{addresses.City}}{{addresses.State}}{{addresses.Pincode}}{{((addresses.Distance /1000).toFixed(2))}}Same Pincode{{addresses.FreelancerPrice}}{{addresses.PlannedClosureDate}}{{addresses.ClosuerType}}
      {{plannerResourceMap.uwtPageIndexCount}} - {{plannerResourceMap.UWTicketListLength}} of {{totalUWtickets}}
      {{plannerResourceMap.uwpageindexCount}} - {{plannerResourceMap.analysisListUWLength}} of {{totalUW}}
    Upload IdAnalysis IdAddress IdSite IdEdit AddressUploaded AddressException StatusFormatted Address CityStatePin codeDistrictLatLong
      {{plannerResourceMap.exuPageIndexCount}} - {{plannerResourceMap.exceptionAnalysisLength}} of {{totalEAL}}
    Companian
    Technician Filters
    Clear
    Atleast One Job Done
    WareHouse Filters
    Clear
    Training Centres Filters
    Clear
    Analysis Filters
    Clear
    By Pincode
    24KM
    Other Skills
    Atleast One Job Done
    Ticket Filters
    Clear
    Users Filters
    By Pincode
    KM
    Atleast One Job Done
    Matching Skill
    Customer Filters
    Clear
    Filters
    Atleast One Job Done
    \");\n$templateCache.put(\"app/PlanningTicket/PlanningTicket.html\",\"
    Filters
    Range (in km)
    Pincode
    11

    Total Locations

    58

    Total Match

    7

    Not Match

    20

    Atleast 2 Match

    5

    Atleast 1 Match

    9

    Run Rate (Days)

    Site AddressPinSkillsFreelancers (FL)Freelance Vendors (FV)Freelance Vendor Team (FVT)Total TechniciansJob Count
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying7/83/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    Haldiram, C- 31, Sector 62, To…122003Wire Laying18/203/52/212/1534
    of 252 records
    \");\n$templateCache.put(\"app/PlanningTool/PlanningTool.html\",\"
    1. Home
    2. Planning Tool
    \\\"Planning
    \");\n$templateCache.put(\"app/PlanningTool/TicketBasedPlanning.html\",\"

    Planning Tool

    LocationCityStatePincodePreference 1 UserPreference 2 UserPreference 3 User
    ({{listJobPlanning.UserDataList[0].UserType}})
    Distance KM.

    ({{listJobPlanning.UserDataList[1].UserType}})
    Distance KM.

    ({{listJobPlanning.UserDataList[2].UserType}})
    Distance KM.

    \");\n$templateCache.put(\"app/PlanningUploadJobs/PlanningUploadJobs.html\",\"

    145 Jobs Added in queue 5 are having errors.

    150 Jobs Add Successfully!

    Customer

    Nokia India Pvt.Ltd

    Project

    RF Project

    Upload From Device
    or Drag your file here

    Document supported .xlsx, .xls and max. size is 8MB.

    Export below rows from the table, work on the errors and re-upload it.

    #RowError DescriptionJob PriorityJob DescriptionSite NameRegionContact PersonContact Number
    11Contact number is invalidLowAtlantic Nihil ImpeditAtlantic Nihil ImpeditLowEos et accusamus9890748040
    11Contact number is invalidLowAtlantic Nihil ImpeditAtlantic Nihil ImpeditLowEos et accusamus9890748040
    11Contact number is invalidLowAtlantic Nihil ImpeditAtlantic Nihil ImpeditLowEos et accusamus9890748040
    11Contact number is invalidLowAtlantic Nihil ImpeditAtlantic Nihil ImpeditLowThis is required9890748040
    11Contact number is invalidLowAtlantic Nihil ImpeditAtlantic Nihil ImpeditLowEos et accusamus9890748040
    \");\n$templateCache.put(\"app/PreferredTalentPool/PreferredTalentPool.html\",\"

    Preferred Talent Pool -

    Showing {{PreferredPoolCtrl.techpageindexCount}} to {{PreferredPoolCtrl.usersLength}} of {{PreferredPoolCtrl.totalTalentPoolCount}} entries
    ActionUserIdNameBadgesActivation DateAddress Line1Address Line2CityStatePinCodePrimeEmailStudentInternshipAdhar CardPan CardSkillLocationSource
    {{PreferredUser.FirstName}} {{PreferredUser.LastName}}
    \\\"image\\\" \\\"image\\\"
    {{PreferredUser.SkillSet.toString()}}
    {{PreferredUser.Locations.toString()}}
    {{PreferredUser.Source}}
    \\\"image\\\" \\\"image\\\"

    {{user.FirstName}} {{user.LastName}}

     {{user.EnrollNo}}
    {{user.CustomerRating}} 
    {{user.ContactNumber}}

    Address :-

    {{user.CurrentAdd1}}
    {{user.CurrentAdd2}}
    {{user.CurrentCity}}
    {{user.CurrentState}}
    Showing {{PreferredPoolCtrl.pageindexCount}} to {{PreferredPoolCtrl.vendorListLength}} of {{PreferredPoolCtrl.totalVendorPoolCount}} entries
    ActionActionVendor IdNameBadgesMobile No.Company NameActivation DateAddress Line1Address Line2CityStatePinCodePrimeEmailVerticalSkillLocationLatitudeLongitudeVendor Status
    {{PreferredVendor.FirstName}} {{PreferredVendor.LastName}}
    \\\"image\\\" \\\"image\\\"
    {{PreferredVendor.SkillSet.toString()}}
    {{PreferredVendor.Locations.toString()}}
    \\\"image\\\" \\\"image\\\"

    {{vendor.CompanyName}}

    {{vendor.FirstName}} {{vendor.LastName}}

    {{vendor.VendorId}}
    {{vendor.CustomerRating}} 
    {{vendor.ContactNumber}}

    Address :-

    {{vendor.PermanentAdd1}}
    {{vendor.PermanentAdd2}}
    {{vendor.PermanentCity}}
    {{vendor.PermanentState}}
    Choose Filters

    Choose Filters

    \");\n$templateCache.put(\"app/PreferredVendorTalentPool/PreferredVendorTalentPool.html\",\"
    ActionActionUser IdNameBadgesMobile No.Company NameActivation DateAddress Line1Address Line2CityStatePinCodePrimeEmailVerticalSkillLocationLatitudeLongitudeUser Status
    {{PreferredVendor.FirstName}} {{PreferredVendor.LastName}}
    \\\"image\\\" \\\"image\\\"
    {{PreferredVendor.SkillSet.toString()}}
    {{PreferredVendor.Locations.toString()}}
    \\\"image\\\" \\\"image\\\"

    {{PreferredVendor.CompanyName}}

    {{PreferredVendor.FirstName}} {{PreferredVendor.LastName}}

    {{PreferredVendor.VendorId}}
    {{PreferredVendor.CustomerRating}} 
    {{PreferredVendor.MobileNumber}}

    Address :-

    {{PreferredVendor.AddressLine1}}
    {{PreferredVendor.AddressLine2}}
    {{PreferredVendor.City}}
    {{PreferredVendor.State}}
    Choose Filters

    \");\n$templateCache.put(\"app/PreferredFreelancerTechnicianProfile/PreferredFreelancerTechnicianProfile.html\",\"

    Preferred Freelancer Technician Profile

    Role : {{PreferredFreelancerTechnicianProfile.users.Role}}

    \\\"profile\\\"

    {{PreferredFreelancerTechnicianProfile.users.FirstName}} {{PreferredFreelancerTechnicianProfile.users.LastName}} - {{PreferredFreelancerTechnicianProfile.users.UserId}}


    {{PreferredFreelancerTechnicianProfile.users.customerrating}} 

    Date of Joining  -

    Email  -

    Phone No.  -

    {{PreferredFreelancerTechnicianProfile.users.Experience}} year of Experience

    \\\"image\\\" \\\"image\\\"

    {{PreferredFreelancerTechnicianProfile.users.JobTotal}}


    Total Jobs

    {{PreferredFreelancerTechnicianProfile.userbalance.AvailableBalance}}


    Balance

    {{PreferredFreelancerTechnicianProfile.users.CustomerRating | number: 1 }}


    Average Rating


    View Agreement
    \\\"image\\\"

    Reliability

    \\\"image\\\"

    About

    {{PreferredFreelancerTechnicianProfile.users.Experience}} year of Experience

    \\\"image\\\"

    Address

    {{PreferredFreelancerTechnicianProfile.users.CurrentAdd1}} , {{PreferredFreelancerTechnicianProfile.users.CurrentAdd2}} , {{PreferredFreelancerTechnicianProfile.users.CurrentCity}} , {{PreferredFreelancerTechnicianProfile.users.CurrentState}} ,

    \\\"image\\\"

    Skill Set

    \\\"image\\\"

    Equipments

    \\\"image\\\"

    Assets

    \\\"image\\\"

    Work Locations

    \\\"image\\\"

    Insaurance Details

    Insurance Name  -
    Policy Number  -
    Issue Date   -
    Expiry Date   -
    Insaurance Image   -
    View Link \\\"profile\\\"
    \\\"image\\\"

    Bank Account Details

    Account No  -
    IFSC Code  -
    Account Holder Name   -
    Bank Name   -
    \\\"image\\\"

    Documents

    \\\"image-1\\\" \\\"profile\\\" \\\"Cinque

    Doc. Name -{{BGVerificationDocPath.DocumentName}}

    Doc. Type -{{BGVerificationDocPath.DocumentType}}

    Doc. No. -{{BGVerificationDocPath.DocumentNo}}

    \");\n$templateCache.put(\"app/PreferredVendorTechnicianProfile/PreferredVendorTechnicianProfile.html\",\"

    Preferred Vendor Profile

    Role : {{PreferredVendorTechnicianProfile.users.Role}}

    \\\"profile\\\"

    {{PreferredVendorTechnicianProfile.users.FirstName}} {{PreferredVendorTechnicianProfile.users.LastName}} - {{PreferredVendorTechnicianProfile.users.UserId}}

    {{PreferredVendorTechnicianProfile.users.CompanyName}}

    {{PreferredVendorTechnicianProfile.users.VendorRatings}}

    Ceation Date  -

    Email  -

    {{PreferredVendorTechnicianProfile.users.Experience}} year of Experience

    \\\"image\\\" \\\"image\\\"

    {{PreferredVendorTechnicianProfile.users.TotalJobs}}


    Total Jobs

    {{PreferredVendorTechnicianProfile.users.AvailableBalance}}


    Balance

    {{PreferredVendorTechnicianProfile.users.CustomerRating | number: 1 }}


    Average Rating


    View Agreement
    \\\"image\\\"

    Reliability

    \\\"image\\\"

    About

    {{PreferredVendorTechnicianProfile.users.Experience}} year of Experience

    \\\"image\\\"

    Address

    {{PreferredVendorTechnicianProfile.users.AddressLine1}} , {{PreferredVendorTechnicianProfile.users.AddressLine2}} , {{PreferredVendorTechnicianProfile.users.City}} , {{PreferredVendorTechnicianProfile.users.State}} ,

    \\\"image\\\"

    Skill Set

    \\\"image\\\"

    Equipments

    \\\"image\\\"

    Assets

    \\\"image\\\"

    Bank Account Details

    Account No  -
    IFSC Code  -
    Account Holder Name   -
    Bank Name   -
    \\\"image\\\"

    Insaurance Details

    Insurance Name  -
    Policy Number  -
    Issue Date   -
    Expiry Date   -
    Insaurance Image   -
    View Link \\\"profile\\\"
    \\\"image\\\"

    Documents

    \\\"image-1\\\" \\\"profile\\\" \\\"Cinque

    Doc. Name - {{BGVerificationDocPath.DocumentName}}

    Doc. Type - {{BGVerificationDocPath.DocumentType}}

    Doc. No. -{{BGVerificationDocPath.DocumentNo}}

    Team
    User IDNameContact NumberAddress line 1Address Line 2CityStateSkills
    {{VendorTeamlist.UserId}}{{VendorTeamlist.FirstName}} {{VendorTeamlist.LastName}}{{VendorTeamlist.ContactNumber}}{{VendorTeamlist.PermanentAdd1}}{{VendorTeamlist.PermanentAdd2}}{{VendorTeamlist.PermanentCity}}{{VendorTeamlist.PermanentState}}
    {{VendorTeamlist.SkillSet.toString()}}
    \");\n$templateCache.put(\"app/PreferredTechnicianTalentPool/PreferredTechnicianTalentPool.html\",\"
    ActionUserIdNameBadgesActivation DateAddress Line1Address Line2CityStatePinCodePrimeEmailStudentInternshipAdhar CardPan CardSkillLocationSource
    {{PreferredUser.FirstName}} {{PreferredUser.LastName}}
    \\\"image\\\" \\\"image\\\"
    {{PreferredUser.SkillSet.toString()}}
    {{PreferredUser.Locations.toString()}}
    {{PreferredUser.Source}}
    \\\"image\\\" \\\"image\\\"

    {{PreferredUser.FirstName}} {{PreferredUser.LastName}}

    {{PreferredUser.UserId}}
    {{PreferredUser.CustomerRating}} 

    Address :-

    {{PreferredUser.CurrentAdd1}}
    {{PreferredUser.CurrentAdd2}}
    {{PreferredUser.CurrentCity}}
    {{PreferredUser.CurrentState}}
    Choose Filters

    \");\n$templateCache.put(\"app/ProductReplacementApproval/ProductReplacementApproval.html\",\"
    1. Home
    2. Product Replacement Approval
    Showing {{ProductReplaceApprovalCntrl.opageindexCount}} to {{ProductReplaceApprovalCntrl.orderListLength}} of {{totalOrderList}} entries
    Replacement IDPrevious Replacement IDTicket IDStatusSub StatusDispatch StatusActionProduct BrandProduct NameCreated OnReplacement ReasonRemarkRequester IDRequester Contact InfoConsumer NameConsumer ContactTicket AgeReplacement AgeTicket StatusWarehouse IDWarehouse Contact InfoPackaging IDPackaging DatePackage Tracking IDShipment IDShipment DateShipment DocTracking LinkGR No.Old Model No.Old Serial No. 1Old Serial No. 2New Model No.New Serial No. 1New Serial No. 2Old Model PriceNew Model Price
    {{orderList.strReplacementId}}{{orderList.strPrevReplacementId}}{{orderList.strTicketId}}{{orderList.strTicketId}}{{orderList.strStatus}}{{orderList.SubStatus}}{{orderList.strDispatchStatus}} {{orderList.strProductBrand}}{{orderList.strProductName}}{{orderList.dateCreatedOn | date:\\'dd/MMM/yy\\'}}{{orderList.strReplacementReason}}{{orderList.strReplacementComment}}{{orderList.strRequestRaisedBy}}{{orderList.strReqUserName}}{{orderList.ConsumerName}}{{orderList.ConsumerContact}}{{orderList.TicketAge}}{{orderList.ReplacementAge}}{{orderList.strTicketStatus}}{{orderList.strWareHouseId}}{{orderList.strWareHouseManager}}{{orderList.objPackageDetails[0].strPackageId}}{{orderList.objPackageDetails[0].datePackedOn | date:\\'dd/MMM/yy\\'}}{{orderList.objPackageDetails[0].strPackageTrackingId}}{{orderList.objPackageDetails[0].strShipmentId}}{{orderList.ShipmentDate | date:\\'dd/MMM/yy h:mm:ss a\\'}}{{orderList.strPackageAttachment}} \\\"No{{trackingLink}}{{orderList.strGRNumber}}{{orderList.strOldProductNumber}}{{orderList.strOldSerialNumber1}}{{orderList.strOldSerialNumber2}}{{orderList.strNewProductNumber}}{{orderList.strNewSerialNumber1}}{{orderList.strNewSerialNumber2}}{{orderList.OldModelPrice}}{{orderList.NewModelPrice}}

    {{ProductReplaceApprovalCntrl.PartDetails.PartName}}

    Part ID:{{ProductReplaceApprovalCntrl.PartDetails.strItemId}}
    SKU ID :{{ProductReplaceApprovalCntrl.PartDetails.strSKUId}}
    Product ID :{{ProductReplaceApprovalCntrl.PartDetails.ProjectId}}
    Project Name:{{ProductReplaceApprovalCntrl.PartDetails.ProjectName}}
    Unit :{{ProductReplaceApprovalCntrl.PartDetails.strItemUnit}}
    BrandName :{{ProductReplaceApprovalCntrl.PartDetails.strItemBrand}}

    Description

    • {{description}}

    Replacement Request Activity Timeline - ID : {{ProductReplaceApprovalCntrl.trackingDetails.strReplacementId}}

    Product Name : {{ProductReplaceApprovalCntrl.trackingDetails.strProductName}}
    Ticket ID : {{ProductReplaceApprovalCntrl.trackingDetails.strTicketId}}
    Order Status: {{ProductReplaceApprovalCntrl.trackingDetails.strStatus}}
    • {{timeline.strUserName}} {{timeline.strUserRole}} {{timeline.dateCreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}
      {{ timeline.strComment || \\'No comments available\\'}}
      Status moved to: {{ timeline.strStatus }} {{ timeline.strStage }} {{ timeline.strStatus }}
    \");\n$templateCache.put(\"app/PriceModelMapping/PriceModelMapping.html\",\"
    1. Home
    2. Price Model Mapping
    {{PriceModelMappingCtrl.pageindexCount}} - {{PriceModelMappingCtrl.WithZeroListLength}} of {{totalTableWithZero}}
    {{PriceModelMappingCtrl.pageindexCountWithoutZero}} - {{PriceModelMappingCtrl.WithoutZeroListLength}} of {{totalTableWithoutZero}}
    SelectBrandNameModelNumberSkillProjectGroupNameAccountEdit
    SelectBrandNameModelNumberSkillProjectGroupNameAccount
    SelectCancellation ReasonPrice TypePercentage (%)Applicable for AutoPaymentEdit
    YES
    NO
    \");\n$templateCache.put(\"app/ProductReplacementOrders/ProductReplacementOrders.html\",\"
    1. Home
    2. All Replacement Orders
    • All
    • Pending
    • Approved
    • Rejected
    • Dispatched
    • Delivered
    Showing {{ProductReplaceCntrl.opageindexCount}} to {{ProductReplaceCntrl.orderListLength}} of {{totalOrderList}} entries
    Replacement IDPrevious Replacement IDTicket IDStatusSub StatusActionProduct BrandProduct NameCreated OnReplacement ReasonRemarkRequester IDRequester Contact InfoConsumer NameConsumer ContactTicket AgeReplacement AgeTicket StatusWarehouse IDWarehouse Contact InfoPackaging IDPackaging DatePackage Tracking IDShipment IDShipment DateShipment DocTracking LinkGR No.Old Model No.Old Serial No. 1Old Serial No. 2New Model No.New Serial No. 1New Serial No. 2
    {{orderList.strReplacementId}}{{orderList.strPrevReplacementId}}{{orderList.strTicketId}}{{orderList.strTicketId}}{{orderList.strStatus}}{{orderList.SubStatus}} {{orderList.strProductBrand}}{{orderList.strProductName}}{{orderList.dateCreatedOn | date:\\'dd/MMM/yy\\'}}{{orderList.strReplacementReason}}{{orderList.strReplacementComment}}{{orderList.strRequestRaisedBy}}{{orderList.strReqUserName}}{{orderList.ConsumerName}}{{orderList.ConsumerContact}}{{orderList.TicketAge}}{{orderList.ReplacementAge}}{{orderList.strTicketStatus}}{{orderList.strWareHouseId}}{{orderList.strWareHouseManager}}{{orderList.objPackageDetails[0].strPackageId}}{{orderList.objPackageDetails[0].datePackedOn | date:\\'dd/MMM/yy\\'}}{{orderList.objPackageDetails[0].strPackageTrackingId}}{{orderList.objPackageDetails[0].strShipmentId}}{{orderList.ShipmentDate | date:\\'dd/MMM/yy h:mm:ss a\\'}}{{orderList.strPackageAttachment}} \\\"No{{trackingLink}}{{orderList.strGRNumber}}{{orderList.strOldProductNumber}}{{orderList.strOldSerialNumber1}}{{orderList.strOldSerialNumber2}}{{orderList.strNewProductNumber}}{{orderList.strNewSerialNumber1}}{{orderList.strNewSerialNumber2}}

    {{ProductReplaceCntrl.PartDetails.PartName}}

    Part ID:{{ProductReplaceCntrl.PartDetails.strItemId}}
    SKU ID :{{ProductReplaceCntrl.PartDetails.strSKUId}}
    Product ID :{{ProductReplaceCntrl.PartDetails.ProjectId}}
    Project Name:{{ProductReplaceCntrl.PartDetails.ProjectName}}
    Unit :{{ProductReplaceCntrl.PartDetails.strItemUnit}}
    BrandName :{{ProductReplaceCntrl.PartDetails.strItemBrand}}

    Description

    • {{description}}

    Activity Trace ( {{ProductReplaceCntrl.trackingDetails.strReplacementId}} )

    Product Name : {{ProductReplaceCntrl.trackingDetails.strProductName}}
    Ticket ID : {{ProductReplaceCntrl.trackingDetails.strTicketId}}
    Order Status: {{ProductReplaceCntrl.trackingDetails.strStatus}}
    • {{timeline.strUserName}} {{timeline.strUserRole}} {{timeline.dateCreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}
      {{ timeline.strComment || \\'No comments available\\'}}
      Status moved to: {{ timeline.strStatus }}
    \");\n$templateCache.put(\"app/ProfileManagementDetail/ProfileManagementDetail.html\",\"
    1. Home
    2. Access Profile Overview
    Access Profile Overview

    Dispatch Head

    Oversees logistics and dispatch operations, ensuring timely deliveries and optimal resource allocation

    Admin11/03/2025, 11:10 AM

    Admin18/03/2025, 10:13 AM

    Apps

    Configure App Menu
    Settings that specify which apps are visible in the app menu

    Object Settings
    Permissions to access objects and fields...

    System

    System Permissions
    Permissions to perform actions that apply across apps , such as \\\"Modify All Data\\\"

    Passwords Policies
    Profile Based password policies

    Assigned User
    Full NameUsernameRoleActiveProfileAction
    {{profile.name}}{{profile.username}}{{profile.role}}{{profile.profile}}
    \");\n$templateCache.put(\"app/ProfileObjectDetail/ProfileObjectDetail.html\",\"
    1. Home
    2. Object Settings

    {{ profileobjectcntrl.selectedObject.name }} Object

    Tab Settings
    Permission NameEnabled
    {{ permission.name }}
    Object NameObject PermissionsTotal FieldsTab SettingsAction
    {{ obj.name }}{{ obj.permissions }}{{ obj.fields }}{{ obj.tabSettings }}
    \");\n$templateCache.put(\"app/ProfileManagement/ProfileManagement.html\",\"
    1. Home
    2. Access Profile
    Access Profile NameProfile Summary DescriptionCustomAction
    {{profile.name}}{{profile.description}}
    \");\n$templateCache.put(\"app/ProjectCreation/ProjectCreation.html\",\"
    1. Home
    2. Create Project
    Project Details
    Please enter project name Project Name should not be grater than 50 Characters Project name should only contain alphabets with space
    Please select project manager
    Please select start date
    Please select end date
    Please select customer
    = 48 && event.charCode <= 57\\\" required=\\\"\\\" ng-pattern=\\\"/^[1-9]+[0-9]*$/\\\">
    Please enter job duration Please enter valid no of hours You can enter min 1 hours You can enter max 720 hours
    Please enter project description Project description should not be greater than 250 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Service Level Agreement (SLA)*
    Average time close should not empty Enter numbers only
    Meeting customer appointment should not empty Enter numbers only
    Point of Contact {{$index+1}}
    Scheduling Rules {{$index+1}}
    Plsease select skill
    Rate Card
    = 48 && event.charCode <= 57\\\">
    Please enter price You can enter maximum 50000
    Price ()(Credits) :{{main.round2Decimal(projectcreate.price)}}
    Geo Fence
    = 48 && event.charCode <= 57\\\">
    Please enter range
    \");\n$templateCache.put(\"app/ProjectCreationLatest/ProjectCreationLatest.html\",\"
    1. Home
    2. Create Project

    PROJECT CREATION

    1

    Project Details

    2

    Service Level Agreement (SLA)*

    3 5

    Scheduling Rules

    3 5

    Point of Contact

    4 5

    Scheduling Rules

    5 5

    Rate Card

    6 5

    Geo Fence

    Project Details
    Please enter project name Project Name should not be grater than 50 Characters Project name should only contain alphabets with space
    Please select project manager
    Please select start date
    Please select end date
    Please select customer
    = 48 && event.charCode <= 57\\\" required=\\\"\\\" ng-pattern=\\\"/^[1-9]+[0-9]*$/\\\">
    Please enter job duration Please enter valid no of hours You can enter min 1 hours You can enter max 720 hours
    Please enter project description Project description should not be greater than 250 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Service Level Agreement (SLA)*
    Average time close should not empty Enter numbers only
    Meeting customer appointment should not empty Enter numbers only
    Point of Contact {{$index+1}}
    Scheduling Rules {{$index+1}}
    Plsease select skill
    Rate Card
    = 48 && event.charCode <= 57\\\">
    Please enter price You can enter maximum 50000
    Price ()(Credits) :{{main.round2Decimal(projectcreate.price)}}
    Geo Fence
    = 48 && event.charCode <= 57\\\">
    Please enter range
    \");\n$templateCache.put(\"app/Project_Details/Project_Details.html\",\"
    1. Home
    2. Project detail

    Status:
    Start Date:
    Customer:
    Project Manager:
    Supervisior:
    {{projectdetail.projectModel.SupervisorName}}
    End Date:
    Location:
    {{projectdetail.projectModel.Circle}}
    Point of Contact :
    {{projectdetail.projectModel.CustomerContactRequestModel.FirstName}} {{projectdetail.projectModel.CustomerContactRequestModel.LastName}}

    {{projectdetail.projectModel.CustomerContactRequestModel.Mobile}}

    Completed:
    Project completed in 0%. Remaining close the project, sign a contract and invoice.
    Pos Installation
    Rule IDCertificate Description
    Rule_01has A+ IT Technician
    Rule_02has A+ IT Essentials
    Rule_03has CISCO CCENT
    Rule_04has FLS Certified
    Rule_05has Server +
    Rule IDAssets Description
    Rule_01has Smart phone +
    Rule_02has Laptop
    Rule_03has Bike
    Rule IDTools Description
    Rule_01has 10ftLadder
    Rule_02has Cutter
    Rule_03has But Set
    Rule_04has Cable Tester
    All Tickets
    Ticket IDJob TypeTechnicianDurationStatus
    \");\n$templateCache.put(\"app/Project_Details/project_detail.html\",\"
    1. Home
    2. Project detail

    RFLOS

    Status:
    Active
    Start Date:
    26.04.2017
    Customer:
    Airtel
    Project Owner:
    Rachit Sharma
    End Date:
    16.08.2018
    Location:
    Gurgaon
    Point of Contact Name:
    Akshit Chauhan
    Point of Contact No.:
    8375860288
    Completed:
    Project completed in 60%. Remaining close the project, sign a contract and invoice.
    Job TypeTechnicianDurationStatusAction
    FeasibilityAkshit Chauhan4 hrsCompleted
    FeasibilityAkshit Chauhan4 hrsAssigned
    FeasibilityAkshit Chauhan4 hrsRejected
    FeasibilityAkshit Chauhan4 hrsAssigned
    FeasibilityAkshit Chauhan4 hrsCompleted
    FeasibilityAkshit Chauhan4 hrsRejected
    FeasibilityAkshit Chauhan4 hrsCompleted
    FeasibilityAkshit Chauhan4 hrsAssigned
    FeasibilityAkshit Chauhan4 hrsCompleted
    FeasibilityAkshit Chauhan4 hrsRejected
    FeasibilityAkshit Chauhan4 hrsRejectedX
    FeasibilityAkshit Chauhan4 hrsCompleted
    FeasibilityAkshit Chauhan4 hrsCompletedX
    FeasibilityAkshit Chauhan4 hrsCompleted
    FeasibilityAkshit Chauhan4 hrsCompleted
    FeasibilityAkshit Chauhan4 hrsCompleted
    FeasibilityAkshit Chauhan4 hrsCompleted

    Project description

    There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don\\'t look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn\\'t anything embarrassing

    High priority

    Project Skills
    Project files
    \");\n$templateCache.put(\"app/ProjectLatest/ProjectLatest.html\",\"

    Projects

    ActionIdNameCustomerStart DateEnd DateCreated OnLocationStatus
    {{projectlist.ProjectId}}{{location.Circle}}
    {{project.projectModel.Name}}

    Description: {{project.projectModel.Description}}

    Customer  {{project.projectModel.CustomerName}}
    Project Manager \\\"image\\\" {{project.projectModel.ManagerName}}  {{project.projectModel.ManagerNumber}}

    Serving Location

    Locations
    \\\"image\\\" \\\"image\\\"

    {{ProjectLatest.projectModel.Name}}

    {{ProjectLatest.projectModel.ManagerName}} - Project Manager

    {{ProjectLatest.projectModel.ManagerNumber}}

    Customer

    {{ProjectLatest.projectModel.CustomerName}}

    Locations

    Serving Location


    \");\n$templateCache.put(\"app/RateJob/RateJob.html\",\"
    Payment has been done successfully for Ticket Id - {{rateJob.ticketId}}
    Thank You - MyMobiforce
    \");\n$templateCache.put(\"app/Recharge/recharge.html\",\"
    1. Home
    2. Recharge
    Payment method
    Please enter recharge amount greater then or equal to INR {{rechargeCtrl.minRechageAmount}}

    Payment Instructions


    \");\n$templateCache.put(\"app/Project_Details_Latest/Project_Details_Latest.html\",\"

    Project Details

    Status  

    Location  {{Project_Details_Latest.projectModel.Circle}}

    Start Date  {{Project_Details_Latest.projectModel.StartDate | date: Project_Details_Latest.CustomDateformat}}

    End Date  {{Project_Details_Latest.projectModel.EndDate | date: Project_Details_Latest.CustomDateformat}}

    Pos Installation
    Rule IDCertificate Description
    Rule_01has A+ IT Technician
    Rule_02has A+ IT Essentials
    Rule_03has CISCO CCENT
    Rule_04has FLS Certified
    Rule_05has Server +
    Rule IDAssets Description
    Rule_01has Smart phone +
    Rule_02has Laptop
    Rule_03has Bike
    Rule IDTools Description
    Rule_01has 10ftLadder
    Rule_02has Cutter
    Rule_03has But Set
    Rule_04has Cable Tester
    \");\n$templateCache.put(\"app/RedirectUserPayment/RedirectUserPayment.html\",\"
    1. Home
    2. Payment Successful

    {{userpayment.transactionMsg}}

    {{userpayment.transactionMsg}}

    \");\n$templateCache.put(\"app/RedirectPayment/RedirectPayment.html\",\"\");\n$templateCache.put(\"app/Refer/refer.html\",\"

    Workforce as a Service

    Freelance marketplace to connect Field Engineers with service companies.



    {{registerForm.fileUploadError}}
    Please enter first name
    Please enter last name
    Please select year
    Please select month
    Please select date
    Please enter date of birth Please enter valid date of birth
    Please enter email Please fill out valid email
    Please enter gender
    Please enter mobile number Please fill 10 digit mobile no
    Please enter address line 1
    Please enter address line 2
    Please enter state
    Please enter city
    Please enter pincode Please fill 6 digit pincode

    =0\\\">(Optional)
    {{doc.DocumentPath1}}
    {{registerForm.error[doc.DocumentType]}}

    Copyright MyMobiforce © 2018

    \");\n$templateCache.put(\"app/Refer/refervendor.html\",\"

    Workforce as a Service

    Freelance marketplace to connect Field Vendors with service companies.

    Business Information Section



    {{registerForm.fileUploadError}}
    Please enter first name
    Please enter last name
    Please select year
    Please select month
    Please select date
    Please enter date of birth Please enter valid date of birth
    Please enter email Please fill out valid email
    Please enter gender
    Please enter mobile number Please fill 10 digit mobile no
    Please enter address line 1
    Please enter address line 2
    Please select state
    Please select city
    Please enter pincode Please fill 6 digit pincode
    Please enter company name
    Please select business
    Please select skills
    Please select strength
    Please select inventory

    Document Upload Section

    * Kindly Upload scanned / digital copies of following documents. Please make sure they are clearly visible.

    * Click Image placeholder to upload/ change document


    =0\\\">(Optional)
    {{doc.DocumentPath1}}
    {{registerForm.error[doc.DocumentType]}}

    Copyright MyMobiforce © 2019

    \");\n$templateCache.put(\"app/RegisteredAllUser/RegisteredAllUser.html\",\"
    1. Home
    2. All Registered User
    {{RegisteredAllUserCtrl.UsersType}}
      {{RegisteredAllUserCtrl.upageindexCount}} - {{RegisteredAllUserCtrl.userListLength}} of {{totalUsers}}
    Registration IdUser IdNameContact NumberCurrent Add1 Registered Age(dd:hh:mm:ss)Father\\'s NameCityStatePin CodeRoleUserTypeIsAuthorized PartnerAdharPanCriminalUPIBankSkillSkill VerifiedFirst LoginstatusReferred ByTeam SizeSourceInventory StatusWork LocationRegistration DateReportingToDOBCompany NameCompany Registration NumberGST AvailableGST Certified NoMSME CertifiedMSME Certified NO.Partner (TPI)
    {{users.SkillDataNew}}
    {{location}} YES NO
    No User Found

    \");\n$templateCache.put(\"app/Refer Vendor/refervendor.html\",\"

    Crowdsourcing Platform

    Service Marketplace to connect Service Providers with Businesses.

    Business Information Section



    {{registerForm.fileUploadError}}
    Please enter first name
    Please enter last name
    Please select year
    Please select month
    Please select date
    Please enter date of birth Please enter valid date of birth
    Please enter email Please fill out valid email
    Please enter gender
    Please enter mobile number Please fill 10 digit mobile no
    Please enter address line 1
    Please enter address line 2
    Please select state
    Please select city
    Please enter pincode Please fill 6 digit pincode
    Please enter company name
    Please select business
    Please select skills
    Please select strength
    Please select inventory

    Document Upload Section

    * Kindly Upload scanned / digital copies of following documents. Please make sure they are clearly visible.

    * Click Image placeholder to upload/ change document


    =0\\\">(Optional)
    {{doc.DocumentPath1}}
    {{registerForm.error[doc.DocumentType]}}

    Copyright MyMobiforce © 2019

    \");\n$templateCache.put(\"app/Report/report.html\",\"
    1. Home
    2. {{report.report_title}}
             Filters

    {{report.report_title +\\\" \\\"+ report.filter_name + \\\" \\\" + report.additionalInfo}}

    {{report.report_title +\\\" \\\"+ report.additionalInfo + \\\" (\\\"+report.filter_name+\\\")\\\" }}

    {{ch.Value}}

    {{ch.DisplayName}}
    {{report.tableCharts[tableId].table_name}}
    \");\n$templateCache.put(\"app/Refer Freelancer/refer.html\",\"

    Crowdsourcing Platform

    Service Marketplace to connect Field Engineers with Businesses



    {{registerForm.fileUploadError}}
    Please enter first name
    Please enter last name
    Please select year
    Please select month
    Please select date
    Please enter date of birth Please enter valid date of birth
    Please enter email Please fill out valid email
    Please enter gender
    Please enter mobile number Please fill 10 digit mobile no
    Please enter address line 1
    Please enter address line 2
    Please enter state
    Please enter city
    Please enter pincode Please fill 6 digit pincode

    =0\\\">(Optional)
    {{doc.DocumentPath1}}
    {{registerForm.error[doc.DocumentType]}}

    Copyright MyMobiforce © 2018

    \");\n$templateCache.put(\"app/ReportCreation/ReportCreation.html\",\"

    Report Creation

    1

    Report Details

    2

    Report Matrics

    3

    Table Design

    Columns Aggregated Columns
    4

    Drill Down Reports

    Report Details
    Report Matrics
    Table Design

    Columns

    Aggregated Columns

    Drill Down Report
    \");\n$templateCache.put(\"app/ReportDetail/reportDetail.html\",\"
    1. Home
                  
               

    Click \\'Edit\\', then \\'Add Chart\\' to start creating your metrics and dimensions

    •  
      • {{subItem.Value}}

        {{item.ChartTitle}}
    •  
      • {{subItem.Value}}

        {{item.ChartTitle}}
    {{chart.ChartTitle}}
     
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{advance.tableCharts[tableId].ChartTitle}}
     
    \");\n$templateCache.put(\"app/ReportDetailShare/reportDetailShare.html\",\"
    1. Home
    2. {{advance.report_title}}
               
               

    Click \\'Edit\\', then \\'Add Chart\\' to start creating your metrics and dimensions

    •  
      • {{subItem.Value}}

        {{item.ChartTitle}}
    •  
      • {{subItem.Value}}

        {{item.ChartTitle}}
    {{advance.tableCharts[tableId].ChartTitle}}
     
    {{rollup}}
    {{chart.ChartTitle}}

    {{advance.metricsCharts[chart.ChartId].value&&advance.metricsCharts[chart.ChartId].value.length>0?(advance.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(advance.metricsCharts[chart.ChartId].value[$index].Value|currency:\\'₹\\'):advance.metricsCharts[chart.ChartId].value[$index].Value):\\\"NA\\\"}} 0\\\" class=\\\"text-success font-bold\\\">{{advance.metricsCharts[chart.ChartId].value[$index].ValueUnitAbbr}}

    {{advance.metricsCharts[chart.ChartId].value&&advance.metricsCharts[chart.ChartId].value.length>0?(advance.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(main.round2Decimal(advance.metricsCharts[chart.ChartId].value[$index].Value)|currency:\\'₹\\'):main.round2Decimal(advance.metricsCharts[chart.ChartId].value[$index].Value)):\\\"NA\\\"}}

    {{advance.metricsCharts[chart.ChartId].value[$index].timevalue}}

    0) && advance.metricsCharts[chart.ChartId].value[$index].CompareResult\\\" class=\\\"matrix-number text-green\\\"> {{advance.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(advance.metricsCharts[chart.ChartId].value[$index].ComparisonValue|currency:\\'₹\\'):advance.metricsCharts[chart.ChartId].value[$index].ComparisonValue}} 0\\\" class=\\\"text-green font-bold\\\">{{advance.metricsCharts[chart.ChartId].value[$index].ValueUnitAbbr}} 0) && !advance.metricsCharts[chart.ChartId].value[$index].CompareResult\\\" class=\\\"matrix-number text-danger\\\"> {{advance.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(advance.metricsCharts[chart.ChartId].value[$index].ComparisonValue|currency:\\'₹\\'):advance.metricsCharts[chart.ChartId].value[$index].ComparisonValue}} 0\\\" class=\\\"text-danger font-bold\\\">{{advance.metricsCharts[chart.ChartId].value[$index].ValueUnitAbbr}} {{advance.metricsCharts[chart.ChartId].subtitles[$index]}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{col}}
    {{val}} {{val}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{col}}
    {{val}} {{val}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}

    {{chart.ChartTitle}}

    {{chart.ChartTitle}}

    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    \");\n$templateCache.put(\"app/ReportDownload/ReportDownload.html\",\"
    Reports
    of {{totalReports}} records

    Showing {{reportdownload.upageindexCount}} to {{reportdownload.reportListLength}} of {{totalReports}} entries

    TypeReport NameSizeGenrated AtGenrated ByAction
    {{reportList.ReportName}}{{reportList.DisplayReportName}}{{reportList.Size}} kb{{reportList.ReportGeneratedAt | date:\\'dd/MM/yyyy hh:mm a\\'}}{{reportList.GeneratedBy}}
    \");\n$templateCache.put(\"app/ReturnablePartConsumeList/ReturnablePartConsumeList.html\",\"
    1. Home
    2. Returnable Parts Consumed List
    Showing {{ReturnPartCntrl.opageindexCount}} to {{ReturnPartCntrl.orderListLength}} of {{TotalRecord}} entries
    Call IDPart CodeProduct BrandProduct GroupProduct Sub GroupPart NameReturn StatusCreated On
    {{orderList.TicketId}}{{orderList.SKUId}}{{orderList.ProductBrand}}{{orderList.ProductGroup}}{{orderList.ProductSubGroup}}{{orderList.PartName}}{{orderList.PartReturnStatus}}{{orderList.CreatedOn | date:\\'dd/MMM/yy hh:mm a\\' }}
    \");\n$templateCache.put(\"app/ReportLatest/ReportLatest.html\",\"

    Reports

    ActionIdNameCustomerStart DateEnd DateCreated OnLocation
    \");\n$templateCache.put(\"app/RoasterTeamMember/RoasterTeamMember.html\",\"
    1. Home
    2. Roaster Team Members
    {{teamroaster.userInfo.FirstName}} {{teamroaster.userInfo.LastName}}s
    \\\"image\\\"

    {{teamroaster.userInfo.Role}}

    {{teamroaster.userInfo.ContactNumber}}

    Current Location
    {{teamroaster.userInfo.CurrentAdd1}}
    {{teamroaster.userInfo.CurrentAdd2}}
    {{teamroaster.userInfo.CurrentCity}}, {{teamroaster.userInfo.CurrentState}}
    Activate
    Detach from account

    AccountsState ( City )PinCodes
    {{account.AccountName}} ({{account.AccountId}}){{account.State}} {{account.City}}{{account.PinCode}}
    Total Jobs{{teamroaster.userInfo.JobTotal}}Assigned Jobs{{teamroaster.userInfo.JobAssigned}}
    Approved Jobs{{teamroaster.userInfo.JobApproved}}Completed Jobs{{teamroaster.userInfo.JobCompleted}}
    Rejected Jobs{{teamroaster.userInfo.JobRejected}}Cancelled Jobs{{teamroaster.userInfo.JobCancelled}}

    \");\n$templateCache.put(\"app/RoasterTeamCreation/Roaster_Team_creation_form.html\",\"
    1. Home
    2. Team
    3. Create Team
    Roles Information
    Please select Role
    Please select ReportingTo
    .
    Please select location
    Please select Department
    Please enter overtime hourly rate
    Please enter shift rate
    Work Area
    Account Name
    Account Id
    States
    City
    Pin Code
    Action
    {{AccountDetail.AccountName}}

    {{roastercreateUser.SelectedAccount.AccountName}}

    {{AccountDetail.AccountId}}

    {{roastercreateUser.SelectedAccount.AccountId}}

    {{AccountDetail.State}}
    {{AccountDetail.City}}
    {{locations}}

    {{roastercreateUser.SelectedAccount.AccountId}}

    User Details
    Please enter first name Your first name is required to be at least 2 characters Your first name cannot be longer than 50 characters Your first name should only contain alphabets with space
    Please enter last name Your last name cannot be longer than 50 characters Your last name should only contain alphabets with space
    Please select your gender

    Please enter date of birth

    Please select valid date of birth

    Date of birth should be less than {{roastercreateUser.maxDOBStr}}

    Please enter valid email id Please enter email id
    = 48 && event.charCode <= 57\\\" maxlength=\\\"10\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\">
    Please enter valid number
    = 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\">
    Please enter valid Mobile number Please enter mobile number

    {{roastercreateUser.fileUploadError}}
    Please enter address line 1 Your address line 1 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please enter address line 2 Your address line 2 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please select state
    Please select city
    Please select country
    =48 && event.charCode <=57\\\">
    Please enter pincode Please enter 4 digit number
    Please select option for present address
    Please enter address line 1 Your address line 1 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please enter address line 2 Your address line 2 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please select state
    Please select city
    =48 && event.charCode <=57\\\">
    Please enter pincode Please enter 6 digit number
    \");\n$templateCache.put(\"app/RoleAccessManagement/RoleAccessManagement.html\",\"
    1. Home
    2. Role
    ROLE NAMEDescriptionActions
    {{ role.name }}{{ role.description }}
    \");\n$templateCache.put(\"app/RosterManagement/AutoAssign.html\",\"
    1. Home
    2. Job Assign
     
         
    Broadcast Assign
    Select User :
    All
    {{entity.Value}}
    Filter :
     
     
    Job IDJobTypeCustomerLatitudeLongitudeLocationStart Date TimeEnd Date TimeCreation Date
    {{jobs.LinkId || jobs.TicketId}}{{jobs.JobType}}{{jobs.ConsumerName}}{{jobs.Latitude}}{{jobs.Longitude}}{{jobs.Circle}}{{jobs.StartTime | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}{{jobs.EndTime | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}{{jobs.CreationDate | date: \\'dd/MMM/yyyy\\'}}
    \");\n$templateCache.put(\"app/RosterManagement/JobAssign.html\",\"
    1. Home
    2. Job Assign
    Job IDJobTypeCustomerLocationCreation DateStatus
    {{jobs.TicketId}}{{jobs.JobType}}{{jobs.ConsumerName}}{{jobs.Circle}}{{jobs.CreationDate | date: \\'dd/MMM/yyyy\\'}}{{jobs.TicketStatus}}
    Job IDJobTypeCustomerSentReceived
    {{jobs.JobId}}{{jobs.JobType}}{{jobs.CustomerName}}{{jobs.BIDSend}}{{jobs.BIDReceived}}
    Broadcast Assign
    \\\"image\\\" \\\"image\\\"
    {{users.UserName}} V FT FE

    {{users.UserContact}}

    All Jobs

    {{users.UserTotalJobs}}

    Price
    INR {{main.round2Decimal(users.BIDCounterRate)}}
    Ratings
    {{users.UserRating?users.UserRating:0}}
     
     
    \");\n$templateCache.put(\"app/RosterManagement/NewJobAssign.html\",\"
    1. Home
    2. Job Assign
     
         
    Broadcast Assign
    Select User :
    All
    {{entity.Value}}
    Filter :
     
     
    Job IDJobDescriptionBroadcastCountCustomerLatitudeLongitudeCityLocationConsumerNameStart Date TimeCreation Date
    {{jobs.LinkId || jobs.TicketId}}{{jobs.JobDescription}}{{jobs.BroadcastCount}}{{jobs.CustomerName}}{{jobs.Latitude}}{{jobs.Longitude}}{{jobs.City}}{{jobs.Circle}}{{jobs.ConsumerName}}{{jobs.StartTime | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}{{jobs.CreationDate | date: \\'dd/MMM/yyyy\\'}}
    Job IDJobDescriptionCustomerJobLatitudeJobLongitudeLocationSentReceivedConsumerNameStart Date TimeJob Date
    {{jobs.LinkId || jobs.JobId}}{{jobs.JobDescription}}{{jobs.CustomerName}}{{jobs.JobLatitude}}{{jobs.JobLongitude}}{{jobs.Location}}{{jobs.BIDSend}}{{jobs.BIDReceived}}{{jobs.ConsumerName}}{{jobs.StartDateTime | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}{{jobs.JobBroadcastDateTime}}
    Job IDJobDescriptionCustomerJobLatitudeJobLongitudeLocationSentReceivedConsumerNameStart Date TimeJob Date
    {{jobs.LinkId || jobs.JobId}}{{jobs.JobDescription}}{{jobs.CustomerName}}{{jobs.JobLatitude}}{{jobs.JobLongitude}}{{jobs.Location}}{{jobs.BIDSend}}{{jobs.BIDReceived}}{{jobs.ConsumerName}}{{jobs.StartDateTime | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}{{jobs.JobBroadcastDateTime}}
    \");\n$templateCache.put(\"app/RosterManagement/RosterShift.html\",\"
    1. Roster Management / Employee Shift Calendar
    Broadcast Assign
     
     

    Total Hours : {{rosterShift.ShiftSummaryOverAll.TotalHours}} h

    Labour Cost : $ {{rosterShift.ShiftSummaryOverAll.StaffCost}}

    Employee : {{rosterShift.ShiftSummaryOverAll.StaffCount}}

    Schedule Hours : {{rosterShift.ShiftSummaryOverAll.ScheduledHours}} h

    {{shiftday.TotalHours}} h

    $ {{shiftday.AmountSpent}}

    {{shiftday.StaffCount}}

    \");\n$templateCache.put(\"app/SLAManagement/SlaCreation.html\",\"
    1. Home
    2. SLA Creation
    Please enter sla definition




    Business Hours Details


    Specifiy the Operational timing of your organization :


    Shift Start
    Shift End



    Holiday Schedule :

    DateHoliday NameActiveAction

    \");\n$templateCache.put(\"app/SLAManagement/Slalisting.html\",\"
    1. Home
    2. SLA Listing
    DescriptionCalenderSLA Value (Minute)LocationProjectSkillsCustomerPrioritySettingAction
    {{sla.SLADefinition}}{{sla.SLACalender}}{{sla.SLAValue}}{{sla.SLALocation}}{{sla.Project}}{{sla.Skill}}{{sla.Customer}}{{sla.CallType}}
    \");\n$templateCache.put(\"app/SLAObjectiveList/SLAObjectiveList.html\",\"
    1. Home
    #SLA Objective NameProjectCustomersSLA Objective ProcessesStart DateEnd DateBusiness HoursActions
    {{$index + 1}}{{row.name}}{{row.entityType}}{{row.customer}}{{row.process}}{{row.startDate | date:\\'yyyy-MM-dd\\' }}{{row.endDate | date:\\'yyyy-MM-dd\\' }}{{row.businessHours}}
    #NameEntity Process TypeDescriptionEntity Enters the ProcessEntity Exits the ProcessBusiness HoursActions
    {{$index + 1}}.{{objective.name}}{{objective.entityType}}{{objective.description}}{{objective.entityenters}}{{objective.entityexists}}{{objective.BusinessHours}}
    NameDescriptionRecurrence TypeActions
    {{ milestone.name }} {{ milestone.description }} {{ milestone.recurrancetype }}
    \");\n$templateCache.put(\"app/SMEInteraction/SMEInteraction.html\",\"
    \\\"image\\\"

    User Name: {{fixedUsers.UserName}}

    User Id: {{fixedUsers.UserId}}

    Role: {{fixedUsers.UserRole}}

    User IdNameSkillSlot Booked DateAssigned To (UserId)Assigned To (Name)Assigned OnInteraction ResultStatusBooking StatusReschedule CountAction
    {{bGverifySlot.UserId}}{{bGverifySlot.UserName}}{{bGverifySlot.Skill}}{{bGverifySlot.SlotBookingDate | date:\\'dd/MM/yy hh:mm a\\'}}{{bGverifySlot.InteractionWithUserId}}{{bGverifySlot.InteractionWithUserName}}{{bGverifySlot.AssignedOnDate | date:\\'dd/MM/yy hh:mm a\\'}}{{bGverifySlot.InteractionResult}}{{bGverifySlot.Status}}{{bGverifySlot.BookingStatus}}{{bGverifySlot.RescheduleCount}}
     {{SMECtrl.pageindexCount}} - {{SMECtrl.bGVerifyListLength}} of {{totalTableUsersBG}}
    \");\n$templateCache.put(\"app/ScheduleExceptionListPaging/ScheduleExceptionList.html\",\"
    1. Home
    2. Schedule Exceptions
    Schedule Exceptions
     {{scheduleExceptionList.pageindexCount}} - {{scheduleExceptionList.scheduleExceptionListNewLength}} of {{totalTableTickets}}
    Exception IdDescriptionStatusStageExceptionTypeIteration CountAccount NameTicket IdCreated Date
    {{newJob.Description}}{{newJob.ExceptionAction}}{{newJob.Stage}}{{newJob.ExceptionType}}{{newJob.IterationId}}{{newJob.AccountName}}{{newJob.JobId}}{{newJob.CreatedOn | date:\\'dd/MM/yy hh:mm a\\'}}
    \");\n$templateCache.put(\"app/ScheduleJobAssignation/AutoAssign.html\",\"
    1. Home
    2. Job Assign
     
         
    Broadcast Assign
    Select User :
    All
    {{entity.Value}}
    Filter :
     
     
    Job IDJobTypeCustomerLatitudeLongitudeLocationStart Date TimeEnd Date TimeCreation Date
    {{jobs.LinkId || jobs.TicketId}}{{jobs.JobType}}{{jobs.ConsumerName}}{{jobs.Latitude}}{{jobs.Longitude}}{{jobs.Circle}}{{jobs.StartTime | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}{{jobs.EndTime | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}{{jobs.CreationDate | date: \\'dd/MMM/yyyy\\'}}
    \");\n$templateCache.put(\"app/ScheduleJobAssignation/DemoJobAssign.html\",\"
    1. Job Assign
     
         
    Broadcast Assign
    Select User :
    All
    {{entity.Value}}
    Business Objectives :
    Ojectives Met:

    {{objectives.BusinessObjectiveName}} {{objectives.BusinessObjectiveDescrption}}

    Achieved : {{objectives.BusinessObjectiveValue}}

    Objectives Breached :

    {{objectives.BusinessObjectiveName}} {{objectives.BusinessObjectiveDescrption}}

    Achieved : {{objectives.BusinessObjectiveValue}}

    Rule 1 :
    Rule 2 :
    Rule 3 :
     
     
    Job IDJobDescriptionCustomerLatitudeLongitudeLocationSlot TimeBid SentBid ReceivedStatusConsumerNameStart Date TimeCreation Date
    {{jobs.LinkId || jobs.JobId}}{{jobs.JobDescription}}{{jobs.CustomerName}}{{jobs.JobLatitude}}{{jobs.JobLongitude}}{{jobs.Location}}{{jobs.slotTime}}{{jobs.BIDSend}}{{jobs.BIDReceived}}{{jobs.ConsumerName}}{{jobs.StartDateTime | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}{{jobs.CreationDate | date: \\'dd/MMM/yyyy\\'}}

    Technician Filters
    Clear
    Atleast One Job Done
    \");\n$templateCache.put(\"app/ScheduleJobAssignation/JobAssign.html\",\"
    1. Home
    2. Job Assign
    Job IDJobTypeCustomerLocationCreation DateStatus
    {{jobs.TicketId}}{{jobs.JobType}}{{jobs.ConsumerName}}{{jobs.Circle}}{{jobs.CreationDate | date: \\'dd/MMM/yyyy\\'}}{{jobs.TicketStatus}}
    Job IDJobTypeCustomerSentReceived
    {{jobs.JobId}}{{jobs.JobType}}{{jobs.CustomerName}}{{jobs.BIDSend}}{{jobs.BIDReceived}}
    Broadcast Assign
    \\\"image\\\" \\\"image\\\"
    {{users.UserName}} V FT FE

    {{users.UserContact}}

    All Jobs

    {{users.UserTotalJobs}}

    Price
    INR {{main.round2Decimal(users.BIDCounterRate)}}
    Ratings
    {{users.UserRating?users.UserRating:0}}
     
     
    \");\n$templateCache.put(\"app/ScheduleJobAssignation/NewJobAssign.html\",\"
    1. Home
    2. Job Assign
     
         
    Broadcast Assign
    Select User :
    All
    {{entity.Value}}
    Filter :
     
     
    Job IDJobDescriptionBroadcastCountCustomerLatitudeLongitudeCityLocationConsumerNameStart Date TimeCreation Date
    {{jobs.LinkId || jobs.TicketId}}{{jobs.JobDescription}}{{jobs.BroadcastCount}}{{jobs.CustomerName}}{{jobs.Latitude}}{{jobs.Longitude}}{{jobs.City}}{{jobs.Circle}}{{jobs.ConsumerName}}{{jobs.StartTime | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}{{jobs.CreationDate | date: \\'dd/MMM/yyyy\\'}}
    Job IDJobDescriptionCustomerJobLatitudeJobLongitudeLocationSentReceivedConsumerNameStart Date TimeJob Date
    {{jobs.LinkId || jobs.JobId}}{{jobs.JobDescription}}{{jobs.CustomerName}}{{jobs.JobLatitude}}{{jobs.JobLongitude}}{{jobs.Location}}{{jobs.BIDSend}}{{jobs.BIDReceived}}{{jobs.ConsumerName}}{{jobs.StartDateTime | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}{{jobs.JobBroadcastDateTime}}
    Job IDJobDescriptionCustomerJobLatitudeJobLongitudeLocationSentReceivedConsumerNameStart Date TimeJob Date
    {{jobs.LinkId || jobs.JobId}}{{jobs.JobDescription}}{{jobs.CustomerName}}{{jobs.JobLatitude}}{{jobs.JobLongitude}}{{jobs.Location}}{{jobs.BIDSend}}{{jobs.BIDReceived}}{{jobs.ConsumerName}}{{jobs.StartDateTime | date: \\'dd/MMM/yyyy h:mm:ss a\\'}}{{jobs.JobBroadcastDateTime}}
    \");\n$templateCache.put(\"app/SchedulerRule/SchedulerRule.html\",\"

    Scheduler Rules Configuration

    Business Objectives

    Objectives NameDescriptionTarget ValuePriority IndexAction
    {{objectivesdata.Name}}{{objectivesdata.DisplayDescription}}
    0 && distance <= 100\\\">

    You selected a distance range of {{objectivesdata.Description}} km.

    {{objectivesdata.Description}} Rs. {{objectivesdata.Description}} {{objectivesdata.RulePriority}}
    Rules

    Rule NameDescriptionAction
    Mode Of TransporationChoose Mode of Transporation
    Fixed Team capacity is preferred over Vendors or FreelancersSet toggle On to give fixed team preference over vendors or freelancers
    Preferred Network
    Compiliance Check
    Route Optimization
    PSS Criteria\\'s
    Priority based on Criticality
    SLA Check
    Appointment Met Check
    Distance Between Jobs
    0 && DistanceBetween <= 50\\\">

    distance between {{DistanceBetween}} km.

    Scheduler Frequency

    Job Schedule Frequency
    Business Hours to
    Jeopardy
    Delayed StartReal Time
    Delayed ClosureReal Time
    Cancellations and Pull backsReal Time
    Hold or Customers RejectionsReal Time
    Skill

    If Assigned to First Priority and Not Served in hours, then assign to Second Priority.
    SKILL
    \");\n$templateCache.put(\"app/ScheduledReport/ScheduledReport.html\",\"

    Scheduled Reports

    ActionSchedule nameReport nameSchedule frequencyReport data rangeStart timeEnd timeStatus
    {{s.uniqueId}}{{s.reportName}}{{s.cronType}}{{report.scheduleModel.monthly}}{{s.displayDuration}}{{s.startTimeIns}}{{s.endTimeIns}}{{s.status?\\\"Enabled\\\":\\\"Disabled\\\"}}
    \");\n$templateCache.put(\"app/SchedulingRules/SchedulingRules.html\",\"
    1. Home
    2. Scheduling Rules
    \");\n$templateCache.put(\"app/SearchUserInfo/SearchUserInfo.html\",\"
    1. Home
    2. Search User Information
    Please enter user mobile number or user id
    User NamePhone NumberSkillsLocation
    {{searchUserInfoCtrl.SearchUserInfoList.UserName}} {{searchUserInfoCtrl.SearchUserInfoList.MobileNumber}}{{location}}

    ×
    \\\"image\\\" \\\"image\\\"

    {{searchUserInfoCtrl.TicketSelectedForAssistedSuggestion.UserId}}

    {{searchUserInfoCtrl.TicketSelectedForAssistedSuggestion.PersonalEmail}}

    , , , -

    {{searchUserInfoCtrl.TicketSelectedForAssistedSuggestion.LastFollowUpReason}} ({{searchUserInfoCtrl.TicketSelectedForAssistedSuggestion.LastFollowUpRemark}})

    Last follow up on {{searchUserInfoCtrl.TicketSelectedForAssistedSuggestion.LastFollowUpDateTimeObj | date:\\'dd/MMM/yyyy h:mm:ss a\\'}}

    by \\\"{{searchUserInfoCtrl.TicketSelectedForAssistedSuggestion.LastFollowUpTakenBy}}\\\"

    Skills
    {{skills.Skill}}
    Work Area
    {{workArea}}

    TodayJobs

    Total Bids

    Acceptance (%)

    Rejection (%)

    Tools
    {{tools}}


    • Broadcast
    • Assigned
    • ANA
    • CCNAB
    • ABR
    • ABD0
    • Completed
    • Approved
    • Rejected
    • Cancelled
    • Total
    Basic Interaction
    Save

    Qualifications

    Skills

    Preferences


      {{searchUserInfoCtrl.jobsStarIndex}} - {{searchUserInfoCtrl.jobsMaxcount}} of {{totalJobs}}
    Job IDJob TypeProjectCustomerLocationTechnician NameFollow Up ReasonCreation DateAssignation DateAppointment DateApproved Date Broadcast Age(dd:hh:mm:ss)Field AgeDistanceStatusSLAStatusTATRating
    \");\n$templateCache.put(\"app/ScreenBuilders/ScreenBuilders.html\",\"
    1. Platform Builders

    New Flow


    Template Builder

    The builder allows users to create customizable templates for job tasks. These templates are used by technicians in the field to complete tickets on mobile devices, ensuring a streamlined and efficient process.

    Event Builder

    This builder allows user to configure the type of notification, define the action that triggers it, and specify the channel (e.g., email, SMS) and audience (e.g., specific users or roles) to receive the notification.

    Schedule Report Builder

    This builder allows users to automate the process of generating reports at specified frequencies. It enables you to set up scheduled reports that run at regular intervals, such as daily, weekly, or monthly, ensuring that critical data is available without the need for manual intervention.

    Approval Flow Builder

    This builder allows users to create an approval flow for any object, such as ticket approval flows, product replacement requests, or gas charging processes. This helps automate the approval process for various records across objects.

    Report-Dashboard Builder

    This builder allows users to create dynamic, interactive dashboards and reports that provide deep insights into business data. You can design custom dashboards with real-time data visualizations, including graphs, charts, and tables, to gain a clear understanding of key performance metrics. This tool allows you to track trends, monitor performance, and make data-driven decisions more effectively.

    \");\n$templateCache.put(\"app/ServiceCenterCreation/ServiceCenterCreation.html\",\"
    1. Home
    2. Service Center Creation/Updation
    User Details
    Please enter first name Your first name is required to be at least 2 characters Your first name cannot be longer than 50 characters Your first name should only contain alphabets with space
    Please enter last name Your last name cannot be longer than 50 characters Your last name should only contain alphabets with space
    = 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\" ng-if=\\\"!SrvcCntr.edit\\\"> = 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\" ng-if=\\\"SrvcCntr.edit\\\" readonly=\\\"\\\">
    Please enter valid Mobile number Please enter mobile number Please enter 10 digit number
    Please enter Shop name
    Please select brand
    Please select skills
    Please enter address linePlease enter only alphanumeric with space, hyphen, slace, comma
    Please select state
    Please select city
    =48 && event.charCode <=57\\\">
    Please enter pincode Please enter 6 digit number
    \");\n$templateCache.put(\"app/ServiceCenterList/ServiceCenterList.html\",\"
    1. Home
    2. Service Center

    No Service Center Found

    Service Center Details
     Showing {{Servicelistlistctrl.pageindexCount}} to {{Servicelistlistctrl.ticketListLength}} of {{totalTableTickets}} entries

    ActionUser IDService Center NameServing LocationContact InfoAddressPasswordRSMBSMBranch CodeRegionSub-RegionBrandsCategoryProductsSkillsCreated OnActivate/Deactivate
    {{servicecenterData.CustomUserId}}{{servicecenterData.CustomUserId}}{{servicecenterData.ServiceCenterName}}
    {{servicecenterData.ServiceAreaList.toString()}}
    {{servicecenterData.ContactInfo}}{{servicecenterData.Address}}{{servicecenterData.Password}}{{servicecenterData.RSMName}}{{servicecenterData.BSMName}}
    {{servicecenterData.BranchCode}}
    {{servicecenterData.strListRegion.toString()}}
    {{servicecenterData.strListSubRegion.toString()}}
    {{servicecenterData.Brands}}{{servicecenterData.ServiceCentreType}}
    {{servicecenterData.ListProducts.toString()}}
    {{servicecenterData.Products.toString()}}
    {{servicecenterData.CreatedOn | date : \\'dd/MM/yyyy hh:mm a\\'}}
    \");\n$templateCache.put(\"app/ServiceCenterTicketList/ServiceCenterTicketList.html\",\"
    1. Home
    2. Jobs
    {{servicecenterticketcntrl.TicketDashboarCounts.AssignJobCount}}

    Assigned

    {{servicecenterticketcntrl.TicketDashboarCounts.BroadcastJobCount}}

    Broadcasted

    {{servicecenterticketcntrl.TicketDashboarCounts.AppointmentNotBooked}}

    Appointment Not Booked

    {{servicecenterticketcntrl.TicketDashboarCounts.NotAssingedToTeam}}

    Not Assigned to Team

    {{servicecenterticketcntrl.TicketDashboarCounts.PartAssignedToTeamCount}}

    Part Allocated

    {{servicecenterticketcntrl.TicketDashboarCounts.PartOrderedCount}}

    Part Requested

    {{servicecenterticketcntrl.TicketDashboarCounts.PartReceivedCount}}

    Part Received

    {{servicecenterticketcntrl.TicketDashboarCounts.CancelJobCount}}

    Cancelled

    {{servicecenterticketcntrl.TicketDashboarCounts.CancelCustomerVerified}}

    Cancelled Cust Verified

    {{servicecenterticketcntrl.TicketDashboarCounts.TBCCount}}

    TBC

    {{servicecenterticketcntrl.TicketDashboarCounts.ProductReplacementCount}}

    Product Replacement

    {{servicecenterticketcntrl.TicketDashboarCounts.GasChargingRequestCount}}

    Gas Charging Request

    {{servicecenterticketcntrl.TicketDashboarCounts.CompleteJobCount}}

    Completed

    {{servicecenterticketcntrl.TicketDashboarCounts.ApprovedJobCount}}

    Approved

    {{servicecenterticketcntrl.TicketDashboarCounts.TotalJobCount}}

    Total

    Call IDActionJob DescriptionJob TypeCityPincodeProductWarranty StatusDistance (KM)Technician NameAssign DateStatusSub StatusPart Order IDPart Order StatusAppointment DateActual Start DateCompletion DateAppointment TATCompletion TATConsumer NameConsumer ContactAddress1Address2Approved DateCancelled ByCancellation ReasonsCustomer RatingReplacement IDReplacement StatusGasCharging Request IDGasCharging Request Status
    {{ticket.WarrantyStatus}}{{ticket.Distance}}{{ticket.UserName}}{{ticket.PartOrderId}}{{ticket.PlannedStartDate | date:\\'dd/MM/yyyy hh:mm a\\'}}{{ticket.ActualStartTime | date:\\'dd/MM/yyyy hh:mm a\\'}}{{ticket.CompletionDate | date:\\'dd/MM/yyyy hh:mm a\\'}}{{ticket.dAppointmentTAT}}{{ticket.dCompletionTAT}}{{ticket.CustomerRating}}
     {{servicecenterticketcntrl.pageindexCount}} - {{servicecenterticketcntrl.ticketListLength}} of {{totalTableTickets}}
    \");\n$templateCache.put(\"app/ServiceCenter_Form creation/ServiceCenter_Form creation.html\",\"
    1. Home
    2. Team
    3. Create Service Center
    Roles Information
    Please select Reporting To
    {{chip}}
    Please enter at least one location
    Please enter User id User ID must be alphanumeric and up to 12 characters
    No sub-regions are available for the selected user.
    0\\\">
    Please select sub-region
    Please enter service center name Your first name should only contain alphabets with space
    .
    Please select brand
    User Details
    Please enter first name Your first name is required to be at least 2 characters Your first name cannot be longer than 50 characters Your first name should only contain alphabets with space
    Please enter last name Your last name cannot be longer than 50 characters Your last name should only contain alphabets with space

    Please select creation date

    Please select valid creation date

    = 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\">
    Please enter valid Mobile number Please enter mobile number
    = 48 && event.charCode <= 57\\\" maxlength=\\\"10\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\">
    Please enter valid number
    Please enter valid email id Please enter email id

    {{servicecntrl.fileUploadError}}
    Please enter address line 1 Your address line 1 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please enter address line 2 Your address line 2 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please select state
    Please select city
    Please select country
    = 48 && event.charCode <= 57\\\">
    Please enter a pincode Please enter a valid 6-digit number
    Please select option for present address
    Please enter address line 1 Your address line 1 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please enter address line 2 Your address line 2 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please select state
    Please select city
    =48 && event.charCode <=57\\\">
    Please enter pincode Please enter 6 digit number
    Background Details
    Please enter MSL
    Please enter security amount
    = 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{12}$/\\\" maxlength=\\\"12\\\" ng-required=\\\"!(servicecntrl.AccountId == \\'380\\' || servicecntrl.AccountId == \\'383\\' || servicecntrl.AccountId == \\'390\\')\\\" required=\\\"\\\">
    Please enter aadharcard no. Please enter a 12-digit number
    Please Upload Adhaar
    Please enter PAN No. Please enter a valid PAN No. (e.g., ABCTY1234D)
    Please Upload PAN
    Please enter GSTIN Please enter a valid GSTIN (e.g., 22AAAAA0000A1Z5)
    Please Upload GST Document
    Please enter a valid TAN No. (e.g., ABCD12345X)
    Please upload TAN document.
    Please upload Application Form
    Please upload Payout structure Form
    Background Details
    = 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{12}$/\\\" maxlength=\\\"12\\\">
    Please enter GSTIN Please enter a valid GSTIN (e.g., 22AAAAA0000A1Z5)
    Please enter a valid TAN No. (e.g., ABCD12345X)
    Please upload TAN document.
    \");\n$templateCache.put(\"app/Servicefomedit/Servicefomedit.html\",\"
    1. Home
    2. Service Center Creation
    User Details
    Please enter first name Your first name is required to be at least 2 characters Your first name cannot be longer than 50 characters Your first name should only contain alphabets with space
    Please enter last name Your last name cannot be longer than 50 characters Your last name should only contain alphabets with space
    = 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\">
    Please enter valid Mobile number Please enter mobile number
    Please enter address line 1 Your address line 1 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please enter address line 2 Your address line 2 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please select state
    Please select city
    =48 && event.charCode <=57\\\">
    Please enter pincode Please enter 6 digit number
    \");\n$templateCache.put(\"app/ShiftLeaveManagement/ShiftLeave.html\",\"
    1. Home
    2. Leave Requests
    Leave IDActionUser IdUser NameStatusApply DateLeave DateReason For LeaveApprove DateReason For ApproveReject DateReason For RejectCancel DateReason For Cancel
    {{leaves.LeaveId}} {{leaves.UserId}}{{leaves.UserName}}{{leaves.Status}}{{leaves.ApplyDate | date:\\'dd/MMM/yyyy HH:mm:ss\\'}}{{leaves.LeaveDate | date:\\'dd/MMM/yyyy\\'}}{{leaves.ReasonForLeave}}{{leaves.ApproveDate | date:\\'dd/MMM/yyyy HH:mm:ss\\'}}{{leaves.ReasonForApprove}}{{leaves.RejectDate | date:\\'dd/MMM/yyyy HH:mm:ss\\'}}{{leaves.ReasonForReject}}{{leaves.CancelDate | date:\\'dd/MMM/yyyy HH:mm:ss\\'}}{{leaves.ReasonForCancel}}
    \");\n$templateCache.put(\"app/ShiftManagement/shift_management.html\",\"

    Shift Configuration

    Step 1 : Department
    Step 2 : Location
    Step 3 : Location & Department Mapping
    Step 4 : Add Shifts
    Shift IdActionShift NameLocationDepartmentStart TimeEnd TimeIs Shift Margin EnabledMinutes Before Shift StartMinutes After Shift EndIs OverTime Allowance EnabledOverTime Hourly RateIs LunchBreak EnableLunch Break Duration
    {{shifts.MasterShiftId}}{{shifts.ShiftName}}{{shifts.LocationName}}{{shifts.DepartmentName}}{{shifts.ShiftStartTime}}{{shifts.ShiftEndTime}}Yes No{{shifts.MinutesBeforeShiftStart}}{{shifts.MinutesAfterShiftEnd}}Yes No{{shifts.OverTimeHourlyRate}}Yes No{{shifts.LunchBreakDuration}}
    Department IdDepartment NameDescriptionAction
    {{department.DepartmentId}}{{department.DepartmentName}} {{department.DepartmentDescription}}
    Location IdCountryStateCityAddressAction
    {{location.LocationId}}South Africa{{location.State}}{{location.City}}{{location.LocationName}}
    LocationDepartmentAction
    {{locationDep.LocationName}}{{departments.DepartmentName}}
    \");\n$templateCache.put(\"app/Signup/Signup.html\",\"

    Sign Up

    Already have an account? Login

    Please enter first name
    Please enter last name
    Please enter email id
    Please enter phone no.
    Please enter company name
    Please select skills
    Please enter password Password must consists of at least 8 characters and not more than 12 characters and allowed spacial characters(@*#%?)

    \\\"Take Control of Field Operations - Join Our MMF FSM Solution!\\\".

    \\\"Illustration
    \");\n$templateCache.put(\"app/SlaAlert/SlaAlert.html\",\"
    1. Home
    2. SLA Alert
      Create an Alert
    Create A Permission
    Please select role
    Please select time

    Please select channel



    Please select role
    Please select channel



    Please select time
    Please select time
    Please select role
    Please select time
    Please select channel
    Email Preview


    Please select role
    Please select channel



    Please select time
    Please select time
    Please enter valid phone no.
    {{userList.PersonalEmail}}{{userList.ContactNumber}}
    Please enter message
    Please enter message.
    \");\n$templateCache.put(\"app/SlaAlert/SlaAlertNew.html\",\"
    1. Home
    2. SLA Alert
      Create an Alert
    Create A Permission
    Please select role
    Please select role
    Please select role
    Please select role
    Please select time

    Please select channel


    Please enter valid phone no.
    {{userList.PersonalEmail}}{{userList.ContactNumber}}
    Please enter message
    Please enter message.
    Please select role
    Please select channel



    Please select time
    Please select time
    Please select role
    Please select time
    Please select channel
    Email Preview


    Please select role
    Please select channel



    Please select time
    Please select time
    \");\n$templateCache.put(\"app/SlaObjectiveDetails/SlaObjectiveDetails.html\",\"
    1. Home
    2. SLA Objective Detail
    SLA Objective Detail

    First response

    Sla_Ticket

    {{slaobjectiveList.SLAProject}}

    {{slaobjectiveList.SLACustomer}}

    Default

    2023-03-21

    2024-03-20

    Milestone
    NameDescriptionCriteriaMinutes To Complete Milestone
    {{milestone.name}}{{milestone.descrpation}}{{milestone.criteria}}{{milestone.minutes}}
    \");\n$templateCache.put(\"app/StaffShiftCampaign/StaffShiftCampaign.html\",\"
    • Team List
    • Campaign List
    User IDNameContact No.EmailAddressStateCityPincodeExperienceRatingVendor IDVendor Name
    {{userList.UserId}}{{userList.FirstName}} {{userList.LastName}}{{userList.ContactNumber}}{{userList.PersonalEmail}}{{userList.CurrentAdd1}}, {{userList.CurrentAdd2}}{{userList.CurrentState}}{{userList.CurrentCity}}{{userList.CurrentPinCode}}{{userList.Experience}}{{userList.Ratings}}{{userList.VendorId}}{{userList.VendorName}}
    Campaign IDCampaign NameCampaign DescriptionCityStatePincodeRequired Staff CountAccepted User CountCampaign StatusShift Start DateShift End DateReporting Start TimeReporting End TimeRM IDRM NameSupervisor ID
    0\\\" class=\\\"text-navy clickable\\\" ng-click=\\\"StaffShiftCntrl.getAcceptHistory(campaignList.CampaignId,campaignList.CampaignName);\\\">{{campaignList.CampaignId}}{{campaignList.CampaignId}}{{campaignList.CampaignName}}{{campaignList.CampaignDescription}}{{campaignList.City}}{{campaignList.State}}{{campaignList.PinCode}}{{campaignList.RequiredStaffCount}} 0\\\" class=\\\"text-navy clickable\\\" ng-click=\\\"StaffShiftCntrl.AttendenceSidePanel(campaignList);\\\">{{campaignList.AcceptedUserCount}}{{campaignList.AcceptedUserCount}}{{campaignList.IsCampaignOpen ? \\'Open\\' : \\'Closed\\'}}{{campaignList.ShiftStartTime}}{{campaignList.ShiftEndTime}}{{campaignList.ReportingStartTime}}{{campaignList.ReportingEndTime}}{{campaignList.CreatedBy}}{{campaignList.CreatedByName}}{{campaignList.SupervisorId}}
     Showing {{StaffShiftCntrl.pageindexCount}} to {{StaffShiftCntrl.shiftsListLength}} of {{totalTableShifts}} entries

    Campaign ID : {{StaffShiftCntrl.CountDetails}}

    {{StaffShiftCntrl.CampaignCompData.IsCampaignOpen ? \\'Open\\' : \\'Closed\\'}}

    Campaign Invigilators List

    No User Found

    {{StaffShiftCntrl.CampaignCompData.AcceptedUserCount}}/{{StaffShiftCntrl.CampaignCompData.RequiredStaffCount}}

    \\\"image\\\"

    User ID: {{user.UserId}}

    Name: {{user.UserName}}

    Contact No.:{{user.ContactNumber}}

    Location: {{user.LocationName}}

    Vendor Name: {{user.VendorName}}

    Acceptance Date: {{user.AcceptanceDateTime | date:\\'dd/MM/yy hh:mm a\\'}}

    \");\n$templateCache.put(\"app/SystemConfig/SystemConfig.html\",\"

    Account Settings

    Select Account
    Account Config
    Projects Config
    Templates Config
    Compliance Config
    Assignation Rules Config
    Bonuses & Penalties Config
    Notification Config
    Price Config
    SLA / TAT Config
    Invoice Config
    Reports Config
    Dashboard Config
    Please Select Account For Configuration
    {{systemconfig.headingName}}
    Edit
    Attribute NameDescriptionCurrent ValueUpdate Value
    {{config.ItemDisplayName }}{{config.ItemDescription }}Enabled Disabled {{config.ItemValue}}
    Systems Role
    Skills Certificate
    Assets
    Tools
    Talent Pool
    Bonus
    Rule IDRule NameStageScenarioTriggerGradeAmountAction
    {{bonus.RuleId}}{{bonus.RuleName}}{{bonus.Stage}}{{bonus.Scenario}}{{bonus.Trigger}}{{bonus.Grade}}{{bonus.Amount}}
    Penalties
    Rule IDRule NameStageScenarioTriggerGradeAmountAction
    {{panelty.RuleId}}{{panelty.RuleName}}{{panelty.Stage}}{{panelty.Scenario}}{{panelty.Trigger}}{{panelty.Grade}}{{panelty.Amount}}

    Alerts allow you to automatically send email or SMS notifications when certain events occur. For example, mail the dispatcher if a job is declined, mail the accounts dept when a job is completed, SMS the warehouse manager when an inbound delivery has been picked up, etc…


    Alert NameAlert TypeAction
    {{config.AlertId}}{{config.AlertType | uppercase}} 
    1. Transactional Alert
      Create an Alert
    Create A Permission
    Please select Role
    Please select Channel




    {{userList.PersonalEmail}}{{userList.ContactNumber}}
    Please enter message.

    1. Home
    2. Escalation Alert
      Create an Alert
    Create A Permission
    Email Preview



    Aditya.kaushik28@gmail.com898767656540 min
    Aditya.kaushik28@gmail.com898767656540 min
    Aditya.kaushik28@gmail.com898767656540 min
    Aditya.kaushik28@gmail.com898767656540 min
    Please enter message.
    \");\n$templateCache.put(\"app/TabAdvancedDashboard/TabAdvancedDashboard.html\",\"
    {{rollup}}
    {{chart.ChartTitle}}

    {{tabadvancedashboard.metricsCharts[chart.ChartId].value&&tabadvancedashboard.metricsCharts[chart.ChartId].value.length>0?(tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].strValue): tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].Value):\\\"NA\\\"}} {{tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].AcheivedPercentage}} % {{tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].AcheivedPercentage}} %

    {{tabadvancedashboard.metricsCharts[chart.ChartId].value&&tabadvancedashboard.metricsCharts[chart.ChartId].value.length>0?(tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].strValue): tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].Value):\\\"NA\\\"}} {{tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].AcheivedPercentage}} % {{tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].AcheivedPercentage}} %

    {{tabadvancedashboard.metricsCharts[chart.ChartId].value&&tabadvancedashboard.metricsCharts[chart.ChartId].value.length>0?(tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].strValue): tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].Value):\\\"NA\\\"}} {{tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].AcheivedPercentage}} % {{tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].AcheivedPercentage}} %

    {{tabadvancedashboard.DateRangeSelectedKey}} : {{tabadvancedashboard.metricsCharts[chart.ChartId].value&&tabadvancedashboard.metricsCharts[chart.ChartId].value.length>0?(tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].strTargetValue):tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].TargetValue):\\\"NA\\\"}}

    {{tabadvancedashboard.DateRangeSelectedKey}} : {{tabadvancedashboard.metricsCharts[chart.ChartId].value&&tabadvancedashboard.metricsCharts[chart.ChartId].value.length>0?(tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].strValue):tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].Value):\\\"NA\\\"}}

    {{rollup}} : {{tabadvancedashboard.metricsCharts[chart.ChartId].value&&tabadvancedashboard.metricsCharts[chart.ChartId].value.length>0?(tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].ValueType == \\'INR\\'?(tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].strTargetValue):tabadvancedashboard.metricsCharts[chart.ChartId].value[$index].Value):\\\"NA\\\"}}

    {{rollup}} {{tabadvancedashboard.ActualSelectedKey}}
    {{chart.ChartTitle}}
    Target : {{(tabadvancedashboard.gaugeCharts[chart.ChartId].value[0].ValueType == \\'INR\\'?(tabadvancedashboard.gaugeCharts[chart.ChartId].value[0].strTargetValue):tabadvancedashboard.gaugeCharts[chart.ChartId].value[0].TargetValue)}}
    Remaining : {{(tabadvancedashboard.gaugeCharts[chart.ChartId].value[0].ValueType == \\'INR\\'?(tabadvancedashboard.gaugeCharts[chart.ChartId].value[0].strRemainingValue):tabadvancedashboard.gaugeCharts[chart.ChartId].value[0].RemainingValue)}}
    Exceed : {{(tabadvancedashboard.gaugeCharts[chart.ChartId].value[0].ValueType == \\'INR\\'?(tabadvancedashboard.gaugeCharts[chart.ChartId].value[0].strRemainingValue):tabadvancedashboard.gaugeCharts[chart.ChartId].value[0].RemainingValue)}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    {{chart.ChartTitle}}
    \");\n$templateCache.put(\"app/Talent Register/TalentRegister.html\",\"

    Crowdsourcing Platform

    Service Marketplace to connect Field Engineers with Businesses.

    Sign UP

    Please enter first name Your first name cannot be longer than 20 characters Your first name should only contain alphabets
    Please enter last name Your last name cannot be longer than 20 characters Your last name should only contain alphabets
    = 48 && event.charCode <= 57\\\" class=\\\"form-control refrelinput inputheight\\\" ng-pattern=\\\"/^(?:(?:\\\\+|0{0,2})91(\\\\s*[\\\\-]\\\\s*)?|[0]?)?[789]\\\\d{9}$/\\\" placeholder=\\\"Mobile Number*\\\" required=\\\"\\\" ng-model=\\\"register.phone\\\" name=\\\"phone\\\">
    Please enter 10 digit phone number Please enter valid phone number

    View our Terms and Conditions
    Already Registered? Sign In

    Copyright MyMobiforce © 2025

    \");\n$templateCache.put(\"app/TaskPriorityOps/TaskPriorityOps.html\",\"
    1. Home
    2. Task Priority
    Task Type

    Broadcasted 20

    Take Appointment 10

    Appointment Breached 5

    Saved Filter

    Breached in last 10 days

    Appointment not taken in 2 days

    broadcasted since 10 hrs

    8

    Total Tasks

    5

    Total Open Tasks

    3

    Total Closed Tasks

    Task IDUser IDUser NameTask TypePriorityJobs Count
    TD00000001FV0000000000899Vinod KumarBroadcastedSevere23
    Ticket IdJob TypeProject NameProject IdStatusActionStatePincodeCityCustomer Name
    T640000000309Telecom_Technical_Survey_ServicesAirtel PM ActivityP0000000033Assigned
    MADHYA PRADESHSATNA223444Pranav
    10\\\"> {{Tspcntrl.pageindexCount}} - {{Tspcntrl.ticketListLength}} of {{totalTableTickets}}
    TD0000002F00000055316Sanjay PatelAppointmentMedium17
    Ticket IdJob TypeProject NameProject IdStatusActionStateCityPincodeCustomer Name
    T350000040406Telecom_Technical_Survey_ServicesAirtel PM ActivityP0000000033
    WEST BENGALGARTALI JALPES223454Pranav
    10\\\"> {{Tspcntrl.pageindexCount}} - {{Tspcntrl.ticketListLength}} of {{totalTableTickets}}
    TID0000003F00000028549Vinod KumarBroadcastedHigh12
    Ticket IdJob TypeProject NameProject IdStatusActionStateCityPincodeCustomer Name
    T350000040217Telecom_Technical_Survey_ServicesAirtel PM ActivityP0000000033
    WEST BENGALKALIYAGANJ226787Pranav
    10\\\"> {{Tspcntrl.pageindexCount}} - {{Tspcntrl.ticketListLength}} of {{totalTableTickets}}
    TID0000004FV0000000003867Vinod KumarBroadcastedLow5
    Ticket IdJob TypeProject NameProject IdStatusActionStateCityPincodeCustomer Name
    T350000039939Telecom_Technical_Survey_ServicesAirtel PM ActivityP0000000033
    WEST BENGALSILIGURI223433Pranav
    10\\\"> {{Tspcntrl.pageindexCount}} - {{Tspcntrl.ticketListLength}} of {{totalTableTickets}}
    \");\n$templateCache.put(\"app/Team Form Creation/Team_creation_form.html\",\"
    1. Home
    2. Team
    3. Create Team
    Roles Information
    Please select Role
    Please select ReportingTo
    {{chip}}
    .
    Please select warehouse to allocate
    .
    = 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{1,2}$/\\\">
    Please enter a valid number of years Please enter years of experience
    = 48 && event.charCode <= 53\\\" ng-pattern=\\\"/^[0-5]$/\\\">
    Please enter a valid rating Please enter a rating
    = 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{12}$/\\\">
    Please enter a valid 12-digit Aadhaar number Please enter Aadhaar number
    Work Area
    Account Name
    Account Id
    States
    City
    Pin Code
    Status
    Action
    {{AccountDetail.AccountName}}

    {{createUser.SelectedAccount.AccountName}}

    {{AccountDetail.AccountId}}

    {{createUser.SelectedAccount.AccountId}}

    {{AccountDetail.State}}
    {{AccountDetail.City}}
    {{locations}}
    {{AccountDetail.Status}}

    {{createUser.SelectedAccount.AccountId}}

    User Details
    Please enter first name Your first name is required to be at least 2 characters Your first name cannot be longer than 50 characters Your first name should only contain alphabets with space
    Please enter last name Your last name cannot be longer than 50 characters Your last name should only contain alphabets with space
    Please select your gender

    Please enter date of birth

    Please select valid date of birth

    Date of birth should be less than {{createUser.maxDOBStr}}

    Please enter valid email id Please enter email id
    = 48 && event.charCode <= 57\\\" maxlength=\\\"10\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\">
    Please enter valid number
    = 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^[0-9]{10}$/\\\">
    Please enter valid Mobile number Please enter mobile number

    {{createUser.fileUploadError}}
    Please enter address line 1 Your address line 1 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please enter address line 2 Your address line 2 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please select state
    Please select city
    Please select country
    =48 && event.charCode <=57\\\">
    Please enter pincode Please enter 6 digit number
    Please select option for present address
    Please enter address line 1 Your address line 1 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please enter address line 2 Your address line 2 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please select state
    Please select city
    =48 && event.charCode <=57\\\">
    Please enter pincode Please enter 6 digit number
    \");\n$templateCache.put(\"app/Team Profile/Team_profile.html\",\"
    1. Home
    2. Team Profile
    \\\"profile\\\"

    {{teamProfile.customerInfo.PersonalEmail}}

    Date of joining



    ,

    \\\"image\\\" \\\"image\\\"

    Total JobsAssigned JobsApproved Jobs
    Completed JobsRejected JobsCancelled Jobs
    Skills
    {{skill}}
    Work Area
    {{workArea}}
    Assets
    Tools
    {{tools}}

    Job Reviews

     

    {{teamProfile.averageRate}} out of 5 stars

    Basic Interaction
    Save

    Qualifications

    Skills

    Preferences

    Training Assessment
    Save

    Trainings Completed

    S.No.Certificate NameCertificate NoCertificateIssueDateCertificateExpiryDateCertificateAction
    {{$index+1}}.{{doc.CertificateName}}{{doc.CertificateNo}} {{doc.CertificateIssueDate}}
    {{doc.CertificateExpiryDate}}
    \\\"image-1\\\" \\\"image-1\\\" \\\"image-1\\\" Upload File
    {{teamProfile.error[doc.DocumentType]}}
    Background Verification Documents
    Save
    S.No.Document TypeDocument NameFile NameAction
    {{$index+1}}.{{doc.DocumentType}}{{doc.DocumentName}}\\\"image-1\\\" \\\"image-1\\\" \\\"image-1\\\" {{doc.DocumentPath}} Upload File
    {{teamProfile.error[doc.DocumentType]}}
    Job IDJob TypeProjectCustomerLocationTechnicianNamePublish DateAssign DateStatusPlannedStartDateActualStartDateSLAStatusTATRating
    \");\n$templateCache.put(\"app/Team card View/Team_view.html\",\"

    Team

    1. Home
    2. Team


    Deactivated
    \\\"image\\\"

    ,


    Total Jobs Assigned Jobs
    Approved Jobs Completed Jobs
    Skills :
    \");\n$templateCache.put(\"app/TeamMemberForCRM/TeamMemberForCRM.html\",\"
    1. Home
    2. Team Members
     Showing {{TeamCRMCntrl.pageindexCount}} to {{TeamCRMCntrl.CRMTeamListLength}} of {{totalCRMteamList}} entries
    UserId NamePhone NumberRoleStateCityRegionSub-RegionPin CodePasswordReporting ToRatingExperniceAdhaar NumberAction
    {{teamMemberlist.UserId}} {{ teamMemberlist.CustomUserId ? teamMemberlist.CustomUserId : teamMemberlist.UserId }} {{ teamMemberlist.CustomUserId ? teamMemberlist.CustomUserId : teamMemberlist.UserId }} {{teamMemberlist.CompanyName}} {{teamMemberlist.FirstName}} {{teamMemberlist.LastName}}{{teamMemberlist.ContactNumber}}{{teamMemberlist.Role}}{{teamMemberlist.CurrentState}}{{teamMemberlist.CurrentCity}}
    {{teamMemberlist.strListRegion.toString()}}
    {{teamMemberlist.strListSubRegion.toString()}}
    {{teamMemberlist.CurrentPinCode}}{{teamMemberlist.Password}}{{teamMemberlist.ReportingToName}}{{teamMemberlist.Rating}}{{teamMemberlist.Expernice}}{{teamMemberlist.AdharNo}}
    {{TeamCRMCntrl.userInfo.FirstName}} {{TeamCRMCntrl.userInfo.LastName}}s
    \\\"image\\\"

    {{TeamCRMCntrl.userInfo.Role}}

    {{TeamCRMCntrl.userInfo.ContactNumber}}

    Current Location
    {{TeamCRMCntrl.userInfo.CurrentAdd1}}
    {{TeamCRMCntrl.userInfo.CurrentAdd2}}
    {{TeamCRMCntrl.userInfo.CurrentCity}}, {{TeamCRMCntrl.userInfo.CurrentState}}
    Activate
    Detach from account

    AccountsState ( City )PinCodes
    {{account.AccountName}} ({{account.AccountId}}){{account.State}} {{account.City}}{{account.PinCode}}
    Total Jobs{{TeamCRMCntrl.userInfo.JobTotal}}Assigned Jobs{{TeamCRMCntrl.userInfo.JobAssigned}}
    Approved Jobs{{TeamCRMCntrl.userInfo.JobApproved}}Completed Jobs{{TeamCRMCntrl.userInfo.JobCompleted}}
    Rejected Jobs{{TeamCRMCntrl.userInfo.JobRejected}}Cancelled Jobs{{TeamCRMCntrl.userInfo.JobCancelled}}

    \");\n$templateCache.put(\"app/TeamMember/TeamMember.html\",\"
    1. Home
    2. Team Members
    {{team.userInfo.FirstName}} {{team.userInfo.LastName}}s
    \\\"image\\\"

    {{team.userInfo.Role}}

    {{team.userInfo.ContactNumber}}

    Current Location
    {{team.userInfo.CurrentAdd1}}
    {{team.userInfo.CurrentAdd2}}
    {{team.userInfo.CurrentCity}}, {{team.userInfo.CurrentState}}
    Activate
    Detach from account

    AccountsState ( City )PinCodes
    {{account.AccountName}} ({{account.AccountId}}){{account.State}} {{account.City}}{{account.PinCode}}
    Total Jobs{{team.userInfo.JobTotal}}Assigned Jobs{{team.userInfo.JobAssigned}}
    Approved Jobs{{team.userInfo.JobApproved}}Completed Jobs{{team.userInfo.JobCompleted}}
    Rejected Jobs{{team.userInfo.JobRejected}}Cancelled Jobs{{team.userInfo.JobCancelled}}

    \");\n$templateCache.put(\"app/TeamMyStock/TeamMyStock.html\",\"
    1. Home
    2. My Stock
     {{mystockcntrl.dpageindexCount}} - {{mystockcntrl.myStockListLength}} of {{totalInventory}}
    Technician IDTechnician NamePart IDBrandPart GroupPart Sub-GroupPart NamePart CodeActionValue of Inventory (₹)Available Stock
    {{inventorystock.PartOwnerId}}{{inventorystock.PartOwnerName}}{{inventorystock.strMMFPartId}}{{inventorystock.strPartBrand}}{{inventorystock.strPartCategoryGroup}}{{partsubgroup}}{{ inventorystock.strPartName}}{{ inventorystock.strSKUId}}{{ inventorystock.dValueOfInventroy}}
     {{mystockcntrl.countdpageindexCount}} - {{mystockcntrl.myStockListLength}} of {{totalInventory}}
    Part IDBrandPart GroupPart Sub-groupPart NamePart CodePart TypeActionCurrent StockGood StockDead StockRefundable StockNon-Refundable StockValue of Inventory (₹)OwnerIdOwnerName
    {{inventorystock.strMMFPartId}}{{inventorystock.strPartBrand}}{{inventorystock.strPartCategoryGroup}}{{partsubgroup}}{{ inventorystock.strPartName}}{{ inventorystock.strSKUId}}{{ inventorystock.PartType}} {{ inventorystock.dValueOfInventroy}}{{ inventorystock.PartOwnerId}}{{ inventorystock.PartOwnerName}}
     {{mystockcntrl.dpageindexCount}} - {{mystockcntrl.myStockListLength}} of {{totalInventory}}
    Part IDBrandPart GroupPart Sub-GroupPart NamePart CodeActionValue of Inventory (₹)Dead StockRefundable StockNon-Refundable Stock
    {{inventorystock.strMMFPartId}}{{inventorystock.strPartBrand}}{{inventorystock.strPartCategoryGroup}}{{partsubgroup}}{{inventorystock.strPartName}}{{ inventorystock.strSKUId}}{{ inventorystock.dValueOfInventroy}}{{inventorystock.nTotalDeadStock}}

    {{mystockcntrl.CountDetails.LineItemDescription}} ( {{ mystockcntrl.CountDetails.strMMFPartId}} )

    All Team List

    \\\"image\\\" \\\"image\\\"

    User Name: {{user.UserName}}

    User Id: {{user.UserId}}

    Role:{{user.Role}}

    Current Stock: {{user.StockCount}}

    Hardware Tracking

    \\\"image\\\"
    Part Name : {{mystockcntrl.TrackDetails. ItemName}}
    Part Code : {{mystockcntrl.TrackDetails. SKUId}}
    Order Status: {{mystockcntrl.TrackDetails.OrderStatus}}
    Tracking# - {{mystockcntrl.TrackingDetails.tracking_number}}
    • {{orderStatus.date | date: \\'dd/MMM/yyyy\\'}}

      {{orderStatus.time |date: \\'h:mm a\\'}}
    • {{orderStatus.notes}} Delivered

    Part Details

    Part ID:{{mystockcntrl.PartDetails.strMMFPartId}}
    Part Name:{{mystockcntrl.PartDetails.strPartName}}
    Part Code:{{mystockcntrl.PartDetails.strSKUId}}
    BrandName :{{mystockcntrl.PartDetails.strPartBrand}}
    Unit :{{mystockcntrl.PartDetails.strPartUnit}}
    Service Center Price (₹):{{mystockcntrl.PartDetails.dPartDiscountedPrice}}

    About

    • {{description}}
    \");\n$templateCache.put(\"app/TeamPartRequest/TeamPartRequest.html\",\"
    1. Home
    2. Inventory Requests List
    • Pending
    • Fulfilled
    • Rejected
     {{requestcntrl.fpageindexCount}} - {{requestcntrl.financeListLength}} of {{totalFinList}}
    Call IDOrder IDBrandConsumer ProductConsumer NameSkillAging (Days)Item QuantityOrder QuantityOrder Amount (₹)Order StatusTechnician NameAction
    {{ticketorderlist.OrderId}}{{ticketorderlist.Brand}}{{ticketorderlist.Product}}{{ticketorderlist.ConsumerName}}{{ticketorderlist.skill}}{{ ticketorderlist.Aging}}{{ticketorderlist.ItemQuantity}}{{ticketorderlist.Quantity}}{{ticketorderlist.OrderAmount}}{{ticketorderlist.TechnicianName}}
    Part IDPart ImageBrandPart GroupPart NamePart CodePart DescriptionItem QuantityPrice Per Unit (₹)Approval StatusAction
    {{order.ZOHOItemId}}\\\"image-1\\\"{{order.Brand}}{{order.ItemGroup}}{{order.LineItemDescription}}{{order.LineItemCode}}{{order.LineItemDescription | limitTo:40}}...{{order.LineItemQuantity}}{{order.dLineItemWinPrice}}{{order.BackendApprovalStatus}}

    {{requestcntrl.CountDetails.LineItemDescription}} ( {{ requestcntrl.CountDetails.strMMFPartId}} )

    All Team List

    \\\"image\\\"

    User Name: {{user.UserName}}

    User Id: {{user.UserId}}

    Role:{{user.Role}}

    Current Stock: {{user.StockCount}}

    Hardware Tracking

    \\\"image\\\"
    Part Name : {{requestcntrl.TrackDetails. ItemName}}
    Part Code : {{requestcntrl.TrackDetails. SKUId}}
    Order Status: {{requestcntrl.TrackDetails.OrderStatus}}
    Tracking# - {{requestcntrl.TrackingDetails.tracking_number}}
    • {{orderStatus.date | date: \\'dd/MMM/yyyy\\'}}

      {{orderStatus.time |date: \\'h:mm a\\'}}
    • {{orderStatus.notes}} Delivered

    Part Details

    Part ID:{{requestcntrl.PartDetails.strMMFPartId}}
    Part Name:{{requestcntrl.PartDetails.strPartName}}
    Part Code :{{requestcntrl.PartDetails.strSKUId}}
    BrandName :{{requestcntrl.PartDetails.strPartBrand}}
    Unit :{{requestcntrl.PartDetails.strPartUnit}}
    Service Center Price (₹):{{requestcntrl.PartDetails.dPartDiscountedPrice}}

    About

    • {{description}}
    \");\n$templateCache.put(\"app/Technician360view/Technician360view.html\",\"
    1. Home
    2. Partner Profile
    \\\"profile\\\"
    {{TechnicianView.teamdata.userProfile.ServiceCentreName}}
    {{TechnicianView.teamdata.userProfile.FirstName}} {{TechnicianView.teamdata.userProfile.LastName}}

    {{ TechnicianView.teamdata.userProfile.CommittmentStatus }}

    Commitment Plan : {{ TechnicianView.teamdata.userProfile.UserCommitmentPlan}}

    No. of Commitment Plan : {{ TechnicianView.teamdata.userProfile.NoOfCommitmentPlan}}

    Amount Of Pack : {{ TechnicianView.teamdata.userProfile.AmountOfPack}}

    Pack Expiry Date : {{ TechnicianView.teamdata.userProfile.PackExpiryDate | date : \\'dd/MMM/yy\\'}}

    Pack Status : {{ TechnicianView.teamdata.userProfile.PackStatus}}

    {{TechnicianView.teamdata.userProfile.Ratings.UserId}}

    ({{TechnicianView.teamdata.userProfile.Role}})

    {{TechnicianView.teamdata.userProfile.Address}}
    {{TechnicianView.TechnicianRating}}
    Member Since {{TechnicianView.teamdata.userProfile.TechnicianActivationDate| date:\\'MMM dd,yyyy\\'}}
    {{TechnicianView.teamdata.userProfile.LastFollowUpReason}} ({{TechnicianView.teamdata.userProfile.LastFollowUpRemark}})

    Last follow up on {{TechnicianView.teamdata.userProfile.LastFollowUpDateTimeObj | date:\\'dd/MMM/yyyy h:mm:ss a\\'}}

    by \\\"{{TechnicianView.teamdata.userProfile.LastFollowUpTakenBy}}\\\"

    Activated By: {{TechnicianView.teamdata.userProfile.ActivatedByName}}


    Brand Authorised Kenstar Authorised
    • {{service.BrandName}} - {{ service.ProductServing}}

    Skills
    • {{skills}}
    Pincodes In Profile
    • {{Locations}}

    Quick Actions

    Ticket IDTicket TypeAccountLocation
    {{workList.TicketID}}{{workList.TicketType}}{{workList.Account}}{{workList.Location}}
    Ticket IDTicket TypeStateCityPincodeAccount
    {{brodcastList.TicketId}}{{brodcastList.SkillSet}}{{brodcastList.State}}{{brodcastList.City}}{{brodcastList.Pincode}}{{brodcastList.AccountName}}

    Total Earning

    ₹ {{TechnicianView.DashboardData.totalEarnings}}

    Subscription

    ₹ {{TechnicianView.DashboardData.lastPaidAmount}}

    Amount Pay

    ₹ {{TechnicianView.DashboardData.amountDue}}

    To be Paid. {{TechnicianView.DashboardData.AmountDueDate | date:\\'dd/MM/yy \\'}}

    Last Paid

    ₹ {{TechnicianView.DashboardData.lastPaidAmount}}

    Paid.Date {{TechnicianView.DashboardData.lastPaidAmountDateTime | date:\\'dd/MM/yy \\'}}
    Total Amount
    ₹ {{TechnicianView.DashboardData.securityBalance}}
    Bonus
    ₹ {{TechnicianView.DashboardData.bonus}}
    Deducation
    ₹ {{TechnicianView.DashboardData.deduction}}
    Cash Collected
    ₹ {{TechnicianView.DashboardData.cashCollection}}
    Amount Left
    ₹ {{TechnicianView.DashboardData.leftOverAmount}}

    {{TechnicianView.UserCurrentData.Name | uppercase }} | {{TechnicianView.UserCurrentData.EnrollNo}} |{{TechnicianView.UserCurrentData.Role}}

    Serving Locations
    {{locations}}
    Existing Skills & Location

    Choose skill for which you want to see nearby opportunities
    • {{skills.SkillName}} - (₹ {{skills.TotalOpportunity}})

    Pincodes where opportunities are available for selected skill
    • {{locations.Pincode}} - (₹ {{locations.TotalOpportunity}})
    Opportunity Available

    Choose skill for which you want to see nearby opportunities
    • {{skillOpportunity.SkillName}} - (₹ {{skillOpportunity.TotalOpportunity}})
    Pincodes where opportunities are available for selected skill
    • {{newlocations.Pincode}} - (₹ {{newlocations.TotalOpportunity}})
    {{TechnicianView.teamdata.jobsSummary.TotalJobs}}

    Total Jobs

    ₹ {{TechnicianView.teamdata.paymentsSummary.TotalEarned}}

    Total Earning

    {{TechnicianView.teamdata.userProfile.venderTeamCount}}

    Total Team

    {{TechnicianView.teamdata.serviceCenterData.dMSLQuantityAmount}}

    Total MSL Quantity

    Rs. {{TechnicianView.teamdata.serviceCenterData.dSecurityAmount}}

    Total Security Amount

    Document TypeDocument NumberDocument Image
    Aadhaar{{TechnicianView.teamdata.serviceCenterData.AadharNumber}}View Document \\\"image-1\\\"
    PAN{{TechnicianView.teamdata.serviceCenterData.PANNumber}}View Document \\\"image-1\\\"
    GST{{TechnicianView.teamdata.serviceCenterData.GSTNumber}}View Document \\\"image-1\\\"
    TAN{{TechnicianView.teamdata.serviceCenterData.TANNumber}}View Document \\\"image-1\\\"
    Application FormView Document \\\"image-1\\\"
    Cancelled ChequeView Document \\\"image-1\\\"
    Payout StructureView Document \\\"image-1\\\"
    Shop LicenseView Document \\\"image-1\\\"
    Recent Activity
    • {{userActivity.activity}}
      {{userActivity.dateTime}}
    Quick Questions

    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\\'s standard dummy text ever. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters

    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using \\'Content here, content here\\', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\\'s standard dummy text ever. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters

    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using \\'Content here, content here\\', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using \\'Content here, content here\\', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
    Dashboard
    Jobs Summary

    {{TechnicianView.teamdata.jobsSummary.TotalJobs}}

    Total Jobs

    {{TechnicianView.teamdata.jobsSummary.Assignedjobs}}

    Assigned

    {{TechnicianView.teamdata.jobsSummary.Completed}}

    Completed

    {{TechnicianView.teamdata.executionSummary.Cancelled}}

    Cancelled

    {{TechnicianView.teamdata.jobsSummary.Rejected}}

    Rejected

    {{TechnicianView.teamdata.jobsSummary.LeadAcceptance}} (%)

    Lead Acceptance

    {{TechnicianView.teamdata.jobsSummary.CompletionSpeed}}

    Average Completion Speed

    {{TechnicianView.teamdata.jobsSummary.JobCompletionRate}} (%)

    Job Completion Rate

    {{TechnicianView.teamdata.jobsSummary.FirstResponseRate}} (%)

    First Response Time

    {{TechnicianView.teamdata.jobsSummary.AppointmentMetRate}} (%)

    Appointment Met Rate

    Payments Summary

    ₹ {{TechnicianView.teamdata.paymentsSummary.TotalEarned}}

    Total Earned

    ₹ {{TechnicianView.teamdata.paymentsSummary.TotalDueAmount}}

    Total Due Amount

    ₹ {{TechnicianView.teamdata.paymentsSummary.TotalPaid}}

    Total Paid

    ₹ {{TechnicianView.teamdata.paymentsSummary.TotalReject}}

    Total Reject

    ₹ {{TechnicianView.teamdata.paymentsSummary.TotalFailed}}

    Total Failed

    ₹ {{TechnicianView.teamdata.paymentsSummary.TotalInitial}}

    Total Initial

    ₹ {{TechnicianView.teamdata.paymentsSummary.TotalCollection}}

    Total Collection

    ₹ {{TechnicianView.teamdata.paymentsSummary.TotalService}}

    Total Service

    ₹ {{TechnicianView.teamdata.paymentsSummary.TotalHardware}}

    Total Hardware

    ₹ {{TechnicianView.teamdata.paymentsSummary.TotalBonus}}

    Total Bonus

    ₹ {{TechnicianView.teamdata.paymentsSummary.TotalPanelty}}

    Total Panelty

    ₹ {{TechnicianView.teamdata.paymentsSummary.TotalAllowance}}

    Total Allowance

    ₹ {{TechnicianView.teamdata.paymentsSummary.SecurityAmount}}

    Security Amount

    {{TechnicianView.teamdata.paymentsSummary.SecurityExpiryDate | date:\\'dd/MM/yy\\'}}

    Security Expiry Date

    {{TechnicianView.teamdata.paymentsSummary.SecurityDepositDate | date:\\'dd/MM/yy\\'}}

    ReCharge On

    Execution Summary

    {{TechnicianView.teamdata.executionSummary.AssignedNoAction}}

    Assigned No Action

    {{TechnicianView.teamdata.executionSummary.CCNAB}}

    CCNAB

    {{TechnicianView.teamdata.executionSummary.Cancelled}}

    Cancelled

    {{TechnicianView.teamdata.executionSummary.AppointmentBookedDay0}}

    Appointment Booked Day 0

    {{TechnicianView.teamdata.executionSummary.AppointmentBookedDay1}}

    Appointment Booked Day 1

    {{TechnicianView.teamdata.executionSummary.AppointmentBookedDay1Plus}}

    Appointment Booked Day1+

    {{TechnicianView.teamdata.executionSummary.AppointmentBreached}}

    Appointment Breached

    {{TechnicianView.teamdata.executionSummary.InTransit}}

    InTransit

    {{TechnicianView.teamdata.executionSummary.OnSite}}

    On Site

    {{TechnicianView.teamdata.executionSummary.OnHold}}

    On Hold

    Slot Details

    {{ data.slotTime}}

    {{ data.slotTime}}

    Ratings

    {{TechnicianView.teamdata.userProfile.AverageRating.AverageRating}} average based on {{TechnicianView.teamdata.userProfile.AverageRating.totalCount}} reviews.


    5 star
    {{TechnicianView.AvgRating.FiveStar}}
    4 star
    {{TechnicianView.AvgRating.FourStar}}
    3 star
    {{TechnicianView.AvgRating.ThreeStar}}
    2 star
    {{TechnicianView.AvgRating.TwoStar}}
    1 star
    {{TechnicianView.AvgRating.OneStar}}
    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusInteraction Video
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate}}{{skills.BrandList}}{{skills.Status}}
    Background Verification
    VerificationDocuments NameDocuments NumberVerification DateStatusDocument FrontDocument Back
    {{VerificationDoc.DocumentType}}{{VerificationDoc.DocumentName}}{{VerificationDoc.DocumentNo}}{{VerificationDoc.UpdatedOn| date:\\'dd-MMM-yyyy h:mm a\\'}} \\\"\\\"
    \\\"profile\\\"
    \\\"profile\\\"
    \\\"\\\"
    \\\"profile\\\"
    \\\"profile\\\"
    BankBank Information

    {{TechnicianView.teamdata.userProfile.BankDetails.AccountHolderName}}

    {{TechnicianView.teamdata.userProfile.BankDetails.bankName}}

    AC No- {{TechnicianView.teamdata.userProfile.BankDetails.AccountNo}}

    IFSC No- {{TechnicianView.teamdata.userProfile.BankDetails.IFSC}}

    UPI IDUPI Id{{TechnicianView.teamdata.userProfile.BankDetails.UPIID}}{{TechnicianView.teamdata.userProfile.BankDetails.VerifiedOn}}
    Service Center Verification
    Brand NameProduct ServiceTeam SizeTenureService Center AddressCertificate of AuthorizationTraining CertificatePhoto of Shop/office/Service CenterAction
    {{AuthoDetail.BrandName}}{{AuthoDetail.ProductServing}}{{AuthoDetail.TeamSize}}{{AuthoDetail.Tenure}}{{AuthoDetail.ServiceCenterAddress}}\\\"\\\"\\\"\\\"\\\"\\\"
    Work Summary

    Total Jobs

    Assigned

    Completed

    Approved

    Rejected

    ANA

    CCNAB

    Cancelled

    ABD0

    ABD1

    ABD1+

    ABR

    InTransit

    On Site

    On Hold

     {{TechnicianView.upageindexCount}} - {{TechnicianView.userListLength}} of {{totalUsers}}
    Ticket IDTicket TypeAccountLocationAssigned DateTATJobs StatusCreation DateTech Payment StatusTech Payment DateStatus Date
    {{workList.TicketID}}{{workList.TicketType}}{{workList.Account}}{{workList.Location}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.TAT}}{{workList.JobsStatus}}{{workList.JobsCreationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.TechnicianPaymentStatus}}{{workList.TechncianPaymentDateObj | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.InTransitDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AssignedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnSiteDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.AppointmentBookedDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CompletionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.OnHoldDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.RejectionDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.CancellationDate | date:\\'dd/MM/yy hh:mm a\\'}}{{workList.ApprovedDate | date:\\'dd/MM/yy hh:mm a\\'}}
    Skill Test Summary
    SkillExperienceMarksTest DateBrandsStatusInteraction VideoCatagoryCertificate
    {{skills.Skill}}{{skills.Experience}}{{skills.ResultScore}}{{skills.TestDate}}{{skills.BrandList}}{{skills.Status}}
    Previous Company Details
    Company NameProject NameDesignationAccountDate of JoiningDate of RelievingExperience Letter
    {{previousCompany.CompanyName}}{{previousCompany.ProjectName}}{{previousCompany.Designation}}{{previousCompany.AccountName}}{{previousCompany.DateOfJoining | date:\\'dd-MMM-yyyy\\'}}{{previousCompany.DateOfRelieving | date:\\'dd-MMM-yyyy\\'}} \\\"\\\"
    Training Details
    Training NameTraining DateTraining ImageTraining Attendence
    {{Audittraining.TrainingName}}{{Audittraining.TrainingDate | date:\\'dd-MMM-yyyy\\'}} \\\"\\\" \\\"\\\"
    {{TechnicianView.OverAllInfo.TotalPinCode}}

    Total Pincodes

    {{TechnicianView.OverAllInfo.PinCodeInProfile}}

    In Profile

    {{TechnicianView.OverAllInfo.PinCodeNotInProfile}}

    Not In Profile

    {{TechnicianView.OverAllInfo.PincodeInProfileOutsideRange}}

    In Profile Outside Range

    {{TechnicianView.OverAllInfo.PincodeWithJobsInProfile}}

    In Profile | With Jobs

    {{TechnicianView.OverAllInfo.PincodeWithoutJobsInProfile}}

    In Profile | No Jobs

    {{TechnicianView.OverAllInfo.PincodeWithJobsNotInProfile}}

    Not In Profile | With Jobs

    {{TechnicianView.OverAllInfo.PincodeWithoutJobsNotInProfile}}

    Not In Profile | No Jobs

    • {{key}} - ({{value}})
    In Profile PincodeAddressNo. of Jobs Distance
    {{pincodefind.PinCode}}{{pincodefind.Address}}{{pincodefind.JobCount}}{{pincodefind.Distance}} KM

    Financial

     {{TechnicianView.fpageindexCount}} - {{TechnicianView.financeListLength}} of {{totalFinList}}
    Beneficiary IDBeneficiary NameTotal Pay AmountTotal Base PriceTotal CommissionTotal ServiceTotal HardwareTotal BonusTotal PaneltyTotal CollectionTotal AwallanceTansaction IdCash AccountTypeFailed ReasonCash free UPI IdCash free AccountIdLast Payout TypePayment Initiated OnPayment Failed OnActual Paid Amount
    {{payuser.beniID}}{{payuser.beniName}}₹ {{payuser.totalPayableAmount}}{{payuser.totalBasePrice}}{{payuser.totalCommission}}{{payuser.totalService}}{{payuser.totalHardware}}{{payuser.totalBonus}}{{payuser.totalPanelty}}{{payuser.totalCollection}}{{payuser.totalAwallance}}{{payuser.tansactionId}}{{payuser.cashfreeAccountType}}{{payuser.failedReason}}{{payuser.cashfreeUPIId}}{{payuser.cashfreeAccountId}}{{payuser.lastPayoutType}}{{payuser.paymentInitiatedOn}}{{payuser.paymentFailedOn}}{{payuser.actualPaidAmount}}
    Job IDJob TypeProjectCustomerLocationTechnician NameFollow Up ReasonCreation DateStatusTATRating
    {{financesmry.jobID}}{{financesmry.jobType}}{{financesmry.project}}{{financesmry.customer}}{{financesmry.location}}{{financesmry.technicianName}}{{financesmry.followUpReason}}{{financesmry.creationDate | date: \\'dd-MMM-yyyy hh:mm:ss a\\'}}{{financesmry.status}}{{financesmry.tat}}{{financesmry.rating}}
     {{TechnicianView.fTPageIndexCount}} - {{TechnicianView.financeTechListLength}} of {{totalFinTechList}}
    Ticket IDinvoice IDAccount NameLocationAmountBase PricePayment StatusPayment Status StrCommentsStatus DateBeneficiary NameAllowance AmountHardware AmountServices AmountBonus AmountPenalty AmountPrimary ReasonBonus DescriptionPenalty DescriptionType
    {{payoutech.invoice}}{{payoutech.account}}{{payoutech.location}}{{payoutech.amount}}{{payoutech.basePrice}}{{payoutech.paymentStatus}}{{payoutech.paymentStatusStr}}{{payoutech.comments}}{{payoutech.statusDate}}{{payoutech.beneficiaryName}}{{payoutech.allowanceAmount}}{{payoutech.hardwareAmount}}{{payoutech.servicesAmount}}{{payoutech.bonusAmount}}{{payoutech.penaltyAmount}}{{payoutech.primaryReason}}{{payoutech.bonusDescription}}{{payoutech.penaltyDescription}}{{payoutech.type}}
    Review And Ratings
    Ratings

    {{TechnicianView.reviewData.OverAllRating.AverageRating}} average based on {{TechnicianView.reviewData.OverAllRating.totalCount}} reviews.


    {{Reviews.CustomerName}}Source : MyMobiforce
    (Reviewed on {{Reviews.ReviewDate}})

    {{Reviews.AdditionalRemark}}

    Tools
    Assets
    Equipment Details
    Equipment NameBrand NameView EquipmentItem Serial NumberManufactured OnExpired On
    {{toolDetail.ToolName}}{{toolDetail.BrandName}}{{toolDetail.ItemSerialNumber}}NA {{toolDetail.DateOfManufacturing}}{{toolDetail.ExpireDate}}
    Audit Details
    Audit SummaryAuditorAudited OnStatusReport
    {{auditDetail.AuditPurpose}}{{auditDetail.AuditorDetails.AuditorName}}{{auditDetail.AuditDate | date: \\'dd-MMM-yyyy\\'}}{{auditDetail.AuditResult}} {{auditDetail.AuditResult}} {{auditDetail.AuditResult}}
    All Team List
    User IDNameTotal CountOpen CountClose CountRoleAddress line 1CityStatePincodeStatusD-1 AvailabilityD-0 Attendance
    {{TeamDetail.UserId}}{{TeamDetail.Name}}{{TeamDetail.TotalCount}}{{TeamDetail.OpenCount}}{{TeamDetail.CloseCount}}{{TeamDetail.Role}}{{TeamDetail.Addressline1}}{{TeamDetail.PermanentCity}}{{TeamDetail.State}}{{TeamDetail.PermanentPinCode}}Inactive ActiveNot Available AvailableNot Available Available
    Complaint List
    ActionTechnician IDCase IDIssue Related ToActual IssueIssue DescriptionCase Resolution RemarkCase Raised OnCase SourceCase Created ByAssigned TeamAssigned DepartmentCase Status
    {{TeamDetail.IssueRelatedTo}}{{TeamDetail.ActualIssue}}{{TeamDetail.IssueDescription}}{{TeamDetail.CaseResolution}}{{TeamDetail.CaseRaisedOn | date:\\'dd/MM/yy hh:mm a\\'}}{{TeamDetail.CaseSource}}{{TeamDetail.CaseCreatedBy}}{{TeamDetail.AssignedToUserName}} ({{TeamDetail.AssignedTo}}){{TeamDetail.CaseOwnerName}} ({{TeamDetail.CaseOwnerRole}})

    Case Trace

    • {{ userActivity.activity}}
      {{userActivity.userName}} {{userActivity.dateTime}}
    \");\n$templateCache.put(\"app/Template_grid/template_grid.html\",\"
    1. Home
    2. Templates
    Filters
    You don\\'t have any content to shown here. Please connect your admin to add content for you.
    \");\n$templateCache.put(\"app/TerritoryMangement/TerritoryMangement.html\",\"
    1. Home
    2. Territory Mangement
    Territory NameTerritory IDTerritory LevelTerritory OwnerAction
    INDIAINDLevel 1Sumant Singh
    Territory NameTerritory IDTerritory LevelTerritory OwnerAction
    WESTMHLevel 2Ajay Sharma
    Territory NameTerritory IDTerritory LevelTerritory OwnerAction
    MUMBAIMUMLevel 3Rajesh Mehta
    EASTWBHLevel 2Sumant Singh
    Territory NameTerritory IDTerritory LevelTerritory OwnerAction
    KOLKATAKOLLevel 3Rahul Singh
    SOUTHKARLevel 2Vinay Kumar
    Territory NameTerritory IDTerritory LevelTerritory OwnerAction
    BANGALOREBLRLevel 3Ravi Shankar
    NORTHDLLevel 2Amit Verma
    Territory NameTerritory IDTerritory LevelTerritory OwnerAction
    NEW DELHINDLLevel 3Rahul Gupta
    NEPALNPLLevel 1Vivek Yadav
    Territory NameTerritory IDTerritory LevelTerritory OwnerAction
    BagmatiBGTLevel 2Rajiv Sharma
    Territory NameTerritory IDTerritory LevelTerritory OwnerAction
    New Town ColonyNTCLevel 3Arun Gupta
    Green ValleyGRVLevel 3Sanjay singh
    GandakiGADKLevel 2Poonam Singh
    Territory NameTerritory IDTerritory LevelTerritory OwnerAction
    Lakeside ResidencyLAKERLevel 4Alok Tripathi
    Himalayan ParkHIMPLevel 4Ravi Shankar
    SRI LANKASRLLevel 1Ansh Singh
    Territory NameTerritory IDTerritory LevelTerritory OwnerAction
    All statesAllSTATESLevel 2Rahul Mehta
    Territory NameTerritory IDTerritory LevelTerritory OwnerAction
    Stellar ElectronicsSC1020Level 4Priya Kumar
    Horizon Service HubSC1019Level 4Suresh Reddy
    \");\n$templateCache.put(\"app/TerritoryMapping/TerritoryMapping.html\",\"
    1. Home
    2. Territory Mapping
    SUB REGION
    REGION
    \");\n$templateCache.put(\"app/Thanku_Recharge/Thanku_Recharge.html\",\"

    Crowdsourcing Platform

    Service Marketplace to connect Field Engineers with Businesses.

    Dear Customer , Ticket no. T000000000123 is registered please allow us some time to address your complaint. Our team will ensure fastest possible action. {{thanku.PersonalEmail}}

    Click here to login

    {{thanku.errMsg}}

    Please wait...

    Payment Successful.


    Your Payment was successful ! you can now continue using MyMobiforce


    FOLLOW US


    Copyright MyMobiforce © 2025

    \");\n$templateCache.put(\"app/Thankyou/Thankyou.html\",\"

    Workforce as a Service

    Freelance marketplace to connect Field Engineers with service companies.

    Login credentials has been sent to your email {{thanku.PersonalEmail}}

    Click here to login

    {{thanku.errMsg}}

    Please wait...

    THANK YOU.


    You have been registered with MyMobiforce!

    We will call you within next 48 hours. For more information, please call us on 18003138082


    FOLLOW US


    Copyright MyMobiforce © 2017

    \");\n$templateCache.put(\"app/Thankyou/Thankyou_Booking.html\",\"

    Crowdsourcing Platform

    Service Marketplace to connect Field Engineers with Businesses.

    Dear Customer , Ticket no. T000000000123 is registered please allow us some time to address your complaint. Our team will ensure fastest possible action. {{thanku.PersonalEmail}}

    Click here to login

    {{thanku.errMsg}}

    Please wait...

    THANK YOU.


    Dear Customer , Your Appointment is booked please allow us some time to address your complaint.

    Our team will ensure fastest possible action.


    FOLLOW US


    Copyright MyMobiforce © 2017

    \");\n$templateCache.put(\"app/Thankyou/Thankyou_ticket.html\",\"

    Crowdsourcing Platform

    Service Marketplace to connect Field Engineers with Businesses.

    Dear Customer , Ticket no. T000000000123 is registered please allow us some time to address your complaint. Our team will ensure fastest possible action. {{thanku.PersonalEmail}}

    Click here to login

    {{thanku.errMsg}}

    Please wait...

    THANK YOU.


    Dear Customer , Ticket no.   {{scopeMsg}}   is registered please allow us some time to address your complaint.

    Our team will ensure fastest possible action.


    FOLLOW US


    Copyright MyMobiforce © 2017

    \");\n$templateCache.put(\"app/Ticket_form/ticketform.html\",\"

    Crowdsourcing Platform

    Service Marketplace to connect Field Engineers with Businesses.

    Please enter first name
    Please enter mobile number Please enter 10 digit mobile no
    = 48 && event.charCode <= 57\\\" ng-maxlength=\\\"6\\\" ng-minlength=\\\"6\\\">
    Please enter Pin Code Please enter 6 digit pincode Please enter 6 digit pincode
    Please select Constituency
    Please select Mohalla
    Please enter address line 1
    Please select complaint Department

    {{formTicket.fileUploadError}}

    Please enter Issue Description

    Copyright MyMobiforce © 2018

    \");\n$templateCache.put(\"app/ToolUtility/ToolUtility.html\",\"
    1. Home
    2. Tool Utility
    Select date for system set up
    Cleanup all the jobs for date {{toolUtilityCtrl.CleanupJobDateFormat(toolUtilityCtrl.SelectedJobDate)}}Cleanup Jobs
    Create Slot for date
    {{toolUtilityCtrl.CleanupJobDateFormat(toolUtilityCtrl.SelectedJobDate)}}
    Create Slot
    Create job for date
    {{toolUtilityCtrl.CleanupJobDateFormat(toolUtilityCtrl.SelectedJobDate)}}
    Create {{value}} jobs for {{key}} skillCreate Jobs
    \");\n$templateCache.put(\"app/TrainingUserList/TrainingUserList.html\",\"
    1. Home
    2. Freelancer
    3. Training User
    Registeration IDNameMobile NoStateCitySkillTraining LevelTraining ResultTraining Date
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease LineClassroom TrainingPass09/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease LineInterview AssessmentPass09/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease LineFiled Job TrainingFail09/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease LineClassroom TrainingPass09/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease LineInterview AssessmentFail09/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease LineField Job TrainingPass09/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease LineField Job TrainingPass09/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease LineClassroom TrainingPass09/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease LineField Job TrainingPass09/05/2019 04:20 AM
    Registeration IDNameMobile NoStateCitySkillRechargeTraining Date
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease Line200009/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease Line200009/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease Line200009/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease Line200009/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease Line200009/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease Line200009/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease Line200009/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease Line200009/05/2019 04:20 AM
    U000008765Ankur Sharma8375860288Uttar PradeshNoidaLease Line200009/05/2019 04:20 AM
    \");\n$templateCache.put(\"app/Tracking/NewTracking.html\",\"
    \\\"profile\\\" \\\"profile\\\"
    {{tracking.name}}
    {{tracking.customerJobCard.FEUserId}}
    Authorized Serviced Partner

    MyMobiForce

    Dear {{tracking.consumername}} ,
    {{tracking.name}} is reaching at your location {{tracking.consumerAddress}}

    Please feel free to connect us at

    Happy to serve you \\'Team MyMobiForce\\'

    \");\n$templateCache.put(\"app/Tracking/Tracking.html\",\"
    \\\"profile\\\" \\\"profile\\\"

    {{tracking.customerJobCard.FEName}}


    {{tracking.customerJobCard.FERating || 0}} Star

    Track

    Job Information
    Job ID
    Job Type
    Job Description
    Appointment time
    \");\n$templateCache.put(\"app/TransactionalAlert/TransactionalAlert.html\",\"
    1. Home
    2. Transactional Alert
      Create an Alert
    Create A Permission
    Email Preview


    \");\n$templateCache.put(\"app/Vendor/VendorList.html\",\"
    1. Home
    2. {{main.getVisibleLabel(\\'Vendor\\')}}
    IdNameCompany NameMobileNoEmailAddress Line1Address Line2CityStatePinCodeSkillLatitudeLongitudeLocationStatus
    {{vendors.Skill}}
    \\\"image\\\"
    Address
    ,
    Project Manager

    Activate

    Available Balance


    Skills
    Work Area
    Total JobsAssigned Jobs
    Approved JobsCompleted Jobs
    Rejected JobsCancelled Jobs

    \");\n$templateCache.put(\"app/Vendor Profile/VendorProfile.html\",\"
    1. Home
    2. Vendor Profile
    \\\"profile\\\"

    i

    Date of joining



    ,
    Project Manager

    Total JobsAssigned JobsApproved Jobs
    Completed JobsRejected JobsCancelled Jobs
    Skills
    Work Area
    Assets
    Tools
    {{tools}}

    Job Reviews

    0

    4 out of 5 stars

    Training Assessment
    Save
    S.No.Certificate NameCertificate NoCertificateIssueDateCertificateExpiryDateCertificateAction
    {{$index+1}}.{{doc.CertificateName}}{{doc.CertificateNo}} {{doc.CertificateIssueDate}}
    {{doc.CertificateExpiryDate}}
    \\\"image-1\\\" \\\"image-1\\\" \\\"image-1\\\" Upload File
    {{vendorProfile.error[doc.DocumentType]}}
    Background Verification Documents
    Save
    S.No.Document TypeDocument NameFile NameAction
    {{$index+1}}.{{doc.DocumentType}}{{doc.DocumentName}}\\\"image-1\\\" \\\"image-1\\\" \\\"image-1\\\" {{doc.DocumentPath}} Upload File
    {{vendorProfile.error[doc.DocumentType]}}
    \");\n$templateCache.put(\"app/Vendor Creation Form/Vendor_Creation_form.html\",\"
    1. Home
    2. {{main.getVisibleLabel(\\'Vendor\\')}}
    3. Create {{main.getVisibleLabel(\\'Vendor\\')}}
    {{main.getVisibleLabel(\\'Vendor\\')}} Information
    Please enter {{main.getVisibleLabel(\\'Vendor\\')}} name {{main.getVisibleLabel(\\'Vendor\\')}} name should only contain alphabets {{main.getVisibleLabel(\\'Vendor\\')}} name cannot be longer than 50 characters
    Please enter alphanumeric with space
    Please enter address line 1 Your address line 1 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please enter address line 2 Your address line 2 cannot be longer than 70 characters Please enter only alphanumeric with space, hyphen, slace, comma
    Please select state
    Please select city
    = 48 && event.charCode <= 57\\\" name=\\\"pincode\\\" ng-maxlength=\\\"6\\\" ng-minlength=\\\"6\\\">
    Please enter pincode Please enter 6 digit pincode Please enter 6 digit pincode
    Contact Information
    Please enter first name First name should only contain alphabets First name cannot be longer than 50 characters
    Please enter last name Last name should only contain alphabets Last name cannot be longer than 50 characters
    Please enter valid email id
    = 48 && event.charCode <= 57\\\" ng-pattern=\\\"/^(?:(?:\\\\+|0{0,2})91(\\\\s*[\\\\-]\\\\s*)?|[0]?)?[789]\\\\d{9}$/\\\">
    Please enter valid mobile number
    = 48 && event.charCode <=57\\\" ng-model-options=\\\"{ allowInvalid: true}\\\">
    Please enter valid number
    Please select gender
    Work Area
    Please select Location
    Please select Location
    \");\n$templateCache.put(\"app/VendorProfile1/NewVendorProfile.html\",\"

    Vendor Profile

    User - {{NewVendorProfile.users.UserStatus}}
    \\\"profile\\\"

    {{NewVendorProfile.users.FirstName}} {{NewVendorProfile.users.LastName}}
    {{NewVendorProfile.users.VendorId}} V

    Registered Partner
    Not Registered

    Designation  -

    Creation Date  -

    Email  -

    Phone No.  -

    {{NewVendorProfile.users.Experience}} Year of Experience

    Source  -

    {{NewVendorProfile.users.ApprovedJobs}}


    Total Jobs

    {{NewVendorProfile.users.AvailableBalance.toFixed(2)}}


    Balance

    {{NewVendorProfile.customerrating}}


    Average Rating


    End User License Agreement
    0 && NewVendorProfile.UserRole !=\\'Head Hunter\\'\\\">


    Infra Partner
    0 && NewVendorProfile.UserRole !=\\'Head Hunter\\'\\\">


    Training Partner


    Self Declaration Agreement


    Self Declaration Agreement - Not Submitted


    Certificate No: {{NewVendorProfile.users.InsuranceCertificateNumber}}
    Policy No: {{NewVendorProfile.users.InsurancePolicyNumber}}
    Start date:{{NewVendorProfile.users.InsuranceStartDate}}
    End date:{{NewVendorProfile.users.InsuranceEndDate}}


    Background Verification Report


    Background Verification Report - Not Done
    {{NewVendorProfile.users.ContractSignDate | date: NewVendorProfile.CustomDateformat}}
    Contract Not Sign

    Contract Sign Date
    {{NewVendorProfile.users.ContractSignDate | date:NewVendorProfile.CustomDateformat}}
    Contract Not Sign

    Contract Sign Date

    Verified & Activated by  {{NewVendorProfile.users.UpdatedByName}} on {{NewVendorProfile.users.ActivationDate | date: NewVendorProfile.CustomDateformat }}

    \\\"image\\\"

    Reliability

    \\\"image\\\"

    Company Details

    Company Registration No.  -
    Company GST No.  -
    Yes NO
    Company TPI   -
    Yes NO
    Partner Anti Corruption Clause   -
    Yes NO
    Company MSME No.   -
    Yes NO
    \\\"image\\\"

    About

    {{NewVendorProfile.users.Experience}} year of Experience

    \\\"image\\\"

    Address

    {{NewVendorProfile.users.AddressLine1}} , {{NewVendorProfile.users.AddressLine2}} , {{NewVendorProfile.users.City}} , {{NewVendorProfile.users.State}} , {{NewVendorProfile.users.Pincode}}

    \\\"image\\\"

    Skill Set

    \\\"image\\\"

    Equipments

    \\\"image\\\"

    Assets

    \\\"image\\\"

    Work Locations

    \\\"image\\\"

    Equipment Details

    Equipment NameVerification StatusView EquipmentItem Serial NumberDate Of Manufacturing
    {{assettool.ToolName}}{{assettool.VerificationStatus}} {{assettool.VerificationStatus}} {{assettool.VerificationStatus}}{{assettool.ItemSerialNumber}}NA {{assettool.DateOfManufacturing}}
    Equipment Audit StatusEquipment Audited OnEquipment Audited ByEquipment Audit Report
    {{Audittool.AuditResult}} {{Audittool.AuditResult}}{{Audittool.AuditDate | date:\\'dd/MM/yyyy\\'}}{{Audittool.AuditorDetails.AuditorName}}
    \\\"image\\\"

    Previous Company Details

    Company NameWork LocationProject NameDesignationAccountDate of JoiningDate of RelievingExperience Letter
    {{previousCompanyDetail.CompanyName}}{{previousCompanyDetail.WorkLocation}}{{previousCompanyDetail.ProjectName}}{{previousCompanyDetail.Designation}}{{previousCompanyDetail.AccountName}}{{previousCompanyDetail.DateOfJoining | date:\\'dd/MM/yyyy\\'}}{{previousCompanyDetail.DateOfRelieving | date:\\'dd/MM/yyyy\\'}} \\\"\\\"
    Experience Verification StatusExperience Verified OnExperience Verified ByExperience Verification Report
    {{AuditExperience.AuditResult}} {{AuditExperience.AuditResult}}{{AuditExperience.AuditDate | date:\\'dd/MM/yyyy\\'}}{{AuditExperience.AuditorDetails.AuditorName}} \\\"\\\"
    \\\"image\\\"

    Contract Details

    Legal Contract NameSigned DateSigned StatusView Document
    Health and Safety Agreement {{legalContract.LegalContractName}}{{legalContract.SignedDateTime | date: NewVendorProfile.OnlyDateformat}}{{legalContract.SignedStatus}}\\\"profile\\\"
    \\\"image\\\"

    Criminal Verification

    TypeDocument TypeVerifications TypeDocument NumberVerification ModeVerification AuthorityUpdated byUpdated OnStatusCriminal Report
    CriminalThird Party Assessment ReportOptional{{NewVendorProfile.users.CriminalVarificationObj.DocumentNo}}Third Party{{NewVendorProfile.users.CriminalVarificationObj.VerificationAuthority}}{{NewVendorProfile.users.CriminalVarificationObj.UpdatedBy}}{{NewVendorProfile.users.CriminalVarificationObj.UpdatedOn | date:\\'dd/MM/yyyy\\'}}{{NewVendorProfile.users.CriminalVarificationObj.verificationStatus}}
    \\\"\\\"
    Training
    Training NameTraining DateTraining ImageTraining Attendance
    {{Audittraining.TrainingName}}{{Audittraining.TrainingDate | date:\\'dd/MM/yyyy\\'}} \\\"\\\" \\\"\\\"
    \\\"image\\\"

    Bank Account Details

    Account No  -
    IFSC Code  -
    Account Holder Name   -
    Bank Name   -
    \\\"image\\\"

    Insaurance Details

    Insurance Name  -
    Policy Number  -
    Issue Date   -
    Expiry Date   -
    Insaurance Image   -
    View Link \\\"profile\\\"
    All Team List
    ActionUser IDNameContact NumberDesignationRoleAddress line 1Address Line 2CityStateSkillsStatus
    {{VendorTeamlist.UserId}}{{VendorTeamlist.FirstName}} {{VendorTeamlist.LastName}}{{VendorTeamlist.ContactNumber}}{{VendorTeamlist.Designation}}{{VendorTeamlist.Role}}{{VendorTeamlist.PermanentAdd1}}{{VendorTeamlist.PermanentAdd2}}{{VendorTeamlist.PermanentCity}}{{VendorTeamlist.PermanentState}}
    {{VendorTeamlist.SkillSet.toString()}}
    \");\n$templateCache.put(\"app/VendorProfile1/VendorProfile1.html\",\"

    Role : Vendor

    \\\"profile\\\"

    Aditya Comm - #U000087876 V


    15 year Telecommunications Professional

    702


    Total Jobs

    56


    Clients

    4 (56)


    Average Rating
    \\\"image\\\"

    Reliability

    \\\"image\\\"

    About

    Working in the Telecommunications industry since 1994 (10+ Years). Experience includes PBX, Networking.

    \\\"image\\\"

    Address

    House no. 54 , afkar colony , aishbagh stadium , bhopal BHOPAL, MADHYA PRADESH

    \\\"image\\\"

    Certificates

    CCNA

    ID #: COMP1139


    Networking

    ID #: COMP16139


    \\\"image\\\"

    Team Members

    \\\"image\\\"
    Sanjay Rai
    \\\"image\\\"
    Raj Madan
    \\\"image\\\"
    Deepak Verma
    \\\"image\\\"
    Pramod Kumar
    \");\n$templateCache.put(\"app/VendorTeamCreate/VendorTeamCreate.html\",\"
    1. Home
    2. Invited Team Member
    Contact NameContact NumberStatusUser IdUser Name
    {{invited.ContactName}}{{invited.ContactNumber}}{{invited.Status}}{{invited.UserId}}{{invited.UserName}}
    {{VTCcntrl.sideViewData.ContactName}}
    \\\"image\\\"

    {{ VTCcntrl.sideViewData.Role}}

    {{ VTCcntrl.sideViewData.ContactNumber}}

    Current Location
    {{ VTCcntrl.sideViewData.CurrentAdd1}}
    {{ VTCcntrl.sideViewData.CurrentAdd2}}
    {{ VTCcntrl.sideViewData.CurrentCity}}, {{ VTCcntrl.sideViewData.CurrentState}}
    Activate

    \");\n$templateCache.put(\"app/VendorTeamCreation/VendorTeamCreation.html\",\"
    1. Home
    2. Service Center Team Members
    {{VTCreationCntrl.userInfo.ContactName}}s
    \\\"image\\\" \\\"image\\\"

    {{VTCreationCntrl.userInfo.Role}}

    {{VTCreationCntrl.userInfo.ContactNumber}}

    Current Location
    {{VTCreationCntrl.userInfo.Address}}
    {{VTCreationCntrl.userInfo.City}}, {{VTCreationCntrl.userInfo.State}}
    {{VTCreationCntrl.userInfo.Pincode}}
    Activate

    \");\n$templateCache.put(\"app/WareHouseItemList/WareHouseItemList.html\",\"
    1. Home
    2. Warehouse Inventory List
     Showing {{CntrlWareHouseItemList.pageindexCount}} to {{CntrlWareHouseItemList.inventoryListLength}} of {{totalInvList}} entries
    Part IDPart NamePart CodePart TypeBrandPart GroupPart Sub GroupService Center Price (₹)Dealer Price (₹)Dealer Customer Price (₹)Customer Price (₹)Warehouse Price (₹)Total Stock QtyGood Stock QtyDead Stock QtyUnitWarehouse IDWarehouse Name
    {{inventoryList.strMMFPartId}}{{inventoryList.strPartName}}{{inventoryList.strSKUId}}{{inventoryList.strPartType}}{{inventoryList.strPartBrand}}{{inventoryList.strPartCategoryGroup}}{{partsubgroup}}{{inventoryList.dPartSellingPrice}}{{inventoryList.dPartDealerPrice}}{{inventoryList.dPartDealerCustomerPrice}}{{inventoryList.dPartCustomerPrice}}{{inventoryList.dPartWareHousePrice}}{{inventoryList.nQuantityAvailable}}{{inventoryList.nTotalGoodStock}}{{inventoryList.nTotalDeadStock}}{{inventoryList.strPartUnit}}{{inventoryList.WareHouseId}}{{inventoryList.WarehouseName}}

    {{CntrlWareHouseItemList.sideViewData.strPartName}}

    Dead Stock

    {{CntrlWareHouseItemList.sideViewData.nTotalDeadStock}}

    Good Stock

    {{CntrlWareHouseItemList.sideViewData.nTotalGoodStock}}

    Item in Stock

    {{CntrlWareHouseItemList.sideViewData.nQuantityAvailable}}

    Description :

    • {{desc}}

    -->\");\n$templateCache.put(\"app/VerificationSlotAllocation/SlotAllocation.html\",\"

    All Team List

    \\\"image\\\"

    User Name: {{fixedUsers.UserName}}

    User Id: {{fixedUsers.UserId}}

    Role: {{fixedUsers.UserRole}}

    • BGVerification Allocation
    • SME Interaction Allocation
    User IdNameSlot Booked DateAssigned To (UserId)Assigned To (Name)Assigned OnInteraction ResultStatusBooking StatusReschedule CountAction
    {{bGverifySlot.UserId}} {{bGverifySlot.UserId}}{{bGverifySlot.UserName}}{{bGverifySlot.SlotBookingDate | date:\\'dd/MM/yy hh:mm a\\'}}{{bGverifySlot.InteractionWithUserId}}{{bGverifySlot.InteractionWithUserName}}{{bGverifySlot.AssignedOnDate | date:\\'dd/MM/yy hh:mm a\\'}}{{bGverifySlot.InteractionResult}}{{bGverifySlot.Status}}{{bGverifySlot.BookingStatus}}{{bGverifySlot.RescheduleCount}}
     {{slotAllocationCtrl.pageindexCount}} - {{slotAllocationCtrl.bGVerifyListLength}} of {{totalTableUsersBG}}
    User IdNameSkillSlot Booked DateAssigned To (UserId)Assigned To (Name)Assigned OnInteraction ResultStatusBooking StatusReschedule CountAction
    {{bGverifySlot.UserId}} {{bGverifySlot.UserId}}{{bGverifySlot.UserName}}{{bGverifySlot.Skill}}{{bGverifySlot.SlotBookingDate | date:\\'dd/MM/yy hh:mm a\\'}}{{bGverifySlot.InteractionWithUserId}}{{bGverifySlot.InteractionWithUserName}}{{bGverifySlot.AssignedOnDate | date:\\'dd/MM/yy hh:mm a\\'}}{{bGverifySlot.InteractionResult}}{{bGverifySlot.Status}}{{bGverifySlot.BookingStatus}}{{bGverifySlot.RescheduleCount}}
     {{slotAllocationCtrl.pageindexCount}} - {{slotAllocationCtrl.bGVerifyListLength}} of {{totalTableUsersBG}}
    \");\n$templateCache.put(\"app/WareHouseList/WareHouseList.html\",\"
    1. Home
    2. WareHouses
    \");\n$templateCache.put(\"app/WareHouseOrderDetailView/WareHouseOrderDetailView.html\",\"
    1. Home
    2. Order Details

    Order ID :

    {{WareOrderDetailsCtrl.Ticketdetails.OrderId}} 

    Created On :

    {{WareOrderDetailsCtrl.Ticketdetails.OrderDate | date:\\'dd/MMM/yyyy hh:mm:ss a\\'}}

    Requested To :

    {{WareOrderDetailsCtrl.Ticketdetails.RequestedTo}}

    Order Status :

    {{WareOrderDetailsCtrl.Ticketdetails.OrderStatus | uppercase}}

    Order Type :

    {{WareOrderDetailsCtrl.Ticketdetails.OrderType}} 

    Created By :

    {{WareOrderDetailsCtrl.Ticketdetails.RequestBy}} 

    Requester No :

    {{WareOrderDetailsCtrl.Ticketdetails.RequestByContact}} 

    Total Amount :

    ₹{{WareOrderDetailsCtrl.Ticketdetails.OrderTotalAmount}} 

    Call ID :

    {{WareOrderDetailsCtrl.Ticketdetails.TicketId}} 

    Tracking Id:

    {{track.strPackageTrackingId}} 

    Call IDPart NamePart CodePart DescriptionPrice Per item (₹)Price(with GST) (₹)Quantity OrderedItem UnitComment
    {{tickets.strTicketId}}{{order.strItemName}}{{order.strSKUId}}
    • {{desc}}
    {{order.dItemPriceAfterDiscount}}{{order.dItemTotalPriceWithGST}}{{order.nItemQuantity}}{{order.strItemUnit}}{{order.CancelComment}}
    Tracking Details
    Tracking# - {{WareOrderDetailsCtrl.TrackingDetails.tracking_number}}
    • {{orderStatus.date | date: \\'dd/MMM/yyyy\\'}}

      {{orderStatus.time |date: \\'h:mm a\\'}}
    • {{orderStatus.notes}} Delivered
    Bill To :Ship To :
    {{WareOrderDetailsCtrl.OrderInvoiceDetails.strBillToAddress}}{{WareOrderDetailsCtrl.OrderInvoiceDetails.strShipToAddress}}
    Inv. dateInv. NoPart NamePart DescriptionPart CodeStatusWarehouse IDWarehouse NameQuantityDiffer QuantityDiffer RemarkRate After DiscountAmount (₹)Amount(with GST) (₹)
    {{WareOrderDetailsCtrl.OrderInvoiceDetails.dateInvoiceDate | date: \\'dd/MMM/yyyy hh:mm:ss a\\'}}{{WareOrderDetailsCtrl.OrderInvoiceDetails.strInvoiceId}}{{invoicedetail.strItemName}}
    • {{desc}}
    {{invoicedetail.strSKUId}}{{WareOrderDetailsCtrl.OrderInvoiceDetails.strOrderStatus}}{{invoicedetail.strWareHouseId}}{{invoicedetail.strWareHouseName}}{{invoicedetail.nItemQuantity}}{{invoicedetail.nDifferenceQuantity}}{{invoicedetail.strDifferRemarks}}{{invoicedetail.dItemPriceAfterDiscount}}{{invoicedetail.dItemTotalPrice}}{{invoicedetail.dItemTotalPriceWithGST}}
    Total Items
    Total Amount
    Total (with GST)
    \");\n$templateCache.put(\"app/WidgetCanvas/widgetCanvas.html\",\"
    1. Home
    2. {{widgetCtrl.report_title}}
                  

    {{widgetCtrl.report_title +\\\" \\\"+ widgetCtrl.filter_name + \\\" \\\" + widgetCtrl.additionalInfo}}

    {{widgetCtrl.report_title +\\\" \\\"+ widgetCtrl.additionalInfo + \\\" (\\\"+widgetCtrl.filter_name+\\\")\\\" }}

      
    \");\n$templateCache.put(\"app/WrongProductReceivedOrders/WrongProductReceivedOrders.html\",\"
    1. Home
    2. Incorrect Products Inventory
    Showing {{WrongProductRcvCntrl.opageindexCount}} to {{WrongProductRcvCntrl.orderListLength}} of {{totalOrderList}} entries
    Product IDReplacement IDPrevious Replacement IDCall IDRequester IDRequester Contact InfoActionWareHouse IDWareHouse Contact InfoProduct BrandProduct NameModel NumberSerial Number 1Serial Number 2StatusDelivery TypeRemarkProduct PhotosProof of PurchasePackaging IDPackaging DatePackage Tracking IDShipment IDShipment DateShipment DocTracking Link
    {{orderList.ProductId}}{{orderList.ReplacementId}}{{orderList.strPrevReplacementId}}{{orderList.TicketId}}{{orderList.UserId}}{{orderList.strReqUserName}} {{orderList.WarehouseId}}{{orderList.strWareHouseManager}}{{orderList.PrductBrand}}{{orderList.ProductName}}{{orderList.ModelMumber}}{{orderList.SerailNumber1}}{{orderList.SerailNumber2}}{{orderList.Status}}{{orderList.DamageType}}{{orderList.DamagedReason}}View Document \\\"IncorrectView Document \\\"Proof{{orderList.PackageDetails[0].strPackageId}}{{orderList.PackageDetails[0].datePackedOn | date:\\'dd/MMM/yy\\'}}{{orderList.PackageDetails[0].strPackageTrackingId}}{{orderList.PackageDetails[0].strShipmentId}}{{orderList.ShipmentDate | date:\\'dd/MMM/yy\\'}}{{orderList.PackageAttachment}} \\\"no{{orderList.ProductTrackingLink}}

    Activity Trace ( {{WrongProductRcvCntrl.trackingDetails.strReplacementId}} )

    Product Name : {{WrongProductRcvCntrl.trackingDetails.strProductName}}
    Call ID : {{WrongProductRcvCntrl.trackingDetails.strTicketId}}
    Order Status: {{WrongProductRcvCntrl.trackingDetails.strStatus}}
    • {{timeline.strUserName}} {{timeline.strUserRole}} {{timeline.dateCreatedOn | date:\\'dd/MMM/yy h:mm:ss a\\'}}
      {{ timeline.strComment || \\'No comments available\\'}}
      Status moved to: {{ timeline.strStatus }}
    \");\n$templateCache.put(\"app/bulkCallBooking/bulkCallBooking.html\",\"
    1. Home
    2. Upload Calls in Bulk


    File Upload

    You can download a Template Sheet to use as an example

    {{bulkuploadcallbooking.successTitle}}

    {{bulkuploadcallbooking.successMsg}}

    1. {{n}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    \");\n$templateCache.put(\"app/bulkUploadUpdateOrder/bulkUploadUpdateOrder.html\",\"
    1. Home
    2. Upload Update Order in Bulk


    File Upload

    You can download a Template Sheet to use as an example

    {{bulkuploadupdateorder.successTitle}}

    {{bulkuploadupdateorder.successMsg}}

    1. {{n}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    \");\n$templateCache.put(\"app/bulkuploadCMS/bulkupload.html\",\"
    1. Home
    2. Upload Team in Bulk Upload Customer in Bulk Upload Jobs in Bulk Upload Knowledge Content


    File Upload

    Template

    Files must be a xlsx, xls under 8 MB in size.
    Files must be a zip under 8 MB in size.

    You can download a user template to use as an example

    You can download a customer template to use as an example

    You can download a template sheet to use as an example

    You can download a knowledge template to use as an example

    {{bulkupload.successTitle}}

    {{bulkupload.successMsg}}

    1. {{n}}
    Jobs
    0\\\" ng-repeat=\\\"(k,h) in bulkupload.errorList[0].data\\\">{{k}}
    {{v}}
    \");\n$templateCache.put(\"app/bulkuploadCustomer/bulkupload.html\",\"
    1. Home
    2. Upload Customer in Bulk


    File Upload

    Template

    Files must be a xlsx, xls under 8 MB in size.
    Files must be a zip under 8 MB in size.

    You can download a customer template to use as an example

    {{bulkupload.successTitle}}

    {{bulkupload.successMsg}}

    1. {{n}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    \");\n$templateCache.put(\"app/bulkuploadCRMTeamMember/bulkuploadCRMTeamMember.html\",\"
    1. Home
    2. Upload Team in Bulk


    File Upload

    You can download a Template Sheet to use as an example

    {{bulkuploadcrmteam.successTitle}}

    {{bulkuploadcrmteam.successMsg}}

    1. {{n}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    \");\n$templateCache.put(\"app/bulkuploadCustomerLatest/bulkuploadLatest.html\",\"
    1. Home
    2. Upload Customer in Bulk


    File Upload

    Template

    Files must be a xlsx, xls under 8 MB in size.
    Files must be a zip under 8 MB in size.

    You can download a customer template to use as an example

    {{bulkupload.successTitle}}

    {{bulkupload.successMsg}}

    1. {{n}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    \");\n$templateCache.put(\"app/bulkuploadMasterInventory/BulkUploadMasterInventory.html\",\"
    1. Home
    2. Upload Master Inventory in Bulk


    File Upload

    You can download a Template Sheet to use as an example

    You can download a Template Sheet to use as an example

    {{bulkuploadinventory.successTitle}}

    {{bulkuploadinventory.successMsg}}

    1. {{n}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    \");\n$templateCache.put(\"app/bulkuploadJob/bulkupload.html\",\"
    1. Home
    2. Upload Team in Bulk Upload Customer in Bulk Upload Jobs in Bulk Upload Knowledge Content


    File Upload

    Template

    Files must be a xlsx, xls under 8 MB in size.
    Files must be a zip under 8 MB in size.


     

    You can download a template sheet template sheet to use as an example

    {{bulkupload.successTitle}}

    {{bulkupload.successMsg}}

    1. {{n}}
    Jobs
    0\\\" ng-repeat=\\\"(k,h) in bulkupload.errorList[0].data\\\">{{k}}
    {{v}}
    Jobs
    {{k}}
    {{v}}
    \");\n$templateCache.put(\"app/bulkuploadServiceCenter/bulkuploadServiceCenter.html\",\"
    1. Home
    2. Upload Service Center in Bulk


    File Upload

    You can download a Template Sheet to use as an example

    {{bulkuploadservicenter.successTitle}}

    {{bulkuploadservicenter.successMsg}}

    1. {{n}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    \");\n$templateCache.put(\"app/bulkuploadUser/bulkupload.html\",\"
    1. Home
    2. Upload Team in Bulk Upload Customer in Bulk Upload Jobs in Bulk Upload Knowledge Content


    File Upload

    Template

    Files must be a xlsx, xls under 8 MB in size.
    Files must be a zip under 8 MB in size.

    You can download a user template to use as an example

    You can download a customer template to use as an example

    You can download a template sheet to use as an example

    You can download a knowledge template to use as an example

    {{bulkupload.successTitle}}

    {{bulkupload.successMsg}}

    1. {{n}}
    Jobs
    0\\\" ng-repeat=\\\"(k,h) in bulkupload.errorList[0].data\\\">{{k}}
    {{v}}
    \");\n$templateCache.put(\"app/bulkuploadinvitation/bulkuploadinvite.html\",\"
    1. Home
    2. Upload user invitations in Bulk


    File Upload

    Template

    Files must be a xlsx, xls under 8 MB in size.
    Files must be a zip under 8 MB in size.

    You can download a Template to use as an example

    {{bulkupload.successTitle}}

    {{bulkupload.successMsg}}

    1. {{n}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    \");\n$templateCache.put(\"app/bulkuploadshiftmap/BulkUploadShiftMapping.html\",\"
    1. Home
    2. Assign Shifts in Bulk


    File Upload

    Files must be a xlsx, xls under 8 MB in size.
    Files must be a zip under 8 MB in size.

    {{bulkuploadshift.successTitle}}

    {{bulkuploadshift.successMsg}}

    1. {{n}}
    Row NumberColumn NameError
    {{!$index?n.Row:\\'\\'}}{{c.Name}}{{c.Message}}
    \");\n$templateCache.put(\"app/cms/index.html\",\"
    1. Home
    2. Knowledge
    Filters
    You don\\'t have any content to shown here. Please connect your admin to add content for you.
    \\\"image\\\" \\\"image\\\"
    {{post.caption}}
    {{post.description}}
    \");\n$templateCache.put(\"app/cms/view.html\",\"
    1. Home
    2. Knowledge

    {{cms.post.caption}}

    {{cms.post.description}}

    \");\n$templateCache.put(\"app/cms detail/cms_detail.html\",\"

    Monica Smith

    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
    \");\n$templateCache.put(\"app/cms search view/cms search view.html\",\"
    Monica Smith
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
    Today 5:60 pm - 12.06.2014
    Monica Smith
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
    Today 5:60 pm - 12.06.2014
    Monica Smith
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
    Today 5:60 pm - 12.06.2014
    Monica Smith
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
    Today 5:60 pm - 12.06.2014
    Monica Smith
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
    Today 5:60 pm - 12.06.2014
    Monica Smith
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
    Today 5:60 pm - 12.06.2014
    Monica Smith
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum
    Today 5:60 pm - 12.06.2014
    \");\n$templateCache.put(\"app/cmsMobile/cmsList.html\",\"
    1. Home
    2. Knowledge
    Filters
    You don\\'t have any content to shown here. Please connect your admin to add content for you.
    \");\n$templateCache.put(\"app/cmsMobile/cmsView.html\",\"
    1. Home
    2. Knowledge

    {{cmsMobileView.post.caption}}

    {{cmsMobileView.post.description}}

    \");\n$templateCache.put(\"app/confirm password/Reset_account.html\",\"
    \\\"image\\\"

    Password Reset !


    Your password has been updated successfully.


    Back to Sign in Page

    Copyright MobiForce © 2025


    \");\n$templateCache.put(\"app/confirm password/confirm_password.html\",\"

    Change password

    Here you can change the password.

    Copyright MobiForce © 2025
    \");\n$templateCache.put(\"app/customerProfileView1/customerProfileView1.html\",\"
    1. Home
    2. Customer Profile
    ABC Bank
    17002 Noida Sec - 18
    Sector 18, Noida, Uttar Pradesh 201301

    Point of Contact Edit
    Branch Manager : Harry Kakkar
    Mobile : ******9096
    City : Noida
    Last Login : 1 May 12:20pm

    Quick Actions

    \\\"Avatar\\\"
    Bio-Metric Device
    Warranty Expired
    \\\"Avatar\\\"
    Laptop
    Warranty Expired
    \\\"Avatar\\\"
    Desktop
    Warranty Expired
    30

    Assets

    4

    Services

    Recent Activity
    \\\"Avatar\\\"
    Send

    All Activity

    Complaint #4455

    AC is not cooling properly after installation done. Please resolve my cooling issue as soon as possible.

    9:30 AM

    Another meeting with UK client today, at 3:00 PM

    Yet another one, at 5:00 PM

    12:25 PM

    MMF Admin

    Technician assigner for Voltas 5 Start inverter AC installation

    6:00 PM

    Discussion with marketing team

    Discussion with marketing team about the popularity of last product

    9:00 AM

    Purchase new hosting plan

    Purchase new hosting plan as discussed with development team, today at 10:00 AM

    10:30 PM

    Another conference call today, at 11:00 AM

    Yet another one, at 1:00 PM

    12:25 PM

    Another meeting with UK client today, at 3:00 PM

    Yet another one, at 5:00 PM

    12:25 PM

    Discussion with team about new product launch

    meeting with team mates about the launch of new product. and tell them about new features

    6:00 PM

    Discussion with marketing team

    Discussion with marketing team about the popularity of last product

    9:00 AM

    Purchase new hosting plan

    Purchase new hosting plan as discussed with development team, today at 10:00 AM

    10:30 PM

    Another conference call today, at 11:00 AM

    Yet another one, at 1:00 PM

    12:25 PM
    Quick Questions

    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\\'s standard dummy text ever. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters

    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using \\'Content here, content here\\', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\\'s standard dummy text ever. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters

    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using \\'Content here, content here\\', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using \\'Content here, content here\\', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
    Assets Management
    Asset CodeAsset TypePAV StatusBranch CodeManufacturerModel NumberSerial NumberPurchase OnWarrantyStatusActions
    NA
    \\\"Avatar\\\"
    Desktop
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"M700z All-in-One (ThinkCentre)PC0LF3BP15 July 202210 days beforeExpired
    • De-Allocate
    • Re-Allocate
    ESFBSCA00001194
    \\\"Avatar\\\"
    Scanner
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"SP - 1130NC9MJ01620810 August 202110 days beforeExpiring Soon
    • De-Allocate
    • Re-Allocate
    ESFBLAP00007839
    \\\"Avatar\\\"
    Laptop
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"B1400CBAR4NXNZ00790515C20 July 202210 days beforeExpired
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Bio-Metric Device
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"Identi5IIMPEKCB787120 July 202210 days beforeUnder Warranty
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Bio-Metric Device
    Deployed17002 Noida Sec - 18\\\"Avatar\\\"Identi5IIMPEKCB009420 July 202210 days beforeUnder Warranty
    • De-Allocate
    • Re-Allocate
    ESFBBMD00005989
    \\\"Avatar\\\"
    Bio-Metric Device
    Deployed17002 Noida Sec - 18\\\"Avatar\\\"Identi5IIMPEKCB755020 July 202210 days beforeUnder Warranty
    • De-Allocate
    • Re-Allocate
    ESFBBMD00006237
    \\\"Avatar\\\"
    Bio-Metric Device
    Deployed17002 Noida Sec - 18\\\"Avatar\\\"Identi5IIMPEKCB715920 July 202210 days beforeExpired
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Desktop
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"HP Prodesk 400 G5 Desktop Mini8CC00124ZH22 September 202215 days beforeUnder Warranty
    • De-Allocate
    • Re-Allocate
    ESFBDTP00007095
    \\\"Avatar\\\"
    Desktop
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"OptiPlex 3090 Small Form Factor68GLXM320 September 202315 days beforeUnder Warranty
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Desktop
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"M700z All-in-One (ThinkCentre)PC0GCB9415 July 202210 days beforeExpired
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Desktop
    Deployed17002 Noida Sec - 18\\\"Avatar\\\"M700z All-in-One (ThinkCentre)PC0GCB7315 July 202210 days beforeExpired
    • De-Allocate
    • Re-Allocate
    ESFBDTP00008287
    \\\"Avatar\\\"
    Desktop
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"HP 280 Pro G6 Microtower4CE229CTPW22 January 202220 days beforeUnder Warranty
    • De-Allocate
    • Re-Allocate
    ESFBDTP00008181
    \\\"Avatar\\\"
    Desktop
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"HP 280 Pro G6 Microtower4CE229CTPC22 January 202220 days beforeUnder Warranty
    • De-Allocate
    • Re-Allocate
    ESFBDTP00006039
    \\\"Avatar\\\"
    Desktop
    Not Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"OptiPlex 3080 Tower8Y1PF9320 September 202315 days beforeUnder Warranty
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Desktop
    Not Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"HP 280 Pro G6 Microtower4CE229CV1P22 August 202315 days beforeUnder Warranty
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Desktop
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"HP 280 Pro G6 Microtower4CE229CTMD22 August 202315 days beforeUnder Warranty
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Desktop
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"ThinkBook 14 G2 ITL LaptopMP2F4GC510 August 202315 days beforeUnder Warranty
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Passbook Printer
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"PLQ-20RJLY12493320 July 202210 days beforeUnder Warranty
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Passbook Printer
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"C662B1X5TW01439120 July 202310 days beforeUnder Warranty
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Tablet
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"SM-T29535500279371472310 August 202110 days beforeExpiring Soon
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Tablet
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"SM-T29535500279050084410 August 202110 days beforeExpiring Soon
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Tablet
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"SM-T28535215509147017510 August 202110 days beforeExpiring Soon
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Tablet
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"SM-T29535500279371493910 August 202110 days beforeExpiring Soon
    • De-Allocate
    • Re-Allocate
    NA
    \\\"Avatar\\\"
    Tablet
    Working (Idle)17002 Noida Sec - 18\\\"Avatar\\\"SM-T29535215509146314710 August 202110 days beforeExpiring Soon
    • De-Allocate
    • Re-Allocate
    Service Management
    Service IDService DetailsBrandDate & TimeTechnicianStatusActions
    A40000002388
    \\\"Avatar\\\"
    Bio-Metric Device
    Identi5
    \\\"Avatar\\\"20 July 2020 4:20PMN/ARequested
    A40000002388
    \\\"Avatar\\\"
    Scanner
    SP - 1130N
    \\\"Avatar\\\"20 July 2020 4:20PMRohit KumarCancelled
    A40000002388
    \\\"Avatar\\\"
    Desktop
    HP Prodesk 400 G5 Desktop Mini
    \\\"Avatar\\\"20 July 2020 4:20PMSunil YadavAssigned
    A40000002388
    \\\"Avatar\\\"
    Passbook Printer
    PLQ-20
    \\\"Avatar\\\"20 July 2020 4:20PMMohit ChauhanCompleted
    Order Management
    Purchased OnProduct DetailsBrandPriceWarrantyWarranty StatusActions
    10 July 2023
    \\\"Avatar\\\"
    Tablet
    SM-T295
    \\\"Avatar\\\"₹69910 days beforeExpired
    10 July 2023
    \\\"Avatar\\\"
    Passbook Printer
    C662B1
    \\\"Avatar\\\"₹1,469In 5 daysExpiring Soon
    10 July 2023
    \\\"Avatar\\\"
    Desktop
    OptiPlex 3090 Small Form Factor
    \\\"Avatar\\\"₹69922 June 2022Under Warranty
    Support Tickets
    Ticket IDProduct/ServiceDescriptionDate & TimeSourceIssue TypeAssigned toStatusActions
    MMF783524Laptop RepairHardisk Problem10 Jul 2023 | 5:20 PMCallSlowN/AExpired
    MMF987655Scanner RepairScanner Not scan Properly24 Mar 2023 | 10:52 AMCallDisplayVivek SharmaIn Progress
    MMF098877Bio-Metric RepairFinger scanner not working Properly19 Apr 2023 | 4:58 PMCallScannerAshok ChandraClosed
    Payments
    Transaction IDDate & TimeService/ Product DetailsAmount PaidPartner AmountPayment ViaStatusActions
    TRNS87907610 Jul 2023 | 5:20 PM
    \\\"Avatar\\\"
    Voltas Window AC
    Installation
    ₹820₹420Net BankingRefund Pending
    TRNS78352419 Apr 2023 | 4:58 PM
    \\\"Avatar\\\"
    Voltas Window AC
    Installation
    ₹1399₹899Debit CardFailed
    TRNS09786214 Apr 2023 | 2:16 PM
    \\\"Avatar\\\"
    Dish Washer 25 liter
    Breakdown Request
    ₹1650₹1150UPICompleted
    \");\n$templateCache.put(\"app/customerProfileView/customerProfileView.html\",\"
    1. Home
    2. Customer Profile
    \\\"Avatar\\\"
    Ritika Sharma
    U6800000789
    Sector 58, Noida, U.P

    Personal Details Edit
    Name : Ritika Sharma
    Mobile : 91-8007689096
    City : Noida
    Plateform / Device : IOS
    Last Login : 30july 12:20pm

    Quick Actions

    \\\"Avatar\\\"
    Crompton Geyser - 25ltr
    Warranty Expiring in 29 days
    \\\"Avatar\\\"
    Samsung LED - 52 Inch
    Warranty Expiring in 6 days
    \\\"Avatar\\\"
    Samsung Washing Machin...
    Warranty Expiring in 4 days
    3

    Assets

    4

    Services

    12

    Orders

    10

    Ticket

    7,000

    Payments Amounts

    Recent Activity
    \\\"Avatar\\\"
    Send

    All Activity

    Complaint #4455

    AC is not cooling properly after installation done. Please resolve my cooling issue as soon as possible.

    9:30 AM

    Another meeting with UK client today, at 3:00 PM

    Yet another one, at 5:00 PM

    12:25 PM

    MMF Admin

    Technician assigner for Voltas 5 Start inverter AC installation

    6:00 PM

    Discussion with marketing team

    Discussion with marketing team about the popularity of last product

    9:00 AM

    Purchase new hosting plan

    Purchase new hosting plan as discussed with development team, today at 10:00 AM

    10:30 PM

    Another conference call today, at 11:00 AM

    Yet another one, at 1:00 PM

    12:25 PM

    Another meeting with UK client today, at 3:00 PM

    Yet another one, at 5:00 PM

    12:25 PM

    Discussion with team about new product launch

    meeting with team mates about the launch of new product. and tell them about new features

    6:00 PM

    Discussion with marketing team

    Discussion with marketing team about the popularity of last product

    9:00 AM

    Purchase new hosting plan

    Purchase new hosting plan as discussed with development team, today at 10:00 AM

    10:30 PM

    Another conference call today, at 11:00 AM

    Yet another one, at 1:00 PM

    12:25 PM
    Quick Questions

    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\\'s standard dummy text ever. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters

    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using \\'Content here, content here\\', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\\'s standard dummy text ever. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters

    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using \\'Content here, content here\\', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

    It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using \\'Content here, content here\\', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for \\'lorem ipsum\\' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
    Assets Management
    PlaceholderProduct DetailsBrandPurchase OnWarrantyWarranty StatusActions
    A40000002388
    \\\"Avatar\\\"
    Chimney
    MDF786
    \\\"Avatar\\\"20 July 202010 days beforeExpired
    A40000002388
    \\\"Avatar\\\"
    Refrigerator
    MDF786
    \\\"Avatar\\\"20 July 202010 days beforeExpiring Soon
    A40000002388
    \\\"Avatar\\\"
    Air Purifier
    MDF786
    \\\"Avatar\\\"20 July 202010 days beforeUnder Warranty
    Service Management
    Service IDService DetailsBrandDate & TimeTechnicianStatusActions
    A40000002388
    \\\"Avatar\\\"
    Voltas Window AC
    Installation
    \\\"Avatar\\\"20 July 2020 4:20PMN/ARequested
    A40000002388
    \\\"Avatar\\\"
    Refrigerator
    MDF786
    \\\"Avatar\\\"20 July 2020 4:20PMRohit KumarCancelled
    A40000002388
    \\\"Avatar\\\"
    Air Purifier
    MDF786
    \\\"Avatar\\\"20 July 2020 4:20PMSunil YadavAssigned
    A40000002388
    \\\"Avatar\\\"
    Room Heater 240 Watt
    MDF786
    \\\"Avatar\\\"20 July 2020 4:20PMMohit ChauhanCompleted
    Order Management
    Purchased OnProduct DetailsBrandPriceWarrantyWarranty StatusActions
    10 July 2023
    \\\"Avatar\\\"
    Chimney Hose
    MDF786
    \\\"Avatar\\\"₹69910 days beforeExpired
    10 July 2023
    \\\"Avatar\\\"
    Smart Key Sw...
    MDF786
    \\\"Avatar\\\"₹1,469In 5 daysExpiring Soon
    10 July 2023
    \\\"Avatar\\\"
    Protection Plan 1 Y...
    MDF786
    \\\"Avatar\\\"₹69922 June 2022Under Warranty
    Support Tickets
    Ticket IDProduct/ServiceDescriptionDate & TimeSourceIssue TypeAssigned toStatusActions
    MMF783524AC ServiceMy AC is not cooling properly. after service done.10 Jul 2023 | 5:20 PMCallCoolingN/AExpired
    MMF987655TV RepairMy AC is not cooling properly. after service done.24 Mar 2023 | 10:52 AMCallDisplayVivek SharmaIn Progress
    MMF098877GyserMy AC is not cooling properly. after service done.19 Apr 2023 | 4:58 PMCallHeatingAshok ChandraClosed
    Payments
    Transaction IDDate & TimeService/ Product DetailsAmount PaidPartner AmountPayment ViaStatusActions
    TRNS87907610 Jul 2023 | 5:20 PM
    \\\"Avatar\\\"
    Voltas Window AC
    Installation
    ₹820₹420Net BankingRefund Pending
    TRNS78352419 Apr 2023 | 4:58 PM
    \\\"Avatar\\\"
    Voltas Window AC
    Installation
    ₹1399₹899Debit CardFailed
    TRNS09786214 Apr 2023 | 2:16 PM
    \\\"Avatar\\\"
    Dish Washer 25 liter
    Breakdown Request
    ₹1650₹1150UPICompleted
    \");\n$templateCache.put(\"app/form_builder/sortable.html\",\"
    1. Home
    2. {{ templateName==\\'Create Template\\'?\\'Create Template\\':\\'Template / \\' +templateName}}


    • Drag A field from the right to this area
    \");\n$templateCache.put(\"app/employeshiftattendance/employeshiftattendance.html\",\"
    1. Home
    2. Employee shift Attendance
    Employee IDEmployee NameDepartmentLocationDay{{ date.day }}
    Date{{ date.date | date : \\'dd-MMM\\'}}
    {{staff.users.UserId}}{{staff.users.UserName}}{{staff.users.DepartmentName}}{{staff.users.LocationName}}{{shifts.ActualStartTime | date:\\'dd/MMM/yyyy HH:mm:ss\\'}} - {{shifts.ActualStartTime | date:\\'dd/MMM/yyyy HH:mm:ss\\'}} OFF
    \");\n$templateCache.put(\"app/job_Bid_Creation/Job_Bid_creation.html\",\"
    1. Home
    2. Job Creation
    Job Details
    Please fill JobId Please enter alphanumeric
    Please enter only alphanumeric with space, hyphen, slace, comma
    Please select clone reason
    Please select priority
    Customer and Project
    Please select customer name
    Please select project name
    \\\"profile\\\"

    {{bidCreate.selectedCustomer.CompanyName}}

    {{bidCreate.selectedCustomer.BusinessPhone}}
    {{bidCreate.selectedCustomer.Address1}}
    0\\\">{{bidCreate.selectedCustomer.Address2}}
    {{bidCreate.selectedCustomer.City}}
    {{bidCreate.selectedCustomer.State}}
    {{bidCreate.selectedCustomer.PinCode}}

    {{bidCreate.selectedProject.Name}}

    {{bidCreate.selectedProject.Description}}

    Project Manager \\\"image\\\" {{bidCreate.selectedProject.ManagerName}}  {{bidCreate.selectedProject.ManagerNumber}}

    0\\\">
    {{location}}
    Please select a location
    0\\\">
    Please select a location
    0\\\">
    Please select a Circle
    Job Address
    Same As Customer Address


    Please enter contact person name
    = 48 && event.charCode <= 57\\\" maxlength=\\\"10\\\" required=\\\"\\\" name=\\\"contactNumber\\\">
    Please enter contact number Please enter 10 digit mobile number
    Please enter address line 1
    Please enter address line 2
    Please select state
    Please select city
    Please enter pincode Please enter valid pincode
    Appointment Time
    Please select start date
    Template
    Please select template

    \\\"profile\\\"

    {{bidCreate.selectedTemplate.TemplateName}}

    {{bidCreate.selectedTemplate.CreatedBy}}

    {{bidCreate.selectedTemplate.CreatedOn}}

    Scheduling Rules
    Bid Schedule
    Please select bid duration
    Geo Fence
    = 48 && event.charCode <= 57\\\">
    Please enter range
    \");\n$templateCache.put(\"app/job_Bid_Creation/NewJobCreation.html\",\"

    Job Creation

    Job Details

    Customer and Projects

    Job Address

    Planned Closure

    Appointment Time

    Template

    Scope of Work

    Bid Schedule

    Job Reccurence

    Geo Fence

    Spare Parts Details

    Rate Card

    1

    Job Details

    2

    Customer and Projects

    3

    Job Address

    4

    Appointment Time

    12

    Planned Closure

    5

    Template

    6

    Scope of Work

    7

    Bid Schedule

    8

    Penalties and Bonuses

    8

    Geo Fence

    9

    Spare Parts and Details

    10

    Rate Card

    Job Details

    Please fill JobId Please enter alphanumeric value with . , _ - ( ) only
    Please select priority
    Please enter alphanumeric value with . , _ - ( ) only
    Please enter alphanumeric value with . , _ - ( ) only
    Please enter alphanumeric value with . , _ - ( ) only

    Customer and Projects

    Please select customer name
    Attach Invoice
    Please select project name
    \\\"profile\\\"

    {{jobCreateCtrl.selectedCustomer.CompanyName}}

    {{jobCreateCtrl.selectedCustomer.BusinessPhone}}
    {{jobCreateCtrl.selectedCustomer.Address1}}
    0\\\">{{jobCreateCtrl.selectedCustomer.Address2}}
    {{jobCreateCtrl.selectedCustomer.City}}
    {{jobCreateCtrl.selectedCustomer.State}}
    {{jobCreateCtrl.selectedCustomer.PinCode}}

    {{jobCreateCtrl.selectedProject.Name}}

    {{jobCreateCtrl.selectedProject.Description}}

    Project Manager \\\"image\\\" {{jobCreateCtrl.selectedProject.ManagerName}}  {{jobCreateCtrl.selectedProject.ManagerNumber}}

    {{location}}
    Please select a location
    Please select a location
    Please select a Circle

    Job Address

    Please enter contact person name Contact person name should only contain alphabets with space
    = 48 && event.charCode <= 57\\\" maxlength=\\\"10\\\" required=\\\"\\\" name=\\\"contactNumber\\\" ng-change=\\\"jobCreateCtrl.checkJobAddress();\\\">
    Please enter contact number Please enter 10 digit mobile number
    Please enter address line 1 Please enter only alphanumeric with some spacial character (#()_-/,.&:;)
    Please enter address line 2 Please enter only alphanumeric with some spacial character (#()_-/,.&:;)
    Please select state
    Please select city
    = 48 && event.charCode <= 57\\\" maxlength=\\\"6\\\" ng-model=\\\"jobCreateCtrl.Pincode\\\" required=\\\"\\\" name=\\\"pincode\\\" ng-pattern=\\\"/^[0-9]{6}$/\\\" ng-change=\\\"jobCreateCtrl.checkJobAddress();\\\">
    Please enter pincode Please enter valid pincode

    Planned Closure

    Please select source creation date
    Please select planned closure date

    Appointment Time

    Template

    Please select template
    Please select skill
    \\\"profile\\\"

    {{jobCreateCtrl.selectedTemplate.TemplateName}}

    {{jobCreateCtrl.selectedTemplate.CreatedBy}}

    {{jobCreateCtrl.selectedTemplate.CreatedOn}}

    Scope of Work

    Please enter only alphanumeric with space, hyphen, slace, comma

    Bid Schedule

    This is the time duration which is allowed to the engineer for applying on any BID. Please select the BID duration 10-20 minutes

    Please select bid duration
    Penalities and Bonus

    Geo Fence

    = 48 && event.charCode <= 57\\\">
    Please enter range

    Spare Parts and Details

    Please enter valid url
    Please enter only alphanumeric with space, hyphen, slace, comma
    Please enter only alphanumeric with space, hyphen, slace, comma
    Please enter only alphanumeric with space, hyphen, slace, comma
    = 48 && event.charCode <= 57\\\" maxlength=\\\"6\\\" ng-pattern=\\\"/^[0-9]{6}$/\\\">
    Please enter valid pincode

    Pickup Address

    Please enter only alphanumeric with space, hyphen, slace, comma
    Please enter only alphanumeric with space, hyphen, slace, comma
    = 48 && event.charCode <= 57\\\" maxlength=\\\"6\\\" ng-pattern=\\\"/^[0-9]{6}$/\\\">
    Please enter valid pincode

    Drop Address

    Please enter only alphanumeric with space, hyphen, slace, comma
    Please enter only alphanumeric with space, hyphen, slace, comma
    = 48 && event.charCode <= 57\\\" maxlength=\\\"6\\\" ng-pattern=\\\"/^[0-9]{6}$/\\\">
    Please enter valid pincode

    Scheduling Rules

    Rate Card

    = 48 && event.charCode <= 57\\\">
    Please enter price
    = 48 && event.charCode <= 57\\\">
    Please enter Freelancer price
    = 48 && event.charCode <= 57\\\" disabled=\\\"\\\">
    Please enter commission
    Freelancer Price ()(Credits) :{{jobCreateCtrl.freelancerPricetemp}}
    Commission {{jobCreateCtrl.MobiforceCommission}}% ()(Credits) :{{jobCreateCtrl.commission}}
    TAX {{jobCreateCtrl.GSTPercentange}}% ()(Credits):{{jobCreateCtrl.tax}}
    Ticket Price ()(Credits) :{{jobCreateCtrl.tPrice}}

    Pricing Line Item

    TypeActivity DescriptionCompany ProvideQuantityBase PriceFreelancer PriceAction
    {{priceLineItem.LineItemCategory}}{{priceLineItem.LineItemDescription}}{{priceLineItem.LineItemCompanyProvided}}{{priceLineItem.LineItemQuantity}} {{(priceLineItem.LineItemQuantity)*(priceLineItem.dLineItemWinPrice)}} {{(priceLineItem.LineItemQuantity)*(priceLineItem.dLineItemFreelancerPrice)}}

    Total

    \");\n$templateCache.put(\"app/inventory/inventory.html\",\"
    1. Home
    2. Inventory List
    Spare Part ImagesMaterialPartTechnician NameDescriptionAvailableCreated OnIn WarrantyOwner
    \\\"\\\"Evaprator coilGSCELWLX0037Sunny kumarWH spare - Led Red White...203-01-2023 20:34PM1Evaprator coil
    \\\"\\\"Condenssor CoilGSCELWLX2535Rohit kumarWH spare - Led Red White...203-01-2023 20:34PM2Condenssor Coil
    \\\"\\\"Rotary CompressorGSCELWLX4187Randhir TomarWH spare - Led Red White...203-01-2023 20:34PM1Rotary Compressor
    \\\"\\\"ODU Fan MotorGSCELWLX2987Madhurgai MaheshWH spare - Led Red White...203-01-2023 20:34PM1ODU Fan Motor
    \\\"\\\"Capacitor 50 MFDGSCELWLX0967Ayub KhanWH spare - Led Red White...203-01-2023 20:34PM1Capacitor 50 MFD
    \\\"\\\"Out door FanGSCELWLX6546Mohammad TalhaWH spare - Led Red White...203-01-2023 20:34PM1Out door Fan
    \\\"\\\"IDU Fan motorGSCELWLX8081Mohamad MunnaWH spare - Led Red White...203-01-2023 20:34PM1IDU Fan motor
    \\\"\\\"Refrigerant R32 GasGSCELWLX2134Ayub KhanWH spare - Led Red White...203-01-2023 20:34PM1Refrigerant R32 Gas
    \\\"\\\"BlowerGSCELWLX4094sunny kumarWH spare - Led Red White...203-01-2023 20:34PM1Blower
    \\\"\\\"Refrigerant R32 GasGSCELWLX5090Lalit KumarWH spare - Led Red White...203-01-2023 20:34PM1Refrigerant R32 Gas
    \\\"\\\"1/4 copper pipeGSCELWLX1090Rahul JhaWH spare - Led Red White...203-01-2023 20:34PM11/4 copper pipe
    \\\"\\\"StablizerGSCELWLX1001Hema KrishananWH spare - Led Red White...203-01-2023 20:34PM1Stablizer
    \\\"\\\"1/2 copper pipeGSCELWLX9009Pratyush KumarWH spare - Led Red White...203-01-2023 20:34PM11/2 copper pipe
    \\\"\\\"Evaprator coilGSCELWLX7007Ambrish KumarWH spare - Led Red White...203-01-2023 20:34PM1Evaprator coil
    \\\"\\\"Condenssor CoilGSCELWLX2002Rohit KumarWH spare - Led Red White...203-01-2023 20:34PM1Condenssor Coil
    \\\"\\\"Rotary CompressorGSCELWLX3003Lalit kumarWH spare - Led Red White...203-01-2023 20:34PM1Rotary Compressor
    \\\"\\\"ODU Fan MotorGSCELWLX4545Karan AujlaWH spare - Led Red White...203-01-2023 20:34PM1ODU Fan Motor
    \\\"\\\"Capacitor 50 MFDGSCELWLX6464Prem DhillonWH spare - Led Red White...203-01-2023 20:34PM1Capacitor 50 MFD
    \\\"\\\"Out door FanGSCELWLX8768Hema KrishananWH spare - Led Red White...203-01-2023 20:34PM1Out door Fan
    \\\"\\\"BlowerGSCELWLX0001Rahul JhaWH spare - Led Red White...203-01-2023 20:34PM1Blower
    \");\n$templateCache.put(\"app/jobview/jobview.html\",\"
    1. Home
    2. Jobs View
    {{jobView.TicketInfo.TicketStatus}}
    Job Address

    Appointment time
    {{jobView.getReadableTime(jobView.TicketInfo.StartTime)}}
    {{jobView.getReadableTime(jobView.TicketInfo.EndTime)}}
    Your ticket is scheduled from {{jobView.getReadableTime(jobView.TicketInfo.StartTime)}} to {{jobView.getReadableTime(jobView.TicketInfo.EndTime)}}
    Ticket Detail

    Rate Detail
    {{jobView.TicketInfo.BroadcastRate}}
    {{jobView.TicketInfo.BroadcastGrossRate}}
    {{jobView.TicketInfo.MobiforceCommission}}%
    {{jobView.TicketInfo.BidDuration}} Min
    Supervisor View


    {{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }} {{\\\"( \\\" + status.ThirdReason + \\\" )\\\" }}
    {{\\\"Remark: \\\" + status.CompletionRemark + \\\" \\\" }} {{\\\"Remark: \\\" + status.RejectionRemark + \\\" \\\" }}
    {{status.activity}} Follow Up-{{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }} {{\\\"( \\\" + status.ThirdReason + \\\" )\\\" }}
    0 && status.ReasonComment!=\\'null\\'\\\">-{{status.ReasonComment}}
    {{\\\"Remark: \\\" + status.CompletionRemark + \\\" \\\" }}
    Total Tat :  {{jobView.TotalTat}}
    {{status.activity}} Follow Up - {{status.activity}}

    0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }}
    {{ status.ThirdReason }}

    0 && status.ReasonComment!=\\'null\\'\\\">-{{status.ReasonComment}}
    {{\\\"Remark: \\\" + status.CompletionRemark + \\\" \\\" }}
    Partner Tat : {{jobView.PartnerTat}}
    {{status.activity}} Follow Up-{{status.activity}} 0 && status.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + status.primaryReason+\\\"-\\\"+status.SecondryReason + \\\" )\\\" }}
    0 && status.ReasonComment!=\\'null\\'\\\">-{{status.ReasonComment}}
    \");\n$templateCache.put(\"app/mForce-job-detail/job-detail.html\",\"

    {{MjobDetail.LeadDetails.skillSet}}

    {{MjobDetail.LeadDetails.jobId}}
    Job Price
    • ₹ {{MjobDetail.LeadDetails.BIDRate}} To be paid by MyMobiforce
    • ₹ {{MjobDetail.LeadDetails.AmountToBeCollectedFromField}} Amount to be collected from customer

    Job Time
    • Appointment Pending
    • {{MjobDetail.LeadDetails.jobStartDateTime}} {{MjobDetail.LeadDetails.jobPlannedClosureDate}}     Finish By

    Address
    • {{MjobDetail.LeadDetails.addressLine1}}, {{MjobDetail.LeadDetails.city}}, {{MjobDetail.LeadDetails.state}}

    Service Detail
    • {{MjobDetail.LeadDetails.consumerName}}
    • {{MjobDetail.LeadDetails.customerName}}

    \");\n$templateCache.put(\"app/mForce-job-list/job-list.html\",\"\");\n$templateCache.put(\"app/main/main.html\",\"

    {{main.helloText}}

    {{main.descriptionText}}
    \");\n$templateCache.put(\"app/projects/project.html\",\"
    1. Home
    2. Projects
    IdNameCustomerLocationStatus
    {{projectlist.ProjectId}}
    {{location.Circle}}
    {{project.projectModel.Name}}

    Description: {{project.projectModel.Description}}

    Customer  {{project.projectModel.CustomerName}}
    Project Manager \\\"image\\\" {{project.projectModel.ManagerName}}  {{project.projectModel.ManagerNumber}}

    Serving Location

    Locations
    \");\n$templateCache.put(\"app/plannerTool/plannerTool.html\",\"
    Filters
    Range (in km)
    Pincode
    2360

    Freelancers (FL)

    980

    Freelancer Vendors (FV)

    1960

    Freelancer Vendor Teams (FVT)

    3500

    All Active Technicians

    50

    Warehouses

    15

    Training centers

    StateDistrictPinSkillsFreelancers (FL)Freelance Vendors (FV)Freelance Vendor Team (FVT)Total Technicians MMF Units Total Technicians
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Mohit7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    HaryanaGurugram122003Wire Laying7/83/52/212/150
    of 252 records
    \");\n$templateCache.put(\"app/skillCreation/skillCreation.html\",\"

    Skill Creation

    Skill IdSkill NameCategoryDisplay NameVerticalTes tLinkSkill VerticalEdit
    \");\n$templateCache.put(\"app/backup/Customer Ticket Details/CustomerTicketDetails.html\",\"
    1. Home
    2. Tickets Details
    T00000000876
    Open

    Vsat ID : GSE - 645453

    Vsat IP : 112.232.234.80

    Ticket Age : ( 2 hours ago )

    Issue :

    Vsat Not Working Properly

    \\\"image\\\"

    Technician

    Ankur Sharma 4.0

    7876534523

    Appointment Time

    12/08/2018 04:30 Pm

    Contact Us

    8987876765

    Ankur.sharma@innotiontech.com

    Ticket Status Activity
    Open Today at 10:30:50 pm / Mike Smith Added new contact to the user group
    Comment Today at 08:10:50 am / Michael Miggel Commented on Ariana profile.
    Comment Today at 04:30:33 am / Monica Jackson Commented on public board.
    Comment Today at 11:43:59 am / Jessica Smith Commented on public board.
    Add Yesterday at 10:02:33 pm / Camila Farter Added new file to project.
    Activity Today at 08:10:50 am / John Dernex Add new item to stage zero.
    Activity Yesterday at 10:32:12 am / Andrew Williams Joined to the new group.
    Activity Today at 08:10:50 am / Michael Miggel Commented on Ariana profile.
    Activity Today at 04:30:33 am / Monica Jackson Commented on public board.
    \");\n$templateCache.put(\"app/backup/Customer Home Screen/CustomerHomeScreen.html\",\"
    1. Home
    2. All Tickets
    T0000000098
    Open

    Vsat Not Working Properly

    \\\"image\\\"

    Technician

    Ankur Sharma   4.0

    Appointment Time

    12/08/2018 04:30 Pm     Re-Schedule

    Ticket Age

    ( 2 Hours Ago)
    T0000000098
    Completed

    Vsat Not Working Properly

    \\\"image\\\"

    Technician

    Ankur Sharma   4.0

    Appointment Time

    12/08/2018 04:30 Pm

    Resolution Time

    12/08/2018 04:30 Pm

    SLA

    T0000000098
    Completed

    Vsat Not Working Properly

    \\\"image\\\"

    Technician

    Ankur Sharma   4.0

    Appointment Time

    12/08/2018 04:30 Pm

    Resolution Time

    12/08/2018 04:30 Pm

    SLA

    T0000000098
    On hold

    Vsat Not Working Properly

    \\\"image\\\"

    Technician

    Ankur Sharma   4.0

    Appointment Time

    12/08/2018 04:30 Pm

    Ticket Age

    ( 2 Hours Ago)
    T0000000098
    Completed

    Vsat Not Working Properly

    \\\"image\\\"

    Technician

    Ankur Sharma   4.0

    Appointment Time

    12/08/2018 04:30 Pm

    Resolution Time

    12/08/2018 04:30 Pm

    SLA

    T0000000098
    Completed

    Vsat Not Working Properly

    \\\"image\\\"

    Technician

    Ankur Sharma   4.0

    Appointment Time

    12/08/2018 04:30 Pm

    Resolution Time

    12/08/2018 04:30 Pm

    SLA

    \");\n$templateCache.put(\"app/components/common/ChatScreen.html\",\"\");\n$templateCache.put(\"app/components/common/content.html\",\"
    \");\n$templateCache.put(\"app/components/common/footer.html\",\"
    Copyright MyMobiforce © 2025
    \");\n$templateCache.put(\"app/components/common/ibox_tools.html\",\"\");\n$templateCache.put(\"app/components/common/modals.html\",\"\");\n$templateCache.put(\"app/components/common/navigation.html\",\"\");\n$templateCache.put(\"app/components/common/public_content.html\",\"
    \");\n$templateCache.put(\"app/components/common/right_sidebar.html\",\"
    Job History
    {{history.activity}} 0 && history.primaryReason!=\\'null\\'\\\">{{\\\"( \\\" + history.primaryReason+\\\"-\\\"+history.SecondryReason + \\\" )\\\" }}

    Search Filters

    Search for your ticket using the fields below!

    \");\n$templateCache.put(\"app/components/common/top_navigation.html\",\"\");\n$templateCache.put(\"app/components/common/topnavbar.html\",\"
    \");}]);"],"sourceRoot":"/source/"}